Socket
Socket
Sign inDemoInstall

@angular-devkit/core

Package Overview
Dependencies
Maintainers
2
Versions
757
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular-devkit/core - npm Package Compare versions

Comparing version 0.5.8 to 0.5.9

2

package.json
{
"name": "@angular-devkit/core",
"version": "0.5.8",
"version": "0.5.9",
"description": "Angular DevKit - Core Utility Library",

@@ -5,0 +5,0 @@ "main": "src/index.js",

@@ -42,3 +42,3 @@ /**

getProject(projectName: string): WorkspaceProject;
getDefaultProject(): WorkspaceProject | null;
getDefaultProjectName(): string | null;
getProjectByPath(path: Path): string | null;

@@ -45,0 +45,0 @@ getCli(): WorkspaceTool;

@@ -89,11 +89,11 @@ "use strict";

}
getDefaultProject() {
getDefaultProjectName() {
this._assertLoaded();
if (this._workspace.defaultProject) {
// If there is a default project name, return it.
return this.getProject(this._workspace.defaultProject);
return this._workspace.defaultProject;
}
else if (this.listProjectNames().length === 1) {
// If there is only one project, return that one.
return this.getProject(this.listProjectNames()[0]);
return this.listProjectNames()[0];
}

@@ -183,2 +183,2 @@ // Otherwise return null.

exports.Workspace = Workspace;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2Uvd29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsK0JBQWtEO0FBQ2xELDhDQUFxRDtBQUNyRCwwQkFZWTtBQUNaLHNEQUF1RDtBQUl2RCw4QkFBc0MsU0FBUSx5QkFBYTtJQUN6RCxZQUFZLElBQVk7UUFDdEIsS0FBSyxDQUFDLFlBQVksSUFBSSxvQ0FBb0MsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQUpELDREQUlDO0FBRUQsb0NBQTRDLFNBQVEseUJBQWE7SUFDL0QsWUFBWSxJQUFZO1FBQ3RCLEtBQUssQ0FBQyxRQUFRLElBQUksbUNBQW1DLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUFKRCx3RUFJQztBQUVELGtDQUEwQyxTQUFRLHlCQUFhO0lBQzdELFlBQVksSUFBWTtRQUN0QixLQUFLLENBQUMsUUFBUSxJQUFJLGlDQUFpQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBSkQsb0VBSUM7QUFFRCxvQ0FBNEMsU0FBUSx5QkFBYTtJQUMvRCxnQkFBZ0IsS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzVFO0FBRkQsd0VBRUM7QUFHRDtJQU1FLFlBQW9CLEtBQVcsRUFBVSxLQUF5QjtRQUE5QyxVQUFLLEdBQUwsS0FBSyxDQUFNO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFMakQseUJBQW9CLEdBQUcsUUFBSSxDQUFDLGFBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBTTFGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxVQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBUTtRQUM1QixNQUFNLENBQUMsSUFBSSxDQUFD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b29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBKc29uT2JqZWN0LFxuICBKc29uUGFyc2VNb2RlLFxuICBQYXRoLFxuICBpc0Fic29sdXRlLFxuICBqb2luLFxuICBub3JtYWxpemUsXG4gIHBhcnNlSnNvbixcbiAgcmVsYXRpdmUsXG4gIHJlc29sdmUsXG4gIHNjaGVtYSxcbiAgdmlydHVhbEZzLFxufSBmcm9tICcuLic7XG5pbXBvcnQgeyBCYXNlRXhjZXB0aW9uIH0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyBXb3Jrc3BhY2VQcm9qZWN0LCBXb3Jrc3BhY2VTY2hlbWEsIFdvcmtzcGFjZVRvb2wgfSBmcm9tICcuL3dvcmtzcGFjZS1zY2hlbWEnO1xuXG5cbmV4cG9ydCBjbGFzcyBQcm9qZWN0Tm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFByb2plY3QgJyR7bmFtZX0nIGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB3b3Jrc3BhY2UuYCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVRvb2xOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgVG9vbCAke25hbWV9IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB3b3Jrc3BhY2UuYCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByb2plY3RUb29sTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFRvb2wgJHtuYW1lfSBjb3VsZCBub3QgYmUgZm91bmQgaW4gcHJvamVjdC5gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlTm90WWV0TG9hZGVkRXhjZXB0aW9uIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKCkgeyBzdXBlcihgV29ya3NwYWNlIG5lZWRzIHRvIGJlIGxvYWRlZCBiZWZvcmUgaXQgaXMgdXNlZC5gKTsgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF93b3Jrc3BhY2VTY2hlbWFQYXRoID0gam9pbihub3JtYWxpemUoX19kaXJuYW1lKSwgJ3dvcmtzcGFjZS1zY2hlbWEuanNvbicpO1xuICBwcml2YXRlIF93b3Jrc3BhY2VTY2hlbWE6IEpzb25PYmplY3Q7XG4gIHByaXZhdGUgX3dvcmtzcGFjZTogV29ya3NwYWNlU2NoZW1hO1xuICBwcml2YXRlIF9yZWdpc3RyeTogc2NoZW1hLkNvcmVTY2hlbWFSZWdpc3RyeTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb290OiBQYXRoLCBwcml2YXRlIF9ob3N0OiB2aXJ0dWFsRnMuSG9zdDx7fT4pIHtcbiAgICB0aGlzLl9yZWdpc3RyeSA9IG5ldyBzY2hlbWEuQ29yZVNjaGVtYVJlZ2lzdHJ5KCk7XG4gIH1cblxuICBsb2FkV29ya3NwYWNlRnJvbUpzb24oanNvbjoge30pIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZFdvcmtzcGFjZVNjaGVtYSgpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoKHdvcmtzcGFjZVNjaGVtYSkgPT4gdGhpcy52YWxpZGF0ZUFnYWluc3RTY2hlbWEoanNvbiwgd29ya3NwYWNlU2NoZW1hKSksXG4gICAgICB0YXAoKHZhbGlkYXRlZFdvcmtzcGFjZTogV29ya3NwYWNlU2NoZW1hKSA9PiB0aGlzLl93b3Jrc3BhY2UgPSB2YWxpZGF0ZWRXb3Jrc3BhY2UpLFxuICAgICAgbWFwKCgpID0+IHRoaXMpLFxuICAgICk7XG4gIH1cblxuICBsb2FkV29ya3NwYWNlRnJvbUhvc3Qod29ya3NwYWNlUGF0aDogUGF0aCkge1xuICAgIHJldHVybiB0aGlzLl9sb2FkV29ya3NwYWNlU2NoZW1hKCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoKSA9PiB0aGlzLl9sb2FkSnNvbkZpbGUoam9pbih0aGlzLl9yb290LCB3b3Jrc3BhY2VQYXRoKSkpLFxuICAgICAgY29uY2F0TWFwKGpzb24gPT4gdGhpcy5sb2FkV29ya3NwYWNlRnJvbUpzb24oanNvbikpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkV29ya3NwYWNlU2NoZW1hKCkge1xuICAgIGlmICh0aGlzLl93b3Jrc3BhY2VTY2hlbWEpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLl93b3Jrc3BhY2VTY2hlbWEpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fbG9hZEpzb25GaWxlKHRoaXMuX3dvcmtzcGFjZVNjaGVtYVBhdGgpLnBpcGUoXG4gICAgICAgIHRhcCgod29ya3NwYWNlU2NoZW1hKSA9PiB0aGlzLl93b3Jrc3BhY2VTY2hlbWEgPSB3b3Jrc3BhY2VTY2hlbWEpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hc3NlcnRMb2FkZWQoKSB7XG4gICAgaWYgKCF0aGlzLl93b3Jrc3BhY2UpIHtcbiAgICAgIHRocm93IG5ldyBXb3Jrc3BhY2VOb3RZZXRMb2FkZWRFeGNlcHRpb24oKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcm9vdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcm9vdDtcbiAgfVxuXG4gIGdldCBob3N0KCkge1xuICAgIHJldHVybiB0aGlzLl9ob3N0O1xuICB9XG5cbiAgZ2V0IHZlcnNpb24oKSB7XG4gICAgdGhpcy5fYXNzZXJ0TG9hZGVkKCk7XG5cbiAgICByZXR1cm4gdGhpcy5fd29ya3NwYWNlLnZlcnNpb247XG4gIH1cblxuICBnZXQgbmV3UHJvamVjdFJvb3QoKSB7XG4gICAgdGhpcy5fYXNzZXJ0TG9hZGVkKCk7XG5cbiAgICByZXR1cm4gdGhpcy5fd29ya3NwYWNlLm5ld1Byb2plY3RSb290O1xuICB9XG5cbiAgbGlzdFByb2plY3ROYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0cyk7XG4gIH1cblxuICBnZXRQcm9qZWN0KHByb2plY3ROYW1lOiBzdHJpbmcpOiBXb3Jrc3BhY2VQcm9qZWN0IHtcbiAgICB0aGlzLl9hc3NlcnRMb2FkZWQoKTtcblxuICAgIGNvbnN0IHdvcmtzcGFjZVByb2plY3QgPSB0aGlzLl93b3Jrc3BhY2UucHJvamVjdHNbcHJvamVjdE5hbWVdO1xuXG4gICAgaWYgKCF3b3Jrc3BhY2VQcm9qZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgUHJvamVjdE5vdEZvdW5kRXhjZXB0aW9uKHByb2plY3ROYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ud29ya3NwYWNlUHJvamVjdCxcbiAgICAgIC8vIFJldHVybiBvbmx5IHRoZSBwcm9qZWN0IHByb3BlcnRpZXMsIGFuZCByZW1vdmUgdGhlIHRvb2xzLlxuICAgICAgY2xpOiB7fSxcbiAgICAgIHNjaGVtYXRpY3M6IHt9LFxuICAgICAgYXJjaGl0ZWN0OiB7fSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdFByb2plY3QoKSB7XG4gICAgdGhpcy5fYXNzZXJ0TG9hZGVkKCk7XG5cbiAgICBpZiAodGhpcy5fd29ya3NwYWNlLmRlZmF1bHRQcm9qZWN0KSB7XG4gICAgICAvLyBJZiB0aGVyZSBpcyBhIGRlZmF1bHQgcHJvamVjdCBuYW1lLCByZXR1cm4gaXQuXG4gICAgICByZXR1cm4gdGhpcy5nZXRQcm9qZWN0KHRoaXMuX3dvcmtzcGFjZS5kZWZhdWx0UHJvamVjdCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxpc3RQcm9qZWN0TmFtZXMoKS5sZW5ndGggPT09IDEpIHtcbiAgICAgIC8vIElmIHRoZXJlIGlzIG9ubHkgb25lIHByb2plY3QsIHJldHVybiB0aGF0IG9uZS5cbiAgICAgIHJldHVybiB0aGlzLmdldFByb2plY3QodGhpcy5saXN0UHJvamVjdE5hbWVzKClbMF0pO1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSByZXR1cm4gbnVsbC5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldFByb2plY3RCeVBhdGgocGF0aDogUGF0aCk6IHN0cmluZyB8IG51bGwge1xuICAgIHRoaXMuX2Fzc2VydExvYWRlZCgpO1xuXG4gICAgY29uc3QgcHJvamVjdE5hbWVzID0gdGhpcy5saXN0UHJvamVjdE5hbWVzKCk7XG4gICAgaWYgKHByb2plY3ROYW1lcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBwcm9qZWN0TmFtZXNbMF07XG4gICAgfVxuXG4gICAgY29uc3QgaXNJbnNpZGUgPSAoYmFzZTogUGF0aCwgcG90ZW50aWFsOiBQYXRoKTogYm9vbGVhbiA9PiB7XG4gICAgICBjb25zdCBhYnNvbHV0ZUJhc2UgPSByZXNvbHZlKHRoaXMucm9vdCwgYmFzZSk7XG4gICAgICBjb25zdCBhYnNvbHV0ZVBvdGVudGlhbCA9IHJlc29sdmUodGhpcy5yb290LCBwb3RlbnRpYWwpO1xuICAgICAgY29uc3QgcmVsYXRpdmVQb3RlbnRpYWwgPSByZWxhdGl2ZShhYnNvbHV0ZUJhc2UsIGFic29sdXRlUG90ZW50aWFsKTtcbiAgICAgIGlmICghcmVsYXRpdmVQb3RlbnRpYWwuc3RhcnRzV2l0aCgnLi4nKSAmJiAhaXNBYnNvbHV0ZShyZWxhdGl2ZVBvdGVudGlhbCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgY29uc3QgcHJvamVjdHMgPSB0aGlzLmxpc3RQcm9qZWN0TmFtZXMoKVxuICAgICAgLm1hcChuYW1lID0+IFt0aGlzLmdldFByb2plY3QobmFtZSkucm9vdCwgbmFtZV0gYXMgW1BhdGgsIHN0cmluZ10pXG4gICAgICAuZmlsdGVyKHR1cGxlID0+IGlzSW5zaWRlKHR1cGxlWzBdLCBwYXRoKSlcbiAgICAgIC8vIFNvcnQgdHVwbGVzIGJ5IGRlcHRoLCB3aXRoIHRoZSBkZWVwZXIgb25lcyBmaXJzdC5cbiAgICAgIC5zb3J0KChhLCBiKSA9PiBpc0luc2lkZShhWzBdLCBiWzBdKSA/IDEgOiAwKTtcblxuICAgIGlmIChwcm9qZWN0c1swXSkge1xuICAgICAgcmV0dXJuIHByb2plY3RzWzBdWzFdO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0Q2xpKCkge1xuICAgIHJldHVybiB0aGlzLl9nZXRUb29sKCdjbGknKTtcbiAgfVxuXG4gIGdldFNjaGVtYXRpY3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFRvb2woJ3NjaGVtYXRpY3MnKTtcbiAgfVxuXG4gIGdldEFyY2hpdGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VG9vbCgnYXJjaGl0ZWN0Jyk7XG4gIH1cblxuICBnZXRQcm9qZWN0Q2xpKHByb2plY3ROYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0UHJvamVjdFRvb2wocHJvamVjdE5hbWUsICdjbGknKTtcbiAgfVxuXG4gIGdldFByb2plY3RTY2hlbWF0aWNzKHByb2plY3ROYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0UHJvamVjdFRvb2wocHJvamVjdE5hbWUsICdzY2hlbWF0aWNzJyk7XG4gIH1cblxuICBnZXRQcm9qZWN0QXJjaGl0ZWN0KHByb2plY3ROYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0UHJvamVjdFRvb2wocHJvamVjdE5hbWUsICdhcmNoaXRlY3QnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFRvb2wodG9vbE5hbWU6ICdjbGknIHwgJ3NjaGVtYXRpY3MnIHwgJ2FyY2hpdGVjdCcpOiBXb3Jrc3BhY2VUb29sIHtcbiAgICB0aGlzLl9hc3NlcnRMb2FkZWQoKTtcblxuICAgIGNvbnN0IHdvcmtzcGFjZVRvb2wgPSB0aGlzLl93b3Jrc3BhY2VbdG9vbE5hbWVdO1xuXG4gICAgaWYgKCF3b3Jrc3BhY2VUb29sKSB7XG4gICAgICB0aHJvdyBuZXcgV29ya3NwYWNlVG9vbE5vdEZvdW5kRXhjZXB0aW9uKHRvb2xOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gd29ya3NwYWNlVG9vbDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFByb2plY3RUb29sKFxuICAgIHByb2plY3ROYW1lOiBzdHJpbmcsIHRvb2xOYW1lOiAnY2xpJyB8ICdzY2hlbWF0aWNzJyB8ICdhcmNoaXRlY3QnLFxuICApOiBXb3Jrc3BhY2VUb29sIHtcbiAgICB0aGlzLl9hc3NlcnRMb2FkZWQoKTtcblxuICAgIGNvbnN0IHdvcmtzcGFjZVByb2plY3QgPSB0aGlzLl93b3Jrc3BhY2UucHJvamVjdHNbcHJvamVjdE5hbWVdO1xuXG4gICAgaWYgKCF3b3Jrc3BhY2VQcm9qZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgUHJvamVjdE5vdEZvdW5kRXhjZXB0aW9uKHByb2plY3ROYW1lKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9qZWN0VG9vbCA9IHdvcmtzcGFjZVByb2plY3RbdG9vbE5hbWVdO1xuXG4gICAgaWYgKCFwcm9qZWN0VG9vbCkge1xuICAgICAgdGhyb3cgbmV3IFByb2plY3RUb29sTm90Rm91bmRFeGNlcHRpb24odG9vbE5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9qZWN0VG9vbDtcbiAgfVxuXG4gIC8vIFRPRE86IGFkZCB0cmFuc2Zvcm1zIHRvIHJlc29sdmUgcGF0aHMuXG4gIHZhbGlkYXRlQWdhaW5zdFNjaGVtYTxUID0ge30+KGNvbnRlbnRKc29uOiB7fSwgc2NoZW1hSnNvbjogSnNvbk9iamVjdCk6IE9ic2VydmFibGU8VD4ge1xuICAgIC8vIEpTT04gdmFsaWRhdGlvbiBtb2RpZmllcyB0aGUgY29udGVudCwgc28gd2UgdmFsaWRhdGUgYSBjb3B5IG9mIGl0IGluc3RlYWQuXG4gICAgY29uc3QgY29udGVudEpzb25Db3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjb250ZW50SnNvbikpO1xuXG4gICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5LmNvbXBpbGUoc2NoZW1hSnNvbikucGlwZShcbiAgICAgIGNvbmNhdE1hcCh2YWxpZGF0b3IgPT4gdmFsaWRhdG9yKGNvbnRlbnRKc29uQ29weSkpLFxuICAgICAgY29uY2F0TWFwKHZhbGlkYXRvclJlc3VsdCA9PiB7XG4gICAgICAgIGlmICh2YWxpZGF0b3JSZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJldHVybiBvZihjb250ZW50SnNvbkNvcHkgYXMgVCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobmV3IHNjaGVtYS5TY2hlbWFWYWxpZGF0aW9uRXhjZXB0aW9uKHZhbGlkYXRvclJlc3VsdC5lcnJvcnMpKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRKc29uRmlsZShwYXRoOiBQYXRoKTogT2JzZXJ2YWJsZTxKc29uT2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuX2hvc3QucmVhZChub3JtYWxpemUocGF0aCkpLnBpcGUoXG4gICAgICBtYXAoYnVmZmVyID0+IHZpcnR1YWxGcy5maWxlQnVmZmVyVG9TdHJpbmcoYnVmZmVyKSksXG4gICAgICBtYXAoc3RyID0+IHBhcnNlSnNvbihzdHIsIEpzb25QYXJzZU1vZGUuTG9vc2UpIGFzIHt9IGFzIEpzb25PYmplY3QpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2Uvd29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsK0JBQWtEO0FBQ2xELDhDQUFxRDtBQUNyRCwwQkFZWTtBQUNaLHNEQUF1RDtBQUl2RCw4QkFBc0MsU0FBUSx5QkFBYTtJQUN6RCxZQUFZLElBQVk7UUFDdEIsS0FBSyxDQUFDLFlBQVksSUFBSSxvQ0FBb0MsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQUpELDREQUlDO0FBRUQsb0NBQTRDLFNBQVEseUJBQWE7SUFDL0QsWUFBWSxJQUFZO1FBQ3RCLEtBQUssQ0FBQyxRQUFRLElBQUksbUNBQW1DLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUFKRCx3RUFJQztBQUVELGtDQUEwQyxTQUFRLHlCQUFhO0lBQzdELFlBQVksSUFBWTtRQUN0QixLQUFLLENBQUMsUUFBUSxJQUFJLGlDQUFpQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBSkQsb0VBSUM7QUFFRCxvQ0FBNEMsU0FBUSx5QkFBYTtJQUMvRCxnQkFBZ0IsS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzVFO0FBRkQsd0VBRUM7QUFHRDtJQU1FLFlBQW9CLEtBQVcsRUFBVSxLQUF5QjtRQUE5QyxVQUFLLEdBQUwsS0FBSyxDQUFNO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFMakQseUJBQW9CLEdBQUcsUUFBSSxDQUFDLGFBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBTTFGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxVQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBUTtRQUM1QixNQUFNLENBQUMsSUFBSSxDQUFD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NkVBQTZFO1FBQzdFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzVDLHFCQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsRUFDbEQscUJBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUMxQixFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsTUFBTSxDQUFDLFNBQUUsQ0FBQyxlQUFvQixDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxpQkFBVSxDQUFDLElBQUksVUFBTSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFVO1FBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFDLGVBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNuRCxlQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxhQUFTLENBQUMsR0FBRyxFQUFFLGlCQUFhLENBQUMsS0FBSyxDQUFxQixDQUFDLENBQ3BFLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFqTkQsOEJBaU5DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29uY2F0TWFwLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEpzb25PYmplY3QsXG4gIEpzb25QYXJzZU1vZGUsXG4gIFBhdGgsXG4gIGlzQWJzb2x1dGUsXG4gIGpvaW4sXG4gIG5vcm1hbGl6ZSxcbiAgcGFyc2VKc29uLFxuICByZWxhdGl2ZSxcbiAgcmVzb2x2ZSxcbiAgc2NoZW1hLFxuICB2aXJ0dWFsRnMsXG59IGZyb20gJy4uJztcbmltcG9ydCB7IEJhc2VFeGNlcHRpb24gfSBmcm9tICcuLi9leGNlcHRpb24vZXhjZXB0aW9uJztcbmltcG9ydCB7IFdvcmtzcGFjZVByb2plY3QsIFdvcmtzcGFjZVNjaGVtYSwgV29ya3NwYWNlVG9vbCB9IGZyb20gJy4vd29ya3NwYWNlLXNjaGVtYSc7XG5cblxuZXhwb3J0IGNsYXNzIFByb2plY3ROb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgUHJvamVjdCAnJHtuYW1lfScgY291bGQgbm90IGJlIGZvdW5kIGluIHdvcmtzcGFjZS5gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlVG9vbE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKGBUb29sICR7bmFtZX0gY291bGQgbm90IGJlIGZvdW5kIGluIHdvcmtzcGFjZS5gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvamVjdFRvb2xOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgVG9vbCAke25hbWV9IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiBwcm9qZWN0LmApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VOb3RZZXRMb2FkZWRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IoKSB7IHN1cGVyKGBXb3Jrc3BhY2UgbmVlZHMgdG8gYmUgbG9hZGVkIGJlZm9yZSBpdCBpcyB1c2VkLmApOyB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtzcGFjZVNjaGVtYVBhdGggPSBqb2luKG5vcm1hbGl6ZShfX2Rpcm5hbWUpLCAnd29ya3NwYWNlLXNjaGVtYS5qc29uJyk7XG4gIHByaXZhdGUgX3dvcmtzcGFjZVNjaGVtYTogSnNvbk9iamVjdDtcbiAgcHJpdmF0ZSBfd29ya3NwYWNlOiBXb3Jrc3BhY2VTY2hlbWE7XG4gIHByaXZhdGUgX3JlZ2lzdHJ5OiBzY2hlbWEuQ29yZVNjaGVtYVJlZ2lzdHJ5O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3Jvb3Q6IFBhdGgsIHByaXZhdGUgX2hvc3Q6IHZpcnR1YWxGcy5Ib3N0PHt9Pikge1xuICAgIHRoaXMuX3JlZ2lzdHJ5ID0gbmV3IHNjaGVtYS5Db3JlU2NoZW1hUmVnaXN0cnkoKTtcbiAgfVxuXG4gIGxvYWRXb3Jrc3BhY2VGcm9tSnNvbihqc29uOiB7fSkge1xuICAgIHJldHVybiB0aGlzLl9sb2FkV29ya3NwYWNlU2NoZW1hKCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgod29ya3NwYWNlU2NoZW1hKSA9PiB0aGlzLnZhbGlkYXRlQWdhaW5zdFNjaGVtYShqc29uLCB3b3Jrc3BhY2VTY2hlbWEpKSxcbiAgICAgIHRhcCgodmFsaWRhdGVkV29ya3NwYWNlOiBXb3Jrc3BhY2VTY2hlbWEpID0+IHRoaXMuX3dvcmtzcGFjZSA9IHZhbGlkYXRlZFdvcmtzcGFjZSksXG4gICAgICBtYXAoKCkgPT4gdGhpcyksXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRXb3Jrc3BhY2VGcm9tSG9zdCh3b3Jrc3BhY2VQYXRoOiBQYXRoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRXb3Jrc3BhY2VTY2hlbWEoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuX2xvYWRKc29uRmlsZShqb2luKHRoaXMuX3Jvb3QsIHdvcmtzcGFjZVBhdGgpKSksXG4gICAgICBjb25jYXRNYXAoanNvbiA9PiB0aGlzLmxvYWRXb3Jrc3BhY2VGcm9tSnNvbihqc29uKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRXb3Jrc3BhY2VTY2hlbWEoKSB7XG4gICAgaWYgKHRoaXMuX3dvcmtzcGFjZVNjaGVtYSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuX3dvcmtzcGFjZVNjaGVtYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9sb2FkSnNvbkZpbGUodGhpcy5fd29ya3NwYWNlU2NoZW1hUGF0aCkucGlwZShcbiAgICAgICAgdGFwKCh3b3Jrc3BhY2VTY2hlbWEpID0+IHRoaXMuX3dvcmtzcGFjZVNjaGVtYSA9IHdvcmtzcGFjZVNjaGVtYSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2VydExvYWRlZCgpIHtcbiAgICBpZiAoIXRoaXMuX3dvcmtzcGFjZSkge1xuICAgICAgdGhyb3cgbmV3IFdvcmtzcGFjZU5vdFlldExvYWRlZEV4Y2VwdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIGdldCByb290KCkge1xuICAgIHJldHVybiB0aGlzLl9yb290O1xuICB9XG5cbiAgZ2V0IGhvc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hvc3Q7XG4gIH1cblxuICBnZXQgdmVyc2lvbigpIHtcbiAgICB0aGlzLl9hc3NlcnRMb2FkZWQoKTtcblxuICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UudmVyc2lvbjtcbiAgfVxuXG4gIGdldCBuZXdQcm9qZWN0Um9vdCgpIHtcbiAgICB0aGlzLl9hc3NlcnRMb2FkZWQoKTtcblxuICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UubmV3UHJvamVjdFJvb3Q7XG4gIH1cblxuICBsaXN0UHJvamVjdE5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fd29ya3NwYWNlLnByb2plY3RzKTtcbiAgfVxuXG4gIGdldFByb2plY3QocHJvamVjdE5hbWU6IHN0cmluZyk6IFdvcmtzcGFjZVByb2plY3Qge1xuICAgIHRoaXMuX2Fzc2VydExvYWRlZCgpO1xuXG4gICAgY29uc3Qgd29ya3NwYWNlUHJvamVjdCA9IHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0c1twcm9qZWN0TmFtZV07XG5cbiAgICBpZiAoIXdvcmtzcGFjZVByb2plY3QpIHtcbiAgICAgIHRocm93IG5ldyBQcm9qZWN0Tm90Rm91bmRFeGNlcHRpb24ocHJvamVjdE5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi53b3Jrc3BhY2VQcm9qZWN0LFxuICAgICAgLy8gUmV0dXJuIG9ubHkgdGhlIHByb2plY3QgcHJvcGVydGllcywgYW5kIHJlbW92ZSB0aGUgdG9vbHMuXG4gICAgICBjbGk6IHt9LFxuICAgICAgc2NoZW1hdGljczoge30sXG4gICAgICBhcmNoaXRlY3Q6IHt9LFxuICAgIH07XG4gIH1cblxuICBnZXREZWZhdWx0UHJvamVjdE5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgdGhpcy5fYXNzZXJ0TG9hZGVkKCk7XG5cbiAgICBpZiAodGhpcy5fd29ya3NwYWNlLmRlZmF1bHRQcm9qZWN0KSB7XG4gICAgICAvLyBJZiB0aGVyZSBpcyBhIGRlZmF1bHQgcHJvamVjdCBuYW1lLCByZXR1cm4gaXQuXG4gICAgICByZXR1cm4gdGhpcy5fd29ya3NwYWNlLmRlZmF1bHRQcm9qZWN0O1xuICAgIH0gZWxzZSBpZiAodGhpcy5saXN0UHJvamVjdE5hbWVzKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICAvLyBJZiB0aGVyZSBpcyBvbmx5IG9uZSBwcm9qZWN0LCByZXR1cm4gdGhhdCBvbmUuXG4gICAgICByZXR1cm4gdGhpcy5saXN0UHJvamVjdE5hbWVzKClbMF07XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlIHJldHVybiBudWxsLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0UHJvamVjdEJ5UGF0aChwYXRoOiBQYXRoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgdGhpcy5fYXNzZXJ0TG9hZGVkKCk7XG5cbiAgICBjb25zdCBwcm9qZWN0TmFtZXMgPSB0aGlzLmxpc3RQcm9qZWN0TmFtZXMoKTtcbiAgICBpZiAocHJvamVjdE5hbWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHByb2plY3ROYW1lc1swXTtcbiAgICB9XG5cbiAgICBjb25zdCBpc0luc2lkZSA9IChiYXNlOiBQYXRoLCBwb3RlbnRpYWw6IFBhdGgpOiBib29sZWFuID0+IHtcbiAgICAgIGNvbnN0IGFic29sdXRlQmFzZSA9IHJlc29sdmUodGhpcy5yb290LCBiYXNlKTtcbiAgICAgIGNvbnN0IGFic29sdXRlUG90ZW50aWFsID0gcmVzb2x2ZSh0aGlzLnJvb3QsIHBvdGVudGlhbCk7XG4gICAgICBjb25zdCByZWxhdGl2ZVBvdGVudGlhbCA9IHJlbGF0aXZlKGFic29sdXRlQmFzZSwgYWJzb2x1dGVQb3RlbnRpYWwpO1xuICAgICAgaWYgKCFyZWxhdGl2ZVBvdGVudGlhbC5zdGFydHNXaXRoKCcuLicpICYmICFpc0Fic29sdXRlKHJlbGF0aXZlUG90ZW50aWFsKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICBjb25zdCBwcm9qZWN0cyA9IHRoaXMubGlzdFByb2plY3ROYW1lcygpXG4gICAgICAubWFwKG5hbWUgPT4gW3RoaXMuZ2V0UHJvamVjdChuYW1lKS5yb290LCBuYW1lXSBhcyBbUGF0aCwgc3RyaW5nXSlcbiAgICAgIC5maWx0ZXIodHVwbGUgPT4gaXNJbnNpZGUodHVwbGVbMF0sIHBhdGgpKVxuICAgICAgLy8gU29ydCB0dXBsZXMgYnkgZGVwdGgsIHdpdGggdGhlIGRlZXBlciBvbmVzIGZpcnN0LlxuICAgICAgLnNvcnQoKGEsIGIpID0+IGlzSW5zaWRlKGFbMF0sIGJbMF0pID8gMSA6IDApO1xuXG4gICAgaWYgKHByb2plY3RzWzBdKSB7XG4gICAgICByZXR1cm4gcHJvamVjdHNbMF1bMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRDbGkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFRvb2woJ2NsaScpO1xuICB9XG5cbiAgZ2V0U2NoZW1hdGljcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VG9vbCgnc2NoZW1hdGljcycpO1xuICB9XG5cbiAgZ2V0QXJjaGl0ZWN0KCkge1xuICAgIHJldHVybiB0aGlzLl9nZXRUb29sKCdhcmNoaXRlY3QnKTtcbiAgfVxuXG4gIGdldFByb2plY3RDbGkocHJvamVjdE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9nZXRQcm9qZWN0VG9vbChwcm9qZWN0TmFtZSwgJ2NsaScpO1xuICB9XG5cbiAgZ2V0UHJvamVjdFNjaGVtYXRpY3MocHJvamVjdE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9nZXRQcm9qZWN0VG9vbChwcm9qZWN0TmFtZSwgJ3NjaGVtYXRpY3MnKTtcbiAgfVxuXG4gIGdldFByb2plY3RBcmNoaXRlY3QocHJvamVjdE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9nZXRQcm9qZWN0VG9vbChwcm9qZWN0TmFtZSwgJ2FyY2hpdGVjdCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VG9vbCh0b29sTmFtZTogJ2NsaScgfCAnc2NoZW1hdGljcycgfCAnYXJjaGl0ZWN0Jyk6IFdvcmtzcGFjZVRvb2wge1xuICAgIHRoaXMuX2Fzc2VydExvYWRlZCgpO1xuXG4gICAgY29uc3Qgd29ya3NwYWNlVG9vbCA9IHRoaXMuX3dvcmtzcGFjZVt0b29sTmFtZV07XG5cbiAgICBpZiAoIXdvcmtzcGFjZVRvb2wpIHtcbiAgICAgIHRocm93IG5ldyBXb3Jrc3BhY2VUb29sTm90Rm91bmRFeGNlcHRpb24odG9vbE5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB3b3Jrc3BhY2VUb29sO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UHJvamVjdFRvb2woXG4gICAgcHJvamVjdE5hbWU6IHN0cmluZywgdG9vbE5hbWU6ICdjbGknIHwgJ3NjaGVtYXRpY3MnIHwgJ2FyY2hpdGVjdCcsXG4gICk6IFdvcmtzcGFjZVRvb2wge1xuICAgIHRoaXMuX2Fzc2VydExvYWRlZCgpO1xuXG4gICAgY29uc3Qgd29ya3NwYWNlUHJvamVjdCA9IHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0c1twcm9qZWN0TmFtZV07XG5cbiAgICBpZiAoIXdvcmtzcGFjZVByb2plY3QpIHtcbiAgICAgIHRocm93IG5ldyBQcm9qZWN0Tm90Rm91bmRFeGNlcHRpb24ocHJvamVjdE5hbWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHByb2plY3RUb29sID0gd29ya3NwYWNlUHJvamVjdFt0b29sTmFtZV07XG5cbiAgICBpZiAoIXByb2plY3RUb29sKSB7XG4gICAgICB0aHJvdyBuZXcgUHJvamVjdFRvb2xOb3RGb3VuZEV4Y2VwdGlvbih0b29sTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2plY3RUb29sO1xuICB9XG5cbiAgLy8gVE9ETzogYWRkIHRyYW5zZm9ybXMgdG8gcmVzb2x2ZSBwYXRocy5cbiAgdmFsaWRhdGVBZ2FpbnN0U2NoZW1hPFQgPSB7fT4oY29udGVudEpzb246IHt9LCBzY2hlbWFKc29uOiBKc29uT2JqZWN0KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgLy8gSlNPTiB2YWxpZGF0aW9uIG1vZGlmaWVzIHRoZSBjb250ZW50LCBzbyB3ZSB2YWxpZGF0ZSBhIGNvcHkgb2YgaXQgaW5zdGVhZC5cbiAgICBjb25zdCBjb250ZW50SnNvbkNvcHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRlbnRKc29uKSk7XG5cbiAgICByZXR1cm4gdGhpcy5fcmVnaXN0cnkuY29tcGlsZShzY2hlbWFKc29uKS5waXBlKFxuICAgICAgY29uY2F0TWFwKHZhbGlkYXRvciA9PiB2YWxpZGF0b3IoY29udGVudEpzb25Db3B5KSksXG4gICAgICBjb25jYXRNYXAodmFsaWRhdG9yUmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKHZhbGlkYXRvclJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKGNvbnRlbnRKc29uQ29weSBhcyBUKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihuZXcgc2NoZW1hLlNjaGVtYVZhbGlkYXRpb25FeGNlcHRpb24odmFsaWRhdG9yUmVzdWx0LmVycm9ycykpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZEpzb25GaWxlKHBhdGg6IFBhdGgpOiBPYnNlcnZhYmxlPEpzb25PYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5faG9zdC5yZWFkKG5vcm1hbGl6ZShwYXRoKSkucGlwZShcbiAgICAgIG1hcChidWZmZXIgPT4gdmlydHVhbEZzLmZpbGVCdWZmZXJUb1N0cmluZyhidWZmZXIpKSxcbiAgICAgIG1hcChzdHIgPT4gcGFyc2VKc29uKHN0ciwgSnNvblBhcnNlTW9kZS5Mb29zZSkgYXMge30gYXMgSnNvbk9iamVjdCksXG4gICAgKTtcbiAgfVxufVxuIl19
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc