@decaf-ts/for-fabric 0.1.21 → 0.1.23

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 (91) 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 +26 -74
  6. package/lib/client/FabricClientAdapter.d.ts +27 -41
  7. package/lib/client/FabricClientAdapter.js.map +1 -1
  8. package/lib/client/FabricClientDispatch.cjs +1 -3
  9. package/lib/client/FabricClientDispatch.d.ts +6 -5
  10. package/lib/client/FabricClientDispatch.js.map +1 -1
  11. package/lib/client/FabricClientPaginator.cjs +5 -56
  12. package/lib/client/FabricClientPaginator.d.ts +6 -6
  13. package/lib/client/FabricClientPaginator.js.map +1 -1
  14. package/lib/client/FabricClientRepository.cjs +51 -104
  15. package/lib/client/FabricClientRepository.d.ts +21 -17
  16. package/lib/client/FabricClientRepository.js.map +1 -1
  17. package/lib/client/FabricClientStatement.cjs +7 -97
  18. package/lib/client/FabricClientStatement.d.ts +6 -7
  19. package/lib/client/FabricClientStatement.js.map +1 -1
  20. package/lib/client/erc20/FabricERC20ClientRepository.d.ts +5 -5
  21. package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -1
  22. package/lib/client/services/FabricEnrollmentService.d.ts +1 -1
  23. package/lib/contracts/ContractAdapter.cjs +53 -27
  24. package/lib/contracts/ContractAdapter.d.ts +3 -3
  25. package/lib/contracts/ContractAdapter.js.map +1 -1
  26. package/lib/contracts/ContractContext.cjs +2 -2
  27. package/lib/contracts/ContractContext.d.ts +1 -1
  28. package/lib/contracts/ContractContext.js.map +1 -1
  29. package/lib/contracts/FabricContractRepository.js.map +1 -1
  30. package/lib/contracts/crud/crud-contract.cjs +14 -16
  31. package/lib/contracts/crud/crud-contract.d.ts +15 -4
  32. package/lib/contracts/crud/crud-contract.js.map +1 -1
  33. package/lib/contracts/crud/serialized-crud-contract.cjs +58 -8
  34. package/lib/contracts/crud/serialized-crud-contract.d.ts +6 -2
  35. package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
  36. package/lib/contracts/types.d.ts +2 -2
  37. package/lib/esm/client/FabricClientAdapter.d.ts +27 -41
  38. package/lib/esm/client/FabricClientAdapter.js +26 -73
  39. package/lib/esm/client/FabricClientAdapter.js.map +1 -1
  40. package/lib/esm/client/FabricClientDispatch.d.ts +6 -5
  41. package/lib/esm/client/FabricClientDispatch.js +3 -5
  42. package/lib/esm/client/FabricClientDispatch.js.map +1 -1
  43. package/lib/esm/client/FabricClientPaginator.d.ts +6 -6
  44. package/lib/esm/client/FabricClientPaginator.js +6 -57
  45. package/lib/esm/client/FabricClientPaginator.js.map +1 -1
  46. package/lib/esm/client/FabricClientRepository.d.ts +21 -17
  47. package/lib/esm/client/FabricClientRepository.js +51 -104
  48. package/lib/esm/client/FabricClientRepository.js.map +1 -1
  49. package/lib/esm/client/FabricClientStatement.d.ts +6 -7
  50. package/lib/esm/client/FabricClientStatement.js +8 -98
  51. package/lib/esm/client/FabricClientStatement.js.map +1 -1
  52. package/lib/esm/client/erc20/FabricERC20ClientRepository.d.ts +5 -5
  53. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -1
  54. package/lib/esm/client/services/FabricEnrollmentService.d.ts +1 -1
  55. package/lib/esm/contracts/ContractAdapter.d.ts +3 -3
  56. package/lib/esm/contracts/ContractAdapter.js +53 -27
  57. package/lib/esm/contracts/ContractAdapter.js.map +1 -1
  58. package/lib/esm/contracts/ContractContext.d.ts +1 -1
  59. package/lib/esm/contracts/ContractContext.js +1 -1
  60. package/lib/esm/contracts/ContractContext.js.map +1 -1
  61. package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
  62. package/lib/esm/contracts/crud/crud-contract.d.ts +15 -4
  63. package/lib/esm/contracts/crud/crud-contract.js +17 -19
  64. package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
  65. package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +6 -2
  66. package/lib/esm/contracts/crud/serialized-crud-contract.js +58 -8
  67. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
  68. package/lib/esm/contracts/types.d.ts +2 -2
  69. package/lib/esm/shared/decorators.d.ts +6 -7
  70. package/lib/esm/shared/decorators.js +73 -58
  71. package/lib/esm/shared/decorators.js.map +1 -1
  72. package/lib/esm/shared/overrides/overrides.js +39 -38
  73. package/lib/esm/shared/overrides/overrides.js.map +1 -1
  74. package/lib/esm/shared/types.d.ts +5 -9
  75. package/lib/esm/version.d.ts +1 -1
  76. package/lib/esm/version.js +1 -1
  77. package/lib/shared/decorators.cjs +69 -54
  78. package/lib/shared/decorators.d.ts +6 -7
  79. package/lib/shared/decorators.js.map +1 -1
  80. package/lib/shared/overrides/overrides.cjs +39 -38
  81. package/lib/shared/overrides/overrides.js.map +1 -1
  82. package/lib/shared/types.d.ts +5 -9
  83. package/lib/version.cjs +1 -1
  84. package/lib/version.d.ts +1 -1
  85. package/package.json +1 -1
  86. package/lib/client/types.cjs +0 -3
  87. package/lib/client/types.d.ts +0 -7
  88. package/lib/client/types.js.map +0 -1
  89. package/lib/esm/client/types.d.ts +0 -7
  90. package/lib/esm/client/types.js +0 -2
  91. package/lib/esm/client/types.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { RepositoryFlags } from "@decaf-ts/db-decorators";
