@mnemonica/tactica 0.1.15 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +165 -5
- package/lib/analyzer.d.ts +59 -2
- package/lib/analyzer.js +346 -21
- package/lib/cli.d.ts +4 -1
- package/lib/cli.js +222 -7
- package/lib/creation-graph.d.ts +131 -0
- package/lib/creation-graph.js +568 -0
- package/lib/index.d.ts +8 -2
- package/lib/index.js +11 -3
- package/lib/module-graph.d.ts +109 -0
- package/lib/module-graph.js +690 -0
- package/lib/plugins.d.ts +44 -0
- package/lib/plugins.js +27 -0
- package/lib/scopes.d.ts +113 -0
- package/lib/scopes.js +582 -0
- package/lib/topologica-analyzer.js +13 -10
- package/lib/types.d.ts +320 -0
- package/lib/types.js +1 -1
- package/lib/writer.d.ts +14 -1
- package/lib/writer.js +61 -1
- package/package.json +7 -5
package/lib/types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFR5cGUgZGVmaW5pdGlvbnMgZm9yIFRhY3RpY2FcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhY3RpY2FDb25maWcge1xuXHQvKiogT3V0cHV0IGRpcmVjdG9yeSBmb3IgZ2VuZXJhdGVkIHR5cGVzIChkZWZhdWx0OiAudGFjdGljYSkgKi9cblx0b3V0cHV0RGlyPzogc3RyaW5nO1xuXHQvKiogRmlsZXMgdG8gaW5jbHVkZSAoZ2xvYiBwYXR0ZXJucykgKi9cblx0aW5jbHVkZT86IHN0cmluZ1tdO1xuXHQvKiogRmlsZXMgdG8gZXhjbHVkZSAoZ2xvYiBwYXR0ZXJucykgKi9cblx0ZXhjbHVkZT86IHN0cmluZ1tdO1xuXHQvKiogRW5hYmxlIHZlcmJvc2UgbG9nZ2luZyAqL1xuXHR2ZXJib3NlPzogYm9vbGVhbjtcblx0LyoqIEdlbmVyYXRlIGdsb2JhbCBhdWdtZW50YXRpb24gaW5zdGVhZCBvZiBtb2R1bGUgYXVnbWVudGF0aW9uIChkZWZhdWx0OiB0cnVlKSAqL1xuXHRnbG9iYWxBdWdtZW50YXRpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5SW5mbyB7XG5cdG5hbWU6IHN0cmluZztcblx0dHlwZTogc3RyaW5nO1xuXHRvcHRpb25hbDogYm9vbGVhbjtcblx0LyoqIFRydWUgaWYgdGhpcyBpcyBhIGdldHRlciBwcm9wZXJ0eSAocmVhZG9ubHkpICovXG5cdHJlYWRvbmx5PzogYm9vbGVhbjtcbn1cblxuLyoqIENvbnN0cnVjdG9yIHBhcmFtZXRlciBpbmZvIGZvciBUeXBlUmVnaXN0cnkgc2lnbmF0dXJlcyAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RvclBhcmFtSW5mbyB7XG5cdC8qKiBQYXJhbWV0ZXIgbmFtZSAoZS5nLiwgXCJ1c2FnZXNcIiwgXCJkYXRhXCIsIFwiY29uZmlnXCIpICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqIFRoZSB0eXBlIHN0cmluZyAtIGNhbiBiZSBhIHNpbXBsZSB0eXBlIG9yIGV4cGFuZGVkIG9iamVjdCBsaXRlcmFsICovXG5cdHR5cGU6IHN0cmluZztcblx0b3B0aW9uYWw6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZU5vZGUge1xuXHQvKiogVHlwZSBuYW1lIChlLmcuLCBcIlNlY29uZFR5cGVcIikgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKiogRnVsbCBwYXRoIChlLmcuLCBcIkZpcnN0VHlwZS5TZWNvbmRUeXBlXCIpICovXG5cdGZ1bGxQYXRoOiBzdHJpbmc7XG5cdC8qKiBQcm9wZXJ0aWVzIGRlZmluZWQgaW4gdGhpcyB0eXBlJ3MgY29uc3RydWN0b3IgKi9cblx0cHJvcGVydGllczogTWFwPHN0cmluZywgUHJvcGVydHlJbmZvPjtcblx0LyoqIENvbnN0cnVjdG9yIHBhcmFtZXRlcnMgKGZvciBUeXBlUmVnaXN0cnkgY29uc3RydWN0b3Igc2lnbmF0dXJlKSAqL1xuXHRjb25zdHJ1Y3RvclBhcmFtcz86IENvbnN0cnVjdG9yUGFyYW1JbmZvW107XG5cdC8qKiBQYXJlbnQgdHlwZSBub2RlICovXG5cdHBhcmVudD86IFR5cGVOb2RlO1xuXHQvKiogQ2hpbGQgdHlwZXMgKi9cblx0Y2hpbGRyZW46IE1hcDxzdHJpbmcsIFR5cGVOb2RlPjtcblx0LyoqIFNvdXJjZSBmaWxlIHBhdGggKi9cblx0c291cmNlRmlsZTogc3RyaW5nO1xuXHQvKiogTGluZSBudW1iZXIgaW4gc291cmNlICovXG5cdGxpbmU6IG51bWJlcjtcblx0LyoqIENvbHVtbiBudW1iZXIgaW4gc291cmNlICovXG5cdGNvbHVtbjogbnVtYmVyO1xuXHQvKiogQ29uc3RydWN0b3IgZnVuY3Rpb24gbmFtZSBvciBjbGFzcyBuYW1lICovXG5cdGNvbnN0cnVjdG9yTmFtZT86IHN0cmluZztcblx0LyoqIENvbGxlY3Rpb24gaWRlbnRpZmllciBpZiB0aGUgdHlwZSBiZWxvbmdzIHRvIGEgY3VzdG9tIGNvbGxlY3Rpb24gKHVuZGVmaW5lZCA9IGRlZmF1bHQvZ2xvYmFsIHJlZ2lzdHJ5KSAqL1xuXHRjb2xsZWN0aW9uSWQ/OiBzdHJpbmc7XG5cdC8qKiBSZWdpc3RyeSBpbnRlcmZhY2UgbmFtZSBmb3IgY3VzdG9tIGNvbGxlY3Rpb25zIHVzaW5nIE9wdGlvbiBCICh1c2VyLXByb3ZpZGVkIHJlZ2lzdHJ5IGludGVyZmFjZSkgKi9cblx0cmVnaXN0cnlJbnRlcmZhY2VOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVHcmFwaCB7XG5cdC8qKiBSb290IHR5cGVzLCBrZXllZCBieSBmdWxsIHBhdGggKGN1c3RvbS1jb2xsZWN0aW9uIHJvb3RzIGNhcnJ5IHRoZSBgY29sbGVjdGlvbklkOjpgIHByZWZpeCkgKi9cblx0cm9vdHM6IE1hcDxzdHJpbmcsIFR5cGVOb2RlPjtcblx0LyoqIEFsbCB0eXBlcyBieSBmdWxsIHBhdGggKi9cblx0YWxsVHlwZXM6IE1hcDxzdHJpbmcsIFR5cGVOb2RlPjtcblx0LyoqIEFkZCBhIHJvb3QgdHlwZSAqL1xuXHRhZGRSb290KG5vZGU6IFR5cGVOb2RlKTogdm9pZDtcblx0LyoqIEZpbmQgYSB0eXBlIGJ5IGZ1bGwgcGF0aCAqL1xuXHRmaW5kVHlwZShmdWxsUGF0aDogc3RyaW5nKTogVHlwZU5vZGUgfCB1bmRlZmluZWQ7XG5cdC8qKiBHZXQgYWxsIHR5cGVzIGFzIGFycmF5ICovXG5cdGdldEFsbFR5cGVzKCk6IFR5cGVOb2RlW107XG5cdC8qKiBDbGVhciB0aGUgZ3JhcGggKi9cblx0Y2xlYXIoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbmFseXplUmVzdWx0IHtcblx0LyoqIFR5cGVzIGZvdW5kIGluIHRoZSBhbmFseXNpcyAqL1xuXHR0eXBlczogVHlwZU5vZGVbXTtcblx0LyoqIEVycm9ycyBlbmNvdW50ZXJlZCAqL1xuXHRlcnJvcnM6IEFuYWx5emVFcnJvcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFuYWx5emVFcnJvciB7XG5cdG1lc3NhZ2U6IHN0cmluZztcblx0ZmlsZTogc3RyaW5nO1xuXHRsaW5lOiBudW1iZXI7XG5cdGNvbHVtbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlZFR5cGVzIHtcblx0LyoqIENvbnRlbnQgb2YgdGhlIC5kLnRzIGZpbGUgKi9cblx0Y29udGVudDogc3RyaW5nO1xuXHQvKiogVHlwZXMgdGhhdCB3ZXJlIGdlbmVyYXRlZCAqL1xuXHR0eXBlczogc3RyaW5nW107XG59XG5cbi8qKlxuICogRGVmaW5pdGlvbiBpbmZvIGZvciBjb2RlIG5hdmlnYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZpbml0aW9uSW5mbyB7XG5cdC8qKiBUeXBlIG5hbWUgKGUuZy4sIFwiQWRtaW5UeXBlXCIpICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqIExvY2F0aW9uIGluIHNvdXJjZTogZmlsZS50czpMaW5lOkNvbCAqL1xuXHRsb2NhdGlvbjogc3RyaW5nO1xuXHQvKiogSG93IHR5cGUgd2FzIGNyZWF0ZWQ6ICdkZWZpbmUnIG9yICdkZWNvcmF0ZScgKi9cblx0a2luZDogJ2RlZmluZScgfCAnZGVjb3JhdGUnO1xuXHQvKiogUGFyZW50IHR5cGUgZnVsbCBwYXRoLCBudWxsIGlmIHJvb3QgKi9cblx0cGFyZW50OiBzdHJpbmcgfCBudWxsO1xuXHQvKiogc3RyaWN0Q2hhaW4gY29uZmlnIG9wdGlvbiAqL1xuXHRzdHJpY3RDaGFpbjogYm9vbGVhbjtcblx0LyoqIGJsb2NrRXJyb3JzIGNvbmZpZyBvcHRpb24gKi9cblx0YmxvY2tFcnJvcnM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXNhZ2UgaW5mbyBmb3IgY29kZSBuYXZpZ2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNhZ2VJbmZvIHtcblx0LyoqIExvY2F0aW9uIGluIHNvdXJjZTogZmlsZS50czpMaW5lOkNvbCAqL1xuXHRsb2NhdGlvbjogc3RyaW5nO1xuXHQvKiogS2luZCBvZiB1c2FnZTogaW5zdGFudGlhdGlvbiwgdHlwZUFubm90YXRpb24sIHByb3BlcnR5QWNjZXNzLCBsb29rdXAsIHJlZmVyZW5jZSAqL1xuXHRraW5kOiAnaW5zdGFudGlhdGlvbicgfCAndHlwZUFubm90YXRpb24nIHwgJ3Byb3BlcnR5QWNjZXNzJyB8ICdsb29rdXAnIHwgJ3JlZmVyZW5jZSc7XG5cdC8qKiBDb2RlIHNuaXBwZXQgKi9cblx0Y29kZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEpTT04gb3V0cHV0IGZvciBkZWZpbml0aW9ucy5qc29uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmaW5pdGlvbnNKc29uIHtcblx0dmVyc2lvbjogc3RyaW5nO1xuXHRnZW5lcmF0ZWRBdDogc3RyaW5nO1xuXHRkZWZpbml0aW9uczogUmVjb3JkPHN0cmluZywgRGVmaW5pdGlvbkluZm8+O1xufVxuXG4vKipcbiAqIEpTT04gb3V0cHV0IGZvciB1c2FnZXMuanNvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzYWdlc0pzb24ge1xuXHR2ZXJzaW9uOiBzdHJpbmc7XG5cdGdlbmVyYXRlZEF0OiBzdHJpbmc7XG5cdHVzYWdlczogUmVjb3JkPHN0cmluZywgVXNhZ2VJbmZvW10+O1xufVxuXG4vKipcbiAqIEVEUyAoRXhlY3V0aW9uIERhdGEgU3RvcmFnZSkga2luZCBmb3IgdHJhY2tpbmcgZXhlY3V0aW9uIGZsb3cgcGF0dGVybnNcbiAqL1xuZXhwb3J0IHR5cGUgRURTS2luZCA9XG5cdHwgJ3dyYXAnXG5cdHwgJ2NvbnRleHRDb25zdW1lJ1xuXHR8ICdob29rQXR0YWNoJztcblxuLyoqXG4gKiBFRFMgaW5mbyBmb3IgZXhlY3V0aW9uIGRhdGEgZmxvdyB0cmFja2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVEU0luZm8ge1xuXHQvKiogTG9jYXRpb24gaW4gc291cmNlOiBmaWxlLnRzOkxpbmU6Q29sICovXG5cdGxvY2F0aW9uOiBzdHJpbmc7XG5cdC8qKiBLaW5kIG9mIEVEUyB1c2FnZSAqL1xuXHRraW5kOiBFRFNLaW5kO1xuXHQvKiogQ29kZSBzbmlwcGV0ICovXG5cdGNvZGU6IHN0cmluZztcblx0LyoqIFJlc29sdmVkIHRhcmdldCB0eXBlIGlmIGRldGVjdGFibGUgKi9cblx0dGFyZ2V0VHlwZT86IHN0cmluZztcblx0LyoqIEVuY2xvc2luZyBtbmVtb25pY2EgdHlwZSBwYXRoIChkZWZpbmUvbGF6eSBoYW5kbGVyIG9yIGRlY29yYXRlZCBjbGFzcykgKi9cblx0c2NvcGU/OiBzdHJpbmc7XG5cdC8qKiBMb2NhdGlvbiBvZiB0aGUgZW5jbG9zaW5nIHdyYXAgc2l0ZSB3aG9zZSBydW50aW1lIHdyYXBwaW5nIGNhdXNlZCB0aGlzIGVudHJ5ICovXG5cdHZpYT86IHN0cmluZztcblx0LyoqIE1uZW1vbmljYSB0eXBlIGZ1bGxQYXRocyBpbnN0YW50aWF0ZWQgaW5zaWRlIHRoZSB3cmFwcGVkIGJvZHkg4oCUIGd1YXJhbnRlZWQgcGF0aCBoaXRzICovXG5cdGNyZWF0ZXNUeXBlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEpTT04gb3V0cHV0IGZvciBlZHMuanNvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVEU0pzb24ge1xuXHR2ZXJzaW9uOiBzdHJpbmc7XG5cdGdlbmVyYXRlZEF0OiBzdHJpbmc7XG5cdGVkczogUmVjb3JkPHN0cmluZywgRURTSW5mb1tdPjtcbn1cblxuLyoqXG4gKiBGbG93IGtpbmQgZm9yIHRyYWNraW5nIG5hdGl2ZSBpbnN0YW5jZSB1c2FnZSBwYXR0ZXJuc1xuICovXG5leHBvcnQgdHlwZSBGbG93S2luZCA9XG5cdHwgJ3Byb3BlcnR5UmVhZCdcblx0fCAncHJvcGVydHlXcml0ZSdcblx0fCAnbWV0aG9kQ2FsbCdcblx0fCAnZGVzdHJ1Y3R1cmVSZWFkJ1xuXHR8ICdwYXNzQXNBcmcnXG5cdHwgJ3JldHVybidcblx0fCAnc3ByZWFkJ1xuXHR8ICdhcnJheUVsZW1lbnQnXG5cdHwgJ2NvbmRpdGlvbmFsQWNjZXNzJ1xuXHR8ICdlbGVtZW50QWNjZXNzJ1xuXHR8ICdyZWFzc2lnbm1lbnQnXG5cdHwgJ2luc3RhbnRpYXRpb24nO1xuXG4vKipcbiAqIEZsb3cgaW5mbyBmb3IgbmF0aXZlIGluc3RhbmNlIHVzYWdlIHRyYWNraW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0luZm8ge1xuXHQvKiogTG9jYXRpb24gaW4gc291cmNlOiBmaWxlLnRzOkxpbmU6Q29sICovXG5cdGxvY2F0aW9uOiBzdHJpbmc7XG5cdC8qKiBLaW5kIG9mIGZsb3cgKi9cblx0a2luZDogRmxvd0tpbmQ7XG5cdC8qKiBDb2RlIHNuaXBwZXQgKi9cblx0Y29kZTogc3RyaW5nO1xuXHQvKiogUHJvcGVydHkgbmFtZSBpZiBhcHBsaWNhYmxlICovXG5cdHByb3BlcnR5TmFtZT86IHN0cmluZztcblx0LyoqIFJlc29sdmVkIHRhcmdldCB0eXBlIGlmIGtub3duICovXG5cdHRhcmdldFR5cGU/OiBzdHJpbmc7XG5cdC8qKiBDb250ZXh0IChmdW5jdGlvbiBuYW1lLCBwYXJhbSBwb3NpdGlvbiwgZXRjLikgKi9cblx0Y29udGV4dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBKU09OIG91dHB1dCBmb3IgZmxvdy5qc29uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0pzb24ge1xuXHR2ZXJzaW9uOiBzdHJpbmc7XG5cdGdlbmVyYXRlZEF0OiBzdHJpbmc7XG5cdGZsb3c6IFJlY29yZDxzdHJpbmcsIEZsb3dJbmZvW10+O1xufVxuXG4vKipcbiAqIEpTT04gb3V0cHV0IGZvciBoaWVyYXJjaHkuanNvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhpZXJhcmNoeUpzb24ge1xuXHR2ZXJzaW9uOiBzdHJpbmc7XG5cdGdlbmVyYXRlZEF0OiBzdHJpbmc7XG5cdHJvb3RzOiBIaWVyYXJjaHlOb2RlW107XG59XG5cbi8qKlxuICogU3RydWN0dXJlZCBoaWVyYXJjaHkgbm9kZSBmb3IgbWFjaGluZSBjb25zdW1wdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIaWVyYXJjaHlOb2RlIHtcblx0LyoqIFR5cGUgbmFtZSAoZS5nLiwgXCJBZG1pblR5cGVcIikgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKiogRnVsbCBkb3R0ZWQgcGF0aCAoZS5nLiwgXCJVc2VyVHlwZS5BZG1pblR5cGVcIikgKi9cblx0ZnVsbFBhdGg6IHN0cmluZztcblx0LyoqIExvY2F0aW9uIGluIHNvdXJjZTogZmlsZS50czpMaW5lOkNvbCAqL1xuXHRsb2NhdGlvbjogc3RyaW5nO1xuXHQvKiogQ2hpbGQgdHlwZXMgaW4gdGhlIFRyaWUgKi9cblx0Y2hpbGRyZW46IEhpZXJhcmNoeU5vZGVbXTtcbn1cbiJdfQ==
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFR5cGUgZGVmaW5pdGlvbnMgZm9yIFRhY3RpY2FcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhY3RpY2FDb25maWcge1xuXHQvKiogT3V0cHV0IGRpcmVjdG9yeSBmb3IgZ2VuZXJhdGVkIHR5cGVzIChkZWZhdWx0OiAudGFjdGljYSkgKi9cblx0b3V0cHV0RGlyPzogc3RyaW5nO1xuXHQvKiogRmlsZXMgdG8gaW5jbHVkZSAoZ2xvYiBwYXR0ZXJucykgKi9cblx0aW5jbHVkZT86IHN0cmluZ1tdO1xuXHQvKiogRmlsZXMgdG8gZXhjbHVkZSAoZ2xvYiBwYXR0ZXJucykgKi9cblx0ZXhjbHVkZT86IHN0cmluZ1tdO1xuXHQvKiogRW5hYmxlIHZlcmJvc2UgbG9nZ2luZyAqL1xuXHR2ZXJib3NlPzogYm9vbGVhbjtcblx0LyoqIEdlbmVyYXRlIGdsb2JhbCBhdWdtZW50YXRpb24gaW5zdGVhZCBvZiBtb2R1bGUgYXVnbWVudGF0aW9uIChkZWZhdWx0OiB0cnVlKSAqL1xuXHRnbG9iYWxBdWdtZW50YXRpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5SW5mbyB7XG5cdG5hbWU6IHN0cmluZztcblx0dHlwZTogc3RyaW5nO1xuXHRvcHRpb25hbDogYm9vbGVhbjtcblx0LyoqIFRydWUgaWYgdGhpcyBpcyBhIGdldHRlciBwcm9wZXJ0eSAocmVhZG9ubHkpICovXG5cdHJlYWRvbmx5PzogYm9vbGVhbjtcbn1cblxuLyoqIENvbnN0cnVjdG9yIHBhcmFtZXRlciBpbmZvIGZvciBUeXBlUmVnaXN0cnkgc2lnbmF0dXJlcyAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RvclBhcmFtSW5mbyB7XG5cdC8qKiBQYXJhbWV0ZXIgbmFtZSAoZS5nLiwgXCJ1c2FnZXNcIiwgXCJkYXRhXCIsIFwiY29uZmlnXCIpICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqIFRoZSB0eXBlIHN0cmluZyAtIGNhbiBiZSBhIHNpbXBsZSB0eXBlIG9yIGV4cGFuZGVkIG9iamVjdCBsaXRlcmFsICovXG5cdHR5cGU6IHN0cmluZztcblx0b3B0aW9uYWw6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZU5vZGUge1xuXHQvKiogVHlwZSBuYW1lIChlLmcuLCBcIlNlY29uZFR5cGVcIikgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKiogRnVsbCBwYXRoIChlLmcuLCBcIkZpcnN0VHlwZS5TZWNvbmRUeXBlXCIpICovXG5cdGZ1bGxQYXRoOiBzdHJpbmc7XG5cdC8qKiBQcm9wZXJ0aWVzIGRlZmluZWQgaW4gdGhpcyB0eXBlJ3MgY29uc3RydWN0b3IgKi9cblx0cHJvcGVydGllczogTWFwPHN0cmluZywgUHJvcGVydHlJbmZvPjtcblx0LyoqIENvbnN0cnVjdG9yIHBhcmFtZXRlcnMgKGZvciBUeXBlUmVnaXN0cnkgY29uc3RydWN0b3Igc2lnbmF0dXJlKSAqL1xuXHRjb25zdHJ1Y3RvclBhcmFtcz86IENvbnN0cnVjdG9yUGFyYW1JbmZvW107XG5cdC8qKiBQYXJlbnQgdHlwZSBub2RlICovXG5cdHBhcmVudD86IFR5cGVOb2RlO1xuXHQvKiogQ2hpbGQgdHlwZXMgKi9cblx0Y2hpbGRyZW46IE1hcDxzdHJpbmcsIFR5cGVOb2RlPjtcblx0LyoqIFNvdXJjZSBmaWxlIHBhdGggKi9cblx0c291cmNlRmlsZTogc3RyaW5nO1xuXHQvKiogTGluZSBudW1iZXIgaW4gc291cmNlICovXG5cdGxpbmU6IG51bWJlcjtcblx0LyoqIENvbHVtbiBudW1iZXIgaW4gc291cmNlICovXG5cdGNvbHVtbjogbnVtYmVyO1xuXHQvKiogQ29uc3RydWN0b3IgZnVuY3Rpb24gbmFtZSBvciBjbGFzcyBuYW1lICovXG5cdGNvbnN0cnVjdG9yTmFtZT86IHN0cmluZztcblx0LyoqIENvbGxlY3Rpb24gaWRlbnRpZmllciBpZiB0aGUgdHlwZSBiZWxvbmdzIHRvIGEgY3VzdG9tIGNvbGxlY3Rpb24gKHVuZGVmaW5lZCA9IGRlZmF1bHQvZ2xvYmFsIHJlZ2lzdHJ5KSAqL1xuXHRjb2xsZWN0aW9uSWQ/OiBzdHJpbmc7XG5cdC8qKiBSZWdpc3RyeSBpbnRlcmZhY2UgbmFtZSBmb3IgY3VzdG9tIGNvbGxlY3Rpb25zIHVzaW5nIE9wdGlvbiBCICh1c2VyLXByb3ZpZGVkIHJlZ2lzdHJ5IGludGVyZmFjZSkgKi9cblx0cmVnaXN0cnlJbnRlcmZhY2VOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVHcmFwaCB7XG5cdC8qKiBSb290IHR5cGVzLCBrZXllZCBieSBmdWxsIHBhdGggKGN1c3RvbS1jb2xsZWN0aW9uIHJvb3RzIGNhcnJ5IHRoZSBgY29sbGVjdGlvbklkOjpgIHByZWZpeCkgKi9cblx0cm9vdHM6IE1hcDxzdHJpbmcsIFR5cGVOb2RlPjtcblx0LyoqIEFsbCB0eXBlcyBieSBmdWxsIHBhdGggKi9cblx0YWxsVHlwZXM6IE1hcDxzdHJpbmcsIFR5cGVOb2RlPjtcblx0LyoqIEFkZCBhIHJvb3QgdHlwZSAqL1xuXHRhZGRSb290KG5vZGU6IFR5cGVOb2RlKTogdm9pZDtcblx0LyoqIEZpbmQgYSB0eXBlIGJ5IGZ1bGwgcGF0aCAqL1xuXHRmaW5kVHlwZShmdWxsUGF0aDogc3RyaW5nKTogVHlwZU5vZGUgfCB1bmRlZmluZWQ7XG5cdC8qKiBHZXQgYWxsIHR5cGVzIGFzIGFycmF5ICovXG5cdGdldEFsbFR5cGVzKCk6IFR5cGVOb2RlW107XG5cdC8qKiBDbGVhciB0aGUgZ3JhcGggKi9cblx0Y2xlYXIoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbmFseXplUmVzdWx0IHtcblx0LyoqIFR5cGVzIGZvdW5kIGluIHRoZSBhbmFseXNpcyAqL1xuXHR0eXBlczogVHlwZU5vZGVbXTtcblx0LyoqIEVycm9ycyBlbmNvdW50ZXJlZCAqL1xuXHRlcnJvcnM6IEFuYWx5emVFcnJvcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFuYWx5emVFcnJvciB7XG5cdG1lc3NhZ2U6IHN0cmluZztcblx0ZmlsZTogc3RyaW5nO1xuXHRsaW5lOiBudW1iZXI7XG5cdGNvbHVtbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlZFR5cGVzIHtcblx0LyoqIENvbnRlbnQgb2YgdGhlIC5kLnRzIGZpbGUgKi9cblx0Y29udGVudDogc3RyaW5nO1xuXHQvKiogVHlwZXMgdGhhdCB3ZXJlIGdlbmVyYXRlZCAqL1xuXHR0eXBlczogc3RyaW5nW107XG59XG5cbi8qKlxuICogRGVmaW5pdGlvbiBpbmZvIGZvciBjb2RlIG5hdmlnYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZpbml0aW9uSW5mbyB7XG5cdC8qKiBUeXBlIG5hbWUgKGUuZy4sIFwiQWRtaW5UeXBlXCIpICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqIExvY2F0aW9uIGluIHNvdXJjZTogZmlsZS50czpMaW5lOkNvbCAqL1xuXHRsb2NhdGlvbjogc3RyaW5nO1xuXHQvKiogSG93IHR5cGUgd2FzIGNyZWF0ZWQ6ICdkZWZpbmUnIG9yICdkZWNvcmF0ZScgKi9cblx0a2luZDogJ2RlZmluZScgfCAnZGVjb3JhdGUnO1xuXHQvKiogUGFyZW50IHR5cGUgZnVsbCBwYXRoLCBudWxsIGlmIHJvb3QgKi9cblx0cGFyZW50OiBzdHJpbmcgfCBudWxsO1xuXHQvKiogc3RyaWN0Q2hhaW4gY29uZmlnIG9wdGlvbiAqL1xuXHRzdHJpY3RDaGFpbjogYm9vbGVhbjtcblx0LyoqIGJsb2NrRXJyb3JzIGNvbmZpZyBvcHRpb24gKi9cblx0YmxvY2tFcnJvcnM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXNhZ2UgaW5mbyBmb3IgY29kZSBuYXZpZ2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNhZ2VJbmZvIHtcblx0LyoqIExvY2F0aW9uIGluIHNvdXJjZTogZmlsZS50czpMaW5lOkNvbCAqL1xuXHRsb2NhdGlvbjogc3RyaW5nO1xuXHQvKiogS2luZCBvZiB1c2FnZTogaW5zdGFudGlhdGlvbiwgdHlwZUFubm90YXRpb24sIHByb3BlcnR5QWNjZXNzLCBsb29rdXAsIHJlZmVyZW5jZSAqL1xuXHRraW5kOiAnaW5zdGFudGlhdGlvbicgfCAndHlwZUFubm90YXRpb24nIHwgJ3Byb3BlcnR5QWNjZXNzJyB8ICdsb29rdXAnIHwgJ3JlZmVyZW5jZSc7XG5cdC8qKiBDb2RlIHNuaXBwZXQgKi9cblx0Y29kZTogc3RyaW5nO1xuXHQvKipcblx0ICogU2NvcGUgaG9sZGluZyB0aGlzIHVzYWdlIChMb2NhbFNjb3BlV2Fsa2VyIHNjb3BlSWQ6IG1vZHVsZSBzY29wZSBpcyB0aGVcblx0ICogZmlsZSBwYXRoLCBmdW5jdGlvbiBzY29wZXMgYXJlIGZpbGU6bGluZTpjb2wpLiBBZGRpdGl2ZTsgYWJzZW50IHdoZW4gdGhlXG5cdCAqIHVzYWdlIHNpdHMgb3V0c2lkZSB0cmFja2VkIGZpbGVzLlxuXHQgKi9cblx0aG9sZGVyU2NvcGVJZD86IHN0cmluZztcblx0LyoqXG5cdCAqIENvbnN0cnVjdG9yIGV4cHJlc3Npb24gdGV4dCBhdCBhbiBpbnN0YW50aWF0aW9uIHNpdGUgKCdUaGluZycsXG5cdCAqICd1c2VyLkFkbWluRW50aXR5JywgJ1QyJyBmb3IgYSBsb29rdXAgYWxpYXMpLiBBZGRpdGl2ZTsgc2V0IG9ubHkgb25cblx0ICoga2luZCAnaW5zdGFudGlhdGlvbicuIEZlZWRzIENyZWF0aW9uQW5jaG9yLmNvbnN0cnVjdG9yVGV4dCAoUGhhc2UgMykuXG5cdCAqL1xuXHRjb25zdHJ1Y3RvclRleHQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSlNPTiBvdXRwdXQgZm9yIGRlZmluaXRpb25zLmpzb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZpbml0aW9uc0pzb24ge1xuXHR2ZXJzaW9uOiBzdHJpbmc7XG5cdGdlbmVyYXRlZEF0OiBzdHJpbmc7XG5cdGRlZmluaXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBEZWZpbml0aW9uSW5mbz47XG59XG5cbi8qKlxuICogSlNPTiBvdXRwdXQgZm9yIHVzYWdlcy5qc29uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNhZ2VzSnNvbiB7XG5cdHZlcnNpb246IHN0cmluZztcblx0Z2VuZXJhdGVkQXQ6IHN0cmluZztcblx0dXNhZ2VzOiBSZWNvcmQ8c3RyaW5nLCBVc2FnZUluZm9bXT47XG59XG5cbi8qKlxuICogRURTIChFeGVjdXRpb24gRGF0YSBTdG9yYWdlKSBraW5kIGZvciB0cmFja2luZyBleGVjdXRpb24gZmxvdyBwYXR0ZXJuc1xuICovXG5leHBvcnQgdHlwZSBFRFNLaW5kID1cblx0fCAnd3JhcCdcblx0fCAnY29udGV4dENvbnN1bWUnXG5cdHwgJ2hvb2tBdHRhY2gnO1xuXG4vKipcbiAqIEVEUyBpbmZvIGZvciBleGVjdXRpb24gZGF0YSBmbG93IHRyYWNraW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRURTSW5mbyB7XG5cdC8qKiBMb2NhdGlvbiBpbiBzb3VyY2U6IGZpbGUudHM6TGluZTpDb2wgKi9cblx0bG9jYXRpb246IHN0cmluZztcblx0LyoqIEtpbmQgb2YgRURTIHVzYWdlICovXG5cdGtpbmQ6IEVEU0tpbmQ7XG5cdC8qKiBDb2RlIHNuaXBwZXQgKi9cblx0Y29kZTogc3RyaW5nO1xuXHQvKiogUmVzb2x2ZWQgdGFyZ2V0IHR5cGUgaWYgZGV0ZWN0YWJsZSAqL1xuXHR0YXJnZXRUeXBlPzogc3RyaW5nO1xuXHQvKiogRW5jbG9zaW5nIG1uZW1vbmljYSB0eXBlIHBhdGggKGRlZmluZS9sYXp5IGhhbmRsZXIgb3IgZGVjb3JhdGVkIGNsYXNzKSAqL1xuXHRzY29wZT86IHN0cmluZztcblx0LyoqIExvY2F0aW9uIG9mIHRoZSBlbmNsb3Npbmcgd3JhcCBzaXRlIHdob3NlIHJ1bnRpbWUgd3JhcHBpbmcgY2F1c2VkIHRoaXMgZW50cnkgKi9cblx0dmlhPzogc3RyaW5nO1xuXHQvKiogTW5lbW9uaWNhIHR5cGUgZnVsbFBhdGhzIGluc3RhbnRpYXRlZCBpbnNpZGUgdGhlIHdyYXBwZWQgYm9keSDigJQgZ3VhcmFudGVlZCBwYXRoIGhpdHMgKi9cblx0Y3JlYXRlc1R5cGVzPzogc3RyaW5nW107XG5cdC8qKiBMYWJlbCBzdHJpbmcgbGl0ZXJhbCBwYXNzZWQgdG8gd3JhcChmbiwg4oCmLCAnbGFiZWwnKSB3aGVuIHN0YXRpY2FsbHkgdmlzaWJsZSAqL1xuXHRsYWJlbD86IHN0cmluZztcblx0LyoqIHNjb3BlSWQgKHNjb3Blcy5qc29uKSBvZiB0aGUgd3JhcHBlZCBjYWxsYmFjaydzIG93biBzY29wZSDigJQgam9pbnMgdG8gdGhlIGNyZWF0aW9uIGdyYXBoICovXG5cdGNhbGxiYWNrU2NvcGVJZD86IHN0cmluZztcblx0LyoqIElkZW50aWZpZXIgcGFzc2VkIGFzIHRoZSBpbnN0YW5jZS9jb250ZXh0IGFyZ3VtZW50ICgndXNlcicpLCB3aGVuIGl0IGlzIG9uZSAqL1xuXHRpbnN0YW5jZUFyZz86IHN0cmluZztcblx0LyoqIHNjb3BlSWQgb2YgdGhlIHNjb3BlIGhvbGRpbmcgdGhlIHdyYXAgY2FsbCBzaXRlIOKAlCBqb2lucyB0byB0aGUgY3JlYXRpb24gZ3JhcGggKi9cblx0c2NvcGVJZD86IHN0cmluZztcblx0LyoqIE1uZW1vbmljYSBmdWxsUGF0aCBvZiB0aGUgaW5zdGFuY2UgYXJndW1lbnQsIHJlc29sdmVkIHRocm91Z2ggc2NvcGUgdmFyaWFibGVzICovXG5cdHdyYXBzVHlwZVBhdGg/OiBzdHJpbmc7XG5cdC8qKiBXcmFwLWZhbWlseSBmdW5jdGlvbiBuYW1lICgnd3JhcCcgfCAnd3JhcENvbnN0cnVjdG9yQXJnJyB8IOKApikg4oCUIGpvaW5zIHRoZVxuXHQgKiAgY2FsbCBzaXRlIHRvIGRpdmUncyBlbmdpbmUga25vdCBpbiBncmFwaCBjb25zdW1lcnMgKi9cblx0Zm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSlNPTiBvdXRwdXQgZm9yIGVkcy5qc29uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRURTSnNvbiB7XG5cdHZlcnNpb246IHN0cmluZztcblx0Z2VuZXJhdGVkQXQ6IHN0cmluZztcblx0ZWRzOiBSZWNvcmQ8c3RyaW5nLCBFRFNJbmZvW10+O1xufVxuXG4vKipcbiAqIEluc3RydW1lbnRhdGlvbiBraW5kIGZvciBmcmFtZXdvcmsgbGlmZWN5Y2xlIGNyb3Nzcm9hZHNcbiAqL1xuZXhwb3J0IHR5cGUgSW5zdHJ1bWVudGF0aW9uS2luZCA9XG5cdHwgJ2ludGVyY2VwdG9yJ1xuXHR8ICdndWFyZCdcblx0fCAncGlwZSdcblx0fCAnZmlsdGVyJ1xuXHR8ICdtaWRkbGV3YXJlJztcblxuLyoqXG4gKiBJbnN0cnVtZW50YXRpb24gc2NvcGU6IHdoZXJlIHRoZSBwb2ludCBhdHRhY2hlcy5cbiAqICdnbG9iYWwnIGZvciBwcm92aWRlci10b2tlbiByZWdpc3RyYXRpb25zLCAnbW9kdWxlJyBmb3IgbWlkZGxld2FyZSB3aXJlZFxuICogdmlhIGNvbnN1bWVyLmFwcGx5KCkgQU5EIGZvciBiYXJlIGhlcml0YWdlIGRlY2xhcmF0aW9ucyB3aG9zZSBhdHRhY2htZW50XG4gKiBpcyBzdGF0aWNhbGx5IHVua25vd24sIGBjb250cm9sbGVyOk5hbWVgIC8gYG1ldGhvZDpDbGFzcy5tZXRob2RgIGZvclxuICogZGVjb3JhdG9yLXNjb3BlZCBhdHRhY2htZW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgSW5zdHJ1bWVudGF0aW9uU2NvcGUgPVxuXHR8ICdnbG9iYWwnXG5cdHwgJ21vZHVsZSdcblx0fCBgY29udHJvbGxlcjoke3N0cmluZ31gXG5cdHwgYG1ldGhvZDoke3N0cmluZ31gO1xuXG4vKipcbiAqIEluc3RydW1lbnRhdGlvbiBwb2ludDogYSBmcmFtZXdvcmsgbGlmZWN5Y2xlIGNyb3Nzcm9hZCAoaW50ZXJjZXB0b3IsXG4gKiBndWFyZCwgcGlwZSwgZmlsdGVyLCBtaWRkbGV3YXJlKSBkZXRlY3RlZCBzeW50YWN0aWNhbGx5LiBUaGUgdm9jYWJ1bGFyeVxuICogdGhhdCB0dXJucyBhIHN5bnRhY3RpYyBzaGFwZSBpbnRvIGEgcG9pbnQgY29tZXMgZnJvbSBwbHVnaW5zIOKAlCB3aXRoIG5vXG4gKiBwbHVnaW4gbG9hZGVkLCBubyBwb2ludHMgYXJlIGNvbGxlY3RlZC5cbiAqXG4gKiBEZWR1cGUvc2NvcGUgZGVjaXNpb246IHBvaW50cyBhcmUga2V5ZWQgYnkgKGtpbmQsIGNsYXNzTmFtZSwgbG9jYXRpb24sXG4gKiBzY29wZSkgYW5kIGR1cGxpY2F0ZXMgbWVyZ2UgdGhlaXIgYHRhcmdldHNgLiBBIGNsYXNzIGRldGVjdGVkIGJvdGggYnlcbiAqIGhlcml0YWdlIChhIHBsdWdpbi1saXN0ZWQgYGltcGxlbWVudHNgIGludGVyZmFjZSkgYW5kIGJ5IGEgZGVjb3JhdG9yXG4gKiBzaXRlIHlpZWxkcyBTRVBBUkFURSBlbnRyaWVzIOKAlCB0aGUgY2xhc3MtZGVjbGFyYXRpb24gcG9pbnQga2VlcHMgc2NvcGVcbiAqICdtb2R1bGUnIChhdHRhY2htZW50IHVua25vd24pIHdoaWxlIGVhY2ggcmVnaXN0cmF0aW9uIHNpdGUgY2FycmllcyBpdHNcbiAqIG93biBzY29wZS4gT25lIHBvaW50IHNlcnZpbmcgbXVsdGlwbGUgc2NvcGVzIHZpYSBtZXJnZWQgc2NvcGUgbGlzdHMgd2FzXG4gKiByZWplY3RlZDogY29uc3VtZXJzIChtbmVtb2dyYXBoaWNhIGRpYW1vbmRzKSBrZXkgb2ZmIGEgc2luZ2xlIHNjb3BlIHBlclxuICogcG9pbnQsIGFuZCBzZXBhcmF0ZSBlbnRyaWVzIGtlZXAgdGhhdCBjb250cmFjdCBzaW1wbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdHJ1bWVudGF0aW9uUG9pbnQge1xuXHQvKiogS2luZCBvZiBsaWZlY3ljbGUgY3Jvc3Nyb2FkICovXG5cdGtpbmQ6IEluc3RydW1lbnRhdGlvbktpbmQ7XG5cdC8qKiBDbGFzcyBwcm92aWRpbmcgdGhlIGluc3RydW1lbnRhdGlvbiAoZS5nLiwgXCJBdXRoR3VhcmRcIikgKi9cblx0Y2xhc3NOYW1lOiBzdHJpbmc7XG5cdC8qKiBMb2NhdGlvbiBpbiBzb3VyY2U6IGZpbGUudHM6TGluZTpDb2wgKGNsYXNzIGRlY2xhcmF0aW9uIHdoZW4gZGVjbGFyZWQgaW4tcHJvamVjdCwgZWxzZSB0aGUgcmVnaXN0cmF0aW9uIHNpdGUpICovXG5cdGxvY2F0aW9uOiBzdHJpbmc7XG5cdC8qKiBDb2RlIHNuaXBwZXQ6IHNpZ25hdHVyZSAvIGZpcnN0IGxpbmUsIGxpa2UgRURTIGBjb2RlYCAqL1xuXHRjb2RlOiBzdHJpbmc7XG5cdC8qKiBXaGVyZSB0aGUgcG9pbnQgYXR0YWNoZXMgKi9cblx0c2NvcGU6IEluc3RydW1lbnRhdGlvblNjb3BlO1xuXHQvKiogQ29udHJvbGxlci9wcm92aWRlciBuYW1lcyB0aGUgcG9pbnQgYXR0YWNoZXMgdG87IGVtcHR5IGZvciBnbG9iYWwgcG9pbnRzICovXG5cdHRhcmdldHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEpTT04gb3V0cHV0IGZvciBpbnN0cnVtZW50YXRpb24uanNvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RydW1lbnRhdGlvbkpzb24ge1xuXHQvKiogU2NoZW1hIHZlcnNpb246IDIgYWRkcyB0aGUgb3B0aW9uYWwgY3JlYXRpb25HcmFwaCBrZXkgKFBoYXNlIDMpICovXG5cdHZlcnNpb246IG51bWJlcjtcblx0Z2VuZXJhdGVkQXQ6IHN0cmluZztcblx0cG9pbnRzOiBJbnN0cnVtZW50YXRpb25Qb2ludFtdO1xuXHQvKipcblx0ICogSW5zaWRlLW91dCBjcmVhdGlvbiB3YWxrIChpbnN0cnVtZW50YXRpb24gd2Fsa2VyIHBsYW4sIFBoYXNlIDMpOiB3aGljaFxuXHQgKiBzY29wZXMgY3JlYXRlIG1uZW1vbmljYSBpbnN0YW5jZXMgYW5kIHdobyBjYWxscyB0aGVtLCB3YWxrZWQgb3V0d2FyZCB0b1xuXHQgKiB0aGUgc3RhcnRlcnMuIEFic2VudCB3aGVuIHRoZSB3cml0ZXIgaXMgY2FsbGVkIHdpdGhvdXQgY3JlYXRpb24tZ3JhcGhcblx0ICogZGF0YSAoZGlyZWN0IGxpYnJhcnkgdXNlKTsgYWx3YXlzIHByZXNlbnQgZnJvbSB0aGUgQ0xJLlxuXHQgKi9cblx0Y3JlYXRpb25HcmFwaD86IENyZWF0aW9uR3JhcGg7XG59XG5cbi8qKlxuICogRmxvdyBraW5kIGZvciB0cmFja2luZyBuYXRpdmUgaW5zdGFuY2UgdXNhZ2UgcGF0dGVybnNcbiAqL1xuZXhwb3J0IHR5cGUgRmxvd0tpbmQgPVxuXHR8ICdwcm9wZXJ0eVJlYWQnXG5cdHwgJ3Byb3BlcnR5V3JpdGUnXG5cdHwgJ21ldGhvZENhbGwnXG5cdHwgJ2Rlc3RydWN0dXJlUmVhZCdcblx0fCAncGFzc0FzQXJnJ1xuXHR8ICdyZXR1cm4nXG5cdHwgJ3NwcmVhZCdcblx0fCAnYXJyYXlFbGVtZW50J1xuXHR8ICdjb25kaXRpb25hbEFjY2Vzcydcblx0fCAnZWxlbWVudEFjY2Vzcydcblx0fCAncmVhc3NpZ25tZW50J1xuXHR8ICdpbnN0YW50aWF0aW9uJztcblxuLyoqXG4gKiBGbG93IGluZm8gZm9yIG5hdGl2ZSBpbnN0YW5jZSB1c2FnZSB0cmFja2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dJbmZvIHtcblx0LyoqIExvY2F0aW9uIGluIHNvdXJjZTogZmlsZS50czpMaW5lOkNvbCAqL1xuXHRsb2NhdGlvbjogc3RyaW5nO1xuXHQvKiogS2luZCBvZiBmbG93ICovXG5cdGtpbmQ6IEZsb3dLaW5kO1xuXHQvKiogQ29kZSBzbmlwcGV0ICovXG5cdGNvZGU6IHN0cmluZztcblx0LyoqIFByb3BlcnR5IG5hbWUgaWYgYXBwbGljYWJsZSAqL1xuXHRwcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XG5cdC8qKiBSZXNvbHZlZCB0YXJnZXQgdHlwZSBpZiBrbm93biAqL1xuXHR0YXJnZXRUeXBlPzogc3RyaW5nO1xuXHQvKiogQ29udGV4dCAoZnVuY3Rpb24gbmFtZSwgcGFyYW0gcG9zaXRpb24sIGV0Yy4pICovXG5cdGNvbnRleHQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSlNPTiBvdXRwdXQgZm9yIGZsb3cuanNvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dKc29uIHtcblx0dmVyc2lvbjogc3RyaW5nO1xuXHRnZW5lcmF0ZWRBdDogc3RyaW5nO1xuXHRmbG93OiBSZWNvcmQ8c3RyaW5nLCBGbG93SW5mb1tdPjtcbn1cblxuLyoqXG4gKiBXaGF0IGEgbW9kdWxlLWxldmVsIGJpbmRpbmcgaXMuIFZhcmlhYmxlcyBhcmUgY2xhc3NpZmllZCBhcyAnY29uc3QnXG4gKiByZWdhcmRsZXNzIG9mIGxldC92YXIg4oCUIG11dGFiaWxpdHkgKHJlYXNzaWdubWVudCB0cmFja2luZykgaXMgdGhlXG4gKiBsb2NhbC1zY29wZSB3YWxrZXIncyBjb25jZXJuIChQaGFzZSAyKSwgbm90IHRoZSBtb2R1bGUgZ3JhcGgncy5cbiAqL1xuZXhwb3J0IHR5cGUgTW9kdWxlQmluZGluZ0tpbmQgPVxuXHR8ICdmdW5jdGlvbidcblx0fCAnY2xhc3MnXG5cdHwgJ2NvbnN0J1xuXHR8ICd0eXBlJ1xuXHR8ICd1bmtub3duJztcblxuLyoqXG4gKiBIb3cgYSBiaW5kaW5nIGVudGVycyBhIG1vZHVsZVxuICovXG5leHBvcnQgdHlwZSBNb2R1bGVJbXBvcnRLaW5kID1cblx0fCAnbmFtZWQnXG5cdHwgJ2RlZmF1bHQnXG5cdHwgJ25hbWVzcGFjZSdcblx0fCAncmVxdWlyZSc7XG5cbi8qKlxuICogQSBnZW5lcmljIG1vZHVsZS1sZXZlbCBiaW5kaW5nIChleHBvcnQsIGltcG9ydCwgb3IgcmUtZXhwb3J0KS5cbiAqXG4gKiBgbmFtZWAgaXMgYWx3YXlzIHRoZSBuYW1lIHRoaXMgbW9kdWxlIHByZXNlbnRzOiB0aGUgbG9jYWwgaWRlbnRpZmllciBmb3JcbiAqIGltcG9ydHMsIHRoZSBleHBvcnRlZCBuYW1lIGZvciBleHBvcnRzLiBgaW1wb3J0QWxpYXNgIGNhcnJpZXMgdGhlIG9yaWdpbmFsXG4gKiBuYW1lIGluIHRoZSBzb3VyY2UgbW9kdWxlIHdoZW4gaXQgZGlmZmVycyAoYGltcG9ydCB7IFggYXMgWSB9YCDihpIgbmFtZSAnWScsXG4gKiBpbXBvcnRBbGlhcyAnWCc7IGBleHBvcnQgeyBYIGFzIFkgfSBmcm9tIOKApmAg4oaSIG5hbWUgJ1knLCBpbXBvcnRBbGlhcyAnWCcpLlxuICogRm9yIGRlZmF1bHQgaW1wb3J0cyBuYW1lIGlzIHRoZSBsb2NhbCBpZGVudGlmaWVyIGFuZCB0aGUgc291cmNlIGxvb2t1cCBrZXlcbiAqIGlzICdkZWZhdWx0JyAoaW1wbGllZCBieSBpbXBvcnRLaW5kKTsgZm9yIG5hbWVzcGFjZSBpbXBvcnRzL2V4cG9ydHMgbmFtZSBpc1xuICogdGhlIG5hbWVzcGFjZSBhbGlhcyAoJyonIGZvciBiYXJlIGBleHBvcnQgKiBmcm9tIOKApmApLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZUJpbmRpbmcge1xuXHQvKiogTmFtZSBhcyBwcmVzZW50ZWQgaW4gdGhpcyBtb2R1bGUgKGxvY2FsIG5hbWUgZm9yIGltcG9ydHMsIGV4cG9ydGVkIG5hbWUgZm9yIGV4cG9ydHMpICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqIFdoYXQgdGhlIGJpbmRpbmcgaXM7IGJhY2tmaWxsZWQgZnJvbSB0aGUgb3JpZ2luIG1vZHVsZSB3aGVuIHJlc29sdmFibGUgKi9cblx0a2luZDogTW9kdWxlQmluZGluZ0tpbmQ7XG5cdC8qKlxuXHQgKiBSZXNvbHZlZCBhYnNvbHV0ZSBmaWxlIHBhdGggb2YgdGhlIHNvdXJjZSBtb2R1bGUgKHRoZSBtb2R1bGUgaXRzZWxmIGZvclxuXHQgKiBsb2NhbCBkZWNsYXJhdGlvbnM7IHRoZSByYXcgc3BlY2lmaWVyIHdoZW4gcmVzb2x1dGlvbiBmYWlscylcblx0ICovXG5cdHNvdXJjZU1vZHVsZTogc3RyaW5nO1xuXHQvKiogSG93IHRoZSBiaW5kaW5nIGVudGVycyB0aGUgbW9kdWxlIChhYnNlbnQgb24gcGxhaW4gbG9jYWwgZXhwb3J0cykgKi9cblx0aW1wb3J0S2luZD86IE1vZHVsZUltcG9ydEtpbmQ7XG5cdC8qKiBPcmlnaW5hbCBuYW1lIGluIHRoZSBzb3VyY2UgbW9kdWxlIHdoZW4gYWxpYXNlZCAqL1xuXHRpbXBvcnRBbGlhcz86IHN0cmluZztcblx0LyoqIFRydWUgZm9yIGBleHBvcnQgeyBYIH0gZnJvbSAnLi95J2AgLyBgZXhwb3J0ICogZnJvbSAnLi95J2AgKGJhcnJlbHMpICovXG5cdGlzUmVFeHBvcnQ6IGJvb2xlYW47XG5cdC8qKlxuXHQgKiBUcnVlIHdoZW4gdGhlIHNwZWNpZmllciByZXNvbHZlZCBpbnRvIG5vZGVfbW9kdWxlc1xuXHQgKiAodHMucmVzb2x2ZU1vZHVsZU5hbWUncyBpc0V4dGVybmFsTGlicmFyeUltcG9ydCkuIEV4dGVybmFsIGJpbmRpbmdzIGFyZVxuXHQgKiByZWNvcmRlZCBmb3IgcmVmZXJlbmNlIGJ1dCBuZXZlciBlbnRlciBgZGVwZW5kZW5jaWVzYCBhbmQgYXJlIG5ldmVyIHdhbGtlZC5cblx0ICogTm9kZS5qcyBidWlsdGlucyBhcmUgbm90IHJlY29yZGVkIGFzIGJpbmRpbmdzIGF0IGFsbCDigJQgc2VlXG5cdCAqIE1vZHVsZUluZm8uYnVpbHRpblNwZWNpZmllcnMuXG5cdCAqL1xuXHRleHRlcm5hbD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGVyLW1vZHVsZSByZWNvcmQgb2YgdGhlIGNyb3NzLWZpbGUgZ3JhcGggKG1vZHVsZXMuanNvbilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVJbmZvIHtcblx0LyoqIEFic29sdXRlIGZpbGUgcGF0aCAobWFwIGtleSkgKi9cblx0ZmlsZVBhdGg6IHN0cmluZztcblx0LyoqIE1uZW1vbmljYSB0eXBlIGZ1bGxQYXRocyBkZWZpbmVkIGluIHRoaXMgbW9kdWxlICovXG5cdGRlZmluZWRUeXBlczogc3RyaW5nW107XG5cdC8qKiBFdmVyeXRoaW5nIHRoaXMgbW9kdWxlIGV4cG9ydHMgKGxvY2FsIGRlY2xhcmF0aW9ucyBhbmQgcmUtZXhwb3J0cykgKi9cblx0ZXhwb3J0ZWRCaW5kaW5nczogTW9kdWxlQmluZGluZ1tdO1xuXHQvKiogRXZlcnl0aGluZyB0aGlzIG1vZHVsZSBpbXBvcnRzIChyZS1leHBvcnRzIGFwcGVhciBoZXJlIHRvbywgbWFya2VkIGlzUmVFeHBvcnQpICovXG5cdGltcG9ydGVkQmluZGluZ3M6IE1vZHVsZUJpbmRpbmdbXTtcblx0LyoqIEFic29sdXRlIHBhdGhzIG9mIGFuYWx5emVkIHByb2plY3QgbW9kdWxlcyB0aGlzIG1vZHVsZSBpbXBvcnRzIGZyb20gKi9cblx0ZGVwZW5kZW5jaWVzOiBzdHJpbmdbXTtcblx0LyoqIEltcG9ydCBzcGVjaWZpZXJzIHRoYXQgbW9kdWxlIHJlc29sdXRpb24gY291bGQgbm90IHJlc29sdmUgKG5vZGUgYnVpbHRpbnMgZXhjbHVkZWQg4oCUIHNlZSBidWlsdGluU3BlY2lmaWVycykgKi9cblx0dW5yZXNvbHZlZFNwZWNpZmllcnM6IHN0cmluZ1tdO1xuXHQvKipcblx0ICogTm9kZS5qcyBidWlsdGluIHNwZWNpZmllcnMgdGhpcyBtb2R1bGUgaW1wb3J0cyAoJ3BhdGgnLCAnbm9kZTpmcycsIOKApiksXG5cdCAqIG1hdGNoZWQgYWdhaW5zdCBub2RlOm1vZHVsZSdzIGJ1aWx0aW5Nb2R1bGVzIGluIGJvdGggYmFyZSBhbmRcblx0ICogYG5vZGU6YC1wcmVmaXhlZCBmb3Jtcy4gUmVjb3JkZWQgZm9yIGhvbmVzdHkgb25seTogYnVpbHRpbnMgcHJvZHVjZSBub1xuXHQgKiBiaW5kaW5ncywgbmV2ZXIgZW50ZXIgYGRlcGVuZGVuY2llc2AvYHVucmVzb2x2ZWRTcGVjaWZpZXJzYCwgYW5kIG5ldmVyXG5cdCAqIHByb2R1Y2UgZWRnZXMuXG5cdCAqL1xuXHRidWlsdGluU3BlY2lmaWVyczogc3RyaW5nW107XG59XG5cbi8qKlxuICogQSBjcm9zcy1tb2R1bGUgdXNhZ2Ugb2YgYSBtbmVtb25pY2EgdHlwZTogdXNhZ2VNb2R1bGUgaW1wb3J0cyBhIGJpbmRpbmdcbiAqIHdob3NlIG9yaWdpbiBtb2R1bGUgZGVmaW5lcyB0aGUgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcm9zc01vZHVsZVVzYWdlIHtcblx0LyoqIE1hdGNoZWQgbW5lbW9uaWNhIHR5cGUgZnVsbFBhdGggKG9yIHRoZSBpbXBvcnRlZCBuYW1lIHdoZW4gdW5tYXRjaGVkKSAqL1xuXHR0eXBlUGF0aDogc3RyaW5nO1xuXHQvKiogQWJzb2x1dGUgcGF0aCBvZiB0aGUgbW9kdWxlIHdoZXJlIHRoZSB0eXBlIGlzIGRlZmluZWQgKHJlLWV4cG9ydCBjaGFpbnMgY2hhc2VkIHRvIHRoZSBvcmlnaW4pICovXG5cdGRlZmluaXRpb25Nb2R1bGU6IHN0cmluZztcblx0LyoqIEFic29sdXRlIHBhdGggb2YgdGhlIGltcG9ydGluZyBtb2R1bGUgKi9cblx0dXNhZ2VNb2R1bGU6IHN0cmluZztcblx0LyoqIEltcG9ydCBzaXRlOiBmaWxlLnRzOkxpbmU6Q29sICovXG5cdHVzYWdlTG9jYXRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgZnVsbCBtb2R1bGUgZ3JhcGhcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVHcmFwaCB7XG5cdC8qKiBLZXllZCBieSBhYnNvbHV0ZSBmaWxlIHBhdGggKi9cblx0bW9kdWxlczogTWFwPHN0cmluZywgTW9kdWxlSW5mbz47XG5cdGVkZ2VzOiBDcm9zc01vZHVsZVVzYWdlW107XG5cdC8qKlxuXHQgKiBDaXJjdWxhciBpbXBvcnQgY2hhaW5zIChlYWNoIGFuIGFycmF5IG9mIGFic29sdXRlIHBhdGhzKS4gUmVjb3JkZWQsIG5vdFxuXHQgKiBhbiBlcnJvciDigJQgbW5lbW9uaWNhIHN0cmljdENoYWluOmZhbHNlIHBlcm1pdHMgbm9uLWxpbmVhciBjb25zdHJ1Y3Rpb25cblx0ICovXG5cdGN5Y2xlczogc3RyaW5nW11bXTtcbn1cblxuLyoqXG4gKiBKU09OIG91dHB1dCBmb3IgbW9kdWxlcy5qc29uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlc0pzb24ge1xuXHR2ZXJzaW9uOiBzdHJpbmc7XG5cdGdlbmVyYXRlZEF0OiBzdHJpbmc7XG5cdG1vZHVsZXM6IFJlY29yZDxzdHJpbmcsIE1vZHVsZUluZm8+O1xuXHRlZGdlczogQ3Jvc3NNb2R1bGVVc2FnZVtdO1xuXHRjeWNsZXM6IHN0cmluZ1tdW107XG59XG5cbi8qKlxuICogV2hhdCBhIHRyYWNrZWQgc2NvcGUgaXMuIERlY2lzaW9uIDUgKHJlc29sdmVkIDIwMjYtMDktMDMpOiBmdW5jdGlvbixcbiAqIG1ldGhvZCwgYW5kIGFycm93IHNjb3BlcyBPTkxZIOKAlCBubyBibG9jayBzY29wZXMuICdtb2R1bGUnIGlzIHRoZSBzeW50aGV0aWNcbiAqIHBlci1maWxlIHJvb3Qgc2NvcGUgc28gbW9kdWxlLWxldmVsIGluc3RhbmNlIGNyZWF0aW9ucyBhcmUgbGFiZWxlZCwgbm90XG4gKiBkcm9wcGVkICh3YWxrZXIgcGxhbjogXCJyZWNvcmRlZCBhcyBhIHJvb3RlZCBpbnN0YW5jZVwiKS5cbiAqL1xuZXhwb3J0IHR5cGUgU2NvcGVLaW5kID1cblx0fCAnbW9kdWxlJ1xuXHR8ICdmdW5jdGlvbidcblx0fCAnbWV0aG9kJ1xuXHR8ICdhcnJvdyc7XG5cbi8qKlxuICogT25lIHRyYWNrZWQgc2NvcGUgKHNjb3Blcy5qc29uKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjb3BlSW5mbyB7XG5cdC8qKiBVbmlxdWUgaWQ6IG1vZHVsZSBzY29wZSBpcyB0aGUgZmlsZSBwYXRoOyBmdW5jdGlvbiBzY29wZXMgYXJlIGZpbGU6bGluZTpjb2wgb2YgdGhlIHNjb3BlIG5vZGUgKi9cblx0c2NvcGVJZDogc3RyaW5nO1xuXHQvKiogRGVjaXNpb24gOCBsYWJlbGluZzogZnVuY3Rpb24vbWV0aG9kIG5hbWUgKCdDbGFzcy5tZXRob2QnIGZvciBtZXRob2RzKSwgZmlsZTpsaW5lIGZvciBhbm9ueW1vdXMgaG9sZGVycyAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdGtpbmQ6IFNjb3BlS2luZDtcblx0LyoqIE5lYXJlc3QgZW5jbG9zaW5nIHNjb3BlICh1bmRlZmluZWQgb24gbW9kdWxlIHNjb3BlcykgKi9cblx0cGFyZW50U2NvcGVJZD86IHN0cmluZztcblx0LyoqIEFic29sdXRlIGZpbGUgcGF0aCAqL1xuXHRmaWxlUGF0aDogc3RyaW5nO1xuXHQvKiogU2NvcGUgc3RhcnQ6IGZpbGUudHM6TGluZTpDb2wgKG1vZHVsZSBzY29wZTogZmlsZToxOjEpICovXG5cdGxvY2F0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT25lIHRyYWNrZWQgdmFyaWFibGUgKHNjb3Blcy5qc29uKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjb3BlVmFyaWFibGUge1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKiBPd25pbmcgc2NvcGUgKi9cblx0c2NvcGVJZDogc3RyaW5nO1xuXHQvKiogTW5lbW9uaWNhIHR5cGUgZnVsbFBhdGggd2hlbiBrbm93biAobmV3IFgoKSBvbiBhIGtub3duIHR5cGUsIG5ldyBpbnN0LlN1YigpIGNoYWluaW5nLCBvciBhIGtub3duIGFubm90YXRpb24pICovXG5cdHR5cGVQYXRoPzogc3RyaW5nO1xuXHQvKiogQ2hlYXAgdGV4dHVhbCB0eXBlOiBhbm5vdGF0aW9uIHRleHQgb3IgdGlueSBpbml0aWFsaXplciBjbGFzc2lmaWNhdGlvbiAqL1xuXHRpbmZlcnJlZFR5cGU/OiBzdHJpbmc7XG5cdC8qKiBEZWNsYXJhdGlvbiBzaXRlOiBmaWxlLnRzOkxpbmU6Q29sICovXG5cdGRlY2xhcmF0aW9uOiBzdHJpbmc7XG5cdGlzUGFyYW1ldGVyOiBib29sZWFuO1xuXHQvKiogY29uc3QgPSBmYWxzZTsgbGV0L3ZhciBhbmQgcGFyYW1ldGVycyA9IHRydWUgKHBhcmFtZXRlcnMgYXJlIHJlYXNzaWduYWJsZSkgKi9cblx0aXNNdXRhYmxlOiBib29sZWFuO1xuXHQvKipcblx0ICogUmVhc3NpZ25tZW50IHNpdGVzIChmaWxlLnRzOkxpbmU6Q29sKSBvZiB0aGlzIGJpbmRpbmcg4oCUIGZsb3ctdGVybWluYXRpb25cblx0ICogcG9pbnRzIChkZWNpc2lvbiA2KTogdGhlIFBoYXNlIDMgd2Fsa2VyIHN0b3BzIGZvbGxvd2luZyB0aGUgYmluZGluZyB0aGVyZVxuXHQgKi9cblx0cmVhc3NpZ25tZW50czogc3RyaW5nW107XG59XG5cbi8qKlxuICogVGhlIGZ1bGwgbG9jYWwtc2NvcGUgYW5hbHlzaXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY29wZUFuYWx5c2lzIHtcblx0LyoqIEtleWVkIGJ5IHNjb3BlSWQgKi9cblx0c2NvcGVzOiBNYXA8c3RyaW5nLCBTY29wZUluZm8+O1xuXHQvKiogS2V5ZWQgYnkgYCR7c2NvcGVJZH0jJHtuYW1lfWAgKi9cblx0dmFyaWFibGVzOiBNYXA8c3RyaW5nLCBTY29wZVZhcmlhYmxlPjtcbn1cblxuLyoqXG4gKiBKU09OIG91dHB1dCBmb3Igc2NvcGVzLmpzb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY29wZXNKc29uIHtcblx0dmVyc2lvbjogc3RyaW5nO1xuXHRnZW5lcmF0ZWRBdDogc3RyaW5nO1xuXHRzY29wZXM6IFJlY29yZDxzdHJpbmcsIFNjb3BlSW5mbz47XG5cdHZhcmlhYmxlczogU2NvcGVWYXJpYWJsZVtdO1xufVxuXG4vKipcbiAqIE9uZSBub2RlIG9mIHRoZSBjcmVhdGlvbiBncmFwaCAoaW5zdHJ1bWVudGF0aW9uIHdhbGtlciBwbGFuLCBQaGFzZSAzKTpcbiAqIGEgc2NvcGUgdGhhdCBjcmVhdGVzIG1uZW1vbmljYSBpbnN0YW5jZXMsIG9yIG9uZSBzaXR0aW5nIG9uIGEgY2FsbCBwYXRoXG4gKiB0byBhIGNyZWF0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRpb25HcmFwaE5vZGUge1xuXHQvKiogTG9jYWxTY29wZVdhbGtlciBzY29wZUlkIChtb2R1bGUgc2NvcGUgPSBmaWxlIHBhdGg7IGZ1bmN0aW9uIHNjb3BlcyA9IGZpbGU6bGluZTpjb2wpICovXG5cdHNjb3BlSWQ6IHN0cmluZztcblx0LyoqIERlY2lzaW9uIDggbGFiZWw6IGZ1bmN0aW9uL21ldGhvZCBuYW1lICgnQ2xhc3MubWV0aG9kJyksIGZpbGU6bGluZSBmb3IgYW5vbnltb3VzIGhvbGRlcnMgKi9cblx0bmFtZTogc3RyaW5nO1xuXHRraW5kOiBTY29wZUtpbmQ7XG5cdC8qKiBBYnNvbHV0ZSBmaWxlIHBhdGggKi9cblx0ZmlsZVBhdGg6IHN0cmluZztcblx0LyoqIFNjb3BlIHN0YXJ0OiBmaWxlLnRzOkxpbmU6Q29sICovXG5cdGxvY2F0aW9uOiBzdHJpbmc7XG5cdC8qKiBUcnVlIHdoZW4gdGhlIHdhbGsgZm91bmQgbm8gY2FsbGVycyDigJQgYW4gYXBwbGljYXRpb24gZW50cnkgcG9pbnQgKi9cblx0c3RhcnRlcjogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPbmUgZWRnZSBvZiB0aGUgY3JlYXRpb24gZ3JhcGg6IHRoZSBjYWxsZXIgc2NvcGUgaW52b2tlcyBvciByZWZlcmVuY2VzIHRoZVxuICogY2FsbGVlIHNjb3BlLiBEaXJlY3Rpb24gaXMgaW5zaWRlLW91dDogY2FsbGVyIOKGkiBjYWxsZWUsIHdoZXJlIHRoZSBjYWxsZWUgaXNcbiAqIGNsb3NlciB0byB0aGUgY3JlYXRpb24gc2l0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGlvbkdyYXBoRWRnZSB7XG5cdC8qKiBDYWxsaW5nIHNjb3BlJ3Mgc2NvcGVJZCAqL1xuXHRjYWxsZXI6IHN0cmluZztcblx0LyoqIENhbGxlZCAoaG9sZGVyKSBzY29wZSdzIHNjb3BlSWQgKi9cblx0Y2FsbGVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gaW5zdGFudGlhdGlvbiBhbmNob3I6IG9uZSBtbmVtb25pY2EgY3JlYXRpb24gc2l0ZSBwaW5uZWQgdG8gaXRzIGhvbGRlclxuICogc2NvcGUuXG4gKlxuICogYHZhcmlhYmxlYC9gdGVybWluYXRlZEF0YCBhcmUgYSBkb2N1bWVudGVkIGhldXJpc3RpYzogdGhlIHZhcmlhYmxlIGRlY2xhcmVkXG4gKiBpbiB0aGUgaG9sZGVyIHNjb3BlIG9uIHRoZSBTQU1FIGxpbmUgYXMgdGhlIGNyZWF0aW9uLCB3aG9zZSB0eXBlUGF0aCAod2hlblxuICoga25vd24pIG1hdGNoZXMgdGhlIGNyZWF0ZWQgdHlwZS4gYHRlcm1pbmF0ZWRBdGAgaXMgdGhhdCB2YXJpYWJsZSdzIGZpcnN0XG4gKiByZWFzc2lnbm1lbnQgc2l0ZSDigJQgdGhlIGRlY2lzaW9uIDYgZmxvdy10ZXJtaW5hdGlvbiBwb2ludCB3aGVyZSB0aGUgd2Fsa2VyXG4gKiBzdG9wcyBmb2xsb3dpbmcgdGhlIGJpbmRpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRpb25BbmNob3Ige1xuXHQvKiogQ3JlYXRpb24gc2l0ZTogZmlsZS50czpMaW5lOkNvbCAodGhlIHVzYWdlcy5qc29uIGxvY2F0aW9uKSAqL1xuXHRsb2NhdGlvbjogc3RyaW5nO1xuXHQvKiogU2NvcGUgaG9sZGluZyB0aGUgY3JlYXRpb24gKHNjb3Blcy5qc29uIHNjb3BlSWQpICovXG5cdGhvbGRlclNjb3BlSWQ6IHN0cmluZztcblx0LyoqIE1uZW1vbmljYSB0eXBlIGZ1bGxQYXRoIGJlaW5nIGNyZWF0ZWQgKi9cblx0dHlwZVBhdGg6IHN0cmluZztcblx0LyoqIENvbnN0cnVjdG9yIGV4cHJlc3Npb24gdGV4dCAoJ1RoaW5nJywgJ3VzZXIuQWRtaW5FbnRpdHknLCBhIGxvb2t1cCBhbGlhcyBuYW1lKSAqL1xuXHRjb25zdHJ1Y3RvclRleHQ/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBUcnVlIHdoZW4gdGhlIGhvbGRlciBpcyB0aGUgbW9kdWxlIHNjb3BlIOKAlCBhIHJvb3RlZCBpbnN0YW5jZSAocGxhbjpcblx0ICogbGVnaXRpbWF0ZSByb290IG9yIGRldmVsb3BlciBlcnJvcjsgbGFiZWxlZCwgbm90IHBvbGljZWQpXG5cdCAqL1xuXHRyb290ZWQ/OiBib29sZWFuO1xuXHQvKiogVmFyaWFibGUgdGhlIGZyZXNoIGluc3RhbmNlIHdhcyBib3VuZCB0byAoc2FtZS1saW5lIGhldXJpc3RpYykgKi9cblx0dmFyaWFibGU/OiBzdHJpbmc7XG5cdC8qKiBGaXJzdCByZWFzc2lnbm1lbnQgc2l0ZSBvZiB0aGF0IHZhcmlhYmxlOiBmaWxlLnRzOkxpbmU6Q29sICovXG5cdHRlcm1pbmF0ZWRBdD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgY3JlYXRpb24gZ3JhcGg6IGV2ZXJ5dGhpbmcgdGhhdCBsZWFkcyB0byBtbmVtb25pY2EgaW5zdGFuY2VzIGJlaW5nXG4gKiBjcmVhdGVkLiBFbWl0dGVkIGFzIHRoZSBgY3JlYXRpb25HcmFwaGAga2V5IG9mIGluc3RydW1lbnRhdGlvbi5qc29uIHYyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0aW9uR3JhcGgge1xuXHRub2RlczogQ3JlYXRpb25HcmFwaE5vZGVbXTtcblx0ZWRnZXM6IENyZWF0aW9uR3JhcGhFZGdlW107XG5cdGFuY2hvcnM6IENyZWF0aW9uQW5jaG9yW107XG59XG5cbi8qKlxuICogSlNPTiBvdXRwdXQgZm9yIGhpZXJhcmNoeS5qc29uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGllcmFyY2h5SnNvbiB7XG5cdHZlcnNpb246IHN0cmluZztcblx0Z2VuZXJhdGVkQXQ6IHN0cmluZztcblx0cm9vdHM6IEhpZXJhcmNoeU5vZGVbXTtcbn1cblxuLyoqXG4gKiBTdHJ1Y3R1cmVkIGhpZXJhcmNoeSBub2RlIGZvciBtYWNoaW5lIGNvbnN1bXB0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhpZXJhcmNoeU5vZGUge1xuXHQvKiogVHlwZSBuYW1lIChlLmcuLCBcIkFkbWluVHlwZVwiKSAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKiBGdWxsIGRvdHRlZCBwYXRoIChlLmcuLCBcIlVzZXJUeXBlLkFkbWluVHlwZVwiKSAqL1xuXHRmdWxsUGF0aDogc3RyaW5nO1xuXHQvKiogTG9jYXRpb24gaW4gc291cmNlOiBmaWxlLnRzOkxpbmU6Q29sICovXG5cdGxvY2F0aW9uOiBzdHJpbmc7XG5cdC8qKiBDaGlsZCB0eXBlcyBpbiB0aGUgVHJpZSAqL1xuXHRjaGlsZHJlbjogSGllcmFyY2h5Tm9kZVtdO1xufVxuIl19
|
package/lib/writer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GeneratedTypes, DefinitionInfo, UsageInfo, EDSInfo, FlowInfo, HierarchyNode } from './types';
|
|
1
|
+
import { GeneratedTypes, DefinitionInfo, UsageInfo, EDSInfo, FlowInfo, HierarchyNode, InstrumentationPoint, ModuleGraph, ScopeAnalysis, CreationGraph } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Writes generated types to file system
|
|
4
4
|
*/
|
|
@@ -45,10 +45,23 @@ export declare class TypesWriter {
|
|
|
45
45
|
* Write eds.json file
|
|
46
46
|
*/
|
|
47
47
|
writeEDSFile(eds: Map<string, EDSInfo[]>): string;
|
|
48
|
+
/**
|
|
49
|
+
* Write instrumentation.json file (v2: adds the creationGraph key when
|
|
50
|
+
* the caller passes creation-graph data — the CLI always does)
|
|
51
|
+
*/
|
|
52
|
+
writeInstrumentationFile(points: InstrumentationPoint[], creationGraph?: CreationGraph): string;
|
|
48
53
|
/**
|
|
49
54
|
* Write flow.json file
|
|
50
55
|
*/
|
|
51
56
|
writeFlowFile(flow: Map<string, FlowInfo[]>): string;
|
|
57
|
+
/**
|
|
58
|
+
* Write modules.json file
|
|
59
|
+
*/
|
|
60
|
+
writeModulesFile(graph: ModuleGraph): string;
|
|
61
|
+
/**
|
|
62
|
+
* Write scopes.json file
|
|
63
|
+
*/
|
|
64
|
+
writeScopesFile(analysis: ScopeAnalysis): string;
|
|
52
65
|
/**
|
|
53
66
|
* Write hierarchy.json file
|
|
54
67
|
*/
|
package/lib/writer.js
CHANGED
|
@@ -158,6 +158,24 @@ class TypesWriter {
|
|
|
158
158
|
fs.writeFileSync(filePath, JSON.stringify(json, null, 2), 'utf-8');
|
|
159
159
|
return filePath;
|
|
160
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Write instrumentation.json file (v2: adds the creationGraph key when
|
|
163
|
+
* the caller passes creation-graph data — the CLI always does)
|
|
164
|
+
*/
|
|
165
|
+
writeInstrumentationFile(points, creationGraph) {
|
|
166
|
+
this.ensureDirectory();
|
|
167
|
+
const filePath = path.join(this.outputDir, 'instrumentation.json');
|
|
168
|
+
const json = {
|
|
169
|
+
version: 2,
|
|
170
|
+
generatedAt: new Date().toISOString(),
|
|
171
|
+
points,
|
|
172
|
+
};
|
|
173
|
+
if (creationGraph) {
|
|
174
|
+
json.creationGraph = creationGraph;
|
|
175
|
+
}
|
|
176
|
+
fs.writeFileSync(filePath, JSON.stringify(json, null, 2), 'utf-8');
|
|
177
|
+
return filePath;
|
|
178
|
+
}
|
|
161
179
|
/**
|
|
162
180
|
* Write flow.json file
|
|
163
181
|
*/
|
|
@@ -177,6 +195,48 @@ class TypesWriter {
|
|
|
177
195
|
fs.writeFileSync(filePath, JSON.stringify(json, null, 2), 'utf-8');
|
|
178
196
|
return filePath;
|
|
179
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Write modules.json file
|
|
200
|
+
*/
|
|
201
|
+
writeModulesFile(graph) {
|
|
202
|
+
this.ensureDirectory();
|
|
203
|
+
const filePath = path.join(this.outputDir, 'modules.json');
|
|
204
|
+
// Convert Map to plain object
|
|
205
|
+
const modulesObj = {};
|
|
206
|
+
for (const [key, value] of graph.modules) {
|
|
207
|
+
modulesObj[key] = value;
|
|
208
|
+
}
|
|
209
|
+
const json = {
|
|
210
|
+
version: '1.0',
|
|
211
|
+
generatedAt: new Date().toISOString(),
|
|
212
|
+
modules: modulesObj,
|
|
213
|
+
edges: graph.edges,
|
|
214
|
+
cycles: graph.cycles,
|
|
215
|
+
};
|
|
216
|
+
fs.writeFileSync(filePath, JSON.stringify(json, null, 2), 'utf-8');
|
|
217
|
+
return filePath;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Write scopes.json file
|
|
221
|
+
*/
|
|
222
|
+
writeScopesFile(analysis) {
|
|
223
|
+
this.ensureDirectory();
|
|
224
|
+
const filePath = path.join(this.outputDir, 'scopes.json');
|
|
225
|
+
// Convert Maps to plain shapes
|
|
226
|
+
const scopesObj = {};
|
|
227
|
+
for (const [key, value] of analysis.scopes) {
|
|
228
|
+
scopesObj[key] = value;
|
|
229
|
+
}
|
|
230
|
+
const variables = Array.from(analysis.variables.values());
|
|
231
|
+
const json = {
|
|
232
|
+
version: '1.0',
|
|
233
|
+
generatedAt: new Date().toISOString(),
|
|
234
|
+
scopes: scopesObj,
|
|
235
|
+
variables,
|
|
236
|
+
};
|
|
237
|
+
fs.writeFileSync(filePath, JSON.stringify(json, null, 2), 'utf-8');
|
|
238
|
+
return filePath;
|
|
239
|
+
}
|
|
180
240
|
/**
|
|
181
241
|
* Write hierarchy.json file
|
|
182
242
|
*/
|
|
@@ -193,4 +253,4 @@ class TypesWriter {
|
|
|
193
253
|
}
|
|
194
254
|
}
|
|
195
255
|
exports.TypesWriter = TypesWriter;
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUViLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFLN0I7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFHdkIsWUFBYSxTQUFTLEdBQUcsVUFBVTtRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUUsU0FBeUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBRSxTQUF5QjtRQUN4QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkQsT0FBTyxRQUFRLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCLENBQUUsU0FBeUI7UUFDakQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN6RCxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBRSxRQUFnQixFQUFFLE9BQWU7UUFDekMs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eEIsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFhO1lBQ3RCLE9BQU8sRUFBTyxLQUFLO1lBQ25CLFdBQVcsRUFBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUN0QyxJQUFJLEVBQVUsT0FBTztTQUNyQixDQUFDO1FBRUYsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFFLEtBQXNCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUU3RCxNQUFNLElBQUksR0FBa0I7WUFDM0IsT0FBTyxFQUFPLEtBQUs7WUFDbkIsV0FBVyxFQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ3RDLEtBQUs7U0FDTCxDQUFDO1FBRUYsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUM7Q0FDRDtBQXBMRCxrQ0FvTEMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuXHRHZW5lcmF0ZWRUeXBlcywgRGVmaW5pdGlvbkluZm8sIFVzYWdlSW5mbywgRURTSW5mbywgRmxvd0luZm8sIEZsb3dKc29uLCBIaWVyYXJjaHlOb2RlLCBIaWVyYXJjaHlKc29uIFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBXcml0ZXMgZ2VuZXJhdGVkIHR5cGVzIHRvIGZpbGUgc3lzdGVtXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlc1dyaXRlciB7XG5cdHByaXZhdGUgb3V0cHV0RGlyOiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IgKG91dHB1dERpciA9ICcudGFjdGljYScpIHtcblx0XHR0aGlzLm91dHB1dERpciA9IG91dHB1dERpcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBMZWdhY3kgd3JpdGUgbWV0aG9kIC0gZGVsZWdhdGVzIHRvIHdyaXRlVHlwZXNGaWxlXG5cdCAqL1xuXHR3cml0ZSAoZ2VuZXJhdGVkOiBHZW5lcmF0ZWRUeXBlcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMud3JpdGVUeXBlc0ZpbGUoZ2VuZXJhdGVkKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXcml0ZSB0eXBlcy50cyBmaWxlIChleHBvcnRhYmxlIHR5cGUgYWxpYXNlcyAtIGRlZmF1bHQgbW9kZSlcblx0ICovXG5cdHdyaXRlVHlwZXNGaWxlIChnZW5lcmF0ZWQ6IEdlbmVyYXRlZFR5cGVzKTogc3RyaW5nIHtcblx0XHR0aGlzLmVuc3VyZURpcmVjdG9yeSgpO1xuXHRcdGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCAndHlwZXMudHMnKTtcblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBnZW5lcmF0ZWQuY29udGVudCwgJ3V0Zi04Jyk7XG5cdFx0cmV0dXJuIGZpbGVQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIGdsb2JhbCBhdWdtZW50YXRpb24gZmlsZSAoaW5kZXguZC50cyAtIG1vZHVsZSBhdWdtZW50YXRpb24gbW9kZSlcblx0ICovXG5cdHdyaXRlR2xvYmFsQXVnbWVudGF0aW9uIChnZW5lcmF0ZWQ6IEdlbmVyYXRlZFR5cGVzKTogc3RyaW5nIHtcblx0XHR0aGlzLmVuc3VyZURpcmVjdG9yeSgpO1xuXHRcdGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCAnaW5kZXguZC50cycpO1xuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGdlbmVyYXRlZC5jb250ZW50LCAndXRmLTgnKTtcblx0XHRyZXR1cm4gZmlsZVBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgdG8gYSBjdXN0b20gZmlsZW5hbWVcblx0ICovXG5cdHdyaXRlVG8gKGZpbGVuYW1lOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0dGhpcy5lbnN1cmVEaXJlY3RvcnkoKTtcblx0XHRjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dHB1dERpciwgZmlsZW5hbWUpO1xuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGNvbnRlbnQsICd1dGYtOCcpO1xuXHRcdHJldHVybiBmaWxlUGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBFbnN1cmUgb3V0cHV0IGRpcmVjdG9yeSBleGlzdHNcblx0ICovXG5cdHByaXZhdGUgZW5zdXJlRGlyZWN0b3J5ICgpOiB2b2lkIHtcblx0XHRpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5vdXRwdXREaXIpKSB7XG5cdFx0XHRmcy5ta2RpclN5bmModGhpcy5vdXRwdXREaXIsIHsgcmVjdXJzaXZlIDogdHJ1ZSB9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2xlYW4gdGhlIG91dHB1dCBkaXJlY3Rvcnlcblx0ICovXG5cdGNsZWFuICgpOiB2b2lkIHtcblx0XHRpZiAoZnMuZXhpc3RzU3luYyh0aGlzLm91dHB1dERpcikpIHtcblx0XHRcdGNvbnN0IGZpbGVzID0gZnMucmVhZGRpclN5bmModGhpcy5vdXRwdXREaXIpO1xuXHRcdFx0Zm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG5cdFx0XHRcdGZzLnVubGlua1N5bmMocGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCBmaWxlKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBvdXRwdXQgZGlyZWN0b3J5XG5cdCAqL1xuXHRnZXRPdXRwdXREaXIgKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMub3V0cHV0RGlyO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIGRlZmluaXRpb25zLmpzb24gZmlsZVxuXHQgKi9cblx0d3JpdGVEZWZpbml0aW9uc0ZpbGUgKGRlZmluaXRpb25zOiBNYXA8c3RyaW5nLCBEZWZpbml0aW9uSW5mbz4pOiBzdHJpbmcge1xuXHRcdHRoaXMuZW5zdXJlRGlyZWN0b3J5KCk7XG5cdFx0Y29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5vdXRwdXREaXIsICdkZWZpbml0aW9ucy5qc29uJyk7XG5cblx0XHQvLyBDb252ZXJ0IE1hcCB0byBwbGFpbiBvYmplY3Rcblx0XHRjb25zdCBkZWZpbml0aW9uc09iajogUmVjb3JkPHN0cmluZywgRGVmaW5pdGlvbkluZm8+ID0ge307XG5cdFx0Zm9yIChjb25zdCBbIGtleSwgdmFsdWUgXSBvZiBkZWZpbml0aW9ucykge1xuXHRcdFx0ZGVmaW5pdGlvbnNPYmpbIGtleSBdID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QganNvbiA9IHtcblx0XHRcdHZlcnNpb24gICAgIDogJzEuMCcsXG5cdFx0XHRnZW5lcmF0ZWRBdCA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcblx0XHRcdGRlZmluaXRpb25zIDogZGVmaW5pdGlvbnNPYmosXG5cdFx0fTtcblxuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpLCAndXRmLTgnKTtcblx0XHRyZXR1cm4gZmlsZVBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgdXNhZ2VzLmpzb24gZmlsZVxuXHQgKi9cblx0d3JpdGVVc2FnZXNGaWxlICh1c2FnZXM6IE1hcDxzdHJpbmcsIFVzYWdlSW5mb1tdPik6IHN0cmluZyB7XG5cdFx0dGhpcy5lbnN1cmVEaXJlY3RvcnkoKTtcblx0XHRjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dHB1dERpciwgJ3VzYWdlcy5qc29uJyk7XG5cblx0XHQvLyBDb252ZXJ0IE1hcCB0byBwbGFpbiBvYmplY3Rcblx0XHRjb25zdCB1c2FnZXNPYmo6IFJlY29yZDxzdHJpbmcsIFVzYWdlSW5mb1tdPiA9IHt9O1xuXHRcdGZvciAoY29uc3QgWyBrZXksIHZhbHVlIF0gb2YgdXNhZ2VzKSB7XG5cdFx0XHR1c2FnZXNPYmpbIGtleSBdID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QganNvbiA9IHtcblx0XHRcdHZlcnNpb24gICAgIDogJzEuMCcsXG5cdFx0XHRnZW5lcmF0ZWRBdCA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcblx0XHRcdHVzYWdlcyAgICAgIDogdXNhZ2VzT2JqLFxuXHRcdH07XG5cblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSwgJ3V0Zi04Jyk7XG5cdFx0cmV0dXJuIGZpbGVQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIGVkcy5qc29uIGZpbGVcblx0ICovXG5cdHdyaXRlRURTRmlsZSAoZWRzOiBNYXA8c3RyaW5nLCBFRFNJbmZvW10+KTogc3RyaW5nIHtcblx0XHR0aGlzLmVuc3VyZURpcmVjdG9yeSgpO1xuXHRcdGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCAnZWRzLmpzb24nKTtcblxuXHRcdC8vIENvbnZlcnQgTWFwIHRvIHBsYWluIG9iamVjdFxuXHRcdGNvbnN0IGVkc09iajogUmVjb3JkPHN0cmluZywgRURTSW5mb1tdPiA9IHt9O1xuXHRcdGZvciAoY29uc3QgWyBrZXksIHZhbHVlIF0gb2YgZWRzKSB7XG5cdFx0XHRlZHNPYmpbIGtleSBdID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QganNvbiA9IHtcblx0XHRcdHZlcnNpb24gICAgIDogJzEuMCcsXG5cdFx0XHRnZW5lcmF0ZWRBdCA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcblx0XHRcdGVkcyAgICAgICAgIDogZWRzT2JqLFxuXHRcdH07XG5cblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSwgJ3V0Zi04Jyk7XG5cdFx0cmV0dXJuIGZpbGVQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIGZsb3cuanNvbiBmaWxlXG5cdCAqL1xuXHR3cml0ZUZsb3dGaWxlIChmbG93OiBNYXA8c3RyaW5nLCBGbG93SW5mb1tdPik6IHN0cmluZyB7XG5cdFx0dGhpcy5lbnN1cmVEaXJlY3RvcnkoKTtcblx0XHRjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dHB1dERpciwgJ2Zsb3cuanNvbicpO1xuXG5cdFx0Ly8gQ29udmVydCBNYXAgdG8gcGxhaW4gb2JqZWN0XG5cdFx0Y29uc3QgZmxvd09iajogUmVjb3JkPHN0cmluZywgRmxvd0luZm9bXT4gPSB7fTtcblx0XHRmb3IgKGNvbnN0IFsga2V5LCB2YWx1ZSBdIG9mIGZsb3cpIHtcblx0XHRcdGZsb3dPYmpbIGtleSBdID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QganNvbjogRmxvd0pzb24gPSB7XG5cdFx0XHR2ZXJzaW9uICAgICA6ICcxLjAnLFxuXHRcdFx0Z2VuZXJhdGVkQXQgOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG5cdFx0XHRmbG93ICAgICAgICA6IGZsb3dPYmosXG5cdFx0fTtcblxuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpLCAndXRmLTgnKTtcblx0XHRyZXR1cm4gZmlsZVBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgaGllcmFyY2h5Lmpzb24gZmlsZVxuXHQgKi9cblx0d3JpdGVIaWVyYXJjaHlGaWxlIChyb290czogSGllcmFyY2h5Tm9kZVtdKTogc3RyaW5nIHtcblx0XHR0aGlzLmVuc3VyZURpcmVjdG9yeSgpO1xuXHRcdGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCAnaGllcmFyY2h5Lmpzb24nKTtcblxuXHRcdGNvbnN0IGpzb246IEhpZXJhcmNoeUpzb24gPSB7XG5cdFx0XHR2ZXJzaW9uICAgICA6ICcxLjAnLFxuXHRcdFx0Z2VuZXJhdGVkQXQgOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG5cdFx0XHRyb290cyxcblx0XHR9O1xuXG5cdFx0ZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgMiksICd1dGYtOCcpO1xuXHRcdHJldHVybiBmaWxlUGF0aDtcblx0fVxufVxuIl19
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUViLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFNN0I7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFHdkIsWUFBYSxTQUFTLEdBQUcsVUFBVTtRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUUsU0FBeUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBRSxTQUF5QjtRQUN4QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkQsT0FBTyxRQUFRLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCLENBQUUsU0FBeUI7UUFDakQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN6RCxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBRSxRQUFnQixFQUFFLE9BQWU7UUFDekMs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V0FBVyxFQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ3RDLE1BQU0sRUFBUSxTQUFTO1lBQ3ZCLFNBQVM7U0FDVCxDQUFDO1FBRUYsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFFLEtBQXNCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUU3RCxNQUFNLElBQUksR0FBa0I7WUFDM0IsT0FBTyxFQUFPLEtBQUs7WUFDbkIsV0FBVyxFQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ3RDLEtBQUs7U0FDTCxDQUFDO1FBRUYsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUM7Q0FDRDtBQTNQRCxrQ0EyUEMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuXHRHZW5lcmF0ZWRUeXBlcywgRGVmaW5pdGlvbkluZm8sIFVzYWdlSW5mbywgRURTSW5mbywgRmxvd0luZm8sIEZsb3dKc29uLCBIaWVyYXJjaHlOb2RlLCBIaWVyYXJjaHlKc29uLFxuXHRJbnN0cnVtZW50YXRpb25Qb2ludCwgSW5zdHJ1bWVudGF0aW9uSnNvbiwgTW9kdWxlR3JhcGgsIE1vZHVsZXNKc29uLCBTY29wZUFuYWx5c2lzLCBTY29wZXNKc29uLCBDcmVhdGlvbkdyYXBoXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFdyaXRlcyBnZW5lcmF0ZWQgdHlwZXMgdG8gZmlsZSBzeXN0ZW1cbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVzV3JpdGVyIHtcblx0cHJpdmF0ZSBvdXRwdXREaXI6IHN0cmluZztcblxuXHRjb25zdHJ1Y3RvciAob3V0cHV0RGlyID0gJy50YWN0aWNhJykge1xuXHRcdHRoaXMub3V0cHV0RGlyID0gb3V0cHV0RGlyO1xuXHR9XG5cblx0LyoqXG5cdCAqIExlZ2FjeSB3cml0ZSBtZXRob2QgLSBkZWxlZ2F0ZXMgdG8gd3JpdGVUeXBlc0ZpbGVcblx0ICovXG5cdHdyaXRlIChnZW5lcmF0ZWQ6IEdlbmVyYXRlZFR5cGVzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy53cml0ZVR5cGVzRmlsZShnZW5lcmF0ZWQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIHR5cGVzLnRzIGZpbGUgKGV4cG9ydGFibGUgdHlwZSBhbGlhc2VzIC0gZGVmYXVsdCBtb2RlKVxuXHQgKi9cblx0d3JpdGVUeXBlc0ZpbGUgKGdlbmVyYXRlZDogR2VuZXJhdGVkVHlwZXMpOiBzdHJpbmcge1xuXHRcdHRoaXMuZW5zdXJlRGlyZWN0b3J5KCk7XG5cdFx0Y29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5vdXRwdXREaXIsICd0eXBlcy50cycpO1xuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGdlbmVyYXRlZC5jb250ZW50LCAndXRmLTgnKTtcblx0XHRyZXR1cm4gZmlsZVBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgZ2xvYmFsIGF1Z21lbnRhdGlvbiBmaWxlIChpbmRleC5kLnRzIC0gbW9kdWxlIGF1Z21lbnRhdGlvbiBtb2RlKVxuXHQgKi9cblx0d3JpdGVHbG9iYWxBdWdtZW50YXRpb24gKGdlbmVyYXRlZDogR2VuZXJhdGVkVHlwZXMpOiBzdHJpbmcge1xuXHRcdHRoaXMuZW5zdXJlRGlyZWN0b3J5KCk7XG5cdFx0Y29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5vdXRwdXREaXIsICdpbmRleC5kLnRzJyk7XG5cdFx0ZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgZ2VuZXJhdGVkLmNvbnRlbnQsICd1dGYtOCcpO1xuXHRcdHJldHVybiBmaWxlUGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBXcml0ZSB0byBhIGN1c3RvbSBmaWxlbmFtZVxuXHQgKi9cblx0d3JpdGVUbyAoZmlsZW5hbWU6IHN0cmluZywgY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHR0aGlzLmVuc3VyZURpcmVjdG9yeSgpO1xuXHRcdGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCBmaWxlbmFtZSk7XG5cdFx0ZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgY29udGVudCwgJ3V0Zi04Jyk7XG5cdFx0cmV0dXJuIGZpbGVQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIEVuc3VyZSBvdXRwdXQgZGlyZWN0b3J5IGV4aXN0c1xuXHQgKi9cblx0cHJpdmF0ZSBlbnN1cmVEaXJlY3RvcnkgKCk6IHZvaWQge1xuXHRcdGlmICghZnMuZXhpc3RzU3luYyh0aGlzLm91dHB1dERpcikpIHtcblx0XHRcdGZzLm1rZGlyU3luYyh0aGlzLm91dHB1dERpciwgeyByZWN1cnNpdmUgOiB0cnVlIH0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDbGVhbiB0aGUgb3V0cHV0IGRpcmVjdG9yeVxuXHQgKi9cblx0Y2xlYW4gKCk6IHZvaWQge1xuXHRcdGlmIChmcy5leGlzdHNTeW5jKHRoaXMub3V0cHV0RGlyKSkge1xuXHRcdFx0Y29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyh0aGlzLm91dHB1dERpcik7XG5cdFx0XHRmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcblx0XHRcdFx0ZnMudW5saW5rU3luYyhwYXRoLmpvaW4odGhpcy5vdXRwdXREaXIsIGZpbGUpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogR2V0IG91dHB1dCBkaXJlY3Rvcnlcblx0ICovXG5cdGdldE91dHB1dERpciAoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5vdXRwdXREaXI7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgZGVmaW5pdGlvbnMuanNvbiBmaWxlXG5cdCAqL1xuXHR3cml0ZURlZmluaXRpb25zRmlsZSAoZGVmaW5pdGlvbnM6IE1hcDxzdHJpbmcsIERlZmluaXRpb25JbmZvPik6IHN0cmluZyB7XG5cdFx0dGhpcy5lbnN1cmVEaXJlY3RvcnkoKTtcblx0XHRjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dHB1dERpciwgJ2RlZmluaXRpb25zLmpzb24nKTtcblxuXHRcdC8vIENvbnZlcnQgTWFwIHRvIHBsYWluIG9iamVjdFxuXHRcdGNvbnN0IGRlZmluaXRpb25zT2JqOiBSZWNvcmQ8c3RyaW5nLCBEZWZpbml0aW9uSW5mbz4gPSB7fTtcblx0XHRmb3IgKGNvbnN0IFsga2V5LCB2YWx1ZSBdIG9mIGRlZmluaXRpb25zKSB7XG5cdFx0XHRkZWZpbml0aW9uc09ialsga2V5IF0gPSB2YWx1ZTtcblx0XHR9XG5cblx0XHRjb25zdCBqc29uID0ge1xuXHRcdFx0dmVyc2lvbiAgICAgOiAnMS4wJyxcblx0XHRcdGdlbmVyYXRlZEF0IDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuXHRcdFx0ZGVmaW5pdGlvbnMgOiBkZWZpbml0aW9uc09iaixcblx0XHR9O1xuXG5cdFx0ZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgMiksICd1dGYtOCcpO1xuXHRcdHJldHVybiBmaWxlUGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBXcml0ZSB1c2FnZXMuanNvbiBmaWxlXG5cdCAqL1xuXHR3cml0ZVVzYWdlc0ZpbGUgKHVzYWdlczogTWFwPHN0cmluZywgVXNhZ2VJbmZvW10+KTogc3RyaW5nIHtcblx0XHR0aGlzLmVuc3VyZURpcmVjdG9yeSgpO1xuXHRcdGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCAndXNhZ2VzLmpzb24nKTtcblxuXHRcdC8vIENvbnZlcnQgTWFwIHRvIHBsYWluIG9iamVjdFxuXHRcdGNvbnN0IHVzYWdlc09iajogUmVjb3JkPHN0cmluZywgVXNhZ2VJbmZvW10+ID0ge307XG5cdFx0Zm9yIChjb25zdCBbIGtleSwgdmFsdWUgXSBvZiB1c2FnZXMpIHtcblx0XHRcdHVzYWdlc09ialsga2V5IF0gPSB2YWx1ZTtcblx0XHR9XG5cblx0XHRjb25zdCBqc29uID0ge1xuXHRcdFx0dmVyc2lvbiAgICAgOiAnMS4wJyxcblx0XHRcdGdlbmVyYXRlZEF0IDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuXHRcdFx0dXNhZ2VzICAgICAgOiB1c2FnZXNPYmosXG5cdFx0fTtcblxuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpLCAndXRmLTgnKTtcblx0XHRyZXR1cm4gZmlsZVBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgZWRzLmpzb24gZmlsZVxuXHQgKi9cblx0d3JpdGVFRFNGaWxlIChlZHM6IE1hcDxzdHJpbmcsIEVEU0luZm9bXT4pOiBzdHJpbmcge1xuXHRcdHRoaXMuZW5zdXJlRGlyZWN0b3J5KCk7XG5cdFx0Y29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5vdXRwdXREaXIsICdlZHMuanNvbicpO1xuXG5cdFx0Ly8gQ29udmVydCBNYXAgdG8gcGxhaW4gb2JqZWN0XG5cdFx0Y29uc3QgZWRzT2JqOiBSZWNvcmQ8c3RyaW5nLCBFRFNJbmZvW10+ID0ge307XG5cdFx0Zm9yIChjb25zdCBbIGtleSwgdmFsdWUgXSBvZiBlZHMpIHtcblx0XHRcdGVkc09ialsga2V5IF0gPSB2YWx1ZTtcblx0XHR9XG5cblx0XHRjb25zdCBqc29uID0ge1xuXHRcdFx0dmVyc2lvbiAgICAgOiAnMS4wJyxcblx0XHRcdGdlbmVyYXRlZEF0IDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuXHRcdFx0ZWRzICAgICAgICAgOiBlZHNPYmosXG5cdFx0fTtcblxuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpLCAndXRmLTgnKTtcblx0XHRyZXR1cm4gZmlsZVBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgaW5zdHJ1bWVudGF0aW9uLmpzb24gZmlsZSAodjI6IGFkZHMgdGhlIGNyZWF0aW9uR3JhcGgga2V5IHdoZW5cblx0ICogdGhlIGNhbGxlciBwYXNzZXMgY3JlYXRpb24tZ3JhcGggZGF0YSDigJQgdGhlIENMSSBhbHdheXMgZG9lcylcblx0ICovXG5cdHdyaXRlSW5zdHJ1bWVudGF0aW9uRmlsZSAocG9pbnRzOiBJbnN0cnVtZW50YXRpb25Qb2ludFtdLCBjcmVhdGlvbkdyYXBoPzogQ3JlYXRpb25HcmFwaCk6IHN0cmluZyB7XG5cdFx0dGhpcy5lbnN1cmVEaXJlY3RvcnkoKTtcblx0XHRjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dHB1dERpciwgJ2luc3RydW1lbnRhdGlvbi5qc29uJyk7XG5cblx0XHRjb25zdCBqc29uOiBJbnN0cnVtZW50YXRpb25Kc29uID0ge1xuXHRcdFx0dmVyc2lvbiAgICAgOiAyLFxuXHRcdFx0Z2VuZXJhdGVkQXQgOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG5cdFx0XHRwb2ludHMsXG5cdFx0fTtcblx0XHRpZiAoY3JlYXRpb25HcmFwaCkge1xuXHRcdFx0anNvbi5jcmVhdGlvbkdyYXBoID0gY3JlYXRpb25HcmFwaDtcblx0XHR9XG5cblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSwgJ3V0Zi04Jyk7XG5cdFx0cmV0dXJuIGZpbGVQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIGZsb3cuanNvbiBmaWxlXG5cdCAqL1xuXHR3cml0ZUZsb3dGaWxlIChmbG93OiBNYXA8c3RyaW5nLCBGbG93SW5mb1tdPik6IHN0cmluZyB7XG5cdFx0dGhpcy5lbnN1cmVEaXJlY3RvcnkoKTtcblx0XHRjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dHB1dERpciwgJ2Zsb3cuanNvbicpO1xuXG5cdFx0Ly8gQ29udmVydCBNYXAgdG8gcGxhaW4gb2JqZWN0XG5cdFx0Y29uc3QgZmxvd09iajogUmVjb3JkPHN0cmluZywgRmxvd0luZm9bXT4gPSB7fTtcblx0XHRmb3IgKGNvbnN0IFsga2V5LCB2YWx1ZSBdIG9mIGZsb3cpIHtcblx0XHRcdGZsb3dPYmpbIGtleSBdID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QganNvbjogRmxvd0pzb24gPSB7XG5cdFx0XHR2ZXJzaW9uICAgICA6ICcxLjAnLFxuXHRcdFx0Z2VuZXJhdGVkQXQgOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG5cdFx0XHRmbG93ICAgICAgICA6IGZsb3dPYmosXG5cdFx0fTtcblxuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpLCAndXRmLTgnKTtcblx0XHRyZXR1cm4gZmlsZVBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgbW9kdWxlcy5qc29uIGZpbGVcblx0ICovXG5cdHdyaXRlTW9kdWxlc0ZpbGUgKGdyYXBoOiBNb2R1bGVHcmFwaCk6IHN0cmluZyB7XG5cdFx0dGhpcy5lbnN1cmVEaXJlY3RvcnkoKTtcblx0XHRjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dHB1dERpciwgJ21vZHVsZXMuanNvbicpO1xuXG5cdFx0Ly8gQ29udmVydCBNYXAgdG8gcGxhaW4gb2JqZWN0XG5cdFx0Y29uc3QgbW9kdWxlc09iajogTW9kdWxlc0pzb25bICdtb2R1bGVzJyBdID0ge307XG5cdFx0Zm9yIChjb25zdCBbIGtleSwgdmFsdWUgXSBvZiBncmFwaC5tb2R1bGVzKSB7XG5cdFx0XHRtb2R1bGVzT2JqWyBrZXkgXSA9IHZhbHVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGpzb246IE1vZHVsZXNKc29uID0ge1xuXHRcdFx0dmVyc2lvbiAgICAgOiAnMS4wJyxcblx0XHRcdGdlbmVyYXRlZEF0IDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuXHRcdFx0bW9kdWxlcyAgICAgOiBtb2R1bGVzT2JqLFxuXHRcdFx0ZWRnZXMgICAgICAgOiBncmFwaC5lZGdlcyxcblx0XHRcdGN5Y2xlcyAgICAgIDogZ3JhcGguY3ljbGVzLFxuXHRcdH07XG5cblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSwgJ3V0Zi04Jyk7XG5cdFx0cmV0dXJuIGZpbGVQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIHNjb3Blcy5qc29uIGZpbGVcblx0ICovXG5cdHdyaXRlU2NvcGVzRmlsZSAoYW5hbHlzaXM6IFNjb3BlQW5hbHlzaXMpOiBzdHJpbmcge1xuXHRcdHRoaXMuZW5zdXJlRGlyZWN0b3J5KCk7XG5cdFx0Y29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5vdXRwdXREaXIsICdzY29wZXMuanNvbicpO1xuXG5cdFx0Ly8gQ29udmVydCBNYXBzIHRvIHBsYWluIHNoYXBlc1xuXHRcdGNvbnN0IHNjb3Blc09iajogU2NvcGVzSnNvblsgJ3Njb3BlcycgXSA9IHt9O1xuXHRcdGZvciAoY29uc3QgWyBrZXksIHZhbHVlIF0gb2YgYW5hbHlzaXMuc2NvcGVzKSB7XG5cdFx0XHRzY29wZXNPYmpbIGtleSBdID0gdmFsdWU7XG5cdFx0fVxuXHRcdGNvbnN0IHZhcmlhYmxlcyA9IEFycmF5LmZyb20oYW5hbHlzaXMudmFyaWFibGVzLnZhbHVlcygpKTtcblxuXHRcdGNvbnN0IGpzb246IFNjb3Blc0pzb24gPSB7XG5cdFx0XHR2ZXJzaW9uICAgICA6ICcxLjAnLFxuXHRcdFx0Z2VuZXJhdGVkQXQgOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG5cdFx0XHRzY29wZXMgICAgICA6IHNjb3Blc09iaixcblx0XHRcdHZhcmlhYmxlcyxcblx0XHR9O1xuXG5cdFx0ZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgMiksICd1dGYtOCcpO1xuXHRcdHJldHVybiBmaWxlUGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBXcml0ZSBoaWVyYXJjaHkuanNvbiBmaWxlXG5cdCAqL1xuXHR3cml0ZUhpZXJhcmNoeUZpbGUgKHJvb3RzOiBIaWVyYXJjaHlOb2RlW10pOiBzdHJpbmcge1xuXHRcdHRoaXMuZW5zdXJlRGlyZWN0b3J5KCk7XG5cdFx0Y29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5vdXRwdXREaXIsICdoaWVyYXJjaHkuanNvbicpO1xuXG5cdFx0Y29uc3QganNvbjogSGllcmFyY2h5SnNvbiA9IHtcblx0XHRcdHZlcnNpb24gICAgIDogJzEuMCcsXG5cdFx0XHRnZW5lcmF0ZWRBdCA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcblx0XHRcdHJvb3RzLFxuXHRcdH07XG5cblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSwgJ3V0Zi04Jyk7XG5cdFx0cmV0dXJuIGZpbGVQYXRoO1xuXHR9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnemonica/tactica",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Type definition generator for Mnemonica — statically analyzes define() calls and emits .tactica/ types, registry, and metadata",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"LICENSE"
|
|
14
14
|
],
|
|
15
15
|
"scripts": {
|
|
16
|
+
"prepare": "husky",
|
|
16
17
|
"build": "rm -rf ./lib && npx tsc --pretty && npm run fix-permissions",
|
|
17
18
|
"fix-permissions": "chmod +x lib/cli.js",
|
|
18
19
|
"watch": "npx tsc --pretty -w",
|
|
@@ -43,7 +44,7 @@
|
|
|
43
44
|
"homepage": "https://github.com/mythographica/tactica#readme",
|
|
44
45
|
"license": "MIT",
|
|
45
46
|
"peerDependencies": {
|
|
46
|
-
"mnemonica": "^1.
|
|
47
|
+
"mnemonica": "^1.3.0",
|
|
47
48
|
"typescript": "^5.0.0 || ^6.0.0"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
@@ -51,13 +52,14 @@
|
|
|
51
52
|
"@types/chai": "^4.3.20",
|
|
52
53
|
"@types/mocha": "^10.0.10",
|
|
53
54
|
"@types/node": "^20.19.43",
|
|
54
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
55
|
-
"@typescript-eslint/parser": "^8.
|
|
55
|
+
"@typescript-eslint/eslint-plugin": "^8.70.0",
|
|
56
|
+
"@typescript-eslint/parser": "^8.70.0",
|
|
56
57
|
"chai": "^4.5.0",
|
|
57
58
|
"eslint": "^9.39.5",
|
|
58
59
|
"eslint-plugin-mocha": "^10.5.0",
|
|
59
60
|
"eslint-plugin-no-arrow-this": "^1.2.0",
|
|
60
61
|
"globals": "^15.15.0",
|
|
62
|
+
"husky": "^9.1.7",
|
|
61
63
|
"mocha": "^8.4.0",
|
|
62
64
|
"nyc": "^18.0.0",
|
|
63
65
|
"ts-node": "^10.9.2",
|
|
@@ -67,6 +69,6 @@
|
|
|
67
69
|
"dependencies": {
|
|
68
70
|
"@types/chokidar": "^2.1.7",
|
|
69
71
|
"chokidar": "^3.6.0",
|
|
70
|
-
"mnemonica": "^1.
|
|
72
|
+
"mnemonica": "^1.3.0"
|
|
71
73
|
}
|
|
72
74
|
}
|