@stemy/backend 3.2.6 → 3.4.1

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.
@@ -170,4 +170,4 @@ Assets = __decorate([
170
170
  __metadata("design:paramtypes", [MongoConnector, AssetProcessor])
171
171
  ], Assets);
172
172
  export { Assets };
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2Fzc2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFdkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUc5QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXBFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztJQUluQyxNQUFNLFNBQU4sTUFBTTtJQUtmLFlBQXFCLFNBQXlCLEVBQVcsY0FBOEI7O1FBQWxFLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQVcsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ25GLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsU0FBUyxDQUFDLFFBQVEsMENBQUUsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFSyxLQUFLLENBQUMsTUFBZ0IsRUFBRSxjQUFzQixJQUFJLEVBQUUsV0FBdUIsSUFBSTs7WUFDakYsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLElBQUks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YyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2RSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztxQkFDdEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRTtvQkFDakIsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsQ0FBQztxQkFDRCxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtvQkFDZixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBYyxFQUFFO3dCQUNuRCxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7d0JBQzNCLFdBQVc7d0JBQ1gsUUFBUTtxQkFDWCxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNqQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuQixDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7d0JBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLENBQUM7b0JBQ25DLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7S0FBQTtDQUNKLENBQUE7QUE3SFksTUFBTTtJQUZsQixVQUFVLEVBQUU7SUFDWixNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztxQ0FNRSxjQUFjLEVBQTJCLGNBQWM7R0FMOUUsTUFBTSxDQTZIbEI7U0E3SFksTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0YWJsZSwgTGlmZWN5Y2xlLCBzY29wZWR9IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge1JlYWRhYmxlfSBmcm9tIFwic3RyZWFtXCI7XHJcbmltcG9ydCB7T2JqZWN0SWR9IGZyb20gXCJic29uXCI7XHJcbmltcG9ydCB7Q29sbGVjdGlvbiwgR3JpZEZTQnVja2V0fSBmcm9tIFwibW9uZ29kYlwiO1xyXG5pbXBvcnQge0ZpbHRlclF1ZXJ5fSBmcm9tIFwibW9uZ29vc2VcIjtcclxuaW1wb3J0IGF4aW9zIGZyb20gXCJheGlvc1wiO1xyXG5cclxuaW1wb3J0IHtidWZmZXJUb1N0cmVhbSwgY29weVN0cmVhbSwgc3RyZWFtVG9CdWZmZXJ9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQge0lBc3NldCwgSUFzc2V0TWV0YSwgSUZpbGVUeXBlfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7TW9uZ29Db25uZWN0b3J9IGZyb20gXCIuL21vbmdvLWNvbm5lY3RvclwiO1xyXG5pbXBvcnQge0Fzc2V0UHJvY2Vzc29yfSBmcm9tIFwiLi9hc3NldC1wcm9jZXNzb3JcIjtcclxuaW1wb3J0IHtBc3NldH0gZnJvbSBcIi4vZW50aXRpZXMvYXNzZXRcIjtcclxuaW1wb3J0IHtUZW1wQXNzZXR9IGZyb20gXCIuL2VudGl0aWVzL3RlbXAtYXNzZXRcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQHNjb3BlZChMaWZlY3ljbGUuQ29udGFpbmVyU2NvcGVkKVxyXG5leHBvcnQgY2xhc3MgQXNzZXRzIHtcclxuXHJcbiAgICByZWFkb25seSBidWNrZXQ6IEdyaWRGU0J1Y2tldDtcclxuICAgIHJlYWRvbmx5IGNvbGxlY3Rpb246IENvbGxlY3Rpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubmVjdG9yOiBNb25nb0Nvbm5lY3RvciwgcmVhZG9ubHkgYXNzZXRQcm9jZXNzb3I6IEFzc2V0UHJvY2Vzc29yKSB7XHJcbiAgICAgICAgdGhpcy5idWNrZXQgPSBjb25uZWN0b3IuYnVja2V0O1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IGNvbm5lY3Rvci5kYXRhYmFzZT8uY29sbGVjdGlvbihcImFzc2V0cy5maWxlc1wiKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB3cml0ZShzdHJlYW06IFJlYWRhYmxlLCBjb250ZW50VHlwZTogc3RyaW5nID0gbnVsbCwgbWV0YWRhdGE6IElBc3NldE1ldGEgPSBudWxsKTogUHJvbWlzZTxJQXNzZXQ+IHtcclxuICAgICAgICBjb25zdCB1cGxvYWRTdHJlYW0gPSBjb3B5U3RyZWFtKHN0cmVhbSk7XHJcbiAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgc3RyZWFtVG9CdWZmZXIoc3RyZWFtKTtcclxuICAgICAgICBsZXQgZmlsZVR5cGUgPSB7ZXh0OiBcIlwiLCBtaW1lOiBjb250ZW50VHlwZX0gYXMgSUZpbGVUeXBlO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGZpbGVUeXBlID0gYXdhaXQgQXNzZXRQcm9jZXNzb3IuZmlsZVR5cGVGcm9tQnVmZmVyKGJ1ZmZlcik7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBpZiAoIWZpbGVUeXBlLm1pbWUpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IGBDYW4ndCBkZXRlcm1pbmUgbWltZSB0eXBlYDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgQ2FuJ3QgZGV0ZXJtaW5lIG1pbWUgdHlwZWAsIGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBtZXRhZGF0YSA9IG1ldGFkYXRhIHx8IHt9O1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVwbG9hZCh1cGxvYWRTdHJlYW0sIGZpbGVUeXBlLCBtZXRhZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgd3JpdGVCdWZmZXIoYnVmZmVyOiBCdWZmZXIsIG1ldGFkYXRhOiBJQXNzZXRNZXRhID0gbnVsbCwgY29udGVudFR5cGU6IHN0cmluZyA9IG51bGwpOiBQcm9taXNlPElBc3NldD4ge1xyXG4gICAgICAgIGxldCBmaWxlVHlwZSA9IHtleHQ6IFwiXCIsIG1pbWU6IGNvbnRlbnRUeXBlfSBhcyBJRmlsZVR5cGU7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgZmlsZVR5cGUgPSBhd2FpdCBBc3NldFByb2Nlc3Nvci5maWxlVHlwZUZyb21CdWZmZXIoYnVmZmVyKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIGlmICghZmlsZVR5cGUubWltZSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgYENhbid0IGRldGVybWluZSBtaW1lIHR5cGVgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDYW4ndCBkZXRlcm1pbmUgbWltZSB0eXBlYCwgZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1ldGFkYXRhID0gbWV0YWRhdGEgfHwge307XHJcbiAgICAgICAgYnVmZmVyID0gYXdhaXQgdGhpcy5hc3NldFByb2Nlc3Nvci5wcm9jZXNzKGJ1ZmZlciwgbWV0YWRhdGEsIGZpbGVUeXBlKTtcclxuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWQoYnVmZmVyVG9TdHJlYW0oYnVmZmVyKSwgZmlsZVR5cGUsIG1ldGFkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB3cml0ZVVybCh1cmw6IHN0cmluZywgbWV0YWRhdGE6IElBc3NldE1ldGEgPSBudWxsKTogUHJvbWlzZTxJQXNzZXQ+IHtcclxuICAgICAgICBjb25zdCBidWZmZXIgPSAoYXdhaXQgYXhpb3MoeyB1cmwsIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH0pKS5kYXRhIGFzIEJ1ZmZlcjtcclxuICAgICAgICByZXR1cm4gdGhpcy53cml0ZUJ1ZmZlcihidWZmZXIsIG1ldGFkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkb3dubG9hZCh1cmw6IHN0cmluZywgY29udGVudFR5cGU6IHN0cmluZyA9IG51bGwpOiBQcm9taXNlPElBc3NldD4ge1xyXG4gICAgICAgIGxldCBidWZmZXIgPSAoYXdhaXQgYXhpb3MoeyB1cmwsIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH0pKS5kYXRhIGFzIEJ1ZmZlcjtcclxuICAgICAgICBsZXQgZmlsZVR5cGUgPSB7ZXh0OiBcIlwiLCBtaW1lOiBjb250ZW50VHlwZX0gYXMgSUZpbGVUeXBlO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGZpbGVUeXBlID0gYXdhaXQgQXNzZXRQcm9jZXNzb3IuZmlsZVR5cGVGcm9tQnVmZmVyKGJ1ZmZlcik7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBpZiAoIWZpbGVUeXBlLm1pbWUpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IGBDYW4ndCBkZXRlcm1pbmUgbWltZSB0eXBlYDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgQ2FuJ3QgZGV0ZXJtaW5lIG1pbWUgdHlwZWAsIGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtZXRhZGF0YTogSUFzc2V0TWV0YSA9IHtcclxuICAgICAgICAgICAgZmlsZW5hbWU6IHVybCxcclxuICAgICAgICAgICAgZXh0ZW5zaW9uOiAoZmlsZVR5cGUuZXh0IHx8IFwiXCIpLnRyaW0oKVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnVmZmVyID0gYXdhaXQgdGhpcy5hc3NldFByb2Nlc3Nvci5wcm9jZXNzKGJ1ZmZlciwgbWV0YWRhdGEsIGZpbGVUeXBlKTtcclxuICAgICAgICByZXR1cm4gbmV3IFRlbXBBc3NldChidWZmZXIsIHVybCwgZmlsZVR5cGUubWltZSwgbWV0YWRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHJlYWQoaWQ6IHN0cmluZyk6IFByb21pc2U8SUFzc2V0PiB7XHJcbiAgICAgICAgcmV0dXJuICFpZCA/IG51bGwgOiB0aGlzLmZpbmQoe19pZDogbmV3IE9iamVjdElkKGlkKX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGZpbmQod2hlcmU6IEZpbHRlclF1ZXJ5PElBc3NldD4pOiBQcm9taXNlPElBc3NldD4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZmluZE9uZSh3aGVyZSk7XHJcbiAgICAgICAgcmV0dXJuICFkYXRhID8gbnVsbCA6IG5ldyBBc3NldChkYXRhLl9pZCwgZGF0YSwgdGhpcy5jb2xsZWN0aW9uLCB0aGlzLmJ1Y2tldCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZmluZE1hbnkod2hlcmU6IEZpbHRlclF1ZXJ5PElBc3NldD4pOiBQcm9taXNlPFJlYWRvbmx5QXJyYXk8SUFzc2V0Pj4ge1xyXG4gICAgICAgIGNvbnN0IGN1cnNvciA9IHRoaXMuY29sbGVjdGlvbi5maW5kKHdoZXJlKTtcclxuICAgICAgICBjb25zdCBpdGVtcyA9IGF3YWl0IGN1cnNvci50b0FycmF5KCkgfHwgW107XHJcbiAgICAgICAgY29uc3QgcmVzdWx0OiBJQXNzZXRbXSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGl0ZW0gb2YgaXRlbXMpIHtcclxuICAgICAgICAgICAgaWYgKCFpdGVtKSBjb250aW51ZTtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2gobmV3IEFzc2V0KGl0ZW0uX2lkLCBpdGVtLCB0aGlzLmNvbGxlY3Rpb24sIHRoaXMuYnVja2V0KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZGVsZXRlTWFueSh3aGVyZTogRmlsdGVyUXVlcnk8SUFzc2V0Pik6IFByb21pc2U8UmVhZG9ubHlBcnJheTxzdHJpbmc+PiB7XHJcbiAgICAgICAgY29uc3QgYXNzZXRzID0gYXdhaXQgdGhpcy5maW5kTWFueSh3aGVyZSk7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGFzc2V0cy5tYXAoYSA9PiBhLnVubGluaygpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdW5saW5rKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IGFzc2V0ID0gYXdhaXQgdGhpcy5yZWFkKGlkKTtcclxuICAgICAgICBpZiAoIWFzc2V0KSByZXR1cm4gbnVsbDtcclxuICAgICAgICByZXR1cm4gYXNzZXQudW5saW5rKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFzeW5jIHVwbG9hZChzdHJlYW06IFJlYWRhYmxlLCBmaWxlVHlwZTogSUZpbGVUeXBlLCBtZXRhZGF0YTogSUFzc2V0TWV0YSk6IFByb21pc2U8SUFzc2V0PiB7XHJcbiAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSBmaWxlVHlwZS5taW1lLnRyaW0oKTtcclxuICAgICAgICBtZXRhZGF0YSA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgICAgICBkb3dubG9hZENvdW50OiAwLFxyXG4gICAgICAgICAgICBmaXJzdERvd25sb2FkOiBudWxsLFxyXG4gICAgICAgICAgICBsYXN0RG93bmxvYWQ6IG51bGxcclxuICAgICAgICB9LCBtZXRhZGF0YSB8fCB7fSk7XHJcbiAgICAgICAgbWV0YWRhdGEuZmlsZW5hbWUgPSBtZXRhZGF0YS5maWxlbmFtZSB8fCBuZXcgT2JqZWN0SWQoKS50b0hleFN0cmluZygpO1xyXG4gICAgICAgIG1ldGFkYXRhLmV4dGVuc2lvbiA9IChmaWxlVHlwZS5leHQgfHwgXCJcIikudHJpbSgpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJQXNzZXQ+KCgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVyU3RyZWFtID0gdGhpcy5idWNrZXQub3BlblVwbG9hZFN0cmVhbShtZXRhZGF0YS5maWxlbmFtZSk7XHJcbiAgICAgICAgICAgIHN0cmVhbS5waXBlKHVwbG9hZGVyU3RyZWFtKVxyXG4gICAgICAgICAgICAgICAgLm9uKFwiZXJyb3JcIiwgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvci5tZXNzYWdlIHx8IGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAub24oXCJmaW5pc2hcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFzc2V0ID0gbmV3IEFzc2V0KHVwbG9hZGVyU3RyZWFtLmlkIGFzIE9iamVjdElkLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lOiBtZXRhZGF0YS5maWxlbmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5jb2xsZWN0aW9uLCB0aGlzLmJ1Y2tldCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYXNzZXQuc2F2ZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGFzc2V0KTtcclxuICAgICAgICAgICAgICAgICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvci5tZXNzYWdlIHx8IGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxufVxyXG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2Fzc2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFdkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUc5QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXBFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztJQUluQyxNQUFNLFNBQU4sTUFBTTtJQUtmLFlBQXFCLFNBQXlCLEVBQVcsY0FBOEI7O1FBQWxFLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQVcsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ25GLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsU0FBUyxDQUFDLFFBQVEsMENBQUUsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFSyxLQUFLLENBQUMsTUFBZ0IsRUFBRSxjQUFzQixJQUFJLEVBQUUsV0FBdUIsSUFBSTs7WUFDakYsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLElBQUks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YyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2RSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztxQkFDdEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRTtvQkFDakIsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsQ0FBQztxQkFDRCxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtvQkFDZixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBYyxFQUFFO3dCQUNuRCxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7d0JBQzNCLFdBQVc7d0JBQ1gsUUFBUTtxQkFDWCxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNqQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuQixDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7d0JBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLENBQUM7b0JBQ25DLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7S0FBQTtDQUNKLENBQUE7QUE3SFksTUFBTTtJQUZsQixVQUFVLEVBQUU7SUFDWixNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztxQ0FNRSxjQUFjLEVBQTJCLGNBQWM7R0FMOUUsTUFBTSxDQTZIbEI7U0E3SFksTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0YWJsZSwgTGlmZWN5Y2xlLCBzY29wZWR9IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge1JlYWRhYmxlfSBmcm9tIFwic3RyZWFtXCI7XHJcbmltcG9ydCB7T2JqZWN0SWR9IGZyb20gXCJic29uXCI7XHJcbmltcG9ydCB7Q29sbGVjdGlvbiwgR3JpZEZTQnVja2V0fSBmcm9tIFwibW9uZ29kYlwiO1xyXG5pbXBvcnQge0ZpbHRlclF1ZXJ5fSBmcm9tIFwibW9uZ29vc2VcIjtcclxuaW1wb3J0IGF4aW9zIGZyb20gXCJheGlvc1wiO1xyXG5cclxuaW1wb3J0IHtidWZmZXJUb1N0cmVhbSwgY29weVN0cmVhbSwgc3RyZWFtVG9CdWZmZXJ9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQge0lBc3NldCwgSUFzc2V0TWV0YSwgSUZpbGVUeXBlfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7TW9uZ29Db25uZWN0b3J9IGZyb20gXCIuL21vbmdvLWNvbm5lY3RvclwiO1xyXG5pbXBvcnQge0Fzc2V0UHJvY2Vzc29yfSBmcm9tIFwiLi9hc3NldC1wcm9jZXNzb3JcIjtcclxuaW1wb3J0IHtBc3NldH0gZnJvbSBcIi4vZW50aXRpZXMvYXNzZXRcIjtcclxuaW1wb3J0IHtUZW1wQXNzZXR9IGZyb20gXCIuL2VudGl0aWVzL3RlbXAtYXNzZXRcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQHNjb3BlZChMaWZlY3ljbGUuQ29udGFpbmVyU2NvcGVkKVxyXG5leHBvcnQgY2xhc3MgQXNzZXRzIHtcclxuXHJcbiAgICByZWFkb25seSBidWNrZXQ6IEdyaWRGU0J1Y2tldDtcclxuICAgIHJlYWRvbmx5IGNvbGxlY3Rpb246IENvbGxlY3Rpb248UGFydGlhbDxJQXNzZXQ+PjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25uZWN0b3I6IE1vbmdvQ29ubmVjdG9yLCByZWFkb25seSBhc3NldFByb2Nlc3NvcjogQXNzZXRQcm9jZXNzb3IpIHtcclxuICAgICAgICB0aGlzLmJ1Y2tldCA9IGNvbm5lY3Rvci5idWNrZXQ7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uID0gY29ubmVjdG9yLmRhdGFiYXNlPy5jb2xsZWN0aW9uKFwiYXNzZXRzLmZpbGVzXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHdyaXRlKHN0cmVhbTogUmVhZGFibGUsIGNvbnRlbnRUeXBlOiBzdHJpbmcgPSBudWxsLCBtZXRhZGF0YTogSUFzc2V0TWV0YSA9IG51bGwpOiBQcm9taXNlPElBc3NldD4ge1xyXG4gICAgICAgIGNvbnN0IHVwbG9hZFN0cmVhbSA9IGNvcHlTdHJlYW0oc3RyZWFtKTtcclxuICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBzdHJlYW1Ub0J1ZmZlcihzdHJlYW0pO1xyXG4gICAgICAgIGxldCBmaWxlVHlwZSA9IHtleHQ6IFwiXCIsIG1pbWU6IGNvbnRlbnRUeXBlfSBhcyBJRmlsZVR5cGU7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgZmlsZVR5cGUgPSBhd2FpdCBBc3NldFByb2Nlc3Nvci5maWxlVHlwZUZyb21CdWZmZXIoYnVmZmVyKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIGlmICghZmlsZVR5cGUubWltZSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgYENhbid0IGRldGVybWluZSBtaW1lIHR5cGVgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDYW4ndCBkZXRlcm1pbmUgbWltZSB0eXBlYCwgZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1ldGFkYXRhID0gbWV0YWRhdGEgfHwge307XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkKHVwbG9hZFN0cmVhbSwgZmlsZVR5cGUsIG1ldGFkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB3cml0ZUJ1ZmZlcihidWZmZXI6IEJ1ZmZlciwgbWV0YWRhdGE6IElBc3NldE1ldGEgPSBudWxsLCBjb250ZW50VHlwZTogc3RyaW5nID0gbnVsbCk6IFByb21pc2U8SUFzc2V0PiB7XHJcbiAgICAgICAgbGV0IGZpbGVUeXBlID0ge2V4dDogXCJcIiwgbWltZTogY29udGVudFR5cGV9IGFzIElGaWxlVHlwZTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBmaWxlVHlwZSA9IGF3YWl0IEFzc2V0UHJvY2Vzc29yLmZpbGVUeXBlRnJvbUJ1ZmZlcihidWZmZXIpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgaWYgKCFmaWxlVHlwZS5taW1lKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBgQ2FuJ3QgZGV0ZXJtaW5lIG1pbWUgdHlwZWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc29sZS5sb2coYENhbid0IGRldGVybWluZSBtaW1lIHR5cGVgLCBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWV0YWRhdGEgPSBtZXRhZGF0YSB8fCB7fTtcclxuICAgICAgICBidWZmZXIgPSBhd2FpdCB0aGlzLmFzc2V0UHJvY2Vzc29yLnByb2Nlc3MoYnVmZmVyLCBtZXRhZGF0YSwgZmlsZVR5cGUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVwbG9hZChidWZmZXJUb1N0cmVhbShidWZmZXIpLCBmaWxlVHlwZSwgbWV0YWRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHdyaXRlVXJsKHVybDogc3RyaW5nLCBtZXRhZGF0YTogSUFzc2V0TWV0YSA9IG51bGwpOiBQcm9taXNlPElBc3NldD4ge1xyXG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IChhd2FpdCBheGlvcyh7IHVybCwgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSkpLmRhdGEgYXMgQnVmZmVyO1xyXG4gICAgICAgIHJldHVybiB0aGlzLndyaXRlQnVmZmVyKGJ1ZmZlciwgbWV0YWRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRvd25sb2FkKHVybDogc3RyaW5nLCBjb250ZW50VHlwZTogc3RyaW5nID0gbnVsbCk6IFByb21pc2U8SUFzc2V0PiB7XHJcbiAgICAgICAgbGV0IGJ1ZmZlciA9IChhd2FpdCBheGlvcyh7IHVybCwgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSkpLmRhdGEgYXMgQnVmZmVyO1xyXG4gICAgICAgIGxldCBmaWxlVHlwZSA9IHtleHQ6IFwiXCIsIG1pbWU6IGNvbnRlbnRUeXBlfSBhcyBJRmlsZVR5cGU7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgZmlsZVR5cGUgPSBhd2FpdCBBc3NldFByb2Nlc3Nvci5maWxlVHlwZUZyb21CdWZmZXIoYnVmZmVyKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIGlmICghZmlsZVR5cGUubWltZSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgYENhbid0IGRldGVybWluZSBtaW1lIHR5cGVgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDYW4ndCBkZXRlcm1pbmUgbWltZSB0eXBlYCwgZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG1ldGFkYXRhOiBJQXNzZXRNZXRhID0ge1xyXG4gICAgICAgICAgICBmaWxlbmFtZTogdXJsLFxyXG4gICAgICAgICAgICBleHRlbnNpb246IChmaWxlVHlwZS5leHQgfHwgXCJcIikudHJpbSgpXHJcbiAgICAgICAgfTtcclxuICAgICAgICBidWZmZXIgPSBhd2FpdCB0aGlzLmFzc2V0UHJvY2Vzc29yLnByb2Nlc3MoYnVmZmVyLCBtZXRhZGF0YSwgZmlsZVR5cGUpO1xyXG4gICAgICAgIHJldHVybiBuZXcgVGVtcEFzc2V0KGJ1ZmZlciwgdXJsLCBmaWxlVHlwZS5taW1lLCBtZXRhZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcmVhZChpZDogc3RyaW5nKTogUHJvbWlzZTxJQXNzZXQ+IHtcclxuICAgICAgICByZXR1cm4gIWlkID8gbnVsbCA6IHRoaXMuZmluZCh7X2lkOiBuZXcgT2JqZWN0SWQoaWQpfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZmluZCh3aGVyZTogRmlsdGVyUXVlcnk8SUFzc2V0Pik6IFByb21pc2U8SUFzc2V0PiB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbi5maW5kT25lKHdoZXJlKTtcclxuICAgICAgICByZXR1cm4gIWRhdGEgPyBudWxsIDogbmV3IEFzc2V0KGRhdGEuX2lkLCBkYXRhLCB0aGlzLmNvbGxlY3Rpb24sIHRoaXMuYnVja2V0KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBmaW5kTWFueSh3aGVyZTogRmlsdGVyUXVlcnk8SUFzc2V0Pik6IFByb21pc2U8UmVhZG9ubHlBcnJheTxJQXNzZXQ+PiB7XHJcbiAgICAgICAgY29uc3QgY3Vyc29yID0gdGhpcy5jb2xsZWN0aW9uLmZpbmQod2hlcmUpO1xyXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgY3Vyc29yLnRvQXJyYXkoKSB8fCBbXTtcclxuICAgICAgICBjb25zdCByZXN1bHQ6IElBc3NldFtdID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBpdGVtcykge1xyXG4gICAgICAgICAgICBpZiAoIWl0ZW0pIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICByZXN1bHQucHVzaChuZXcgQXNzZXQoaXRlbS5faWQsIGl0ZW0sIHRoaXMuY29sbGVjdGlvbiwgdGhpcy5idWNrZXQpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkZWxldGVNYW55KHdoZXJlOiBGaWx0ZXJRdWVyeTxJQXNzZXQ+KTogUHJvbWlzZTxSZWFkb25seUFycmF5PHN0cmluZz4+IHtcclxuICAgICAgICBjb25zdCBhc3NldHMgPSBhd2FpdCB0aGlzLmZpbmRNYW55KHdoZXJlKTtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoYXNzZXRzLm1hcChhID0+IGEudW5saW5rKCkpKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB1bmxpbmsoaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgY29uc3QgYXNzZXQgPSBhd2FpdCB0aGlzLnJlYWQoaWQpO1xyXG4gICAgICAgIGlmICghYXNzZXQpIHJldHVybiBudWxsO1xyXG4gICAgICAgIHJldHVybiBhc3NldC51bmxpbmsoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgdXBsb2FkKHN0cmVhbTogUmVhZGFibGUsIGZpbGVUeXBlOiBJRmlsZVR5cGUsIG1ldGFkYXRhOiBJQXNzZXRNZXRhKTogUHJvbWlzZTxJQXNzZXQ+IHtcclxuICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IGZpbGVUeXBlLm1pbWUudHJpbSgpO1xyXG4gICAgICAgIG1ldGFkYXRhID0gT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgICAgICAgIGRvd25sb2FkQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIGZpcnN0RG93bmxvYWQ6IG51bGwsXHJcbiAgICAgICAgICAgIGxhc3REb3dubG9hZDogbnVsbFxyXG4gICAgICAgIH0sIG1ldGFkYXRhIHx8IHt9KTtcclxuICAgICAgICBtZXRhZGF0YS5maWxlbmFtZSA9IG1ldGFkYXRhLmZpbGVuYW1lIHx8IG5ldyBPYmplY3RJZCgpLnRvSGV4U3RyaW5nKCk7XHJcbiAgICAgICAgbWV0YWRhdGEuZXh0ZW5zaW9uID0gKGZpbGVUeXBlLmV4dCB8fCBcIlwiKS50cmltKCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPElBc3NldD4oKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdXBsb2FkZXJTdHJlYW0gPSB0aGlzLmJ1Y2tldC5vcGVuVXBsb2FkU3RyZWFtKG1ldGFkYXRhLmZpbGVuYW1lKTtcclxuICAgICAgICAgICAgc3RyZWFtLnBpcGUodXBsb2FkZXJTdHJlYW0pXHJcbiAgICAgICAgICAgICAgICAub24oXCJlcnJvclwiLCBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5vbihcImZpbmlzaFwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXNzZXQgPSBuZXcgQXNzZXQodXBsb2FkZXJTdHJlYW0uaWQgYXMgT2JqZWN0SWQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWU6IG1ldGFkYXRhLmZpbGVuYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLmNvbGxlY3Rpb24sIHRoaXMuYnVja2V0KTtcclxuICAgICAgICAgICAgICAgICAgICBhc3NldC5zYXZlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYXNzZXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -34,4 +34,4 @@ export class BaseEntity {
34
34
  return ret;
35
35
  }
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvZW50aXRpZXMvYmFzZS1lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsTUFBTSxPQUFPLFVBQVU7SUFRbkIsWUFBcUIsR0FBYSxFQUNaLElBQWdCLEVBQ2hCLFVBQXNCO1FBRnZCLFFBQUcsR0FBSCxHQUFHLENBQVU7UUFDWixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDNUMsQ0FBQztJQVRELElBQUksRUFBRTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBU0QsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVLLElBQUk7O1lBQ04sTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQztZQUN0QixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0tBQUE7SUFFRCxNQUFNO1FBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBUSxDQUFDO1FBQ2hELE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNmLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sbGVjdGlvbn0gZnJvbSBcIm1vbmdvZGJcIjtcclxuaW1wb3J0IHtPYmplY3RJZH0gZnJvbSBcImJzb25cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlRW50aXR5PFQ+IHtcclxuXHJcbiAgICBnZXQgaWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tSWQudG9IZXhTdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZGVsZXRlZDogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBtSWQ6IE9iamVjdElkLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIGRhdGE6IFBhcnRpYWw8VD4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgY29sbGVjdGlvbjogQ29sbGVjdGlvbikge1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmUoKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uLnVwZGF0ZU9uZSh7X2lkOiB0aGlzLm1JZH0sIHskc2V0OiB0aGlzLnRvSlNPTigpfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHRoaXM+IHtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZmluZE9uZSh7X2lkOiB0aGlzLm1JZH0pO1xyXG4gICAgICAgIHRoaXMuZGVsZXRlZCA9ICFyZXM7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gcmVzIHx8IHt9O1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHRvSlNPTigpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHJldCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGF0YSkgYXMgYW55O1xyXG4gICAgICAgIGRlbGV0ZSByZXQuX2lkO1xyXG4gICAgICAgIHJldC5pZCA9IHRoaXMuaWQ7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxufVxyXG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvZW50aXRpZXMvYmFzZS1lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsTUFBTSxPQUFPLFVBQVU7SUFRbkIsWUFBcUIsR0FBYSxFQUNaLElBQWdCLEVBQ2hCLFVBQTJCO1FBRjVCLFFBQUcsR0FBSCxHQUFHLENBQVU7UUFDWixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQWlCO0lBQ2pELENBQUM7SUFURCxJQUFJLEVBQUU7UUFDRixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQVNELElBQUk7UUFDQSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFSyxJQUFJOztZQUNOLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztLQUFBO0lBRUQsTUFBTTtRQUNGLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQVEsQ0FBQztRQUNoRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDZixHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbGxlY3Rpb259IGZyb20gXCJtb25nb2RiXCI7XHJcbmltcG9ydCB7T2JqZWN0SWR9IGZyb20gXCJic29uXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFzZUVudGl0eTxUPiB7XHJcblxyXG4gICAgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubUlkLnRvSGV4U3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGRlbGV0ZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgbUlkOiBPYmplY3RJZCxcclxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBkYXRhOiBQYXJ0aWFsPFQ+LFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIGNvbGxlY3Rpb246IENvbGxlY3Rpb248YW55Pikge1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmUoKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uLnVwZGF0ZU9uZSh7X2lkOiB0aGlzLm1JZH0sIHskc2V0OiB0aGlzLnRvSlNPTigpfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHRoaXM+IHtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZmluZE9uZSh7X2lkOiB0aGlzLm1JZH0pO1xyXG4gICAgICAgIHRoaXMuZGVsZXRlZCA9ICFyZXM7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gcmVzIHx8IHt9O1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHRvSlNPTigpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHJldCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGF0YSkgYXMgYW55O1xyXG4gICAgICAgIGRlbGV0ZSByZXQuX2lkO1xyXG4gICAgICAgIHJldC5pZCA9IHRoaXMuaWQ7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -77,4 +77,4 @@ LazyAssets = __decorate([
77
77
  JobManager])
