@decaf-ts/for-fabric 0.4.9 → 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/for-fabric.cjs +18 -6
- package/dist/for-fabric.js +18 -6
- package/lib/contract/models/BaseModel.cjs +3 -3
- package/lib/contract/models/OtherProductShared.cjs +2 -3
- package/lib/contract/models/history-dec.cjs +15 -29
- package/lib/contracts/ContractAdapter.cjs +21 -5
- package/lib/contracts/ContractContext.cjs +10 -3
- package/lib/contracts/FabricContractSequence.cjs +114 -13
- package/lib/contracts/FabricContractSequence.d.ts +6 -0
- package/lib/contracts/crud/serialized-crud-contract.cjs +1 -1
- package/lib/esm/contract/models/BaseModel.js +3 -3
- package/lib/esm/contract/models/OtherProductShared.js +3 -4
- package/lib/esm/contract/models/history-dec.js +17 -31
- package/lib/esm/contracts/ContractAdapter.js +21 -5
- package/lib/esm/contracts/ContractContext.js +10 -3
- package/lib/esm/contracts/FabricContractSequence.d.ts +6 -0
- package/lib/esm/contracts/FabricContractSequence.js +114 -13
- package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
- package/lib/esm/shared/decorators.js +27 -7
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/shared/decorators.cjs +27 -7
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -13,7 +13,7 @@ exports.BaseModel = void 0;
|
|
|
13
13
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
14
14
|
const core_1 = require("@decaf-ts/core");
|
|
15
15
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
16
|
-
const
|
|
16
|
+
const core_2 = require("@decaf-ts/core");
|
|
17
17
|
const index_1 = require("./../../shared/index.cjs");
|
|
18
18
|
let BaseModel = class BaseModel extends decorator_validation_1.Model {
|
|
19
19
|
constructor(arg) {
|
|
@@ -32,11 +32,11 @@ __decorate([
|
|
|
32
32
|
__metadata("design:type", Date)
|
|
33
33
|
], BaseModel.prototype, "updatedAt", void 0);
|
|
34
34
|
__decorate([
|
|
35
|
-
(0,
|
|
35
|
+
(0, core_2.version)(true),
|
|
36
36
|
__metadata("design:type", Number)
|
|
37
37
|
], BaseModel.prototype, "version", void 0);
|
|
38
38
|
exports.BaseModel = BaseModel = __decorate([
|
|
39
39
|
(0, decoration_1.uses)(index_1.FabricFlavour),
|
|
40
40
|
__metadata("design:paramtypes", [Object])
|
|
41
41
|
], BaseModel);
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZU1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRyYWN0L21vZGVscy9CYXNlTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUVBQXNFO0FBQ3RFLHlDQUE2RTtBQUM3RSxxREFBNEM7QUFDNUMseUNBQXlDO0FBQ3pDLG9EQUFtRDtBQUc1QyxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVUsU0FBUSw0QkFBSztJQVVsQyxZQUFZLEdBQXlCO1FBQ25DLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDRixDQUFBO0FBYlksOEJBQVM7QUFHcEI7SUFGQyxJQUFBLGdCQUFTLEdBQUU7SUFDWCxJQUFBLFlBQUssRUFBQyxDQUFDLHFCQUFjLENBQUMsR0FBRyxFQUFFLHFCQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7OEJBQ3BDLElBQUk7NENBQUM7QUFHakI7SUFGQyxJQUFBLGdCQUFTLEdBQUU7SUFDWCxJQUFBLFlBQUssRUFBQyxDQUFDLHFCQUFjLENBQUMsR0FBRyxFQUFFLHFCQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7OEJBQ3BDLElBQUk7NENBQUM7QUFFakI7SUFEQyxJQUFBLGNBQU8sRUFBQyxJQUFJLENBQUM7OzBDQUNHO29CQVJOLFNBQVM7SUFEckIsSUFBQSxpQkFBSSxFQUFDLHFCQUFhLENBQUM7O0dBQ1AsU0FBUyxDQWFyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsLCB0eXBlIE1vZGVsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgY3JlYXRlZEF0LCBpbmRleCwgT3JkZXJEaXJlY3Rpb24sIHVwZGF0ZWRBdCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgdXNlcyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRmFicmljRmxhdm91ciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvaW5kZXhcIjtcblxuQHVzZXMoRmFicmljRmxhdm91cilcbmV4cG9ydCBjbGFzcyBCYXNlTW9kZWwgZXh0ZW5kcyBNb2RlbCB7XG4gIEBjcmVhdGVkQXQoKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgY3JlYXRlZEF0ITogRGF0ZTtcbiAgQHVwZGF0ZWRBdCgpXG4gIEBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICB1cGRhdGVkQXQhOiBEYXRlO1xuICBAdmVyc2lvbih0cnVlKVxuICB2ZXJzaW9uITogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGFyZz86IE1vZGVsQXJnPEJhc2VNb2RlbD4pIHtcbiAgICBzdXBlcihhcmcpO1xuICB9XG59XG4iXX0=
|
|
@@ -18,7 +18,6 @@ const BaseIdentifiedModel_1 = require("./BaseIdentifiedModel.cjs");
|
|
|
18
18
|
const gtin_1 = require("./gtin.cjs");
|
|
19
19
|
const decorators_private_1 = require("./decorators-private.cjs");
|
|
20
20
|
const index_1 = require("./../../shared/index.cjs");
|
|
21
|
-
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
22
21
|
const OtherProductStrength_1 = require("./OtherProductStrength.cjs");
|
|
23
22
|
const OtherMarket_1 = require("./OtherMarket.cjs");
|
|
24
23
|
const decorators_1 = require("./decorators.cjs");
|
|
@@ -72,7 +71,7 @@ __decorate([
|
|
|
72
71
|
__metadata("design:type", Object)
|
|
73
72
|
], OtherProductShared.prototype, "imageData", void 0);
|
|
74
73
|
__decorate([
|
|
75
|
-
(0,
|
|
74
|
+
(0, core_1.version)(true),
|
|
76
75
|
__metadata("design:type", Number)
|
|
77
76
|
], OtherProductShared.prototype, "counter", void 0);
|
|
78
77
|
__decorate([
|
|
@@ -97,4 +96,4 @@ exports.OtherProductShared = OtherProductShared = __decorate([
|
|
|
97
96
|
(0, decorator_validation_1.model)(),
|
|
98
97
|
__metadata("design:paramtypes", [Object])
|
|
99
98
|
], OtherProductShared);
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3RoZXJQcm9kdWN0U2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRyYWN0L21vZGVscy9PdGhlclByb2R1Y3RTaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EseUVBQWlFO0FBQ2pFLHlDQVd3QjtBQUN4QixvRkFBb0Y7QUFDcEYscURBQTRDO0FBQzVDLG1FQUE0RDtBQUM1RCxxQ0FBOEI7QUFDOUIsaUVBQTZDO0FBQzdDLG9EQU00QjtBQUM1QixxRUFBOEQ7QUFDOUQsbURBQTRDO0FBQzVDLGlEQUFrRDtBQUNsRCxtREFBMkM7QUFDM0MsK0RBQXdEO0FBT2pELElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQW1CLFNBQVEseUNBQW1CO0lBK0V6RCxZQUFZLElBQW1DO1FBQzdDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQXJEZCxrQkFBYSxHQUFZLEtBQUssQ0FBQztJQXNEL0IsQ0FBQztDQUNGLENBQUE7QUFsRlksZ0RBQWtCO0FBUTdCO0lBUEMsSUFBQSxTQUFFLEdBQUU7SUFDSixJQUFBLFdBQUksR0FBRTtJQUNOLElBQUEsd0JBQVUsR0FBRTtJQUNaLElBQUEsK0JBQWtCLEdBQUU7SUFDcEIsSUFBQSxjQUFNLEVBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDO0lBQ3BDLElBQUEsMEJBQUssRUFBQyxrQkFBa0IsQ0FBQztJQUN6QixJQUFBLHVCQUFnQixHQUFFOzt1REFDRTtBQU1yQjtJQUpDLElBQUEsYUFBTSxHQUFFO0lBQ1IsSUFBQSwrQkFBUSxHQUFFO0lBQ1YsSUFBQSx1QkFBZ0IsR0FBRTtJQUNsQixJQUFBLFlBQUssRUFBQyxDQUFDLHFCQUFjLENBQUMsR0FBRyxFQUFFLHFCQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7O3dEQUMxQjtBQU10QjtJQUpDLElBQUEsYUFBTSxHQUFFO0lBQ1IsSUFBQSwrQkFBUSxHQUFFO0lBQ1YsSUFBQSx1QkFBZ0IsR0FBRTtJQUNsQixJQUFBLFlBQUssRUFBQyxDQUFDLHFCQUFjLENBQUMsR0FBRyxFQUFFLHFCQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7O2dFQUNsQjtBQUc5QjtJQURDLElBQUEsYUFBTSxHQUFFOztnRUFDcUI7QUFJOUI7SUFGQyxJQUFBLGFBQU0sR0FBRTtJQUNSLElBQUEsWUFBSyxFQUFDLENBQUMscUJBQWMsQ0FBQyxHQUFHLEVBQUUscUJBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQzs7eURBQ2pCO0FBVS9CO0lBUkMsSUFBQSxlQUFRLEVBQ1AsR0FBRyxFQUFFLENBQUMscUNBQWlCLEVBQ3ZCO1FBQ0UsTUFBTSxFQUFFLGNBQU8sQ0FBQyxPQUFPO1FBQ3ZCLE1BQU0sRUFBRSxjQUFPLENBQUMsT0FBTztLQUN4QixFQUNELEtBQUssQ0FDTjs7cURBQ3NDO0FBc0J2QztJQURDLElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQzs7bURBQ0c7QUFPakI7SUFMQyxJQUFBLGdCQUFTLEVBQ1IsR0FBRyxFQUFFLENBQUMsMkNBQW9CLEVBQzFCLEVBQUUsTUFBTSxFQUFFLGNBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQU8sQ0FBQyxPQUFPLEVBQUUsRUFDcEQsSUFBSSxDQUNMOztxREFDa0M7QUFPbkM7SUFMQyxJQUFBLGdCQUFTLEVBQ1IsR0FBRyxFQUFFLENBQUMseUJBQVcsRUFDakIsRUFBRSxNQUFNLEVBQUUsY0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBTyxDQUFDLE9BQU8sRUFBRSxFQUNwRCxJQUFJLENBQ0w7O21EQUN1QjtBQUl4QjtJQUZDLElBQUEsYUFBTSxHQUFFO0lBQ1IsSUFBQSxlQUFPLEdBQUU7O21EQUNPOzZCQTdFTixrQkFBa0I7SUFMOUIsSUFBQSxrQkFBVSxFQUFDLElBQUEsMkJBQW1CLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxJQUFBLGlCQUFJLEVBQUMscUJBQWEsQ0FBQztJQUNwQiwyQ0FBMkM7O0lBQzFDLElBQUEsWUFBSyxFQUFDLHNCQUFzQixDQUFDO0lBQzdCLElBQUEsNEJBQUssR0FBRTs7R0FDSyxrQkFBa0IsQ0FrRjlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNb2RlbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IG1vZGVsLCByZXF1aXJlZCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIENhc2NhZGUsXG4gIGNvbHVtbixcbiAgZGVmYXVsdFF1ZXJ5QXR0cixcbiAgaW5kZXgsXG4gIG9uZVRvTWFueSxcbiAgb25lVG9PbmUsXG4gIE9yZGVyRGlyZWN0aW9uLFxuICBwayxcbiAgdGFibGUsXG4gIHZlcnNpb24sXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuLy8gaW1wb3J0IHtCbG9ja09wZXJhdGlvbnMsIE9wZXJhdGlvbktleXMsIHJlYWRvbmx5fSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IHVzZXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEJhc2VJZGVudGlmaWVkTW9kZWwgfSBmcm9tIFwiLi9CYXNlSWRlbnRpZmllZE1vZGVsXCI7XG5pbXBvcnQgeyBndGluIH0gZnJvbSBcIi4vZ3RpblwiO1xuaW1wb3J0IHsgYXVkaXQgfSBmcm9tIFwiLi9kZWNvcmF0b3JzLXByaXZhdGVcIjtcbmltcG9ydCB7XG4gIEZhYnJpY0ZsYXZvdXIsXG4gIG1pcnJvcixcbiAgTmFtZXNwYWNlQ29sbGVjdGlvbixcbiAgb3duZWRCeSxcbiAgc2hhcmVkRGF0YSxcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZC9pbmRleFwiO1xuaW1wb3J0IHsgT3RoZXJQcm9kdWN0U3RyZW5ndGggfSBmcm9tIFwiLi9PdGhlclByb2R1Y3RTdHJlbmd0aFwiO1xuaW1wb3J0IHsgT3RoZXJNYXJrZXQgfSBmcm9tIFwiLi9PdGhlck1hcmtldFwiO1xuaW1wb3J0IHsgYXNzaWduUHJvZHVjdE93bmVyIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgaGlzdG9yeURlYyB9IGZyb20gXCIuL2hpc3RvcnktZGVjXCI7XG5pbXBvcnQgeyBPdGhlclByb2R1Y3RJbWFnZSB9IGZyb20gXCIuL090aGVyUHJvZHVjdEltYWdlXCI7XG5cbkBzaGFyZWREYXRhKE5hbWVzcGFjZUNvbGxlY3Rpb24oXCJkZWNhZi1uYW1lc3BhY2VcIikpXG5AdXNlcyhGYWJyaWNGbGF2b3VyKVxuLy8gQEJsb2NrT3BlcmF0aW9ucyhbT3BlcmF0aW9uS2V5cy5ERUxFVEVdKVxuQHRhYmxlKFwib3RoZXJfcHJvZHVjdF9zaGFyZWRcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgT3RoZXJQcm9kdWN0U2hhcmVkIGV4dGVuZHMgQmFzZUlkZW50aWZpZWRNb2RlbCB7XG4gIEBwaygpXG4gIEBndGluKClcbiAgQGhpc3RvcnlEZWMoKVxuICBAYXNzaWduUHJvZHVjdE93bmVyKClcbiAgQG1pcnJvcihcIm1pcnJvci1jb2xsZWN0aW9uXCIsIFwib3JnLWJcIilcbiAgQGF1ZGl0KE90aGVyUHJvZHVjdFNoYXJlZClcbiAgQGRlZmF1bHRRdWVyeUF0dHIoKVxuICBwcm9kdWN0Q29kZSE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgQGRlZmF1bHRRdWVyeUF0dHIoKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgaW52ZW50ZWROYW1lITogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICBAZGVmYXVsdFF1ZXJ5QXR0cigpXG4gIEBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICBuYW1lTWVkaWNpbmFsUHJvZHVjdCE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgaW50ZXJuYWxNYXRlcmlhbENvZGU/OiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICBwcm9kdWN0UmVjYWxsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQG9uZVRvT25lKFxuICAgICgpID0+IE90aGVyUHJvZHVjdEltYWdlLFxuICAgIHtcbiAgICAgIHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICAgICAgZGVsZXRlOiBDYXNjYWRlLkNBU0NBREUsXG4gICAgfSxcbiAgICBmYWxzZVxuICApXG4gIGltYWdlRGF0YT86IHN0cmluZyB8IE90aGVyUHJvZHVjdEltYWdlO1xuICAvL1xuICAvLyBAY29sdW1uKClcbiAgLy8gZmxhZ0VuYWJsZUFkdmVyc2VFdmVudFJlcG9ydGluZz86IGJvb2xlYW47XG4gIC8vXG4gIC8vIEBjb2x1bW4oKVxuICAvLyBhZHZlcnNlRXZlbnRSZXBvcnRpbmdVUkw/OiBzdHJpbmc7XG4gIC8vXG4gIC8vIEBjb2x1bW4oKVxuICAvLyBmbGFnRW5hYmxlQUNGUHJvZHVjdENoZWNrPzogYm9vbGVhbjtcbiAgLy9cbiAgLy8gQGNvbHVtbigpXG4gIC8vIEB1cmwoKVxuICAvLyBhY2ZQcm9kdWN0Q2hlY2tVUkw/OiBzdHJpbmc7XG4gIC8vXG4gIC8vIEBjb2x1bW4oKVxuICAvLyBwYXRpZW50U3BlY2lmaWNMZWFmbGV0Pzogc3RyaW5nO1xuICAvL1xuICAvLyBAY29sdW1uKClcbiAgLy8gaGVhbHRoY2FyZVByYWN0aXRpb25lckluZm8/OiBzdHJpbmc7XG5cbiAgQHZlcnNpb24odHJ1ZSlcbiAgY291bnRlcj86IG51bWJlcjtcblxuICBAb25lVG9NYW55KFxuICAgICgpID0+IE90aGVyUHJvZHVjdFN0cmVuZ3RoLFxuICAgIHsgdXBkYXRlOiBDYXNjYWRlLkNBU0NBREUsIGRlbGV0ZTogQ2FzY2FkZS5DQVNDQURFIH0sXG4gICAgdHJ1ZVxuICApXG4gIHN0cmVuZ3RocyE6IE90aGVyUHJvZHVjdFN0cmVuZ3RoW107XG5cbiAgQG9uZVRvTWFueShcbiAgICAoKSA9PiBPdGhlck1hcmtldCxcbiAgICB7IHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLCBkZWxldGU6IENhc2NhZGUuQ0FTQ0FERSB9LFxuICAgIHRydWVcbiAgKVxuICBtYXJrZXRzITogT3RoZXJNYXJrZXRbXTtcblxuICBAY29sdW1uKClcbiAgQG93bmVkQnkoKVxuICBvd25lZEJ5Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFyZ3M/OiBNb2RlbEFyZzxPdGhlclByb2R1Y3RTaGFyZWQ+KSB7XG4gICAgc3VwZXIoYXJncyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -9,38 +9,19 @@ const decoration_1 = require("@decaf-ts/decoration");
|
|
|
9
9
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
10
10
|
const decorators_1 = require("./decorators.cjs");
|
|
11
11
|
const History_1 = require("./History.cjs");
|
|
12
|
-
/**
|
|
13
|
-
* Correctly extracts the version number from a model by inspecting
|
|
14
|
-
* the property decorated with `@version()`.
|
|
15
|
-
*
|
|
16
|
-
* `Model.versionProp()` has a bug where it returns `Object.keys(meta)[0]`
|
|
17
|
-
* (the first metadata key overall) instead of the actual version property name.
|
|
18
|
-
* This helper uses `Metadata.get()` correctly to find the `DBKeys.VERSION`
|
|
19
|
-
* entry and then reads the first property name from it.
|
|
20
|
-
*
|
|
21
|
-
* @returns the version number (>= 1), or undefined if none found.
|
|
22
|
-
*/
|
|
23
|
-
function getVersionOf(model) {
|
|
24
|
-
const meta = decoration_1.Metadata.get(model.constructor);
|
|
25
|
-
if (!meta)
|
|
26
|
-
return undefined;
|
|
27
|
-
const versionMeta = meta[db_decorators_1.DBKeys.VERSION];
|
|
28
|
-
if (!versionMeta || typeof versionMeta !== "object")
|
|
29
|
-
return undefined;
|
|
30
|
-
const versionProp = Object.keys(versionMeta)[0];
|
|
31
|
-
if (!versionProp)
|
|
32
|
-
return undefined;
|
|
33
|
-
const value = model[versionProp];
|
|
34
|
-
return typeof value === "number" && value >= 1 ? value : undefined;
|
|
35
|
-
}
|
|
36
12
|
async function updateHistoryHandler(context, data, key, model, oldModel) {
|
|
37
13
|
if (!context.identity || !context.identity.getID)
|
|
38
14
|
throw new db_decorators_1.InternalError(`Lost context apparently for history`);
|
|
39
15
|
const table = decorator_validation_1.Model.tableName(oldModel);
|
|
40
16
|
const pk = decorator_validation_1.Model.pk(oldModel, true);
|
|
41
|
-
|
|
42
|
-
|
|
17
|
+
let version;
|
|
18
|
+
try {
|
|
19
|
+
version = decorator_validation_1.Model.versionOf(oldModel);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
context.logger.warn(`History for ${table}'s ${pk.toString()} could not be created due to missing version`);
|
|
43
23
|
return; // model has no @version field — skip history
|
|
24
|
+
}
|
|
44
25
|
// Populate relations on a non-mutating copy of oldModel, then convert to a
|
|
45
26
|
// plain object so no model-anchor (__model) keys appear in the stored JSON.
|
|
46
27
|
const populated = await (0, decorators_1.populateRelations)(oldModel, context, this._overrides);
|
|
@@ -67,9 +48,14 @@ async function deleteHistoryHandler(context, data, key, model) {
|
|
|
67
48
|
throw new db_decorators_1.InternalError(`Lost context apparently for history`);
|
|
68
49
|
const table = decorator_validation_1.Model.tableName(model);
|
|
69
50
|
const pk = decorator_validation_1.Model.pk(model, true);
|
|
70
|
-
|
|
71
|
-
|
|
51
|
+
let version;
|
|
52
|
+
try {
|
|
53
|
+
version = decorator_validation_1.Model.versionOf(model);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
context.logger.warn(`History for ${table}'s ${pk.toString()} could not be created due to missing version`);
|
|
72
57
|
return; // model has no @version field — skip history
|
|
58
|
+
}
|
|
73
59
|
// Populate relations on a non-mutating copy of model, then convert to a
|
|
74
60
|
// plain object so no model-anchor (__model) keys appear in the stored JSON.
|
|
75
61
|
const populated = await (0, decorators_1.populateRelations)(model, context, this._overrides);
|
|
@@ -94,4 +80,4 @@ async function deleteHistoryHandler(context, data, key, model) {
|
|
|
94
80
|
function historyDec() {
|
|
95
81
|
return (0, decoration_1.apply)((0, db_decorators_1.onUpdate)(updateHistoryHandler, {}, { priority: 99 }), (0, db_decorators_1.afterDelete)(deleteHistoryHandler, {}, { priority: 99 }), (0, decoration_1.metadata)("history", true));
|
|
96
82
|
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1kZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3QvbW9kZWxzL2hpc3RvcnktZGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBd0NBLG9EQWdEQztBQUVELG9EQThDQztBQUVELGdDQU1DO0FBaEpELHlFQUF1RDtBQUN2RCx5Q0FBNEM7QUFDNUMscURBQThFO0FBQzlFLDJEQU9pQztBQUNqQyxpREFBaUQ7QUFLakQsMkNBQW9DO0FBRXBDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxLQUFZO0lBQ2hDLE1BQU0sSUFBSSxHQUFHLHFCQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFpQyxDQUFDLENBQUM7SUFDbkUsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM1QixNQUFNLFdBQVcsR0FBSSxJQUE0QixDQUFDLHNCQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEUsSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDdEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRCxJQUFJLENBQUMsV0FBVztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ25DLE1BQU0sS0FBSyxHQUFJLEtBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNyRSxDQUFDO0FBRU0sS0FBSyxVQUFVLG9CQUFvQixDQUt4QyxPQUE4QixFQUM5QixJQUFTLEVBQ1QsR0FBWSxFQUNaLEtBQVEsRUFDUixRQUFXO0lBRVgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElB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QUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sUUFBUSxHQUFHLElBQUksaUJBQU8sQ0FBQztRQUMzQixLQUFLO1FBQ0wsR0FBRyxFQUFFLEVBQUU7UUFDUCxPQUFPO1FBQ1AsTUFBTTtLQUNQLENBQUMsQ0FBQztJQUNILE1BQU0sU0FBUyxHQUFHO1FBQ2hCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUNsQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7UUFDMUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLGVBQWUsRUFBRSxJQUFJO0tBQ1UsQ0FBQztJQUVsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUMzQyw2QkFBYSxDQUFDLE1BQU0sRUFDcEIsU0FBUyxFQUNULGlCQUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2pCLGVBQWUsS0FBSyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxPQUFPLG1CQUFtQixPQUFPLENBQUMsRUFBRSxFQUFFLENBQzFGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLElBQUEsa0JBQUssRUFDVixJQUFBLHdCQUFRLEVBQUMsb0JBQTJCLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzNELElBQUEsMkJBQVcsRUFBQyxvQkFBMkIsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDOUQsSUFBQSxxQkFBUSxFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FDMUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IGFwcGx5LCBDb25zdHJ1Y3RvciwgTWV0YWRhdGEsIG1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQge1xuICBhZnRlckRlbGV0ZSxcbiAgREJLZXlzLFxuICBJbnRlcm5hbEVycm9yLFxuICBvblVwZGF0ZSxcbiAgT3BlcmF0aW9uS2V5cyxcbiAgUHJpbWFyeUtleVR5cGUsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgcG9wdWxhdGVSZWxhdGlvbnMgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgRmFicmljQ29udHJhY3RGbGFncyxcbn0gZnJvbSBcIi4uLy4uL2NvbnRyYWN0cy9pbmRleFwiO1xuaW1wb3J0IHsgSGlzdG9yeSB9IGZyb20gXCIuL0hpc3RvcnlcIjtcblxuLyoqXG4gKiBDb3JyZWN0bHkgZXh0cmFjdHMgdGhlIHZlcnNpb24gbnVtYmVyIGZyb20gYSBtb2RlbCBieSBpbnNwZWN0aW5nXG4gKiB0aGUgcHJvcGVydHkgZGVjb3JhdGVkIHdpdGggYEB2ZXJzaW9uKClgLlxuICpcbiAqIGBNb2RlbC52ZXJzaW9uUHJvcCgpYCBoYXMgYSBidWcgd2hlcmUgaXQgcmV0dXJucyBgT2JqZWN0LmtleXMobWV0YSlbMF1gXG4gKiAodGhlIGZpcnN0IG1ldGFkYXRhIGtleSBvdmVyYWxsKSBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgdmVyc2lvbiBwcm9wZXJ0eSBuYW1lLlxuICogVGhpcyBoZWxwZXIgdXNlcyBgTWV0YWRhdGEuZ2V0KClgIGNvcnJlY3RseSB0byBmaW5kIHRoZSBgREJLZXlzLlZFUlNJT05gXG4gKiBlbnRyeSBhbmQgdGhlbiByZWFkcyB0aGUgZmlyc3QgcHJvcGVydHkgbmFtZSBmcm9tIGl0LlxuICpcbiAqIEByZXR1cm5zIHRoZSB2ZXJzaW9uIG51bWJlciAoPj0gMSksIG9yIHVuZGVmaW5lZCBpZiBub25lIGZvdW5kLlxuICovXG5mdW5jdGlvbiBnZXRWZXJzaW9uT2YobW9kZWw6IE1vZGVsKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbWV0YSA9IE1ldGFkYXRhLmdldChtb2RlbC5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RvcjxNb2RlbD4pO1xuICBpZiAoIW1ldGEpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHZlcnNpb25NZXRhID0gKG1ldGEgYXMgUmVjb3JkPHN0cmluZywgYW55PilbREJLZXlzLlZFUlNJT05dO1xuICBpZiAoIXZlcnNpb25NZXRhIHx8IHR5cGVvZiB2ZXJzaW9uTWV0YSAhPT0gXCJvYmplY3RcIikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgdmVyc2lvblByb3AgPSBPYmplY3Qua2V5cyh2ZXJzaW9uTWV0YSlbMF07XG4gIGlmICghdmVyc2lvblByb3ApIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHZhbHVlID0gKG1vZGVsIGFzIGFueSlbdmVyc2lvblByb3BdO1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmIHZhbHVlID49IDEgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUhpc3RvcnlIYW5kbGVyPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBSZXBvc2l0b3J5PE0sIGFueT4sXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gIGRhdGE6IGFueSxcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTSxcbiAgb2xkTW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIWNvbnRleHQuaWRlbnRpdHkgfHwgIWNvbnRleHQuaWRlbnRpdHkuZ2V0SUQpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYExvc3QgY29udGV4dCBhcHBhcmVudGx5IGZvciBoaXN0b3J5YCk7XG5cbiAgY29uc3QgdGFibGUgPSBNb2RlbC50YWJsZU5hbWUob2xkTW9kZWwpO1xuICBjb25zdCBwazogUHJpbWFyeUtleVR5cGUgPSBNb2RlbC5wayhvbGRNb2RlbCwgdHJ1ZSkgYXMgYW55O1xuICBjb25zdCB2ZXJzaW9uID0gZ2V0VmVyc2lvbk9mKG9sZE1vZGVsKTtcbiAgaWYgKHZlcnNpb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuOyAvLyBtb2RlbCBoYXMgbm8gQHZlcnNpb24gZmllbGQg4oCUIHNraXAgaGlzdG9yeVxuXG4gIC8vIFBvcHVsYXRlIHJlbGF0aW9ucyBvbiBhIG5vbi1tdXRhdGluZyBjb3B5IG9mIG9sZE1vZGVsLCB0aGVuIGNvbnZlcnQgdG8gYVxuICAvLyBwbGFpbiBvYmplY3Qgc28gbm8gbW9kZWwtYW5jaG9yIChfX21vZGVsKSBrZXlzIGFwcGVhciBpbiB0aGUgc3RvcmVkIEpTT04uXG4gIGNvbnN0IHBvcHVsYXRlZCA9IGF3YWl0IHBvcHVsYXRlUmVsYXRpb25zKG9sZE1vZGVsLCBjb250ZXh0LCB0aGlzLl9vdmVycmlkZXMpO1xuICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHBvcHVsYXRlZCkpO1xuXG4gIGNvbnN0IHJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsKEhpc3RvcnkpLm92ZXJyaWRlKHRoaXMuX292ZXJyaWRlcyk7XG4gIGNvbnN0IHRvQ3JlYXRlID0gbmV3IEhpc3Rvcnkoe1xuICAgIHRhYmxlLFxuICAgIGtleTogcGssXG4gICAgdmVyc2lvbixcbiAgICByZWNvcmQsXG4gIH0pO1xuICBjb25zdCBvdmVycmlkZXMgPSB7XG4gICAgc3R1YjogY29udGV4dC5zdHViLFxuICAgIGlkZW50aXR5OiBjb250ZXh0LmlkZW50aXR5LFxuICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgZnVsbHlTZWdyZWdhdGVkOiB0cnVlLFxuICB9IGFzIFBhcnRpYWw8RmFicmljQ29udHJhY3RGbGFncz47XG5cbiAgY29uc3QgaGlzdG9yeUN0eCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jb250ZXh0KFxuICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgIG92ZXJyaWRlcyxcbiAgICBIaXN0b3J5XG4gICk7XG5cbiAgY29uc3QgaGlzdG9yeSA9IGF3YWl0IHJlcG8uY3JlYXRlKHRvQ3JlYXRlLCBoaXN0b3J5Q3R4KTtcbiAgY29udGV4dC5sb2dnZXIuaW5mbyhcbiAgICBgSGlzdG9yeSBmb3IgJHt0YWJsZX0ncyAke3BrLnRvU3RyaW5nKCl9IHZlcnNpb24gJHt2ZXJzaW9ufSBzdG9yZWQgd2l0aCBpZCAke2hpc3RvcnkuaWR9YFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlSGlzdG9yeUhhbmRsZXI8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgYW55Pixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgZGF0YTogYW55LFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFjb250ZXh0LmlkZW50aXR5IHx8ICFjb250ZXh0LmlkZW50aXR5LmdldElEKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBMb3N0IGNvbnRleHQgYXBwYXJlbnRseSBmb3IgaGlzdG9yeWApO1xuXG4gIGNvbnN0IHRhYmxlID0gTW9kZWwudGFibGVOYW1lKG1vZGVsKTtcbiAgY29uc3QgcGs6IFByaW1hcnlLZXlUeXBlID0gTW9kZWwucGsobW9kZWwsIHRydWUpIGFzIGFueTtcbiAgY29uc3QgdmVyc2lvbiA9IGdldFZlcnNpb25PZihtb2RlbCk7XG4gIGlmICh2ZXJzaW9uID09PSB1bmRlZmluZWQpIHJldHVybjsgLy8gbW9kZWwgaGFzIG5vIEB2ZXJzaW9uIGZpZWxkIOKAlCBza2lwIGhpc3RvcnlcblxuICAvLyBQb3B1bGF0ZSByZWxhdGlvbnMgb24gYSBub24tbXV0YXRpbmcgY29weSBvZiBtb2RlbCwgdGhlbiBjb252ZXJ0IHRvIGFcbiAgLy8gcGxhaW4gb2JqZWN0IHNvIG5vIG1vZGVsLWFuY2hvciAoX19tb2RlbCkga2V5cyBhcHBlYXIgaW4gdGhlIHN0b3JlZCBKU09OLlxuICBjb25zdCBwb3B1bGF0ZWQgPSBhd2FpdCBwb3B1bGF0ZVJlbGF0aW9ucyhtb2RlbCwgY29udGV4dCwgdGhpcy5fb3ZlcnJpZGVzKTtcbiAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwb3B1bGF0ZWQpKTtcblxuICBjb25zdCByZXBvID0gUmVwb3NpdG9yeS5mb3JNb2RlbChIaXN0b3J5KS5vdmVycmlkZSh0aGlzLl9vdmVycmlkZXMpO1xuICBjb25zdCB0b0NyZWF0ZSA9IG5ldyBIaXN0b3J5KHtcbiAgICB0YWJsZSxcbiAgICBrZXk6IHBrLFxuICAgIHZlcnNpb24sXG4gICAgcmVjb3JkLFxuICB9KTtcbiAgY29uc3Qgb3ZlcnJpZGVzID0ge1xuICAgIHN0dWI6IGNvbnRleHQuc3R1YixcbiAgICBpZGVudGl0eTogY29udGV4dC5pZGVudGl0eSxcbiAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIGZ1bGx5U2VncmVnYXRlZDogdHJ1ZSxcbiAgfSBhcyBQYXJ0aWFsPEZhYnJpY0NvbnRyYWN0RmxhZ3M+O1xuXG4gIGNvbnN0IGhpc3RvcnlDdHggPSBhd2FpdCB0aGlzLmFkYXB0ZXIuY29udGV4dChcbiAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICBvdmVycmlkZXMsXG4gICAgSGlzdG9yeVxuICApO1xuICBjb25zdCBoaXN0b3J5ID0gYXdhaXQgcmVwby5jcmVhdGUodG9DcmVhdGUsIGhpc3RvcnlDdHgpO1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKFxuICAgIGBIaXN0b3J5IGZvciAke3RhYmxlfSdzICR7cGsudG9TdHJpbmcoKX0gdmVyc2lvbiAke3ZlcnNpb259IHN0b3JlZCB3aXRoIGlkICR7aGlzdG9yeS5pZH1gXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoaXN0b3J5RGVjKCkge1xuICByZXR1cm4gYXBwbHkoXG4gICAgb25VcGRhdGUodXBkYXRlSGlzdG9yeUhhbmRsZXIgYXMgYW55LCB7fSwgeyBwcmlvcml0eTogOTkgfSksXG4gICAgYWZ0ZXJEZWxldGUoZGVsZXRlSGlzdG9yeUhhbmRsZXIgYXMgYW55LCB7fSwgeyBwcmlvcml0eTogOTkgfSksXG4gICAgbWV0YWRhdGEoXCJoaXN0b3J5XCIsIHRydWUpXG4gICk7XG59XG4iXX0=
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1kZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3QvbW9kZWxzL2hpc3RvcnktZGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUJBLG9EQXVEQztBQUVELG9EQXFEQztBQUVELGdDQU1DO0FBdklELHlFQUF1RDtBQUN2RCx5Q0FBNEM7QUFDNUMscURBQXVEO0FBQ3ZELDJEQU1pQztBQUNqQyxpREFBaUQ7QUFLakQsMkNBQW9DO0FBRTdCLEtBQUssVUFBVSxvQkFBb0IsQ0FLeEMsT0FBOEIsRUFDOUIsSUFBUyxFQUNULEdBQVksRUFDWixLQUFRLEVBQ1IsUUFBVztJQUVYLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO1FBQzlDLE1BQU0sSUFBSSw2QkFBYSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFFakUsTUFBTSxLQUFLLEdBQUcsNEJBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsTUFBTSxFQUFFLEdBQW1CLDRCQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQVEsQ0FBQztJQUMzRCxJQUFJLE9BQWUsQ0FBQztJQUNwQixJQUFJLENBQUM7UUFDSCxPQUFPLEdBQUcsNEJBQUssQ0FBQyxTQUFTLENBQUMsUUFBZSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNqQixlQUFlLEtBQUssTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLDhDQUE4QyxDQUN0RixDQUFDO1FBQ0YsT0FBTyxDQUFDLDZDQUE2QztJQUN2RCxDQUFDO0lBRUQsMkVBQTJFO0lBQzNFLDRFQUE0RTtJQUM1RSxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsOEJBQWlCLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxD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LENBQUM7SUFFbEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDM0MsNkJBQWEsQ0FBQyxNQUFNLEVBQ3BCLFNBQVMsRUFDVCxpQkFBTyxDQUNSLENBQUM7SUFDRixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNqQixlQUFlLEtBQUssTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksT0FBTyxtQkFBbUIsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUMxRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLFVBQVU7SUFDeEIsT0FBTyxJQUFBLGtCQUFLLEVBQ1YsSUFBQSx3QkFBUSxFQUFDLG9CQUEyQixFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzRCxJQUFBLDJCQUFXLEVBQUMsb0JBQTJCLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlELElBQUEscUJBQVEsRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQzFCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBhcHBseSwgbWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7XG4gIGFmdGVyRGVsZXRlLFxuICBJbnRlcm5hbEVycm9yLFxuICBvblVwZGF0ZSxcbiAgT3BlcmF0aW9uS2V5cyxcbiAgUHJpbWFyeUtleVR5cGUsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgcG9wdWxhdGVSZWxhdGlvbnMgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgRmFicmljQ29udHJhY3RGbGFncyxcbn0gZnJvbSBcIi4uLy4uL2NvbnRyYWN0cy9pbmRleFwiO1xuaW1wb3J0IHsgSGlzdG9yeSB9IGZyb20gXCIuL0hpc3RvcnlcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUhpc3RvcnlIYW5kbGVyPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBSZXBvc2l0b3J5PE0sIGFueT4sXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gIGRhdGE6IGFueSxcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTSxcbiAgb2xkTW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIWNvbnRleHQuaWRlbnRpdHkgfHwgIWNvbnRleHQuaWRlbnRpdHkuZ2V0SUQpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYExvc3QgY29udGV4dCBhcHBhcmVudGx5IGZvciBoaXN0b3J5YCk7XG5cbiAgY29uc3QgdGFibGUgPSBNb2RlbC50YWJsZU5hbWUob2xkTW9kZWwpO1xuICBjb25zdCBwazogUHJpbWFyeUtleVR5cGUgPSBNb2RlbC5wayhvbGRNb2RlbCwgdHJ1ZSkgYXMgYW55O1xuICBsZXQgdmVyc2lvbjogbnVtYmVyO1xuICB0cnkge1xuICAgIHZlcnNpb24gPSBNb2RlbC52ZXJzaW9uT2Yob2xkTW9kZWwgYXMgYW55KTtcbiAgfSBjYXRjaCB7XG4gICAgY29udGV4dC5sb2dnZXIud2FybihcbiAgICAgIGBIaXN0b3J5IGZvciAke3RhYmxlfSdzICR7cGsudG9TdHJpbmcoKX0gY291bGQgbm90IGJlIGNyZWF0ZWQgZHVlIHRvIG1pc3NpbmcgdmVyc2lvbmBcbiAgICApO1xuICAgIHJldHVybjsgLy8gbW9kZWwgaGFzIG5vIEB2ZXJzaW9uIGZpZWxkIOKAlCBza2lwIGhpc3RvcnlcbiAgfVxuXG4gIC8vIFBvcHVsYXRlIHJlbGF0aW9ucyBvbiBhIG5vbi1tdXRhdGluZyBjb3B5IG9mIG9sZE1vZGVsLCB0aGVuIGNvbnZlcnQgdG8gYVxuICAvLyBwbGFpbiBvYmplY3Qgc28gbm8gbW9kZWwtYW5jaG9yIChfX21vZGVsKSBrZXlzIGFwcGVhciBpbiB0aGUgc3RvcmVkIEpTT04uXG4gIGNvbnN0IHBvcHVsYXRlZCA9IGF3YWl0IHBvcHVsYXRlUmVsYXRpb25zKG9sZE1vZGVsLCBjb250ZXh0LCB0aGlzLl9vdmVycmlkZXMpO1xuICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHBvcHVsYXRlZCkpO1xuXG4gIGNvbnN0IHJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsKEhpc3RvcnkpLm92ZXJyaWRlKHRoaXMuX292ZXJyaWRlcyk7XG4gIGNvbnN0IHRvQ3JlYXRlID0gbmV3IEhpc3Rvcnkoe1xuICAgIHRhYmxlLFxuICAgIGtleTogcGssXG4gICAgdmVyc2lvbixcbiAgICByZWNvcmQsXG4gIH0pO1xuICBjb25zdCBvdmVycmlkZXMgPSB7XG4gICAgc3R1YjogY29udGV4dC5zdHViLFxuICAgIGlkZW50aXR5OiBjb250ZXh0LmlkZW50aXR5LFxuICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgZnVsbHlTZWdyZWdhdGVkOiB0cnVlLFxuICB9IGFzIFBhcnRpYWw8RmFicmljQ29udHJhY3RGbGFncz47XG5cbiAgY29uc3QgaGlzdG9yeUN0eCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jb250ZXh0KFxuICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgIG92ZXJyaWRlcyxcbiAgICBIaXN0b3J5XG4gICk7XG5cbiAgY29uc3QgaGlzdG9yeSA9IGF3YWl0IHJlcG8uY3JlYXRlKHRvQ3JlYXRlLCBoaXN0b3J5Q3R4KTtcbiAgY29udGV4dC5sb2dnZXIuaW5mbyhcbiAgICBgSGlzdG9yeSBmb3IgJHt0YWJsZX0ncyAke3BrLnRvU3RyaW5nKCl9IHZlcnNpb24gJHt2ZXJzaW9ufSBzdG9yZWQgd2l0aCBpZCAke2hpc3RvcnkuaWR9YFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlSGlzdG9yeUhhbmRsZXI8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgYW55Pixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgZGF0YTogYW55LFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFjb250ZXh0LmlkZW50aXR5IHx8ICFjb250ZXh0LmlkZW50aXR5LmdldElEKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBMb3N0IGNvbnRleHQgYXBwYXJlbnRseSBmb3IgaGlzdG9yeWApO1xuXG4gIGNvbnN0IHRhYmxlID0gTW9kZWwudGFibGVOYW1lKG1vZGVsKTtcbiAgY29uc3QgcGs6IFByaW1hcnlLZXlUeXBlID0gTW9kZWwucGsobW9kZWwsIHRydWUpIGFzIGFueTtcbiAgbGV0IHZlcnNpb246IG51bWJlcjtcbiAgdHJ5IHtcbiAgICB2ZXJzaW9uID0gTW9kZWwudmVyc2lvbk9mKG1vZGVsIGFzIGFueSk7XG4gIH0gY2F0Y2gge1xuICAgIGNvbnRleHQubG9nZ2VyLndhcm4oXG4gICAgICBgSGlzdG9yeSBmb3IgJHt0YWJsZX0ncyAke3BrLnRvU3RyaW5nKCl9IGNvdWxkIG5vdCBiZSBjcmVhdGVkIGR1ZSB0byBtaXNzaW5nIHZlcnNpb25gXG4gICAgKTtcbiAgICByZXR1cm47IC8vIG1vZGVsIGhhcyBubyBAdmVyc2lvbiBmaWVsZCDigJQgc2tpcCBoaXN0b3J5XG4gIH1cblxuICAvLyBQb3B1bGF0ZSByZWxhdGlvbnMgb24gYSBub24tbXV0YXRpbmcgY29weSBvZiBtb2RlbCwgdGhlbiBjb252ZXJ0IHRvIGFcbiAgLy8gcGxhaW4gb2JqZWN0IHNvIG5vIG1vZGVsLWFuY2hvciAoX19tb2RlbCkga2V5cyBhcHBlYXIgaW4gdGhlIHN0b3JlZCBKU09OLlxuICBjb25zdCBwb3B1bGF0ZWQgPSBhd2FpdCBwb3B1bGF0ZVJlbGF0aW9ucyhtb2RlbCwgY29udGV4dCwgdGhpcy5fb3ZlcnJpZGVzKTtcbiAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwb3B1bGF0ZWQpKTtcblxuICBjb25zdCByZXBvID0gUmVwb3NpdG9yeS5mb3JNb2RlbChIaXN0b3J5KS5vdmVycmlkZSh0aGlzLl9vdmVycmlkZXMpO1xuICBjb25zdCB0b0NyZWF0ZSA9IG5ldyBIaXN0b3J5KHtcbiAgICB0YWJsZSxcbiAgICBrZXk6IHBrLFxuICAgIHZlcnNpb24sXG4gICAgcmVjb3JkLFxuICB9KTtcbiAgY29uc3Qgb3ZlcnJpZGVzID0ge1xuICAgIHN0dWI6IGNvbnRleHQuc3R1YixcbiAgICBpZGVudGl0eTogY29udGV4dC5pZGVudGl0eSxcbiAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIGZ1bGx5U2VncmVnYXRlZDogdHJ1ZSxcbiAgfSBhcyBQYXJ0aWFsPEZhYnJpY0NvbnRyYWN0RmxhZ3M+O1xuXG4gIGNvbnN0IGhpc3RvcnlDdHggPSBhd2FpdCB0aGlzLmFkYXB0ZXIuY29udGV4dChcbiAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICBvdmVycmlkZXMsXG4gICAgSGlzdG9yeVxuICApO1xuICBjb25zdCBoaXN0b3J5ID0gYXdhaXQgcmVwby5jcmVhdGUodG9DcmVhdGUsIGhpc3RvcnlDdHgpO1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKFxuICAgIGBIaXN0b3J5IGZvciAke3RhYmxlfSdzICR7cGsudG9TdHJpbmcoKX0gdmVyc2lvbiAke3ZlcnNpb259IHN0b3JlZCB3aXRoIGlkICR7aGlzdG9yeS5pZH1gXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoaXN0b3J5RGVjKCkge1xuICByZXR1cm4gYXBwbHkoXG4gICAgb25VcGRhdGUodXBkYXRlSGlzdG9yeUhhbmRsZXIgYXMgYW55LCB7fSwgeyBwcmlvcml0eTogOTkgfSksXG4gICAgYWZ0ZXJEZWxldGUoZGVsZXRlSGlzdG9yeUhhbmRsZXIgYXMgYW55LCB7fSwgeyBwcmlvcml0eTogOTkgfSksXG4gICAgbWV0YWRhdGEoXCJoaXN0b3J5XCIsIHRydWUpXG4gICk7XG59XG4iXX0=
|