@decaf-ts/for-fabric 0.3.25 → 0.3.27

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.
Files changed (59) hide show
  1. package/dist/for-fabric.cjs +1 -1
  2. package/dist/for-fabric.cjs.map +1 -1
  3. package/dist/for-fabric.js +1 -1
  4. package/dist/for-fabric.js.map +1 -1
  5. package/lib/client/FabricClientAdapter.cjs +5 -1
  6. package/lib/client/FabricClientAdapter.js.map +1 -1
  7. package/lib/contract/models/History.cjs +75 -0
  8. package/lib/contract/models/History.d.ts +9 -0
  9. package/lib/contract/models/History.js.map +1 -0
  10. package/lib/contract/models/OtherBatchShared.cjs +2 -0
  11. package/lib/contract/models/OtherBatchShared.js.map +1 -1
  12. package/lib/contract/models/OtherMarket.cjs +6 -0
  13. package/lib/contract/models/OtherMarket.d.ts +1 -0
  14. package/lib/contract/models/OtherMarket.js.map +1 -1
  15. package/lib/contract/models/OtherProduct.cjs +2 -0
  16. package/lib/contract/models/OtherProduct.js.map +1 -1
  17. package/lib/contract/models/OtherProductShared.cjs +2 -0
  18. package/lib/contract/models/OtherProductShared.js.map +1 -1
  19. package/lib/contract/models/OtherProductStrength.cjs +6 -0
  20. package/lib/contract/models/OtherProductStrength.d.ts +1 -0
  21. package/lib/contract/models/OtherProductStrength.js.map +1 -1
  22. package/lib/contract/models/decorators-private.cjs +54 -7
  23. package/lib/contract/models/decorators-private.js.map +1 -1
  24. package/lib/contract/models/decorators.cjs +63 -5
  25. package/lib/contract/models/decorators.d.ts +5 -0
  26. package/lib/contract/models/decorators.js.map +1 -1
  27. package/lib/contract/models/history-dec.cjs +83 -0
  28. package/lib/contract/models/history-dec.d.ts +6 -0
  29. package/lib/contract/models/history-dec.js.map +1 -0
  30. package/lib/esm/client/FabricClientAdapter.js +5 -1
  31. package/lib/esm/client/FabricClientAdapter.js.map +1 -1
  32. package/lib/esm/contract/models/History.d.ts +9 -0
  33. package/lib/esm/contract/models/History.js +72 -0
  34. package/lib/esm/contract/models/History.js.map +1 -0
  35. package/lib/esm/contract/models/OtherBatchShared.js +2 -0
  36. package/lib/esm/contract/models/OtherBatchShared.js.map +1 -1
  37. package/lib/esm/contract/models/OtherMarket.d.ts +1 -0
  38. package/lib/esm/contract/models/OtherMarket.js +7 -1
  39. package/lib/esm/contract/models/OtherMarket.js.map +1 -1
  40. package/lib/esm/contract/models/OtherProduct.js +2 -0
  41. package/lib/esm/contract/models/OtherProduct.js.map +1 -1
  42. package/lib/esm/contract/models/OtherProductShared.js +2 -0
  43. package/lib/esm/contract/models/OtherProductShared.js.map +1 -1
  44. package/lib/esm/contract/models/OtherProductStrength.d.ts +1 -0
  45. package/lib/esm/contract/models/OtherProductStrength.js +7 -1
  46. package/lib/esm/contract/models/OtherProductStrength.js.map +1 -1
  47. package/lib/esm/contract/models/decorators-private.js +55 -8
  48. package/lib/esm/contract/models/decorators-private.js.map +1 -1
  49. package/lib/esm/contract/models/decorators.d.ts +5 -0
  50. package/lib/esm/contract/models/decorators.js +63 -6
  51. package/lib/esm/contract/models/decorators.js.map +1 -1
  52. package/lib/esm/contract/models/history-dec.d.ts +6 -0
  53. package/lib/esm/contract/models/history-dec.js +78 -0
  54. package/lib/esm/contract/models/history-dec.js.map +1 -0
  55. package/lib/esm/version.d.ts +1 -1
  56. package/lib/esm/version.js +1 -1
  57. package/lib/version.cjs +1 -1
  58. package/lib/version.d.ts +1 -1
  59. package/package.json +1 -1
@@ -10,11 +10,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { maxlength, minlength, model, required, } from "@decaf-ts/decorator-validation";
11
11
  import { TableNames } from "./constants.js";
12
12
  import { column, index, OrderDirection, pk, table } from "@decaf-ts/core";
13
- import { composed } from "@decaf-ts/db-decorators";
13
+ import { composed, version } from "@decaf-ts/db-decorators";
14
14
  import { description, uses } from "@decaf-ts/decoration";
15
15
  import { BaseIdentifiedModel } from "./BaseIdentifiedModel.js";
16
16
  import { gtin } from "./gtin.js";
17
17
  import { FabricFlavour, mirror, NamespaceCollection, sharedData, } from "./../../shared/index.js";