78
78
  ], LazyAssets);
79
79
  export { LazyAssets };
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvbGF6eS1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFJOUIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztJQUkzQixVQUFVLFNBQVYsVUFBVTtJQUluQixZQUFxQixTQUF5QixFQUN6QixNQUFjLEVBQ2QsVUFBc0IsRUFDdEIsTUFBa0I7UUFIbEIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFSyxNQUFNLENBQUMsT0FBbUIsRUFBRSxZQUF1QixFQUFFLEVBQUUsU0FBaUIsTUFBTTs7WUFDaEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxrQ0FBTSxTQUFTLEtBQUUsTUFBTSxFQUFFLEVBQUUsSUFBRSxDQUFDO1lBQzVFLE1BQU0sSUFBSSxHQUFHO2dCQUNULE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxNQUFNO2FBQ1QsQ0FBQztZQUNGLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxJQUFJLGFBQWE7Z0JBQUUsT0FBTyxhQUFhLENBQUM7WUFDeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRCxPQUFPLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUYsQ0FBQztLQUFBO0lBRUssSUFBSSxDQUFDLEVBQVU7O1lBQ2pCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQztLQUFBO0lBRUssSUFBSSxDQUFDLEtBQThCOztZQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxJQUFJO2dCQUNSLENBQUMsQ0FBQyxJQUFJO2dCQUNOLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7S0FBQTtJQUVLLE1BQU0sQ0FBQyxFQUFVOztZQUNuQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDeEIsT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsQ0FBQztLQUFBO0NBQ0osQ0FBQTtBQXhDWSxVQUFVO0lBRnRCLFVBQVUsRUFBRTtJQUNaLE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO3FDQUtFLGNBQWM7UUFDakIsTUFBTTtRQUNGLFVBQVU7UUFDZCxVQUFVO0dBUDlCLFVBQVUsQ0F3Q3RCO1NBeENZLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdGFibGUsIExpZmVjeWNsZSwgc2NvcGVkfSBmcm9tIFwidHN5cmluZ2VcIjtcclxuaW1wb3J0IHtPYmplY3RJZH0gZnJvbSBcImJzb25cIjtcclxuaW1wb3J0IHtDb2xsZWN0aW9ufSBmcm9tIFwibW9uZ29kYlwiO1xyXG5pbXBvcnQge0ZpbHRlclF1ZXJ5fSBmcm9tIFwibW9uZ29vc2VcIjtcclxuaW1wb3J0IHtJSm9iLCBJTGF6eUFzc2V0LCBKb2JQYXJhbXMsIFR5cGV9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtNb25nb0Nvbm5lY3Rvcn0gZnJvbSBcIi4vbW9uZ28tY29ubmVjdG9yXCI7XHJcbmltcG9ydCB7QXNzZXRzfSBmcm9tIFwiLi9hc3NldHNcIjtcclxuaW1wb3J0IHtMYXp5QXNzZXR9IGZyb20gXCIuL2VudGl0aWVzL2xhenktYXNzZXRcIjtcclxuaW1wb3J0IHtKb2JNYW5hZ2VyfSBmcm9tIFwiLi9qb2ItbWFuYWdlclwiO1xyXG5pbXBvcnQge1Byb2dyZXNzZXN9IGZyb20gXCIuL3Byb2dyZXNzZXNcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQHNjb3BlZChMaWZlY3ljbGUuQ29udGFpbmVyU2NvcGVkKVxyXG5leHBvcnQgY2xhc3MgTGF6eUFzc2V0cyB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubmVjdG9yOiBNb25nb0Nvbm5lY3RvcixcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGFzc2V0czogQXNzZXRzLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgcHJvZ3Jlc3NlczogUHJvZ3Jlc3NlcyxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGpvYk1hbjogSm9iTWFuYWdlcikge1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IGNvbm5lY3Rvci5kYXRhYmFzZS5jb2xsZWN0aW9uKFwibGF6eWFzc2V0c1wiKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjcmVhdGUoam9iVHlwZTogVHlwZTxJSm9iPiwgam9iUGFyYW1zOiBKb2JQYXJhbXMgPSB7fSwgam9iUXVlOiBzdHJpbmcgPSBcIm1haW5cIik6IFByb21pc2U8SUxhenlBc3NldD4ge1xyXG4gICAgICAgIGNvbnN0IGpvYk5hbWUgPSB0aGlzLmpvYk1hbi50cnlSZXNvbHZlKGpvYlR5cGUsIHsuLi5qb2JQYXJhbXMsIGxhenlJZDogXCJcIn0pO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIGpvYk5hbWUsXHJcbiAgICAgICAgICAgIGpvYlBhcmFtcyxcclxuICAgICAgICAgICAgam9iUXVlXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBleGlzdGluZ0Fzc2V0ID0gYXdhaXQgdGhpcy5maW5kKGRhdGEpO1xyXG4gICAgICAgIGlmIChleGlzdGluZ0Fzc2V0KSByZXR1cm4gZXhpc3RpbmdBc3NldDtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uaW5zZXJ0T25lKGRhdGEpO1xyXG4gICAgICAgIHJldHVybiBuZXcgTGF6eUFzc2V0KHJlcy5pbnNlcnRlZElkLCBkYXRhLCB0aGlzLmNvbGxlY3Rpb24sIHRoaXMuYXNzZXRzLCB0aGlzLnByb2dyZXNzZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHJlYWQoaWQ6IHN0cmluZyk6IFByb21pc2U8SUxhenlBc3NldD4ge1xyXG4gICAgICAgIHJldHVybiAhaWQgPyBudWxsIDogdGhpcy5maW5kKHtfaWQ6IG5ldyBPYmplY3RJZChpZCl9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBmaW5kKHdoZXJlOiBGaWx0ZXJRdWVyeTxJTGF6eUFzc2V0Pik6IFByb21pc2U8SUxhenlBc3NldD4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZmluZE9uZSh3aGVyZSk7XHJcbiAgICAgICAgcmV0dXJuICFkYXRhXHJcbiAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICA6IG5ldyBMYXp5QXNzZXQoZGF0YS5faWQsIGRhdGEsIHRoaXMuY29sbGVjdGlvbiwgdGhpcy5hc3NldHMsIHRoaXMucHJvZ3Jlc3Nlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdW5saW5rKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IGFzc2V0ID0gYXdhaXQgdGhpcy5yZWFkKGlkKTtcclxuICAgICAgICBpZiAoIWFzc2V0KSByZXR1cm4gbnVsbDtcclxuICAgICAgICByZXR1cm4gYXNzZXQudW5saW5rKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvbGF6eS1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFJOUIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztJQUkzQixVQUFVLFNBQVYsVUFBVTtJQUluQixZQUFxQixTQUF5QixFQUN6QixNQUFjLEVBQ2QsVUFBc0IsRUFDdEIsTUFBa0I7UUFIbEIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFSyxNQUFNLENBQUMsT0FBbUIsRUFBRSxZQUF1QixFQUFFLEVBQUUsU0FBaUIsTUFBTTs7WUFDaEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxrQ0FBTSxTQUFTLEtBQUUsTUFBTSxFQUFFLEVBQUUsSUFBRSxDQUFDO1lBQzVFLE1BQU0sSUFBSSxHQUFHO2dCQUNULE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxNQUFNO2FBQ1QsQ0FBQztZQUNGLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxJQUFJLGFBQWE7Z0JBQUUsT0FBTyxhQUFhLENBQUM7WUFDeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRCxPQUFPLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUYsQ0FBQztLQUFBO0lBRUssSUFBSSxDQUFDLEVBQVU7O1lBQ2pCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQztLQUFBO0lBRUssSUFBSSxDQUFDLEtBQThCOztZQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxJQUFJO2dCQUNSLENBQUMsQ0FBQyxJQUFJO2dCQUNOLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7S0FBQTtJQUVLLE1BQU0sQ0FBQyxFQUFVOztZQUNuQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDeEIsT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsQ0FBQztLQUFBO0NBQ0osQ0FBQTtBQXhDWSxVQUFVO0lBRnRCLFVBQVUsRUFBRTtJQUNaLE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO3FDQUtFLGNBQWM7UUFDakIsTUFBTTtRQUNGLFVBQVU7UUFDZCxVQUFVO0dBUDlCLFVBQVUsQ0F3Q3RCO1NBeENZLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdGFibGUsIExpZmVjeWNsZSwgc2NvcGVkfSBmcm9tIFwidHN5cmluZ2VcIjtcclxuaW1wb3J0IHtPYmplY3RJZH0gZnJvbSBcImJzb25cIjtcclxuaW1wb3J0IHtDb2xsZWN0aW9ufSBmcm9tIFwibW9uZ29kYlwiO1xyXG5pbXBvcnQge0ZpbHRlclF1ZXJ5fSBmcm9tIFwibW9uZ29vc2VcIjtcclxuaW1wb3J0IHtJSm9iLCBJTGF6eUFzc2V0LCBKb2JQYXJhbXMsIFR5cGV9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtNb25nb0Nvbm5lY3Rvcn0gZnJvbSBcIi4vbW9uZ28tY29ubmVjdG9yXCI7XHJcbmltcG9ydCB7QXNzZXRzfSBmcm9tIFwiLi9hc3NldHNcIjtcclxuaW1wb3J0IHtMYXp5QXNzZXR9IGZyb20gXCIuL2VudGl0aWVzL2xhenktYXNzZXRcIjtcclxuaW1wb3J0IHtKb2JNYW5hZ2VyfSBmcm9tIFwiLi9qb2ItbWFuYWdlclwiO1xyXG5pbXBvcnQge1Byb2dyZXNzZXN9IGZyb20gXCIuL3Byb2dyZXNzZXNcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQHNjb3BlZChMaWZlY3ljbGUuQ29udGFpbmVyU2NvcGVkKVxyXG5leHBvcnQgY2xhc3MgTGF6eUFzc2V0cyB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbGxlY3Rpb246IENvbGxlY3Rpb248UGFydGlhbDxJTGF6eUFzc2V0Pj47XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubmVjdG9yOiBNb25nb0Nvbm5lY3RvcixcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGFzc2V0czogQXNzZXRzLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgcHJvZ3Jlc3NlczogUHJvZ3Jlc3NlcyxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGpvYk1hbjogSm9iTWFuYWdlcikge1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IGNvbm5lY3Rvci5kYXRhYmFzZS5jb2xsZWN0aW9uKFwibGF6eWFzc2V0c1wiKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjcmVhdGUoam9iVHlwZTogVHlwZTxJSm9iPiwgam9iUGFyYW1zOiBKb2JQYXJhbXMgPSB7fSwgam9iUXVlOiBzdHJpbmcgPSBcIm1haW5cIik6IFByb21pc2U8SUxhenlBc3NldD4ge1xyXG4gICAgICAgIGNvbnN0IGpvYk5hbWUgPSB0aGlzLmpvYk1hbi50cnlSZXNvbHZlKGpvYlR5cGUsIHsuLi5qb2JQYXJhbXMsIGxhenlJZDogXCJcIn0pO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIGpvYk5hbWUsXHJcbiAgICAgICAgICAgIGpvYlBhcmFtcyxcclxuICAgICAgICAgICAgam9iUXVlXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBleGlzdGluZ0Fzc2V0ID0gYXdhaXQgdGhpcy5maW5kKGRhdGEpO1xyXG4gICAgICAgIGlmIChleGlzdGluZ0Fzc2V0KSByZXR1cm4gZXhpc3RpbmdBc3NldDtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uaW5zZXJ0T25lKGRhdGEpO1xyXG4gICAgICAgIHJldHVybiBuZXcgTGF6eUFzc2V0KHJlcy5pbnNlcnRlZElkLCBkYXRhLCB0aGlzLmNvbGxlY3Rpb24sIHRoaXMuYXNzZXRzLCB0aGlzLnByb2dyZXNzZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHJlYWQoaWQ6IHN0cmluZyk6IFByb21pc2U8SUxhenlBc3NldD4ge1xyXG4gICAgICAgIHJldHVybiAhaWQgPyBudWxsIDogdGhpcy5maW5kKHtfaWQ6IG5ldyBPYmplY3RJZChpZCl9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBmaW5kKHdoZXJlOiBGaWx0ZXJRdWVyeTxJTGF6eUFzc2V0Pik6IFByb21pc2U8SUxhenlBc3NldD4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZmluZE9uZSh3aGVyZSk7XHJcbiAgICAgICAgcmV0dXJuICFkYXRhXHJcbiAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICA6IG5ldyBMYXp5QXNzZXQoZGF0YS5faWQsIGRhdGEsIHRoaXMuY29sbGVjdGlvbiwgdGhpcy5hc3NldHMsIHRoaXMucHJvZ3Jlc3Nlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdW5saW5rKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IGFzc2V0ID0gYXdhaXQgdGhpcy5yZWFkKGlkKTtcclxuICAgICAgICBpZiAoIWFzc2V0KSByZXR1cm4gbnVsbDtcclxuICAgICAgICByZXR1cm4gYXNzZXQudW5saW5rKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -20,6 +20,7 @@ import { injectable, singleton } from "tsyringe";
20
20
  import { GridFSBucket } from "mongodb";
