UNPKG

jsii-docgen

Version:

generates api docs for jsii modules

46 lines 18.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CURRENT_SCHEMA_VERSION = void 0; exports.extractDocs = extractDocs; exports.submodulePath = submodulePath; exports.filterUndefined = filterUndefined; exports.CURRENT_SCHEMA_VERSION = '0.1'; function extractDocs(docs) { const links = []; const see = docs.docs.see; // @see if (see && see.length > 0) { links.push(see); } const link = docs.customTag('link'); // @link if (link && link.length > 0) { links.push(link); } return filterUndefined({ // ignore defaults and empty strings to save space summary: docs.summary.length > 0 ? docs.summary : undefined, remarks: docs.remarks.length > 0 ? docs.remarks : undefined, example: docs.example.length > 0 ? docs.example : undefined, links: links.length > 0 ? links : undefined, deprecated: docs.deprecated === true ? true : undefined, deprecationReason: docs.deprecationReason, }); } /** * Generates the name of the submodule. */ function submodulePath(module) { if (!module) return undefined; const path = module.fqn.split('.').splice(1).join('.'); return path.length > 0 ? path : undefined; } function filterUndefined(obj) { const ret = {}; for (const [k, v] of Object.entries(obj)) { if (v !== undefined) { ret[k] = v; } } return ret; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RvY2dlbi9zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaWZBLGtDQW1CQztBQUtELHNDQUlDO0FBRUQsMENBUUM7QUFyaEJZLFFBQUEsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0FBK2U1QyxTQUFnQixXQUFXLENBQUMsSUFBa0I7SUFDNUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTztJQUNsQyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRO0lBQzdDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxlQUFlLENBQUM7UUFDckIsa0RBQWtEO1FBQ2xELE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDM0QsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMzRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzNELEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzNDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ3ZELGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7S0FDMUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLE1BQTBCO0lBQ3RELElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDOUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RCxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFtQixHQUFNO0lBQ3RELE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztJQUNwQixLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcblxuZXhwb3J0IGNvbnN0IENVUlJFTlRfU0NIRU1BX1ZFUlNJT04gPSAnMC4xJztcblxuLyoqXG4gKiBEZXNjcmliZXMgYW55IGtpbmQgb2YgdHlwZS4gVGhpcyBjb3VsZCBiZSBhIHByaW1pdGl2ZSwgYSB1c2VyLWRlZmluZWQgdHlwZVxuICogKGxpa2UgYEJ1Y2tldGApLCBvciBhIGNvbXBvc2l0aW9uIG9mIHR5cGVzIChsaWtlIGBNYXA8c3RyaW5nLCBCdWNrZXQ+W11gKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NoZW1hIHtcbiAgLyoqXG4gICAqIFRoZSBsYW5ndWFnZS1zcGVjaWZpYyBuYW1lIG9mIHRoZSB0eXBlLiBNYXkgY29udGFpbiBcIiVcIiBwbGFjZWhvbGRlclxuICAgKiB2YWx1ZXMgdG8gaW5kaWNhdGUgcmVmZXJlbmNlcyB0byB0eXBlcyBkZWZpbmVkIGluIHRoZSBcInR5cGVzXCIgZmllbGQuXG4gICAqXG4gICAqIEBleGFtcGxlIFwic3RyaW5nXCJcbiAgICogQGV4YW1wbGUgXCIlXCJcbiAgICogQGV4YW1wbGUgXCJ0eXBpbmcuTGlzdFslXVwiXG4gICAqIEBleGFtcGxlIFwiTWFwPCUsICU+XCJcbiAgICovXG4gIHJlYWRvbmx5IGZvcm1hdHRpbmdQYXR0ZXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGVzIHJlZmVyZW5jZWQgd2l0aGluIHRoZSBcIm5hbWVcIiBmaWVsZC4gVGhlIG9yZGVyIG9mIHRoZXNlIGNvcnJlc3BvbmRzXG4gICAqIHRvIHRoZSBvcmRlciBvZiB0aGUgJSdzIGluIGBmb3JtYXR0aW5nUGF0dGVybmAuXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IChUeXBlU2NoZW1hIHwgSnNpaUVudGl0eSlbXTtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBzaW5nbGUgXCJlbnRpdHlcIiBpbiB0aGUganNpaSB0eXBlIHN5c3RlbS4gVGhpcyBtYXkgYmUgYSB0eXBlLFxuICogYnV0IGl0IGNvdWxkIGFsc28gYmUgYSBwcm9wZXJ0eSwgbWV0aG9kLCBwYXJhbWV0ZXIsIGVudW0gbWVtYmVyLCBldGMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNpaUVudGl0eSBleHRlbmRzIEFzc2VtYmx5TWV0YWRhdGFTY2hlbWEge1xuICAvKipcbiAgICogQW4gaWQgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoaXMgdHlwZSBhbW9uZyBhbGwgZW50aXRpZXMgaW4gdGhlXG4gICAqIGRvY3VtZW50IGFuZCBpcyBzYW1lIGFjcm9zcyBsYW5ndWFnZXMuXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJpZW5kbHkgbGFuZ3VhZ2Utc3BlY2lmaWMgbmFtZSBmb3IgdGhlIGVudGl0eS5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsYW5ndWFnZS1zcGVjaWZpYyB0eXBlIEZRTi5cbiAgICovXG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIHByb3BlcnR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5U2NoZW1hIGV4dGVuZHMgVXNhZ2UsIE9wdGlvbmFsLCBEb2N1bWVudGFibGUge1xuICAvKipcbiAgICogQW4gaWQgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoaXMgcHJvcGVydHkgYW1vbmcgYWxsIGVudGl0aWVzIGluXG4gICAqIHRoZSBkb2N1bWVudCBhbmQgaXMgc2FtZSBhY3Jvc3MgbGFuZ3VhZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZyaWVuZGx5IGxhbmd1YWdlLXNwZWNpZmljIG5hbWUgZm9yIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsYW5ndWFnZS1zcGVjaWZpYyBmcW4uXG4gICAqL1xuICByZWFkb25seSBmcW46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogVHlwZVNjaGVtYTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvcGVydHkgaXMgYSBjb25zdGFudC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyU2NoZW1hIGV4dGVuZHMgT3B0aW9uYWwsIERvY3VtZW50YWJsZSB7XG4gIC8qKlxuICAgKiBBbiBpZCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBwYXJhbWV0ZXIgYW1vbmcgYWxsIGVudGl0aWVzIGluXG4gICAqIHRoZSBkb2N1bWVudCBhbmQgaXMgc2FtZSBhY3Jvc3MgbGFuZ3VhZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZyaWVuZGx5IGxhbmd1YWdlLXNwZWNpZmljIG5hbWUgZm9yIHRoZSBwYXJhbWV0ZXIuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFuZ3VhZ2Utc3BlY2lmaWMgZnFuLlxuICAgKi9cbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBUeXBlU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwYXJhbWV0ZXIgaXMgdmFyaWFkaWMuXG4gICAqL1xuICByZWFkb25seSB2YXJpYWRpYzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydGllcyBvZiBhIGNhbGxhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbGxhYmxlU2NoZW1hIGV4dGVuZHMgVXNhZ2Uge1xuICAvKipcbiAgICogQW4gaWQgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2FsbGFibGUgYW1vbmcgYWxsIGVudGl0aWVzIGluXG4gICAqIHRoZSBkb2N1bWVudCBhbmQgaXMgc2FtZSBhY3Jvc3MgbGFuZ3VhZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZyaWVuZGx5IGxhbmd1YWdlLXNwZWNpZmljIG5hbWUgZm9yIHRoZSBjYWxsYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsYW5ndWFnZS1zcGVjaWZpYyBmcW4uXG4gICAqL1xuICByZWFkb25seSBmcW46IHN0cmluZztcblxuICAvKipcbiAgICogUGFyYW1ldGVycyBvZiB0aGUgY2FsbGFibGUuXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJTY2hlbWFbXTtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbml0aWFsaXplclNjaGVtYSBleHRlbmRzIENhbGxhYmxlU2NoZW1hIHt9XG5cbi8qKlxuICogRGVzY3JpYmVzIGEgbWV0aG9kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGhvZFNjaGVtYSBleHRlbmRzIENhbGxhYmxlU2NoZW1hLCBEb2N1bWVudGFibGUge31cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBjbGFzcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGFzc1NjaGVtYSBleHRlbmRzIERvY3VtZW50YWJsZSB7XG4gIC8qKlxuICAgKiBBbiBpZCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcyBhbW9uZyBhbGwgZW50aXRpZXMgaW5cbiAgICogdGhlIGRvY3VtZW50IGFuZCBpcyBzYW1lIGFjcm9zcyBsYW5ndWFnZXMuXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJpZW5kbHkgbGFuZ3VhZ2Utc3BlY2lmaWMgbmFtZSBmb3IgdGhlIGNsYXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlLXNwZWNpZmljIGZxbi5cbiAgICovXG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnRlcmZhY2VzIHRoaXMgY2xhc3MgaW1wbGVtZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGludGVyZmFjZXM6IEpzaWlFbnRpdHlbXTtcblxuICAvKipcbiAgICogQ2xhc3MgaW5pdGlhbGl6ZXIuXG4gICAqL1xuICByZWFkb25seSBpbml0aWFsaXplcj86IEluaXRpYWxpemVyU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBtZXRob2RzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VNZXRob2RzOiBNZXRob2RTY2hlbWFbXTtcblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZHMuXG4gICAqL1xuICByZWFkb25seSBzdGF0aWNNZXRob2RzOiBNZXRob2RTY2hlbWFbXTtcblxuICAvKipcbiAgICogUHJvcGVydGllcy5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnRpZXM6IFByb3BlcnR5U2NoZW1hW107XG5cbiAgLyoqXG4gICAqIENvbnN0YW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0YW50czogUHJvcGVydHlTY2hlbWFbXTtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0U2NoZW1hIGV4dGVuZHMgQ2xhc3NTY2hlbWEge31cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBzdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0U2NoZW1hIGV4dGVuZHMgVXNhZ2UsIERvY3VtZW50YWJsZSB7XG4gIC8qKlxuICAgKiBBbiBpZCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBzdHJ1Y3QgYW1vbmcgYWxsIGVudGl0aWVzIGluXG4gICAqIHRoZSBkb2N1bWVudCBhbmQgaXMgc2FtZSBhY3Jvc3MgbGFuZ3VhZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZyaWVuZGx5IGxhbmd1YWdlLXNwZWNpZmljIG5hbWUgZm9yIHRoZSBzdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFuZ3VhZ2Utc3BlY2lmaWMgZnFuLlxuICAgKi9cbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb3BlcnRpZXMuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBQcm9wZXJ0eVNjaGVtYVtdO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIGJlaGF2aW9yYWwgaW50ZXJmYWNlLCBhbHNvIHNvbWV0aW1lcyBrbm93biBhcyBhIHByb3RvY29sLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVyZmFjZVNjaGVtYSBleHRlbmRzIERvY3VtZW50YWJsZSB7XG4gIC8qKlxuICAgKiBBbiBpZCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBpbnRlcmZhY2UgYW1vbmcgYWxsIGVudGl0aWVzIGluXG4gICAqIHRoZSBkb2N1bWVudCBhbmQgaXMgc2FtZSBhY3Jvc3MgbGFuZ3VhZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZyaWVuZGx5IGxhbmd1YWdlLXNwZWNpZmljIG5hbWUgZm9yIHRoZSBpbnRlcmZhY2UuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFuZ3VhZ2Utc3BlY2lmaWMgZnFuLlxuICAgKi9cbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEludGVyZmFjZXMgdGhhdCB0aGlzIGludGVyZmFjZSBleHRlbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJmYWNlczogSnNpaUVudGl0eVtdO1xuXG4gIC8qKlxuICAgKiBUeXBlcyBpbXBsZW1lbnRpbmcgdGhpcyBpbnRlcmZhY2UuXG4gICAqL1xuICByZWFkb25seSBpbXBsZW1lbnRhdGlvbnM6IEpzaWlFbnRpdHlbXTtcblxuICAvKipcbiAgICogTWV0aG9kcy5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlTWV0aG9kczogTWV0aG9kU2NoZW1hW107XG5cbiAgLyoqXG4gICAqIFByb3BlcnRpZXMuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBQcm9wZXJ0eVNjaGVtYVtdO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhbiBlbnVtIG1lbWJlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnVtTWVtYmVyU2NoZW1hIGV4dGVuZHMgRG9jdW1lbnRhYmxlIHtcbiAgLyoqXG4gICAqIEFuIGlkIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGVudW0gbWVtYmVyIGFtb25nIGFsbCBlbnRpdGllcyBpblxuICAgKiB0aGUgZG9jdW1lbnQgYW5kIGlzIHNhbWUgYWNyb3NzIGxhbmd1YWdlcy5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmcmllbmRseSBsYW5ndWFnZS1zcGVjaWZpYyBuYW1lIGZvciB0aGUgZW51bSBtZW1iZXIuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFuZ3VhZ2Utc3BlY2lmaWMgZnFuLlxuICAgKi9cbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIGFuIGVudW0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW51bVNjaGVtYSBleHRlbmRzIERvY3VtZW50YWJsZSB7XG4gIC8qKlxuICAgKiBBbiBpZCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBlbnVtIGFtb25nIGFsbCBlbnRpdGllcyBpblxuICAgKiB0aGUgZG9jdW1lbnQgYW5kIGlzIHNhbWUgYWNyb3NzIGxhbmd1YWdlcy5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmcmllbmRseSBsYW5ndWFnZS1zcGVjaWZpYyBuYW1lIGZvciB0aGUgZW51bS5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsYW5ndWFnZS1zcGVjaWZpYyBmcW4uXG4gICAqL1xuICByZWFkb25seSBmcW46IHN0cmluZztcblxuICAvKipcbiAgICogRW51bSBtZW1iZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVtYmVyczogRW51bU1lbWJlclNjaGVtYVtdO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgQVBJIFJlZmVyZW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlSZWZlcmVuY2VTY2hlbWEge1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0czogQ29uc3RydWN0U2NoZW1hW107XG5cbiAgLyoqXG4gICAqIENsYXNzZXMuXG4gICAqL1xuICByZWFkb25seSBjbGFzc2VzOiBDbGFzc1NjaGVtYVtdO1xuXG4gIC8qKlxuICAgKiBTdHJ1Y3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RydWN0czogU3RydWN0U2NoZW1hW107XG5cbiAgLyoqXG4gICAqIEludGVyZmFjZXMuXG4gICAqL1xuICByZWFkb25seSBpbnRlcmZhY2VzOiBJbnRlcmZhY2VTY2hlbWFbXTtcblxuICAvKipcbiAgICogRW51bXMuXG4gICAqL1xuICByZWFkb25seSBlbnVtczogRW51bVNjaGVtYVtdO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGFib3V0IGEgcGFydGljdWxhciBqc2lpIGFzc2VtYmx5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5TWV0YWRhdGFTY2hlbWEge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUganNpaSBhc3NlbWJseS9wYWNrYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUganNpaSBhc3NlbWJseS9wYWNrYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogTGFuZ3VhZ2UtaW5kZXBlbmRlbnQgbmFtZSBvZiB0aGUganNpaSBzdWJtb2R1bGUuXG4gICAqIGlmIHVuZGVmaW5lZCwgaXQgaXMgaW1wbGljaXRseSB0aGUgcm9vdCBtb2R1bGUuXG4gICAqXG4gICAqIEBleGFtcGxlIGBhd3Nfc3FzYFxuICAgKi9cbiAgcmVhZG9ubHkgc3VibW9kdWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgdG9wLWxldmVsIHNjaGVtYS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2hlbWEge1xuICAvKipcbiAgICogU2NoZW1hIHZlcnNpb24gbnVtYmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMYW5ndWFnZSB0aGF0IHRoZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIHRyYW5zbGl0ZXJhdGVkIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFuZ3VhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGRvY3VtZW50IHJlcHJlc2VudHMgZG9jdW1lbnRhdGlvbiBmb3IgYWxsIHN1Ym1vZHVsZXNcbiAgICogKGluY2x1ZGluZyB0aGUgcm9vdCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbGxTdWJtb2R1bGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXNzZW1ibHkgbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YTogQXNzZW1ibHlNZXRhZGF0YVNjaGVtYTtcblxuICAvKipcbiAgICogUmVhZG1lLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVhZG1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUEkgUmVmZXJlbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpUmVmZXJlbmNlPzogQXBpUmVmZXJlbmNlU2NoZW1hO1xufVxuXG5cbi8vXG4vLyBTSEFSRUQgSU5URVJGQUNFU1xuLy9cblxuLyoqXG4gKiBBbiBlbnRpdHkgdGhhdCBjYW4gaGF2ZSBhIGRvYyBzdHJpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRhYmxlIHtcbiAgLyoqXG4gICAqIERvYyBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSBkb2NzOiBEb2NzU2NoZW1hO1xufVxuXG4vKipcbiAqIERvY3N0cmluZyBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAc2VlIGpzaWkuRG9jc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY3NTY2hlbWEge1xuICAvKipcbiAgICogU3VtbWFyeSBkb2N1bWVudGF0aW9uIGZvciBhbiBBUEkgaXRlbS5cbiAgICpcbiAgICogVGhlIGZpcnN0IHBhcnQgb2YgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIGhpdHRpbmcgYSBgQHJlbWFya3NgIHRhZ3MsIG9yXG4gICAqIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBkb2MgY29tbWVudCBibG9jayBpZiB0aGVyZSBpcyBubyBgQHJlbWFya3NgIHRhZy5cbiAgICovXG4gIHJlYWRvbmx5IHN1bW1hcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGFuIEFQSSBpdGVtLlxuICAgKlxuICAgKiBFaXRoZXIgdGhlIGV4cGxpY2l0bHkgdGFnZ2VkIGBAcmVtYXJrc2Agc2VjdGlvbiwgb3RoZXJ3aXNlIGV2ZXJ5dGhpbmdcbiAgICogcGFzdCB0aGUgZmlyc3QgcGFyYWdyYXBoIGlmIHRoZXJlIGlzIG5vIGBAcmVtYXJrc2AgdGFnLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtYXJrcz86IHN0cmluZztcblxuICAvKipcbiAgICogYEBzZWVgIGFuZCBgQGxpbmtgIGxpbmtzIHdpdGggbW9yZSBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGxpbmtzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENvZGUgc25pcHBldCBzaG93aW5nIGV4YW1wbGUgdXNhZ2Ugb2YgYW4gQVBJIGl0ZW0sIHRoYXQgaGFzIGJlZW4gcHJvdmlkZWRcbiAgICogYnkgdGhlIGNvbnN0cnVjdCBsaWJyYXJ5IGF1dGhvcnMuXG4gICAqL1xuICByZWFkb25seSBleGFtcGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCBpdCBpcyBkZXByZWNhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwcmVjYXRlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERlcHJlY2F0aW9uIHJlYXNvbiAoaWYgYXBwbGljYWJsZSkuXG4gICAqL1xuICByZWFkb25seSBkZXByZWNhdGlvblJlYXNvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiBlbnRpdHkgdGhhdCBtYXkgaW5jbHVkZSBhIGNvZGUgc25pcHBldCBzaG93aW5nIGhvdyB0byB1c2UgaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNhZ2Uge1xuICAvKipcbiAgICogQ29kZSBzbmlwcGV0LlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHVzYWdlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFuIGVudGl0eSB0aGF0IG1heSBiZSBvcHRpb25hbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbCB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCBpdCBpcyBvcHRpb25hbC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbmFsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdmFsdWUsIGlmIGFwcGxpY2FibGUuXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REb2NzKGRvY3M6IHJlZmxlY3QuRG9jcyk6IERvY3NTY2hlbWEge1xuICBjb25zdCBsaW5rcyA9IFtdO1xuICBjb25zdCBzZWUgPSBkb2NzLmRvY3Muc2VlOyAvLyBAc2VlXG4gIGlmIChzZWUgJiYgc2VlLmxlbmd0aCA+IDApIHtcbiAgICBsaW5rcy5wdXNoKHNlZSk7XG4gIH1cbiAgY29uc3QgbGluayA9IGRvY3MuY3VzdG9tVGFnKCdsaW5rJyk7IC8vIEBsaW5rXG4gIGlmIChsaW5rICYmIGxpbmsubGVuZ3RoID4gMCkge1xuICAgIGxpbmtzLnB1c2gobGluayk7XG4gIH1cbiAgcmV0dXJuIGZpbHRlclVuZGVmaW5lZCh7XG4gICAgLy8gaWdub3JlIGRlZmF1bHRzIGFuZCBlbXB0eSBzdHJpbmdzIHRvIHNhdmUgc3BhY2VcbiAgICBzdW1tYXJ5OiBkb2NzLnN1bW1hcnkubGVuZ3RoID4gMCA/IGRvY3Muc3VtbWFyeSA6IHVuZGVmaW5lZCxcbiAgICByZW1hcmtzOiBkb2NzLnJlbWFya3MubGVuZ3RoID4gMCA/IGRvY3MucmVtYXJrcyA6IHVuZGVmaW5lZCxcbiAgICBleGFtcGxlOiBkb2NzLmV4YW1wbGUubGVuZ3RoID4gMCA/IGRvY3MuZXhhbXBsZSA6IHVuZGVmaW5lZCxcbiAgICBsaW5rczogbGlua3MubGVuZ3RoID4gMCA/IGxpbmtzIDogdW5kZWZpbmVkLFxuICAgIGRlcHJlY2F0ZWQ6IGRvY3MuZGVwcmVjYXRlZCA9PT0gdHJ1ZSA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgZGVwcmVjYXRpb25SZWFzb246IGRvY3MuZGVwcmVjYXRpb25SZWFzb24sXG4gIH0pO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgbmFtZSBvZiB0aGUgc3VibW9kdWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3VibW9kdWxlUGF0aChtb2R1bGU/OiByZWZsZWN0LlN1Ym1vZHVsZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghbW9kdWxlKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBwYXRoID0gbW9kdWxlLmZxbi5zcGxpdCgnLicpLnNwbGljZSgxKS5qb2luKCcuJyk7XG4gIHJldHVybiBwYXRoLmxlbmd0aCA+IDAgPyBwYXRoIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVW5kZWZpbmVkPFQgZXh0ZW5kcyBvYmplY3Q+KG9iajogVCk6IFQge1xuICBjb25zdCByZXQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgaWYgKHYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0W2tdID0gdjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==