@decaf-ts/for-fabric 0.1.2 → 0.1.4
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 +94 -81
- package/lib/client/FabricClientAdapter.d.ts +24 -33
- package/lib/client/FabricClientAdapter.js.map +1 -1
- package/lib/client/FabricClientDispatch.cjs +14 -5
- package/lib/client/FabricClientDispatch.d.ts +7 -5
- package/lib/client/FabricClientDispatch.js.map +1 -1
- package/lib/client/FabricClientRepository.cjs +4 -137
- package/lib/client/FabricClientRepository.d.ts +6 -78
- package/lib/client/FabricClientRepository.js.map +1 -1
- package/lib/client/erc20/FabricERC20ClientRepository.cjs +17 -17
- package/lib/client/erc20/FabricERC20ClientRepository.d.ts +5 -5
- package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/client/logging.cjs +1 -3
- package/lib/client/logging.js.map +1 -1
- package/lib/client/services/FabricEnrollmentService.cjs +3 -3
- package/lib/client/services/FabricEnrollmentService.d.ts +2 -2
- package/lib/client/services/FabricEnrollmentService.js.map +1 -1
- package/lib/contracts/ContractAdapter.cjs +204 -115
- package/lib/contracts/ContractAdapter.d.ts +26 -34
- package/lib/contracts/ContractAdapter.js.map +1 -1
- package/lib/contracts/ContractContext.cjs +1 -9
- package/lib/contracts/ContractContext.d.ts +0 -6
- package/lib/contracts/ContractContext.js.map +1 -1
- package/lib/contracts/ContractPrivateDataAdapter.cjs +429 -288
- package/lib/contracts/ContractPrivateDataAdapter.d.ts +0 -76
- package/lib/contracts/ContractPrivateDataAdapter.js.map +1 -1
- package/lib/contracts/FabricConstruction.cjs +3 -3
- package/lib/contracts/FabricConstruction.d.ts +9 -8
- package/lib/contracts/FabricConstruction.js.map +1 -1
- package/lib/contracts/FabricContractRepository.cjs +7 -202
- package/lib/contracts/FabricContractRepository.d.ts +5 -68
- package/lib/contracts/FabricContractRepository.js.map +1 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +4 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.d.ts +4 -4
- package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +1 -1
- package/lib/contracts/FabricContractSequence.cjs +39 -60
- package/lib/contracts/FabricContractSequence.d.ts +29 -41
- package/lib/contracts/FabricContractSequence.js.map +1 -1
- package/lib/contracts/FabricContractStatement.cjs +6 -6
- package/lib/contracts/FabricContractStatement.d.ts +4 -6
- package/lib/contracts/FabricContractStatement.js.map +1 -1
- package/lib/contracts/crud/crud-contract.cjs +74 -44
- package/lib/contracts/crud/crud-contract.d.ts +7 -11
- package/lib/contracts/crud/crud-contract.js.map +1 -1
- package/lib/contracts/crud/serialized-crud-contract.cjs +12 -21
- package/lib/contracts/crud/serialized-crud-contract.d.ts +3 -11
- package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/contracts/erc20/erc20contract.cjs +73 -67
- package/lib/contracts/erc20/erc20contract.d.ts +13 -12
- package/lib/contracts/erc20/erc20contract.js.map +1 -1
- package/lib/contracts/logging.cjs +3 -9
- package/lib/contracts/logging.d.ts +1 -2
- package/lib/contracts/logging.js.map +1 -1
- package/lib/contracts/private-data.cjs +202 -118
- package/lib/contracts/private-data.d.ts +0 -16
- package/lib/contracts/private-data.js.map +1 -1
- package/lib/contracts/types.d.ts +1 -1
- package/lib/esm/client/FabricClientAdapter.d.ts +24 -33
- package/lib/esm/client/FabricClientAdapter.js +90 -78
- package/lib/esm/client/FabricClientAdapter.js.map +1 -1
- package/lib/esm/client/FabricClientDispatch.d.ts +7 -5
- package/lib/esm/client/FabricClientDispatch.js +17 -8
- package/lib/esm/client/FabricClientDispatch.js.map +1 -1
- package/lib/esm/client/FabricClientRepository.d.ts +6 -78
- package/lib/esm/client/FabricClientRepository.js +4 -137
- package/lib/esm/client/FabricClientRepository.js.map +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.d.ts +5 -5
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +17 -17
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/esm/client/logging.js +1 -3
- package/lib/esm/client/logging.js.map +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.d.ts +2 -2
- package/lib/esm/client/services/FabricEnrollmentService.js +3 -3
- package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -1
- package/lib/esm/contracts/ContractAdapter.d.ts +26 -34
- package/lib/esm/contracts/ContractAdapter.js +205 -116
- package/lib/esm/contracts/ContractAdapter.js.map +1 -1
- package/lib/esm/contracts/ContractContext.d.ts +0 -6
- package/lib/esm/contracts/ContractContext.js +1 -9
- package/lib/esm/contracts/ContractContext.js.map +1 -1
- package/lib/esm/contracts/ContractPrivateDataAdapter.d.ts +0 -76
- package/lib/esm/contracts/ContractPrivateDataAdapter.js +430 -285
- package/lib/esm/contracts/ContractPrivateDataAdapter.js.map +1 -1
- package/lib/esm/contracts/FabricConstruction.d.ts +9 -8
- package/lib/esm/contracts/FabricConstruction.js +3 -3
- package/lib/esm/contracts/FabricConstruction.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepository.d.ts +5 -68
- package/lib/esm/contracts/FabricContractRepository.js +7 -202
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.d.ts +4 -4
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +5 -2
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -1
- package/lib/esm/contracts/FabricContractSequence.d.ts +29 -41
- package/lib/esm/contracts/FabricContractSequence.js +40 -61
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -1
- package/lib/esm/contracts/FabricContractStatement.d.ts +4 -6
- package/lib/esm/contracts/FabricContractStatement.js +7 -7
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -1
- package/lib/esm/contracts/crud/crud-contract.d.ts +7 -11
- package/lib/esm/contracts/crud/crud-contract.js +75 -45
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +3 -11
- package/lib/esm/contracts/crud/serialized-crud-contract.js +12 -21
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/esm/contracts/erc20/erc20contract.d.ts +13 -12
- package/lib/esm/contracts/erc20/erc20contract.js +73 -67
- package/lib/esm/contracts/erc20/erc20contract.js.map +1 -1
- package/lib/esm/contracts/logging.d.ts +1 -2
- package/lib/esm/contracts/logging.js +3 -9
- package/lib/esm/contracts/logging.js.map +1 -1
- package/lib/esm/contracts/private-data.d.ts +0 -16
- package/lib/esm/contracts/private-data.js +203 -111
- package/lib/esm/contracts/private-data.js.map +1 -1
- package/lib/esm/contracts/types.d.ts +1 -1
- package/lib/esm/shared/decorators.d.ts +14 -4
- package/lib/esm/shared/decorators.js +142 -42
- package/lib/esm/shared/decorators.js.map +1 -1
- package/lib/esm/shared/errors.js +2 -2
- package/lib/esm/shared/errors.js.map +1 -1
- package/lib/esm/shared/events.d.ts +1 -5
- package/lib/esm/shared/events.js.map +1 -1
- package/lib/esm/shared/model/Sequence.d.ts +14 -0
- package/lib/esm/shared/model/Sequence.js +33 -0
- package/lib/esm/shared/model/Sequence.js.map +1 -0
- package/lib/esm/shared/model/index.d.ts +2 -0
- package/lib/esm/shared/model/index.js +2 -0
- package/lib/esm/shared/model/index.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/shared/decorators.cjs +148 -41
- package/lib/shared/decorators.d.ts +14 -4
- package/lib/shared/decorators.js.map +1 -1
- package/lib/shared/errors.cjs +2 -2
- package/lib/shared/errors.js.map +1 -1
- package/lib/shared/events.d.ts +1 -5
- package/lib/shared/events.js.map +1 -1
- package/lib/shared/model/Sequence.cjs +36 -0
- package/lib/shared/model/Sequence.d.ts +14 -0
- package/lib/shared/model/Sequence.js.map +1 -0
- package/lib/shared/model/index.cjs +2 -0
- package/lib/shared/model/index.d.ts +2 -0
- package/lib/shared/model/index.js.map +1 -1
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +2 -3
- package/lib/client/services/LoggedService.cjs +0 -47
- package/lib/client/services/LoggedService.d.ts +0 -42
- package/lib/client/services/LoggedService.js.map +0 -1
- package/lib/esm/client/services/LoggedService.d.ts +0 -42
- package/lib/esm/client/services/LoggedService.js +0 -43
- package/lib/esm/client/services/LoggedService.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AuthorizationError } from "@decaf-ts/core";
|
|
2
|
-
import { NotFoundError, onCreate, readonly,
|
|
2
|
+
import { InternalError, NotFoundError, onCreate, readonly, } from "@decaf-ts/db-decorators";
|
|
3
3
|
import { Model, required } from "@decaf-ts/decorator-validation";
|
|
4
4
|
import { FabricModelKeys } from "./constants.js";
|
|
5
5
|
import { apply, Decoration, Metadata, propMetadata, } from "@decaf-ts/decoration";
|
|
@@ -25,8 +25,8 @@ export function Owner() {
|
|
|
25
25
|
descriptor.value = async function (...args) {
|
|
26
26
|
const ctx = args[0];
|
|
27
27
|
const acountId = ctx.clientIdentity.getID();
|
|
28
|
-
const select = await this["tokenRepository"].
|
|
29
|
-
const tokens = await select.execute();
|
|
28
|
+
const select = await this["tokenRepository"].select();
|
|
29
|
+
const tokens = await select.execute(ctx);
|
|
30
30
|
if (tokens.length == 0) {
|
|
31
31
|
throw new NotFoundError("No tokens avaialble");
|
|
32
32
|
}
|
|
@@ -72,47 +72,147 @@ export function OwnedBy() {
|
|
|
72
72
|
export function getFabricModelKey(key) {
|
|
73
73
|
return Metadata.key(FabricModelKeys.FABRIC + key);
|
|
74
74
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
//
|
|
89
|
-
// }
|
|
90
|
-
export function privateData(collection) {
|
|
91
|
-
if (!collection) {
|
|
92
|
-
throw new Error("Collection name is required");
|
|
75
|
+
export const ImplicitPrivateCollection = (model) => {
|
|
76
|
+
return `__${model.constructor.name}PrivateCollection`;
|
|
77
|
+
};
|
|
78
|
+
export async function segregatedDataOnCreate(context, data, keys, model) {
|
|
79
|
+
if (keys.length !== data.length)
|
|
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]);
|
|
93
89
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
90
|
+
Model.segregate(model);
|
|
91
|
+
}
|
|
92
|
+
export async function segregatedDataOnRead(context, data, key, model) { }
|
|
93
|
+
export async function segregatedDataOnUpdate(context, data, key, model, oldModel) { }
|
|
94
|
+
export async function segregatedDataOnDelete(context, data, key, model) { }
|
|
95
|
+
function segregated(collection, type) {
|
|
96
|
+
return function innerSegregated(target, propertyKey) {
|
|
97
|
+
function segregatedDec(target, propertyKey) {
|
|
98
|
+
if (!propertyKey) {
|
|
99
|
+
const props = Metadata.properties(target) || [];
|
|
100
|
+
for (const prop of props)
|
|
101
|
+
segregated(collection, type)(target, prop);
|
|
102
|
+
return target;
|
|
103
|
+
}
|
|
104
|
+
const key = Metadata.key(type, propertyKey);
|
|
105
|
+
const constr = target.constructor;
|
|
106
|
+
const meta = Metadata.get(constr, key) || {};
|
|
107
|
+
const collections = new Set(meta.collections || []);
|
|
108
|
+
collections.add(collection);
|
|
109
|
+
meta.collections = [...collections];
|
|
110
|
+
Metadata.set(constr, key, meta);
|
|
115
111
|
}
|
|
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);
|
|
116
155
|
};
|
|
117
156
|
}
|
|
157
|
+
export function privateData(collection = ImplicitPrivateCollection) {
|
|
158
|
+
function privateData(collection) {
|
|
159
|
+
return segregated(collection, FabricModelKeys.PRIVATE);
|
|
160
|
+
}
|
|
161
|
+
return Decoration.for(FabricModelKeys.PRIVATE)
|
|
162
|
+
.define({
|
|
163
|
+
decorator: privateData,
|
|
164
|
+
args: [collection],
|
|
165
|
+
})
|
|
166
|
+
.apply();
|
|
167
|
+
}
|
|
168
|
+
export function sharedData(collection) {
|
|
169
|
+
function sharedData(collection) {
|
|
170
|
+
return segregated(collection, FabricModelKeys.SHARED);
|
|
171
|
+
}
|
|
172
|
+
return Decoration.for(FabricModelKeys.SHARED)
|
|
173
|
+
.define({
|
|
174
|
+
decorator: sharedData,
|
|
175
|
+
args: [collection],
|
|
176
|
+
})
|
|
177
|
+
.apply();
|
|
178
|
+
}
|
|
179
|
+
//
|
|
180
|
+
// export function privateData(collection?: string) {
|
|
181
|
+
// if (!collection) {
|
|
182
|
+
// throw new Error("Collection name is required");
|
|
183
|
+
// }
|
|
184
|
+
//
|
|
185
|
+
// const key: string = FabricModelKeys.PRIVATE;
|
|
186
|
+
//
|
|
187
|
+
// return function privateData<M extends Model>(
|
|
188
|
+
// model: M | Constructor<M>,
|
|
189
|
+
// attribute?: any
|
|
190
|
+
// ) {
|
|
191
|
+
// const constr =
|
|
192
|
+
// model instanceof Model ? (model.constructor as Constructor) : model;
|
|
193
|
+
//
|
|
194
|
+
// const metaData: any = Metadata.get(constr);
|
|
195
|
+
// const modeldata = metaData?.private?.collections || [];
|
|
196
|
+
//
|
|
197
|
+
// propMetadata(key, {
|
|
198
|
+
// ...(!attribute && {
|
|
199
|
+
// collections: modeldata
|
|
200
|
+
// ? [...new Set([...modeldata, collection])]
|
|
201
|
+
// : [collection],
|
|
202
|
+
// }),
|
|
203
|
+
// isPrivate: !attribute,
|
|
204
|
+
// })(attribute ? constr : model);
|
|
205
|
+
//
|
|
206
|
+
// if (attribute) {
|
|
207
|
+
// const attributeData =
|
|
208
|
+
// (metaData?.private?.[attribute] as any)?.collections || [];
|
|
209
|
+
// propMetadata(Metadata.key(key, attribute), {
|
|
210
|
+
// collections: attributeData
|
|
211
|
+
// ? [...new Set([...attributeData, collection])]
|
|
212
|
+
// : [collection],
|
|
213
|
+
// })(model, attribute);
|
|
214
|
+
// transient()(model, attribute);
|
|
215
|
+
// }
|
|
216
|
+
// };
|
|
217
|
+
// }
|
|
118
218
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -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,
|
|
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"}
|
package/lib/esm/shared/errors.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseError, InternalError } from "@decaf-ts/db-decorators";
|
|
2
2
|
import { AuthorizationError } from "@decaf-ts/core";
|
|
3
|
-
import { MISSING_PRIVATE_DATA_ERROR_MESSAGE } from "
|
|
3
|
+
// import { MISSING_PRIVATE_DATA_ERROR_MESSAGE } from "../contracts/private-data";
|
|
4
4
|
/**
|
|
5
5
|
* @summary Represents an overflow error in arithmetic operations in Smart Contracts
|
|
6
6
|
*
|
|
@@ -91,7 +91,7 @@ export class MissingContextError extends InternalError {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
export class UnauthorizedPrivateDataAccess extends BaseError {
|
|
94
|
-
constructor(msg = MISSING_PRIVATE_DATA_ERROR_MESSAGE) {
|
|
94
|
+
constructor(msg = "MISSING_PRIVATE_DATA_ERROR_MESSAGE") {
|
|
95
95
|
super(UnauthorizedPrivateDataAccess.name, msg, 403);
|
|
96
96
|
}
|
|
97
97
|
}
|
|
@@ -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,
|
|
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"}
|
|
@@ -31,11 +31,7 @@ export declare function generateFabricEventName(table: string, event: OperationK
|
|
|
31
31
|
* @memberOf module:for-fabric.shared
|
|
32
32
|
*/
|
|
33
33
|
export declare function parseEventName(name: string): {
|
|
34
|
-
table
|
|
34
|
+
table?: string;
|
|
35
35
|
event: OperationKeys | BulkCrudOperationKeys | string;
|
|
36
36
|
owner?: string;
|
|
37
|
-
} | {
|
|
38
|
-
table: undefined;
|
|
39
|
-
event: string;
|
|
40
|
-
owner: undefined;
|
|
41
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/shared/events.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,KAAqD,EACrD,KAAc;IAEd,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9B,IAAI,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/shared/events.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,KAAqD,EACrD,KAAc;IAEd,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9B,IAAI,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IAKzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC7D,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACf,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACf,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;KAKhB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseModel } from "@decaf-ts/core";
|
|
2
|
+
import type { ModelArg } from "@decaf-ts/decorator-validation";
|
|
3
|
+
export declare class SequenceModel extends BaseModel {
|
|
4
|
+
/**
|
|
5
|
+
* @description Primary key identifier for the sequence
|
|
6
|
+
*/
|
|
7
|
+
id: string;
|
|
8
|
+
/**
|
|
9
|
+
* @description Current value of the sequence
|
|
10
|
+
* Used to generate the next sequential value
|
|
11
|
+
*/
|
|
12
|
+
current: string | number;
|
|
13
|
+
constructor(seq?: ModelArg<SequenceModel>);
|
|
14
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
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 { BaseModel, index, pk, table } from "@decaf-ts/core";
|
|
11
|
+
import { model, required } from "@decaf-ts/decorator-validation";
|
|
12
|
+
import { CouchDBKeys } from "@decaf-ts/for-couchdb";
|
|
13
|
+
let SequenceModel = class SequenceModel extends BaseModel {
|
|
14
|
+
constructor(seq) {
|
|
15
|
+
super(seq);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
__decorate([
|
|
19
|
+
pk(),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], SequenceModel.prototype, "id", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
required(),
|
|
24
|
+
index(),
|
|
25
|
+
__metadata("design:type", Object)
|
|
26
|
+
], SequenceModel.prototype, "current", void 0);
|
|
27
|
+
SequenceModel = __decorate([
|
|
28
|
+
table(CouchDBKeys.SEQUENCE),
|
|
29
|
+
model(),
|
|
30
|
+
__metadata("design:paramtypes", [Object])
|
|
31
|
+
], SequenceModel);
|
|
32
|
+
export { SequenceModel };
|
|
33
|
+
//# sourceMappingURL=Sequence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sequence.js","sourceRoot":"","sources":["../../../../src/shared/model/Sequence.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI7C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS;IAe1C,YAAY,GAA6B;QACvC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAbC;IADC,EAAE,EAAE;;yCACO;AAQZ;IAFC,QAAQ,EAAE;IACV,KAAK,EAAE;;8CACkB;AAbf,aAAa;IAFzB,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC3B,KAAK,EAAE;;GACK,aAAa,CAkBzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/model/index.ts"],"names":[],"mappings":"AAAA,8BAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/model/index.ts"],"names":[],"mappings":"AAAA,8BAA2B;AAC3B,yCAAsC;AACtC,8BAA2B"}
|
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.4";
|
|
2
2
|
export declare const PACKAGE_NAME = "@decaf-ts/for-fabric";
|
package/lib/esm/version.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImplicitPrivateCollection = void 0;
|
|
3
4
|
exports.Owner = Owner;
|
|
4
5
|
exports.ownedByOnCreate = ownedByOnCreate;
|
|
5
6
|
exports.OwnedBy = OwnedBy;
|
|
6
7
|
exports.getFabricModelKey = getFabricModelKey;
|
|
8
|
+
exports.segregatedDataOnCreate = segregatedDataOnCreate;
|
|
9
|
+
exports.segregatedDataOnRead = segregatedDataOnRead;
|
|
10
|
+
exports.segregatedDataOnUpdate = segregatedDataOnUpdate;
|
|
11
|
+
exports.segregatedDataOnDelete = segregatedDataOnDelete;
|
|
7
12
|
exports.privateData = privateData;
|
|
13
|
+
exports.sharedData = sharedData;
|
|
8
14
|
const core_1 = require("@decaf-ts/core");
|
|
9
15
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
10
16
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
@@ -32,8 +38,8 @@ function Owner() {
|
|
|
32
38
|
descriptor.value = async function (...args) {
|
|
33
39
|
const ctx = args[0];
|
|
34
40
|
const acountId = ctx.clientIdentity.getID();
|
|
35
|
-
const select = await this["tokenRepository"].
|
|
36
|
-
const tokens = await select.execute();
|
|
41
|
+
const select = await this["tokenRepository"].select();
|
|
42
|
+
const tokens = await select.execute(ctx);
|
|
37
43
|
if (tokens.length == 0) {
|
|
38
44
|
throw new db_decorators_1.NotFoundError("No tokens avaialble");
|
|
39
45
|
}
|
|
@@ -79,47 +85,148 @@ function OwnedBy() {
|
|
|
79
85
|
function getFabricModelKey(key) {
|
|
80
86
|
return decoration_1.Metadata.key(constants_1.FabricModelKeys.FABRIC + key);
|
|
81
87
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
//
|
|
97
|
-
function privateData(collection) {
|
|
98
|
-
if (!collection) {
|
|
99
|
-
throw new Error("Collection name is required");
|
|
88
|
+
const ImplicitPrivateCollection = (model) => {
|
|
89
|
+
return `__${model.constructor.name}PrivateCollection`;
|
|
90
|
+
};
|
|
91
|
+
exports.ImplicitPrivateCollection = ImplicitPrivateCollection;
|
|
92
|
+
async function segregatedDataOnCreate(context, data, keys, model) {
|
|
93
|
+
if (keys.length !== data.length)
|
|
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]);
|
|
100
103
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
(
|
|
104
|
+
decorator_validation_1.Model.segregate(model);
|
|
105
|
+
}
|
|
106
|
+
async function segregatedDataOnRead(context, data, key, model) { }
|
|
107
|
+
async function segregatedDataOnUpdate(context, data, key, model, oldModel) { }
|
|
108
|
+
async function segregatedDataOnDelete(context, data, key, model) { }
|
|
109
|
+
function segregated(collection, type) {
|
|
110
|
+
return function innerSegregated(target, propertyKey) {
|
|
111
|
+
function segregatedDec(target, propertyKey) {
|
|
112
|
+
if (!propertyKey) {
|
|
113
|
+
const props = decoration_1.Metadata.properties(target) || [];
|
|
114
|
+
for (const prop of props)
|
|
115
|
+
segregated(collection, type)(target, prop);
|
|
116
|
+
return target;
|
|
117
|
+
}
|
|
118
|
+
const key = decoration_1.Metadata.key(type, propertyKey);
|
|
119
|
+
const constr = target.constructor;
|
|
120
|
+
const meta = decoration_1.Metadata.get(constr, key) || {};
|
|
121
|
+
const collections = new Set(meta.collections || []);
|
|
122
|
+
collections.add(collection);
|
|
123
|
+
meta.collections = [...collections];
|
|
124
|
+
decoration_1.Metadata.set(constr, key, meta);
|
|
122
125
|
}
|
|
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);
|
|
123
169
|
};
|
|
124
170
|
}
|
|
171
|
+
function privateData(collection = exports.ImplicitPrivateCollection) {
|
|
172
|
+
function privateData(collection) {
|
|
173
|
+
return segregated(collection, constants_1.FabricModelKeys.PRIVATE);
|
|
174
|
+
}
|
|
175
|
+
return decoration_1.Decoration.for(constants_1.FabricModelKeys.PRIVATE)
|
|
176
|
+
.define({
|
|
177
|
+
decorator: privateData,
|
|
178
|
+
args: [collection],
|
|
179
|
+
})
|
|
180
|
+
.apply();
|
|
181
|
+
}
|
|
182
|
+
function sharedData(collection) {
|
|
183
|
+
function sharedData(collection) {
|
|
184
|
+
return segregated(collection, constants_1.FabricModelKeys.SHARED);
|
|
185
|
+
}
|
|
186
|
+
return decoration_1.Decoration.for(constants_1.FabricModelKeys.SHARED)
|
|
187
|
+
.define({
|
|
188
|
+
decorator: sharedData,
|
|
189
|
+
args: [collection],
|
|
190
|
+
})
|
|
191
|
+
.apply();
|
|
192
|
+
}
|
|
193
|
+
//
|
|
194
|
+
// export function privateData(collection?: string) {
|
|
195
|
+
// if (!collection) {
|
|
196
|
+
// throw new Error("Collection name is required");
|
|
197
|
+
// }
|
|
198
|
+
//
|
|
199
|
+
// const key: string = FabricModelKeys.PRIVATE;
|
|
200
|
+
//
|
|
201
|
+
// return function privateData<M extends Model>(
|
|
202
|
+
// model: M | Constructor<M>,
|
|
203
|
+
// attribute?: any
|
|
204
|
+
// ) {
|
|
205
|
+
// const constr =
|
|
206
|
+
// model instanceof Model ? (model.constructor as Constructor) : model;
|
|
207
|
+
//
|
|
208
|
+
// const metaData: any = Metadata.get(constr);
|
|
209
|
+
// const modeldata = metaData?.private?.collections || [];
|
|
210
|
+
//
|
|
211
|
+
// propMetadata(key, {
|
|
212
|
+
// ...(!attribute && {
|
|
213
|
+
// collections: modeldata
|
|
214
|
+
// ? [...new Set([...modeldata, collection])]
|
|
215
|
+
// : [collection],
|
|
216
|
+
// }),
|
|
217
|
+
// isPrivate: !attribute,
|
|
218
|
+
// })(attribute ? constr : model);
|
|
219
|
+
//
|
|
220
|
+
// if (attribute) {
|
|
221
|
+
// const attributeData =
|
|
222
|
+
// (metaData?.private?.[attribute] as any)?.collections || [];
|
|
223
|
+
// propMetadata(Metadata.key(key, attribute), {
|
|
224
|
+
// collections: attributeData
|
|
225
|
+
// ? [...new Set([...attributeData, collection])]
|
|
226
|
+
// : [collection],
|
|
227
|
+
// })(model, attribute);
|
|
228
|
+
// transient()(model, attribute);
|
|
229
|
+
// }
|
|
230
|
+
// };
|
|
231
|
+
// }
|
|
125
232
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Repo } from "@decaf-ts/core";
|
|
2
|
-
import { Context
|
|
2
|
+
import { Context } from "@decaf-ts/db-decorators";
|
|
3
3
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
-
import {
|
|
4
|
+
import { FabricContractContext, FabricContractRepository } from "../contracts/index";
|
|
5
5
|
/**
|
|
6
6
|
* Decorator for marking methods that require ownership authorization.
|
|
7
7
|
* Checks the owner of the token before allowing the method to be executed.
|
|
@@ -19,7 +19,17 @@ import { Constructor } from "@decaf-ts/decoration";
|
|
|
19
19
|
* @returns {MethodDecorator} A method decorator that checks ownership authorization.
|
|
20
20
|
*/
|
|
21
21
|
export declare function Owner(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
22
|
-
export declare function ownedByOnCreate<M extends Model<boolean>, R extends Repo<M
|
|
22
|
+
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
23
|
export declare function OwnedBy(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
24
24
|
export declare function getFabricModelKey(key: string): string;
|
|
25
|
-
export
|
|
25
|
+
export type CollectionResolver = <M extends Model>(model: M) => string;
|
|
26
|
+
export declare const ImplicitPrivateCollection: CollectionResolver;
|
|
27
|
+
export type SegregatedDataMetadata = {
|
|
28
|
+
collections: string | CollectionResolver;
|
|
29
|
+
};
|
|
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>;
|
|
34
|
+
export declare function privateData(collection?: string | CollectionResolver): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
35
|
+
export declare function sharedData(collection: string | CollectionResolver): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|