babel-import-util
Advanced tools
Comparing version 0.2.0 to 1.0.0
{ | ||
"name": "babel-import-util", | ||
"version": "0.2.0", | ||
"version": "1.0.0", | ||
"description": "Utility for manipulating imports within babel plugins", | ||
@@ -5,0 +5,0 @@ "repository": "https://github.com/ef4/babel-import-util", |
# babel-import-util | ||
Makes it easier for a babel plugin to emit imported names. Key benefits: | ||
- the output composes correctly with subsequent babel plugins, because we update Babel's understanding of the bindings | ||
- redundant imports will be deduplicated automatically | ||
- written in TypeScript | ||
## Usage by example: | ||
If you want to rewrite: | ||
```js | ||
myTarget('hello world'); | ||
``` | ||
To: | ||
```js | ||
import { theMethod } from 'my-implementation'; | ||
theMethod('hello world'); | ||
``` | ||
Your plugin would look like this: | ||
```js | ||
function testTransform(babel) { | ||
return { | ||
visitor: { | ||
Program: { | ||
enter(path, state) { | ||
// Always instantiate the ImportUtil instance at the Program scope | ||
state.importUtil = new ImportUtil(babel.types, path); | ||
}, | ||
}, | ||
CallExpression(path, state) { | ||
let callee = path.get('callee'); | ||
if (callee.isIdentifier() && callee.node.name === 'myTarget') { | ||
callee.replaceWith(state.importUtil.import(callee, 'my-implementation', 'theMethod')); | ||
} | ||
}, | ||
}, | ||
}; | ||
} | ||
``` | ||
## API | ||
```ts | ||
import type { NodePath } from '@babel/traverse'; | ||
import type * as t from '@babel/types'; | ||
class ImportUtil { | ||
// Import the given value (if needed) and return an Identifier representing | ||
// it. | ||
import( | ||
// the spot at which you will insert the Identifier we return to you | ||
target: NodePath<t.Node>, | ||
// the path to the module you're importing from | ||
moduleSpecifier: string, | ||
// the name you're importing from that module. Use "default" for the default | ||
// export. Use "*" for the namespace. | ||
exportedName: string, | ||
// Optional hint for helping us pick a name for the imported binding | ||
nameHint?: string | ||
): t.Identifier; | ||
// Remove an import specifier. If the removed specifier is | ||
// the last one on the whole import statement, the whole | ||
// statement is also removed. | ||
// | ||
// You can use "default" and "*" as exportedName to handle | ||
// those special cases. | ||
removeImport(moduleSpecifier: string, exportedName: string): void; | ||
} | ||
``` |
@@ -11,3 +11,4 @@ import type { NodePath } from '@babel/traverse'; | ||
private addSpecifier; | ||
private buildSpecifier; | ||
} | ||
export {}; |
@@ -17,6 +17,3 @@ "use strict"; | ||
.get('specifiers') | ||
.find((specifierPath) => exportedName === 'default' | ||
? specifierPath.isImportDefaultSpecifier() | ||
: specifierPath.isImportSpecifier() && | ||
name(specifierPath.node.imported) === exportedName); | ||
.find((specifierPath) => matchSpecifier(specifierPath, exportedName)); | ||
if (importSpecifierPath) { | ||
@@ -39,4 +36,4 @@ if (topLevelPath.node.specifiers.length === 1) { | ||
moduleSpecifier, | ||
// the name you're importing from that module (use "default" for the default | ||
// export) | ||
// the name you're importing from that module. Use "default" for the default | ||
// export. Use "*" for the namespace. | ||
exportedName, | ||
@@ -52,5 +49,3 @@ // Optional hint for helping us pick a name for the imported binding | ||
.get('specifiers') | ||
.find((spec) => exportedName === 'default' | ||
? spec.isImportDefaultSpecifier() | ||
: spec.isImportSpecifier() && name(spec.node.imported) === exportedName); | ||
.find((spec) => matchSpecifier(spec, exportedName)); | ||
if (specifier && ((_a = target.scope.getBinding(specifier.node.local.name)) === null || _a === void 0 ? void 0 : _a.kind) === 'module') { | ||
@@ -70,5 +65,3 @@ return this.t.identifier(specifier.node.local.name); | ||
let local = this.t.identifier(unusedNameLike(target, desiredName(nameHint, exportedName, target))); | ||
let specifier = exportedName === 'default' | ||
? this.t.importDefaultSpecifier(local) | ||
: this.t.importSpecifier(local, this.t.identifier(exportedName)); | ||
let specifier = this.buildSpecifier(exportedName, local); | ||
declaration.node.specifiers.push(specifier); | ||
@@ -78,2 +71,12 @@ declaration.scope.registerBinding('module', declaration.get(`specifiers.${declaration.node.specifiers.length - 1}`)); | ||
} | ||
buildSpecifier(exportedName, localName) { | ||
switch (exportedName) { | ||
case 'default': | ||
return this.t.importDefaultSpecifier(localName); | ||
case '*': | ||
return this.t.importNamespaceSpecifier(localName); | ||
default: | ||
return this.t.importSpecifier(localName, this.t.identifier(exportedName)); | ||
} | ||
} | ||
} | ||
@@ -101,3 +104,3 @@ exports.ImportUtil = ImportUtil; | ||
} | ||
if (exportedName === 'default') { | ||
if (exportedName === 'default' || exportedName === '*') { | ||
if (target.isIdentifier()) { | ||
@@ -114,2 +117,12 @@ return target.node.name; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxNQUFhLFVBQVU7SUFDckIsWUFBb0IsQ0FBYSxFQUFVLE9BQTRCO1FBQW5ELE1BQUMsR0FBRCxDQUFDLENBQVk7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUFHLENBQUM7SUFFM0UsWUFBWSxDQUFDLGVBQXVCLEVBQUUsWUFBb0I7UUFDeEQsS0FBSyxJQUFJLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqRCxJQUNFLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFO2dCQUNuQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssZUFBZSxFQUN6RDtnQkFDQSxTQUFTO2FBQ1Y7WUFFRCxJQUFJLG1CQUFtQixHQUFHLFlBQVk7aUJBQ25DLEdBQUcsQ0FBQyxZQUFZLENBQUM7aUJBQ2pCLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQ3RCLFlBQVksS0FBSyxTQUFTO2dCQUN4QixDQUFDLENBQUMsYUFBYSxDQUFDLHdCQUF3QixFQUFFO2dCQUMxQyxDQUFDLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFO29CQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxZQUFZLENBQ3ZELENBQUM7WUFDSixJQUFJLG1CQUFtQixFQUFFO2dCQUN2QixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQzdDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDdkI7cUJBQU07b0JBQ0wsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQzlCO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCwyRUFBMkU7SUFDM0UsTUFB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QWpHRCxnQ0FpR0M7QUFFRCxTQUFTLGNBQWMsQ0FBQyxJQUFzQixFQUFFLElBQVk7SUFDMUQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3ZDLFNBQVMsR0FBRyxHQUFHLElBQUksR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDO0tBQ25DO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLElBQW9DO0lBQ2hELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUU7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0tBQ25CO1NBQU07UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7S0FDbEI7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsUUFBNEIsRUFBRSxZQUFvQixFQUFFLE1BQXdCO0lBQy9GLElBQUksUUFBUSxFQUFFO1FBQ1osT0FBTyxRQUFRLENBQUM7S0FDakI7SUFDRCxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7UUFDOUIsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDekIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN6QjthQUFNO1lBQ0wsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDeEU7S0FDRjtTQUFNO1FBQ0wsT0FBTyxZQUFZLENBQUM7S0FDckI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBOb2RlUGF0aCB9IGZyb20gJ0BiYWJlbC90cmF2ZXJzZSc7XG5pbXBvcnQgdHlwZSAqIGFzIHQgZnJvbSAnQGJhYmVsL3R5cGVzJztcblxudHlwZSBCYWJlbFR5cGVzID0gdHlwZW9mIHQ7XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRVdGlsIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0OiBCYWJlbFR5cGVzLCBwcml2YXRlIHByb2dyYW06IE5vZGVQYXRoPHQuUHJvZ3JhbT4pIHt9XG5cbiAgcmVtb3ZlSW1wb3J0KG1vZHVsZVNwZWNpZmllcjogc3RyaW5nLCBleHBvcnRlZE5hbWU6IHN0cmluZykge1xuICAgIGZvciAobGV0IHRvcExldmVsUGF0aCBvZiB0aGlzLnByb2dyYW0uZ2V0KCdib2R5JykpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRvcExldmVsUGF0aC5pc0ltcG9ydERlY2xhcmF0aW9uKCkgfHxcbiAgICAgICAgdG9wTGV2ZWxQYXRoLmdldCgnc291cmNlJykubm9kZS52YWx1ZSAhPT0gbW9kdWxlU3BlY2lmaWVyXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGxldCBpbXBvcnRTcGVjaWZpZXJQYXRoID0gdG9wTGV2ZWxQYXRoXG4gICAgICAgIC5nZXQoJ3NwZWNpZmllcnMnKVxuICAgICAgICAuZmluZCgoc3BlY2lmaWVyUGF0aCkgPT5cbiAgICAgICAgICBleHBvcnRlZE5hbWUgPT09ICdkZWZhdWx0J1xuICAgICAgICAgICAgPyBzcGVjaWZpZXJQYXRoLmlzSW1wb3J0RGVmYXVsdFNwZWNpZmllcigpXG4gICAgICAgICAgICA6IHNwZWNpZmllclBhdGguaXNJbXBvcnRTcGVjaWZpZXIoKSAmJlxuICAgICAgICAgICAgICBuYW1lKHNwZWNpZmllclBhdGgubm9kZS5pbXBvcnRlZCkgPT09IGV4cG9ydGVkTmFtZVxuICAgICAgICApO1xuICAgICAgaWYgKGltcG9ydFNwZWNpZmllclBhdGgpIHtcbiAgICAgICAgaWYgKHRvcExldmVsUGF0aC5ub2RlLnNwZWNpZmllcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdG9wTGV2ZWxQYXRoLnJlbW92ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGltcG9ydFNwZWNpZmllclBhdGgucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJbXBvcnQgdGhlIGdpdmVuIHZhbHVlIChpZiBuZWVkZWQpIGFuZCByZXR1cm4gYW4gSWRlbnRpZmllciByZXByZXNlbnRpbmdcbiAgLy8gaXQuXG4gIGltcG9ydChcbiAgICAvLyB0aGUgc3BvdCBhdCB3aGljaCB5b3Ugd2lsbCBpbnNlcnQgdGhlIElkZW50aWZpZXIgd2UgcmV0dXJuIHRvIHlvdVxuICAgIHRhcmdldDogTm9kZVBhdGg8dC5Ob2RlPixcblxuICAgIC8vIHRoZSBwYXRoIHRvIHRoZSBtb2R1bGUgeW91J3JlIGltcG9ydGluZyBmcm9tXG4gICAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmcsXG5cbiAgICAvLyB0aGUgbmFtZSB5b3UncmUgaW1wb3J0aW5nIGZyb20gdGhhdCBtb2R1bGUgKHVzZSBcImRlZmF1bHRcIiBmb3IgdGhlIGRlZmF1bHRcbiAgICAvLyBleHBvcnQpXG4gICAgZXhwb3J0ZWROYW1lOiBzdHJpbmcsXG5cbiAgICAvLyBPcHRpb25hbCBoaW50IGZvciBoZWxwaW5nIHVzIHBpY2sgYSBuYW1lIGZvciB0aGUgaW1wb3J0ZWQgYmluZGluZ1xuICAgIG5hbWVIaW50Pzogc3RyaW5nXG4gICk6IHQuSWRlbnRpZmllciB7XG4gICAgbGV0IGRlY2xhcmF0aW9uID0gdGhpcy5wcm9ncmFtXG4gICAgICAuZ2V0KCdib2R5JylcbiAgICAgIC5maW5kKChlbHQpID0+IGVsdC5pc0ltcG9ydERlY2xhcmF0aW9uKCkgJiYgZWx0Lm5vZGUuc291cmNlLnZhbHVlID09PSBtb2R1bGVTcGVjaWZpZXIpIGFzXG4gICAgICB8IHVuZGVmaW5lZFxuICAgICAgfCBOb2RlUGF0aDx0LkltcG9ydERlY2xhcmF0aW9uPjtcbiAgICBpZiAoZGVjbGFyYXRpb24pIHtcbiAgICAgIGxldCBzcGVjaWZpZXIgPSBkZWNsYXJhdGlvblxuICAgICAgICAuZ2V0KCdzcGVjaWZpZXJzJylcbiAgICAgICAgLmZpbmQoKHNwZWMpID0+XG4gICAgICAgICAgZXhwb3J0ZWROYW1lID09PSAnZGVmYXVsdCdcbiAgICAgICAgICAgID8gc3BlYy5pc0ltcG9ydERlZmF1bHRTcGVjaWZpZXIoKVxuICAgICAgICAgICAgOiBzcGVjLmlzSW1wb3J0U3BlY2lmaWVyKCkgJiYgbmFtZShzcGVjLm5vZGUuaW1wb3J0ZWQpID09PSBleHBvcnRlZE5hbWVcbiAgICAgICAgKSBhcyB1bmRlZmluZWQgfCBOb2RlUGF0aDx0LkltcG9ydFNwZWNpZmllcj4gfCBOb2RlUGF0aDx0LkltcG9ydERlZmF1bHRTcGVjaWZpZXI+O1xuICAgICAgaWYgKHNwZWNpZmllciAmJiB0YXJnZXQuc2NvcGUuZ2V0QmluZGluZyhzcGVjaWZpZXIubm9kZS5sb2NhbC5uYW1lKT8ua2luZCA9PT0gJ21vZHVsZScpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudC5pZGVudGlmaWVyKHNwZWNpZmllci5ub2RlLmxvY2FsLm5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkU3BlY2lmaWVyKHRhcmdldCwgZGVjbGFyYXRpb24sIGV4cG9ydGVkTmFtZSwgbmFtZUhpbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2dyYW0ubm9kZS5ib2R5LnVuc2hpZnQoXG4gICAgICAgIHRoaXMudC5pbXBvcnREZWNsYXJhdGlvbihbXSwgdGhpcy50LnN0cmluZ0xpdGVyYWwobW9kdWxlU3BlY2lmaWVyKSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gdGhpcy5hZGRTcGVjaWZpZXIoXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgdGhpcy5wcm9ncmFtLmdldChgYm9keS4wYCkgYXMgTm9kZVBhdGg8dC5JbXBvcnREZWNsYXJhdGlvbj4sXG4gICAgICAgIGV4cG9ydGVkTmFtZSxcbiAgICAgICAgbmFtZUhpbnRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRTcGVjaWZpZXIoXG4gICAgdGFyZ2V0OiBOb2RlUGF0aDx0Lk5vZGU+LFxuICAgIGRlY2xhcmF0aW9uOiBOb2RlUGF0aDx0LkltcG9ydERlY2xhcmF0aW9uPixcbiAgICBleHBvcnRlZE5hbWU6IHN0cmluZyxcbiAgICBuYW1lSGludDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IHQuSWRlbnRpZmllciB7XG4gICAgbGV0IGxvY2FsID0gdGhpcy50LmlkZW50aWZpZXIoXG4gICAgICB1bnVzZWROYW1lTGlrZSh0YXJnZXQsIGRlc2lyZWROYW1lKG5hbWVIaW50LCBleHBvcnRlZE5hbWUsIHRhcmdldCkpXG4gICAgKTtcbiAgICBsZXQgc3BlY2lmaWVyID1cbiAgICAgIGV4cG9ydGVkTmFtZSA9PT0gJ2RlZmF1bHQnXG4gICAgICAgID8gdGhpcy50LmltcG9ydERlZmF1bHRTcGVjaWZpZXIobG9jYWwpXG4gICAgICAgIDogdGhpcy50LmltcG9ydFNwZWNpZmllcihsb2NhbCwgdGhpcy50LmlkZW50aWZpZXIoZXhwb3J0ZWROYW1lKSk7XG4gICAgZGVjbGFyYXRpb24ubm9kZS5zcGVjaWZpZXJzLnB1c2goc3BlY2lmaWVyKTtcbiAgICBkZWNsYXJhdGlvbi5zY29wZS5yZWdpc3RlckJpbmRpbmcoXG4gICAgICAnbW9kdWxlJyxcbiAgICAgIGRlY2xhcmF0aW9uLmdldChgc3BlY2lmaWVycy4ke2RlY2xhcmF0aW9uLm5vZGUuc3BlY2lmaWVycy5sZW5ndGggLSAxfWApIGFzIE5vZGVQYXRoXG4gICAgKTtcbiAgICByZXR1cm4gbG9jYWw7XG4gIH1cbn1cblxuZnVuY3Rpb24gdW51c2VkTmFtZUxpa2UocGF0aDogTm9kZVBhdGg8dC5Ob2RlPiwgbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IGNhbmRpZGF0ZSA9IG5hbWU7XG4gIGxldCBjb3VudGVyID0gMDtcbiAgd2hpbGUgKHBhdGguc2NvcGUuaGFzQmluZGluZyhjYW5kaWRhdGUpKSB7XG4gICAgY2FuZGlkYXRlID0gYCR7bmFtZX0ke2NvdW50ZXIrK31gO1xuICB9XG4gIHJldHVybiBjYW5kaWRhdGU7XG59XG5cbmZ1bmN0aW9uIG5hbWUobm9kZTogdC5TdHJpbmdMaXRlcmFsIHwgdC5JZGVudGlmaWVyKTogc3RyaW5nIHtcbiAgaWYgKG5vZGUudHlwZSA9PT0gJ1N0cmluZ0xpdGVyYWwnKSB7XG4gICAgcmV0dXJuIG5vZGUudmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5vZGUubmFtZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZXNpcmVkTmFtZShuYW1lSGludDogc3RyaW5nIHwgdW5kZWZpbmVkLCBleHBvcnRlZE5hbWU6IHN0cmluZywgdGFyZ2V0OiBOb2RlUGF0aDx0Lk5vZGU+KSB7XG4gIGlmIChuYW1lSGludCkge1xuICAgIHJldHVybiBuYW1lSGludDtcbiAgfVxuICBpZiAoZXhwb3J0ZWROYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICBpZiAodGFyZ2V0LmlzSWRlbnRpZmllcigpKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0Lm5vZGUubmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRhcmdldC5zY29wZS5nZW5lcmF0ZVVpZElkZW50aWZpZXJCYXNlZE9uTm9kZSh0YXJnZXQubm9kZSkubmFtZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGV4cG9ydGVkTmFtZTtcbiAgfVxufVxuIl19 | ||
function matchSpecifier(spec, exportedName) { | ||
switch (exportedName) { | ||
case 'default': | ||
return spec.isImportDefaultSpecifier(); | ||
case '*': | ||
return spec.isImportNamespaceSpecifier(); | ||
default: | ||
return spec.isImportSpecifier() && name(spec.node.imported) === exportedName; | ||
} | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxNQUFhLFVBQVU7SUFDckIsWUFBb0IsQ0FBYSxFQUFVLE9BQTRCO1FBQW5ELE1BQUMsR0FBRCxDQUFDLENBQVk7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUFHLENBQUM7SUFFM0UsWUFBWSxDQUFDLGVBQXVCLEVBQUUsWUFBb0I7UUFDeEQsS0FBSyxJQUFJLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqRCxJQUNFLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFO2dCQUNuQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssZUFBZSxFQUN6RDtnQkFDQSxTQUFTO2FBQ1Y7WUFFRCxJQUFJLG1CQUFtQixHQUFHLFlBQVk7aUJBQ25DLEdBQUcsQ0FBQyxZQUFZLENBQUM7aUJBQ2pCLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLElBQUksbUJBQW1CLEVBQUU7Z0JBQ3ZCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDN0MsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDTCxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDOUI7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELDJFQUEyRTtJQUMzRSxNQUFNO0lBQ04sTUFBTTtJQUNKLG9FQUFvRTtJQUNwRSxNQUF3QjtJQUV4QiwrQ0FBK0M7SUFDL0MsZUFBdUI7SUFFdkIsNEVBQTRFO0lBQzVFLHFDQUFxQztJQUNyQyxZQUFvQjtJQUVwQixvRUFBb0U7SUFDcEUsUUFB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T0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxZQUFZLENBQUM7S0FDaEY7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBOb2RlUGF0aCB9IGZyb20gJ0BiYWJlbC90cmF2ZXJzZSc7XG5pbXBvcnQgdHlwZSAqIGFzIHQgZnJvbSAnQGJhYmVsL3R5cGVzJztcblxudHlwZSBCYWJlbFR5cGVzID0gdHlwZW9mIHQ7XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRVdGlsIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0OiBCYWJlbFR5cGVzLCBwcml2YXRlIHByb2dyYW06IE5vZGVQYXRoPHQuUHJvZ3JhbT4pIHt9XG5cbiAgcmVtb3ZlSW1wb3J0KG1vZHVsZVNwZWNpZmllcjogc3RyaW5nLCBleHBvcnRlZE5hbWU6IHN0cmluZykge1xuICAgIGZvciAobGV0IHRvcExldmVsUGF0aCBvZiB0aGlzLnByb2dyYW0uZ2V0KCdib2R5JykpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRvcExldmVsUGF0aC5pc0ltcG9ydERlY2xhcmF0aW9uKCkgfHxcbiAgICAgICAgdG9wTGV2ZWxQYXRoLmdldCgnc291cmNlJykubm9kZS52YWx1ZSAhPT0gbW9kdWxlU3BlY2lmaWVyXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGxldCBpbXBvcnRTcGVjaWZpZXJQYXRoID0gdG9wTGV2ZWxQYXRoXG4gICAgICAgIC5nZXQoJ3NwZWNpZmllcnMnKVxuICAgICAgICAuZmluZCgoc3BlY2lmaWVyUGF0aCkgPT4gbWF0Y2hTcGVjaWZpZXIoc3BlY2lmaWVyUGF0aCwgZXhwb3J0ZWROYW1lKSk7XG4gICAgICBpZiAoaW1wb3J0U3BlY2lmaWVyUGF0aCkge1xuICAgICAgICBpZiAodG9wTGV2ZWxQYXRoLm5vZGUuc3BlY2lmaWVycy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICB0b3BMZXZlbFBhdGgucmVtb3ZlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaW1wb3J0U3BlY2lmaWVyUGF0aC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEltcG9ydCB0aGUgZ2l2ZW4gdmFsdWUgKGlmIG5lZWRlZCkgYW5kIHJldHVybiBhbiBJZGVudGlmaWVyIHJlcHJlc2VudGluZ1xuICAvLyBpdC5cbiAgaW1wb3J0KFxuICAgIC8vIHRoZSBzcG90IGF0IHdoaWNoIHlvdSB3aWxsIGluc2VydCB0aGUgSWRlbnRpZmllciB3ZSByZXR1cm4gdG8geW91XG4gICAgdGFyZ2V0OiBOb2RlUGF0aDx0Lk5vZGU+LFxuXG4gICAgLy8gdGhlIHBhdGggdG8gdGhlIG1vZHVsZSB5b3UncmUgaW1wb3J0aW5nIGZyb21cbiAgICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZyxcblxuICAgIC8vIHRoZSBuYW1lIHlvdSdyZSBpbXBvcnRpbmcgZnJvbSB0aGF0IG1vZHVsZS4gVXNlIFwiZGVmYXVsdFwiIGZvciB0aGUgZGVmYXVsdFxuICAgIC8vIGV4cG9ydC4gVXNlIFwiKlwiIGZvciB0aGUgbmFtZXNwYWNlLlxuICAgIGV4cG9ydGVkTmFtZTogc3RyaW5nLFxuXG4gICAgLy8gT3B0aW9uYWwgaGludCBmb3IgaGVscGluZyB1cyBwaWNrIGEgbmFtZSBmb3IgdGhlIGltcG9ydGVkIGJpbmRpbmdcbiAgICBuYW1lSGludD86IHN0cmluZ1xuICApOiB0LklkZW50aWZpZXIge1xuICAgIGxldCBkZWNsYXJhdGlvbiA9IHRoaXMucHJvZ3JhbVxuICAgICAgLmdldCgnYm9keScpXG4gICAgICAuZmluZCgoZWx0KSA9PiBlbHQuaXNJbXBvcnREZWNsYXJhdGlvbigpICYmIGVsdC5ub2RlLnNvdXJjZS52YWx1ZSA9PT0gbW9kdWxlU3BlY2lmaWVyKSBhc1xuICAgICAgfCB1bmRlZmluZWRcbiAgICAgIHwgTm9kZVBhdGg8dC5JbXBvcnREZWNsYXJhdGlvbj47XG4gICAgaWYgKGRlY2xhcmF0aW9uKSB7XG4gICAgICBsZXQgc3BlY2lmaWVyID0gZGVjbGFyYXRpb25cbiAgICAgICAgLmdldCgnc3BlY2lmaWVycycpXG4gICAgICAgIC5maW5kKChzcGVjKSA9PiBtYXRjaFNwZWNpZmllcihzcGVjLCBleHBvcnRlZE5hbWUpKTtcbiAgICAgIGlmIChzcGVjaWZpZXIgJiYgdGFyZ2V0LnNjb3BlLmdldEJpbmRpbmcoc3BlY2lmaWVyLm5vZGUubG9jYWwubmFtZSk/LmtpbmQgPT09ICdtb2R1bGUnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnQuaWRlbnRpZmllcihzcGVjaWZpZXIubm9kZS5sb2NhbC5uYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZFNwZWNpZmllcih0YXJnZXQsIGRlY2xhcmF0aW9uLCBleHBvcnRlZE5hbWUsIG5hbWVIaW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9ncmFtLm5vZGUuYm9keS51bnNoaWZ0KFxuICAgICAgICB0aGlzLnQuaW1wb3J0RGVjbGFyYXRpb24oW10sIHRoaXMudC5zdHJpbmdMaXRlcmFsKG1vZHVsZVNwZWNpZmllcikpXG4gICAgICApO1xuICAgICAgcmV0dXJuIHRoaXMuYWRkU3BlY2lmaWVyKFxuICAgICAgICB0YXJnZXQsXG4gICAgICAgIHRoaXMucHJvZ3JhbS5nZXQoYGJvZHkuMGApIGFzIE5vZGVQYXRoPHQuSW1wb3J0RGVjbGFyYXRpb24+LFxuICAgICAgICBleHBvcnRlZE5hbWUsXG4gICAgICAgIG5hbWVIaW50XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkU3BlY2lmaWVyKFxuICAgIHRhcmdldDogTm9kZVBhdGg8dC5Ob2RlPixcbiAgICBkZWNsYXJhdGlvbjogTm9kZVBhdGg8dC5JbXBvcnREZWNsYXJhdGlvbj4sXG4gICAgZXhwb3J0ZWROYW1lOiBzdHJpbmcsXG4gICAgbmFtZUhpbnQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiB0LklkZW50aWZpZXIge1xuICAgIGxldCBsb2NhbCA9IHRoaXMudC5pZGVudGlmaWVyKFxuICAgICAgdW51c2VkTmFtZUxpa2UodGFyZ2V0LCBkZXNpcmVkTmFtZShuYW1lSGludCwgZXhwb3J0ZWROYW1lLCB0YXJnZXQpKVxuICAgICk7XG4gICAgbGV0IHNwZWNpZmllciA9IHRoaXMuYnVpbGRTcGVjaWZpZXIoZXhwb3J0ZWROYW1lLCBsb2NhbCk7XG4gICAgZGVjbGFyYXRpb24ubm9kZS5zcGVjaWZpZXJzLnB1c2goc3BlY2lmaWVyKTtcbiAgICBkZWNsYXJhdGlvbi5zY29wZS5yZWdpc3RlckJpbmRpbmcoXG4gICAgICAnbW9kdWxlJyxcbiAgICAgIGRlY2xhcmF0aW9uLmdldChgc3BlY2lmaWVycy4ke2RlY2xhcmF0aW9uLm5vZGUuc3BlY2lmaWVycy5sZW5ndGggLSAxfWApIGFzIE5vZGVQYXRoXG4gICAgKTtcbiAgICByZXR1cm4gbG9jYWw7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU3BlY2lmaWVyKGV4cG9ydGVkTmFtZTogc3RyaW5nLCBsb2NhbE5hbWU6IHQuSWRlbnRpZmllcikge1xuICAgIHN3aXRjaCAoZXhwb3J0ZWROYW1lKSB7XG4gICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMudC5pbXBvcnREZWZhdWx0U3BlY2lmaWVyKGxvY2FsTmFtZSk7XG4gICAgICBjYXNlICcqJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudC5pbXBvcnROYW1lc3BhY2VTcGVjaWZpZXIobG9jYWxOYW1lKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLnQuaW1wb3J0U3BlY2lmaWVyKGxvY2FsTmFtZSwgdGhpcy50LmlkZW50aWZpZXIoZXhwb3J0ZWROYW1lKSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVudXNlZE5hbWVMaWtlKHBhdGg6IE5vZGVQYXRoPHQuTm9kZT4sIG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBjYW5kaWRhdGUgPSBuYW1lO1xuICBsZXQgY291bnRlciA9IDA7XG4gIHdoaWxlIChwYXRoLnNjb3BlLmhhc0JpbmRpbmcoY2FuZGlkYXRlKSkge1xuICAgIGNhbmRpZGF0ZSA9IGAke25hbWV9JHtjb3VudGVyKyt9YDtcbiAgfVxuICByZXR1cm4gY2FuZGlkYXRlO1xufVxuXG5mdW5jdGlvbiBuYW1lKG5vZGU6IHQuU3RyaW5nTGl0ZXJhbCB8IHQuSWRlbnRpZmllcik6IHN0cmluZyB7XG4gIGlmIChub2RlLnR5cGUgPT09ICdTdHJpbmdMaXRlcmFsJykge1xuICAgIHJldHVybiBub2RlLnZhbHVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBub2RlLm5hbWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVzaXJlZE5hbWUobmFtZUhpbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgZXhwb3J0ZWROYW1lOiBzdHJpbmcsIHRhcmdldDogTm9kZVBhdGg8dC5Ob2RlPikge1xuICBpZiAobmFtZUhpbnQpIHtcbiAgICByZXR1cm4gbmFtZUhpbnQ7XG4gIH1cbiAgaWYgKGV4cG9ydGVkTmFtZSA9PT0gJ2RlZmF1bHQnIHx8IGV4cG9ydGVkTmFtZSA9PT0gJyonKSB7XG4gICAgaWYgKHRhcmdldC5pc0lkZW50aWZpZXIoKSkge1xuICAgICAgcmV0dXJuIHRhcmdldC5ub2RlLm5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0YXJnZXQuc2NvcGUuZ2VuZXJhdGVVaWRJZGVudGlmaWVyQmFzZWRPbk5vZGUodGFyZ2V0Lm5vZGUpLm5hbWU7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBleHBvcnRlZE5hbWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hTcGVjaWZpZXIoc3BlYzogTm9kZVBhdGg8YW55PiwgZXhwb3J0ZWROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgc3dpdGNoIChleHBvcnRlZE5hbWUpIHtcbiAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgIHJldHVybiBzcGVjLmlzSW1wb3J0RGVmYXVsdFNwZWNpZmllcigpO1xuICAgIGNhc2UgJyonOlxuICAgICAgcmV0dXJuIHNwZWMuaXNJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXIoKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHNwZWMuaXNJbXBvcnRTcGVjaWZpZXIoKSAmJiBuYW1lKHNwZWMubm9kZS5pbXBvcnRlZCkgPT09IGV4cG9ydGVkTmFtZTtcbiAgfVxufVxuIl19 |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
19501
5
133
1
80