@decaf-ts/for-fabric 0.1.119 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/for-fabric.cjs +1 -1
- package/dist/for-fabric.cjs.map +1 -1
- package/dist/for-fabric.js +1 -1
- package/dist/for-fabric.js.map +1 -1
- package/lib/client/FabricClientAdapter.cjs +4 -7
- package/lib/client/FabricClientAdapter.js.map +1 -1
- package/lib/client/services/FabricIdentityService.cjs +3 -2
- package/lib/client/services/FabricIdentityService.js.map +1 -1
- package/lib/contract/OtherMarketContract.cjs +30 -0
- package/lib/contract/OtherMarketContract.d.ts +5 -0
- package/lib/contract/OtherMarketContract.js.map +1 -0
- package/lib/contract/OtherProductStrengthContract.cjs +30 -0
- package/lib/contract/OtherProductStrengthContract.d.ts +5 -0
- package/lib/contract/OtherProductStrengthContract.js.map +1 -0
- package/lib/contract/index.cjs +4 -0
- package/lib/contract/index.js.map +1 -1
- package/lib/contract/models/Audit.js.map +1 -1
- package/lib/contract/models/OtherAudit.cjs +105 -0
- package/lib/contract/models/OtherAudit.d.ts +13 -0
- package/lib/contract/models/OtherAudit.js.map +1 -0
- package/lib/contract/models/OtherMarket.cjs +78 -0
- package/lib/contract/models/OtherMarket.d.ts +12 -0
- package/lib/contract/models/OtherMarket.js.map +1 -0
- package/lib/contract/models/OtherProductShared.cjs +15 -4
- package/lib/contract/models/OtherProductShared.d.ts +4 -0
- package/lib/contract/models/OtherProductShared.js.map +1 -1
- package/lib/contract/models/OtherProductStrength.cjs +81 -0
- package/lib/contract/models/OtherProductStrength.d.ts +11 -0
- package/lib/contract/models/OtherProductStrength.js.map +1 -0
- package/lib/contract/models/Product.cjs +1 -1
- package/lib/contract/models/Product.js.map +1 -1
- package/lib/contract/models/ProductStrength.js.map +1 -1
- package/lib/contract/models/decorators-private.cjs +88 -0
- package/lib/contract/models/decorators-private.d.ts +16 -0
- package/lib/contract/models/decorators-private.js.map +1 -0
- package/lib/contract/models/decorators.cjs +31 -2
- package/lib/contract/models/decorators.d.ts +6 -1
- package/lib/contract/models/decorators.js.map +1 -1
- package/lib/contracts/ContractAdapter.cjs +259 -409
- package/lib/contracts/ContractAdapter.d.ts +5 -29
- package/lib/contracts/ContractAdapter.js.map +1 -1
- package/lib/contracts/ContractContext.cjs +41 -13
- package/lib/contracts/ContractContext.d.ts +13 -8
- package/lib/contracts/ContractContext.js.map +1 -1
- package/lib/contracts/FabricContractRepository.cjs +70 -0
- package/lib/contracts/FabricContractRepository.d.ts +6 -0
- package/lib/contracts/FabricContractRepository.js.map +1 -1
- package/lib/contracts/FabricContractSequence.cjs +7 -23
- package/lib/contracts/FabricContractSequence.js.map +1 -1
- package/lib/contracts/FabricContractStatement.cjs +136 -1
- package/lib/contracts/FabricContractStatement.d.ts +5 -2
- package/lib/contracts/FabricContractStatement.js.map +1 -1
- package/lib/contracts/crud/crud-contract.cjs +42 -17
- package/lib/contracts/crud/crud-contract.d.ts +6 -5
- package/lib/contracts/crud/crud-contract.js.map +1 -1
- package/lib/contracts/types.d.ts +9 -2
- package/lib/esm/client/FabricClientAdapter.js +4 -7
- package/lib/esm/client/FabricClientAdapter.js.map +1 -1
- package/lib/esm/client/services/FabricIdentityService.js +3 -2
- package/lib/esm/client/services/FabricIdentityService.js.map +1 -1
- package/lib/esm/contract/OtherMarketContract.d.ts +5 -0
- package/lib/esm/contract/OtherMarketContract.js +27 -0
- package/lib/esm/contract/OtherMarketContract.js.map +1 -0
- package/lib/esm/contract/OtherProductStrengthContract.d.ts +5 -0
- package/lib/esm/contract/OtherProductStrengthContract.js +27 -0
- package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/index.js +4 -0
- package/lib/esm/contract/index.js.map +1 -1
- package/lib/esm/contract/models/Audit.js +1 -1
- package/lib/esm/contract/models/Audit.js.map +1 -1
- package/lib/esm/contract/models/OtherAudit.d.ts +13 -0
- package/lib/esm/contract/models/OtherAudit.js +102 -0
- package/lib/esm/contract/models/OtherAudit.js.map +1 -0
- package/lib/esm/contract/models/OtherMarket.d.ts +12 -0
- package/lib/esm/contract/models/OtherMarket.js +75 -0
- package/lib/esm/contract/models/OtherMarket.js.map +1 -0
- package/lib/esm/contract/models/OtherProductShared.d.ts +4 -0
- package/lib/esm/contract/models/OtherProductShared.js +16 -5
- package/lib/esm/contract/models/OtherProductShared.js.map +1 -1
- package/lib/esm/contract/models/OtherProductStrength.d.ts +11 -0
- package/lib/esm/contract/models/OtherProductStrength.js +78 -0
- package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
- package/lib/esm/contract/models/Product.js +1 -1
- package/lib/esm/contract/models/Product.js.map +1 -1
- package/lib/esm/contract/models/ProductStrength.js +1 -1
- package/lib/esm/contract/models/ProductStrength.js.map +1 -1
- package/lib/esm/contract/models/decorators-private.d.ts +16 -0
- package/lib/esm/contract/models/decorators-private.js +81 -0
- package/lib/esm/contract/models/decorators-private.js.map +1 -0
- package/lib/esm/contract/models/decorators.d.ts +6 -1
- package/lib/esm/contract/models/decorators.js +30 -2
- package/lib/esm/contract/models/decorators.js.map +1 -1
- package/lib/esm/contracts/ContractAdapter.d.ts +5 -29
- package/lib/esm/contracts/ContractAdapter.js +262 -412
- package/lib/esm/contracts/ContractAdapter.js.map +1 -1
- package/lib/esm/contracts/ContractContext.d.ts +13 -8
- package/lib/esm/contracts/ContractContext.js +41 -13
- package/lib/esm/contracts/ContractContext.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepository.d.ts +6 -0
- package/lib/esm/contracts/FabricContractRepository.js +70 -0
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
- package/lib/esm/contracts/FabricContractSequence.js +9 -25
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -1
- package/lib/esm/contracts/FabricContractStatement.d.ts +5 -2
- package/lib/esm/contracts/FabricContractStatement.js +135 -0
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -1
- package/lib/esm/contracts/crud/crud-contract.d.ts +6 -5
- package/lib/esm/contracts/crud/crud-contract.js +42 -17
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
- package/lib/esm/contracts/types.d.ts +9 -2
- package/lib/esm/shared/decorators.d.ts +8 -0
- package/lib/esm/shared/decorators.js +90 -83
- package/lib/esm/shared/decorators.js.map +1 -1
- package/lib/esm/shared/overrides/overrides.js +7 -6
- package/lib/esm/shared/overrides/overrides.js.map +1 -1
- package/lib/esm/shared/types.d.ts +3 -2
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/shared/decorators.cjs +91 -82
- package/lib/shared/decorators.d.ts +8 -0
- package/lib/shared/decorators.js.map +1 -1
- package/lib/shared/overrides/overrides.cjs +7 -6
- package/lib/shared/overrides/overrides.js.map +1 -1
- package/lib/shared/types.d.ts +3 -2
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +3 -3
- package/lib/contracts/ContractPrivateDataAdapter.cjs +0 -426
- package/lib/contracts/ContractPrivateDataAdapter.d.ts +0 -0
- package/lib/contracts/ContractPrivateDataAdapter.js.map +0 -1
- package/lib/contracts/FabricConstruction.cjs +0 -441
- package/lib/contracts/FabricConstruction.d.ts +0 -305
- package/lib/contracts/FabricConstruction.js.map +0 -1
- package/lib/contracts/private-data.cjs +0 -204
- package/lib/contracts/private-data.d.ts +0 -0
- package/lib/contracts/private-data.js.map +0 -1
- package/lib/esm/contracts/ContractPrivateDataAdapter.d.ts +0 -0
- package/lib/esm/contracts/ContractPrivateDataAdapter.js +0 -426
- package/lib/esm/contracts/ContractPrivateDataAdapter.js.map +0 -1
- package/lib/esm/contracts/FabricConstruction.d.ts +0 -305
- package/lib/esm/contracts/FabricConstruction.js +0 -433
- package/lib/esm/contracts/FabricConstruction.js.map +0 -1
- package/lib/esm/contracts/private-data.d.ts +0 -0
- package/lib/esm/contracts/private-data.js +0 -204
- package/lib/esm/contracts/private-data.js.map +0 -1
|
@@ -8,14 +8,16 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
import { model, required } from "@decaf-ts/decorator-validation";
|
|
11
|
-
import { column, index, OrderDirection, pk, table } from "@decaf-ts/core";
|
|
11
|
+
import { Cascade, column, index, oneToMany, OrderDirection, pk, table, } from "@decaf-ts/core";
|
|
12
12
|
// import {BlockOperations, OperationKeys, readonly} from "@decaf-ts/db-decorators";
|
|
13
13
|
import { uses } from "@decaf-ts/decoration";
|
|
14
14
|
import { BaseIdentifiedModel } from "./BaseIdentifiedModel.js";
|
|
15
15
|
import { gtin } from "./gtin.js";
|
|
16
|
-
import { audit } from "./decorators.js";
|
|
17
|
-
import { FabricFlavour,
|
|
16
|
+
import { audit } from "./decorators-private.js";
|
|
17
|
+
import { FabricFlavour, NamespaceCollection, ownedBy, sharedData, } from "./../../shared/index.js";
|
|
18
18
|
import { version } from "@decaf-ts/db-decorators";
|
|
19
|
+
import { OtherProductStrength } from "./OtherProductStrength.js";
|
|
20
|
+
import { OtherMarket } from "./OtherMarket.js";
|
|
19
21
|
let OtherProductShared = class OtherProductShared extends BaseIdentifiedModel {
|
|
20
22
|
constructor(args) {
|
|
21
23
|
super(args);
|
|
@@ -24,8 +26,9 @@ let OtherProductShared = class OtherProductShared extends BaseIdentifiedModel {
|
|
|
24
26
|
};
|
|
25
27
|
__decorate([
|
|
26
28
|
pk(),
|
|
27
|
-
gtin()
|
|
28
|
-
mirror("mirror-collection", "org-a")
|
|
29
|
+
gtin()
|
|
30
|
+
// @mirror("mirror-collection", "org-a")
|
|
31
|
+
,
|
|
29
32
|
audit(OtherProductShared),
|
|
30
33
|
__metadata("design:type", String)
|
|
31
34
|
], OtherProductShared.prototype, "productCode", void 0);
|
|
@@ -54,6 +57,14 @@ __decorate([
|
|
|
54
57
|
version(),
|
|
55
58
|
__metadata("design:type", Number)
|
|
56
59
|
], OtherProductShared.prototype, "counter", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
oneToMany(() => OtherProductStrength, { update: Cascade.CASCADE, delete: Cascade.CASCADE }, false),
|
|
62
|
+
__metadata("design:type", Array)
|
|
63
|
+
], OtherProductShared.prototype, "strengths", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
oneToMany(() => OtherMarket, { update: Cascade.CASCADE, delete: Cascade.CASCADE }, false),
|
|
66
|
+
__metadata("design:type", Array)
|
|
67
|
+
], OtherProductShared.prototype, "markets", void 0);
|
|
57
68
|
__decorate([
|
|
58
69
|
column(),
|
|
59
70
|
ownedBy(),
|
|
@@ -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,
|
|
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,EAEb,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;AAOrC,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,mBAAmB;IAgEzD,YAAY,IAAmC;QAC7C,KAAK,CAAC,IAAI,CAAC,CAAC;QA3Cd,kBAAa,GAAY,KAAK,CAAC;IA4C/B,CAAC;CACF,CAAA;AA9DC;IAJC,EAAE,EAAE;IACJ,IAAI,EAAE;IACP,wCAAwC;;IACvC,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,KAAK,CACN;;qDACkC;AAOnC;IALC,SAAS,CACR,GAAG,EAAE,CAAC,WAAW,EACjB,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,EACpD,KAAK,CACN;;mDACuB;AAIxB;IAFC,MAAM,EAAE;IACR,OAAO,EAAE;;mDACO;AA9DN,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,CAmE9B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ModelArg } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { BaseIdentifiedModel } from "./BaseIdentifiedModel";
|
|
3
|
+
export declare class OtherProductStrength extends BaseIdentifiedModel {
|
|
4
|
+
id: string;
|
|
5
|
+
uuid: string;
|
|
6
|
+
productCode: string;
|
|
7
|
+
strength: string;
|
|
8
|
+
substance?: string;
|
|
9
|
+
legalEntityName?: string;
|
|
10
|
+
constructor(model?: ModelArg<OtherProductStrength>);
|
|
11
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { model, required } from "@decaf-ts/decorator-validation";
|
|
11
|
+
import { column, index, OrderDirection, pk, table, uuid } from "@decaf-ts/core";
|
|
12
|
+
import { TableNames } from "./constants.js";
|
|
13
|
+
import { description, uses } from "@decaf-ts/decoration";
|
|
14
|
+
import { BaseIdentifiedModel } from "./BaseIdentifiedModel.js";
|
|
15
|
+
import { FabricFlavour, NamespaceCollection, sharedData, } from "./../../shared/index.js";
|
|
16
|
+
import { composed, InternalError } from "@decaf-ts/db-decorators";
|
|
17
|
+
import { gtin } from "./gtin.js";
|
|
18
|
+
function strengthSeed(m) {
|
|
19
|
+
try {
|
|
20
|
+
return `${m.productCode}${m.strength}${m.substance ? m.substance : ""}`;
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
throw new InternalError(`Failed to generate deterministic uuid: ${e}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
let OtherProductStrength = class OtherProductStrength extends BaseIdentifiedModel {
|
|
27
|
+
constructor(model) {
|
|
28
|
+
super(model);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
__decorate([
|
|
32
|
+
pk()
|
|
33
|
+
// @mirror("mirror-collection", "org-a")
|
|
34
|
+
,
|
|
35
|
+
composed(["productCode", "uuid"], ":"),
|
|
36
|
+
description("Unique identifier of the product strength."),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], OtherProductStrength.prototype, "id", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
uuid(strengthSeed),
|
|
41
|
+
required(),
|
|
42
|
+
description("Unique identifier of the audit record."),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], OtherProductStrength.prototype, "uuid", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
gtin(),
|
|
47
|
+
index([OrderDirection.ASC, OrderDirection.DSC]),
|
|
48
|
+
description("Product code associated with this strength entry."),
|
|
49
|
+
__metadata("design:type", String)
|
|
50
|
+
], OtherProductStrength.prototype, "productCode", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
column(),
|
|
53
|
+
required(),
|
|
54
|
+
index([OrderDirection.ASC, OrderDirection.DSC]),
|
|
55
|
+
description("Product concentration or dosage (e.g., 500mg, 10%)."),
|
|
56
|
+
__metadata("design:type", String)
|
|
57
|
+
], OtherProductStrength.prototype, "strength", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
column(),
|
|
60
|
+
index([OrderDirection.ASC, OrderDirection.DSC]),
|
|
61
|
+
description("Active substance related to this product strength."),
|
|
62
|
+
__metadata("design:type", String)
|
|
63
|
+
], OtherProductStrength.prototype, "substance", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
column(),
|
|
66
|
+
description("Legal entity name responsible for the product."),
|
|
67
|
+
__metadata("design:type", String)
|
|
68
|
+
], OtherProductStrength.prototype, "legalEntityName", void 0);
|
|
69
|
+
OtherProductStrength = __decorate([
|
|
70
|
+
sharedData(NamespaceCollection("decaf-namespace")),
|
|
71
|
+
uses(FabricFlavour),
|
|
72
|
+
table(TableNames.ProductStrength),
|
|
73
|
+
model(),
|
|
74
|
+
description("Represents the product’s strength and composition details."),
|
|
75
|
+
__metadata("design:paramtypes", [Object])
|
|
76
|
+
], OtherProductStrength);
|
|
77
|
+
export { OtherProductStrength };
|
|
78
|
+
//# sourceMappingURL=OtherProductStrength.js.map
|
|
@@ -0,0 +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,EAEb,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;IACL,wCAAwC;;IACvC,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"}
|
|
@@ -59,7 +59,7 @@ __decorate([
|
|
|
59
59
|
__metadata("design:type", Array)
|
|
60
60
|
], Product.prototype, "strengths", void 0);
|
|
61
61
|
__decorate([
|
|
62
|
-
oneToMany(() => Market, { update: Cascade.
|
|
62
|
+
oneToMany(() => Market, { update: Cascade.CASCADE, delete: Cascade.CASCADE }, false),
|
|
63
63
|
__metadata("design:type", Array)
|
|
64
64
|
], Product.prototype, "markets", void 0);
|
|
65
65
|
Product = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Product.js","sourceRoot":"","sources":["../../../../src/contract/models/Product.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,KAAK,EACL,cAAc,EACd,EAAE,EACF,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,oFAAoF;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,6BAA0B;AACpD,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAClC,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EAAE,IAAI,EAAE,kBAAe;AAE9B,OAAO,EAAE,KAAK,EAAE,wBAAqB;AACrC,OAAO,EAAE,aAAa,EAAE,oCAA+B;AAMhD,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,mBAAmB;IA2D9C,YAAY,IAAwB;QAClC,KAAK,CAAC,IAAI,CAAC,CAAC;QAvCd,kBAAa,GAAY,KAAK,CAAC;IAwC/B,CAAC;CACF,CAAA;AA1DC;IAHC,IAAI,EAAE;IACN,KAAK,CAAC,OAAO,CAAC;IACd,EAAE,EAAE;;4CACgB;AAKrB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;6CAC1B;AAKtB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;qDAClB;AAG9B;IADC,MAAM,EAAE;;qDACqB;AAI9B;IAFC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;8CACjB;AAsB/B;IADC,MAAM,EAAE;;wCACQ;AAOjB;IALC,SAAS,CACR,GAAG,EAAE,CAAC,eAAe,EACrB,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,EACpD,KAAK,CACN;;0CAC6B;AAO9B;IALC,SAAS,CACR,GAAG,EAAE,CAAC,MAAM,EACZ,EAAE,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Product.js","sourceRoot":"","sources":["../../../../src/contract/models/Product.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,KAAK,EACL,cAAc,EACd,EAAE,EACF,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,oFAAoF;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,6BAA0B;AACpD,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAClC,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EAAE,IAAI,EAAE,kBAAe;AAE9B,OAAO,EAAE,KAAK,EAAE,wBAAqB;AACrC,OAAO,EAAE,aAAa,EAAE,oCAA+B;AAMhD,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,mBAAmB;IA2D9C,YAAY,IAAwB;QAClC,KAAK,CAAC,IAAI,CAAC,CAAC;QAvCd,kBAAa,GAAY,KAAK,CAAC;IAwC/B,CAAC;CACF,CAAA;AA1DC;IAHC,IAAI,EAAE;IACN,KAAK,CAAC,OAAO,CAAC;IACd,EAAE,EAAE;;4CACgB;AAKrB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;6CAC1B;AAKtB;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;qDAClB;AAG9B;IADC,MAAM,EAAE;;qDACqB;AAI9B;IAFC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;8CACjB;AAsB/B;IADC,MAAM,EAAE;;wCACQ;AAOjB;IALC,SAAS,CACR,GAAG,EAAE,CAAC,eAAe,EACrB,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,EACpD,KAAK,CACN;;0CAC6B;AAO9B;IALC,SAAS,CACR,GAAG,EAAE,CAAC,MAAM,EACZ,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,EACpD,KAAK,CACN;;wCACkB;AAzDR,OAAO;IAJnB,IAAI,CAAC,aAAa,CAAC;IACpB,2CAA2C;;IAC1C,KAAK,EAAE;IACP,KAAK,EAAE;;GACK,OAAO,CA8DnB"}
|
|
@@ -12,7 +12,7 @@ import { column, index, OrderDirection, pk, table, uuid, } from "@decaf-ts/core"
|
|
|
12
12
|
import { TableNames } from "./constants.js";
|
|
13
13
|
import { description, uses } from "@decaf-ts/decoration";
|
|
14
14
|
import { BaseIdentifiedModel } from "./BaseIdentifiedModel.js";
|
|
15
|
-
import { FabricFlavour } from "./../../shared/index.js";
|
|
15
|
+
import { FabricFlavour, } from "./../../shared/index.js";
|
|
16
16
|
import { composed, InternalError } from "@decaf-ts/db-decorators";
|
|
17
17
|
import { gtin } from "./gtin.js";
|
|
18
18
|
function strengthSeed(m) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductStrength.js","sourceRoot":"","sources":["../../../../src/contract/models/ProductStrength.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,MAAM,EAEN,KAAK,EACL,cAAc,EACd,EAAE,EACF,KAAK,EACL,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,uBAAoB;AACzC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,OAAO,
|
|
1
|
+
{"version":3,"file":"ProductStrength.js","sourceRoot":"","sources":["../../../../src/contract/models/ProductStrength.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,MAAM,EAEN,KAAK,EACL,cAAc,EACd,EAAE,EACF,KAAK,EACL,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,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,GAId,gCAA2B;AAC5B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,kBAAe;AAE9B,SAAS,YAAY,CAAC,CAAkB;IACtC,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;AAMM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,mBAAmB;IAoCtD,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF,CAAA;AAnCC;IAHC,EAAE,EAAE;IACJ,QAAQ,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;IACtC,WAAW,CAAC,4CAA4C,CAAC;;2CAC9C;AAKZ;IAHC,IAAI,CAAC,YAAY,CAAC;IAClB,QAAQ,EAAE;IACV,WAAW,CAAC,wCAAwC,CAAC;;6CACxC;AAUd;IAHC,IAAI,EAAE;IACN,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,WAAW,CAAC,mDAAmD,CAAC;;oDAC5C;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;;iDACjD;AAKlB;IAHC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/C,WAAW,CAAC,oDAAoD,CAAC;;kDAC/C;AAInB;IAFC,MAAM,EAAE;IACR,WAAW,CAAC,gDAAgD,CAAC;;wDACrC;AAlCd,eAAe;IAJ3B,IAAI,CAAC,aAAa,CAAC;IACnB,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;IACjC,KAAK,EAAE;IACP,WAAW,CAAC,4DAA4D,CAAC;;GAC7D,eAAe,CAuC3B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
3
|
+
import { Repository } from "@decaf-ts/core";
|
|
4
|
+
import { FabricContractContext } from "../../contracts/ContractContext";
|
|
5
|
+
import { CollectionResolver } from "../../shared/decorators";
|
|
6
|
+
export declare function rebuildForMatchingCollection<M extends Model>(model: M, context: any, collections: {
|
|
7
|
+
privateCols: (string | CollectionResolver)[];
|
|
8
|
+
sharedCols: (string | CollectionResolver)[];
|
|
9
|
+
}): Promise<M>;
|
|
10
|
+
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
|
+
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
|
+
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>;
|
|
13
|
+
export type AuditMetadata = {
|
|
14
|
+
class: Constructor<Model>;
|
|
15
|
+
};
|
|
16
|
+
export declare function audit(model: Constructor<Model<boolean>>): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { metadata, apply } from "@decaf-ts/decoration";
|
|
3
|
+
import { afterCreate, afterDelete, afterUpdate, InternalError, OperationKeys, } from "@decaf-ts/db-decorators";
|
|
4
|
+
import { OtherAudit } from "./OtherAudit.js";
|
|
5
|
+
import { Repository } from "@decaf-ts/core";
|
|
6
|
+
export async function rebuildForMatchingCollection(model, context, collections) {
|
|
7
|
+
const mapToCollections = collections && (collections.privateCols || collections.sharedCols);
|
|
8
|
+
let cols = undefined;
|
|
9
|
+
if (mapToCollections) {
|
|
10
|
+
const msp = Model.ownerOf(model) || (await context.stub.getCreator()).mspid;
|
|
11
|
+
cols = [
|
|
12
|
+
...new Set([...collections.privateCols, ...collections.sharedCols].map((col) => {
|
|
13
|
+
return typeof col === "string"
|
|
14
|
+
? col
|
|
15
|
+
: col(model, msp);
|
|
16
|
+
})),
|
|
17
|
+
];
|
|
18
|
+
const pk = Model.pk(model);
|
|
19
|
+
cols.forEach((col) => {
|
|
20
|
+
const segData = context.get("segregatedData");
|
|
21
|
+
Object.assign(model, segData[col][model[pk]]);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return model;
|
|
25
|
+
}
|
|
26
|
+
export async function createAuditHandler(context, data, key, model) {
|
|
27
|
+
const repo = Repository.forModel(OtherAudit);
|
|
28
|
+
const collections = Model.collectionsFor(OtherAudit);
|
|
29
|
+
model = await rebuildForMatchingCollection(model, context, collections);
|
|
30
|
+
if (!context.identity || !context.identity.getID)
|
|
31
|
+
throw new InternalError(`Lost context apparently for audit`);
|
|
32
|
+
const toCreate = new OtherAudit({
|
|
33
|
+
userGroup: context.identity.getID(),
|
|
34
|
+
userId: context.identity.getID(),
|
|
35
|
+
model: Model.tableName(data.class),
|
|
36
|
+
transaction: context.stub.getTxID(),
|
|
37
|
+
action: OperationKeys.CREATE,
|
|
38
|
+
diffs: new this.class().compare(model),
|
|
39
|
+
});
|
|
40
|
+
const audit = await repo.override(this._overrides).create(toCreate, context);
|
|
41
|
+
context.logger.info(`Audit log for ${OperationKeys.CREATE} of ${Model.tableName(this.class)} created: ${audit.id}: ${JSON.stringify(audit, undefined, 2)}`);
|
|
42
|
+
}
|
|
43
|
+
export async function updateAuditHandler(context, data, key, model, oldModel) {
|
|
44
|
+
const repo = Repository.forModel(OtherAudit);
|
|
45
|
+
const collections = Model.collectionsFor(OtherAudit);
|
|
46
|
+
model = await rebuildForMatchingCollection(model, context, collections);
|
|
47
|
+
if (!context.identity || !context.identity.getID)
|
|
48
|
+
throw new InternalError(`Lost context apparently for audit`);
|
|
49
|
+
const toCreate = new OtherAudit({
|
|
50
|
+
userGroup: context.identity.getID(),
|
|
51
|
+
userId: context.identity.getID(),
|
|
52
|
+
model: Model.tableName(data.class),
|
|
53
|
+
transaction: context.stub.getTxID(),
|
|
54
|
+
action: OperationKeys.UPDATE,
|
|
55
|
+
diffs: model.compare(oldModel),
|
|
56
|
+
});
|
|
57
|
+
const audit = await repo.override(this._overrides).create(toCreate, context);
|
|
58
|
+
context.logger.info(`Audit log for ${OperationKeys.UPDATE} of ${Model.tableName(this.class)} created: ${JSON.stringify(audit, undefined, 2)}`);
|
|
59
|
+
}
|
|
60
|
+
export async function deleteAuditHandler(context, data, key, model) {
|
|
61
|
+
if (!context.identity || !context.identity.getID)
|
|
62
|
+
throw new InternalError(`Lost context apprently. no getId in identity`);
|
|
63
|
+
const toCreate = new OtherAudit({
|
|
64
|
+
userGroup: context.identity.getID(),
|
|
65
|
+
userId: context.identity.getID(),
|
|
66
|
+
model: Model.tableName(data.class),
|
|
67
|
+
transaction: context.stub.getTxID(),
|
|
68
|
+
action: OperationKeys.DELETE,
|
|
69
|
+
diffs: model.compare(new this.class()),
|
|
70
|
+
});
|
|
71
|
+
const repo = Repository.forModel(OtherAudit);
|
|
72
|
+
const audit = await repo.override(this._overrides).create(toCreate, context);
|
|
73
|
+
context.logger.info(`Audit log for ${OperationKeys.DELETE} of ${Model.tableName(this.class)} created: ${JSON.stringify(audit, undefined, 2)}`);
|
|
74
|
+
}
|
|
75
|
+
export function audit(model) {
|
|
76
|
+
const meta = {
|
|
77
|
+
class: model,
|
|
78
|
+
};
|
|
79
|
+
return apply(afterCreate(createAuditHandler, meta), afterUpdate(updateAuditHandler, meta), afterDelete(deleteAuditHandler, meta), metadata("audit", true));
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=decorators-private.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators-private.js","sourceRoot":"","sources":["../../../../src/contract/models/decorators-private.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { Constructor } from "@decaf-ts/decoration";
|
|
3
3
|
import { Repository } from "@decaf-ts/core";
|
|
4
|
-
import { FabricContractContext } from "../../contracts/
|
|
4
|
+
import { FabricContractContext } from "../../contracts/ContractContext";
|
|
5
|
+
import { CollectionResolver } from "../../shared/decorators";
|
|
6
|
+
export declare function rebuildForMatchingCollection<M extends Model>(model: M, context: any, collections: {
|
|
7
|
+
privateCols: (string | CollectionResolver)[];
|
|
8
|
+
sharedCols: (string | CollectionResolver)[];
|
|
9
|
+
}): Promise<M>;
|
|
5
10
|
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>;
|
|
6
11
|
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>;
|
|
7
12
|
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>;
|
|
@@ -3,10 +3,33 @@ import { metadata, apply } from "@decaf-ts/decoration";
|
|
|
3
3
|
import { afterCreate, afterDelete, afterUpdate, InternalError, OperationKeys, } from "@decaf-ts/db-decorators";
|
|
4
4
|
import { Audit } from "./Audit.js";
|
|
5
5
|
import { Repository } from "@decaf-ts/core";
|
|
6
|
+
export async function rebuildForMatchingCollection(model, context, collections) {
|
|
7
|
+
const mapToCollections = collections && (collections.privateCols || collections.sharedCols);
|
|
8
|
+
let cols = undefined;
|
|
9
|
+
if (mapToCollections) {
|
|
10
|
+
const msp = Model.ownerOf(model) || (await context.stub.getCreator()).mspid;
|
|
11
|
+
cols = [
|
|
12
|
+
...new Set([...collections.privateCols, ...collections.sharedCols].map((col) => {
|
|
13
|
+
return typeof col === "string"
|
|
14
|
+
? col
|
|
15
|
+
: col(model, msp);
|
|
16
|
+
})),
|
|
17
|
+
];
|
|
18
|
+
const pk = Model.pk(model);
|
|
19
|
+
cols.forEach((col) => {
|
|
20
|
+
const segData = context.get("segregatedData");
|
|
21
|
+
Object.assign(model, segData[col][model[pk]]);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return model;
|
|
25
|
+
}
|
|
6
26
|
export async function createAuditHandler(context, data, key, model) {
|
|
7
27
|
const repo = Repository.forModel(Audit);
|
|
28
|
+
const collections = Model.collectionsFor(Audit);
|
|
29
|
+
//
|
|
30
|
+
// model = await rebuildForMatchingCollection(model, context, collections);
|
|
8
31
|
if (!context.identity || !context.identity.getID)
|
|
9
|
-
throw new InternalError(`Lost context apparently
|
|
32
|
+
throw new InternalError(`Lost context apparently for audit`);
|
|
10
33
|
const toCreate = new Audit({
|
|
11
34
|
userGroup: context.identity.getID(),
|
|
12
35
|
userId: context.identity.getID(),
|
|
@@ -19,6 +42,12 @@ export async function createAuditHandler(context, data, key, model) {
|
|
|
19
42
|
context.logger.info(`Audit log for ${OperationKeys.CREATE} of ${Model.tableName(this.class)} created: ${audit.id}: ${JSON.stringify(audit, undefined, 2)}`);
|
|
20
43
|
}
|
|
21
44
|
export async function updateAuditHandler(context, data, key, model, oldModel) {
|
|
45
|
+
const repo = Repository.forModel(Audit);
|
|
46
|
+
const collections = Model.collectionsFor(Audit);
|
|
47
|
+
//
|
|
48
|
+
// model = await rebuildForMatchingCollection(model, context, collections);
|
|
49
|
+
if (!context.identity || !context.identity.getID)
|
|
50
|
+
throw new InternalError(`Lost context apparently for audit`);
|
|
22
51
|
const toCreate = new Audit({
|
|
23
52
|
userGroup: context.identity.getID(),
|
|
24
53
|
userId: context.identity.getID(),
|
|
@@ -27,7 +56,6 @@ export async function updateAuditHandler(context, data, key, model, oldModel) {
|
|
|
27
56
|
action: OperationKeys.UPDATE,
|
|
28
57
|
diffs: model.compare(oldModel),
|
|
29
58
|
});
|
|
30
|
-
const repo = Repository.forModel(Audit);
|
|
31
59
|
const audit = await repo.override(this._overrides).create(toCreate, context);
|
|
32
60
|
context.logger.info(`Audit log for ${OperationKeys.UPDATE} of ${Model.tableName(this.class)} created: ${JSON.stringify(audit, undefined, 2)}`);
|
|
33
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../src/contract/models/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAe,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../src/contract/models/decorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,18 +86,6 @@ export declare class FabricContractAdapter extends CouchDBAdapter<any, void, Fab
|
|
|
86
86
|
*/
|
|
87
87
|
private static textDecoder;
|
|
88
88
|
protected static readonly serializer: SimpleDeterministicSerializer<Model<false>>;
|
|
89
|
-
/**
|
|
90
|
-
* @description Stores segregation metadata per sequence name
|
|
91
|
-
* @summary Needed because the Sequence creates its own context (via logCtx),
|
|
92
|
-
* losing flags set by extractSegregatedCollections on the handler context.
|
|
93
|
-
* The adapter persists across operations, making it a reliable store.
|
|
94
|
-
*/
|
|
95
|
-
private _sequenceSegregation;
|
|
96
|
-
setSequenceSegregation(seqName: string, fullySegregated: boolean, collections: string[]): void;
|
|
97
|
-
getSequenceSegregation(seqName: string): {
|
|
98
|
-
fullySegregated: boolean;
|
|
99
|
-
collections: string[];
|
|
100
|
-
} | undefined;
|
|
101
89
|
/**
|
|
102
90
|
* @description Context constructor for this adapter
|
|
103
91
|
* @summary Overrides the base Context constructor with FabricContractContext
|
|
@@ -120,6 +108,7 @@ export declare class FabricContractAdapter extends CouchDBAdapter<any, void, Fab
|
|
|
120
108
|
*/
|
|
121
109
|
constructor(scope: void, alias?: string);
|
|
122
110
|
for(config: Partial<any>, ...args: any): typeof this;
|
|
111
|
+
protected getModelDefaults<M extends Model>(clazz: Constructor<M>): Record<keyof M, any>;
|
|
123
112
|
/**
|
|
124
113
|
* @description Creates a record in the state database
|
|
125
114
|
* @summary Serializes a model and stores it in the Fabric state database
|
|
@@ -131,7 +120,7 @@ export declare class FabricContractAdapter extends CouchDBAdapter<any, void, Fab
|
|
|
131
120
|
* @return {Promise<Record<string, any>>} Promise resolving to the created record
|
|
132
121
|
*/
|
|
133
122
|
create<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ...args: ContextualArgs<Context<FabricContractFlags>>): Promise<Record<string, any>>;
|
|
134
|
-
|
|
123
|
+
createAll<M extends Model>(tableName: Constructor<M>, id: PrimaryKeyType[], model: Record<string, any>[], ...args: ContextualArgs<FabricContractContext>): Promise<Record<string, any>[]>;
|
|
135
124
|
/**
|
|
136
125
|
* @description Reads a record from the state database
|
|
137
126
|
* @summary Retrieves and deserializes a record from the Fabric state database
|
|
@@ -164,16 +153,9 @@ export declare class FabricContractAdapter extends CouchDBAdapter<any, void, Fab
|
|
|
164
153
|
protected deleteState(id: string, context: FabricContractContext): Promise<void>;
|
|
165
154
|
forPrivate(collection: string): FabricContractAdapter;
|
|
166
155
|
protected putState(id: string, model: Record<string, any>, ctx: FabricContractContext): Promise<Record<string, any>>;
|
|
167
|
-
private flushSegregatedWrites;
|
|
168
|
-
private buildSegregatedRecord;
|
|
169
|
-
private mergeSegregatedReads;
|
|
170
|
-
private readPrivateRecord;
|
|
171
|
-
private deleteSegregatedCollections;
|
|
172
156
|
protected readState(id: string, ctx: FabricContractContext): Promise<any>;
|
|
173
157
|
protected queryResult(stub: ChaincodeStub, rawInput: any, ...args: ContextualArgs<FabricContractContext>): Promise<Iterators.StateQueryIterator>;
|
|
174
|
-
private createRowsIterator;
|
|
175
158
|
protected queryResultPaginated(stub: ChaincodeStub, rawInput: any, limit?: number, page?: number, bookmark?: string | number, ...args: any[]): Promise<StateQueryResponse<Iterators.StateQueryIterator>>;
|
|
176
|
-
protected mergeModels(results: Record<string, any>[]): Record<string, any>;
|
|
177
159
|
/**
|
|
178
160
|
* @description Decodes binary data to string
|
|
179
161
|
* @summary Converts a Uint8Array to a string using UTF-8 encoding
|
|
@@ -257,7 +239,6 @@ export declare class FabricContractAdapter extends CouchDBAdapter<any, void, Fab
|
|
|
257
239
|
raw<R, D extends boolean>(rawInput: MangoQuery, docsOnly?: D, ...args: ContextualArgs<FabricContractContext>): Promise<RawResult<R, D>>;
|
|
258
240
|
view<R>(ddoc: string, viewName: string, options: Record<string, any>, ..._args: ContextualArgs<FabricContractContext>): Promise<ViewResponse<R>>;
|
|
259
241
|
Statement<M extends Model>(): FabricStatement<M, any>;
|
|
260
|
-
createAll<M extends Model>(tableName: Constructor<M>, id: PrimaryKeyType[], model: Record<string, any>[], ...args: ContextualArgs<FabricContractContext>): Promise<Record<string, any>[]>;
|
|
261
242
|
updateAll<M extends Model>(tableName: Constructor<M>, id: PrimaryKeyType[], model: Record<string, any>[], ...args: ContextualArgs<FabricContractContext>): Promise<Record<string, any>[]>;
|
|
262
243
|
/**
|
|
263
244
|
*
|
|
@@ -265,16 +246,11 @@ export declare class FabricContractAdapter extends CouchDBAdapter<any, void, Fab
|
|
|
265
246
|
* @param {string} pk
|
|
266
247
|
* @param args
|
|
267
248
|
*/
|
|
268
|
-
prepare<M extends Model>(model: M, ...args: ContextualArgs<FabricContractContext>): PreparedModel
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
* @summary Looks up per-property metadata set by @privateData/@sharedData decorators
|
|
272
|
-
* to determine which properties are decorated for the given collection name.
|
|
273
|
-
*/
|
|
274
|
-
private getFieldsForCollection;
|
|
249
|
+
prepare<M extends Model>(model: M, ...args: ContextualArgs<FabricContractContext>): PreparedModel & {
|
|
250
|
+
segregated?: Record<string, Record<string, any>>;
|
|
251
|
+
};
|
|
275
252
|
revert<M extends Model>(obj: Record<string, any>, clazz: Constructor<M>, id: PrimaryKeyType, transient?: Record<string, any>, ...args: ContextualArgs<FabricContractContext>): M;
|
|
276
253
|
private shouldRebuildWithTransient;
|
|
277
|
-
private hasPublicState;
|
|
278
254
|
private getContextMsp;
|
|
279
255
|
private enforceMirrorAuthorization;
|
|
280
256
|
createPrefix<M extends Model>(tableName: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ...args: MaybeContextualArg<FabricContractContext>): [Constructor<M>, PrimaryKeyType, Record<string, any>, ...any[], FabricContractContext];
|