@recursyve/nestjs-data-filter 8.1.3 → 8.2.2
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/lib/decorators/attributes.decorator.d.ts +2 -2
- package/lib/decorators/attributes.decorator.js +1 -1
- package/lib/filter/controllers/dynamic-filter.controller.js +4 -4
- package/lib/filter/controllers/filter.controller.js +4 -4
- package/lib/filter/filter.service.d.ts +3 -3
- package/lib/filter/filter.service.js +7 -7
- package/lib/filter/filters/filter.d.ts +2 -2
- package/lib/filter/filters/filter.js +2 -2
- package/lib/filter/filters/radio.filter.d.ts +1 -1
- package/lib/filter/filters/radio.filter.js +3 -3
- package/lib/filter/filters/select.filter.d.ts +15 -5
- package/lib/filter/filters/select.filter.js +4 -4
- package/lib/filter/filters/text.filter.d.ts +1 -1
- package/lib/filter/filters/text.filter.js +4 -4
- package/lib/models/data-filter.model.js +7 -6
- package/lib/scanners/sequelize-model.scanner.js +2 -2
- package/lib/sequelize.utils.d.ts +2 -1
- package/lib/sequelize.utils.js +35 -18
- package/package.json +1 -1
|
@@ -31,7 +31,7 @@ class Filter {
|
|
|
31
31
|
this.operators = [...operator];
|
|
32
32
|
return this;
|
|
33
33
|
}
|
|
34
|
-
async getConfig(key, user) {
|
|
34
|
+
async getConfig(key, request, user) {
|
|
35
35
|
if (this.private) {
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
@@ -225,4 +225,4 @@ class Filter {
|
|
|
225
225
|
}
|
|
226
226
|
exports.Filter = Filter;
|
|
227
227
|
|
|
228
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9maWx0ZXIvZmlsdGVycy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQThGO0FBQzlGLDZCQUFpRTtBQUdqRSwyREFBdUQ7QUFDdkQsa0RBQThDO0FBMEQ5QyxNQUFzQixNQUFNO0lBeUJ4QixZQUFzQixVQUFpQztRQXhCL0MsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQWtCbEIsYUFBUSxHQUFHLElBQUksQ0FBQztRQU9uQixJQUFJLFVBQVUsRUFBRTtZQUNaLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQXhCRCxJQUFXLGdCQUFnQixDQUFDLGdCQUFrQztRQUMxRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7SUFDOUMsQ0FBQztJQWNNLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBNEI7UUFDL0MsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDO0lBQzVDLENBQUM7SUFRTSxZQUFZLENBQUMsR0FBRyxRQUFrRDtRQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxlQUFlLENBQUMsR0FBRyxRQUFrRDtRQUN4RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFlBQVksQ0FBQyxHQUFHLFFBQWtEO1FBQ3JFLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxD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QUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2hCLE9BQU8scUJBQVMsQ0FBQyxLQUFLLENBQUMscUJBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQWtCLENBQUMsQ0FBQztTQUNyRztRQUVELE9BQU8scUJBQVMsQ0FBQyxLQUFLLENBQUMscUJBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEtBQWtCLENBQUMsQ0FBQztJQUN0RixDQUFDO0NBQ0o7QUFyUkQsd0JBcVJDIiwiZmlsZSI6ImxpYi9maWx0ZXIvZmlsdGVycy9maWx0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmbiwgTG9naWNUeXBlLCBPcCwgU2VxdWVsaXplLCB3aGVyZSwgV2hlcmVPcGVyYXRvcnMsIFdoZXJlT3B0aW9ucyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IERhdGFGaWx0ZXJVc2VyTW9kZWwsIEZpbHRlck9wZXJhdG9yVHlwZXMgfSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCB7IFRyYW5zbGF0ZUFkYXB0ZXIgfSBmcm9tIFwiLi4vLi4vYWRhcHRlcnMvdHJhbnNsYXRlLmFkYXB0ZXJcIjtcbmltcG9ydCB7IEluY2x1ZGVXaGVyZU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9pbmNsdWRlLm1vZGVsXCI7XG5pbXBvcnQgeyBTZXF1ZWxpemVVdGlscyB9IGZyb20gXCIuLi8uLi9zZXF1ZWxpemUudXRpbHNcIjtcbmltcG9ydCB7IEZpbHRlclV0aWxzIH0gZnJvbSBcIi4uL2ZpbHRlci51dGlsc1wiO1xuaW1wb3J0IHsgRmlsdGVyQmFzZUNvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gXCIuLi9tb2RlbHMvZmlsdGVyLWNvbmZpZ3VyYXRpb24ubW9kZWxcIjtcbmltcG9ydCB7IFF1ZXJ5TW9kZWwsIFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgUnVsZU1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9ydWxlLm1vZGVsXCI7XG5pbXBvcnQgeyBDdXN0b21PcGVyYXRvciwgRmlsdGVyT3BlcmF0b3JzIH0gZnJvbSBcIi4uL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XG5cbmV4cG9ydCB0eXBlIENvbmRpdGlvbiA9IFwiYW5kXCIgfCBcIm9yXCI7XG5cbi8vIFRPRE86IERlcHJlY2F0ZSBrZXkgdG8gdXNlIGF0dHJpYnV0ZSBpbnN0ZWFkIHRvIGJlIGNvbnNpc3RhbnQgd2l0aCB0aGUgQmFzZUZpbHRlckRlZmluaXRpb25cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyQ29uZGl0aW9uUnVsZSB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBvcGVyYXRpb246IEZpbHRlck9wZXJhdG9ycztcbiAgICB2YWx1ZTogKHVua25vd24gfCB1bmtub3duW10pIHwgKCh2YWx1ZTogdW5rbm93biB8IHVua25vd25bXSkgPT4gdW5rbm93biB8IHVua25vd25bXSlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJDb25kaXRpb24ge1xuICAgIGNvbmRpdGlvbjogQ29uZGl0aW9uO1xuICAgIHJ1bGVzOiAoRmlsdGVyQ29uZGl0aW9uUnVsZSB8IEZpbHRlckNvbmRpdGlvbilbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKc29uQ29uZmlnIHtcbiAgICB0eXBlOiBcImFycmF5XCIgfCBcIm9iamVjdFwiO1xuICAgIHBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFBhdGhDb25kaXRpb24gPSBib29sZWFuIHwge1xuICAgIFtmaWx0ZXI6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRmlsdGVyRGVmaW5pdGlvbiB7XG4gICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBoYXZpbmc/OiBhbnk7XG4gICAgcGFyYW5vaWQ/OiBib29sZWFuO1xuICAgIGNvbmRpdGlvbj86IEZpbHRlckNvbmRpdGlvbjtcbiAgICBncm91cD86IHN0cmluZztcbiAgICB3aGVyZT86IEluY2x1ZGVXaGVyZU1vZGVsO1xuICAgIHBhdGhDb25kaXRpb24/OiBQYXRoQ29uZGl0aW9uO1xuICAgIGpzb24/OiBKc29uQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogUHJpdmF0ZSBtZWFucyB0aGF0IHRoZSBjb25maWcgd2lsbCBub3QgYmUgcmV0dXJuZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRGVmaW5pdGlvbiBleHRlbmRzIEJhc2VGaWx0ZXJEZWZpbml0aW9uIHtcbiAgICB0eXBlOiBGaWx0ZXJUeXBlO1xuICAgIG9wZXJhdG9yczogKEZpbHRlck9wZXJhdG9yVHlwZXMgfCBDdXN0b21PcGVyYXRvcilbXTtcblxuICAgIGdldENvbmZpZyhrZXk6IHN0cmluZywgdXNlcj86IERhdGFGaWx0ZXJVc2VyTW9kZWwpOiBQcm9taXNlPEZpbHRlckJhc2VDb25maWd1cmF0aW9uTW9kZWw+O1xuICAgIGdldFdoZXJlT3B0aW9ucyhydWxlOiBRdWVyeVJ1bGVNb2RlbCk6IFByb21pc2U8V2hlcmVPcHRpb25zPjtcbiAgICBnZXRIYXZpbmdPcHRpb25zKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsKTogUHJvbWlzZTxXaGVyZU9wdGlvbnM+O1xuICAgIHVzZVBhdGhDb25kaXRpb24ocXVlcnk6IFF1ZXJ5TW9kZWwpOiBib29sZWFuO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlsdGVyIGltcGxlbWVudHMgRmlsdGVyRGVmaW5pdGlvbiB7XG4gICAgcHJpdmF0ZSBfdHlwZSA9IFwiZmlsdGVyXCI7XG5cbiAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZUFkYXB0ZXI7XG5cbiAgICBwdWJsaWMgc2V0IHRyYW5zbGF0ZVNlcnZpY2UodHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlQWRhcHRlcikge1xuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlID0gdHJhbnNsYXRlU2VydmljZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHlwZTogRmlsdGVyVHlwZTtcbiAgICBwdWJsaWMgb3BlcmF0b3JzOiAoRmlsdGVyT3BlcmF0b3JUeXBlcyB8IEN1c3RvbU9wZXJhdG9yKVtdO1xuICAgIHB1YmxpYyBncm91cDogc3RyaW5nO1xuICAgIHB1YmxpYyBhdHRyaWJ1dGU6IHN0cmluZztcbiAgICBwdWJsaWMgaGF2aW5nPzogYW55O1xuICAgIHB1YmxpYyBwYXRoPzogc3RyaW5nO1xuICAgIHB1YmxpYyBjb25kaXRpb24/OiBGaWx0ZXJDb25kaXRpb247XG4gICAgcHVibGljIHBhdGhDb25kaXRpb24/OiBQYXRoQ29uZGl0aW9uO1xuICAgIHB1YmxpYyBqc29uPzogSnNvbkNvbmZpZztcbiAgICBwdWJsaWMgcHJpdmF0ZT86IGJvb2xlYW47XG4gICAgcHVibGljIHBhcmFub2lkID0gdHJ1ZTtcblxuICAgIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGUoZGVmaW5pdGlvbjogRmlsdGVyRGVmaW5pdGlvbikge1xuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbltcIl90eXBlXCJdID09PSBcImZpbHRlclwiO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihkZWZpbml0aW9uPzogQmFzZUZpbHRlckRlZmluaXRpb24pIHtcbiAgICAgICAgaWYgKGRlZmluaXRpb24pIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGVmaW5pdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkT3BlcmF0b3JzKC4uLm9wZXJhdG9yOiAoRmlsdGVyT3BlcmF0b3JUeXBlcyB8IEN1c3RvbU9wZXJhdG9yKVtdKTogRmlsdGVyIHtcbiAgICAgICAgdGhpcy5vcGVyYXRvcnMucHVzaCguLi5vcGVyYXRvcik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVPcGVyYXRvcnMoLi4ub3BlcmF0b3I6IChGaWx0ZXJPcGVyYXRvclR5cGVzIHwgQ3VzdG9tT3BlcmF0b3IpW10pOiBGaWx0ZXIge1xuICAgICAgICB0aGlzLm9wZXJhdG9ycyA9IHRoaXMub3BlcmF0b3JzLmZpbHRlcih4ID0+ICFvcGVyYXRvci5zb21lKG9wID0+IG9wID09PSB4KSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRPcGVyYXRvcnMoLi4ub3BlcmF0b3I6IChGaWx0ZXJPcGVyYXRvclR5cGVzIHwgQ3VzdG9tT3BlcmF0b3IpW10pOiBGaWx0ZXIge1xuICAgICAgICB0aGlzLm9wZXJhdG9ycyA9IFsuLi5vcGVyYXRvcl07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRDb25maWcoa2V5OiBzdHJpbmcsIHVzZXI/OiBEYXRhRmlsdGVyVXNlck1vZGVsKTogUHJvbWlzZTxGaWx0ZXJCYXNlQ29uZmlndXJhdGlvbk1vZGVsPiB7XG4gICAgICAgIGlmICh0aGlzLnByaXZhdGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIG9wZXJhdG9yczogYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5vcGVyYXRvcnMubWFwKGFzeW5jIHggPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHgsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBhd2FpdCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldFRyYW5zbGF0aW9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI/Lmxhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlclV0aWxzLmdldE9wZXJhdG9yVHJhbnNsYXRpb25LZXkoeClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogeC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBhd2FpdCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldFRyYW5zbGF0aW9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj8ubGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJVdGlscy5nZXRDdXN0b21PcGVyYXRvclRyYW5zbGF0aW9uS2V5KGtleSwgeC5uYW1lKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pKVxuICAgICAgICB9IGFzIEZpbHRlckJhc2VDb25maWd1cmF0aW9uTW9kZWw7XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JvdXApIHtcbiAgICAgICAgICAgIGNvbmZpZy5ncm91cCA9IHtcbiAgICAgICAgICAgICAgICBrZXk6IHRoaXMuZ3JvdXAsXG4gICAgICAgICAgICAgICAgbmFtZTogYXdhaXQgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXRUcmFuc2xhdGlvbih1c2VyPy5sYW5ndWFnZSwgRmlsdGVyVXRpbHMuZ2V0R3JvdXBUcmFuc2xhdGlvbktleSh0aGlzLmdyb3VwKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRXaGVyZU9wdGlvbnMocnVsZTogUXVlcnlSdWxlTW9kZWwsIG5hbWU/OiBzdHJpbmcpOiBQcm9taXNlPFdoZXJlT3B0aW9ucz4ge1xuICAgICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgICAgIG5hbWUgPSB0aGlzLnBhdGggPyBTZXF1ZWxpemVVdGlscy5nZXRBdHRyaWJ1dGVGdWxsTmFtZSh0aGlzLmF0dHJpYnV0ZSwgdGhpcy5wYXRoKSA6IHRoaXMuYXR0cmlidXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3AgPSB0aGlzLm9wZXJhdG9ycy5maW5kKHggPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geC5uYW1lID09PSBydWxlLm9wZXJhdGlvbjtcbiAgICAgICAgfSkgYXMgQ3VzdG9tT3BlcmF0b3I7XG4gICAgICAgIGlmIChvcD8ub3BlcmF0b3IpIHtcbiAgICAgICAgICAgIHJ1bGUub3BlcmF0aW9uID0gb3Aub3BlcmF0b3I7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB3aGVyZSA9IChydWxlPy52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuaGF2aW5nKSA/XG4gICAgICAgICAgICB0aGlzLmdldENvbmRpdGlvbldoZXJlT3B0aW9ucyhudWxsLCBydWxlKSA6XG4gICAgICAgICAgICB0aGlzLmdldENvbmRpdGlvbldoZXJlT3B0aW9ucyh0aGlzLnRyYW5zZm9ybUNvbmRpdGlvbihydWxlLCBuYW1lKSwgcnVsZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3BlcmF0b3JXaGVyZU9wdGlvbnMocnVsZS5vcGVyYXRpb24sIHdoZXJlLCBydWxlLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0SGF2aW5nT3B0aW9ucyhydWxlOiBRdWVyeVJ1bGVNb2RlbCk6IFByb21pc2U8V2hlcmVPcHRpb25zPiB7XG4gICAgICAgIGlmICghdGhpcy5oYXZpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldE9wZXJhdG9ySGF2aW5nT3B0aW9ucyhydWxlLm9wZXJhdGlvbiwgbnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgb3B0aW9uczogV2hlcmVPcHRpb25zO1xuICAgICAgICBpZiAodGhpcy5oYXZpbmcuYXR0cmlidXRlKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gdGhpcy5oYXZpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IFNlcXVlbGl6ZVV0aWxzLmdlbmVyYXRlV2hlcmVWYWx1ZShydWxlKSBhcyBXaGVyZU9wZXJhdG9ycztcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zID0gd2hlcmUodGhpcy5oYXZpbmcsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldE9wZXJhdG9ySGF2aW5nT3B0aW9ucyhydWxlLm9wZXJhdGlvbiwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVzZVBhdGhDb25kaXRpb24ocXVlcnk6IFF1ZXJ5TW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhdGhDb25kaXRpb24gfHwgdHlwZW9mIHRoaXMucGF0aENvbmRpdGlvbiA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnBhdGhDb25kaXRpb24pO1xuICAgICAgICBjb25zdCBydWxlcyA9IHRoaXMuZ2V0UnVsZUZyb21LZXlzKHF1ZXJ5LCBrZXlzKTtcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoICE9PSBydWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBydWxlcy5ldmVyeSh4ID0+IHRoaXMucGF0aENvbmRpdGlvblt4LmlkXSA9PT0geC52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldENvbmRpdGlvbldoZXJlT3B0aW9ucyh3aGVyZTogV2hlcmVPcHRpb25zLCBydWxlOiBRdWVyeVJ1bGVNb2RlbCk6IFdoZXJlT3B0aW9ucyB7XG4gICAgICAgIGlmICghdGhpcy5jb25kaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB3aGVyZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbnMgPSB3aGVyZSA/IFt3aGVyZV0gOiBbXTtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5jb25kaXRpb24uY29uZGl0aW9uID09PSBcImFuZFwiID8geyBbT3AuYW5kXTogY29uZGl0aW9ucyB9IDogeyBbT3Aub3JdOiBjb25kaXRpb25zIH07XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVSdWxlV2hlcmVPcHRpb25zKHRoaXMuY29uZGl0aW9uLCBjb25kaXRpb25zLCBydWxlKTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVSdWxlV2hlcmVPcHRpb25zKGZpbHRlcjogRmlsdGVyQ29uZGl0aW9uLCBvcHRpb25zOiBXaGVyZU9wdGlvbnNbXSwgcGFyZW50UnVsZTogUXVlcnlSdWxlTW9kZWwpIHtcbiAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIGZpbHRlci5ydWxlcykge1xuICAgICAgICAgICAgY29uc3QgYyA9IHJ1bGUgYXMgRmlsdGVyQ29uZGl0aW9uO1xuICAgICAgICAgICAgaWYgKGMuY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29uZGl0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaChjLmNvbmRpdGlvbiA9PT0gXCJhbmRcIiA/IHsgW09wLmFuZF06IGNvbmRpdGlvbnMgfSA6IHsgW09wLm9yXTogW10gfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJ1bGVXaGVyZU9wdGlvbnMoYywgY29uZGl0aW9ucywgcGFyZW50UnVsZSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCByID0gcnVsZSBhcyBGaWx0ZXJDb25kaXRpb25SdWxlO1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHIucGF0aCA/IFNlcXVlbGl6ZVV0aWxzLmdldEF0dHJpYnV0ZUZ1bGxOYW1lKHIua2V5LCByLnBhdGgpIDogci5rZXk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHIudmFsdWUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHIgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiByLnZhbHVlKHBhcmVudFJ1bGUudmFsdWUpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBbbmFtZV06IFNlcXVlbGl6ZVV0aWxzLmdlbmVyYXRlV2hlcmVWYWx1ZShyIGFzIFJ1bGVNb2RlbClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldE9wZXJhdG9ySGF2aW5nT3B0aW9ucyhvcGVyYXRvcjogRmlsdGVyT3BlcmF0b3JzLCB3aGVyZTogV2hlcmVPcHRpb25zKTogV2hlcmVPcHRpb25zIHtcbiAgICAgICAgY29uc3Qgb3AgPSB0aGlzLm9wZXJhdG9ycy5maW5kKHggPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geC5uYW1lID09PSBvcGVyYXRvcjtcbiAgICAgICAgfSkgYXMgQ3VzdG9tT3BlcmF0b3I7XG4gICAgICAgIGlmICghb3ApIHtcbiAgICAgICAgICAgIHJldHVybiB3aGVyZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb3AuaGF2aW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gd2hlcmU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2hlcmVcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgW09wLmFuZF06IFt3aGVyZSwgb3AuaGF2aW5nXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IG9wLmhhdmluZztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0T3BlcmF0b3JXaGVyZU9wdGlvbnMob3BlcmF0b3I6IEZpbHRlck9wZXJhdG9ycywgd2hlcmU6IFdoZXJlT3B0aW9ucywgdmFsdWU6IGFueSk6IFdoZXJlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IG9wID0gdGhpcy5vcGVyYXRvcnMuZmluZCh4ID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHgubmFtZSA9PT0gb3BlcmF0b3I7XG4gICAgICAgIH0pIGFzIEN1c3RvbU9wZXJhdG9yO1xuICAgICAgICBpZiAoIW9wKSB7XG4gICAgICAgICAgICByZXR1cm4gd2hlcmU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW9wLndoZXJlKSB7XG4gICAgICAgICAgICByZXR1cm4gd2hlcmU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvcFdoZXJlID0gdHlwZW9mIG9wLndoZXJlID09PSBcImZ1bmN0aW9uXCIgPyBvcC53aGVyZSh2YWx1ZSkgOiBvcC53aGVyZTtcbiAgICAgICAgcmV0dXJuIHdoZXJlXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIFtPcC5hbmRdOiBbd2hlcmUsIG9wV2hlcmVdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogb3BXaGVyZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJ1bGVGcm9tS2V5cyhxdWVyeTogUXVlcnlNb2RlbCwga2V5czogc3RyaW5nW10pOiBRdWVyeVJ1bGVNb2RlbFtdIHtcbiAgICAgICAgY29uc3QgcnVsZXM6IFF1ZXJ5UnVsZU1vZGVsW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIHF1ZXJ5LnJ1bGVzKSB7XG4gICAgICAgICAgICBpZiAoKHJ1bGUgYXMgUXVlcnlNb2RlbCkuY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAgICAgcnVsZXMucHVzaCguLi50aGlzLmdldFJ1bGVGcm9tS2V5cyhydWxlIGFzIFF1ZXJ5TW9kZWwsIGtleXMpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5cy5zb21lKHggPT4gKHJ1bGUgYXMgUXVlcnlSdWxlTW9kZWwpLmlkID09PSB4KSkge1xuICAgICAgICAgICAgICAgIHJ1bGVzLnB1c2gocnVsZSBhcyBRdWVyeVJ1bGVNb2RlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcnVsZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1Db25kaXRpb24ocnVsZTogUXVlcnlSdWxlTW9kZWwsIG5hbWU6IHN0cmluZyk6IFdoZXJlT3B0aW9ucyB7XG4gICAgICAgIGlmICghdGhpcy5qc29uKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIFtuYW1lXTogU2VxdWVsaXplVXRpbHMuZ2VuZXJhdGVXaGVyZVZhbHVlKHJ1bGUpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuanNvbi50eXBlID09PSBcImFycmF5XCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUZvckpzb25BcnJheShydWxlLCBuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUZvckpzb25PYmplY3QocnVsZSwgbmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1Gb3JKc29uQXJyYXkocnVsZTogUXVlcnlSdWxlTW9kZWwsIG5hbWU6IHN0cmluZyk6IFdoZXJlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGNvbE5hbWUgPSB0aGlzLnBhdGggPyBTZXF1ZWxpemUuY29sKG5hbWUpIDogU2VxdWVsaXplLmxpdGVyYWwobmFtZSk7XG4gICAgICAgIGlmIChydWxlLm9wZXJhdGlvbiA9PT0gRmlsdGVyT3BlcmF0b3JUeXBlcy5Db250YWlucyB8fCBydWxlLm9wZXJhdGlvbiA9PT0gRmlsdGVyT3BlcmF0b3JUeXBlcy5Ob3RDb250YWlucykge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBXZSBvdmVycmlkZSB0aGUgcnVsZSB0byB1c2UgYW4gZXF1YWwgb3Igbm90IGVxdWFsIHdpdGggYSBKU09OX0NPTlRBSU5TIGZ1bmN0aW9uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IG5ld1J1bGUgPSB7XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBydWxlLm9wZXJhdGlvbiA9PT0gRmlsdGVyT3BlcmF0b3JUeXBlcy5Db250YWlucyA/IEZpbHRlck9wZXJhdG9yVHlwZXMuRXF1YWwgOiBGaWx0ZXJPcGVyYXRvclR5cGVzLk5vdEVxdWFsLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIHJ1bGUudmFsdWUgPT09IFwic3RyaW5nXCIgPyBgXCIke3J1bGUudmFsdWV9XCJgIDogcnVsZS52YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmpzb24ucGF0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3aGVyZShmbihcIkpTT05fQ09OVEFJTlNcIiwgY29sTmFtZSwgdmFsdWUsIHRoaXMuanNvbi5wYXRoKSwgU2VxdWVsaXplVXRpbHMuZ2VuZXJhdGVXaGVyZVZhbHVlKG5ld1J1bGUgYXMgUnVsZU1vZGVsKSBhcyBMb2dpY1R5cGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gd2hlcmUoZm4oXCJKU09OX0NPTlRBSU5TXCIsIGNvbE5hbWUsIHZhbHVlKSwgU2VxdWVsaXplVXRpbHMuZ2VuZXJhdGVXaGVyZVZhbHVlKG5ld1J1bGUgYXMgUnVsZU1vZGVsKSBhcyBMb2dpY1R5cGUpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybUZvckpzb25PYmplY3QocnVsZTogUXVlcnlSdWxlTW9kZWwsIG5hbWU6IHN0cmluZyk6IFdoZXJlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGNvbE5hbWUgPSB0aGlzLnBhdGggPyBTZXF1ZWxpemUuY29sKG5hbWUpIDogU2VxdWVsaXplLmxpdGVyYWwobmFtZSk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gU2VxdWVsaXplVXRpbHMuZ2VuZXJhdGVXaGVyZVZhbHVlKHJ1bGUpO1xuICAgICAgICBpZiAodGhpcy5qc29uLnBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBTZXF1ZWxpemUud2hlcmUoU2VxdWVsaXplLmZuKFwiSlNPTl9FWFRSQUNUXCIsIGNvbE5hbWUsIHRoaXMuanNvbi5wYXRoKSwgdmFsdWUgYXMgTG9naWNUeXBlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBTZXF1ZWxpemUud2hlcmUoU2VxdWVsaXplLmZuKFwiSlNPTl9FWFRSQUNUXCIsIGNvbE5hbWUpLCB2YWx1ZSBhcyBMb2dpY1R5cGUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
228
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9maWx0ZXIvZmlsdGVycy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQThGO0FBQzlGLDZCQUFpRTtBQUdqRSwyREFBdUQ7QUFDdkQsa0RBQThDO0FBMEQ5QyxNQUFzQixNQUFNO0lBeUJ4QixZQUFzQixVQUFpQztRQXhCL0MsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQWtCbEIsYUFBUSxHQUFHLElBQUksQ0FBQztRQU9uQixJQUFJLFVBQVUsRUFBRTtZQUNaLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQXhCRCxJQUFXLGdCQUFnQixDQUFDLGdCQUFrQztRQUMxRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7SUFDOUMsQ0FBQztJQWNNLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBNEI7UUFDL0MsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDO0lBQzVDLENBQUM7SUFRTSxZQUFZLENBQUMsR0FBRyxRQUFrRDtRQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxlQUFlLENBQUMsR0FBRyxRQUFrRDtRQUN4RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFlBQVksQ0FBQyxHQUFHLFFBQWtEO1FBQ3JFLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxD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Q0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2hCLE9BQU8scUJBQVMsQ0FBQyxLQUFLLENBQUMscUJBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQWtCLENBQUMsQ0FBQztTQUNyRztRQUVELE9BQU8scUJBQVMsQ0FBQyxLQUFLLENBQUMscUJBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEtBQWtCLENBQUMsQ0FBQztJQUN0RixDQUFDO0NBQ0o7QUFyUkQsd0JBcVJDIiwiZmlsZSI6ImxpYi9maWx0ZXIvZmlsdGVycy9maWx0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmbiwgTG9naWNUeXBlLCBPcCwgU2VxdWVsaXplLCB3aGVyZSwgV2hlcmVPcGVyYXRvcnMsIFdoZXJlT3B0aW9ucyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IERhdGFGaWx0ZXJVc2VyTW9kZWwsIEZpbHRlck9wZXJhdG9yVHlwZXMgfSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCB7IFRyYW5zbGF0ZUFkYXB0ZXIgfSBmcm9tIFwiLi4vLi4vYWRhcHRlcnMvdHJhbnNsYXRlLmFkYXB0ZXJcIjtcbmltcG9ydCB7IEluY2x1ZGVXaGVyZU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9pbmNsdWRlLm1vZGVsXCI7XG5pbXBvcnQgeyBTZXF1ZWxpemVVdGlscyB9IGZyb20gXCIuLi8uLi9zZXF1ZWxpemUudXRpbHNcIjtcbmltcG9ydCB7IEZpbHRlclV0aWxzIH0gZnJvbSBcIi4uL2ZpbHRlci51dGlsc1wiO1xuaW1wb3J0IHsgRmlsdGVyQmFzZUNvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gXCIuLi9tb2RlbHMvZmlsdGVyLWNvbmZpZ3VyYXRpb24ubW9kZWxcIjtcbmltcG9ydCB7IFF1ZXJ5TW9kZWwsIFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgUnVsZU1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9ydWxlLm1vZGVsXCI7XG5pbXBvcnQgeyBDdXN0b21PcGVyYXRvciwgRmlsdGVyT3BlcmF0b3JzIH0gZnJvbSBcIi4uL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XG5cbmV4cG9ydCB0eXBlIENvbmRpdGlvbiA9IFwiYW5kXCIgfCBcIm9yXCI7XG5cbi8vIFRPRE86IERlcHJlY2F0ZSBrZXkgdG8gdXNlIGF0dHJpYnV0ZSBpbnN0ZWFkIHRvIGJlIGNvbnNpc3RhbnQgd2l0aCB0aGUgQmFzZUZpbHRlckRlZmluaXRpb25cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyQ29uZGl0aW9uUnVsZSB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBvcGVyYXRpb246IEZpbHRlck9wZXJhdG9ycztcbiAgICB2YWx1ZTogKHVua25vd24gfCB1bmtub3duW10pIHwgKCh2YWx1ZTogdW5rbm93biB8IHVua25vd25bXSkgPT4gdW5rbm93biB8IHVua25vd25bXSlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJDb25kaXRpb24ge1xuICAgIGNvbmRpdGlvbjogQ29uZGl0aW9uO1xuICAgIHJ1bGVzOiAoRmlsdGVyQ29uZGl0aW9uUnVsZSB8IEZpbHRlckNvbmRpdGlvbilbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKc29uQ29uZmlnIHtcbiAgICB0eXBlOiBcImFycmF5XCIgfCBcIm9iamVjdFwiO1xuICAgIHBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFBhdGhDb25kaXRpb24gPSBib29sZWFuIHwge1xuICAgIFtmaWx0ZXI6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRmlsdGVyRGVmaW5pdGlvbiB7XG4gICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBoYXZpbmc/OiBhbnk7XG4gICAgcGFyYW5vaWQ/OiBib29sZWFuO1xuICAgIGNvbmRpdGlvbj86IEZpbHRlckNvbmRpdGlvbjtcbiAgICBncm91cD86IHN0cmluZztcbiAgICB3aGVyZT86IEluY2x1ZGVXaGVyZU1vZGVsO1xuICAgIHBhdGhDb25kaXRpb24/OiBQYXRoQ29uZGl0aW9uO1xuICAgIGpzb24/OiBKc29uQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogUHJpdmF0ZSBtZWFucyB0aGF0IHRoZSBjb25maWcgd2lsbCBub3QgYmUgcmV0dXJuZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRGVmaW5pdGlvbiBleHRlbmRzIEJhc2VGaWx0ZXJEZWZpbml0aW9uIHtcbiAgICB0eXBlOiBGaWx0ZXJUeXBlO1xuICAgIG9wZXJhdG9yczogKEZpbHRlck9wZXJhdG9yVHlwZXMgfCBDdXN0b21PcGVyYXRvcilbXTtcblxuICAgIGdldENvbmZpZzxSZXF1ZXN0PihrZXk6IHN0cmluZywgcmVxOiBSZXF1ZXN0LCB1c2VyPzogRGF0YUZpbHRlclVzZXJNb2RlbCk6IFByb21pc2U8RmlsdGVyQmFzZUNvbmZpZ3VyYXRpb25Nb2RlbD47XG4gICAgZ2V0V2hlcmVPcHRpb25zKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsKTogUHJvbWlzZTxXaGVyZU9wdGlvbnM+O1xuICAgIGdldEhhdmluZ09wdGlvbnMocnVsZTogUXVlcnlSdWxlTW9kZWwpOiBQcm9taXNlPFdoZXJlT3B0aW9ucz47XG4gICAgdXNlUGF0aENvbmRpdGlvbihxdWVyeTogUXVlcnlNb2RlbCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWx0ZXIgaW1wbGVtZW50cyBGaWx0ZXJEZWZpbml0aW9uIHtcbiAgICBwcml2YXRlIF90eXBlID0gXCJmaWx0ZXJcIjtcblxuICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlQWRhcHRlcjtcblxuICAgIHB1YmxpYyBzZXQgdHJhbnNsYXRlU2VydmljZSh0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVBZGFwdGVyKSB7XG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UgPSB0cmFuc2xhdGVTZXJ2aWNlO1xuICAgIH1cblxuICAgIHB1YmxpYyB0eXBlOiBGaWx0ZXJUeXBlO1xuICAgIHB1YmxpYyBvcGVyYXRvcnM6IChGaWx0ZXJPcGVyYXRvclR5cGVzIHwgQ3VzdG9tT3BlcmF0b3IpW107XG4gICAgcHVibGljIGdyb3VwOiBzdHJpbmc7XG4gICAgcHVibGljIGF0dHJpYnV0ZTogc3RyaW5nO1xuICAgIHB1YmxpYyBoYXZpbmc/OiBhbnk7XG4gICAgcHVibGljIHBhdGg/OiBzdHJpbmc7XG4gICAgcHVibGljIGNvbmRpdGlvbj86IEZpbHRlckNvbmRpdGlvbjtcbiAgICBwdWJsaWMgcGF0aENvbmRpdGlvbj86IFBhdGhDb25kaXRpb247XG4gICAgcHVibGljIGpzb24/OiBKc29uQ29uZmlnO1xuICAgIHB1YmxpYyBwcml2YXRlPzogYm9vbGVhbjtcbiAgICBwdWJsaWMgcGFyYW5vaWQgPSB0cnVlO1xuXG4gICAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZShkZWZpbml0aW9uOiBGaWx0ZXJEZWZpbml0aW9uKSB7XG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uW1wiX3R5cGVcIl0gPT09IFwiZmlsdGVyXCI7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGRlZmluaXRpb24/OiBCYXNlRmlsdGVyRGVmaW5pdGlvbikge1xuICAgICAgICBpZiAoZGVmaW5pdGlvbikge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBkZWZpbml0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhZGRPcGVyYXRvcnMoLi4ub3BlcmF0b3I6IChGaWx0ZXJPcGVyYXRvclR5cGVzIHwgQ3VzdG9tT3BlcmF0b3IpW10pOiBGaWx0ZXIge1xuICAgICAgICB0aGlzLm9wZXJhdG9ycy5wdXNoKC4uLm9wZXJhdG9yKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZU9wZXJhdG9ycyguLi5vcGVyYXRvcjogKEZpbHRlck9wZXJhdG9yVHlwZXMgfCBDdXN0b21PcGVyYXRvcilbXSk6IEZpbHRlciB7XG4gICAgICAgIHRoaXMub3BlcmF0b3JzID0gdGhpcy5vcGVyYXRvcnMuZmlsdGVyKHggPT4gIW9wZXJhdG9yLnNvbWUob3AgPT4gb3AgPT09IHgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9wZXJhdG9ycyguLi5vcGVyYXRvcjogKEZpbHRlck9wZXJhdG9yVHlwZXMgfCBDdXN0b21PcGVyYXRvcilbXSk6IEZpbHRlciB7XG4gICAgICAgIHRoaXMub3BlcmF0b3JzID0gWy4uLm9wZXJhdG9yXTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldENvbmZpZzxSZXF1ZXN0ID0gYW55PihrZXk6IHN0cmluZywgcmVxdWVzdDogUmVxdWVzdCwgdXNlcj86IERhdGFGaWx0ZXJVc2VyTW9kZWwpOiBQcm9taXNlPEZpbHRlckJhc2VDb25maWd1cmF0aW9uTW9kZWw+IHtcbiAgICAgICAgaWYgKHRoaXMucHJpdmF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgb3BlcmF0b3JzOiBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLm9wZXJhdG9ycy5tYXAoYXN5bmMgeCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGF3YWl0IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0VHJhbnNsYXRpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj8ubGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyVXRpbHMuZ2V0T3BlcmF0b3JUcmFuc2xhdGlvbktleSh4KVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiB4Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGF3YWl0IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0VHJhbnNsYXRpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyPy5sYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlclV0aWxzLmdldEN1c3RvbU9wZXJhdG9yVHJhbnNsYXRpb25LZXkoa2V5LCB4Lm5hbWUpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0gYXMgRmlsdGVyQmFzZUNvbmZpZ3VyYXRpb25Nb2RlbDtcblxuICAgICAgICBpZiAodGhpcy5ncm91cCkge1xuICAgICAgICAgICAgY29uZmlnLmdyb3VwID0ge1xuICAgICAgICAgICAgICAgIGtleTogdGhpcy5ncm91cCxcbiAgICAgICAgICAgICAgICBuYW1lOiBhd2FpdCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldFRyYW5zbGF0aW9uKHVzZXI/Lmxhbmd1YWdlLCBGaWx0ZXJVdGlscy5nZXRHcm91cFRyYW5zbGF0aW9uS2V5KHRoaXMuZ3JvdXApKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFdoZXJlT3B0aW9ucyhydWxlOiBRdWVyeVJ1bGVNb2RlbCwgbmFtZT86IHN0cmluZyk6IFByb21pc2U8V2hlcmVPcHRpb25zPiB7XG4gICAgICAgIGlmICghbmFtZSkge1xuICAgICAgICAgICAgbmFtZSA9IHRoaXMucGF0aCA/IFNlcXVlbGl6ZVV0aWxzLmdldEF0dHJpYnV0ZUZ1bGxOYW1lKHRoaXMuYXR0cmlidXRlLCB0aGlzLnBhdGgpIDogdGhpcy5hdHRyaWJ1dGU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvcCA9IHRoaXMub3BlcmF0b3JzLmZpbmQoeCA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB4Lm5hbWUgPT09IHJ1bGUub3BlcmF0aW9uO1xuICAgICAgICB9KSBhcyBDdXN0b21PcGVyYXRvcjtcbiAgICAgICAgaWYgKG9wPy5vcGVyYXRvcikge1xuICAgICAgICAgICAgcnVsZS5vcGVyYXRpb24gPSBvcC5vcGVyYXRvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdoZXJlID0gKHJ1bGU/LnZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy5oYXZpbmcpID9cbiAgICAgICAgICAgIHRoaXMuZ2V0Q29uZGl0aW9uV2hlcmVPcHRpb25zKG51bGwsIHJ1bGUpIDpcbiAgICAgICAgICAgIHRoaXMuZ2V0Q29uZGl0aW9uV2hlcmVPcHRpb25zKHRoaXMudHJhbnNmb3JtQ29uZGl0aW9uKHJ1bGUsIG5hbWUpLCBydWxlKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRPcGVyYXRvcldoZXJlT3B0aW9ucyhydWxlLm9wZXJhdGlvbiwgd2hlcmUsIHJ1bGUudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRIYXZpbmdPcHRpb25zKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsKTogUHJvbWlzZTxXaGVyZU9wdGlvbnM+IHtcbiAgICAgICAgaWYgKCF0aGlzLmhhdmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3BlcmF0b3JIYXZpbmdPcHRpb25zKHJ1bGUub3BlcmF0aW9uLCBudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBvcHRpb25zOiBXaGVyZU9wdGlvbnM7XG4gICAgICAgIGlmICh0aGlzLmhhdmluZy5hdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLmhhdmluZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gU2VxdWVsaXplVXRpbHMuZ2VuZXJhdGVXaGVyZVZhbHVlKHJ1bGUpIGFzIFdoZXJlT3BlcmF0b3JzO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB3aGVyZSh0aGlzLmhhdmluZywgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3BlcmF0b3JIYXZpbmdPcHRpb25zKHJ1bGUub3BlcmF0aW9uLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXNlUGF0aENvbmRpdGlvbihxdWVyeTogUXVlcnlNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMucGF0aENvbmRpdGlvbiB8fCB0eXBlb2YgdGhpcy5wYXRoQ29uZGl0aW9uID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMucGF0aENvbmRpdGlvbik7XG4gICAgICAgIGNvbnN0IHJ1bGVzID0gdGhpcy5nZXRSdWxlRnJvbUtleXMocXVlcnksIGtleXMpO1xuICAgICAgICBpZiAoa2V5cy5sZW5ndGggIT09IHJ1bGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJ1bGVzLmV2ZXJ5KHggPT4gdGhpcy5wYXRoQ29uZGl0aW9uW3guaWRdID09PSB4LnZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Q29uZGl0aW9uV2hlcmVPcHRpb25zKHdoZXJlOiBXaGVyZU9wdGlvbnMsIHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsKTogV2hlcmVPcHRpb25zIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHdoZXJlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29uZGl0aW9ucyA9IHdoZXJlID8gW3doZXJlXSA6IFtdO1xuICAgICAgICBjb25zdCBvcHRpb24gPSB0aGlzLmNvbmRpdGlvbi5jb25kaXRpb24gPT09IFwiYW5kXCIgPyB7IFtPcC5hbmRdOiBjb25kaXRpb25zIH0gOiB7IFtPcC5vcl06IGNvbmRpdGlvbnMgfTtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVJ1bGVXaGVyZU9wdGlvbnModGhpcy5jb25kaXRpb24sIGNvbmRpdGlvbnMsIHJ1bGUpO1xuICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZW5lcmF0ZVJ1bGVXaGVyZU9wdGlvbnMoZmlsdGVyOiBGaWx0ZXJDb25kaXRpb24sIG9wdGlvbnM6IFdoZXJlT3B0aW9uc1tdLCBwYXJlbnRSdWxlOiBRdWVyeVJ1bGVNb2RlbCkge1xuICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgZmlsdGVyLnJ1bGVzKSB7XG4gICAgICAgICAgICBjb25zdCBjID0gcnVsZSBhcyBGaWx0ZXJDb25kaXRpb247XG4gICAgICAgICAgICBpZiAoYy5jb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb25zID0gW107XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGMuY29uZGl0aW9uID09PSBcImFuZFwiID8geyBbT3AuYW5kXTogY29uZGl0aW9ucyB9IDogeyBbT3Aub3JdOiBbXSB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlUnVsZVdoZXJlT3B0aW9ucyhjLCBjb25kaXRpb25zLCBwYXJlbnRSdWxlKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHIgPSBydWxlIGFzIEZpbHRlckNvbmRpdGlvblJ1bGU7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gci5wYXRoID8gU2VxdWVsaXplVXRpbHMuZ2V0QXR0cmlidXRlRnVsbE5hbWUoci5rZXksIHIucGF0aCkgOiByLmtleTtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygci52YWx1ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgciA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHIudmFsdWUocGFyZW50UnVsZS52YWx1ZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIFtuYW1lXTogU2VxdWVsaXplVXRpbHMuZ2VuZXJhdGVXaGVyZVZhbHVlKHIgYXMgUnVsZU1vZGVsKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0T3BlcmF0b3JIYXZpbmdPcHRpb25zKG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvcnMsIHdoZXJlOiBXaGVyZU9wdGlvbnMpOiBXaGVyZU9wdGlvbnMge1xuICAgICAgICBjb25zdCBvcCA9IHRoaXMub3BlcmF0b3JzLmZpbmQoeCA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB4Lm5hbWUgPT09IG9wZXJhdG9yO1xuICAgICAgICB9KSBhcyBDdXN0b21PcGVyYXRvcjtcbiAgICAgICAgaWYgKCFvcCkge1xuICAgICAgICAgICAgcmV0dXJuIHdoZXJlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvcC5oYXZpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiB3aGVyZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB3aGVyZVxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBbT3AuYW5kXTogW3doZXJlLCBvcC5oYXZpbmddXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogb3AuaGF2aW5nO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRPcGVyYXRvcldoZXJlT3B0aW9ucyhvcGVyYXRvcjogRmlsdGVyT3BlcmF0b3JzLCB3aGVyZTogV2hlcmVPcHRpb25zLCB2YWx1ZTogYW55KTogV2hlcmVPcHRpb25zIHtcbiAgICAgICAgY29uc3Qgb3AgPSB0aGlzLm9wZXJhdG9ycy5maW5kKHggPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geC5uYW1lID09PSBvcGVyYXRvcjtcbiAgICAgICAgfSkgYXMgQ3VzdG9tT3BlcmF0b3I7XG4gICAgICAgIGlmICghb3ApIHtcbiAgICAgICAgICAgIHJldHVybiB3aGVyZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb3Aud2hlcmUpIHtcbiAgICAgICAgICAgIHJldHVybiB3aGVyZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9wV2hlcmUgPSB0eXBlb2Ygb3Aud2hlcmUgPT09IFwiZnVuY3Rpb25cIiA/IG9wLndoZXJlKHZhbHVlKSA6IG9wLndoZXJlO1xuICAgICAgICByZXR1cm4gd2hlcmVcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgW09wLmFuZF06IFt3aGVyZSwgb3BXaGVyZV1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBvcFdoZXJlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UnVsZUZyb21LZXlzKHF1ZXJ5OiBRdWVyeU1vZGVsLCBrZXlzOiBzdHJpbmdbXSk6IFF1ZXJ5UnVsZU1vZGVsW10ge1xuICAgICAgICBjb25zdCBydWxlczogUXVlcnlSdWxlTW9kZWxbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcXVlcnkucnVsZXMpIHtcbiAgICAgICAgICAgIGlmICgocnVsZSBhcyBRdWVyeU1vZGVsKS5jb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgICBydWxlcy5wdXNoKC4uLnRoaXMuZ2V0UnVsZUZyb21LZXlzKHJ1bGUgYXMgUXVlcnlNb2RlbCwga2V5cykpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXlzLnNvbWUoeCA9PiAocnVsZSBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgPT09IHgpKSB7XG4gICAgICAgICAgICAgICAgcnVsZXMucHVzaChydWxlIGFzIFF1ZXJ5UnVsZU1vZGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBydWxlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybUNvbmRpdGlvbihydWxlOiBRdWVyeVJ1bGVNb2RlbCwgbmFtZTogc3RyaW5nKTogV2hlcmVPcHRpb25zIHtcbiAgICAgICAgaWYgKCF0aGlzLmpzb24pIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgW25hbWVdOiBTZXF1ZWxpemVVdGlscy5nZW5lcmF0ZVdoZXJlVmFsdWUocnVsZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5qc29uLnR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtRm9ySnNvbkFycmF5KHJ1bGUsIG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtRm9ySnNvbk9iamVjdChydWxlLCBuYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybUZvckpzb25BcnJheShydWxlOiBRdWVyeVJ1bGVNb2RlbCwgbmFtZTogc3RyaW5nKTogV2hlcmVPcHRpb25zIHtcbiAgICAgICAgY29uc3QgY29sTmFtZSA9IHRoaXMucGF0aCA/IFNlcXVlbGl6ZS5jb2wobmFtZSkgOiBTZXF1ZWxpemUubGl0ZXJhbChuYW1lKTtcbiAgICAgICAgaWYgKHJ1bGUub3BlcmF0aW9uID09PSBGaWx0ZXJPcGVyYXRvclR5cGVzLkNvbnRhaW5zIHx8IHJ1bGUub3BlcmF0aW9uID09PSBGaWx0ZXJPcGVyYXRvclR5cGVzLk5vdENvbnRhaW5zKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFdlIG92ZXJyaWRlIHRoZSBydWxlIHRvIHVzZSBhbiBlcXVhbCBvciBub3QgZXF1YWwgd2l0aCBhIEpTT05fQ09OVEFJTlMgZnVuY3Rpb25cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgbmV3UnVsZSA9IHtcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IHJ1bGUub3BlcmF0aW9uID09PSBGaWx0ZXJPcGVyYXRvclR5cGVzLkNvbnRhaW5zID8gRmlsdGVyT3BlcmF0b3JUeXBlcy5FcXVhbCA6IEZpbHRlck9wZXJhdG9yVHlwZXMuTm90RXF1YWwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0eXBlb2YgcnVsZS52YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IGBcIiR7cnVsZS52YWx1ZX1cImAgOiBydWxlLnZhbHVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuanNvbi5wYXRoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdoZXJlKGZuKFwiSlNPTl9DT05UQUlOU1wiLCBjb2xOYW1lLCB2YWx1ZSwgdGhpcy5qc29uLnBhdGgpLCBTZXF1ZWxpemVVdGlscy5nZW5lcmF0ZVdoZXJlVmFsdWUobmV3UnVsZSBhcyBSdWxlTW9kZWwpIGFzIExvZ2ljVHlwZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB3aGVyZShmbihcIkpTT05fQ09OVEFJTlNcIiwgY29sTmFtZSwgdmFsdWUpLCBTZXF1ZWxpemVVdGlscy5nZW5lcmF0ZVdoZXJlVmFsdWUobmV3UnVsZSBhcyBSdWxlTW9kZWwpIGFzIExvZ2ljVHlwZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgdHJhbnNmb3JtRm9ySnNvbk9iamVjdChydWxlOiBRdWVyeVJ1bGVNb2RlbCwgbmFtZTogc3RyaW5nKTogV2hlcmVPcHRpb25zIHtcbiAgICAgICAgY29uc3QgY29sTmFtZSA9IHRoaXMucGF0aCA/IFNlcXVlbGl6ZS5jb2wobmFtZSkgOiBTZXF1ZWxpemUubGl0ZXJhbChuYW1lKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBTZXF1ZWxpemVVdGlscy5nZW5lcmF0ZVdoZXJlVmFsdWUocnVsZSk7XG4gICAgICAgIGlmICh0aGlzLmpzb24ucGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZS53aGVyZShTZXF1ZWxpemUuZm4oXCJKU09OX0VYVFJBQ1RcIiwgY29sTmFtZSwgdGhpcy5qc29uLnBhdGgpLCB2YWx1ZSBhcyBMb2dpY1R5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZS53aGVyZShTZXF1ZWxpemUuZm4oXCJKU09OX0VYVFJBQ1RcIiwgY29sTmFtZSksIHZhbHVlIGFzIExvZ2ljVHlwZSk7XG4gICAgfVxufVxuIl19
|
|
@@ -26,7 +26,7 @@ export declare class RadioFilter extends Filter implements RadioFilterDefinition
|
|
|
26
26
|
operators: FilterOperatorTypes[];
|
|
27
27
|
options: RadioFilterOption[];
|
|
28
28
|
constructor(definition: BaseFilterDefinition & RadioFilterDefinition);
|
|
29
|
-
getConfig(key: string, user?: DataFilterUserModel): Promise<RadioFilterConfigurationModel>;
|
|
29
|
+
getConfig<Request>(key: string, request: Request, user?: DataFilterUserModel): Promise<RadioFilterConfigurationModel>;
|
|
30
30
|
getWhereOptions(rule: QueryRuleModel): Promise<WhereOptions>;
|
|
31
31
|
getHavingOptions(rule: QueryRuleModel): Promise<WhereOptions>;
|
|
32
32
|
}
|
|
@@ -12,12 +12,12 @@ class RadioFilter extends filter_1.Filter {
|
|
|
12
12
|
this.type = type_1.FilterType.Radio;
|
|
13
13
|
this.operators = [operators_1.FilterOperatorTypes.Equal];
|
|
14
14
|
}
|
|
15
|
-
async getConfig(key, user) {
|
|
15
|
+
async getConfig(key, request, user) {
|
|
16
16
|
if (this.private) {
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
19
|
return {
|
|
20
|
-
...(await super.getConfig(key, user)),
|
|
20
|
+
...(await super.getConfig(key, request, user)),
|
|
21
21
|
options: await Promise.all(this.options.map(async (x) => ({
|
|
22
22
|
key: x.key,
|
|
23
23
|
name: await this._translateService.getTranslation(user === null || user === void 0 ? void 0 : user.language, filter_utils_1.FilterUtils.getRadioOptionTranslationKey(key, x.key))
|
|
@@ -61,4 +61,4 @@ class RadioFilter extends filter_1.Filter {
|
|
|
61
61
|
}
|
|
62
62
|
exports.RadioFilter = RadioFilter;
|
|
63
63
|
|
|
64
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9maWx0ZXIvZmlsdGVycy9yYWRpby5maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTZDO0FBRTdDLGtEQUE4QztBQUc5Qyw0Q0FBbUQ7QUFDbkQsa0NBQXFDO0FBQ3JDLHFDQUF3RDtBQXNCeEQsTUFBYSxXQUFZLFNBQVEsZUFBTTtJQUtuQyxZQUFZLFVBQXdEO1FBQ2hFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUxmLFNBQUksR0FBRyxpQkFBVSxDQUFDLEtBQUssQ0FBQztRQUN4QixjQUFTLEdBQUcsQ0FBQywrQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUsvQyxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVMsQ0FBVSxHQUFXLEVBQUUsT0FBZ0IsRUFBRSxJQUEwQjtRQUNyRixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxPQUFPO1NBQ1Y7UUFFRCxPQUFPO1lBQ0gsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlDLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEQsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO2dCQUNWLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQzdDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxRQUFRLEVBQ2QsMEJBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUN2RDthQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ1AsQ0FBQztJQUNOLENBQUM7SUFFTSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQW9CO1FBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0QztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQztnQkFDekIsR0FBRyxJQUFJO2dCQUNQLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVM7YUFDL0MsQ0FBQyxDQUFDO1NBQ047UUFFRCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ3hHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRSxVQUFVLENBQUMsSUFBSSxDQUNYLEtBQUssQ0FBQyxlQUFlLENBQUM7WUFDbEIsR0FBRyxJQUFJO1lBQ1AsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTO1NBQy9DLENBQUMsQ0FDTCxDQUFDO1FBQ0YsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFvQjs7UUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkM7UUFFRCxPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztZQUMxQixHQUFHLElBQUk7WUFDUCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsU0FBUyxFQUFFLE1BQUEsTUFBTSxDQUFDLFFBQVEsbUNBQUksSUFBSSxDQUFDLFNBQVM7U0FDL0MsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBakVELGtDQWlFQyIsImZpbGUiOiJsaWIvZmlsdGVyL2ZpbHRlcnMvcmFkaW8uZmlsdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3AsIFdoZXJlT3B0aW9ucyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IERhdGFGaWx0ZXJVc2VyTW9kZWwsIEZpbHRlckNvbmRpdGlvbiB9IGZyb20gXCIuLi8uLlwiO1xuaW1wb3J0IHsgRmlsdGVyVXRpbHMgfSBmcm9tIFwiLi4vZmlsdGVyLnV0aWxzXCI7XG5pbXBvcnQgeyBRdWVyeVJ1bGVNb2RlbCB9IGZyb20gXCIuLi9tb2RlbHNcIjtcbmltcG9ydCB7IEZpbHRlckJhc2VDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL2ZpbHRlci1jb25maWd1cmF0aW9uLm1vZGVsXCI7XG5pbXBvcnQgeyBGaWx0ZXJPcGVyYXRvclR5cGVzIH0gZnJvbSBcIi4uL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XG5pbXBvcnQgeyBCYXNlRmlsdGVyRGVmaW5pdGlvbiwgRmlsdGVyIH0gZnJvbSBcIi4vZmlsdGVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmFkaW9GaWx0ZXJPcHRpb24ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiB1bmtub3duO1xuICAgIG9wZXJhdG9yPzogRmlsdGVyT3BlcmF0b3JUeXBlcztcbiAgICBjb25kaXRpb24/OiBGaWx0ZXJDb25kaXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmFkaW9GaWx0ZXJEZWZpbml0aW9uIHtcbiAgICBvcHRpb25zOiBSYWRpb0ZpbHRlck9wdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhZGlvRmlsdGVyT3B0aW9uQ29uZmlndXJhdGlvbiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYWRpb0ZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCBleHRlbmRzIEZpbHRlckJhc2VDb25maWd1cmF0aW9uTW9kZWwge1xuICAgIG9wdGlvbnM6IFJhZGlvRmlsdGVyT3B0aW9uQ29uZmlndXJhdGlvbltdO1xufVxuXG5leHBvcnQgY2xhc3MgUmFkaW9GaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIgaW1wbGVtZW50cyBSYWRpb0ZpbHRlckRlZmluaXRpb24ge1xuICAgIHB1YmxpYyB0eXBlID0gRmlsdGVyVHlwZS5SYWRpbztcbiAgICBwdWJsaWMgb3BlcmF0b3JzID0gW0ZpbHRlck9wZXJhdG9yVHlwZXMuRXF1YWxdO1xuICAgIHB1YmxpYyBvcHRpb25zOiBSYWRpb0ZpbHRlck9wdGlvbltdO1xuXG4gICAgY29uc3RydWN0b3IoZGVmaW5pdGlvbjogQmFzZUZpbHRlckRlZmluaXRpb24gJiBSYWRpb0ZpbHRlckRlZmluaXRpb24pIHtcbiAgICAgICAgc3VwZXIoZGVmaW5pdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldENvbmZpZzxSZXF1ZXN0PihrZXk6IHN0cmluZywgcmVxdWVzdDogUmVxdWVzdCwgdXNlcj86IERhdGFGaWx0ZXJVc2VyTW9kZWwpOiBQcm9taXNlPFJhZGlvRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsPiB7XG4gICAgICAgIGlmICh0aGlzLnByaXZhdGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi4oYXdhaXQgc3VwZXIuZ2V0Q29uZmlnKGtleSwgcmVxdWVzdCwgdXNlcikpLFxuICAgICAgICAgICAgb3B0aW9uczogYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5vcHRpb25zLm1hcChhc3luYyB4ID0+ICh7XG4gICAgICAgICAgICAgICAga2V5OiB4LmtleSxcbiAgICAgICAgICAgICAgICBuYW1lOiBhd2FpdCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldFRyYW5zbGF0aW9uKFxuICAgICAgICAgICAgICAgICAgICB1c2VyPy5sYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgRmlsdGVyVXRpbHMuZ2V0UmFkaW9PcHRpb25UcmFuc2xhdGlvbktleShrZXksIHgua2V5KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pKSlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0V2hlcmVPcHRpb25zKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsKTogUHJvbWlzZTxXaGVyZU9wdGlvbnM+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoeCA9PiB4LmtleSA9PT0gcnVsZS52YWx1ZSk7XG4gICAgICAgIGlmICghb3B0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VwZXIuZ2V0V2hlcmVPcHRpb25zKHJ1bGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvcHRpb24uY29uZGl0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VwZXIuZ2V0V2hlcmVPcHRpb25zKHtcbiAgICAgICAgICAgICAgICAuLi5ydWxlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBvcHRpb24ub3BlcmF0b3IgfHwgcnVsZS5vcGVyYXRpb25cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29uZGl0aW9ucyA9IFtdO1xuICAgICAgICBjb25zdCB3aGVyZSA9IG9wdGlvbi5jb25kaXRpb24uY29uZGl0aW9uID09PSBcImFuZFwiID8geyBbT3AuYW5kXTogY29uZGl0aW9ucyB9IDogeyBbT3Aub3JdOiBjb25kaXRpb25zIH07XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVSdWxlV2hlcmVPcHRpb25zKG9wdGlvbi5jb25kaXRpb24sIGNvbmRpdGlvbnMsIHJ1bGUpO1xuICAgICAgICBjb25kaXRpb25zLnB1c2goXG4gICAgICAgICAgICBzdXBlci5nZXRXaGVyZU9wdGlvbnMoe1xuICAgICAgICAgICAgICAgIC4uLnJ1bGUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IG9wdGlvbi5vcGVyYXRvciB8fCBydWxlLm9wZXJhdGlvblxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHdoZXJlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRIYXZpbmdPcHRpb25zKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsKTogUHJvbWlzZTxXaGVyZU9wdGlvbnM+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoeCA9PiB4LmtleSA9PT0gcnVsZS52YWx1ZSk7XG4gICAgICAgIGlmICghb3B0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VwZXIuZ2V0SGF2aW5nT3B0aW9ucyhydWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci5nZXRIYXZpbmdPcHRpb25zKHtcbiAgICAgICAgICAgIC4uLnJ1bGUsXG4gICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgb3BlcmF0aW9uOiBvcHRpb24ub3BlcmF0b3IgPz8gcnVsZS5vcGVyYXRpb25cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -6,17 +6,27 @@ export interface SelectFilterValue {
|
|
|
6
6
|
id: number | string;
|
|
7
7
|
name: string;
|
|
8
8
|
}
|
|
9
|
+
export interface SelectFilterGetValuesOptions<T = any, User = any, Request = any> {
|
|
10
|
+
value: T;
|
|
11
|
+
user?: User;
|
|
12
|
+
request?: Request;
|
|
13
|
+
}
|
|
14
|
+
export interface SelectFilterGetResourceOptions<User = any, Request = any> {
|
|
15
|
+
id: number | string;
|
|
16
|
+
user?: User;
|
|
17
|
+
request?: Request;
|
|
18
|
+
}
|
|
9
19
|
export interface SelectFilterDefinition<T> {
|
|
10
|
-
values: (value
|
|
20
|
+
values: ({ value, user, request }: SelectFilterGetValuesOptions) => Promise<SelectFilterValue[]>;
|
|
11
21
|
lazyLoading?: boolean;
|
|
12
|
-
getResourceById?: (id
|
|
22
|
+
getResourceById?: ({ id, user, request }: SelectFilterGetResourceOptions) => Promise<SelectFilterValue>;
|
|
13
23
|
}
|
|
14
24
|
export declare class SelectFilter<T> extends Filter implements SelectFilterDefinition<T> {
|
|
15
25
|
type: FilterType;
|
|
16
26
|
operators: import("../operators").FilterOperatorTypes[];
|
|
17
|
-
values: (value
|
|
18
|
-
getResourceById: (id
|
|
27
|
+
values: ({ value, user, request }: SelectFilterGetValuesOptions) => Promise<SelectFilterValue[]>;
|
|
28
|
+
getResourceById: ({ id, user, request }: SelectFilterGetResourceOptions) => Promise<SelectFilterValue>;
|
|
19
29
|
lazyLoading: any;
|
|
20
30
|
constructor(definition: BaseFilterDefinition & SelectFilterDefinition<T>);
|
|
21
|
-
getConfig(key: string, user?: DataFilterUserModel): Promise<FilterBaseConfigurationModel>;
|
|
31
|
+
getConfig<Request>(key: string, request: Request, user?: DataFilterUserModel): Promise<FilterBaseConfigurationModel>;
|
|
22
32
|
}
|
|
@@ -13,18 +13,18 @@ class SelectFilter extends filter_1.Filter {
|
|
|
13
13
|
this.lazyLoading = true;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
async getConfig(key, user) {
|
|
16
|
+
async getConfig(key, request, user) {
|
|
17
17
|
if (this.private) {
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
|
-
const config = await super.getConfig(key, user);
|
|
20
|
+
const config = await super.getConfig(key, request, user);
|
|
21
21
|
return {
|
|
22
22
|
...config,
|
|
23
|
-
values: this.lazyLoading ? [] : await this.values(null, user),
|
|
23
|
+
values: this.lazyLoading ? [] : await this.values({ value: null, user, request }),
|
|
24
24
|
lazyLoading: this.lazyLoading
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
exports.SelectFilter = SelectFilter;
|
|
29
29
|
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9maWx0ZXIvZmlsdGVycy9zZWxlY3QuZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGtDQUFxQztBQUNyQyw0Q0FBK0M7QUFDL0MscUNBQXdEO0FBMEJ4RCxNQUFhLFlBQWdCLFNBQVEsZUFBTTtJQU92QyxZQUFZLFVBQTREO1FBQ3BFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVBmLFNBQUksR0FBRyxpQkFBVSxDQUFDLE1BQU0sQ0FBQztRQUN6QixjQUFTLEdBQUcsQ0FBQyxHQUFHLDJCQUFlLENBQUMsQ0FBQztRQVFwQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTLENBQVUsR0FBVyxFQUFFLE9BQWdCLEVBQUUsSUFBMEI7UUFDckYsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsT0FBTztTQUNWO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekQsT0FBTztZQUNILEdBQUcsTUFBTTtZQUNULE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ2pGLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztTQUNoQyxDQUFDO0lBQ04sQ0FBQztDQUNKO0FBM0JELG9DQTJCQyIsImZpbGUiOiJsaWIvZmlsdGVyL2ZpbHRlcnMvc2VsZWN0LmZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFGaWx0ZXJVc2VyTW9kZWwgfSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tIFwiLi4vdHlwZVwiO1xuaW1wb3J0IHsgU2VsZWN0T3BlcmF0b3JzIH0gZnJvbSBcIi4uL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgQmFzZUZpbHRlckRlZmluaXRpb24sIEZpbHRlciB9IGZyb20gXCIuL2ZpbHRlclwiO1xuaW1wb3J0IHsgRmlsdGVyQmFzZUNvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gXCIuLi9tb2RlbHMvZmlsdGVyLWNvbmZpZ3VyYXRpb24ubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWx0ZXJWYWx1ZSB7XG4gICAgaWQ6IG51bWJlciB8IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0RmlsdGVyR2V0VmFsdWVzT3B0aW9uczxUID0gYW55LCBVc2VyID0gYW55LCBSZXF1ZXN0ID0gYW55PiB7XG4gICAgdmFsdWU6IFQ7XG4gICAgdXNlcj86IFVzZXI7XG4gICAgcmVxdWVzdD86IFJlcXVlc3Rcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWx0ZXJHZXRSZXNvdXJjZU9wdGlvbnM8VXNlciA9IGFueSwgUmVxdWVzdCA9IGFueT4ge1xuICAgIGlkOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgdXNlcj86IFVzZXI7XG4gICAgcmVxdWVzdD86IFJlcXVlc3Rcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWx0ZXJEZWZpbml0aW9uPFQ+IHtcbiAgICB2YWx1ZXM6ICh7IHZhbHVlLCB1c2VyLCByZXF1ZXN0IH06IFNlbGVjdEZpbHRlckdldFZhbHVlc09wdGlvbnMpID0+IFByb21pc2U8U2VsZWN0RmlsdGVyVmFsdWVbXT47XG4gICAgbGF6eUxvYWRpbmc/OiBib29sZWFuO1xuICAgIGdldFJlc291cmNlQnlJZD86ICh7IGlkLCB1c2VyLCByZXF1ZXN0IH06IFNlbGVjdEZpbHRlckdldFJlc291cmNlT3B0aW9ucykgPT4gUHJvbWlzZTxTZWxlY3RGaWx0ZXJWYWx1ZT47XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RGaWx0ZXI8VD4gZXh0ZW5kcyBGaWx0ZXIgaW1wbGVtZW50cyBTZWxlY3RGaWx0ZXJEZWZpbml0aW9uPFQ+IHtcbiAgICBwdWJsaWMgdHlwZSA9IEZpbHRlclR5cGUuU2VsZWN0O1xuICAgIHB1YmxpYyBvcGVyYXRvcnMgPSBbLi4uU2VsZWN0T3BlcmF0b3JzXTtcbiAgICBwdWJsaWMgdmFsdWVzOiAoeyB2YWx1ZSwgdXNlciwgcmVxdWVzdCB9OiBTZWxlY3RGaWx0ZXJHZXRWYWx1ZXNPcHRpb25zKSA9PiBQcm9taXNlPFNlbGVjdEZpbHRlclZhbHVlW10+O1xuICAgIHB1YmxpYyBnZXRSZXNvdXJjZUJ5SWQ6ICh7IGlkLCB1c2VyLCByZXF1ZXN0IH06IFNlbGVjdEZpbHRlckdldFJlc291cmNlT3B0aW9ucykgPT4gUHJvbWlzZTxTZWxlY3RGaWx0ZXJWYWx1ZT47XG4gICAgcHVibGljIGxhenlMb2FkaW5nO1xuXG4gICAgY29uc3RydWN0b3IoZGVmaW5pdGlvbjogQmFzZUZpbHRlckRlZmluaXRpb24gJiBTZWxlY3RGaWx0ZXJEZWZpbml0aW9uPFQ+KSB7XG4gICAgICAgIHN1cGVyKGRlZmluaXRpb24pO1xuXG4gICAgICAgIGlmICh0aGlzLmxhenlMb2FkaW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubGF6eUxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldENvbmZpZzxSZXF1ZXN0PihrZXk6IHN0cmluZywgcmVxdWVzdDogUmVxdWVzdCwgdXNlcj86IERhdGFGaWx0ZXJVc2VyTW9kZWwpOiBQcm9taXNlPEZpbHRlckJhc2VDb25maWd1cmF0aW9uTW9kZWw+IHtcbiAgICAgICAgaWYgKHRoaXMucHJpdmF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgc3VwZXIuZ2V0Q29uZmlnKGtleSwgcmVxdWVzdCwgdXNlcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICB2YWx1ZXM6IHRoaXMubGF6eUxvYWRpbmcgPyBbXSA6IGF3YWl0IHRoaXMudmFsdWVzKHsgdmFsdWU6IG51bGwsIHVzZXIsIHJlcXVlc3QgfSksXG4gICAgICAgICAgICBsYXp5TG9hZGluZzogdGhpcy5sYXp5TG9hZGluZ1xuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -9,5 +9,5 @@ export declare class TextFilter extends Filter {
|
|
|
9
9
|
operators: import("../operators").FilterOperatorTypes[];
|
|
10
10
|
mask?: string;
|
|
11
11
|
constructor(definition: TextFilterDefinition & BaseFilterDefinition);
|
|
12
|
-
getConfig(key: string, user?: DataFilterUserModel): Promise<FilterBaseConfigurationModel>;
|
|
12
|
+
getConfig<Request>(key: string, request: Request, user?: DataFilterUserModel): Promise<FilterBaseConfigurationModel>;
|
|
13
13
|
}
|
|
@@ -10,14 +10,14 @@ class TextFilter extends filter_1.Filter {
|
|
|
10
10
|
this.type = type_1.FilterType.Text;
|
|
11
11
|
this.operators = [...operators_1.StringOperators];
|
|
12
12
|
}
|
|
13
|
-
async getConfig(key, user) {
|
|
13
|
+
async getConfig(key, request, user) {
|
|
14
14
|
if (this.private) {
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
17
17
|
if (!this.mask) {
|
|
18
|
-
return super.getConfig(key, user);
|
|
18
|
+
return super.getConfig(key, request, user);
|
|
19
19
|
}
|
|
20
|
-
const config = await super.getConfig(key, user);
|
|
20
|
+
const config = await super.getConfig(key, request, user);
|
|
21
21
|
return {
|
|
22
22
|
...config,
|
|
23
23
|
mask: this.mask
|
|
@@ -26,4 +26,4 @@ class TextFilter extends filter_1.Filter {
|
|
|
26
26
|
}
|
|
27
27
|
exports.TextFilter = TextFilter;
|
|
28
28
|
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9maWx0ZXIvZmlsdGVycy90ZXh0LmZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxrQ0FBcUM7QUFDckMsNENBQStDO0FBQy9DLHFDQUF3RDtBQU14RCxNQUFhLFVBQVcsU0FBUSxlQUFNO0lBS2xDLFlBQVksVUFBdUQ7UUFDL0QsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBTGYsU0FBSSxHQUFHLGlCQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxDQUFDLEdBQUcsMkJBQWUsQ0FBQyxDQUFDO0lBS3hDLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUyxDQUFVLEdBQVcsRUFBRSxPQUFnQixFQUFFLElBQTBCO1FBQ3JGLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDOUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RCxPQUFPO1lBQ0gsR0FBRyxNQUFNO1lBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2pCLENBQUM7SUFDTixDQUFDO0NBQ0o7QUF4QkQsZ0NBd0JDIiwiZmlsZSI6ImxpYi9maWx0ZXIvZmlsdGVycy90ZXh0LmZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFGaWx0ZXJVc2VyTW9kZWwsIEZpbHRlckJhc2VDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tIFwiLi4vdHlwZVwiO1xuaW1wb3J0IHsgU3RyaW5nT3BlcmF0b3JzIH0gZnJvbSBcIi4uL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgQmFzZUZpbHRlckRlZmluaXRpb24sIEZpbHRlciB9IGZyb20gXCIuL2ZpbHRlclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRGaWx0ZXJEZWZpbml0aW9uIHtcbiAgICBtYXNrPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVGV4dEZpbHRlciBleHRlbmRzIEZpbHRlciB7XG4gICAgcHVibGljIHR5cGUgPSBGaWx0ZXJUeXBlLlRleHQ7XG4gICAgcHVibGljIG9wZXJhdG9ycyA9IFsuLi5TdHJpbmdPcGVyYXRvcnNdO1xuICAgIHB1YmxpYyBtYXNrPzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoZGVmaW5pdGlvbjogVGV4dEZpbHRlckRlZmluaXRpb24gJiBCYXNlRmlsdGVyRGVmaW5pdGlvbikge1xuICAgICAgICBzdXBlcihkZWZpbml0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q29uZmlnPFJlcXVlc3Q+KGtleTogc3RyaW5nLCByZXF1ZXN0OiBSZXF1ZXN0LCB1c2VyPzogRGF0YUZpbHRlclVzZXJNb2RlbCk6IFByb21pc2U8RmlsdGVyQmFzZUNvbmZpZ3VyYXRpb25Nb2RlbD4ge1xuICAgICAgICBpZiAodGhpcy5wcml2YXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMubWFzaykge1xuICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmdldENvbmZpZyhrZXksIHJlcXVlc3QsIHVzZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgc3VwZXIuZ2V0Q29uZmlnKGtleSwgcmVxdWVzdCwgdXNlcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgIG1hc2s6IHRoaXMubWFza1xuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -28,11 +28,12 @@ class DataFilterConfig {
|
|
|
28
28
|
transformAttributesConfig(options) {
|
|
29
29
|
const customAttributes = this.getCustomAttributes(options);
|
|
30
30
|
if (this.attributes) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
if (this.customAttributes.length) {
|
|
32
|
+
return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(sequelize_utils_1.SequelizeUtils.mergeAttributes(this.attributes, {
|
|
33
|
+
include: customAttributes.map(x => x.attribute)
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(this.attributes);
|
|
36
37
|
}
|
|
37
38
|
if (!this.attributes && customAttributes.length) {
|
|
38
39
|
return {
|
|
@@ -78,4 +79,4 @@ class DataFilterConfig {
|
|
|
78
79
|
}
|
|
79
80
|
exports.DataFilterConfig = DataFilterConfig;
|
|
80
81
|
|
|
81
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsd0RBQXVEO0FBU3ZELE1BQWEsZ0JBQWdCO0lBQTdCO1FBS1cscUJBQWdCLEdBQTZCLEVBQUUsQ0FBQztRQUNoRCxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQW9GbEMsQ0FBQztJQWxGVSxRQUFRLENBQUMsS0FBbUI7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBaUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFVBQW9CO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxVQUFVLENBQUM7SUFDM0MsQ0FBQztJQUVNLGdCQUFnQixDQUFDLGFBQXVCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxTQUFpQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxPQUFnQjtRQUM3QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO2dCQUM5QixPQUFPLGdDQUFjLENBQUMsd0JBQXdCLENBQzFDLGdDQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2lCQUNsRCxDQUFDLENBQ0wsQ0FBQzthQUNMO1lBRUQsT0FBTyxnQ0FBYyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuRTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUM3QyxPQUFPO2dCQUNILE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQ2xELENBQUM7U0FDTDtJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxPQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0I7YUFDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNQLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRztZQUNWLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUMvQixJQUFJLEVBQUcsQ0FBQyxDQUFDLE1BQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLEVBQUcsQ0FBQyxDQUFDLE1BQWMsQ0FBQyxJQUFJO2dCQUM1QixRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ2UsQ0FBQSxDQUFDO2FBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sMkJBQTJCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzthQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsVUFBVSxFQUFFLEVBQUU7WUFDZCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ25CLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVNLHVCQUF1Qjs7UUFDMUIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUMzQixPQUFPLGdDQUFjLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDOUc7UUFFRCxNQUFNLG9CQUFvQixHQUFHLGdDQUFjLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEtBQWlCLENBQUMsQ0FBQztRQUNqRyxNQUFNLFVBQVUsR0FBRyxnQ0FBYyxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxLQUFpQixFQUFFLE1BQUEsSUFBSSxDQUFDLFVBQXNCLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQy9ILE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RCLE1BQUMsVUFBdUIsMENBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RixvQkFBb0IsQ0FBQztJQUM3QixDQUFDO0NBQ0o7QUExRkQsNENBMEZDIiwiZmlsZSI6ImxpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaW5kQXR0cmlidXRlT3B0aW9ucyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcInNlcXVlbGl6ZS10eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnLCBDdXN0b21BdHRyaWJ1dGVzTW9kZWwgfSBmcm9tIFwiLi9jdXN0b20tYXR0cmlidXRlcy5tb2RlbFwiO1xuaW1wb3J0IHsgSW5jbHVkZUNvbmZpZyB9IGZyb20gXCIuL2luY2x1ZGUubW9kZWxcIjtcbmltcG9ydCB7IE0sIFNlcXVlbGl6ZVV0aWxzIH0gZnJvbSBcIi4uL3NlcXVlbGl6ZS51dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFGaWx0ZXJDb25maWdNb2RlbCB7XG4gICAgbW9kZWw6IHR5cGVvZiBNb2RlbDtcbiAgICBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgZXhwb3J0Q29sdW1ucz86IHN0cmluZ1tdO1xuICAgIGN1c3RvbUF0dHJpYnV0ZXM6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFGaWx0ZXJDb25maWcgaW1wbGVtZW50cyBEYXRhRmlsdGVyQ29uZmlnTW9kZWwge1xuICAgIHB1YmxpYyBtb2RlbDogdHlwZW9mIE1vZGVsO1xuICAgIHB1YmxpYyBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgcHVibGljIHNlYXJjaGFibGVBdHRyaWJ1dGVzPzogc3RyaW5nW107XG4gICAgcHVibGljIGV4cG9ydENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgICBwdWJsaWMgY3VzdG9tQXR0cmlidXRlczogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZ1tdID0gW107XG4gICAgcHVibGljIGlnbm9yZUluU2VhcmNoID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc2V0TW9kZWwobW9kZWw6IHR5cGVvZiBNb2RlbCkge1xuICAgICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIHNldElnbm9yZUluUGF0aChpZ25vcmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pZ25vcmVJblNlYXJjaCA9IGlnbm9yZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VhcmNoYWJsZUF0dHJpYnV0ZXMoYXR0cmlidXRlczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5zZWFyY2hhYmxlQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEV4cG9ydENvbHVtbnMoZXhwb3J0Q29sdW1uczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5leHBvcnRDb2x1bW5zID0gZXhwb3J0Q29sdW1ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ3VzdG9tQXR0cmlidXRlKGF0dHJpYnV0ZTogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZykge1xuICAgICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXMucHVzaChhdHRyaWJ1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1BdHRyaWJ1dGVzQ29uZmlnKG9wdGlvbnM/OiBvYmplY3QpOiBGaW5kQXR0cmlidXRlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucyk7XG4gICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmVuc3VyZUF0dHJpYnV0ZXNWYWxpZGl0eShcbiAgICAgICAgICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMubWVyZ2VBdHRyaWJ1dGVzKHRoaXMuYXR0cmlidXRlcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZW5zdXJlQXR0cmlidXRlc1ZhbGlkaXR5KHRoaXMuYXR0cmlidXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmF0dHJpYnV0ZXMgJiYgY3VzdG9tQXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlcyhvcHRpb25zPzogb2JqZWN0KTogQ3VzdG9tQXR0cmlidXRlc01vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21BdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKHggPT4gKHtcbiAgICAgICAgICAgICAgICBrZXk6IHgua2V5LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogeC50cmFuc2Zvcm0ob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCA/IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgfSBhcyBDdXN0b21BdHRyaWJ1dGVzTW9kZWwpKVxuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguYXR0cmlidXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlc0luY2x1ZGVzKCk6IEluY2x1ZGVDb25maWdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4LmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgLm1hcCh4ID0+ICh7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgcGF0aDogeC5jb25maWcucGF0aCxcbiAgICAgICAgICAgICAgICBwYXJhbm9pZDogdHJ1ZVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZWFyY2hhYmxlQXR0cmlidXRlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmICh0aGlzLmlnbm9yZUluU2VhcmNoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWFyY2hhYmxlQXR0cmlidXRlcykge1xuICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmdldE1vZGVsU2VhcmNoYWJsZUZpZWxkQXR0cmlidXRlcyh0aGlzLm1vZGVsIGFzIHR5cGVvZiBNLCB0aGlzLnNlYXJjaGFibGVBdHRyaWJ1dGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlYXJjaGFibGVBdHRyaWJ1dGVzID0gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlQXR0cmlidXRlcyh0aGlzLm1vZGVsIGFzIHR5cGVvZiBNKTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IFNlcXVlbGl6ZVV0aWxzLmdldE1vZGVsU2VhcmNoYWJsZUZpZWxkQXR0cmlidXRlcyh0aGlzLm1vZGVsIGFzIHR5cGVvZiBNLCB0aGlzLmF0dHJpYnV0ZXMgYXMgc3RyaW5nW10gPz8gW10pO1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlcy5sZW5ndGggP1xuICAgICAgICAgICAgKGF0dHJpYnV0ZXMgYXMgc3RyaW5nW10pPy5maWx0ZXIoeCA9PiBzZWFyY2hhYmxlQXR0cmlidXRlcy5zb21lKGF0dHIgPT4gYXR0ciA9PT0geCkpIDpcbiAgICAgICAgICAgIHNlYXJjaGFibGVBdHRyaWJ1dGVzO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -37,7 +37,7 @@ let SequelizeModelScanner = class SequelizeModelScanner {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
if (attributes) {
|
|
40
|
-
includes[0].attributes = ignoreAttributes ? [] : sequelize_utils_1.SequelizeUtils.mergeAttributes(includes[0],
|
|
40
|
+
includes[0].attributes = ignoreAttributes ? [] : sequelize_utils_1.SequelizeUtils.mergeAttributes(includes[0].attributes, attributes);
|
|
41
41
|
}
|
|
42
42
|
if (path.where) {
|
|
43
43
|
includes[0].where = sequelize_utils_1.SequelizeUtils.mergeWhere(includes[0].where, path.where);
|
|
@@ -188,4 +188,4 @@ SequelizeModelScanner = __decorate([
|
|
|
188
188
|
], SequelizeModelScanner);
|
|
189
189
|
exports.SequelizeModelScanner = SequelizeModelScanner;
|
|
190
190
|
|
|
191
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9zY2FubmVycy9zZXF1ZWxpemUtbW9kZWwuc2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwyQ0FBNEM7QUFDNUMsNERBQXFEO0FBQ3JELHlDQUFpRjtBQUNqRiwrREFBNEY7QUFLNUYsd0RBQXVEO0FBR3ZELElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBQ3ZCLFdBQVcsQ0FDZCxLQUFtQixFQUNuQixJQUFlLEVBQ2Ysa0JBQWtDLEVBQ2xDLFVBQWlDLEVBQ2pDLGdCQUFnQixHQUFHLEtBQUs7O1FBRXhCLE1BQU0sT0FBTyxHQUFHLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLElBQUksMENBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLENBQUEsRUFBRTtZQUNsQixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLFFBQVEsR0FBcUIsTUFBTSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JELFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsRUFBRSxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQVk7Z0JBQ2pDLEtBQUssRUFBRSxXQUFXLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUM3QyxPQUFPLEVBQUUsRUFBRTtnQkFDWCxRQUFRLEVBQUUsS0FBSzthQUNsQixDQUFDLENBQUM7WUFFSCxJQUFJLENB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Q0FBQztZQUVILElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBZ0MsQ0FBQztnQkFDckQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUEyQixDQUFDO2FBQ3REO1NBQ0o7UUFFRCxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFtQixFQUFFLEdBQVc7UUFDcEQsTUFBTSxZQUFZLEdBQUcsSUFBQSxzQ0FBZSxFQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0RCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztDQUNKLENBQUE7QUE1TlkscUJBQXFCO0lBRGpDLElBQUEsbUJBQVUsR0FBRTtHQUNBLHFCQUFxQixDQTROakM7QUE1Tlksc0RBQXFCIiwiZmlsZSI6ImxpYi9zY2FubmVycy9zZXF1ZWxpemUtbW9kZWwuc2Nhbm5lci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFR5cGVVdGlscyB9IGZyb20gXCJAcmVjdXJzeXZlL25lc3Rqcy1jb21tb25cIjtcbmltcG9ydCB7IEZpbmRBdHRyaWJ1dGVPcHRpb25zLCBJbmNsdWRlT3B0aW9ucywgbGl0ZXJhbCwgT3JkZXIgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBBc3NvY2lhdGlvbiwgQmFzZUFzc29jaWF0aW9uLCBnZXRBc3NvY2lhdGlvbnMsIE1vZGVsIH0gZnJvbSBcInNlcXVlbGl6ZS10eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBPcmRlck1vZGVsIH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBJbmNsdWRlTW9kZWwgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IFBhdGhNb2RlbCB9IGZyb20gXCIuLi9tb2RlbHMvcGF0aC5tb2RlbFwiO1xuaW1wb3J0IHsgU2VhcmNoQXR0cmlidXRlc01vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9zZWFyY2gtYXR0cmlidXRlcy5tb2RlbFwiO1xuaW1wb3J0IHsgTSwgU2VxdWVsaXplVXRpbHMgfSBmcm9tIFwiLi4vc2VxdWVsaXplLnV0aWxzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZXF1ZWxpemVNb2RlbFNjYW5uZXIge1xuICAgIHB1YmxpYyBnZXRJbmNsdWRlcyhcbiAgICAgICAgbW9kZWw6IHR5cGVvZiBNb2RlbCxcbiAgICAgICAgcGF0aDogUGF0aE1vZGVsLFxuICAgICAgICBhZGRpdGlvbmFsSW5jbHVkZXM6IEluY2x1ZGVNb2RlbFtdLFxuICAgICAgICBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnMsXG4gICAgICAgIGlnbm9yZUF0dHJpYnV0ZXMgPSBmYWxzZVxuICAgICk6IEluY2x1ZGVPcHRpb25zW10ge1xuICAgICAgICBjb25zdCBvYmplY3RzID0gcGF0aD8ucGF0aD8uc3BsaXQoXCIuXCIpO1xuICAgICAgICBpZiAoIW9iamVjdHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0OiBJbmNsdWRlT3B0aW9uc1tdID0gW107XG4gICAgICAgIGxldCBpbmNsdWRlczogSW5jbHVkZU9wdGlvbnNbXSA9IHJlc3VsdDtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IG9iaiBvZiBvYmplY3RzKSB7XG4gICAgICAgICAgICBjb25zdCBhc3NvY2lhdGlvbiA9IHRoaXMuZmluZEFzc29jaWF0aW9uKG1vZGVsLCBvYmopO1xuICAgICAgICAgICAgaW5jbHVkZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgYXM6IGFzc29jaWF0aW9uLmdldEFzKCkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIG1vZGVsOiBhc3NvY2lhdGlvbi5nZXRBc3NvY2lhdGVkQ2xhc3MoKSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBpZ25vcmVBdHRyaWJ1dGVzID8gW10gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgaW5jbHVkZTogW10sXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGkrKyA8IG9iamVjdHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIG1vZGVsID0gaW5jbHVkZXNbMF0ubW9kZWwgYXMgdW5rbm93biBhcyB0eXBlb2YgTW9kZWw7XG4gICAgICAgICAgICAgICAgaW5jbHVkZXMgPSBpbmNsdWRlc1swXS5pbmNsdWRlIGFzIEluY2x1ZGVPcHRpb25zW107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXR0cmlidXRlcykge1xuICAgICAgICAgICAgaW5jbHVkZXNbMF0uYXR0cmlidXRlcyA9IGlnbm9yZUF0dHJpYnV0ZXMgPyBbXSA6IFNlcXVlbGl6ZVV0aWxzLm1lcmdlQXR0cmlidXRlcyhpbmNsdWRlc1swXSwgeyBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoLndoZXJlKSB7XG4gICAgICAgICAgICBpbmNsdWRlc1swXS53aGVyZSA9IFNlcXVlbGl6ZVV0aWxzLm1lcmdlV2hlcmUoaW5jbHVkZXNbMF0ud2hlcmUsIHBhdGgud2hlcmUpO1xuICAgICAgICAgICAgaW5jbHVkZXNbMF0ucmVxdWlyZWQgPSAhIXBhdGgucmVxdWlyZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGluY2x1ZGVzWzBdLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGluY2x1ZGVzWzBdLnBhcmFub2lkID0gISFwYXRoLnBhcmFub2lkO1xuICAgICAgICBpbmNsdWRlc1swXS5zZXBhcmF0ZSA9ICEhcGF0aC5zZXBhcmF0ZTtcbiAgICAgICAgaW5jbHVkZXNbMF0ub3JkZXIgPSBwYXRoLm9yZGVyO1xuXG4gICAgICAgIGlmIChUeXBlVXRpbHMuaXNOb3ROdWxsT3JVbmRlZmluZWQocGF0aC5zdWJRdWVyeSkpIHtcbiAgICAgICAgICAgIGluY2x1ZGVzWzBdLnN1YlF1ZXJ5ID0gcGF0aC5zdWJRdWVyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFkZEluY2x1ZGVzOiBJbmNsdWRlT3B0aW9uc1tdW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpbmNsdWRlIG9mIGFkZGl0aW9uYWxJbmNsdWRlcykge1xuICAgICAgICAgICAgYWRkSW5jbHVkZXMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLmdldEluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlc1swXS5tb2RlbCBhcyB1bmtub3duIGFzIHR5cGVvZiBNb2RlbCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogaW5jbHVkZS5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IGluY2x1ZGUub3JkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGVyZTogaW5jbHVkZS53aGVyZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBpbmNsdWRlLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VwYXJhdGU6IGluY2x1ZGUuc2VwYXJhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbm9pZDogaW5jbHVkZS5wYXJhbm9pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YlF1ZXJ5OiBpbmNsdWRlLnN1YlF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlLmF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZUF0dHJpYnV0ZXNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5jbHVkZXNbMF0uaW5jbHVkZS5wdXNoKC4uLlNlcXVlbGl6ZVV0aWxzLnJlZHVjZUluY2x1ZGVzKGFkZEluY2x1ZGVzLCBpZ25vcmVBdHRyaWJ1dGVzKSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXR0cmlidXRlcyhcbiAgICAgICAgbW9kZWw6IHR5cGVvZiBNb2RlbCxcbiAgICAgICAgcGF0aDogUGF0aE1vZGVsLFxuICAgICAgICBhZGRpdGlvbmFsSW5jbHVkZXM6IEluY2x1ZGVNb2RlbFtdLFxuICAgICAgICBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnNcbiAgICApOiBTZWFyY2hBdHRyaWJ1dGVzTW9kZWxbXSB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSBwYXRoLnBhdGguc3BsaXQoXCIuXCIpO1xuICAgICAgICBpZiAoIW9iamVjdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQ6IFNlYXJjaEF0dHJpYnV0ZXNNb2RlbFtdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgb2JqIG9mIG9iamVjdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc29jaWF0aW9uID0gdGhpcy5maW5kQXNzb2NpYXRpb24obW9kZWwsIG9iaik7XG4gICAgICAgICAgICBtb2RlbCA9IGFzc29jaWF0aW9uLmdldEFzc29jaWF0ZWRDbGFzcygpIGFzIHVua25vd24gYXMgdHlwZW9mIE1vZGVsO1xuICAgICAgICB9XG4gICAgICAgIGF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzID9cbiAgICAgICAgICAgIFNlcXVlbGl6ZVV0aWxzLmdldE1vZGVsU2VhcmNoYWJsZUZpZWxkQXR0cmlidXRlcyhtb2RlbCBhcyB0eXBlb2YgTSwgYXR0cmlidXRlcyBhcyBzdHJpbmdbXSkgOlxuICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlQXR0cmlidXRlcyhtb2RlbCBhcyB0eXBlb2YgTSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICAgLi4uKGF0dHJpYnV0ZXMgYXMgc3RyaW5nW10pLm1hcChhID0+ICh7XG4gICAgICAgICAgICAgICAgbmFtZTogYSxcbiAgICAgICAgICAgICAgICBrZXk6IFNlcXVlbGl6ZVV0aWxzLmdldEF0dHJpYnV0ZUZ1bGxOYW1lKGEsIHBhdGgucGF0aCksXG4gICAgICAgICAgICAgICAgbGl0ZXJhbEtleTogU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKGEsIHBhdGgucGF0aCksXG4gICAgICAgICAgICAgICAgaXNKc29uOiBTZXF1ZWxpemVVdGlscy5pc0NvbHVtbkpzb24obW9kZWwgYXMgdHlwZW9mIE0sIGEpXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGluY2x1ZGUgb2YgYWRkaXRpb25hbEluY2x1ZGVzKSB7XG4gICAgICAgICAgICBpZiAoaW5jbHVkZS5pZ25vcmVJblNlYXJjaCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldEF0dHJpYnV0ZXMoXG4gICAgICAgICAgICAgICAgICAgIG1vZGVsIGFzIHR5cGVvZiBNb2RlbCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogaW5jbHVkZS5wYXRoXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlLnNlYXJjaGFibGVBdHRyaWJ1dGVzID8/IGluY2x1ZGUuYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgICkubWFwKGEgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogYS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IFNlcXVlbGl6ZVV0aWxzLmdldEF0dHJpYnV0ZUZ1bGxOYW1lKGEubmFtZSwgW3BhdGgucGF0aCwgaW5jbHVkZS5wYXRoXS5qb2luKFwiLlwiKSksXG4gICAgICAgICAgICAgICAgICAgIGxpdGVyYWxLZXk6IFNlcXVlbGl6ZVV0aWxzLmdldExpdGVyYWxGdWxsTmFtZShhLm5hbWUsIFtwYXRoLnBhdGgsIGluY2x1ZGUucGF0aF0uam9pbihcIi5cIikpLFxuICAgICAgICAgICAgICAgICAgICBpc0pzb246IGEuaXNKc29uXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T3JkZXIobW9kZWw6IHR5cGVvZiBNb2RlbCwgb3JkZXJPYmo6IE9yZGVyTW9kZWwpOiBPcmRlciB7XG4gICAgICAgIGlmICghb3JkZXJPYmogfHwgIW9yZGVyT2JqLmNvbHVtbiB8fCBvcmRlck9iai5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG9yZGVyT2JqLmNvbHVtbi5zcGxpdChcIi5cIik7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHZhbHVlcy5wb3AoKTtcbiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc29jaWF0aW9uID0gdGhpcy5maW5kQXNzb2NpYXRpb24obW9kZWwsIHZhbHVlKTtcbiAgICAgICAgICAgIG1vZGVsID0gYXNzb2NpYXRpb24uZ2V0QXNzb2NpYXRlZENsYXNzKCkgYXMgdW5rbm93biBhcyB0eXBlb2YgTW9kZWw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sID0gU2VxdWVsaXplVXRpbHMuZmluZENvbHVtbkZpZWxkTmFtZShtb2RlbCBhcyB0eXBlb2YgTSwgY29sdW1uKTtcbiAgICAgICAgbGV0IGxpdGVyYWxPcmRlciA9IHZhbHVlcy5sZW5ndGggP1xuICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKGNvbCwgdmFsdWVzKSA6XG4gICAgICAgICAgICBgXFxgJHttb2RlbC5uYW1lfVxcYC5cXGAke2NvbH1cXGBgO1xuICAgICAgICBpZiAob3JkZXJPYmoubnVsbExhc3QgJiYgb3JkZXJPYmouZGlyZWN0aW9uID09PSBcImFzY1wiKSB7XG4gICAgICAgICAgICBsaXRlcmFsT3JkZXIgPSBgLSR7bGl0ZXJhbE9yZGVyfWA7XG4gICAgICAgICAgICBvcmRlck9iai5kaXJlY3Rpb24gPSBcImRlc2NcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3JkZXJPYmouZGlyZWN0aW9uID09PSBcImRlc2NcIikge1xuICAgICAgICAgICAgbGl0ZXJhbE9yZGVyICs9IGAgREVTQ2A7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpdGVyYWwobGl0ZXJhbE9yZGVyKSBhcyBPcmRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R3JvdXAobW9kZWw6IHR5cGVvZiBNb2RlbCwgb3JkZXJPYmo6IE9yZGVyTW9kZWwpOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmICghb3JkZXJPYmogfHwgIW9yZGVyT2JqLmNvbHVtbiB8fCBvcmRlck9iai5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGdyb3VwOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBvcmRlck9iai5jb2x1bW4uc3BsaXQoXCIuXCIpO1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB2YWx1ZXMucG9wKCk7XG4gICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCBhc3NvY2lhdGlvbiA9IHRoaXMuZmluZEFzc29jaWF0aW9uKG1vZGVsLCB2YWx1ZSk7XG4gICAgICAgICAgICBtb2RlbCA9IGFzc29jaWF0aW9uLmdldEFzc29jaWF0ZWRDbGFzcygpIGFzIHVua25vd24gYXMgdHlwZW9mIE1vZGVsO1xuICAgICAgICAgICAgZ3JvdXAucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIFNlcXVlbGl6ZVV0aWxzLmdldE9yZGVyRnVsbE5hbWUoXCJpZFwiLCBncm91cCksXG4gICAgICAgICAgICBTZXF1ZWxpemVVdGlscy5nZXRPcmRlckZ1bGxOYW1lKFNlcXVlbGl6ZVV0aWxzLmZpbmRDb2x1bW5GaWVsZE5hbWUobW9kZWwgYXMgdHlwZW9mIE0sIGNvbHVtbiksIGdyb3VwKVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPcmRlckluY2x1ZGVzKG1vZGVsOiB0eXBlb2YgTW9kZWwsIG9yZGVyT2JqOiBPcmRlck1vZGVsKTogSW5jbHVkZU9wdGlvbnNbXSB7XG4gICAgICAgIGlmICghb3JkZXJPYmogfHwgIW9yZGVyT2JqLmNvbHVtbiB8fCBvcmRlck9iai5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG9yZGVyT2JqLmNvbHVtbi5zcGxpdChcIi5cIik7XG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHZhbHVlcy5wb3AoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBJbmNsdWRlT3B0aW9uc1tdID0gW107XG4gICAgICAgIGxldCBpbmNsdWRlczogSW5jbHVkZU9wdGlvbnNbXSA9IHJlc3VsdDtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgYXNzb2NpYXRpb24gPSB0aGlzLmZpbmRBc3NvY2lhdGlvbihtb2RlbCwgdmFsdWUpO1xuICAgICAgICAgICAgaW5jbHVkZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgYXM6IGFzc29jaWF0aW9uLmdldEFzKCkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIG1vZGVsOiBhc3NvY2lhdGlvbi5nZXRBc3NvY2lhdGVkQ2xhc3MoKSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICAgICAgICAgICAgICBpbmNsdWRlOiBbXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGhyb3VnaDogYXNzb2NpYXRpb24uZ2V0QXNzb2NpYXRpb24oKSA9PT0gQXNzb2NpYXRpb24uQmVsb25nc1RvTWFueSA/IHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczogW11cbiAgICAgICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGkrKyA8IHZhbHVlcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgbW9kZWwgPSBpbmNsdWRlc1swXS5tb2RlbCBhcyB1bmtub3duIGFzIHR5cGVvZiBNb2RlbDtcbiAgICAgICAgICAgICAgICBpbmNsdWRlcyA9IGluY2x1ZGVzWzBdLmluY2x1ZGUgYXMgSW5jbHVkZU9wdGlvbnNbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGluY2x1ZGVzWzBdLmF0dHJpYnV0ZXMgPSBbY29sdW1uXTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRBc3NvY2lhdGlvbihtb2RlbDogdHlwZW9mIE1vZGVsLCBvYmo6IHN0cmluZyk6IEJhc2VBc3NvY2lhdGlvbjxhbnksIGFueT4ge1xuICAgICAgICBjb25zdCBhc3NvY2lhdGlvbnMgPSBnZXRBc3NvY2lhdGlvbnMobW9kZWwucHJvdG90eXBlKTtcblxuICAgICAgICBjb25zdCBhc3NvY2lhdGlvbiA9IGFzc29jaWF0aW9ucy5maW5kKGEgPT4gYS5nZXRBcygpID09PSBvYmopO1xuICAgICAgICBpZiAoIWFzc29jaWF0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBsb2FkIGFzc29jaWF0aW9uIGZvciAke29ian1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXNzb2NpYXRpb247XG4gICAgfVxufVxuIl19
|
|
191
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9zY2FubmVycy9zZXF1ZWxpemUtbW9kZWwuc2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwyQ0FBNEM7QUFDNUMsNERBQXFEO0FBQ3JELHlDQUFpRjtBQUNqRiwrREFBNEY7QUFLNUYsd0RBQXVEO0FBR3ZELElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBQ3ZCLFdBQVcsQ0FDZCxLQUFtQixFQUNuQixJQUFlLEVBQ2Ysa0JBQWtDLEVBQ2xDLFVBQWlDLEVBQ2pDLGdCQUFnQixHQUFHLEtBQUs7O1FBRXhCLE1BQU0sT0FBTyxHQUFHLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLElBQUksMENBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLENBQUEsRUFBRTtZQUNsQixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLFFBQVEsR0FBcUIsTUFBTSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JELFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsRUFBRSxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQVk7Z0JBQ2pDLEtBQUssRUFBRSxXQUFXLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUM3QyxPQUFPLEVBQUUsRUFBRTtnQkFDWCxRQUFRLEVBQUUsS0FBSzthQUNsQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQixLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQWdDLENBQUM7Z0JBQ3JELFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBMkIsQ0FBQzthQUN0RDtTQUNKO1FBRUQsSUFBSSxVQUFVLEVBQUU7WUFDWixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdDQUFjLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDdkg7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLGdDQUFjLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDMUM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUMvQjtRQUVELFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFL0IsSUFBSSx5QkFBUyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMvQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDeEM7UUFFRCxNQUFNLFdBQVcsR0FBdUIsRUFBRSxDQUFDO1FBQzNDLEtBQUssTUFBTSxPQUFPLElBQUksa0JBQWtCLEVBQUU7WUFDdEMsV0FBVyxDQUFDLElBQUksQ0FDWixJQUFJLENBQUMsV0FBVyxDQUNaLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFnQyxFQUM1QztnQkFDSSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7Z0JBQ2xCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztnQkFDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO2dCQUNwQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7Z0JBQzFCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtnQkFDMUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2dCQUMxQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7YUFDN0IsRUFDRCxFQUFFLEVBQ0YsT0FBTyxDQUFDLFVBQVUsRUFDbEIsZ0JBQWdCLENBQ25CLENBQ0osQ0FBQztTQUNMO1FBRUQsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxnQ0FBYyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRTFGLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxhQUFhLENBQ2hCLEtBQW1CLEVBQ25CLElBQWUsRUFDZixrQkFBa0MsRUFDbEMsVUFBaUM7O1FBRWpDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2pCLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxNQUFNLE1BQU0sR0FBNEIsRUFBRSxDQUFDO1FBQzNDLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JELEtBQUssR0FBRyxXQUFXLENBQUMsa0JBQWtCLEVBQTZCLENBQUM7U0FDdkU7UUFDRCxVQUFVLEdBQUcsVUFBVSxDQUFDLENBQUM7WUFDckIsZ0NBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFpQixFQUFFLFVBQXNCLENBQUMsQ0FBQyxDQUFDO1lBQzdGLGdDQUFjLENBQUMsNEJBQTRCLENBQUMsS0FBaUIsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxJQUFJLENBQ1AsR0FBSSxVQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsSUFBSSxFQUFFLENBQUM7WUFDUCxHQUFHLEVBQUUsZ0NBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0RCxVQUFVLEVBQUUsZ0NBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMzRCxNQUFNLEVBQUUsZ0NBQWMsQ0FBQyxZQUFZLENBQUMsS0FBaUIsRUFBRSxDQUFDLENBQUM7U0FDNUQsQ0FBQyxDQUFDLENBQ04sQ0FBQztRQUVGLEtBQUssTUFBTSxPQUFPLElBQUksa0JBQWtCLEVBQUU7WUFDdEMsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFO2dCQUN4QixTQUFTO2FBQ1o7WUFFRCxNQUFNLENBQUMsSUFBSSxDQUNQLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FDakIsS0FBcUIsRUFDckI7Z0JBQ0ksSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO2FBQ3JCLEVBQ0QsRUFBRSxFQUNGLE1BQUEsT0FBTyxDQUFDLG9CQUFvQixtQ0FBSSxPQUFPLENBQUMsVUFBVSxDQUNyRCxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dCQUNaLEdBQUcsRUFBRSxnQ0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JGLFVBQVUsRUFBRSxnQ0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFGLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTthQUNuQixDQUFDLENBQUMsQ0FDTixDQUFDO1NBQ0w7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQW1CLEVBQUUsUUFBb0I7UUFDckQsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUQsT0FBTztTQUNWO1FBRUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELEtBQUssR0FBRyxXQUFXLENBQUMsa0JBQWtCLEVBQTZCLENBQUM7U0FDdkU7UUFDRCxNQUFNLEdBQUcsR0FBRyxnQ0FBYyxDQUFDLG1CQUFtQixDQUFDLEtBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLGdDQUFjLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDaEQsS0FBSyxLQUFLLENBQUMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtZQUNuRCxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNsQyxRQUFRLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztTQUMvQjtRQUNELElBQUksUUFBUSxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUU7WUFDL0IsWUFBWSxJQUFJLE9BQU8sQ0FBQztTQUMzQjtRQUNELE9BQU8sSUFBQSxtQkFBTyxFQUFDLFlBQVksQ0FBVSxDQUFDO0lBQzFDLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBbUIsRUFBRSxRQUFvQjtRQUNyRCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUM1RCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDM0IsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELEtBQUssR0FBRyxXQUFXLENBQUMsa0JBQWtCLEVBQTZCLENBQUM7WUFDcEUsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQjtRQUNELE9BQU87WUFDSCxnQ0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7WUFDNUMsZ0NBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQ0FBYyxDQUFDLG1CQUFtQixDQUFDLEtBQWlCLEVBQUUsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDO1NBQ3hHLENBQUM7SUFDTixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBbUIsRUFBRSxRQUFvQjtRQUM3RCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUM1RCxPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNwQixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVCLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7UUFDcEMsSUFBSSxRQUFRLEdBQXFCLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUN4QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2RCxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNWLEVBQUUsRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFZO2dCQUNqQyxLQUFLLEVBQUUsV0FBVyxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QyxVQUFVLEVBQUUsRUFBRTtnQkFDZCxPQUFPLEVBQUUsRUFBRTtnQkFDWCxRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUUsV0FBVyxDQUFDLGNBQWMsRUFBRSxLQUFLLGtDQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztvQkFDbEUsVUFBVSxFQUFFLEVBQUU7aUJBQ2pCLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDaEIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDekIsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFnQyxDQUFDO2dCQUNyRCxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQTJCLENBQUM7YUFDdEQ7U0FDSjtRQUVELFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQW1CLEVBQUUsR0FBVztRQUNwRCxNQUFNLFlBQVksR0FBRyxJQUFBLHNDQUFlLEVBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRELE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDNUQ7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0NBQ0osQ0FBQTtBQTVOWSxxQkFBcUI7SUFEakMsSUFBQSxtQkFBVSxHQUFFO0dBQ0EscUJBQXFCLENBNE5qQztBQTVOWSxzREFBcUIiLCJmaWxlIjoibGliL3NjYW5uZXJzL3NlcXVlbGl6ZS1tb2RlbC5zY2FubmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgVHlwZVV0aWxzIH0gZnJvbSBcIkByZWN1cnN5dmUvbmVzdGpzLWNvbW1vblwiO1xuaW1wb3J0IHsgRmluZEF0dHJpYnV0ZU9wdGlvbnMsIEluY2x1ZGVPcHRpb25zLCBsaXRlcmFsLCBPcmRlciB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IEFzc29jaWF0aW9uLCBCYXNlQXNzb2NpYXRpb24sIGdldEFzc29jaWF0aW9ucywgTW9kZWwgfSBmcm9tIFwic2VxdWVsaXplLXR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IE9yZGVyTW9kZWwgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IEluY2x1ZGVNb2RlbCB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgUGF0aE1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9wYXRoLm1vZGVsXCI7XG5pbXBvcnQgeyBTZWFyY2hBdHRyaWJ1dGVzTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL3NlYXJjaC1hdHRyaWJ1dGVzLm1vZGVsXCI7XG5pbXBvcnQgeyBNLCBTZXF1ZWxpemVVdGlscyB9IGZyb20gXCIuLi9zZXF1ZWxpemUudXRpbHNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlcXVlbGl6ZU1vZGVsU2Nhbm5lciB7XG4gICAgcHVibGljIGdldEluY2x1ZGVzKFxuICAgICAgICBtb2RlbDogdHlwZW9mIE1vZGVsLFxuICAgICAgICBwYXRoOiBQYXRoTW9kZWwsXG4gICAgICAgIGFkZGl0aW9uYWxJbmNsdWRlczogSW5jbHVkZU1vZGVsW10sXG4gICAgICAgIGF0dHJpYnV0ZXM/OiBGaW5kQXR0cmlidXRlT3B0aW9ucyxcbiAgICAgICAgaWdub3JlQXR0cmlidXRlcyA9IGZhbHNlXG4gICAgKTogSW5jbHVkZU9wdGlvbnNbXSB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSBwYXRoPy5wYXRoPy5zcGxpdChcIi5cIik7XG4gICAgICAgIGlmICghb2JqZWN0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQ6IEluY2x1ZGVPcHRpb25zW10gPSBbXTtcbiAgICAgICAgbGV0IGluY2x1ZGVzOiBJbmNsdWRlT3B0aW9uc1tdID0gcmVzdWx0O1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGZvciAoY29uc3Qgb2JqIG9mIG9iamVjdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc29jaWF0aW9uID0gdGhpcy5maW5kQXNzb2NpYXRpb24obW9kZWwsIG9iaik7XG4gICAgICAgICAgICBpbmNsdWRlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBhczogYXNzb2NpYXRpb24uZ2V0QXMoKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgbW9kZWw6IGFzc29jaWF0aW9uLmdldEFzc29jaWF0ZWRDbGFzcygpLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGlnbm9yZUF0dHJpYnV0ZXMgPyBbXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBpbmNsdWRlOiBbXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoaSsrIDwgb2JqZWN0cy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgbW9kZWwgPSBpbmNsdWRlc1swXS5tb2RlbCBhcyB1bmtub3duIGFzIHR5cGVvZiBNb2RlbDtcbiAgICAgICAgICAgICAgICBpbmNsdWRlcyA9IGluY2x1ZGVzWzBdLmluY2x1ZGUgYXMgSW5jbHVkZU9wdGlvbnNbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBpbmNsdWRlc1swXS5hdHRyaWJ1dGVzID0gaWdub3JlQXR0cmlidXRlcyA/IFtdIDogU2VxdWVsaXplVXRpbHMubWVyZ2VBdHRyaWJ1dGVzKGluY2x1ZGVzWzBdLmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoLndoZXJlKSB7XG4gICAgICAgICAgICBpbmNsdWRlc1swXS53aGVyZSA9IFNlcXVlbGl6ZVV0aWxzLm1lcmdlV2hlcmUoaW5jbHVkZXNbMF0ud2hlcmUsIHBhdGgud2hlcmUpO1xuICAgICAgICAgICAgaW5jbHVkZXNbMF0ucmVxdWlyZWQgPSAhIXBhdGgucmVxdWlyZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGluY2x1ZGVzWzBdLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGluY2x1ZGVzWzBdLnBhcmFub2lkID0gISFwYXRoLnBhcmFub2lkO1xuICAgICAgICBpbmNsdWRlc1swXS5zZXBhcmF0ZSA9ICEhcGF0aC5zZXBhcmF0ZTtcbiAgICAgICAgaW5jbHVkZXNbMF0ub3JkZXIgPSBwYXRoLm9yZGVyO1xuXG4gICAgICAgIGlmIChUeXBlVXRpbHMuaXNOb3ROdWxsT3JVbmRlZmluZWQocGF0aC5zdWJRdWVyeSkpIHtcbiAgICAgICAgICAgIGluY2x1ZGVzWzBdLnN1YlF1ZXJ5ID0gcGF0aC5zdWJRdWVyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFkZEluY2x1ZGVzOiBJbmNsdWRlT3B0aW9uc1tdW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpbmNsdWRlIG9mIGFkZGl0aW9uYWxJbmNsdWRlcykge1xuICAgICAgICAgICAgYWRkSW5jbHVkZXMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLmdldEluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlc1swXS5tb2RlbCBhcyB1bmtub3duIGFzIHR5cGVvZiBNb2RlbCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogaW5jbHVkZS5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IGluY2x1ZGUub3JkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGVyZTogaW5jbHVkZS53aGVyZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBpbmNsdWRlLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VwYXJhdGU6IGluY2x1ZGUuc2VwYXJhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbm9pZDogaW5jbHVkZS5wYXJhbm9pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YlF1ZXJ5OiBpbmNsdWRlLnN1YlF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlLmF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZUF0dHJpYnV0ZXNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5jbHVkZXNbMF0uaW5jbHVkZS5wdXNoKC4uLlNlcXVlbGl6ZVV0aWxzLnJlZHVjZUluY2x1ZGVzKGFkZEluY2x1ZGVzLCBpZ25vcmVBdHRyaWJ1dGVzKSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXR0cmlidXRlcyhcbiAgICAgICAgbW9kZWw6IHR5cGVvZiBNb2RlbCxcbiAgICAgICAgcGF0aDogUGF0aE1vZGVsLFxuICAgICAgICBhZGRpdGlvbmFsSW5jbHVkZXM6IEluY2x1ZGVNb2RlbFtdLFxuICAgICAgICBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnNcbiAgICApOiBTZWFyY2hBdHRyaWJ1dGVzTW9kZWxbXSB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSBwYXRoLnBhdGguc3BsaXQoXCIuXCIpO1xuICAgICAgICBpZiAoIW9iamVjdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQ6IFNlYXJjaEF0dHJpYnV0ZXNNb2RlbFtdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgb2JqIG9mIG9iamVjdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc29jaWF0aW9uID0gdGhpcy5maW5kQXNzb2NpYXRpb24obW9kZWwsIG9iaik7XG4gICAgICAgICAgICBtb2RlbCA9IGFzc29jaWF0aW9uLmdldEFzc29jaWF0ZWRDbGFzcygpIGFzIHVua25vd24gYXMgdHlwZW9mIE1vZGVsO1xuICAgICAgICB9XG4gICAgICAgIGF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzID9cbiAgICAgICAgICAgIFNlcXVlbGl6ZVV0aWxzLmdldE1vZGVsU2VhcmNoYWJsZUZpZWxkQXR0cmlidXRlcyhtb2RlbCBhcyB0eXBlb2YgTSwgYXR0cmlidXRlcyBhcyBzdHJpbmdbXSkgOlxuICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlQXR0cmlidXRlcyhtb2RlbCBhcyB0eXBlb2YgTSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICAgLi4uKGF0dHJpYnV0ZXMgYXMgc3RyaW5nW10pLm1hcChhID0+ICh7XG4gICAgICAgICAgICAgICAgbmFtZTogYSxcbiAgICAgICAgICAgICAgICBrZXk6IFNlcXVlbGl6ZVV0aWxzLmdldEF0dHJpYnV0ZUZ1bGxOYW1lKGEsIHBhdGgucGF0aCksXG4gICAgICAgICAgICAgICAgbGl0ZXJhbEtleTogU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKGEsIHBhdGgucGF0aCksXG4gICAgICAgICAgICAgICAgaXNKc29uOiBTZXF1ZWxpemVVdGlscy5pc0NvbHVtbkpzb24obW9kZWwgYXMgdHlwZW9mIE0sIGEpXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGluY2x1ZGUgb2YgYWRkaXRpb25hbEluY2x1ZGVzKSB7XG4gICAgICAgICAgICBpZiAoaW5jbHVkZS5pZ25vcmVJblNlYXJjaCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldEF0dHJpYnV0ZXMoXG4gICAgICAgICAgICAgICAgICAgIG1vZGVsIGFzIHR5cGVvZiBNb2RlbCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogaW5jbHVkZS5wYXRoXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlLnNlYXJjaGFibGVBdHRyaWJ1dGVzID8/IGluY2x1ZGUuYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgICkubWFwKGEgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogYS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IFNlcXVlbGl6ZVV0aWxzLmdldEF0dHJpYnV0ZUZ1bGxOYW1lKGEubmFtZSwgW3BhdGgucGF0aCwgaW5jbHVkZS5wYXRoXS5qb2luKFwiLlwiKSksXG4gICAgICAgICAgICAgICAgICAgIGxpdGVyYWxLZXk6IFNlcXVlbGl6ZVV0aWxzLmdldExpdGVyYWxGdWxsTmFtZShhLm5hbWUsIFtwYXRoLnBhdGgsIGluY2x1ZGUucGF0aF0uam9pbihcIi5cIikpLFxuICAgICAgICAgICAgICAgICAgICBpc0pzb246IGEuaXNKc29uXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T3JkZXIobW9kZWw6IHR5cGVvZiBNb2RlbCwgb3JkZXJPYmo6IE9yZGVyTW9kZWwpOiBPcmRlciB7XG4gICAgICAgIGlmICghb3JkZXJPYmogfHwgIW9yZGVyT2JqLmNvbHVtbiB8fCBvcmRlck9iai5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG9yZGVyT2JqLmNvbHVtbi5zcGxpdChcIi5cIik7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHZhbHVlcy5wb3AoKTtcbiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc29jaWF0aW9uID0gdGhpcy5maW5kQXNzb2NpYXRpb24obW9kZWwsIHZhbHVlKTtcbiAgICAgICAgICAgIG1vZGVsID0gYXNzb2NpYXRpb24uZ2V0QXNzb2NpYXRlZENsYXNzKCkgYXMgdW5rbm93biBhcyB0eXBlb2YgTW9kZWw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sID0gU2VxdWVsaXplVXRpbHMuZmluZENvbHVtbkZpZWxkTmFtZShtb2RlbCBhcyB0eXBlb2YgTSwgY29sdW1uKTtcbiAgICAgICAgbGV0IGxpdGVyYWxPcmRlciA9IHZhbHVlcy5sZW5ndGggP1xuICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKGNvbCwgdmFsdWVzKSA6XG4gICAgICAgICAgICBgXFxgJHttb2RlbC5uYW1lfVxcYC5cXGAke2NvbH1cXGBgO1xuICAgICAgICBpZiAob3JkZXJPYmoubnVsbExhc3QgJiYgb3JkZXJPYmouZGlyZWN0aW9uID09PSBcImFzY1wiKSB7XG4gICAgICAgICAgICBsaXRlcmFsT3JkZXIgPSBgLSR7bGl0ZXJhbE9yZGVyfWA7XG4gICAgICAgICAgICBvcmRlck9iai5kaXJlY3Rpb24gPSBcImRlc2NcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3JkZXJPYmouZGlyZWN0aW9uID09PSBcImRlc2NcIikge1xuICAgICAgICAgICAgbGl0ZXJhbE9yZGVyICs9IGAgREVTQ2A7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpdGVyYWwobGl0ZXJhbE9yZGVyKSBhcyBPcmRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R3JvdXAobW9kZWw6IHR5cGVvZiBNb2RlbCwgb3JkZXJPYmo6IE9yZGVyTW9kZWwpOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmICghb3JkZXJPYmogfHwgIW9yZGVyT2JqLmNvbHVtbiB8fCBvcmRlck9iai5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGdyb3VwOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBvcmRlck9iai5jb2x1bW4uc3BsaXQoXCIuXCIpO1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB2YWx1ZXMucG9wKCk7XG4gICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCBhc3NvY2lhdGlvbiA9IHRoaXMuZmluZEFzc29jaWF0aW9uKG1vZGVsLCB2YWx1ZSk7XG4gICAgICAgICAgICBtb2RlbCA9IGFzc29jaWF0aW9uLmdldEFzc29jaWF0ZWRDbGFzcygpIGFzIHVua25vd24gYXMgdHlwZW9mIE1vZGVsO1xuICAgICAgICAgICAgZ3JvdXAucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIFNlcXVlbGl6ZVV0aWxzLmdldE9yZGVyRnVsbE5hbWUoXCJpZFwiLCBncm91cCksXG4gICAgICAgICAgICBTZXF1ZWxpemVVdGlscy5nZXRPcmRlckZ1bGxOYW1lKFNlcXVlbGl6ZVV0aWxzLmZpbmRDb2x1bW5GaWVsZE5hbWUobW9kZWwgYXMgdHlwZW9mIE0sIGNvbHVtbiksIGdyb3VwKVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPcmRlckluY2x1ZGVzKG1vZGVsOiB0eXBlb2YgTW9kZWwsIG9yZGVyT2JqOiBPcmRlck1vZGVsKTogSW5jbHVkZU9wdGlvbnNbXSB7XG4gICAgICAgIGlmICghb3JkZXJPYmogfHwgIW9yZGVyT2JqLmNvbHVtbiB8fCBvcmRlck9iai5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG9yZGVyT2JqLmNvbHVtbi5zcGxpdChcIi5cIik7XG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHZhbHVlcy5wb3AoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBJbmNsdWRlT3B0aW9uc1tdID0gW107XG4gICAgICAgIGxldCBpbmNsdWRlczogSW5jbHVkZU9wdGlvbnNbXSA9IHJlc3VsdDtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgYXNzb2NpYXRpb24gPSB0aGlzLmZpbmRBc3NvY2lhdGlvbihtb2RlbCwgdmFsdWUpO1xuICAgICAgICAgICAgaW5jbHVkZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgYXM6IGFzc29jaWF0aW9uLmdldEFzKCkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIG1vZGVsOiBhc3NvY2lhdGlvbi5nZXRBc3NvY2lhdGVkQ2xhc3MoKSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICAgICAgICAgICAgICBpbmNsdWRlOiBbXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGhyb3VnaDogYXNzb2NpYXRpb24uZ2V0QXNzb2NpYXRpb24oKSA9PT0gQXNzb2NpYXRpb24uQmVsb25nc1RvTWFueSA/IHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczogW11cbiAgICAgICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGkrKyA8IHZhbHVlcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgbW9kZWwgPSBpbmNsdWRlc1swXS5tb2RlbCBhcyB1bmtub3duIGFzIHR5cGVvZiBNb2RlbDtcbiAgICAgICAgICAgICAgICBpbmNsdWRlcyA9IGluY2x1ZGVzWzBdLmluY2x1ZGUgYXMgSW5jbHVkZU9wdGlvbnNbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGluY2x1ZGVzWzBdLmF0dHJpYnV0ZXMgPSBbY29sdW1uXTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRBc3NvY2lhdGlvbihtb2RlbDogdHlwZW9mIE1vZGVsLCBvYmo6IHN0cmluZyk6IEJhc2VBc3NvY2lhdGlvbjxhbnksIGFueT4ge1xuICAgICAgICBjb25zdCBhc3NvY2lhdGlvbnMgPSBnZXRBc3NvY2lhdGlvbnMobW9kZWwucHJvdG90eXBlKTtcblxuICAgICAgICBjb25zdCBhc3NvY2lhdGlvbiA9IGFzc29jaWF0aW9ucy5maW5kKGEgPT4gYS5nZXRBcygpID09PSBvYmopO1xuICAgICAgICBpZiAoIWFzc29jaWF0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBsb2FkIGFzc29jaWF0aW9uIGZvciAke29ian1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXNzb2NpYXRpb247XG4gICAgfVxufVxuIl19
|
package/lib/sequelize.utils.d.ts
CHANGED
|
@@ -10,7 +10,8 @@ export declare class M extends Model {
|
|
|
10
10
|
export declare class SequelizeUtils {
|
|
11
11
|
static reduceIncludes(includes: IncludeOptions[][], ignoreAttributes?: boolean): Includeable[];
|
|
12
12
|
static mergeIncludes(a?: IncludeOptions[], b?: IncludeOptions[], ignoreAttributes?: boolean): IncludeOptions[];
|
|
13
|
-
static mergeAttributes(a:
|
|
13
|
+
static mergeAttributes(a: FindAttributeOptions, b: FindAttributeOptions): FindAttributeOptions;
|
|
14
|
+
static ensureAttributesValidity(attribute: FindAttributeOptions): FindAttributeOptions;
|
|
14
15
|
static mergeWhere(a: WhereOptions, b: WhereOptions): WhereOptions;
|
|
15
16
|
static mergeOrder(a: Order, b: Order): Order;
|
|
16
17
|
static generateWhereValue(rule: RuleModel): WhereValue;
|