18
+ import { historyDec } from "./history-dec.js";
18
19
  let OtherMarket = class OtherMarket extends BaseIdentifiedModel {
19
20
  constructor(model) {
20
21
  super(model);
@@ -22,6 +23,7 @@ let OtherMarket = class OtherMarket extends BaseIdentifiedModel {
22
23
  };
23
24
  __decorate([
24
25
  pk({ type: String, generated: false }),
26
+ historyDec(),
25
27
  mirror("mirror-collection", "org-b"),
26
28
  composed(["productCode", "marketId"], ":", true),
27
29
  description("Unique identifier composed of product code and market ID."),
@@ -62,6 +64,10 @@ __decorate([
62
64
  description("Address of the Marketing Authorization Holder or responsible legal entity."),
63
65
  __metadata("design:type", String)
64
66
  ], OtherMarket.prototype, "mahAddress", void 0);
67
+ __decorate([
68
+ version(),
69
+ __metadata("design:type", Number)
70
+ ], OtherMarket.prototype, "counter", void 0);
65
71
  OtherMarket = __decorate([
66
72
  sharedData(NamespaceCollection("decaf-namespace")),
67
73
  description("Links a product to a specific market."),
@@ -1 +1 @@
1
- {"version":3,"file":"OtherMarket.js","sourceRoot":"","sources":["../../../../src/contract/models/OtherMarket.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EACL,SAAS,EACT,SAAS,EACT,KAAK,EACL,QAAQ,GACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,uBAAoB;AACzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EAAE,IAAI,EAAE,kBAAe;AAC9B,OAAO,EACL,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,UAAU,GACX,gCAA2B;AAOrB,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,mBAAmB;IA4ClD,YAAY,KAA6B;QACvC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF,CAAA;AA1CC;IAJC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACtC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;IAChD,WAAW,CAAC,2DAA2D,CAAC;;uCAC7D;AAQZ;IANC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,WAAW,CACV,mEAAmE,CACpE;;6CACiB;AAKlB;IAHC,MAAM,EAAE;IACR,IAAI,EAAE;IACN,QAAQ,EAAE;;gDACU;AAQrB;IANC,MAAM,EAAE;IACR,SAAS,CAAC,CAAC,CAAC;IACZ,SAAS,CAAC,CAAC,CAAC;IACZ,WAAW,CACV,0EAA0E,CAC3E;;iDACqB;AAItB;IAFC,MAAM,EAAE;IACR,WAAW,CAAC,mDAAmD,CAAC;;4CAChD;AAMjB;IAJC,MAAM,EAAE;IACR,WAAW,CACV,sEAAsE,CACvE;;oDACwB;AAMzB;IAJC,MAAM,EAAE;IACR,WAAW,CACV,4EAA4E,CAC7E;;+CACmB;AA1CT,WAAW;IALvB,UAAU,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAClD,WAAW,CAAC,uCAAuC,CAAC;IACpD,IAAI,CAAC,aAAa,CAAC;IACnB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;IACxB,KAAK,EAAE;;GACK,WAAW,CA+CvB"}
1
+ {"version":3,"file":"OtherMarket.js","sourceRoot":"","sources":["../../../../src/contract/models/OtherMarket.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EACL,SAAS,EACT,SAAS,EACT,KAAK,EACL,QAAQ,GACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,uBAAoB;AACzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EAAE,IAAI,EAAE,kBAAe;AAC9B,OAAO,EACL,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,UAAU,GACX,gCAA2B;AAC5B,OAAO,EAAE,UAAU,EAAE,yBAAsB;AAOpC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,mBAAmB;IAgDlD,YAAY,KAA6B;QACvC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF,CAAA;AA7CC;IALC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACtC,UAAU,EAAE;IACZ,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;IAChD,WAAW,CAAC,2DAA2D,CAAC;;uCAC7D;AAQZ;IANC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,WAAW,CACV,mEAAmE,CACpE;;6CACiB;AAKlB;IAHC,MAAM,EAAE;IACR,IAAI,EAAE;IACN,QAAQ,EAAE;;gDACU;AAQrB;IANC,MAAM,EAAE;IACR,SAAS,CAAC,CAAC,CAAC;IACZ,SAAS,CAAC,CAAC,CAAC;IACZ,WAAW,CACV,0EAA0E,CAC3E;;iDACqB;AAItB;IAFC,MAAM,EAAE;IACR,WAAW,CAAC,mDAAmD,CAAC;;4CAChD;AAMjB;IAJC,MAAM,EAAE;IACR,WAAW,CACV,sEAAsE,CACvE;;oDACwB;AAMzB;IAJC,MAAM,EAAE;IACR,WAAW,CACV,4EAA4E,CAC7E;;+CACmB;AAGpB;IADC,OAAO,EAAE;;4CACO;AA9CN,WAAW;IALvB,UAAU,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAClD,WAAW,CAAC,uCAAuC,CAAC;IACpD,IAAI,CAAC,aAAa,CAAC;IACnB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;IACxB,KAAK,EAAE;;GACK,WAAW,CAmDvB"}
@@ -16,6 +16,7 @@ import { gtin } from "./gtin.js";
16
16
  import { audit } from "./decorators.js";
17
17
  import { FabricFlavour, mirror, ownedBy, privateData, } from "./../../shared/index.js";
18
18
  import { version } from "@decaf-ts/db-decorators";
19
+ import { historyDec } from "./history-dec.js";
19
20
  let OtherProduct = class OtherProduct extends BaseIdentifiedModel {
20
21
  constructor(args) {
21
22
  super(args);
@@ -25,6 +26,7 @@ let OtherProduct = class OtherProduct extends BaseIdentifiedModel {
25
26
  __decorate([
26
27
  pk(),
27
28
  gtin(),
29
+ historyDec(),
28
30
  mirror("mirror-collection", "org-b"),
29
31
  audit(OtherProduct),
30
32
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"OtherProduct.js","sourceRoot":"","sources":["../../../../src/contract/models/OtherProduct.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC1E,oFAAoF;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EAAE,IAAI,EAAE,kBAAe;AAE9B,OAAO,EAAE,KAAK,EAAE,wBAAqB;AACrC,OAAO,EACL,aAAa,EACb,MAAM,EACN,OAAO,EACP,WAAW,GACZ,gCAA2B;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAO3C,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,mBAAmB;IAgEnD,YAAY,IAA6B;QACvC,KAAK,CAAC,IAAI,CAAC,CAAC;QA3Cd,kBAAa,GAAY,KAAK,CAAC;IA4C/B,CAAC;CACF,CAAA;AA9DC;IAJC,EAAE,EAAE;IACJ,IAAI,EAAE;IACN,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACpC,KAAK,CAAC,YAAY,CAAC;;iDACC;AAKrB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;kDAC1B;AAKtB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;0DAClB;AAG9B;IADC,MAAM,EAAE;;0DACqB;AAI9B;IAFC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;mDACjB;AAsB/B;IADC,OAAO,EAAE;;6CACO;AAkBjB;IAFC,MAAM,EAAE;IACR,OAAO,EAAE;;6CACO;AA9DN,YAAY;IALxB,WAAW,EAAE;IACb,IAAI,CAAC,aAAa,CAAC;IACpB,2CAA2C;;IAC1C,KAAK,CAAC,eAAe,CAAC;IACtB,KAAK,EAAE;;GACK,YAAY,CAmExB"}
1
+ {"version":3,"file":"OtherProduct.js","sourceRoot":"","sources":["../../../../src/contract/models/OtherProduct.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC1E,oFAAoF;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EAAE,IAAI,EAAE,kBAAe;AAE9B,OAAO,EAAE,KAAK,EAAE,wBAAqB;AACrC,OAAO,EACL,aAAa,EACb,MAAM,EACN,OAAO,EACP,WAAW,GACZ,gCAA2B;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,yBAAsB;AAOpC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,mBAAmB;IAiEnD,YAAY,IAA6B;QACvC,KAAK,CAAC,IAAI,CAAC,CAAC;QA3Cd,kBAAa,GAAY,KAAK,CAAC;IA4C/B,CAAC;CACF,CAAA;AA9DC;IALC,EAAE,EAAE;IACJ,IAAI,EAAE;IACN,UAAU,EAAE;IACZ,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACpC,KAAK,CAAC,YAAY,CAAC;;iDACC;AAKrB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;kDAC1B;AAKtB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;0DAClB;AAG9B;IADC,MAAM,EAAE;;0DACqB;AAI9B;IAFC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;mDACjB;AAsB/B;IADC,OAAO,EAAE;;6CACO;AAkBjB;IAFC,MAAM,EAAE;IACR,OAAO,EAAE;;6CACO;AA/DN,YAAY;IALxB,WAAW,EAAE;IACb,IAAI,CAAC,aAAa,CAAC;IACpB,2CAA2C;;IAC1C,KAAK,CAAC,eAAe,CAAC;IACtB,KAAK,EAAE;;GACK,YAAY,CAoExB"}
@@ -19,6 +19,7 @@ import { version } from "@decaf-ts/db-decorators";
19
19
  import { OtherProductStrength } from "./OtherProductStrength.js";
20
20
  import { OtherMarket } from "./OtherMarket.js";
21
21
  import { assignProductOwner } from "./decorators.js";
22
+ import { historyDec } from "./history-dec.js";
22
23
  let OtherProductShared = class OtherProductShared extends BaseIdentifiedModel {
23
24
  constructor(args) {
24
25
  super(args);
@@ -28,6 +29,7 @@ let OtherProductShared = class OtherProductShared extends BaseIdentifiedModel {
28
29
  __decorate([
29
30
  pk(),
30
31
  gtin(),
32
+ historyDec(),
31
33
  assignProductOwner(),
32
34
  mirror("mirror-collection", "org-b"),
33
35
  audit(OtherProductShared),
@@ -1 +1 @@
1
- {"version":3,"file":"OtherProductShared.js","sourceRoot":"","sources":["../../../../src/contract/models/OtherProductShared.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,SAAS,EACT,cAAc,EACd,EAAE,EACF,KAAK,GACN,MAAM,gBAAgB,CAAC;AACxB,oFAAoF;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EAAE,IAAI,EAAE,kBAAe;AAC9B,OAAO,EAAE,KAAK,EAAE,gCAA6B;AAC7C,OAAO,EACL,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,OAAO,EACP,UAAU,GACX,gCAA2B;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,kCAA+B;AAC9D,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAC5C,OAAO,EAAE,kBAAkB,EAAE,wBAAqB;AAO3C,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,mBAAmB;IAiEzD,YAAY,IAAmC;QAC7C,KAAK,CAAC,IAAI,CAAC,CAAC;QA3Cd,kBAAa,GAAY,KAAK,CAAC;IA4C/B,CAAC;CACF,CAAA;AA9DC;IALC,EAAE,EAAE;IACJ,IAAI,EAAE;IACN,kBAAkB,EAAE;IACpB,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACpC,KAAK,CAAC,kBAAkB,CAAC;;uDACL;AAKrB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;wDAC1B;AAKtB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;gEAClB;AAG9B;IADC,MAAM,EAAE;;gEACqB;AAI9B;IAFC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;yDACjB;AAsB/B;IADC,OAAO,EAAE;;mDACO;AAOjB;IALC,SAAS,CACR,GAAG,EAAE,CAAC,oBAAoB,EAC1B,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,EACpD,IAAI,CACL;;qDACkC;AAOnC;IALC,SAAS,CACR,GAAG,EAAE,CAAC,WAAW,EACjB,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,EACpD,IAAI,CACL;;mDACuB;AAIxB;IAFC,MAAM,EAAE;IACR,OAAO,EAAE;;mDACO;AA/DN,kBAAkB;IAL9B,UAAU,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,CAAC,aAAa,CAAC;IACpB,2CAA2C;;IAC1C,KAAK,CAAC,sBAAsB,CAAC;IAC7B,KAAK,EAAE;;GACK,kBAAkB,CAoE9B"}
1
+ {"version":3,"file":"OtherProductShared.js","sourceRoot":"","sources":["../../../../src/contract/models/OtherProductShared.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,SAAS,EACT,cAAc,EACd,EAAE,EACF,KAAK,GACN,MAAM,gBAAgB,CAAC;AACxB,oFAAoF;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EAAE,IAAI,EAAE,kBAAe;AAC9B,OAAO,EAAE,KAAK,EAAE,gCAA6B;AAC7C,OAAO,EACL,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,OAAO,EACP,UAAU,GACX,gCAA2B;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,kCAA+B;AAC9D,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAC5C,OAAO,EAAE,kBAAkB,EAAE,wBAAqB;AAClD,OAAO,EAAE,UAAU,EAAE,yBAAsB;AAOpC,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,mBAAmB;IAkEzD,YAAY,IAAmC;QAC7C,KAAK,CAAC,IAAI,CAAC,CAAC;QA3Cd,kBAAa,GAAY,KAAK,CAAC;IA4C/B,CAAC;CACF,CAAA;AA9DC;IANC,EAAE,EAAE;IACJ,IAAI,EAAE;IACN,UAAU,EAAE;IACZ,kBAAkB,EAAE;IACpB,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACpC,KAAK,CAAC,kBAAkB,CAAC;;uDACL;AAKrB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;wDAC1B;AAKtB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;gEAClB;AAG9B;IADC,MAAM,EAAE;;gEACqB;AAI9B;IAFC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;yDACjB;AAsB/B;IADC,OAAO,EAAE;;mDACO;AAOjB;IALC,SAAS,CACR,GAAG,EAAE,CAAC,oBAAoB,EAC1B,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,EACpD,IAAI,CACL;;qDACkC;AAOnC;IALC,SAAS,CACR,GAAG,EAAE,CAAC,WAAW,EACjB,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,EACpD,IAAI,CACL;;mDACuB;AAIxB;IAFC,MAAM,EAAE;IACR,OAAO,EAAE;;mDACO;AAhEN,kBAAkB;IAL9B,UAAU,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,CAAC,aAAa,CAAC;IACpB,2CAA2C;;IAC1C,KAAK,CAAC,sBAAsB,CAAC;IAC7B,KAAK,EAAE;;GACK,kBAAkB,CAqE9B"}
@@ -7,5 +7,6 @@ export declare class OtherProductStrength extends BaseIdentifiedModel {
7
7
  strength: string;
8
8
  substance?: string;
9
9
  legalEntityName?: string;
10
+ counter?: number;
10
11
  constructor(model?: ModelArg<OtherProductStrength>);
11
12
  }
@@ -13,8 +13,9 @@ import { TableNames } from "./constants.js";
13
13
  import { description, uses } from "@decaf-ts/decoration";
14
14
  import { BaseIdentifiedModel } from "./BaseIdentifiedModel.js";
15
15
  import { FabricFlavour, mirror, NamespaceCollection, sharedData, } from "./../../shared/index.js";
16
- import { composed, InternalError } from "@decaf-ts/db-decorators";
16
+ import { composed, InternalError, version } from "@decaf-ts/db-decorators";
17
17
  import { gtin } from "./gtin.js";
18
+ import { historyDec } from "./history-dec.js";
18
19
  function strengthSeed(m) {
19
20
  try {
20
21
  return `${m.productCode}${m.strength}${m.substance ? m.substance : ""}`;
@@ -30,6 +31,7 @@ let OtherProductStrength = class OtherProductStrength extends BaseIdentifiedMode
30
31
  };
31
32
  __decorate([
32
33
  pk(),
34
+ historyDec(),
33
35
  mirror("mirror-collection", "org-b"),
34
36
  composed(["productCode", "uuid"], ":"),
35
37
  description("Unique identifier of the product strength."),
@@ -65,6 +67,10 @@ __decorate([
65
67
  description("Legal entity name responsible for the product."),
66
68
  __metadata("design:type", String)
67
69
  ], OtherProductStrength.prototype, "legalEntityName", void 0);
70
+ __decorate([
71
+ version(),
72
+ __metadata("design:type", Number)
73
+ ], OtherProductStrength.prototype, "counter", void 0);
68
74
  OtherProductStrength = __decorate([
69
75
  sharedData(NamespaceCollection("decaf-namespace")),
70
76
  uses(FabricFlavour),
@@ -1 +1 @@
1
- {"version":3,"file":"OtherProductStrength.js","sourceRoot":"","sources":["../../../../src/contract/models/OtherProductStrength.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,uBAAoB;AACzC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,OAAO,EACL,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,UAAU,GACX,gCAA2B;AAC5B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,kBAAe;AAE9B,SAAS,YAAY,CAAC,CAAuB;IAC3C,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAOM,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,mBAAmB;IAqC3D,YAAY,KAAsC;QAChD,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF,CAAA;AAnCC;IAJC,EAAE,EAAE;IACJ,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;IACtC,WAAW,CAAC,4CAA4C,CAAC;;gDAC9C;AAKZ;IAHC,IAAI,CAAC,YAAY,CAAC;IAClB,QAAQ,EAAE;IACV,WAAW,CAAC,wCAAwC,CAAC;;kDACxC;AAUd;IAHC,IAAI,EAAE;IACN,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,WAAW,CAAC,mDAAmD,CAAC;;yDAC5C;AAMrB;IAJC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,WAAW,CAAC,qDAAqD,CAAC;;sDACjD;AAKlB;IAHC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,WAAW,CAAC,oDAAoD,CAAC;;uDAC/C;AAInB;IAFC,MAAM,EAAE;IACR,WAAW,CAAC,gDAAgD,CAAC;;6DACrC;AAnCd,oBAAoB;IALhC,UAAU,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,CAAC,aAAa,CAAC;IACnB,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;IACjC,KAAK,EAAE;IACP,WAAW,CAAC,4DAA4D,CAAC;;GAC7D,oBAAoB,CAwChC"}
1
+ {"version":3,"file":"OtherProductStrength.js","sourceRoot":"","sources":["../../../../src/contract/models/OtherProductStrength.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,uBAAoB;AACzC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,OAAO,EACL,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,UAAU,GACX,gCAA2B;AAC5B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,kBAAe;AAC9B,OAAO,EAAE,UAAU,EAAE,yBAAsB;AAE3C,SAAS,YAAY,CAAC,CAAuB;IAC3C,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAOM,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,mBAAmB;IAyC3D,YAAY,KAAsC;QAChD,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF,CAAA;AAtCC;IALC,EAAE,EAAE;IACJ,UAAU,EAAE;IACZ,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;IACtC,WAAW,CAAC,4CAA4C,CAAC;;gDAC9C;AAKZ;IAHC,IAAI,CAAC,YAAY,CAAC;IAClB,QAAQ,EAAE;IACV,WAAW,CAAC,wCAAwC,CAAC;;kDACxC;AAUd;IAHC,IAAI,EAAE;IACN,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,WAAW,CAAC,mDAAmD,CAAC;;yDAC5C;AAMrB;IAJC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,WAAW,CAAC,qDAAqD,CAAC;;sDACjD;AAKlB;IAHC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,WAAW,CAAC,oDAAoD,CAAC;;uDAC/C;AAInB;IAFC,MAAM,EAAE;IACR,WAAW,CAAC,gDAAgD,CAAC;;6DACrC;AAGzB;IADC,OAAO,EAAE;;qDACO;AAvCN,oBAAoB;IALhC,UAAU,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,CAAC,aAAa,CAAC;IACnB,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;IACjC,KAAK,EAAE;IACP,WAAW,CAAC,4DAA4D,CAAC;;GAC7D,oBAAoB,CA4ChC"}
@@ -1,8 +1,9 @@
1
1
  import { Model } from "@decaf-ts/decorator-validation";
2
2
  import { metadata, apply } from "@decaf-ts/decoration";
3
- import { afterCreate, afterDelete, afterUpdate, InternalError, OperationKeys, } from "@decaf-ts/db-decorators";
3
+ import { afterCreate, afterDelete, onUpdate, InternalError, OperationKeys, } from "@decaf-ts/db-decorators";
4
4
  import { OtherAudit } from "./OtherAudit.js";
5
5
  import { Repository } from "@decaf-ts/core";
6
+ import { populateRelations } from "./decorators.js";
6
7
  export async function rebuildForMatchingCollection(model, context, collections) {
7
8
  const mapToCollections = collections && (collections.privateCols || collections.sharedCols);
8
9
  let cols = undefined;
@@ -17,7 +18,15 @@ export async function rebuildForMatchingCollection(model, context, collections)
17
18
  ];
18
19
  const pk = Model.pk(model);
19
20
  cols.forEach((col) => {
20
- const segData = context.get("segregatedData");
21
+ let segData;
22
+ try {
23
+ segData = context.get("segregatedData");
24
+ }
25
+ catch {
26
+ return; // segregatedData not present in this context (e.g. cascade child)
27
+ }
28
+ if (!segData || !segData[col] || !(model[pk] in segData[col]))
29
+ return;
21
30
  Object.assign(model, segData[col][model[pk]]);
22
31
  });
23
32
  }
@@ -25,10 +34,9 @@ export async function rebuildForMatchingCollection(model, context, collections)
25
34
  }
26
35
  export async function createAuditHandler(context, data, key, model) {
27
36
  const repo = Repository.forModel(OtherAudit);
28
- const collections = Model.collectionsFor(OtherAudit);
29
- model = await rebuildForMatchingCollection(model, context, collections);
30
37
  if (!context.identity || !context.identity.getID)
31
38
  throw new InternalError(`Lost context apparently for audit`);
39
+ model = await populateRelations(model, context, this._overrides);
32
40
  const toCreate = new OtherAudit({
33
41
  userGroup: context.identity.getID(),
34
42
  userId: context.identity.getID(),
@@ -40,19 +48,57 @@ export async function createAuditHandler(context, data, key, model) {
40
48
  const audit = await repo.override(this._overrides).create(toCreate, context);
41
49
  context.logger.info(`Audit log for ${OperationKeys.CREATE} of ${Model.tableName(this.class)} created: ${audit.id}: ${JSON.stringify(audit, undefined, 2)}`);
42
50
  }
51
+ /**
52
+ * Returns a shallow-cloned copy of the model where each relation array item
53
+ * is normalised to its string ID. This ensures that `{ id: "x" }` and `"x"`
54
+ * compare as equal so that unchanged relations produce no diff.
55
+ */
56
+ function normalizeRelationsForAudit(model) {
57
+ const copy = Object.assign(Object.create(Object.getPrototypeOf(model)), model);
58
+ const relProps = Model.relations(model);
59
+ if (!relProps || !relProps.length)
60
+ return copy;
61
+ for (const propKey of relProps) {
62
+ const value = copy[propKey];
63
+ if (Array.isArray(value)) {
64
+ copy[propKey] = value.map((item) => {
65
+ if (item == null)
66
+ return item;
67
+ if (typeof item === "string" || typeof item === "number")
68
+ return String(item);
69
+ if (item.id != null)
70
+ return String(item.id);
71
+ return item; // new object without id — keep as-is
72
+ });
73
+ }
74
+ else if (value != null) {
75
+ if (typeof value === "string" || typeof value === "number") {
76
+ copy[propKey] = String(value);
77
+ }
78
+ else if (value.id != null) {
79
+ copy[propKey] = String(value.id);
80
+ }
81
+ }
82
+ }
83
+ return copy;
84
+ }
43
85
  export async function updateAuditHandler(context, data, key, model, oldModel) {
44
86
  const repo = Repository.forModel(OtherAudit);
45
- const collections = Model.collectionsFor(OtherAudit);
46
- model = await rebuildForMatchingCollection(model, context, collections);
47
87
  if (!context.identity || !context.identity.getID)
48
88
  throw new InternalError(`Lost context apparently for audit`);
89
+ // At onUpdate time `model` still has all private fields (not yet stripped by
90
+ // adapter.revert). Normalise relation arrays to ID strings on both sides so
91
+ // that { id: "x" } and "x" compare as equal and unchanged relations produce
92
+ // no spurious diff.
93
+ const normalizedModel = normalizeRelationsForAudit(model);
94
+ const normalizedOldModel = normalizeRelationsForAudit(oldModel);
49
95
  const toCreate = new OtherAudit({
50
96
  userGroup: context.identity.getID(),
51
97
  userId: context.identity.getID(),
52
98
  model: Model.tableName(data.class),
53
99
  transaction: context.stub.getTxID(),
54
100
  action: OperationKeys.UPDATE,
55
- diffs: model.compare(oldModel),
101
+ diffs: normalizedModel.compare(normalizedOldModel),
56
102
  });
57
103
  const audit = await repo.override(this._overrides).create(toCreate, context);
58
104
  context.logger.info(`Audit log for ${OperationKeys.UPDATE} of ${Model.tableName(this.class)} created: ${JSON.stringify(audit, undefined, 2)}`);
@@ -60,6 +106,7 @@ export async function updateAuditHandler(context, data, key, model, oldModel) {
60
106
  export async function deleteAuditHandler(context, data, key, model) {
61
107
  if (!context.identity || !context.identity.getID)
62
108
  throw new InternalError(`Lost context apprently. no getId in identity`);
109
+ model = await populateRelations(model, context, this._overrides);
63
110
  const toCreate = new OtherAudit({
64
111
  userGroup: context.identity.getID(),
65
112
  userId: context.identity.getID(),
@@ -76,6 +123,6 @@ export function audit(model) {
76
123
  const meta = {
77
124
  class: model,
78
125
  };
79
- return apply(afterCreate(createAuditHandler, meta), afterUpdate(updateAuditHandler, meta), afterDelete(deleteAuditHandler, meta), metadata("audit", true));
126
+ return apply(afterCreate(createAuditHandler, meta), onUpdate(updateAuditHandler, meta), afterDelete(deleteAuditHandler, meta), metadata("audit", true));
80
127
  }
81
128
  //# sourceMappingURL=decorators-private.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators-private.js","sourceRoot":"","sources":["../../../../src/contract/models/decorators-private.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators-private.js","sourceRoot":"","sources":["../../../../src/contract/models/decorators-private.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,11 @@ export declare function rebuildForMatchingCollection<M extends Model>(model: M,
7
7
  privateCols: (string | CollectionResolver)[];
8
8
  sharedCols: (string | CollectionResolver)[];
9
9
  }): Promise<M>;
10
+ /**
11
+ * Returns a shallow-cloned copy of the model with relation properties resolved
12
+ * to their full instances. The original model is NOT mutated.
13
+ */
14
+ export declare function populateRelations<M extends Model>(model: M, context: FabricContractContext, overrides?: Record<string, any>): Promise<M>;
10
15
  export declare function createAuditHandler<M extends Model, R extends Repository<M, any>>(this: R, context: FabricContractContext, data: AuditMetadata, key: keyof M, model: M): Promise<void>;
11
16
  export declare function updateAuditHandler<M extends Model, R extends Repository<M, any>>(this: R, context: FabricContractContext, data: AuditMetadata, key: keyof M, model: M, oldModel: M): Promise<void>;
12
17
  export declare function deleteAuditHandler<M extends Model, R extends Repository<M, any>>(this: R, context: FabricContractContext, data: AuditMetadata, key: keyof M, model: M): Promise<void>;
@@ -2,7 +2,7 @@ import { Model } from "@decaf-ts/decorator-validation";
2
2
  import { metadata, apply } from "@decaf-ts/decoration";
3
3
  import { afterCreate, afterDelete, afterUpdate, InternalError, onCreate, OperationKeys, } from "@decaf-ts/db-decorators";
4
4
  import { Audit } from "./Audit.js";
5
- import { Repository, UnsupportedError } from "@decaf-ts/core";
5
+ import { Repository, UnsupportedError, } from "@decaf-ts/core";
6
6
  import { GtinOwner } from "./GtinOwner.js";
7
7
  export async function rebuildForMatchingCollection(model, context, collections) {
8
8
  const mapToCollections = collections && (collections.privateCols || collections.sharedCols);
@@ -18,19 +18,73 @@ export async function rebuildForMatchingCollection(model, context, collections)
18
18
  ];
19
19
  const pk = Model.pk(model);
20
20
  cols.forEach((col) => {
21
- const segData = context.get("segregatedData");
21
+ let segData;
22
+ try {
23
+ segData = context.get("segregatedData");
24
+ }
25
+ catch {
26
+ return; // segregatedData not present in this context (e.g. cascade child)
27
+ }
28
+ if (!segData || !segData[col] || !(model[pk] in segData[col]))
29
+ return;
22
30
  Object.assign(model, segData[col][model[pk]]);
23
31
  });
24
32
  }
25
33
  return model;
26
34
  }
35
+ /**
36
+ * Returns a shallow-cloned copy of the model with relation properties resolved
37
+ * to their full instances. The original model is NOT mutated.
38
+ */
39
+ export async function populateRelations(model, context, overrides) {
40
+ // Create a shallow copy preserving the prototype so compare() etc. still work
41
+ const copy = Object.assign(Object.create(Object.getPrototypeOf(model)), model);
42
+ const relProps = Model.relations(model);
43
+ if (!relProps || !relProps.length)
44
+ return copy;
45
+ for (const propKey of relProps) {
46
+ const meta = Model.relations(model, propKey);
47
+ const clazzOrFn = meta.class;
48
+ const clazz = typeof clazzOrFn === "function" && clazzOrFn.name
49
+ ? clazzOrFn
50
+ : clazzOrFn();
51
+ const value = copy[propKey];
52
+ if (value === null || value === undefined)
53
+ continue;
54
+ const repo = Repository.forModel(clazz).override(overrides || {});
55
+ if (Array.isArray(value)) {
56
+ const resolved = [];
57
+ for (const item of value) {
58
+ if (typeof item === "string" || typeof item === "number") {
59
+ try {
60
+ resolved.push(await repo.read(String(item), context));
61
+ }
62
+ catch {
63
+ resolved.push(item);
64
+ }
65
+ }
66
+ else {
67
+ resolved.push(item);
68
+ }
69
+ }
70
+ copy[propKey] = resolved;
71
+ }
72
+ else if (typeof value === "string" || typeof value === "number") {
73
+ try {
74
+ copy[propKey] = await repo.read(String(value), context);
75
+ }
76
+ catch {
77
+ // keep original value if read fails
78
+ }
79
+ }
80
+ }
81
+ return copy;
82
+ }
27
83
  export async function createAuditHandler(context, data, key, model) {
28
84
  const repo = Repository.forModel(Audit);
29
- const collections = Model.collectionsFor(Audit);
30
- //
31
- // model = await rebuildForMatchingCollection(model, context, collections);
32
85
  if (!context.identity || !context.identity.getID)
33
86
  throw new InternalError(`Lost context apparently for audit`);
87
+ model = await populateRelations(model, context, this._overrides);
34
88
  const toCreate = new Audit({
35
89
  userGroup: context.identity.getID(),
36
90
  userId: context.identity.getID(),
@@ -49,13 +103,15 @@ export async function updateAuditHandler(context, data, key, model, oldModel) {
49
103
  // model = await rebuildForMatchingCollection(model, context, collections);
50
104
  if (!context.identity || !context.identity.getID)
51
105
  throw new InternalError(`Lost context apparently for audit`);
106
+ const populatedModel = await populateRelations(model, context, this._overrides);
107
+ const populatedOldModel = await populateRelations(oldModel, context, this._overrides);
52
108
  const toCreate = new Audit({
53
109
  userGroup: context.identity.getID(),
54
110
  userId: context.identity.getID(),
55
111
  model: Model.tableName(data.class),
56
112
  transaction: context.stub.getTxID(),
57
113
  action: OperationKeys.UPDATE,
58
- diffs: model.compare(oldModel),
114
+ diffs: populatedModel.compare(populatedOldModel),
59
115
  });
60
116
  const audit = await repo.override(this._overrides).create(toCreate, context);
61
117
  context.logger.info(`Audit log for ${OperationKeys.UPDATE} of ${Model.tableName(this.class)} created: ${JSON.stringify(audit, undefined, 2)}`);
@@ -63,6 +119,7 @@ export async function updateAuditHandler(context, data, key, model, oldModel) {
63
119
  export async function deleteAuditHandler(context, data, key, model) {
64
120
  if (!context.identity || !context.identity.getID)
65
121
  throw new InternalError(`Lost context apprently. no getId in identity`);
122
+ model = await populateRelations(model, context, this._overrides);
66
123
  const toCreate = new Audit({
67
124
  userGroup: context.identity.getID(),
68
125
  userId: context.identity.getID(),
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../src/contract/models/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../src/contract/models/decorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
+ import { Repository } from "@decaf-ts/core";
3
+ import { type FabricContractContext } from "../../contracts/index";
4
+ export declare function updateHistoryHandler<M extends Model, R extends Repository<M, any>>(this: R, context: FabricContractContext, data: any, key: keyof M, model: M, oldModel: M): Promise<void>;
5
+ export declare function deleteHistoryHandler<M extends Model, R extends Repository<M, any>>(this: R, context: FabricContractContext, data: any, key: keyof M, model: M): Promise<void>;
6
+ export declare function historyDec(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
@@ -0,0 +1,78 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
+ import { Repository } from "@decaf-ts/core";
3
+ import { apply, Metadata, metadata } from "@decaf-ts/decoration";
4
+ import { afterDelete, DBKeys, InternalError, onUpdate, } from "@decaf-ts/db-decorators";
5
+ import { populateRelations } from "./decorators.js";
6
+ import { History } from "./History.js";
7
+ /**
8
+ * Correctly extracts the version number from a model by inspecting
9
+ * the property decorated with `@version()`.
10
+ *
11
+ * `Model.versionProp()` has a bug where it returns `Object.keys(meta)[0]`
12
+ * (the first metadata key overall) instead of the actual version property name.
13
+ * This helper uses `Metadata.get()` correctly to find the `DBKeys.VERSION`
14
+ * entry and then reads the first property name from it.
15
+ *
16
+ * @returns the version number (>= 1), or undefined if none found.
17
+ */
18
+ function getVersionOf(model) {
19
+ const meta = Metadata.get(model.constructor);
20
+ if (!meta)
21
+ return undefined;
22
+ const versionMeta = meta[DBKeys.VERSION];
23
+ if (!versionMeta || typeof versionMeta !== "object")
24
+ return undefined;
25
+ const versionProp = Object.keys(versionMeta)[0];
26
+ if (!versionProp)
27
+ return undefined;
28
+ const value = model[versionProp];
29
+ return typeof value === "number" && value >= 1 ? value : undefined;
30
+ }
31
+ export async function updateHistoryHandler(context, data, key, model, oldModel) {
32
+ if (!context.identity || !context.identity.getID)
33
+ throw new InternalError(`Lost context apparently for history`);
34
+ const table = Model.tableName(oldModel);
35
+ const pk = Model.pk(oldModel, true);
36
+ const version = getVersionOf(oldModel);
37
+ if (version === undefined)
38
+ return; // model has no @version field — skip history
39
+ // Populate relations on a non-mutating copy of oldModel, then convert to a
40
+ // plain object so no model-anchor (__model) keys appear in the stored JSON.
41
+ const populated = await populateRelations(oldModel, context, this._overrides);
42
+ const record = JSON.parse(JSON.stringify(populated));
43
+ const repo = Repository.forModel(History).override(this._overrides);
44
+ const toCreate = new History({
45
+ table,
46
+ key: pk,
47
+ version,
48
+ record,
49
+ });
50
+ await repo.create(toCreate, context);
51
+ context.logger.info(`History for ${table}'s ${pk.toString()} version ${version} stored`);
52
+ }
53
+ export async function deleteHistoryHandler(context, data, key, model) {
54
+ if (!context.identity || !context.identity.getID)
55
+ throw new InternalError(`Lost context apparently for history`);
56
+ const table = Model.tableName(model);
57
+ const pk = Model.pk(model, true);
58
+ const version = getVersionOf(model);
59
+ if (version === undefined)
60
+ return; // model has no @version field — skip history
61
+ // Populate relations on a non-mutating copy of model, then convert to a
62
+ // plain object so no model-anchor (__model) keys appear in the stored JSON.
63
+ const populated = await populateRelations(model, context, this._overrides);
64
+ const record = JSON.parse(JSON.stringify(populated));
65
+ const repo = Repository.forModel(History).override(this._overrides);
66
+ const toCreate = new History({
67
+ table,
68
+ key: pk,
69
+ version,
70
+ record,
71
+ });
72
+ await repo.create(toCreate, context);
73
+ context.logger.info(`History for ${table}'s ${pk.toString()} version ${version} stored`);
74
+ }
75
+ export function historyDec() {
76
+ return apply(onUpdate(updateHistoryHandler, {}, { priority: 99 }), afterDelete(deleteHistoryHandler, {}, { priority: 99 }), metadata("history", true));
77
+ }
78
+ //# sourceMappingURL=history-dec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-dec.js","sourceRoot":"","sources":["../../../../src/contract/models/history-dec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.3.24";
1
+ export declare const VERSION = "0.3.26";
2
2
  export declare const PACKAGE_NAME = "@decaf-ts/for-fabric";
@@ -1,5 +1,5 @@
1
1
  import { Metadata } from "@decaf-ts/decoration";
2
- export const VERSION = "0.3.24";
2
+ export const VERSION = "0.3.26";
3
3
  export const PACKAGE_NAME = "@decaf-ts/for-fabric";
4
4
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
5
5
  //# sourceMappingURL=version.js.map
package/lib/version.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PACKAGE_NAME = exports.VERSION = void 0;
4
4
  const decoration_1 = require("@decaf-ts/decoration");
5
- exports.VERSION = "0.3.24";
5
+ exports.VERSION = "0.3.26";
6
6
  exports.PACKAGE_NAME = "@decaf-ts/for-fabric";
7
7
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
8
8
  //# sourceMappingURL=version.js.map
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.3.24";
1
+ export declare const VERSION = "0.3.26";
2
2
  export declare const PACKAGE_NAME = "@decaf-ts/for-fabric";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-fabric",
3
- "version": "0.3.25",
3
+ "version": "0.3.27",
4
4
  "description": "Abstracts fabric logic",
5
5
  "type": "module",
6
6
  "exports": {