@mrgrain/jsii-struct-builder
Advanced tools
Comparing version 0.5.21 to 0.6.0
@@ -28,11 +28,2 @@ import { InterfaceType, Property } from '@jsii/spec'; | ||
/** | ||
* Render `@default` doctag also for required (not optional) properties. | ||
* | ||
* The tag is needed for `projen new` to fill in required properties at project creation time. | ||
* | ||
* @default true | ||
* @deprecated This should not be a concern for the renderer, instead remove the doctag from required properties before rendering. | ||
*/ | ||
readonly defaultTagsForRequiredProps?: boolean; | ||
/** | ||
* Use explicit `type` imports when importing referenced modules. | ||
@@ -39,0 +30,0 @@ * |
@@ -15,8 +15,7 @@ "use strict"; | ||
constructor(options = {}) { | ||
var _a, _b, _c, _d; | ||
var _a, _b, _c; | ||
this.options = { | ||
importLocations: (_a = options.importLocations) !== null && _a !== void 0 ? _a : {}, | ||
indent: (_b = options.indent) !== null && _b !== void 0 ? _b : 2, | ||
defaultTagsForRequiredProps: (_c = options.defaultTagsForRequiredProps) !== null && _c !== void 0 ? _c : true, | ||
useTypeImports: (_d = options.useTypeImports) !== null && _d !== void 0 ? _d : false, | ||
useTypeImports: (_c = options.useTypeImports) !== null && _c !== void 0 ? _c : false, | ||
}; | ||
@@ -63,5 +62,2 @@ this.buffer = new CodeBuffer(' '.repeat(this.options.indent)); | ||
if (docs) { | ||
if (!p.optional && !this.options.defaultTagsForRequiredProps) { | ||
delete docs.default; | ||
} | ||
this.renderDocBlock(docsToLines(docs)); | ||
@@ -208,2 +204,2 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJlci90eXBlc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFDQVVvQjtBQUNwQiwrRUFBc0Q7QUFFdEQsd0NBQTJEO0FBK0MzRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBSTdCLFlBQW1CLFVBQXFDLEVBQUU7O1FBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixlQUFlLEVBQUUsTUFBQSxPQUFPLENBQUMsZUFBZSxtQ0FBSSxFQUFFO1lBQzlDLE1BQU0sRUFBRSxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLENBQUM7WUFDM0IsMkJBQTJCLEVBQUUsTUFBQSxPQUFPLENBQUMsMkJBQTJCLG1DQUFJLElBQUk7WUFDeEUsY0FBYyxFQUFFLE1BQUEsT0FBTyxDQUFDLGNBQWMsbUNBQUksS0FBSztTQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZLENBQUMsTUFBcUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLElBQW1COztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJ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UUFBUSxJQUFJLENBQUMsRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNuQztJQUVELDZCQUE2QjtJQUM3QixPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsQ0FBZ0I7SUFDbkMsSUFBSSxJQUFBLDJCQUFvQixFQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzNCLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDaEI7SUFFRCxJQUFJLElBQUEsMkJBQW9CLEVBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDM0IsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDM0M7SUFFRCxJQUFJLElBQUEsZ0NBQXlCLEVBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUM5QztJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbGxlY3Rpb25LaW5kLFxuICBEb2NzLFxuICBJbnRlcmZhY2VUeXBlLFxuICBpc0NvbGxlY3Rpb25UeXBlUmVmZXJlbmNlLFxuICBpc05hbWVkVHlwZVJlZmVyZW5jZSxcbiAgaXNQcmltaXRpdmVUeXBlUmVmZXJlbmNlLFxuICBpc1VuaW9uVHlwZVJlZmVyZW5jZSxcbiAgUHJvcGVydHksXG4gIFR5cGVSZWZlcmVuY2UsXG59IGZyb20gJ0Bqc2lpL3NwZWMnO1xuaW1wb3J0IHN0cnVjdHVyZWRDbG9uZSBmcm9tICdAdW5nYXAvc3RydWN0dXJlZC1jbG9uZSc7XG5pbXBvcnQgeyBIYXNTdHJ1Y3RTcGVjIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBjb21wYXJlTG93ZXJDYXNlLCBjb21wYXJlUGF0aCB9IGZyb20gJy4uL3ByaXZhdGUnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBUeXBlU2NyaXB0UmVuZGVyZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVTY3JpcHRSZW5kZXJlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1vZHVsZSBsb2NhdGlvbnMgYXNzZW1ibGllcyBzaG91bGQgYmUgaW1wb3J0ZWQgZnJvbVxuICAgKlxuICAgKiBBbGwgdHlwZXMgYXJlIGltcG9ydGVkIGZyb20gdGhlIHRvcC1sZXZlbCBvZiB0aGUgbW9kdWxlLlxuICAgKiBUaGlzIG1hcCBjYW4gYmUgdXNlZCB0byBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgaW1wb3J0IGxvY2F0aW9ucy5cbiAgICpcbiAgICogRm9yIGxvY2FsIGltcG9ydHMsIHRoZSBpbXBvcnQgdHJhdmVyc2UgdXAgYSBudW1iZXIgb2YgbGV2ZWxzIGVxdWl2YWxlbnQgdG8gdGhlIG51bWJlciBvZiBmcW4gcGFydHMgb2YgdGhlIHJlbmRlcmVkIHR5cGUuXG4gICAqIEUuZy4gaWYgdGhlIHRoZSByZW5kZXJlZCB0eXBlIGlzIGBwa2cuaW50ZXJmYWNlYCwgaXQgaXMgYXNzdW1lZCB0byBiZSBhdCB0aGUgdG9wLWxldmVsIGFuZCBpbXBvcnRzIGZyb20gdGhlIHNhbWUgYXNzZW1ibHkgd291bGQgYmUgZnJvbSBgLi9gLlxuICAgKiBJZiB0aGUgcmVuZGVyZWQgdHlwZSBpcyBgcGtnLm5lc3RlZC5zdWIuaW50ZXJmYWNlYCBhIGxvY2FsIGltcG9ydCB3aWxsIGJlIGZyb20gYC4uLy4uL2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlcyB0aGUgYXNzZW1ibHkgbmFtZSBmb3IgZXh0ZXJuYWwgcGFja2FnZXNcbiAgICogbG9jYWwgaW1wb3J0cyB0cmF2ZXJzZSB1cCBhIG51bWJlciBvZiBsZXZlbHMgZXF1aXZhbGVudCB0byB0aGUgbnVtYmVyIG9mIGZxbiBwYXJ0c1xuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0TG9jYXRpb25zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogSW5kZW50YXRpb24gc2l6ZVxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBpbmRlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFJlbmRlciBgQGRlZmF1bHRgIGRvY3RhZyBhbHNvIGZvciByZXF1aXJlZCAobm90IG9wdGlvbmFsKSBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBUaGUgdGFnIGlzIG5lZWRlZCBmb3IgYHByb2plbiBuZXdgIHRvIGZpbGwgaW4gcmVxdWlyZWQgcHJvcGVydGllcyBhdCBwcm9qZWN0IGNyZWF0aW9uIHRpbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBzaG91bGQgbm90IGJlIGEgY29uY2VybiBmb3IgdGhlIHJlbmRlcmVyLCBpbnN0ZWFkIHJlbW92ZSB0aGUgZG9jdGFnIGZyb20gcmVxdWlyZWQgcHJvcGVydGllcyBiZWZvcmUgcmVuZGVyaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFRhZ3NGb3JSZXF1aXJlZFByb3BzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIGV4cGxpY2l0IGB0eXBlYCBpbXBvcnRzIHdoZW4gaW1wb3J0aW5nIHJlZmVyZW5jZWQgbW9kdWxlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay9tb2R1bGVzLmh0bWwjaW1wb3J0aW5nLXR5cGVzXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB1c2VUeXBlSW1wb3J0cz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogSnNpaSB0byBUeXBlU2NyaXB0IHJlbmRlcmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0UmVuZGVyZXIge1xuICBwcml2YXRlIGJ1ZmZlcjogQ29kZUJ1ZmZlcjtcbiAgcHJpdmF0ZSBvcHRpb25zOiBSZXF1aXJlZDxUeXBlU2NyaXB0UmVuZGVyZXJPcHRpb25zPjtcblxuICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogVHlwZVNjcmlwdFJlbmRlcmVyT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgaW1wb3J0TG9jYXRpb25zOiBvcHRpb25zLmltcG9ydExvY2F0aW9ucyA/PyB7fSxcbiAgICAgIGluZGVudDogb3B0aW9ucy5pbmRlbnQgPz8gMixcbiAgICAgIGRlZmF1bHRUYWdzRm9yUmVxdWlyZWRQcm9wczogb3B0aW9ucy5kZWZhdWx0VGFnc0ZvclJlcXVpcmVkUHJvcHMgPz8gdHJ1ZSxcbiAgICAgIHVzZVR5cGVJbXBvcnRzOiBvcHRpb25zLnVzZVR5cGVJbXBvcnRzID8/IGZhbHNlLFxuICAgIH07XG4gICAgdGhpcy5idWZmZXIgPSBuZXcgQ29kZUJ1ZmZlcignICcucmVwZWF0KHRoaXMub3B0aW9ucy5pbmRlbnQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgc29tZXRoaW5nIHRoYXQgaGFzIGEgc3RydWN0IHNwZWNcbiAgICovXG4gIHB1YmxpYyByZW5kZXJTdHJ1Y3Qoc3RydWN0OiBIYXNTdHJ1Y3RTcGVjKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJTdHJ1Y3RTcGVjKHN0cnVjdC5zcGVjKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgYSBqc2lpIEludGVyZmFjZVR5cGUgc3BlY1xuICAgKi9cbiAgcHVibGljIHJlbmRlclN0cnVjdFNwZWMoc3BlYzogSW50ZXJmYWNlVHlwZSk6IHN0cmluZyB7XG4gICAgdGhpcy5idWZmZXIuZmx1c2goKTtcblxuICAgIHRoaXMucmVuZGVySW1wb3J0cyhleHRyYWN0SW1wb3J0cyhzcGVjLCB0aGlzLm9wdGlvbnMuaW1wb3J0TG9jYXRpb25zKSk7XG4gICAgdGhpcy5idWZmZXIubGluZSgpO1xuICAgIHRoaXMucmVuZGVyRG9jQmxvY2soZG9jc1RvTGluZXMoc3BlYy5kb2NzKSk7XG4gICAgdGhpcy5idWZmZXIub3BlbihgZXhwb3J0IGludGVyZmFjZSAke3NwZWMubmFtZX0ge2ApO1xuICAgIHNwZWMucHJvcGVydGllcz8uZm9yRWFjaCgocCkgPT4gdGhpcy5yZW5kZXJQcm9wZXJ0eShwLCBzcGVjLmZxbikpO1xuICAgIHRoaXMuYnVmZmVyLmNsb3NlKCd9Jyk7XG4gICAgdGhpcy5idWZmZXIubGluZSgpO1xuXG4gICAgcmV0dXJuIHRoaXMuYnVmZmVyLmZsdXNoKCkuam9pbignXFxuJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVySW1wb3J0cyhtb2R1bGVzOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4pIHtcbiAgICBBcnJheS5mcm9tKG1vZHVsZXMua2V5cygpKVxuICAgICAgLnNvcnQoY29tcGFyZVBhdGgpXG4gICAgICAuZm9yRWFjaCgobW9kKSA9PiB7XG4gICAgICAgIGNvbnN0IGltcG9ydHMgPSBBcnJheS5mcm9tKG1vZHVsZXMuZ2V0KG1vZCk/LnZhbHVlcygpIHx8IFtdKTtcbiAgICAgICAgY29uc3QgaW1wb3J0U3RtdCA9IHRoaXMub3B0aW9ucy51c2VUeXBlSW1wb3J0c1xuICAgICAgICAgID8gJ2ltcG9ydCB0eXBlJ1xuICAgICAgICAgIDogJ2ltcG9ydCc7XG4gICAgICAgIHRoaXMuYnVmZmVyLmxpbmUoXG4gICAgICAgICAgYCR7aW1wb3J0U3RtdH0geyAke2ltcG9ydHNcbiAgICAgICAgICAgIC5zb3J0KGNvbXBhcmVMb3dlckNhc2UpXG4gICAgICAgICAgICAuam9pbignLCAnKX0gfSBmcm9tICcke21vZH0nO2AsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0eShwOiBQcm9wZXJ0eSwgY29udGFpbmluZ0Zxbjogc3RyaW5nKSB7XG4gICAgY29uc3QgZG9jcyA9IHN0cnVjdHVyZWRDbG9uZShwLmRvY3MpO1xuICAgIGlmIChkb2NzKSB7XG4gICAgICBpZiAoIXAub3B0aW9uYWwgJiYgIXRoaXMub3B0aW9ucy5kZWZhdWx0VGFnc0ZvclJlcXVpcmVkUHJvcHMpIHtcbiAgICAgICAgZGVsZXRlIGRvY3MuZGVmYXVsdDtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVuZGVyRG9jQmxvY2soZG9jc1RvTGluZXMoZG9jcykpO1xuICAgIH1cblxuICAgIHRoaXMuYnVmZmVyLmxpbmUoXG4gICAgICBgcmVhZG9ubHkgJHtwLm5hbWV9JHtwLm9wdGlvbmFsID8gJz8nIDogJyd9OiAke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgIHAudHlwZSxcbiAgICAgICAgY29udGFpbmluZ0ZxbixcbiAgICAgICl9O2AsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJEb2NCbG9jayhsaW5lczogc3RyaW5nW10pIHtcbiAgICBpZiAoIWxpbmVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYnVmZmVyLmxpbmUoJy8qKicpO1xuICAgIGxpbmVzLmZvckVhY2goKGxpbmUpID0+IHRoaXMuYnVmZmVyLmxpbmUoYCAqICR7bGluZX1gKSk7XG4gICAgdGhpcy5idWZmZXIubGluZSgnICovJyk7XG4gIH1cbn1cblxuY2xhc3MgQ29kZUJ1ZmZlciB7XG4gIHByaXZhdGUgbGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBwcml2YXRlIGluZGVudExldmVsID0gMDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbmRlbnQgPSAnICcpIHt9XG5cbiAgcHVibGljIGZsdXNoKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5saW5lcztcbiAgICB0aGlzLnJlc2V0KCk7XG5cbiAgICByZXR1cm4gY3VycmVudDtcbiAgfVxuXG4gIHB1YmxpYyBsaW5lKGNvZGU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmluZGVudC5yZXBlYXQodGhpcy5pbmRlbnRMZXZlbCk7XG4gICAgdGhpcy5saW5lcy5wdXNoKChwcmVmaXggKyAoY29kZSA/PyAnJykpLnRyaW1FbmQoKSk7XG4gIH1cblxuICBwdWJsaWMgb3Blbihjb2RlPzogc3RyaW5nKSB7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIHRoaXMubGluZShjb2RlKTtcbiAgICB9XG5cbiAgICB0aGlzLmluZGVudExldmVsKys7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoY29kZT86IHN0cmluZykge1xuICAgIGlmICh0aGlzLmluZGVudExldmVsID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWNyZWFzZSBpbmRlbnQgbGV2ZWwgYmVsb3cgemVybycpO1xuICAgIH1cbiAgICB0aGlzLmluZGVudExldmVsLS07XG5cbiAgICBpZiAoY29kZSkge1xuICAgICAgdGhpcy5saW5lKGNvZGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5saW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgdGhpcy5pbmRlbnRMZXZlbCA9IDA7XG4gIH1cbn1cblxuZnVuY3Rpb24gZG9jc1RvTGluZXMoZG9jcz86IERvY3MpOiBzdHJpbmdbXSB7XG4gIGlmICghZG9jcykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBpZiAoZG9jcy5zdW1tYXJ5KSB7XG4gICAgbGluZXMucHVzaChkb2NzLnN1bW1hcnkpO1xuICB9XG4gIGlmIChkb2NzLnJlbWFya3MpIHtcbiAgICBsaW5lcy5wdXNoKC4uLmRvY3MucmVtYXJrcy5zcGxpdCgnXFxuJykpO1xuICB9XG4gIGlmIChkb2NzLmRlZmF1bHQpIHtcbiAgICBsaW5lcy5wdXNoKGBAZGVmYXVsdCAke2RvY3MuZGVmYXVsdH1gKTtcbiAgfVxuICBpZiAoZG9jcy5kZXByZWNhdGVkKSB7XG4gICAgbGluZXMucHVzaChgQGRlcHJlY2F0ZWQgJHtkb2NzLmRlcHJlY2F0ZWR9YCk7XG4gIH1cbiAgaWYgKGRvY3Muc3RhYmlsaXR5KSB7XG4gICAgbGluZXMucHVzaChgQHN0YWJpbGl0eSAke2RvY3Muc3RhYmlsaXR5fWApO1xuICB9XG4gIGlmIChkb2NzLmN1c3RvbSkge1xuICAgIE9iamVjdC5lbnRyaWVzKGRvY3MuY3VzdG9tKS5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgW3RhZywgdmFsdWVdID0gZW50cnk7XG4gICAgICBsaW5lcy5wdXNoKGBAJHt0YWd9ICR7dmFsdWV9YCk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHR5cGVSZWZUb1R5cGUodDogVHlwZVJlZmVyZW5jZSwgY29udGFpbmluZ0Zxbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGlzUHJpbWl0aXZlVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnByaW1pdGl2ZTtcbiAgfVxuXG4gIGlmIChpc05hbWVkVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LmZxbi5zcGxpdCgnLicpLnNsaWNlKDEpLmpvaW4oJy4nKTtcbiAgfVxuXG4gIGlmIChpc0NvbGxlY3Rpb25UeXBlUmVmZXJlbmNlKHQpKSB7XG4gICAgc3dpdGNoICh0LmNvbGxlY3Rpb24ua2luZCkge1xuICAgICAgY2FzZSBDb2xsZWN0aW9uS2luZC5BcnJheTpcbiAgICAgICAgcmV0dXJuIGBBcnJheTwke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgICAgdC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlLFxuICAgICAgICAgIGNvbnRhaW5pbmdGcW4sXG4gICAgICAgICl9PmA7XG4gICAgICBjYXNlIENvbGxlY3Rpb25LaW5kLk1hcDpcbiAgICAgICAgcmV0dXJuIGBSZWNvcmQ8c3RyaW5nLCAke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgICAgdC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlLFxuICAgICAgICAgIGNvbnRhaW5pbmdGcW4sXG4gICAgICAgICl9PmA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2FueSc7XG4gICAgfVxuICB9XG4gIGlmIChpc1VuaW9uVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnVuaW9uLnR5cGVzXG4gICAgICAubWFwKCh1dCkgPT4gdHlwZVJlZlRvVHlwZSh1dCwgY29udGFpbmluZ0ZxbikpXG4gICAgICAuam9pbignIHwgJyk7XG4gIH1cblxuICByZXR1cm4gJ2FueSc7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RJbXBvcnRzKFxuICBzcGVjOiBJbnRlcmZhY2VUeXBlLFxuICBpbXBvcnRMb2NhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4ge1xuICBjb25zdCByZWZzID0gc3BlYy5wcm9wZXJ0aWVzPy5mbGF0TWFwKChwKSA9PiBjb2xsZWN0RlFOcyhwLnR5cGUpKSB8fCBbXTtcbiAgcmV0dXJuIHJlZnMucmVkdWNlKChtb2RzLCByZWYpID0+IHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IGZxblRvSW1wb3J0TmFtZShyZWYsIHNwZWMuZnFuLCBpbXBvcnRMb2NhdGlvbnMpO1xuICAgIGNvbnN0IGltcG9ydHMgPSBtb2RzLmdldChwYWNrYWdlTmFtZSkgfHwgbmV3IFNldCgpO1xuICAgIGNvbnN0IGltcG9ydE5hbWUgPSByZWYuc3BsaXQoJy4nKS5zbGljZSgxKVswXSB8fCByZWY7XG4gICAgcmV0dXJuIG1vZHMuc2V0KHBhY2thZ2VOYW1lLCBpbXBvcnRzLmFkZChpbXBvcnROYW1lKSk7XG4gIH0sIG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKSk7XG59XG5cbmZ1bmN0aW9uIGZxblRvSW1wb3J0TmFtZShcbiAgZnFuOiBzdHJpbmcsXG4gIGltcG9ydGluZ0Zxbjogc3RyaW5nLFxuICBpbXBvcnRMb2NhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBzdHJpbmcge1xuICBjb25zdCBsb2NhbEFzc2VtYmx5ID0gaW1wb3J0aW5nRnFuLnNwbGl0KCcuJywgMSlbMF07XG4gIGNvbnN0IGltcG9ydEFzc2VtYmx5ID0gZnFuLnNwbGl0KCcuJywgMSlbMF07XG5cbiAgLy8gd2UgaGF2ZSBhIGN1c3RvbSBpbXBvcnQgcGF0aFxuICBpZiAoaW1wb3J0TG9jYXRpb25zW2ltcG9ydEFzc2VtYmx5XSkge1xuICAgIHJldHVybiBpbXBvcnRMb2NhdGlvbnNbaW1wb3J0QXNzZW1ibHldO1xuICB9XG5cbiAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhc3NlbWJseSwgdHJ5IHRvIGd1ZXNzIHRoZSBwYXRoIHRvIHRoZSByb290XG4gIGlmIChpbXBvcnRBc3NlbWJseSA9PT0gbG9jYWxBc3NlbWJseSkge1xuICAgIGNvbnN0IGZxblBhcnRzID0gaW1wb3J0aW5nRnFuLnNwbGl0KCcuJykubGVuZ3RoO1xuICAgIGlmIChmcW5QYXJ0cyA8PSAyKSB7XG4gICAgICByZXR1cm4gJy4vJztcbiAgICB9XG4gICAgcmV0dXJuICcuLi8nLnJlcGVhdChmcW5QYXJ0cyAtIDIpO1xuICB9XG5cbiAgLy8gcmVndWxhciB0aGlyZCBwYXJ0eSBtb2R1bGVcbiAgcmV0dXJuIGltcG9ydEFzc2VtYmx5O1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0RlFOcyh0OiBUeXBlUmVmZXJlbmNlKTogc3RyaW5nW10ge1xuICBpZiAoaXNOYW1lZFR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gW3QuZnFuXTtcbiAgfVxuXG4gIGlmIChpc1VuaW9uVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnVuaW9uLnR5cGVzLmZsYXRNYXAoY29sbGVjdEZRTnMpO1xuICB9XG5cbiAgaWYgKGlzQ29sbGVjdGlvblR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gY29sbGVjdEZRTnModC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlKTtcbiAgfVxuXG4gIHJldHVybiBbXTtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJlci90eXBlc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFDQVVvQjtBQUNwQiwrRUFBc0Q7QUFFdEQsd0NBQTJEO0FBcUMzRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBSTdCLFlBQW1CLFVBQXFDLEVBQUU7O1FBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixlQUFlLEVBQUUsTUFBQSxPQUFPLENBQUMsZUFBZSxtQ0FBSSxFQUFFO1lBQzlDLE1BQU0sRUFBRSxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLENBQUM7WUFDM0IsY0FBYyxFQUFFLE1BQUEsT0FBTyxDQUFDLGNBQWMsbUNBQUksS0FBSztTQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZLENBQUMsTUFBcUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLElBQW1COztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTSxD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V0FBVyxDQUFDLENBQWdCO0lBQ25DLElBQUksSUFBQSwyQkFBb0IsRUFBQyxDQUFDLENBQUMsRUFBRTtRQUMzQixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ2hCO0lBRUQsSUFBSSxJQUFBLDJCQUFvQixFQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzNCLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQzNDO0lBRUQsSUFBSSxJQUFBLGdDQUF5QixFQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ2hDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDOUM7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb2xsZWN0aW9uS2luZCxcbiAgRG9jcyxcbiAgSW50ZXJmYWNlVHlwZSxcbiAgaXNDb2xsZWN0aW9uVHlwZVJlZmVyZW5jZSxcbiAgaXNOYW1lZFR5cGVSZWZlcmVuY2UsXG4gIGlzUHJpbWl0aXZlVHlwZVJlZmVyZW5jZSxcbiAgaXNVbmlvblR5cGVSZWZlcmVuY2UsXG4gIFByb3BlcnR5LFxuICBUeXBlUmVmZXJlbmNlLFxufSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCBzdHJ1Y3R1cmVkQ2xvbmUgZnJvbSAnQHVuZ2FwL3N0cnVjdHVyZWQtY2xvbmUnO1xuaW1wb3J0IHsgSGFzU3RydWN0U3BlYyB9IGZyb20gJy4uL2J1aWxkZXInO1xuaW1wb3J0IHsgY29tcGFyZUxvd2VyQ2FzZSwgY29tcGFyZVBhdGggfSBmcm9tICcuLi9wcml2YXRlJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgVHlwZVNjcmlwdFJlbmRlcmVyYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NyaXB0UmVuZGVyZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgbG9jYXRpb25zIGFzc2VtYmxpZXMgc2hvdWxkIGJlIGltcG9ydGVkIGZyb21cbiAgICpcbiAgICogQWxsIHR5cGVzIGFyZSBpbXBvcnRlZCBmcm9tIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIG1vZHVsZS5cbiAgICogVGhpcyBtYXAgY2FuIGJlIHVzZWQgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGltcG9ydCBsb2NhdGlvbnMuXG4gICAqXG4gICAqIEZvciBsb2NhbCBpbXBvcnRzLCB0aGUgaW1wb3J0IHRyYXZlcnNlIHVwIGEgbnVtYmVyIG9mIGxldmVscyBlcXVpdmFsZW50IHRvIHRoZSBudW1iZXIgb2YgZnFuIHBhcnRzIG9mIHRoZSByZW5kZXJlZCB0eXBlLlxuICAgKiBFLmcuIGlmIHRoZSB0aGUgcmVuZGVyZWQgdHlwZSBpcyBgcGtnLmludGVyZmFjZWAsIGl0IGlzIGFzc3VtZWQgdG8gYmUgYXQgdGhlIHRvcC1sZXZlbCBhbmQgaW1wb3J0cyBmcm9tIHRoZSBzYW1lIGFzc2VtYmx5IHdvdWxkIGJlIGZyb20gYC4vYC5cbiAgICogSWYgdGhlIHJlbmRlcmVkIHR5cGUgaXMgYHBrZy5uZXN0ZWQuc3ViLmludGVyZmFjZWAgYSBsb2NhbCBpbXBvcnQgd2lsbCBiZSBmcm9tIGAuLi8uLi9gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgdGhlIGFzc2VtYmx5IG5hbWUgZm9yIGV4dGVybmFsIHBhY2thZ2VzXG4gICAqIGxvY2FsIGltcG9ydHMgdHJhdmVyc2UgdXAgYSBudW1iZXIgb2YgbGV2ZWxzIGVxdWl2YWxlbnQgdG8gdGhlIG51bWJlciBvZiBmcW4gcGFydHNcbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydExvY2F0aW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEluZGVudGF0aW9uIHNpemVcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBVc2UgZXhwbGljaXQgYHR5cGVgIGltcG9ydHMgd2hlbiBpbXBvcnRpbmcgcmVmZXJlbmNlZCBtb2R1bGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rL21vZHVsZXMuaHRtbCNpbXBvcnRpbmctdHlwZXNcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZVR5cGVJbXBvcnRzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBKc2lpIHRvIFR5cGVTY3JpcHQgcmVuZGVyZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVTY3JpcHRSZW5kZXJlciB7XG4gIHByaXZhdGUgYnVmZmVyOiBDb2RlQnVmZmVyO1xuICBwcml2YXRlIG9wdGlvbnM6IFJlcXVpcmVkPFR5cGVTY3JpcHRSZW5kZXJlck9wdGlvbnM+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBUeXBlU2NyaXB0UmVuZGVyZXJPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBpbXBvcnRMb2NhdGlvbnM6IG9wdGlvbnMuaW1wb3J0TG9jYXRpb25zID8/IHt9LFxuICAgICAgaW5kZW50OiBvcHRpb25zLmluZGVudCA/PyAyLFxuICAgICAgdXNlVHlwZUltcG9ydHM6IG9wdGlvbnMudXNlVHlwZUltcG9ydHMgPz8gZmFsc2UsXG4gICAgfTtcbiAgICB0aGlzLmJ1ZmZlciA9IG5ldyBDb2RlQnVmZmVyKCcgJy5yZXBlYXQodGhpcy5vcHRpb25zLmluZGVudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBzb21ldGhpbmcgdGhhdCBoYXMgYSBzdHJ1Y3Qgc3BlY1xuICAgKi9cbiAgcHVibGljIHJlbmRlclN0cnVjdChzdHJ1Y3Q6IEhhc1N0cnVjdFNwZWMpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlbmRlclN0cnVjdFNwZWMoc3RydWN0LnNwZWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhIGpzaWkgSW50ZXJmYWNlVHlwZSBzcGVjXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyU3RydWN0U3BlYyhzcGVjOiBJbnRlcmZhY2VUeXBlKTogc3RyaW5nIHtcbiAgICB0aGlzLmJ1ZmZlci5mbHVzaCgpO1xuXG4gICAgdGhpcy5yZW5kZXJJbXBvcnRzKGV4dHJhY3RJbXBvcnRzKHNwZWMsIHRoaXMub3B0aW9ucy5pbXBvcnRMb2NhdGlvbnMpKTtcbiAgICB0aGlzLmJ1ZmZlci5saW5lKCk7XG4gICAgdGhpcy5yZW5kZXJEb2NCbG9jayhkb2NzVG9MaW5lcyhzcGVjLmRvY3MpKTtcbiAgICB0aGlzLmJ1ZmZlci5vcGVuKGBleHBvcnQgaW50ZXJmYWNlICR7c3BlYy5uYW1lfSB7YCk7XG4gICAgc3BlYy5wcm9wZXJ0aWVzPy5mb3JFYWNoKChwKSA9PiB0aGlzLnJlbmRlclByb3BlcnR5KHAsIHNwZWMuZnFuKSk7XG4gICAgdGhpcy5idWZmZXIuY2xvc2UoJ30nKTtcbiAgICB0aGlzLmJ1ZmZlci5saW5lKCk7XG5cbiAgICByZXR1cm4gdGhpcy5idWZmZXIuZmx1c2goKS5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJJbXBvcnRzKG1vZHVsZXM6IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+Pikge1xuICAgIEFycmF5LmZyb20obW9kdWxlcy5rZXlzKCkpXG4gICAgICAuc29ydChjb21wYXJlUGF0aClcbiAgICAgIC5mb3JFYWNoKChtb2QpID0+IHtcbiAgICAgICAgY29uc3QgaW1wb3J0cyA9IEFycmF5LmZyb20obW9kdWxlcy5nZXQobW9kKT8udmFsdWVzKCkgfHwgW10pO1xuICAgICAgICBjb25zdCBpbXBvcnRTdG10ID0gdGhpcy5vcHRpb25zLnVzZVR5cGVJbXBvcnRzXG4gICAgICAgICAgPyAnaW1wb3J0IHR5cGUnXG4gICAgICAgICAgOiAnaW1wb3J0JztcbiAgICAgICAgdGhpcy5idWZmZXIubGluZShcbiAgICAgICAgICBgJHtpbXBvcnRTdG10fSB7ICR7aW1wb3J0c1xuICAgICAgICAgICAgLnNvcnQoY29tcGFyZUxvd2VyQ2FzZSlcbiAgICAgICAgICAgIC5qb2luKCcsICcpfSB9IGZyb20gJyR7bW9kfSc7YCxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlclByb3BlcnR5KHA6IFByb3BlcnR5LCBjb250YWluaW5nRnFuOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkb2NzID0gc3RydWN0dXJlZENsb25lKHAuZG9jcyk7XG4gICAgaWYgKGRvY3MpIHtcbiAgICAgIHRoaXMucmVuZGVyRG9jQmxvY2soZG9jc1RvTGluZXMoZG9jcykpO1xuICAgIH1cblxuICAgIHRoaXMuYnVmZmVyLmxpbmUoXG4gICAgICBgcmVhZG9ubHkgJHtwLm5hbWV9JHtwLm9wdGlvbmFsID8gJz8nIDogJyd9OiAke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgIHAudHlwZSxcbiAgICAgICAgY29udGFpbmluZ0ZxbixcbiAgICAgICl9O2AsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJEb2NCbG9jayhsaW5lczogc3RyaW5nW10pIHtcbiAgICBpZiAoIWxpbmVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYnVmZmVyLmxpbmUoJy8qKicpO1xuICAgIGxpbmVzLmZvckVhY2goKGxpbmUpID0+IHRoaXMuYnVmZmVyLmxpbmUoYCAqICR7bGluZX1gKSk7XG4gICAgdGhpcy5idWZmZXIubGluZSgnICovJyk7XG4gIH1cbn1cblxuY2xhc3MgQ29kZUJ1ZmZlciB7XG4gIHByaXZhdGUgbGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBwcml2YXRlIGluZGVudExldmVsID0gMDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbmRlbnQgPSAnICcpIHt9XG5cbiAgcHVibGljIGZsdXNoKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5saW5lcztcbiAgICB0aGlzLnJlc2V0KCk7XG5cbiAgICByZXR1cm4gY3VycmVudDtcbiAgfVxuXG4gIHB1YmxpYyBsaW5lKGNvZGU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmluZGVudC5yZXBlYXQodGhpcy5pbmRlbnRMZXZlbCk7XG4gICAgdGhpcy5saW5lcy5wdXNoKChwcmVmaXggKyAoY29kZSA/PyAnJykpLnRyaW1FbmQoKSk7XG4gIH1cblxuICBwdWJsaWMgb3Blbihjb2RlPzogc3RyaW5nKSB7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIHRoaXMubGluZShjb2RlKTtcbiAgICB9XG5cbiAgICB0aGlzLmluZGVudExldmVsKys7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoY29kZT86IHN0cmluZykge1xuICAgIGlmICh0aGlzLmluZGVudExldmVsID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWNyZWFzZSBpbmRlbnQgbGV2ZWwgYmVsb3cgemVybycpO1xuICAgIH1cbiAgICB0aGlzLmluZGVudExldmVsLS07XG5cbiAgICBpZiAoY29kZSkge1xuICAgICAgdGhpcy5saW5lKGNvZGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5saW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgdGhpcy5pbmRlbnRMZXZlbCA9IDA7XG4gIH1cbn1cblxuZnVuY3Rpb24gZG9jc1RvTGluZXMoZG9jcz86IERvY3MpOiBzdHJpbmdbXSB7XG4gIGlmICghZG9jcykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBpZiAoZG9jcy5zdW1tYXJ5KSB7XG4gICAgbGluZXMucHVzaChkb2NzLnN1bW1hcnkpO1xuICB9XG4gIGlmIChkb2NzLnJlbWFya3MpIHtcbiAgICBsaW5lcy5wdXNoKC4uLmRvY3MucmVtYXJrcy5zcGxpdCgnXFxuJykpO1xuICB9XG4gIGlmIChkb2NzLmRlZmF1bHQpIHtcbiAgICBsaW5lcy5wdXNoKGBAZGVmYXVsdCAke2RvY3MuZGVmYXVsdH1gKTtcbiAgfVxuICBpZiAoZG9jcy5kZXByZWNhdGVkKSB7XG4gICAgbGluZXMucHVzaChgQGRlcHJlY2F0ZWQgJHtkb2NzLmRlcHJlY2F0ZWR9YCk7XG4gIH1cbiAgaWYgKGRvY3Muc3RhYmlsaXR5KSB7XG4gICAgbGluZXMucHVzaChgQHN0YWJpbGl0eSAke2RvY3Muc3RhYmlsaXR5fWApO1xuICB9XG4gIGlmIChkb2NzLmN1c3RvbSkge1xuICAgIE9iamVjdC5lbnRyaWVzKGRvY3MuY3VzdG9tKS5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgW3RhZywgdmFsdWVdID0gZW50cnk7XG4gICAgICBsaW5lcy5wdXNoKGBAJHt0YWd9ICR7dmFsdWV9YCk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHR5cGVSZWZUb1R5cGUodDogVHlwZVJlZmVyZW5jZSwgY29udGFpbmluZ0Zxbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGlzUHJpbWl0aXZlVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnByaW1pdGl2ZTtcbiAgfVxuXG4gIGlmIChpc05hbWVkVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LmZxbi5zcGxpdCgnLicpLnNsaWNlKDEpLmpvaW4oJy4nKTtcbiAgfVxuXG4gIGlmIChpc0NvbGxlY3Rpb25UeXBlUmVmZXJlbmNlKHQpKSB7XG4gICAgc3dpdGNoICh0LmNvbGxlY3Rpb24ua2luZCkge1xuICAgICAgY2FzZSBDb2xsZWN0aW9uS2luZC5BcnJheTpcbiAgICAgICAgcmV0dXJuIGBBcnJheTwke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgICAgdC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlLFxuICAgICAgICAgIGNvbnRhaW5pbmdGcW4sXG4gICAgICAgICl9PmA7XG4gICAgICBjYXNlIENvbGxlY3Rpb25LaW5kLk1hcDpcbiAgICAgICAgcmV0dXJuIGBSZWNvcmQ8c3RyaW5nLCAke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgICAgdC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlLFxuICAgICAgICAgIGNvbnRhaW5pbmdGcW4sXG4gICAgICAgICl9PmA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2FueSc7XG4gICAgfVxuICB9XG4gIGlmIChpc1VuaW9uVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnVuaW9uLnR5cGVzXG4gICAgICAubWFwKCh1dCkgPT4gdHlwZVJlZlRvVHlwZSh1dCwgY29udGFpbmluZ0ZxbikpXG4gICAgICAuam9pbignIHwgJyk7XG4gIH1cblxuICByZXR1cm4gJ2FueSc7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RJbXBvcnRzKFxuICBzcGVjOiBJbnRlcmZhY2VUeXBlLFxuICBpbXBvcnRMb2NhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4ge1xuICBjb25zdCByZWZzID0gc3BlYy5wcm9wZXJ0aWVzPy5mbGF0TWFwKChwKSA9PiBjb2xsZWN0RlFOcyhwLnR5cGUpKSB8fCBbXTtcbiAgcmV0dXJuIHJlZnMucmVkdWNlKChtb2RzLCByZWYpID0+IHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IGZxblRvSW1wb3J0TmFtZShyZWYsIHNwZWMuZnFuLCBpbXBvcnRMb2NhdGlvbnMpO1xuICAgIGNvbnN0IGltcG9ydHMgPSBtb2RzLmdldChwYWNrYWdlTmFtZSkgfHwgbmV3IFNldCgpO1xuICAgIGNvbnN0IGltcG9ydE5hbWUgPSByZWYuc3BsaXQoJy4nKS5zbGljZSgxKVswXSB8fCByZWY7XG4gICAgcmV0dXJuIG1vZHMuc2V0KHBhY2thZ2VOYW1lLCBpbXBvcnRzLmFkZChpbXBvcnROYW1lKSk7XG4gIH0sIG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKSk7XG59XG5cbmZ1bmN0aW9uIGZxblRvSW1wb3J0TmFtZShcbiAgZnFuOiBzdHJpbmcsXG4gIGltcG9ydGluZ0Zxbjogc3RyaW5nLFxuICBpbXBvcnRMb2NhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBzdHJpbmcge1xuICBjb25zdCBsb2NhbEFzc2VtYmx5ID0gaW1wb3J0aW5nRnFuLnNwbGl0KCcuJywgMSlbMF07XG4gIGNvbnN0IGltcG9ydEFzc2VtYmx5ID0gZnFuLnNwbGl0KCcuJywgMSlbMF07XG5cbiAgLy8gd2UgaGF2ZSBhIGN1c3RvbSBpbXBvcnQgcGF0aFxuICBpZiAoaW1wb3J0TG9jYXRpb25zW2ltcG9ydEFzc2VtYmx5XSkge1xuICAgIHJldHVybiBpbXBvcnRMb2NhdGlvbnNbaW1wb3J0QXNzZW1ibHldO1xuICB9XG5cbiAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhc3NlbWJseSwgdHJ5IHRvIGd1ZXNzIHRoZSBwYXRoIHRvIHRoZSByb290XG4gIGlmIChpbXBvcnRBc3NlbWJseSA9PT0gbG9jYWxBc3NlbWJseSkge1xuICAgIGNvbnN0IGZxblBhcnRzID0gaW1wb3J0aW5nRnFuLnNwbGl0KCcuJykubGVuZ3RoO1xuICAgIGlmIChmcW5QYXJ0cyA8PSAyKSB7XG4gICAgICByZXR1cm4gJy4vJztcbiAgICB9XG4gICAgcmV0dXJuICcuLi8nLnJlcGVhdChmcW5QYXJ0cyAtIDIpO1xuICB9XG5cbiAgLy8gcmVndWxhciB0aGlyZCBwYXJ0eSBtb2R1bGVcbiAgcmV0dXJuIGltcG9ydEFzc2VtYmx5O1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0RlFOcyh0OiBUeXBlUmVmZXJlbmNlKTogc3RyaW5nW10ge1xuICBpZiAoaXNOYW1lZFR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gW3QuZnFuXTtcbiAgfVxuXG4gIGlmIChpc1VuaW9uVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnVuaW9uLnR5cGVzLmZsYXRNYXAoY29sbGVjdEZRTnMpO1xuICB9XG5cbiAgaWYgKGlzQ29sbGVjdGlvblR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gY29sbGVjdEZRTnModC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlKTtcbiAgfVxuXG4gIHJldHVybiBbXTtcbn1cbiJdfQ== |
@@ -68,3 +68,3 @@ { | ||
}, | ||
"version": "0.5.21", | ||
"version": "0.6.0", | ||
"jest": { | ||
@@ -71,0 +71,0 @@ "testMatch": [ |
116748
986