2
1
  import { ChaincodeStub, ClientIdentity } from "fabric-shim-api";
3
2
  import { Logger } from "@decaf-ts/logging";
3
+ import { FabricFlags } from "../shared/index";
4
4
  /**
5
5
  * @description Flags for Fabric chaincode contract operations
6
6
  * @summary Extends repository flags with Fabric-specific context elements available during Fabric chaincode execution, such as the ChaincodeStub, ClientIdentity and a request-scoped Logger.
@@ -10,7 +10,7 @@ import { Logger } from "@decaf-ts/logging";
10
10
  * @interface FabricContractFlags
11
11
  * @memberOf module:fabric.contracts
12
12
  */
13
- export interface FabricContractFlags extends RepositoryFlags {
13
+ export interface FabricContractFlags extends FabricFlags {
14
14
  /**
15
15
  * @description Chaincode stub for interacting with the ledger
16
16
  */
@@ -1,7 +1,6 @@
1
- import { Repo } from "@decaf-ts/core";
2
- import { Context } from "@decaf-ts/db-decorators";
1
+ import { Repo, Context, Repository } from "@decaf-ts/core";
3
2
  import { Model } from "@decaf-ts/decorator-validation";
4
- import { FabricContractContext, FabricContractRepository } from "../contracts/index";
3
+ import { FabricFlags } from "./types";
5
4
  /**
6
5
  * Decorator for marking methods that require ownership authorization.
7
6
  * Checks the owner of the token before allowing the method to be executed.
@@ -27,9 +26,9 @@ export declare const ImplicitPrivateCollection: CollectionResolver;
27
26
  export type SegregatedDataMetadata = {
28
27
  collections: string | CollectionResolver;
29
28
  };
30
- export declare function segregatedDataOnCreate<M extends Model>(this: FabricContractRepository<M>, context: FabricContractContext, data: SegregatedDataMetadata[], keys: (keyof M)[], model: M): Promise<void>;
31
- export declare function segregatedDataOnRead<M extends Model>(this: FabricContractRepository<M>, context: FabricContractContext, data: SegregatedDataMetadata[], key: (keyof M)[], model: M): Promise<void>;
32
- export declare function segregatedDataOnUpdate<M extends Model>(this: FabricContractRepository<M>, context: FabricContractContext, data: SegregatedDataMetadata[], key: keyof M[], model: M, oldModel: M): Promise<void>;
33
- export declare function segregatedDataOnDelete<M extends Model, R extends FabricContractRepository<M>, V extends SegregatedDataMetadata>(this: R, context: FabricContractContext, data: V[], key: keyof M[], model: M): Promise<void>;
29
+ export declare function segregatedDataOnCreate<M extends Model>(this: Repository<M, any>, context: Context<FabricFlags>, data: SegregatedDataMetadata[], keys: (keyof M)[], model: M): Promise<void>;
30
+ export declare function segregatedDataOnRead<M extends Model>(this: Repository<M, any>, context: Context<FabricFlags>, data: SegregatedDataMetadata[], keys: (keyof M)[], model: M): Promise<void>;
31
+ export declare function segregatedDataOnUpdate<M extends Model>(this: Repository<M, any>, context: Context<FabricFlags>, data: SegregatedDataMetadata[], key: keyof M[], model: M, oldModel: M): Promise<void>;
32
+ export declare function segregatedDataOnDelete<M extends Model, R extends Repository<M, any>, V extends SegregatedDataMetadata>(this: R, context: Context<FabricFlags>, data: V[], key: keyof M[], model: M): Promise<void>;
34
33
  export declare function privateData(collection?: string | CollectionResolver): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
35
34
  export declare function sharedData(collection: string | CollectionResolver): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
@@ -1,8 +1,8 @@
1
- import { AuthorizationError } from "@decaf-ts/core";
2
- import { InternalError, NotFoundError, onCreate, readonly, } from "@decaf-ts/db-decorators";
3
- import { Model, required } from "@decaf-ts/decorator-validation";
1
+ import { AuthorizationError, UnsupportedError, } from "@decaf-ts/core";
2
+ import { InternalError, NotFoundError, onCreate, onDelete, onRead, onUpdate, readonly, transient, } from "@decaf-ts/db-decorators";
3
+ import { required } from "@decaf-ts/decorator-validation";
4
4
  import { FabricModelKeys } from "./constants.js";
5
- import { apply, Decoration, Metadata, propMetadata, } from "@decaf-ts/decoration";
5
+ import { apply, Decoration, metadata, Metadata, propMetadata, } from "@decaf-ts/decoration";
6
6
  /**
7
7
  * Decorator for marking methods that require ownership authorization.
8
8
  * Checks the owner of the token before allowing the method to be executed.
@@ -78,18 +78,45 @@ export const ImplicitPrivateCollection = (model) => {
78
78
  export async function segregatedDataOnCreate(context, data, keys, model) {
79
79
  if (keys.length !== data.length)
80
80
  throw new InternalError(`Segregated data keys and metadata length mismatch`);
81
- let key, d;
82
- for (let i = 0; i < keys.length; i++) {
83
- key = keys[i];
84
- d = data[i];
85
- const collection = typeof d.collections === "function"
86
- ? d.collections(model)
87
- : d.collections;
88
- // await this.saveToCollection(context, collection, key, model[key]);
89
- }
90
- Model.segregate(model);
81
+ const collectionResolver = data[0].collections;
82
+ const collection = typeof collectionResolver === "string"
83
+ ? collectionResolver
84
+ : collectionResolver(model);
85
+ const rebuilt = keys.reduce((acc, k, i) => {
86
+ const c = typeof data[i].collections === "string"
87
+ ? data[i].collections
88
+ : data[i].collections(model);
89
+ if (c !== collection)
90
+ throw new UnsupportedError(`Segregated data collection mismatch: ${c} vs ${collection}`);
91
+ acc[k] = model[k];
92
+ return acc;
93
+ }, {});
94
+ const toCreate = new this.class(rebuilt);
95
+ // const segregated = Model.segregate(model);
96
+ const created = await this.override({ segregated: collection }).create(toCreate, context);
97
+ Object.assign(model, created);
98
+ }
99
+ export async function segregatedDataOnRead(context, data, keys, model) {
100
+ if (keys.length !== data.length)
101
+ throw new InternalError(`Segregated data keys and metadata length mismatch`);
102
+ const collectionResolver = data[0].collections;
103
+ const collection = typeof collectionResolver === "string"
104
+ ? collectionResolver
105
+ : collectionResolver(model);
106
+ const rebuilt = keys.reduce((acc, k, i) => {
107
+ const c = typeof data[i].collections === "string"
108
+ ? data[i].collections
109
+ : data[i].collections(model);
110
+ if (c !== collection)
111
+ throw new UnsupportedError(`Segregated data collection mismatch: ${c} vs ${collection}`);
112
+ acc[k] = model[k];
113
+ return acc;
114
+ }, {});
115
+ const toCreate = new this.class(rebuilt);
116
+ // const segregated = Model.segregate(model);
117
+ const created = await this.override({ segregated: collection }).create(toCreate, context);
118
+ Object.assign(model, created);
91
119
  }
92
- export async function segregatedDataOnRead(context, data, key, model) { }
93
120
  export async function segregatedDataOnUpdate(context, data, key, model, oldModel) { }
94
121
  export async function segregatedDataOnDelete(context, data, key, model) { }
95
122
  function segregated(collection, type) {
@@ -109,49 +136,37 @@ function segregated(collection, type) {
109
136
  meta.collections = [...collections];
110
137
  Metadata.set(constr, key, meta);
111
138
  }
112
- //
113
- // const decs = [
114
- // segregatedDec,
115
- // transient(),
116
- // onCreate(
117
- // segregatedDataOnCreate,
118
- // { collections: collection },
119
- // {
120
- // priority: 95,
121
- // group:
122
- // typeof collection === "string" ? collection : collection.toString(),
123
- // }
124
- // ),
125
- // onRead(
126
- // segregatedDataOnRead,
127
- // { collections: collection },
128
- // {
129
- // priority: 95,
130
- // group:
131
- // typeof collection === "string" ? collection : collection.toString(),
132
- // }
133
- // ),
134
- // onUpdate(
135
- // segregatedDataOnUpdate,
136
- // { collections: collection },
137
- // {
138
- // priority: 95,
139
- // group:
140
- // typeof collection === "string" ? collection : collection.toString(),
141
- // }
142
- // ),
143
- // onDelete(
144
- // segregatedDataOnDelete,
145
- // { collections: collection },
146
- // {
147
- // priority: 95,
148
- // group:
149
- // typeof collection === "string" ? collection : collection.toString(),
150
- // }
151
- // ),
152
- // ];
153
- // return apply(...decs)(target, propertyKey);
154
- return apply()(target, propertyKey);
139
+ const decs = [];
140
+ if (!propertyKey) {
141
+ // decorated at the class level
142
+ Metadata.properties(target)?.forEach((p) => segregated(collection, type)(target, p));
143
+ return metadata(type, true)(target);
144
+ }
145
+ else {
146
+ decs.push(transient(), segregatedDec, onCreate(segregatedDataOnCreate, { collections: collection }, {
147
+ priority: 95,
148
+ group: typeof collection === "string"
149
+ ? collection
150
+ : collection.toString(),
151
+ }), onRead(segregatedDataOnRead, { collections: collection }, {
152
+ priority: 95,
153
+ group: typeof collection === "string"
154
+ ? collection
155
+ : collection.toString(),
156
+ }), onUpdate(segregatedDataOnUpdate, { collections: collection }, {
157
+ priority: 95,
158
+ group: typeof collection === "string"
159
+ ? collection
160
+ : collection.toString(),
161
+ }), onDelete(segregatedDataOnDelete, { collections: collection }, {
162
+ priority: 95,
163
+ group: typeof collection === "string"
164
+ ? collection
165
+ : collection.toString(),
166
+ }));
167
+ }
168
+ return apply(...decs)(target, propertyKey);
169
+ // return apply()(target, propertyKey);
155
170
  };
156
171
  }
157
172
  export function privateData(collection = ImplicitPrivateCollection) {
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/shared/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAQ,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAEL,aAAa,EACb,aAAa,EACb,QAAQ,EAIR,QAAQ,GAET,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,uBAAoB;AAG9C,OAAO,EACL,KAAK,EAEL,UAAU,EACV,QAAQ,EACR,YAAY,GACb,MAAM,sBAAsB,CAAC;AAM9B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,KAAK;IACnB,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA8B;QAE9B,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAEtB,GAAG,IAAW;YAEd,MAAM,GAAG,GAAc,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAE5C,MAAM,MAAM,GAAG,MAAO,IAA4B,CAChD,iBAAiB,CAClB,CAAC,MAAM,EAAE,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,aAAa,CAAC,6BAA6B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,kBAAkB,CAC1B,8BAA8B,WAAW,eAAe,CACzD,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAMnC,OAAqB,EACrB,IAAO,EACP,GAAY,EACZ,KAAQ;IAER,MAAM,EAAE,IAAI,EAAE,GAAG,OAAc,CAAC;IAEhC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,MAAM,kBAAkB,GAAG,UACzB,MAAS,EACT,WAAmB,EACnB,KAA+B;QAE/B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;YACzC,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,kBAAkB,CAAC,KAAK,EAAE,GAAa,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAEvD,SAAS,OAAO;QACd,OAAO,UAAU,GAAQ,EAAE,SAAe;YACxC,OAAO,KAAK,CACV,QAAQ,EAAE,EACV,QAAQ,EAAE,EACV,QAAQ,CAAC,eAAe,CAAC,EACzB,YAAY,CAAC,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CACpE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;SACvB,MAAM,CAAC;QACN,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,EAAE;KACT,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;AACpD,CAAC;AAID,MAAM,CAAC,MAAM,yBAAyB,GAAuB,CAC3D,KAAQ,EACR,EAAE;IACF,OAAO,KAAK,KAAK,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC;AACxD,CAAC,CAAC;AAMF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAE1C,OAA8B,EAC9B,IAA8B,EAC9B,IAAiB,EACjB,KAAQ;IAER,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC7B,MAAM,IAAI,aAAa,CACrB,mDAAmD,CACpD,CAAC;IAEJ,IAAI,GAAW,EAAE,CAAyB,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,UAAU,GACd,OAAO,CAAC,CAAC,WAAW,KAAK,UAAU;YACjC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;YACtB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACpB,qEAAqE;IACvE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAExC,OAA8B,EAC9B,IAA8B,EAC9B,GAAgB,EAChB,KAAQ,IACQ,CAAC;AAEnB,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAE1C,OAA8B,EAC9B,IAA8B,EAC9B,GAAc,EACd,KAAQ,EACR,QAAW,IACK,CAAC;AAEnB,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAM1C,OAA8B,EAC9B,IAAS,EACT,GAAc,EACd,KAAQ,IACQ,CAAC;AAEnB,SAAS,UAAU,CACjB,UAAuC,EACvC,IAAsD;IAEtD,OAAO,SAAS,eAAe,CAAC,MAAc,EAAE,WAAiB;QAC/D,SAAS,aAAa,CAAC,MAAc,EAAE,WAAiB;YACtD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAqB,CAAC,IAAI,EAAE,CAAC;gBAC/D,KAAK,MAAM,IAAI,IAAI,KAAK;oBAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACrE,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAgB,MAAM,CAAC,WAA0B,CAAC;YAE9D,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAqB,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YACpD,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;YACpC,QAAQ,CAAC,GAAG,CAAC,MAAqB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,EAAE;QACF,iBAAiB;QACjB,mBAAmB;QACnB,iBAAiB;QACjB,cAAc;QACd,8BAA8B;QAC9B,mCAAmC;QACnC,QAAQ;QACR,sBAAsB;QACtB,eAAe;QACf,+EAA+E;QAC/E,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,4BAA4B;QAC5B,mCAAmC;QACnC,QAAQ;QACR,sBAAsB;QACtB,eAAe;QACf,+EAA+E;QAC/E,QAAQ;QACR,OAAO;QACP,cAAc;QACd,8BAA8B;QAC9B,mCAAmC;QACnC,QAAQ;QACR,sBAAsB;QACtB,eAAe;QACf,+EAA+E;QAC/E,QAAQ;QACR,OAAO;QACP,cAAc;QACd,8BAA8B;QAC9B,mCAAmC;QACnC,QAAQ;QACR,sBAAsB;QACtB,eAAe;QACf,+EAA+E;QAC/E,QAAQ;QACR,OAAO;QACP,KAAK;QACL,8CAA8C;QAC9C,OAAO,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,aAA0C,yBAAyB;IAEnE,SAAS,WAAW,CAAC,UAAuC;QAC1D,OAAO,UAAU,CAAC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;SAC3C,MAAM,CAAC;QACN,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,CAAC,UAAU,CAAC;KACnB,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAAuC;IAChE,SAAS,UAAU,CAAC,UAAuC;QACzD,OAAO,UAAU,CAAC,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC;SAC1C,MAAM,CAAC;QACN,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,CAAC,UAAU,CAAC;KACnB,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AACD,EAAE;AACF,qDAAqD;AACrD,uBAAuB;AACvB,sDAAsD;AACtD,MAAM;AACN,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,kDAAkD;AAClD,iCAAiC;AACjC,sBAAsB;AACtB,QAAQ;AACR,qBAAqB;AACrB,6EAA6E;AAC7E,EAAE;AACF,kDAAkD;AAClD,8DAA8D;AAC9D,EAAE;AACF,0BAA0B;AAC1B,4BAA4B;AAC5B,iCAAiC;AACjC,uDAAuD;AACvD,4BAA4B;AAC5B,YAAY;AACZ,+BAA+B;AAC/B,sCAAsC;AACtC,EAAE;AACF,uBAAuB;AACvB,8BAA8B;AAC9B,sEAAsE;AACtE,qDAAqD;AACrD,qCAAqC;AACrC,2DAA2D;AAC3D,4BAA4B;AAC5B,8BAA8B;AAC9B,uCAAuC;AACvC,QAAQ;AACR,OAAO;AACP,IAAI"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/shared/decorators.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { Metadata } from "@decaf-ts/decoration";
4
4
  // import { DBKeys } from "../model/constants";
5
5
  // import { SerializationError } from "../repository/errors";
6
6
  import { FabricModelKeys } from "./../constants.js";
7
+ import { DBKeys } from "@decaf-ts/db-decorators";
7
8
  Model.prototype.isShared = function isShared() {
8
9
  return Model.isShared(this.constructor);
9
10
  };
@@ -13,45 +14,45 @@ Model.prototype.isPrivate = function isPrivate() {
13
14
  Model.prototype.segregate = function segregate() {
14
15
  return Model.segregate(this);
15
16
  };
16
- //
17
- // (Model as any).toTransient = function toTransient<M extends Model>(model: M) {
18
- // if (!Metadata.isTransient(model)) return { model: model };
19
- // const decoratedProperties = Metadata.validatableProperties(
20
- // model.constructor as any
21
- // );
22
- //
23
- // const transientProps = Metadata.get(
24
- // model.constructor as any,
25
- // DBKeys.TRANSIENT
26
- // );
27
- //
28
- // const result = {
29
- // model: {} as Record<string, any>,
30
- // transient: {} as Record<string, any>,
31
- // };
32
- // for (const key of decoratedProperties) {
33
- // const isTransient = Object.keys(transientProps).includes(key);
34
- // if (isTransient) {
35
- // result.transient = result.transient || {};
36
- // try {
37
- // result.transient[key] = model[key as keyof M];
38
- // } catch (e: unknown) {
39
- // throw new SerializationError(
40
- // `Failed to serialize transient property ${key}: ${e}`
41
- // );
42
- // }
43
- // } else {
44
- // result.model = result.model || {};
45
- // result.model[key] = (model as Record<string, any>)[key];
46
- // }
47
- // }
48
- //
49
- // result.model = Model.build(result.model, model.constructor.name);
50
- // return result as { model: M; transient?: Record<string, any> };
51
- // };
52
- const seg = Model.segregate;
53
17
  Model.segregate = function segregate(model) {
54
- return seg.call(Model, model);
18
+ if (!Model.isTransient(model))
19
+ return { model: model };
20
+ const decoratedProperties = Metadata.validatableProperties(model.constructor);
21
+ const transientProps = Metadata.get(model.constructor, DBKeys.TRANSIENT);
22
+ const privateProperties = Metadata.get(model.constructor, FabricModelKeys.PRIVATE);
23
+ const sharedProperties = Metadata.get(model.constructor, FabricModelKeys.PRIVATE);
24
+ const result = {
25
+ model: {},
26
+ transient: {},
27
+ private: {},
28
+ shared: {},
29
+ };
30
+ const transientKeys = Object.keys(transientProps);
31
+ const privateKeys = Object.keys(privateProperties);
32
+ const sharedKeys = Object.keys(sharedProperties);
33
+ for (const key of decoratedProperties) {
34
+ const isTransient = transientKeys.includes(key);
35
+ const isPrivate = privateKeys.includes(key);
36
+ const isShared = sharedKeys.includes(key);
37
+ if (isTransient) {
38
+ result.transient = result.transient || {};
39
+ result.transient[key] = model[key];
40
+ if (isPrivate) {
41
+ result.private = result.private || {};
42
+ result.private[key] = model[key];
43
+ }
44
+ if (isShared) {
45
+ result.shared = result.shared || {};
46
+ result.shared[key] = model[key];
47
+ }
48
+ }
49
+ else {
50
+ result.model = result.model || {};
51
+ result.model[key] = model[key];
52
+ }
53
+ }
54
+ result.model = Model.build(result.model, model.constructor.name);
55
+ return result;
55
56
  }.bind(Model);
56
57
  Model.isPrivate = function isPrivate(model) {
57
58
  return !!Metadata.get(typeof model !== "function" ? model.constructor : model, FabricModelKeys.PRIVATE);
@@ -1 +1 @@
1
- {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../../src/shared/overrides/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,yDAAyD;AACzD,OAAO,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7D,+CAA+C;AAC/C,6DAA6D;AAC7D,OAAO,EAAE,eAAe,EAAE,0BAAqB;AAG/C,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ;IAG1C,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAA6B,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS;IAG5C,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAA6B,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS;IAG5C,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,EAAE;AACF,iFAAiF;AACjF,+DAA+D;AAC/D,gEAAgE;AAChE,+BAA+B;AAC/B,OAAO;AACP,EAAE;AACF,yCAAyC;AACzC,gCAAgC;AAChC,uBAAuB;AACvB,OAAO;AACP,EAAE;AACF,qBAAqB;AACrB,wCAAwC;AACxC,4CAA4C;AAC5C,OAAO;AACP,6CAA6C;AAC7C,qEAAqE;AACrE,yBAAyB;AACzB,mDAAmD;AACnD,cAAc;AACd,yDAAyD;AACzD,+BAA+B;AAC/B,wCAAwC;AACxC,kEAAkE;AAClE,aAAa;AACb,UAAU;AACV,eAAe;AACf,2CAA2C;AAC3C,iEAAiE;AACjE,QAAQ;AACR,MAAM;AACN,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,KAAK;AAEL,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;AAE3B,KAAa,CAAC,SAAS,GAAG,SAAS,SAAS,CAC3C,KAAQ;IAER,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAuB,CAAC;AACtD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEb,KAAa,CAAC,SAAS,GAAG,SAAS,SAAS,CAC3C,KAAyB;IAEzB,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CACnB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAK,CAAC,WAAmB,CAAC,CAAC,CAAC,KAAK,EAChE,eAAe,CAAC,OAAO,CACxB,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEb,QAAgB,CAAC,QAAQ,GAAG,SAAS,QAAQ,CAC5C,KAAyB;IAEzB,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CACnB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAK,CAAC,WAAmB,CAAC,CAAC,CAAC,KAAK,EAChE,eAAe,CAAC,MAAM,CACvB,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../../src/shared/overrides/overrides.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { RepositoryFlags } from "@decaf-ts/db-decorators";
2
1
  import { TLSOptions } from "fabric-ca-client";
3
2
  import { Model } from "@decaf-ts/decorator-validation";
3
+ import { AdapterFlags } from "@decaf-ts/core";
4
+ import { Logger } from "@decaf-ts/logging";
4
5
  export type HSMOptions = {
5
6
  library: string;
6
7
  slot?: number;
@@ -48,14 +49,6 @@ export type PeerConfig = {
48
49
  channel: string;
49
50
  hsm?: HSMOptions;
50
51
  };
51
- /**
52
- * @description Flags for Fabric operations
53
- * @summary Combines repository flags with peer configuration overrides
54
- * @interface FabricFlags
55
- * @extends {RepositoryFlags}
56
- * @memberOf module:for-fabric.shared
57
- */
58
- export type FabricFlags = RepositoryFlags;
59
52
  /**
60
53
  * @description Configuration for connecting to a Hyperledger Fabric peer
61
54
  * @summary Contains all the necessary parameters to establish a connection to a Fabric peer and interact with chaincode
@@ -94,3 +87,6 @@ export type SegregatedModel<M extends Model> = {
94
87
  private?: Record<keyof M, any>;
95
88
  shared?: Record<keyof M, any>;
96
89
  };
90
+ export type FabricFlags<LOG extends Logger = Logger> = AdapterFlags<LOG> & {
91
+ segregated?: string;
92
+ };
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.20";
1
+ export declare const VERSION = "0.1.22";
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.1.20";
2
+ export const VERSION = "0.1.22";
3
3
  export const PACKAGE_NAME = "@decaf-ts/for-fabric";
4
4
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
5
5
  //# sourceMappingURL=version.js.map
@@ -92,18 +92,45 @@ exports.ImplicitPrivateCollection = ImplicitPrivateCollection;
92
92
  async function segregatedDataOnCreate(context, data, keys, model) {
93
93
  if (keys.length !== data.length)
94
94
  throw new db_decorators_1.InternalError(`Segregated data keys and metadata length mismatch`);
95
- let key, d;
96
- for (let i = 0; i < keys.length; i++) {
97
- key = keys[i];
98
- d = data[i];
99
- const collection = typeof d.collections === "function"
100
- ? d.collections(model)
101
- : d.collections;
102
- // await this.saveToCollection(context, collection, key, model[key]);
103
- }
104
- decorator_validation_1.Model.segregate(model);
95
+ const collectionResolver = data[0].collections;
96
+ const collection = typeof collectionResolver === "string"
97
+ ? collectionResolver
98
+ : collectionResolver(model);
99
+ const rebuilt = keys.reduce((acc, k, i) => {
100
+ const c = typeof data[i].collections === "string"
101
+ ? data[i].collections
102
+ : data[i].collections(model);
103
+ if (c !== collection)
104
+ throw new core_1.UnsupportedError(`Segregated data collection mismatch: ${c} vs ${collection}`);
105
+ acc[k] = model[k];
106
+ return acc;
107
+ }, {});
108
+ const toCreate = new this.class(rebuilt);
109
+ // const segregated = Model.segregate(model);
110
+ const created = await this.override({ segregated: collection }).create(toCreate, context);
111
+ Object.assign(model, created);
112
+ }
113
+ async function segregatedDataOnRead(context, data, keys, model) {
114
+ if (keys.length !== data.length)
115
+ throw new db_decorators_1.InternalError(`Segregated data keys and metadata length mismatch`);
116
+ const collectionResolver = data[0].collections;
117
+ const collection = typeof collectionResolver === "string"
118
+ ? collectionResolver
119
+ : collectionResolver(model);
120
+ const rebuilt = keys.reduce((acc, k, i) => {
121
+ const c = typeof data[i].collections === "string"
122
+ ? data[i].collections
123
+ : data[i].collections(model);
124
+ if (c !== collection)
125
+ throw new core_1.UnsupportedError(`Segregated data collection mismatch: ${c} vs ${collection}`);
126
+ acc[k] = model[k];
127
+ return acc;
128
+ }, {});
129
+ const toCreate = new this.class(rebuilt);
130
+ // const segregated = Model.segregate(model);
131
+ const created = await this.override({ segregated: collection }).create(toCreate, context);
132
+ Object.assign(model, created);
105
133
  }
106
- async function segregatedDataOnRead(context, data, key, model) { }
107
134
  async function segregatedDataOnUpdate(context, data, key, model, oldModel) { }
108
135
  async function segregatedDataOnDelete(context, data, key, model) { }
109
136
  function segregated(collection, type) {
@@ -123,49 +150,37 @@ function segregated(collection, type) {
123
150
  meta.collections = [...collections];
124
151
  decoration_1.Metadata.set(constr, key, meta);
125
152
  }
126
- //
127
- // const decs = [
128
- // segregatedDec,
129
- // transient(),
130
- // onCreate(
131
- // segregatedDataOnCreate,
132
- // { collections: collection },
133
- // {
134
- // priority: 95,
135
- // group:
136
- // typeof collection === "string" ? collection : collection.toString(),
137
- // }
138
- // ),
139
- // onRead(
140
- // segregatedDataOnRead,
141
- // { collections: collection },
142
- // {
143
- // priority: 95,
144
- // group:
145
- // typeof collection === "string" ? collection : collection.toString(),
146
- // }
147
- // ),
148
- // onUpdate(
149
- // segregatedDataOnUpdate,
150
- // { collections: collection },
151
- // {
152
- // priority: 95,
153
- // group:
154
- // typeof collection === "string" ? collection : collection.toString(),
155
- // }
156
- // ),
157
- // onDelete(
158
- // segregatedDataOnDelete,
159
- // { collections: collection },
160
- // {
161
- // priority: 95,
162
- // group:
163
- // typeof collection === "string" ? collection : collection.toString(),
164
- // }
165
- // ),
166
- // ];
167
- // return apply(...decs)(target, propertyKey);
168
- return (0, decoration_1.apply)()(target, propertyKey);
153
+ const decs = [];
154
+ if (!propertyKey) {
155
+ // decorated at the class level
156
+ decoration_1.Metadata.properties(target)?.forEach((p) => segregated(collection, type)(target, p));
157
+ return (0, decoration_1.metadata)(type, true)(target);
158
+ }
159
+ else {
160
+ decs.push((0, db_decorators_1.transient)(), segregatedDec, (0, db_decorators_1.onCreate)(segregatedDataOnCreate, { collections: collection }, {
161
+ priority: 95,
162
+ group: typeof collection === "string"
163
+ ? collection
164
+ : collection.toString(),
165
+ }), (0, db_decorators_1.onRead)(segregatedDataOnRead, { collections: collection }, {
166
+ priority: 95,
167
+ group: typeof collection === "string"
168
+ ? collection
169
+ : collection.toString(),
170
+ }), (0, db_decorators_1.onUpdate)(segregatedDataOnUpdate, { collections: collection }, {
171
+ priority: 95,
172
+ group: typeof collection === "string"
173
+ ? collection
174
+ : collection.toString(),
175
+ }), (0, db_decorators_1.onDelete)(segregatedDataOnDelete, { collections: collection }, {
176
+ priority: 95,
177
+ group: typeof collection === "string"
178
+ ? collection
179
+ : collection.toString(),
180
+ }));
181
+ }
182
+ return (0, decoration_1.apply)(...decs)(target, propertyKey);
183
+ // return apply()(target, propertyKey);
169
184
  };
170
185
  }
171
186
  function privateData(collection = exports.ImplicitPrivateCollection) {
@@ -1,7 +1,6 @@
1
- import { Repo } from "@decaf-ts/core";
2
- import { Context } from "@decaf-ts/db-decorators";
1
+ import { Repo, Context, Repository } from "@decaf-ts/core";
3
2
  import { Model } from "@decaf-ts/decorator-validation";
4
- import { FabricContractContext, FabricContractRepository } from "../contracts/index";
3
+ import { FabricFlags } from "./types";
5
4
  /**
6
5
  * Decorator for marking methods that require ownership authorization.
7
6
  * Checks the owner of the token before allowing the method to be executed.
@@ -27,9 +26,9 @@ export declare const ImplicitPrivateCollection: CollectionResolver;
27
26
  export type SegregatedDataMetadata = {
28
27
  collections: string | CollectionResolver;
29
28
  };
30
- export declare function segregatedDataOnCreate<M extends Model>(this: FabricContractRepository<M>, context: FabricContractContext, data: SegregatedDataMetadata[], keys: (keyof M)[], model: M): Promise<void>;
31
- export declare function segregatedDataOnRead<M extends Model>(this: FabricContractRepository<M>, context: FabricContractContext, data: SegregatedDataMetadata[], key: (keyof M)[], model: M): Promise<void>;
32
- export declare function segregatedDataOnUpdate<M extends Model>(this: FabricContractRepository<M>, context: FabricContractContext, data: SegregatedDataMetadata[], key: keyof M[], model: M, oldModel: M): Promise<void>;
33
- export declare function segregatedDataOnDelete<M extends Model, R extends FabricContractRepository<M>, V extends SegregatedDataMetadata>(this: R, context: FabricContractContext, data: V[], key: keyof M[], model: M): Promise<void>;
29
+ export declare function segregatedDataOnCreate<M extends Model>(this: Repository<M, any>, context: Context<FabricFlags>, data: SegregatedDataMetadata[], keys: (keyof M)[], model: M): Promise<void>;
30
+ export declare function segregatedDataOnRead<M extends Model>(this: Repository<M, any>, context: Context<FabricFlags>, data: SegregatedDataMetadata[], keys: (keyof M)[], model: M): Promise<void>;
31
+ export declare function segregatedDataOnUpdate<M extends Model>(this: Repository<M, any>, context: Context<FabricFlags>, data: SegregatedDataMetadata[], key: keyof M[], model: M, oldModel: M): Promise<void>;
32
+ export declare function segregatedDataOnDelete<M extends Model, R extends Repository<M, any>, V extends SegregatedDataMetadata>(this: R, context: Context<FabricFlags>, data: V[], key: keyof M[], model: M): Promise<void>;
34
33
  export declare function privateData(collection?: string | CollectionResolver): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
35
34
  export declare function sharedData(collection: string | CollectionResolver): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/shared/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/shared/decorators.ts"],"names":[],"mappings":"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"}