21
21
  import { connect } from "mongoose";
22
22
  import { Configuration } from "./configuration";
23
+ import { getType } from "../utils";
23
24
  let MongoConnector = class MongoConnector {
24
25
  constructor(configuration) {
25
26
  this.configuration = configuration;
@@ -46,6 +47,7 @@ let MongoConnector = class MongoConnector {
46
47
  pass: this.configuration.resolve("mongoPassword")
47
48
  })).connection;
48
49
  this.db = this.conn.db;
50
+ console.log("DB INSTANCE", getType(this.db));
49
51
  this.fsBucket = new GridFSBucket(this.db, { bucketName: "assets" });
50
52
  });
51
53
  }
@@ -56,4 +58,4 @@ MongoConnector = __decorate([
56
58
  __metadata("design:paramtypes", [Configuration])
57
59
  ], MongoConnector);
58
60
  export { MongoConnector };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28tY29ubmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21vbmdvLWNvbm5lY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMvQyxPQUFPLEVBQUssWUFBWSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxPQUFPLEVBQWEsTUFBTSxVQUFVLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0lBSWpDLGNBQWMsU0FBZCxjQUFjO0lBa0J2QixZQUFxQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFwQkQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBWUssT0FBTzs7WUFDVCxJQUFJLElBQUksQ0FBQyxFQUFFO2dCQUFFLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFXLEVBQUU7Z0JBQ3pFLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQzdDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQzdDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7YUFDcEQsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO0tBQUE7Q0FDSixDQUFBO0FBbENZLGNBQWM7SUFGMUIsVUFBVSxFQUFFO0lBQ1osU0FBUyxFQUFFO3FDQW1CNEIsYUFBYTtHQWxCeEMsY0FBYyxDQWtDMUI7U0FsQ1ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0YWJsZSwgc2luZ2xldG9ufSBmcm9tIFwidHN5cmluZ2VcIjtcclxuaW1wb3J0IHtEYiwgR3JpZEZTQnVja2V0fSBmcm9tIFwibW9uZ29kYlwiO1xyXG5pbXBvcnQge2Nvbm5lY3QsIENvbm5lY3Rpb259IGZyb20gXCJtb25nb29zZVwiO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25cIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQHNpbmdsZXRvbigpXHJcbmV4cG9ydCBjbGFzcyBNb25nb0Nvbm5lY3RvciB7XHJcblxyXG4gICAgZ2V0IGNvbm5lY3Rpb24oKTogQ29ubmVjdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGF0YWJhc2UoKTogRGIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBidWNrZXQoKTogR3JpZEZTQnVja2V0IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mc0J1Y2tldDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY29ubjogQ29ubmVjdGlvbjtcclxuICAgIHByb3RlY3RlZCBkYjogRGI7XHJcbiAgICBwcm90ZWN0ZWQgZnNCdWNrZXQ6IEdyaWRGU0J1Y2tldDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5jb25uID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRiID0gbnVsbDtcclxuICAgICAgICB0aGlzLmZzQnVja2V0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjb25uZWN0KCk6IFByb21pc2U8RGI+IHtcclxuICAgICAgICBpZiAodGhpcy5kYikgcmV0dXJuIHRoaXMuZGI7XHJcbiAgICAgICAgdGhpcy5jb25uID0gKGF3YWl0IGNvbm5lY3QodGhpcy5jb25maWd1cmF0aW9uLnJlc29sdmUoXCJtb25nb1VyaVwiKSBhcyBzdHJpbmcsIHtcclxuICAgICAgICAgICAgZGJOYW1lOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZShcIm1vbmdvRGJcIiksXHJcbiAgICAgICAgICAgIHVzZXI6IHRoaXMuY29uZmlndXJhdGlvbi5yZXNvbHZlKFwibW9uZ29Vc2VyXCIpLFxyXG4gICAgICAgICAgICBwYXNzOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZShcIm1vbmdvUGFzc3dvcmRcIilcclxuICAgICAgICB9KSkuY29ubmVjdGlvbjtcclxuICAgICAgICB0aGlzLmRiID0gdGhpcy5jb25uLmRiO1xyXG4gICAgICAgIHRoaXMuZnNCdWNrZXQgPSBuZXcgR3JpZEZTQnVja2V0KHRoaXMuZGIsIHtidWNrZXROYW1lOiBcImFzc2V0c1wifSk7XHJcbiAgICB9XHJcbn1cclxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28tY29ubmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21vbmdvLWNvbm5lY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMvQyxPQUFPLEVBQUssWUFBWSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxPQUFPLEVBQWEsTUFBTSxVQUFVLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxVQUFVLENBQUM7SUFJcEIsY0FBYyxTQUFkLGNBQWM7SUFrQnZCLFlBQXFCLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQXBCRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFZSyxPQUFPOztZQUNULElBQUksSUFBSSxDQUFDLEVBQUU7Z0JBQUUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQVcsRUFBRTtnQkFDekUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztnQkFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQzthQUNwRCxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDZixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBUyxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO0tBQUE7Q0FDSixDQUFBO0FBbkNZLGNBQWM7SUFGMUIsVUFBVSxFQUFFO0lBQ1osU0FBUyxFQUFFO3FDQW1CNEIsYUFBYTtHQWxCeEMsY0FBYyxDQW1DMUI7U0FuQ1ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0YWJsZSwgc2luZ2xldG9ufSBmcm9tIFwidHN5cmluZ2VcIjtcclxuaW1wb3J0IHtEYiwgR3JpZEZTQnVja2V0fSBmcm9tIFwibW9uZ29kYlwiO1xyXG5pbXBvcnQge2Nvbm5lY3QsIENvbm5lY3Rpb259IGZyb20gXCJtb25nb29zZVwiO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHtnZXRUeXBlfSBmcm9tIFwiLi4vdXRpbHNcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQHNpbmdsZXRvbigpXHJcbmV4cG9ydCBjbGFzcyBNb25nb0Nvbm5lY3RvciB7XHJcblxyXG4gICAgZ2V0IGNvbm5lY3Rpb24oKTogQ29ubmVjdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGF0YWJhc2UoKTogRGIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBidWNrZXQoKTogR3JpZEZTQnVja2V0IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mc0J1Y2tldDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY29ubjogQ29ubmVjdGlvbjtcclxuICAgIHByb3RlY3RlZCBkYjogRGI7XHJcbiAgICBwcm90ZWN0ZWQgZnNCdWNrZXQ6IEdyaWRGU0J1Y2tldDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5jb25uID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRiID0gbnVsbDtcclxuICAgICAgICB0aGlzLmZzQnVja2V0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjb25uZWN0KCk6IFByb21pc2U8RGI+IHtcclxuICAgICAgICBpZiAodGhpcy5kYikgcmV0dXJuIHRoaXMuZGI7XHJcbiAgICAgICAgdGhpcy5jb25uID0gKGF3YWl0IGNvbm5lY3QodGhpcy5jb25maWd1cmF0aW9uLnJlc29sdmUoXCJtb25nb1VyaVwiKSBhcyBzdHJpbmcsIHtcclxuICAgICAgICAgICAgZGJOYW1lOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZShcIm1vbmdvRGJcIiksXHJcbiAgICAgICAgICAgIHVzZXI6IHRoaXMuY29uZmlndXJhdGlvbi5yZXNvbHZlKFwibW9uZ29Vc2VyXCIpLFxyXG4gICAgICAgICAgICBwYXNzOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZShcIm1vbmdvUGFzc3dvcmRcIilcclxuICAgICAgICB9KSkuY29ubmVjdGlvbjtcclxuICAgICAgICB0aGlzLmRiID0gdGhpcy5jb25uLmRiIGFzIGFueTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkRCIElOU1RBTkNFXCIsIGdldFR5cGUodGhpcy5kYikpO1xyXG4gICAgICAgIHRoaXMuZnNCdWNrZXQgPSBuZXcgR3JpZEZTQnVja2V0KHRoaXMuZGIsIHtidWNrZXROYW1lOiBcImFzc2V0c1wifSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -116,4 +116,4 @@ Progresses = __decorate([
116
116
  __metadata("design:paramtypes", [MongoConnector, JobManager])
117
117
  ], Progresses);
