@decaf-ts/for-fabric 0.1.74 → 0.1.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/for-fabric.cjs +1 -1
  2. package/dist/for-fabric.cjs.map +1 -1
  3. package/dist/for-fabric.js +1 -1
  4. package/dist/for-fabric.js.map +1 -1
  5. package/lib/cli-module.cjs +43 -13
  6. package/lib/cli-module.js.map +1 -1
  7. package/lib/cli-utils.cjs +10 -4
  8. package/lib/cli-utils.d.ts +2 -2
  9. package/lib/cli-utils.js.map +1 -1
  10. package/lib/client/FabricClientAdapter.cjs +36 -1
  11. package/lib/client/FabricClientAdapter.d.ts +12 -1
  12. package/lib/client/FabricClientAdapter.js.map +1 -1
  13. package/lib/client/FabricClientRepository.cjs +36 -0
  14. package/lib/client/FabricClientRepository.d.ts +7 -0
  15. package/lib/client/FabricClientRepository.js.map +1 -1
  16. package/lib/client/FabricClientStatement.cjs +321 -18
  17. package/lib/client/FabricClientStatement.d.ts +52 -1
  18. package/lib/client/FabricClientStatement.js.map +1 -1
  19. package/lib/client/collections/generation.cjs +7 -0
  20. package/lib/client/collections/generation.d.ts +2 -0
  21. package/lib/client/collections/generation.js.map +1 -1
  22. package/lib/client/fabric-fs.d.ts +1 -1
  23. package/lib/client/indexes/generation.cjs +37 -79
  24. package/lib/client/indexes/generation.d.ts +5 -12
  25. package/lib/client/indexes/generation.js.map +1 -1
  26. package/lib/client/utils.d.ts +1 -1
  27. package/lib/contract/Product.cjs +1 -1
  28. package/lib/contract/Product.js.map +1 -1
  29. package/lib/contract/SegregatedPrivateDocumentContract.cjs +30 -0
  30. package/lib/contract/SegregatedPrivateDocumentContract.d.ts +5 -0
  31. package/lib/contract/SegregatedPrivateDocumentContract.js.map +1 -0
  32. package/lib/contract/SegregatedSharedDocumentContract.cjs +30 -0
  33. package/lib/contract/SegregatedSharedDocumentContract.d.ts +5 -0
  34. package/lib/contract/SegregatedSharedDocumentContract.js.map +1 -0
  35. package/lib/contract/User.cjs +1 -1
  36. package/lib/contract/User.js.map +1 -1
  37. package/lib/contract/index.cjs +4 -0
  38. package/lib/contract/index.js.map +1 -1
  39. package/lib/contract/models/Market.cjs +1 -1
  40. package/lib/contract/models/Market.js.map +1 -1
  41. package/lib/contract/models/OtherProductShared.cjs +2 -2
  42. package/lib/contract/models/OtherProductShared.js.map +1 -1
  43. package/lib/contract/models/SegregatedDocument.cjs +94 -0
  44. package/lib/contract/models/SegregatedDocument.d.ts +18 -0
  45. package/lib/contract/models/SegregatedDocument.js.map +1 -0
  46. package/lib/contracts/ContractAdapter.cjs +177 -25
  47. package/lib/contracts/ContractAdapter.d.ts +8 -1
  48. package/lib/contracts/ContractAdapter.js.map +1 -1
  49. package/lib/contracts/ContractContext.cjs +29 -0
  50. package/lib/contracts/ContractContext.d.ts +16 -0
  51. package/lib/contracts/ContractContext.js.map +1 -1
  52. package/lib/contracts/FabricContractSequence.cjs +44 -0
  53. package/lib/contracts/FabricContractSequence.d.ts +10 -0
  54. package/lib/contracts/FabricContractSequence.js.map +1 -1
  55. package/lib/contracts/FabricContractStatement.cjs +1 -86
  56. package/lib/contracts/FabricContractStatement.d.ts +2 -4
  57. package/lib/contracts/FabricContractStatement.js.map +1 -1
  58. package/lib/contracts/crud/crud-contract.cjs +35 -0
  59. package/lib/contracts/crud/crud-contract.d.ts +7 -0
  60. package/lib/contracts/crud/crud-contract.js.map +1 -1
  61. package/lib/contracts/crud/serialized-crud-contract.cjs +63 -0
  62. package/lib/contracts/crud/serialized-crud-contract.d.ts +7 -0
  63. package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
  64. package/lib/contracts/types.d.ts +2 -1
  65. package/lib/esm/cli-module.js +45 -15
  66. package/lib/esm/cli-module.js.map +1 -1
  67. package/lib/esm/cli-utils.d.ts +2 -2
  68. package/lib/esm/cli-utils.js +10 -4
  69. package/lib/esm/cli-utils.js.map +1 -1
  70. package/lib/esm/client/FabricClientAdapter.d.ts +12 -1
  71. package/lib/esm/client/FabricClientAdapter.js +36 -1
  72. package/lib/esm/client/FabricClientAdapter.js.map +1 -1
  73. package/lib/esm/client/FabricClientRepository.d.ts +7 -0
  74. package/lib/esm/client/FabricClientRepository.js +36 -0
  75. package/lib/esm/client/FabricClientRepository.js.map +1 -1
  76. package/lib/esm/client/FabricClientStatement.d.ts +52 -1
  77. package/lib/esm/client/FabricClientStatement.js +323 -20
  78. package/lib/esm/client/FabricClientStatement.js.map +1 -1
  79. package/lib/esm/client/collections/generation.d.ts +2 -0
  80. package/lib/esm/client/collections/generation.js +6 -0
  81. package/lib/esm/client/collections/generation.js.map +1 -1
  82. package/lib/esm/client/fabric-fs.d.ts +1 -1
  83. package/lib/esm/client/indexes/generation.d.ts +5 -12
  84. package/lib/esm/client/indexes/generation.js +36 -80
  85. package/lib/esm/client/indexes/generation.js.map +1 -1
  86. package/lib/esm/client/utils.d.ts +1 -1
  87. package/lib/esm/contract/Product.js +1 -1
  88. package/lib/esm/contract/Product.js.map +1 -1
  89. package/lib/esm/contract/SegregatedPrivateDocumentContract.d.ts +5 -0
  90. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +27 -0
  91. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
  92. package/lib/esm/contract/SegregatedSharedDocumentContract.d.ts +5 -0
  93. package/lib/esm/contract/SegregatedSharedDocumentContract.js +27 -0
  94. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
  95. package/lib/esm/contract/User.js +1 -1
  96. package/lib/esm/contract/User.js.map +1 -1
  97. package/lib/esm/contract/index.js +4 -0
  98. package/lib/esm/contract/index.js.map +1 -1
  99. package/lib/esm/contract/models/Market.js +1 -1
  100. package/lib/esm/contract/models/Market.js.map +1 -1
  101. package/lib/esm/contract/models/OtherProductShared.js +4 -4
  102. package/lib/esm/contract/models/OtherProductShared.js.map +1 -1
  103. package/lib/esm/contract/models/SegregatedDocument.d.ts +18 -0
  104. package/lib/esm/contract/models/SegregatedDocument.js +91 -0
  105. package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
  106. package/lib/esm/contracts/ContractAdapter.d.ts +8 -1
  107. package/lib/esm/contracts/ContractAdapter.js +178 -26
  108. package/lib/esm/contracts/ContractAdapter.js.map +1 -1
  109. package/lib/esm/contracts/ContractContext.d.ts +16 -0
  110. package/lib/esm/contracts/ContractContext.js +29 -0
  111. package/lib/esm/contracts/ContractContext.js.map +1 -1
  112. package/lib/esm/contracts/FabricContractSequence.d.ts +10 -0
  113. package/lib/esm/contracts/FabricContractSequence.js +44 -0
  114. package/lib/esm/contracts/FabricContractSequence.js.map +1 -1
  115. package/lib/esm/contracts/FabricContractStatement.d.ts +2 -4
  116. package/lib/esm/contracts/FabricContractStatement.js +1 -86
  117. package/lib/esm/contracts/FabricContractStatement.js.map +1 -1
  118. package/lib/esm/contracts/crud/crud-contract.d.ts +7 -0
  119. package/lib/esm/contracts/crud/crud-contract.js +35 -0
  120. package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
  121. package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +7 -0
  122. package/lib/esm/contracts/crud/serialized-crud-contract.js +63 -0
  123. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
  124. package/lib/esm/contracts/types.d.ts +2 -1
  125. package/lib/esm/shared/decorators.d.ts +23 -4
  126. package/lib/esm/shared/decorators.js +147 -53
  127. package/lib/esm/shared/decorators.js.map +1 -1
  128. package/lib/esm/shared/overrides/overrides.js +20 -13
  129. package/lib/esm/shared/overrides/overrides.js.map +1 -1
  130. package/lib/esm/shared/types.d.ts +2 -0
  131. package/lib/esm/version.d.ts +1 -1
  132. package/lib/esm/version.js +1 -1
  133. package/lib/shared/decorators.cjs +149 -53
  134. package/lib/shared/decorators.d.ts +23 -4
  135. package/lib/shared/decorators.js.map +1 -1
  136. package/lib/shared/overrides/overrides.cjs +20 -13
  137. package/lib/shared/overrides/overrides.js.map +1 -1
  138. package/lib/shared/types.d.ts +2 -0
  139. package/lib/version.cjs +1 -1
  140. package/lib/version.d.ts +1 -1
  141. package/package.json +3 -5
