Socket
Socket
Sign inDemoInstall

babel-import-util

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-import-util - npm Package Compare versions

Comparing version 1.4.0 to 1.4.1

7

package.json
{
"name": "babel-import-util",
"version": "1.4.0",
"version": "1.4.1",
"description": "Utility for manipulating imports within babel plugins",

@@ -34,6 +34,5 @@ "repository": "https://github.com/ef4/babel-import-util",

"@types/babel__traverse": "^7.11.1",
"@types/jest": "^29.5.3",
"@types/jest": "^26.0.23",
"@typescript-eslint/eslint-plugin": "^4.26.1",
"@typescript-eslint/parser": "^4.26.1",
"code-equality-assertions": "^0.9.0",
"eslint": "^6.8.0",

@@ -43,3 +42,3 @@ "eslint-config-prettier": "^6.15.0",

"eslint-plugin-prettier": "^3.4.0",
"jest": "^29.6.1",
"jest": "^26.6.3",
"prettier": "^2.2.1",

@@ -46,0 +45,0 @@ "typescript": "^4.3.2"

import type { NodePath } from '@babel/traverse';
import type * as t from '@babel/types';
type BabelTypes = typeof t;
declare type BabelTypes = typeof t;
export declare class ImportUtil {

@@ -15,4 +15,3 @@ private t;

private findImportFrom;
private insertAfterExistingImports;
}
export {};

@@ -63,4 +63,4 @@ "use strict";

else {
let declaration = this.insertAfterExistingImports(this.t.importDeclaration([], this.t.stringLiteral(moduleSpecifier)));
return this.addSpecifier(target, declaration, exportedName, nameHint);
this.program.node.body.unshift(this.t.importDeclaration([], this.t.stringLiteral(moduleSpecifier)));
return this.addSpecifier(target, this.program.get(`body.0`), exportedName, nameHint);
}

@@ -71,3 +71,3 @@ }

if (!declaration) {
this.insertAfterExistingImports(this.t.importDeclaration([], this.t.stringLiteral(moduleSpecifier)));
this.program.node.body.unshift(this.t.importDeclaration([], this.t.stringLiteral(moduleSpecifier)));
}

@@ -100,22 +100,2 @@ }

}
insertAfterExistingImports(statement) {
let lastIndex;
for (let [index, node] of this.program.node.body.entries()) {
if (node.type === 'ImportDeclaration') {
lastIndex = index;
}
}
if (lastIndex == null) {
// we are intentionally not using babel's container-aware methods, because
// while in theory it's nice that they schedule other plugins to run on
// our nodes, in practice those nodes might get mutated or removed by some
// other plugin in the intervening time causing failures.
this.program.node.body.unshift(statement);
return this.program.get('body.0');
}
else {
this.program.node.body.splice(lastIndex + 1, 0, statement);
return this.program.get(`body.${lastIndex + 1}`);
}
}
}

