@decaf-ts/for-fabric 0.1.50 → 0.1.51
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/cli-module.cjs +11 -5
- package/lib/cli-module.js.map +1 -1
- package/lib/client/FabricClientAdapter.cjs +2 -1
- package/lib/client/FabricClientAdapter.js.map +1 -1
- package/lib/client/FabricClientDispatch.cjs +2 -2
- package/lib/client/FabricClientDispatch.js.map +1 -1
- package/lib/client/FabricClientRepository.cjs +14 -18
- package/lib/client/FabricClientRepository.d.ts +1 -1
- package/lib/client/FabricClientRepository.js.map +1 -1
- package/lib/client/erc20/FabricERC20ClientRepository.cjs +12 -18
- package/lib/client/erc20/FabricERC20ClientRepository.d.ts +7 -7
- package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/client/index.cjs +5 -2
- package/lib/client/index.d.ts +5 -2
- package/lib/client/index.js.map +1 -1
- package/lib/client/services/FabricEnrollmentService.cjs +1 -1
- package/lib/client/services/FabricEnrollmentService.js.map +1 -1
- package/lib/client/services/FabricIdentityService.cjs +1 -1
- package/lib/client/services/FabricIdentityService.js.map +1 -1
- package/lib/{shared → client}/utils.cjs +3 -3
- package/lib/{esm/shared → client}/utils.d.ts +1 -1
- package/lib/client/utils.js.map +1 -0
- package/lib/contracts/ContractAdapter.cjs +155 -46
- package/lib/contracts/ContractAdapter.d.ts +12 -17
- package/lib/contracts/ContractAdapter.js.map +1 -1
- package/lib/contracts/FabricContractPaginator.cjs +17 -12
- package/lib/contracts/FabricContractPaginator.d.ts +2 -2
- package/lib/contracts/FabricContractPaginator.js.map +1 -1
- package/lib/contracts/FabricContractRepository.cjs +5 -7
- package/lib/contracts/FabricContractRepository.d.ts +1 -8
- package/lib/contracts/FabricContractRepository.js.map +1 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +1 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +1 -1
- package/lib/contracts/FabricContractSequence.cjs +2 -4
- package/lib/contracts/FabricContractSequence.js.map +1 -1
- package/lib/contracts/FabricContractStatement.cjs +6 -0
- package/lib/contracts/FabricContractStatement.d.ts +3 -1
- package/lib/contracts/FabricContractStatement.js.map +1 -1
- package/lib/contracts/crud/crud-contract.cjs +31 -65
- package/lib/contracts/crud/crud-contract.d.ts +8 -17
- package/lib/contracts/crud/crud-contract.js.map +1 -1
- package/lib/contracts/crud/serialized-crud-contract.cjs +19 -56
- package/lib/contracts/crud/serialized-crud-contract.d.ts +13 -15
- package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/contracts/erc20/models.cjs +3 -3
- package/lib/contracts/erc20/models.js.map +1 -1
- package/lib/contracts/logging.cjs +7 -0
- package/lib/contracts/logging.js.map +1 -1
- package/lib/esm/cli-module.js +11 -5
- package/lib/esm/cli-module.js.map +1 -1
- package/lib/esm/client/FabricClientAdapter.js +2 -1
- package/lib/esm/client/FabricClientAdapter.js.map +1 -1
- package/lib/esm/client/FabricClientDispatch.js +3 -3
- package/lib/esm/client/FabricClientDispatch.js.map +1 -1
- package/lib/esm/client/FabricClientRepository.d.ts +1 -1
- package/lib/esm/client/FabricClientRepository.js +15 -19
- package/lib/esm/client/FabricClientRepository.js.map +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.d.ts +7 -7
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +12 -18
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/esm/client/index.d.ts +5 -2
- package/lib/esm/client/index.js +5 -2
- package/lib/esm/client/index.js.map +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -1
- package/lib/esm/client/services/FabricIdentityService.js +1 -1
- package/lib/esm/client/services/FabricIdentityService.js.map +1 -1
- package/lib/{shared → esm/client}/utils.d.ts +1 -1
- package/lib/esm/{shared → client}/utils.js +2 -2
- package/lib/esm/client/utils.js.map +1 -0
- package/lib/esm/contracts/ContractAdapter.d.ts +12 -17
- package/lib/esm/contracts/ContractAdapter.js +156 -47
- package/lib/esm/contracts/ContractAdapter.js.map +1 -1
- package/lib/esm/contracts/FabricContractPaginator.d.ts +2 -2
- package/lib/esm/contracts/FabricContractPaginator.js +18 -13
- package/lib/esm/contracts/FabricContractPaginator.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepository.d.ts +1 -8
- package/lib/esm/contracts/FabricContractRepository.js +6 -8
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -1
- package/lib/esm/contracts/FabricContractSequence.js +3 -5
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -1
- package/lib/esm/contracts/FabricContractStatement.d.ts +3 -1
- package/lib/esm/contracts/FabricContractStatement.js +8 -2
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -1
- package/lib/esm/contracts/crud/crud-contract.d.ts +8 -17
- package/lib/esm/contracts/crud/crud-contract.js +34 -68
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +13 -15
- package/lib/esm/contracts/crud/serialized-crud-contract.js +19 -56
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/esm/contracts/erc20/models.js +3 -3
- package/lib/esm/contracts/erc20/models.js.map +1 -1
- package/lib/esm/contracts/logging.js +7 -0
- package/lib/esm/contracts/logging.js.map +1 -1
- package/lib/esm/shared/index.d.ts +0 -1
- package/lib/esm/shared/index.js +0 -1
- package/lib/esm/shared/index.js.map +1 -1
- package/lib/esm/shared/overrides/overrides.js +10 -0
- package/lib/esm/shared/overrides/overrides.js.map +1 -1
- package/lib/shared/index.cjs +0 -1
- package/lib/shared/index.d.ts +0 -1
- package/lib/shared/index.js.map +1 -1
- package/lib/shared/overrides/overrides.cjs +10 -0
- package/lib/shared/overrides/overrides.js.map +1 -1
- package/package.json +1 -1
- package/lib/esm/shared/utils.js.map +0 -1
- package/lib/shared/utils.js.map +0 -1
|
@@ -112,39 +112,44 @@ class FabricContractPaginator extends for_couchdb_1.CouchDBPaginator {
|
|
|
112
112
|
* CouchDBPaginator-->>Client: Return results
|
|
113
113
|
* end
|
|
114
114
|
*/
|
|
115
|
-
async page(page = 1, ...args) {
|
|
116
|
-
const { ctxArgs, ctx } = this.adapter["logCtx"](args, this.page);
|
|
115
|
+
async page(page = 1, bookmark, ...args) {
|
|
116
|
+
const { ctxArgs, ctx, log } = this.adapter["logCtx"]([bookmark, ...args], this.page);
|
|
117
117
|
if (this.isPreparedStatement())
|
|
118
|
-
return this.pagePrepared(page, ...ctxArgs);
|
|
118
|
+
return await this.pagePrepared(page, ...ctxArgs);
|
|
119
119
|
const statement = Object.assign({}, this.statement);
|
|
120
120
|
if (!this._recordCount || !this._totalPages) {
|
|
121
121
|
this._totalPages = this._recordCount = 0;
|
|
122
|
-
const
|
|
123
|
-
this._recordCount =
|
|
122
|
+
const countResults = (await this.adapter.raw({ ...statement, limit: Number.MAX_VALUE }, true, ...ctxArgs)) || [];
|
|
123
|
+
this._recordCount = countResults.length;
|
|
124
124
|
if (this._recordCount > 0) {
|
|
125
125
|
const size = statement?.limit || this.size;
|
|
126
126
|
this._totalPages = Math.ceil(this._recordCount / size);
|
|
127
|
+
return await this.page(page, ...ctxArgs);
|
|
127
128
|
}
|
|
128
129
|
}
|
|
129
|
-
|
|
130
|
+
else {
|
|
131
|
+
page = this.validatePage(page);
|
|
132
|
+
statement.skip = (page - 1) * this.size;
|
|
133
|
+
}
|
|
130
134
|
if (page !== 1) {
|
|
131
135
|
if (!this._bookmark)
|
|
132
136
|
throw new core_1.PagingError("No bookmark. Did you start in the first page?");
|
|
133
137
|
statement["bookmark"] = this._bookmark;
|
|
134
138
|
}
|
|
135
|
-
const
|
|
139
|
+
const rawResult = (await this.adapter.raw(statement, true, ...ctxArgs));
|
|
140
|
+
const { docs, bookmark: nextBookmark, warning } = rawResult;
|
|
141
|
+
if (warning)
|
|
142
|
+
log.warn(warning);
|
|
136
143
|
if (!this.clazz)
|
|
137
144
|
throw new core_1.PagingError("No statement target defined");
|
|
138
145
|
const id = decorator_validation_1.Model.pk(this.clazz);
|
|
139
146
|
const type = decoration_1.Metadata.get(this.clazz, decoration_1.Metadata.key(db_decorators_1.DBKeys.ID, id))?.type;
|
|
140
147
|
const results = statement.fields && statement.fields.length
|
|
141
|
-
?
|
|
142
|
-
:
|
|
148
|
+
? rawResult // has fields means its not full model
|
|
149
|
+
: rawResult.map((d) => {
|
|
143
150
|
return this.adapter.revert(d, this.clazz, core_1.Sequence.parseValue(type, d[id]), undefined, ctx);
|
|
144
151
|
});
|
|
145
|
-
|
|
146
|
-
this._bookmark =
|
|
147
|
-
results[direction === core_1.OrderDirection.ASC ? results.length - 1 : 0][id];
|
|
152
|
+
this._bookmark = nextBookmark;
|
|
148
153
|
this._currentPage = page;
|
|
149
154
|
return results;
|
|
150
155
|
}
|
|
@@ -25,7 +25,7 @@ import { CouchDBPaginator, MangoQuery } from "@decaf-ts/for-couchdb";
|
|
|
25
25
|
* // Get the next page
|
|
26
26
|
* const page2 = await paginator.page(2);
|
|
27
27
|
*/
|
|
28
|
-
export declare class FabricContractPaginator<M extends Model
|
|
28
|
+
export declare class FabricContractPaginator<M extends Model> extends CouchDBPaginator<M> {
|
|
29
29
|
/**
|
|
30
30
|
* @description Creates a new CouchDBPaginator instance
|
|
31
31
|
* @summary Initializes a paginator for CouchDB query results
|
|
@@ -101,5 +101,5 @@ export declare class FabricContractPaginator<M extends Model, R> extends CouchDB
|
|
|
101
101
|
* CouchDBPaginator-->>Client: Return results
|
|
102
102
|
* end
|
|
103
103
|
*/
|
|
104
|
-
page(page?: number, ...args: MaybeContextualArg<any>): Promise<M[]>;
|
|
104
|
+
page(page?: number, bookmark?: any, ...args: MaybeContextualArg<any>): Promise<M[]>;
|
|
105
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricContractPaginator.js","sourceRoot":"","sources":["../../src/contracts/FabricContractPaginator.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"FabricContractPaginator.js","sourceRoot":"","sources":["../../src/contracts/FabricContractPaginator.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,8 +89,7 @@ class FabricContractRepository extends core_1.Repository {
|
|
|
89
89
|
let { offset, bookmark, limit } = ref;
|
|
90
90
|
if (!offset && !bookmark)
|
|
91
91
|
throw new core_1.QueryError(`PaginateBy needs a page or a bookmark`);
|
|
92
|
-
const
|
|
93
|
-
const { log, ctxArgs } = this.logCtx(contextArgs.args, this.paginateBy);
|
|
92
|
+
const { log, ctxArgs } = (await this.logCtx(args, core_1.PreparedStatementKeys.PAGE_BY, true)).for(this.paginateBy);
|
|
94
93
|
log.verbose(`paginating ${decorator_validation_1.Model.tableName(this.class)} with page size ${limit}`);
|
|
95
94
|
let paginator;
|
|
96
95
|
if (bookmark) {
|
|
@@ -116,17 +115,16 @@ class FabricContractRepository extends core_1.Repository {
|
|
|
116
115
|
else {
|
|
117
116
|
throw new core_1.QueryError(`PaginateBy needs a page or a bookmark`);
|
|
118
117
|
}
|
|
119
|
-
const paged = await paginator.page(offset, ...ctxArgs);
|
|
118
|
+
const paged = await paginator.page(offset, bookmark, ...ctxArgs);
|
|
120
119
|
return paginator.serialize(paged);
|
|
121
120
|
}
|
|
122
121
|
async statement(name, ...args) {
|
|
122
|
+
const { log, ctx, ctxArgs } = (await this.logCtx(args, core_1.PersistenceKeys.STATEMENT, true)).for(this.statement);
|
|
123
123
|
if (!core_1.Repository.statements(this, name))
|
|
124
124
|
throw new core_1.QueryError(`Invalid prepared statement requested ${name}`);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
contextArgs.context.logger.info(`Repo statement: ${name} + ${args}`);
|
|
125
|
+
if (ctx.logger) {
|
|
126
|
+
ctx.logger.info(`Repo statement: ${name} + ${args}`);
|
|
128
127
|
}
|
|
129
|
-
const { log, ctxArgs } = this.logCtx(contextArgs.args, this.statement);
|
|
130
128
|
log.verbose(`Executing prepared statement ${name} with args ${ctxArgs}`);
|
|
131
129
|
let result;
|
|
132
130
|
try {
|
|
@@ -70,14 +70,7 @@ import { FabricContractAdapter } from "./ContractAdapter";
|
|
|
70
70
|
*/
|
|
71
71
|
export declare class FabricContractRepository<M extends Model> extends Repository<M, FabricContractAdapter> {
|
|
72
72
|
protected trackedEvents?: (OperationKeys | BulkCrudOperationKeys | string)[] | undefined;
|
|
73
|
-
protected _overrides:
|
|
74
|
-
allowGenerationOverride: boolean;
|
|
75
|
-
enforceUpdateValidation: boolean;
|
|
76
|
-
allowRawStatements: boolean;
|
|
77
|
-
forcePrepareSimpleQueries: boolean;
|
|
78
|
-
forcePrepareComplexQueries: boolean;
|
|
79
|
-
cacheForPopulate: Record<string, any>;
|
|
80
|
-
})> & Partial<import("@decaf-ts/db-decorators").RepositoryFlags<any>>) & {
|
|
73
|
+
protected _overrides: Partial<import("@decaf-ts/db-decorators").ContextFlags<any> | import("@decaf-ts/core").AdapterFlags> & {
|
|
81
74
|
ignoreValidation: boolean;
|
|
82
75
|
ignoreHandlers: boolean;
|
|
83
76
|
allowRawStatements: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricContractRepository.js","sourceRoot":"","sources":["../../src/contracts/FabricContractRepository.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"FabricContractRepository.js","sourceRoot":"","sources":["../../src/contracts/FabricContractRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,7 +70,7 @@ class FabricContractRepositoryObservableHandler extends core_1.ObserverHandler {
|
|
|
70
70
|
* @return {Promise<void>} Promise that resolves when the event is emitted
|
|
71
71
|
*/
|
|
72
72
|
async updateObservers(clazz, event, id, ...args) {
|
|
73
|
-
const { log, ctx } = core_1.Adapter.logCtx(
|
|
73
|
+
const { log, ctx } = core_1.Adapter.logCtx(this.updateObservers, event, false, ...args);
|
|
74
74
|
const { stub } = ctx;
|
|
75
75
|
const [owner, payload] = args;
|
|
76
76
|
const table = typeof clazz === "string" ? clazz : clazz.name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricContractRepositoryObservableHandler.js","sourceRoot":"","sources":["../../src/contracts/FabricContractRepositoryObservableHandler.ts"],"names":[],"mappings":";;;AAAA,2DAA+E;AAC/E,yCAKwB;AACxB,mDAA2D;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAa,yCAA0C,SAAQ,sBAAe;IAC5E;;;;OAIG;IACH,YACU,kBAIF;QACJ,6BAAa,CAAC,MAAM;QACpB,6BAAa,CAAC,MAAM;QACpB,6BAAa,CAAC,MAAM;QACpB,qCAAqB,CAAC,UAAU;QAChC,qCAAqB,CAAC,UAAU;QAChC,qCAAqB,CAAC,UAAU;KACjC;QAED,KAAK,EAAE,CAAC;QAbA,oBAAe,GAAf,eAAe,CAWtB;IAGH,CAAC;IAED;;;;;;;;;;;;OAYG;IACM,KAAK,CAAC,eAAe,CAC5B,KAAgC,EAChC,KAAqD,EACrD,EAAY,EACZ,GAAG,IAA2C;QAE9C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAO,CAAC,MAAM,CACjC,IAAI,
|
|
1
|
+
{"version":3,"file":"FabricContractRepositoryObservableHandler.js","sourceRoot":"","sources":["../../src/contracts/FabricContractRepositoryObservableHandler.ts"],"names":[],"mappings":";;;AAAA,2DAA+E;AAC/E,yCAKwB;AACxB,mDAA2D;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAa,yCAA0C,SAAQ,sBAAe;IAC5E;;;;OAIG;IACH,YACU,kBAIF;QACJ,6BAAa,CAAC,MAAM;QACpB,6BAAa,CAAC,MAAM;QACpB,6BAAa,CAAC,MAAM;QACpB,qCAAqB,CAAC,UAAU;QAChC,qCAAqB,CAAC,UAAU;QAChC,qCAAqB,CAAC,UAAU;KACjC;QAED,KAAK,EAAE,CAAC;QAbA,oBAAe,GAAf,eAAe,CAWtB;IAGH,CAAC;IAED;;;;;;;;;;;;OAYG;IACM,KAAK,CAAC,eAAe,CAC5B,KAAgC,EAChC,KAAqD,EACrD,EAAY,EACZ,GAAG,IAA2C;QAE9C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAO,CAAC,MAAM,CACjC,IAAI,CAAC,eAAe,EACpB,KAAK,EACL,KAAK,EACL,GAAG,IAAI,CACR,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACrB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QAC9B,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7D,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,IAAA,gCAAuB,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF;AA3DD,8FA2DC"}
|
|
@@ -64,15 +64,13 @@ class FabricContractSequence extends core_1.Sequence {
|
|
|
64
64
|
* @return A promise that resolves to the current sequence value
|
|
65
65
|
*/
|
|
66
66
|
async current(...args) {
|
|
67
|
-
const
|
|
68
|
-
const ctx = contextArgs.context;
|
|
67
|
+
const { ctx, log } = (await this.logCtx(args, db_decorators_1.OperationKeys.READ, true)).for(this.current);
|
|
69
68
|
const { name, startWith } = this.options;
|
|
70
69
|
try {
|
|
71
70
|
const sequence = await this.repo.read(name, ctx);
|
|
72
71
|
return this.parse(sequence.current);
|
|
73
72
|
}
|
|
74
73
|
catch (e) {
|
|
75
|
-
const log = ctx.logger.for(this.current);
|
|
76
74
|
if (e instanceof db_decorators_1.NotFoundError) {
|
|
77
75
|
let cachedCurrent;
|
|
78
76
|
try {
|
|
@@ -120,7 +118,7 @@ class FabricContractSequence extends core_1.Sequence {
|
|
|
120
118
|
async function returnAndCache(res) {
|
|
121
119
|
if (res instanceof Promise)
|
|
122
120
|
res = await res;
|
|
123
|
-
|
|
121
|
+
log
|
|
124
122
|
.for(returnAndCache)
|
|
125
123
|
.info(`Storing new ${name} seq value in cache: ${res.current}`);
|
|
126
124
|
ctx.cache.put(name, res.current);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricContractSequence.js","sourceRoot":"","sources":["../../src/contracts/FabricContractSequence.ts"],"names":[],"mappings":";;;AAAA,2DAKiC;AACjC,yCAUwB;AAGxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAa,sBAAuB,SAAQ,eAAQ;IAClD;;;OAGG;IACH,YAAY,OAAwB,EAAE,OAA+B;QACnE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACM,KAAK,CAAC,OAAO,CACpB,GAAG,IAA6B;QAEhC,MAAM,
|
|
1
|
+
{"version":3,"file":"FabricContractSequence.js","sourceRoot":"","sources":["../../src/contracts/FabricContractSequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,12 @@ class FabricStatement extends for_couchdb_2.CouchDBStatement {
|
|
|
35
35
|
constructor(adapter) {
|
|
36
36
|
super(adapter);
|
|
37
37
|
}
|
|
38
|
+
async executionPrefix(method, ...args) {
|
|
39
|
+
const newArgs = args.filter(Boolean);
|
|
40
|
+
if (args.length !== newArgs.length)
|
|
41
|
+
throw new db_decorators_1.InternalError(`Received an undefined in the paginator for ${method}: ${args}`);
|
|
42
|
+
return super.executionPrefix(method, ...args);
|
|
43
|
+
}
|
|
38
44
|
async raw(rawInput, ...args) {
|
|
39
45
|
const { ctx } = this.logCtx(args, this.raw);
|
|
40
46
|
const results = await this.adapter.raw(rawInput, true, ctx);
|
|
@@ -2,6 +2,7 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
2
2
|
import { CouchDBAdapter, MangoQuery } from "@decaf-ts/for-couchdb";
|
|
3
3
|
import { FabricContractContext } from "./ContractContext";
|
|
4
4
|
import { CouchDBStatement } from "@decaf-ts/for-couchdb";
|
|
5
|
+
import { ContextualArgs, MaybeContextualArg } from "@decaf-ts/core";
|
|
5
6
|
/**
|
|
6
7
|
* @description Statement wrapper for executing Mango queries within Fabric contracts
|
|
7
8
|
* @summary Bridges CouchDB-style queries to Fabric via the FabricContractAdapter, handling identity and primary key projection when needed.
|
|
@@ -28,6 +29,7 @@ import { CouchDBStatement } from "@decaf-ts/for-couchdb";
|
|
|
28
29
|
*/
|
|
29
30
|
export declare class FabricStatement<M extends Model, R> extends CouchDBStatement<M, CouchDBAdapter<any, void, FabricContractContext>, R> {
|
|
30
31
|
constructor(adapter: CouchDBAdapter<any, void, FabricContractContext>);
|
|
31
|
-
|
|
32
|
+
protected executionPrefix(method: any, ...args: MaybeContextualArg<FabricContractContext>): Promise<[import("@decaf-ts/decoration").Constructor<M>, ...any[], any]>;
|
|
33
|
+
raw<R>(rawInput: MangoQuery, ...args: ContextualArgs<FabricContractContext>): Promise<R>;
|
|
32
34
|
build(): MangoQuery;
|
|
33
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricContractStatement.js","sourceRoot":"","sources":["../../src/contracts/FabricContractStatement.ts"],"names":[],"mappings":";;;AAAA,yEAAuD;AACvD,uDAQ+B;AAE/B,uDAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"FabricContractStatement.js","sourceRoot":"","sources":["../../src/contracts/FabricContractStatement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FabricCrudContract = void 0;
|
|
4
|
+
require("./../../shared/overrides/index.cjs");
|
|
4
5
|
const ContractAdapter_1 = require("./../ContractAdapter.cjs");
|
|
5
6
|
const fabric_contract_api_1 = require("fabric-contract-api");
|
|
6
7
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
7
8
|
const core_1 = require("@decaf-ts/core");
|
|
8
9
|
const DeterministicSerializer_1 = require("./../../shared/DeterministicSerializer.cjs");
|
|
9
|
-
const ContractContext_1 = require("./../ContractContext.cjs");
|
|
10
10
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
11
|
-
const
|
|
12
|
-
(0,
|
|
11
|
+
const index_1 = require("./../../shared/index.cjs");
|
|
12
|
+
(0, fabric_contract_api_1.Object)()(Date);
|
|
13
13
|
/**
|
|
14
14
|
* @description Base contract class for CRUD operations in Fabric chaincode
|
|
15
15
|
* @summary Provides standard create, read, update, and delete operations for models in Fabric chaincode
|
|
@@ -75,9 +75,10 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
75
75
|
this.clazz = clazz;
|
|
76
76
|
this.initialized = false;
|
|
77
77
|
this.repo = core_1.Repository.forModel(clazz);
|
|
78
|
+
// prefixMethod(this);
|
|
78
79
|
}
|
|
79
80
|
async listBy(ctx, key, order, ...args) {
|
|
80
|
-
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.listBy);
|
|
81
|
+
const { ctxArgs, log } = (await this.logCtx([...args, ctx], core_1.PreparedStatementKeys.LIST_BY, true)).for(this.listBy);
|
|
81
82
|
log.info(`Running listBy key ${key}, order ${order} and args ${ctxArgs}`);
|
|
82
83
|
return this.repo.listBy(key, order, ...ctxArgs);
|
|
83
84
|
}
|
|
@@ -85,17 +86,17 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
85
86
|
offset: 1,
|
|
86
87
|
limit: 10,
|
|
87
88
|
}, ...args) {
|
|
88
|
-
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.paginateBy);
|
|
89
|
+
const { ctxArgs, log } = (await this.logCtx([...args, ctx], core_1.PreparedStatementKeys.PAGE_BY, true)).for(this.paginateBy);
|
|
89
90
|
log.info(`Running paginateBy key ${key}, order ${order} with size ${ref.limit} and args ${ctxArgs}`);
|
|
90
91
|
return this.repo.paginateBy(key, order, ref, ...ctxArgs);
|
|
91
92
|
}
|
|
92
93
|
async findOneBy(ctx, key, value, ...args) {
|
|
93
|
-
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.findOneBy);
|
|
94
|
+
const { ctxArgs, log } = (await this.logCtx([...args, ctx], core_1.PreparedStatementKeys.FIND_ONE_BY, true)).for(this.findOneBy);
|
|
94
95
|
log.info(`Running findOneBy key ${key}, value: ${value} with args ${ctxArgs}`);
|
|
95
96
|
return this.repo.findOneBy(key, value, ...ctxArgs);
|
|
96
97
|
}
|
|
97
98
|
async statement(ctx, method, ...args) {
|
|
98
|
-
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.statement);
|
|
99
|
+
const { ctxArgs, log } = (await this.logCtx([...args, ctx], core_1.PersistenceKeys.STATEMENT, true)).for(this.statement);
|
|
99
100
|
log.info(`Running statement ${method} with args ${ctxArgs}`);
|
|
100
101
|
return this.repo.statement(method, ...ctxArgs);
|
|
101
102
|
}
|
|
@@ -108,7 +109,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
108
109
|
* @return {Promise<M>} Promise resolving to the created model
|
|
109
110
|
*/
|
|
110
111
|
async create(ctx, model, ...args) {
|
|
111
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.create);
|
|
112
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], db_decorators_1.OperationKeys.CREATE, true)).for(this.create);
|
|
112
113
|
log.info(`CONTRACT CREATE, ${ctxArgs}`);
|
|
113
114
|
if (typeof model === "string")
|
|
114
115
|
model = this.deserialize(model);
|
|
@@ -127,7 +128,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
127
128
|
* @return {Promise<M>} Promise resolving to the retrieved model
|
|
128
129
|
*/
|
|
129
130
|
async read(ctx, key, ...args) {
|
|
130
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.
|
|
131
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], db_decorators_1.OperationKeys.READ, true)).for(this.create);
|
|
131
132
|
log.info(`reading entry with pk ${key} `);
|
|
132
133
|
return this.repo.read(key, ...ctxArgs);
|
|
133
134
|
}
|
|
@@ -148,7 +149,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
148
149
|
* @return {Promise<M>} Promise resolving to the updated model
|
|
149
150
|
*/
|
|
150
151
|
async update(ctx, model, ...args) {
|
|
151
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.update);
|
|
152
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], db_decorators_1.OperationKeys.UPDATE, true)).for(this.update);
|
|
152
153
|
if (typeof model === "string")
|
|
153
154
|
model = this.deserialize(model);
|
|
154
155
|
log.info(`Updating model: ${JSON.stringify(model)}`);
|
|
@@ -166,7 +167,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
166
167
|
* @return {Promise<M>} Promise resolving to the deleted model
|
|
167
168
|
*/
|
|
168
169
|
async delete(ctx, key, ...args) {
|
|
169
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.delete);
|
|
170
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], db_decorators_1.OperationKeys.DELETE, true)).for(this.delete);
|
|
170
171
|
log.info(`deleting entry with pk ${key} `);
|
|
171
172
|
return this.repo.delete(String(key), ...ctxArgs);
|
|
172
173
|
}
|
|
@@ -179,7 +180,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
179
180
|
* @return {Promise<M[]>} Promise resolving to the deleted models
|
|
180
181
|
*/
|
|
181
182
|
async deleteAll(ctx, keys, ...args) {
|
|
182
|
-
const { ctxArgs } = await this.logCtx([...args, ctx], this.
|
|
183
|
+
const { ctxArgs } = (await this.logCtx([...args, ctx], db_decorators_1.BulkCrudOperationKeys.DELETE_ALL, true)).for(this.deleteAll);
|
|
183
184
|
if (typeof keys === "string")
|
|
184
185
|
keys = JSON.parse(keys);
|
|
185
186
|
return this.repo.deleteAll(keys, ...ctxArgs);
|
|
@@ -193,7 +194,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
193
194
|
* @return {Promise<M[]>} Promise resolving to the retrieved models
|
|
194
195
|
*/
|
|
195
196
|
async readAll(ctx, keys, ...args) {
|
|
196
|
-
const { ctxArgs } = await this.logCtx([...args, ctx], this.
|
|
197
|
+
const { ctxArgs } = (await this.logCtx([...args, ctx], db_decorators_1.BulkCrudOperationKeys.READ_ALL, true)).for(this.create);
|
|
197
198
|
if (typeof keys === "string")
|
|
198
199
|
keys = JSON.parse(keys);
|
|
199
200
|
return this.repo.readAll(keys, ...ctxArgs);
|
|
@@ -207,7 +208,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
207
208
|
* @return {Promise<M[]>} Promise resolving to the updated models
|
|
208
209
|
*/
|
|
209
210
|
async updateAll(ctx, models, ...args) {
|
|
210
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.updateAll);
|
|
211
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], db_decorators_1.BulkCrudOperationKeys.UPDATE_ALL, true)).for(this.updateAll);
|
|
211
212
|
if (typeof models === "string")
|
|
212
213
|
models = JSON.parse(models)
|
|
213
214
|
.map((m) => this.deserialize(m))
|
|
@@ -226,7 +227,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
226
227
|
* @return {Promise<M[]>} The query results as model instances.
|
|
227
228
|
*/
|
|
228
229
|
async query(context, condition, orderBy, order = core_1.OrderDirection.ASC, limit, skip, ...args) {
|
|
229
|
-
const { ctxArgs } = await this.logCtx([...args, context], this.
|
|
230
|
+
const { ctxArgs } = (await this.logCtx([...args, context], core_1.PersistenceKeys.QUERY, true)).for(this.create);
|
|
230
231
|
return this.repo.query(condition, orderBy, order, limit, skip, ...ctxArgs);
|
|
231
232
|
}
|
|
232
233
|
/**
|
|
@@ -239,7 +240,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
239
240
|
* @return {Promise<any>} Promise resolving to the query results
|
|
240
241
|
*/
|
|
241
242
|
async raw(ctx, rawInput, docsOnly, ...args) {
|
|
242
|
-
const { ctxArgs } = await this.logCtx([...args, ctx], this.raw);
|
|
243
|
+
const { ctxArgs } = (await this.logCtx([...args, ctx], "raw", true)).for(this.raw);
|
|
243
244
|
return FabricCrudContract.adapter.raw(rawInput, docsOnly, ...ctxArgs);
|
|
244
245
|
}
|
|
245
246
|
serialize(model) {
|
|
@@ -249,13 +250,13 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
249
250
|
return FabricCrudContract.serializer.deserialize(str);
|
|
250
251
|
}
|
|
251
252
|
async init(ctx) {
|
|
252
|
-
const { log } = await this.logCtx([ctx], this.init);
|
|
253
|
+
const { log, ctxArgs } = (await this.logCtx([ctx], core_1.PersistenceKeys.INITIALIZATION, true)).for(this.init);
|
|
253
254
|
log.info(`Running contract ${this.getName()} initialization...`);
|
|
254
255
|
this.initialized = true;
|
|
255
256
|
log.info(`Contract initialization completed.`);
|
|
256
257
|
}
|
|
257
258
|
async healthcheck(ctx) {
|
|
258
|
-
const { log } = await this.logCtx([ctx], this.healthcheck);
|
|
259
|
+
const { log } = (await this.logCtx([ctx], "healthcheck", true)).for(this.healthcheck);
|
|
259
260
|
log.info(`Running Healthcheck: ${this.initialized}...`);
|
|
260
261
|
return { healthcheck: this.initialized };
|
|
261
262
|
}
|
|
@@ -268,7 +269,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
268
269
|
* @return {Promise<M[]>} Promise resolving to the created models
|
|
269
270
|
*/
|
|
270
271
|
async createAll(ctx, models, ...args) {
|
|
271
|
-
const { log, ctxArgs } = await this.logCtx([...args, ctx], this.createAll);
|
|
272
|
+
const { log, ctxArgs } = (await this.logCtx([...args, ctx], db_decorators_1.BulkCrudOperationKeys.CREATE_ALL, true)).for(this.createAll);
|
|
272
273
|
if (typeof models === "string")
|
|
273
274
|
models = JSON.parse(models)
|
|
274
275
|
.map((m) => this.deserialize(m))
|
|
@@ -276,54 +277,19 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
276
277
|
log.info(`adding ${models.length} entries to the table`);
|
|
277
278
|
return this.repo.createAll(models, ...ctxArgs);
|
|
278
279
|
}
|
|
279
|
-
|
|
280
|
-
return FabricCrudContract.logCtx.bind(this)(args, method);
|
|
281
|
-
}
|
|
282
|
-
static async logCtx(args, method) {
|
|
283
|
-
if (args.length < 1)
|
|
284
|
-
throw new db_decorators_1.InternalError("No context provided");
|
|
280
|
+
logCtx(args, operation, allowCreate = false) {
|
|
285
281
|
const ctx = args.pop();
|
|
286
|
-
if (ctx
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
};
|
|
294
|
-
if (!(ctx instanceof fabric_contract_api_1.Context))
|
|
295
|
-
throw new db_decorators_1.InternalError("No valid context provided");
|
|
296
|
-
function getOp() {
|
|
297
|
-
if (typeof method === "string")
|
|
298
|
-
return method;
|
|
299
|
-
switch (method.name) {
|
|
300
|
-
case db_decorators_1.OperationKeys.CREATE:
|
|
301
|
-
case db_decorators_1.OperationKeys.READ:
|
|
302
|
-
case db_decorators_1.OperationKeys.UPDATE:
|
|
303
|
-
case db_decorators_1.OperationKeys.DELETE:
|
|
304
|
-
case db_decorators_1.BulkCrudOperationKeys.CREATE_ALL:
|
|
305
|
-
case db_decorators_1.BulkCrudOperationKeys.READ_ALL:
|
|
306
|
-
case db_decorators_1.BulkCrudOperationKeys.UPDATE_ALL:
|
|
307
|
-
case db_decorators_1.BulkCrudOperationKeys.DELETE_ALL:
|
|
308
|
-
return method.name;
|
|
309
|
-
default:
|
|
310
|
-
return method.name;
|
|
311
|
-
}
|
|
282
|
+
if (!ctx || !ctx.stub) {
|
|
283
|
+
throw new index_1.MissingContextError(`No valid context provided...`);
|
|
284
|
+
}
|
|
285
|
+
const contextualized = FabricCrudContract.adapter["logCtx"]([this.clazz, ...args], operation, allowCreate, ctx);
|
|
286
|
+
function squashArgs(ctx) {
|
|
287
|
+
ctx.ctxArgs.shift(); // removes added model to args
|
|
288
|
+
return ctx;
|
|
312
289
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
const context = await FabricCrudContract.adapter.context(getOp(), overrides, this.clazz, ctx);
|
|
317
|
-
const log = (this
|
|
318
|
-
? context.logger.for(this).for(method)
|
|
319
|
-
: context.logger.clear().for(this).for(method));
|
|
320
|
-
return {
|
|
321
|
-
ctx: context,
|
|
322
|
-
log: log,
|
|
323
|
-
stub: context.stub,
|
|
324
|
-
identity: context.identity,
|
|
325
|
-
ctxArgs: [...args, context],
|
|
326
|
-
};
|
|
290
|
+
if (!(contextualized instanceof Promise))
|
|
291
|
+
return squashArgs(contextualized);
|
|
292
|
+
return contextualized.then(squashArgs);
|
|
327
293
|
}
|
|
328
294
|
}
|
|
329
295
|
exports.FabricCrudContract = FabricCrudContract;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import "../../shared/overrides";
|
|
2
|
+
import { FabricContextualizedArgs, FabricContractAdapter } from "../ContractAdapter";
|
|
3
|
+
import { Context as Ctx, Contract } from "fabric-contract-api";
|
|
3
4
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
-
import { Condition,
|
|
5
|
+
import { Condition, DirectionLimitOffset, MaybeContextualArg, MethodOrOperation, OrderDirection, SerializedPage } from "@decaf-ts/core";
|
|
5
6
|
import { FabricContractRepository } from "../FabricContractRepository";
|
|
6
7
|
import { DeterministicSerializer } from "../../shared/DeterministicSerializer";
|
|
7
8
|
import { MangoQuery } from "@decaf-ts/for-couchdb";
|
|
@@ -9,7 +10,6 @@ import { Checkable, healthcheck } from "../../shared/interfaces/Checkable";
|
|
|
9
10
|
import { Constructor } from "@decaf-ts/decoration";
|
|
10
11
|
import { FabricContractContext } from "../ContractContext";
|
|
11
12
|
import { PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
12
|
-
import { ChaincodeStub, ClientIdentity } from "fabric-shim-api";
|
|
13
13
|
/**
|
|
14
14
|
* @description Base contract class for CRUD operations in Fabric chaincode
|
|
15
15
|
* @summary Provides standard create, read, update, and delete operations for models in Fabric chaincode
|
|
@@ -75,7 +75,7 @@ export declare abstract class FabricCrudContract<M extends Model> extends Contra
|
|
|
75
75
|
*/
|
|
76
76
|
protected constructor(name: string, clazz: Constructor<M>);
|
|
77
77
|
listBy(ctx: Ctx | FabricContractContext, key: string | keyof M, order: string, ...args: any[]): Promise<M[] | string>;
|
|
78
|
-
paginateBy(ctx: Ctx | FabricContractContext, key: string | keyof M, order: string, ref?: Omit<DirectionLimitOffset, "direction"> | string, ...args:
|
|
78
|
+
paginateBy(ctx: Ctx | FabricContractContext, key: string | keyof M, order: string, ref?: Omit<DirectionLimitOffset, "direction"> | string, ...args: any[]): Promise<SerializedPage<M> | string>;
|
|
79
79
|
findOneBy(ctx: Ctx | FabricContractContext, key: string | keyof M, value: any, ...args: any[]): Promise<M | string>;
|
|
80
80
|
statement(ctx: Ctx | FabricContractContext, method: string, ...args: any[]): Promise<any>;
|
|
81
81
|
/**
|
|
@@ -176,16 +176,7 @@ export declare abstract class FabricCrudContract<M extends Model> extends Contra
|
|
|
176
176
|
* @return {Promise<M[]>} Promise resolving to the created models
|
|
177
177
|
*/
|
|
178
178
|
createAll(ctx: Ctx | FabricContractContext, models: string | M[], ...args: any[]): Promise<string | M[]>;
|
|
179
|
-
logCtx<ARGS extends any[]>(args:
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}>;
|
|
183
|
-
protected static logCtx<ARGS extends any[]>(this: any, args: ARGS, method: string): Promise<ContextualizedArgs<FabricContractContext, ARGS> & {
|
|
184
|
-
stub: ChaincodeStub;
|
|
185
|
-
identity: ClientIdentity;
|
|
186
|
-
}>;
|
|
187
|
-
protected static logCtx<ARGS extends any[]>(this: any, args: ARGS, method: (...args: any[]) => any): Promise<ContextualizedArgs<FabricContractContext, ARGS> & {
|
|
188
|
-
stub: ChaincodeStub;
|
|
189
|
-
identity: ClientIdentity;
|
|
190
|
-
}>;
|
|
179
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD): FabricContextualizedArgs<ARGS, METHOD extends string ? true : false>;
|
|
180
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: false): FabricContextualizedArgs<ARGS, METHOD extends string ? true : false>;
|
|
181
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: true): Promise<FabricContextualizedArgs<ARGS, METHOD extends string ? true : false>>;
|
|
191
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":"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"}
|