@decaf-ts/db-decorators 0.4.34 → 0.5.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.
- package/dist/db-decorators.cjs +1823 -0
- package/dist/db-decorators.esm.cjs +1761 -0
- package/lib/esm/identity/decorators.js +1 -2
- package/lib/esm/identity/index.js +1 -2
- package/lib/esm/identity/utils.js +1 -2
- package/lib/esm/index.js +1 -2
- package/lib/esm/interfaces/BulkCrudOperator.js +1 -2
- package/lib/esm/interfaces/Contextual.js +1 -2
- package/lib/esm/interfaces/CrudOperator.js +1 -2
- package/lib/esm/interfaces/IRepository.js +1 -2
- package/lib/esm/interfaces/index.js +1 -2
- package/lib/esm/model/constants.js +1 -2
- package/lib/esm/model/decorators.js +1 -2
- package/lib/esm/model/index.js +1 -2
- package/lib/esm/model/model.js +1 -2
- package/lib/esm/model/validation.js +1 -2
- package/lib/esm/operations/Operations.js +1 -2
- package/lib/esm/operations/OperationsRegistry.js +1 -2
- package/lib/esm/operations/constants.js +1 -2
- package/lib/esm/operations/decorators.js +1 -2
- package/lib/esm/operations/index.js +1 -2
- package/lib/esm/operations/types.js +1 -2
- package/lib/esm/repository/BaseRepository.js +1 -2
- package/lib/esm/repository/Context.js +1 -2
- package/lib/esm/repository/DataCache.js +1 -2
- package/lib/esm/repository/Repository.js +1 -2
- package/lib/esm/repository/errors.js +1 -2
- package/lib/esm/repository/index.js +1 -2
- package/lib/esm/repository/utils.js +1 -2
- package/lib/esm/repository/wrappers.js +1 -2
- package/lib/esm/validation/constants.js +1 -2
- package/lib/esm/validation/decorators.js +1 -2
- package/lib/esm/validation/index.js +1 -2
- package/lib/esm/validation/validation.js +1 -2
- package/lib/esm/validation/validators/ReadOnlyValidator.js +1 -2
- package/lib/esm/validation/validators/TimestampValidator.js +1 -2
- package/lib/esm/validation/validators/UpdateValidator.js +1 -2
- package/lib/esm/validation/validators/index.js +1 -2
- package/lib/identity/decorators.cjs +1 -2
- package/lib/identity/decorators.d.ts +1 -0
- package/lib/identity/index.cjs +1 -2
- package/lib/identity/index.d.ts +2 -0
- package/lib/identity/utils.cjs +1 -2
- package/lib/identity/utils.d.ts +34 -0
- package/lib/index.cjs +1 -2
- package/lib/index.d.ts +33 -0
- package/lib/interfaces/BulkCrudOperator.cjs +1 -2
- package/lib/interfaces/BulkCrudOperator.d.ts +7 -0
- package/lib/interfaces/Contextual.cjs +1 -2
- package/lib/interfaces/Contextual.d.ts +6 -0
- package/lib/interfaces/CrudOperator.cjs +1 -2
- package/lib/interfaces/CrudOperator.d.ts +42 -0
- package/lib/interfaces/IRepository.cjs +1 -2
- package/lib/interfaces/IRepository.d.ts +11 -0
- package/lib/interfaces/index.cjs +1 -2
- package/lib/interfaces/index.d.ts +4 -0
- package/lib/model/constants.cjs +1 -2
- package/lib/model/constants.d.ts +37 -0
- package/lib/model/decorators.cjs +1 -2
- package/lib/model/decorators.d.ts +50 -0
- package/lib/model/index.cjs +1 -2
- package/lib/model/index.d.ts +4 -0
- package/lib/model/model.cjs +1 -2
- package/lib/model/model.d.ts +112 -0
- package/lib/model/validation.cjs +1 -2
- package/lib/model/validation.d.ts +14 -0
- package/lib/operations/Operations.cjs +1 -2
- package/lib/operations/Operations.d.ts +19 -0
- package/lib/operations/OperationsRegistry.cjs +1 -2
- package/lib/operations/OperationsRegistry.d.ts +34 -0
- package/lib/operations/constants.cjs +1 -2
- package/lib/operations/constants.d.ts +24 -0
- package/lib/operations/decorators.cjs +1 -2
- package/lib/operations/decorators.d.ts +193 -0
- package/lib/operations/index.cjs +1 -2
- package/lib/operations/index.d.ts +5 -0
- package/lib/operations/types.cjs +1 -2
- package/lib/operations/types.d.ts +29 -0
- package/lib/repository/BaseRepository.cjs +1 -2
- package/lib/repository/BaseRepository.d.ts +36 -0
- package/lib/repository/Context.cjs +1 -2
- package/lib/repository/Context.d.ts +17 -0
- package/lib/repository/DataCache.cjs +1 -2
- package/lib/repository/DataCache.d.ts +9 -0
- package/lib/repository/Repository.cjs +1 -2
- package/lib/repository/Repository.d.ts +10 -0
- package/lib/repository/errors.cjs +1 -2
- package/lib/repository/errors.d.ts +69 -0
- package/lib/repository/index.cjs +1 -2
- package/lib/repository/index.d.ts +7 -0
- package/lib/repository/utils.cjs +1 -2
- package/lib/repository/utils.d.ts +62 -0
- package/lib/repository/wrappers.cjs +1 -2
- package/lib/repository/wrappers.d.ts +38 -0
- package/lib/validation/constants.cjs +1 -2
- package/lib/validation/constants.d.ts +30 -0
- package/lib/validation/decorators.cjs +1 -2
- package/lib/validation/decorators.d.ts +58 -0
- package/lib/validation/index.cjs +1 -2
- package/lib/validation/index.d.ts +4 -0
- package/lib/validation/validation.cjs +1 -2
- package/lib/validation/validation.d.ts +41 -0
- package/lib/validation/validators/ReadOnlyValidator.cjs +1 -2
- package/lib/validation/validators/ReadOnlyValidator.d.ts +23 -0
- package/lib/validation/validators/TimestampValidator.cjs +1 -2
- package/lib/validation/validators/TimestampValidator.d.ts +14 -0
- package/lib/validation/validators/UpdateValidator.cjs +1 -2
- package/lib/validation/validators/UpdateValidator.d.ts +23 -0
- package/lib/validation/validators/index.cjs +1 -2
- package/lib/validation/validators/index.d.ts +3 -0
- package/package.json +23 -36
- package/dist/db-decorators.js +0 -2
- package/dist/db-decorators.js.LICENSE.txt +0 -14
- package/dist/esm/db-decorators.js +0 -2
- package/dist/esm/db-decorators.js.LICENSE.txt +0 -14
- /package/{dist/types → lib/esm}/identity/decorators.d.ts +0 -0
- /package/{dist/types → lib/esm}/identity/index.d.ts +0 -0
- /package/{dist/types → lib/esm}/identity/utils.d.ts +0 -0
- /package/{dist/types → lib/esm}/index.d.ts +0 -0
- /package/{dist/types → lib/esm}/interfaces/BulkCrudOperator.d.ts +0 -0
- /package/{dist/types → lib/esm}/interfaces/Contextual.d.ts +0 -0
- /package/{dist/types → lib/esm}/interfaces/CrudOperator.d.ts +0 -0
- /package/{dist/types → lib/esm}/interfaces/IRepository.d.ts +0 -0
- /package/{dist/types → lib/esm}/interfaces/index.d.ts +0 -0
- /package/{dist/types → lib/esm}/model/constants.d.ts +0 -0
- /package/{dist/types → lib/esm}/model/decorators.d.ts +0 -0
- /package/{dist/types → lib/esm}/model/index.d.ts +0 -0
- /package/{dist/types → lib/esm}/model/model.d.ts +0 -0
- /package/{dist/types → lib/esm}/model/validation.d.ts +0 -0
- /package/{dist/types → lib/esm}/operations/Operations.d.ts +0 -0
- /package/{dist/types → lib/esm}/operations/OperationsRegistry.d.ts +0 -0
- /package/{dist/types → lib/esm}/operations/constants.d.ts +0 -0
- /package/{dist/types → lib/esm}/operations/decorators.d.ts +0 -0
- /package/{dist/types → lib/esm}/operations/index.d.ts +0 -0
- /package/{dist/types → lib/esm}/operations/types.d.ts +0 -0
- /package/{dist/types → lib/esm}/repository/BaseRepository.d.ts +0 -0
- /package/{dist/types → lib/esm}/repository/Context.d.ts +0 -0
- /package/{dist/types → lib/esm}/repository/DataCache.d.ts +0 -0
- /package/{dist/types → lib/esm}/repository/Repository.d.ts +0 -0
- /package/{dist/types → lib/esm}/repository/errors.d.ts +0 -0
- /package/{dist/types → lib/esm}/repository/index.d.ts +0 -0
- /package/{dist/types → lib/esm}/repository/utils.d.ts +0 -0
- /package/{dist/types → lib/esm}/repository/wrappers.d.ts +0 -0
- /package/{dist/types → lib/esm}/validation/constants.d.ts +0 -0
- /package/{dist/types → lib/esm}/validation/decorators.d.ts +0 -0
- /package/{dist/types → lib/esm}/validation/index.d.ts +0 -0
- /package/{dist/types → lib/esm}/validation/validation.d.ts +0 -0
- /package/{dist/types → lib/esm}/validation/validators/ReadOnlyValidator.d.ts +0 -0
- /package/{dist/types → lib/esm}/validation/validators/TimestampValidator.d.ts +0 -0
- /package/{dist/types → lib/esm}/validation/validators/UpdateValidator.d.ts +0 -0
- /package/{dist/types → lib/esm}/validation/validators/index.d.ts +0 -0
|
@@ -149,5 +149,4 @@ class BaseRepository {
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
exports.BaseRepository = BaseRepository;
|
|
152
|
-
|
|
153
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9yZXBvc2l0b3J5L0Jhc2VSZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlFQUF3RTtBQUN4RSxtQ0FBOEM7QUFDOUMsdURBQXdEO0FBQ3hELHFDQUF5QztBQUN6Qyx5Q0FBbUQ7QUFDbkQsNkNBQW1EO0FBQ25ELHVDQUFvQztBQUVwQyxNQUFzQixjQUFjO0lBTWxDLElBQUksS0FBSztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUNkLE1BQU0sSUFBSSxzQkFBYSxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUEsc0JBQWMsRUFBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQXNCLEtBQXNCO1FBQzFDLElBQUksS0FBSztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQy9CLDREQUE0RDtRQUM1RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwQixJQUFBLGdDQUFxQixFQUNuQixJQUFJLEVBQ0gsSUFBWSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsRUFDOUIsQ0FBQyxFQUNBLElBQVksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLENBQy9CLENBQUM7UUFD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Q1AsQ0FBQyxFQUNELHlCQUFhLENBQUMsTUFBTSxFQUNwQix5QkFBYSxDQUFDLEtBQUssQ0FDcEIsQ0FDRixDQUNGLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRVMsS0FBSyxDQUFDLFFBQVcsRUFBRSxLQUFRO1FBQ25DLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBUSxFQUFFLEVBQUUsQ0FDM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUEwQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDdEUsSUFBSSxPQUFPLEdBQUcsS0FBSyxXQUFXO2dCQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDakQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFVCxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBQSx5QkFBRSxFQUNQLDRCQUE0QixFQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2hCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuVkQsd0NBbVZDIiwiZmlsZSI6InJlcG9zaXRvcnkvQmFzZVJlcG9zaXRvcnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL0lSZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciwgTW9kZWwsIHNmIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgZW5mb3JjZURCRGVjb3JhdG9ycyB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyB3cmFwTWV0aG9kV2l0aENvbnRleHQgfSBmcm9tIFwiLi93cmFwcGVyc1wiO1xuaW1wb3J0IHsgZmluZFByaW1hcnlLZXkgfSBmcm9tIFwiLi4vaWRlbnRpdHkvdXRpbHNcIjtcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi9Db250ZXh0XCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUmVwb3NpdG9yeTxNIGV4dGVuZHMgTW9kZWw+XG4gIGltcGxlbWVudHMgSVJlcG9zaXRvcnk8TT5cbntcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xhc3MhOiBDb25zdHJ1Y3RvcjxNPjtcbiAgcHJpdmF0ZSBfcGshOiBzdHJpbmc7XG5cbiAgZ2V0IGNsYXNzKCkge1xuICAgIGlmICghdGhpcy5fY2xhc3MpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gY2xhc3MgZGVmaW5pdGlvbiBmb3VuZCBmb3IgdGhpcyByZXBvc2l0b3J5YCk7XG4gICAgcmV0dXJuIHRoaXMuX2NsYXNzO1xuICB9XG5cbiAgZ2V0IHBrKCkge1xuICAgIGlmICghdGhpcy5fcGspIHRoaXMuX3BrID0gZmluZFByaW1hcnlLZXkobmV3IHRoaXMuY2xhc3MoKSkuaWQ7XG4gICAgcmV0dXJuIHRoaXMuX3BrO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNsYXp6PzogQ29uc3RydWN0b3I8TT4pIHtcbiAgICBpZiAoY2xhenopIHRoaXMuX2NsYXNzID0gY2xheno7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgW3RoaXMuY3JlYXRlLCB0aGlzLnJlYWQsIHRoaXMudXBkYXRlLCB0aGlzLmRlbGV0ZV0uZm9yRWFjaCgobSkgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IG0ubmFtZTtcbiAgICAgIHdyYXBNZXRob2RXaXRoQ29udGV4dChcbiAgICAgICAgc2VsZixcbiAgICAgICAgKHNlbGYgYXMgYW55KVtuYW1lICsgXCJQcmVmaXhcIl0sXG4gICAgICAgIG0sXG4gICAgICAgIChzZWxmIGFzIGFueSlbbmFtZSArIFwiU3VmZml4XCJdXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgYWJzdHJhY3QgY3JlYXRlKG1vZGVsOiBNLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT47XG5cbiAgYXN5bmMgY3JlYXRlQWxsKG1vZGVsczogTVtdLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPiB7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKG1vZGVscy5tYXAoKG0pID0+IHRoaXMuY3JlYXRlKG0sIC4uLmFyZ3MpKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlUHJlZml4KG1vZGVsOiBNLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgYXJnc1xuICAgICk7XG4gICAgbW9kZWwgPSBuZXcgdGhpcy5jbGFzcyhtb2RlbCk7XG4gICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgIHRoaXMsXG4gICAgICBjb250ZXh0QXJncy5jb250ZXh0LFxuICAgICAgbW9kZWwsXG4gICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgIE9wZXJhdGlvbktleXMuT05cbiAgICApO1xuICAgIHJldHVybiBbbW9kZWwsIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZVN1ZmZpeChtb2RlbDogTSwgY29udGV4dDogQ29udGV4dDxNPikge1xuICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICB0aGlzLFxuICAgICAgY29udGV4dCxcbiAgICAgIG1vZGVsLFxuICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICBPcGVyYXRpb25LZXlzLkFGVEVSXG4gICAgKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlQWxsUHJlZml4KG1vZGVsczogTVtdLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgYXJnc1xuICAgICk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtb2RlbHMubWFwKGFzeW5jIChtKSA9PiB7XG4gICAgICAgIG0gPSBuZXcgdGhpcy5jbGFzcyhtKTtcbiAgICAgICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGNvbnRleHRBcmdzLmNvbnRleHQsXG4gICAgICAgICAgbSxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLk9OXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBtO1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiBbbW9kZWxzLCAuLi5jb250ZXh0QXJncy5hcmdzXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjcmVhdGVBbGxTdWZmaXgobW9kZWxzOiBNW10sIGNvbnRleHQ6IENvbnRleHQ8TT4pIHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1vZGVscy5tYXAoKG0pID0+XG4gICAgICAgIGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIG0sXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5BRlRFUlxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gbW9kZWxzO1xuICB9XG5cbiAgYWJzdHJhY3QgcmVhZChrZXk6IHN0cmluZyB8IG51bWJlciwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE0+O1xuXG4gIGFzeW5jIHJlYWRBbGwoa2V5czogc3RyaW5nW10gfCBudW1iZXJbXSwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE1bXT4ge1xuICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChrZXlzLm1hcCgoaWQpID0+IHRoaXMucmVhZChpZCwgLi4uYXJncykpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWFkU3VmZml4KG1vZGVsOiBNLCBjb250ZXh0OiBDb250ZXh0PE0+KSB7XG4gICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgIHRoaXMsXG4gICAgICBjb250ZXh0LFxuICAgICAgbW9kZWwsXG4gICAgICBPcGVyYXRpb25LZXlzLlJFQUQsXG4gICAgICBPcGVyYXRpb25LZXlzLkFGVEVSXG4gICAgKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVhZFByZWZpeChrZXk6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBjb25zdCBtb2RlbDogTSA9IG5ldyB0aGlzLmNsYXNzKCk7XG4gICAgKG1vZGVsIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3RoaXMucGtdID0ga2V5O1xuICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICB0aGlzLFxuICAgICAgY29udGV4dEFyZ3MuY29udGV4dCxcbiAgICAgIG1vZGVsLFxuICAgICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgICAgT3BlcmF0aW9uS2V5cy5PTlxuICAgICk7XG4gICAgcmV0dXJuIFtrZXksIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlYWRBbGxQcmVmaXgoa2V5czogc3RyaW5nW10gfCBudW1iZXJbXSwgLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGtleXMubWFwKGFzeW5jIChrKSA9PiB7XG4gICAgICAgIGNvbnN0IG0gPSBuZXcgdGhpcy5jbGFzcygpO1xuICAgICAgICAobSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVt0aGlzLnBrXSA9IGs7XG4gICAgICAgIHJldHVybiBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgY29udGV4dEFyZ3MuY29udGV4dCxcbiAgICAgICAgICBtLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLk9OXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIFtrZXlzLCAuLi5jb250ZXh0QXJncy5hcmdzXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWFkQWxsU3VmZml4KG1vZGVsczogTVtdLCBjb250ZXh0OiBDb250ZXh0PE0+KSB7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtb2RlbHMubWFwKChtKSA9PlxuICAgICAgICBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBtLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLkFGVEVSXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICAgIHJldHVybiBtb2RlbHM7XG4gIH1cblxuICBhYnN0cmFjdCB1cGRhdGUobW9kZWw6IE0sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNPjtcblxuICBhc3luYyB1cGRhdGVBbGwobW9kZWxzOiBNW10sIC4uLmFyZ3M6IGFueSk6IFByb21pc2U8TVtdPiB7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKG1vZGVscy5tYXAoKG0pID0+IHRoaXMudXBkYXRlKG0sIC4uLmFyZ3MpKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgdXBkYXRlU3VmZml4KG1vZGVsOiBNLCBjb250ZXh0OiBDb250ZXh0PE0+KSB7XG4gICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgIHRoaXMsXG4gICAgICBjb250ZXh0LFxuICAgICAgbW9kZWwsXG4gICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgIE9wZXJhdGlvbktleXMuQUZURVJcbiAgICApO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB1cGRhdGVQcmVmaXgobW9kZWw6IE0sIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBjb25zdCBpZCA9IChtb2RlbCBhcyBhbnkpW3RoaXMucGtdO1xuICAgIGlmICghaWQpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYE5vIHZhbHVlIGZvciB0aGUgSWQgaXMgZGVmaW5lZCB1bmRlciB0aGUgcHJvcGVydHkgJHt0aGlzLnBrfWBcbiAgICAgICk7XG4gICAgY29uc3Qgb2xkTW9kZWwgPSBhd2FpdCB0aGlzLnJlYWQoaWQpO1xuICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICB0aGlzLFxuICAgICAgY29udGV4dEFyZ3MuY29udGV4dCxcbiAgICAgIG1vZGVsLFxuICAgICAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gICAgICBPcGVyYXRpb25LZXlzLk9OLFxuICAgICAgb2xkTW9kZWxcbiAgICApO1xuICAgIHJldHVybiBbbW9kZWwsIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZUFsbFByZWZpeChtb2RlbHM6IE1bXSwgLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGFyZ3NcbiAgICApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbW9kZWxzLm1hcCgobSkgPT4ge1xuICAgICAgICBtID0gbmV3IHRoaXMuY2xhc3MobSk7XG4gICAgICAgIGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBjb250ZXh0QXJncy5jb250ZXh0LFxuICAgICAgICAgIG0sXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5PTlxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gbTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gW21vZGVscywgLi4uY29udGV4dEFyZ3MuYXJnc107XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgdXBkYXRlQWxsU3VmZml4KG1vZGVsczogTVtdLCBjb250ZXh0OiBDb250ZXh0PE0+KSB7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtb2RlbHMubWFwKChtKSA9PlxuICAgICAgICBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBtLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuQUZURVJcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gICAgcmV0dXJuIG1vZGVscztcbiAgfVxuXG4gIGFic3RyYWN0IGRlbGV0ZShrZXk6IHN0cmluZyB8IG51bWJlciwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE0+O1xuXG4gIGFzeW5jIGRlbGV0ZUFsbChrZXlzOiBzdHJpbmdbXSB8IG51bWJlcltdLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPiB7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGtleXMubWFwKChrKSA9PiB0aGlzLmRlbGV0ZShrLCAuLi5hcmdzKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlbGV0ZVN1ZmZpeChtb2RlbDogTSwgY29udGV4dDogQ29udGV4dDxNPikge1xuICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICB0aGlzLFxuICAgICAgY29udGV4dCxcbiAgICAgIG1vZGVsLFxuICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICBPcGVyYXRpb25LZXlzLkFGVEVSXG4gICAgKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZGVsZXRlUHJlZml4KGtleTogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgYXJnc1xuICAgICk7XG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCB0aGlzLnJlYWQoa2V5LCAuLi5jb250ZXh0QXJncy5hcmdzKTtcbiAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgdGhpcyxcbiAgICAgIGNvbnRleHRBcmdzLmNvbnRleHQsXG4gICAgICBtb2RlbCxcbiAgICAgIE9wZXJhdGlvbktleXMuREVMRVRFLFxuICAgICAgT3BlcmF0aW9uS2V5cy5PTlxuICAgICk7XG4gICAgcmV0dXJuIFtrZXksIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlbGV0ZUFsbFByZWZpeChrZXlzOiBzdHJpbmdbXSB8IG51bWJlcltdLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgYXJnc1xuICAgICk7XG4gICAgY29uc3QgbW9kZWxzID0gYXdhaXQgdGhpcy5yZWFkQWxsKGtleXMsIC4uLmNvbnRleHRBcmdzLmFyZ3MpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbW9kZWxzLm1hcChhc3luYyAobSkgPT4ge1xuICAgICAgICByZXR1cm4gZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGNvbnRleHRBcmdzLmNvbnRleHQsXG4gICAgICAgICAgbSxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLk9OXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIFtrZXlzLCAuLi5jb250ZXh0QXJncy5hcmdzXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBkZWxldGVBbGxTdWZmaXgobW9kZWxzOiBNW10sIGNvbnRleHQ6IENvbnRleHQ8TT4pIHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1vZGVscy5tYXAoKG0pID0+XG4gICAgICAgIGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIG0sXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5BRlRFUlxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gbW9kZWxzO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1lcmdlKG9sZE1vZGVsOiBNLCBtb2RlbDogTSk6IE0ge1xuICAgIGNvbnN0IGV4dHJhY3QgPSAobW9kZWw6IE0pID0+XG4gICAgICBPYmplY3QuZW50cmllcyhtb2RlbCkucmVkdWNlKChhY2N1bTogUmVjb3JkPHN0cmluZywgYW55PiwgW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbCAhPT0gXCJ1bmRlZmluZWRcIikgYWNjdW1ba2V5XSA9IHZhbDtcbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSwge30pO1xuXG4gICAgcmV0dXJuIG5ldyB0aGlzLmNsYXNzKE9iamVjdC5hc3NpZ24oe30sIGV4dHJhY3Qob2xkTW9kZWwpLCBleHRyYWN0KG1vZGVsKSkpO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHNmKFxuICAgICAgXCJbezB9XSAtIFJlcG9zaXRvcnkgZm9yIHsxfVwiLFxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgdGhpcy5jbGFzcy5uYW1lXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9CYXNlUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5RUFBd0U7QUFDeEUsbUNBQThDO0FBQzlDLHVEQUF3RDtBQUN4RCxxQ0FBeUM7QUFDekMseUNBQW1EO0FBQ25ELDZDQUFtRDtBQUNuRCx1Q0FBb0M7QUFFcEMsTUFBc0IsY0FBYztJQU1sQyxJQUFJLEtBQUs7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDZCxNQUFNLElBQUksc0JBQWEsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFBLHNCQUFjLEVBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFzQixLQUFzQjtRQUMxQyxJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUMvQiw0REFBNEQ7UUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9ELE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDcEIsSUFBQSxnQ0FBcUIsRUFDbkIsSUFBSSxFQUNILElBQVksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEVBQzlCLENBQUMs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QUFFLEVBQUUsQ0FDZixJQUFBLDJCQUFtQixFQUNqQixJQUFJLEVBQ0osT0FBTyxFQUNQLENBQUMsRUFDRCx5QkFBYSxDQUFDLE1BQU0sRUFDcEIseUJBQWEsQ0FBQyxLQUFLLENBQ3BCLENBQ0YsQ0FDRixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVTLEtBQUssQ0FBQyxRQUFXLEVBQUUsS0FBUTtRQUNuQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQVEsRUFBRSxFQUFFLENBQzNCLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBMEIsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ3RFLElBQUksT0FBTyxHQUFHLEtBQUssV0FBVztnQkFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ2pELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRVQsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUEseUJBQUUsRUFDUCw0QkFBNEIsRUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNoQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBblZELHdDQW1WQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvSVJlcG9zaXRvcnlcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNb2RlbCwgc2YgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBlbmZvcmNlREJEZWNvcmF0b3JzIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IE9wZXJhdGlvbktleXMgfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9jb25zdGFudHNcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnNcIjtcbmltcG9ydCB7IHdyYXBNZXRob2RXaXRoQ29udGV4dCB9IGZyb20gXCIuL3dyYXBwZXJzXCI7XG5pbXBvcnQgeyBmaW5kUHJpbWFyeUtleSB9IGZyb20gXCIuLi9pZGVudGl0eS91dGlsc1wiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCIuL0NvbnRleHRcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VSZXBvc2l0b3J5PE0gZXh0ZW5kcyBNb2RlbD5cbiAgaW1wbGVtZW50cyBJUmVwb3NpdG9yeTxNPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGFzcyE6IENvbnN0cnVjdG9yPE0+O1xuICBwcml2YXRlIF9wayE6IHN0cmluZztcblxuICBnZXQgY2xhc3MoKSB7XG4gICAgaWYgKCF0aGlzLl9jbGFzcylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBjbGFzcyBkZWZpbml0aW9uIGZvdW5kIGZvciB0aGlzIHJlcG9zaXRvcnlgKTtcbiAgICByZXR1cm4gdGhpcy5fY2xhc3M7XG4gIH1cblxuICBnZXQgcGsoKSB7XG4gICAgaWYgKCF0aGlzLl9waykgdGhpcy5fcGsgPSBmaW5kUHJpbWFyeUtleShuZXcgdGhpcy5jbGFzcygpKS5pZDtcbiAgICByZXR1cm4gdGhpcy5fcGs7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoY2xheno/OiBDb25zdHJ1Y3RvcjxNPikge1xuICAgIGlmIChjbGF6eikgdGhpcy5fY2xhc3MgPSBjbGF6ejtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBbdGhpcy5jcmVhdGUsIHRoaXMucmVhZCwgdGhpcy51cGRhdGUsIHRoaXMuZGVsZXRlXS5mb3JFYWNoKChtKSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gbS5uYW1lO1xuICAgICAgd3JhcE1ldGhvZFdpdGhDb250ZXh0KFxuICAgICAgICBzZWxmLFxuICAgICAgICAoc2VsZiBhcyBhbnkpW25hbWUgKyBcIlByZWZpeFwiXSxcbiAgICAgICAgbSxcbiAgICAgICAgKHNlbGYgYXMgYW55KVtuYW1lICsgXCJTdWZmaXhcIl1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBhYnN0cmFjdCBjcmVhdGUobW9kZWw6IE0sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNPjtcblxuICBhc3luYyBjcmVhdGVBbGwobW9kZWxzOiBNW10sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwobW9kZWxzLm1hcCgobSkgPT4gdGhpcy5jcmVhdGUobSwgLi4uYXJncykpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjcmVhdGVQcmVmaXgobW9kZWw6IE0sIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBtb2RlbCA9IG5ldyB0aGlzLmNsYXNzKG1vZGVsKTtcbiAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgdGhpcyxcbiAgICAgIGNvbnRleHRBcmdzLmNvbnRleHQsXG4gICAgICBtb2RlbCxcbiAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgT3BlcmF0aW9uS2V5cy5PTlxuICAgICk7XG4gICAgcmV0dXJuIFttb2RlbCwgLi4uY29udGV4dEFyZ3MuYXJnc107XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlU3VmZml4KG1vZGVsOiBNLCBjb250ZXh0OiBDb250ZXh0PE0+KSB7XG4gICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgIHRoaXMsXG4gICAgICBjb250ZXh0LFxuICAgICAgbW9kZWwsXG4gICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgIE9wZXJhdGlvbktleXMuQUZURVJcbiAgICApO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjcmVhdGVBbGxQcmVmaXgobW9kZWxzOiBNW10sIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1vZGVscy5tYXAoYXN5bmMgKG0pID0+IHtcbiAgICAgICAgbSA9IG5ldyB0aGlzLmNsYXNzKG0pO1xuICAgICAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgY29udGV4dEFyZ3MuY29udGV4dCxcbiAgICAgICAgICBtLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuT05cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIFttb2RlbHMsIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZUFsbFN1ZmZpeChtb2RlbHM6IE1bXSwgY29udGV4dDogQ29udGV4dDxNPikge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbW9kZWxzLm1hcCgobSkgPT5cbiAgICAgICAgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgbSxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLkFGVEVSXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICAgIHJldHVybiBtb2RlbHM7XG4gIH1cblxuICBhYnN0cmFjdCByZWFkKGtleTogc3RyaW5nIHwgbnVtYmVyLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT47XG5cbiAgYXN5bmMgcmVhZEFsbChrZXlzOiBzdHJpbmdbXSB8IG51bWJlcltdLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPiB7XG4gICAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGtleXMubWFwKChpZCkgPT4gdGhpcy5yZWFkKGlkLCAuLi5hcmdzKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlYWRTdWZmaXgobW9kZWw6IE0sIGNvbnRleHQ6IENvbnRleHQ8TT4pIHtcbiAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgdGhpcyxcbiAgICAgIGNvbnRleHQsXG4gICAgICBtb2RlbCxcbiAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgIE9wZXJhdGlvbktleXMuQUZURVJcbiAgICApO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWFkUHJlZml4KGtleTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGFyZ3NcbiAgICApO1xuICAgIGNvbnN0IG1vZGVsOiBNID0gbmV3IHRoaXMuY2xhc3MoKTtcbiAgICAobW9kZWwgYXMgUmVjb3JkPHN0cmluZywgYW55PilbdGhpcy5wa10gPSBrZXk7XG4gICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgIHRoaXMsXG4gICAgICBjb250ZXh0QXJncy5jb250ZXh0LFxuICAgICAgbW9kZWwsXG4gICAgICBPcGVyYXRpb25LZXlzLlJFQUQsXG4gICAgICBPcGVyYXRpb25LZXlzLk9OXG4gICAgKTtcbiAgICByZXR1cm4gW2tleSwgLi4uY29udGV4dEFyZ3MuYXJnc107XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVhZEFsbFByZWZpeChrZXlzOiBzdHJpbmdbXSB8IG51bWJlcltdLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGFyZ3NcbiAgICApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAga2V5cy5tYXAoYXN5bmMgKGspID0+IHtcbiAgICAgICAgY29uc3QgbSA9IG5ldyB0aGlzLmNsYXNzKCk7XG4gICAgICAgIChtIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3RoaXMucGtdID0gaztcbiAgICAgICAgcmV0dXJuIGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBjb250ZXh0QXJncy5jb250ZXh0LFxuICAgICAgICAgIG0sXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuT05cbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gW2tleXMsIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlYWRBbGxTdWZmaXgobW9kZWxzOiBNW10sIGNvbnRleHQ6IENvbnRleHQ8TT4pIHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1vZGVscy5tYXAoKG0pID0+XG4gICAgICAgIGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIG0sXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuQUZURVJcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gICAgcmV0dXJuIG1vZGVscztcbiAgfVxuXG4gIGFic3RyYWN0IHVwZGF0ZShtb2RlbDogTSwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE0+O1xuXG4gIGFzeW5jIHVwZGF0ZUFsbChtb2RlbHM6IE1bXSwgLi4uYXJnczogYW55KTogUHJvbWlzZTxNW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwobW9kZWxzLm1hcCgobSkgPT4gdGhpcy51cGRhdGUobSwgLi4uYXJncykpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB1cGRhdGVTdWZmaXgobW9kZWw6IE0sIGNvbnRleHQ6IENvbnRleHQ8TT4pIHtcbiAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgdGhpcyxcbiAgICAgIGNvbnRleHQsXG4gICAgICBtb2RlbCxcbiAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgT3BlcmF0aW9uS2V5cy5BRlRFUlxuICAgICk7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZVByZWZpeChtb2RlbDogTSwgLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGlkID0gKG1vZGVsIGFzIGFueSlbdGhpcy5wa107XG4gICAgaWYgKCFpZClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgTm8gdmFsdWUgZm9yIHRoZSBJZCBpcyBkZWZpbmVkIHVuZGVyIHRoZSBwcm9wZXJ0eSAke3RoaXMucGt9YFxuICAgICAgKTtcbiAgICBjb25zdCBvbGRNb2RlbCA9IGF3YWl0IHRoaXMucmVhZChpZCk7XG4gICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgIHRoaXMsXG4gICAgICBjb250ZXh0QXJncy5jb250ZXh0LFxuICAgICAgbW9kZWwsXG4gICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgIE9wZXJhdGlvbktleXMuT04sXG4gICAgICBvbGRNb2RlbFxuICAgICk7XG4gICAgcmV0dXJuIFttb2RlbCwgLi4uY29udGV4dEFyZ3MuYXJnc107XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgdXBkYXRlQWxsUHJlZml4KG1vZGVsczogTVtdLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgYXJnc1xuICAgICk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtb2RlbHMubWFwKChtKSA9PiB7XG4gICAgICAgIG0gPSBuZXcgdGhpcy5jbGFzcyhtKTtcbiAgICAgICAgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGNvbnRleHRBcmdzLmNvbnRleHQsXG4gICAgICAgICAgbSxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLk9OXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBtO1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiBbbW9kZWxzLCAuLi5jb250ZXh0QXJncy5hcmdzXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB1cGRhdGVBbGxTdWZmaXgobW9kZWxzOiBNW10sIGNvbnRleHQ6IENvbnRleHQ8TT4pIHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1vZGVscy5tYXAoKG0pID0+XG4gICAgICAgIGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIG0sXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5BRlRFUlxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gbW9kZWxzO1xuICB9XG5cbiAgYWJzdHJhY3QgZGVsZXRlKGtleTogc3RyaW5nIHwgbnVtYmVyLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT47XG5cbiAgYXN5bmMgZGVsZXRlQWxsKGtleXM6IHN0cmluZ1tdIHwgbnVtYmVyW10sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoa2V5cy5tYXAoKGspID0+IHRoaXMuZGVsZXRlKGssIC4uLmFyZ3MpKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZGVsZXRlU3VmZml4KG1vZGVsOiBNLCBjb250ZXh0OiBDb250ZXh0PE0+KSB7XG4gICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgIHRoaXMsXG4gICAgICBjb250ZXh0LFxuICAgICAgbW9kZWwsXG4gICAgICBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICAgIE9wZXJhdGlvbktleXMuQUZURVJcbiAgICApO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBkZWxldGVQcmVmaXgoa2V5OiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHRoaXMucmVhZChrZXksIC4uLmNvbnRleHRBcmdzLmFyZ3MpO1xuICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICB0aGlzLFxuICAgICAgY29udGV4dEFyZ3MuY29udGV4dCxcbiAgICAgIG1vZGVsLFxuICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICBPcGVyYXRpb25LZXlzLk9OXG4gICAgKTtcbiAgICByZXR1cm4gW2tleSwgLi4uY29udGV4dEFyZ3MuYXJnc107XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZGVsZXRlQWxsUHJlZml4KGtleXM6IHN0cmluZ1tdIHwgbnVtYmVyW10sIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBjb25zdCBtb2RlbHMgPSBhd2FpdCB0aGlzLnJlYWRBbGwoa2V5cywgLi4uY29udGV4dEFyZ3MuYXJncyk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtb2RlbHMubWFwKGFzeW5jIChtKSA9PiB7XG4gICAgICAgIHJldHVybiBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgY29udGV4dEFyZ3MuY29udGV4dCxcbiAgICAgICAgICBtLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuREVMRVRFLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuT05cbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gW2tleXMsIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlbGV0ZUFsbFN1ZmZpeChtb2RlbHM6IE1bXSwgY29udGV4dDogQ29udGV4dDxNPikge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbW9kZWxzLm1hcCgobSkgPT5cbiAgICAgICAgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgbSxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICAgICAgICBPcGVyYXRpb25LZXlzLkFGVEVSXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICAgIHJldHVybiBtb2RlbHM7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWVyZ2Uob2xkTW9kZWw6IE0sIG1vZGVsOiBNKTogTSB7XG4gICAgY29uc3QgZXh0cmFjdCA9IChtb2RlbDogTSkgPT5cbiAgICAgIE9iamVjdC5lbnRyaWVzKG1vZGVsKS5yZWR1Y2UoKGFjY3VtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsICE9PSBcInVuZGVmaW5lZFwiKSBhY2N1bVtrZXldID0gdmFsO1xuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gbmV3IHRoaXMuY2xhc3MoT2JqZWN0LmFzc2lnbih7fSwgZXh0cmFjdChvbGRNb2RlbCksIGV4dHJhY3QobW9kZWwpKSk7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gc2YoXG4gICAgICBcIlt7MH1dIC0gUmVwb3NpdG9yeSBmb3IgezF9XCIsXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICB0aGlzLmNsYXNzLm5hbWVcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { IRepository } from "../interfaces/IRepository";
|
|
2
|
+
import { Constructor, Model } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { Context } from "./Context";
|
|
4
|
+
export declare abstract class BaseRepository<M extends Model> implements IRepository<M> {
|
|
5
|
+
private readonly _class;
|
|
6
|
+
private _pk;
|
|
7
|
+
get class(): Constructor<M>;
|
|
8
|
+
get pk(): string;
|
|
9
|
+
protected constructor(clazz?: Constructor<M>);
|
|
10
|
+
abstract create(model: M, ...args: any[]): Promise<M>;
|
|
11
|
+
createAll(models: M[], ...args: any[]): Promise<M[]>;
|
|
12
|
+
protected createPrefix(model: M, ...args: any[]): Promise<any[]>;
|
|
13
|
+
protected createSuffix(model: M, context: Context<M>): Promise<M>;
|
|
14
|
+
protected createAllPrefix(models: M[], ...args: any[]): Promise<any[]>;
|
|
15
|
+
protected createAllSuffix(models: M[], context: Context<M>): Promise<M[]>;
|
|
16
|
+
abstract read(key: string | number, ...args: any[]): Promise<M>;
|
|
17
|
+
readAll(keys: string[] | number[], ...args: any[]): Promise<M[]>;
|
|
18
|
+
protected readSuffix(model: M, context: Context<M>): Promise<M>;
|
|
19
|
+
protected readPrefix(key: string, ...args: any[]): Promise<any[]>;
|
|
20
|
+
protected readAllPrefix(keys: string[] | number[], ...args: any[]): Promise<any[]>;
|
|
21
|
+
protected readAllSuffix(models: M[], context: Context<M>): Promise<M[]>;
|
|
22
|
+
abstract update(model: M, ...args: any[]): Promise<M>;
|
|
23
|
+
updateAll(models: M[], ...args: any): Promise<M[]>;
|
|
24
|
+
protected updateSuffix(model: M, context: Context<M>): Promise<M>;
|
|
25
|
+
protected updatePrefix(model: M, ...args: any[]): Promise<any[]>;
|
|
26
|
+
protected updateAllPrefix(models: M[], ...args: any[]): Promise<any[]>;
|
|
27
|
+
protected updateAllSuffix(models: M[], context: Context<M>): Promise<M[]>;
|
|
28
|
+
abstract delete(key: string | number, ...args: any[]): Promise<M>;
|
|
29
|
+
deleteAll(keys: string[] | number[], ...args: any[]): Promise<M[]>;
|
|
30
|
+
protected deleteSuffix(model: M, context: Context<M>): Promise<M>;
|
|
31
|
+
protected deletePrefix(key: any, ...args: any[]): Promise<any[]>;
|
|
32
|
+
protected deleteAllPrefix(keys: string[] | number[], ...args: any[]): Promise<any[]>;
|
|
33
|
+
protected deleteAllSuffix(models: M[], context: Context<M>): Promise<M[]>;
|
|
34
|
+
protected merge(oldModel: M, model: M): M;
|
|
35
|
+
toString(): string;
|
|
36
|
+
}
|
|
@@ -64,5 +64,4 @@ class Context extends DataCache_1.DataCache {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
exports.Context = Context;
|
|
67
|
-
|
|
68
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,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LEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQWpGRCwwQkFpRkMiLCJmaWxlIjoicmVwb3NpdG9yeS9Db250ZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUNhY2hlIH0gZnJvbSBcIi4vRGF0YUNhY2hlXCI7XG5pbXBvcnQgeyBDb250ZXh0QXJncyB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgeyBDb250ZXh0dWFsIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvQ29udGV4dHVhbFwiO1xuaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHsgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCIuLi9vcGVyYXRpb25zL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5leHBvcnQgY2xhc3MgQ29udGV4dDxNIGV4dGVuZHMgTW9kZWw+IGV4dGVuZHMgRGF0YUNhY2hlIHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvcGVyYXRpb246IE9wZXJhdGlvbktleXMsXG4gICAgcHJvdGVjdGVkIG1vZGVsPzogQ29uc3RydWN0b3I8TT4sXG4gICAgcHJvdGVjdGVkIHBhcmVudD86IENvbnRleHQ8YW55PlxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZ2V0IHRpbWVzdGFtcCgpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKTtcbiAgfVxuXG4gIGFzeW5jIGdldChrZXk6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBzdXBlci5nZXQoa2V5KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICh0aGlzLnBhcmVudCkgcmV0dXJuIHRoaXMucGFyZW50LmdldChrZXkpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBwb3Aoa2V5OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmIChrZXkgaW4gdGhpcy5jYWNoZSkgcmV0dXJuIHN1cGVyLnBvcChrZXkpO1xuICAgIGlmICghdGhpcy5wYXJlbnQpIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBLZXkgJHtrZXl9IG5vdCBpbiBkYXRhU3RvcmVgKTtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQucG9wKGtleSk7XG4gIH1cblxuICBjaGlsZDxOIGV4dGVuZHMgTW9kZWw+KFxuICAgIG9wZXJhdGlvbjogT3BlcmF0aW9uS2V5cyxcbiAgICBtb2RlbD86IENvbnN0cnVjdG9yPE4+XG4gICk6IENvbnRleHQ8Tj4ge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yKG9wZXJhdGlvbiwgbW9kZWwsIHRoaXMpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGZyb208TSBleHRlbmRzIE1vZGVsLCBDIGV4dGVuZHMgQ29udGV4dDxNPj4oXG4gICAgb3BlcmF0aW9uOlxuICAgICAgfCBPcGVyYXRpb25LZXlzLkNSRUFURVxuICAgICAgfCBPcGVyYXRpb25LZXlzLlJFQURcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5VUERBVEVcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEM+IHtcbiAgICByZXR1cm4gbmV3IENvbnRleHQob3BlcmF0aW9uLCBtb2RlbCkgYXMgQztcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBhcmdzPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3BlcmF0aW9uOlxuICAgICAgfCBPcGVyYXRpb25LZXlzLkNSRUFURVxuICAgICAgfCBPcGVyYXRpb25LZXlzLlJFQURcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5VUERBVEVcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+LFxuICAgIGFyZ3M6IGFueVtdLFxuICAgIGNvbnRleHR1YWw/OiBDb250ZXh0dWFsPE0+XG4gICk6IFByb21pc2U8Q29udGV4dEFyZ3M8TT4+IHtcbiAgICBjb25zdCBsYXN0ID0gYXJncy5wb3AoKTtcblxuICAgIGFzeW5jIGZ1bmN0aW9uIGdldENvbnRleHQoKSB7XG4gICAgICBpZiAoY29udGV4dHVhbCkgcmV0dXJuIGNvbnRleHR1YWwuY29udGV4dChvcGVyYXRpb24sIG1vZGVsLCAuLi5hcmdzKTtcbiAgICAgIHJldHVybiBuZXcgQ29udGV4dChvcGVyYXRpb24sIG1vZGVsKTtcbiAgICB9XG5cbiAgICBsZXQgYzogQ29udGV4dDxNPjtcbiAgICBpZiAobGFzdCkge1xuICAgICAgaWYgKGxhc3QgaW5zdGFuY2VvZiBDb250ZXh0KSB7XG4gICAgICAgIGMgPSBsYXN0O1xuICAgICAgICBhcmdzLnB1c2gobGFzdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjID0gYXdhaXQgZ2V0Q29udGV4dCgpO1xuICAgICAgICBhcmdzLnB1c2gobGFzdCwgYyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGMgPSBhd2FpdCBnZXRDb250ZXh0KCk7XG4gICAgICBhcmdzLnB1c2goYyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgY29udGV4dDogYywgYXJnczogYXJncyB9O1xuICB9XG59XG4iXX0=
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBvc2l0b3J5L0NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXdDO0FBR3hDLHFDQUF5QztBQUl6QyxNQUFhLE9BQXlCLFNBQVEscUJBQVM7SUFDckQsWUFDWSxTQUF3QixFQUN4QixLQUFzQixFQUN0QixNQUFxQjtRQUUvQixLQUFLLEVBQUUsQ0FBQztRQUpFLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUdqQyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXO1FBQ25CLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSxzQkFBYSxDQUFDLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEtBQUssQ0FDSCxTQUF3QixFQUN4QixLQUFzQjtRQUV0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2YsU0FJd0IsRUFDeEIsS0FBcUI7SUFDckIsNkRBQTZEO0lBQzdELEdBQUcsSUFBVztRQUVkLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBTSxDQUFDO0lBQzVDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDZixTQUl3QixFQUN4QixLQUFxQixFQUNyQixJQUFXLEVBQ1gsVUFBMEI7UUFFMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXhCLEtBQUssVUFBVSxVQUFVO1lBQ3ZCLElBQUksVUFBVTtnQkFBRSxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFFRCxJQUFJLENBQWEsQ0FBQztRQUNsQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxJQUFJLFlBQVksT0FBTyxFQUFFLENBQUM7Z0JBQzVCLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sQ0FBQyxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLENBQUMsR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQWpGRCwwQkFpRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhQ2FjaGUgfSBmcm9tIFwiLi9EYXRhQ2FjaGVcIjtcbmltcG9ydCB7IENvbnRleHRBcmdzIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IENvbnRleHR1YWwgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9Db250ZXh0dWFsXCI7XG5pbXBvcnQgeyBOb3RGb3VuZEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciwgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbmV4cG9ydCBjbGFzcyBDb250ZXh0PE0gZXh0ZW5kcyBNb2RlbD4gZXh0ZW5kcyBEYXRhQ2FjaGUge1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG9wZXJhdGlvbjogT3BlcmF0aW9uS2V5cyxcbiAgICBwcm90ZWN0ZWQgbW9kZWw/OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBwcm90ZWN0ZWQgcGFyZW50PzogQ29udGV4dDxhbnk+XG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiBuZXcgRGF0ZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0KGtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHN1cGVyLmdldChrZXkpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKHRoaXMucGFyZW50KSByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0KGtleSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHBvcChrZXk6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKGtleSBpbiB0aGlzLmNhY2hlKSByZXR1cm4gc3VwZXIucG9wKGtleSk7XG4gICAgaWYgKCF0aGlzLnBhcmVudCkgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYEtleSAke2tleX0gbm90IGluIGRhdGFTdG9yZWApO1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5wb3Aoa2V5KTtcbiAgfVxuXG4gIGNoaWxkPE4gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3BlcmF0aW9uOiBPcGVyYXRpb25LZXlzLFxuICAgIG1vZGVsPzogQ29uc3RydWN0b3I8Tj5cbiAgKTogQ29udGV4dDxOPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3Iob3BlcmF0aW9uLCBtb2RlbCwgdGhpcyk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZnJvbTxNIGV4dGVuZHMgTW9kZWwsIEMgZXh0ZW5kcyBDb250ZXh0PE0+PihcbiAgICBvcGVyYXRpb246XG4gICAgICB8IE9wZXJhdGlvbktleXMuQ1JFQVRFXG4gICAgICB8IE9wZXJhdGlvbktleXMuUkVBRFxuICAgICAgfCBPcGVyYXRpb25LZXlzLlVQREFURVxuICAgICAgfCBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8TT4sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Qz4ge1xuICAgIHJldHVybiBuZXcgQ29udGV4dChvcGVyYXRpb24sIG1vZGVsKSBhcyBDO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGFyZ3M8TSBleHRlbmRzIE1vZGVsPihcbiAgICBvcGVyYXRpb246XG4gICAgICB8IE9wZXJhdGlvbktleXMuQ1JFQVRFXG4gICAgICB8IE9wZXJhdGlvbktleXMuUkVBRFxuICAgICAgfCBPcGVyYXRpb25LZXlzLlVQREFURVxuICAgICAgfCBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8TT4sXG4gICAgYXJnczogYW55W10sXG4gICAgY29udGV4dHVhbD86IENvbnRleHR1YWw8TT5cbiAgKTogUHJvbWlzZTxDb250ZXh0QXJnczxNPj4ge1xuICAgIGNvbnN0IGxhc3QgPSBhcmdzLnBvcCgpO1xuXG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0Q29udGV4dCgpIHtcbiAgICAgIGlmIChjb250ZXh0dWFsKSByZXR1cm4gY29udGV4dHVhbC5jb250ZXh0KG9wZXJhdGlvbiwgbW9kZWwsIC4uLmFyZ3MpO1xuICAgICAgcmV0dXJuIG5ldyBDb250ZXh0KG9wZXJhdGlvbiwgbW9kZWwpO1xuICAgIH1cblxuICAgIGxldCBjOiBDb250ZXh0PE0+O1xuICAgIGlmIChsYXN0KSB7XG4gICAgICBpZiAobGFzdCBpbnN0YW5jZW9mIENvbnRleHQpIHtcbiAgICAgICAgYyA9IGxhc3Q7XG4gICAgICAgIGFyZ3MucHVzaChsYXN0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGMgPSBhd2FpdCBnZXRDb250ZXh0KCk7XG4gICAgICAgIGFyZ3MucHVzaChsYXN0LCBjKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYyA9IGF3YWl0IGdldENvbnRleHQoKTtcbiAgICAgIGFyZ3MucHVzaChjKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBjb250ZXh0OiBjLCBhcmdzOiBhcmdzIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DataCache } from "./DataCache";
|
|
2
|
+
import { ContextArgs } from "./utils";
|
|
3
|
+
import { Contextual } from "../interfaces/Contextual";
|
|
4
|
+
import { OperationKeys } from "../operations/constants";
|
|
5
|
+
import { Constructor, Model } from "@decaf-ts/decorator-validation";
|
|
6
|
+
export declare class Context<M extends Model> extends DataCache {
|
|
7
|
+
protected operation: OperationKeys;
|
|
8
|
+
protected model?: Constructor<M> | undefined;
|
|
9
|
+
protected parent?: Context<any> | undefined;
|
|
10
|
+
protected constructor(operation: OperationKeys, model?: Constructor<M> | undefined, parent?: Context<any> | undefined);
|
|
11
|
+
get timestamp(): Date;
|
|
12
|
+
get(key: string): Promise<any>;
|
|
13
|
+
pop(key: string): Promise<any>;
|
|
14
|
+
child<N extends Model>(operation: OperationKeys, model?: Constructor<N>): Context<N>;
|
|
15
|
+
static from<M extends Model, C extends Context<M>>(operation: OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE, model: Constructor<M>, ...args: any[]): Promise<C>;
|
|
16
|
+
static args<M extends Model>(operation: OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE, model: Constructor<M>, args: any[], contextual?: Contextual<M>): Promise<ContextArgs<M>>;
|
|
17
|
+
}
|
|
@@ -39,5 +39,4 @@ class DataCache {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
exports.DataCache = DataCache;
|
|
42
|
-
|
|
43
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9yZXBvc2l0b3J5L0RhdGFDYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBd0Q7QUFFeEQsTUFBYSxTQUFTO0lBQXRCO1FBQ1ksVUFBSyxHQUF3QixFQUFFLENBQUM7SUFtQzVDLENBQUM7SUFqQ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxzQkFBYSxDQUFDLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUNoQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSztZQUNuQixNQUFNLElBQUksc0JBQWEsQ0FBQyxPQUFPLEdBQUcsdUJBQXVCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBdUI7UUFDbEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRO1lBQUUsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDL0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBWTtRQUN0QixJQUFJLENBQUMsR0FBRztZQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDOztZQUNyQixNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBcENELDhCQW9DQyIsImZpbGUiOiJyZXBvc2l0b3J5L0RhdGFDYWNoZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZsaWN0RXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnNcIjtcblxuZXhwb3J0IGNsYXNzIERhdGFDYWNoZSB7XG4gIHByb3RlY3RlZCBjYWNoZTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIGFzeW5jIGdldChrZXk6IHN0cmluZykge1xuICAgIGlmICghKGtleSBpbiB0aGlzLmNhY2hlKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBLZXkgJHtrZXl9IG5vdCBpbiBkYXRhU3RvcmVgKTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVtrZXldO1xuICB9XG5cbiAgYXN5bmMgcHVzaChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGlmIChrZXkgaW4gdGhpcy5jYWNoZSlcbiAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKGBLZXkgJHtrZXl9IGFscmVhZHkgaW4gZGF0YVN0b3JlYCk7XG4gICAgdGhpcy5jYWNoZVtrZXldID0gdmFsdWU7XG4gIH1cblxuICBhc3luYyBwdXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNhY2hlW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIGFzeW5jIHBvcChrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuZ2V0KGtleSk7XG4gICAgZGVsZXRlIHRoaXMuY2FjaGVba2V5XTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgYXN5bmMgZmlsdGVyKGZpbHRlcjogc3RyaW5nIHwgUmVnRXhwKSB7XG4gICAgaWYgKHR5cGVvZiBmaWx0ZXIgPT09IFwic3RyaW5nXCIpIGZpbHRlciA9IG5ldyBSZWdFeHAoZmlsdGVyKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5jYWNoZSlcbiAgICAgIC5maWx0ZXIoKGspID0+ICEhZmlsdGVyLmV4ZWMoaykpXG4gICAgICAubWFwKChrKSA9PiB0aGlzLmNhY2hlW2tdKTtcbiAgfVxuXG4gIGFzeW5jIHB1cmdlKGtleT86IHN0cmluZykge1xuICAgIGlmICgha2V5KSB0aGlzLmNhY2hlID0ge307XG4gICAgZWxzZSBhd2FpdCB0aGlzLnBvcChrZXkpO1xuICB9XG59XG4iXX0=
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcG9zaXRvcnkvRGF0YUNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUF3RDtBQUV4RCxNQUFhLFNBQVM7SUFBdEI7UUFDWSxVQUFLLEdBQXdCLEVBQUUsQ0FBQztJQW1DNUMsQ0FBQztJQWpDQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDdEIsTUFBTSxJQUFJLHNCQUFhLENBQUMsT0FBTyxHQUFHLG1CQUFtQixDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQ2hDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQ25CLE1BQU0sSUFBSSxzQkFBYSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVc7UUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUF1QjtRQUNsQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7WUFBRSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDM0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFZO1FBQ3RCLElBQUksQ0FBQyxHQUFHO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7O1lBQ3JCLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFwQ0QsOEJBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmxpY3RFcnJvciwgTm90Rm91bmRFcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuXG5leHBvcnQgY2xhc3MgRGF0YUNhY2hlIHtcbiAgcHJvdGVjdGVkIGNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgYXN5bmMgZ2V0KGtleTogc3RyaW5nKSB7XG4gICAgaWYgKCEoa2V5IGluIHRoaXMuY2FjaGUpKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYEtleSAke2tleX0gbm90IGluIGRhdGFTdG9yZWApO1xuICAgIHJldHVybiB0aGlzLmNhY2hlW2tleV07XG4gIH1cblxuICBhc3luYyBwdXNoKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKGtleSBpbiB0aGlzLmNhY2hlKVxuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IoYEtleSAke2tleX0gYWxyZWFkeSBpbiBkYXRhU3RvcmVgKTtcbiAgICB0aGlzLmNhY2hlW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIGFzeW5jIHB1dChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIHRoaXMuY2FjaGVba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgYXN5bmMgcG9wKGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5nZXQoa2V5KTtcbiAgICBkZWxldGUgdGhpcy5jYWNoZVtrZXldO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBhc3luYyBmaWx0ZXIoZmlsdGVyOiBzdHJpbmcgfCBSZWdFeHApIHtcbiAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gXCJzdHJpbmdcIikgZmlsdGVyID0gbmV3IFJlZ0V4cChmaWx0ZXIpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNhY2hlKVxuICAgICAgLmZpbHRlcigoaykgPT4gISFmaWx0ZXIuZXhlYyhrKSlcbiAgICAgIC5tYXAoKGspID0+IHRoaXMuY2FjaGVba10pO1xuICB9XG5cbiAgYXN5bmMgcHVyZ2Uoa2V5Pzogc3RyaW5nKSB7XG4gICAgaWYgKCFrZXkpIHRoaXMuY2FjaGUgPSB7fTtcbiAgICBlbHNlIGF3YWl0IHRoaXMucG9wKGtleSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class DataCache {
|
|
2
|
+
protected cache: Record<string, any>;
|
|
3
|
+
get(key: string): Promise<any>;
|
|
4
|
+
push(key: string, value: any): Promise<void>;
|
|
5
|
+
put(key: string, value: any): Promise<void>;
|
|
6
|
+
pop(key: string): Promise<any>;
|
|
7
|
+
filter(filter: string | RegExp): Promise<any[]>;
|
|
8
|
+
purge(key?: string): Promise<void>;
|
|
9
|
+
}
|
|
@@ -84,5 +84,4 @@ class Repository extends BaseRepository_1.BaseRepository {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
exports.Repository = Repository;
|
|
87
|
-
|
|
88
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9yZXBvc2l0b3J5L1JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQThDO0FBQzlDLHVEQUF3RDtBQUN4RCxxQ0FBMEQ7QUFDMUQscURBQWtEO0FBRWxELGtEQUE0QztBQUM1Qyx1Q0FBb0M7QUFFcEMsTUFBc0IsVUFBNEIsU0FBUSwrQkFBaUI7SUFDekUsWUFBc0IsS0FBc0I7UUFDMUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVrQixLQUFLLENBQUMsWUFBWSxDQUNuQyxLQUFRLEVBQ1IsR0FBRyxJQUFXO1FBRWQsTUFBTSxXQUFXLEdBQUcsTUFBTSxpQkFBTyxDQUFDLElBQUksQ0FDcEMseUJBQWEsQ0FBQyxNQUFNLEVBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUNMLENBQUM7UUFDRixLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLE1BQU0sSUFBQSwyQkFBbUIsRUFDdkIsSUFBSSxFQUNKLFdBQVcsQ0FBQyxPQUFPLEVBQ25CLEtBQUssRUFDTCx5QkFBYSxDQUFDLE1BQU0sRUFDcEIseUJBQWEsQ0FBQyxFQUFFLENBQ2pCLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakMsSUFBSSxNQUFNO1lBQUUsTUFBTSxJQUFJLHdCQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFekQsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRVMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFXLEVBQUUsR0FBRyxJQUFXO1FBQ3pELE1BQU0sV0FBVyxHQUFHLE1BQU0saUJBQU8sQ0FBQyxJQUFJLENBQ3BDLHlCQUFhLENBQUMsTUFBTSxFQUNwQixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FDTCxDQUFDO1FBQ0YsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JCLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxJQUFBLDJCQUFtQixFQUN2QixJQUFJLEVBQ0osV0FBVyxDQUFDLE9BQU8sRUFDbkIsQ0FBQyxFQUNELHlCQUFhLENBQUMsTUFBTSxFQUNwQix5QkFBYSxDQUFDLEVBQUUsQ0FDakIsQ0FBQztZQUNGLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU07YUFDbEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDekIsTUFBTSxDQUFDLENBQUMsS0FBeUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDO2dCQUNILEtBQUs7b0JBQ0gsT0FBTyxLQUFLLEtBQUssUUFBUTt3QkFDdkIsQ0FBQyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7d0JBQ3RDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNuQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoQixJQUFJLE1BQU07WUFBRSxNQUFNLElBQUksd0JBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFUyxLQUFLLENBQUMsWUFBWSxDQUMxQixLQUFRLEVBQ1IsR0FBRyxJQUFXO1FBRWQsTUFBTSxXQUFXLEdBQUcsTUFBTSxpQkFBTyxDQUFDLElBQUksQ0FDcEMseUJBQWEsQ0FBQyxNQUFNLEVBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUNMLENBQUM7UUFDRixNQUFNLEVBQUUsR0FBSSxLQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxFQUFFO1lBQ0wsTUFBTSxJQUFJLHNCQUFhLENBQ3JCLHFEQUFxRCxJQUFJLENBQUMsRUFBRSxFQUFFLENBQy9ELENBQUM7UUFFSixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFckMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXBDLE1BQU0sSUFBQSwyQkFBbUIsRUFDdkIsSUFBSSxFQUNKLFdBQVcsQ0FBQyxPQUFPLEVBQ25CLEtBQUssRUFDTCx5QkFBYSxDQUFDLE1BQU0sRUFDcEIseUJBQWEsQ0FBQyxFQUFFLEVBQ2hCLFFBQVEsQ0FDVCxDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLE1BQU07WUFBRSxNQUFNLElBQUksd0JBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6RCxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQVcsRUFBRSxHQUFHLElBQVc7UUFDekQsTUFBTSxXQUFXLEdBQUcsTUFBTSxpQkFBTyxDQUFDLElBQUksQ0FDcEMseUJBQWEsQ0FBQyxNQUFNLEVBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUNMLENBQUM7UUFDRixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsTUFBTSxFQUFFLEdBQUksQ0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsRUFBRTtnQkFDTCxNQUFNLElBQUksc0JBQWEsQ0FDckIscURBQXFELElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FDL0QsQ0FBQztZQUNKLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9ELE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNsQixJQUFBLDJCQUFtQixFQUNqQixJQUFJLEVBQ0osV0FBVyxDQUFDLE9BQU8sRUFDbkIsQ0FBQyxFQUNELHlCQUFhLENBQUMsTUFBTSxFQUNwQix5QkFBYSxDQUFDLEVBQUUsRUFDaEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUNiLENBQ0YsQ0FDRixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTTthQUNsQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMzQyxNQUFNLENBQUMsQ0FBQyxLQUF5QixFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUM7Z0JBQ0gsS0FBSztvQkFDSCxPQUFPLEtBQUssS0FBSyxRQUFRO3dCQUN2QixDQUFDLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTt3QkFDdEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hCLElBQUksTUFBTTtZQUFFLE1BQU0sSUFBSSx3QkFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBVztRQUNwQixPQUFPLGtCQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUE3SUQsZ0NBNklDIiwiZmlsZSI6InJlcG9zaXRvcnkvUmVwb3NpdG9yeS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuZm9yY2VEQkRlY29yYXRvcnMgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCIuLi9vcGVyYXRpb25zL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBCYXNlUmVwb3NpdG9yeSB9IGZyb20gXCIuL0Jhc2VSZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciwgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBEQktleXMgfSBmcm9tIFwiLi4vbW9kZWwvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIi4vQ29udGV4dFwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVwb3NpdG9yeTxNIGV4dGVuZHMgTW9kZWw+IGV4dGVuZHMgQmFzZVJlcG9zaXRvcnk8TT4ge1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoY2xheno/OiBDb25zdHJ1Y3RvcjxNPikge1xuICAgIHN1cGVyKGNsYXp6KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBjcmVhdGVQcmVmaXgoXG4gICAgbW9kZWw6IE0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxbTSwgLi4uYW55W11dPiB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBtb2RlbCA9IG5ldyB0aGlzLmNsYXNzKG1vZGVsKTtcbiAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgdGhpcyxcbiAgICAgIGNvbnRleHRBcmdzLmNvbnRleHQsXG4gICAgICBtb2RlbCxcbiAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgT3BlcmF0aW9uS2V5cy5PTlxuICAgICk7XG5cbiAgICBjb25zdCBlcnJvcnMgPSBtb2RlbC5oYXNFcnJvcnMoKTtcbiAgICBpZiAoZXJyb3JzKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGVycm9ycy50b1N0cmluZygpKTtcblxuICAgIHJldHVybiBbbW9kZWwsIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZUFsbFByZWZpeChtb2RlbHM6IE1bXSwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPGFueVtdPiB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1vZGVscy5tYXAoYXN5bmMgKG0pID0+IHtcbiAgICAgICAgbSA9IG5ldyB0aGlzLmNsYXNzKG0pO1xuICAgICAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgY29udGV4dEFyZ3MuY29udGV4dCxcbiAgICAgICAgICBtLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuT05cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgICB9KVxuICAgICk7XG4gICAgY29uc3QgZXJyb3JzID0gbW9kZWxzXG4gICAgICAubWFwKChtKSA9PiBtLmhhc0Vycm9ycygpKVxuICAgICAgLnJlZHVjZSgoYWNjdW06IHN0cmluZyB8IHVuZGVmaW5lZCwgZSwgaSkgPT4ge1xuICAgICAgICBpZiAoZSlcbiAgICAgICAgICBhY2N1bSA9XG4gICAgICAgICAgICB0eXBlb2YgYWNjdW0gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgPyBhY2N1bSArIGBcXG4gLSAke2l9OiAke2UudG9TdHJpbmcoKX1gXG4gICAgICAgICAgICAgIDogYCAtICR7aX06ICR7ZS50b1N0cmluZygpfWA7XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sIHVuZGVmaW5lZCk7XG4gICAgaWYgKGVycm9ycykgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihlcnJvcnMpO1xuICAgIHJldHVybiBbbW9kZWxzLCAuLi5jb250ZXh0QXJncy5hcmdzXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB1cGRhdGVQcmVmaXgoXG4gICAgbW9kZWw6IE0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxbTSwgLi4uYXJnczogYW55W11dPiB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBjb25zdCBwayA9IChtb2RlbCBhcyBhbnkpW3RoaXMucGtdO1xuICAgIGlmICghcGspXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYE5vIHZhbHVlIGZvciB0aGUgSWQgaXMgZGVmaW5lZCB1bmRlciB0aGUgcHJvcGVydHkgJHt0aGlzLnBrfWBcbiAgICAgICk7XG5cbiAgICBjb25zdCBvbGRNb2RlbCA9IGF3YWl0IHRoaXMucmVhZChwayk7XG5cbiAgICBtb2RlbCA9IHRoaXMubWVyZ2Uob2xkTW9kZWwsIG1vZGVsKTtcblxuICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICB0aGlzLFxuICAgICAgY29udGV4dEFyZ3MuY29udGV4dCxcbiAgICAgIG1vZGVsLFxuICAgICAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gICAgICBPcGVyYXRpb25LZXlzLk9OLFxuICAgICAgb2xkTW9kZWxcbiAgICApO1xuXG4gICAgY29uc3QgZXJyb3JzID0gbW9kZWwuaGFzRXJyb3JzKG9sZE1vZGVsKTtcbiAgICBpZiAoZXJyb3JzKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGVycm9ycy50b1N0cmluZygpKTtcbiAgICByZXR1cm4gW21vZGVsLCAuLi5jb250ZXh0QXJncy5hcmdzXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB1cGRhdGVBbGxQcmVmaXgobW9kZWxzOiBNW10sIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBhcmdzXG4gICAgKTtcbiAgICBjb25zdCBpZHMgPSBtb2RlbHMubWFwKChtKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IChtIGFzIGFueSlbdGhpcy5wa107XG4gICAgICBpZiAoIWlkKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgTm8gdmFsdWUgZm9yIHRoZSBJZCBpcyBkZWZpbmVkIHVuZGVyIHRoZSBwcm9wZXJ0eSAke3RoaXMucGt9YFxuICAgICAgICApO1xuICAgICAgcmV0dXJuIGlkO1xuICAgIH0pO1xuICAgIGNvbnN0IG9sZE1vZGVscyA9IGF3YWl0IHRoaXMucmVhZEFsbChpZHMsIC4uLmNvbnRleHRBcmdzLmFyZ3MpO1xuICAgIG1vZGVscyA9IG1vZGVscy5tYXAoKG0sIGkpID0+IHRoaXMubWVyZ2Uob2xkTW9kZWxzW2ldLCBtKSk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtb2RlbHMubWFwKChtLCBpKSA9PlxuICAgICAgICBlbmZvcmNlREJEZWNvcmF0b3JzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgY29udGV4dEFyZ3MuY29udGV4dCxcbiAgICAgICAgICBtLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgICAgIE9wZXJhdGlvbktleXMuT04sXG4gICAgICAgICAgb2xkTW9kZWxzW2ldXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuXG4gICAgY29uc3QgZXJyb3JzID0gbW9kZWxzXG4gICAgICAubWFwKChtLCBpKSA9PiBtLmhhc0Vycm9ycyhvbGRNb2RlbHNbaV0sIG0pKVxuICAgICAgLnJlZHVjZSgoYWNjdW06IHN0cmluZyB8IHVuZGVmaW5lZCwgZSwgaSkgPT4ge1xuICAgICAgICBpZiAoZSlcbiAgICAgICAgICBhY2N1bSA9XG4gICAgICAgICAgICB0eXBlb2YgYWNjdW0gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgPyBhY2N1bSArIGBcXG4gLSAke2l9OiAke2UudG9TdHJpbmcoKX1gXG4gICAgICAgICAgICAgIDogYCAtICR7aX06ICR7ZS50b1N0cmluZygpfWA7XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sIHVuZGVmaW5lZCk7XG4gICAgaWYgKGVycm9ycykgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihlcnJvcnMpO1xuICAgIHJldHVybiBbbW9kZWxzLCAuLi5jb250ZXh0QXJncy5hcmdzXTtcbiAgfVxuXG4gIHN0YXRpYyBrZXkoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gREJLZXlzLlJFRkxFQ1QgKyBrZXk7XG4gIH1cbn1cbiJdfQ==
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBvc2l0b3J5L1JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQThDO0FBQzlDLHVEQUF3RDtBQUN4RCxxQ0FBMEQ7QUFDMUQscURBQWtEO0FBRWxELGtEQUE0QztBQUM1Qyx1Q0FBb0M7QUFFcEMsTUFBc0IsVUFBNEIsU0FBUSwrQkFBaUI7SUFDekUsWUFBc0IsS0FBc0I7UUFDMUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVrQixLQUFLLENBQUMsWUFBWSxDQUNuQyxLQUFRLEVBQ1IsR0FBRyxJQUFXO1FBRWQsTUFBTSxXQUFXLEdBQUcsTUFBTSxpQkFBTyxDQUFDLElBQUksQ0FDcEMseUJBQWEsQ0FBQyxNQUFNLEVBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUNMLENBQUM7UUFDRixLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLE1BQU0sSUFBQSwyQkFBbUIsRUFDdkIsSUFBSSxFQUNKLFdBQVcsQ0FBQyxPQUFPLEVBQ25CLEtBQUssRUFDTCx5QkFBYSxDQUFDLE1BQU0sRUFDcEIseUJBQWEsQ0FBQyxFQUFFLENBQ2pCLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakMsSUFBSSxNQUFNO1lBQUUsTUFBTSxJQUFJLHdCQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFekQsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRVMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFXLEVBQUUsR0FBRyxJQUFXO1FBQ3pELE1BQU0sV0FBVyxHQUFHLE1BQU0saUJBQU8sQ0FBQyxJQUFJLENBQ3BDLHlCQUFh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QUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTt3QkFDdEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hCLElBQUksTUFBTTtZQUFFLE1BQU0sSUFBSSx3QkFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBVztRQUNwQixPQUFPLGtCQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUE3SUQsZ0NBNklDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5mb3JjZURCRGVjb3JhdG9ycyB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnNcIjtcbmltcG9ydCB7IEJhc2VSZXBvc2l0b3J5IH0gZnJvbSBcIi4vQmFzZVJlcG9zaXRvcnlcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IERCS2V5cyB9IGZyb20gXCIuLi9tb2RlbC9jb25zdGFudHNcIjtcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi9Db250ZXh0XCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXBvc2l0b3J5PE0gZXh0ZW5kcyBNb2RlbD4gZXh0ZW5kcyBCYXNlUmVwb3NpdG9yeTxNPiB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjbGF6ej86IENvbnN0cnVjdG9yPE0+KSB7XG4gICAgc3VwZXIoY2xhenopO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGNyZWF0ZVByZWZpeChcbiAgICBtb2RlbDogTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFtNLCAuLi5hbnlbXV0+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGFyZ3NcbiAgICApO1xuICAgIG1vZGVsID0gbmV3IHRoaXMuY2xhc3MobW9kZWwpO1xuICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICB0aGlzLFxuICAgICAgY29udGV4dEFyZ3MuY29udGV4dCxcbiAgICAgIG1vZGVsLFxuICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICBPcGVyYXRpb25LZXlzLk9OXG4gICAgKTtcblxuICAgIGNvbnN0IGVycm9ycyA9IG1vZGVsLmhhc0Vycm9ycygpO1xuICAgIGlmIChlcnJvcnMpIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoZXJyb3JzLnRvU3RyaW5nKCkpO1xuXG4gICAgcmV0dXJuIFttb2RlbCwgLi4uY29udGV4dEFyZ3MuYXJnc107XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlQWxsUHJlZml4KG1vZGVsczogTVtdLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGFyZ3NcbiAgICApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbW9kZWxzLm1hcChhc3luYyAobSkgPT4ge1xuICAgICAgICBtID0gbmV3IHRoaXMuY2xhc3MobSk7XG4gICAgICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBjb250ZXh0QXJncy5jb250ZXh0LFxuICAgICAgICAgIG0sXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5PTlxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gbTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCBlcnJvcnMgPSBtb2RlbHNcbiAgICAgIC5tYXAoKG0pID0+IG0uaGFzRXJyb3JzKCkpXG4gICAgICAucmVkdWNlKChhY2N1bTogc3RyaW5nIHwgdW5kZWZpbmVkLCBlLCBpKSA9PiB7XG4gICAgICAgIGlmIChlKVxuICAgICAgICAgIGFjY3VtID1cbiAgICAgICAgICAgIHR5cGVvZiBhY2N1bSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICA/IGFjY3VtICsgYFxcbiAtICR7aX06ICR7ZS50b1N0cmluZygpfWBcbiAgICAgICAgICAgICAgOiBgIC0gJHtpfTogJHtlLnRvU3RyaW5nKCl9YDtcbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSwgdW5kZWZpbmVkKTtcbiAgICBpZiAoZXJyb3JzKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGVycm9ycyk7XG4gICAgcmV0dXJuIFttb2RlbHMsIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZVByZWZpeChcbiAgICBtb2RlbDogTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFtNLCAuLi5hcmdzOiBhbnlbXV0+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGFyZ3NcbiAgICApO1xuICAgIGNvbnN0IHBrID0gKG1vZGVsIGFzIGFueSlbdGhpcy5wa107XG4gICAgaWYgKCFwaylcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgTm8gdmFsdWUgZm9yIHRoZSBJZCBpcyBkZWZpbmVkIHVuZGVyIHRoZSBwcm9wZXJ0eSAke3RoaXMucGt9YFxuICAgICAgKTtcblxuICAgIGNvbnN0IG9sZE1vZGVsID0gYXdhaXQgdGhpcy5yZWFkKHBrKTtcblxuICAgIG1vZGVsID0gdGhpcy5tZXJnZShvbGRNb2RlbCwgbW9kZWwpO1xuXG4gICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9ycyhcbiAgICAgIHRoaXMsXG4gICAgICBjb250ZXh0QXJncy5jb250ZXh0LFxuICAgICAgbW9kZWwsXG4gICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgIE9wZXJhdGlvbktleXMuT04sXG4gICAgICBvbGRNb2RlbFxuICAgICk7XG5cbiAgICBjb25zdCBlcnJvcnMgPSBtb2RlbC5oYXNFcnJvcnMob2xkTW9kZWwpO1xuICAgIGlmIChlcnJvcnMpIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoZXJyb3JzLnRvU3RyaW5nKCkpO1xuICAgIHJldHVybiBbbW9kZWwsIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZUFsbFByZWZpeChtb2RlbHM6IE1bXSwgLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGlkcyA9IG1vZGVscy5tYXAoKG0pID0+IHtcbiAgICAgIGNvbnN0IGlkID0gKG0gYXMgYW55KVt0aGlzLnBrXTtcbiAgICAgIGlmICghaWQpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBObyB2YWx1ZSBmb3IgdGhlIElkIGlzIGRlZmluZWQgdW5kZXIgdGhlIHByb3BlcnR5ICR7dGhpcy5wa31gXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfSk7XG4gICAgY29uc3Qgb2xkTW9kZWxzID0gYXdhaXQgdGhpcy5yZWFkQWxsKGlkcywgLi4uY29udGV4dEFyZ3MuYXJncyk7XG4gICAgbW9kZWxzID0gbW9kZWxzLm1hcCgobSwgaSkgPT4gdGhpcy5tZXJnZShvbGRNb2RlbHNbaV0sIG0pKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1vZGVscy5tYXAoKG0sIGkpID0+XG4gICAgICAgIGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBjb250ZXh0QXJncy5jb250ZXh0LFxuICAgICAgICAgIG0sXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gICAgICAgICAgT3BlcmF0aW9uS2V5cy5PTixcbiAgICAgICAgICBvbGRNb2RlbHNbaV1cbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG5cbiAgICBjb25zdCBlcnJvcnMgPSBtb2RlbHNcbiAgICAgIC5tYXAoKG0sIGkpID0+IG0uaGFzRXJyb3JzKG9sZE1vZGVsc1tpXSwgbSkpXG4gICAgICAucmVkdWNlKChhY2N1bTogc3RyaW5nIHwgdW5kZWZpbmVkLCBlLCBpKSA9PiB7XG4gICAgICAgIGlmIChlKVxuICAgICAgICAgIGFjY3VtID1cbiAgICAgICAgICAgIHR5cGVvZiBhY2N1bSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICA/IGFjY3VtICsgYFxcbiAtICR7aX06ICR7ZS50b1N0cmluZygpfWBcbiAgICAgICAgICAgICAgOiBgIC0gJHtpfTogJHtlLnRvU3RyaW5nKCl9YDtcbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSwgdW5kZWZpbmVkKTtcbiAgICBpZiAoZXJyb3JzKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGVycm9ycyk7XG4gICAgcmV0dXJuIFttb2RlbHMsIC4uLmNvbnRleHRBcmdzLmFyZ3NdO1xuICB9XG5cbiAgc3RhdGljIGtleShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBEQktleXMuUkVGTEVDVCArIGtleTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseRepository } from "./BaseRepository";
|
|
2
|
+
import { Constructor, Model } from "@decaf-ts/decorator-validation";
|
|
3
|
+
export declare abstract class Repository<M extends Model> extends BaseRepository<M> {
|
|
4
|
+
protected constructor(clazz?: Constructor<M>);
|
|
5
|
+
protected createPrefix(model: M, ...args: any[]): Promise<[M, ...any[]]>;
|
|
6
|
+
protected createAllPrefix(models: M[], ...args: any[]): Promise<any[]>;
|
|
7
|
+
protected updatePrefix(model: M, ...args: any[]): Promise<[M, ...args: any[]]>;
|
|
8
|
+
protected updateAllPrefix(models: M[], ...args: any[]): Promise<any[]>;
|
|
9
|
+
static key(key: string): string;
|
|
10
|
+
}
|
|
@@ -93,5 +93,4 @@ class ConflictError extends BaseError {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
exports.ConflictError = ConflictError;
|
|
96
|
-
|
|
97
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9yZXBvc2l0b3J5L2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7OztHQU9HO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLEtBQUs7SUFDM0MsWUFBc0IsSUFBWSxFQUFFLEdBQW1CO1FBQ3JELElBQUksR0FBRyxZQUFZLFNBQVM7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksS0FBSyxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLEdBQUcsWUFBWSxLQUFLO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQVBELDhCQU9DO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxTQUFTO0lBQzVDLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBSkQsMENBSUM7QUFDRDs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxhQUFjLFNBQVEsU0FBUztJQUMxQyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUpELHNDQUlDO0FBQ0Q7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLFNBQVM7SUFDL0MsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQUpELGdEQUlDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxTQUFTO0lBQzFDLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBSkQsc0NBSUM7QUFDRDs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsYUFBYyxTQUFRLFNBQVM7SUFDMUMsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFKRCxzQ0FJQyIsImZpbGUiOiJyZXBvc2l0b3J5L2Vycm9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgQmFzZSBFcnJvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtc2cgdGhlIGVycm9yIG1lc3NhZ2VcbiAqXG4gKiBAY2xhc3MgQmFzZURMVEVycm9yXG4gKiBAZXh0ZW5kcyBFcnJvclxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgaWYgKG1zZyBpbnN0YW5jZW9mIEJhc2VFcnJvcikgcmV0dXJuIG1zZztcbiAgICBjb25zdCBtZXNzYWdlID0gYFske25hbWV9XSAke21zZyBpbnN0YW5jZW9mIEVycm9yID8gbXNnLm1lc3NhZ2UgOiBtc2d9YDtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICBpZiAobXNnIGluc3RhbmNlb2YgRXJyb3IpIHRoaXMuc3RhY2sgPSBtc2cuc3RhY2s7XG4gIH1cbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgZmFpbHVyZSBpbiB0aGUgTW9kZWwgZGV0YWlsc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtc2cgdGhlIGVycm9yIG1lc3NhZ2VcbiAqXG4gKiBAY2xhc3MgVmFsaWRhdGlvbkVycm9yXG4gKiBAZXh0ZW5kcyBCYXNlRXJyb3JcbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihWYWxpZGF0aW9uRXJyb3IubmFtZSwgbXNnKTtcbiAgfVxufVxuLyoqXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGFuIGludGVybmFsIGZhaWx1cmUgKHNob3VsZCBtZWFuIGFuIGVycm9yIGluIGNvZGUpXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBJbnRlcm5hbEVycm9yXG4gKiBAZXh0ZW5kcyBCYXNlRXJyb3JcbiAqL1xuZXhwb3J0IGNsYXNzIEludGVybmFsRXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIoSW50ZXJuYWxFcnJvci5uYW1lLCBtc2cpO1xuICB9XG59XG4vKipcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBmYWlsdXJlIGluIHRoZSBNb2RlbCBkZS9zZXJpYWxpemF0aW9uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBTZXJpYWxpemF0aW9uRXJyb3JcbiAqIEBleHRlbmRzIEJhc2VFcnJvclxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcmlhbGl6YXRpb25FcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihTZXJpYWxpemF0aW9uRXJyb3IubmFtZSwgbXNnKTtcbiAgfVxufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBmYWlsdXJlIGluIGZpbmRpbmcgYSBtb2RlbFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtc2cgdGhlIGVycm9yIG1lc3NhZ2VcbiAqXG4gKiBAY2xhc3MgTm90Rm91bmRFcnJvclxuICogQGV4dGVuZHMgQmFzZUVycm9yXG4gKlxuICovXG5leHBvcnQgY2xhc3MgTm90Rm91bmRFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihOb3RGb3VuZEVycm9yLm5hbWUsIG1zZyk7XG4gIH1cbn1cbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGNvbmZsaWN0IGluIHRoZSBzdG9yYWdlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBDb25mbGljdEVycm9yXG4gKiBAZXh0ZW5kcyBCYXNlRXJyb3JcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25mbGljdEVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKENvbmZsaWN0RXJyb3IubmFtZSwgbXNnKTtcbiAgfVxufVxuIl19
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcG9zaXRvcnkvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFzQixTQUFVLFNBQVEsS0FBSztJQUMzQyxZQUFzQixJQUFZLEVBQUUsR0FBbUI7UUFDckQsSUFBSSxHQUFHLFlBQVksU0FBUztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxLQUFLLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksR0FBRyxZQUFZLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztDQUNGO0FBUEQsOEJBT0M7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxlQUFnQixTQUFRLFNBQVM7SUFDNUMsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUFKRCwwQ0FJQztBQUNEOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLGFBQWMsU0FBUSxTQUFTO0lBQzFDLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBSkQsc0NBSUM7QUFDRDs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsU0FBUztJQUMvQyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBSkQsZ0RBSUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsYUFBYyxTQUFRLFNBQVM7SUFDMUMsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFKRCxzQ0FJQztBQUNEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsU0FBUztJQUMxQyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUpELHNDQUlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc3VtbWFyeSBCYXNlIEVycm9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBCYXNlRExURXJyb3JcbiAqIEBleHRlbmRzIEVycm9yXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBpZiAobXNnIGluc3RhbmNlb2YgQmFzZUVycm9yKSByZXR1cm4gbXNnO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBgWyR7bmFtZX1dICR7bXNnIGluc3RhbmNlb2YgRXJyb3IgPyBtc2cubWVzc2FnZSA6IG1zZ31gO1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIGlmIChtc2cgaW5zdGFuY2VvZiBFcnJvcikgdGhpcy5zdGFjayA9IG1zZy5zdGFjaztcbiAgfVxufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBmYWlsdXJlIGluIHRoZSBNb2RlbCBkZXRhaWxzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBWYWxpZGF0aW9uRXJyb3JcbiAqIEBleHRlbmRzIEJhc2VFcnJvclxuICovXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKFZhbGlkYXRpb25FcnJvci5uYW1lLCBtc2cpO1xuICB9XG59XG4vKipcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYW4gaW50ZXJuYWwgZmFpbHVyZSAoc2hvdWxkIG1lYW4gYW4gZXJyb3IgaW4gY29kZSlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIHRoZSBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNsYXNzIEludGVybmFsRXJyb3JcbiAqIEBleHRlbmRzIEJhc2VFcnJvclxuICovXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihJbnRlcm5hbEVycm9yLm5hbWUsIG1zZyk7XG4gIH1cbn1cbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGZhaWx1cmUgaW4gdGhlIE1vZGVsIGRlL3NlcmlhbGl6YXRpb25cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIHRoZSBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNsYXNzIFNlcmlhbGl6YXRpb25FcnJvclxuICogQGV4dGVuZHMgQmFzZUVycm9yXG4gKlxuICovXG5leHBvcnQgY2xhc3MgU2VyaWFsaXphdGlvbkVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKFNlcmlhbGl6YXRpb25FcnJvci5uYW1lLCBtc2cpO1xuICB9XG59XG5cbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGZhaWx1cmUgaW4gZmluZGluZyBhIG1vZGVsXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBOb3RGb3VuZEVycm9yXG4gKiBAZXh0ZW5kcyBCYXNlRXJyb3JcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RGb3VuZEVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKE5vdEZvdW5kRXJyb3IubmFtZSwgbXNnKTtcbiAgfVxufVxuLyoqXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgY29uZmxpY3QgaW4gdGhlIHN0b3JhZ2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIHRoZSBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNsYXNzIENvbmZsaWN0RXJyb3JcbiAqIEBleHRlbmRzIEJhc2VFcnJvclxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIENvbmZsaWN0RXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIoQ29uZmxpY3RFcnJvci5uYW1lLCBtc2cpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @summary Base Error
|
|
3
|
+
*
|
|
4
|
+
* @param {string} msg the error message
|
|
5
|
+
*
|
|
6
|
+
* @class BaseDLTError
|
|
7
|
+
* @extends Error
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class BaseError extends Error {
|
|
10
|
+
protected constructor(name: string, msg: string | Error);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @summary Represents a failure in the Model details
|
|
14
|
+
*
|
|
15
|
+
* @param {string} msg the error message
|
|
16
|
+
*
|
|
17
|
+
* @class ValidationError
|
|
18
|
+
* @extends BaseError
|
|
19
|
+
*/
|
|
20
|
+
export declare class ValidationError extends BaseError {
|
|
21
|
+
constructor(msg: string | Error);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @summary Represents an internal failure (should mean an error in code)
|
|
25
|
+
*
|
|
26
|
+
* @param {string} msg the error message
|
|
27
|
+
*
|
|
28
|
+
* @class InternalError
|
|
29
|
+
* @extends BaseError
|
|
30
|
+
*/
|
|
31
|
+
export declare class InternalError extends BaseError {
|
|
32
|
+
constructor(msg: string | Error);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @summary Represents a failure in the Model de/serialization
|
|
36
|
+
*
|
|
37
|
+
* @param {string} msg the error message
|
|
38
|
+
*
|
|
39
|
+
* @class SerializationError
|
|
40
|
+
* @extends BaseError
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
export declare class SerializationError extends BaseError {
|
|
44
|
+
constructor(msg: string | Error);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @summary Represents a failure in finding a model
|
|
48
|
+
*
|
|
49
|
+
* @param {string} msg the error message
|
|
50
|
+
*
|
|
51
|
+
* @class NotFoundError
|
|
52
|
+
* @extends BaseError
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
export declare class NotFoundError extends BaseError {
|
|
56
|
+
constructor(msg: string | Error);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @summary Represents a conflict in the storage
|
|
60
|
+
*
|
|
61
|
+
* @param {string} msg the error message
|
|
62
|
+
*
|
|
63
|
+
* @class ConflictError
|
|
64
|
+
* @extends BaseError
|
|
65
|
+
*
|
|
66
|
+
*/
|
|
67
|
+
export declare class ConflictError extends BaseError {
|
|
68
|
+
constructor(msg: string | Error);
|
|
69
|
+
}
|
package/lib/repository/index.cjs
CHANGED
|
@@ -21,5 +21,4 @@ __exportStar(require("./errors.cjs"), exports);
|
|
|
21
21
|
__exportStar(require("./Repository.cjs"), exports);
|
|
22
22
|
__exportStar(require("./utils.cjs"), exports);
|
|
23
23
|
__exportStar(require("./wrappers.cjs"), exports);
|
|
24
|
-
|
|
25
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9yZXBvc2l0b3J5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBaUM7QUFDakMsNENBQTBCO0FBQzFCLDhDQUE0QjtBQUM1QiwyQ0FBeUI7QUFDekIsK0NBQTZCO0FBQzdCLDBDQUF3QjtBQUN4Qiw2Q0FBMkIiLCJmaWxlIjoicmVwb3NpdG9yeS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0Jhc2VSZXBvc2l0b3J5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Db250ZXh0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9EYXRhQ2FjaGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vUmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3dyYXBwZXJzXCI7XG4iXX0=
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLDRDQUEwQjtBQUMxQiw4Q0FBNEI7QUFDNUIsMkNBQXlCO0FBQ3pCLCtDQUE2QjtBQUM3QiwwQ0FBd0I7QUFDeEIsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vQmFzZVJlcG9zaXRvcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0NvbnRleHRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0RhdGFDYWNoZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9SZXBvc2l0b3J5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vd3JhcHBlcnNcIjtcbiJdfQ==
|
package/lib/repository/utils.cjs
CHANGED
|
@@ -171,5 +171,4 @@ const getAllPropertyDecoratorsRecursive = function (model, accum, ...prefixes) {
|
|
|
171
171
|
return (0, exports.getAllPropertyDecoratorsRecursive)(proto, accumulator, ...prefixes);
|
|
172
172
|
};
|
|
173
173
|
exports.getAllPropertyDecoratorsRecursive = getAllPropertyDecoratorsRecursive;
|
|
174
|
-
|
|
175
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,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RTFFLHVDQUF1QztJQUN2QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxXQUFXLENBQUM7SUFDL0IsNERBQTREO0lBQzVELDJDQUEyQztJQUMzQyxPQUFPLElBQUEseUNBQWlDLEVBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0FBQzVFLENBQUMsQ0FBQztBQXhGVyxRQUFBLGlDQUFpQyxxQ0F3RjVDIiwiZmlsZSI6InJlcG9zaXRvcnkvdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVyYXRpb25zIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvT3BlcmF0aW9uc1wiO1xuaW1wb3J0IHsgT3BlcmF0aW9uSGFuZGxlciwgVXBkYXRlT3BlcmF0aW9uSGFuZGxlciB9IGZyb20gXCIuLi9vcGVyYXRpb25zL3R5cGVzXCI7XG5pbXBvcnQgeyBJUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL0lSZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBEZWNvcmF0b3JNZXRhZGF0YSwgUmVmbGVjdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0b3IsXG4gIE1vZGVsLFxuICBNb2RlbEtleXMsXG4gIHNmLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIi4vQ29udGV4dFwiO1xuXG5leHBvcnQgdHlwZSBDb250ZXh0QXJnczxNIGV4dGVuZHMgTW9kZWw+ID0ge1xuICBjb250ZXh0OiBDb250ZXh0PE0+O1xuICBhcmdzOiBhbnlbXTtcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgcmV0cmlldmVzIHRoZSBhcmd1bWVudHMgZm9yIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0ge2FueX0gZGVjIHRoZSBkZWNvcmF0b3JcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wIHRoZSBwcm9wZXJ0eSBuYW1lXG4gKiBAcGFyYW0ge3t9fSBtIHRoZSBtb2RlbFxuICogQHBhcmFtIHt7fX0gW2FjY3VtXSBhY2N1bXVsYXRvciB1c2VkIGZvciBpbnRlcm5hbCByZWN1cnNpdmVuZXNzXG4gKlxuICogQGZ1bmN0aW9uIGdldEhhbmRsZXJBcmdzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnMuUmVwb3NpdG9yeVxuICovXG5leHBvcnQgY29uc3QgZ2V0SGFuZGxlckFyZ3MgPSBmdW5jdGlvbiAoXG4gIGRlYzogYW55LFxuICBwcm9wOiBzdHJpbmcsXG4gIG06IENvbnN0cnVjdG9yPGFueT4sXG4gIGFjY3VtPzogUmVjb3JkPHN0cmluZywgeyBhcmdzOiBzdHJpbmdbXSB9PlxuKTogUmVjb3JkPHN0cmluZywgeyBhcmdzOiBzdHJpbmdbXSB9PiB8IHZvaWQge1xuICBjb25zdCBuYW1lID0gbS5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAoIW5hbWUpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiQ291bGQgbm90IGRldGVybWluZSBtb2RlbCBjbGFzc1wiKTtcbiAgYWNjdW0gPSBhY2N1bSB8fCB7fTtcblxuICBpZiAoZGVjLnByb3BzLmhhbmRsZXJzW25hbWVdICYmIGRlYy5wcm9wcy5oYW5kbGVyc1tuYW1lXVtwcm9wXSlcbiAgICBhY2N1bSA9IHsgLi4uZGVjLnByb3BzLmhhbmRsZXJzW25hbWVdW3Byb3BdLCAuLi5hY2N1bSB9O1xuXG4gIGxldCBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihtKTtcbiAgaWYgKHByb3RvID09PSBPYmplY3QucHJvdG90eXBlKSByZXR1cm4gYWNjdW07XG4gIGlmIChwcm90by5jb25zdHJ1Y3Rvci5uYW1lID09PSBuYW1lKSBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90byk7XG5cbiAgcmV0dXJuIGdldEhhbmRsZXJBcmdzKGRlYywgcHJvcCwgcHJvdG8sIGFjY3VtKTtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7SVJlcG9zaXRvcnk8VD59IHJlcG9cbiAqIEBwYXJhbSBjb250ZXh0XG4gKiBAcGFyYW0ge1R9IG1vZGVsXG4gKiBAcGFyYW0gb3BlcmF0aW9uXG4gKiBAcGFyYW0gcHJlZml4XG4gKlxuICogQHBhcmFtIG9sZE1vZGVsXG4gKiBAZnVuY3Rpb24gZW5mb3JjZURCUHJvcGVydHlEZWNvcmF0b3JzQXN5bmNcbiAqXG4gKiBAbWVtYmVyT2YgZGItZGVjb3JhdG9ycy51dGlsc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5mb3JjZURCRGVjb3JhdG9yczxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBZIGV4dGVuZHMgSVJlcG9zaXRvcnk8TT4sXG4gIFYsXG4+KFxuICByZXBvOiBZLFxuICBjb250ZXh0OiBDb250ZXh0PE0+LFxuICBtb2RlbDogTSxcbiAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gIHByZWZpeDogc3RyaW5nLFxuICBvbGRNb2RlbD86IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBkZWNvcmF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBEZWNvcmF0b3JNZXRhZGF0YVtdPiB8IHVuZGVmaW5lZCA9XG4gICAgZ2V0RGJEZWNvcmF0b3JzKG1vZGVsLCBvcGVyYXRpb24sIHByZWZpeCk7XG5cbiAgaWYgKCFkZWNvcmF0b3JzKSByZXR1cm47XG5cbiAgZm9yIChjb25zdCBwcm9wIGluIGRlY29yYXRvcnMpIHtcbiAgICBjb25zdCBkZWNzOiBEZWNvcmF0b3JNZXRhZGF0YVtdID0gZGVjb3JhdG9yc1twcm9wXTtcbiAgICBmb3IgKGNvbnN0IGRlYyBvZiBkZWNzKSB7XG4gICAgICBjb25zdCB7IGtleSB9ID0gZGVjO1xuICAgICAgY29uc3QgaGFuZGxlcnM6IE9wZXJhdGlvbkhhbmRsZXI8TSwgWSwgVj5bXSB8IHVuZGVmaW5lZCA9IE9wZXJhdGlvbnMuZ2V0KFxuICAgICAgICBtb2RlbCxcbiAgICAgICAgcHJvcCxcbiAgICAgICAgcHJlZml4ICsga2V5XG4gICAgICApO1xuICAgICAgaWYgKCFoYW5kbGVycyB8fCAhaGFuZGxlcnMubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgQ291bGQgbm90IGZpbmQgcmVnaXN0ZXJlZCBoYW5kbGVyIGZvciB0aGUgb3BlcmF0aW9uICR7cHJlZml4ICsga2V5fSB1bmRlciBwcm9wZXJ0eSAke3Byb3B9YFxuICAgICAgICApO1xuXG4gICAgICBjb25zdCBoYW5kbGVyQXJncyA9IGdldEhhbmRsZXJBcmdzKGRlYywgcHJvcCwgbW9kZWwgYXMgYW55KTtcblxuICAgICAgaWYgKCFoYW5kbGVyQXJncyB8fCBPYmplY3QudmFsdWVzKGhhbmRsZXJBcmdzKS5sZW5ndGggIT09IGhhbmRsZXJzLmxlbmd0aClcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3Ioc2YoXCJBcmdzIGFuZCBoYW5kbGVycyBsZW5ndGggZG8gbm90IG1hdGNoXCIpKTtcblxuICAgICAgbGV0IGhhbmRsZXI6IE9wZXJhdGlvbkhhbmRsZXI8YW55LCBhbnksIGFueT47XG4gICAgICBsZXQgZGF0YTogYW55O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoYW5kbGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBoYW5kbGVyID0gaGFuZGxlcnNbaV07XG4gICAgICAgIGRhdGEgPSBPYmplY3QudmFsdWVzKGhhbmRsZXJBcmdzKVtpXTtcblxuICAgICAgICBjb25zdCBhcmdzOiBhbnlbXSA9IFtjb250ZXh0LCBkYXRhLmRhdGEsIHByb3AsIG1vZGVsXTtcblxuICAgICAgICBpZiAob3BlcmF0aW9uID09PSBPcGVyYXRpb25LZXlzLlVQREFURSAmJiBwcmVmaXggPT09IE9wZXJhdGlvbktleXMuT04pIHtcbiAgICAgICAgICBpZiAoIW9sZE1vZGVsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaXNzaW5nIG9sZCBtb2RlbCBmb3IgdXBkYXRlIG9wZXJhdGlvblwiKTtcbiAgICAgICAgICBhcmdzLnB1c2gob2xkTW9kZWwpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IChoYW5kbGVyIGFzIFVwZGF0ZU9wZXJhdGlvbkhhbmRsZXI8TSwgWSwgVj4pLmFwcGx5KFxuICAgICAgICAgIHJlcG8sXG4gICAgICAgICAgYXJncyBhcyBbQ29udGV4dDxNPiwgViwgYW55LCBNLCBNXVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNwZWNpZmljIGZvciBEQiBEZWNvcmF0b3JzXG4gKiBAcGFyYW0ge1R9IG1vZGVsXG4gKiBAcGFyYW0ge3N0cmluZ30gb3BlcmF0aW9uIENSVUQge0BsaW5rIE9wZXJhdGlvbktleXN9XG4gKiBAcGFyYW0ge3N0cmluZ30gW2V4dHJhUHJlZml4XVxuICpcbiAqIEBmdW5jdGlvbiBnZXREYlByb3BlcnR5RGVjb3JhdG9yc1xuICpcbiAqIEBtZW1iZXJPZiBkYi1kZWNvcmF0b3JzLnV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREYkRlY29yYXRvcnM8VCBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IFQsXG4gIG9wZXJhdGlvbjogc3RyaW5nLFxuICBleHRyYVByZWZpeD86IHN0cmluZ1xuKTogUmVjb3JkPHN0cmluZywgRGVjb3JhdG9yTWV0YWRhdGFbXT4gfCB1bmRlZmluZWQge1xuICBjb25zdCBkZWNvcmF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBEZWNvcmF0b3JNZXRhZGF0YVtdPiB8IHVuZGVmaW5lZCA9XG4gICAgUmVmbGVjdGlvbi5nZXRBbGxQcm9wZXJ0eURlY29yYXRvcnMoXG4gICAgICBtb2RlbCxcbiAgICAgIC8vIHVuZGVmaW5lZCxcbiAgICAgIE9wZXJhdGlvbktleXMuUkVGTEVDVCArIChleHRyYVByZWZpeCA/IGV4dHJhUHJlZml4IDogXCJcIilcbiAgICApO1xuICBpZiAoIWRlY29yYXRvcnMpIHJldHVybjtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGRlY29yYXRvcnMpLnJlZHVjZShcbiAgICAoYWNjdW06IFJlY29yZDxzdHJpbmcsIERlY29yYXRvck1ldGFkYXRhW10+IHwgdW5kZWZpbmVkLCBkZWNvcmF0b3IpID0+IHtcbiAgICAgIGNvbnN0IGRlYyA9IGRlY29yYXRvcnNbZGVjb3JhdG9yXS5maWx0ZXIoKGQpID0+IGQua2V5ID09PSBvcGVyYXRpb24pO1xuICAgICAgaWYgKGRlYyAmJiBkZWMubGVuZ3RoKSB7XG4gICAgICAgIGlmICghYWNjdW0pIGFjY3VtID0ge307XG4gICAgICAgIGFjY3VtW2RlY29yYXRvcl0gPSBkZWM7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSxcbiAgICB1bmRlZmluZWRcbiAgKTtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIGRlY29yYXRvcnMgZm9yIGFuIG9iamVjdCdzIHByb3BlcnRpZXMgcHJlZml4ZWQgYnkge0BwYXJhbSBwcmVmaXhlc30gcmVjdXJzaXZlbHlcbiAqIEBwYXJhbSBtb2RlbFxuICogQHBhcmFtIGFjY3VtXG4gKiBAcGFyYW0gcHJlZml4ZXNcbiAqXG4gKiBAZnVuY3Rpb24gZ2V0QWxsUHJvcGVydHlEZWNvcmF0b3JzUmVjdXJzaXZlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnMuUmVwb3NpdG9yeVxuICovXG5leHBvcnQgY29uc3QgZ2V0QWxsUHJvcGVydHlEZWNvcmF0b3JzUmVjdXJzaXZlID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBULFxuICBhY2N1bTogeyBbaW5kZXhlcjogc3RyaW5nXTogYW55W10gfSB8IHVuZGVmaW5lZCxcbiAgLi4ucHJlZml4ZXM6IHN0cmluZ1tdXG4pOiB7IFtpbmRleGVyOiBzdHJpbmddOiBhbnlbXSB9IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgYWNjdW11bGF0b3IgPSBhY2N1bSB8fCB7fTtcbiAgY29uc3QgbWVyZ2VEZWNvcmF0b3JzID0gZnVuY3Rpb24gKGRlY3M6IHsgW2luZGV4ZXI6IHN0cmluZ106IGFueVtdIH0pIHtcbiAgICBjb25zdCBwdXNoT3JTcXVhc2ggPSAoa2V5OiBzdHJpbmcsIC4uLnZhbHVlczogYW55W10pID0+IHtcbiAgICAgIHZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgbGV0IG1hdGNoOiBhbnk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhKG1hdGNoID0gYWNjdW11bGF0b3Jba2V5XS5maW5kKChlKSA9PiBlLmtleSA9PT0gdmFsLmtleSkpIHx8XG4gICAgICAgICAgbWF0Y2gucHJvcHMub3BlcmF0aW9uICE9PSB2YWwucHJvcHMub3BlcmF0aW9uXG4gICAgICAgICkge1xuICAgICAgICAgIGFjY3VtdWxhdG9yW2tleV0ucHVzaCh2YWwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWwua2V5ID09PSBNb2RlbEtleXMuVFlQRSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHsgaGFuZGxlcnMsIG9wZXJhdGlvbiB9ID0gdmFsLnByb3BzO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhb3BlcmF0aW9uIHx8XG4gICAgICAgICAgIW9wZXJhdGlvbi5tYXRjaChcbiAgICAgICAgICAgIG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAgIGBeKDo/JHtPcGVyYXRpb25LZXlzLk9OfXwke09wZXJhdGlvbktleXMuQUZURVJ9KSg6PyR7T3BlcmF0aW9uS2V5cy5DUkVBVEV9fCR7T3BlcmF0aW9uS2V5cy5SRUFEfXwke09wZXJhdGlvbktleXMuVVBEQVRFfXwke09wZXJhdGlvbktleXMuREVMRVRFfSkkYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgYWNjdW11bGF0b3Jba2V5XS5wdXNoKHZhbCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWNjdW1IYW5kbGVycyA9IG1hdGNoLnByb3BzLmhhbmRsZXJzO1xuXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGhhbmRsZXJzKS5mb3JFYWNoKChbY2xhenosIGhhbmRsZXJEZWZdKSA9PiB7XG4gICAgICAgICAgaWYgKCEoY2xhenogaW4gYWNjdW1IYW5kbGVycykpIHtcbiAgICAgICAgICAgIGFjY3VtSGFuZGxlcnNbY2xhenpdID0gaGFuZGxlckRlZjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBPYmplY3QuZW50cmllcyhoYW5kbGVyRGVmIGFzIG9iamVjdCkuZm9yRWFjaChcbiAgICAgICAgICAgIChbaGFuZGxlclByb3AsIGhhbmRsZXJdKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghKGhhbmRsZXJQcm9wIGluIGFjY3VtSGFuZGxlcnNbY2xhenpdKSkge1xuICAgICAgICAgICAgICAgIGFjY3VtSGFuZGxlcnNbY2xhenpdW2hhbmRsZXJQcm9wXSA9IGhhbmRsZXI7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoaGFuZGxlciBhcyBvYmplY3QpLmZvckVhY2goXG4gICAgICAgICAgICAgICAgKFtoYW5kbGVyS2V5LCBhcmdzT2JqXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKCEoaGFuZGxlcktleSBpbiBhY2N1bUhhbmRsZXJzW2NsYXp6XVtoYW5kbGVyUHJvcF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjY3VtSGFuZGxlcnNbY2xhenpdW2hhbmRsZXJQcm9wXVtoYW5kbGVyS2V5XSA9IGFyZ3NPYmo7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgc2YoXG4gICAgICAgICAgICAgICAgICAgICAgXCJTa2lwcGluZyBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmb3IgezB9IHVuZGVyIHByb3AgezB9IGJlY2F1c2UgaGFuZGxlciBpcyB0aGUgc2FtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXp6LFxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJQcm9wXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIE9iamVjdC5lbnRyaWVzKGRlY3MpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgYWNjdW11bGF0b3Jba2V5XSA9IGFjY3VtdWxhdG9yW2tleV0gfHwgW107XG4gICAgICBwdXNoT3JTcXVhc2goa2V5LCAuLi52YWx1ZSk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZGVjczogeyBbaW5kZXhlcjogc3RyaW5nXTogYW55W10gfSB8IHVuZGVmaW5lZCA9XG4gICAgUmVmbGVjdGlvbi5nZXRBbGxQcm9wZXJ0eURlY29yYXRvcnMobW9kZWwsIC4uLnByZWZpeGVzKTtcbiAgaWYgKGRlY3MpIG1lcmdlRGVjb3JhdG9ycyhkZWNzKTtcblxuICBpZiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKG1vZGVsKSA9PT0gT2JqZWN0LnByb3RvdHlwZSkgcmV0dXJuIGFjY3VtdWxhdG9yO1xuXG4gIC8vIGNvbnN0IG5hbWUgPSBtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lO1xuICBjb25zdCBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihtb2RlbCk7XG4gIGlmICghcHJvdG8pIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgLy8gaWYgKHByb3RvLmNvbnN0cnVjdG9yICYmIHByb3RvLmNvbnN0cnVjdG9yLm5hbWUgPT09IG5hbWUpXG4gIC8vICAgICBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90bylcbiAgcmV0dXJuIGdldEFsbFByb3BlcnR5RGVjb3JhdG9yc1JlY3Vyc2l2ZShwcm90bywgYWNjdW11bGF0b3IsIC4uLnByZWZpeGVzKTtcbn07XG4iXX0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE4REEsa0RBd0RDO0FBWUQsMENBdUJDO0FBekpELHlEQUFzRDtBQUd0RCx1REFBd0Q7QUFDeEQscURBQXFFO0FBQ3JFLHFDQUF5QztBQUN6Qyx5RUFLd0M7QUFReEM7Ozs7Ozs7OztHQVNHO0FBQ0ksTUFBTSxjQUFjLEdBQUcsVUFDNUIsR0FBUSxFQUNSLElBQVksRUFDWixDQUFtQixFQUNuQixLQUEwQztJQUUxQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUNoQyxJQUFJLENBQUMsSUFBSTtRQUFFLE1BQU0sSUFBSSxzQkFBYSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDdEUsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFFcEIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUQsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBRTFELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsSUFBSSxLQUFLLEtBQUssTUFBTSxDQUFDLFNBQVM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM3QyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLElBQUk7UUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUUxRSxPQUFPLElBQUEsc0JBQWMsRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNqRCxDQUFDLENBQUM7QUFsQlcsUUFBQSxjQUFjLGtCQWtCekI7QUFFRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSSxLQUFLLFVBQVUsbUJBQW1CLENBS3ZDLElBQU8sRUFDUCxPQUFtQixFQUNuQixLQUFRLEVBQ1IsU0FBaUIsRUFDakIsTUFBYyxFQUNkLFFBQVk7SUFFWixNQUFNLFVBQVUsR0FDZCxlQUFlLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU1QyxJQUFJLENBQUMsVUFBVTtRQUFFLE9BQU87SUFFeEIsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksR0FBd0IsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztZQUNwQixNQUFNLFFBQVEsR0FBNEMsdUJBQVUsQ0FBQyxHQUFHLENBQ3RFLEtBQUssRUFDTCxJQUFJLEVBQ0osTUFBTSxHQUFHLEdBQUcsQ0FDYixDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO2dCQUMvQixNQUFNLElBQUksc0JBQWEsQ0FDckIsdURBQXVELE1BQU0sR0FBRyxHQUFHLG1CQUFtQixJQUFJLEVBQUUsQ0FDN0YsQ0FBQztZQUVKLE1BQU0sV0FBVyxHQUFHLElBQUEsc0JBQWMsRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQVksQ0FBQyxDQUFDO1lBRTVELElBQUksQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE1BQU07Z0JBQ3ZFLE1BQU0sSUFBSSxzQkFBYSxDQUFDLElBQUEseUJBQUUsRUFBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUM7WUFFdkUsSUFBSSxPQUF3QyxDQUFDO1lBQzdDLElBQUksSUFBUyxDQUFDO1lBQ2QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDekMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXJDLE1BQU0sSUFBSSxHQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUV0RCxJQUFJLFNBQVMsS0FBSyx5QkFBYSxDQUFDLE1BQU0sSUFBSSxNQUFNLEtBQUsseUJBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLFFBQVE7d0JBQ1gsTUFBTSxJQUFJLHNCQUFhLENBQUMsd0NBQXdDLENBQUMsQ0FBQztvQkFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztnQkFDRCxNQUFPLE9BQTJDLENBQUMsS0FBSyxDQUN0RCxJQUFJLEVBQ0osSUFBa0MsQ0FDbkMsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixlQUFlLENBQzdCLEtBQVEsRUFDUixTQUFpQixFQUNqQixXQUFvQjtJQUVwQixNQUFNLFVBQVUsR0FDZCx1QkFBVSxDQUFDLHdCQUF3QixDQUNqQyxLQUFLO0lBQ0wsYUFBYTtJQUNiLHlCQUFhLENBQUMsT0FBTyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osSUFBSSxDQUFDLFVBQVU7UUFBRSxPQUFPO0lBQ3hCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQ25DLENBQUMsS0FBc0QsRUFBRSxTQUFTLEVBQUUsRUFBRTtRQUNwRSxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSztnQkFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUNELFNBQVMsQ0FDVixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0ksTUFBTSxpQ0FBaUMsR0FBRyxVQUMvQyxLQUFRLEVBQ1IsS0FBK0MsRUFDL0MsR0FBRyxRQUFrQjtJQUVyQixNQUFNLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ2hDLE1BQU0sZUFBZSxHQUFHLFVBQVUsSUFBa0M7UUFDbEUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsR0FBRyxNQUFhLEVBQUUsRUFBRTtZQUNyRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksS0FBVSxDQUFDO2dCQUNmLElBQ0UsQ0FBQyxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDMUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzdDLENBQUM7b0JBQ0QsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDM0IsT0FBTztnQkFDVCxDQUFDO2dCQUVELElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxnQ0FBUyxDQUFDLElBQUk7b0JBQUUsT0FBTztnQkFFdkMsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUUxQyxJQUNFLENBQUMsU0FBUztvQkFDVixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQ2QsSUFBSSxNQUFNLENBQ1IsT0FBTyx5QkFBYSxDQUFDLEVBQUUsSUFBSSx5QkFBYSxDQUFDLEtBQUssT0FBTyx5QkFBYSxDQUFDLE1BQU0sSUFBSSx5QkFBYSxDQUFDLElBQUksSUFBSSx5QkFBYSxDQUFDLE1BQU0sSUFBSSx5QkFBYSxDQUFDLE1BQU0sSUFBSSxDQUNwSixDQUNGLEVBQ0QsQ0FBQztvQkFDRCxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMzQixPQUFPO2dCQUNULENBQUM7Z0JBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBRTNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtvQkFDdkQsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxFQUFFLENBQUM7d0JBQzlCLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUM7d0JBQ2xDLE9BQU87b0JBQ1QsQ0FBQztvQkFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQW9CLENBQUMsQ0FBQyxPQUFPLENBQzFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTt3QkFDekIsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQzNDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFPLENBQUM7NEJBQzVDLE9BQU87d0JBQ1QsQ0FBQzt3QkFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQWlCLENBQUMsQ0FBQyxPQUFPLENBQ3ZDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTs0QkFDeEIsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQ3ZELGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxPQUFPLENBQUM7Z0NBQ3hELE9BQU87NEJBQ1QsQ0FBQzs0QkFDRCxPQUFPLENBQUMsSUFBSSxDQUNWLElBQUEseUJBQUUsRUFDQSxrRkFBa0YsRUFDbEYsS0FBSyxFQUNMLFdBQVcsQ0FDWixDQUNGLENBQUM7d0JBQ0osQ0FBQyxDQUNGLENBQUM7b0JBQ0osQ0FBQyxDQUNGLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUM1QyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixNQUFNLElBQUksR0FDUix1QkFBVSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQzFELElBQUksSUFBSTtRQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssTUFBTSxDQUFDLFNBQVM7UUFBRSxPQUFPLFdBQVcsQ0FBQztJQUUxRSx1Q0FBdUM7SUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sV0FBVyxDQUFDO0lBQy9CLDREQUE0RDtJQUM1RCwyQ0FBMkM7SUFDM0MsT0FBTyxJQUFBLHlDQUFpQyxFQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztBQUM1RSxDQUFDLENBQUM7QUF4RlcsUUFBQSxpQ0FBaUMscUNBd0Y1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wZXJhdGlvbnMgfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9PcGVyYXRpb25zXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25IYW5kbGVyLCBVcGRhdGVPcGVyYXRpb25IYW5kbGVyIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvdHlwZXNcIjtcbmltcG9ydCB7IElSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvSVJlcG9zaXRvcnlcIjtcbmltcG9ydCB7IE9wZXJhdGlvbktleXMgfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9jb25zdGFudHNcIjtcbmltcG9ydCB7IERlY29yYXRvck1ldGFkYXRhLCBSZWZsZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQge1xuICBDb25zdHJ1Y3RvcixcbiAgTW9kZWwsXG4gIE1vZGVsS2V5cyxcbiAgc2YsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi9Db250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIENvbnRleHRBcmdzPE0gZXh0ZW5kcyBNb2RlbD4gPSB7XG4gIGNvbnRleHQ6IENvbnRleHQ8TT47XG4gIGFyZ3M6IGFueVtdO1xufTtcblxuLyoqXG4gKiBAc3VtbWFyeSByZXRyaWV2ZXMgdGhlIGFyZ3VtZW50cyBmb3IgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSB7YW55fSBkZWMgdGhlIGRlY29yYXRvclxuICogQHBhcmFtIHtzdHJpbmd9IHByb3AgdGhlIHByb3BlcnR5IG5hbWVcbiAqIEBwYXJhbSB7e319IG0gdGhlIG1vZGVsXG4gKiBAcGFyYW0ge3t9fSBbYWNjdW1dIGFjY3VtdWxhdG9yIHVzZWQgZm9yIGludGVybmFsIHJlY3Vyc2l2ZW5lc3NcbiAqXG4gKiBAZnVuY3Rpb24gZ2V0SGFuZGxlckFyZ3NcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5SZXBvc2l0b3J5XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRIYW5kbGVyQXJncyA9IGZ1bmN0aW9uIChcbiAgZGVjOiBhbnksXG4gIHByb3A6IHN0cmluZyxcbiAgbTogQ29uc3RydWN0b3I8YW55PixcbiAgYWNjdW0/OiBSZWNvcmQ8c3RyaW5nLCB7IGFyZ3M6IHN0cmluZ1tdIH0+XG4pOiBSZWNvcmQ8c3RyaW5nLCB7IGFyZ3M6IHN0cmluZ1tdIH0+IHwgdm9pZCB7XG4gIGNvbnN0IG5hbWUgPSBtLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmICghbmFtZSkgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJDb3VsZCBub3QgZGV0ZXJtaW5lIG1vZGVsIGNsYXNzXCIpO1xuICBhY2N1bSA9IGFjY3VtIHx8IHt9O1xuXG4gIGlmIChkZWMucHJvcHMuaGFuZGxlcnNbbmFtZV0gJiYgZGVjLnByb3BzLmhhbmRsZXJzW25hbWVdW3Byb3BdKVxuICAgIGFjY3VtID0geyAuLi5kZWMucHJvcHMuaGFuZGxlcnNbbmFtZV1bcHJvcF0sIC4uLmFjY3VtIH07XG5cbiAgbGV0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG0pO1xuICBpZiAocHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpIHJldHVybiBhY2N1bTtcbiAgaWYgKHByb3RvLmNvbnN0cnVjdG9yLm5hbWUgPT09IG5hbWUpIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcblxuICByZXR1cm4gZ2V0SGFuZGxlckFyZ3MoZGVjLCBwcm9wLCBwcm90bywgYWNjdW0pO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHtJUmVwb3NpdG9yeTxUPn0gcmVwb1xuICogQHBhcmFtIGNvbnRleHRcbiAqIEBwYXJhbSB7VH0gbW9kZWxcbiAqIEBwYXJhbSBvcGVyYXRpb25cbiAqIEBwYXJhbSBwcmVmaXhcbiAqXG4gKiBAcGFyYW0gb2xkTW9kZWxcbiAqIEBmdW5jdGlvbiBlbmZvcmNlREJQcm9wZXJ0eURlY29yYXRvcnNBc3luY1xuICpcbiAqIEBtZW1iZXJPZiBkYi1kZWNvcmF0b3JzLnV0aWxzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbmZvcmNlREJEZWNvcmF0b3JzPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFkgZXh0ZW5kcyBJUmVwb3NpdG9yeTxNPixcbiAgVixcbj4oXG4gIHJlcG86IFksXG4gIGNvbnRleHQ6IENvbnRleHQ8TT4sXG4gIG1vZGVsOiBNLFxuICBvcGVyYXRpb246IHN0cmluZyxcbiAgcHJlZml4OiBzdHJpbmcsXG4gIG9sZE1vZGVsPzogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRlY29yYXRvcnM6IFJlY29yZDxzdHJpbmcsIERlY29yYXRvck1ldGFkYXRhW10+IHwgdW5kZWZpbmVkID1cbiAgICBnZXREYkRlY29yYXRvcnMobW9kZWwsIG9wZXJhdGlvbiwgcHJlZml4KTtcblxuICBpZiAoIWRlY29yYXRvcnMpIHJldHVybjtcblxuICBmb3IgKGNvbnN0IHByb3AgaW4gZGVjb3JhdG9ycykge1xuICAgIGNvbnN0IGRlY3M6IERlY29yYXRvck1ldGFkYXRhW10gPSBkZWNvcmF0b3JzW3Byb3BdO1xuICAgIGZvciAoY29uc3QgZGVjIG9mIGRlY3MpIHtcbiAgICAgIGNvbnN0IHsga2V5IH0gPSBkZWM7XG4gICAgICBjb25zdCBoYW5kbGVyczogT3BlcmF0aW9uSGFuZGxlcjxNLCBZLCBWPltdIHwgdW5kZWZpbmVkID0gT3BlcmF0aW9ucy5nZXQoXG4gICAgICAgIG1vZGVsLFxuICAgICAgICBwcm9wLFxuICAgICAgICBwcmVmaXggKyBrZXlcbiAgICAgICk7XG4gICAgICBpZiAoIWhhbmRsZXJzIHx8ICFoYW5kbGVycy5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBDb3VsZCBub3QgZmluZCByZWdpc3RlcmVkIGhhbmRsZXIgZm9yIHRoZSBvcGVyYXRpb24gJHtwcmVmaXggKyBrZXl9IHVuZGVyIHByb3BlcnR5ICR7cHJvcH1gXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IGhhbmRsZXJBcmdzID0gZ2V0SGFuZGxlckFyZ3MoZGVjLCBwcm9wLCBtb2RlbCBhcyBhbnkpO1xuXG4gICAgICBpZiAoIWhhbmRsZXJBcmdzIHx8IE9iamVjdC52YWx1ZXMoaGFuZGxlckFyZ3MpLmxlbmd0aCAhPT0gaGFuZGxlcnMubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihzZihcIkFyZ3MgYW5kIGhhbmRsZXJzIGxlbmd0aCBkbyBub3QgbWF0Y2hcIikpO1xuXG4gICAgICBsZXQgaGFuZGxlcjogT3BlcmF0aW9uSGFuZGxlcjxhbnksIGFueSwgYW55PjtcbiAgICAgIGxldCBkYXRhOiBhbnk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhhbmRsZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGhhbmRsZXIgPSBoYW5kbGVyc1tpXTtcbiAgICAgICAgZGF0YSA9IE9iamVjdC52YWx1ZXMoaGFuZGxlckFyZ3MpW2ldO1xuXG4gICAgICAgIGNvbnN0IGFyZ3M6IGFueVtdID0gW2NvbnRleHQsIGRhdGEuZGF0YSwgcHJvcCwgbW9kZWxdO1xuXG4gICAgICAgIGlmIChvcGVyYXRpb24gPT09IE9wZXJhdGlvbktleXMuVVBEQVRFICYmIHByZWZpeCA9PT0gT3BlcmF0aW9uS2V5cy5PTikge1xuICAgICAgICAgIGlmICghb2xkTW9kZWwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk1pc3Npbmcgb2xkIG1vZGVsIGZvciB1cGRhdGUgb3BlcmF0aW9uXCIpO1xuICAgICAgICAgIGFyZ3MucHVzaChvbGRNb2RlbCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgKGhhbmRsZXIgYXMgVXBkYXRlT3BlcmF0aW9uSGFuZGxlcjxNLCBZLCBWPikuYXBwbHkoXG4gICAgICAgICAgcmVwbyxcbiAgICAgICAgICBhcmdzIGFzIFtDb250ZXh0PE0+LCBWLCBhbnksIE0sIE1dXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU3BlY2lmaWMgZm9yIERCIERlY29yYXRvcnNcbiAqIEBwYXJhbSB7VH0gbW9kZWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcGVyYXRpb24gQ1JVRCB7QGxpbmsgT3BlcmF0aW9uS2V5c31cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZXh0cmFQcmVmaXhdXG4gKlxuICogQGZ1bmN0aW9uIGdldERiUHJvcGVydHlEZWNvcmF0b3JzXG4gKlxuICogQG1lbWJlck9mIGRiLWRlY29yYXRvcnMudXRpbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERiRGVjb3JhdG9yczxUIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogVCxcbiAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gIGV4dHJhUHJlZml4Pzogc3RyaW5nXG4pOiBSZWNvcmQ8c3RyaW5nLCBEZWNvcmF0b3JNZXRhZGF0YVtdPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlY29yYXRvcnM6IFJlY29yZDxzdHJpbmcsIERlY29yYXRvck1ldGFkYXRhW10+IHwgdW5kZWZpbmVkID1cbiAgICBSZWZsZWN0aW9uLmdldEFsbFByb3BlcnR5RGVjb3JhdG9ycyhcbiAgICAgIG1vZGVsLFxuICAgICAgLy8gdW5kZWZpbmVkLFxuICAgICAgT3BlcmF0aW9uS2V5cy5SRUZMRUNUICsgKGV4dHJhUHJlZml4ID8gZXh0cmFQcmVmaXggOiBcIlwiKVxuICAgICk7XG4gIGlmICghZGVjb3JhdG9ycykgcmV0dXJuO1xuICByZXR1cm4gT2JqZWN0LmtleXMoZGVjb3JhdG9ycykucmVkdWNlKFxuICAgIChhY2N1bTogUmVjb3JkPHN0cmluZywgRGVjb3JhdG9yTWV0YWRhdGFbXT4gfCB1bmRlZmluZWQsIGRlY29yYXRvcikgPT4ge1xuICAgICAgY29uc3QgZGVjID0gZGVjb3JhdG9yc1tkZWNvcmF0b3JdLmZpbHRlcigoZCkgPT4gZC5rZXkgPT09IG9wZXJhdGlvbik7XG4gICAgICBpZiAoZGVjICYmIGRlYy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKCFhY2N1bSkgYWNjdW0gPSB7fTtcbiAgICAgICAgYWNjdW1bZGVjb3JhdG9yXSA9IGRlYztcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LFxuICAgIHVuZGVmaW5lZFxuICApO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgZGVjb3JhdG9ycyBmb3IgYW4gb2JqZWN0J3MgcHJvcGVydGllcyBwcmVmaXhlZCBieSB7QHBhcmFtIHByZWZpeGVzfSByZWN1cnNpdmVseVxuICogQHBhcmFtIG1vZGVsXG4gKiBAcGFyYW0gYWNjdW1cbiAqIEBwYXJhbSBwcmVmaXhlc1xuICpcbiAqIEBmdW5jdGlvbiBnZXRBbGxQcm9wZXJ0eURlY29yYXRvcnNSZWN1cnNpdmVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5SZXBvc2l0b3J5XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBbGxQcm9wZXJ0eURlY29yYXRvcnNSZWN1cnNpdmUgPSBmdW5jdGlvbiA8VCBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IFQsXG4gIGFjY3VtOiB7IFtpbmRleGVyOiBzdHJpbmddOiBhbnlbXSB9IHwgdW5kZWZpbmVkLFxuICAuLi5wcmVmaXhlczogc3RyaW5nW11cbik6IHsgW2luZGV4ZXI6IHN0cmluZ106IGFueVtdIH0gfCB1bmRlZmluZWQge1xuICBjb25zdCBhY2N1bXVsYXRvciA9IGFjY3VtIHx8IHt9O1xuICBjb25zdCBtZXJnZURlY29yYXRvcnMgPSBmdW5jdGlvbiAoZGVjczogeyBbaW5kZXhlcjogc3RyaW5nXTogYW55W10gfSkge1xuICAgIGNvbnN0IHB1c2hPclNxdWFzaCA9IChrZXk6IHN0cmluZywgLi4udmFsdWVzOiBhbnlbXSkgPT4ge1xuICAgICAgdmFsdWVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICBsZXQgbWF0Y2g6IGFueTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICEobWF0Y2ggPSBhY2N1bXVsYXRvcltrZXldLmZpbmQoKGUpID0+IGUua2V5ID09PSB2YWwua2V5KSkgfHxcbiAgICAgICAgICBtYXRjaC5wcm9wcy5vcGVyYXRpb24gIT09IHZhbC5wcm9wcy5vcGVyYXRpb25cbiAgICAgICAgKSB7XG4gICAgICAgICAgYWNjdW11bGF0b3Jba2V5XS5wdXNoKHZhbCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbC5rZXkgPT09IE1vZGVsS2V5cy5UWVBFKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeyBoYW5kbGVycywgb3BlcmF0aW9uIH0gPSB2YWwucHJvcHM7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFvcGVyYXRpb24gfHxcbiAgICAgICAgICAhb3BlcmF0aW9uLm1hdGNoKFxuICAgICAgICAgICAgbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgYF4oOj8ke09wZXJhdGlvbktleXMuT059fCR7T3BlcmF0aW9uS2V5cy5BRlRFUn0pKDo/JHtPcGVyYXRpb25LZXlzLkNSRUFURX18JHtPcGVyYXRpb25LZXlzLlJFQUR9fCR7T3BlcmF0aW9uS2V5cy5VUERBVEV9fCR7T3BlcmF0aW9uS2V5cy5ERUxFVEV9KSRgXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBhY2N1bXVsYXRvcltrZXldLnB1c2godmFsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhY2N1bUhhbmRsZXJzID0gbWF0Y2gucHJvcHMuaGFuZGxlcnM7XG5cbiAgICAgICAgT2JqZWN0LmVudHJpZXMoaGFuZGxlcnMpLmZvckVhY2goKFtjbGF6eiwgaGFuZGxlckRlZl0pID0+IHtcbiAgICAgICAgICBpZiAoIShjbGF6eiBpbiBhY2N1bUhhbmRsZXJzKSkge1xuICAgICAgICAgICAgYWNjdW1IYW5kbGVyc1tjbGF6el0gPSBoYW5kbGVyRGVmO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGhhbmRsZXJEZWYgYXMgb2JqZWN0KS5mb3JFYWNoKFxuICAgICAgICAgICAgKFtoYW5kbGVyUHJvcCwgaGFuZGxlcl0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKCEoaGFuZGxlclByb3AgaW4gYWNjdW1IYW5kbGVyc1tjbGF6el0pKSB7XG4gICAgICAgICAgICAgICAgYWNjdW1IYW5kbGVyc1tjbGF6el1baGFuZGxlclByb3BdID0gaGFuZGxlcjtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhoYW5kbGVyIGFzIG9iamVjdCkuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAoW2hhbmRsZXJLZXksIGFyZ3NPYmpdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoIShoYW5kbGVyS2V5IGluIGFjY3VtSGFuZGxlcnNbY2xhenpdW2hhbmRsZXJQcm9wXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgYWNjdW1IYW5kbGVyc1tjbGF6el1baGFuZGxlclByb3BdW2hhbmRsZXJLZXldID0gYXJnc09iajtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICBzZihcbiAgICAgICAgICAgICAgICAgICAgICBcIlNraXBwaW5nIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZvciB7MH0gdW5kZXIgcHJvcCB7MH0gYmVjYXVzZSBoYW5kbGVyIGlzIHRoZSBzYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgY2xhenosXG4gICAgICAgICAgICAgICAgICAgICAgaGFuZGxlclByb3BcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgT2JqZWN0LmVudHJpZXMoZGVjcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBhY2N1bXVsYXRvcltrZXldID0gYWNjdW11bGF0b3Jba2V5XSB8fCBbXTtcbiAgICAgIHB1c2hPclNxdWFzaChrZXksIC4uLnZhbHVlKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBkZWNzOiB7IFtpbmRleGVyOiBzdHJpbmddOiBhbnlbXSB9IHwgdW5kZWZpbmVkID1cbiAgICBSZWZsZWN0aW9uLmdldEFsbFByb3BlcnR5RGVjb3JhdG9ycyhtb2RlbCwgLi4ucHJlZml4ZXMpO1xuICBpZiAoZGVjcykgbWVyZ2VEZWNvcmF0b3JzKGRlY3MpO1xuXG4gIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2YobW9kZWwpID09PSBPYmplY3QucHJvdG90eXBlKSByZXR1cm4gYWNjdW11bGF0b3I7XG5cbiAgLy8gY29uc3QgbmFtZSA9IG1vZGVsLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG1vZGVsKTtcbiAgaWYgKCFwcm90bykgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAvLyBpZiAocHJvdG8uY29uc3RydWN0b3IgJiYgcHJvdG8uY29uc3RydWN0b3IubmFtZSA9PT0gbmFtZSlcbiAgLy8gICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKVxuICByZXR1cm4gZ2V0QWxsUHJvcGVydHlEZWNvcmF0b3JzUmVjdXJzaXZlKHByb3RvLCBhY2N1bXVsYXRvciwgLi4ucHJlZml4ZXMpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { IRepository } from "../interfaces/IRepository";
|
|
2
|
+
import { DecoratorMetadata } from "@decaf-ts/reflection";
|
|
3
|
+
import { Constructor, Model } from "@decaf-ts/decorator-validation";
|
|
4
|
+
import { Context } from "./Context";
|
|
5
|
+
export type ContextArgs<M extends Model> = {
|
|
6
|
+
context: Context<M>;
|
|
7
|
+
args: any[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* @summary retrieves the arguments for the handler
|
|
11
|
+
* @param {any} dec the decorator
|
|
12
|
+
* @param {string} prop the property name
|
|
13
|
+
* @param {{}} m the model
|
|
14
|
+
* @param {{}} [accum] accumulator used for internal recursiveness
|
|
15
|
+
*
|
|
16
|
+
* @function getHandlerArgs
|
|
17
|
+
* @memberOf module:db-decorators.Repository
|
|
18
|
+
*/
|
|
19
|
+
export declare const getHandlerArgs: (dec: any, prop: string, m: Constructor<any>, accum?: Record<string, {
|
|
20
|
+
args: string[];
|
|
21
|
+
}>) => Record<string, {
|
|
22
|
+
args: string[];
|
|
23
|
+
}> | void;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @param {IRepository<T>} repo
|
|
27
|
+
* @param context
|
|
28
|
+
* @param {T} model
|
|
29
|
+
* @param operation
|
|
30
|
+
* @param prefix
|
|
31
|
+
*
|
|
32
|
+
* @param oldModel
|
|
33
|
+
* @function enforceDBPropertyDecoratorsAsync
|
|
34
|
+
*
|
|
35
|
+
* @memberOf db-decorators.utils
|
|
36
|
+
*/
|
|
37
|
+
export declare function enforceDBDecorators<M extends Model, Y extends IRepository<M>, V>(repo: Y, context: Context<M>, model: M, operation: string, prefix: string, oldModel?: M): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Specific for DB Decorators
|
|
40
|
+
* @param {T} model
|
|
41
|
+
* @param {string} operation CRUD {@link OperationKeys}
|
|
42
|
+
* @param {string} [extraPrefix]
|
|
43
|
+
*
|
|
44
|
+
* @function getDbPropertyDecorators
|
|
45
|
+
*
|
|
46
|
+
* @memberOf db-decorators.utils
|
|
47
|
+
*/
|
|
48
|
+
export declare function getDbDecorators<T extends Model>(model: T, operation: string, extraPrefix?: string): Record<string, DecoratorMetadata[]> | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* @summary Retrieves the decorators for an object's properties prefixed by {@param prefixes} recursively
|
|
51
|
+
* @param model
|
|
52
|
+
* @param accum
|
|
53
|
+
* @param prefixes
|
|
54
|
+
*
|
|
55
|
+
* @function getAllPropertyDecoratorsRecursive
|
|
56
|
+
* @memberOf module:db-decorators.Repository
|
|
57
|
+
*/
|
|
58
|
+
export declare const getAllPropertyDecoratorsRecursive: <T extends Model>(model: T, accum: {
|
|
59
|
+
[indexer: string]: any[];
|
|
60
|
+
} | undefined, ...prefixes: string[]) => {
|
|
61
|
+
[indexer: string]: any[];
|
|
62
|
+
} | undefined;
|
|
@@ -96,5 +96,4 @@ function wrapMethodWithContext(obj, before, method, after, methodName) {
|
|
|
96
96
|
});
|
|
97
97
|
obj[name] = wrapped;
|
|
98
98
|
}
|
|
99
|
-
|
|
100
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9yZXBvc2l0b3J5L3dyYXBwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esb0NBbUJDO0FBYUQsb0NBbUJDO0FBZUQsc0RBNkJDO0FBN0dELHVDQUFvQztBQUNwQyxxQ0FBeUM7QUFFekM7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsR0FBUSxFQUNSLEtBQThCLEVBQzlCLE1BQStCLEVBQy9CLFNBQWtCO0lBRWxCLEtBQUssVUFBVSxPQUFPLENBQVksR0FBRyxJQUFXO1FBQzlDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDaEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFO1FBQ3JDLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDLENBQUM7SUFDSCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0FBQ3RCLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixHQUFRLEVBQ1IsTUFBK0IsRUFDL0IsTUFBK0IsRUFDL0IsVUFBbUI7SUFFbkIsS0FBSyxVQUFVLE9BQU8sQ0FBWSxHQUFHLElBQVc7UUFDOUMsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDbkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFO1FBQ3JDLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDLENBQUM7SUFDSCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0FBQ3RCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsR0FBUSxFQUNSLE1BQStCLEVBQy9CLE1BQStCLEVBQy9CLEtBQThCLEVBQzlCLFVBQW1CO0lBRW5CLEtBQUssVUFBVSxPQUFPLENBQVksR0FBRyxJQUFXO1FBQzlDLElBQUksZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxlQUFlLFlBQVksT0FBTztZQUNwQyxlQUFlLEdBQUcsTUFBTSxlQUFlLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFRLENBQUM7UUFDbkUsSUFBSSxDQUFDLENBQUMsT0FBTyxZQUFZLGlCQUFPLENBQUM7WUFDL0IsTUFBTSxJQUFJLHNCQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMvQyxJQUFJLE9BQU8sR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsZUFBZSxDQUFDLENBQUM7UUFDekQsSUFBSSxPQUFPLFlBQVksT0FBTztZQUFFLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQztRQUN4RCxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLElBQUksT0FBTyxZQUFZLE9BQU87WUFBRSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUM7UUFDeEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDbkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFO1FBQ3JDLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDLENBQUM7SUFDSCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0FBQ3RCLENBQUMiLCJmaWxlIjoicmVwb3NpdG9yeS93cmFwcGVycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi9Db250ZXh0XCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgVXRpbCBtZXRob2QgdG8gY2hhbmdlIGEgbWV0aG9kIG9mIGFuIG9iamVjdCBwcmVmaXhpbmcgaXQgd2l0aCBhbm90aGVyXG4gKiBAcGFyYW0ge2FueX0gb2JqIFRoZSBCYXNlIE9iamVjdFxuICogQHBhcmFtIHtGdW5jdGlvbn0gYWZ0ZXIgVGhlIG9yaWdpbmFsIG1ldGhvZFxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZml4IFRoZSBQcmVmaXggbWV0aG9kLiBUaGUgb3V0cHV0IHdpbGwgYmUgdXNlZCBhcyBhcmd1bWVudHMgaW4gdGhlIG9yaWdpbmFsIG1ldGhvZFxuICogQHBhcmFtIHtzdHJpbmd9IFthZnRlck5hbWVdIFdoZW4gdGhlIGFmdGVyIGZ1bmN0aW9uIGFubWUgY2Fubm90IGJlIGV4dHJhY3RlZCwgcGFzcyBpdCBoZXJlXG4gKlxuICogQGZ1bmN0aW9uIHByZWZpeE1ldGhvZFxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5SZXBvc2l0b3J5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVmaXhNZXRob2QoXG4gIG9iajogYW55LFxuICBhZnRlcjogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksXG4gIHByZWZpeDogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksXG4gIGFmdGVyTmFtZT86IHN0cmluZ1xuKSB7XG4gIGFzeW5jIGZ1bmN0aW9uIHdyYXBwZXIodGhpczogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUocHJlZml4LmNhbGwodGhpcywgLi4uYXJncykpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoYWZ0ZXIuYXBwbHkodGhpcywgcmVzdWx0cykpO1xuICB9XG4gIGNvbnN0IHdyYXBwZWQgPSB3cmFwcGVyLmJpbmQob2JqKTtcbiAgY29uc3QgbmFtZSA9IGFmdGVyTmFtZSA/IGFmdGVyTmFtZSA6IGFmdGVyLm5hbWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3cmFwcGVkLCBcIm5hbWVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB2YWx1ZTogbmFtZSxcbiAgfSk7XG4gIG9ialtuYW1lXSA9IHdyYXBwZWQ7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgVXRpbCBtZXRob2QgdG8gY2hhbmdlIGEgbWV0aG9kIG9mIGFuIG9iamVjdCBzdWZmaXhpbmcgaXQgd2l0aCBhbm90aGVyXG4gKiBAcGFyYW0ge2FueX0gb2JqIFRoZSBCYXNlIE9iamVjdFxuICogQHBhcmFtIHtGdW5jdGlvbn0gYmVmb3JlIFRoZSBvcmlnaW5hbCBtZXRob2RcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHN1ZmZpeCBUaGUgUHJlZml4IG1ldGhvZC4gVGhlIG91dHB1dCB3aWxsIGJlIHVzZWQgYXMgYXJndW1lbnRzIGluIHRoZSBvcmlnaW5hbCBtZXRob2RcbiAqIEBwYXJhbSB7c3RyaW5nfSBbYmVmb3JlTmFtZV0gV2hlbiB0aGUgYWZ0ZXIgZnVuY3Rpb24gYW5tZSBjYW5ub3QgYmUgZXh0cmFjdGVkLCBwYXNzIGl0IGhlcmVcbiAqXG4gKiBAZnVuY3Rpb24gc3VmZml4TWV0aG9kXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzLlJlcG9zaXRvcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1ZmZpeE1ldGhvZChcbiAgb2JqOiBhbnksXG4gIGJlZm9yZTogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksXG4gIHN1ZmZpeDogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksXG4gIGJlZm9yZU5hbWU/OiBzdHJpbmdcbikge1xuICBhc3luYyBmdW5jdGlvbiB3cmFwcGVyKHRoaXM6IGFueSwgLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGJlZm9yZS5jYWxsKHRoaXMsIC4uLmFyZ3MpKTtcbiAgICByZXR1cm4gc3VmZml4LmNhbGwodGhpcywgLi4ucmVzdWx0cyk7XG4gIH1cbiAgY29uc3Qgd3JhcHBlZCA9IHdyYXBwZXIuYmluZChvYmopO1xuICBjb25zdCBuYW1lID0gYmVmb3JlTmFtZSA/IGJlZm9yZU5hbWUgOiBiZWZvcmUubmFtZTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdyYXBwZWQsIFwibmFtZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiBuYW1lLFxuICB9KTtcbiAgb2JqW25hbWVdID0gd3JhcHBlZDtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBVdGlsIG1ldGhvZCB0byB3cmFwIGEgbWV0aG9kIG9mIGFuIG9iamVjdCB3aXRoIGFkZGl0aW9uYWwgbG9naWNcbiAqXG4gKiBAcGFyYW0ge2FueX0gb2JqIFRoZSBCYXNlIE9iamVjdFxuICogQHBhcmFtIHtGdW5jdGlvbn0gYmVmb3JlIHRoZSBtZXRob2QgdG8gYmUgcHJlZml4ZWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG1ldGhvZCB0aGUgbWV0aG9kIHRvIGJlIHdyYXBwZWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGFmdGVyIFRoZSBtZXRob2QgdG8gYmUgc3VmZml4ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWV0aG9kTmFtZV0gV2hlbiB0aGUgYWZ0ZXIgZnVuY3Rpb24gYW5tZSBjYW5ub3QgYmUgZXh0cmFjdGVkLCBwYXNzIGl0IGhlcmVcbiAqXG4gKiBAZnVuY3Rpb24gd3JhcE1ldGhvZFdpdGhDb250ZXh0XG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzLlJlcG9zaXRvcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBNZXRob2RXaXRoQ29udGV4dChcbiAgb2JqOiBhbnksXG4gIGJlZm9yZTogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksXG4gIG1ldGhvZDogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksXG4gIGFmdGVyOiAoLi4uYXJnczogYW55W10pID0+IGFueSxcbiAgbWV0aG9kTmFtZT86IHN0cmluZ1xuKSB7XG4gIGFzeW5jIGZ1bmN0aW9uIHdyYXBwZXIodGhpczogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGxldCB0cmFuc2Zvcm1lZEFyZ3MgPSBiZWZvcmUuY2FsbChvYmosIC4uLmFyZ3MpO1xuICAgIGlmICh0cmFuc2Zvcm1lZEFyZ3MgaW5zdGFuY2VvZiBQcm9taXNlKVxuICAgICAgdHJhbnNmb3JtZWRBcmdzID0gYXdhaXQgdHJhbnNmb3JtZWRBcmdzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB0cmFuc2Zvcm1lZEFyZ3NbdHJhbnNmb3JtZWRBcmdzLmxlbmd0aCAtIDFdIGFzIGFueTtcbiAgICBpZiAoIShjb250ZXh0IGluc3RhbmNlb2YgQ29udGV4dCkpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk1pc3NpbmcgYSBjb250ZXh0XCIpO1xuICAgIGxldCByZXN1bHRzID0gYXdhaXQgbWV0aG9kLmNhbGwob2JqLCAuLi50cmFuc2Zvcm1lZEFyZ3MpO1xuICAgIGlmIChyZXN1bHRzIGluc3RhbmNlb2YgUHJvbWlzZSkgcmVzdWx0cyA9IGF3YWl0IHJlc3VsdHM7XG4gICAgcmVzdWx0cyA9IGFmdGVyLmNhbGwodGhpcywgcmVzdWx0cywgY29udGV4dCk7XG4gICAgaWYgKHJlc3VsdHMgaW5zdGFuY2VvZiBQcm9taXNlKSByZXN1bHRzID0gYXdhaXQgcmVzdWx0cztcbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuICBjb25zdCB3cmFwcGVkID0gd3JhcHBlci5iaW5kKG9iaik7XG4gIGNvbnN0IG5hbWUgPSBtZXRob2ROYW1lID8gbWV0aG9kTmFtZSA6IG1ldGhvZC5uYW1lO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkod3JhcHBlZCwgXCJuYW1lXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgdmFsdWU6IG5hbWUsXG4gIH0pO1xuICBvYmpbbmFtZV0gPSB3cmFwcGVkO1xufVxuIl19
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS93cmFwcGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLG9DQW1CQztBQWFELG9DQW1CQztBQWVELHNEQTZCQztBQTdHRCx1Q0FBb0M7QUFDcEMscUNBQXlDO0FBRXpDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQixZQUFZLENBQzFCLEdBQVEsRUFDUixLQUE4QixFQUM5QixNQUErQixFQUMvQixTQUFrQjtJQUVsQixLQUFLLFVBQVUsT0FBTyxDQUFZLEdBQUcsSUFBVztRQUM5QyxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ2hELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRTtRQUNyQyxVQUFVLEVBQUUsSUFBSTtRQUNoQixZQUFZLEVBQUUsSUFBSTtRQUNsQixRQUFRLEVBQUUsS0FBSztRQUNmLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FBQyxDQUFDO0lBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQztBQUN0QixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsR0FBUSxFQUNSLE1BQStCLEVBQy9CLE1BQStCLEVBQy9CLFVBQW1CO0lBRW5CLEtBQUssVUFBVSxPQUFPLENBQVksR0FBRyxJQUFXO1FBQzlDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRTtRQUNyQyxVQUFVLEVBQUUsSUFBSTtRQUNoQixZQUFZLEVBQUUsSUFBSTtRQUNsQixRQUFRLEVBQUUsS0FBSztRQUNmLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FBQyxDQUFDO0lBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQztBQUN0QixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLEdBQVEsRUFDUixNQUErQixFQUMvQixNQUErQixFQUMvQixLQUE4QixFQUM5QixVQUFtQjtJQUVuQixLQUFLLFVBQVUsT0FBTyxDQUFZLEdBQUcsSUFBVztRQUM5QyxJQUFJLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksZUFBZSxZQUFZLE9BQU87WUFDcEMsZUFBZSxHQUFHLE1BQU0sZUFBZSxDQUFDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBUSxDQUFDO1FBQ25FLElBQUksQ0FBQyxDQUFDLE9BQU8sWUFBWSxpQkFBTyxDQUFDO1lBQy9CLE1BQU0sSUFBSSxzQkFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDL0MsSUFBSSxPQUFPLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDO1FBQ3pELElBQUksT0FBTyxZQUFZLE9BQU87WUFBRSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUM7UUFDeEQsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sWUFBWSxPQUFPO1lBQUUsT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDO1FBQ3hELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRTtRQUNyQyxVQUFVLEVBQUUsSUFBSTtRQUNoQixZQUFZLEVBQUUsSUFBSTtRQUNsQixRQUFRLEVBQUUsS0FBSztRQUNmLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FBQyxDQUFDO0lBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCIuL0NvbnRleHRcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBVdGlsIG1ldGhvZCB0byBjaGFuZ2UgYSBtZXRob2Qgb2YgYW4gb2JqZWN0IHByZWZpeGluZyBpdCB3aXRoIGFub3RoZXJcbiAqIEBwYXJhbSB7YW55fSBvYmogVGhlIEJhc2UgT2JqZWN0XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBhZnRlciBUaGUgb3JpZ2luYWwgbWV0aG9kXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVmaXggVGhlIFByZWZpeCBtZXRob2QuIFRoZSBvdXRwdXQgd2lsbCBiZSB1c2VkIGFzIGFyZ3VtZW50cyBpbiB0aGUgb3JpZ2luYWwgbWV0aG9kXG4gKiBAcGFyYW0ge3N0cmluZ30gW2FmdGVyTmFtZV0gV2hlbiB0aGUgYWZ0ZXIgZnVuY3Rpb24gYW5tZSBjYW5ub3QgYmUgZXh0cmFjdGVkLCBwYXNzIGl0IGhlcmVcbiAqXG4gKiBAZnVuY3Rpb24gcHJlZml4TWV0aG9kXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzLlJlcG9zaXRvcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZWZpeE1ldGhvZChcbiAgb2JqOiBhbnksXG4gIGFmdGVyOiAoLi4uYXJnczogYW55W10pID0+IGFueSxcbiAgcHJlZml4OiAoLi4uYXJnczogYW55W10pID0+IGFueSxcbiAgYWZ0ZXJOYW1lPzogc3RyaW5nXG4pIHtcbiAgYXN5bmMgZnVuY3Rpb24gd3JhcHBlcih0aGlzOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UucmVzb2x2ZShwcmVmaXguY2FsbCh0aGlzLCAuLi5hcmdzKSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShhZnRlci5hcHBseSh0aGlzLCByZXN1bHRzKSk7XG4gIH1cbiAgY29uc3Qgd3JhcHBlZCA9IHdyYXBwZXIuYmluZChvYmopO1xuICBjb25zdCBuYW1lID0gYWZ0ZXJOYW1lID8gYWZ0ZXJOYW1lIDogYWZ0ZXIubmFtZTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdyYXBwZWQsIFwibmFtZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiBuYW1lLFxuICB9KTtcbiAgb2JqW25hbWVdID0gd3JhcHBlZDtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBVdGlsIG1ldGhvZCB0byBjaGFuZ2UgYSBtZXRob2Qgb2YgYW4gb2JqZWN0IHN1ZmZpeGluZyBpdCB3aXRoIGFub3RoZXJcbiAqIEBwYXJhbSB7YW55fSBvYmogVGhlIEJhc2UgT2JqZWN0XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBiZWZvcmUgVGhlIG9yaWdpbmFsIG1ldGhvZFxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3VmZml4IFRoZSBQcmVmaXggbWV0aG9kLiBUaGUgb3V0cHV0IHdpbGwgYmUgdXNlZCBhcyBhcmd1bWVudHMgaW4gdGhlIG9yaWdpbmFsIG1ldGhvZFxuICogQHBhcmFtIHtzdHJpbmd9IFtiZWZvcmVOYW1lXSBXaGVuIHRoZSBhZnRlciBmdW5jdGlvbiBhbm1lIGNhbm5vdCBiZSBleHRyYWN0ZWQsIHBhc3MgaXQgaGVyZVxuICpcbiAqIEBmdW5jdGlvbiBzdWZmaXhNZXRob2RcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnMuUmVwb3NpdG9yeVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3VmZml4TWV0aG9kKFxuICBvYmo6IGFueSxcbiAgYmVmb3JlOiAoLi4uYXJnczogYW55W10pID0+IGFueSxcbiAgc3VmZml4OiAoLi4uYXJnczogYW55W10pID0+IGFueSxcbiAgYmVmb3JlTmFtZT86IHN0cmluZ1xuKSB7XG4gIGFzeW5jIGZ1bmN0aW9uIHdyYXBwZXIodGhpczogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoYmVmb3JlLmNhbGwodGhpcywgLi4uYXJncykpO1xuICAgIHJldHVybiBzdWZmaXguY2FsbCh0aGlzLCAuLi5yZXN1bHRzKTtcbiAgfVxuICBjb25zdCB3cmFwcGVkID0gd3JhcHBlci5iaW5kKG9iaik7XG4gIGNvbnN0IG5hbWUgPSBiZWZvcmVOYW1lID8gYmVmb3JlTmFtZSA6IGJlZm9yZS5uYW1lO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkod3JhcHBlZCwgXCJuYW1lXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgdmFsdWU6IG5hbWUsXG4gIH0pO1xuICBvYmpbbmFtZV0gPSB3cmFwcGVkO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFV0aWwgbWV0aG9kIHRvIHdyYXAgYSBtZXRob2Qgb2YgYW4gb2JqZWN0IHdpdGggYWRkaXRpb25hbCBsb2dpY1xuICpcbiAqIEBwYXJhbSB7YW55fSBvYmogVGhlIEJhc2UgT2JqZWN0XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBiZWZvcmUgdGhlIG1ldGhvZCB0byBiZSBwcmVmaXhlZFxuICogQHBhcmFtIHtGdW5jdGlvbn0gbWV0aG9kIHRoZSBtZXRob2QgdG8gYmUgd3JhcHBlZFxuICogQHBhcmFtIHtGdW5jdGlvbn0gYWZ0ZXIgVGhlIG1ldGhvZCB0byBiZSBzdWZmaXhlZFxuICogQHBhcmFtIHtzdHJpbmd9IFttZXRob2ROYW1lXSBXaGVuIHRoZSBhZnRlciBmdW5jdGlvbiBhbm1lIGNhbm5vdCBiZSBleHRyYWN0ZWQsIHBhc3MgaXQgaGVyZVxuICpcbiAqIEBmdW5jdGlvbiB3cmFwTWV0aG9kV2l0aENvbnRleHRcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnMuUmVwb3NpdG9yeVxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcE1ldGhvZFdpdGhDb250ZXh0KFxuICBvYmo6IGFueSxcbiAgYmVmb3JlOiAoLi4uYXJnczogYW55W10pID0+IGFueSxcbiAgbWV0aG9kOiAoLi4uYXJnczogYW55W10pID0+IGFueSxcbiAgYWZ0ZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55LFxuICBtZXRob2ROYW1lPzogc3RyaW5nXG4pIHtcbiAgYXN5bmMgZnVuY3Rpb24gd3JhcHBlcih0aGlzOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgbGV0IHRyYW5zZm9ybWVkQXJncyA9IGJlZm9yZS5jYWxsKG9iaiwgLi4uYXJncyk7XG4gICAgaWYgKHRyYW5zZm9ybWVkQXJncyBpbnN0YW5jZW9mIFByb21pc2UpXG4gICAgICB0cmFuc2Zvcm1lZEFyZ3MgPSBhd2FpdCB0cmFuc2Zvcm1lZEFyZ3M7XG4gICAgY29uc3QgY29udGV4dCA9IHRyYW5zZm9ybWVkQXJnc1t0cmFuc2Zvcm1lZEFyZ3MubGVuZ3RoIC0gMV0gYXMgYW55O1xuICAgIGlmICghKGNvbnRleHQgaW5zdGFuY2VvZiBDb250ZXh0KSlcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWlzc2luZyBhIGNvbnRleHRcIik7XG4gICAgbGV0IHJlc3VsdHMgPSBhd2FpdCBtZXRob2QuY2FsbChvYmosIC4uLnRyYW5zZm9ybWVkQXJncyk7XG4gICAgaWYgKHJlc3VsdHMgaW5zdGFuY2VvZiBQcm9taXNlKSByZXN1bHRzID0gYXdhaXQgcmVzdWx0cztcbiAgICByZXN1bHRzID0gYWZ0ZXIuY2FsbCh0aGlzLCByZXN1bHRzLCBjb250ZXh0KTtcbiAgICBpZiAocmVzdWx0cyBpbnN0YW5jZW9mIFByb21pc2UpIHJlc3VsdHMgPSBhd2FpdCByZXN1bHRzO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG4gIGNvbnN0IHdyYXBwZWQgPSB3cmFwcGVyLmJpbmQob2JqKTtcbiAgY29uc3QgbmFtZSA9IG1ldGhvZE5hbWUgPyBtZXRob2ROYW1lIDogbWV0aG9kLm5hbWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3cmFwcGVkLCBcIm5hbWVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB2YWx1ZTogbmFtZSxcbiAgfSk7XG4gIG9ialtuYW1lXSA9IHdyYXBwZWQ7XG59XG4iXX0=
|