@@ -1,6 +1,9 @@
1
- import { PersistenceKeys, PreparedStatementKeys, QueryClause, Repository, Statement, UnsupportedError, } from "@decaf-ts/core";
1
+ import { Condition, GroupOperator, Operator, PersistenceKeys, PreparedStatementKeys, QueryClause, QueryError, Repository, Sequence, Statement, } from "@decaf-ts/core";
2
+ import { Model } from "@decaf-ts/decorator-validation";
3
+ import { CouchDBKeys, CouchDBOperator, CouchDBGroupOperator, CouchDBQueryLimit, translateOperators, generateDesignDocName, generateViewName, findViewMetadata, } from "@decaf-ts/for-couchdb";
2
4
  import { toCamelCase } from "@decaf-ts/logging";
3
- import { InternalError } from "@decaf-ts/db-decorators";
5
+ import { DBKeys, InternalError } from "@decaf-ts/db-decorators";
6
+ import { Metadata } from "@decaf-ts/decoration";
4
7
  export class FabricClientStatement extends Statement {
5
8
  constructor(adapter, overrides) {
6
9
  super(adapter, overrides);
@@ -60,30 +63,330 @@ export class FabricClientStatement extends Statement {
60
63
  }
61
64
  if (this.selectSelector)
62
65
  method.push(QueryClause.SELECT, this.selectSelector.join(` ${QueryClause.AND.toLowerCase()} `));
63
- if (this.orderBySelector) {
64
- method.push(QueryClause.ORDER_BY, this.orderBySelector[0]);
65
- args.push(this.orderBySelector[1]);
66
- }
67
- // if (this.groupBySelector)
68
- // method.push(QueryClause.GROUP_BY, this.groupBySelector as string);
69
- // if (this.limitSelector) params.limit = this.limitSelector;
70
- // if (this.offsetSelector) {
71
- // params.skip = this.offsetSelector;
72
- // }
66
+ if (this.orderBySelectors?.length) {
67
+ method.push(QueryClause.ORDER_BY, this.orderBySelectors[0][0]);
68
+ args.push(this.orderBySelectors[0][1]);
69
+ }
73
70
  prepared.method = toCamelCase(method.join(" "));
74
71
  prepared.params = params;
75
72
  this.prepared = prepared;
76
73
  return this;
77
74
  }
75
+ /**
76
+ * @description Processes a record from CouchDB/Fabric
77
+ * @summary Extracts the ID from a CouchDB document and reverts it to a model instance
78
+ */
79
+ processRecord(r, pkAttr, sequenceType, ctx) {
80
+ if (r[CouchDBKeys.ID]) {
81
+ const [, ...keyArgs] = r[CouchDBKeys.ID].split(CouchDBKeys.SEPARATOR);
82
+ const id = keyArgs.join("_");
83
+ return this.adapter.revert(r, this.fromSelector, Sequence.parseValue(sequenceType, id), undefined, ctx);
84
+ }
85
+ return r;
86
+ }
87
+ /**
88
+ * @description Executes a raw Mango query
89
+ * @summary Sends a raw Mango query to Fabric and processes the results
90
+ */
91
+ async raw(rawInput, ...args) {
92
+ const { ctx } = this.logCtx(args, this.raw);
93
+ const aggregator = rawInput?.aggregateInfo;
94
+ if (rawInput?.aggregate && aggregator) {
95
+ return this.executeAggregate(aggregator, ctx);
96
+ }
97
+ const results = await this.adapter.raw(rawInput, true, this.fromSelector, ctx);
98
+ const pkAttr = Model.pk(this.fromSelector);
99
+ const type = Metadata.get(this.fromSelector, Metadata.key(DBKeys.ID, pkAttr))?.type;
100
+ if (!this.selectSelector)
101
+ return results.map((r) => this.processRecord(r, pkAttr, type, ctx));
102
+ return results;
103
+ }
104
+ /**
105
+ * @description Builds a CouchDB Mango query from the statement
106
+ * @summary Converts the statement's conditions, selectors, and options into a CouchDB Mango query
107
+ */
78
108
  build() {
79
- throw new UnsupportedError(`This method is only called is prepared statements are not used. If so, a dedicated implementation for the native queries used is required`);
80
- }
81
- parseCondition(
82
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
83
- condition,
84
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
85
- ...args) {
86
- throw new UnsupportedError(`This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required`);
109
+ const log = this.log.for(this.build);
110
+ const aggregateQuery = this.buildAggregateQuery();
111
+ if (aggregateQuery)
112
+ return aggregateQuery;
113
+ const selectors = {};
114
+ selectors[CouchDBKeys.TABLE] = {};
115
+ selectors[CouchDBKeys.TABLE] = Model.tableName(this.fromSelector);
116
+ const query = { selector: selectors };
117
+ if (this.selectSelector)
118
+ query.fields = this.selectSelector;
119
+ if (this.whereCondition) {
120
+ const condition = this.parseCondition(Condition.and(this.whereCondition, Condition.attribute(CouchDBKeys.TABLE).eq(query.selector[CouchDBKeys.TABLE]))).selector;
121
+ const selectorKeys = Object.keys(condition);
122
+ if (selectorKeys.length === 1 &&
123
+ Object.values(CouchDBGroupOperator).indexOf(selectorKeys[0]) !== -1)
124
+ switch (selectorKeys[0]) {
125
+ case CouchDBGroupOperator.AND:
126
+ condition[CouchDBGroupOperator.AND] = [
127
+ ...Object.values(condition[CouchDBGroupOperator.AND]).reduce((accum, val) => {
128
+ const keys = Object.keys(val);
129
+ if (keys.length !== 1)
130
+ throw new Error("Too many keys in query selector. should be one");
131
+ const k = keys[0];
132
+ if (k === CouchDBGroupOperator.AND)
133
+ accum.push(...val[k]);
134
+ else
135
+ accum.push(val);
136
+ return accum;
137
+ }, []),
138
+ ];
139
+ query.selector = condition;
140
+ break;
141
+ case CouchDBGroupOperator.OR: {
142
+ const s = {};
143
+ s[CouchDBGroupOperator.AND] = [
144
+ condition,
145
+ ...Object.entries(query.selector).map(([key, val]) => {
146
+ const result = {};
147
+ result[key] = val;
148
+ return result;
149
+ }),
150
+ ];
151
+ query.selector = s;
152
+ break;
153
+ }
154
+ default:
155
+ throw new Error("This should be impossible");
156
+ }
157
+ else {
158
+ Object.entries(condition).forEach(([key, val]) => {
159
+ if (query.selector[key])
160
+ log.warn(`A ${key} query param is about to be overridden: ${query.selector[key]} by ${val}`);
161
+ query.selector[key] = val;
162
+ });
163
+ }
164
+ }
165
+ if (this.orderBySelectors?.length) {
166
+ query.sort = query.sort || [];
167
+ query.selector = query.selector || {};
168
+ for (const [selectorKey, direction] of this.orderBySelectors) {
169
+ const selector = selectorKey;
170
+ const rec = {};
171
+ rec[selector] = direction;
172
+ query.sort.push(rec);
173
+ if (!query.selector[selector]) {
174
+ query.selector[selector] = {};
175
+ query.selector[selector][CouchDBOperator.BIGGER] =
176
+ null;
177
+ }
178
+ }
179
+ }
180
+ if (this.limitSelector) {
181
+ query.limit = this.limitSelector;
182
+ }
183
+ else {
184
+ log.warn(`No limit selector defined. Using default couchdb limit of ${CouchDBQueryLimit}`);
185
+ query.limit = CouchDBQueryLimit;
186
+ }
187
+ if (this.offsetSelector)
188
+ query.skip = this.offsetSelector;
189
+ return query;
190
+ }
191
+ /**
192
+ * @description Parses a condition into a CouchDB Mango query selector
193
+ * @summary Converts a Condition object into a CouchDB Mango query selector structure
194
+ */
195
+ parseCondition(condition) {
196
+ function merge(op, obj1, obj2) {
197
+ const result = { selector: {} };
198
+ result.selector[op] = [obj1, obj2];
199
+ return result;
200
+ }
201
+ const { attr1, operator, comparison } = condition;
202
+ if (operator === Operator.BETWEEN) {
203
+ const attr = attr1;
204
+ if (!Array.isArray(comparison) || comparison.length !== 2)
205
+ throw new QueryError("BETWEEN operator requires [min, max] comparison");
206
+ const [min, max] = comparison;
207
+ const opBetween = {};
208
+ opBetween[attr] = {};
209
+ opBetween[attr][translateOperators(Operator.BIGGER_EQ)] = min;
210
+ opBetween[attr][translateOperators(Operator.SMALLER_EQ)] = max;
211
+ return { selector: opBetween };
212
+ }
213
+ let op = {};
214
+ if ([GroupOperator.AND, GroupOperator.OR, Operator.NOT].indexOf(operator) === -1) {
215
+ op[attr1] = {};
216
+ op[attr1][translateOperators(operator)] =
217
+ comparison;
218
+ }
219
+ else if (operator === Operator.NOT) {
220
+ op = this.parseCondition(attr1).selector;
221
+ op[translateOperators(Operator.NOT)] = {};
222
+ op[translateOperators(Operator.NOT)][attr1.attr1] = comparison;
223
+ }
224
+ else {
225
+ const op1 = this.parseCondition(attr1).selector;
226
+ const op2 = this.parseCondition(comparison).selector;
227
+ op = merge(translateOperators(operator), op1, op2).selector;
228
+ }
229
+ return { selector: op };
230
+ }
231
+ /**
232
+ * @description Builds an aggregate query if aggregation is requested
233
+ * @summary Checks for aggregate operations and returns a special MangoQuery for them
234
+ */
235
+ buildAggregateQuery() {
236
+ if (!this.fromSelector)
237
+ return undefined;
238
+ if (this.avgSelector) {
239
+ const attribute = String(this.avgSelector);
240
+ const sumInfo = this.createAggregateDescriptor("sum", attribute);
241
+ const countInfo = this.createAggregateDescriptor("count", attribute);
242
+ if (!sumInfo || !countInfo)
243
+ throw new QueryError(`Avg operation requires sum and count views for attribute ${attribute}`);
244
+ return this.createAggregateQuery({
245
+ kind: "avg",
246
+ attribute,
247
+ sumDescriptor: sumInfo.descriptor,
248
+ countDescriptor: countInfo.descriptor,
249
+ });
250
+ }
251
+ if (typeof this.countDistinctSelector !== "undefined") {
252
+ const attribute = this.countDistinctSelector == null
253
+ ? undefined
254
+ : String(this.countDistinctSelector);
255
+ const info = this.createAggregateDescriptor("distinct", attribute);
256
+ if (info) {
257
+ info.countDistinct = true;
258
+ return this.createAggregateQuery(info);
259
+ }
260
+ }
261
+ const aggregatorUsed = typeof this.countSelector !== "undefined" ||
262
+ typeof this.countDistinctSelector !== "undefined" ||
263
+ !!this.minSelector ||
264
+ !!this.maxSelector ||
265
+ !!this.sumSelector ||
266
+ !!this.distinctSelector;
267
+ const aggregatorChecks = [
268
+ [
269
+ "count",
270
+ (this.countSelector ?? undefined),
271
+ ],
272
+ ["max", this.maxSelector],
273
+ ["min", this.minSelector],
274
+ ["sum", this.sumSelector],
275
+ ["distinct", this.distinctSelector],
276
+ ];
277
+ for (const [kind, selector] of aggregatorChecks) {
278
+ const attribute = selector ? String(selector) : undefined;
279
+ const info = this.createAggregateDescriptor(kind, attribute);
280
+ if (info)
281
+ return this.createAggregateQuery(info);
282
+ }
283
+ if (aggregatorUsed) {
284
+ throw new QueryError(`No CouchDB view metadata found for table ${Model.tableName(this.fromSelector)} aggregator`);
285
+ }
286
+ return undefined;
287
+ }
288
+ /**
289
+ * @description Creates an aggregate descriptor for a view-based aggregation
290
+ */
291
+ createAggregateDescriptor(kind, attribute) {
292
+ if (!this.fromSelector)
293
+ return undefined;
294
+ const metas = findViewMetadata(this.fromSelector, kind, attribute);
295
+ if (!metas.length)
296
+ return undefined;
297
+ const meta = metas[0];
298
+ const tableName = Model.tableName(this.fromSelector);
299
+ const viewName = generateViewName(tableName, meta.attribute, kind, meta);
300
+ const ddoc = meta.ddoc || generateDesignDocName(tableName, viewName);
301
+ const options = {
302
+ reduce: meta.reduce !== undefined ? true : !meta.returnDocs,
303
+ };
304
+ if (kind === "distinct" || kind === "groupBy")
305
+ options.group = true;
306
+ return {
307
+ kind,
308
+ meta,
309
+ descriptor: {
310
+ ddoc,
311
+ view: viewName,
312
+ options,
313
+ },
314
+ };
315
+ }
316
+ /**
317
+ * @description Creates the special aggregate MangoQuery marker
318
+ */
319
+ createAggregateQuery(info) {
320
+ return {
321
+ selector: {},
322
+ aggregate: true,
323
+ aggregateInfo: info,
324
+ };
325
+ }
326
+ /**
327
+ * @description Gets the adapter cast to FabricClientAdapter for view access
328
+ */
329
+ getFabricAdapter() {
330
+ return this.adapter;
331
+ }
332
+ /**
333
+ * @description Executes an aggregate query via adapter's view method
334
+ */
335
+ async executeAggregate(info, ctx) {
336
+ if (!this.isViewAggregate(info)) {
337
+ return this.handleAverage(info, ctx);
338
+ }
339
+ const fabricAdapter = this.getFabricAdapter();
340
+ const viewInfo = info;
341
+ const response = await fabricAdapter.view(viewInfo.descriptor.ddoc, viewInfo.descriptor.view, viewInfo.descriptor.options, ctx);
342
+ return this.processViewResponse(info, response);
343
+ }
344
+ /**
345
+ * @description Handles average calculation from sum and count views
346
+ */
347
+ async handleAverage(info, ctx) {
348
+ if (info.kind !== "avg")
349
+ throw new QueryError("Average descriptor is not valid");
350
+ const fabricAdapter = this.getFabricAdapter();
351
+ const [sumDesc, countDesc] = [info.sumDescriptor, info.countDescriptor];
352
+ const [sumResponse, countResponse] = await Promise.all([
353
+ fabricAdapter.view(sumDesc.ddoc, sumDesc.view, sumDesc.options, ctx),
354
+ fabricAdapter.view(countDesc.ddoc, countDesc.view, countDesc.options, ctx),
355
+ ]);
356
+ const sum = sumResponse.rows?.[0]?.value ?? 0;
357
+ const count = countResponse.rows?.[0]?.value ?? 0;
358
+ if (!count)
359
+ return 0;
360
+ return (sum / count);
361
+ }
362
+ /**
363
+ * @description Processes the view response based on aggregate kind
364
+ */
365
+ processViewResponse(info, response) {
366
+ if (info.kind === "avg")
367
+ throw new QueryError("Average results should be handled before processing rows");
368
+ const rows = response.rows || [];
369
+ const viewInfo = info;
370
+ const meta = viewInfo.meta;
371
+ if (viewInfo.countDistinct) {
372
+ return (rows.length || 0);
373
+ }
374
+ if (viewInfo.kind === "distinct" || viewInfo.kind === "groupBy") {
375
+ return rows.map((row) => row.key ?? row.value);
376
+ }
377
+ if (meta.returnDocs) {
378
+ return rows.map((row) => row.value ?? row.doc ?? row);
379
+ }
380
+ if (!rows.length) {
381
+ return (viewInfo.kind === "count" ? 0 : null);
382
+ }
383
+ return (rows[0].value ?? rows[0].key ?? null);
384
+ }
385
+ /**
386
+ * @description Type guard to check if info is a view-based aggregate
387
+ */
388
+ isViewAggregate(info) {
389
+ return info.kind !== "avg";
87
390
  }
88
391
  }
