@decaf-ts/for-fabric 0.1.22 → 0.1.24
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 +39 -61
- package/lib/client/FabricClientAdapter.d.ts +28 -42
- package/lib/client/FabricClientAdapter.js.map +1 -1
- package/lib/client/FabricClientDispatch.cjs +1 -3
- package/lib/client/FabricClientDispatch.d.ts +6 -5
- package/lib/client/FabricClientDispatch.js.map +1 -1
- package/lib/client/FabricClientPaginator.cjs +5 -56
- package/lib/client/FabricClientPaginator.d.ts +6 -6
- package/lib/client/FabricClientPaginator.js.map +1 -1
- package/lib/client/FabricClientRepository.cjs +50 -103
- package/lib/client/FabricClientRepository.d.ts +21 -17
- package/lib/client/FabricClientRepository.js.map +1 -1
- package/lib/client/FabricClientStatement.cjs +7 -97
- package/lib/client/FabricClientStatement.d.ts +6 -7
- package/lib/client/FabricClientStatement.js.map +1 -1
- package/lib/client/erc20/FabricERC20ClientRepository.d.ts +5 -5
- package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/client/fabric-fs.d.ts +1 -1
- package/lib/client/services/FabricEnrollmentService.d.ts +1 -1
- package/lib/contract/Address.cjs +73 -0
- package/lib/contract/Address.d.ts +13 -0
- package/lib/contract/Address.js.map +1 -0
- package/lib/contract/AddressContract.cjs +34 -0
- package/lib/contract/AddressContract.d.ts +5 -0
- package/lib/contract/AddressContract.js.map +1 -0
- package/lib/contract/index.cjs +6 -1
- package/lib/contract/index.js.map +1 -1
- package/lib/contracts/ContractAdapter.cjs +53 -20
- package/lib/contracts/ContractAdapter.d.ts +3 -3
- package/lib/contracts/ContractAdapter.js.map +1 -1
- package/lib/contracts/ContractContext.cjs +2 -2
- package/lib/contracts/ContractContext.d.ts +1 -1
- package/lib/contracts/ContractContext.js.map +1 -1
- package/lib/contracts/FabricContractRepository.js.map +1 -1
- package/lib/contracts/crud/crud-contract.cjs +14 -0
- package/lib/contracts/crud/crud-contract.d.ts +15 -4
- package/lib/contracts/crud/crud-contract.js.map +1 -1
- package/lib/contracts/crud/serialized-crud-contract.cjs +58 -8
- package/lib/contracts/crud/serialized-crud-contract.d.ts +6 -2
- package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/contracts/types.d.ts +2 -2
- package/lib/esm/client/FabricClientAdapter.d.ts +28 -42
- package/lib/esm/client/FabricClientAdapter.js +39 -60
- package/lib/esm/client/FabricClientAdapter.js.map +1 -1
- package/lib/esm/client/FabricClientDispatch.d.ts +6 -5
- package/lib/esm/client/FabricClientDispatch.js +3 -5
- package/lib/esm/client/FabricClientDispatch.js.map +1 -1
- package/lib/esm/client/FabricClientPaginator.d.ts +6 -6
- package/lib/esm/client/FabricClientPaginator.js +6 -57
- package/lib/esm/client/FabricClientPaginator.js.map +1 -1
- package/lib/esm/client/FabricClientRepository.d.ts +21 -17
- package/lib/esm/client/FabricClientRepository.js +50 -103
- package/lib/esm/client/FabricClientRepository.js.map +1 -1
- package/lib/esm/client/FabricClientStatement.d.ts +6 -7
- package/lib/esm/client/FabricClientStatement.js +8 -98
- package/lib/esm/client/FabricClientStatement.js.map +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.d.ts +5 -5
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/esm/client/fabric-fs.d.ts +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.d.ts +1 -1
- package/lib/esm/contract/Address.d.ts +13 -0
- package/lib/esm/contract/Address.js +70 -0
- package/lib/esm/contract/Address.js.map +1 -0
- package/lib/esm/contract/AddressContract.d.ts +5 -0
- package/lib/esm/contract/AddressContract.js +31 -0
- package/lib/esm/contract/AddressContract.js.map +1 -0
- package/lib/esm/contract/index.js +6 -1
- package/lib/esm/contract/index.js.map +1 -1
- package/lib/esm/contracts/ContractAdapter.d.ts +3 -3
- package/lib/esm/contracts/ContractAdapter.js +53 -20
- package/lib/esm/contracts/ContractAdapter.js.map +1 -1
- package/lib/esm/contracts/ContractContext.d.ts +1 -1
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/ContractContext.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
- package/lib/esm/contracts/crud/crud-contract.d.ts +15 -4
- package/lib/esm/contracts/crud/crud-contract.js +17 -3
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +6 -2
- package/lib/esm/contracts/crud/serialized-crud-contract.js +58 -8
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/esm/contracts/types.d.ts +2 -2
- package/lib/esm/shared/decorators.d.ts +7 -8
- package/lib/esm/shared/decorators.js +74 -59
- package/lib/esm/shared/decorators.js.map +1 -1
- package/lib/esm/shared/errors.d.ts +3 -0
- package/lib/esm/shared/errors.js +5 -0
- package/lib/esm/shared/errors.js.map +1 -1
- package/lib/esm/shared/overrides/overrides.js +39 -38
- package/lib/esm/shared/overrides/overrides.js.map +1 -1
- package/lib/esm/shared/types.d.ts +5 -9
- package/lib/esm/shared/utils.d.ts +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/shared/decorators.cjs +71 -56
- package/lib/shared/decorators.d.ts +7 -8
- package/lib/shared/decorators.js.map +1 -1
- package/lib/shared/errors.cjs +7 -1
- package/lib/shared/errors.d.ts +3 -0
- package/lib/shared/errors.js.map +1 -1
- package/lib/shared/overrides/overrides.cjs +39 -38
- package/lib/shared/overrides/overrides.js.map +1 -1
- package/lib/shared/types.d.ts +5 -9
- package/lib/shared/utils.d.ts +1 -1
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/lib/client/types.cjs +0 -3
- package/lib/client/types.d.ts +0 -7
- package/lib/client/types.js.map +0 -1
- package/lib/esm/client/types.d.ts +0 -7
- package/lib/esm/client/types.js +0 -2
- package/lib/esm/client/types.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AuthorizationError } from "@decaf-ts/core";
|
|
2
|
-
import { InternalError, NotFoundError, onCreate, readonly, } from "@decaf-ts/db-decorators";
|
|
3
|
-
import {
|
|
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.
|
|
@@ -55,7 +55,7 @@ export async function ownedByOnCreate(context, data, key, model) {
|
|
|
55
55
|
};
|
|
56
56
|
setOwnedByKeyValue(model, key, owner);
|
|
57
57
|
}
|
|
58
|
-
export function
|
|
58
|
+
export function ownedBy() {
|
|
59
59
|
const key = getFabricModelKey(FabricModelKeys.OWNEDBY);
|
|
60
60
|
function ownedBy() {
|
|
61
61
|
return function (obj, attribute) {
|
|
@@ -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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/shared/decorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,3 +117,6 @@ export declare class NotInitializedError extends BaseError {
|
|
|
117
117
|
export declare class MissingPKCSS11Lib extends InternalError {
|
|
118
118
|
constructor(msg: string | Error);
|
|
119
119
|
}
|
|
120
|
+
export declare class EndorsementError extends InternalError {
|
|
121
|
+
constructor(message: string | Error);
|
|
122
|
+
}
|
package/lib/esm/shared/errors.js
CHANGED
|
@@ -134,4 +134,9 @@ export class MissingPKCSS11Lib extends InternalError {
|
|
|
134
134
|
super(msg, MissingPKCSS11Lib.name, 500);
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
+
export class EndorsementError extends InternalError {
|
|
138
|
+
constructor(message) {
|
|
139
|
+
super(message, EndorsementError.name, 500);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
137
142
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,kFAAkF;AAClF;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAc,SAAQ,aAAa;IAC9C,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAa,SAAQ,aAAa;IAC7C,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAe,SAAQ,aAAa;IAC/C,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAkB,SAAQ,kBAAkB;IACvD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,6BAA8B,SAAQ,SAAS;IAC1D,YAAY,MAAsB,oCAAoC;QACpE,KAAK,CAAC,6BAA6B,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,kFAAkF;AAClF;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAc,SAAQ,aAAa;IAC9C,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAa,SAAQ,aAAa;IAC7C,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAe,SAAQ,aAAa;IAC/C,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAkB,SAAQ,kBAAkB;IACvD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,6BAA8B,SAAQ,SAAS;IAC1D,YAAY,MAAsB,oCAAoC;QACpE,KAAK,CAAC,6BAA6B,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,YAAY,OAAuB;QACjC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -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
|
-
|
|
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;
|
|
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;AAE/C,OAAO,EAAE,MAAM,EAAsB,MAAM,yBAAyB,CAAC;AAErE,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;AAED,KAAa,CAAC,SAAS,GAAG,SAAS,SAAS,CAC3C,KAAQ;IAER,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACvD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,qBAAqB,CACxD,KAAK,CAAC,WAAkB,CACzB,CAAC;IAEF,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CACjC,KAAK,CAAC,WAAkB,EACxB,MAAM,CAAC,SAAS,CACjB,CAAC;IACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CACpC,KAAK,CAAC,WAAkB,EACxB,eAAe,CAAC,OAAO,CACxB,CAAC;IACF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CACnC,KAAK,CAAC,WAAkB,EACxB,eAAe,CAAC,OAAO,CACxB,CAAC;IAEF,MAAM,MAAM,GAAuB;QACjC,KAAK,EAAE,EAA0B;QACjC,SAAS,EAAE,EAA0B;QACrC,OAAO,EAAE,EAA0B;QACnC,MAAM,EAAE,EAA0B;KACnC,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAEjD,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAK,EAAU,CAAC;YAClD,MAAM,CAAC,SAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAc,CAAC,CAAC;YACvD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAK,EAAU,CAAC;gBAC9C,MAAM,CAAC,OAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAc,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAK,EAAU,CAAC;gBAC5C,MAAM,CAAC,MAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAc,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,CAAC,KAAa,CAAC,GAAG,CAAC,GAAI,KAA6B,CAAC,GAAG,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,MAA4B,CAAC;AACtC,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,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
|
+
};
|
|
@@ -43,7 +43,7 @@ export declare class CoreUtils {
|
|
|
43
43
|
* @param {string|Buffer} contentOrPath - Path to a file on disk or an already-loaded Buffer
|
|
44
44
|
* @return {Promise<string|Uint8Array|Buffer>} The file content as a Buffer/string depending on reader
|
|
45
45
|
*/
|
|
46
|
-
static readFile(contentOrPath: string | Buffer): Promise<
|
|
46
|
+
static readFile(contentOrPath: string | Buffer): Promise<Buffer<ArrayBufferLike>>;
|
|
47
47
|
/**
|
|
48
48
|
* @description Create a Fabric CA User object with enrollment
|
|
49
49
|
* @summary Constructs a fabric-common User, sets a crypto suite, imports the provided private key, and sets enrollment with certificate and MSP ID.
|
package/lib/esm/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.1.
|
|
1
|
+
export declare const VERSION = "0.1.23";
|
|
2
2
|
export declare const PACKAGE_NAME = "@decaf-ts/for-fabric";
|
package/lib/esm/version.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ImplicitPrivateCollection = void 0;
|
|
4
4
|
exports.Owner = Owner;
|
|
5
5
|
exports.ownedByOnCreate = ownedByOnCreate;
|
|
6
|
-
exports.
|
|
6
|
+
exports.ownedBy = ownedBy;
|
|
7
7
|
exports.getFabricModelKey = getFabricModelKey;
|
|
8
8
|
exports.segregatedDataOnCreate = segregatedDataOnCreate;
|
|
9
9
|
exports.segregatedDataOnRead = segregatedDataOnRead;
|
|
@@ -68,7 +68,7 @@ async function ownedByOnCreate(context, data, key, model) {
|
|
|
68
68
|
};
|
|
69
69
|
setOwnedByKeyValue(model, key, owner);
|
|
70
70
|
}
|
|
71
|
-
function
|
|
71
|
+
function ownedBy() {
|
|
72
72
|
const key = getFabricModelKey(constants_1.FabricModelKeys.OWNEDBY);
|
|
73
73
|
function ownedBy() {
|
|
74
74
|
return function (obj, attribute) {
|
|
@@ -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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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 {
|
|
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.
|
|
@@ -20,16 +19,16 @@ import { FabricContractContext, FabricContractRepository } from "../contracts/in
|
|
|
20
19
|
*/
|
|
21
20
|
export declare function Owner(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
22
21
|
export declare function ownedByOnCreate<M extends Model<boolean>, R extends Repo<M>, V>(this: R, context: Context<any>, data: V, key: keyof M, model: M): Promise<void>;
|
|
23
|
-
export declare function
|
|
22
|
+
export declare function ownedBy(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
24
23
|
export declare function getFabricModelKey(key: string): string;
|
|
25
24
|
export type CollectionResolver = <M extends Model>(model: M) => string;
|
|
26
25
|
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:
|
|
31
|
-
export declare function segregatedDataOnRead<M extends Model>(this:
|
|
32
|
-
export declare function segregatedDataOnUpdate<M extends Model>(this:
|
|
33
|
-
export declare function segregatedDataOnDelete<M extends Model, R extends
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/shared/decorators.ts"],"names":[],"mappings":"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"}
|