@decaf-ts/for-fabric 0.13.4 → 0.13.7

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.
@@ -246,13 +246,21 @@ class FabricContractRepository extends core_1.Repository {
246
246
  const attrs = this.getFabricDefaultQueryAttributes();
247
247
  const { log, ctxArgs } = (await this.logCtx(args, core_1.PreparedStatementKeys.PAGE, true)).for(this.page);
248
248
  log.verbose(`paging ${decorator_validation_1.Model.tableName(this.class)} by default query attributes ${attrs.join(", ")}`);
249
+ log.debug(`default query page request value=${value} direction=${direction} ref=${JSON.stringify(ref)} attrs=${JSON.stringify(attrs)}`);
249
250
  const decoded = this.decodeDefaultQueryBookmark(ref.bookmark);
251
+ if (decoded) {
252
+ log.debug(`decoded default query bookmark attr=${decoded.attr} bookmark=${decoded.bookmark}`);
253
+ }
250
254
  if (decoded?.attr && attrs.includes(decoded.attr)) {
255
+ log.debug(`continuing default query page using attr=${decoded.attr}`);
251
256
  const page = await this.pageByDefaultAttr(decoded.attr, value, direction, { ...ref, bookmark: decoded.bookmark }, ...ctxArgs);
257
+ log.debug(`default query page completed for attr=${decoded.attr} count=${page.data.length} bookmark=${page.bookmark}`);
252
258
  return this.encodeDefaultQueryBookmark(decoded.attr, page.bookmark, page);
253
259
  }
254
260
  for (const attr of attrs) {
261
+ log.debug(`trying default query page attr=${String(attr)}`);
255
262
  const page = await this.pageByDefaultAttr(attr, value, direction, ref, ...ctxArgs);
263
+ log.debug(`default query page attr=${String(attr)} returned count=${page.data.length} bookmark=${page.bookmark}`);
256
264
  if (page.data.length > 0) {
257
265
  return this.encodeDefaultQueryBookmark(attr, page.bookmark, page);
258
266
  }
@@ -274,11 +282,19 @@ class FabricContractRepository extends core_1.Repository {
274
282
  async pageByDefaultAttr(attr, value, direction, ref, ...args) {
275
283
  const limit = ref.limit || 10;
276
284
  const bookmark = ref.bookmark;
285
+ const { log } = await this.logCtx(args, core_1.PreparedStatementKeys.PAGE, true);
286
+ log.debug(`pageByDefaultAttr attr=${String(attr)} value=${value} direction=${direction} limit=${limit} bookmark=${bookmark}`);
277
287
  const paginator = await this.select()
278
288
  .where(this.attr(attr).startsWith(value))
279
289
  .orderBy([attr, direction])
280
290
  .paginate(limit, bookmark, ...args);
281
291
  const paged = await paginator.page(ref.offset || 1, bookmark, ...args);
292
+ const pagedCount = Array.isArray(paged?.data)
293
+ ? paged.data.length
294
+ : Array.isArray(paged)
295
+ ? paged.length
296
+ : undefined;
297
+ log.debug(`pageByDefaultAttr attr=${String(attr)} paged count=${String(pagedCount)} paginatorBookmark=${paginator["_bookmark"]}`);
282
298
  return paginator.serialize(paged);
283
299
  }
284
300
  encodeDefaultQueryBookmark(attr, bookmark, page) {
@@ -1 +1 @@
1
- {"version":3,"file":"FabricContractRepository.js","sourceRoot":"","sources":["FabricContractRepository.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FabricContractRepository.js","sourceRoot":"","sources":["FabricContractRepository.js"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ const for_couchdb_1 = require("@decaf-ts/for-couchdb");
5
5
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
6
6
  const for_couchdb_2 = require("@decaf-ts/for-couchdb");
7
7
  const core_1 = require("@decaf-ts/core");
8
- const db_decorators_1 = require("@decaf-ts/db-decorators");
9
8
  const decorators_js_1 = require("./../shared/decorators.cjs");
10
9
  /**
11
10
  * @description Statement wrapper for executing Mango queries within Fabric contracts
@@ -39,10 +38,8 @@ class FabricStatement extends for_couchdb_2.CouchDBStatement {
39
38
  }
40
39
  }
41
40
  async executionPrefix(method, ...args) {
42
- const newArgs = args.filter(Boolean);
43
- if (args.length !== newArgs.length)
44
- throw new db_decorators_1.InternalError(`Received an undefined in the paginator for ${method}: ${args}`);
45
- return super.executionPrefix(method, ...args);
41
+ const newArgs = args.filter((arg) => arg !== undefined && arg !== null);
42
+ return super.executionPrefix(method, ...newArgs);
46
43
  }
47
44
  build() {
48
45
  const log = this.log.for(this.build);
@@ -137,6 +134,7 @@ class FabricStatement extends for_couchdb_2.CouchDBStatement {
137
134
  if (this.offsetSelector)
138
135
  query.skip = this.offsetSelector;
139
136
  this.attachDefaultQueryIndex(query);
137
+ log.debug(`built mango query ${JSON.stringify(query)}`);
140
138
  return query;
141
139
  }
142
140
  async execute(...args) {
@@ -1 +1 @@
1
- {"version":3,"file":"FabricContractStatement.js","sourceRoot":"","sources":["FabricContractStatement.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FabricContractStatement.js","sourceRoot":"","sources":["FabricContractStatement.js"],"names":[],"mappings":"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"}
@@ -2,21 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PACKAGE_NAME = exports.FULL_VERSION = exports.COMMIT = exports.VERSION = void 0;
4
4
  const decoration_1 = require("@decaf-ts/decoration");
5
- exports.VERSION = "0.13.3";
5
+ exports.VERSION = "0.13.6";
6
6
  /**
7
7
  * @description Represents the current commit hash of the module build.
8
8
  * @summary Stores the current git commit hash for the package. The build replaces
9
9
  * the placeholder with the actual commit hash at publish time.
10
10
  * @const COMMIT
11
11
  */
12
- exports.COMMIT = "169a389";
12
+ exports.COMMIT = "fb280d1";
13
13
  /**
14
14
  * @description Represents the full version string of the module.
15
15
  * @summary Stores the semver version and commit hash for the package.
16
16
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
17
17
  * @const FULL_VERSION
18
18
  */
19
- exports.FULL_VERSION = "0.13.3-169a389";
19
+ exports.FULL_VERSION = "0.13.6-fb280d1";
20
20
  exports.PACKAGE_NAME = "@decaf-ts/for-fabric";
21
21
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
22
22
  //# sourceMappingURL=version.js.map
@@ -1,5 +1,6 @@
1
1
  import { CouchDBAdapter, CouchDBKeys, } from "@decaf-ts/for-couchdb";
2
2
  import { Model, ValidationKeys } from "@decaf-ts/decorator-validation";
3
+ import { createHash } from "crypto";
3
4
  import { FabricContractContext } from "./ContractContext.js";
4
5
  import { BadRequestError, BulkCrudOperationKeys, ConflictError, InternalError, NotFoundError, onCreate, onCreateUpdate, SerializationError, } from "@decaf-ts/db-decorators";
5
6
  import { Object as FabricObject, Property, Property as FabricProperty, } from "fabric-contract-api";
@@ -89,6 +90,32 @@ export async function createdByOnFabricCreateUpdate(context, data, key, model) {
89
90
  */
90
91
  export class FabricContractAdapter extends CouchDBAdapter {
91
92
  static { this.PRIVATE_BOOKMARK_PREFIX = "__dcf_pvtbm__"; }
93
+ static stableStringify(value) {
94
+ if (value === null || typeof value !== "object") {
95
+ return JSON.stringify(value);
96
+ }
97
+ if (Array.isArray(value)) {
98
+ return `[${value
99
+ .map((v) => FabricContractAdapter.stableStringify(v))
100
+ .join(",")}]`;
101
+ }
102
+ const obj = value;
103
+ return `{${Object.keys(obj)
104
+ .sort()
105
+ .map((key) => `${JSON.stringify(key)}:${FabricContractAdapter.stableStringify(obj[key])}`)
106
+ .join(",")}}`;
107
+ }
108
+ static privateQueryHash(query) {
109
+ const relevant = {
110
+ selector: query.selector || {},
111
+ sort: query.sort || [],
112
+ fields: query.fields || undefined,
113
+ use_index: query.use_index || undefined,
114
+ };
115
+ return createHash("sha256")
116
+ .update(FabricContractAdapter.stableStringify(relevant))
117
+ .digest("base64url");
118
+ }
92
119
  static parseSyntheticPrivateBookmark(bookmark) {
93
120
  if (typeof bookmark !== "string")
94
121
  return undefined;
@@ -101,14 +128,18 @@ export class FabricContractAdapter extends CouchDBAdapter {
101
128
  typeof parsed !== "object" ||
102
129
  typeof parsed.sortField !== "string" ||
103
130
  typeof parsed.direction !== "string" ||
104
- typeof parsed.lastId !== "string") {
131
+ typeof parsed.idField !== "string" ||
132
+ typeof parsed.lastId !== "string"
133
+ || typeof parsed.queryHash !== "string") {
105
134
  return undefined;
106
135
  }
107
136
  return {
108
137
  sortField: parsed.sortField,
109
138
  direction: parsed.direction === "desc" ? "desc" : "asc",
139
+ idField: parsed.idField,
110
140
  lastValue: parsed.lastValue,
111
141
  lastId: parsed.lastId,
142
+ queryHash: parsed.queryHash,
112
143
  };
113
144
  }
114
145
  catch {
@@ -119,35 +150,87 @@ export class FabricContractAdapter extends CouchDBAdapter {
119
150
  return `${FabricContractAdapter.PRIVATE_BOOKMARK_PREFIX}${Buffer.from(JSON.stringify(cursor)).toString("base64url")}`;
120
151
  }
121
152
  static buildPrivateCursorSelector(selector, sortField, direction, cursor) {
122
- const continuation = direction === "desc"
123
- ? {
124
- $or: [
125
- { [sortField]: { $lt: cursor.lastValue } },
126
- {
127
- $and: [
128
- { [sortField]: { $eq: cursor.lastValue } },
129
- { id: { $lt: cursor.lastId } },
130
- ],
131
- },
132
- ],
133
- }
134
- : {
135
- $or: [
136
- { [sortField]: { $gt: cursor.lastValue } },
137
- {
138
- $and: [
139
- { [sortField]: { $eq: cursor.lastValue } },
140
- { id: { $gt: cursor.lastId } },
141
- ],
142
- },
143
- ],
153
+ const cmp = direction === "desc" ? "$lt" : "$gt";
154
+ if (cursor.idField === sortField) {
155
+ const continuation = {
156
+ [sortField]: {
157
+ [cmp]: cursor.lastValue,
158
+ },
159
+ };
160
+ if (!Object.keys(selector || {}).length)
161
+ return continuation;
162
+ return {
163
+ $and: [selector, continuation],
144
164
  };
165
+ }
166
+ const continuation = {
167
+ $or: [
168
+ {
169
+ [sortField]: {
170
+ [cmp]: cursor.lastValue,
171
+ },
172
+ },
173
+ {
174
+ $and: [
175
+ {
176
+ [sortField]: {
177
+ $eq: cursor.lastValue,
178
+ },
179
+ },
180
+ {
181
+ [cursor.idField]: {
182
+ [cmp]: cursor.lastId,
183
+ },
184
+ },
185
+ ],
186
+ },
187
+ ],
188
+ };
145
189
  if (!Object.keys(selector || {}).length)
146
190
  return continuation;
147
191
  return {
148
192
  $and: [selector, continuation],
149
193
  };
150
194
  }
195
+ static normalizePrivateSort(query, idField = "id") {
196
+ if (!Array.isArray(query.sort) || query.sort.length === 0) {
197
+ throw new PagingError("Private collection pagination requires an explicit Mango sort");
198
+ }
199
+ const firstSort = Object.entries(query.sort[0] || {})[0];
200
+ if (!firstSort || typeof firstSort[0] !== "string") {
201
+ throw new PagingError("Private collection pagination requires a valid first sort field");
202
+ }
203
+ const sortField = firstSort[0];
204
+ const direction = String(firstSort[1] || "asc").toLowerCase();
205
+ if (direction !== "asc" && direction !== "desc") {
206
+ throw new PagingError(`Unsupported private pagination sort direction: ${direction}`);
207
+ }
208
+ const hasIdTieBreaker = idField === sortField ||
209
+ query.sort.some((entry) => {
210
+ const [field, dir] = Object.entries(entry || {})[0] || [];
211
+ return (field === idField && String(dir || "").toLowerCase() === direction);
212
+ });
213
+ if (!hasIdTieBreaker && idField !== sortField) {
214
+ query.sort = [...query.sort, { [idField]: direction }];
215
+ }
216
+ return {
217
+ sortField,
218
+ direction: direction,
219
+ idField,
220
+ };
221
+ }
222
+ static parsePrivateResultValue(value) {
223
+ try {
224
+ const parsed = JSON.parse(value.toString("utf8"));
225
+ if (!parsed || typeof parsed !== "object") {
226
+ throw new Error("Private query result is not an object");
227
+ }
228
+ return parsed;
229
+ }
230
+ catch (e) {
231
+ throw new SerializationError(`Failed to parse private query result while building bookmark: ${e}`);
232
+ }
233
+ }
151
234
  getClient() {
152
235
  throw new UnsupportedError("Client is not supported in Fabric contracts");
153
236
  }
@@ -541,29 +624,34 @@ export class FabricContractAdapter extends CouchDBAdapter {
541
624
  case "queryResultPaginated": {
542
625
  const [stub, rawInput, limit, skip, bookmark, ...args] = argsList;
543
626
  const { log } = thisArg["logCtx"](args, prop);
627
+ if (skip !== undefined && skip !== null && Number(skip) > 0) {
628
+ throw new PagingError("Private collection pagination does not support skip/offset pagination. Use the returned bookmark instead.");
629
+ }
544
630
  const pageSize = Math.max(1, Number(limit) || 250);
545
631
  const query = { ...rawInput };
546
- const sortEntry = Array.isArray(query.sort)
547
- ? Object.entries(query.sort[0] || {})[0]
548
- : undefined;
549
- const sortField = sortEntry?.[0] || "id";
550
- const sortDirection = (sortEntry?.[1] || "asc").toLowerCase();
632
+ const queryPkField = typeof query["__pkField"] === "string" &&
633
+ query["__pkField"].trim().length
634
+ ? String(query["__pkField"])
635
+ : "id";
636
+ delete query["__pkField"];
637
+ const { sortField, direction: sortDirection, idField, } = FabricContractAdapter.normalizePrivateSort(query, queryPkField);
551
638
  const syntheticCursor = FabricContractAdapter.parseSyntheticPrivateBookmark(bookmark);
552
- const hasOpaqueBookmark = bookmark !== undefined &&
639
+ if (bookmark !== undefined &&
553
640
  bookmark !== null &&
554
641
  bookmark !== "" &&
555
- typeof bookmark === "string" &&
556
- !bookmark.startsWith(FabricContractAdapter.PRIVATE_BOOKMARK_PREFIX);
557
- // Private rich queries cannot be trusted with offset-based pagination.
558
- // Synthetic mode advances using a cursor on the sorted field plus the document id.
559
- query.limit = hasOpaqueBookmark ? pageSize : pageSize + 1;
642
+ !syntheticCursor) {
643
+ throw new PagingError("Private collection pagination only supports adapter-generated synthetic bookmarks");
644
+ }
645
+ log.debug(`Private paginated query input collection=${collection} limit=${limit} skip=${skip} bookmark=${bookmark} sortField=${sortField} direction=${sortDirection} synthetic=${Boolean(syntheticCursor)}`);
560
646
  delete query.skip;
561
647
  delete query.bookmark;
648
+ query.limit = pageSize + 1;
649
+ const queryHash = FabricContractAdapter.privateQueryHash(query);
562
650
  if (syntheticCursor) {
563
- query.selector = FabricContractAdapter.buildPrivateCursorSelector(query.selector || {}, syntheticCursor.sortField || sortField, syntheticCursor.direction || sortDirection, syntheticCursor);
564
- }
565
- else if (hasOpaqueBookmark) {
566
- query.bookmark = bookmark.toString();
651
+ if (syntheticCursor.queryHash !== queryHash) {
652
+ throw new PagingError("Private collection bookmark does not match the current query");
653
+ }
654
+ query.selector = FabricContractAdapter.buildPrivateCursorSelector(query.selector || {}, syntheticCursor.sortField, syntheticCursor.direction, syntheticCursor);
567
655
  }
568
656
  log.debug(`Querying collection ${collection} for ${JSON.stringify(query)}`);
569
657
  const response = await stub.getPrivateDataQueryResult(collection, JSON.stringify(query));
@@ -572,6 +660,7 @@ export class FabricContractAdapter extends CouchDBAdapter {
572
660
  const responseMetadata = response.metadata ||
573
661
  iterator.metadata ||
574
662
  {};
663
+ log.debug(`Private paginated response collection=${collection} metadata=${JSON.stringify(responseMetadata)}`);
575
664
  log.verbose(`iterator from collection ${collection} received`);
576
665
  const paged = [];
577
666
  let hasMore = false;
@@ -600,6 +689,29 @@ export class FabricContractAdapter extends CouchDBAdapter {
600
689
  finally {
601
690
  await iterator.close();
602
691
  }
692
+ log.debug(`Private paginated collection=${collection} produced ${paged.length} rows hasMore=${hasMore}`);
693
+ let nextBookmark = "";
694
+ if (hasMore && paged.length) {
695
+ const last = paged[paged.length - 1];
696
+ const lastDoc = FabricContractAdapter.parsePrivateResultValue(last.value);
697
+ if (!(sortField in lastDoc)) {
698
+ throw new PagingError(`Cannot build private pagination bookmark: sorted field "${sortField}" is missing from the last result`);
699
+ }
700
+ const lastIdValue = lastDoc[idField];
701
+ if (lastIdValue === undefined ||
702
+ lastIdValue === null) {
703
+ throw new PagingError(`Cannot build private pagination bookmark: id field "${idField}" is missing from the last result`);
704
+ }
705
+ nextBookmark =
706
+ FabricContractAdapter.buildSyntheticPrivateBookmark({
707
+ sortField,
708
+ direction: sortDirection,
709
+ idField,
710
+ lastValue: lastDoc[sortField],
711
+ lastId: String(lastIdValue),
712
+ queryHash,
713
+ });
714
+ }
603
715
  // Wrap the page in an async iterator for resultIterator()
604
716
  let idx = 0;
605
717
  const arrayIterator = {
@@ -615,32 +727,7 @@ export class FabricContractAdapter extends CouchDBAdapter {
615
727
  iterator: arrayIterator,
616
728
  metadata: {
617
729
  fetchedRecordsCount: paged.length,
618
- bookmark: typeof responseMetadata.bookmark === "string" &&
619
- responseMetadata.bookmark
620
- ? responseMetadata.bookmark
621
- : hasMore && paged.length
622
- ? FabricContractAdapter.buildSyntheticPrivateBookmark({
623
- sortField,
624
- direction: sortDirection,
625
- lastValue: (() => {
626
- try {
627
- return JSON.parse(paged[paged.length - 1].value.toString("utf8"))?.[sortField];
628
- }
629
- catch {
630
- return undefined;
631
- }
632
- })(),
633
- lastId: (() => {
634
- try {
635
- const lastDoc = JSON.parse(paged[paged.length - 1].value.toString("utf8"));
636
- return String(lastDoc?.id || paged[paged.length - 1].key);
637
- }
638
- catch {
639
- return String(paged[paged.length - 1].key);
640
- }
641
- })(),
642
- })
643
- : "",
730
+ bookmark: nextBookmark,
644
731
  },
645
732
  };
646
733
  }
@@ -843,49 +930,54 @@ export class FabricContractAdapter extends CouchDBAdapter {
843
930
  const { log, ctx, ctxArgs } = this.logCtx(args, this.raw);
844
931
  const enableSegregates = !args.length || args[0] !== true;
845
932
  const fullySegregated = enableSegregates && ctx.isFullySegregated;
846
- const { skip, limit } = rawInput;
847
- const bookmark = rawInput["bookmark"];
933
+ const originalInput = { ...rawInput };
934
+ const { skip, limit } = originalInput;
935
+ const bookmark = originalInput["bookmark"];
936
+ const pkField = typeof originalInput["__pkField"] === "string" &&
937
+ originalInput["__pkField"].trim().length
938
+ ? String(originalInput["__pkField"])
939
+ : "id";
848
940
  const paginationActive = Boolean(limit || skip || bookmark);
941
+ const queryInput = { ...originalInput };
942
+ delete queryInput["limit"];
943
+ delete queryInput["skip"];
944
+ delete queryInput["bookmark"];
849
945
  let resp = { docs: [], bookmark: undefined };
946
+ log.debug(`raw query start fullySegregated=${fullySegregated} enableSegregates=${enableSegregates} paginationActive=${paginationActive} limit=${limit} skip=${skip} bookmark=${bookmark} pkField=${pkField} query=${JSON.stringify(originalInput)}`);
850
947
  // Query public state only when the model is NOT fully segregated
851
948
  if (!fullySegregated) {
852
949
  let iterator;
853
- if (limit || skip) {
854
- delete rawInput["limit"];
855
- delete rawInput["skip"];
856
- log.debug(`Retrieving public paginated iterator: limit: ${limit}/ skip: ${skip}`);
857
- const response = (await this.queryResultPaginated(ctx.stub, rawInput, limit || Number.MAX_VALUE, skip?.toString(), bookmark, ...[ctx]));
950
+ if (paginationActive) {
951
+ log.debug(`Retrieving public paginated iterator: limit: ${limit}/ skip: ${skip} bookmark=${bookmark}`);
952
+ const response = (await this.queryResultPaginated(ctx.stub, { ...queryInput }, limit || 250, skip?.toString(), bookmark, ...[ctx]));
858
953
  resp.bookmark = response.metadata.bookmark;
859
954
  iterator = response.iterator;
860
955
  log.debug(`Retrieved public paging iterator`);
956
+ log.debug(`public paginated response bookmark=${resp.bookmark} query=${JSON.stringify(queryInput)}`);
861
957
  }
862
958
  else {
863
959
  log.debug("Retrieving listing public iterator");
864
- iterator = (await this.queryResult(ctx.stub, rawInput, ctx));
960
+ iterator = (await this.queryResult(ctx.stub, { ...queryInput }, ctx));
865
961
  }
866
962
  log.debug(`Retrieved public listing iterator`);
867
963
  resp.docs = (await this.resultIterator(log, iterator));
868
964
  log.debug(`returning ${Array.isArray(resp.docs) ? resp.docs.length : 1} results`);
869
965
  }
870
966
  else {
871
- // For fully segregated models, strip pagination fields from rawInput
872
- // so the segregated query below can re-apply them cleanly
873
- if (limit || skip) {
874
- delete rawInput["limit"];
875
- delete rawInput["skip"];
876
- }
877
967
  log.debug("Skipping public state query (fully segregated model)");
878
968
  }
879
969
  const collections = enableSegregates ? ctx.getReadCollections() : undefined;
970
+ log.debug(`read collections for raw query: ${JSON.stringify(collections || [])}`);
880
971
  if (collections && collections.length) {
881
972
  // Build a fresh input with limit/skip/bookmark restored
882
- const segregatedInput = { ...rawInput };
973
+ const segregatedInput = { ...queryInput };
883
974
  if (limit)
884
975
  segregatedInput.limit = limit;
885
976
  if (skip)
886
977
  segregatedInput.skip = skip;
887
978
  if (bookmark)
888
979
  segregatedInput["bookmark"] = bookmark;
980
+ log.debug(`segregated input prepared: ${JSON.stringify(segregatedInput)}`);
889
981
  const segregated = [];
890
982
  for (const collection of collections) {
891
983
  log.debug(`Querying from ${collection}`);
@@ -902,10 +994,13 @@ export class FabricContractAdapter extends CouchDBAdapter {
902
994
  return curr;
903
995
  return acc;
904
996
  }, resp);
997
+ log.debug(`segregated query resolved docs=${Array.isArray(resp.docs) ? resp.docs.length : 0} bookmark=${resp.bookmark}`);
905
998
  }
906
999
  if (docsOnly) {
1000
+ log.debug(`raw query returning docsOnly=${docsOnly} docs=${Array.isArray(resp.docs) ? resp.docs.length : 0}`);
907
1001
  return resp.docs;
908
1002
  }
1003
+ log.debug(`raw query returning docs/bookmark docs=${Array.isArray(resp.docs) ? resp.docs.length : 0} bookmark=${resp.bookmark}`);
909
1004
  return resp;
910
1005
  }
911
1006
  async view(