@recursyve/nestjs-data-filter 8.2.1 → 8.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { Where } from "sequelize/types/lib/utils";
1
+ import { Where } from "sequelize/types/utils";
2
2
  import { M } from "../sequelize.utils";
3
3
  export declare class AccessControlResources {
4
4
  all?: boolean;
@@ -22,4 +22,4 @@ class AccessControlAdapter {
22
22
  }
23
23
  exports.AccessControlAdapter = AccessControlAdapter;
24
24
 
25
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9hZGFwdGVycy9hY2Nlc3MtY29udHJvbC5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLE1BQWEsc0JBQXNCO0lBSy9CLFlBQW9CLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQW9EO1FBQ3JGLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU0sTUFBTSxDQUFDLEdBQUc7UUFDYixPQUFPLElBQUksc0JBQXNCLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFhO1FBQy9CLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBWTtRQUNwQyxPQUFPLElBQUksc0JBQXNCLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FDSjtBQXRCRCx3REFzQkM7QUFFRCxNQUFzQixvQkFBb0I7Q0FFekM7QUFGRCxvREFFQyIsImZpbGUiOiJsaWIvYWRhcHRlcnMvYWNjZXNzLWNvbnRyb2wuYWRhcHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdoZXJlIH0gZnJvbSBcInNlcXVlbGl6ZS90eXBlcy9saWIvdXRpbHNcIjtcbmltcG9ydCB7IE0gfSBmcm9tIFwiLi4vc2VxdWVsaXplLnV0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBBY2Nlc3NDb250cm9sUmVzb3VyY2VzIHtcbiAgICBwdWJsaWMgYWxsPzogYm9vbGVhbjtcbiAgICBwdWJsaWMgaWRzPzogbnVtYmVyW107XG4gICAgcHVibGljIHdoZXJlPzogV2hlcmU7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKHsgYWxsLCBpZHMsIHdoZXJlIH06IHsgYWxsPzogYm9vbGVhbjsgaWRzPzogbnVtYmVyW107IHdoZXJlPzogV2hlcmUgfSkge1xuICAgICAgICB0aGlzLmFsbCA9IGFsbDtcbiAgICAgICAgdGhpcy5pZHMgPSBpZHM7XG4gICAgICAgIHRoaXMud2hlcmUgPSB3aGVyZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFsbCgpOiBBY2Nlc3NDb250cm9sUmVzb3VyY2VzIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY2Nlc3NDb250cm9sUmVzb3VyY2VzKHsgYWxsOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUlkcyhpZHM6IG51bWJlcltdKTogQWNjZXNzQ29udHJvbFJlc291cmNlcyB7XG4gICAgICAgIHJldHVybiBuZXcgQWNjZXNzQ29udHJvbFJlc291cmNlcyh7IGlkcyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Db25kaXRpb24od2hlcmU6IFdoZXJlKTogQWNjZXNzQ29udHJvbFJlc291cmNlcyB7XG4gICAgICAgIHJldHVybiBuZXcgQWNjZXNzQ29udHJvbFJlc291cmNlcyh7IHdoZXJlIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjY2Vzc0NvbnRyb2xBZGFwdGVyIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0UmVzb3VyY2VzPFVzZXJzPihtb2RlbDogdHlwZW9mIE0sIHVzZXI6IFVzZXJzKTogUHJvbWlzZTxBY2Nlc3NDb250cm9sUmVzb3VyY2VzPjtcbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9hZGFwdGVycy9hY2Nlc3MtY29udHJvbC5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLE1BQWEsc0JBQXNCO0lBSy9CLFlBQW9CLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQW9EO1FBQ3JGLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU0sTUFBTSxDQUFDLEdBQUc7UUFDYixPQUFPLElBQUksc0JBQXNCLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFhO1FBQy9CLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBWTtRQUNwQyxPQUFPLElBQUksc0JBQXNCLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FDSjtBQXRCRCx3REFzQkM7QUFFRCxNQUFzQixvQkFBb0I7Q0FFekM7QUFGRCxvREFFQyIsImZpbGUiOiJsaWIvYWRhcHRlcnMvYWNjZXNzLWNvbnRyb2wuYWRhcHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdoZXJlIH0gZnJvbSBcInNlcXVlbGl6ZS90eXBlcy91dGlsc1wiO1xuaW1wb3J0IHsgTSB9IGZyb20gXCIuLi9zZXF1ZWxpemUudXRpbHNcIjtcblxuZXhwb3J0IGNsYXNzIEFjY2Vzc0NvbnRyb2xSZXNvdXJjZXMge1xuICAgIHB1YmxpYyBhbGw/OiBib29sZWFuO1xuICAgIHB1YmxpYyBpZHM/OiBudW1iZXJbXTtcbiAgICBwdWJsaWMgd2hlcmU/OiBXaGVyZTtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoeyBhbGwsIGlkcywgd2hlcmUgfTogeyBhbGw/OiBib29sZWFuOyBpZHM/OiBudW1iZXJbXTsgd2hlcmU/OiBXaGVyZSB9KSB7XG4gICAgICAgIHRoaXMuYWxsID0gYWxsO1xuICAgICAgICB0aGlzLmlkcyA9IGlkcztcbiAgICAgICAgdGhpcy53aGVyZSA9IHdoZXJlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYWxsKCk6IEFjY2Vzc0NvbnRyb2xSZXNvdXJjZXMge1xuICAgICAgICByZXR1cm4gbmV3IEFjY2Vzc0NvbnRyb2xSZXNvdXJjZXMoeyBhbGw6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tSWRzKGlkczogbnVtYmVyW10pOiBBY2Nlc3NDb250cm9sUmVzb3VyY2VzIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY2Nlc3NDb250cm9sUmVzb3VyY2VzKHsgaWRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNvbmRpdGlvbih3aGVyZTogV2hlcmUpOiBBY2Nlc3NDb250cm9sUmVzb3VyY2VzIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY2Nlc3NDb250cm9sUmVzb3VyY2VzKHsgd2hlcmUgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWNjZXNzQ29udHJvbEFkYXB0ZXIge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRSZXNvdXJjZXM8VXNlcnM+KG1vZGVsOiB0eXBlb2YgTSwgdXNlcjogVXNlcnMpOiBQcm9taXNlPEFjY2Vzc0NvbnRyb2xSZXNvdXJjZXM+O1xufVxuIl19
@@ -1,2 +1,2 @@
1
- import { ProjectionAlias } from "sequelize";
2
- export declare function Attributes(attributes?: (string | ProjectionAlias)[]): PropertyDecorator & ClassDecorator;
1
+ import { FindAttributeOptions } from "sequelize";
2
+ export declare function Attributes(attributes?: FindAttributeOptions): PropertyDecorator & ClassDecorator;
@@ -21,4 +21,4 @@ function defineAttributesMetadata(target, propertyKey, options) {
21
21
  attributes_handler_1.AttributesHandler.saveAttribute(target, attribute);
22
22
  }
23
23
 
24
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9kZWNvcmF0b3JzL2F0dHJpYnV0ZXMuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVFQUFtRTtBQUNuRSx5RUFBb0U7QUFFcEUsU0FBZ0IsVUFBVSxDQUFDLFVBQXlDO0lBQ2hFLE9BQU8sQ0FBQyxNQUFjLEVBQUUsV0FBb0IsRUFBRSxFQUFFO1FBQzVDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUpELGdDQUlDO0FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxNQUFjLEVBQUUsV0FBb0IsRUFBRSxPQUFzQztJQUMxRyxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2QsTUFBTSxVQUFVLEdBQUcsdUNBQWlCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsdUNBQWlCLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNyRCxPQUFPO0tBQ1Y7SUFFRCxNQUFNLFNBQVMsR0FBRyxzQ0FBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3RFLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsc0NBQWlCLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN2RCxDQUFDIiwiZmlsZSI6ImxpYi9kZWNvcmF0b3JzL2F0dHJpYnV0ZXMuZGVjb3JhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvamVjdGlvbkFsaWFzIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgQXR0cmlidXRlc0hhbmRsZXIgfSBmcm9tIFwiLi4vaGFuZGxlcnMvYXR0cmlidXRlcy5oYW5kbGVyXCI7XG5pbXBvcnQgeyBEYXRhRmlsdGVySGFuZGxlciB9IGZyb20gXCIuLi9oYW5kbGVycy9kYXRhLWZpbHRlci5oYW5kbGVyXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM/OiAoc3RyaW5nIHwgUHJvamVjdGlvbkFsaWFzKVtdKTogUHJvcGVydHlEZWNvcmF0b3IgJiBDbGFzc0RlY29yYXRvciB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgZGVmaW5lQXR0cmlidXRlc01ldGFkYXRhKHRhcmdldCwgcHJvcGVydHlLZXksIGF0dHJpYnV0ZXMpO1xuICAgIH07XG59XG5cbmZ1bmN0aW9uIGRlZmluZUF0dHJpYnV0ZXNNZXRhZGF0YSh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk/OiBzdHJpbmcsIG9wdGlvbnM/OiAoc3RyaW5nIHwgUHJvamVjdGlvbkFsaWFzKVtdKSB7XG4gICAgaWYgKCFwcm9wZXJ0eUtleSkge1xuICAgICAgICBjb25zdCBkYXRhRmlsdGVyID0gRGF0YUZpbHRlckhhbmRsZXIuZ2V0RGF0YUZpbHRlcih0YXJnZXQpO1xuICAgICAgICBkYXRhRmlsdGVyLnNldEF0dHJpYnV0ZXMob3B0aW9ucyk7XG4gICAgICAgIERhdGFGaWx0ZXJIYW5kbGVyLnNhdmVEYXRhRmlsdGVyKHRhcmdldCwgZGF0YUZpbHRlcik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhdHRyaWJ1dGUgPSBBdHRyaWJ1dGVzSGFuZGxlci5nZXRBdHRyaWJ1dGUodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgYXR0cmlidXRlLnNldEF0dHJpYnV0ZXMob3B0aW9ucyk7XG4gICAgQXR0cmlidXRlc0hhbmRsZXIuc2F2ZUF0dHJpYnV0ZSh0YXJnZXQsIGF0dHJpYnV0ZSk7XG59XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9kZWNvcmF0b3JzL2F0dHJpYnV0ZXMuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVFQUFtRTtBQUNuRSx5RUFBb0U7QUFFcEUsU0FBZ0IsVUFBVSxDQUFDLFVBQWlDO0lBQ3hELE9BQU8sQ0FBQyxNQUFjLEVBQUUsV0FBb0IsRUFBRSxFQUFFO1FBQzVDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUpELGdDQUlDO0FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxNQUFjLEVBQUUsV0FBb0IsRUFBRSxPQUE4QjtJQUNsRyxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2QsTUFBTSxVQUFVLEdBQUcsdUNBQWlCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsdUNBQWlCLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNyRCxPQUFPO0tBQ1Y7SUFFRCxNQUFNLFNBQVMsR0FBRyxzQ0FBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3RFLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsc0NBQWlCLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN2RCxDQUFDIiwiZmlsZSI6ImxpYi9kZWNvcmF0b3JzL2F0dHJpYnV0ZXMuZGVjb3JhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmluZEF0dHJpYnV0ZU9wdGlvbnMgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBBdHRyaWJ1dGVzSGFuZGxlciB9IGZyb20gXCIuLi9oYW5kbGVycy9hdHRyaWJ1dGVzLmhhbmRsZXJcIjtcbmltcG9ydCB7IERhdGFGaWx0ZXJIYW5kbGVyIH0gZnJvbSBcIi4uL2hhbmRsZXJzL2RhdGEtZmlsdGVyLmhhbmRsZXJcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIEF0dHJpYnV0ZXMoYXR0cmlidXRlcz86IEZpbmRBdHRyaWJ1dGVPcHRpb25zKTogUHJvcGVydHlEZWNvcmF0b3IgJiBDbGFzc0RlY29yYXRvciB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgZGVmaW5lQXR0cmlidXRlc01ldGFkYXRhKHRhcmdldCwgcHJvcGVydHlLZXksIGF0dHJpYnV0ZXMpO1xuICAgIH07XG59XG5cbmZ1bmN0aW9uIGRlZmluZUF0dHJpYnV0ZXNNZXRhZGF0YSh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk/OiBzdHJpbmcsIG9wdGlvbnM/OiBGaW5kQXR0cmlidXRlT3B0aW9ucykge1xuICAgIGlmICghcHJvcGVydHlLZXkpIHtcbiAgICAgICAgY29uc3QgZGF0YUZpbHRlciA9IERhdGFGaWx0ZXJIYW5kbGVyLmdldERhdGFGaWx0ZXIodGFyZ2V0KTtcbiAgICAgICAgZGF0YUZpbHRlci5zZXRBdHRyaWJ1dGVzKG9wdGlvbnMpO1xuICAgICAgICBEYXRhRmlsdGVySGFuZGxlci5zYXZlRGF0YUZpbHRlcih0YXJnZXQsIGRhdGFGaWx0ZXIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlID0gQXR0cmlidXRlc0hhbmRsZXIuZ2V0QXR0cmlidXRlKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgIGF0dHJpYnV0ZS5zZXRBdHRyaWJ1dGVzKG9wdGlvbnMpO1xuICAgIEF0dHJpYnV0ZXNIYW5kbGVyLnNhdmVBdHRyaWJ1dGUodGFyZ2V0LCBhdHRyaWJ1dGUpO1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { WhereOptions } from "sequelize";
2
- import { Where } from "sequelize/types/lib/utils";
2
+ import { Where } from "sequelize/types/utils";
3
3
  export declare enum FilterOperatorTypes {
4
4
  Equal = "equal",
5
5
  NotEqual = "not_equal",
@@ -48,4 +48,4 @@ exports.DateOperators = [
48
48
  ];
49
49
  exports.NullOperators = [FilterOperatorTypes.IsNull, FilterOperatorTypes.IsNotNull];
50
50
 
51
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9maWx0ZXIvb3BlcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLElBQVksbUJBcUJYO0FBckJELFdBQVksbUJBQW1CO0lBQzNCLHNDQUFlLENBQUE7SUFDZiw2Q0FBc0IsQ0FBQTtJQUN0QixnQ0FBUyxDQUFBO0lBQ1QsdUNBQWdCLENBQUE7SUFDaEIsb0NBQWEsQ0FBQTtJQUNiLG9EQUE2QixDQUFBO0lBQzdCLDBDQUFtQixDQUFBO0lBQ25CLDBEQUFtQyxDQUFBO0lBQ25DLDBDQUFtQixDQUFBO0lBQ25CLGlEQUEwQixDQUFBO0lBQzFCLHlDQUFrQixDQUFBO0lBQ2xCLGdEQUF5QixDQUFBO0lBQ3pCLGlEQUEwQixDQUFBO0lBQzFCLHdEQUFpQyxDQUFBO0lBQ2pDLDZDQUFzQixDQUFBO0lBQ3RCLG9EQUE2QixDQUFBO0lBQzdCLDRDQUFxQixDQUFBO0lBQ3JCLG1EQUE0QixDQUFBO0lBQzVCLDJDQUFvQixDQUFBO0lBQ3BCLGtEQUEyQixDQUFBO0FBQy9CLENBQUMsRUFyQlcsbUJBQW1CLEdBQW5CLDJCQUFtQixLQUFuQiwyQkFBbUIsUUFxQjlCO0FBV1ksUUFBQSxlQUFlLEdBQTBCLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRW5HLFFBQUEsZUFBZSxHQUEwQjtJQUNsRCxtQkFBbUIsQ0FBQyxLQUFLO0lBQ3pCLG1CQUFtQixDQUFDLFFBQVE7SUFDNUIsbUJBQW1CLENBQUMsUUFBUTtJQUM1QixtQkFBbUIsQ0FBQyxVQUFVO0lBQzlCLG1CQUFtQixDQUFDLGFBQWE7SUFDakMsbUJBQW1CLENBQUMsUUFBUTtJQUM1QixtQkFBbUIsQ0FBQyxXQUFXO0NBQ2xDLENBQUM7QUFFVyxRQUFBLGVBQWUsR0FBMEI7SUFDbEQsR0FBRyx1QkFBZTtJQUNsQixtQkFBbUIsQ0FBQyxPQUFPO0lBQzNCLG1CQUFtQixDQUFDLGNBQWM7SUFDbEMsbUJBQW1CLENBQUMsSUFBSTtJQUN4QixtQkFBbUIsQ0FBQyxXQUFXO0NBQ2xDLENBQUM7QUFFVyxRQUFBLGFBQWEsR0FBMEI7SUFDaEQsR0FBRyx1QkFBZTtJQUNsQixtQkFBbUIsQ0FBQyxPQUFPO0lBQzNCLG1CQUFtQixDQUFDLFVBQVU7Q0FDakMsQ0FBQztBQUVXLFFBQUEsYUFBYSxHQUEwQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvZmlsdGVyL29wZXJhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdoZXJlT3B0aW9ucyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IFdoZXJlIH0gZnJvbSBcInNlcXVlbGl6ZS90eXBlcy9saWIvdXRpbHNcIjtcblxuZXhwb3J0IGVudW0gRmlsdGVyT3BlcmF0b3JUeXBlcyB7XG4gICAgRXF1YWwgPSBcImVxdWFsXCIsXG4gICAgTm90RXF1YWwgPSBcIm5vdF9lcXVhbFwiLFxuICAgIEluID0gXCJpblwiLFxuICAgIE5vdEluID0gXCJub3RfaW5cIixcbiAgICBMZXNzID0gXCJsZXNzXCIsXG4gICAgTGVzc09yRXF1YWwgPSBcImxlc3Nfb3JfZXF1YWxcIixcbiAgICBHcmVhdGVyID0gXCJncmVhdGVyXCIsXG4gICAgR3JlYXRlck9yRXF1YWwgPSBcImdyZWF0ZXJfb3JfZXF1YWxcIixcbiAgICBCZXR3ZWVuID0gXCJiZXR3ZWVuXCIsXG4gICAgTm90QmV0d2VlbiA9IFwibm90X2JldHdlZW5cIixcbiAgICBJc051bGwgPSBcImlzX251bGxcIixcbiAgICBJc05vdE51bGwgPSBcImlzX25vdF9udWxsXCIsXG4gICAgQmVnaW5zV2l0aCA9IFwiYmVnaW5zX3dpdGhcIixcbiAgICBOb3RCZWdpbnNXaXRoID0gXCJub3RfYmVnaW5zX3dpdGhcIixcbiAgICBFbmRzV2l0aCA9IFwiZW5kc193aXRoXCIsXG4gICAgTm90RW5kc1dpdGggPSBcIm5vdF9lbmRzX3dpdGhcIixcbiAgICBDb250YWlucyA9IFwiY29udGFpbnNcIixcbiAgICBOb3RDb250YWlucyA9IFwibm90X2NvbnRhaW5zXCIsXG4gICAgSXNFbXB0eSA9IFwiaXNfZW1wdHlcIixcbiAgICBJc05vdEVtcHR5ID0gXCJpc19ub3RfZW1wdHlcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU9wZXJhdG9yIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgd2hlcmU/OiBXaGVyZU9wdGlvbnMgfCAoKHZhbHVlOiBhbnkpID0+IFdoZXJlT3B0aW9ucyk7XG4gICAgaGF2aW5nPzogV2hlcmU7XG4gICAgb3BlcmF0b3I/OiBGaWx0ZXJPcGVyYXRvclR5cGVzO1xufVxuXG5leHBvcnQgdHlwZSBGaWx0ZXJPcGVyYXRvcnMgPSBGaWx0ZXJPcGVyYXRvclR5cGVzIHwgc3RyaW5nO1xuXG5leHBvcnQgY29uc3QgU2VsZWN0T3BlcmF0b3JzOiBGaWx0ZXJPcGVyYXRvclR5cGVzW10gPSBbRmlsdGVyT3BlcmF0b3JUeXBlcy5FcXVhbCwgRmlsdGVyT3BlcmF0b3JUeXBlcy5Ob3RFcXVhbF07XG5cbmV4cG9ydCBjb25zdCBTdHJpbmdPcGVyYXRvcnM6IEZpbHRlck9wZXJhdG9yVHlwZXNbXSA9IFtcbiAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLkVxdWFsLFxuICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuTm90RXF1YWwsXG4gICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5Db250YWlucyxcbiAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLkJlZ2luc1dpdGgsXG4gICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5Ob3RCZWdpbnNXaXRoLFxuICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuRW5kc1dpdGgsXG4gICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5Ob3RFbmRzV2l0aFxuXTtcblxuZXhwb3J0IGNvbnN0IE51bWJlck9wZXJhdG9yczogRmlsdGVyT3BlcmF0b3JUeXBlc1tdID0gW1xuICAgIC4uLlNlbGVjdE9wZXJhdG9ycyxcbiAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLkdyZWF0ZXIsXG4gICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5HcmVhdGVyT3JFcXVhbCxcbiAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLkxlc3MsXG4gICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5MZXNzT3JFcXVhbFxuXTtcblxuZXhwb3J0IGNvbnN0IERhdGVPcGVyYXRvcnM6IEZpbHRlck9wZXJhdG9yVHlwZXNbXSA9IFtcbiAgICAuLi5OdW1iZXJPcGVyYXRvcnMsXG4gICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5CZXR3ZWVuLFxuICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuTm90QmV0d2VlblxuXTtcblxuZXhwb3J0IGNvbnN0IE51bGxPcGVyYXRvcnM6IEZpbHRlck9wZXJhdG9yVHlwZXNbXSA9IFtGaWx0ZXJPcGVyYXRvclR5cGVzLklzTnVsbCwgRmlsdGVyT3BlcmF0b3JUeXBlcy5Jc05vdE51bGxdO1xuIl19
51
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9maWx0ZXIvb3BlcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLElBQVksbUJBcUJYO0FBckJELFdBQVksbUJBQW1CO0lBQzNCLHNDQUFlLENBQUE7SUFDZiw2Q0FBc0IsQ0FBQTtJQUN0QixnQ0FBUyxDQUFBO0lBQ1QsdUNBQWdCLENBQUE7SUFDaEIsb0NBQWEsQ0FBQTtJQUNiLG9EQUE2QixDQUFBO0lBQzdCLDBDQUFtQixDQUFBO0lBQ25CLDBEQUFtQyxDQUFBO0lBQ25DLDBDQUFtQixDQUFBO0lBQ25CLGlEQUEwQixDQUFBO0lBQzFCLHlDQUFrQixDQUFBO0lBQ2xCLGdEQUF5QixDQUFBO0lBQ3pCLGlEQUEwQixDQUFBO0lBQzFCLHdEQUFpQyxDQUFBO0lBQ2pDLDZDQUFzQixDQUFBO0lBQ3RCLG9EQUE2QixDQUFBO0lBQzdCLDRDQUFxQixDQUFBO0lBQ3JCLG1EQUE0QixDQUFBO0lBQzVCLDJDQUFvQixDQUFBO0lBQ3BCLGtEQUEyQixDQUFBO0FBQy9CLENBQUMsRUFyQlcsbUJBQW1CLEdBQW5CLDJCQUFtQixLQUFuQiwyQkFBbUIsUUFxQjlCO0FBV1ksUUFBQSxlQUFlLEdBQTBCLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRW5HLFFBQUEsZUFBZSxHQUEwQjtJQUNsRCxtQkFBbUIsQ0FBQyxLQUFLO0lBQ3pCLG1CQUFtQixDQUFDLFFBQVE7SUFDNUIsbUJBQW1CLENBQUMsUUFBUTtJQUM1QixtQkFBbUIsQ0FBQyxVQUFVO0lBQzlCLG1CQUFtQixDQUFDLGFBQWE7SUFDakMsbUJBQW1CLENBQUMsUUFBUTtJQUM1QixtQkFBbUIsQ0FBQyxXQUFXO0NBQ2xDLENBQUM7QUFFVyxRQUFBLGVBQWUsR0FBMEI7SUFDbEQsR0FBRyx1QkFBZTtJQUNsQixtQkFBbUIsQ0FBQyxPQUFPO0lBQzNCLG1CQUFtQixDQUFDLGNBQWM7SUFDbEMsbUJBQW1CLENBQUMsSUFBSTtJQUN4QixtQkFBbUIsQ0FBQyxXQUFXO0NBQ2xDLENBQUM7QUFFVyxRQUFBLGFBQWEsR0FBMEI7SUFDaEQsR0FBRyx1QkFBZTtJQUNsQixtQkFBbUIsQ0FBQyxPQUFPO0lBQzNCLG1CQUFtQixDQUFDLFVBQVU7Q0FDakMsQ0FBQztBQUVXLFFBQUEsYUFBYSxHQUEwQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvZmlsdGVyL29wZXJhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdoZXJlT3B0aW9ucyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IFdoZXJlIH0gZnJvbSBcInNlcXVlbGl6ZS90eXBlcy91dGlsc1wiO1xuXG5leHBvcnQgZW51bSBGaWx0ZXJPcGVyYXRvclR5cGVzIHtcbiAgICBFcXVhbCA9IFwiZXF1YWxcIixcbiAgICBOb3RFcXVhbCA9IFwibm90X2VxdWFsXCIsXG4gICAgSW4gPSBcImluXCIsXG4gICAgTm90SW4gPSBcIm5vdF9pblwiLFxuICAgIExlc3MgPSBcImxlc3NcIixcbiAgICBMZXNzT3JFcXVhbCA9IFwibGVzc19vcl9lcXVhbFwiLFxuICAgIEdyZWF0ZXIgPSBcImdyZWF0ZXJcIixcbiAgICBHcmVhdGVyT3JFcXVhbCA9IFwiZ3JlYXRlcl9vcl9lcXVhbFwiLFxuICAgIEJldHdlZW4gPSBcImJldHdlZW5cIixcbiAgICBOb3RCZXR3ZWVuID0gXCJub3RfYmV0d2VlblwiLFxuICAgIElzTnVsbCA9IFwiaXNfbnVsbFwiLFxuICAgIElzTm90TnVsbCA9IFwiaXNfbm90X251bGxcIixcbiAgICBCZWdpbnNXaXRoID0gXCJiZWdpbnNfd2l0aFwiLFxuICAgIE5vdEJlZ2luc1dpdGggPSBcIm5vdF9iZWdpbnNfd2l0aFwiLFxuICAgIEVuZHNXaXRoID0gXCJlbmRzX3dpdGhcIixcbiAgICBOb3RFbmRzV2l0aCA9IFwibm90X2VuZHNfd2l0aFwiLFxuICAgIENvbnRhaW5zID0gXCJjb250YWluc1wiLFxuICAgIE5vdENvbnRhaW5zID0gXCJub3RfY29udGFpbnNcIixcbiAgICBJc0VtcHR5ID0gXCJpc19lbXB0eVwiLFxuICAgIElzTm90RW1wdHkgPSBcImlzX25vdF9lbXB0eVwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tT3BlcmF0b3Ige1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB3aGVyZT86IFdoZXJlT3B0aW9ucyB8ICgodmFsdWU6IGFueSkgPT4gV2hlcmVPcHRpb25zKTtcbiAgICBoYXZpbmc/OiBXaGVyZTtcbiAgICBvcGVyYXRvcj86IEZpbHRlck9wZXJhdG9yVHlwZXM7XG59XG5cbmV4cG9ydCB0eXBlIEZpbHRlck9wZXJhdG9ycyA9IEZpbHRlck9wZXJhdG9yVHlwZXMgfCBzdHJpbmc7XG5cbmV4cG9ydCBjb25zdCBTZWxlY3RPcGVyYXRvcnM6IEZpbHRlck9wZXJhdG9yVHlwZXNbXSA9IFtGaWx0ZXJPcGVyYXRvclR5cGVzLkVxdWFsLCBGaWx0ZXJPcGVyYXRvclR5cGVzLk5vdEVxdWFsXTtcblxuZXhwb3J0IGNvbnN0IFN0cmluZ09wZXJhdG9yczogRmlsdGVyT3BlcmF0b3JUeXBlc1tdID0gW1xuICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuRXF1YWwsXG4gICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5Ob3RFcXVhbCxcbiAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLkNvbnRhaW5zLFxuICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuQmVnaW5zV2l0aCxcbiAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLk5vdEJlZ2luc1dpdGgsXG4gICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5FbmRzV2l0aCxcbiAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLk5vdEVuZHNXaXRoXG5dO1xuXG5leHBvcnQgY29uc3QgTnVtYmVyT3BlcmF0b3JzOiBGaWx0ZXJPcGVyYXRvclR5cGVzW10gPSBbXG4gICAgLi4uU2VsZWN0T3BlcmF0b3JzLFxuICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuR3JlYXRlcixcbiAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLkdyZWF0ZXJPckVxdWFsLFxuICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuTGVzcyxcbiAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLkxlc3NPckVxdWFsXG5dO1xuXG5leHBvcnQgY29uc3QgRGF0ZU9wZXJhdG9yczogRmlsdGVyT3BlcmF0b3JUeXBlc1tdID0gW1xuICAgIC4uLk51bWJlck9wZXJhdG9ycyxcbiAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLkJldHdlZW4sXG4gICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5Ob3RCZXR3ZWVuXG5dO1xuXG5leHBvcnQgY29uc3QgTnVsbE9wZXJhdG9yczogRmlsdGVyT3BlcmF0b3JUeXBlc1tdID0gW0ZpbHRlck9wZXJhdG9yVHlwZXMuSXNOdWxsLCBGaWx0ZXJPcGVyYXRvclR5cGVzLklzTm90TnVsbF07XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Col, Fn, Literal } from "sequelize/types/lib/utils";
1
+ import { Col, Fn, Literal } from "sequelize/types/utils";
2
2
  export declare type OrderItemColumn = string | Col | Fn | Literal;
3
3
  export interface BaseOrderRuleDefinition {
4
4
  attribute: string;
@@ -14,4 +14,4 @@ class OrderRule {
14
14
  }
15
15
  exports.OrderRule = OrderRule;
16
16
 
17
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9maWx0ZXIvb3JkZXItcnVsZXMvb3JkZXItcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSxNQUFzQixTQUFTO0lBTTNCLFlBQXNCLFVBQW9DO1FBTGxELFVBQUssR0FBRyxZQUFZLENBQUM7UUFNekIsSUFBSSxVQUFVLEVBQUU7WUFDWixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQW1DO1FBQ3RELE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFlBQVksQ0FBQztJQUNoRCxDQUFDO0NBR0o7QUFqQkQsOEJBaUJDIiwiZmlsZSI6ImxpYi9maWx0ZXIvb3JkZXItcnVsZXMvb3JkZXItcnVsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbCwgRm4sIExpdGVyYWwgfSBmcm9tIFwic2VxdWVsaXplL3R5cGVzL2xpYi91dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBPcmRlckl0ZW1Db2x1bW4gPSBzdHJpbmcgfCBDb2wgfCBGbiB8IExpdGVyYWw7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZU9yZGVyUnVsZURlZmluaXRpb24ge1xuICAgIGF0dHJpYnV0ZTogc3RyaW5nO1xuICAgIHBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJSdWxlRGVmaW5pdGlvbiBleHRlbmRzIEJhc2VPcmRlclJ1bGVEZWZpbml0aW9uIHtcbiAgICBnZXRPcmRlck9wdGlvbigpOiBPcmRlckl0ZW1Db2x1bW47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPcmRlclJ1bGUgaW1wbGVtZW50cyBPcmRlclJ1bGVEZWZpbml0aW9uIHtcbiAgICBwcml2YXRlIF90eXBlID0gXCJvcmRlcl9ydWxlXCI7XG5cbiAgICBwdWJsaWMgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgcHVibGljIHBhdGg/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoZGVmaW5pdGlvbj86IEJhc2VPcmRlclJ1bGVEZWZpbml0aW9uKSB7XG4gICAgICAgIGlmIChkZWZpbml0aW9uKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRlZmluaXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZShkZWZpbml0aW9uOiBCYXNlT3JkZXJSdWxlRGVmaW5pdGlvbikge1xuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbltcIl90eXBlXCJdID09PSBcIm9yZGVyX3J1bGVcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0T3JkZXJPcHRpb24oKTogT3JkZXJJdGVtQ29sdW1uO1xufVxuIl19
17
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9maWx0ZXIvb3JkZXItcnVsZXMvb3JkZXItcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSxNQUFzQixTQUFTO0lBTTNCLFlBQXNCLFVBQW9DO1FBTGxELFVBQUssR0FBRyxZQUFZLENBQUM7UUFNekIsSUFBSSxVQUFVLEVBQUU7WUFDWixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQW1DO1FBQ3RELE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFlBQVksQ0FBQztJQUNoRCxDQUFDO0NBR0o7QUFqQkQsOEJBaUJDIiwiZmlsZSI6ImxpYi9maWx0ZXIvb3JkZXItcnVsZXMvb3JkZXItcnVsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbCwgRm4sIExpdGVyYWwgfSBmcm9tIFwic2VxdWVsaXplL3R5cGVzL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIE9yZGVySXRlbUNvbHVtbiA9IHN0cmluZyB8IENvbCB8IEZuIHwgTGl0ZXJhbDtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlT3JkZXJSdWxlRGVmaW5pdGlvbiB7XG4gICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgcGF0aD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcmRlclJ1bGVEZWZpbml0aW9uIGV4dGVuZHMgQmFzZU9yZGVyUnVsZURlZmluaXRpb24ge1xuICAgIGdldE9yZGVyT3B0aW9uKCk6IE9yZGVySXRlbUNvbHVtbjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9yZGVyUnVsZSBpbXBsZW1lbnRzIE9yZGVyUnVsZURlZmluaXRpb24ge1xuICAgIHByaXZhdGUgX3R5cGUgPSBcIm9yZGVyX3J1bGVcIjtcblxuICAgIHB1YmxpYyBhdHRyaWJ1dGU6IHN0cmluZztcbiAgICBwdWJsaWMgcGF0aD86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihkZWZpbml0aW9uPzogQmFzZU9yZGVyUnVsZURlZmluaXRpb24pIHtcbiAgICAgICAgaWYgKGRlZmluaXRpb24pIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGVmaW5pdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlKGRlZmluaXRpb246IEJhc2VPcmRlclJ1bGVEZWZpbml0aW9uKSB7XG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uW1wiX3R5cGVcIl0gPT09IFwib3JkZXJfcnVsZVwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRPcmRlck9wdGlvbigpOiBPcmRlckl0ZW1Db2x1bW47XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AttributesConfig = void 0;
4
+ const sequelize_utils_1 = require("../sequelize.utils");
4
5
  class AttributesConfig {
5
6
  constructor(key) {
6
7
  this.key = key;
@@ -56,10 +57,12 @@ class AttributesConfig {
56
57
  transformAttributesConfig(options) {
57
58
  const customAttributes = this.getCustomAttributes(options);
58
59
  if (this.attributes) {
59
- return [
60
- ...this.attributes,
61
- ...customAttributes.map(x => x.attribute)
62
- ];
60
+ if (this.customAttributes.length) {
61
+ return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(sequelize_utils_1.SequelizeUtils.mergeAttributes(this.attributes, {
62
+ include: customAttributes.map(x => x.attribute)
63
+ }));
64
+ }
65
+ return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(this.attributes);
63
66
  }
64
67
  if (!this.attributes && customAttributes.length) {
65
68
  return {
@@ -136,4 +139,4 @@ class AttributesConfig {
136
139
  }
137
140
  exports.AttributesConfig = AttributesConfig;
138
141
 
139
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvYXR0cmlidXRlcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSxNQUFhLGdCQUFnQjtJQVF6QixZQUFtQixHQUFXO1FBQVgsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUp2QixhQUFRLEdBQW9CLEVBQUUsQ0FBQztRQUMvQixxQkFBZ0IsR0FBNkIsRUFBRSxDQUFDO1FBQ2hELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRzFCLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDUixJQUFJLEVBQUUsR0FBRztZQUNULFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7SUFDTixDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQWlDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxVQUFvQjtRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBZ0I7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZOztRQUM1QixPQUFPLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sZUFBZSxDQUFDLE1BQWU7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFZO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQXNCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxTQUFpQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxPQUFnQjtRQUN2QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDckMsT0FBTyxJQUFpQixDQUFDO1NBQzVCO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNqQixPQUFPO2dCQUNILEdBQUcsSUFBSSxDQUFDLElBQUk7Z0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7YUFDaEUsQ0FBQztTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBRU0seUJBQXlCLENBQUMsT0FBZ0I7UUFDN0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLE9BQU87Z0JBQ0gsR0FBRyxJQUFJLENBQUMsVUFBc0I7Z0JBQzlCLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQzthQUM1QyxDQUFDO1NBQ0w7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDN0MsT0FBTztnQkFDSCxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQzthQUNsRCxDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBRU0sdUJBQXVCLENBQUMsT0FBZ0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsUUFBUTthQUNmLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNMLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtnQkFDMUIsT0FBTyxDQUFDLENBQUM7YUFDWjtZQUVELElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRTtnQkFDZCxPQUFPO29CQUNILEdBQUcsQ0FBQztvQkFDSixVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFzQixFQUFFLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN2RixDQUFDO2FBQ0w7aUJBQU07Z0JBQ0gsT0FBTztvQkFDSCxHQUFHLENBQUM7b0JBQ0osVUFBVSxFQUFFO3dCQUNSLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO3FCQUNsRDtpQkFDSixDQUFDO2FBQ0w7UUFDTCxDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNWLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLE9BQU8sTUFBTSxDQUFDO2FBQ2pCO1lBRUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLENBQUM7YUFDWjtZQUVELE9BQU87Z0JBQ0gsR0FBRyxDQUFDO2dCQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7YUFDeEQsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE9BQWdCLEVBQUUsSUFBYTtRQUN0RCxPQUFPLElBQUksQ0FBQyxnQkFBZ0I7YUFDdkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO2FBQ25DLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDUCxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUc7WUFDVixTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDL0MsSUFBSSxFQUFHLENBQUMsQ0FBQyxNQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxFQUFHLENBQUMsQ0FBQyxNQUFjLENBQUMsSUFBSTtnQkFDNUIsUUFBUSxFQUFFLElBQUk7YUFDakIsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNlLENBQUEsQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLHVCQUF1QixDQUFDLEtBQXdCLEVBQUUsT0FBZ0I7UUFDdEUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxHQUFHO1lBQ1QsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNyQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7U0FDekMsQ0FBQztRQUNGLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixTQUFTO2FBQ1o7WUFFRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekMsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLEVBQUU7Z0JBQzlCLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDdEI7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSjtBQTFKRCw0Q0EwSkMiLCJmaWxlIjoibGliL21vZGVscy9hdHRyaWJ1dGVzLm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmluZEF0dHJpYnV0ZU9wdGlvbnMsIE9yZGVyLCBXaGVyZU9wdGlvbnMgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBJbmNsdWRlQ29uZmlnLCBJbmNsdWRlTW9kZWwsIEluY2x1ZGVXaGVyZU1vZGVsIH0gZnJvbSBcIi4vaW5jbHVkZS5tb2RlbFwiO1xuaW1wb3J0IHsgUGF0aENvbmZpZywgUGF0aE1vZGVsIH0gZnJvbSBcIi4vcGF0aC5tb2RlbFwiO1xuaW1wb3J0IHsgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZywgQ3VzdG9tQXR0cmlidXRlc01vZGVsIH0gZnJvbSBcIi4vY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVzQ29uZmlnTW9kZWwge1xuICAgIGtleTogc3RyaW5nO1xuICAgIGF0dHJpYnV0ZXM/OiBGaW5kQXR0cmlidXRlT3B0aW9ucztcbiAgICBwYXRoPzogUGF0aENvbmZpZztcbiAgICBpbmNsdWRlczogSW5jbHVkZUNvbmZpZ1tdO1xuICAgIGN1c3RvbUF0dHJpYnV0ZXM6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZXNDb25maWcgaW1wbGVtZW50cyBBdHRyaWJ1dGVzQ29uZmlnTW9kZWwge1xuICAgIHB1YmxpYyBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgcHVibGljIHNlYXJjaGFibGVBdHRyaWJ1dGVzPzogc3RyaW5nW107XG4gICAgcHVibGljIHBhdGg6IFBhdGhDb25maWc7XG4gICAgcHVibGljIGluY2x1ZGVzOiBJbmNsdWRlQ29uZmlnW10gPSBbXTtcbiAgICBwdWJsaWMgY3VzdG9tQXR0cmlidXRlczogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZ1tdID0gW107XG4gICAgcHVibGljIGlnbm9yZUluU2VhcmNoID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMga2V5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5wYXRoID0ge1xuICAgICAgICAgICAgcGF0aDoga2V5LFxuICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VhcmNoYWJsZUF0dHJpYnV0ZXMoYXR0cmlidXRlczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5zZWFyY2hhYmxlQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhdGgocGF0aDogUGF0aENvbmZpZykge1xuICAgICAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250YWluc1BhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhdGg/LnBhdGguc3RhcnRzV2l0aChwYXRoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SWdub3JlSW5QYXRoKGlnbm9yZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlnbm9yZUluU2VhcmNoID0gaWdub3JlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTZXBhcmF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXRoLnNlcGFyYXRlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0T3JkZXIob3JkZXI6IE9yZGVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGF0aC5vcmRlciA9IG9yZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRJbmNsdWRlKGluY2x1ZGU6IEluY2x1ZGVDb25maWcpIHtcbiAgICAgICAgdGhpcy5pbmNsdWRlcy5wdXNoKGluY2x1ZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDdXN0b21BdHRyaWJ1dGUoYXR0cmlidXRlOiBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tQXR0cmlidXRlcy5wdXNoKGF0dHJpYnV0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybVBhdGhDb25maWcob3B0aW9ucz86IG9iamVjdCk6IFBhdGhNb2RlbCB7XG4gICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgeyB3aGVyZSwgLi4ucGF0aCB9ID0gdGhpcy5wYXRoO1xuICAgICAgICAgICAgcmV0dXJuIHBhdGggYXMgUGF0aE1vZGVsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGF0aC53aGVyZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnBhdGgsXG4gICAgICAgICAgICAgICAgd2hlcmU6IHRoaXMuZ2VuZXJhdGVXaGVyZUNvbmRpdGlvbnModGhpcy5wYXRoLndoZXJlLCBvcHRpb25zKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnBhdGggYXMgUGF0aE1vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1BdHRyaWJ1dGVzQ29uZmlnKG9wdGlvbnM/OiBvYmplY3QpOiBGaW5kQXR0cmlidXRlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucyk7XG4gICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgLi4udGhpcy5hdHRyaWJ1dGVzIGFzIHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgIC4uLmN1c3RvbUF0dHJpYnV0ZXMubWFwKHggPT4geC5hdHRyaWJ1dGUpXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5hdHRyaWJ1dGVzICYmIGN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGluY2x1ZGU6IGN1c3RvbUF0dHJpYnV0ZXMubWFwKHggPT4geC5hdHRyaWJ1dGUpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybUluY2x1ZGVzQ29uZmlnKG9wdGlvbnM/OiBvYmplY3QpOiBJbmNsdWRlTW9kZWxbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluY2x1ZGVzXG4gICAgICAgICAgICAubWFwKHggPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucywgeC5wYXRoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh4LmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLngsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbLi4ueC5hdHRyaWJ1dGVzIGFzIHN0cmluZ1tdLCAuLi5jdXN0b21BdHRyaWJ1dGVzLm1hcChhID0+IGEuYXR0cmlidXRlKV1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlOiBjdXN0b21BdHRyaWJ1dGVzLm1hcChhID0+IGEuYXR0cmlidXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKHggPT4ge1xuICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdoZXJlLCAuLi52YWx1ZXMgfSA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCF4LndoZXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLngsXG4gICAgICAgICAgICAgICAgICAgIHdoZXJlOiB0aGlzLmdlbmVyYXRlV2hlcmVDb25kaXRpb25zKHgud2hlcmUsIG9wdGlvbnMpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdXN0b21BdHRyaWJ1dGVzKG9wdGlvbnM/OiBvYmplY3QsIHBhdGg/OiBzdHJpbmcpOiBDdXN0b21BdHRyaWJ1dGVzTW9kZWxbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4LmNvbmZpZy5wYXRoID09PSBwYXRoKVxuICAgICAgICAgICAgLm1hcCh4ID0+ICh7XG4gICAgICAgICAgICAgICAga2V5OiB4LmtleSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IHgudHJhbnNmb3JtKG9wdGlvbnMsIHRoaXMucGF0aC5wYXRoKSxcbiAgICAgICAgICAgICAgICBwYXRoOiAoeC5jb25maWcgYXMgYW55KS5wYXRoID8ge1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiAoeC5jb25maWcgYXMgYW55KS5wYXRoLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbm9pZDogdHJ1ZVxuICAgICAgICAgICAgICAgIH0gOiBudWxsXG4gICAgICAgICAgICB9IGFzIEN1c3RvbUF0dHJpYnV0ZXNNb2RlbCkpXG4gICAgICAgICAgICAuZmlsdGVyKHggPT4geC5hdHRyaWJ1dGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVXaGVyZUNvbmRpdGlvbnMobW9kZWw6IEluY2x1ZGVXaGVyZU1vZGVsLCBvcHRpb25zPzogb2JqZWN0KTogV2hlcmVPcHRpb25zIHtcbiAgICAgICAgY29uc3Qgd2hlcmUgPSB7fTtcbiAgICAgICAgY29uc3Qga2V5cyA9IFtcbiAgICAgICAgICAgIC4uLk9iamVjdC5rZXlzKG1vZGVsKSxcbiAgICAgICAgICAgIC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobW9kZWwpXG4gICAgICAgIF07XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgICAgIGlmICghbW9kZWwuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG1vZGVsW2tleSBhcyBhbnldKG9wdGlvbnMpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgIHdoZXJlW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB3aGVyZTtcbiAgICB9XG59XG4iXX0=
142
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvYXR0cmlidXRlcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3REFBb0Q7QUFhcEQsTUFBYSxnQkFBZ0I7SUFRekIsWUFBbUIsR0FBVztRQUFYLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFKdkIsYUFBUSxHQUFvQixFQUFFLENBQUM7UUFDL0IscUJBQWdCLEdBQTZCLEVBQUUsQ0FBQztRQUNoRCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUcxQixJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1IsSUFBSSxFQUFFLEdBQUc7WUFDVCxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDO0lBQ04sQ0FBQztJQUVNLGFBQWEsQ0FBQyxVQUFpQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsVUFBb0I7UUFDL0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWdCO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBWTs7UUFDNUIsT0FBTyxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFzQjtRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElB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QUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDNUIsU0FBUzthQUNaO1lBRUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxFQUFFO2dCQUM5QixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ3RCO1NBQ0o7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0o7QUEvSkQsNENBK0pDIiwiZmlsZSI6ImxpYi9tb2RlbHMvYXR0cmlidXRlcy5tb2RlbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbmRBdHRyaWJ1dGVPcHRpb25zLCBPcmRlciwgV2hlcmVPcHRpb25zIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgU2VxdWVsaXplVXRpbHMgfSBmcm9tIFwiLi4vc2VxdWVsaXplLnV0aWxzXCI7XG5pbXBvcnQgeyBJbmNsdWRlQ29uZmlnLCBJbmNsdWRlTW9kZWwsIEluY2x1ZGVXaGVyZU1vZGVsIH0gZnJvbSBcIi4vaW5jbHVkZS5tb2RlbFwiO1xuaW1wb3J0IHsgUGF0aENvbmZpZywgUGF0aE1vZGVsIH0gZnJvbSBcIi4vcGF0aC5tb2RlbFwiO1xuaW1wb3J0IHsgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZywgQ3VzdG9tQXR0cmlidXRlc01vZGVsIH0gZnJvbSBcIi4vY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVzQ29uZmlnTW9kZWwge1xuICAgIGtleTogc3RyaW5nO1xuICAgIGF0dHJpYnV0ZXM/OiBGaW5kQXR0cmlidXRlT3B0aW9ucztcbiAgICBwYXRoPzogUGF0aENvbmZpZztcbiAgICBpbmNsdWRlczogSW5jbHVkZUNvbmZpZ1tdO1xuICAgIGN1c3RvbUF0dHJpYnV0ZXM6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZXNDb25maWcgaW1wbGVtZW50cyBBdHRyaWJ1dGVzQ29uZmlnTW9kZWwge1xuICAgIHB1YmxpYyBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgcHVibGljIHNlYXJjaGFibGVBdHRyaWJ1dGVzPzogc3RyaW5nW107XG4gICAgcHVibGljIHBhdGg6IFBhdGhDb25maWc7XG4gICAgcHVibGljIGluY2x1ZGVzOiBJbmNsdWRlQ29uZmlnW10gPSBbXTtcbiAgICBwdWJsaWMgY3VzdG9tQXR0cmlidXRlczogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZ1tdID0gW107XG4gICAgcHVibGljIGlnbm9yZUluU2VhcmNoID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMga2V5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5wYXRoID0ge1xuICAgICAgICAgICAgcGF0aDoga2V5LFxuICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VhcmNoYWJsZUF0dHJpYnV0ZXMoYXR0cmlidXRlczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5zZWFyY2hhYmxlQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhdGgocGF0aDogUGF0aENvbmZpZykge1xuICAgICAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250YWluc1BhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhdGg/LnBhdGguc3RhcnRzV2l0aChwYXRoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SWdub3JlSW5QYXRoKGlnbm9yZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlnbm9yZUluU2VhcmNoID0gaWdub3JlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTZXBhcmF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXRoLnNlcGFyYXRlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0T3JkZXIob3JkZXI6IE9yZGVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGF0aC5vcmRlciA9IG9yZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRJbmNsdWRlKGluY2x1ZGU6IEluY2x1ZGVDb25maWcpIHtcbiAgICAgICAgdGhpcy5pbmNsdWRlcy5wdXNoKGluY2x1ZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDdXN0b21BdHRyaWJ1dGUoYXR0cmlidXRlOiBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tQXR0cmlidXRlcy5wdXNoKGF0dHJpYnV0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybVBhdGhDb25maWcob3B0aW9ucz86IG9iamVjdCk6IFBhdGhNb2RlbCB7XG4gICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgeyB3aGVyZSwgLi4ucGF0aCB9ID0gdGhpcy5wYXRoO1xuICAgICAgICAgICAgcmV0dXJuIHBhdGggYXMgUGF0aE1vZGVsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGF0aC53aGVyZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnBhdGgsXG4gICAgICAgICAgICAgICAgd2hlcmU6IHRoaXMuZ2VuZXJhdGVXaGVyZUNvbmRpdGlvbnModGhpcy5wYXRoLndoZXJlLCBvcHRpb25zKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnBhdGggYXMgUGF0aE1vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1BdHRyaWJ1dGVzQ29uZmlnKG9wdGlvbnM/OiBvYmplY3QpOiBGaW5kQXR0cmlidXRlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucyk7XG4gICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmVuc3VyZUF0dHJpYnV0ZXNWYWxpZGl0eShcbiAgICAgICAgICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMubWVyZ2VBdHRyaWJ1dGVzKHRoaXMuYXR0cmlidXRlcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZW5zdXJlQXR0cmlidXRlc1ZhbGlkaXR5KHRoaXMuYXR0cmlidXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmF0dHJpYnV0ZXMgJiYgY3VzdG9tQXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtSW5jbHVkZXNDb25maWcob3B0aW9ucz86IG9iamVjdCk6IEluY2x1ZGVNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5jbHVkZXNcbiAgICAgICAgICAgIC5tYXAoeCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VzdG9tQXR0cmlidXRlcyA9IHRoaXMuZ2V0Q3VzdG9tQXR0cmlidXRlcyhvcHRpb25zLCB4LnBhdGgpO1xuICAgICAgICAgICAgICAgIGlmICghY3VzdG9tQXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHguYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFsuLi54LmF0dHJpYnV0ZXMgYXMgc3RyaW5nW10sIC4uLmN1c3RvbUF0dHJpYnV0ZXMubWFwKGEgPT4gYS5hdHRyaWJ1dGUpXVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi54LFxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGU6IGN1c3RvbUF0dHJpYnV0ZXMubWFwKGEgPT4gYS5hdHRyaWJ1dGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoeCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd2hlcmUsIC4uLnZhbHVlcyB9ID0geDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXgud2hlcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgd2hlcmU6IHRoaXMuZ2VuZXJhdGVXaGVyZUNvbmRpdGlvbnMoeC53aGVyZSwgb3B0aW9ucylcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucz86IG9iamVjdCwgcGF0aD86IHN0cmluZyk6IEN1c3RvbUF0dHJpYnV0ZXNNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tQXR0cmlidXRlc1xuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguY29uZmlnLnBhdGggPT09IHBhdGgpXG4gICAgICAgICAgICAubWFwKHggPT4gKHtcbiAgICAgICAgICAgICAgICBrZXk6IHgua2V5LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogeC50cmFuc2Zvcm0ob3B0aW9ucywgdGhpcy5wYXRoLnBhdGgpLFxuICAgICAgICAgICAgICAgIHBhdGg6ICh4LmNvbmZpZyBhcyBhbnkpLnBhdGggPyB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6ICh4LmNvbmZpZyBhcyBhbnkpLnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFub2lkOiB0cnVlXG4gICAgICAgICAgICAgICAgfSA6IG51bGxcbiAgICAgICAgICAgIH0gYXMgQ3VzdG9tQXR0cmlidXRlc01vZGVsKSlcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4LmF0dHJpYnV0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZVdoZXJlQ29uZGl0aW9ucyhtb2RlbDogSW5jbHVkZVdoZXJlTW9kZWwsIG9wdGlvbnM/OiBvYmplY3QpOiBXaGVyZU9wdGlvbnMge1xuICAgICAgICBjb25zdCB3aGVyZSA9IHt9O1xuICAgICAgICBjb25zdCBrZXlzID0gW1xuICAgICAgICAgICAgLi4uT2JqZWN0LmtleXMobW9kZWwpLFxuICAgICAgICAgICAgLi4uT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhtb2RlbClcbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgICAgaWYgKCFtb2RlbC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbW9kZWxba2V5IGFzIGFueV0ob3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgd2hlcmVba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHdoZXJlO1xuICAgIH1cbn1cbiJdfQ==
@@ -28,11 +28,12 @@ class DataFilterConfig {
28
28
  transformAttributesConfig(options) {
29
29
  const customAttributes = this.getCustomAttributes(options);
30
30
  if (this.attributes) {
31
- return [
32
- "id",
33
- ...this.attributes,
34
- ...customAttributes.map(x => x.attribute)
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsd0RBQXVEO0FBU3ZELE1BQWEsZ0JBQWdCO0lBQTdCO1FBS1cscUJBQWdCLEdBQTZCLEVBQUUsQ0FBQztRQUNoRCxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQWdGbEMsQ0FBQztJQTlFVSxRQUFRLENBQUMsS0FBbUI7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBaUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFVBQW9CO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxVQUFVLENBQUM7SUFDM0MsQ0FBQztJQUVNLGdCQUFnQixDQUFDLGFBQXVCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxTQUFpQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxPQUFnQjtRQUM3QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsT0FBTztnQkFDSCxJQUFJO2dCQUNKLEdBQUksSUFBSSxDQUFDLFVBQXVCO2dCQUNoQyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDNUMsQ0FBQztTQUNMO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQzdDLE9BQU87Z0JBQ0gsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDbEQsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE9BQWdCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN2QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO1lBQ1YsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQy9CLElBQUksRUFBRyxDQUFDLENBQUMsTUFBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLElBQUksRUFBRyxDQUFDLENBQUMsTUFBYyxDQUFDLElBQUk7Z0JBQzVCLFFBQVEsRUFBRSxJQUFJO2FBQ2pCLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDZSxDQUFBLENBQUM7YUFDM0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSwyQkFBMkI7UUFDOUIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCO2FBQ3ZCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2FBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDUCxVQUFVLEVBQUUsRUFBRTtZQUNkLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7WUFDbkIsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sdUJBQXVCOztRQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLE9BQU8sZ0NBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsS0FBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUM5RztRQUVELE1BQU0sb0JBQW9CLEdBQUcsZ0NBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsS0FBaUIsQ0FBQyxDQUFDO1FBQ2pHLE1BQU0sVUFBVSxHQUFHLGdDQUFjLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsTUFBQSxJQUFJLENBQUMsVUFBc0IsbUNBQUksRUFBRSxDQUFDLENBQUM7UUFDL0gsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEIsTUFBQyxVQUF1QiwwQ0FBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLG9CQUFvQixDQUFDO0lBQzdCLENBQUM7Q0FDSjtBQXRGRCw0Q0FzRkMiLCJmaWxlIjoibGliL21vZGVscy9kYXRhLWZpbHRlci5tb2RlbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbmRBdHRyaWJ1dGVPcHRpb25zIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwic2VxdWVsaXplLXR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IEN1c3RvbUF0dHJpYnV0ZXNDb25maWcsIEN1c3RvbUF0dHJpYnV0ZXNNb2RlbCB9IGZyb20gXCIuL2N1c3RvbS1hdHRyaWJ1dGVzLm1vZGVsXCI7XG5pbXBvcnQgeyBJbmNsdWRlQ29uZmlnIH0gZnJvbSBcIi4vaW5jbHVkZS5tb2RlbFwiO1xuaW1wb3J0IHsgTSwgU2VxdWVsaXplVXRpbHMgfSBmcm9tIFwiLi4vc2VxdWVsaXplLnV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUZpbHRlckNvbmZpZ01vZGVsIHtcbiAgICBtb2RlbDogdHlwZW9mIE1vZGVsO1xuICAgIGF0dHJpYnV0ZXM/OiBGaW5kQXR0cmlidXRlT3B0aW9ucztcbiAgICBleHBvcnRDb2x1bW5zPzogc3RyaW5nW107XG4gICAgY3VzdG9tQXR0cmlidXRlczogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0YUZpbHRlckNvbmZpZyBpbXBsZW1lbnRzIERhdGFGaWx0ZXJDb25maWdNb2RlbCB7XG4gICAgcHVibGljIG1vZGVsOiB0eXBlb2YgTW9kZWw7XG4gICAgcHVibGljIGF0dHJpYnV0ZXM/OiBGaW5kQXR0cmlidXRlT3B0aW9ucztcbiAgICBwdWJsaWMgc2VhcmNoYWJsZUF0dHJpYnV0ZXM/OiBzdHJpbmdbXTtcbiAgICBwdWJsaWMgZXhwb3J0Q29sdW1ucz86IHN0cmluZ1tdO1xuICAgIHB1YmxpYyBjdXN0b21BdHRyaWJ1dGVzOiBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnW10gPSBbXTtcbiAgICBwdWJsaWMgaWdub3JlSW5TZWFyY2ggPSBmYWxzZTtcblxuICAgIHB1YmxpYyBzZXRNb2RlbChtb2RlbDogdHlwZW9mIE1vZGVsKSB7XG4gICAgICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SWdub3JlSW5QYXRoKGlnbm9yZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlnbm9yZUluU2VhcmNoID0gaWdub3JlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM/OiBGaW5kQXR0cmlidXRlT3B0aW9ucykge1xuICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTZWFyY2hhYmxlQXR0cmlidXRlcyhhdHRyaWJ1dGVzOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLnNlYXJjaGFibGVBdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RXhwb3J0Q29sdW1ucyhleHBvcnRDb2x1bW5zOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLmV4cG9ydENvbHVtbnMgPSBleHBvcnRDb2x1bW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDdXN0b21BdHRyaWJ1dGUoYXR0cmlidXRlOiBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tQXR0cmlidXRlcy5wdXNoKGF0dHJpYnV0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybUF0dHJpYnV0ZXNDb25maWcob3B0aW9ucz86IG9iamVjdCk6IEZpbmRBdHRyaWJ1dGVPcHRpb25zIHtcbiAgICAgICAgY29uc3QgY3VzdG9tQXR0cmlidXRlcyA9IHRoaXMuZ2V0Q3VzdG9tQXR0cmlidXRlcyhvcHRpb25zKTtcbiAgICAgICAgaWYgKHRoaXMuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBcImlkXCIsXG4gICAgICAgICAgICAgICAgLi4uKHRoaXMuYXR0cmlidXRlcyBhcyBzdHJpbmdbXSksXG4gICAgICAgICAgICAgICAgLi4uY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmF0dHJpYnV0ZXMgJiYgY3VzdG9tQXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlcyhvcHRpb25zPzogb2JqZWN0KTogQ3VzdG9tQXR0cmlidXRlc01vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21BdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKHggPT4gKHtcbiAgICAgICAgICAgICAgICBrZXk6IHgua2V5LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogeC50cmFuc2Zvcm0ob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCA/IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgfSBhcyBDdXN0b21BdHRyaWJ1dGVzTW9kZWwpKVxuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguYXR0cmlidXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlc0luY2x1ZGVzKCk6IEluY2x1ZGVDb25maWdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4LmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgLm1hcCh4ID0+ICh7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgcGF0aDogeC5jb25maWcucGF0aCxcbiAgICAgICAgICAgICAgICBwYXJhbm9pZDogdHJ1ZVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZWFyY2hhYmxlQXR0cmlidXRlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmICh0aGlzLmlnbm9yZUluU2VhcmNoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWFyY2hhYmxlQXR0cmlidXRlcykge1xuICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmdldE1vZGVsU2VhcmNoYWJsZUZpZWxkQXR0cmlidXRlcyh0aGlzLm1vZGVsIGFzIHR5cGVvZiBNLCB0aGlzLnNlYXJjaGFibGVBdHRyaWJ1dGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlYXJjaGFibGVBdHRyaWJ1dGVzID0gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlQXR0cmlidXRlcyh0aGlzLm1vZGVsIGFzIHR5cGVvZiBNKTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IFNlcXVlbGl6ZVV0aWxzLmdldE1vZGVsU2VhcmNoYWJsZUZpZWxkQXR0cmlidXRlcyh0aGlzLm1vZGVsIGFzIHR5cGVvZiBNLCB0aGlzLmF0dHJpYnV0ZXMgYXMgc3RyaW5nW10gPz8gW10pO1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlcy5sZW5ndGggP1xuICAgICAgICAgICAgKGF0dHJpYnV0ZXMgYXMgc3RyaW5nW10pPy5maWx0ZXIoeCA9PiBzZWFyY2hhYmxlQXR0cmlidXRlcy5zb21lKGF0dHIgPT4gYXR0ciA9PT0geCkpIDpcbiAgICAgICAgICAgIHNlYXJjaGFibGVBdHRyaWJ1dGVzO1xuICAgIH1cbn1cbiJdfQ==
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], { attributes: attributes });
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9zY2FubmVycy9zZXF1ZWxpemUtbW9kZWwuc2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwyQ0FBNEM7QUFDNUMsNERBQXFEO0FBQ3JELHlDQUFpRjtBQUNqRiwrREFBNEY7QUFLNUYsd0RBQXVEO0FBR3ZELElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBQ3ZCLFdBQVcsQ0FDZCxLQUFtQixFQUNuQixJQUFlLEVBQ2Ysa0JBQWtDLEVBQ2xDLFVBQWlDLEVBQ2pDLGdCQUFnQixHQUFHLEtBQUs7O1FBRXhCLE1BQU0sT0FBTyxHQUFHLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLElBQUksMENBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLENBQUEsRUFBRTtZQUNsQixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLFFBQVEsR0FBcUIsTUFBTSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JELFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsRUFBRSxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQVk7Z0JBQ2pDLEtBQUssRUFBRSxXQUFXLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUM3QyxPQUFPLEVBQUUsRUFBRTtnQkFDWCxRQUFRLEVBQUUsS0FBSzthQUNsQixDQUFDLENBQUM7WUFFSCxJQUFJLENB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SUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDekIsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFnQyxDQUFDO2dCQUNyRCxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQTJCLENBQUM7YUFDdEQ7U0FDSjtRQUVELFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQW1CLEVBQUUsR0FBVztRQUNwRCxNQUFNLFlBQVksR0FBRyxJQUFBLHNDQUFlLEVBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRELE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDNUQ7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0NBQ0osQ0FBQTtBQTVOWSxxQkFBcUI7SUFEakMsSUFBQSxtQkFBVSxHQUFFO0dBQ0EscUJBQXFCLENBNE5qQztBQTVOWSxzREFBcUIiLCJmaWxlIjoibGliL3NjYW5uZXJzL3NlcXVlbGl6ZS1tb2RlbC5zY2FubmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgVHlwZVV0aWxzIH0gZnJvbSBcIkByZWN1cnN5dmUvbmVzdGpzLWNvbW1vblwiO1xuaW1wb3J0IHsgRmluZEF0dHJpYnV0ZU9wdGlvbnMsIEluY2x1ZGVPcHRpb25zLCBsaXRlcmFsLCBPcmRlciB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IEFzc29jaWF0aW9uLCBCYXNlQXNzb2NpYXRpb24sIGdldEFzc29jaWF0aW9ucywgTW9kZWwgfSBmcm9tIFwic2VxdWVsaXplLXR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IE9yZGVyTW9kZWwgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IEluY2x1ZGVNb2RlbCB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgUGF0aE1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9wYXRoLm1vZGVsXCI7XG5pbXBvcnQgeyBTZWFyY2hBdHRyaWJ1dGVzTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL3NlYXJjaC1hdHRyaWJ1dGVzLm1vZGVsXCI7XG5pbXBvcnQgeyBNLCBTZXF1ZWxpemVVdGlscyB9IGZyb20gXCIuLi9zZXF1ZWxpemUudXRpbHNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlcXVlbGl6ZU1vZGVsU2Nhbm5lciB7XG4gICAgcHVibGljIGdldEluY2x1ZGVzKFxuICAgICAgICBtb2RlbDogdHlwZW9mIE1vZGVsLFxuICAgICAgICBwYXRoOiBQYXRoTW9kZWwsXG4gICAgICAgIGFkZGl0aW9uYWxJbmNsdWRlczogSW5jbHVkZU1vZGVsW10sXG4gICAgICAgIGF0dHJpYnV0ZXM/OiBGaW5kQXR0cmlidXRlT3B0aW9ucyxcbiAgICAgICAgaWdub3JlQXR0cmlidXRlcyA9IGZhbHNlXG4gICAgKTogSW5jbHVkZU9wdGlvbnNbXSB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSBwYXRoPy5wYXRoPy5zcGxpdChcIi5cIik7XG4gICAgICAgIGlmICghb2JqZWN0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQ6IEluY2x1ZGVPcHRpb25zW10gPSBbXTtcbiAgICAgICAgbGV0IGluY2x1ZGVzOiBJbmNsdWRlT3B0aW9uc1tdID0gcmVzdWx0O1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGZvciAoY29uc3Qgb2JqIG9mIG9iamVjdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc29jaWF0aW9uID0gdGhpcy5maW5kQXNzb2NpYXRpb24obW9kZWwsIG9iaik7XG4gICAgICAgICAgICBpbmNsdWRlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBhczogYXNzb2NpYXRpb24uZ2V0QXMoKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgbW9kZWw6IGFzc29jaWF0aW9uLmdldEFzc29jaWF0ZWRDbGFzcygpLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGlnbm9yZUF0dHJpYnV0ZXMgPyBbXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBpbmNsdWRlOiBbXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoaSsrIDwgb2JqZWN0cy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgbW9kZWwgPSBpbmNsdWRlc1swXS5tb2RlbCBhcyB1bmtub3duIGFzIHR5cGVvZiBNb2RlbDtcbiAgICAgICAgICAgICAgICBpbmNsdWRlcyA9IGluY2x1ZGVzWzBdLmluY2x1ZGUgYXMgSW5jbHVkZU9wdGlvbnNbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBpbmNsdWRlc1swXS5hdHRyaWJ1dGVzID0gaWdub3JlQXR0cmlidXRlcyA/IFtdIDogU2VxdWVsaXplVXRpbHMubWVyZ2VBdHRyaWJ1dGVzKGluY2x1ZGVzWzBdLmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoLndoZXJlKSB7XG4gICAgICAgICAgICBpbmNsdWRlc1swXS53aGVyZSA9IFNlcXVlbGl6ZVV0aWxzLm1lcmdlV2hlcmUoaW5jbHVkZXNbMF0ud2hlcmUsIHBhdGgud2hlcmUpO1xuICAgICAgICAgICAgaW5jbHVkZXNbMF0ucmVxdWlyZWQgPSAhIXBhdGgucmVxdWlyZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGluY2x1ZGVzWzBdLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGluY2x1ZGVzWzBdLnBhcmFub2lkID0gISFwYXRoLnBhcmFub2lkO1xuICAgICAgICBpbmNsdWRlc1swXS5zZXBhcmF0ZSA9ICEhcGF0aC5zZXBhcmF0ZTtcbiAgICAgICAgaW5jbHVkZXNbMF0ub3JkZXIgPSBwYXRoLm9yZGVyO1xuXG4gICAgICAgIGlmIChUeXBlVXRpbHMuaXNOb3ROdWxsT3JVbmRlZmluZWQocGF0aC5zdWJRdWVyeSkpIHtcbiAgICAgICAgICAgIGluY2x1ZGVzWzBdLnN1YlF1ZXJ5ID0gcGF0aC5zdWJRdWVyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFkZEluY2x1ZGVzOiBJbmNsdWRlT3B0aW9uc1tdW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpbmNsdWRlIG9mIGFkZGl0aW9uYWxJbmNsdWRlcykge1xuICAgICAgICAgICAgYWRkSW5jbHVkZXMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLmdldEluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlc1swXS5tb2RlbCBhcyB1bmtub3duIGFzIHR5cGVvZiBNb2RlbCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogaW5jbHVkZS5wYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IGluY2x1ZGUub3JkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGVyZTogaW5jbHVkZS53aGVyZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBpbmNsdWRlLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VwYXJhdGU6IGluY2x1ZGUuc2VwYXJhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbm9pZDogaW5jbHVkZS5wYXJhbm9pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YlF1ZXJ5OiBpbmNsdWRlLnN1YlF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlLmF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZUF0dHJpYnV0ZXNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5jbHVkZXNbMF0uaW5jbHVkZS5wdXNoKC4uLlNlcXVlbGl6ZVV0aWxzLnJlZHVjZUluY2x1ZGVzKGFkZEluY2x1ZGVzLCBpZ25vcmVBdHRyaWJ1dGVzKSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXR0cmlidXRlcyhcbiAgICAgICAgbW9kZWw6IHR5cGVvZiBNb2RlbCxcbiAgICAgICAgcGF0aDogUGF0aE1vZGVsLFxuICAgICAgICBhZGRpdGlvbmFsSW5jbHVkZXM6IEluY2x1ZGVNb2RlbFtdLFxuICAgICAgICBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnNcbiAgICApOiBTZWFyY2hBdHRyaWJ1dGVzTW9kZWxbXSB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSBwYXRoLnBhdGguc3BsaXQoXCIuXCIpO1xuICAgICAgICBpZiAoIW9iamVjdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQ6IFNlYXJjaEF0dHJpYnV0ZXNNb2RlbFtdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgb2JqIG9mIG9iamVjdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc29jaWF0aW9uID0gdGhpcy5maW5kQXNzb2NpYXRpb24obW9kZWwsIG9iaik7XG4gICAgICAgICAgICBtb2RlbCA9IGFzc29jaWF0aW9uLmdldEFzc29jaWF0ZWRDbGFzcygpIGFzIHVua25vd24gYXMgdHlwZW9mIE1vZGVsO1xuICAgICAgICB9XG4gICAgICAgIGF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzID9cbiAgICAgICAgICAgIFNlcXVlbGl6ZVV0aWxzLmdldE1vZGVsU2VhcmNoYWJsZUZpZWxkQXR0cmlidXRlcyhtb2RlbCBhcyB0eXBlb2YgTSwgYXR0cmlidXRlcyBhcyBzdHJpbmdbXSkgOlxuICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlQXR0cmlidXRlcyhtb2RlbCBhcyB0eXBlb2YgTSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICAgLi4uKGF0dHJpYnV0ZXMgYXMgc3RyaW5nW10pLm1hcChhID0+ICh7XG4gICAgICAgICAgICAgICAgbmFtZTogYSxcbiAgICAgICAgICAgICAgICBrZXk6IFNlcXVlbGl6ZVV0aWxzLmdldEF0dHJpYnV0ZUZ1bGxOYW1lKGEsIHBhdGgucGF0aCksXG4gICAgICAgICAgICAgICAgbGl0ZXJhbEtleTogU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKGEsIHBhdGgucGF0aCksXG4gICAgICAgICAgICAgICAgaXNKc29uOiBTZXF1ZWxpemVVdGlscy5pc0NvbHVtbkpzb24obW9kZWwgYXMgdHlwZW9mIE0sIGEpXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGluY2x1ZGUgb2YgYWRkaXRpb25hbEluY2x1ZGVzKSB7XG4gICAgICAgICAgICBpZiAoaW5jbHVkZS5pZ25vcmVJblNlYXJjaCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldEF0dHJpYnV0ZXMoXG4gICAgICAgICAgICAgICAgICAgIG1vZGVsIGFzIHR5cGVvZiBNb2RlbCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogaW5jbHVkZS5wYXRoXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlLnNlYXJjaGFibGVBdHRyaWJ1dGVzID8/IGluY2x1ZGUuYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgICkubWFwKGEgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogYS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IFNlcXVlbGl6ZVV0aWxzLmdldEF0dHJpYnV0ZUZ1bGxOYW1lKGEubmFtZSwgW3BhdGgucGF0aCwgaW5jbHVkZS5wYXRoXS5qb2luKFwiLlwiKSksXG4gICAgICAgICAgICAgICAgICAgIGxpdGVyYWxLZXk6IFNlcXVlbGl6ZVV0aWxzLmdldExpdGVyYWxGdWxsTmFtZShhLm5hbWUsIFtwYXRoLnBhdGgsIGluY2x1ZGUucGF0aF0uam9pbihcIi5cIikpLFxuICAgICAgICAgICAgICAgICAgICBpc0pzb246IGEuaXNKc29uXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T3JkZXIobW9kZWw6IHR5cGVvZiBNb2RlbCwgb3JkZXJPYmo6IE9yZGVyTW9kZWwpOiBPcmRlciB7XG4gICAgICAgIGlmICghb3JkZXJPYmogfHwgIW9yZGVyT2JqLmNvbHVtbiB8fCBvcmRlck9iai5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG9yZGVyT2JqLmNvbHVtbi5zcGxpdChcIi5cIik7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHZhbHVlcy5wb3AoKTtcbiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc29jaWF0aW9uID0gdGhpcy5maW5kQXNzb2NpYXRpb24obW9kZWwsIHZhbHVlKTtcbiAgICAgICAgICAgIG1vZGVsID0gYXNzb2NpYXRpb24uZ2V0QXNzb2NpYXRlZENsYXNzKCkgYXMgdW5rbm93biBhcyB0eXBlb2YgTW9kZWw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sID0gU2VxdWVsaXplVXRpbHMuZmluZENvbHVtbkZpZWxkTmFtZShtb2RlbCBhcyB0eXBlb2YgTSwgY29sdW1uKTtcbiAgICAgICAgbGV0IGxpdGVyYWxPcmRlciA9IHZhbHVlcy5sZW5ndGggP1xuICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKGNvbCwgdmFsdWVzKSA6XG4gICAgICAgICAgICBgXFxgJHttb2RlbC5uYW1lfVxcYC5cXGAke2NvbH1cXGBgO1xuICAgICAgICBpZiAob3JkZXJPYmoubnVsbExhc3QgJiYgb3JkZXJPYmouZGlyZWN0aW9uID09PSBcImFzY1wiKSB7XG4gICAgICAgICAgICBsaXRlcmFsT3JkZXIgPSBgLSR7bGl0ZXJhbE9yZGVyfWA7XG4gICAgICAgICAgICBvcmRlck9iai5kaXJlY3Rpb24gPSBcImRlc2NcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3JkZXJPYmouZGlyZWN0aW9uID09PSBcImRlc2NcIikge1xuICAgICAgICAgICAgbGl0ZXJhbE9yZGVyICs9IGAgREVTQ2A7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpdGVyYWwobGl0ZXJhbE9yZGVyKSBhcyBPcmRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R3JvdXAobW9kZWw6IHR5cGVvZiBNb2RlbCwgb3JkZXJPYmo6IE9yZGVyTW9kZWwpOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmICghb3JkZXJPYmogfHwgIW9yZGVyT2JqLmNvbHVtbiB8fCBvcmRlck9iai5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGdyb3VwOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBvcmRlck9iai5jb2x1bW4uc3BsaXQoXCIuXCIpO1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB2YWx1ZXMucG9wKCk7XG4gICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCBhc3NvY2lhdGlvbiA9IHRoaXMuZmluZEFzc29jaWF0aW9uKG1vZGVsLCB2YWx1ZSk7XG4gICAgICAgICAgICBtb2RlbCA9IGFzc29jaWF0aW9uLmdldEFzc29jaWF0ZWRDbGFzcygpIGFzIHVua25vd24gYXMgdHlwZW9mIE1vZGVsO1xuICAgICAgICAgICAgZ3JvdXAucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIFNlcXVlbGl6ZVV0aWxzLmdldE9yZGVyRnVsbE5hbWUoXCJpZFwiLCBncm91cCksXG4gICAgICAgICAgICBTZXF1ZWxpemVVdGlscy5nZXRPcmRlckZ1bGxOYW1lKFNlcXVlbGl6ZVV0aWxzLmZpbmRDb2x1bW5GaWVsZE5hbWUobW9kZWwgYXMgdHlwZW9mIE0sIGNvbHVtbiksIGdyb3VwKVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPcmRlckluY2x1ZGVzKG1vZGVsOiB0eXBlb2YgTW9kZWwsIG9yZGVyT2JqOiBPcmRlck1vZGVsKTogSW5jbHVkZU9wdGlvbnNbXSB7XG4gICAgICAgIGlmICghb3JkZXJPYmogfHwgIW9yZGVyT2JqLmNvbHVtbiB8fCBvcmRlck9iai5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG9yZGVyT2JqLmNvbHVtbi5zcGxpdChcIi5cIik7XG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHZhbHVlcy5wb3AoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBJbmNsdWRlT3B0aW9uc1tdID0gW107XG4gICAgICAgIGxldCBpbmNsdWRlczogSW5jbHVkZU9wdGlvbnNbXSA9IHJlc3VsdDtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgYXNzb2NpYXRpb24gPSB0aGlzLmZpbmRBc3NvY2lhdGlvbihtb2RlbCwgdmFsdWUpO1xuICAgICAgICAgICAgaW5jbHVkZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgYXM6IGFzc29jaWF0aW9uLmdldEFzKCkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIG1vZGVsOiBhc3NvY2lhdGlvbi5nZXRBc3NvY2lhdGVkQ2xhc3MoKSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICAgICAgICAgICAgICBpbmNsdWRlOiBbXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGhyb3VnaDogYXNzb2NpYXRpb24uZ2V0QXNzb2NpYXRpb24oKSA9PT0gQXNzb2NpYXRpb24uQmVsb25nc1RvTWFueSA/IHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczogW11cbiAgICAgICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGkrKyA8IHZhbHVlcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgbW9kZWwgPSBpbmNsdWRlc1swXS5tb2RlbCBhcyB1bmtub3duIGFzIHR5cGVvZiBNb2RlbDtcbiAgICAgICAgICAgICAgICBpbmNsdWRlcyA9IGluY2x1ZGVzWzBdLmluY2x1ZGUgYXMgSW5jbHVkZU9wdGlvbnNbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGluY2x1ZGVzWzBdLmF0dHJpYnV0ZXMgPSBbY29sdW1uXTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRBc3NvY2lhdGlvbihtb2RlbDogdHlwZW9mIE1vZGVsLCBvYmo6IHN0cmluZyk6IEJhc2VBc3NvY2lhdGlvbjxhbnksIGFueT4ge1xuICAgICAgICBjb25zdCBhc3NvY2lhdGlvbnMgPSBnZXRBc3NvY2lhdGlvbnMobW9kZWwucHJvdG90eXBlKTtcblxuICAgICAgICBjb25zdCBhc3NvY2lhdGlvbiA9IGFzc29jaWF0aW9ucy5maW5kKGEgPT4gYS5nZXRBcygpID09PSBvYmopO1xuICAgICAgICBpZiAoIWFzc29jaWF0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBsb2FkIGFzc29jaWF0aW9uIGZvciAke29ian1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXNzb2NpYXRpb247XG4gICAgfVxufVxuIl19
@@ -1,5 +1,6 @@
1
- import { FindAttributeOptions, Includeable, IncludeOptions, Order, WhereOptions, WhereValue } from "sequelize";
1
+ import { FindAttributeOptions, Includeable, IncludeOptions, Order, WhereOptions } from "sequelize";
2
2
  import { Model } from "sequelize-typescript";
3
+ import { WhereAttributeHashValue } from "sequelize/types/model";
3
4
  import { RuleModel } from "./filter";
4
5
  export interface GeoPoint {
5
6
  type: "point";
@@ -10,10 +11,11 @@ export declare class M extends Model {
10
11
  export declare class SequelizeUtils {
11
12
  static reduceIncludes(includes: IncludeOptions[][], ignoreAttributes?: boolean): Includeable[];
12
13
  static mergeIncludes(a?: IncludeOptions[], b?: IncludeOptions[], ignoreAttributes?: boolean): IncludeOptions[];
13
- static mergeAttributes(a: IncludeOptions, b: IncludeOptions): FindAttributeOptions;
14
+ static mergeAttributes(a: FindAttributeOptions, b: FindAttributeOptions): FindAttributeOptions;
15
+ static ensureAttributesValidity(attribute: FindAttributeOptions): FindAttributeOptions;
14
16
  static mergeWhere(a: WhereOptions, b: WhereOptions): WhereOptions;
15
17
  static mergeOrder(a: Order, b: Order): Order;
16
- static generateWhereValue(rule: RuleModel): WhereValue;
18
+ static generateWhereValue(rule: RuleModel): WhereAttributeHashValue<any>;
17
19
  static getAttributeFullName(attribute: string, path: string): string;
18
20
  static getLiteralFullName(attribute: string, path: string | string[]): string;
19
21
  static getOrderFullName(attribute: string, path: string[]): string;
@@ -22,7 +22,7 @@ class SequelizeUtils {
22
22
  if (aChild) {
23
23
  aChild.include = this.mergeIncludes((_a = aChild.include) !== null && _a !== void 0 ? _a : [], (_b = bChild.include) !== null && _b !== void 0 ? _b : [], ignoreAttributes);
24
24
  if ((aChild.attributes || bChild.attributes) && !ignoreAttributes) {
25
- aChild.attributes = this.mergeAttributes(aChild, bChild);
25
+ aChild.attributes = this.mergeAttributes(aChild.attributes, bChild.attributes);
26
26
  }
27
27
  const where = this.mergeWhere(aChild.where, bChild.where);
28
28
  if (where) {
@@ -50,31 +50,31 @@ class SequelizeUtils {
50
50
  return a;
51
51
  }
52
52
  static mergeAttributes(a, b) {
53
- var _a, _b, _c, _d, _e, _f, _g, _h;
54
- if (a.attributes instanceof Array && b.attributes instanceof Array) {
55
- return nestjs_common_1.ArrayUtils.uniqueValues([...a.attributes, ...b.attributes, "id"], x => x);
53
+ var _a, _b, _c, _d, _e, _f;
54
+ if (a instanceof Array && b instanceof Array) {
55
+ return nestjs_common_1.ArrayUtils.uniqueValues([...a, ...b, "id"], x => x);
56
56
  }
57
- else if (a.attributes instanceof Array) {
58
- return nestjs_common_1.ArrayUtils.uniqueValues([...a.attributes, "id"], x => x);
57
+ else if (a instanceof Array) {
58
+ return nestjs_common_1.ArrayUtils.uniqueValues([...a, "id"], x => x);
59
59
  }
60
- else if (b.attributes instanceof Array) {
61
- return nestjs_common_1.ArrayUtils.uniqueValues([...b.attributes, "id"], x => x);
60
+ else if (b instanceof Array) {
61
+ return nestjs_common_1.ArrayUtils.uniqueValues([...b, "id"], x => x);
62
62
  }
63
- else if (a.attributes || b.attributes) {
64
- const aAttributes = ((_a = a.attributes) !== null && _a !== void 0 ? _a : {});
65
- const bAttributes = ((_b = b.attributes) !== null && _b !== void 0 ? _b : {});
63
+ else if (a || b) {
64
+ const aAttributes = (a !== null && a !== void 0 ? a : {});
65
+ const bAttributes = (b !== null && b !== void 0 ? b : {});
66
66
  const result = {};
67
- if ((_c = aAttributes.include) === null || _c === void 0 ? void 0 : _c.length) {
67
+ if ((_a = aAttributes.include) === null || _a === void 0 ? void 0 : _a.length) {
68
68
  result.include = [...aAttributes.include];
69
69
  }
70
- if ((_d = bAttributes.include) === null || _d === void 0 ? void 0 : _d.length) {
71
- result.include = [...((_e = result.include) !== null && _e !== void 0 ? _e : []), ...bAttributes.include];
70
+ if ((_b = bAttributes.include) === null || _b === void 0 ? void 0 : _b.length) {
71
+ result.include = [...((_c = result.include) !== null && _c !== void 0 ? _c : []), ...bAttributes.include];
72
72
  }
73
- if ((_f = aAttributes.exclude) === null || _f === void 0 ? void 0 : _f.length) {
73
+ if ((_d = aAttributes.exclude) === null || _d === void 0 ? void 0 : _d.length) {
74
74
  result.exclude = [...aAttributes.exclude];
75
75
  }
76
- if ((_g = bAttributes.exclude) === null || _g === void 0 ? void 0 : _g.length) {
77
- result.exclude = [...((_h = result.exclude) !== null && _h !== void 0 ? _h : []), ...bAttributes.exclude];
76
+ if ((_e = bAttributes.exclude) === null || _e === void 0 ? void 0 : _e.length) {
77
+ result.exclude = [...((_f = result.exclude) !== null && _f !== void 0 ? _f : []), ...bAttributes.exclude];
78
78
  }
79
79
  if (result.include) {
80
80
  result.include = nestjs_common_1.ArrayUtils.uniqueValues(result.include, x => x);
@@ -89,6 +89,23 @@ class SequelizeUtils {
89
89
  }
90
90
  return undefined;
91
91
  }
92
+ static ensureAttributesValidity(attribute) {
93
+ if (attribute instanceof Array) {
94
+ if (attribute.find((x) => x === "id")) {
95
+ return attribute;
96
+ }
97
+ return [
98
+ "id",
99
+ ...attribute
100
+ ];
101
+ }
102
+ if (attribute.exclude) {
103
+ return {
104
+ exclude: attribute.exclude.filter((x) => x !== "id")
105
+ };
106
+ }
107
+ return attribute;
108
+ }
92
109
  static mergeWhere(a, b) {
93
110
  if (!a && !b) {
94
111
  return null;
@@ -254,4 +271,4 @@ class SequelizeUtils {
254
271
  }
255
272
  exports.SequelizeUtils = SequelizeUtils;
256
273
 
257
- //# sourceMappingURL=data:application/json;charset=utf8;base64,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LGFBQWEsQ0FBQyxJQUFJLENBQUMsbUNBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQzNHLE9BQU8sQ0FBQSxNQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxJQUFvQywwQ0FBRSxHQUFHLE1BQUssTUFBTSxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQWUsRUFBRSxLQUFhO1FBQ3hELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2QyxPQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RGO1FBRUQsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUM7SUFDNUMsQ0FBQztDQUNKO0FBbFNELHdDQWtTQyIsImZpbGUiOiJsaWIvc2VxdWVsaXplLnV0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJyYXlVdGlscywgVHlwZVV0aWxzIH0gZnJvbSBcIkByZWN1cnN5dmUvbmVzdGpzLWNvbW1vblwiO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdERhdGFUeXBlQ29uc3RydWN0b3IsXG4gICAgRmluZEF0dHJpYnV0ZU9wdGlvbnMsXG4gICAgSW5jbHVkZWFibGUsXG4gICAgSW5jbHVkZU9wdGlvbnMsXG4gICAgT3AsXG4gICAgT3JkZXIsXG4gICAgT3JkZXJJdGVtLFxuICAgIFdoZXJlT3B0aW9ucyxcbiAgICBXaGVyZVZhbHVlXG59IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcInNlcXVlbGl6ZS10eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBSdWxlTW9kZWwgfSBmcm9tIFwiLi9maWx0ZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBHZW9Qb2ludCB7XG4gICAgdHlwZTogXCJwb2ludFwiLFxuICAgIGNvb3JkaW5hdGVzOiBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGNsYXNzIE0gZXh0ZW5kcyBNb2RlbCB7fVxuXG5leHBvcnQgY2xhc3MgU2VxdWVsaXplVXRpbHMge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVkdWNlSW5jbHVkZXMoaW5jbHVkZXM6IEluY2x1ZGVPcHRpb25zW11bXSwgaWdub3JlQXR0cmlidXRlcyA9IGZhbHNlKTogSW5jbHVkZWFibGVbXSB7XG4gICAgICAgIGxldCBpbmNsdWRlOiBJbmNsdWRlT3B0aW9uc1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBpbmNsdWRlcykge1xuICAgICAgICAgICAgaW5jbHVkZSA9IHRoaXMubWVyZ2VJbmNsdWRlcyhpbmNsdWRlLCBpLCBpZ25vcmVBdHRyaWJ1dGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbmNsdWRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgbWVyZ2VJbmNsdWRlcyhhOiBJbmNsdWRlT3B0aW9uc1tdID0gW10sIGI6IEluY2x1ZGVPcHRpb25zW10gPSBbXSwgaWdub3JlQXR0cmlidXRlcyA9IGZhbHNlKSB7XG4gICAgICAgIGZvciAoY29uc3QgYkNoaWxkIG9mIGIpIHtcbiAgICAgICAgICAgIGNvbnN0IGFDaGlsZCA9IGEuZmluZCh2YWx1ZSA9PiB2YWx1ZS5tb2RlbCA9PT0gYkNoaWxkLm1vZGVsICYmIHZhbHVlLmFzID09PSBiQ2hpbGQuYXMpO1xuICAgICAgICAgICAgaWYgKGFDaGlsZCkge1xuICAgICAgICAgICAgICAgIGFDaGlsZC5pbmNsdWRlID0gdGhpcy5tZXJnZUluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAoYUNoaWxkLmluY2x1ZGUgYXMgSW5jbHVkZU9wdGlvbnNbXSkgPz8gW10sXG4gICAgICAgICAgICAgICAgICAgIChiQ2hpbGQuaW5jbHVkZSBhcyBJbmNsdWRlT3B0aW9uc1tdKSA/PyBbXSxcbiAgICAgICAgICAgICAgICAgICAgaWdub3JlQXR0cmlidXRlc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKChhQ2hpbGQuYXR0cmlidXRlcyB8fCBiQ2hpbGQuYXR0cmlidXRlcykgJiYgIWlnbm9yZUF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgYUNoaWxkLmF0dHJpYnV0ZXMgPSB0aGlzLm1lcmdlQXR0cmlidXRlcyhhQ2hpbGQsIGJDaGlsZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHdoZXJlID0gdGhpcy5tZXJnZVdoZXJlKGFDaGlsZC53aGVyZSwgYkNoaWxkLndoZXJlKTtcbiAgICAgICAgICAgICAgICBpZiAod2hlcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgYUNoaWxkLndoZXJlID0gd2hlcmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5tZXJnZU9yZGVyKGFDaGlsZC5vcmRlciwgYkNoaWxkLm9yZGVyKTtcbiAgICAgICAgICAgICAgICBpZiAob3JkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgYUNoaWxkLm9yZGVyID0gb3JkZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChhQ2hpbGQucmVxdWlyZWQgfHwgYkNoaWxkLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGFDaGlsZC5yZXF1aXJlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChhQ2hpbGQuc2VwYXJhdGUgfHwgYkNoaWxkLnNlcGFyYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGFDaGlsZC5zZXBhcmF0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFDaGlsZC5wYXJhbm9pZCA9ICEoYUNoaWxkLnBhcmFub2lkID09PSBmYWxzZSB8fCBiQ2hpbGQucGFyYW5vaWQgPT09IGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAoVHlwZVV0aWxzLmlzTm90TnVsbE9yVW5kZWZpbmVkKGFDaGlsZC5zdWJRdWVyeSkgfHwgVHlwZVV0aWxzLmlzTm90TnVsbE9yVW5kZWZpbmVkKGJDaGlsZC5zdWJRdWVyeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgYUNoaWxkLnN1YlF1ZXJ5ID0gYUNoaWxkLnN1YlF1ZXJ5ID8/IGJDaGlsZC5zdWJRdWVyeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGEucHVzaChiQ2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGE7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBtZXJnZUF0dHJpYnV0ZXMoYTogSW5jbHVkZU9wdGlvbnMsIGI6IEluY2x1ZGVPcHRpb25zKTogRmluZEF0dHJpYnV0ZU9wdGlvbnMge1xuICAgICAgICBpZiAoYS5hdHRyaWJ1dGVzIGluc3RhbmNlb2YgQXJyYXkgJiYgYi5hdHRyaWJ1dGVzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIHJldHVybiBBcnJheVV0aWxzLnVuaXF1ZVZhbHVlcyhbLi4uYS5hdHRyaWJ1dGVzLCAuLi5iLmF0dHJpYnV0ZXMsIFwiaWRcIl0sIHggPT4geCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYS5hdHRyaWJ1dGVzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIHJldHVybiBBcnJheVV0aWxzLnVuaXF1ZVZhbHVlcyhbLi4uYS5hdHRyaWJ1dGVzLCBcImlkXCJdLCB4ID0+IHgpO1xuICAgICAgICB9IGVsc2UgaWYgKGIuYXR0cmlidXRlcyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICByZXR1cm4gQXJyYXlVdGlscy51bmlxdWVWYWx1ZXMoWy4uLmIuYXR0cmlidXRlcywgXCJpZFwiXSwgeCA9PiB4KTtcbiAgICAgICAgfSBlbHNlIGlmIChhLmF0dHJpYnV0ZXMgfHwgYi5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBjb25zdCBhQXR0cmlidXRlcyA9IChhLmF0dHJpYnV0ZXMgPz8ge30pIGFzIHsgaW5jbHVkZTogc3RyaW5nW107IGV4Y2x1ZGU6IHN0cmluZ1tdIH07XG4gICAgICAgICAgICBjb25zdCBiQXR0cmlidXRlcyA9IChiLmF0dHJpYnV0ZXMgPz8ge30pIGFzIHsgaW5jbHVkZTogc3RyaW5nW107IGV4Y2x1ZGU6IHN0cmluZ1tdIH07XG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IHsgaW5jbHVkZT86IHN0cmluZ1tdOyBleGNsdWRlPzogc3RyaW5nW10gfSA9IHt9O1xuXG4gICAgICAgICAgICBpZiAoYUF0dHJpYnV0ZXMuaW5jbHVkZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmluY2x1ZGUgPSBbLi4uYUF0dHJpYnV0ZXMuaW5jbHVkZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYkF0dHJpYnV0ZXMuaW5jbHVkZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmluY2x1ZGUgPSBbLi4uKHJlc3VsdC5pbmNsdWRlID8/IFtdKSwgLi4uYkF0dHJpYnV0ZXMuaW5jbHVkZV07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChhQXR0cmlidXRlcy5leGNsdWRlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuZXhjbHVkZSA9IFsuLi5hQXR0cmlidXRlcy5leGNsdWRlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChiQXR0cmlidXRlcy5leGNsdWRlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuZXhjbHVkZSA9IFsuLi4ocmVzdWx0LmV4Y2x1ZGUgPz8gW10pLCAuLi5iQXR0cmlidXRlcy5leGNsdWRlXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3VsdC5pbmNsdWRlKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmluY2x1ZGUgPSBBcnJheVV0aWxzLnVuaXF1ZVZhbHVlcyhyZXN1bHQuaW5jbHVkZSwgeCA9PiB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXN1bHQuZXhjbHVkZSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5leGNsdWRlID0gQXJyYXlVdGlscy51bmlxdWVWYWx1ZXMocmVzdWx0LmV4Y2x1ZGUsIHggPT4geCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcmVzdWx0LmluY2x1ZGUgJiYgIXJlc3VsdC5leGNsdWRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBGaW5kQXR0cmlidXRlT3B0aW9ucztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgbWVyZ2VXaGVyZShhOiBXaGVyZU9wdGlvbnMsIGI6IFdoZXJlT3B0aW9ucyk6IFdoZXJlT3B0aW9ucyB7XG4gICAgICAgIGlmICghYSAmJiAhYikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYSA/PyB7fSwgYiA/PyB7fSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBtZXJnZU9yZGVyKGE6IE9yZGVyLCBiOiBPcmRlcik6IE9yZGVyIHtcbiAgICAgICAgaWYgKCFhICYmICFiKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYSAmJiAhYikge1xuICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhICYmIGIpIHtcbiAgICAgICAgICAgIHJldHVybiBiO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzOiBPcmRlckl0ZW1bXSA9IFtdO1xuICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICByZXMucHVzaCguLi5hKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcy5wdXNoKGEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChiIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIHJlcy5wdXNoKC4uLmIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzLnB1c2goYik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdlbmVyYXRlV2hlcmVWYWx1ZShydWxlOiBSdWxlTW9kZWwpOiBXaGVyZVZhbHVlIHtcbiAgICAgICAgc3dpdGNoIChydWxlLm9wZXJhdGlvbikge1xuICAgICAgICAgICAgY2FzZSBcImVxdWFsXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJ1bGUudmFsdWUgYXMgYW55O1xuXG4gICAgICAgICAgICBjYXNlIFwibm90X2VxdWFsXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW09wLm5lXTogcnVsZS52YWx1ZSB9O1xuXG4gICAgICAgICAgICBjYXNlIFwiaW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3AuaW5dOiBydWxlLnZhbHVlIGFzIGFueVtdIH07XG5cbiAgICAgICAgICAgIGNhc2UgXCJub3RfaW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3Aubm90SW5dOiBydWxlLnZhbHVlIGFzIGFueVtdIH07XG5cbiAgICAgICAgICAgIGNhc2UgXCJsZXNzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW09wLmx0XTogcnVsZS52YWx1ZSBhcyBhbnl9O1xuXG4gICAgICAgICAgICBjYXNlIFwibGVzc19vcl9lcXVhbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5sdGVdOiBydWxlLnZhbHVlIGFzIGFueX07XG5cbiAgICAgICAgICAgIGNhc2UgXCJncmVhdGVyXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW09wLmd0XTogcnVsZS52YWx1ZSBhcyBhbnl9O1xuXG4gICAgICAgICAgICBjYXNlIFwiZ3JlYXRlcl9vcl9lcXVhbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5ndGVdOiBydWxlLnZhbHVlIGFzIGFueX07XG5cbiAgICAgICAgICAgIGNhc2UgXCJiZXR3ZWVuXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW09wLmJldHdlZW5dOiBydWxlLnZhbHVlIGFzIGFueSB9O1xuXG4gICAgICAgICAgICBjYXNlIFwibm90X2JldHdlZW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3Aubm90QmV0d2Vlbl06IHJ1bGUudmFsdWUgYXMgYW55IH07XG5cbiAgICAgICAgICAgIGNhc2UgXCJpc19udWxsXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW09wLmVxXTogbnVsbCB9O1xuXG4gICAgICAgICAgICBjYXNlIFwiaXNfbm90X251bGxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3AubmVdOiBudWxsIH07XG5cbiAgICAgICAgICAgIGNhc2UgXCJiZWdpbnNfd2l0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5saWtlXTogYCR7cnVsZS52YWx1ZX0lYCB9O1xuXG4gICAgICAgICAgICBjYXNlIFwibm90X2JlZ2luc193aXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW09wLm5vdExpa2VdOiBgJHtydWxlLnZhbHVlfSVgIH07XG5cbiAgICAgICAgICAgIGNhc2UgXCJjb250YWluc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5saWtlXTogYCUke3J1bGUudmFsdWV9JWAgfTtcblxuICAgICAgICAgICAgY2FzZSBcIm5vdF9jb250YWluc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5ub3RMaWtlXTogYCUke3J1bGUudmFsdWV9JWAgfTtcblxuICAgICAgICAgICAgY2FzZSBcImVuZHNfd2l0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5saWtlXTogYCUke3J1bGUudmFsdWV9YCB9O1xuXG4gICAgICAgICAgICBjYXNlIFwibm90X2VuZHNfd2l0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5ub3RMaWtlXTogYCUke3J1bGUudmFsdWV9YCB9O1xuXG4gICAgICAgICAgICBjYXNlIFwiaXNfZW1wdHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcblxuICAgICAgICAgICAgY2FzZSBcImlzX25vdF9lbXB0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5uZV06IFwiXCIgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QXR0cmlidXRlRnVsbE5hbWUoYXR0cmlidXRlOiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gYCQke3BhdGh9LiR7YXR0cmlidXRlfSRgO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TGl0ZXJhbEZ1bGxOYW1lKGF0dHJpYnV0ZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHBhdGggPSBwYXRoLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYFxcYCR7cGF0aC5qb2luKFwiLT5cIil9XFxgLlxcYCR7YXR0cmlidXRlfVxcYGA7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRPcmRlckZ1bGxOYW1lKGF0dHJpYnV0ZTogc3RyaW5nLCBwYXRoOiBzdHJpbmdbXSkge1xuICAgICAgICByZXR1cm4gYCR7cGF0aC5qb2luKFwiLT5cIil9LiR7YXR0cmlidXRlfWA7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRNb2RlbFNlYXJjaGFibGVBdHRyaWJ1dGVzKG1vZGVsOiB0eXBlb2YgTSk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG1vZGVsLnJhd0F0dHJpYnV0ZXMpLmZpbHRlcihcbiAgICAgICAgICAgIGEgPT4gIVtcIkRBVEVcIiwgXCJEQVRFT05MWVwiLCBcIlZJUlRVQUxcIl0uc29tZSh0ID0+IHQgPT09IChtb2RlbC5yYXdBdHRyaWJ1dGVzW2FdLnR5cGUgYXMgQWJzdHJhY3REYXRhVHlwZUNvbnN0cnVjdG9yKS5rZXkpXG4gICAgICAgICkubWFwKHggPT4ge1xuICAgICAgICAgICAgY29uc3QgYXR0ciA9IG1vZGVsLnJhd0F0dHJpYnV0ZXNbeF07XG4gICAgICAgICAgICBpZiAoIWF0dHIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhdHRyLmZpZWxkID8gYXR0ci5maWVsZCA6IHg7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKG1vZGVsOiB0eXBlb2YgTSwgZmllbGRzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IG1vZGVsLnJhd0F0dHJpYnV0ZXM7XG4gICAgICAgIHJldHVybiBmaWVsZHNcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXR0ciA9IGF0dHJpYnV0ZXNbeF07XG4gICAgICAgICAgICAgICAgaWYgKCFhdHRyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gIVtcIkRBVEVcIiwgXCJEQVRFT05MWVwiLCBcIlZJUlRVQUxcIl0uc29tZSh0ID0+IHQgPT09IChhdHRyLnR5cGUgYXMgQWJzdHJhY3REYXRhVHlwZUNvbnN0cnVjdG9yKS5rZXkpO1xuICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICBtYXAoeCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXR0ciA9IGF0dHJpYnV0ZXNbeF07XG4gICAgICAgICAgICAgICAgaWYgKCFhdHRyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBhdHRyLmZpZWxkID8gYXR0ci5maWVsZCA6IHg7XG4gICAgICAgICAgICB9KVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmVkdWNlTW9kZWxGcm9tUGF0aChtb2RlbDogTSwgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHN0ZXBzID0gcGF0aC5zcGxpdChcIi5cIik7XG5cbiAgICAgICAgbGV0IHN0ZXAgPSBzdGVwcy5zaGlmdCgpO1xuICAgICAgICB3aGlsZSAoc3RlcCkge1xuICAgICAgICAgICAgaWYgKG1vZGVsW3N0ZXBdIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXN0ZXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9kZWxbc3RlcF07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChtb2RlbFtzdGVwXSBhcyBBcnJheTxhbnk+KVxuICAgICAgICAgICAgICAgICAgICAubWFwKHggPT4gdGhpcy5yZWR1Y2VNb2RlbEZyb21QYXRoKHgsIHN0ZXBzLmpvaW4oXCIuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgoYWxsLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5hbGwsIC4uLmN1cnJlbnRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5hbGwsIGN1cnJlbnRdO1xuICAgICAgICAgICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vZGVsID0gbW9kZWxbc3RlcF07XG4gICAgICAgICAgICBpZiAoIW1vZGVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RlcCA9IHN0ZXBzLnNoaWZ0KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmaW5kQ29sdW1uRmllbGROYW1lKG1vZGVsOiB0eXBlb2YgTSwgbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSBPYmplY3Qua2V5cyhtb2RlbC5yYXdBdHRyaWJ1dGVzKS5maW5kKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IG5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG1vZGVsLnJhd0F0dHJpYnV0ZXNba2V5XS5maWVsZCA9PT0gbmFtZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBtb2RlbC5yYXdBdHRyaWJ1dGVzW2ZpZWxkXS5maWVsZCA/PyBuYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNDb2x1bW5Kc29uKG1vZGVsOiB0eXBlb2YgTSwgbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGF0dHIgPSBtb2RlbC5yYXdBdHRyaWJ1dGVzW25hbWVdID8/IE9iamVjdC52YWx1ZXMobW9kZWwucmF3QXR0cmlidXRlcykuZmluZCgoeCkgPT4geC5maWVsZCA9PT0gbmFtZSk7XG4gICAgICAgIHJldHVybiAoYXR0cj8udHlwZSBhcyBBYnN0cmFjdERhdGFUeXBlQ29uc3RydWN0b3IpPy5rZXkgPT09IFwiSlNPTlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0R3JvdXBMaXRlcmFsKG1vZGVsOiB0eXBlb2YgTSwgZ3JvdXA6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gZ3JvdXAuc3BsaXQoXCIuXCIpO1xuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgY29sdW1uID0gaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKGNvbHVtbiwgaXRlbXMuc2xpY2UoMCwgaXRlbXMubGVuZ3RoIC0gMSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGBcXGAke21vZGVsLm5hbWV9XFxgLlxcYCR7Z3JvdXB9XFxgYDtcbiAgICB9XG59XG4iXX0=
274
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,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S0FBSyxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDO0lBQzVDLENBQUM7Q0FDSjtBQXRURCx3Q0FzVEMiLCJmaWxlIjoibGliL3NlcXVlbGl6ZS51dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFycmF5VXRpbHMsIFR5cGVVdGlscyB9IGZyb20gXCJAcmVjdXJzeXZlL25lc3Rqcy1jb21tb25cIjtcbmltcG9ydCB7XG4gICAgQWJzdHJhY3REYXRhVHlwZUNvbnN0cnVjdG9yLFxuICAgIEZpbmRBdHRyaWJ1dGVPcHRpb25zLFxuICAgIEluY2x1ZGVhYmxlLFxuICAgIEluY2x1ZGVPcHRpb25zLFxuICAgIE9wLFxuICAgIE9yZGVyLFxuICAgIE9yZGVySXRlbSxcbiAgICBXaGVyZU9wdGlvbnNcbn0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwic2VxdWVsaXplLXR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IFdoZXJlQXR0cmlidXRlSGFzaFZhbHVlIH0gZnJvbSBcInNlcXVlbGl6ZS90eXBlcy9tb2RlbFwiO1xuaW1wb3J0IHsgUnVsZU1vZGVsIH0gZnJvbSBcIi4vZmlsdGVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvUG9pbnQge1xuICAgIHR5cGU6IFwicG9pbnRcIixcbiAgICBjb29yZGluYXRlczogbnVtYmVyW107XG59XG5cbmV4cG9ydCBjbGFzcyBNIGV4dGVuZHMgTW9kZWwge31cblxuZXhwb3J0IGNsYXNzIFNlcXVlbGl6ZVV0aWxzIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlZHVjZUluY2x1ZGVzKGluY2x1ZGVzOiBJbmNsdWRlT3B0aW9uc1tdW10sIGlnbm9yZUF0dHJpYnV0ZXMgPSBmYWxzZSk6IEluY2x1ZGVhYmxlW10ge1xuICAgICAgICBsZXQgaW5jbHVkZTogSW5jbHVkZU9wdGlvbnNbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgaW5jbHVkZXMpIHtcbiAgICAgICAgICAgIGluY2x1ZGUgPSB0aGlzLm1lcmdlSW5jbHVkZXMoaW5jbHVkZSwgaSwgaWdub3JlQXR0cmlidXRlcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5jbHVkZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG1lcmdlSW5jbHVkZXMoYTogSW5jbHVkZU9wdGlvbnNbXSA9IFtdLCBiOiBJbmNsdWRlT3B0aW9uc1tdID0gW10sIGlnbm9yZUF0dHJpYnV0ZXMgPSBmYWxzZSkge1xuICAgICAgICBmb3IgKGNvbnN0IGJDaGlsZCBvZiBiKSB7XG4gICAgICAgICAgICBjb25zdCBhQ2hpbGQgPSBhLmZpbmQodmFsdWUgPT4gdmFsdWUubW9kZWwgPT09IGJDaGlsZC5tb2RlbCAmJiB2YWx1ZS5hcyA9PT0gYkNoaWxkLmFzKTtcbiAgICAgICAgICAgIGlmIChhQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICBhQ2hpbGQuaW5jbHVkZSA9IHRoaXMubWVyZ2VJbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgKGFDaGlsZC5pbmNsdWRlIGFzIEluY2x1ZGVPcHRpb25zW10pID8/IFtdLFxuICAgICAgICAgICAgICAgICAgICAoYkNoaWxkLmluY2x1ZGUgYXMgSW5jbHVkZU9wdGlvbnNbXSkgPz8gW10sXG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZUF0dHJpYnV0ZXNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICgoYUNoaWxkLmF0dHJpYnV0ZXMgfHwgYkNoaWxkLmF0dHJpYnV0ZXMpICYmICFpZ25vcmVBdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGFDaGlsZC5hdHRyaWJ1dGVzID0gdGhpcy5tZXJnZUF0dHJpYnV0ZXMoYUNoaWxkLmF0dHJpYnV0ZXMsIGJDaGlsZC5hdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgd2hlcmUgPSB0aGlzLm1lcmdlV2hlcmUoYUNoaWxkLndoZXJlLCBiQ2hpbGQud2hlcmUpO1xuICAgICAgICAgICAgICAgIGlmICh3aGVyZSkge1xuICAgICAgICAgICAgICAgICAgICBhQ2hpbGQud2hlcmUgPSB3aGVyZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JkZXIgPSB0aGlzLm1lcmdlT3JkZXIoYUNoaWxkLm9yZGVyLCBiQ2hpbGQub3JkZXIpO1xuICAgICAgICAgICAgICAgIGlmIChvcmRlcikge1xuICAgICAgICAgICAgICAgICAgICBhQ2hpbGQub3JkZXIgPSBvcmRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGFDaGlsZC5yZXF1aXJlZCB8fCBiQ2hpbGQucmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgYUNoaWxkLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGFDaGlsZC5zZXBhcmF0ZSB8fCBiQ2hpbGQuc2VwYXJhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgYUNoaWxkLnNlcGFyYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYUNoaWxkLnBhcmFub2lkID0gIShhQ2hpbGQucGFyYW5vaWQgPT09IGZhbHNlIHx8IGJDaGlsZC5wYXJhbm9pZCA9PT0gZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmIChUeXBlVXRpbHMuaXNOb3ROdWxsT3JVbmRlZmluZWQoYUNoaWxkLnN1YlF1ZXJ5KSB8fCBUeXBlVXRpbHMuaXNOb3ROdWxsT3JVbmRlZmluZWQoYkNoaWxkLnN1YlF1ZXJ5KSkge1xuICAgICAgICAgICAgICAgICAgICBhQ2hpbGQuc3ViUXVlcnkgPSBhQ2hpbGQuc3ViUXVlcnkgPz8gYkNoaWxkLnN1YlF1ZXJ5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYS5wdXNoKGJDaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG1lcmdlQXR0cmlidXRlcyhhOiBGaW5kQXR0cmlidXRlT3B0aW9ucywgYjogRmluZEF0dHJpYnV0ZU9wdGlvbnMpOiBGaW5kQXR0cmlidXRlT3B0aW9ucyB7XG4gICAgICAgIGlmIChhIGluc3RhbmNlb2YgQXJyYXkgJiYgYiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICByZXR1cm4gQXJyYXlVdGlscy51bmlxdWVWYWx1ZXMoWy4uLmEsIC4uLmIsIFwiaWRcIl0sIHggPT4geCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICByZXR1cm4gQXJyYXlVdGlscy51bmlxdWVWYWx1ZXMoWy4uLmEsIFwiaWRcIl0sIHggPT4geCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICByZXR1cm4gQXJyYXlVdGlscy51bmlxdWVWYWx1ZXMoWy4uLmIsIFwiaWRcIl0sIHggPT4geCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYSB8fCBiKSB7XG4gICAgICAgICAgICBjb25zdCBhQXR0cmlidXRlcyA9IChhID8/IHt9KSBhcyB7IGluY2x1ZGU6IHN0cmluZ1tdOyBleGNsdWRlOiBzdHJpbmdbXSB9O1xuICAgICAgICAgICAgY29uc3QgYkF0dHJpYnV0ZXMgPSAoYiA/PyB7fSkgYXMgeyBpbmNsdWRlOiBzdHJpbmdbXTsgZXhjbHVkZTogc3RyaW5nW10gfTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogeyBpbmNsdWRlPzogc3RyaW5nW107IGV4Y2x1ZGU/OiBzdHJpbmdbXSB9ID0ge307XG5cbiAgICAgICAgICAgIGlmIChhQXR0cmlidXRlcy5pbmNsdWRlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuaW5jbHVkZSA9IFsuLi5hQXR0cmlidXRlcy5pbmNsdWRlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChiQXR0cmlidXRlcy5pbmNsdWRlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuaW5jbHVkZSA9IFsuLi4ocmVzdWx0LmluY2x1ZGUgPz8gW10pLCAuLi5iQXR0cmlidXRlcy5pbmNsdWRlXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGFBdHRyaWJ1dGVzLmV4Y2x1ZGU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5leGNsdWRlID0gWy4uLmFBdHRyaWJ1dGVzLmV4Y2x1ZGVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJBdHRyaWJ1dGVzLmV4Y2x1ZGU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5leGNsdWRlID0gWy4uLihyZXN1bHQuZXhjbHVkZSA/PyBbXSksIC4uLmJBdHRyaWJ1dGVzLmV4Y2x1ZGVdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzdWx0LmluY2x1ZGUpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuaW5jbHVkZSA9IEFycmF5VXRpbHMudW5pcXVlVmFsdWVzKHJlc3VsdC5pbmNsdWRlLCB4ID0+IHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3VsdC5leGNsdWRlKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmV4Y2x1ZGUgPSBBcnJheVV0aWxzLnVuaXF1ZVZhbHVlcyhyZXN1bHQuZXhjbHVkZSwgeCA9PiB4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFyZXN1bHQuaW5jbHVkZSAmJiAhcmVzdWx0LmV4Y2x1ZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIEZpbmRBdHRyaWJ1dGVPcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBlbnN1cmVBdHRyaWJ1dGVzVmFsaWRpdHkoYXR0cmlidXRlOiBGaW5kQXR0cmlidXRlT3B0aW9ucyk6IEZpbmRBdHRyaWJ1dGVPcHRpb25zIHtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICBpZiAoYXR0cmlidXRlLmZpbmQoKHgpID0+IHggPT09IFwiaWRcIikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBcImlkXCIsXG4gICAgICAgICAgICAgICAgLi4uYXR0cmlidXRlXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGF0dHJpYnV0ZS5leGNsdWRlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGV4Y2x1ZGU6IGF0dHJpYnV0ZS5leGNsdWRlLmZpbHRlcigoeCkgPT4geCAhPT0gXCJpZFwiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG1lcmdlV2hlcmUoYTogV2hlcmVPcHRpb25zLCBiOiBXaGVyZU9wdGlvbnMpOiBXaGVyZU9wdGlvbnMge1xuICAgICAgICBpZiAoIWEgJiYgIWIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKGEgPz8ge30sIGIgPz8ge30pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgbWVyZ2VPcmRlcihhOiBPcmRlciwgYjogT3JkZXIpOiBPcmRlciB7XG4gICAgICAgIGlmICghYSAmJiAhYikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGEgJiYgIWIpIHtcbiAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYSAmJiBiKSB7XG4gICAgICAgICAgICByZXR1cm4gYjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlczogT3JkZXJJdGVtW10gPSBbXTtcbiAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgcmVzLnB1c2goLi4uYSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXMucHVzaChhKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICByZXMucHVzaCguLi5iKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcy5wdXNoKGIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZW5lcmF0ZVdoZXJlVmFsdWUocnVsZTogUnVsZU1vZGVsKTogV2hlcmVBdHRyaWJ1dGVIYXNoVmFsdWU8YW55PiB7XG4gICAgICAgIHN3aXRjaCAocnVsZS5vcGVyYXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgXCJlcXVhbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBydWxlLnZhbHVlIGFzIGFueTtcblxuICAgICAgICAgICAgY2FzZSBcIm5vdF9lcXVhbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5uZV06IHJ1bGUudmFsdWUgfTtcblxuICAgICAgICAgICAgY2FzZSBcImluXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW09wLmluXTogcnVsZS52YWx1ZSBhcyBhbnlbXSB9O1xuXG4gICAgICAgICAgICBjYXNlIFwibm90X2luXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW09wLm5vdEluXTogcnVsZS52YWx1ZSBhcyBhbnlbXSB9O1xuXG4gICAgICAgICAgICBjYXNlIFwibGVzc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5sdF06IHJ1bGUudmFsdWUgYXMgYW55fTtcblxuICAgICAgICAgICAgY2FzZSBcImxlc3Nfb3JfZXF1YWxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3AubHRlXTogcnVsZS52YWx1ZSBhcyBhbnl9O1xuXG4gICAgICAgICAgICBjYXNlIFwiZ3JlYXRlclwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5ndF06IHJ1bGUudmFsdWUgYXMgYW55fTtcblxuICAgICAgICAgICAgY2FzZSBcImdyZWF0ZXJfb3JfZXF1YWxcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3AuZ3RlXTogcnVsZS52YWx1ZSBhcyBhbnl9O1xuXG4gICAgICAgICAgICBjYXNlIFwiYmV0d2VlblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5iZXR3ZWVuXTogcnVsZS52YWx1ZSBhcyBhbnkgfTtcblxuICAgICAgICAgICAgY2FzZSBcIm5vdF9iZXR3ZWVuXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW09wLm5vdEJldHdlZW5dOiBydWxlLnZhbHVlIGFzIGFueSB9O1xuXG4gICAgICAgICAgICBjYXNlIFwiaXNfbnVsbFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5lcV06IG51bGwgfTtcblxuICAgICAgICAgICAgY2FzZSBcImlzX25vdF9udWxsXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW09wLm5lXTogbnVsbCB9O1xuXG4gICAgICAgICAgICBjYXNlIFwiYmVnaW5zX3dpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3AubGlrZV06IGAke3J1bGUudmFsdWV9JWAgfTtcblxuICAgICAgICAgICAgY2FzZSBcIm5vdF9iZWdpbnNfd2l0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IFtPcC5ub3RMaWtlXTogYCR7cnVsZS52YWx1ZX0lYCB9O1xuXG4gICAgICAgICAgICBjYXNlIFwiY29udGFpbnNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3AubGlrZV06IGAlJHtydWxlLnZhbHVlfSVgIH07XG5cbiAgICAgICAgICAgIGNhc2UgXCJub3RfY29udGFpbnNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3Aubm90TGlrZV06IGAlJHtydWxlLnZhbHVlfSVgIH07XG5cbiAgICAgICAgICAgIGNhc2UgXCJlbmRzX3dpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3AubGlrZV06IGAlJHtydWxlLnZhbHVlfWAgfTtcblxuICAgICAgICAgICAgY2FzZSBcIm5vdF9lbmRzX3dpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3Aubm90TGlrZV06IGAlJHtydWxlLnZhbHVlfWAgfTtcblxuICAgICAgICAgICAgY2FzZSBcImlzX2VtcHR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG5cbiAgICAgICAgICAgIGNhc2UgXCJpc19ub3RfZW1wdHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbT3AubmVdOiBcIlwiIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEF0dHJpYnV0ZUZ1bGxOYW1lKGF0dHJpYnV0ZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGAkJHtwYXRofS4ke2F0dHJpYnV0ZX0kYDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldExpdGVyYWxGdWxsTmFtZShhdHRyaWJ1dGU6IHN0cmluZywgcGF0aDogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBwYXRoID0gcGF0aC5zcGxpdChcIi5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGBcXGAke3BhdGguam9pbihcIi0+XCIpfVxcYC5cXGAke2F0dHJpYnV0ZX1cXGBgO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0T3JkZXJGdWxsTmFtZShhdHRyaWJ1dGU6IHN0cmluZywgcGF0aDogc3RyaW5nW10pIHtcbiAgICAgICAgcmV0dXJuIGAke3BhdGguam9pbihcIi0+XCIpfS4ke2F0dHJpYnV0ZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TW9kZWxTZWFyY2hhYmxlQXR0cmlidXRlcyhtb2RlbDogdHlwZW9mIE0pOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhtb2RlbC5yYXdBdHRyaWJ1dGVzKS5maWx0ZXIoXG4gICAgICAgICAgICBhID0+ICFbXCJEQVRFXCIsIFwiREFURU9OTFlcIiwgXCJWSVJUVUFMXCJdLnNvbWUodCA9PiB0ID09PSAobW9kZWwucmF3QXR0cmlidXRlc1thXS50eXBlIGFzIEFic3RyYWN0RGF0YVR5cGVDb25zdHJ1Y3Rvcikua2V5KVxuICAgICAgICApLm1hcCh4ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHIgPSBtb2RlbC5yYXdBdHRyaWJ1dGVzW3hdO1xuICAgICAgICAgICAgaWYgKCFhdHRyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXR0ci5maWVsZCA/IGF0dHIuZmllbGQgOiB4O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldE1vZGVsU2VhcmNoYWJsZUZpZWxkQXR0cmlidXRlcyhtb2RlbDogdHlwZW9mIE0sIGZpZWxkczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBtb2RlbC5yYXdBdHRyaWJ1dGVzO1xuICAgICAgICByZXR1cm4gZmllbGRzXG4gICAgICAgICAgICAuZmlsdGVyKHggPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHIgPSBhdHRyaWJ1dGVzW3hdO1xuICAgICAgICAgICAgICAgIGlmICghYXR0cikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuICFbXCJEQVRFXCIsIFwiREFURU9OTFlcIiwgXCJWSVJUVUFMXCJdLnNvbWUodCA9PiB0ID09PSAoYXR0ci50eXBlIGFzIEFic3RyYWN0RGF0YVR5cGVDb25zdHJ1Y3Rvcikua2V5KTtcbiAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgbWFwKHggPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHIgPSBhdHRyaWJ1dGVzW3hdO1xuICAgICAgICAgICAgICAgIGlmICghYXR0cikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYXR0ci5maWVsZCA/IGF0dHIuZmllbGQgOiB4O1xuICAgICAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlZHVjZU1vZGVsRnJvbVBhdGgobW9kZWw6IE0sIHBhdGg6IHN0cmluZykge1xuICAgICAgICBjb25zdCBzdGVwcyA9IHBhdGguc3BsaXQoXCIuXCIpO1xuXG4gICAgICAgIGxldCBzdGVwID0gc3RlcHMuc2hpZnQoKTtcbiAgICAgICAgd2hpbGUgKHN0ZXApIHtcbiAgICAgICAgICAgIGlmIChtb2RlbFtzdGVwXSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGVwcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZGVsW3N0ZXBdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAobW9kZWxbc3RlcF0gYXMgQXJyYXk8YW55PilcbiAgICAgICAgICAgICAgICAgICAgLm1hcCh4ID0+IHRoaXMucmVkdWNlTW9kZWxGcm9tUGF0aCh4LCBzdGVwcy5qb2luKFwiLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFsbCwgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uYWxsLCAuLi5jdXJyZW50XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uYWxsLCBjdXJyZW50XTtcbiAgICAgICAgICAgICAgICAgICAgfSwgW10pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtb2RlbCA9IG1vZGVsW3N0ZXBdO1xuICAgICAgICAgICAgaWYgKCFtb2RlbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0ZXAgPSBzdGVwcy5zaGlmdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZmluZENvbHVtbkZpZWxkTmFtZShtb2RlbDogdHlwZW9mIE0sIG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gT2JqZWN0LmtleXMobW9kZWwucmF3QXR0cmlidXRlcykuZmluZCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBuYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBtb2RlbC5yYXdBdHRyaWJ1dGVzW2tleV0uZmllbGQgPT09IG5hbWU7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbW9kZWwucmF3QXR0cmlidXRlc1tmaWVsZF0uZmllbGQgPz8gbmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzQ29sdW1uSnNvbihtb2RlbDogdHlwZW9mIE0sIG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBhdHRyID0gbW9kZWwucmF3QXR0cmlidXRlc1tuYW1lXSA/PyBPYmplY3QudmFsdWVzKG1vZGVsLnJhd0F0dHJpYnV0ZXMpLmZpbmQoKHgpID0+IHguZmllbGQgPT09IG5hbWUpO1xuICAgICAgICByZXR1cm4gKGF0dHI/LnR5cGUgYXMgQWJzdHJhY3REYXRhVHlwZUNvbnN0cnVjdG9yKT8ua2V5ID09PSBcIkpTT05cIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEdyb3VwTGl0ZXJhbChtb2RlbDogdHlwZW9mIE0sIGdyb3VwOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBpdGVtcyA9IGdyb3VwLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmdldExpdGVyYWxGdWxsTmFtZShjb2x1bW4sIGl0ZW1zLnNsaWNlKDAsIGl0ZW1zLmxlbmd0aCAtIDEpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgXFxgJHttb2RlbC5uYW1lfVxcYC5cXGAke2dyb3VwfVxcYGA7XG4gICAgfVxufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@recursyve/nestjs-data-filter",
3
- "version": "8.2.1",
3
+ "version": "8.3.0",
4
4
  "description": "NestJs DataFilter library",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -23,7 +23,7 @@
23
23
  "@nestjs/core": ">=8.0.0",
24
24
  "@recursyve/nestjs-common": ">=8.0.0",
25
25
  "moment": "^2.29.0",
26
- "sequelize": ">=6.6.0",
26
+ "sequelize": ">=6.19.0",
27
27
  "sequelize-typescript": ">=2.1.0"
28
28
  },
29
29
  "devDependencies": {
@@ -44,8 +44,8 @@
44
44
  "jest": "^27.5.0",
45
45
  "reflect-metadata": "^0.1.13",
46
46
  "rxjs": "^7.5.2",
47
- "sequelize": "^6.15.0",
48
- "sequelize-typescript": "^2.1.2",
47
+ "sequelize": "^6.19.0",
48
+ "sequelize-typescript": "^2.1.3",
49
49
  "sqlite3": "^5.0.2",
50
50
  "ts-jest": "^27.1.3",
51
51
  "ts-node": "^10.4.0",