118
118
  export { Progresses };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9ncmVzc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFJOUIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7SUFJaEMsVUFBVSxTQUFWLFVBQVU7SUFLbkIsWUFBcUIsU0FBeUIsRUFBVyxNQUFrQjtRQUF0RCxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUFXLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDdkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUMxQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsRUFBWSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFSyxZQUFZLENBQUMsRUFBVTs7WUFDekIsT0FBTyxP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USxDQUFDLEtBQUssRUFBRTt3QkFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ25DO29CQUNELFVBQVUsR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztpQkFDeEM7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDYixJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTt3QkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO3FCQUMvRTtvQkFDRCxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDL0I7YUFDSjtZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUM7S0FBQTtDQUNKLENBQUE7QUFuRlksVUFBVTtJQUZ0QixVQUFVLEVBQUU7SUFDWixTQUFTLEVBQUU7cUNBTXdCLGNBQWMsRUFBbUIsVUFBVTtHQUxsRSxVQUFVLENBbUZ0QjtTQW5GWSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3RhYmxlLCBzaW5nbGV0b259IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge09iamVjdElkfSBmcm9tIFwiYnNvblwiO1xyXG5pbXBvcnQge0NvbGxlY3Rpb259IGZyb20gXCJtb25nb2RiXCI7XHJcbmltcG9ydCB7RmlsdGVyUXVlcnl9IGZyb20gXCJtb25nb29zZVwiO1xyXG5pbXBvcnQge0lQcm9ncmVzc30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge3Byb21pc2VUaW1lb3V0fSBmcm9tIFwiLi4vdXRpbHNcIjtcclxuaW1wb3J0IHtNb25nb0Nvbm5lY3Rvcn0gZnJvbSBcIi4vbW9uZ28tY29ubmVjdG9yXCI7XHJcbmltcG9ydCB7Sm9iTWFuYWdlcn0gZnJvbSBcIi4vam9iLW1hbmFnZXJcIjtcclxuaW1wb3J0IHtQcm9ncmVzc30gZnJvbSBcIi4vZW50aXRpZXMvcHJvZ3Jlc3NcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQHNpbmdsZXRvbigpXHJcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc2VzIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcclxuICAgIHByb3RlY3RlZCBwcm9ncmVzc2VzOiB7W2lkOiBzdHJpbmddOiBJUHJvZ3Jlc3N9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbm5lY3RvcjogTW9uZ29Db25uZWN0b3IsIHJlYWRvbmx5IGpvYk1hbjogSm9iTWFuYWdlcikge1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IGNvbm5lY3Rvci5kYXRhYmFzZS5jb2xsZWN0aW9uKFwicHJvZ3Jlc3Nlc1wiKTtcclxuICAgICAgICB0aGlzLnByb2dyZXNzZXMgPSB7fTtcclxuICAgICAgICB0aGlzLmpvYk1hbi5vbihcInByb2dyZXNzLWNoYW5nZWRcIiwgcHJvZ3Jlc3MgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpZCA9IHByb2dyZXNzLmlkIGFzIHN0cmluZztcclxuICAgICAgICAgICAgdGhpcy5wcm9ncmVzc2VzW2lkXSA9IG5ldyBQcm9ncmVzcyhuZXcgT2JqZWN0SWQoaWQpLCBwcm9ncmVzcyBhcyBhbnksIHRoaXMuY29sbGVjdGlvbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgd2FpdFRvRmluaXNoKGlkOiBzdHJpbmcpOiBQcm9taXNlPElQcm9ncmVzcz4ge1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJhY2UoW1xyXG4gICAgICAgICAgICB0aGlzLndhaXRGb3JQcm9ncmVzcyhpZCwgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHByb2dyZXNzID0gdGhpcy5wcm9ncmVzc2VzW2lkXTtcclxuICAgICAgICAgICAgICAgIGlmICghcHJvZ3Jlc3MgfHwgcHJvZ3Jlc3MucGVyY2VudCA8IDEwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gYXdhaXQgdGhpcy5nZXQoaWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCFwcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvZ3Jlc3MgZG9lcyBub3QgZXhpc3RzIHdpdGggaWQ6ICR7aWR9YCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvZ3Jlc3M7XHJcbiAgICAgICAgICAgIH0sIDUwMCksXHJcbiAgICAgICAgICAgIHRoaXMud2FpdEZvclByb2dyZXNzKGlkLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9ncmVzc2VzW2lkXSB8fCBudWxsO1xyXG4gICAgICAgICAgICB9LCAyNSlcclxuICAgICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXQoaWQ6IHN0cmluZyk6IFByb21pc2U8SVByb2dyZXNzPiB7XHJcbiAgICAgICAgcmV0dXJuICFpZCA/IG51bGwgOiB0aGlzLmZpbmQoe19pZDogbmV3IE9iamVjdElkKGlkKX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGZpbmQod2hlcmU6IEZpbHRlclF1ZXJ5PElQcm9ncmVzcz4pOiBQcm9taXNlPElQcm9ncmVzcz4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZmluZE9uZSh3aGVyZSk7XHJcbiAgICAgICAgcmV0dXJuICFkYXRhID8gbnVsbCA6IG5ldyBQcm9ncmVzcyhkYXRhLl9pZCwgZGF0YSwgdGhpcy5jb2xsZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjcmVhdGUobWF4OiBudW1iZXIgPSAxMDApOiBQcm9taXNlPElQcm9ncmVzcz4ge1xyXG4gICAgICAgIGlmIChpc05hTihtYXgpIHx8IG1heCA8PSAwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTWF4IHByb2dyZXNzIHZhbHVlIG11c3QgYmUgYmlnZ2VyIHRoYW4gemVyb2ApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgICAgICBjdXJyZW50OiAwLFxyXG4gICAgICAgICAgICBtYXg6IG1heCxcclxuICAgICAgICAgICAgbWVzc2FnZTogXCJcIixcclxuICAgICAgICAgICAgZXJyb3I6IFwiXCIsXHJcbiAgICAgICAgICAgIGNhbmNlbGVkOiBmYWxzZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uLmluc2VydE9uZShkYXRhKTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2dyZXNzKHJlcy5pbnNlcnRlZElkLCBkYXRhLCB0aGlzLmNvbGxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHJlbW92ZShpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZGVsZXRlT25lKHtfaWQ6IG5ldyBPYmplY3RJZChpZCl9KTtcclxuICAgICAgICByZXR1cm4gaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFzeW5jIHdhaXRGb3JQcm9ncmVzcyhpZDogc3RyaW5nLCBjYjogKCkgPT4gUHJvbWlzZTxJUHJvZ3Jlc3M+LCBkZWxheTogbnVtYmVyKTogUHJvbWlzZTxJUHJvZ3Jlc3M+IHtcclxuICAgICAgICBsZXQgaXNGaW5pc2hlZCA9IGZhbHNlO1xyXG4gICAgICAgIGxldCBwcm9ncmVzczogSVByb2dyZXNzID0gbnVsbDtcclxuICAgICAgICBsZXQgd2FpdFRpbWU6IG51bWJlciA9IDA7XHJcbiAgICAgICAgd2hpbGUgKCFpc0ZpbmlzaGVkKSB7XHJcbiAgICAgICAgICAgIHByb2dyZXNzID0gYXdhaXQgY2IoKTtcclxuICAgICAgICAgICAgd2FpdFRpbWUgKz0gZGVsYXk7XHJcbiAgICAgICAgICAgIGlmIChwcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHByb2dyZXNzLmVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2dyZXNzLmVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlzRmluaXNoZWQgPSBwcm9ncmVzcy5wZXJjZW50ID49IDEwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIWlzRmluaXNoZWQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh3YWl0VGltZSA+PSB0aGlzLmpvYk1hbi5tYXhUaW1lb3V0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9ncmVzcyB3aXRoIGlkOiAke2lkfSBwcm9iYWJseSBuZXZlciB3aWxsIGJlIGZpbmlzaGVkIWApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYXdhaXQgcHJvbWlzZVRpbWVvdXQoZGVsYXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwcm9ncmVzcztcclxuICAgIH1cclxufVxyXG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9ncmVzc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFJOUIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7SUFJaEMsVUFBVSxTQUFWLFVBQVU7SUFLbkIsWUFBcUIsU0FBeUIsRUFBVyxNQUFrQjtRQUF0RCxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUFXLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDdkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUMxQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsRUFBWSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFSyxZQUFZLENBQUMsRUFBVTs7WUFDekIsT0FBTyxP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USxDQUFDLEtBQUssRUFBRTt3QkFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ25DO29CQUNELFVBQVUsR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztpQkFDeEM7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDYixJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTt3QkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO3FCQUMvRTtvQkFDRCxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDL0I7YUFDSjtZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUM7S0FBQTtDQUNKLENBQUE7QUFuRlksVUFBVTtJQUZ0QixVQUFVLEVBQUU7SUFDWixTQUFTLEVBQUU7cUNBTXdCLGNBQWMsRUFBbUIsVUFBVTtHQUxsRSxVQUFVLENBbUZ0QjtTQW5GWSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3RhYmxlLCBzaW5nbGV0b259IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge09iamVjdElkfSBmcm9tIFwiYnNvblwiO1xyXG5pbXBvcnQge0NvbGxlY3Rpb259IGZyb20gXCJtb25nb2RiXCI7XHJcbmltcG9ydCB7RmlsdGVyUXVlcnl9IGZyb20gXCJtb25nb29zZVwiO1xyXG5pbXBvcnQge0lQcm9ncmVzc30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge3Byb21pc2VUaW1lb3V0fSBmcm9tIFwiLi4vdXRpbHNcIjtcclxuaW1wb3J0IHtNb25nb0Nvbm5lY3Rvcn0gZnJvbSBcIi4vbW9uZ28tY29ubmVjdG9yXCI7XHJcbmltcG9ydCB7Sm9iTWFuYWdlcn0gZnJvbSBcIi4vam9iLW1hbmFnZXJcIjtcclxuaW1wb3J0IHtQcm9ncmVzc30gZnJvbSBcIi4vZW50aXRpZXMvcHJvZ3Jlc3NcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQHNpbmdsZXRvbigpXHJcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc2VzIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxQYXJ0aWFsPElQcm9ncmVzcz4+O1xyXG4gICAgcHJvdGVjdGVkIHByb2dyZXNzZXM6IHtbaWQ6IHN0cmluZ106IElQcm9ncmVzc307XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubmVjdG9yOiBNb25nb0Nvbm5lY3RvciwgcmVhZG9ubHkgam9iTWFuOiBKb2JNYW5hZ2VyKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uID0gY29ubmVjdG9yLmRhdGFiYXNlLmNvbGxlY3Rpb24oXCJwcm9ncmVzc2VzXCIpO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3NlcyA9IHt9O1xyXG4gICAgICAgIHRoaXMuam9iTWFuLm9uKFwicHJvZ3Jlc3MtY2hhbmdlZFwiLCBwcm9ncmVzcyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkID0gcHJvZ3Jlc3MuaWQgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzZXNbaWRdID0gbmV3IFByb2dyZXNzKG5ldyBPYmplY3RJZChpZCksIHByb2dyZXNzIGFzIGFueSwgdGhpcy5jb2xsZWN0aW9uKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB3YWl0VG9GaW5pc2goaWQ6IHN0cmluZyk6IFByb21pc2U8SVByb2dyZXNzPiB7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmFjZShbXHJcbiAgICAgICAgICAgIHRoaXMud2FpdEZvclByb2dyZXNzKGlkLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvZ3Jlc3MgPSB0aGlzLnByb2dyZXNzZXNbaWRdO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFwcm9ncmVzcyB8fCBwcm9ncmVzcy5wZXJjZW50IDwgMTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSBhd2FpdCB0aGlzLmdldChpZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIXByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9ncmVzcyBkb2VzIG5vdCBleGlzdHMgd2l0aCBpZDogJHtpZH1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9ncmVzcztcclxuICAgICAgICAgICAgfSwgNTAwKSxcclxuICAgICAgICAgICAgdGhpcy53YWl0Rm9yUHJvZ3Jlc3MoaWQsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2dyZXNzZXNbaWRdIHx8IG51bGw7XHJcbiAgICAgICAgICAgIH0sIDI1KVxyXG4gICAgICAgIF0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldChpZDogc3RyaW5nKTogUHJvbWlzZTxJUHJvZ3Jlc3M+IHtcclxuICAgICAgICByZXR1cm4gIWlkID8gbnVsbCA6IHRoaXMuZmluZCh7X2lkOiBuZXcgT2JqZWN0SWQoaWQpfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZmluZCh3aGVyZTogRmlsdGVyUXVlcnk8SVByb2dyZXNzPik6IFByb21pc2U8SVByb2dyZXNzPiB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbi5maW5kT25lKHdoZXJlKTtcclxuICAgICAgICByZXR1cm4gIWRhdGEgPyBudWxsIDogbmV3IFByb2dyZXNzKGRhdGEuX2lkLCBkYXRhLCB0aGlzLmNvbGxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNyZWF0ZShtYXg6IG51bWJlciA9IDEwMCk6IFByb21pc2U8SVByb2dyZXNzPiB7XHJcbiAgICAgICAgaWYgKGlzTmFOKG1heCkgfHwgbWF4IDw9IDApIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXggcHJvZ3Jlc3MgdmFsdWUgbXVzdCBiZSBiaWdnZXIgdGhhbiB6ZXJvYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIGN1cnJlbnQ6IDAsXHJcbiAgICAgICAgICAgIG1heDogbWF4LFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBcIlwiLFxyXG4gICAgICAgICAgICBlcnJvcjogXCJcIixcclxuICAgICAgICAgICAgY2FuY2VsZWQ6IGZhbHNlXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uaW5zZXJ0T25lKGRhdGEpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZ3Jlc3MocmVzLmluc2VydGVkSWQsIGRhdGEsIHRoaXMuY29sbGVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcmVtb3ZlKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi5kZWxldGVPbmUoe19pZDogbmV3IE9iamVjdElkKGlkKX0pO1xyXG4gICAgICAgIHJldHVybiBpZDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgd2FpdEZvclByb2dyZXNzKGlkOiBzdHJpbmcsIGNiOiAoKSA9PiBQcm9taXNlPElQcm9ncmVzcz4sIGRlbGF5OiBudW1iZXIpOiBQcm9taXNlPElQcm9ncmVzcz4ge1xyXG4gICAgICAgIGxldCBpc0ZpbmlzaGVkID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHByb2dyZXNzOiBJUHJvZ3Jlc3MgPSBudWxsO1xyXG4gICAgICAgIGxldCB3YWl0VGltZTogbnVtYmVyID0gMDtcclxuICAgICAgICB3aGlsZSAoIWlzRmluaXNoZWQpIHtcclxuICAgICAgICAgICAgcHJvZ3Jlc3MgPSBhd2FpdCBjYigpO1xyXG4gICAgICAgICAgICB3YWl0VGltZSArPSBkZWxheTtcclxuICAgICAgICAgICAgaWYgKHByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvZ3Jlc3MuZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvZ3Jlc3MuZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaXNGaW5pc2hlZCA9IHByb2dyZXNzLnBlcmNlbnQgPj0gMTAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghaXNGaW5pc2hlZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhaXRUaW1lID49IHRoaXMuam9iTWFuLm1heFRpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb2dyZXNzIHdpdGggaWQ6ICR7aWR9IHByb2JhYmx5IG5ldmVyIHdpbGwgYmUgZmluaXNoZWQhYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBwcm9taXNlVGltZW91dChkZWxheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb2dyZXNzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Types } from "mongoose";