@@ -174,2 +154,2 @@ exports.ImportUtil = ImportUtil;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxNQUFhLFVBQVU7SUFDckIsWUFBb0IsQ0FBYSxFQUFVLE9BQTRCO1FBQW5ELE1BQUMsR0FBRCxDQUFDLENBQVk7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUFHLENBQUM7SUFFM0UsMkVBQTJFO0lBQzNFLG1FQUFtRTtJQUNuRSxZQUFZLENBQUMsZUFBdUIsRUFBRSxZQUFvQjtRQUN4RCxLQUFLLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxFQUFFO2dCQUMvQyxTQUFTO2FBQ1Y7WUFFRCxJQUFJLG1CQUFtQixHQUFHLFlBQVk7aUJBQ25DLEdBQUcsQ0FBQyxZQUFZLENBQUM7aUJBQ2pCLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLElBQUksbUJBQW1CLEVBQUU7Z0JBQ3ZCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDN0MsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDTCxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDOUI7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxnQkFBZ0IsQ0FBQyxlQUF1QjtRQUN0QyxLQUFLLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pELElBQUksV0FBVyxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsRUFBRTtnQkFDOUMsWUFBWSxDQUFDLE1BQU0s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Q0FBQztLQUNoQjtJQUNELElBQUksWUFBWSxLQUFLLFNBQVMsSUFBSSxZQUFZLEtBQUssR0FBRyxFQUFFO1FBQ3RELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3pCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDekI7YUFBTTtZQUNMLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ3hFO0tBQ0Y7U0FBTTtRQUNMLE9BQU8sWUFBWSxDQUFDO0tBQ3JCO0FBQ0gsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLElBQW1CLEVBQUUsWUFBb0I7SUFDL0QsUUFBUSxZQUFZLEVBQUU7UUFDcEIsS0FBSyxTQUFTO1lBQ1osT0FBTyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUN6QyxLQUFLLEdBQUc7WUFDTixPQUFPLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQzNDO1lBQ0UsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxZQUFZLENBQUM7S0FDaEY7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQ2xCLElBQW1CLEVBQ25CLGVBQXVCO0lBRXZCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQztBQUN6RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBOb2RlUGF0aCB9IGZyb20gJ0BiYWJlbC90cmF2ZXJzZSc7XG5pbXBvcnQgdHlwZSAqIGFzIHQgZnJvbSAnQGJhYmVsL3R5cGVzJztcblxudHlwZSBCYWJlbFR5cGVzID0gdHlwZW9mIHQ7XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRVdGlsIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0OiBCYWJlbFR5cGVzLCBwcml2YXRlIHByb2dyYW06IE5vZGVQYXRoPHQuUHJvZ3JhbT4pIHt9XG5cbiAgLy8gcmVtb3ZlIG9uZSBpbXBvcnRlZCBiaW5kaW5nLiBJZiB0aGlzIGlzIHRoZSBsYXN0IHRoaW5nIGltcG9ydGVkIGZyb20gdGhlXG4gIC8vIGdpdmVuIG1vZHVsZVNwZWNpZmllciwgdGhlIHdob2xlIHN0YXRlbWVudCB3aWxsIGFsc28gYmUgcmVtb3ZlZC5cbiAgcmVtb3ZlSW1wb3J0KG1vZHVsZVNwZWNpZmllcjogc3RyaW5nLCBleHBvcnRlZE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGZvciAobGV0IHRvcExldmVsUGF0aCBvZiB0aGlzLnByb2dyYW0uZ2V0KCdib2R5JykpIHtcbiAgICAgIGlmICghbWF0Y2hNb2R1bGUodG9wTGV2ZWxQYXRoLCBtb2R1bGVTcGVjaWZpZXIpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBsZXQgaW1wb3J0U3BlY2lmaWVyUGF0aCA9IHRvcExldmVsUGF0aFxuICAgICAgICAuZ2V0KCdzcGVjaWZpZXJzJylcbiAgICAgICAgLmZpbmQoKHNwZWNpZmllclBhdGgpID0+IG1hdGNoU3BlY2lmaWVyKHNwZWNpZmllclBhdGgsIGV4cG9ydGVkTmFtZSkpO1xuICAgICAgaWYgKGltcG9ydFNwZWNpZmllclBhdGgpIHtcbiAgICAgICAgaWYgKHRvcExldmVsUGF0aC5ub2RlLnNwZWNpZmllcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdG9wTGV2ZWxQYXRoLnJlbW92ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGltcG9ydFNwZWNpZmllclBhdGgucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyByZW1vdmUgYWxsIGltcG9ydHMgZnJvbSB0aGUgZ2l2ZW4gbW9kdWxlU3BlY2lmaWVyXG4gIHJlbW92ZUFsbEltcG9ydHMobW9kdWxlU3BlY2lmaWVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBmb3IgKGxldCB0b3BMZXZlbFBhdGggb2YgdGhpcy5wcm9ncmFtLmdldCgnYm9keScpKSB7XG4gICAgICBpZiAobWF0Y2hNb2R1bGUodG9wTGV2ZWxQYXRoLCBtb2R1bGVTcGVjaWZpZXIpKSB7XG4gICAgICAgIHRvcExldmVsUGF0aC5yZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJbXBvcnQgdGhlIGdpdmVuIHZhbHVlIChpZiBuZWVkZWQpIGFuZCByZXR1cm4gYW4gSWRlbnRpZmllciByZXByZXNlbnRpbmdcbiAgLy8gaXQuXG4gIGltcG9ydChcbiAgICAvLyB0aGUgc3BvdCBhdCB3aGljaCB5b3Ugd2lsbCBpbnNlcnQgdGhlIElkZW50aWZpZXIgd2UgcmV0dXJuIHRvIHlvdVxuICAgIHRhcmdldDogTm9kZVBhdGg8dC5Ob2RlPixcblxuICAgIC8vIHRoZSBwYXRoIHRvIHRoZSBtb2R1bGUgeW91J3JlIGltcG9ydGluZyBmcm9tXG4gICAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmcsXG5cbiAgICAvLyB0aGUgbmFtZSB5b3UncmUgaW1wb3J0aW5nIGZyb20gdGhhdCBtb2R1bGUuIFVzZSBcImRlZmF1bHRcIiBmb3IgdGhlIGRlZmF1bHRcbiAgICAvLyBleHBvcnQuIFVzZSBcIipcIiBmb3IgdGhlIG5hbWVzcGFjZS5cbiAgICBleHBvcnRlZE5hbWU6IHN0cmluZyxcblxuICAgIC8vIE9wdGlvbmFsIGhpbnQgZm9yIGhlbHBpbmcgdXMgcGljayBhIG5hbWUgZm9yIHRoZSBpbXBvcnRlZCBiaW5kaW5nXG4gICAgbmFtZUhpbnQ/OiBzdHJpbmdcbiAgKTogdC5JZGVudGlmaWVyIHtcbiAgICBsZXQgZGVjbGFyYXRpb24gPSB0aGlzLmZpbmRJbXBvcnRGcm9tKG1vZHVsZVNwZWNpZmllcik7XG4gICAgaWYgKGRlY2xhcmF0aW9uKSB7XG4gICAgICBsZXQgc3BlY2lmaWVyID0gZGVjbGFyYXRpb25cbiAgICAgICAgLmdldCgnc3BlY2lmaWVycycpXG4gICAgICAgIC5maW5kKChzcGVjKSA9PiBtYXRjaFNwZWNpZmllcihzcGVjLCBleHBvcnRlZE5hbWUpKTtcbiAgICAgIGlmIChzcGVjaWZpZXIgJiYgdGFyZ2V0LnNjb3BlLmdldEJpbmRpbmcoc3BlY2lmaWVyLm5vZGUubG9jYWwubmFtZSk/LmtpbmQgPT09ICdtb2R1bGUnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnQuaWRlbnRpZmllcihzcGVjaWZpZXIubm9kZS5sb2NhbC5uYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZFNwZWNpZmllcih0YXJnZXQsIGRlY2xhcmF0aW9uLCBleHBvcnRlZE5hbWUsIG5hbWVIaW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGRlY2xhcmF0aW9uID0gdGhpcy5pbnNlcnRBZnRlckV4aXN0aW5nSW1wb3J0cyhcbiAgICAgICAgdGhpcy50LmltcG9ydERlY2xhcmF0aW9uKFtdLCB0aGlzLnQuc3RyaW5nTGl0ZXJhbChtb2R1bGVTcGVjaWZpZXIpKVxuICAgICAgKTtcbiAgICAgIHJldHVybiB0aGlzLmFkZFNwZWNpZmllcih0YXJnZXQsIGRlY2xhcmF0aW9uLCBleHBvcnRlZE5hbWUsIG5hbWVIaW50KTtcbiAgICB9XG4gIH1cblxuICBpbXBvcnRGb3JTaWRlRWZmZWN0KG1vZHVsZVNwZWNpZmllcjogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGRlY2xhcmF0aW9uID0gdGhpcy5maW5kSW1wb3J0RnJvbShtb2R1bGVTcGVjaWZpZXIpO1xuICAgIGlmICghZGVjbGFyYXRpb24pIHtcbiAgICAgIHRoaXMuaW5zZXJ0QWZ0ZXJFeGlzdGluZ0ltcG9ydHMoXG4gICAgICAgIHRoaXMudC5pbXBvcnREZWNsYXJhdGlvbihbXSwgdGhpcy50LnN0cmluZ0xpdGVyYWwobW9kdWxlU3BlY2lmaWVyKSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRTcGVjaWZpZXIoXG4gICAgdGFyZ2V0OiBOb2RlUGF0aDx0Lk5vZGU+LFxuICAgIGRlY2xhcmF0aW9uOiBOb2RlUGF0aDx0LkltcG9ydERlY2xhcmF0aW9uPixcbiAgICBleHBvcnRlZE5hbWU6IHN0cmluZyxcbiAgICBuYW1lSGludDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IHQuSWRlbnRpZmllciB7XG4gICAgbGV0IGxvY2FsID0gdGhpcy50LmlkZW50aWZpZXIoXG4gICAgICB1bnVzZWROYW1lTGlrZSh0YXJnZXQsIGRlc2lyZWROYW1lKG5hbWVIaW50LCBleHBvcnRlZE5hbWUsIHRhcmdldCkpXG4gICAgKTtcbiAgICBsZXQgc3BlY2lmaWVyID0gdGhpcy5idWlsZFNwZWNpZmllcihleHBvcnRlZE5hbWUsIGxvY2FsKTtcbiAgICBkZWNsYXJhdGlvbi5ub2RlLnNwZWNpZmllcnMucHVzaChzcGVjaWZpZXIpO1xuICAgIGRlY2xhcmF0aW9uLnNjb3BlLnJlZ2lzdGVyQmluZGluZyhcbiAgICAgICdtb2R1bGUnLFxuICAgICAgZGVjbGFyYXRpb24uZ2V0KGBzcGVjaWZpZXJzLiR7ZGVjbGFyYXRpb24ubm9kZS5zcGVjaWZpZXJzLmxlbmd0aCAtIDF9YCkgYXMgTm9kZVBhdGhcbiAgICApO1xuICAgIHJldHVybiBsb2NhbDtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTcGVjaWZpZXIoZXhwb3J0ZWROYW1lOiBzdHJpbmcsIGxvY2FsTmFtZTogdC5JZGVudGlmaWVyKSB7XG4gICAgc3dpdGNoIChleHBvcnRlZE5hbWUpIHtcbiAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICByZXR1cm4gdGhpcy50LmltcG9ydERlZmF1bHRTcGVjaWZpZXIobG9jYWxOYW1lKTtcbiAgICAgIGNhc2UgJyonOlxuICAgICAgICByZXR1cm4gdGhpcy50LmltcG9ydE5hbWVzcGFjZVNwZWNpZmllcihsb2NhbE5hbWUpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMudC5pbXBvcnRTcGVjaWZpZXIobG9jYWxOYW1lLCB0aGlzLnQuaWRlbnRpZmllcihleHBvcnRlZE5hbWUpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmRJbXBvcnRGcm9tKG1vZHVsZVNwZWNpZmllcjogc3RyaW5nKTogTm9kZVBhdGg8dC5JbXBvcnREZWNsYXJhdGlvbj4gfCB1bmRlZmluZWQge1xuICAgIGZvciAobGV0IHBhdGggb2YgdGhpcy5wcm9ncmFtLmdldCgnYm9keScpKSB7XG4gICAgICBpZiAocGF0aC5pc0ltcG9ydERlY2xhcmF0aW9uKCkgJiYgcGF0aC5ub2RlLnNvdXJjZS52YWx1ZSA9PT0gbW9kdWxlU3BlY2lmaWVyKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnNlcnRBZnRlckV4aXN0aW5nSW1wb3J0czxTIGV4dGVuZHMgdC5TdGF0ZW1lbnQ+KHN0YXRlbWVudDogUyk6IE5vZGVQYXRoPFM+IHtcbiAgICBsZXQgbGFzdEluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgZm9yIChsZXQgW2luZGV4LCBub2RlXSBvZiB0aGlzLnByb2dyYW0ubm9kZS5ib2R5LmVudHJpZXMoKSkge1xuICAgICAgaWYgKG5vZGUudHlwZSA9PT0gJ0ltcG9ydERlY2xhcmF0aW9uJykge1xuICAgICAgICBsYXN0SW5kZXggPSBpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGxhc3RJbmRleCA9PSBudWxsKSB7XG4gICAgICAvLyB3ZSBhcmUgaW50ZW50aW9uYWxseSBub3QgdXNpbmcgYmFiZWwncyBjb250YWluZXItYXdhcmUgbWV0aG9kcywgYmVjYXVzZVxuICAgICAgLy8gd2hpbGUgaW4gdGhlb3J5IGl0J3MgbmljZSB0aGF0IHRoZXkgc2NoZWR1bGUgb3RoZXIgcGx1Z2lucyB0byBydW4gb25cbiAgICAgIC8vIG91ciBub2RlcywgaW4gcHJhY3RpY2UgdGhvc2Ugbm9kZXMgbWlnaHQgZ2V0IG11dGF0ZWQgb3IgcmVtb3ZlZCBieSBzb21lXG4gICAgICAvLyBvdGhlciBwbHVnaW4gaW4gdGhlIGludGVydmVuaW5nIHRpbWUgY2F1c2luZyBmYWlsdXJlcy5cbiAgICAgIHRoaXMucHJvZ3JhbS5ub2RlLmJvZHkudW5zaGlmdChzdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvZ3JhbS5nZXQoJ2JvZHkuMCcpIGFzIE5vZGVQYXRoPFM+O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2dyYW0ubm9kZS5ib2R5LnNwbGljZShsYXN0SW5kZXggKyAxLCAwLCBzdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvZ3JhbS5nZXQoYGJvZHkuJHtsYXN0SW5kZXggKyAxfWApIGFzIE5vZGVQYXRoPFM+O1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1bnVzZWROYW1lTGlrZShwYXRoOiBOb2RlUGF0aDx0Lk5vZGU+LCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgY2FuZGlkYXRlID0gbmFtZTtcbiAgbGV0IGNvdW50ZXIgPSAwO1xuICB3aGlsZSAocGF0aC5zY29wZS5oYXNCaW5kaW5nKGNhbmRpZGF0ZSkpIHtcbiAgICBjYW5kaWRhdGUgPSBgJHtuYW1lfSR7Y291bnRlcisrfWA7XG4gIH1cbiAgcmV0dXJuIGNhbmRpZGF0ZTtcbn1cblxuZnVuY3Rpb24gbmFtZShub2RlOiB0LlN0cmluZ0xpdGVyYWwgfCB0LklkZW50aWZpZXIpOiBzdHJpbmcge1xuICBpZiAobm9kZS50eXBlID09PSAnU3RyaW5nTGl0ZXJhbCcpIHtcbiAgICByZXR1cm4gbm9kZS52YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbm9kZS5uYW1lO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlc2lyZWROYW1lKG5hbWVIaW50OiBzdHJpbmcgfCB1bmRlZmluZWQsIGV4cG9ydGVkTmFtZTogc3RyaW5nLCB0YXJnZXQ6IE5vZGVQYXRoPHQuTm9kZT4pIHtcbiAgaWYgKG5hbWVIaW50KSB7XG4gICAgLy8gZmlyc3Qgd2Ugb3Bwb3J0dW5pc3RpY2FsbHkgZG8gY2FtZWxpemF0aW9uIHdoZW4gYW4gaWxsZWdhbCBjaGFyYWN0ZXIgaXNcbiAgICAvLyBmb2xsb3dlZCBieSBhIGxvd2VyY2FzZSBsZXR0ZXIsIGluIGFuIGVmZm9ydCB0byBhaWQgcmVhZGFiaWxpdHkgb2YgdGhlXG4gICAgLy8gb3V0cHV0LlxuICAgIGxldCBjbGVhbmVkID0gbmFtZUhpbnQucmVwbGFjZSgvW15hLXpBLVpfXShbYS16XSkvZywgKF9tLCBsZXR0ZXIpID0+IGxldHRlci50b1VwcGVyQ2FzZSgpKTtcbiAgICAvLyB0aGVuIHdlIHVubGl0ZXJhbGx5IHN0cmlwIGFsbCByZW1haW5pbmcgaWxsZWdhbCBjaGFyYWN0ZXJzLlxuICAgIGNsZWFuZWQgPSBjbGVhbmVkLnJlcGxhY2UoL1teYS16QS1aX10vZywgJycpO1xuICAgIHJldHVybiBjbGVhbmVkO1xuICB9XG4gIGlmIChleHBvcnRlZE5hbWUgPT09ICdkZWZhdWx0JyB8fCBleHBvcnRlZE5hbWUgPT09ICcqJykge1xuICAgIGlmICh0YXJnZXQuaXNJZGVudGlmaWVyKCkpIHtcbiAgICAgIHJldHVybiB0YXJnZXQubm9kZS5uYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGFyZ2V0LnNjb3BlLmdlbmVyYXRlVWlkSWRlbnRpZmllckJhc2VkT25Ob2RlKHRhcmdldC5ub2RlKS5uYW1lO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZXhwb3J0ZWROYW1lO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hdGNoU3BlY2lmaWVyKHNwZWM6IE5vZGVQYXRoPGFueT4sIGV4cG9ydGVkTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHN3aXRjaCAoZXhwb3J0ZWROYW1lKSB7XG4gICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICByZXR1cm4gc3BlYy5pc0ltcG9ydERlZmF1bHRTcGVjaWZpZXIoKTtcbiAgICBjYXNlICcqJzpcbiAgICAgIHJldHVybiBzcGVjLmlzSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyKCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzcGVjLmlzSW1wb3J0U3BlY2lmaWVyKCkgJiYgbmFtZShzcGVjLm5vZGUuaW1wb3J0ZWQpID09PSBleHBvcnRlZE5hbWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hNb2R1bGUoXG4gIHBhdGg6IE5vZGVQYXRoPGFueT4sXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nXG4pOiBwYXRoIGlzIE5vZGVQYXRoPHQuSW1wb3J0RGVjbGFyYXRpb24+IHtcbiAgcmV0dXJuIHBhdGguaXNJbXBvcnREZWNsYXJhdGlvbigpICYmIHBhdGguZ2V0KCdzb3VyY2UnKS5ub2RlLnZhbHVlID09PSBtb2R1bGVTcGVjaWZpZXI7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxNQUFhLFVBQVU7SUFDckIsWUFBb0IsQ0FBYSxFQUFVLE9BQTRCO1FBQW5ELE1BQUMsR0FBRCxDQUFDLENBQVk7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUFHLENBQUM7SUFFM0UsMkVBQTJFO0lBQzNFLG1FQUFtRTtJQUNuRSxZQUFZLENBQUMsZUFBdUIsRUFBRSxZQUFvQjtRQUN4RCxLQUFLLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxFQUFFO2dCQUMvQyxTQUFTO2FBQ1Y7WUFFRCxJQUFJLG1CQUFtQixHQUFHLFlBQVk7aUJBQ25DLEdBQUcsQ0FBQyxZQUFZLENBQUM7aUJBQ2pCLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLElBQUksbUJBQW1CLEVBQUU7Z0JBQ3ZCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDN0MsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDTCxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDOUI7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxnQkFBZ0IsQ0FBQyxlQUF1QjtRQUN0QyxLQUFLLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pELElBQUksV0FBVyxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsRUFBRTtnQkFDOUMsWUFBWSxDQUFDLE1BQU0s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QVMsV0FBVyxDQUNsQixJQUFtQixFQUNuQixlQUF1QjtJQUV2QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxlQUFlLENBQUM7QUFDekYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTm9kZVBhdGggfSBmcm9tICdAYmFiZWwvdHJhdmVyc2UnO1xuaW1wb3J0IHR5cGUgKiBhcyB0IGZyb20gJ0BiYWJlbC90eXBlcyc7XG5cbnR5cGUgQmFiZWxUeXBlcyA9IHR5cGVvZiB0O1xuXG5leHBvcnQgY2xhc3MgSW1wb3J0VXRpbCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdDogQmFiZWxUeXBlcywgcHJpdmF0ZSBwcm9ncmFtOiBOb2RlUGF0aDx0LlByb2dyYW0+KSB7fVxuXG4gIC8vIHJlbW92ZSBvbmUgaW1wb3J0ZWQgYmluZGluZy4gSWYgdGhpcyBpcyB0aGUgbGFzdCB0aGluZyBpbXBvcnRlZCBmcm9tIHRoZVxuICAvLyBnaXZlbiBtb2R1bGVTcGVjaWZpZXIsIHRoZSB3aG9sZSBzdGF0ZW1lbnQgd2lsbCBhbHNvIGJlIHJlbW92ZWQuXG4gIHJlbW92ZUltcG9ydChtb2R1bGVTcGVjaWZpZXI6IHN0cmluZywgZXhwb3J0ZWROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBmb3IgKGxldCB0b3BMZXZlbFBhdGggb2YgdGhpcy5wcm9ncmFtLmdldCgnYm9keScpKSB7XG4gICAgICBpZiAoIW1hdGNoTW9kdWxlKHRvcExldmVsUGF0aCwgbW9kdWxlU3BlY2lmaWVyKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IGltcG9ydFNwZWNpZmllclBhdGggPSB0b3BMZXZlbFBhdGhcbiAgICAgICAgLmdldCgnc3BlY2lmaWVycycpXG4gICAgICAgIC5maW5kKChzcGVjaWZpZXJQYXRoKSA9PiBtYXRjaFNwZWNpZmllcihzcGVjaWZpZXJQYXRoLCBleHBvcnRlZE5hbWUpKTtcbiAgICAgIGlmIChpbXBvcnRTcGVjaWZpZXJQYXRoKSB7XG4gICAgICAgIGlmICh0b3BMZXZlbFBhdGgubm9kZS5zcGVjaWZpZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIHRvcExldmVsUGF0aC5yZW1vdmUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbXBvcnRTcGVjaWZpZXJQYXRoLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gcmVtb3ZlIGFsbCBpbXBvcnRzIGZyb20gdGhlIGdpdmVuIG1vZHVsZVNwZWNpZmllclxuICByZW1vdmVBbGxJbXBvcnRzKG1vZHVsZVNwZWNpZmllcjogc3RyaW5nKTogdm9pZCB7XG4gICAgZm9yIChsZXQgdG9wTGV2ZWxQYXRoIG9mIHRoaXMucHJvZ3JhbS5nZXQoJ2JvZHknKSkge1xuICAgICAgaWYgKG1hdGNoTW9kdWxlKHRvcExldmVsUGF0aCwgbW9kdWxlU3BlY2lmaWVyKSkge1xuICAgICAgICB0b3BMZXZlbFBhdGgucmVtb3ZlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSW1wb3J0IHRoZSBnaXZlbiB2YWx1ZSAoaWYgbmVlZGVkKSBhbmQgcmV0dXJuIGFuIElkZW50aWZpZXIgcmVwcmVzZW50aW5nXG4gIC8vIGl0LlxuICBpbXBvcnQoXG4gICAgLy8gdGhlIHNwb3QgYXQgd2hpY2ggeW91IHdpbGwgaW5zZXJ0IHRoZSBJZGVudGlmaWVyIHdlIHJldHVybiB0byB5b3VcbiAgICB0YXJnZXQ6IE5vZGVQYXRoPHQuTm9kZT4sXG5cbiAgICAvLyB0aGUgcGF0aCB0byB0aGUgbW9kdWxlIHlvdSdyZSBpbXBvcnRpbmcgZnJvbVxuICAgIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nLFxuXG4gICAgLy8gdGhlIG5hbWUgeW91J3JlIGltcG9ydGluZyBmcm9tIHRoYXQgbW9kdWxlLiBVc2UgXCJkZWZhdWx0XCIgZm9yIHRoZSBkZWZhdWx0XG4gICAgLy8gZXhwb3J0LiBVc2UgXCIqXCIgZm9yIHRoZSBuYW1lc3BhY2UuXG4gICAgZXhwb3J0ZWROYW1lOiBzdHJpbmcsXG5cbiAgICAvLyBPcHRpb25hbCBoaW50IGZvciBoZWxwaW5nIHVzIHBpY2sgYSBuYW1lIGZvciB0aGUgaW1wb3J0ZWQgYmluZGluZ1xuICAgIG5hbWVIaW50Pzogc3RyaW5nXG4gICk6IHQuSWRlbnRpZmllciB7XG4gICAgbGV0IGRlY2xhcmF0aW9uID0gdGhpcy5maW5kSW1wb3J0RnJvbShtb2R1bGVTcGVjaWZpZXIpO1xuICAgIGlmIChkZWNsYXJhdGlvbikge1xuICAgICAgbGV0IHNwZWNpZmllciA9IGRlY2xhcmF0aW9uXG4gICAgICAgIC5nZXQoJ3NwZWNpZmllcnMnKVxuICAgICAgICAuZmluZCgoc3BlYykgPT4gbWF0Y2hTcGVjaWZpZXIoc3BlYywgZXhwb3J0ZWROYW1lKSk7XG4gICAgICBpZiAoc3BlY2lmaWVyICYmIHRhcmdldC5zY29wZS5nZXRCaW5kaW5nKHNwZWNpZmllci5ub2RlLmxvY2FsLm5hbWUpPy5raW5kID09PSAnbW9kdWxlJykge1xuICAgICAgICByZXR1cm4gdGhpcy50LmlkZW50aWZpZXIoc3BlY2lmaWVyLm5vZGUubG9jYWwubmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGRTcGVjaWZpZXIodGFyZ2V0LCBkZWNsYXJhdGlvbiwgZXhwb3J0ZWROYW1lLCBuYW1lSGludCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvZ3JhbS5ub2RlLmJvZHkudW5zaGlmdChcbiAgICAgICAgdGhpcy50LmltcG9ydERlY2xhcmF0aW9uKFtdLCB0aGlzLnQuc3RyaW5nTGl0ZXJhbChtb2R1bGVTcGVjaWZpZXIpKVxuICAgICAgKTtcbiAgICAgIHJldHVybiB0aGlzLmFkZFNwZWNpZmllcihcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICB0aGlzLnByb2dyYW0uZ2V0KGBib2R5LjBgKSBhcyBOb2RlUGF0aDx0LkltcG9ydERlY2xhcmF0aW9uPixcbiAgICAgICAgZXhwb3J0ZWROYW1lLFxuICAgICAgICBuYW1lSGludFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpbXBvcnRGb3JTaWRlRWZmZWN0KG1vZHVsZVNwZWNpZmllcjogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGRlY2xhcmF0aW9uID0gdGhpcy5maW5kSW1wb3J0RnJvbShtb2R1bGVTcGVjaWZpZXIpO1xuICAgIGlmICghZGVjbGFyYXRpb24pIHtcbiAgICAgIHRoaXMucHJvZ3JhbS5ub2RlLmJvZHkudW5zaGlmdChcbiAgICAgICAgdGhpcy50LmltcG9ydERlY2xhcmF0aW9uKFtdLCB0aGlzLnQuc3RyaW5nTGl0ZXJhbChtb2R1bGVTcGVjaWZpZXIpKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFNwZWNpZmllcihcbiAgICB0YXJnZXQ6IE5vZGVQYXRoPHQuTm9kZT4sXG4gICAgZGVjbGFyYXRpb246IE5vZGVQYXRoPHQuSW1wb3J0RGVjbGFyYXRpb24+LFxuICAgIGV4cG9ydGVkTmFtZTogc3RyaW5nLFxuICAgIG5hbWVIaW50OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogdC5JZGVudGlmaWVyIHtcbiAgICBsZXQgbG9jYWwgPSB0aGlzLnQuaWRlbnRpZmllcihcbiAgICAgIHVudXNlZE5hbWVMaWtlKHRhcmdldCwgZGVzaXJlZE5hbWUobmFtZUhpbnQsIGV4cG9ydGVkTmFtZSwgdGFyZ2V0KSlcbiAgICApO1xuICAgIGxldCBzcGVjaWZpZXIgPSB0aGlzLmJ1aWxkU3BlY2lmaWVyKGV4cG9ydGVkTmFtZSwgbG9jYWwpO1xuICAgIGRlY2xhcmF0aW9uLm5vZGUuc3BlY2lmaWVycy5wdXNoKHNwZWNpZmllcik7XG4gICAgZGVjbGFyYXRpb24uc2NvcGUucmVnaXN0ZXJCaW5kaW5nKFxuICAgICAgJ21vZHVsZScsXG4gICAgICBkZWNsYXJhdGlvbi5nZXQoYHNwZWNpZmllcnMuJHtkZWNsYXJhdGlvbi5ub2RlLnNwZWNpZmllcnMubGVuZ3RoIC0gMX1gKSBhcyBOb2RlUGF0aFxuICAgICk7XG4gICAgcmV0dXJuIGxvY2FsO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFNwZWNpZmllcihleHBvcnRlZE5hbWU6IHN0cmluZywgbG9jYWxOYW1lOiB0LklkZW50aWZpZXIpIHtcbiAgICBzd2l0Y2ggKGV4cG9ydGVkTmFtZSkge1xuICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgIHJldHVybiB0aGlzLnQuaW1wb3J0RGVmYXVsdFNwZWNpZmllcihsb2NhbE5hbWUpO1xuICAgICAgY2FzZSAnKic6XG4gICAgICAgIHJldHVybiB0aGlzLnQuaW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyKGxvY2FsTmFtZSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy50LmltcG9ydFNwZWNpZmllcihsb2NhbE5hbWUsIHRoaXMudC5pZGVudGlmaWVyKGV4cG9ydGVkTmFtZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZEltcG9ydEZyb20obW9kdWxlU3BlY2lmaWVyOiBzdHJpbmcpOiBOb2RlUGF0aDx0LkltcG9ydERlY2xhcmF0aW9uPiB8IHVuZGVmaW5lZCB7XG4gICAgZm9yIChsZXQgcGF0aCBvZiB0aGlzLnByb2dyYW0uZ2V0KCdib2R5JykpIHtcbiAgICAgIGlmIChwYXRoLmlzSW1wb3J0RGVjbGFyYXRpb24oKSAmJiBwYXRoLm5vZGUuc291cmNlLnZhbHVlID09PSBtb2R1bGVTcGVjaWZpZXIpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gdW51c2VkTmFtZUxpa2UocGF0aDogTm9kZVBhdGg8dC5Ob2RlPiwgbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IGNhbmRpZGF0ZSA9IG5hbWU7XG4gIGxldCBjb3VudGVyID0gMDtcbiAgd2hpbGUgKHBhdGguc2NvcGUuaGFzQmluZGluZyhjYW5kaWRhdGUpKSB7XG4gICAgY2FuZGlkYXRlID0gYCR7bmFtZX0ke2NvdW50ZXIrK31gO1xuICB9XG4gIHJldHVybiBjYW5kaWRhdGU7XG59XG5cbmZ1bmN0aW9uIG5hbWUobm9kZTogdC5TdHJpbmdMaXRlcmFsIHwgdC5JZGVudGlmaWVyKTogc3RyaW5nIHtcbiAgaWYgKG5vZGUudHlwZSA9PT0gJ1N0cmluZ0xpdGVyYWwnKSB7XG4gICAgcmV0dXJuIG5vZGUudmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5vZGUubmFtZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZXNpcmVkTmFtZShuYW1lSGludDogc3RyaW5nIHwgdW5kZWZpbmVkLCBleHBvcnRlZE5hbWU6IHN0cmluZywgdGFyZ2V0OiBOb2RlUGF0aDx0Lk5vZGU+KSB7XG4gIGlmIChuYW1lSGludCkge1xuICAgIC8vIGZpcnN0IHdlIG9wcG9ydHVuaXN0aWNhbGx5IGRvIGNhbWVsaXphdGlvbiB3aGVuIGFuIGlsbGVnYWwgY2hhcmFjdGVyIGlzXG4gICAgLy8gZm9sbG93ZWQgYnkgYSBsb3dlcmNhc2UgbGV0dGVyLCBpbiBhbiBlZmZvcnQgdG8gYWlkIHJlYWRhYmlsaXR5IG9mIHRoZVxuICAgIC8vIG91dHB1dC5cbiAgICBsZXQgY2xlYW5lZCA9IG5hbWVIaW50LnJlcGxhY2UoL1teYS16QS1aX10oW2Etel0pL2csIChfbSwgbGV0dGVyKSA9PiBsZXR0ZXIudG9VcHBlckNhc2UoKSk7XG4gICAgLy8gdGhlbiB3ZSB1bmxpdGVyYWxseSBzdHJpcCBhbGwgcmVtYWluaW5nIGlsbGVnYWwgY2hhcmFjdGVycy5cbiAgICBjbGVhbmVkID0gY2xlYW5lZC5yZXBsYWNlKC9bXmEtekEtWl9dL2csICcnKTtcbiAgICByZXR1cm4gY2xlYW5lZDtcbiAgfVxuICBpZiAoZXhwb3J0ZWROYW1lID09PSAnZGVmYXVsdCcgfHwgZXhwb3J0ZWROYW1lID09PSAnKicpIHtcbiAgICBpZiAodGFyZ2V0LmlzSWRlbnRpZmllcigpKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0Lm5vZGUubmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRhcmdldC5zY29wZS5nZW5lcmF0ZVVpZElkZW50aWZpZXJCYXNlZE9uTm9kZSh0YXJnZXQubm9kZSkubmFtZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGV4cG9ydGVkTmFtZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaFNwZWNpZmllcihzcGVjOiBOb2RlUGF0aDxhbnk+LCBleHBvcnRlZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBzd2l0Y2ggKGV4cG9ydGVkTmFtZSkge1xuICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgcmV0dXJuIHNwZWMuaXNJbXBvcnREZWZhdWx0U3BlY2lmaWVyKCk7XG4gICAgY2FzZSAnKic6XG4gICAgICByZXR1cm4gc3BlYy5pc0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcigpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3BlYy5pc0ltcG9ydFNwZWNpZmllcigpICYmIG5hbWUoc3BlYy5ub2RlLmltcG9ydGVkKSA9PT0gZXhwb3J0ZWROYW1lO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hdGNoTW9kdWxlKFxuICBwYXRoOiBOb2RlUGF0aDxhbnk+LFxuICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZ1xuKTogcGF0aCBpcyBOb2RlUGF0aDx0LkltcG9ydERlY2xhcmF0aW9uPiB7XG4gIHJldHVybiBwYXRoLmlzSW1wb3J0RGVjbGFyYXRpb24oKSAmJiBwYXRoLmdldCgnc291cmNlJykubm9kZS52YWx1ZSA9PT0gbW9kdWxlU3BlY2lmaWVyO1xufVxuIl19
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