@angular-devkit/architect 0.12.3 → 0.13.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.
File without changes
@@ -0,0 +1,5 @@
1
+ // THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
2
+ // CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
3
+ // tslint:disable:no-global-tslint-disable
4
+ // tslint:disable
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbImRpc3Qtc2NoZW1hL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2FyY2hpdGVjdC9idWlsZGVycy9idWlsZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxtRkFBbUY7QUFDbkYsb0ZBQW9GO0FBRXBGLDBDQUEwQztBQUMxQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRC4gVE8gVVBEQVRFIFRISVMgRklMRSBZT1UgTkVFRCBUTyBDSEFOR0UgVEhFXG4vLyBDT1JSRVNQT05ESU5HIEpTT04gU0NIRU1BIEZJTEUsIFRIRU4gUlVOIGRldmtpdC1hZG1pbiBidWlsZCAob3IgYmF6ZWwgYnVpbGQgLi4uKS5cblxuLy8gdHNsaW50OmRpc2FibGU6bm8tZ2xvYmFsLXRzbGludC1kaXNhYmxlXG4vLyB0c2xpbnQ6ZGlzYWJsZVxuXG4iXX0=
File without changes
@@ -0,0 +1,5 @@
1
+ // THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
2
+ // CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
3
+ // tslint:disable:no-global-tslint-disable
4
+ // tslint:disable
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9vcC1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbImRpc3Qtc2NoZW1hL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2FyY2hpdGVjdC9idWlsZGVycy9ub29wLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxtRkFBbUY7QUFDbkYsb0ZBQW9GO0FBRXBGLDBDQUEwQztBQUMxQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRC4gVE8gVVBEQVRFIFRISVMgRklMRSBZT1UgTkVFRCBUTyBDSEFOR0UgVEhFXG4vLyBDT1JSRVNQT05ESU5HIEpTT04gU0NIRU1BIEZJTEUsIFRIRU4gUlVOIGRldmtpdC1hZG1pbiBidWlsZCAob3IgYmF6ZWwgYnVpbGQgLi4uKS5cblxuLy8gdHNsaW50OmRpc2FibGU6bm8tZ2xvYmFsLXRzbGludC1kaXNhYmxlXG4vLyB0c2xpbnQ6ZGlzYWJsZVxuXG4iXX0=
@@ -0,0 +1,19 @@
1
+ /**
2
+ * All input types of builders that perform operations on one or multiple sub-builders.
3
+ */
4
+ export interface Schema {
5
+ builders?: Builder[];
6
+ targets?: Target[];
7
+ }
8
+ export interface Builder {
9
+ builder: string;
10
+ options?: {
11
+ [key: string]: any;
12
+ };
13
+ }
14
+ export interface Target {
15
+ overrides?: {
16
+ [key: string]: any;
17
+ };
18
+ target: string;
19
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
3
+ // CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3Itc2NoZW1hLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJkaXN0LXNjaGVtYS9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9hcmNoaXRlY3QvYnVpbGRlcnMvb3BlcmF0b3Itc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxtRkFBbUY7QUFDbkYsb0ZBQW9GIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQuIFRPIFVQREFURSBUSElTIEZJTEUgWU9VIE5FRUQgVE8gQ0hBTkdFIFRIRVxuLy8gQ09SUkVTUE9ORElORyBKU09OIFNDSEVNQSBGSUxFLCBUSEVOIFJVTiBkZXZraXQtYWRtaW4gYnVpbGQgKG9yIGJhemVsIGJ1aWxkIC4uLikuXG5cbi8vIHRzbGludDpkaXNhYmxlOm5vLWdsb2JhbC10c2xpbnQtZGlzYWJsZVxuLy8gdHNsaW50OmRpc2FibGVcblxuLyoqXG4gKiBBbGwgaW5wdXQgdHlwZXMgb2YgYnVpbGRlcnMgdGhhdCBwZXJmb3JtIG9wZXJhdGlvbnMgb24gb25lIG9yIG11bHRpcGxlIHN1Yi1idWlsZGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2hlbWEge1xuICAgIGJ1aWxkZXJzPzogQnVpbGRlcltdO1xuICAgIHRhcmdldHM/OiAgVGFyZ2V0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRlciB7XG4gICAgYnVpbGRlcjogIHN0cmluZztcbiAgICBvcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXQge1xuICAgIG92ZXJyaWRlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gICAgdGFyZ2V0OiAgICAgc3RyaW5nO1xufVxuIl19
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@angular-devkit/architect",
3
- "version": "0.12.3",
3
+ "version": "0.13.0",
4
4
  "description": "Angular Build Facade",
5
5
  "main": "src/index.js",
6
6
  "typings": "src/index.d.ts",
7
7
  "dependencies": {
8
- "@angular-devkit/core": "7.2.3",
8
+ "@angular-devkit/core": "7.3.0",
9
9
  "rxjs": "6.3.3"
10
10
  },
11
11
  "keywords": [
@@ -7,24 +7,45 @@
7
7
  */
8
8
  import { BaseException, JsonObject, Path, experimental, logging, virtualFs } from '@angular-devkit/core';
9
9
  import { Observable } from 'rxjs';
10
+ /**
11
+ * @deprecated
12
+ */
10
13
  export declare class ProjectNotFoundException extends BaseException {
11
14
  constructor(projectName: string);
12
15
  }
16
+ /**
17
+ * @deprecated
18
+ */
13
19
  export declare class TargetNotFoundException extends BaseException {
14
20
  constructor(projectName: string, targetName: string);
15
21
  }
22
+ /**
23
+ * @deprecated
24
+ */
16
25
  export declare class ConfigurationNotFoundException extends BaseException {
17
26
  constructor(projectName: string, configurationName: string);
18
27
  }
28
+ /**
29
+ * @deprecated
30
+ */
19
31
  export declare class BuilderCannotBeResolvedException extends BaseException {
20
32
  constructor(builder: string);
21
33
  }
34
+ /**
35
+ * @deprecated
36
+ */
22
37
  export declare class ArchitectNotYetLoadedException extends BaseException {
23
38
  constructor();
24
39
  }
40
+ /**
41
+ * @deprecated
42
+ */
25
43
  export declare class BuilderNotFoundException extends BaseException {
26
44
  constructor(builder: string);
27
45
  }
46
+ /**
47
+ * @deprecated
48
+ */
28
49
  export interface BuilderContext {
29
50
  logger: logging.Logger;
30
51
  host: virtualFs.Host<{}>;
@@ -32,30 +53,53 @@ export interface BuilderContext {
32
53
  architect: Architect;
33
54
  targetSpecifier?: TargetSpecifier;
34
55
  }
35
- export interface BuildEvent {
56
+ /**
57
+ * TODO: use unknown
58
+ * @deprecated
59
+ */
60
+ export interface BuildEvent<BuildResultT = any> {
36
61
  success: boolean;
62
+ result?: BuildResultT;
37
63
  }
64
+ /**
65
+ * @deprecated
66
+ */
38
67
  export interface Builder<OptionsT> {
39
68
  run(builderConfig: BuilderConfiguration<Partial<OptionsT>>): Observable<BuildEvent>;
40
69
  }
70
+ /**
71
+ * @deprecated
72
+ */
41
73
  export interface BuilderPathsMap {
42
74
  builders: {
43
75
  [k: string]: BuilderPaths;
44
76
  };
45
77
  }
78
+ /**
79
+ * @deprecated
80
+ */
46
81
  export interface BuilderPaths {
47
82
  class: Path;
48
83
  schema: Path;
49
84
  description: string;
50
85
  }
86
+ /**
87
+ * @deprecated
88
+ */
51
89
  export interface BuilderDescription {
52
90
  name: string;
53
91
  schema: JsonObject;
54
92
  description: string;
55
93
  }
94
+ /**
95
+ * @deprecated
96
+ */
56
97
  export interface BuilderConstructor<OptionsT> {
57
98
  new (context: BuilderContext): Builder<OptionsT>;
58
99
  }
100
+ /**
101
+ * @deprecated
102
+ */
59
103
  export interface BuilderConfiguration<OptionsT = {}> {
60
104
  root: Path;
61
105
  sourceRoot?: Path;
@@ -63,17 +107,26 @@ export interface BuilderConfiguration<OptionsT = {}> {
63
107
  builder: string;
64
108
  options: OptionsT;
65
109
  }
110
+ /**
111
+ * @deprecated
112
+ */
66
113
  export interface TargetSpecifier<OptionsT = {}> {
67
114
  project: string;
68
115
  target: string;
69
116
  configuration?: string;
70
117
  overrides?: Partial<OptionsT>;
71
118
  }
119
+ /**
120
+ * @deprecated
121
+ */
72
122
  export interface TargetMap {
73
123
  [k: string]: Target;
74
124
  }
75
125
  export declare type TargetOptions<T = JsonObject> = T;
76
126
  export declare type TargetConfiguration<T = JsonObject> = Partial<T>;
127
+ /**
128
+ * @deprecated
129
+ */
77
130
  export interface Target<T = JsonObject> {
78
131
  builder: string;
79
132
  options: TargetOptions<T>;
@@ -81,6 +134,9 @@ export interface Target<T = JsonObject> {
81
134
  [k: string]: TargetConfiguration<T>;
82
135
  };
83
136
  }
137
+ /**
138
+ * @deprecated
139
+ */
84
140
  export declare class Architect {
85
141
  private _workspace;
86
142
  private readonly _targetsSchemaPath;
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google Inc. All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const core_1 = require("@angular-devkit/core");
11
+ const node_1 = require("@angular-devkit/core/node");
12
+ const rxjs_1 = require("rxjs");
13
+ const operators_1 = require("rxjs/operators");
14
+ /**
15
+ * @deprecated
16
+ */
17
+ class ProjectNotFoundException extends core_1.BaseException {
18
+ constructor(projectName) {
19
+ super(`Project '${projectName}' could not be found in Workspace.`);
20
+ }
21
+ }
22
+ exports.ProjectNotFoundException = ProjectNotFoundException;
23
+ /**
24
+ * @deprecated
25
+ */
26
+ class TargetNotFoundException extends core_1.BaseException {
27
+ constructor(projectName, targetName) {
28
+ super(`Target '${targetName}' could not be found in project '${projectName}'.`);
29
+ }
30
+ }
31
+ exports.TargetNotFoundException = TargetNotFoundException;
32
+ /**
33
+ * @deprecated
34
+ */
35
+ class ConfigurationNotFoundException extends core_1.BaseException {
36
+ constructor(projectName, configurationName) {
37
+ super(`Configuration '${configurationName}' could not be found in project '${projectName}'.`);
38
+ }
39
+ }
40
+ exports.ConfigurationNotFoundException = ConfigurationNotFoundException;
41
+ // TODO: break this exception apart into more granular ones.
42
+ /**
43
+ * @deprecated
44
+ */
45
+ class BuilderCannotBeResolvedException extends core_1.BaseException {
46
+ constructor(builder) {
47
+ super(`Builder '${builder}' cannot be resolved.`);
48
+ }
49
+ }
50
+ exports.BuilderCannotBeResolvedException = BuilderCannotBeResolvedException;
51
+ /**
52
+ * @deprecated
53
+ */
54
+ class ArchitectNotYetLoadedException extends core_1.BaseException {
55
+ constructor() { super(`Architect needs to be loaded before Architect is used.`); }
56
+ }
57
+ exports.ArchitectNotYetLoadedException = ArchitectNotYetLoadedException;
58
+ /**
59
+ * @deprecated
60
+ */
61
+ class BuilderNotFoundException extends core_1.BaseException {
62
+ constructor(builder) {
63
+ super(`Builder ${builder} could not be found.`);
64
+ }
65
+ }
66
+ exports.BuilderNotFoundException = BuilderNotFoundException;
67
+ /**
68
+ * @deprecated
69
+ */
70
+ class Architect {
71
+ constructor(_workspace) {
72
+ this._workspace = _workspace;
73
+ this._targetsSchemaPath = core_1.join(core_1.normalize(__dirname), 'targets-schema.json');
74
+ this._buildersSchemaPath = core_1.join(core_1.normalize(__dirname), 'builders-schema.json');
75
+ this._architectSchemasLoaded = false;
76
+ this._targetMapMap = new Map();
77
+ this._builderPathsMap = new Map();
78
+ this._builderDescriptionMap = new Map();
79
+ this._builderConstructorMap = new Map();
80
+ }
81
+ loadArchitect() {
82
+ if (this._architectSchemasLoaded) {
83
+ return rxjs_1.of(this);
84
+ }
85
+ else {
86
+ return rxjs_1.forkJoin(this._loadJsonFile(this._targetsSchemaPath), this._loadJsonFile(this._buildersSchemaPath)).pipe(operators_1.concatMap(([targetsSchema, buildersSchema]) => {
87
+ this._targetsSchema = targetsSchema;
88
+ this._buildersSchema = buildersSchema;
89
+ this._architectSchemasLoaded = true;
90
+ // Validate and cache all project target maps.
91
+ return rxjs_1.forkJoin(...this._workspace.listProjectNames().map(projectName => {
92
+ const unvalidatedTargetMap = this._workspace.getProjectTargets(projectName);
93
+ return this._workspace.validateAgainstSchema(unvalidatedTargetMap, this._targetsSchema).pipe(operators_1.tap(targetMap => this._targetMapMap.set(projectName, targetMap)));
94
+ }));
95
+ }), operators_1.map(() => this));
96
+ }
97
+ }
98
+ listProjectTargets(projectName) {
99
+ return Object.keys(this._getProjectTargetMap(projectName));
100
+ }
101
+ _getProjectTargetMap(projectName) {
102
+ if (!this._targetMapMap.has(projectName)) {
103
+ throw new ProjectNotFoundException(projectName);
104
+ }
105
+ return this._targetMapMap.get(projectName);
106
+ }
107
+ _getProjectTarget(projectName, targetName) {
108
+ const targetMap = this._getProjectTargetMap(projectName);
109
+ const target = targetMap[targetName];
110
+ if (!target) {
111
+ throw new TargetNotFoundException(projectName, targetName);
112
+ }
113
+ return target;
114
+ }
115
+ getBuilderConfiguration(targetSpec) {
116
+ const { project: projectName, target: targetName, configuration: configurationName, overrides, } = targetSpec;
117
+ const project = this._workspace.getProject(projectName);
118
+ const target = this._getProjectTarget(projectName, targetName);
119
+ const options = target.options;
120
+ let configuration = {};
121
+ if (configurationName) {
122
+ if (!target.configurations) {
123
+ throw new ConfigurationNotFoundException(projectName, configurationName);
124
+ }
125
+ configuration = target.configurations[configurationName];
126
+ if (!configuration) {
127
+ throw new ConfigurationNotFoundException(projectName, configurationName);
128
+ }
129
+ }
130
+ const builderConfiguration = {
131
+ root: project.root,
132
+ sourceRoot: project.sourceRoot,
133
+ projectType: project.projectType,
134
+ builder: target.builder,
135
+ options: Object.assign({}, options, configuration, overrides),
136
+ };
137
+ return builderConfiguration;
138
+ }
139
+ run(builderConfig, partialContext = {}) {
140
+ const context = Object.assign({ logger: new core_1.logging.NullLogger(), architect: this, host: this._workspace.host, workspace: this._workspace }, partialContext);
141
+ let builderDescription;
142
+ return this.getBuilderDescription(builderConfig).pipe(operators_1.tap(description => builderDescription = description), operators_1.concatMap(() => this.validateBuilderOptions(builderConfig, builderDescription)), operators_1.tap(validatedBuilderConfig => builderConfig = validatedBuilderConfig), operators_1.map(() => this.getBuilder(builderDescription, context)), operators_1.concatMap(builder => builder.run(builderConfig)));
143
+ }
144
+ getBuilderDescription(builderConfig) {
145
+ // Check cache for this builder description.
146
+ if (this._builderDescriptionMap.has(builderConfig.builder)) {
147
+ return rxjs_1.of(this._builderDescriptionMap.get(builderConfig.builder));
148
+ }
149
+ return new rxjs_1.Observable((obs) => {
150
+ // TODO: this probably needs to be more like NodeModulesEngineHost.
151
+ const basedir = core_1.getSystemPath(this._workspace.root);
152
+ const [pkg, builderName] = builderConfig.builder.split(':');
153
+ const pkgJsonPath = node_1.resolve(pkg, { basedir, resolvePackageJson: true, checkLocal: true });
154
+ let buildersJsonPath;
155
+ let builderPaths;
156
+ // Read the `builders` entry of package.json.
157
+ return this._loadJsonFile(core_1.normalize(pkgJsonPath)).pipe(operators_1.concatMap((pkgJson) => {
158
+ const pkgJsonBuildersentry = pkgJson['builders'];
159
+ if (!pkgJsonBuildersentry) {
160
+ return rxjs_1.throwError(new BuilderCannotBeResolvedException(builderConfig.builder));
161
+ }
162
+ buildersJsonPath = core_1.join(core_1.dirname(core_1.normalize(pkgJsonPath)), pkgJsonBuildersentry);
163
+ return this._loadJsonFile(buildersJsonPath);
164
+ }),
165
+ // Validate builders json.
166
+ operators_1.concatMap((builderPathsMap) => this._workspace.validateAgainstSchema(builderPathsMap, this._buildersSchema)), operators_1.concatMap((builderPathsMap) => {
167
+ builderPaths = builderPathsMap.builders[builderName];
168
+ if (!builderPaths) {
169
+ return rxjs_1.throwError(new BuilderCannotBeResolvedException(builderConfig.builder));
170
+ }
171
+ // Resolve paths in the builder paths.
172
+ const builderJsonDir = core_1.dirname(buildersJsonPath);
173
+ builderPaths.schema = core_1.join(builderJsonDir, builderPaths.schema);
174
+ builderPaths.class = core_1.join(builderJsonDir, builderPaths.class);
175
+ // Save the builder paths so that we can lazily load the builder.
176
+ this._builderPathsMap.set(builderConfig.builder, builderPaths);
177
+ // Load the schema.
178
+ return this._loadJsonFile(builderPaths.schema);
179
+ }), operators_1.map(builderSchema => {
180
+ const builderDescription = {
181
+ name: builderConfig.builder,
182
+ schema: builderSchema,
183
+ description: builderPaths.description,
184
+ };
185
+ // Save to cache before returning.
186
+ this._builderDescriptionMap.set(builderDescription.name, builderDescription);
187
+ return builderDescription;
188
+ })).subscribe(obs);
189
+ });
190
+ }
191
+ validateBuilderOptions(builderConfig, builderDescription) {
192
+ return this._workspace.validateAgainstSchema(builderConfig.options, builderDescription.schema).pipe(operators_1.map(validatedOptions => {
193
+ builderConfig.options = validatedOptions;
194
+ return builderConfig;
195
+ }));
196
+ }
197
+ getBuilder(builderDescription, context) {
198
+ const name = builderDescription.name;
199
+ let builderConstructor;
200
+ // Check cache for this builder.
201
+ if (this._builderConstructorMap.has(name)) {
202
+ builderConstructor = this._builderConstructorMap.get(name);
203
+ }
204
+ else {
205
+ if (!this._builderPathsMap.has(name)) {
206
+ throw new BuilderNotFoundException(name);
207
+ }
208
+ const builderPaths = this._builderPathsMap.get(name);
209
+ // TODO: support more than the default export, maybe via builder#import-name.
210
+ const builderModule = require(core_1.getSystemPath(builderPaths.class));
211
+ builderConstructor = builderModule['default'];
212
+ // Save builder to cache before returning.
213
+ this._builderConstructorMap.set(builderDescription.name, builderConstructor);
214
+ }
215
+ const builder = new builderConstructor(context);
216
+ return builder;
217
+ }
218
+ _loadJsonFile(path) {
219
+ return this._workspace.host.read(core_1.normalize(path)).pipe(operators_1.map(buffer => core_1.virtualFs.fileBufferToString(buffer)), operators_1.map(str => core_1.parseJson(str, core_1.JsonParseMode.Loose)));
220
+ }
221
+ }
222
+ exports.Architect = Architect;
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl0ZWN0LWxlZ2FjeS5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYXJjaGl0ZWN0L3NyYy9hcmNoaXRlY3QtbGVnYWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsK0NBYThCO0FBQzlCLG9EQUFtRTtBQUNuRSwrQkFBNEQ7QUFDNUQsOENBQXFEO0FBRXJEOztHQUVHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSxvQkFBYTtJQUN6RCxZQUFZLFdBQW1CO1FBQzdCLEtBQUssQ0FBQyxZQUFZLFdBQVcsb0NBQW9DLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0Y7QUFKRCw0REFJQztBQUVEOztHQUVHO0FBQ0gsTUFBYSx1QkFBd0IsU0FBUSxvQkFBYTtJQUN4RCxZQUFZLFdBQW1CLEVBQUUsVUFBa0I7UUFDakQsS0FBSyxDQUFDLFdBQVcsVUFBVSxvQ0FBb0MsV0FBVyxJQUFJLENBQUMsQ0FBQztJQUNsRixDQUFDO0NBQ0Y7QUFKRCwwREFJQztBQUVEOztHQUVHO0FBQ0gsTUFBYSw4QkFBK0IsU0FBUSxvQkFBYTtJQUMvRCxZQUFZLFdBQW1CLEVBQUUsaUJBQXlCO1FBQ3hELEtBQUssQ0FBQyxrQkFBa0IsaUJBQWlCLG9DQUFvQyxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2hHLENBQUM7Q0FDRjtBQUpELHdFQUlDO0FBRUQsNERBQTREO0FBQzVEOztHQUVHO0FBQ0gsTUFBYSxnQ0FBaUMsU0FBUSxvQkFBYTtJQUNqRSxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLFlBQVksT0FBTyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQUpELDRFQUlDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLDhCQUErQixTQUFRLG9CQUFhO0lBQy9ELGdCQUFnQixLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDbkY7QUFGRCx3RUFFQztBQUVEOztHQUVHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSxvQkFBYTtJQUN6RCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsT0FBTyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQUpELDREQUlDO0FBd0dEOztHQUVHO0FBQ0gsTUFBYSxTQUFTO0lBV3BCLFlBQW9CLFVBQTRDO1FBQTVDLGVBQVUsR0FBVixVQUFVLENBQWtDO1FBVi9DLHVCQUFrQixHQUFHLFdBQUksQ0FBQyxnQkFBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDdkUsd0JBQW1CLEdBQUcsV0FBSSxDQUFDLGdCQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUdsRiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUM3QyxxQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztRQUNuRCwyQkFBc0IsR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztRQUMvRCwyQkFBc0IsR0FBRyxJQUFJLEdBQUcsRUFBa0MsQ0FBQztJQUVQLENBQUM7SUFFckUsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2hDLE9BQU8sU0FBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO2FBQU07WUFDTCxPQUFPLGVBQVEsQ0FDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUM3QyxDQUFDLElBQUksQ0FDSixxQkFBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO2dCQUVwQyw4Q0FBOEM7Z0JBQzlDLE9BQU8sZUFBUSxDQUNiLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDdEQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUU1RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQzFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQzdDLGVBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUNuRSxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDLENBQUMsRUFDRixlQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2hCLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxXQUFtQjtRQUNwQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFdBQW1CO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN4QyxNQUFNLElBQUksd0JBQXdCLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDakQ7UUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBYyxDQUFDO0lBQzFELENBQUM7SUFFTyxpQkFBaUIsQ0FBUyxXQUFtQixFQUFFLFVBQWtCO1FBQ3ZFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV6RCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFvQixDQUFDO1FBRXhELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLElBQUksdUJBQXVCLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELHVCQUF1QixDQUFXLFVBQTJCO1FBQzNELE1BQU0sRUFDSixPQUFPLEVBQUUsV0FBVyxFQUNwQixNQUFNLEVBQUUsVUFBVSxFQUNsQixhQUFhLEVBQUUsaUJBQWlCLEVBQ2hDLFNBQVMsR0FDVixHQUFHLFVBQVUsQ0FBQztRQUVmLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLGFBQWEsR0FBd0IsRUFBRSxDQUFDO1FBRTVDLElBQUksaUJBQWlCLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSw4QkFBOEIsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQzthQUMxRTtZQUVELGFBQWEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDbEIsTUFBTSxJQUFJLDhCQUE4QixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2FBQzFFO1NBQ0Y7UUFFRCxNQUFNLG9CQUFvQixHQUFtQztZQUMzRCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQVk7WUFDMUIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUE4QjtZQUNsRCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLE9BQU8sRUFBRSxrQkFDSixPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQWUsQ0FDUDtTQUNkLENBQUM7UUFFRixPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRCxHQUFHLENBQ0QsYUFBNkMsRUFDN0MsaUJBQTBDLEVBQUU7UUFFNUMsTUFBTSxPQUFPLG1CQUNYLE1BQU0sRUFBRSxJQUFJLGNBQU8sQ0FBQyxVQUFVLEVBQUUsRUFDaEMsU0FBUyxFQUFFLElBQUksRUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxJQUN2QixjQUFjLENBQ2xCLENBQUM7UUFFRixJQUFJLGtCQUFzQyxDQUFDO1FBRTNDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDbkQsZUFBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLEVBQ3BELHFCQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLEVBQy9FLGVBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLHNCQUFzQixDQUFDLEVBQ3JFLGVBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQ3ZELHFCQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCLENBQ25CLGFBQTZDO1FBRTdDLDRDQUE0QztRQUM1QyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFELE9BQU8sU0FBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBdUIsQ0FBQyxDQUFDO1NBQ3pGO1FBRUQsT0FBTyxJQUFJLGlCQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM1QixtRUFBbUU7WUFDbkUsTUFBTSxPQUFPLEdBQUcsb0JBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUQsTUFBTSxXQUFXLEdBQUcsY0FBVyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUYsSUFBSSxnQkFBc0IsQ0FBQztZQUMzQixJQUFJLFlBQTBCLENBQUM7WUFFL0IsNkNBQTZDO1lBQzdDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRCxxQkFBUyxDQUFDLENBQUMsT0FBbUIsRUFBRSxFQUFFO2dCQUNoQyxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQVcsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLG9CQUFvQixFQUFFO29CQUN6QixPQUFPLGlCQUFVLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDaEY7Z0JBRUQsZ0JBQWdCLEdBQUcsV0FBSSxDQUFDLGNBQU8sQ0FBQyxnQkFBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztnQkFFL0UsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDO1lBQ0YsMEJBQTBCO1lBQzFCLHFCQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQ2xFLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsRUFDekMscUJBQVMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO2dCQUM1QixZQUFZLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFFckQsSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDakIsT0FBTyxpQkFBVSxDQUFDLElBQUksZ0NBQWdDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ2hGO2dCQUVELHNDQUFzQztnQkFDdEMsTUFBTSxjQUFjLEdBQUcsY0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ2pELFlBQVksQ0FBQyxNQUFNLEdBQUcsV0FBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2hFLFlBQVksQ0FBQyxLQUFLLEdBQUcsV0FBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRTlELGlFQUFpRTtnQkFDakUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUUvRCxtQkFBbUI7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDLEVBQ0YsZUFBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUNsQixNQUFNLGtCQUFrQixHQUFHO29CQUN6QixJQUFJLEVBQUUsYUFBYSxDQUFDLE9BQU87b0JBQzNCLE1BQU0sRUFBRSxhQUFhO29CQUNyQixXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7aUJBQ3RDLENBQUM7Z0JBRUYsa0NBQWtDO2dCQUNsQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2dCQUU3RSxPQUFPLGtCQUFrQixDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQixDQUNwQixhQUE2QyxFQUFFLGtCQUFzQztRQUVyRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQzFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUNqRCxDQUFDLElBQUksQ0FDSixlQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNyQixhQUFhLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDO1lBRXpDLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUNSLGtCQUFzQyxFQUFFLE9BQXVCO1FBRS9ELE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUNyQyxJQUFJLGtCQUFnRCxDQUFDO1FBRXJELGdDQUFnQztRQUNoQyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQWlDLENBQUM7U0FDNUY7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUM7WUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBaUIsQ0FBQztZQUVyRSw2RUFBNkU7WUFDN0UsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLG9CQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakUsa0JBQWtCLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBaUMsQ0FBQztZQUU5RSwwQ0FBMEM7WUFDMUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUM5RTtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFVO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3BELGVBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFTLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDbkQsZUFBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsZ0JBQVMsQ0FBQyxHQUFHLEVBQUUsb0JBQWEsQ0FBQyxLQUFLLENBQXFCLENBQUMsQ0FDcEUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXBQRCw4QkFvUEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7XG4gIEJhc2VFeGNlcHRpb24sXG4gIEpzb25PYmplY3QsXG4gIEpzb25QYXJzZU1vZGUsXG4gIFBhdGgsXG4gIGRpcm5hbWUsXG4gIGV4cGVyaW1lbnRhbCxcbiAgZ2V0U3lzdGVtUGF0aCxcbiAgam9pbixcbiAgbG9nZ2luZyxcbiAgbm9ybWFsaXplLFxuICBwYXJzZUpzb24sXG4gIHZpcnR1YWxGcyxcbn0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHsgcmVzb2x2ZSBhcyBub2RlUmVzb2x2ZSB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb25jYXRNYXAsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9qZWN0Tm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IocHJvamVjdE5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKGBQcm9qZWN0ICcke3Byb2plY3ROYW1lfScgY291bGQgbm90IGJlIGZvdW5kIGluIFdvcmtzcGFjZS5gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXROb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0TmFtZTogc3RyaW5nLCB0YXJnZXROYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgVGFyZ2V0ICcke3RhcmdldE5hbWV9JyBjb3VsZCBub3QgYmUgZm91bmQgaW4gcHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nLmApO1xuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25Ob3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0TmFtZTogc3RyaW5nLCBjb25maWd1cmF0aW9uTmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYENvbmZpZ3VyYXRpb24gJyR7Y29uZmlndXJhdGlvbk5hbWV9JyBjb3VsZCBub3QgYmUgZm91bmQgaW4gcHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nLmApO1xuICB9XG59XG5cbi8vIFRPRE86IGJyZWFrIHRoaXMgZXhjZXB0aW9uIGFwYXJ0IGludG8gbW9yZSBncmFudWxhciBvbmVzLlxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY2xhc3MgQnVpbGRlckNhbm5vdEJlUmVzb2x2ZWRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IoYnVpbGRlcjogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEJ1aWxkZXIgJyR7YnVpbGRlcn0nIGNhbm5vdCBiZSByZXNvbHZlZC5gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBjbGFzcyBBcmNoaXRlY3ROb3RZZXRMb2FkZWRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IoKSB7IHN1cGVyKGBBcmNoaXRlY3QgbmVlZHMgdG8gYmUgbG9hZGVkIGJlZm9yZSBBcmNoaXRlY3QgaXMgdXNlZC5gKTsgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBjbGFzcyBCdWlsZGVyTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IoYnVpbGRlcjogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEJ1aWxkZXIgJHtidWlsZGVyfSBjb3VsZCBub3QgYmUgZm91bmQuYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkZXJDb250ZXh0IHtcbiAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlcjtcbiAgaG9zdDogdmlydHVhbEZzLkhvc3Q8e30+O1xuICB3b3Jrc3BhY2U6IGV4cGVyaW1lbnRhbC53b3Jrc3BhY2UuV29ya3NwYWNlO1xuICBhcmNoaXRlY3Q6IEFyY2hpdGVjdDtcbiAgdGFyZ2V0U3BlY2lmaWVyPzogVGFyZ2V0U3BlY2lmaWVyO1xufVxuXG4vLyBUT0RPOiB1c2UgQnVpbGQgRXZlbnQgUHJvdG9jb2xcbi8vIGh0dHBzOi8vZG9jcy5iYXplbC5idWlsZC92ZXJzaW9ucy9tYXN0ZXIvYnVpbGQtZXZlbnQtcHJvdG9jb2wuaHRtbFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZWFwaXMvZ29vZ2xlYXBpcy90cmVlL21hc3Rlci9nb29nbGUvZGV2dG9vbHMvYnVpbGQvdjFcbi8qKlxuICogVE9ETzogdXNlIHVua25vd25cbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFdmVudDxCdWlsZFJlc3VsdFQgPSBhbnk+IHsgIC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8tYW55XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIHJlc3VsdD86IEJ1aWxkUmVzdWx0VDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkZXI8T3B0aW9uc1Q+IHtcbiAgcnVuKGJ1aWxkZXJDb25maWc6IEJ1aWxkZXJDb25maWd1cmF0aW9uPFBhcnRpYWw8T3B0aW9uc1Q+Pik6IE9ic2VydmFibGU8QnVpbGRFdmVudD47XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZGVyUGF0aHNNYXAge1xuICBidWlsZGVyczogeyBbazogc3RyaW5nXTogQnVpbGRlclBhdGhzIH07XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZGVyUGF0aHMge1xuICBjbGFzczogUGF0aDtcbiAgc2NoZW1hOiBQYXRoO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRlckRlc2NyaXB0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzY2hlbWE6IEpzb25PYmplY3Q7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZGVyQ29uc3RydWN0b3I8T3B0aW9uc1Q+IHtcbiAgbmV3KGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0KTogQnVpbGRlcjxPcHRpb25zVD47XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZGVyQ29uZmlndXJhdGlvbjxPcHRpb25zVCA9IHt9PiB7XG4gIHJvb3Q6IFBhdGg7XG4gIHNvdXJjZVJvb3Q/OiBQYXRoO1xuICBwcm9qZWN0VHlwZTogc3RyaW5nO1xuICBidWlsZGVyOiBzdHJpbmc7XG4gIG9wdGlvbnM6IE9wdGlvbnNUO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0U3BlY2lmaWVyPE9wdGlvbnNUID0ge30+IHtcbiAgcHJvamVjdDogc3RyaW5nO1xuICB0YXJnZXQ6IHN0cmluZztcbiAgY29uZmlndXJhdGlvbj86IHN0cmluZztcbiAgb3ZlcnJpZGVzPzogUGFydGlhbDxPcHRpb25zVD47XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRNYXAge1xuICBbazogc3RyaW5nXTogVGFyZ2V0O1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFRhcmdldE9wdGlvbnM8VCA9IEpzb25PYmplY3Q+ID0gVDtcbmV4cG9ydCBkZWNsYXJlIHR5cGUgVGFyZ2V0Q29uZmlndXJhdGlvbjxUID0gSnNvbk9iamVjdD4gPSBQYXJ0aWFsPFQ+O1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0PFQgPSBKc29uT2JqZWN0PiB7XG4gIGJ1aWxkZXI6IHN0cmluZztcbiAgb3B0aW9uczogVGFyZ2V0T3B0aW9uczxUPjtcbiAgY29uZmlndXJhdGlvbnM/OiB7IFtrOiBzdHJpbmddOiBUYXJnZXRDb25maWd1cmF0aW9uPFQ+IH07XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIEFyY2hpdGVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RhcmdldHNTY2hlbWFQYXRoID0gam9pbihub3JtYWxpemUoX19kaXJuYW1lKSwgJ3RhcmdldHMtc2NoZW1hLmpzb24nKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYnVpbGRlcnNTY2hlbWFQYXRoID0gam9pbihub3JtYWxpemUoX19kaXJuYW1lKSwgJ2J1aWxkZXJzLXNjaGVtYS5qc29uJyk7XG4gIHByaXZhdGUgX3RhcmdldHNTY2hlbWE6IEpzb25PYmplY3Q7XG4gIHByaXZhdGUgX2J1aWxkZXJzU2NoZW1hOiBKc29uT2JqZWN0O1xuICBwcml2YXRlIF9hcmNoaXRlY3RTY2hlbWFzTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3RhcmdldE1hcE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBUYXJnZXRNYXA+KCk7XG4gIHByaXZhdGUgX2J1aWxkZXJQYXRoc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBCdWlsZGVyUGF0aHM+KCk7XG4gIHByaXZhdGUgX2J1aWxkZXJEZXNjcmlwdGlvbk1hcCA9IG5ldyBNYXA8c3RyaW5nLCBCdWlsZGVyRGVzY3JpcHRpb24+KCk7XG4gIHByaXZhdGUgX2J1aWxkZXJDb25zdHJ1Y3Rvck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBCdWlsZGVyQ29uc3RydWN0b3I8e30+PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3dvcmtzcGFjZTogZXhwZXJpbWVudGFsLndvcmtzcGFjZS5Xb3Jrc3BhY2UpIHsgfVxuXG4gIGxvYWRBcmNoaXRlY3QoKSB7XG4gICAgaWYgKHRoaXMuX2FyY2hpdGVjdFNjaGVtYXNMb2FkZWQpIHtcbiAgICAgIHJldHVybiBvZih0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgICB0aGlzLl9sb2FkSnNvbkZpbGUodGhpcy5fdGFyZ2V0c1NjaGVtYVBhdGgpLFxuICAgICAgICB0aGlzLl9sb2FkSnNvbkZpbGUodGhpcy5fYnVpbGRlcnNTY2hlbWFQYXRoKSxcbiAgICAgICkucGlwZShcbiAgICAgICAgY29uY2F0TWFwKChbdGFyZ2V0c1NjaGVtYSwgYnVpbGRlcnNTY2hlbWFdKSA9PiB7XG4gICAgICAgICAgdGhpcy5fdGFyZ2V0c1NjaGVtYSA9IHRhcmdldHNTY2hlbWE7XG4gICAgICAgICAgdGhpcy5fYnVpbGRlcnNTY2hlbWEgPSBidWlsZGVyc1NjaGVtYTtcbiAgICAgICAgICB0aGlzLl9hcmNoaXRlY3RTY2hlbWFzTG9hZGVkID0gdHJ1ZTtcblxuICAgICAgICAgIC8vIFZhbGlkYXRlIGFuZCBjYWNoZSBhbGwgcHJvamVjdCB0YXJnZXQgbWFwcy5cbiAgICAgICAgICByZXR1cm4gZm9ya0pvaW4oXG4gICAgICAgICAgICAuLi50aGlzLl93b3Jrc3BhY2UubGlzdFByb2plY3ROYW1lcygpLm1hcChwcm9qZWN0TmFtZSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHVudmFsaWRhdGVkVGFyZ2V0TWFwID0gdGhpcy5fd29ya3NwYWNlLmdldFByb2plY3RUYXJnZXRzKHByb2plY3ROYW1lKTtcblxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd29ya3NwYWNlLnZhbGlkYXRlQWdhaW5zdFNjaGVtYTxUYXJnZXRNYXA+KFxuICAgICAgICAgICAgICAgIHVudmFsaWRhdGVkVGFyZ2V0TWFwLCB0aGlzLl90YXJnZXRzU2NoZW1hKS5waXBlKFxuICAgICAgICAgICAgICAgICAgdGFwKHRhcmdldE1hcCA9PiB0aGlzLl90YXJnZXRNYXBNYXAuc2V0KHByb2plY3ROYW1lLCB0YXJnZXRNYXApKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcyksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGxpc3RQcm9qZWN0VGFyZ2V0cyhwcm9qZWN0TmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9nZXRQcm9qZWN0VGFyZ2V0TWFwKHByb2plY3ROYW1lKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQcm9qZWN0VGFyZ2V0TWFwKHByb2plY3ROYW1lOiBzdHJpbmcpOiBUYXJnZXRNYXAge1xuICAgIGlmICghdGhpcy5fdGFyZ2V0TWFwTWFwLmhhcyhwcm9qZWN0TmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBQcm9qZWN0Tm90Rm91bmRFeGNlcHRpb24ocHJvamVjdE5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl90YXJnZXRNYXBNYXAuZ2V0KHByb2plY3ROYW1lKSBhcyBUYXJnZXRNYXA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQcm9qZWN0VGFyZ2V0PFQgPSB7fT4ocHJvamVjdE5hbWU6IHN0cmluZywgdGFyZ2V0TmFtZTogc3RyaW5nKTogVGFyZ2V0PFQ+IHtcbiAgICBjb25zdCB0YXJnZXRNYXAgPSB0aGlzLl9nZXRQcm9qZWN0VGFyZ2V0TWFwKHByb2plY3ROYW1lKTtcblxuICAgIGNvbnN0IHRhcmdldCA9IHRhcmdldE1hcFt0YXJnZXROYW1lXSBhcyB7fSBhcyBUYXJnZXQ8VD47XG5cbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgdGhyb3cgbmV3IFRhcmdldE5vdEZvdW5kRXhjZXB0aW9uKHByb2plY3ROYW1lLCB0YXJnZXROYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZ2V0QnVpbGRlckNvbmZpZ3VyYXRpb248T3B0aW9uc1Q+KHRhcmdldFNwZWM6IFRhcmdldFNwZWNpZmllcik6IEJ1aWxkZXJDb25maWd1cmF0aW9uPE9wdGlvbnNUPiB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvamVjdDogcHJvamVjdE5hbWUsXG4gICAgICB0YXJnZXQ6IHRhcmdldE5hbWUsXG4gICAgICBjb25maWd1cmF0aW9uOiBjb25maWd1cmF0aW9uTmFtZSxcbiAgICAgIG92ZXJyaWRlcyxcbiAgICB9ID0gdGFyZ2V0U3BlYztcblxuICAgIGNvbnN0IHByb2plY3QgPSB0aGlzLl93b3Jrc3BhY2UuZ2V0UHJvamVjdChwcm9qZWN0TmFtZSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5fZ2V0UHJvamVjdFRhcmdldChwcm9qZWN0TmFtZSwgdGFyZ2V0TmFtZSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRhcmdldC5vcHRpb25zO1xuICAgIGxldCBjb25maWd1cmF0aW9uOiBUYXJnZXRDb25maWd1cmF0aW9uID0ge307XG5cbiAgICBpZiAoY29uZmlndXJhdGlvbk5hbWUpIHtcbiAgICAgIGlmICghdGFyZ2V0LmNvbmZpZ3VyYXRpb25zKSB7XG4gICAgICAgIHRocm93IG5ldyBDb25maWd1cmF0aW9uTm90Rm91bmRFeGNlcHRpb24ocHJvamVjdE5hbWUsIGNvbmZpZ3VyYXRpb25OYW1lKTtcbiAgICAgIH1cblxuICAgICAgY29uZmlndXJhdGlvbiA9IHRhcmdldC5jb25maWd1cmF0aW9uc1tjb25maWd1cmF0aW9uTmFtZV07XG5cbiAgICAgIGlmICghY29uZmlndXJhdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbk5vdEZvdW5kRXhjZXB0aW9uKHByb2plY3ROYW1lLCBjb25maWd1cmF0aW9uTmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYnVpbGRlckNvbmZpZ3VyYXRpb246IEJ1aWxkZXJDb25maWd1cmF0aW9uPE9wdGlvbnNUPiA9IHtcbiAgICAgIHJvb3Q6IHByb2plY3Qucm9vdCBhcyBQYXRoLFxuICAgICAgc291cmNlUm9vdDogcHJvamVjdC5zb3VyY2VSb290IGFzIFBhdGggfCB1bmRlZmluZWQsXG4gICAgICBwcm9qZWN0VHlwZTogcHJvamVjdC5wcm9qZWN0VHlwZSxcbiAgICAgIGJ1aWxkZXI6IHRhcmdldC5idWlsZGVyLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLFxuICAgICAgICAuLi5vdmVycmlkZXMgYXMge30sXG4gICAgICB9IGFzIE9wdGlvbnNULFxuICAgIH07XG5cbiAgICByZXR1cm4gYnVpbGRlckNvbmZpZ3VyYXRpb247XG4gIH1cblxuICBydW48T3B0aW9uc1Q+KFxuICAgIGJ1aWxkZXJDb25maWc6IEJ1aWxkZXJDb25maWd1cmF0aW9uPE9wdGlvbnNUPixcbiAgICBwYXJ0aWFsQ29udGV4dDogUGFydGlhbDxCdWlsZGVyQ29udGV4dD4gPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxCdWlsZEV2ZW50PiB7XG4gICAgY29uc3QgY29udGV4dDogQnVpbGRlckNvbnRleHQgPSB7XG4gICAgICBsb2dnZXI6IG5ldyBsb2dnaW5nLk51bGxMb2dnZXIoKSxcbiAgICAgIGFyY2hpdGVjdDogdGhpcyxcbiAgICAgIGhvc3Q6IHRoaXMuX3dvcmtzcGFjZS5ob3N0LFxuICAgICAgd29ya3NwYWNlOiB0aGlzLl93b3Jrc3BhY2UsXG4gICAgICAuLi5wYXJ0aWFsQ29udGV4dCxcbiAgICB9O1xuXG4gICAgbGV0IGJ1aWxkZXJEZXNjcmlwdGlvbjogQnVpbGRlckRlc2NyaXB0aW9uO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0QnVpbGRlckRlc2NyaXB0aW9uKGJ1aWxkZXJDb25maWcpLnBpcGUoXG4gICAgICB0YXAoZGVzY3JpcHRpb24gPT4gYnVpbGRlckRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24pLFxuICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMudmFsaWRhdGVCdWlsZGVyT3B0aW9ucyhidWlsZGVyQ29uZmlnLCBidWlsZGVyRGVzY3JpcHRpb24pKSxcbiAgICAgIHRhcCh2YWxpZGF0ZWRCdWlsZGVyQ29uZmlnID0+IGJ1aWxkZXJDb25maWcgPSB2YWxpZGF0ZWRCdWlsZGVyQ29uZmlnKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLmdldEJ1aWxkZXIoYnVpbGRlckRlc2NyaXB0aW9uLCBjb250ZXh0KSksXG4gICAgICBjb25jYXRNYXAoYnVpbGRlciA9PiBidWlsZGVyLnJ1bihidWlsZGVyQ29uZmlnKSksXG4gICAgKTtcbiAgfVxuXG4gIGdldEJ1aWxkZXJEZXNjcmlwdGlvbjxPcHRpb25zVD4oXG4gICAgYnVpbGRlckNvbmZpZzogQnVpbGRlckNvbmZpZ3VyYXRpb248T3B0aW9uc1Q+LFxuICApOiBPYnNlcnZhYmxlPEJ1aWxkZXJEZXNjcmlwdGlvbj4ge1xuICAgIC8vIENoZWNrIGNhY2hlIGZvciB0aGlzIGJ1aWxkZXIgZGVzY3JpcHRpb24uXG4gICAgaWYgKHRoaXMuX2J1aWxkZXJEZXNjcmlwdGlvbk1hcC5oYXMoYnVpbGRlckNvbmZpZy5idWlsZGVyKSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuX2J1aWxkZXJEZXNjcmlwdGlvbk1hcC5nZXQoYnVpbGRlckNvbmZpZy5idWlsZGVyKSBhcyBCdWlsZGVyRGVzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzKSA9PiB7XG4gICAgICAvLyBUT0RPOiB0aGlzIHByb2JhYmx5IG5lZWRzIHRvIGJlIG1vcmUgbGlrZSBOb2RlTW9kdWxlc0VuZ2luZUhvc3QuXG4gICAgICBjb25zdCBiYXNlZGlyID0gZ2V0U3lzdGVtUGF0aCh0aGlzLl93b3Jrc3BhY2Uucm9vdCk7XG4gICAgICBjb25zdCBbcGtnLCBidWlsZGVyTmFtZV0gPSBidWlsZGVyQ29uZmlnLmJ1aWxkZXIuc3BsaXQoJzonKTtcbiAgICAgIGNvbnN0IHBrZ0pzb25QYXRoID0gbm9kZVJlc29sdmUocGtnLCB7IGJhc2VkaXIsIHJlc29sdmVQYWNrYWdlSnNvbjogdHJ1ZSwgY2hlY2tMb2NhbDogdHJ1ZSB9KTtcbiAgICAgIGxldCBidWlsZGVyc0pzb25QYXRoOiBQYXRoO1xuICAgICAgbGV0IGJ1aWxkZXJQYXRoczogQnVpbGRlclBhdGhzO1xuXG4gICAgICAvLyBSZWFkIHRoZSBgYnVpbGRlcnNgIGVudHJ5IG9mIHBhY2thZ2UuanNvbi5cbiAgICAgIHJldHVybiB0aGlzLl9sb2FkSnNvbkZpbGUobm9ybWFsaXplKHBrZ0pzb25QYXRoKSkucGlwZShcbiAgICAgICAgY29uY2F0TWFwKChwa2dKc29uOiBKc29uT2JqZWN0KSA9PiB7XG4gICAgICAgICAgY29uc3QgcGtnSnNvbkJ1aWxkZXJzZW50cnkgPSBwa2dKc29uWydidWlsZGVycyddIGFzIHN0cmluZztcbiAgICAgICAgICBpZiAoIXBrZ0pzb25CdWlsZGVyc2VudHJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihuZXcgQnVpbGRlckNhbm5vdEJlUmVzb2x2ZWRFeGNlcHRpb24oYnVpbGRlckNvbmZpZy5idWlsZGVyKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnVpbGRlcnNKc29uUGF0aCA9IGpvaW4oZGlybmFtZShub3JtYWxpemUocGtnSnNvblBhdGgpKSwgcGtnSnNvbkJ1aWxkZXJzZW50cnkpO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRKc29uRmlsZShidWlsZGVyc0pzb25QYXRoKTtcbiAgICAgICAgfSksXG4gICAgICAgIC8vIFZhbGlkYXRlIGJ1aWxkZXJzIGpzb24uXG4gICAgICAgIGNvbmNhdE1hcCgoYnVpbGRlclBhdGhzTWFwKSA9PiB0aGlzLl93b3Jrc3BhY2UudmFsaWRhdGVBZ2FpbnN0U2NoZW1hPEJ1aWxkZXJQYXRoc01hcD4oXG4gICAgICAgICAgYnVpbGRlclBhdGhzTWFwLCB0aGlzLl9idWlsZGVyc1NjaGVtYSkpLFxuICAgICAgICBjb25jYXRNYXAoKGJ1aWxkZXJQYXRoc01hcCkgPT4ge1xuICAgICAgICAgIGJ1aWxkZXJQYXRocyA9IGJ1aWxkZXJQYXRoc01hcC5idWlsZGVyc1tidWlsZGVyTmFtZV07XG5cbiAgICAgICAgICBpZiAoIWJ1aWxkZXJQYXRocykge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobmV3IEJ1aWxkZXJDYW5ub3RCZVJlc29sdmVkRXhjZXB0aW9uKGJ1aWxkZXJDb25maWcuYnVpbGRlcikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFJlc29sdmUgcGF0aHMgaW4gdGhlIGJ1aWxkZXIgcGF0aHMuXG4gICAgICAgICAgY29uc3QgYnVpbGRlckpzb25EaXIgPSBkaXJuYW1lKGJ1aWxkZXJzSnNvblBhdGgpO1xuICAgICAgICAgIGJ1aWxkZXJQYXRocy5zY2hlbWEgPSBqb2luKGJ1aWxkZXJKc29uRGlyLCBidWlsZGVyUGF0aHMuc2NoZW1hKTtcbiAgICAgICAgICBidWlsZGVyUGF0aHMuY2xhc3MgPSBqb2luKGJ1aWxkZXJKc29uRGlyLCBidWlsZGVyUGF0aHMuY2xhc3MpO1xuXG4gICAgICAgICAgLy8gU2F2ZSB0aGUgYnVpbGRlciBwYXRocyBzbyB0aGF0IHdlIGNhbiBsYXppbHkgbG9hZCB0aGUgYnVpbGRlci5cbiAgICAgICAgICB0aGlzLl9idWlsZGVyUGF0aHNNYXAuc2V0KGJ1aWxkZXJDb25maWcuYnVpbGRlciwgYnVpbGRlclBhdGhzKTtcblxuICAgICAgICAgIC8vIExvYWQgdGhlIHNjaGVtYS5cbiAgICAgICAgICByZXR1cm4gdGhpcy5fbG9hZEpzb25GaWxlKGJ1aWxkZXJQYXRocy5zY2hlbWEpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKGJ1aWxkZXJTY2hlbWEgPT4ge1xuICAgICAgICAgIGNvbnN0IGJ1aWxkZXJEZXNjcmlwdGlvbiA9IHtcbiAgICAgICAgICAgIG5hbWU6IGJ1aWxkZXJDb25maWcuYnVpbGRlcixcbiAgICAgICAgICAgIHNjaGVtYTogYnVpbGRlclNjaGVtYSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBidWlsZGVyUGF0aHMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIC8vIFNhdmUgdG8gY2FjaGUgYmVmb3JlIHJldHVybmluZy5cbiAgICAgICAgICB0aGlzLl9idWlsZGVyRGVzY3JpcHRpb25NYXAuc2V0KGJ1aWxkZXJEZXNjcmlwdGlvbi5uYW1lLCBidWlsZGVyRGVzY3JpcHRpb24pO1xuXG4gICAgICAgICAgcmV0dXJuIGJ1aWxkZXJEZXNjcmlwdGlvbjtcbiAgICAgICAgfSksXG4gICAgICApLnN1YnNjcmliZShvYnMpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGVCdWlsZGVyT3B0aW9uczxPcHRpb25zVD4oXG4gICAgYnVpbGRlckNvbmZpZzogQnVpbGRlckNvbmZpZ3VyYXRpb248T3B0aW9uc1Q+LCBidWlsZGVyRGVzY3JpcHRpb246IEJ1aWxkZXJEZXNjcmlwdGlvbixcbiAgKTogT2JzZXJ2YWJsZTxCdWlsZGVyQ29uZmlndXJhdGlvbjxPcHRpb25zVD4+IHtcbiAgICByZXR1cm4gdGhpcy5fd29ya3NwYWNlLnZhbGlkYXRlQWdhaW5zdFNjaGVtYTxPcHRpb25zVD4oXG4gICAgICBidWlsZGVyQ29uZmlnLm9wdGlvbnMsIGJ1aWxkZXJEZXNjcmlwdGlvbi5zY2hlbWEsXG4gICAgKS5waXBlKFxuICAgICAgbWFwKHZhbGlkYXRlZE9wdGlvbnMgPT4ge1xuICAgICAgICBidWlsZGVyQ29uZmlnLm9wdGlvbnMgPSB2YWxpZGF0ZWRPcHRpb25zO1xuXG4gICAgICAgIHJldHVybiBidWlsZGVyQ29uZmlnO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGdldEJ1aWxkZXI8T3B0aW9uc1Q+KFxuICAgIGJ1aWxkZXJEZXNjcmlwdGlvbjogQnVpbGRlckRlc2NyaXB0aW9uLCBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgKTogQnVpbGRlcjxPcHRpb25zVD4ge1xuICAgIGNvbnN0IG5hbWUgPSBidWlsZGVyRGVzY3JpcHRpb24ubmFtZTtcbiAgICBsZXQgYnVpbGRlckNvbnN0cnVjdG9yOiBCdWlsZGVyQ29uc3RydWN0b3I8T3B0aW9uc1Q+O1xuXG4gICAgLy8gQ2hlY2sgY2FjaGUgZm9yIHRoaXMgYnVpbGRlci5cbiAgICBpZiAodGhpcy5fYnVpbGRlckNvbnN0cnVjdG9yTWFwLmhhcyhuYW1lKSkge1xuICAgICAgYnVpbGRlckNvbnN0cnVjdG9yID0gdGhpcy5fYnVpbGRlckNvbnN0cnVjdG9yTWFwLmdldChuYW1lKSBhcyBCdWlsZGVyQ29uc3RydWN0b3I8T3B0aW9uc1Q+O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMuX2J1aWxkZXJQYXRoc01hcC5oYXMobmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkZXJOb3RGb3VuZEV4Y2VwdGlvbihuYW1lKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYnVpbGRlclBhdGhzID0gdGhpcy5fYnVpbGRlclBhdGhzTWFwLmdldChuYW1lKSBhcyBCdWlsZGVyUGF0aHM7XG5cbiAgICAgIC8vIFRPRE86IHN1cHBvcnQgbW9yZSB0aGFuIHRoZSBkZWZhdWx0IGV4cG9ydCwgbWF5YmUgdmlhIGJ1aWxkZXIjaW1wb3J0LW5hbWUuXG4gICAgICBjb25zdCBidWlsZGVyTW9kdWxlID0gcmVxdWlyZShnZXRTeXN0ZW1QYXRoKGJ1aWxkZXJQYXRocy5jbGFzcykpO1xuICAgICAgYnVpbGRlckNvbnN0cnVjdG9yID0gYnVpbGRlck1vZHVsZVsnZGVmYXVsdCddIGFzIEJ1aWxkZXJDb25zdHJ1Y3RvcjxPcHRpb25zVD47XG5cbiAgICAgIC8vIFNhdmUgYnVpbGRlciB0byBjYWNoZSBiZWZvcmUgcmV0dXJuaW5nLlxuICAgICAgdGhpcy5fYnVpbGRlckNvbnN0cnVjdG9yTWFwLnNldChidWlsZGVyRGVzY3JpcHRpb24ubmFtZSwgYnVpbGRlckNvbnN0cnVjdG9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IGJ1aWxkZXJDb25zdHJ1Y3Rvcihjb250ZXh0KTtcblxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZEpzb25GaWxlKHBhdGg6IFBhdGgpOiBPYnNlcnZhYmxlPEpzb25PYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5fd29ya3NwYWNlLmhvc3QucmVhZChub3JtYWxpemUocGF0aCkpLnBpcGUoXG4gICAgICBtYXAoYnVmZmVyID0+IHZpcnR1YWxGcy5maWxlQnVmZmVyVG9TdHJpbmcoYnVmZmVyKSksXG4gICAgICBtYXAoc3RyID0+IHBhcnNlSnNvbihzdHIsIEpzb25QYXJzZU1vZGUuTG9vc2UpIGFzIHt9IGFzIEpzb25PYmplY3QpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export interface Schema {
2
+ currentDirectory: string;
3
+ target?: Target;
4
+ workspaceRoot: string;
5
+ }
6
+ export interface Target {
7
+ configuration?: string;
8
+ project: string;
9
+ target: string;
10
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
3
+ // CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndW1lbnQtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJkaXN0LXNjaGVtYS9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9hcmNoaXRlY3Qvc3JjL2FyZ3VtZW50LXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsbUZBQW1GO0FBQ25GLG9GQUFvRiIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gVEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVELiBUTyBVUERBVEUgVEhJUyBGSUxFIFlPVSBORUVEIFRPIENIQU5HRSBUSEVcbi8vIENPUlJFU1BPTkRJTkcgSlNPTiBTQ0hFTUEgRklMRSwgVEhFTiBSVU4gZGV2a2l0LWFkbWluIGJ1aWxkIChvciBiYXplbCBidWlsZCAuLi4pLlxuXG4vLyB0c2xpbnQ6ZGlzYWJsZTpuby1nbG9iYWwtdHNsaW50LWRpc2FibGVcbi8vIHRzbGludDpkaXNhYmxlXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hIHtcbiAgICBjdXJyZW50RGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgdGFyZ2V0PzogICAgICAgICAgVGFyZ2V0O1xuICAgIHdvcmtzcGFjZVJvb3Q6ICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXQge1xuICAgIGNvbmZpZ3VyYXRpb24/OiBzdHJpbmc7XG4gICAgcHJvamVjdDogICAgICAgIHN0cmluZztcbiAgICB0YXJnZXQ6ICAgICAgICAgc3RyaW5nO1xufVxuIl19
package/src/index.d.ts CHANGED
@@ -5,4 +5,7 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- export * from './architect';
8
+ /**
9
+ * @deprecated
10
+ */
11
+ export * from './architect-legacy';
package/src/index.js CHANGED
@@ -1,4 +1,8 @@
1
1
  "use strict";
2
+ function __export(m) {
3
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
+ }
5
+ Object.defineProperty(exports, "__esModule", { value: true });
2
6
  /**
3
7
  * @license
4
8
  * Copyright Google Inc. All Rights Reserved.
@@ -6,9 +10,8 @@
6
10
  * Use of this source code is governed by an MIT-style license that can be
7
11
  * found in the LICENSE file at https://angular.io/license
8
12
  */
9
- function __export(m) {
10
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
11
- }
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __export(require("./architect"));
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2FyY2hpdGVjdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7QUFFSCxpQ0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYXJjaGl0ZWN0JztcbiJdfQ==
13
+ /**
14
+ * @deprecated
15
+ */
16
+ __export(require("./architect-legacy"));
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2FyY2hpdGVjdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0dBTUc7QUFDSDs7R0FFRztBQUNILHdDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9hcmNoaXRlY3QtbGVnYWN5JztcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ export interface Schema {
2
+ currentDirectory: string;
3
+ info: {
4
+ [key: string]: any;
5
+ };
6
+ options?: {
7
+ [key: string]: any;
8
+ };
9
+ reason: string;
10
+ target?: Target;
11
+ workspaceRoot: string;
12
+ }
13
+ export interface Target {
14
+ configuration?: string;
15
+ project: string;
16
+ target: string;
17
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
3
+ // CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJkaXN0LXNjaGVtYS9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9hcmNoaXRlY3Qvc3JjL2lucHV0LXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsbUZBQW1GO0FBQ25GLG9GQUFvRiIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gVEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVELiBUTyBVUERBVEUgVEhJUyBGSUxFIFlPVSBORUVEIFRPIENIQU5HRSBUSEVcbi8vIENPUlJFU1BPTkRJTkcgSlNPTiBTQ0hFTUEgRklMRSwgVEhFTiBSVU4gZGV2a2l0LWFkbWluIGJ1aWxkIChvciBiYXplbCBidWlsZCAuLi4pLlxuXG4vLyB0c2xpbnQ6ZGlzYWJsZTpuby1nbG9iYWwtdHNsaW50LWRpc2FibGVcbi8vIHRzbGludDpkaXNhYmxlXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hIHtcbiAgICBjdXJyZW50RGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgaW5mbzogICAgICAgICAgICAgeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgICBvcHRpb25zPzogICAgICAgICB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICAgIHJlYXNvbjogICAgICAgICAgIHN0cmluZztcbiAgICB0YXJnZXQ/OiAgICAgICAgICBUYXJnZXQ7XG4gICAgd29ya3NwYWNlUm9vdDogICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldCB7XG4gICAgY29uZmlndXJhdGlvbj86IHN0cmluZztcbiAgICBwcm9qZWN0OiAgICAgICAgc3RyaW5nO1xuICAgIHRhcmdldDogICAgICAgICBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ export interface Schema {
2
+ builderName?: string;
3
+ error?: string;
4
+ success: boolean;
5
+ target?: Target;
6
+ }
7
+ export interface Target {
8
+ configuration?: string;
9
+ project: string;
10
+ target: string;
11
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
3
+ // CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LXNjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsiZGlzdC1zY2hlbWEvcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYXJjaGl0ZWN0L3NyYy9vdXRwdXQtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxtRkFBbUY7QUFDbkYsb0ZBQW9GIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQuIFRPIFVQREFURSBUSElTIEZJTEUgWU9VIE5FRUQgVE8gQ0hBTkdFIFRIRVxuLy8gQ09SUkVTUE9ORElORyBKU09OIFNDSEVNQSBGSUxFLCBUSEVOIFJVTiBkZXZraXQtYWRtaW4gYnVpbGQgKG9yIGJhemVsIGJ1aWxkIC4uLikuXG5cbi8vIHRzbGludDpkaXNhYmxlOm5vLWdsb2JhbC10c2xpbnQtZGlzYWJsZVxuLy8gdHNsaW50OmRpc2FibGVcblxuZXhwb3J0IGludGVyZmFjZSBTY2hlbWEge1xuICAgIGJ1aWxkZXJOYW1lPzogc3RyaW5nO1xuICAgIGVycm9yPzogICAgICAgc3RyaW5nO1xuICAgIHN1Y2Nlc3M6ICAgICAgYm9vbGVhbjtcbiAgICB0YXJnZXQ/OiAgICAgIFRhcmdldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXQge1xuICAgIGNvbmZpZ3VyYXRpb24/OiBzdHJpbmc7XG4gICAgcHJvamVjdDogICAgICAgIHN0cmluZztcbiAgICB0YXJnZXQ6ICAgICAgICAgc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,16 @@
1
+ export interface Schema {
2
+ builder: {
3
+ [key: string]: any;
4
+ };
5
+ current?: number;
6
+ error?: any;
7
+ state: State;
8
+ status?: string;
9
+ total?: number;
10
+ }
11
+ export declare enum State {
12
+ Error = "error",
13
+ Running = "running",
14
+ Stopped = "stopped",
15
+ Waiting = "waiting"
16
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ // THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
3
+ // CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ var State;
6
+ (function (State) {
7
+ State["Error"] = "error";
8
+ State["Running"] = "running";
9
+ State["Stopped"] = "stopped";
10
+ State["Waiting"] = "waiting";
11
+ })(State = exports.State || (exports.State = {}));
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJkaXN0LXNjaGVtYS9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9hcmNoaXRlY3Qvc3JjL3Byb2dyZXNzLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsbUZBQW1GO0FBQ25GLG9GQUFvRjs7QUFjcEYsSUFBWSxLQUtYO0FBTEQsV0FBWSxLQUFLO0lBQ2Isd0JBQWUsQ0FBQTtJQUNmLDRCQUFtQixDQUFBO0lBQ25CLDRCQUFtQixDQUFBO0lBQ25CLDRCQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyxLQUFLLEdBQUwsYUFBSyxLQUFMLGFBQUssUUFLaEIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRC4gVE8gVVBEQVRFIFRISVMgRklMRSBZT1UgTkVFRCBUTyBDSEFOR0UgVEhFXG4vLyBDT1JSRVNQT05ESU5HIEpTT04gU0NIRU1BIEZJTEUsIFRIRU4gUlVOIGRldmtpdC1hZG1pbiBidWlsZCAob3IgYmF6ZWwgYnVpbGQgLi4uKS5cblxuLy8gdHNsaW50OmRpc2FibGU6bm8tZ2xvYmFsLXRzbGludC1kaXNhYmxlXG4vLyB0c2xpbnQ6ZGlzYWJsZVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYSB7XG4gICAgYnVpbGRlcjogIHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gICAgY3VycmVudD86IG51bWJlcjtcbiAgICBlcnJvcj86ICAgYW55O1xuICAgIHN0YXRlOiAgICBTdGF0ZTtcbiAgICBzdGF0dXM/OiAgc3RyaW5nO1xuICAgIHRvdGFsPzogICBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIFN0YXRlIHtcbiAgICBFcnJvciA9IFwiZXJyb3JcIixcbiAgICBSdW5uaW5nID0gXCJydW5uaW5nXCIsXG4gICAgU3RvcHBlZCA9IFwic3RvcHBlZFwiLFxuICAgIFdhaXRpbmcgPSBcIndhaXRpbmdcIixcbn1cbiJdfQ==
@@ -1 +1,4 @@
1
+ /**
2
+ * @deprecated
3
+ */
1
4
  export declare function request(url: string, headers?: {}): Promise<string>;
@@ -10,6 +10,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  const http = require("http");
11
11
  const https = require("https");
12
12
  const Url = require("url");
13
+ /**
14
+ * @deprecated
15
+ */
13
16
  function request(url, headers = {}) {
14
17
  return new Promise((resolve, reject) => {
15
18
  const u = Url.parse(url);
@@ -56,4 +59,4 @@ function request(url, headers = {}) {
56
59
  });
57
60
  }
58
61
  exports.request = request;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYXJjaGl0ZWN0L3Rlc3RpbmcvcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsMkJBQTJCO0FBRTNCLFNBQWdCLE9BQU8sQ0FBQyxHQUFXLEVBQUUsT0FBTyxHQUFHLEVBQUU7SUFDL0MsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sT0FBTyxHQUF3QjtZQUNuQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7WUFDcEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1lBQ3BCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtZQUNaLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtZQUNaLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtZQUNaLE9BQU8sa0JBQUksUUFBUSxFQUFFLFdBQVcsSUFBSyxPQUFPLENBQUU7U0FDL0MsQ0FBQztRQUVGLFNBQVMsU0FBUyxDQUFDLEdBQXlCO1lBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxFQUFFO2dCQUM1QywrQ0FBK0M7Z0JBQy9DLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDYixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsZUFBZSxHQUFHLDBCQUEwQixHQUFHLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ2xGO2lCQUFNO2dCQUNMLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDZCxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtvQkFDckIsSUFBSSxJQUFJLEtBQUssQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO29CQUNqQixJQUFJO3dCQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZjtvQkFBQyxPQUFPLEdBQUcsRUFBRTt3QkFDWixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ2I7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMvRCxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvQjthQUFNLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxPQUFPLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQTFDRCwwQkEwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSAnaHR0cHMnO1xuaW1wb3J0ICogYXMgVXJsIGZyb20gJ3VybCc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0KHVybDogc3RyaW5nLCBoZWFkZXJzID0ge30pOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHUgPSBVcmwucGFyc2UodXJsKTtcbiAgICBjb25zdCBvcHRpb25zOiBodHRwLlJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgaG9zdG5hbWU6IHUuaG9zdG5hbWUsXG4gICAgICBwcm90b2NvbDogdS5wcm90b2NvbCxcbiAgICAgIGhvc3Q6IHUuaG9zdCxcbiAgICAgIHBvcnQ6IHUucG9ydCxcbiAgICAgIHBhdGg6IHUucGF0aCxcbiAgICAgIGhlYWRlcnM6IHsgJ0FjY2VwdCc6ICd0ZXh0L2h0bWwnLCAuLi5oZWFkZXJzIH0sXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIF9jYWxsYmFjayhyZXM6IGh0dHAuSW5jb21pbmdNZXNzYWdlKSB7XG4gICAgICBpZiAoIXJlcy5zdGF0dXNDb2RlIHx8IHJlcy5zdGF0dXNDb2RlID49IDQwMCkge1xuICAgICAgICAvLyBDb25zdW1lIHRoZSByZXN0IG9mIHRoZSBkYXRhIHRvIGZyZWUgbWVtb3J5LlxuICAgICAgICByZXMucmVzdW1lKCk7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoYFJlcXVlc3RpbmcgXCIke3VybH1cIiByZXR1cm5lZCBzdGF0dXMgY29kZSAke3Jlcy5zdGF0dXNDb2RlfS5gKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXMuc2V0RW5jb2RpbmcoJ3V0ZjgnKTtcbiAgICAgICAgbGV0IGRhdGEgPSAnJztcbiAgICAgICAgcmVzLm9uKCdkYXRhJywgY2h1bmsgPT4ge1xuICAgICAgICAgIGRhdGEgKz0gY2h1bms7XG4gICAgICAgIH0pO1xuICAgICAgICByZXMub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHUucHJvdG9jb2wgPT0gJ2h0dHBzOicpIHtcbiAgICAgIG9wdGlvbnMuYWdlbnQgPSBuZXcgaHR0cHMuQWdlbnQoeyByZWplY3RVbmF1dGhvcml6ZWQ6IGZhbHNlIH0pO1xuICAgICAgaHR0cHMuZ2V0KG9wdGlvbnMsIF9jYWxsYmFjayk7XG4gICAgfSBlbHNlIGlmICh1LnByb3RvY29sID09ICdodHRwOicpIHtcbiAgICAgIGh0dHAuZ2V0KG9wdGlvbnMsIF9jYWxsYmFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwcm90b2NvbDogJHtKU09OLnN0cmluZ2lmeSh1LnByb3RvY29sKX0uYCk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYXJjaGl0ZWN0L3Rlc3RpbmcvcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsMkJBQTJCO0FBRTNCOztHQUVHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLEdBQVcsRUFBRSxPQUFPLEdBQUcsRUFBRTtJQUMvQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQXdCO1lBQ25DLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtZQUNwQixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7WUFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osT0FBTyxrQkFBSSxRQUFRLEVBQUUsV0FBVyxJQUFLLE9BQU8sQ0FBRTtTQUMvQyxDQUFDO1FBRUYsU0FBUyxTQUFTLENBQUMsR0FBeUI7WUFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLEVBQUU7Z0JBQzVDLCtDQUErQztnQkFDL0MsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNiLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxlQUFlLEdBQUcsMEJBQTBCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDbEY7aUJBQU07Z0JBQ0wsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNkLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUNyQixJQUFJLElBQUksS0FBSyxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQztnQkFDSCxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7b0JBQ2pCLElBQUk7d0JBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNmO29CQUFDLE9BQU8sR0FBRyxFQUFFO3dCQUNaLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDYjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLEVBQUU7WUFDMUIsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQy9CO2FBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLE9BQU8sRUFBRTtZQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUM5QjthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBMUNELDBCQTBDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgKiBhcyBVcmwgZnJvbSAndXJsJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdCh1cmw6IHN0cmluZywgaGVhZGVycyA9IHt9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCB1ID0gVXJsLnBhcnNlKHVybCk7XG4gICAgY29uc3Qgb3B0aW9uczogaHR0cC5SZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgIGhvc3RuYW1lOiB1Lmhvc3RuYW1lLFxuICAgICAgcHJvdG9jb2w6IHUucHJvdG9jb2wsXG4gICAgICBob3N0OiB1Lmhvc3QsXG4gICAgICBwb3J0OiB1LnBvcnQsXG4gICAgICBwYXRoOiB1LnBhdGgsXG4gICAgICBoZWFkZXJzOiB7ICdBY2NlcHQnOiAndGV4dC9odG1sJywgLi4uaGVhZGVycyB9LFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBfY2FsbGJhY2socmVzOiBodHRwLkluY29taW5nTWVzc2FnZSkge1xuICAgICAgaWYgKCFyZXMuc3RhdHVzQ29kZSB8fCByZXMuc3RhdHVzQ29kZSA+PSA0MDApIHtcbiAgICAgICAgLy8gQ29uc3VtZSB0aGUgcmVzdCBvZiB0aGUgZGF0YSB0byBmcmVlIG1lbW9yeS5cbiAgICAgICAgcmVzLnJlc3VtZSgpO1xuICAgICAgICByZWplY3QobmV3IEVycm9yKGBSZXF1ZXN0aW5nIFwiJHt1cmx9XCIgcmV0dXJuZWQgc3RhdHVzIGNvZGUgJHtyZXMuc3RhdHVzQ29kZX0uYCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzLnNldEVuY29kaW5nKCd1dGY4Jyk7XG4gICAgICAgIGxldCBkYXRhID0gJyc7XG4gICAgICAgIHJlcy5vbignZGF0YScsIGNodW5rID0+IHtcbiAgICAgICAgICBkYXRhICs9IGNodW5rO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1LnByb3RvY29sID09ICdodHRwczonKSB7XG4gICAgICBvcHRpb25zLmFnZW50ID0gbmV3IGh0dHBzLkFnZW50KHsgcmVqZWN0VW5hdXRob3JpemVkOiBmYWxzZSB9KTtcbiAgICAgIGh0dHBzLmdldChvcHRpb25zLCBfY2FsbGJhY2spO1xuICAgIH0gZWxzZSBpZiAodS5wcm90b2NvbCA9PSAnaHR0cDonKSB7XG4gICAgICBodHRwLmdldChvcHRpb25zLCBfY2FsbGJhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvdG9jb2w6ICR7SlNPTi5zdHJpbmdpZnkodS5wcm90b2NvbCl9LmApO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=
@@ -9,5 +9,11 @@ import { logging } from '@angular-devkit/core';
9
9
  import { Observable } from 'rxjs';
10
10
  import { BuildEvent, TargetSpecifier } from '../src';
11
11
  import { TestProjectHost } from './test-project-host';
12
+ /**
13
+ * @deprecated
14
+ */
12
15
  export declare const DefaultTimeout = 45000;
16
+ /**
17
+ * @deprecated
18
+ */
13
19
  export declare function runTargetSpec(host: TestProjectHost, targetSpec: TargetSpecifier, overrides?: {}, timeout?: number, logger?: logging.Logger): Observable<BuildEvent>;
@@ -11,7 +11,13 @@ const core_1 = require("@angular-devkit/core");
11
11
  const rxjs_1 = require("rxjs");
12
12
  const operators_1 = require("rxjs/operators");
13
13
  const src_1 = require("../src");
14
+ /**
15
+ * @deprecated
16
+ */
14
17
  exports.DefaultTimeout = 45000;
18
+ /**
19
+ * @deprecated
20
+ */
15
21
  function runTargetSpec(host, targetSpec, overrides = {}, timeout = exports.DefaultTimeout, logger = new core_1.logging.NullLogger()) {
16
22
  targetSpec = Object.assign({}, targetSpec, { overrides });
17
23
  const workspaceFile = core_1.normalize('angular.json');
@@ -33,4 +39,4 @@ function runTargetSpec(host, targetSpec, overrides = {}, timeout = exports.Defau
33
39
  return rxjs_1.merge(timeout$, runArchitect$);
34
40
  }
35
41
  exports.runTargetSpec = runTargetSpec;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXRhcmdldC1zcGVjLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9hcmNoaXRlY3QvdGVzdGluZy9ydW4tdGFyZ2V0LXNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFSCwrQ0FBd0U7QUFDeEUsK0JBQTREO0FBQzVELDhDQUE2RTtBQUM3RSxnQ0FBZ0Y7QUFHbkUsUUFBQSxjQUFjLEdBQUcsS0FBSyxDQUFDO0FBRXBDLFNBQWdCLGFBQWEsQ0FDM0IsSUFBcUIsRUFDckIsVUFBMkIsRUFDM0IsU0FBUyxHQUFHLEVBQUUsRUFDZCxPQUFPLEdBQUcsc0JBQWMsRUFDeEIsU0FBeUIsSUFBSSxjQUFPLENBQUMsVUFBVSxFQUFFO0lBRWpELFVBQVUscUJBQVEsVUFBVSxJQUFFLFNBQVMsR0FBRSxDQUFDO0lBQzFDLE1BQU0sYUFBYSxHQUFHLGdCQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxtQkFBWSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRTFFLCtDQUErQztJQUMvQyxvREFBb0Q7SUFDcEQsSUFBSSxVQUFVLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxpQkFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2pELFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxtRUFBbUU7SUFDbkUsTUFBTSxjQUFjLEdBQTRCO1FBQzlDLE1BQU07UUFDTixlQUFlLEVBQUUsVUFBVTtLQUM1QixDQUFDO0lBQ0YsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDdkUscUJBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksZUFBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQ2xELHFCQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQyxFQUNyRixvQkFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQzdCLENBQUM7SUFFRixpRUFBaUU7SUFDakUsTUFBTSxRQUFRLEdBQUcsWUFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDbEMscUJBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUNoQyx1QkFBVyxDQUFDLGlCQUFVLENBQUMsMEJBQTBCLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FDdkUsQ0FBQztJQUVGLE9BQU8sWUFBSyxDQUNWLFFBQVEsRUFDUixhQUFhLENBQ2QsQ0FBQztBQUNKLENBQUM7QUF2Q0Qsc0NBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBleHBlcmltZW50YWwsIGxvZ2dpbmcsIG5vcm1hbGl6ZSB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1lcmdlLCB0aHJvd0Vycm9yLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29uY2F0TWFwLCBjb25jYXRNYXBUbywgZmluYWxpemUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFyY2hpdGVjdCwgQnVpbGRFdmVudCwgQnVpbGRlckNvbnRleHQsIFRhcmdldFNwZWNpZmllciB9IGZyb20gJy4uL3NyYyc7XG5pbXBvcnQgeyBUZXN0UHJvamVjdEhvc3QgfSBmcm9tICcuL3Rlc3QtcHJvamVjdC1ob3N0JztcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRUaW1lb3V0ID0gNDUwMDA7XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5UYXJnZXRTcGVjKFxuICBob3N0OiBUZXN0UHJvamVjdEhvc3QsXG4gIHRhcmdldFNwZWM6IFRhcmdldFNwZWNpZmllcixcbiAgb3ZlcnJpZGVzID0ge30sXG4gIHRpbWVvdXQgPSBEZWZhdWx0VGltZW91dCxcbiAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlciA9IG5ldyBsb2dnaW5nLk51bGxMb2dnZXIoKSxcbik6IE9ic2VydmFibGU8QnVpbGRFdmVudD4ge1xuICB0YXJnZXRTcGVjID0geyAuLi50YXJnZXRTcGVjLCBvdmVycmlkZXMgfTtcbiAgY29uc3Qgd29ya3NwYWNlRmlsZSA9IG5vcm1hbGl6ZSgnYW5ndWxhci5qc29uJyk7XG4gIGNvbnN0IHdvcmtzcGFjZSA9IG5ldyBleHBlcmltZW50YWwud29ya3NwYWNlLldvcmtzcGFjZShob3N0LnJvb3QoKSwgaG9zdCk7XG5cbiAgLy8gRW1pdCB3aGVuIHJ1bkFyY2hpdGVjdCQgY29tcGxldGVzIG9yIGVycm9ycy5cbiAgLy8gVE9ETzogVGhlcmUgbXVzdCBiZSBhIGJldHRlciB3YXkgb2YgZG9pbmcgdGhpcy4uLlxuICBsZXQgZmluYWxpemVDQiA9ICgpID0+IHsgfTtcbiAgY29uc3QgcnVuQXJjaGl0ZWN0RmluYWxpemUkID0gbmV3IE9ic2VydmFibGUob2JzID0+IHtcbiAgICBmaW5hbGl6ZUNCID0gKCkgPT4gb2JzLm5leHQoKTtcbiAgfSk7XG5cbiAgLy8gTG9hZCB0aGUgd29ya3NwYWNlIGZyb20gdGhlIHJvb3Qgb2YgdGhlIGhvc3QsIHRoZW4gcnVuIGEgdGFyZ2V0LlxuICBjb25zdCBidWlsZGVyQ29udGV4dDogUGFydGlhbDxCdWlsZGVyQ29udGV4dD4gPSB7XG4gICAgbG9nZ2VyLFxuICAgIHRhcmdldFNwZWNpZmllcjogdGFyZ2V0U3BlYyxcbiAgfTtcbiAgY29uc3QgcnVuQXJjaGl0ZWN0JCA9IHdvcmtzcGFjZS5sb2FkV29ya3NwYWNlRnJvbUhvc3Qod29ya3NwYWNlRmlsZSkucGlwZShcbiAgICBjb25jYXRNYXAod3MgPT4gbmV3IEFyY2hpdGVjdCh3cykubG9hZEFyY2hpdGVjdCgpKSxcbiAgICBjb25jYXRNYXAoYXJjaCA9PiBhcmNoLnJ1bihhcmNoLmdldEJ1aWxkZXJDb25maWd1cmF0aW9uKHRhcmdldFNwZWMpLCBidWlsZGVyQ29udGV4dCkpLFxuICAgIGZpbmFsaXplKCgpID0+IGZpbmFsaXplQ0IoKSksXG4gICk7XG5cbiAgLy8gRXJyb3Igb3V0IGFmdGVyIHRoZSB0aW1lb3V0IGlmIHJ1bkFyY2hpdGVjdCQgaGFzbid0IGZpbmFsaXplZC5cbiAgY29uc3QgdGltZW91dCQgPSB0aW1lcih0aW1lb3V0KS5waXBlKFxuICAgIHRha2VVbnRpbChydW5BcmNoaXRlY3RGaW5hbGl6ZSQpLFxuICAgIGNvbmNhdE1hcFRvKHRocm93RXJyb3IoYHJ1blRhcmdldFNwZWMgdGltZW91dCAoJHt0aW1lb3V0fSkgcmVhY2hlZC5gKSksXG4gICk7XG5cbiAgcmV0dXJuIG1lcmdlKFxuICAgIHRpbWVvdXQkLFxuICAgIHJ1bkFyY2hpdGVjdCQsXG4gICk7XG59XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXRhcmdldC1zcGVjLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9hcmNoaXRlY3QvdGVzdGluZy9ydW4tdGFyZ2V0LXNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFSCwrQ0FBd0U7QUFDeEUsK0JBQTREO0FBQzVELDhDQUE2RTtBQUM3RSxnQ0FBZ0Y7QUFHaEY7O0dBRUc7QUFDVSxRQUFBLGNBQWMsR0FBRyxLQUFLLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxTQUFnQixhQUFhLENBQzNCLElBQXFCLEVBQ3JCLFVBQTJCLEVBQzNCLFNBQVMsR0FBRyxFQUFFLEVBQ2QsT0FBTyxHQUFHLHNCQUFjLEVBQ3hCLFNBQXlCLElBQUksY0FBTyxDQUFDLFVBQVUsRUFBRTtJQUVqRCxVQUFVLHFCQUFRLFVBQVUsSUFBRSxTQUFTLEdBQUUsQ0FBQztJQUMxQyxNQUFNLGFBQWEsR0FBRyxnQkFBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksbUJBQVksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUUxRSwrQ0FBK0M7SUFDL0Msb0RBQW9EO0lBQ3BELElBQUksVUFBVSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzQixNQUFNLHFCQUFxQixHQUFHLElBQUksaUJBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNqRCxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBRUgsbUVBQW1FO0lBQ25FLE1BQU0sY0FBYyxHQUE0QjtRQUM5QyxNQUFNO1FBQ04sZUFBZSxFQUFFLFVBQVU7S0FDNUIsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQ3ZFLHFCQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLGVBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUNsRCxxQkFBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUMsRUFDckYsb0JBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUM3QixDQUFDO0lBRUYsaUVBQWlFO0lBQ2pFLE1BQU0sUUFBUSxHQUFHLFlBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2xDLHFCQUFTLENBQUMscUJBQXFCLENBQUMsRUFDaEMsdUJBQVcsQ0FBQyxpQkFBVSxDQUFDLDBCQUEwQixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQ3ZFLENBQUM7SUFFRixPQUFPLFlBQUssQ0FDVixRQUFRLEVBQ1IsYUFBYSxDQUNkLENBQUM7QUFDSixDQUFDO0FBdkNELHNDQXVDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgZXhwZXJpbWVudGFsLCBsb2dnaW5nLCBub3JtYWxpemUgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtZXJnZSwgdGhyb3dFcnJvciwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgY29uY2F0TWFwVG8sIGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBcmNoaXRlY3QsIEJ1aWxkRXZlbnQsIEJ1aWxkZXJDb250ZXh0LCBUYXJnZXRTcGVjaWZpZXIgfSBmcm9tICcuLi9zcmMnO1xuaW1wb3J0IHsgVGVzdFByb2plY3RIb3N0IH0gZnJvbSAnLi90ZXN0LXByb2plY3QtaG9zdCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRUaW1lb3V0ID0gNDUwMDA7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blRhcmdldFNwZWMoXG4gIGhvc3Q6IFRlc3RQcm9qZWN0SG9zdCxcbiAgdGFyZ2V0U3BlYzogVGFyZ2V0U3BlY2lmaWVyLFxuICBvdmVycmlkZXMgPSB7fSxcbiAgdGltZW91dCA9IERlZmF1bHRUaW1lb3V0LFxuICBsb2dnZXI6IGxvZ2dpbmcuTG9nZ2VyID0gbmV3IGxvZ2dpbmcuTnVsbExvZ2dlcigpLFxuKTogT2JzZXJ2YWJsZTxCdWlsZEV2ZW50PiB7XG4gIHRhcmdldFNwZWMgPSB7IC4uLnRhcmdldFNwZWMsIG92ZXJyaWRlcyB9O1xuICBjb25zdCB3b3Jrc3BhY2VGaWxlID0gbm9ybWFsaXplKCdhbmd1bGFyLmpzb24nKTtcbiAgY29uc3Qgd29ya3NwYWNlID0gbmV3IGV4cGVyaW1lbnRhbC53b3Jrc3BhY2UuV29ya3NwYWNlKGhvc3Qucm9vdCgpLCBob3N0KTtcblxuICAvLyBFbWl0IHdoZW4gcnVuQXJjaGl0ZWN0JCBjb21wbGV0ZXMgb3IgZXJyb3JzLlxuICAvLyBUT0RPOiBUaGVyZSBtdXN0IGJlIGEgYmV0dGVyIHdheSBvZiBkb2luZyB0aGlzLi4uXG4gIGxldCBmaW5hbGl6ZUNCID0gKCkgPT4geyB9O1xuICBjb25zdCBydW5BcmNoaXRlY3RGaW5hbGl6ZSQgPSBuZXcgT2JzZXJ2YWJsZShvYnMgPT4ge1xuICAgIGZpbmFsaXplQ0IgPSAoKSA9PiBvYnMubmV4dCgpO1xuICB9KTtcblxuICAvLyBMb2FkIHRoZSB3b3Jrc3BhY2UgZnJvbSB0aGUgcm9vdCBvZiB0aGUgaG9zdCwgdGhlbiBydW4gYSB0YXJnZXQuXG4gIGNvbnN0IGJ1aWxkZXJDb250ZXh0OiBQYXJ0aWFsPEJ1aWxkZXJDb250ZXh0PiA9IHtcbiAgICBsb2dnZXIsXG4gICAgdGFyZ2V0U3BlY2lmaWVyOiB0YXJnZXRTcGVjLFxuICB9O1xuICBjb25zdCBydW5BcmNoaXRlY3QkID0gd29ya3NwYWNlLmxvYWRXb3Jrc3BhY2VGcm9tSG9zdCh3b3Jrc3BhY2VGaWxlKS5waXBlKFxuICAgIGNvbmNhdE1hcCh3cyA9PiBuZXcgQXJjaGl0ZWN0KHdzKS5sb2FkQXJjaGl0ZWN0KCkpLFxuICAgIGNvbmNhdE1hcChhcmNoID0+IGFyY2gucnVuKGFyY2guZ2V0QnVpbGRlckNvbmZpZ3VyYXRpb24odGFyZ2V0U3BlYyksIGJ1aWxkZXJDb250ZXh0KSksXG4gICAgZmluYWxpemUoKCkgPT4gZmluYWxpemVDQigpKSxcbiAgKTtcblxuICAvLyBFcnJvciBvdXQgYWZ0ZXIgdGhlIHRpbWVvdXQgaWYgcnVuQXJjaGl0ZWN0JCBoYXNuJ3QgZmluYWxpemVkLlxuICBjb25zdCB0aW1lb3V0JCA9IHRpbWVyKHRpbWVvdXQpLnBpcGUoXG4gICAgdGFrZVVudGlsKHJ1bkFyY2hpdGVjdEZpbmFsaXplJCksXG4gICAgY29uY2F0TWFwVG8odGhyb3dFcnJvcihgcnVuVGFyZ2V0U3BlYyB0aW1lb3V0ICgke3RpbWVvdXR9KSByZWFjaGVkLmApKSxcbiAgKTtcblxuICByZXR1cm4gbWVyZ2UoXG4gICAgdGltZW91dCQsXG4gICAgcnVuQXJjaGl0ZWN0JCxcbiAgKTtcbn1cbiJdfQ==
@@ -6,6 +6,9 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  import { logging } from '@angular-devkit/core';
9
+ /**
10
+ * @deprecated
11
+ */
9
12
  export declare class TestLogger extends logging.Logger {
10
13
  private _latestEntries;
11
14
  constructor(name: string, parent?: logging.Logger | null);
@@ -8,6 +8,9 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  const core_1 = require("@angular-devkit/core");
11
+ /**
12
+ * @deprecated
13
+ */
11
14
  class TestLogger extends core_1.logging.Logger {
12
15
  constructor(name, parent = null) {
13
16
  super(name, parent);
@@ -25,4 +28,4 @@ class TestLogger extends core_1.logging.Logger {
25
28
  }
26
29
  }
27
30
  exports.TestLogger = TestLogger;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2FyY2hpdGVjdC90ZXN0aW5nL3Rlc3QtbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsK0NBQStDO0FBRy9DLE1BQWEsVUFBVyxTQUFRLGNBQU8sQ0FBQyxNQUFNO0lBRTVDLFlBQVksSUFBWSxFQUFFLFNBQWdDLElBQUk7UUFDNUQsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUZkLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUc5QyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELElBQUksQ0FBQyxFQUFVO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0Y7QUFsQkQsZ0NBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBsb2dnaW5nIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuXG5cbmV4cG9ydCBjbGFzcyBUZXN0TG9nZ2VyIGV4dGVuZHMgbG9nZ2luZy5Mb2dnZXIge1xuICBwcml2YXRlIF9sYXRlc3RFbnRyaWVzOiBsb2dnaW5nLkxvZ0VudHJ5W10gPSBbXTtcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBwYXJlbnQ6IGxvZ2dpbmcuTG9nZ2VyIHwgbnVsbCA9IG51bGwpIHtcbiAgICBzdXBlcihuYW1lLCBwYXJlbnQpO1xuICAgIHRoaXMuc3Vic2NyaWJlKChlbnRyeSkgPT4gdGhpcy5fbGF0ZXN0RW50cmllcy5wdXNoKGVudHJ5KSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLl9sYXRlc3RFbnRyaWVzID0gW107XG4gIH1cblxuICBpbmNsdWRlcyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fbGF0ZXN0RW50cmllcy5zb21lKChlbnRyeSkgPT4gZW50cnkubWVzc2FnZS5pbmNsdWRlcyhtZXNzYWdlKSk7XG4gIH1cblxuICB0ZXN0KHJlOiBSZWdFeHApIHtcbiAgICByZXR1cm4gdGhpcy5fbGF0ZXN0RW50cmllcy5zb21lKChlbnRyeSkgPT4gcmUudGVzdChlbnRyeS5tZXNzYWdlKSk7XG4gIH1cbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2FyY2hpdGVjdC90ZXN0aW5nL3Rlc3QtbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsK0NBQStDO0FBRy9DOztHQUVHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsY0FBTyxDQUFDLE1BQU07SUFFNUMsWUFBWSxJQUFZLEVBQUUsU0FBZ0MsSUFBSTtRQUM1RCxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRmQsbUJBQWMsR0FBdUIsRUFBRSxDQUFDO1FBRzlDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFBSSxDQUFDLEVBQVU7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDRjtBQWxCRCxnQ0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IGxvZ2dpbmcgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZSc7XG5cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY2xhc3MgVGVzdExvZ2dlciBleHRlbmRzIGxvZ2dpbmcuTG9nZ2VyIHtcbiAgcHJpdmF0ZSBfbGF0ZXN0RW50cmllczogbG9nZ2luZy5Mb2dFbnRyeVtdID0gW107XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgcGFyZW50OiBsb2dnaW5nLkxvZ2dlciB8IG51bGwgPSBudWxsKSB7XG4gICAgc3VwZXIobmFtZSwgcGFyZW50KTtcbiAgICB0aGlzLnN1YnNjcmliZSgoZW50cnkpID0+IHRoaXMuX2xhdGVzdEVudHJpZXMucHVzaChlbnRyeSkpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5fbGF0ZXN0RW50cmllcyA9IFtdO1xuICB9XG5cbiAgaW5jbHVkZXMobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xhdGVzdEVudHJpZXMuc29tZSgoZW50cnkpID0+IGVudHJ5Lm1lc3NhZ2UuaW5jbHVkZXMobWVzc2FnZSkpO1xuICB9XG5cbiAgdGVzdChyZTogUmVnRXhwKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xhdGVzdEVudHJpZXMuc29tZSgoZW50cnkpID0+IHJlLnRlc3QoZW50cnkubWVzc2FnZSkpO1xuICB9XG59XG4iXX0=
@@ -10,6 +10,9 @@ import { Path, PathFragment, virtualFs } from '@angular-devkit/core';
10
10
  import { NodeJsSyncHost } from '@angular-devkit/core/node';
11
11
  import { Stats } from 'fs';
12
12
  import { Observable } from 'rxjs';
13
+ /**
14
+ * @deprecated
15
+ */
13
16
  export declare class TestProjectHost extends NodeJsSyncHost {
14
17
  protected _templateRoot: Path;
15
18
  private _currentRoot;
@@ -11,6 +11,9 @@ const core_1 = require("@angular-devkit/core");
11
11
  const node_1 = require("@angular-devkit/core/node");
12
12
  const rxjs_1 = require("rxjs");
13
13
  const operators_1 = require("rxjs/operators");
14
+ /**
15
+ * @deprecated
16
+ */
14
17
  class TestProjectHost extends node_1.NodeJsSyncHost {
15
18
  constructor(_templateRoot) {
16
19
  super();
@@ -101,4 +104,4 @@ class TestProjectHost extends node_1.NodeJsSyncHost {
101
104
  }
102
105
  }
103
106
  exports.TestProjectHost = TestProjectHost;
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1wcm9qZWN0LWhvc3QuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2FyY2hpdGVjdC90ZXN0aW5nL3Rlc3QtcHJvamVjdC1ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsK0NBUzhCO0FBQzlCLG9EQUEyRDtBQUUzRCwrQkFBbUQ7QUFDbkQsOENBQXVGO0FBR3ZGLE1BQWEsZUFBZ0IsU0FBUSxxQkFBYztJQUlqRCxZQUFzQixhQUFtQjtRQUN2QyxLQUFLLEVBQUUsQ0FBQztRQURZLGtCQUFhLEdBQWIsYUFBYSxDQUFNO1FBSGpDLGlCQUFZLEdBQWdCLElBQUksQ0FBQztRQUNqQyxvQkFBZSxHQUE2QyxJQUFJLENBQUM7SUFJekUsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztTQUMzRTtRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7WUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1NBQzNFO1FBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFVLEVBQW9CLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUk7UUFDMUUsbUNBQW1DO1FBQ25DLHFCQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxXQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsK0JBQStCO1FBQy9CLGVBQUcsQ0FBQyxR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LENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUU1RixPQUFPLFFBQVEsSUFBSSxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZLEVBQUUsRUFBVTtRQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixvQ0FBb0M7UUFDcEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxhQUFhLEdBQUcscUJBQXFCLGVBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUYsTUFBTSxhQUFhLEdBQUcsV0FBSSxDQUFDLGNBQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFdkUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDcEMscUJBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUM5RSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBaElELDBDQWdJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtcbiAgUGF0aCxcbiAgUGF0aEZyYWdtZW50LFxuICBiYXNlbmFtZSxcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgbm9ybWFsaXplLFxuICByZWxhdGl2ZSxcbiAgdmlydHVhbEZzLFxufSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZSc7XG5pbXBvcnQgeyBOb2RlSnNTeW5jSG9zdCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUnO1xuaW1wb3J0IHsgU3RhdHMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgZGVsYXksIGZpbmFsaXplLCBtYXAsIG1lcmdlTWFwLCByZXRyeSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5cbmV4cG9ydCBjbGFzcyBUZXN0UHJvamVjdEhvc3QgZXh0ZW5kcyBOb2RlSnNTeW5jSG9zdCB7XG4gIHByaXZhdGUgX2N1cnJlbnRSb290OiBQYXRoIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3Njb3BlZFN5bmNIb3N0OiB2aXJ0dWFsRnMuU3luY0RlbGVnYXRlSG9zdDxTdGF0cz4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3RlbXBsYXRlUm9vdDogUGF0aCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICByb290KCk6IFBhdGgge1xuICAgIGlmICh0aGlzLl9jdXJyZW50Um9vdCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUZXN0UHJvamVjdEhvc3QgbXVzdCBiZSBpbml0aWFsaXplZCBiZWZvcmUgYmVpbmcgdXNlZC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFJvb3Q7XG4gIH1cblxuICBzY29wZWRTeW5jKCk6IHZpcnR1YWxGcy5TeW5jRGVsZWdhdGVIb3N0PFN0YXRzPiB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnRSb290ID09PSBudWxsIHx8IHRoaXMuX3Njb3BlZFN5bmNIb3N0ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Rlc3RQcm9qZWN0SG9zdCBtdXN0IGJlIGluaXRpYWxpemVkIGJlZm9yZSBiZWluZyB1c2VkLicpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zY29wZWRTeW5jSG9zdDtcbiAgfVxuXG4gIGluaXRpYWxpemUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgcmVjdXJzaXZlTGlzdCA9IChwYXRoOiBQYXRoKTogT2JzZXJ2YWJsZTxQYXRoPiA9PiB0aGlzLmxpc3QocGF0aCkucGlwZShcbiAgICAgIC8vIEVtaXQgZWFjaCBmcmFnbWVudCBpbmRpdmlkdWFsbHkuXG4gICAgICBjb25jYXRNYXAoZnJhZ21lbnRzID0+IGZyb20oZnJhZ21lbnRzKSksXG4gICAgICAvLyBKb2luIHRoZSBwYXRoIHdpdGggZnJhZ21lbnQuXG4gICAgICBtYXAoZnJhZ21lbnQgPT4gam9pbihwYXRoLCBmcmFnbWVudCkpLFxuICAgICAgLy8gRW1pdCBkaXJlY3RvcnkgY29udGVudCBwYXRocyBpbnN0ZWFkIG9mIHRoZSBkaXJlY3RvcnkgcGF0aC5cbiAgICAgIG1lcmdlTWFwKHBhdGggPT4gdGhpcy5pc0RpcmVjdG9yeShwYXRoKS5waXBlKFxuICAgICAgICBjb25jYXRNYXAoaXNEaXIgPT4gaXNEaXIgPyByZWN1cnNpdmVMaXN0KHBhdGgpIDogb2YocGF0aCkpLFxuICAgICAgKSksXG4gICAgKTtcblxuICAgIC8vIEZpbmQgYSB1bmlxdWUgZm9sZGVyIHRoYXQgd2UgY2FuIHdyaXRlIHRvIHRvIHVzZSBhcyBjdXJyZW50IHJvb3QuXG4gICAgcmV0dXJuIHRoaXMuZmluZFVuaXF1ZUZvbGRlclBhdGgoKS5waXBlKFxuICAgICAgLy8gU2F2ZSB0aGUgcGF0aCBhbmQgY3JlYXRlIGEgc2NvcGVkIGhvc3QgZm9yIGl0LlxuICAgICAgdGFwKG5ld0ZvbGRlclBhdGggPT4ge1xuICAgICAgICB0aGlzLl9jdXJyZW50Um9vdCA9IG5ld0ZvbGRlclBhdGg7XG4gICAgICAgIHRoaXMuX3Njb3BlZFN5bmNIb3N0ID0gbmV3IHZpcnR1YWxGcy5TeW5jRGVsZWdhdGVIb3N0KFxuICAgICAgICAgIG5ldyB2aXJ0dWFsRnMuU2NvcGVkSG9zdCh0aGlzLCB0aGlzLnJvb3QoKSkpO1xuICAgICAgfSksXG4gICAgICAvLyBMaXN0IGFsbCBmaWxlcyBpbiByb290LlxuICAgICAgY29uY2F0TWFwKCgpID0+IHJlY3Vyc2l2ZUxpc3QodGhpcy5fdGVtcGxhdGVSb290KSksXG4gICAgICAvLyBDb3B5IHRoZW0gb3ZlciB0byB0aGUgY3VycmVudCByb290LlxuICAgICAgY29uY2F0TWFwKGZyb20gPT4ge1xuICAgICAgICBjb25zdCB0byA9IGpvaW4odGhpcy5yb290KCksIHJlbGF0aXZlKHRoaXMuX3RlbXBsYXRlUm9vdCwgZnJvbSkpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJlYWQoZnJvbSkucGlwZShcbiAgICAgICAgICBjb25jYXRNYXAoYnVmZmVyID0+IHRoaXMud3JpdGUodG8sIGJ1ZmZlcikpLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4geyB9KSxcbiAgICApO1xuICB9XG5cbiAgcmVzdG9yZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5fY3VycmVudFJvb3QgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG5cbiAgICAvLyBEZWxldGUgdGhlIGN1cnJlbnQgcm9vdCBhbmQgY2xlYXIgdGhlIHZhcmlhYmxlcy5cbiAgICAvLyBXYWl0IDUwbXMgYW5kIHJldHJ5IHVwIHRvIDEwIHRpbWVzLCB0byBnaXZlIHRpbWUgZm9yIGZpbGUgbG9ja3MgdG8gY2xlYXIuXG4gICAgcmV0dXJuIHRoaXMuZXhpc3RzKHRoaXMucm9vdCgpKS5waXBlKFxuICAgICAgZGVsYXkoNTApLFxuICAgICAgY29uY2F0TWFwKGV4aXN0cyA9PiBleGlzdHMgPyB0aGlzLmRlbGV0ZSh0aGlzLnJvb3QoKSkgOiBFTVBUWSksXG4gICAgICByZXRyeSgxMCksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRSb290ID0gbnVsbDtcbiAgICAgICAgdGhpcy5fc2NvcGVkU3luY0hvc3QgPSBudWxsO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHdyaXRlTXVsdGlwbGVGaWxlcyhmaWxlczogeyBbcGF0aDogc3RyaW5nXTogc3RyaW5nIHwgQXJyYXlCdWZmZXJMaWtlIHwgQnVmZmVyIH0pOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyhmaWxlcykuZm9yRWFjaChmaWxlTmFtZSA9PiB7XG4gICAgICBsZXQgY29udGVudCA9IGZpbGVzW2ZpbGVOYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PSAnc3RyaW5nJykge1xuICAgICAgICBjb250ZW50ID0gdmlydHVhbEZzLnN0cmluZ1RvRmlsZUJ1ZmZlcihjb250ZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoY29udGVudCBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgICBjb250ZW50ID0gY29udGVudC5idWZmZXIuc2xpY2UoXG4gICAgICAgICAgY29udGVudC5ieXRlT2Zmc2V0LFxuICAgICAgICAgIGNvbnRlbnQuYnl0ZU9mZnNldCArIGNvbnRlbnQuYnl0ZUxlbmd0aCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zY29wZWRTeW5jKCkud3JpdGUoXG4gICAgICAgIG5vcm1hbGl6ZShmaWxlTmFtZSksXG4gICAgICAgIGNvbnRlbnQsXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcmVwbGFjZUluRmlsZShwYXRoOiBzdHJpbmcsIG1hdGNoOiBSZWdFeHAgfCBzdHJpbmcsIHJlcGxhY2VtZW50OiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdmlydHVhbEZzLmZpbGVCdWZmZXJUb1N0cmluZyh0aGlzLnNjb3BlZFN5bmMoKS5yZWFkKG5vcm1hbGl6ZShwYXRoKSkpO1xuICAgIHRoaXMuc2NvcGVkU3luYygpLndyaXRlKG5vcm1hbGl6ZShwYXRoKSxcbiAgICAgIHZpcnR1YWxGcy5zdHJpbmdUb0ZpbGVCdWZmZXIoY29udGVudC5yZXBsYWNlKG1hdGNoLCByZXBsYWNlbWVudCkpKTtcbiAgfVxuXG4gIGFwcGVuZFRvRmlsZShwYXRoOiBzdHJpbmcsIHN0cjogc3RyaW5nKSB7XG4gICAgY29uc3QgY29udGVudCA9IHZpcnR1YWxGcy5maWxlQnVmZmVyVG9TdHJpbmcodGhpcy5zY29wZWRTeW5jKCkucmVhZChub3JtYWxpemUocGF0aCkpKTtcbiAgICB0aGlzLnNjb3BlZFN5bmMoKS53cml0ZShub3JtYWxpemUocGF0aCksXG4gICAgICB2aXJ0dWFsRnMuc3RyaW5nVG9GaWxlQnVmZmVyKGNvbnRlbnQuY29uY2F0KHN0cikpKTtcbiAgfVxuXG4gIGZpbGVNYXRjaEV4aXN0cyhkaXI6IHN0cmluZywgcmVnZXg6IFJlZ0V4cCk6IFBhdGhGcmFnbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgW2ZpbGVOYW1lXSA9IHRoaXMuc2NvcGVkU3luYygpLmxpc3Qobm9ybWFsaXplKGRpcikpLmZpbHRlcihuYW1lID0+IG5hbWUubWF0Y2gocmVnZXgpKTtcblxuICAgIHJldHVybiBmaWxlTmFtZSB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICBjb3B5RmlsZShmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5zY29wZWRTeW5jKCkucmVhZChub3JtYWxpemUoZnJvbSkpO1xuICAgIHRoaXMuc2NvcGVkU3luYygpLndyaXRlKG5vcm1hbGl6ZSh0byksIGNvbnRlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kVW5pcXVlRm9sZGVyUGF0aCgpOiBPYnNlcnZhYmxlPFBhdGg+IHtcbiAgICAvLyAxMSBjaGFyYWN0ZXIgYWxwaGFudW1lcmljIHN0cmluZy5cbiAgICBjb25zdCByYW5kb21TdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtcbiAgICBjb25zdCBuZXdGb2xkZXJOYW1lID0gYHRlc3QtcHJvamVjdC1ob3N0LSR7YmFzZW5hbWUodGhpcy5fdGVtcGxhdGVSb290KX0tJHtyYW5kb21TdHJpbmd9YDtcbiAgICBjb25zdCBuZXdGb2xkZXJQYXRoID0gam9pbihkaXJuYW1lKHRoaXMuX3RlbXBsYXRlUm9vdCksIG5ld0ZvbGRlck5hbWUpO1xuXG4gICAgcmV0dXJuIHRoaXMuZXhpc3RzKG5ld0ZvbGRlclBhdGgpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoZXhpc3RzID0+IGV4aXN0cyA/IHRoaXMuZmluZFVuaXF1ZUZvbGRlclBhdGgoKSA6IG9mKG5ld0ZvbGRlclBhdGgpKSxcbiAgICApO1xuICB9XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1wcm9qZWN0LWhvc3QuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2FyY2hpdGVjdC90ZXN0aW5nL3Rlc3QtcHJvamVjdC1ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsK0NBUzhCO0FBQzlCLG9EQUEyRDtBQUUzRCwrQkFBbUQ7QUFDbkQsOENBQXVGO0FBR3ZGOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLHFCQUFjO0lBSWpELFlBQXNCLGFBQW1CO1FBQ3ZDLEtBQUssRUFBRSxDQUFDO1FBRFksa0JBQWEsR0FBYixhQUFhLENBQU07UUFIakMsaUJBQVksR0FBZ0IsSUFBSSxDQUFDO1FBQ2pDLG9CQUFlLEdBQTZDLElBQUksQ0FBQztJQUl6RSxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1NBQzNFO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksRUFBRTtZQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FDM0U7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVUsRUFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtRQUMxRSxtQ0FBbUM7UUFDbkMscUJBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QywrQkFBK0I7UUFDL0Is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IEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1xuICBQYXRoLFxuICBQYXRoRnJhZ21lbnQsXG4gIGJhc2VuYW1lLFxuICBkaXJuYW1lLFxuICBqb2luLFxuICBub3JtYWxpemUsXG4gIHJlbGF0aXZlLFxuICB2aXJ0dWFsRnMsXG59IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7IE5vZGVKc1N5bmNIb3N0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZSc7XG5pbXBvcnQgeyBTdGF0cyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlLCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29uY2F0TWFwLCBkZWxheSwgZmluYWxpemUsIG1hcCwgbWVyZ2VNYXAsIHJldHJ5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY2xhc3MgVGVzdFByb2plY3RIb3N0IGV4dGVuZHMgTm9kZUpzU3luY0hvc3Qge1xuICBwcml2YXRlIF9jdXJyZW50Um9vdDogUGF0aCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zY29wZWRTeW5jSG9zdDogdmlydHVhbEZzLlN5bmNEZWxlZ2F0ZUhvc3Q8U3RhdHM+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF90ZW1wbGF0ZVJvb3Q6IFBhdGgpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcm9vdCgpOiBQYXRoIHtcbiAgICBpZiAodGhpcy5fY3VycmVudFJvb3QgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGVzdFByb2plY3RIb3N0IG11c3QgYmUgaW5pdGlhbGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRSb290O1xuICB9XG5cbiAgc2NvcGVkU3luYygpOiB2aXJ0dWFsRnMuU3luY0RlbGVnYXRlSG9zdDxTdGF0cz4ge1xuICAgIGlmICh0aGlzLl9jdXJyZW50Um9vdCA9PT0gbnVsbCB8fCB0aGlzLl9zY29wZWRTeW5jSG9zdCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUZXN0UHJvamVjdEhvc3QgbXVzdCBiZSBpbml0aWFsaXplZCBiZWZvcmUgYmVpbmcgdXNlZC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fc2NvcGVkU3luY0hvc3Q7XG4gIH1cblxuICBpbml0aWFsaXplKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHJlY3Vyc2l2ZUxpc3QgPSAocGF0aDogUGF0aCk6IE9ic2VydmFibGU8UGF0aD4gPT4gdGhpcy5saXN0KHBhdGgpLnBpcGUoXG4gICAgICAvLyBFbWl0IGVhY2ggZnJhZ21lbnQgaW5kaXZpZHVhbGx5LlxuICAgICAgY29uY2F0TWFwKGZyYWdtZW50cyA9PiBmcm9tKGZyYWdtZW50cykpLFxuICAgICAgLy8gSm9pbiB0aGUgcGF0aCB3aXRoIGZyYWdtZW50LlxuICAgICAgbWFwKGZyYWdtZW50ID0+IGpvaW4ocGF0aCwgZnJhZ21lbnQpKSxcbiAgICAgIC8vIEVtaXQgZGlyZWN0b3J5IGNvbnRlbnQgcGF0aHMgaW5zdGVhZCBvZiB0aGUgZGlyZWN0b3J5IHBhdGguXG4gICAgICBtZXJnZU1hcChwYXRoID0+IHRoaXMuaXNEaXJlY3RvcnkocGF0aCkucGlwZShcbiAgICAgICAgY29uY2F0TWFwKGlzRGlyID0+IGlzRGlyID8gcmVjdXJzaXZlTGlzdChwYXRoKSA6IG9mKHBhdGgpKSxcbiAgICAgICkpLFxuICAgICk7XG5cbiAgICAvLyBGaW5kIGEgdW5pcXVlIGZvbGRlciB0aGF0IHdlIGNhbiB3cml0ZSB0byB0byB1c2UgYXMgY3VycmVudCByb290LlxuICAgIHJldHVybiB0aGlzLmZpbmRVbmlxdWVGb2xkZXJQYXRoKCkucGlwZShcbiAgICAgIC8vIFNhdmUgdGhlIHBhdGggYW5kIGNyZWF0ZSBhIHNjb3BlZCBob3N0IGZvciBpdC5cbiAgICAgIHRhcChuZXdGb2xkZXJQYXRoID0+IHtcbiAgICAgICAgdGhpcy5fY3VycmVudFJvb3QgPSBuZXdGb2xkZXJQYXRoO1xuICAgICAgICB0aGlzLl9zY29wZWRTeW5jSG9zdCA9IG5ldyB2aXJ0dWFsRnMuU3luY0RlbGVnYXRlSG9zdChcbiAgICAgICAgICBuZXcgdmlydHVhbEZzLlNjb3BlZEhvc3QodGhpcywgdGhpcy5yb290KCkpKTtcbiAgICAgIH0pLFxuICAgICAgLy8gTGlzdCBhbGwgZmlsZXMgaW4gcm9vdC5cbiAgICAgIGNvbmNhdE1hcCgoKSA9PiByZWN1cnNpdmVMaXN0KHRoaXMuX3RlbXBsYXRlUm9vdCkpLFxuICAgICAgLy8gQ29weSB0aGVtIG92ZXIgdG8gdGhlIGN1cnJlbnQgcm9vdC5cbiAgICAgIGNvbmNhdE1hcChmcm9tID0+IHtcbiAgICAgICAgY29uc3QgdG8gPSBqb2luKHRoaXMucm9vdCgpLCByZWxhdGl2ZSh0aGlzLl90ZW1wbGF0ZVJvb3QsIGZyb20pKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yZWFkKGZyb20pLnBpcGUoXG4gICAgICAgICAgY29uY2F0TWFwKGJ1ZmZlciA9PiB0aGlzLndyaXRlKHRvLCBidWZmZXIpKSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+IHsgfSksXG4gICAgKTtcbiAgfVxuXG4gIHJlc3RvcmUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnRSb290ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuXG4gICAgLy8gRGVsZXRlIHRoZSBjdXJyZW50IHJvb3QgYW5kIGNsZWFyIHRoZSB2YXJpYWJsZXMuXG4gICAgLy8gV2FpdCA1MG1zIGFuZCByZXRyeSB1cCB0byAxMCB0aW1lcywgdG8gZ2l2ZSB0aW1lIGZvciBmaWxlIGxvY2tzIHRvIGNsZWFyLlxuICAgIHJldHVybiB0aGlzLmV4aXN0cyh0aGlzLnJvb3QoKSkucGlwZShcbiAgICAgIGRlbGF5KDUwKSxcbiAgICAgIGNvbmNhdE1hcChleGlzdHMgPT4gZXhpc3RzID8gdGhpcy5kZWxldGUodGhpcy5yb290KCkpIDogRU1QVFkpLFxuICAgICAgcmV0cnkoMTApLFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jdXJyZW50Um9vdCA9IG51bGw7XG4gICAgICAgIHRoaXMuX3Njb3BlZFN5bmNIb3N0ID0gbnVsbDtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICB3cml0ZU11bHRpcGxlRmlsZXMoZmlsZXM6IHsgW3BhdGg6IHN0cmluZ106IHN0cmluZyB8IEFycmF5QnVmZmVyTGlrZSB8IEJ1ZmZlciB9KTogdm9pZCB7XG4gICAgT2JqZWN0LmtleXMoZmlsZXMpLmZvckVhY2goZmlsZU5hbWUgPT4ge1xuICAgICAgbGV0IGNvbnRlbnQgPSBmaWxlc1tmaWxlTmFtZV07XG4gICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29udGVudCA9IHZpcnR1YWxGcy5zdHJpbmdUb0ZpbGVCdWZmZXIoY29udGVudCk7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgY29udGVudCA9IGNvbnRlbnQuYnVmZmVyLnNsaWNlKFxuICAgICAgICAgIGNvbnRlbnQuYnl0ZU9mZnNldCxcbiAgICAgICAgICBjb250ZW50LmJ5dGVPZmZzZXQgKyBjb250ZW50LmJ5dGVMZW5ndGgsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2NvcGVkU3luYygpLndyaXRlKFxuICAgICAgICBub3JtYWxpemUoZmlsZU5hbWUpLFxuICAgICAgICBjb250ZW50LFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlcGxhY2VJbkZpbGUocGF0aDogc3RyaW5nLCBtYXRjaDogUmVnRXhwIHwgc3RyaW5nLCByZXBsYWNlbWVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgY29udGVudCA9IHZpcnR1YWxGcy5maWxlQnVmZmVyVG9TdHJpbmcodGhpcy5zY29wZWRTeW5jKCkucmVhZChub3JtYWxpemUocGF0aCkpKTtcbiAgICB0aGlzLnNjb3BlZFN5bmMoKS53cml0ZShub3JtYWxpemUocGF0aCksXG4gICAgICB2aXJ0dWFsRnMuc3RyaW5nVG9GaWxlQnVmZmVyKGNvbnRlbnQucmVwbGFjZShtYXRjaCwgcmVwbGFjZW1lbnQpKSk7XG4gIH1cblxuICBhcHBlbmRUb0ZpbGUocGF0aDogc3RyaW5nLCBzdHI6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB2aXJ0dWFsRnMuZmlsZUJ1ZmZlclRvU3RyaW5nKHRoaXMuc2NvcGVkU3luYygpLnJlYWQobm9ybWFsaXplKHBhdGgpKSk7XG4gICAgdGhpcy5zY29wZWRTeW5jKCkud3JpdGUobm9ybWFsaXplKHBhdGgpLFxuICAgICAgdmlydHVhbEZzLnN0cmluZ1RvRmlsZUJ1ZmZlcihjb250ZW50LmNvbmNhdChzdHIpKSk7XG4gIH1cblxuICBmaWxlTWF0Y2hFeGlzdHMoZGlyOiBzdHJpbmcsIHJlZ2V4OiBSZWdFeHApOiBQYXRoRnJhZ21lbnQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IFtmaWxlTmFtZV0gPSB0aGlzLnNjb3BlZFN5bmMoKS5saXN0KG5vcm1hbGl6ZShkaXIpKS5maWx0ZXIobmFtZSA9PiBuYW1lLm1hdGNoKHJlZ2V4KSk7XG5cbiAgICByZXR1cm4gZmlsZU5hbWUgfHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgY29weUZpbGUoZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nKSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuc2NvcGVkU3luYygpLnJlYWQobm9ybWFsaXplKGZyb20pKTtcbiAgICB0aGlzLnNjb3BlZFN5bmMoKS53cml0ZShub3JtYWxpemUodG8pLCBjb250ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFVuaXF1ZUZvbGRlclBhdGgoKTogT2JzZXJ2YWJsZTxQYXRoPiB7XG4gICAgLy8gMTEgY2hhcmFjdGVyIGFscGhhbnVtZXJpYyBzdHJpbmcuXG4gICAgY29uc3QgcmFuZG9tU3RyaW5nID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7XG4gICAgY29uc3QgbmV3Rm9sZGVyTmFtZSA9IGB0ZXN0LXByb2plY3QtaG9zdC0ke2Jhc2VuYW1lKHRoaXMuX3RlbXBsYXRlUm9vdCl9LSR7cmFuZG9tU3RyaW5nfWA7XG4gICAgY29uc3QgbmV3Rm9sZGVyUGF0aCA9IGpvaW4oZGlybmFtZSh0aGlzLl90ZW1wbGF0ZVJvb3QpLCBuZXdGb2xkZXJOYW1lKTtcblxuICAgIHJldHVybiB0aGlzLmV4aXN0cyhuZXdGb2xkZXJQYXRoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKGV4aXN0cyA9PiBleGlzdHMgPyB0aGlzLmZpbmRVbmlxdWVGb2xkZXJQYXRoKCkgOiBvZihuZXdGb2xkZXJQYXRoKSksXG4gICAgKTtcbiAgfVxufVxuIl19
package/src/architect.js DELETED
@@ -1,202 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google Inc. All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.io/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const core_1 = require("@angular-devkit/core");
11
- const node_1 = require("@angular-devkit/core/node");
12
- const rxjs_1 = require("rxjs");
13
- const operators_1 = require("rxjs/operators");
14
- class ProjectNotFoundException extends core_1.BaseException {
15
- constructor(projectName) {
16
- super(`Project '${projectName}' could not be found in Workspace.`);
17
- }
18
- }
19
- exports.ProjectNotFoundException = ProjectNotFoundException;
20
- class TargetNotFoundException extends core_1.BaseException {
21
- constructor(projectName, targetName) {
22
- super(`Target '${targetName}' could not be found in project '${projectName}'.`);
23
- }
24
- }
25
- exports.TargetNotFoundException = TargetNotFoundException;
26
- class ConfigurationNotFoundException extends core_1.BaseException {
27
- constructor(projectName, configurationName) {
28
- super(`Configuration '${configurationName}' could not be found in project '${projectName}'.`);
29
- }
30
- }
31
- exports.ConfigurationNotFoundException = ConfigurationNotFoundException;
32
- // TODO: break this exception apart into more granular ones.
33
- class BuilderCannotBeResolvedException extends core_1.BaseException {
34
- constructor(builder) {
35
- super(`Builder '${builder}' cannot be resolved.`);
36
- }
37
- }
38
- exports.BuilderCannotBeResolvedException = BuilderCannotBeResolvedException;
39
- class ArchitectNotYetLoadedException extends core_1.BaseException {
40
- constructor() { super(`Architect needs to be loaded before Architect is used.`); }
41
- }
42
- exports.ArchitectNotYetLoadedException = ArchitectNotYetLoadedException;
43
- class BuilderNotFoundException extends core_1.BaseException {
44
- constructor(builder) {
45
- super(`Builder ${builder} could not be found.`);
46
- }
47
- }
48
- exports.BuilderNotFoundException = BuilderNotFoundException;
49
- class Architect {
50
- constructor(_workspace) {
51
- this._workspace = _workspace;
52
- this._targetsSchemaPath = core_1.join(core_1.normalize(__dirname), 'targets-schema.json');
53
- this._buildersSchemaPath = core_1.join(core_1.normalize(__dirname), 'builders-schema.json');
54
- this._architectSchemasLoaded = false;
55
- this._targetMapMap = new Map();
56
- this._builderPathsMap = new Map();
57
- this._builderDescriptionMap = new Map();
58
- this._builderConstructorMap = new Map();
59
- }
60
- loadArchitect() {
61
- if (this._architectSchemasLoaded) {
62
- return rxjs_1.of(this);
63
- }
64
- else {
65
- return rxjs_1.forkJoin(this._loadJsonFile(this._targetsSchemaPath), this._loadJsonFile(this._buildersSchemaPath)).pipe(operators_1.concatMap(([targetsSchema, buildersSchema]) => {
66
- this._targetsSchema = targetsSchema;
67
- this._buildersSchema = buildersSchema;
68
- this._architectSchemasLoaded = true;
69
- // Validate and cache all project target maps.
70
- return rxjs_1.forkJoin(...this._workspace.listProjectNames().map(projectName => {
71
- const unvalidatedTargetMap = this._workspace.getProjectTargets(projectName);
72
- return this._workspace.validateAgainstSchema(unvalidatedTargetMap, this._targetsSchema).pipe(operators_1.tap(targetMap => this._targetMapMap.set(projectName, targetMap)));
73
- }));
74
- }), operators_1.map(() => this));
75
- }
76
- }
77
- listProjectTargets(projectName) {
78
- return Object.keys(this._getProjectTargetMap(projectName));
79
- }
80
- _getProjectTargetMap(projectName) {
81
- if (!this._targetMapMap.has(projectName)) {
82
- throw new ProjectNotFoundException(projectName);
83
- }
84
- return this._targetMapMap.get(projectName);
85
- }
86
- _getProjectTarget(projectName, targetName) {
87
- const targetMap = this._getProjectTargetMap(projectName);
88
- const target = targetMap[targetName];
89
- if (!target) {
90
- throw new TargetNotFoundException(projectName, targetName);
91
- }
92
- return target;
93
- }
94
- getBuilderConfiguration(targetSpec) {
95
- const { project: projectName, target: targetName, configuration: configurationName, overrides, } = targetSpec;
96
- const project = this._workspace.getProject(projectName);
97
- const target = this._getProjectTarget(projectName, targetName);
98
- const options = target.options;
99
- let configuration = {};
100
- if (configurationName) {
101
- if (!target.configurations) {
102
- throw new ConfigurationNotFoundException(projectName, configurationName);
103
- }
104
- configuration = target.configurations[configurationName];
105
- if (!configuration) {
106
- throw new ConfigurationNotFoundException(projectName, configurationName);
107
- }
108
- }
109
- const builderConfiguration = {
110
- root: project.root,
111
- sourceRoot: project.sourceRoot,
112
- projectType: project.projectType,
113
- builder: target.builder,
114
- options: Object.assign({}, options, configuration, overrides),
115
- };
116
- return builderConfiguration;
117
- }
118
- run(builderConfig, partialContext = {}) {
119
- const context = Object.assign({ logger: new core_1.logging.NullLogger(), architect: this, host: this._workspace.host, workspace: this._workspace }, partialContext);
120
- let builderDescription;
121
- return this.getBuilderDescription(builderConfig).pipe(operators_1.tap(description => builderDescription = description), operators_1.concatMap(() => this.validateBuilderOptions(builderConfig, builderDescription)), operators_1.tap(validatedBuilderConfig => builderConfig = validatedBuilderConfig), operators_1.map(() => this.getBuilder(builderDescription, context)), operators_1.concatMap(builder => builder.run(builderConfig)));
122
- }
123
- getBuilderDescription(builderConfig) {
124
- // Check cache for this builder description.
125
- if (this._builderDescriptionMap.has(builderConfig.builder)) {
126
- return rxjs_1.of(this._builderDescriptionMap.get(builderConfig.builder));
127
- }
128
- return new rxjs_1.Observable((obs) => {
129
- // TODO: this probably needs to be more like NodeModulesEngineHost.
130
- const basedir = core_1.getSystemPath(this._workspace.root);
131
- const [pkg, builderName] = builderConfig.builder.split(':');
132
- const pkgJsonPath = node_1.resolve(pkg, { basedir, resolvePackageJson: true, checkLocal: true });
133
- let buildersJsonPath;
134
- let builderPaths;
135
- // Read the `builders` entry of package.json.
136
- return this._loadJsonFile(core_1.normalize(pkgJsonPath)).pipe(operators_1.concatMap((pkgJson) => {
137
- const pkgJsonBuildersentry = pkgJson['builders'];
138
- if (!pkgJsonBuildersentry) {
139
- return rxjs_1.throwError(new BuilderCannotBeResolvedException(builderConfig.builder));
140
- }
141
- buildersJsonPath = core_1.join(core_1.dirname(core_1.normalize(pkgJsonPath)), pkgJsonBuildersentry);
142
- return this._loadJsonFile(buildersJsonPath);
143
- }),
144
- // Validate builders json.
145
- operators_1.concatMap((builderPathsMap) => this._workspace.validateAgainstSchema(builderPathsMap, this._buildersSchema)), operators_1.concatMap((builderPathsMap) => {
146
- builderPaths = builderPathsMap.builders[builderName];
147
- if (!builderPaths) {
148
- return rxjs_1.throwError(new BuilderCannotBeResolvedException(builderConfig.builder));
149
- }
150
- // Resolve paths in the builder paths.
151
- const builderJsonDir = core_1.dirname(buildersJsonPath);
152
- builderPaths.schema = core_1.join(builderJsonDir, builderPaths.schema);
153
- builderPaths.class = core_1.join(builderJsonDir, builderPaths.class);
154
- // Save the builder paths so that we can lazily load the builder.
155
- this._builderPathsMap.set(builderConfig.builder, builderPaths);
156
- // Load the schema.
157
- return this._loadJsonFile(builderPaths.schema);
158
- }), operators_1.map(builderSchema => {
159
- const builderDescription = {
160
- name: builderConfig.builder,
161
- schema: builderSchema,
162
- description: builderPaths.description,
163
- };
164
- // Save to cache before returning.
165
- this._builderDescriptionMap.set(builderDescription.name, builderDescription);
166
- return builderDescription;
167
- })).subscribe(obs);
168
- });
169
- }
170
- validateBuilderOptions(builderConfig, builderDescription) {
171
- return this._workspace.validateAgainstSchema(builderConfig.options, builderDescription.schema).pipe(operators_1.map(validatedOptions => {
172
- builderConfig.options = validatedOptions;
173
- return builderConfig;
174
- }));
175
- }
176
- getBuilder(builderDescription, context) {
177
- const name = builderDescription.name;
178
- let builderConstructor;
179
- // Check cache for this builder.
180
- if (this._builderConstructorMap.has(name)) {
181
- builderConstructor = this._builderConstructorMap.get(name);
182
- }
183
- else {
184
- if (!this._builderPathsMap.has(name)) {
185
- throw new BuilderNotFoundException(name);
186
- }
187
- const builderPaths = this._builderPathsMap.get(name);
188
- // TODO: support more than the default export, maybe via builder#import-name.
189
- const builderModule = require(core_1.getSystemPath(builderPaths.class));
190
- builderConstructor = builderModule['default'];
191
- // Save builder to cache before returning.
192
- this._builderConstructorMap.set(builderDescription.name, builderConstructor);
193
- }
194
- const builder = new builderConstructor(context);
195
- return builder;
196
- }
197
- _loadJsonFile(path) {
198
- return this._workspace.host.read(core_1.normalize(path)).pipe(operators_1.map(buffer => core_1.virtualFs.fileBufferToString(buffer)), operators_1.map(str => core_1.parseJson(str, core_1.JsonParseMode.Loose)));
199
- }
200
- }
201
- exports.Architect = Architect;
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl0ZWN0LmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9hcmNoaXRlY3Qvc3JjL2FyY2hpdGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILCtDQWE4QjtBQUM5QixvREFBbUU7QUFDbkUsK0JBQTREO0FBQzVELDhDQUFxRDtBQUVyRCxNQUFhLHdCQUF5QixTQUFRLG9CQUFhO0lBQ3pELFlBQVksV0FBbUI7UUFDN0IsS0FBSyxDQUFDLFlBQVksV0FBVyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDRjtBQUpELDREQUlDO0FBRUQsTUFBYSx1QkFBd0IsU0FBUSxvQkFBYTtJQUN4RCxZQUFZLFdBQW1CLEVBQUUsVUFBa0I7UUFDakQsS0FBSyxDQUFDLFdBQVcsVUFBVSxvQ0FBb0MsV0FBVyxJQUFJLENBQUMsQ0FBQztJQUNsRixDQUFDO0NBQ0Y7QUFKRCwwREFJQztBQUVELE1BQWEsOEJBQStCLFNBQVEsb0JBQWE7SUFDL0QsWUFBWSxXQUFtQixFQUFFLGlCQUF5QjtRQUN4RCxLQUFLLENBQUMsa0JBQWtCLGlCQUFpQixvQ0FBb0MsV0FBVyxJQUFJLENBQUMsQ0FBQztJQUNoRyxDQUFDO0NBQ0Y7QUFKRCx3RUFJQztBQUVELDREQUE0RDtBQUM1RCxNQUFhLGdDQUFpQyxTQUFRLG9CQUFhO0lBQ2pFLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsWUFBWSxPQUFPLHVCQUF1QixDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGO0FBSkQsNEVBSUM7QUFFRCxNQUFhLDhCQUErQixTQUFRLG9CQUFhO0lBQy9ELGdCQUFnQixLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDbkY7QUFGRCx3RUFFQztBQUVELE1BQWEsd0JBQXlCLFNBQVEsb0JBQWE7SUFDekQsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLE9BQU8sc0JBQXNC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QUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVoRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVU7UUFDOUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDcEQsZUFBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNuRCxlQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxnQkFBUyxDQUFDLEdBQUcsRUFBRSxvQkFBYSxDQUFDLEtBQUssQ0FBcUIsQ0FBQyxDQUNwRSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcFBELDhCQW9QQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtcbiAgQmFzZUV4Y2VwdGlvbixcbiAgSnNvbk9iamVjdCxcbiAgSnNvblBhcnNlTW9kZSxcbiAgUGF0aCxcbiAgZGlybmFtZSxcbiAgZXhwZXJpbWVudGFsLFxuICBnZXRTeXN0ZW1QYXRoLFxuICBqb2luLFxuICBsb2dnaW5nLFxuICBub3JtYWxpemUsXG4gIHBhcnNlSnNvbixcbiAgdmlydHVhbEZzLFxufSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZSc7XG5pbXBvcnQgeyByZXNvbHZlIGFzIG5vZGVSZXNvbHZlIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9qZWN0Tm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IocHJvamVjdE5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKGBQcm9qZWN0ICcke3Byb2plY3ROYW1lfScgY291bGQgbm90IGJlIGZvdW5kIGluIFdvcmtzcGFjZS5gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFyZ2V0Tm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IocHJvamVjdE5hbWU6IHN0cmluZywgdGFyZ2V0TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFRhcmdldCAnJHt0YXJnZXROYW1lfScgY291bGQgbm90IGJlIGZvdW5kIGluIHByb2plY3QgJyR7cHJvamVjdE5hbWV9Jy5gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbk5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3ROYW1lOiBzdHJpbmcsIGNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgQ29uZmlndXJhdGlvbiAnJHtjb25maWd1cmF0aW9uTmFtZX0nIGNvdWxkIG5vdCBiZSBmb3VuZCBpbiBwcm9qZWN0ICcke3Byb2plY3ROYW1lfScuYCk7XG4gIH1cbn1cblxuLy8gVE9ETzogYnJlYWsgdGhpcyBleGNlcHRpb24gYXBhcnQgaW50byBtb3JlIGdyYW51bGFyIG9uZXMuXG5leHBvcnQgY2xhc3MgQnVpbGRlckNhbm5vdEJlUmVzb2x2ZWRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IoYnVpbGRlcjogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEJ1aWxkZXIgJyR7YnVpbGRlcn0nIGNhbm5vdCBiZSByZXNvbHZlZC5gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXJjaGl0ZWN0Tm90WWV0TG9hZGVkRXhjZXB0aW9uIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKCkgeyBzdXBlcihgQXJjaGl0ZWN0IG5lZWRzIHRvIGJlIGxvYWRlZCBiZWZvcmUgQXJjaGl0ZWN0IGlzIHVzZWQuYCk7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEJ1aWxkZXJOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihidWlsZGVyOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgQnVpbGRlciAke2J1aWxkZXJ9IGNvdWxkIG5vdCBiZSBmb3VuZC5gKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkZXJDb250ZXh0IHtcbiAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlcjtcbiAgaG9zdDogdmlydHVhbEZzLkhvc3Q8e30+O1xuICB3b3Jrc3BhY2U6IGV4cGVyaW1lbnRhbC53b3Jrc3BhY2UuV29ya3NwYWNlO1xuICBhcmNoaXRlY3Q6IEFyY2hpdGVjdDtcbiAgdGFyZ2V0U3BlY2lmaWVyPzogVGFyZ2V0U3BlY2lmaWVyO1xufVxuXG4vLyBUT0RPOiB1c2UgQnVpbGQgRXZlbnQgUHJvdG9jb2xcbi8vIGh0dHBzOi8vZG9jcy5iYXplbC5idWlsZC92ZXJzaW9ucy9tYXN0ZXIvYnVpbGQtZXZlbnQtcHJvdG9jb2wuaHRtbFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZWFwaXMvZ29vZ2xlYXBpcy90cmVlL21hc3Rlci9nb29nbGUvZGV2dG9vbHMvYnVpbGQvdjFcbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFdmVudCB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRlcjxPcHRpb25zVD4ge1xuICBydW4oYnVpbGRlckNvbmZpZzogQnVpbGRlckNvbmZpZ3VyYXRpb248UGFydGlhbDxPcHRpb25zVD4+KTogT2JzZXJ2YWJsZTxCdWlsZEV2ZW50Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZGVyUGF0aHNNYXAge1xuICBidWlsZGVyczogeyBbazogc3RyaW5nXTogQnVpbGRlclBhdGhzIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRlclBhdGhzIHtcbiAgY2xhc3M6IFBhdGg7XG4gIHNjaGVtYTogUGF0aDtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZGVyRGVzY3JpcHRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNjaGVtYTogSnNvbk9iamVjdDtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZGVyQ29uc3RydWN0b3I8T3B0aW9uc1Q+IHtcbiAgbmV3KGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0KTogQnVpbGRlcjxPcHRpb25zVD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRlckNvbmZpZ3VyYXRpb248T3B0aW9uc1QgPSB7fT4ge1xuICByb290OiBQYXRoO1xuICBzb3VyY2VSb290PzogUGF0aDtcbiAgcHJvamVjdFR5cGU6IHN0cmluZztcbiAgYnVpbGRlcjogc3RyaW5nO1xuICBvcHRpb25zOiBPcHRpb25zVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRTcGVjaWZpZXI8T3B0aW9uc1QgPSB7fT4ge1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIHRhcmdldDogc3RyaW5nO1xuICBjb25maWd1cmF0aW9uPzogc3RyaW5nO1xuICBvdmVycmlkZXM/OiBQYXJ0aWFsPE9wdGlvbnNUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRNYXAge1xuICBbazogc3RyaW5nXTogVGFyZ2V0O1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFRhcmdldE9wdGlvbnM8VCA9IEpzb25PYmplY3Q+ID0gVDtcbmV4cG9ydCBkZWNsYXJlIHR5cGUgVGFyZ2V0Q29uZmlndXJhdGlvbjxUID0gSnNvbk9iamVjdD4gPSBQYXJ0aWFsPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldDxUID0gSnNvbk9iamVjdD4ge1xuICBidWlsZGVyOiBzdHJpbmc7XG4gIG9wdGlvbnM6IFRhcmdldE9wdGlvbnM8VD47XG4gIGNvbmZpZ3VyYXRpb25zPzogeyBbazogc3RyaW5nXTogVGFyZ2V0Q29uZmlndXJhdGlvbjxUPiB9O1xufVxuXG5leHBvcnQgY2xhc3MgQXJjaGl0ZWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdGFyZ2V0c1NjaGVtYVBhdGggPSBqb2luKG5vcm1hbGl6ZShfX2Rpcm5hbWUpLCAndGFyZ2V0cy1zY2hlbWEuanNvbicpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9idWlsZGVyc1NjaGVtYVBhdGggPSBqb2luKG5vcm1hbGl6ZShfX2Rpcm5hbWUpLCAnYnVpbGRlcnMtc2NoZW1hLmpzb24nKTtcbiAgcHJpdmF0ZSBfdGFyZ2V0c1NjaGVtYTogSnNvbk9iamVjdDtcbiAgcHJpdmF0ZSBfYnVpbGRlcnNTY2hlbWE6IEpzb25PYmplY3Q7XG4gIHByaXZhdGUgX2FyY2hpdGVjdFNjaGVtYXNMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdGFyZ2V0TWFwTWFwID0gbmV3IE1hcDxzdHJpbmcsIFRhcmdldE1hcD4oKTtcbiAgcHJpdmF0ZSBfYnVpbGRlclBhdGhzTWFwID0gbmV3IE1hcDxzdHJpbmcsIEJ1aWxkZXJQYXRocz4oKTtcbiAgcHJpdmF0ZSBfYnVpbGRlckRlc2NyaXB0aW9uTWFwID0gbmV3IE1hcDxzdHJpbmcsIEJ1aWxkZXJEZXNjcmlwdGlvbj4oKTtcbiAgcHJpdmF0ZSBfYnVpbGRlckNvbnN0cnVjdG9yTWFwID0gbmV3IE1hcDxzdHJpbmcsIEJ1aWxkZXJDb25zdHJ1Y3Rvcjx7fT4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfd29ya3NwYWNlOiBleHBlcmltZW50YWwud29ya3NwYWNlLldvcmtzcGFjZSkgeyB9XG5cbiAgbG9hZEFyY2hpdGVjdCgpIHtcbiAgICBpZiAodGhpcy5fYXJjaGl0ZWN0U2NoZW1hc0xvYWRlZCkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZm9ya0pvaW4oXG4gICAgICAgIHRoaXMuX2xvYWRKc29uRmlsZSh0aGlzLl90YXJnZXRzU2NoZW1hUGF0aCksXG4gICAgICAgIHRoaXMuX2xvYWRKc29uRmlsZSh0aGlzLl9idWlsZGVyc1NjaGVtYVBhdGgpLFxuICAgICAgKS5waXBlKFxuICAgICAgICBjb25jYXRNYXAoKFt0YXJnZXRzU2NoZW1hLCBidWlsZGVyc1NjaGVtYV0pID0+IHtcbiAgICAgICAgICB0aGlzLl90YXJnZXRzU2NoZW1hID0gdGFyZ2V0c1NjaGVtYTtcbiAgICAgICAgICB0aGlzLl9idWlsZGVyc1NjaGVtYSA9IGJ1aWxkZXJzU2NoZW1hO1xuICAgICAgICAgIHRoaXMuX2FyY2hpdGVjdFNjaGVtYXNMb2FkZWQgPSB0cnVlO1xuXG4gICAgICAgICAgLy8gVmFsaWRhdGUgYW5kIGNhY2hlIGFsbCBwcm9qZWN0IHRhcmdldCBtYXBzLlxuICAgICAgICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgICAgICAgIC4uLnRoaXMuX3dvcmtzcGFjZS5saXN0UHJvamVjdE5hbWVzKCkubWFwKHByb2plY3ROYW1lID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdW52YWxpZGF0ZWRUYXJnZXRNYXAgPSB0aGlzLl93b3Jrc3BhY2UuZ2V0UHJvamVjdFRhcmdldHMocHJvamVjdE5hbWUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UudmFsaWRhdGVBZ2FpbnN0U2NoZW1hPFRhcmdldE1hcD4oXG4gICAgICAgICAgICAgICAgdW52YWxpZGF0ZWRUYXJnZXRNYXAsIHRoaXMuX3RhcmdldHNTY2hlbWEpLnBpcGUoXG4gICAgICAgICAgICAgICAgICB0YXAodGFyZ2V0TWFwID0+IHRoaXMuX3RhcmdldE1hcE1hcC5zZXQocHJvamVjdE5hbWUsIHRhcmdldE1hcCkpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbGlzdFByb2plY3RUYXJnZXRzKHByb2plY3ROYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2dldFByb2plY3RUYXJnZXRNYXAocHJvamVjdE5hbWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFByb2plY3RUYXJnZXRNYXAocHJvamVjdE5hbWU6IHN0cmluZyk6IFRhcmdldE1hcCB7XG4gICAgaWYgKCF0aGlzLl90YXJnZXRNYXBNYXAuaGFzKHByb2plY3ROYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IFByb2plY3ROb3RGb3VuZEV4Y2VwdGlvbihwcm9qZWN0TmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3RhcmdldE1hcE1hcC5nZXQocHJvamVjdE5hbWUpIGFzIFRhcmdldE1hcDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFByb2plY3RUYXJnZXQ8VCA9IHt9Pihwcm9qZWN0TmFtZTogc3RyaW5nLCB0YXJnZXROYW1lOiBzdHJpbmcpOiBUYXJnZXQ8VD4ge1xuICAgIGNvbnN0IHRhcmdldE1hcCA9IHRoaXMuX2dldFByb2plY3RUYXJnZXRNYXAocHJvamVjdE5hbWUpO1xuXG4gICAgY29uc3QgdGFyZ2V0ID0gdGFyZ2V0TWFwW3RhcmdldE5hbWVdIGFzIHt9IGFzIFRhcmdldDxUPjtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICB0aHJvdyBuZXcgVGFyZ2V0Tm90Rm91bmRFeGNlcHRpb24ocHJvamVjdE5hbWUsIHRhcmdldE5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBnZXRCdWlsZGVyQ29uZmlndXJhdGlvbjxPcHRpb25zVD4odGFyZ2V0U3BlYzogVGFyZ2V0U3BlY2lmaWVyKTogQnVpbGRlckNvbmZpZ3VyYXRpb248T3B0aW9uc1Q+IHtcbiAgICBjb25zdCB7XG4gICAgICBwcm9qZWN0OiBwcm9qZWN0TmFtZSxcbiAgICAgIHRhcmdldDogdGFyZ2V0TmFtZSxcbiAgICAgIGNvbmZpZ3VyYXRpb246IGNvbmZpZ3VyYXRpb25OYW1lLFxuICAgICAgb3ZlcnJpZGVzLFxuICAgIH0gPSB0YXJnZXRTcGVjO1xuXG4gICAgY29uc3QgcHJvamVjdCA9IHRoaXMuX3dvcmtzcGFjZS5nZXRQcm9qZWN0KHByb2plY3ROYW1lKTtcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLl9nZXRQcm9qZWN0VGFyZ2V0KHByb2plY3ROYW1lLCB0YXJnZXROYW1lKTtcbiAgICBjb25zdCBvcHRpb25zID0gdGFyZ2V0Lm9wdGlvbnM7XG4gICAgbGV0IGNvbmZpZ3VyYXRpb246IFRhcmdldENvbmZpZ3VyYXRpb24gPSB7fTtcblxuICAgIGlmIChjb25maWd1cmF0aW9uTmFtZSkge1xuICAgICAgaWYgKCF0YXJnZXQuY29uZmlndXJhdGlvbnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbmZpZ3VyYXRpb25Ob3RGb3VuZEV4Y2VwdGlvbihwcm9qZWN0TmFtZSwgY29uZmlndXJhdGlvbk5hbWUpO1xuICAgICAgfVxuXG4gICAgICBjb25maWd1cmF0aW9uID0gdGFyZ2V0LmNvbmZpZ3VyYXRpb25zW2NvbmZpZ3VyYXRpb25OYW1lXTtcblxuICAgICAgaWYgKCFjb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBDb25maWd1cmF0aW9uTm90Rm91bmRFeGNlcHRpb24ocHJvamVjdE5hbWUsIGNvbmZpZ3VyYXRpb25OYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBidWlsZGVyQ29uZmlndXJhdGlvbjogQnVpbGRlckNvbmZpZ3VyYXRpb248T3B0aW9uc1Q+ID0ge1xuICAgICAgcm9vdDogcHJvamVjdC5yb290IGFzIFBhdGgsXG4gICAgICBzb3VyY2VSb290OiBwcm9qZWN0LnNvdXJjZVJvb3QgYXMgUGF0aCB8IHVuZGVmaW5lZCxcbiAgICAgIHByb2plY3RUeXBlOiBwcm9qZWN0LnByb2plY3RUeXBlLFxuICAgICAgYnVpbGRlcjogdGFyZ2V0LmJ1aWxkZXIsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24sXG4gICAgICAgIC4uLm92ZXJyaWRlcyBhcyB7fSxcbiAgICAgIH0gYXMgT3B0aW9uc1QsXG4gICAgfTtcblxuICAgIHJldHVybiBidWlsZGVyQ29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIHJ1bjxPcHRpb25zVD4oXG4gICAgYnVpbGRlckNvbmZpZzogQnVpbGRlckNvbmZpZ3VyYXRpb248T3B0aW9uc1Q+LFxuICAgIHBhcnRpYWxDb250ZXh0OiBQYXJ0aWFsPEJ1aWxkZXJDb250ZXh0PiA9IHt9LFxuICApOiBPYnNlcnZhYmxlPEJ1aWxkRXZlbnQ+IHtcbiAgICBjb25zdCBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCA9IHtcbiAgICAgIGxvZ2dlcjogbmV3IGxvZ2dpbmcuTnVsbExvZ2dlcigpLFxuICAgICAgYXJjaGl0ZWN0OiB0aGlzLFxuICAgICAgaG9zdDogdGhpcy5fd29ya3NwYWNlLmhvc3QsXG4gICAgICB3b3Jrc3BhY2U6IHRoaXMuX3dvcmtzcGFjZSxcbiAgICAgIC4uLnBhcnRpYWxDb250ZXh0LFxuICAgIH07XG5cbiAgICBsZXQgYnVpbGRlckRlc2NyaXB0aW9uOiBCdWlsZGVyRGVzY3JpcHRpb247XG5cbiAgICByZXR1cm4gdGhpcy5nZXRCdWlsZGVyRGVzY3JpcHRpb24oYnVpbGRlckNvbmZpZykucGlwZShcbiAgICAgIHRhcChkZXNjcmlwdGlvbiA9PiBidWlsZGVyRGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbiksXG4gICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy52YWxpZGF0ZUJ1aWxkZXJPcHRpb25zKGJ1aWxkZXJDb25maWcsIGJ1aWxkZXJEZXNjcmlwdGlvbikpLFxuICAgICAgdGFwKHZhbGlkYXRlZEJ1aWxkZXJDb25maWcgPT4gYnVpbGRlckNvbmZpZyA9IHZhbGlkYXRlZEJ1aWxkZXJDb25maWcpLFxuICAgICAgbWFwKCgpID0+IHRoaXMuZ2V0QnVpbGRlcihidWlsZGVyRGVzY3JpcHRpb24sIGNvbnRleHQpKSxcbiAgICAgIGNvbmNhdE1hcChidWlsZGVyID0+IGJ1aWxkZXIucnVuKGJ1aWxkZXJDb25maWcpKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0QnVpbGRlckRlc2NyaXB0aW9uPE9wdGlvbnNUPihcbiAgICBidWlsZGVyQ29uZmlnOiBCdWlsZGVyQ29uZmlndXJhdGlvbjxPcHRpb25zVD4sXG4gICk6IE9ic2VydmFibGU8QnVpbGRlckRlc2NyaXB0aW9uPiB7XG4gICAgLy8gQ2hlY2sgY2FjaGUgZm9yIHRoaXMgYnVpbGRlciBkZXNjcmlwdGlvbi5cbiAgICBpZiAodGhpcy5fYnVpbGRlckRlc2NyaXB0aW9uTWFwLmhhcyhidWlsZGVyQ29uZmlnLmJ1aWxkZXIpKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5fYnVpbGRlckRlc2NyaXB0aW9uTWFwLmdldChidWlsZGVyQ29uZmlnLmJ1aWxkZXIpIGFzIEJ1aWxkZXJEZXNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnMpID0+IHtcbiAgICAgIC8vIFRPRE86IHRoaXMgcHJvYmFibHkgbmVlZHMgdG8gYmUgbW9yZSBsaWtlIE5vZGVNb2R1bGVzRW5naW5lSG9zdC5cbiAgICAgIGNvbnN0IGJhc2VkaXIgPSBnZXRTeXN0ZW1QYXRoKHRoaXMuX3dvcmtzcGFjZS5yb290KTtcbiAgICAgIGNvbnN0IFtwa2csIGJ1aWxkZXJOYW1lXSA9IGJ1aWxkZXJDb25maWcuYnVpbGRlci5zcGxpdCgnOicpO1xuICAgICAgY29uc3QgcGtnSnNvblBhdGggPSBub2RlUmVzb2x2ZShwa2csIHsgYmFzZWRpciwgcmVzb2x2ZVBhY2thZ2VKc29uOiB0cnVlLCBjaGVja0xvY2FsOiB0cnVlIH0pO1xuICAgICAgbGV0IGJ1aWxkZXJzSnNvblBhdGg6IFBhdGg7XG4gICAgICBsZXQgYnVpbGRlclBhdGhzOiBCdWlsZGVyUGF0aHM7XG5cbiAgICAgIC8vIFJlYWQgdGhlIGBidWlsZGVyc2AgZW50cnkgb2YgcGFja2FnZS5qc29uLlxuICAgICAgcmV0dXJuIHRoaXMuX2xvYWRKc29uRmlsZShub3JtYWxpemUocGtnSnNvblBhdGgpKS5waXBlKFxuICAgICAgICBjb25jYXRNYXAoKHBrZ0pzb246IEpzb25PYmplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCBwa2dKc29uQnVpbGRlcnNlbnRyeSA9IHBrZ0pzb25bJ2J1aWxkZXJzJ10gYXMgc3RyaW5nO1xuICAgICAgICAgIGlmICghcGtnSnNvbkJ1aWxkZXJzZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKG5ldyBCdWlsZGVyQ2Fubm90QmVSZXNvbHZlZEV4Y2VwdGlvbihidWlsZGVyQ29uZmlnLmJ1aWxkZXIpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBidWlsZGVyc0pzb25QYXRoID0gam9pbihkaXJuYW1lKG5vcm1hbGl6ZShwa2dKc29uUGF0aCkpLCBwa2dKc29uQnVpbGRlcnNlbnRyeSk7XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5fbG9hZEpzb25GaWxlKGJ1aWxkZXJzSnNvblBhdGgpO1xuICAgICAgICB9KSxcbiAgICAgICAgLy8gVmFsaWRhdGUgYnVpbGRlcnMganNvbi5cbiAgICAgICAgY29uY2F0TWFwKChidWlsZGVyUGF0aHNNYXApID0+IHRoaXMuX3dvcmtzcGFjZS52YWxpZGF0ZUFnYWluc3RTY2hlbWE8QnVpbGRlclBhdGhzTWFwPihcbiAgICAgICAgICBidWlsZGVyUGF0aHNNYXAsIHRoaXMuX2J1aWxkZXJzU2NoZW1hKSksXG4gICAgICAgIGNvbmNhdE1hcCgoYnVpbGRlclBhdGhzTWFwKSA9PiB7XG4gICAgICAgICAgYnVpbGRlclBhdGhzID0gYnVpbGRlclBhdGhzTWFwLmJ1aWxkZXJzW2J1aWxkZXJOYW1lXTtcblxuICAgICAgICAgIGlmICghYnVpbGRlclBhdGhzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihuZXcgQnVpbGRlckNhbm5vdEJlUmVzb2x2ZWRFeGNlcHRpb24oYnVpbGRlckNvbmZpZy5idWlsZGVyKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUmVzb2x2ZSBwYXRocyBpbiB0aGUgYnVpbGRlciBwYXRocy5cbiAgICAgICAgICBjb25zdCBidWlsZGVySnNvbkRpciA9IGRpcm5hbWUoYnVpbGRlcnNKc29uUGF0aCk7XG4gICAgICAgICAgYnVpbGRlclBhdGhzLnNjaGVtYSA9IGpvaW4oYnVpbGRlckpzb25EaXIsIGJ1aWxkZXJQYXRocy5zY2hlbWEpO1xuICAgICAgICAgIGJ1aWxkZXJQYXRocy5jbGFzcyA9IGpvaW4oYnVpbGRlckpzb25EaXIsIGJ1aWxkZXJQYXRocy5jbGFzcyk7XG5cbiAgICAgICAgICAvLyBTYXZlIHRoZSBidWlsZGVyIHBhdGhzIHNvIHRoYXQgd2UgY2FuIGxhemlseSBsb2FkIHRoZSBidWlsZGVyLlxuICAgICAgICAgIHRoaXMuX2J1aWxkZXJQYXRoc01hcC5zZXQoYnVpbGRlckNvbmZpZy5idWlsZGVyLCBidWlsZGVyUGF0aHMpO1xuXG4gICAgICAgICAgLy8gTG9hZCB0aGUgc2NoZW1hLlxuICAgICAgICAgIHJldHVybiB0aGlzLl9sb2FkSnNvbkZpbGUoYnVpbGRlclBhdGhzLnNjaGVtYSk7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoYnVpbGRlclNjaGVtYSA9PiB7XG4gICAgICAgICAgY29uc3QgYnVpbGRlckRlc2NyaXB0aW9uID0ge1xuICAgICAgICAgICAgbmFtZTogYnVpbGRlckNvbmZpZy5idWlsZGVyLFxuICAgICAgICAgICAgc2NoZW1hOiBidWlsZGVyU2NoZW1hLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGJ1aWxkZXJQYXRocy5kZXNjcmlwdGlvbixcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgLy8gU2F2ZSB0byBjYWNoZSBiZWZvcmUgcmV0dXJuaW5nLlxuICAgICAgICAgIHRoaXMuX2J1aWxkZXJEZXNjcmlwdGlvbk1hcC5zZXQoYnVpbGRlckRlc2NyaXB0aW9uLm5hbWUsIGJ1aWxkZXJEZXNjcmlwdGlvbik7XG5cbiAgICAgICAgICByZXR1cm4gYnVpbGRlckRlc2NyaXB0aW9uO1xuICAgICAgICB9KSxcbiAgICAgICkuc3Vic2NyaWJlKG9icyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZUJ1aWxkZXJPcHRpb25zPE9wdGlvbnNUPihcbiAgICBidWlsZGVyQ29uZmlnOiBCdWlsZGVyQ29uZmlndXJhdGlvbjxPcHRpb25zVD4sIGJ1aWxkZXJEZXNjcmlwdGlvbjogQnVpbGRlckRlc2NyaXB0aW9uLFxuICApOiBPYnNlcnZhYmxlPEJ1aWxkZXJDb25maWd1cmF0aW9uPE9wdGlvbnNUPj4ge1xuICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UudmFsaWRhdGVBZ2FpbnN0U2NoZW1hPE9wdGlvbnNUPihcbiAgICAgIGJ1aWxkZXJDb25maWcub3B0aW9ucywgYnVpbGRlckRlc2NyaXB0aW9uLnNjaGVtYSxcbiAgICApLnBpcGUoXG4gICAgICBtYXAodmFsaWRhdGVkT3B0aW9ucyA9PiB7XG4gICAgICAgIGJ1aWxkZXJDb25maWcub3B0aW9ucyA9IHZhbGlkYXRlZE9wdGlvbnM7XG5cbiAgICAgICAgcmV0dXJuIGJ1aWxkZXJDb25maWc7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZ2V0QnVpbGRlcjxPcHRpb25zVD4oXG4gICAgYnVpbGRlckRlc2NyaXB0aW9uOiBCdWlsZGVyRGVzY3JpcHRpb24sIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0LFxuICApOiBCdWlsZGVyPE9wdGlvbnNUPiB7XG4gICAgY29uc3QgbmFtZSA9IGJ1aWxkZXJEZXNjcmlwdGlvbi5uYW1lO1xuICAgIGxldCBidWlsZGVyQ29uc3RydWN0b3I6IEJ1aWxkZXJDb25zdHJ1Y3RvcjxPcHRpb25zVD47XG5cbiAgICAvLyBDaGVjayBjYWNoZSBmb3IgdGhpcyBidWlsZGVyLlxuICAgIGlmICh0aGlzLl9idWlsZGVyQ29uc3RydWN0b3JNYXAuaGFzKG5hbWUpKSB7XG4gICAgICBidWlsZGVyQ29uc3RydWN0b3IgPSB0aGlzLl9idWlsZGVyQ29uc3RydWN0b3JNYXAuZ2V0KG5hbWUpIGFzIEJ1aWxkZXJDb25zdHJ1Y3RvcjxPcHRpb25zVD47XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5fYnVpbGRlclBhdGhzTWFwLmhhcyhuYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRlck5vdEZvdW5kRXhjZXB0aW9uKG5hbWUpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBidWlsZGVyUGF0aHMgPSB0aGlzLl9idWlsZGVyUGF0aHNNYXAuZ2V0KG5hbWUpIGFzIEJ1aWxkZXJQYXRocztcblxuICAgICAgLy8gVE9ETzogc3VwcG9ydCBtb3JlIHRoYW4gdGhlIGRlZmF1bHQgZXhwb3J0LCBtYXliZSB2aWEgYnVpbGRlciNpbXBvcnQtbmFtZS5cbiAgICAgIGNvbnN0IGJ1aWxkZXJNb2R1bGUgPSByZXF1aXJlKGdldFN5c3RlbVBhdGgoYnVpbGRlclBhdGhzLmNsYXNzKSk7XG4gICAgICBidWlsZGVyQ29uc3RydWN0b3IgPSBidWlsZGVyTW9kdWxlWydkZWZhdWx0J10gYXMgQnVpbGRlckNvbnN0cnVjdG9yPE9wdGlvbnNUPjtcblxuICAgICAgLy8gU2F2ZSBidWlsZGVyIHRvIGNhY2hlIGJlZm9yZSByZXR1cm5pbmcuXG4gICAgICB0aGlzLl9idWlsZGVyQ29uc3RydWN0b3JNYXAuc2V0KGJ1aWxkZXJEZXNjcmlwdGlvbi5uYW1lLCBidWlsZGVyQ29uc3RydWN0b3IpO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgYnVpbGRlckNvbnN0cnVjdG9yKGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkSnNvbkZpbGUocGF0aDogUGF0aCk6IE9ic2VydmFibGU8SnNvbk9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UuaG9zdC5yZWFkKG5vcm1hbGl6ZShwYXRoKSkucGlwZShcbiAgICAgIG1hcChidWZmZXIgPT4gdmlydHVhbEZzLmZpbGVCdWZmZXJUb1N0cmluZyhidWZmZXIpKSxcbiAgICAgIG1hcChzdHIgPT4gcGFyc2VKc29uKHN0ciwgSnNvblBhcnNlTW9kZS5Mb29zZSkgYXMge30gYXMgSnNvbk9iamVjdCksXG4gICAgKTtcbiAgfVxufVxuIl19