2
+ import { getModelForClass } from "@typegoose/typegoose";
3
+ export class BaseDoc {
4
+ /**
5
+ * Casts this to DocumentType<this> to allow using document methods in get/set-s
6
+ */
7
+ cast() {
8
+ return this;
9
+ }
10
+ /**
11
+ * Gets a pre-compiled model from typegoose cache by its class type
12
+ * @param type
13
+ */
14
+ model(type) {
15
+ return getModelForClass(type);
16
+ }
17
+ }
18
+ // @ts-ignore
19
+ export const PrimitiveArray = Types.Array;
20
+ export const DocumentArray = Types.DocumentArray;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbGl0aWVzL2Jhc2UtZG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxLQUFLLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxFQUFlLGdCQUFnQixFQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBR3JGLE1BQU0sT0FBZ0IsT0FBTztJQTZCekI7O09BRUc7SUFDSCxJQUFJO1FBQ0EsT0FBTyxJQUFXLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBNkIsSUFBTztRQUNyQyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDSjtBQUtELGFBQWE7QUFDYixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztBQUkxQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVmVHlwZSwgVHlwZXN9IGZyb20gXCJtb25nb29zZVwiO1xyXG5pbXBvcnQge0RvY3VtZW50VHlwZSwgZ2V0TW9kZWxGb3JDbGFzcywgUmV0dXJuTW9kZWxUeXBlfSBmcm9tIFwiQHR5cGVnb29zZS90eXBlZ29vc2VcIjtcclxuaW1wb3J0IHtDb25zdHJ1Y3Rvcn0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VEb2M8SURUeXBlIGV4dGVuZHMgUmVmVHlwZSA9IFR5cGVzLk9iamVjdElkPiB7XHJcblxyXG4gICAgX2lkPzogSURUeXBlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBnZXR0ZXIvc2V0dGVyIGRvZXNuJ3QgZXhpc3QgaWYgXCJzY2hlbWFPcHRpb25zLmlkXCIgYmVpbmcgc2V0IHRvIFwiZmFsc2VcIlxyXG4gICAgICovXHJcbiAgICBpZD86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZ2V0dGVyIGRvZXNuJ3QgZXhpc3QgaWYgXCJzY2hlbWFPcHRpb25zLnRpbWVzdGFtcHNcIiBiZWluZyBzZXQgdG8gXCJmYWxzZVwiXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZWRBdD86IERhdGU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGdldHRlciBkb2Vzbid0IGV4aXN0IGlmIFwic2NoZW1hT3B0aW9ucy50aW1lc3RhbXBzXCIgYmVpbmcgc2V0IHRvIFwiZmFsc2VcIlxyXG4gICAgICovXHJcbiAgICB1cGRhdGVkQXQ/OiBEYXRlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgRG9jdW1lbnQgYXMgSlNPTlxyXG4gICAgICovXHJcbiAgICB0b0pTT04/KCk6IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIERvY3VtZW50IGFzIGFuIE9iamVjdFxyXG4gICAgICovXHJcbiAgICB0b09iamVjdD8oKTogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FzdHMgdGhpcyB0byBEb2N1bWVudFR5cGU8dGhpcz4gdG8gYWxsb3cgdXNpbmcgZG9jdW1lbnQgbWV0aG9kcyBpbiBnZXQvc2V0LXNcclxuICAgICAqL1xyXG4gICAgY2FzdCgpOiBEb2N1bWVudFR5cGU8dGhpcz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzIGFzIGFueTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYSBwcmUtY29tcGlsZWQgbW9kZWwgZnJvbSB0eXBlZ29vc2UgY2FjaGUgYnkgaXRzIGNsYXNzIHR5cGVcclxuICAgICAqIEBwYXJhbSB0eXBlXHJcbiAgICAgKi9cclxuICAgIG1vZGVsPFQgZXh0ZW5kcyBDb25zdHJ1Y3Rvcjxhbnk+Pih0eXBlOiBUKTogUmV0dXJuTW9kZWxUeXBlPFQ+IHtcclxuICAgICAgICByZXR1cm4gZ2V0TW9kZWxGb3JDbGFzcyh0eXBlKTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gQHRzLWlnbm9yZVxyXG5leHBvcnQgdHlwZSBQcmltaXRpdmVBcnJheTxUPiA9IFR5cGVzLkFycmF5PFQ+O1xyXG5cclxuLy8gQHRzLWlnbm9yZVxyXG5leHBvcnQgY29uc3QgUHJpbWl0aXZlQXJyYXkgPSBUeXBlcy5BcnJheTtcclxuXHJcbmV4cG9ydCB0eXBlIERvY3VtZW50QXJyYXk8VCBleHRlbmRzIEJhc2VEb2M+ID0gVHlwZXMuRG9jdW1lbnRBcnJheTxEb2N1bWVudFR5cGU8VD4+O1xyXG5cclxuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyYXkgPSBUeXBlcy5Eb2N1bWVudEFycmF5O1xyXG4iXX0=
@@ -0,0 +1,225 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { model, Types } from "mongoose";
11
+ import { getValue as getMongoValue, setValue as setMongoValue } from "mongoose/lib/utils";
12
+ import { BadRequestError, createParamDecorator, HttpError } from "routing-controllers";
13
+ import { diContainers, isArray, isFunction, isObject, isString, valueToPromise } from "../utils";
14
+ const pluginsKey = "typegoose:plugins";
15
+ /**
16
+ * A mongoose/typegoose plugin to inject services from the main di container to a schema as virtuals
17
+ * @param schema
18
+ * @param services
19
+ */
20
+ export function injectServices(schema, services) {
21
+ const serviceMap = {};
22
+ if (!isObject(services)) {
23
+ throw new Error(`services object should be defined to inject services to schema!`);
24
+ }
25
+ Object.keys(services).forEach(prop => {
26
+ schema
27
+ .virtual(prop)
28
+ .get(() => {
29
+ const diContainer = diContainers.appContainer;
30
+ serviceMap[prop] = serviceMap[prop] || (!diContainer ? {} : diContainer.resolve(services[prop]));
31
+ return serviceMap[prop];
32
+ });
33
+ });
34
+ }
35
+ /**
36
+ * Decorates a property to inject a service with the help of the injectServices mongoose/typegoose plugin
37
+ * @param token optional InjectionToken to use
38
+ * @return PropertyDecorator
39
+ */
40
+ export function service(token) {
41
+ return (target, propertyKey) => {
42
+ var _a;
43
+ const propertyType = Reflect.getOwnMetadata("design:type", target, propertyKey);
44
+ const plugins = Array.from((_a = Reflect.getMetadata(pluginsKey, target.constructor)) !== null && _a !== void 0 ? _a : []);
45
+ let plugin = plugins.find(t => t.mongoosePlugin === injectServices);
46
+ if (!plugin) {
47
+ plugin = { mongoosePlugin: injectServices, options: {} };
48
+ plugins.push(plugin);
49
+ }
50
+ plugin.options = Object.assign(plugin.options || {}, { [propertyKey]: token !== null && token !== void 0 ? token : propertyType });
51
+ Reflect.defineMetadata(pluginsKey, plugins, target.constructor);
52
+ };
53
+ }
54
+ /**
55
+ * Paginate using a typegoose model using a simple where query and pagination params
56
+ * @param model Typegoose model
57
+ * @param where Simple query to filter the results
58
+ * @param params Pagination params
59
+ */
60
+ export function paginate(model, where, params) {
61
+ return model.countDocuments(where).then(count => {
62
+ let query = model.find(where);
63
+ if (isString(params.sort)) {
64
+ query = query.sort(params.sort);
65
+ }
66
+ if (isArray(params.populate)) {
67
+ params.populate.forEach(field => {
68
+ query = query.populate(field);
69
+ });
70
+ }
71
+ return (params.limit > 0 ? query.skip(params.page * params.limit).limit(params.limit) : query).then(items => {
72
+ const meta = { total: count };
73
+ return { count, items, meta };
74
+ });
75
+ });
76
+ }
77
+ export function lookupStages(from, localField, as = null, foreignField = "_id", shouldUnwind = true) {
78
+ as = as || localField.replace("Id", "");
79
+ const stages = [
80
+ {
81
+ $lookup: {
82
+ from,
83
+ localField,
84
+ foreignField,
85
+ as
86
+ }
87
+ },
88
+ {
89
+ $unwind: {
90
+ path: `$${as}`,
91
+ preserveNullAndEmptyArrays: true
92
+ }
93
+ }
94
+ ];
95
+ if (!shouldUnwind) {
96
+ stages.splice(1, 1);
97
+ }
98
+ return stages;
99
+ }
100
+ export function letsLookupStage(from, pipeline, as = null, letFields = null) {
101
+ as = as || from;
102
+ letFields = letFields || { id: "$_id" };
103
+ return {
104
+ $lookup: {
105
+ from,
106
+ let: letFields,
107
+ pipeline,
108
+ as
109
+ }
110
+ };
111
+ }
112
+ export function matchStage(match) {
113
+ return { $match: match };
114
+ }
115
+ export function matchField(field, filter, when) {
116
+ return { field, filter, when };
117
+ }
118
+ export function matchFieldStages(...fields) {
119
+ const match = {};
120
+ fields.forEach(field => {
121
+ if (field.when) {
122
+ match[field.field] = field.filter;
123
+ }
124
+ });
125
+ return Object.keys(match).length > 0 ? [matchStage(match)] : [];
126
+ }
127
+ export function projectStage(fields) {
128
+ return { $project: fields };
129
+ }
130
+ export function unwindStage(fieldOrOpts) {
131
+ return { $unwind: fieldOrOpts };
132
+ }
133
+ export function hydratePopulated(modelType, json) {
134
+ let object = modelType.hydrate(json);
135
+ for (const [path, obj] of Object.entries(modelType.schema.obj)) {
136
+ let { ref, type } = obj;
137
+ if (Array.isArray(type) && type.length > 0) {
138
+ ref = type[0].ref;
139
+ }
140
+ if (!ref)
141
+ continue;
142
+ const value = getMongoValue(path, json);
143
+ const hydrateVal = val => {
144
+ if (val == null || val instanceof Types.ObjectId)
145
+ return val;
146
+ return hydratePopulated(model(ref), val);
147
+ };
148
+ if (Array.isArray(value)) {
149
+ setMongoValue(path, value.map(hydrateVal), object);
150
+ continue;
151
+ }
152
+ setMongoValue(path, hydrateVal(value), object);
153
+ }
154
+ return object;
155
+ }
156
+ export function paginateAggregations(model, aggregations, params, metaProjection = {}) {
157
+ return __awaiter(this, void 0, void 0, function* () {
158
+ const sortField = !isString(params.sort) || !params.sort ? null : (params.sort.startsWith("-") ? params.sort.substr(1) : params.sort);
159
+ const sortAggregation = !sortField ? [] : [{
160
+ $sort: { [sortField]: sortField == params.sort ? 1 : -1 }
161
+ }];
162
+ const result = yield model.aggregate([
163
+ ...aggregations,
164
+ ...sortAggregation,
165
+ {
166
+ $group: {
167
+ _id: "results",
168
+ result: { $push: "$$CURRENT" }
169
+ }
170
+ },
171
+ {
172
+ $project: {
173
+ _id: 0,
174
+ items: params.limit > 0 ? { $slice: ["$result", params.page * params.limit, params.limit] } : "$result",
175
+ count: { $size: "$result" },
176
+ meta: Object.assign({ total: { $size: "$result" } }, metaProjection)
177
+ }
178
+ }
179
+ ]);
180
+ const pagination = result[0];
181
+ if (!pagination) {
182
+ return { items: [], count: 0, meta: { total: 0 } };
183
+ }
184
+ pagination.items = pagination.items.map(i => hydratePopulated(model, i));
185
+ return pagination;
186
+ });
187
+ }
188
+ export function ResolveEntity(model, extraCheck) {
189
+ const modelName = model.modelName;
190
+ const paramName = modelName.toLowerCase();
191
+ return createParamDecorator({
192
+ required: false,
193
+ value: (action) => __awaiter(this, void 0, void 0, function* () {
194
+ const req = action.request;
195
+ const token = req.header(`x-${paramName}-token`);
196
+ const id = req.params[`${paramName}Id`];
197
+ if (!id && !token) {
198
+ throw new BadRequestError(`${modelName} id or token should be defined!`);
199
+ }
200
+ const query = !token
201
+ ? model.findById(id)
202
+ : model.findOne({ token });
203
+ let doc = null;
204
+ if (isFunction(extraCheck)) {
205
+ try {
206
+ doc = yield valueToPromise(extraCheck(query, action));
207
+ }
208
+ catch (e) {
209
+ throw new BadRequestError(`${modelName} check error: ${e.message || e}`);
210
+ }
211
+ }
212
+ else {
213
+ doc = yield query;
214
+ }
215
+ if (!doc) {
216
+ throw new HttpError(404, !token
217
+ ? `${modelName} could not be found with id: ${id}`
218
+ : `${modelName} could not be found with token: ${token}`);
219
+ }
220
+ action.request[paramName] = doc;
221
+ return doc;
222
+ })
223
+ });
224
+ }
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29vc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbGl0aWVzL21vbmdvb3NlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBd0IsS0FBSyxFQUF1QyxLQUFLLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbEcsT0FBTyxFQUFDLFFBQVEsSUFBSSxhQUFhLEVBQUUsUUFBUSxJQUFJLGFBQWEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXhGLE9BQU8sRUFBUyxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFZN0YsT0FBTyxFQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRS9GLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDO0FBT3ZDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQW1CLEVBQUUsUUFBa0Q7SUFDbEcsTUFBTSxVQUFVLEdBQTRCLEVBQUUsQ0FBQztJQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQTtLQUNyRjtJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2pDLE1BQU07YUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDO2FBQ2IsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUM7WUFDOUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcs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LElBQUksZUFBZSxDQUFDLEdBQUcsU0FBUyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUM1RTthQUNKO2lCQUFNO2dCQUNILEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQzthQUNyQjtZQUNELElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ04sTUFBTSxJQUFJLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLO29CQUMzQixDQUFDLENBQUMsR0FBRyxTQUFTLGdDQUFnQyxFQUFFLEVBQUU7b0JBQ2xELENBQUMsQ0FBQyxHQUFHLFNBQVMsbUNBQW1DLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDakU7WUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUNoQyxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsQ0FBQTtLQUNKLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RvY3VtZW50LCBGaWx0ZXJRdWVyeSwgbW9kZWwsIE1vZGVsLCBQaXBlbGluZVN0YWdlLCBRdWVyeSwgU2NoZW1hLCBUeXBlc30gZnJvbSBcIm1vbmdvb3NlXCI7XHJcbmltcG9ydCB7Z2V0VmFsdWUgYXMgZ2V0TW9uZ29WYWx1ZSwgc2V0VmFsdWUgYXMgc2V0TW9uZ29WYWx1ZX0gZnJvbSBcIm1vbmdvb3NlL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQge0RvY3VtZW50VHlwZSwgUmV0dXJuTW9kZWxUeXBlfSBmcm9tIFwiQHR5cGVnb29zZS90eXBlZ29vc2VcIjtcclxuaW1wb3J0IHtBY3Rpb24sIEJhZFJlcXVlc3RFcnJvciwgY3JlYXRlUGFyYW1EZWNvcmF0b3IsIEh0dHBFcnJvcn0gZnJvbSBcInJvdXRpbmctY29udHJvbGxlcnNcIjtcclxuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7XHJcbiAgICBJTWF0Y2hGaWVsZCxcclxuICAgIEluZmVyR2VuZXJpYyxcclxuICAgIElQYWdpbmF0aW9uQmFzZSxcclxuICAgIElQYWdpbmF0aW9uUGFyYW1zLFxyXG4gICAgSVByb2plY3RPcHRpb25zLFxyXG4gICAgSVJlcXVlc3QsXHJcbiAgICBJVW53aW5kT3B0aW9ucyxcclxuICAgIFR5cGVcclxufSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7ZGlDb250YWluZXJzLCBpc0FycmF5LCBpc0Z1bmN0aW9uLCBpc09iamVjdCwgaXNTdHJpbmcsIHZhbHVlVG9Qcm9taXNlfSBmcm9tIFwiLi4vdXRpbHNcIjtcclxuXHJcbmNvbnN0IHBsdWdpbnNLZXkgPSBcInR5cGVnb29zZTpwbHVnaW5zXCI7XHJcblxyXG5pbnRlcmZhY2UgSVBsdWdpbldpdGhPcHRpb25zIHtcclxuICAgIG1vbmdvb3NlUGx1Z2luOiBGdW5jdGlvbjtcclxuICAgIG9wdGlvbnM6IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEEgbW9uZ29vc2UvdHlwZWdvb3NlIHBsdWdpbiB0byBpbmplY3Qgc2VydmljZXMgZnJvbSB0aGUgbWFpbiBkaSBjb250YWluZXIgdG8gYSBzY2hlbWEgYXMgdmlydHVhbHNcclxuICogQHBhcmFtIHNjaGVtYVxyXG4gKiBAcGFyYW0gc2VydmljZXNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RTZXJ2aWNlcyhzY2hlbWE6IFNjaGVtYTxhbnk+LCBzZXJ2aWNlcz86IHsgW3Byb3A6IHN0cmluZ106IEluamVjdGlvblRva2VuPGFueT4gfSk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VydmljZU1hcDogeyBbcHJvcDogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICAgIGlmICghaXNPYmplY3Qoc2VydmljZXMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBzZXJ2aWNlcyBvYmplY3Qgc2hvdWxkIGJlIGRlZmluZWQgdG8gaW5qZWN0IHNlcnZpY2VzIHRvIHNjaGVtYSFgKVxyXG4gICAgfVxyXG4gICAgT2JqZWN0LmtleXMoc2VydmljZXMpLmZvckVhY2gocHJvcCA9PiB7XHJcbiAgICAgICAgc2NoZW1hXHJcbiAgICAgICAgICAgIC52aXJ0dWFsKHByb3ApXHJcbiAgICAgICAgICAgIC5nZXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGlDb250YWluZXIgPSBkaUNvbnRhaW5lcnMuYXBwQ29udGFpbmVyO1xyXG4gICAgICAgICAgICAgICAgc2VydmljZU1hcFtwcm9wXSA9IHNlcnZpY2VNYXBbcHJvcF0gfHwgKCFkaUNvbnRhaW5lciA/IHt9IDogZGlDb250YWluZXIucmVzb2x2ZShzZXJ2aWNlc1twcm9wXSkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2VNYXBbcHJvcF07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0ZXMgYSBwcm9wZXJ0eSB0byBpbmplY3QgYSBzZXJ2aWNlIHdpdGggdGhlIGhlbHAgb2YgdGhlIGluamVjdFNlcnZpY2VzIG1vbmdvb3NlL3R5cGVnb29zZSBwbHVnaW5cclxuICogQHBhcmFtIHRva2VuIG9wdGlvbmFsIEluamVjdGlvblRva2VuIHRvIHVzZVxyXG4gKiBAcmV0dXJuIFByb3BlcnR5RGVjb3JhdG9yXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2VydmljZSh0b2tlbj86IEluamVjdGlvblRva2VuPGFueT4pOiBQcm9wZXJ0eURlY29yYXRvciB7XHJcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogdm9pZCA9PiB7XHJcbiAgICAgICAgY29uc3QgcHJvcGVydHlUeXBlID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG4gICAgICAgIGNvbnN0IHBsdWdpbnMgPSBBcnJheS5mcm9tKFJlZmxlY3QuZ2V0TWV0YWRhdGEocGx1Z2luc0tleSwgdGFyZ2V0LmNvbnN0cnVjdG9yKSA/PyBbXSkgYXMgSVBsdWdpbldpdGhPcHRpb25zW107XHJcbiAgICAgICAgbGV0IHBsdWdpbiA9IHBsdWdpbnMuZmluZCh0ID0+IHQubW9uZ29vc2VQbHVnaW4gPT09IGluamVjdFNlcnZpY2VzKTtcclxuICAgICAgICBpZiAoIXBsdWdpbikge1xyXG4gICAgICAgICAgICBwbHVnaW4gPSB7IG1vbmdvb3NlUGx1Z2luOiBpbmplY3RTZXJ2aWNlcywgb3B0aW9uczoge30gfTtcclxuICAgICAgICAgICAgcGx1Z2lucy5wdXNoKHBsdWdpbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBsdWdpbi5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihwbHVnaW4ub3B0aW9ucyB8fCB7fSwge1twcm9wZXJ0eUtleV06IHRva2VuID8/IHByb3BlcnR5VHlwZX0pO1xyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEocGx1Z2luc0tleSwgcGx1Z2lucywgdGFyZ2V0LmNvbnN0cnVjdG9yKTtcclxuICAgIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQYWdpbmF0ZSB1c2luZyBhIHR5cGVnb29zZSBtb2RlbCB1c2luZyBhIHNpbXBsZSB3aGVyZSBxdWVyeSBhbmQgcGFnaW5hdGlvbiBwYXJhbXNcclxuICogQHBhcmFtIG1vZGVsIFR5cGVnb29zZSBtb2RlbFxyXG4gKiBAcGFyYW0gd2hlcmUgU2ltcGxlIHF1ZXJ5IHRvIGZpbHRlciB0aGUgcmVzdWx0c1xyXG4gKiBAcGFyYW0gcGFyYW1zIFBhZ2luYXRpb24gcGFyYW1zXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcGFnaW5hdGU8VCBleHRlbmRzIFR5cGU8YW55PiwgVSA9IEluZmVyR2VuZXJpYzxUPj4obW9kZWw6IFJldHVybk1vZGVsVHlwZTxUPiwgd2hlcmU6IEZpbHRlclF1ZXJ5PERvY3VtZW50VHlwZTxVPj4sIHBhcmFtczogSVBhZ2luYXRpb25QYXJhbXMpOiBQcm9taXNlPElQYWdpbmF0aW9uQmFzZTxEb2N1bWVudFR5cGU8VT4+PiB7XHJcbiAgICByZXR1cm4gbW9kZWwuY291bnREb2N1bWVudHMod2hlcmUpLnRoZW4oY291bnQgPT4ge1xyXG4gICAgICAgIGxldCBxdWVyeTogUXVlcnk8YW55LCBhbnk+ID0gbW9kZWwuZmluZCh3aGVyZSk7XHJcbiAgICAgICAgaWYgKGlzU3RyaW5nKHBhcmFtcy5zb3J0KSkge1xyXG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5LnNvcnQocGFyYW1zLnNvcnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNBcnJheShwYXJhbXMucG9wdWxhdGUpKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcy5wb3B1bGF0ZS5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkucG9wdWxhdGUoZmllbGQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIChwYXJhbXMubGltaXQgPiAwID8gcXVlcnkuc2tpcChwYXJhbXMucGFnZSAqIHBhcmFtcy5saW1pdCkubGltaXQocGFyYW1zLmxpbWl0KSA6IHF1ZXJ5KS50aGVuKGl0ZW1zID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbWV0YSA9IHt0b3RhbDogY291bnR9O1xyXG4gICAgICAgICAgICByZXR1cm4ge2NvdW50LCBpdGVtcywgbWV0YX07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvb2t1cFN0YWdlcyhmcm9tOiBzdHJpbmcsIGxvY2FsRmllbGQ6IHN0cmluZywgYXM6IHN0cmluZyA9IG51bGwsIGZvcmVpZ25GaWVsZDogc3RyaW5nID0gXCJfaWRcIiwgc2hvdWxkVW53aW5kOiBib29sZWFuID0gdHJ1ZSk6IFtQaXBlbGluZVN0YWdlLkxvb2t1cCwgUGlwZWxpbmVTdGFnZS5VbndpbmRdIHtcclxuICAgIGFzID0gYXMgfHwgbG9jYWxGaWVsZC5yZXBsYWNlKFwiSWRcIiwgXCJcIik7XHJcbiAgICBjb25zdCBzdGFnZXM6IFtQaXBlbGluZVN0YWdlLkxvb2t1cCwgUGlwZWxpbmVTdGFnZS5VbndpbmRdID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgJGxvb2t1cDoge1xyXG4gICAgICAgICAgICAgICAgZnJvbSxcclxuICAgICAgICAgICAgICAgIGxvY2FsRmllbGQsXHJcbiAgICAgICAgICAgICAgICBmb3JlaWduRmllbGQsXHJcbiAgICAgICAgICAgICAgICBhc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgICR1bndpbmQ6IHtcclxuICAgICAgICAgICAgICAgIHBhdGg6IGAkJHthc31gLFxyXG4gICAgICAgICAgICAgICAgcHJlc2VydmVOdWxsQW5kRW1wdHlBcnJheXM6IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIF07XHJcbiAgICBpZiAoIXNob3VsZFVud2luZCkge1xyXG4gICAgICAgIHN0YWdlcy5zcGxpY2UoMSwgMSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RhZ2VzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbGV0c0xvb2t1cFN0YWdlKGZyb206IHN0cmluZywgcGlwZWxpbmU6IEV4Y2x1ZGU8UGlwZWxpbmVTdGFnZSwgUGlwZWxpbmVTdGFnZS5NZXJnZSB8IFBpcGVsaW5lU3RhZ2UuT3V0IHwgUGlwZWxpbmVTdGFnZS5TZWFyY2g+W10sIGFzOiBzdHJpbmcgPSBudWxsLCBsZXRGaWVsZHM6IGFueSA9IG51bGwpOiBQaXBlbGluZVN0YWdlLkxvb2t1cCB7XHJcbiAgICBhcyA9IGFzIHx8IGZyb207XHJcbiAgICBsZXRGaWVsZHMgPSBsZXRGaWVsZHMgfHwge2lkOiBcIiRfaWRcIn07XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgICRsb29rdXA6IHtcclxuICAgICAgICAgICAgZnJvbSxcclxuICAgICAgICAgICAgbGV0OiBsZXRGaWVsZHMsXHJcbiAgICAgICAgICAgIHBpcGVsaW5lLFxyXG4gICAgICAgICAgICBhc1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFN0YWdlKG1hdGNoOiBGaWx0ZXJRdWVyeTxhbnk+KTogUGlwZWxpbmVTdGFnZS5NYXRjaCB7XHJcbiAgICByZXR1cm4geyRtYXRjaDogbWF0Y2h9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hGaWVsZChmaWVsZDogc3RyaW5nLCBmaWx0ZXI6IGFueSwgd2hlbjogYm9vbGVhbik6IElNYXRjaEZpZWxkIHtcclxuICAgIHJldHVybiB7ZmllbGQsIGZpbHRlciwgd2hlbn07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXRjaEZpZWxkU3RhZ2VzKC4uLmZpZWxkczogSU1hdGNoRmllbGRbXSk6IFJlYWRvbmx5QXJyYXk8UGlwZWxpbmVTdGFnZS5NYXRjaD4ge1xyXG4gICAgY29uc3QgbWF0Y2ggPSB7fTtcclxuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgICBpZiAoZmllbGQud2hlbikge1xyXG4gICAgICAgICAgICBtYXRjaFtmaWVsZC5maWVsZF0gPSBmaWVsZC5maWx0ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobWF0Y2gpLmxlbmd0aCA+IDAgPyBbbWF0Y2hTdGFnZShtYXRjaCldIDogW107XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm9qZWN0U3RhZ2UoZmllbGRzOiBJUHJvamVjdE9wdGlvbnMpOiBQaXBlbGluZVN0YWdlLlByb2plY3Qge1xyXG4gICAgcmV0dXJuIHskcHJvamVjdDogZmllbGRzfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVud2luZFN0YWdlKGZpZWxkT3JPcHRzOiBzdHJpbmcgfCBJVW53aW5kT3B0aW9ucyk6IFBpcGVsaW5lU3RhZ2UuVW53aW5kIHtcclxuICAgIHJldHVybiB7JHVud2luZDogZmllbGRPck9wdHN9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaHlkcmF0ZVBvcHVsYXRlZDxUIGV4dGVuZHMgRG9jdW1lbnQ+KG1vZGVsVHlwZTogTW9kZWw8VD4sIGpzb246IGFueSk6IFQge1xyXG4gICAgbGV0IG9iamVjdCA9IG1vZGVsVHlwZS5oeWRyYXRlKGpzb24pO1xyXG5cclxuICAgIGZvciAoY29uc3QgW3BhdGgsIG9ial0gb2YgT2JqZWN0LmVudHJpZXMobW9kZWxUeXBlLnNjaGVtYS5vYmopKSB7XHJcbiAgICAgICAgbGV0IHtyZWYsIHR5cGV9ID0gb2JqIGFzIGFueTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0eXBlKSAmJiB0eXBlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmVmID0gdHlwZVswXS5yZWY7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghcmVmKSBjb250aW51ZTtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldE1vbmdvVmFsdWUocGF0aCwganNvbik7XHJcbiAgICAgICAgY29uc3QgaHlkcmF0ZVZhbCA9IHZhbCA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2YWwgPT0gbnVsbCB8fCB2YWwgaW5zdGFuY2VvZiBUeXBlcy5PYmplY3RJZCkgcmV0dXJuIHZhbDtcclxuICAgICAgICAgICAgcmV0dXJuIGh5ZHJhdGVQb3B1bGF0ZWQobW9kZWwocmVmKSBhcyBhbnksIHZhbCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgc2V0TW9uZ29WYWx1ZShwYXRoLCB2YWx1ZS5tYXAoaHlkcmF0ZVZhbCksIG9iamVjdCk7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRNb25nb1ZhbHVlKHBhdGgsIGh5ZHJhdGVWYWwodmFsdWUpLCBvYmplY3QpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvYmplY3Q7XHJcblxyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFnaW5hdGVBZ2dyZWdhdGlvbnM8VCBleHRlbmRzIFR5cGU8YW55PiwgVSA9IEluZmVyR2VuZXJpYzxUPj4obW9kZWw6IFJldHVybk1vZGVsVHlwZTxUPiwgYWdncmVnYXRpb25zOiBQaXBlbGluZVN0YWdlW10sIHBhcmFtczogSVBhZ2luYXRpb25QYXJhbXMsIG1ldGFQcm9qZWN0aW9uOiBhbnkgPSB7fSk6IFByb21pc2U8SVBhZ2luYXRpb25CYXNlPERvY3VtZW50VHlwZTxVPj4+IHtcclxuICAgIGNvbnN0IHNvcnRGaWVsZCA9ICFpc1N0cmluZyhwYXJhbXMuc29ydCkgfHwgIXBhcmFtcy5zb3J0ID8gbnVsbCA6IChwYXJhbXMuc29ydC5zdGFydHNXaXRoKFwiLVwiKSA/IHBhcmFtcy5zb3J0LnN1YnN0cigxKSA6IHBhcmFtcy5zb3J0KTtcclxuICAgIGNvbnN0IHNvcnRBZ2dyZWdhdGlvbjogUGlwZWxpbmVTdGFnZS5Tb3J0W10gPSAhc29ydEZpZWxkID8gW10gOiBbe1xyXG4gICAgICAgICRzb3J0OiB7W3NvcnRGaWVsZF06IHNvcnRGaWVsZCA9PSBwYXJhbXMuc29ydCA/IDEgOiAtMX1cclxuICAgIH1dO1xyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwuYWdncmVnYXRlKFtcclxuICAgICAgICAuLi5hZ2dyZWdhdGlvbnMsXHJcbiAgICAgICAgLi4uc29ydEFnZ3JlZ2F0aW9uLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgJGdyb3VwOiB7XHJcbiAgICAgICAgICAgICAgICBfaWQ6IFwicmVzdWx0c1wiLFxyXG4gICAgICAgICAgICAgICAgcmVzdWx0OiB7JHB1c2g6IFwiJCRDVVJSRU5UXCJ9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgJHByb2plY3Q6IHtcclxuICAgICAgICAgICAgICAgIF9pZDogMCxcclxuICAgICAgICAgICAgICAgIGl0ZW1zOiBwYXJhbXMubGltaXQgPiAwID8geyRzbGljZTogW1wiJHJlc3VsdFwiLCBwYXJhbXMucGFnZSAqIHBhcmFtcy5saW1pdCwgcGFyYW1zLmxpbWl0XX0gOiBcIiRyZXN1bHRcIixcclxuICAgICAgICAgICAgICAgIGNvdW50OiB7JHNpemU6IFwiJHJlc3VsdFwifSxcclxuICAgICAgICAgICAgICAgIG1ldGE6IHtcclxuICAgICAgICAgICAgICAgICAgICB0b3RhbDogeyRzaXplOiBcIiRyZXN1bHRcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgLi4ubWV0YVByb2plY3Rpb25cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIF0pO1xyXG4gICAgY29uc3QgcGFnaW5hdGlvbiA9IHJlc3VsdFswXSBhcyBJUGFnaW5hdGlvbkJhc2U8RG9jdW1lbnRUeXBlPFU+PjtcclxuICAgIGlmICghcGFnaW5hdGlvbikge1xyXG4gICAgICAgIHJldHVybiB7aXRlbXM6IFtdLCBjb3VudDogMCwgbWV0YToge3RvdGFsOiAwfX07XHJcbiAgICB9XHJcbiAgICBwYWdpbmF0aW9uLml0ZW1zID0gcGFnaW5hdGlvbi5pdGVtcy5tYXAoaSA9PiBoeWRyYXRlUG9wdWxhdGVkKG1vZGVsLCBpKSBhcyBhbnkpO1xyXG4gICAgcmV0dXJuIHBhZ2luYXRpb247XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBSZXNvbHZlRW50aXR5PFQgZXh0ZW5kcyBUeXBlPGFueT4sIFUgPSBJbmZlckdlbmVyaWM8VD4+KG1vZGVsOiBSZXR1cm5Nb2RlbFR5cGU8VD4sIGV4dHJhQ2hlY2s/OiAocXVlcnk6IFF1ZXJ5PERvY3VtZW50VHlwZTxVPiwgYW55PiwgYWN0aW9uOiBBY3Rpb24pID0+IFByb21pc2U8RG9jdW1lbnRUeXBlPFU+Pik6IFBhcmFtZXRlckRlY29yYXRvciB7XHJcbiAgICBjb25zdCBtb2RlbE5hbWUgPSBtb2RlbC5tb2RlbE5hbWU7XHJcbiAgICBjb25zdCBwYXJhbU5hbWUgPSBtb2RlbE5hbWUudG9Mb3dlckNhc2UoKTtcclxuICAgIHJldHVybiBjcmVhdGVQYXJhbURlY29yYXRvcih7XHJcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgICAgIHZhbHVlOiBhc3luYyBhY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZXEgPSBhY3Rpb24ucmVxdWVzdCBhcyBJUmVxdWVzdDtcclxuICAgICAgICAgICAgY29uc3QgdG9rZW4gPSByZXEuaGVhZGVyKGB4LSR7cGFyYW1OYW1lfS10b2tlbmApO1xyXG4gICAgICAgICAgICBjb25zdCBpZCA9IHJlcS5wYXJhbXNbYCR7cGFyYW1OYW1lfUlkYF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICBpZiAoIWlkICYmICF0b2tlbikge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihgJHttb2RlbE5hbWV9IGlkIG9yIHRva2VuIHNob3VsZCBiZSBkZWZpbmVkIWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gIXRva2VuXHJcbiAgICAgICAgICAgICAgICA/IG1vZGVsLmZpbmRCeUlkKGlkKVxyXG4gICAgICAgICAgICAgICAgOiBtb2RlbC5maW5kT25lKHt0b2tlbn0gYXMgYW55KTtcclxuICAgICAgICAgICAgbGV0IGRvYzogRG9jdW1lbnQgPSBudWxsO1xyXG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihleHRyYUNoZWNrKSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBkb2MgPSBhd2FpdCB2YWx1ZVRvUHJvbWlzZShleHRyYUNoZWNrKHF1ZXJ5LCBhY3Rpb24pKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKGAke21vZGVsTmFtZX0gY2hlY2sgZXJyb3I6ICR7ZS5tZXNzYWdlIHx8IGV9YCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkb2MgPSBhd2FpdCBxdWVyeTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIWRvYykge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEh0dHBFcnJvcig0MDQsICF0b2tlblxyXG4gICAgICAgICAgICAgICAgICAgID8gYCR7bW9kZWxOYW1lfSBjb3VsZCBub3QgYmUgZm91bmQgd2l0aCBpZDogJHtpZH1gXHJcbiAgICAgICAgICAgICAgICAgICAgOiBgJHttb2RlbE5hbWV9IGNvdWxkIG5vdCBiZSBmb3VuZCB3aXRoIHRva2VuOiAke3Rva2VufWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGFjdGlvbi5yZXF1ZXN0W3BhcmFtTmFtZV0gPSBkb2M7XHJcbiAgICAgICAgICAgIHJldHVybiBkb2M7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbn1cclxuIl19