Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@angular-devkit/architect-cli

Package Overview
Dependencies
Maintainers
2
Versions
928
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular-devkit/architect-cli - npm Package Compare versions

Comparing version
0.14.0-beta.1
to
0.14.0-beta.2
+15
src/progress.d.ts
/// <reference types="node" />
export declare class MultiProgressBar<Key, T> {
private _status;
private _stream;
private _bars;
constructor(_status: string, _stream?: NodeJS.WriteStream);
private _add;
complete(id: Key): void;
add(id: Key, data: T): void;
get(key: Key): T | undefined;
has(key: Key): boolean;
update(key: Key, data: T, current?: number, total?: number): void;
render(max?: number, sort?: (a: T, b: T) => number): void;
terminate(): void;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const core_1 = require("@angular-devkit/core");
const ProgressBar = require("progress");
const readline = require("readline");
class MultiProgressBar {
constructor(_status, _stream = process.stderr) {
this._status = _status;
this._stream = _stream;
this._bars = new Map();
}
_add(id, data) {
const width = Math.min(80, core_1.terminal.getCapabilities(this._stream).columns || 80);
const value = {
data,
bar: new ProgressBar(this._status, {
clear: true,
total: 1,
width: width,
complete: '#',
incomplete: '.',
stream: this._stream,
}),
};
this._bars.set(id, value);
readline.moveCursor(this._stream, 0, 1);
return value;
}
complete(id) {
const maybeBar = this._bars.get(id);
if (maybeBar) {
maybeBar.bar.complete = true;
}
}
add(id, data) {
this._add(id, data);
}
get(key) {
const maybeValue = this._bars.get(key);
return maybeValue && maybeValue.data;
}
has(key) {
return this._bars.has(key);
}
update(key, data, current, total) {
let maybeBar = this._bars.get(key);
if (!maybeBar) {
maybeBar = this._add(key, data);
}
maybeBar.data = data;
if (total !== undefined) {
maybeBar.bar.total = total;
}
if (current !== undefined) {
maybeBar.bar.curr = Math.max(0, Math.min(current, maybeBar.bar.total));
}
}
render(max = Infinity, sort) {
const stream = this._stream;
readline.moveCursor(stream, 0, -this._bars.size);
readline.cursorTo(stream, 0);
let values = this._bars.values();
if (sort) {
values = [...values].sort((a, b) => sort(a.data, b.data));
}
for (const { data, bar } of values) {
if (max-- == 0) {
return;
}
bar.render(data);
readline.moveCursor(stream, 0, 1);
readline.cursorTo(stream, 0);
}
}
terminate() {
for (const { bar } of this._bars.values()) {
bar.terminate();
}
this._bars.clear();
}
}
exports.MultiProgressBar = MultiProgressBar;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2FyY2hpdGVjdF9jbGkvc3JjL3Byb2dyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsK0NBQWdEO0FBQ2hELHdDQUF3QztBQUN4QyxxQ0FBcUM7QUFFckMsTUFBYSxnQkFBZ0I7SUFHM0IsWUFBb0IsT0FBZSxFQUFVLFVBQVUsT0FBTyxDQUFDLE1BQU07UUFBakQsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBRjdELFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBc0MsQ0FBQztJQUVVLENBQUM7SUFDakUsSUFBSSxDQUFDLEVBQU8sRUFBRSxJQUFPO1FBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLGVBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqRixNQUFNLEtBQUssR0FBRztZQUNaLElBQUk7WUFDSixHQUFHLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDakMsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osUUFBUSxFQUFFLEdBQUc7Z0JBQ2IsVUFBVSxFQUFFLEdBQUc7Z0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3JCLENBQUM7U0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFCLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFeEMsT0FBTyxLQUFLLENBQUM7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QUFFO1lBQ3pDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNqQjtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBdEZELDRDQXNGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7IHRlcm1pbmFsIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0ICogYXMgUHJvZ3Jlc3NCYXIgZnJvbSAncHJvZ3Jlc3MnO1xuaW1wb3J0ICogYXMgcmVhZGxpbmUgZnJvbSAncmVhZGxpbmUnO1xuXG5leHBvcnQgY2xhc3MgTXVsdGlQcm9ncmVzc0JhcjxLZXksIFQ+IHtcbiAgcHJpdmF0ZSBfYmFycyA9IG5ldyBNYXA8S2V5LCB7IGRhdGE6IFQsIGJhcjogUHJvZ3Jlc3NCYXIgfT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdGF0dXM6IHN0cmluZywgcHJpdmF0ZSBfc3RyZWFtID0gcHJvY2Vzcy5zdGRlcnIpIHt9XG4gIHByaXZhdGUgX2FkZChpZDogS2V5LCBkYXRhOiBUKTogeyBkYXRhOiBULCBiYXI6IFByb2dyZXNzQmFyIH0ge1xuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4oODAsIHRlcm1pbmFsLmdldENhcGFiaWxpdGllcyh0aGlzLl9zdHJlYW0pLmNvbHVtbnMgfHwgODApO1xuICAgIGNvbnN0IHZhbHVlID0ge1xuICAgICAgZGF0YSxcbiAgICAgIGJhcjogbmV3IFByb2dyZXNzQmFyKHRoaXMuX3N0YXR1cywge1xuICAgICAgICBjbGVhcjogdHJ1ZSxcbiAgICAgICAgdG90YWw6IDEsXG4gICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgY29tcGxldGU6ICcjJyxcbiAgICAgICAgaW5jb21wbGV0ZTogJy4nLFxuICAgICAgICBzdHJlYW06IHRoaXMuX3N0cmVhbSxcbiAgICAgIH0pLFxuICAgIH07XG4gICAgdGhpcy5fYmFycy5zZXQoaWQsIHZhbHVlKTtcbiAgICByZWFkbGluZS5tb3ZlQ3Vyc29yKHRoaXMuX3N0cmVhbSwgMCwgMSk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb21wbGV0ZShpZDogS2V5KSB7XG4gICAgY29uc3QgbWF5YmVCYXIgPSB0aGlzLl9iYXJzLmdldChpZCk7XG4gICAgaWYgKG1heWJlQmFyKSB7XG4gICAgICBtYXliZUJhci5iYXIuY29tcGxldGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGFkZChpZDogS2V5LCBkYXRhOiBUKSB7XG4gICAgdGhpcy5fYWRkKGlkLCBkYXRhKTtcbiAgfVxuXG4gIGdldChrZXk6IEtleSk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1heWJlVmFsdWUgPSB0aGlzLl9iYXJzLmdldChrZXkpO1xuXG4gICAgcmV0dXJuIG1heWJlVmFsdWUgJiYgbWF5YmVWYWx1ZS5kYXRhO1xuICB9XG4gIGhhcyhrZXk6IEtleSkge1xuICAgIHJldHVybiB0aGlzLl9iYXJzLmhhcyhrZXkpO1xuICB9XG4gIHVwZGF0ZShrZXk6IEtleSwgZGF0YTogVCwgY3VycmVudD86IG51bWJlciwgdG90YWw/OiBudW1iZXIpIHtcbiAgICBsZXQgbWF5YmVCYXIgPSB0aGlzLl9iYXJzLmdldChrZXkpO1xuXG4gICAgaWYgKCFtYXliZUJhcikge1xuICAgICAgbWF5YmVCYXIgPSB0aGlzLl9hZGQoa2V5LCBkYXRhKTtcbiAgICB9XG5cbiAgICBtYXliZUJhci5kYXRhID0gZGF0YTtcbiAgICBpZiAodG90YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbWF5YmVCYXIuYmFyLnRvdGFsID0gdG90YWw7XG4gICAgfVxuICAgIGlmIChjdXJyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1heWJlQmFyLmJhci5jdXJyID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oY3VycmVudCwgbWF5YmVCYXIuYmFyLnRvdGFsKSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKG1heCA9IEluZmluaXR5LCBzb3J0PzogKGE6IFQsIGI6IFQpID0+IG51bWJlcikge1xuICAgIGNvbnN0IHN0cmVhbSA9IHRoaXMuX3N0cmVhbTtcblxuICAgIHJlYWRsaW5lLm1vdmVDdXJzb3Ioc3RyZWFtLCAwLCAtdGhpcy5fYmFycy5zaXplKTtcbiAgICByZWFkbGluZS5jdXJzb3JUbyhzdHJlYW0sIDApO1xuXG4gICAgbGV0IHZhbHVlczogSXRlcmFibGU8eyBkYXRhOiBULCBiYXI6IFByb2dyZXNzQmFyIH0+ID0gdGhpcy5fYmFycy52YWx1ZXMoKTtcbiAgICBpZiAoc29ydCkge1xuICAgICAgdmFsdWVzID0gWy4uLnZhbHVlc10uc29ydCgoYSwgYikgPT4gc29ydChhLmRhdGEsIGIuZGF0YSkpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgeyBkYXRhLCBiYXIgfSBvZiB2YWx1ZXMpIHtcbiAgICAgIGlmIChtYXgtLSA9PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYmFyLnJlbmRlcihkYXRhKTtcbiAgICAgIHJlYWRsaW5lLm1vdmVDdXJzb3Ioc3RyZWFtLCAwLCAxKTtcbiAgICAgIHJlYWRsaW5lLmN1cnNvclRvKHN0cmVhbSwgMCk7XG4gICAgfVxuICB9XG5cbiAgdGVybWluYXRlKCkge1xuICAgIGZvciAoY29uc3QgeyBiYXIgfSBvZiB0aGlzLl9iYXJzLnZhbHVlcygpKSB7XG4gICAgICBiYXIudGVybWluYXRlKCk7XG4gICAgfVxuICAgIHRoaXMuX2JhcnMuY2xlYXIoKTtcbiAgfVxufVxuIl19
+1
-1
#!/usr/bin/env node
import 'symbol-observable';
export {};
#!/usr/bin/env node
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
require("symbol-observable");
// symbol polyfill must go first
// tslint:disable-next-line:ordered-imports import-groups
const architect_1 = require("@angular-devkit/architect");
const node_1 = require("@angular-devkit/architect/node");
const core_1 = require("@angular-devkit/core");
const node_1 = require("@angular-devkit/core/node");
const node_2 = require("@angular-devkit/core/node");
const fs_1 = require("fs");
const minimist = require("minimist");
const path = require("path");
const rxjs_1 = require("rxjs");
const operators_1 = require("rxjs/operators");
const progress_1 = require("../src/progress");
function findUp(names, from) {

@@ -35,3 +32,3 @@ if (!Array.isArray(names)) {

*/
function usage(exitCode = 0) {
function usage(logger, exitCode = 0) {
logger.info(core_1.tags.stripIndent `

@@ -53,69 +50,116 @@ architect [project][:target][:configuration] [options, ...]

}
/** Parse the command line. */
const argv = minimist(process.argv.slice(2), { boolean: ['help'] });
/** Create the DevKit Logger used through the CLI. */
const logger = node_1.createConsoleLogger(argv['verbose']);
// Check the target.
const targetStr = argv._.shift();
if (!targetStr && argv.help) {
// Show architect usage if there's no target.
usage();
function _targetStringFromTarget({ project, target, configuration }) {
return `${project}:${target}${configuration !== undefined ? ':' + configuration : ''}`;
}
// Split a target into its parts.
let project, targetName, configuration;
if (targetStr) {
[project, targetName, configuration] = targetStr.split(':');
async function _executeTarget(parentLogger, workspace, root, argv, registry) {
const architectHost = new node_1.WorkspaceNodeModulesArchitectHost(workspace, root);
const architect = new architect_1.index2.Architect(architectHost, registry);
// Split a target into its parts.
const targetStr = argv._.shift() || '';
const [project, target, configuration] = targetStr.split(':');
const targetSpec = { project, target, configuration };
delete argv['help'];
delete argv['_'];
const logger = new core_1.logging.Logger('jobs');
const logs = [];
logger.subscribe(entry => logs.push(Object.assign({}, entry, { message: `${entry.name}: ` + entry.message })));
const run = await architect.scheduleTarget(targetSpec, argv, { logger });
const bars = new progress_1.MultiProgressBar(':name :bar (:current/:total) :status');
run.progress.subscribe(update => {
const data = bars.get(update.id) || {
id: update.id,
builder: update.builder,
target: update.target,
status: update.status || '',
name: ((update.target ? _targetStringFromTarget(update.target) : update.builder.name)
+ ' '.repeat(80)).substr(0, 40),
};
if (update.status !== undefined) {
data.status = update.status;
}
switch (update.state) {
case architect_1.index2.BuilderProgressState.Error:
data.status = 'Error: ' + update.error;
bars.update(update.id, data);
break;
case architect_1.index2.BuilderProgressState.Stopped:
data.status = 'Done.';
bars.complete(update.id);
bars.update(update.id, data, update.total, update.total);
break;
case architect_1.index2.BuilderProgressState.Waiting:
bars.update(update.id, data);
break;
case architect_1.index2.BuilderProgressState.Running:
bars.update(update.id, data, update.current, update.total);
break;
}
bars.render();
});
// Wait for full completion of the builder.
try {
const result = await run.result;
if (result.success) {
parentLogger.info(core_1.terminal.green('SUCCESS'));
}
else {
parentLogger.info(core_1.terminal.yellow('FAILURE'));
}
parentLogger.info('\nLogs:');
logs.forEach(l => parentLogger.next(l));
await run.stop();
bars.terminate();
return result.success ? 0 : 1;
}
catch (err) {
parentLogger.info(core_1.terminal.red('ERROR'));
parentLogger.info('\nLogs:');
logs.forEach(l => parentLogger.next(l));
parentLogger.fatal('Exception:');
parentLogger.fatal(err.stack);
return 2;
}
}
// Load workspace configuration file.
const currentPath = process.cwd();
const configFileNames = [
'angular.json',
'.angular.json',
'workspace.json',
'.workspace.json',
];
const configFilePath = findUp(configFileNames, currentPath);
if (!configFilePath) {
logger.fatal(`Workspace configuration file (${configFileNames.join(', ')}) cannot be found in `
+ `'${currentPath}' or in parent directories.`);
process.exit(3);
throw 3; // TypeScript doesn't know that process.exit() never returns.
}
const root = core_1.dirname(core_1.normalize(configFilePath));
const configContent = fs_1.readFileSync(configFilePath, 'utf-8');
const workspaceJson = JSON.parse(configContent);
const host = new node_1.NodeJsSyncHost();
const workspace = new core_1.experimental.workspace.Workspace(root, host);
let lastBuildEvent = { success: true };
workspace.loadWorkspaceFromJson(workspaceJson).pipe(operators_1.concatMap(ws => new architect_1.Architect(ws).loadArchitect()), operators_1.concatMap(architect => {
const overrides = Object.assign({}, argv);
delete overrides['help'];
delete overrides['_'];
const targetSpec = {
project,
target: targetName,
configuration,
overrides,
};
// TODO: better logging of what's happening.
if (argv.help) {
// TODO: add target help
return rxjs_1.throwError('Target help NYI.');
// architect.help(targetOptions, logger);
async function main(args) {
/** Parse the command line. */
const argv = minimist(args, { boolean: ['help'] });
/** Create the DevKit Logger used through the CLI. */
const logger = node_2.createConsoleLogger(argv['verbose']);
// Check the target.
const targetStr = argv._[0] || '';
if (!targetStr || argv.help) {
// Show architect usage if there's no target.
usage(logger);
}
else {
const builderConfig = architect.getBuilderConfiguration(targetSpec);
return architect.run(builderConfig, { logger });
// Load workspace configuration file.
const currentPath = process.cwd();
const configFileNames = [
'angular.json',
'.angular.json',
'workspace.json',
'.workspace.json',
];
const configFilePath = findUp(configFileNames, currentPath);
if (!configFilePath) {
logger.fatal(`Workspace configuration file (${configFileNames.join(', ')}) cannot be found in `
+ `'${currentPath}' or in parent directories.`);
return 3;
}
})).subscribe({
next: (buildEvent => lastBuildEvent = buildEvent),
complete: () => process.exit(lastBuildEvent.success ? 0 : 1),
error: (err) => {
logger.fatal(err.message);
if (err.stack) {
logger.fatal(err.stack);
}
process.exit(1);
},
const root = core_1.dirname(core_1.normalize(configFilePath));
const configContent = fs_1.readFileSync(configFilePath, 'utf-8');
const workspaceJson = JSON.parse(configContent);
const registry = new core_1.schema.CoreSchemaRegistry();
registry.addPostTransform(core_1.schema.transforms.addUndefinedDefaults);
const host = new node_2.NodeJsSyncHost();
const workspace = new core_1.experimental.workspace.Workspace(root, host);
await workspace.loadWorkspaceFromJson(workspaceJson).toPromise();
return await _executeTarget(logger, workspace, root, argv, registry);
}
main(process.argv.slice(2))
.then(code => {
process.exit(code);
}, err => {
console.error('Error: ' + err.stack || err.message || err);
process.exit(-1);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl0ZWN0LmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9hcmNoaXRlY3RfY2xpL2Jpbi9hcmNoaXRlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0EsNkJBQTJCO0FBQzNCLGdDQUFnQztBQUNoQyx5REFBeUQ7QUFDekQseURBQXNEO0FBQ3RELCtDQUE4RTtBQUM5RSxvREFBZ0Y7QUFDaEYsMkJBQThDO0FBQzlDLHFDQUFxQztBQUNyQyw2QkFBNkI7QUFDN0IsK0JBQWtDO0FBQ2xDLDhDQUEyQztBQUczQyxTQUFTLE1BQU0sQ0FBQyxLQUF3QixFQUFFLElBQVk7SUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDekIsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDakI7SUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVuQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDdEIsT0FBTyxVQUFVLElBQUksVUFBVSxLQUFLLElBQUksRUFBRTtRQUN4QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLGVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakIsT0FBTyxDQUFDLENBQUM7YUFDVjtTQUNGO1FBRUQsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDdkM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDO0lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBSSxDQUFDLFdBQVcs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UUFDeEIsT0FBTyxpQkFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMseUNBQXlDO0tBQzFDO1NBQU07UUFDTCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFcEUsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7S0FDakQ7QUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsQ0FBQztJQUNWLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQztJQUNqRCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxLQUFLLEVBQUUsQ0FBQyxHQUFVLEVBQUUsRUFBRTtRQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7WUFDYixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICdzeW1ib2wtb2JzZXJ2YWJsZSc7XG4vLyBzeW1ib2wgcG9seWZpbGwgbXVzdCBnbyBmaXJzdFxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm9yZGVyZWQtaW1wb3J0cyBpbXBvcnQtZ3JvdXBzXG5pbXBvcnQgeyBBcmNoaXRlY3QgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB7IGRpcm5hbWUsIGV4cGVyaW1lbnRhbCwgbm9ybWFsaXplLCB0YWdzIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHsgTm9kZUpzU3luY0hvc3QsIGNyZWF0ZUNvbnNvbGVMb2dnZXIgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZS9ub2RlJztcbmltcG9ydCB7IGV4aXN0c1N5bmMsIHJlYWRGaWxlU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG1pbmltaXN0IGZyb20gJ21pbmltaXN0JztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb25jYXRNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuZnVuY3Rpb24gZmluZFVwKG5hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSwgZnJvbTogc3RyaW5nKSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShuYW1lcykpIHtcbiAgICBuYW1lcyA9IFtuYW1lc107XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHBhdGgucGFyc2UoZnJvbSkucm9vdDtcblxuICBsZXQgY3VycmVudERpciA9IGZyb207XG4gIHdoaWxlIChjdXJyZW50RGlyICYmIGN1cnJlbnREaXIgIT09IHJvb3QpIHtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICAgIGNvbnN0IHAgPSBwYXRoLmpvaW4oY3VycmVudERpciwgbmFtZSk7XG4gICAgICBpZiAoZXhpc3RzU3luYyhwKSkge1xuICAgICAgICByZXR1cm4gcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjdXJyZW50RGlyID0gcGF0aC5kaXJuYW1lKGN1cnJlbnREaXIpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogU2hvdyB1c2FnZSBvZiB0aGUgQ0xJIHRvb2wsIGFuZCBleGl0IHRoZSBwcm9jZXNzLlxuICovXG5mdW5jdGlvbiB1c2FnZShleGl0Q29kZSA9IDApOiBuZXZlciB7XG4gIGxvZ2dlci5pbmZvKHRhZ3Muc3RyaXBJbmRlbnRgXG4gICAgYXJjaGl0ZWN0IFtwcm9qZWN0XVs6dGFyZ2V0XVs6Y29uZmlndXJhdGlvbl0gW29wdGlvbnMsIC4uLl1cblxuICAgIFJ1biBhIHByb2plY3QgdGFyZ2V0LlxuICAgIElmIHByb2plY3QvdGFyZ2V0L2NvbmZpZ3VyYXRpb24gYXJlIG5vdCBzcGVjaWZpZWQsIHRoZSB3b3Jrc3BhY2UgZGVmYXVsdHMgd2lsbCBiZSB1c2VkLlxuXG4gICAgT3B0aW9uczpcbiAgICAgICAgLS1oZWxwICAgICAgICAgICAgICBTaG93IGF2YWlsYWJsZSBvcHRpb25zIGZvciBwcm9qZWN0IHRhcmdldC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaG93cyB0aGlzIG1lc3NhZ2UgaW5zdGVhZCB3aGVuIHJhbiB3aXRob3V0IHRoZSBydW4gYXJndW1lbnQuXG5cblxuICAgIEFueSBhZGRpdGlvbmFsIG9wdGlvbiBpcyBwYXNzZWQgdGhlIHRhcmdldCwgb3ZlcnJpZGluZyBleGlzdGluZyBvcHRpb25zLlxuICBgKTtcblxuICBwcm9jZXNzLmV4aXQoZXhpdENvZGUpO1xuICB0aHJvdyAwOyAgLy8gVGhlIG5vZGUgdHlwaW5nIHNvbWV0aW1lcyBkb24ndCBoYXZlIGEgbmV2ZXIgdHlwZSBmb3IgcHJvY2Vzcy5leGl0KCkuXG59XG5cbi8qKiBQYXJzZSB0aGUgY29tbWFuZCBsaW5lLiAqL1xuY29uc3QgYXJndiA9IG1pbmltaXN0KHByb2Nlc3MuYXJndi5zbGljZSgyKSwgeyBib29sZWFuOiBbJ2hlbHAnXSB9KTtcblxuLyoqIENyZWF0ZSB0aGUgRGV2S2l0IExvZ2dlciB1c2VkIHRocm91Z2ggdGhlIENMSS4gKi9cbmNvbnN0IGxvZ2dlciA9IGNyZWF0ZUNvbnNvbGVMb2dnZXIoYXJndlsndmVyYm9zZSddKTtcblxuLy8gQ2hlY2sgdGhlIHRhcmdldC5cbmNvbnN0IHRhcmdldFN0ciA9IGFyZ3YuXy5zaGlmdCgpO1xuaWYgKCF0YXJnZXRTdHIgJiYgYXJndi5oZWxwKSB7XG4gIC8vIFNob3cgYXJjaGl0ZWN0IHVzYWdlIGlmIHRoZXJlJ3Mgbm8gdGFyZ2V0LlxuICB1c2FnZSgpO1xufVxuXG4vLyBTcGxpdCBhIHRhcmdldCBpbnRvIGl0cyBwYXJ0cy5cbmxldCBwcm9qZWN0OiBzdHJpbmcsIHRhcmdldE5hbWU6IHN0cmluZywgY29uZmlndXJhdGlvbjogc3RyaW5nO1xuaWYgKHRhcmdldFN0cikge1xuICBbcHJvamVjdCwgdGFyZ2V0TmFtZSwgY29uZmlndXJhdGlvbl0gPSB0YXJnZXRTdHIuc3BsaXQoJzonKTtcbn1cblxuLy8gTG9hZCB3b3Jrc3BhY2UgY29uZmlndXJhdGlvbiBmaWxlLlxuY29uc3QgY3VycmVudFBhdGggPSBwcm9jZXNzLmN3ZCgpO1xuY29uc3QgY29uZmlnRmlsZU5hbWVzID0gW1xuICAnYW5ndWxhci5qc29uJyxcbiAgJy5hbmd1bGFyLmpzb24nLFxuICAnd29ya3NwYWNlLmpzb24nLFxuICAnLndvcmtzcGFjZS5qc29uJyxcbl07XG5cbmNvbnN0IGNvbmZpZ0ZpbGVQYXRoID0gZmluZFVwKGNvbmZpZ0ZpbGVOYW1lcywgY3VycmVudFBhdGgpO1xuXG5pZiAoIWNvbmZpZ0ZpbGVQYXRoKSB7XG4gIGxvZ2dlci5mYXRhbChgV29ya3NwYWNlIGNvbmZpZ3VyYXRpb24gZmlsZSAoJHtjb25maWdGaWxlTmFtZXMuam9pbignLCAnKX0pIGNhbm5vdCBiZSBmb3VuZCBpbiBgXG4gICAgKyBgJyR7Y3VycmVudFBhdGh9JyBvciBpbiBwYXJlbnQgZGlyZWN0b3JpZXMuYCk7XG4gIHByb2Nlc3MuZXhpdCgzKTtcbiAgdGhyb3cgMzsgIC8vIFR5cGVTY3JpcHQgZG9lc24ndCBrbm93IHRoYXQgcHJvY2Vzcy5leGl0KCkgbmV2ZXIgcmV0dXJucy5cbn1cblxuY29uc3Qgcm9vdCA9IGRpcm5hbWUobm9ybWFsaXplKGNvbmZpZ0ZpbGVQYXRoKSk7XG5jb25zdCBjb25maWdDb250ZW50ID0gcmVhZEZpbGVTeW5jKGNvbmZpZ0ZpbGVQYXRoLCAndXRmLTgnKTtcbmNvbnN0IHdvcmtzcGFjZUpzb24gPSBKU09OLnBhcnNlKGNvbmZpZ0NvbnRlbnQpO1xuXG5jb25zdCBob3N0ID0gbmV3IE5vZGVKc1N5bmNIb3N0KCk7XG5jb25zdCB3b3Jrc3BhY2UgPSBuZXcgZXhwZXJpbWVudGFsLndvcmtzcGFjZS5Xb3Jrc3BhY2Uocm9vdCwgaG9zdCk7XG5cbmxldCBsYXN0QnVpbGRFdmVudCA9IHsgc3VjY2VzczogdHJ1ZSB9O1xuXG53b3Jrc3BhY2UubG9hZFdvcmtzcGFjZUZyb21Kc29uKHdvcmtzcGFjZUpzb24pLnBpcGUoXG4gIGNvbmNhdE1hcCh3cyA9PiBuZXcgQXJjaGl0ZWN0KHdzKS5sb2FkQXJjaGl0ZWN0KCkpLFxuICBjb25jYXRNYXAoYXJjaGl0ZWN0ID0+IHtcblxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IHsgLi4uYXJndiB9O1xuICAgIGRlbGV0ZSBvdmVycmlkZXNbJ2hlbHAnXTtcbiAgICBkZWxldGUgb3ZlcnJpZGVzWydfJ107XG5cbiAgICBjb25zdCB0YXJnZXRTcGVjID0ge1xuICAgICAgcHJvamVjdCxcbiAgICAgIHRhcmdldDogdGFyZ2V0TmFtZSxcbiAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICBvdmVycmlkZXMsXG4gICAgfTtcblxuICAgIC8vIFRPRE86IGJldHRlciBsb2dnaW5nIG9mIHdoYXQncyBoYXBwZW5pbmcuXG4gICAgaWYgKGFyZ3YuaGVscCkge1xuICAgICAgLy8gVE9ETzogYWRkIHRhcmdldCBoZWxwXG4gICAgICByZXR1cm4gdGhyb3dFcnJvcignVGFyZ2V0IGhlbHAgTllJLicpO1xuICAgICAgLy8gYXJjaGl0ZWN0LmhlbHAodGFyZ2V0T3B0aW9ucywgbG9nZ2VyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYnVpbGRlckNvbmZpZyA9IGFyY2hpdGVjdC5nZXRCdWlsZGVyQ29uZmlndXJhdGlvbih0YXJnZXRTcGVjKTtcblxuICAgICAgcmV0dXJuIGFyY2hpdGVjdC5ydW4oYnVpbGRlckNvbmZpZywgeyBsb2dnZXIgfSk7XG4gICAgfVxuICB9KSxcbikuc3Vic2NyaWJlKHtcbiAgbmV4dDogKGJ1aWxkRXZlbnQgPT4gbGFzdEJ1aWxkRXZlbnQgPSBidWlsZEV2ZW50KSxcbiAgY29tcGxldGU6ICgpID0+IHByb2Nlc3MuZXhpdChsYXN0QnVpbGRFdmVudC5zdWNjZXNzID8gMCA6IDEpLFxuICBlcnJvcjogKGVycjogRXJyb3IpID0+IHtcbiAgICBsb2dnZXIuZmF0YWwoZXJyLm1lc3NhZ2UpO1xuICAgIGlmIChlcnIuc3RhY2spIHtcbiAgICAgIGxvZ2dlci5mYXRhbChlcnIuc3RhY2spO1xuICAgIH1cbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH0sXG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl0ZWN0LmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9hcmNoaXRlY3RfY2xpL2Jpbi9hcmNoaXRlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUEseURBQW1EO0FBQ25ELHlEQUFtRjtBQUNuRiwrQ0FROEI7QUFDOUIsb0RBQWdGO0FBQ2hGLDJCQUE4QztBQUM5QyxxQ0FBcUM7QUFDckMsNkJBQTZCO0FBQzdCLDhDQUFtRDtBQUduRCxTQUFTLE1BQU0sQ0FBQyxLQUF3QixFQUFFLElBQVk7SUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDekIsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDakI7SUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVuQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDdEIsT0FBTyxVQUFVLElBQUksVUFBVSxLQUFLLElBQUksRUFBRTtRQUN4QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLGVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakIsT0FBTyxDQUFDLENBQUM7YUFDVjtTQUNGO1FBRUQsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDdkM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsS0FBSyxDQUFDLE1BQXNCLEVBQUUsUUFBUSxHQUFHLENBQUM7SUFDakQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFJLENBQUMsV0FBVyxDQUFBOzs7Ozs7Ozs7Ozs7R0FZM0IsQ0FBQyxD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U0FBUyxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRWpFLE9BQU8sTUFBTSxjQUFjLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO0lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7SUFDUCxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7SUFDM0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHsgaW5kZXgyIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2FyY2hpdGVjdCc7XG5pbXBvcnQgeyBXb3Jrc3BhY2VOb2RlTW9kdWxlc0FyY2hpdGVjdEhvc3QgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0L25vZGUnO1xuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgZXhwZXJpbWVudGFsLFxuICBqc29uLFxuICBsb2dnaW5nLFxuICBub3JtYWxpemUsXG4gIHNjaGVtYSxcbiAgdGFncywgdGVybWluYWwsXG59IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7IE5vZGVKc1N5bmNIb3N0LCBjcmVhdGVDb25zb2xlTG9nZ2VyIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZSc7XG5pbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBtaW5pbWlzdCBmcm9tICdtaW5pbWlzdCc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgTXVsdGlQcm9ncmVzc0JhciB9IGZyb20gJy4uL3NyYy9wcm9ncmVzcyc7XG5cblxuZnVuY3Rpb24gZmluZFVwKG5hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSwgZnJvbTogc3RyaW5nKSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShuYW1lcykpIHtcbiAgICBuYW1lcyA9IFtuYW1lc107XG4gIH1cbiAgY29uc3Qgcm9vdCA9IHBhdGgucGFyc2UoZnJvbSkucm9vdDtcblxuICBsZXQgY3VycmVudERpciA9IGZyb207XG4gIHdoaWxlIChjdXJyZW50RGlyICYmIGN1cnJlbnREaXIgIT09IHJvb3QpIHtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICAgIGNvbnN0IHAgPSBwYXRoLmpvaW4oY3VycmVudERpciwgbmFtZSk7XG4gICAgICBpZiAoZXhpc3RzU3luYyhwKSkge1xuICAgICAgICByZXR1cm4gcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjdXJyZW50RGlyID0gcGF0aC5kaXJuYW1lKGN1cnJlbnREaXIpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogU2hvdyB1c2FnZSBvZiB0aGUgQ0xJIHRvb2wsIGFuZCBleGl0IHRoZSBwcm9jZXNzLlxuICovXG5mdW5jdGlvbiB1c2FnZShsb2dnZXI6IGxvZ2dpbmcuTG9nZ2VyLCBleGl0Q29kZSA9IDApOiBuZXZlciB7XG4gIGxvZ2dlci5pbmZvKHRhZ3Muc3RyaXBJbmRlbnRgXG4gICAgYXJjaGl0ZWN0IFtwcm9qZWN0XVs6dGFyZ2V0XVs6Y29uZmlndXJhdGlvbl0gW29wdGlvbnMsIC4uLl1cblxuICAgIFJ1biBhIHByb2plY3QgdGFyZ2V0LlxuICAgIElmIHByb2plY3QvdGFyZ2V0L2NvbmZpZ3VyYXRpb24gYXJlIG5vdCBzcGVjaWZpZWQsIHRoZSB3b3Jrc3BhY2UgZGVmYXVsdHMgd2lsbCBiZSB1c2VkLlxuXG4gICAgT3B0aW9uczpcbiAgICAgICAgLS1oZWxwICAgICAgICAgICAgICBTaG93IGF2YWlsYWJsZSBvcHRpb25zIGZvciBwcm9qZWN0IHRhcmdldC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaG93cyB0aGlzIG1lc3NhZ2UgaW5zdGVhZCB3aGVuIHJhbiB3aXRob3V0IHRoZSBydW4gYXJndW1lbnQuXG5cblxuICAgIEFueSBhZGRpdGlvbmFsIG9wdGlvbiBpcyBwYXNzZWQgdGhlIHRhcmdldCwgb3ZlcnJpZGluZyBleGlzdGluZyBvcHRpb25zLlxuICBgKTtcblxuICBwcm9jZXNzLmV4aXQoZXhpdENvZGUpO1xuICB0aHJvdyAwOyAgLy8gVGhlIG5vZGUgdHlwaW5nIHNvbWV0aW1lcyBkb24ndCBoYXZlIGEgbmV2ZXIgdHlwZSBmb3IgcHJvY2Vzcy5leGl0KCkuXG59XG5cbmZ1bmN0aW9uIF90YXJnZXRTdHJpbmdGcm9tVGFyZ2V0KHtwcm9qZWN0LCB0YXJnZXQsIGNvbmZpZ3VyYXRpb259OiBpbmRleDIuVGFyZ2V0KSB7XG4gIHJldHVybiBgJHtwcm9qZWN0fToke3RhcmdldH0ke2NvbmZpZ3VyYXRpb24gIT09IHVuZGVmaW5lZCA/ICc6JyArIGNvbmZpZ3VyYXRpb24gOiAnJ31gO1xufVxuXG5cbmludGVyZmFjZSBCYXJJbmZvIHtcbiAgc3RhdHVzPzogc3RyaW5nO1xuICBidWlsZGVyOiBpbmRleDIuQnVpbGRlckluZm87XG4gIHRhcmdldD86IGluZGV4Mi5UYXJnZXQ7XG59XG5cblxuYXN5bmMgZnVuY3Rpb24gX2V4ZWN1dGVUYXJnZXQoXG4gIHBhcmVudExvZ2dlcjogbG9nZ2luZy5Mb2dnZXIsXG4gIHdvcmtzcGFjZTogZXhwZXJpbWVudGFsLndvcmtzcGFjZS5Xb3Jrc3BhY2UsXG4gIHJvb3Q6IHN0cmluZyxcbiAgYXJndjogbWluaW1pc3QuUGFyc2VkQXJncyxcbiAgcmVnaXN0cnk6IGpzb24uc2NoZW1hLlNjaGVtYVJlZ2lzdHJ5LFxuKSB7XG4gIGNvbnN0IGFyY2hpdGVjdEhvc3QgPSBuZXcgV29ya3NwYWNlTm9kZU1vZHVsZXNBcmNoaXRlY3RIb3N0KHdvcmtzcGFjZSwgcm9vdCk7XG4gIGNvbnN0IGFyY2hpdGVjdCA9IG5ldyBpbmRleDIuQXJjaGl0ZWN0KGFyY2hpdGVjdEhvc3QsIHJlZ2lzdHJ5KTtcblxuICAvLyBTcGxpdCBhIHRhcmdldCBpbnRvIGl0cyBwYXJ0cy5cbiAgY29uc3QgdGFyZ2V0U3RyID0gYXJndi5fLnNoaWZ0KCkgfHwgJyc7XG4gIGNvbnN0IFtwcm9qZWN0LCB0YXJnZXQsIGNvbmZpZ3VyYXRpb25dID0gdGFyZ2V0U3RyLnNwbGl0KCc6Jyk7XG4gIGNvbnN0IHRhcmdldFNwZWMgPSB7IHByb2plY3QsIHRhcmdldCwgY29uZmlndXJhdGlvbiB9O1xuXG4gIGRlbGV0ZSBhcmd2WydoZWxwJ107XG4gIGRlbGV0ZSBhcmd2WydfJ107XG5cbiAgY29uc3QgbG9nZ2VyID0gbmV3IGxvZ2dpbmcuTG9nZ2VyKCdqb2JzJyk7XG4gIGNvbnN0IGxvZ3M6IGxvZ2dpbmcuTG9nRW50cnlbXSA9IFtdO1xuICBsb2dnZXIuc3Vic2NyaWJlKGVudHJ5ID0+IGxvZ3MucHVzaCh7IC4uLmVudHJ5LCBtZXNzYWdlOiBgJHtlbnRyeS5uYW1lfTogYCArIGVudHJ5Lm1lc3NhZ2UgfSkpO1xuXG4gIGNvbnN0IHJ1biA9IGF3YWl0IGFyY2hpdGVjdC5zY2hlZHVsZVRhcmdldCh0YXJnZXRTcGVjLCBhcmd2LCB7IGxvZ2dlciB9KTtcbiAgY29uc3QgYmFycyA9IG5ldyBNdWx0aVByb2dyZXNzQmFyPG51bWJlciwgQmFySW5mbz4oJzpuYW1lIDpiYXIgKDpjdXJyZW50Lzp0b3RhbCkgOnN0YXR1cycpO1xuXG4gIHJ1bi5wcm9ncmVzcy5zdWJzY3JpYmUoXG4gICAgdXBkYXRlID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBiYXJzLmdldCh1cGRhdGUuaWQpIHx8IHtcbiAgICAgICAgaWQ6IHVwZGF0ZS5pZCxcbiAgICAgICAgYnVpbGRlcjogdXBkYXRlLmJ1aWxkZXIsXG4gICAgICAgIHRhcmdldDogdXBkYXRlLnRhcmdldCxcbiAgICAgICAgc3RhdHVzOiB1cGRhdGUuc3RhdHVzIHx8ICcnLFxuICAgICAgICBuYW1lOiAoKHVwZGF0ZS50YXJnZXQgPyBfdGFyZ2V0U3RyaW5nRnJvbVRhcmdldCh1cGRhdGUudGFyZ2V0KSA6IHVwZGF0ZS5idWlsZGVyLm5hbWUpXG4gICAgICAgICAgICAgICAgKyAnICcucmVwZWF0KDgwKVxuICAgICAgICAgICAgICApLnN1YnN0cigwLCA0MCksXG4gICAgICB9O1xuXG4gICAgICBpZiAodXBkYXRlLnN0YXR1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRhdGEuc3RhdHVzID0gdXBkYXRlLnN0YXR1cztcbiAgICAgIH1cblxuICAgICAgc3dpdGNoICh1cGRhdGUuc3RhdGUpIHtcbiAgICAgICAgY2FzZSBpbmRleDIuQnVpbGRlclByb2dyZXNzU3RhdGUuRXJyb3I6XG4gICAgICAgICAgZGF0YS5zdGF0dXMgPSAnRXJyb3I6ICcgKyB1cGRhdGUuZXJyb3I7XG4gICAgICAgICAgYmFycy51cGRhdGUodXBkYXRlLmlkLCBkYXRhKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGluZGV4Mi5CdWlsZGVyUHJvZ3Jlc3NTdGF0ZS5TdG9wcGVkOlxuICAgICAgICAgIGRhdGEuc3RhdHVzID0gJ0RvbmUuJztcbiAgICAgICAgICBiYXJzLmNvbXBsZXRlKHVwZGF0ZS5pZCk7XG4gICAgICAgICAgYmFycy51cGRhdGUodXBkYXRlLmlkLCBkYXRhLCB1cGRhdGUudG90YWwsIHVwZGF0ZS50b3RhbCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBpbmRleDIuQnVpbGRlclByb2dyZXNzU3RhdGUuV2FpdGluZzpcbiAgICAgICAgICBiYXJzLnVwZGF0ZSh1cGRhdGUuaWQsIGRhdGEpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgaW5kZXgyLkJ1aWxkZXJQcm9ncmVzc1N0YXRlLlJ1bm5pbmc6XG4gICAgICAgICAgYmFycy51cGRhdGUodXBkYXRlLmlkLCBkYXRhLCB1cGRhdGUuY3VycmVudCwgdXBkYXRlLnRvdGFsKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgYmFycy5yZW5kZXIoKTtcbiAgICB9LFxuICApO1xuXG4gIC8vIFdhaXQgZm9yIGZ1bGwgY29tcGxldGlvbiBvZiB0aGUgYnVpbGRlci5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBydW4ucmVzdWx0O1xuXG4gICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICBwYXJlbnRMb2dnZXIuaW5mbyh0ZXJtaW5hbC5ncmVlbignU1VDQ0VTUycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyZW50TG9nZ2VyLmluZm8odGVybWluYWwueWVsbG93KCdGQUlMVVJFJykpO1xuICAgIH1cblxuICAgIHBhcmVudExvZ2dlci5pbmZvKCdcXG5Mb2dzOicpO1xuICAgIGxvZ3MuZm9yRWFjaChsID0+IHBhcmVudExvZ2dlci5uZXh0KGwpKTtcblxuICAgIGF3YWl0IHJ1bi5zdG9wKCk7XG4gICAgYmFycy50ZXJtaW5hdGUoKTtcblxuICAgIHJldHVybiByZXN1bHQuc3VjY2VzcyA/IDAgOiAxO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBwYXJlbnRMb2dnZXIuaW5mbyh0ZXJtaW5hbC5yZWQoJ0VSUk9SJykpO1xuICAgIHBhcmVudExvZ2dlci5pbmZvKCdcXG5Mb2dzOicpO1xuICAgIGxvZ3MuZm9yRWFjaChsID0+IHBhcmVudExvZ2dlci5uZXh0KGwpKTtcblxuICAgIHBhcmVudExvZ2dlci5mYXRhbCgnRXhjZXB0aW9uOicpO1xuICAgIHBhcmVudExvZ2dlci5mYXRhbChlcnIuc3RhY2spO1xuXG4gICAgcmV0dXJuIDI7XG4gIH1cbn1cblxuXG5hc3luYyBmdW5jdGlvbiBtYWluKGFyZ3M6IHN0cmluZ1tdKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgLyoqIFBhcnNlIHRoZSBjb21tYW5kIGxpbmUuICovXG4gIGNvbnN0IGFyZ3YgPSBtaW5pbWlzdChhcmdzLCB7IGJvb2xlYW46IFsnaGVscCddIH0pO1xuXG4gIC8qKiBDcmVhdGUgdGhlIERldktpdCBMb2dnZXIgdXNlZCB0aHJvdWdoIHRoZSBDTEkuICovXG4gIGNvbnN0IGxvZ2dlciA9IGNyZWF0ZUNvbnNvbGVMb2dnZXIoYXJndlsndmVyYm9zZSddKTtcblxuICAvLyBDaGVjayB0aGUgdGFyZ2V0LlxuICBjb25zdCB0YXJnZXRTdHIgPSBhcmd2Ll9bMF0gfHwgJyc7XG4gIGlmICghdGFyZ2V0U3RyIHx8IGFyZ3YuaGVscCkge1xuICAgIC8vIFNob3cgYXJjaGl0ZWN0IHVzYWdlIGlmIHRoZXJlJ3Mgbm8gdGFyZ2V0LlxuICAgIHVzYWdlKGxvZ2dlcik7XG4gIH1cblxuICAvLyBMb2FkIHdvcmtzcGFjZSBjb25maWd1cmF0aW9uIGZpbGUuXG4gIGNvbnN0IGN1cnJlbnRQYXRoID0gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgY29uZmlnRmlsZU5hbWVzID0gW1xuICAgICdhbmd1bGFyLmpzb24nLFxuICAgICcuYW5ndWxhci5qc29uJyxcbiAgICAnd29ya3NwYWNlLmpzb24nLFxuICAgICcud29ya3NwYWNlLmpzb24nLFxuICBdO1xuXG4gIGNvbnN0IGNvbmZpZ0ZpbGVQYXRoID0gZmluZFVwKGNvbmZpZ0ZpbGVOYW1lcywgY3VycmVudFBhdGgpO1xuXG4gIGlmICghY29uZmlnRmlsZVBhdGgpIHtcbiAgICBsb2dnZXIuZmF0YWwoYFdvcmtzcGFjZSBjb25maWd1cmF0aW9uIGZpbGUgKCR7Y29uZmlnRmlsZU5hbWVzLmpvaW4oJywgJyl9KSBjYW5ub3QgYmUgZm91bmQgaW4gYFxuICAgICAgKyBgJyR7Y3VycmVudFBhdGh9JyBvciBpbiBwYXJlbnQgZGlyZWN0b3JpZXMuYCk7XG5cbiAgICByZXR1cm4gMztcbiAgfVxuXG4gIGNvbnN0IHJvb3QgPSBkaXJuYW1lKG5vcm1hbGl6ZShjb25maWdGaWxlUGF0aCkpO1xuICBjb25zdCBjb25maWdDb250ZW50ID0gcmVhZEZpbGVTeW5jKGNvbmZpZ0ZpbGVQYXRoLCAndXRmLTgnKTtcbiAgY29uc3Qgd29ya3NwYWNlSnNvbiA9IEpTT04ucGFyc2UoY29uZmlnQ29udGVudCk7XG5cbiAgY29uc3QgcmVnaXN0cnkgPSBuZXcgc2NoZW1hLkNvcmVTY2hlbWFSZWdpc3RyeSgpO1xuICByZWdpc3RyeS5hZGRQb3N0VHJhbnNmb3JtKHNjaGVtYS50cmFuc2Zvcm1zLmFkZFVuZGVmaW5lZERlZmF1bHRzKTtcblxuICBjb25zdCBob3N0ID0gbmV3IE5vZGVKc1N5bmNIb3N0KCk7XG4gIGNvbnN0IHdvcmtzcGFjZSA9IG5ldyBleHBlcmltZW50YWwud29ya3NwYWNlLldvcmtzcGFjZShyb290LCBob3N0KTtcblxuICBhd2FpdCB3b3Jrc3BhY2UubG9hZFdvcmtzcGFjZUZyb21Kc29uKHdvcmtzcGFjZUpzb24pLnRvUHJvbWlzZSgpO1xuXG4gIHJldHVybiBhd2FpdCBfZXhlY3V0ZVRhcmdldChsb2dnZXIsIHdvcmtzcGFjZSwgcm9vdCwgYXJndiwgcmVnaXN0cnkpO1xufVxuXG5tYWluKHByb2Nlc3MuYXJndi5zbGljZSgyKSlcbiAgLnRoZW4oY29kZSA9PiB7XG4gICAgcHJvY2Vzcy5leGl0KGNvZGUpO1xuICB9LCBlcnIgPT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiAnICsgZXJyLnN0YWNrIHx8IGVyci5tZXNzYWdlIHx8IGVycik7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG4iXX0=
{
"name": "@angular-devkit/architect-cli",
"version": "0.14.0-beta.1",
"version": "0.14.0-beta.2",
"description": "Angular Architect CLI",

@@ -20,7 +20,10 @@ "bin": {

"dependencies": {
"@angular-devkit/core": "8.0.0-beta.1",
"@angular-devkit/architect": "0.14.0-beta.1",
"@angular-devkit/architect": "0.14.0-beta.2",
"@angular-devkit/core": "8.0.0-beta.2",
"@types/progress": "^2.0.3",
"ascii-progress": "^1.0.5",
"minimist": "1.2.0",
"symbol-observable": "1.2.0",
"rxjs": "6.3.3"
"progress": "^2.0.3",
"rxjs": "6.3.3",
"symbol-observable": "1.2.0"
},

@@ -27,0 +30,0 @@ "repository": {