89
392
  //# sourceMappingURL=FabricClientStatement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FabricClientStatement.js","sourceRoot":"","sources":["../../../src/client/FabricClientStatement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FabricClientStatement.js","sourceRoot":"","sources":["../../../src/client/FabricClientStatement.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { OrderDirection } from "@decaf-ts/core";
2
2
  import { Constructor } from "@decaf-ts/decoration";
3
+ import { CouchDBDesignDoc } from "@decaf-ts/for-couchdb";
3
4
  import { Model } from "@decaf-ts/decorator-validation";
4
5
  export type Index = {
5
6
  index: {
@@ -53,3 +54,4 @@ export declare function extractCollections<M extends Model>(m: Constructor<M>, m
53
54
  shared: PrivateCollection[];
54
55
  }>;
55
56
  export declare function writeCollections(cols: PrivateCollection[], p?: string, fileName?: string): void;
57
+ export declare function writeCollectionDesignDocs(docs: CouchDBDesignDoc[], p?: string, collection?: string): void;
@@ -1,5 +1,6 @@
1
1
  import { Model } from "@decaf-ts/decorator-validation";
2
2
  import { InternalError } from "@decaf-ts/db-decorators";
3
+ import { writeDesignDocs } from "./../indexes/generation.js";
3
4
  export function collectionFor(collectionName, policy, requiredPeerCount, maxPeerCount, blockToLive, memberOnlyRead, memberOnlyWrite) {
4
5
  return {
5
6
  name: collectionName,
@@ -92,4 +93,9 @@ export function writeCollections(cols, p = process.cwd(), fileName = "collection
92
93
  ensureDirectoryExistence(file);
93
94
  fs.writeFileSync(file, JSON.stringify(cols, undefined, 2));
94
95
  }
96
+ export function writeCollectionDesignDocs(docs, p = process.cwd(), collection) {
97
+ if (!docs?.length)
98
+ return;
99
+ writeDesignDocs(docs, p, collection);
100
+ }
95
101
  //# sourceMappingURL=generation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generation.js","sourceRoot":"","sources":["../../../../src/client/collections/generation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generation.js","sourceRoot":"","sources":["../../../../src/client/collections/generation.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export declare function contentOfLoadFile(contentOrPath: string | Uint8Array, fi
18
18
  * @function readFile
19
19
  * @memberOf module:for-fabric.client
20
20
  */
21
- export declare function readFile(contentOrPath: string | Buffer): Promise<Buffer<ArrayBufferLike>>;
21
+ export declare function readFile(contentOrPath: string | Buffer): Promise<NonSharedBuffer>;
22
22
  /**
23
23
  * @description Creates a Certificate Authority user
24
24
  * @summary Initializes a user with the given credentials for interacting with a Fabric CA
@@ -1,17 +1,10 @@
1
- import { OrderDirection } from "@decaf-ts/core";
2
1
  import { Constructor } from "@decaf-ts/decoration";
2
+ import { CreateIndexRequest, CouchDBDesignDoc } from "@decaf-ts/for-couchdb";
3
3
  import { Model, ModelConstructor } from "@decaf-ts/decorator-validation";
4
- export type Index = {
5
- index: {
6
- fields: string[] | {
7
- [k: string]: OrderDirection;
8
- };
9
- };
10
- ddoc?: string;
11
- name: string;
12
- type: "json";
13
- };
14
- export declare function generateModelIndexes<M extends Model>(m: Constructor<M>, accum?: Record<string, any>): Index[];
4
+ export type Index = CreateIndexRequest;
5
+ export declare function generateModelIndexes<M extends Model>(m: Constructor<M>): Index[];
6
+ export declare function generateModelDesignDocs<M extends Model>(m: Constructor<M>, accum?: Record<string, CouchDBDesignDoc>): CouchDBDesignDoc[];
15
7
  export declare function readModelFile(file: any): ModelConstructor<any>[];
16
8
  export declare function readModelFolders(...folders: string[]): Promise<ModelConstructor<any>[]>;
17
9
  export declare function writeIndexes(indexes: Index[], p?: string, collection?: string): void;
10
+ export declare function writeDesignDocs(designDocs: CouchDBDesignDoc[], p?: string, collection?: string): void;
@@ -1,79 +1,27 @@
1
- import { Metadata } from "@decaf-ts/decoration";
2
- import { CouchDBKeys } from "@decaf-ts/for-couchdb";
1
+ import { generateIndexes, generateViews, } from "@decaf-ts/for-couchdb";
3
2
  import { Model } from "@decaf-ts/decorator-validation";
4
- function getIndexReference(name, direction, compositions) {
5
- return [
6
- ...name.map((n) => (n === CouchDBKeys.TABLE ? "table" : n)),
7
- ...(compositions || []),
8
- ...(direction ? [direction] : []),
9
- "index",
10
- ].join(Metadata.splitter);
11
- }
12
- function addIndex(accum, fields, direction, compositions) {
13
- const tableField = fields.pop();
14
- if (tableField && tableField !== CouchDBKeys.TABLE) {
15
- fields.push(tableField);
16
- }
17
- else if (tableField === CouchDBKeys.TABLE) {
18
- fields.unshift(tableField);
3
+ function ensureDirectoryExistence(filePath) {
4
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
5
+ const fs = require("fs");
6
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
7
+ const path = require("path");
8
+ const dirname = path.dirname(filePath);
9
+ if (fs.existsSync(dirname)) {
10
+ return true;
19
11
  }
20
- const name = getIndexReference(fields, direction, compositions);
21
- let f = [
22
- ...fields,
23
- ...(compositions || []),
24
- ];
25
- if (direction)
26
- f = f.reduce((accum, el) => {
27
- const entry = {};
28
- entry[el] = direction;
29
- accum.push(entry);
30
- return accum;
31
- }, []);
32
- const index = {
33
- index: {
34
- fields: f,
35
- },
36
- name: name,
37
- ddoc: name,
38
- type: "json",
39
- };
40
- accum[name] = index;
12
+ ensureDirectoryExistence(dirname);
13
+ fs.mkdirSync(dirname);
41
14
  }
42
- export function generateModelIndexes(m, accum) {
43
- const tableName = getIndexReference([CouchDBKeys.TABLE]);
44
- const indexes = accum || {};
45
- indexes[tableName] = {
46
- index: {
47
- fields: [CouchDBKeys.TABLE],
48
- },
49
- name: tableName,
50
- ddoc: tableName,
51
- type: "json",
52
- };
53
- const result = {};
54
- const modelIndexes = Model.indexes(m);
55
- for (const prop of Object.keys(modelIndexes)) {
56
- for (const [, dec] of Object.entries(modelIndexes[prop])) {
57
- const directions = dec
58
- .directions;
59
- const compositions = dec.compositions;
60
- const fields = [prop, CouchDBKeys.TABLE];
61
- addIndex(result, fields);
62
- if (compositions && compositions.length)
63
- addIndex(result, fields, undefined, compositions);
64
- if (directions && directions.length) {
65
- directions.forEach((d) => {
66
- addIndex(result, fields, d);
67
- if (compositions && compositions.length)
68
- addIndex(result, fields, d, compositions);
69
- });
70
- }
71
- }
72
- }
73
- Object.entries(result).forEach(([key, value]) => {
74
- indexes[key] = value;
15
+ export function generateModelIndexes(m) {
16
+ return generateIndexes([m]);
17
+ }
18
+ export function generateModelDesignDocs(m, accum) {
19
+ const views = generateViews([m]);
20
+ const storage = accum || {};
21
+ views.forEach((doc) => {
22
+ storage[doc._id] = doc;
75
23
  });
76
- return Object.values(result);
24
+ return views;
77
25
  }
78
26
  export function readModelFile(file) {
79
27
  // eslint-disable-next-line @typescript-eslint/no-require-imports
@@ -114,18 +62,26 @@ export function writeIndexes(indexes, p = process.cwd(), collection) {
114
62
  const fs = require("fs");
115
63
  // eslint-disable-next-line @typescript-eslint/no-require-imports
116
64
  const path = require("path");
117
- function ensureDirectoryExistence(filePath) {
118
- const dirname = path.dirname(filePath);
119
- if (fs.existsSync(dirname)) {
120
- return true;
121
- }
122
- ensureDirectoryExistence(dirname);
123
- fs.mkdirSync(dirname);
124
- }
125
65
  indexes.forEach((index) => {
126
66
  const file = path.resolve(path.join(p, `./META-INF/statedb/couchdb/${collection ? `collections/${collection}/` : ""}indexes/${index.name}.json`));
127
67
  ensureDirectoryExistence(file);
128
68
  fs.writeFileSync(file, JSON.stringify(index, undefined, 2));
129
69
  });
130
70
  }
71
+ export function writeDesignDocs(designDocs, p = process.cwd(), collection) {
72
+ if (!designDocs.length)
73
+ return;
74
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
75
+ const fs = require("fs");
76
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
77
+ const path = require("path");
78
+ designDocs.forEach((doc) => {
79
+ const docId = doc._id.replace(/^_design\//, "");
80
+ const file = path.resolve(path.join(p, `./META-INF/statedb/couchdb/${collection ? `collections/${collection}/` : ""}design_docs/${docId}.json`));
81
+ ensureDirectoryExistence(file);
82
+ const payload = { ...doc };
83
+ delete payload._rev;
84
+ fs.writeFileSync(file, JSON.stringify(payload, undefined, 2));
85
+ });
86
+ }
131
87
  //# sourceMappingURL=generation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generation.js","sourceRoot":"","sources":["../../../../src/client/indexes/generation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generation.js","sourceRoot":"","sources":["../../../../src/client/indexes/generation.ts"],"names":[],"mappings":"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"}