@angular-devkit/architect-cli
Advanced tools
| /// <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 |
| #!/usr/bin/env node | ||
| import 'symbol-observable'; | ||
| export {}; |
+114
-70
| #!/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= |
+8
-5
| { | ||
| "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": { |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
35672
116.59%6
50%264
127.59%8
60%1
Infinity%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed