@decaf-ts/for-fabric 0.1.27 → 0.1.29

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 (101) 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/bin/compile-indexes.cjs +22 -13
  6. package/lib/bin/compile-indexes.js.map +1 -1
  7. package/lib/client/FabricClientAdapter.cjs +38 -71
  8. package/lib/client/FabricClientAdapter.d.ts +27 -37
  9. package/lib/client/FabricClientAdapter.js.map +1 -1
  10. package/lib/client/FabricClientDispatch.cjs +6 -2
  11. package/lib/client/FabricClientDispatch.d.ts +4 -4
  12. package/lib/client/FabricClientDispatch.js.map +1 -1
  13. package/lib/client/FabricClientRepository.cjs +19 -5
  14. package/lib/client/FabricClientRepository.d.ts +1 -1
  15. package/lib/client/FabricClientRepository.js.map +1 -1
  16. package/lib/client/FabricClientStatement.cjs +72 -0
  17. package/lib/client/FabricClientStatement.d.ts +5 -1
  18. package/lib/client/FabricClientStatement.js.map +1 -1
  19. package/lib/client/constants.cjs +10 -0
  20. package/lib/client/constants.d.ts +2 -0
  21. package/lib/client/constants.js.map +1 -0
  22. package/lib/client/erc20/FabricERC20ClientRepository.cjs +48 -22
  23. package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -1
  24. package/lib/client/fabric-fs.d.ts +1 -1
  25. package/lib/client/indexes/generation.cjs +27 -49
  26. package/lib/client/indexes/generation.d.ts +1 -0
  27. package/lib/client/indexes/generation.js.map +1 -1
  28. package/lib/client/types.cjs +3 -0
  29. package/lib/client/types.d.ts +7 -0
  30. package/lib/client/types.js.map +1 -0
  31. package/lib/contract/Address.cjs +4 -0
  32. package/lib/contract/Address.js.map +1 -1
  33. package/lib/contracts/ContractAdapter.cjs +13 -3
  34. package/lib/contracts/ContractAdapter.d.ts +8 -1
  35. package/lib/contracts/ContractAdapter.js.map +1 -1
  36. package/lib/contracts/FabricContractRepository.cjs +62 -0
  37. package/lib/contracts/FabricContractRepository.d.ts +4 -2
  38. package/lib/contracts/FabricContractRepository.js.map +1 -1
  39. package/lib/contracts/FabricContractSequence.cjs +188 -0
  40. package/lib/contracts/FabricContractSequence.d.ts +86 -0
  41. package/lib/contracts/FabricContractSequence.js.map +1 -0
  42. package/lib/contracts/crud/crud-contract.cjs +8 -4
  43. package/lib/contracts/crud/crud-contract.js.map +1 -1
  44. package/lib/contracts/crud/serialized-crud-contract.cjs +26 -22
  45. package/lib/contracts/crud/serialized-crud-contract.d.ts +4 -4
  46. package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
  47. package/lib/contracts/index.cjs +1 -0
  48. package/lib/contracts/index.d.ts +1 -0
  49. package/lib/contracts/index.js.map +1 -1
  50. package/lib/esm/bin/compile-indexes.js +22 -10
  51. package/lib/esm/bin/compile-indexes.js.map +1 -1
  52. package/lib/esm/client/FabricClientAdapter.d.ts +27 -37
  53. package/lib/esm/client/FabricClientAdapter.js +38 -71
  54. package/lib/esm/client/FabricClientAdapter.js.map +1 -1
  55. package/lib/esm/client/FabricClientDispatch.d.ts +4 -4
  56. package/lib/esm/client/FabricClientDispatch.js +6 -2
  57. package/lib/esm/client/FabricClientDispatch.js.map +1 -1
  58. package/lib/esm/client/FabricClientRepository.d.ts +1 -1
  59. package/lib/esm/client/FabricClientRepository.js +19 -5
  60. package/lib/esm/client/FabricClientRepository.js.map +1 -1
  61. package/lib/esm/client/FabricClientStatement.d.ts +5 -1
  62. package/lib/esm/client/FabricClientStatement.js +73 -1
  63. package/lib/esm/client/FabricClientStatement.js.map +1 -1
  64. package/lib/esm/client/constants.d.ts +2 -0
  65. package/lib/esm/client/constants.js +7 -0
  66. package/lib/esm/client/constants.js.map +1 -0
  67. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +49 -23
  68. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -1
  69. package/lib/esm/client/fabric-fs.d.ts +1 -1
  70. package/lib/esm/client/indexes/generation.d.ts +1 -0
  71. package/lib/esm/client/indexes/generation.js +26 -16
  72. package/lib/esm/client/indexes/generation.js.map +1 -1
  73. package/lib/esm/client/types.d.ts +7 -0
  74. package/lib/esm/client/types.js +2 -0
  75. package/lib/esm/client/types.js.map +1 -0
  76. package/lib/esm/contract/Address.js +5 -1
  77. package/lib/esm/contract/Address.js.map +1 -1
  78. package/lib/esm/contracts/ContractAdapter.d.ts +8 -1
  79. package/lib/esm/contracts/ContractAdapter.js +14 -4
  80. package/lib/esm/contracts/ContractAdapter.js.map +1 -1
  81. package/lib/esm/contracts/FabricContractRepository.d.ts +4 -2
  82. package/lib/esm/contracts/FabricContractRepository.js +63 -1
  83. package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
  84. package/lib/esm/contracts/FabricContractSequence.d.ts +86 -0
  85. package/lib/esm/contracts/FabricContractSequence.js +184 -0
  86. package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
  87. package/lib/esm/contracts/crud/crud-contract.js +8 -4
  88. package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
  89. package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +4 -4
  90. package/lib/esm/contracts/crud/serialized-crud-contract.js +26 -22
  91. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
  92. package/lib/esm/contracts/index.d.ts +1 -0
  93. package/lib/esm/contracts/index.js +1 -0
  94. package/lib/esm/contracts/index.js.map +1 -1
  95. package/lib/esm/shared/utils.d.ts +1 -1
  96. package/lib/esm/version.d.ts +1 -1
  97. package/lib/esm/version.js +1 -1
  98. package/lib/shared/utils.d.ts +1 -1
  99. package/lib/version.cjs +1 -1
  100. package/lib/version.d.ts +1 -1
  101. package/package.json +2 -1
@@ -1,7 +1,6 @@
1
1
  import { Metadata } from "@decaf-ts/decoration";
2
2
  import { CouchDBKeys } from "@decaf-ts/for-couchdb";
3
3
  import { Model } from "@decaf-ts/decorator-validation";
4
- import { normalizeImport } from "./../../shared/index.js";
5
4
  function getIndexReference(name, direction, compositions) {
6
5
  return [
7
6
  ...name.map((n) => (n === CouchDBKeys.TABLE ? "table" : n)),
@@ -47,11 +46,11 @@ export function generateModelIndexes(m, accum) {
47
46
  const result = {};
48
47
  const modelIndexes = Model.indexes(m);
49
48
  for (const prop of Object.keys(modelIndexes)) {
50
- for (const [key, dec] of Object.entries(modelIndexes[prop])) {
49
+ for (const [, dec] of Object.entries(modelIndexes[prop])) {
51
50
  const directions = dec
52
51
  .directions;
53
52
  const compositions = dec.compositions;
54
- const fields = [key, CouchDBKeys.TABLE];
53
+ const fields = [prop, CouchDBKeys.TABLE];
55
54
  addIndex(result, fields);
56
55
  if (compositions && compositions.length)
57
56
  addIndex(result, fields, undefined, compositions);
@@ -64,11 +63,33 @@ export function generateModelIndexes(m, accum) {
64
63
  }
65
64
  }
66
65
  }
66
+ Object.entries(result).forEach(([key, value]) => {
67
+ indexes[key] = value;
68
+ });
67
69
  return Object.values(result);
68
70
  }
71
+ export function readModelFile(file) {
72
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
73
+ const path = require("path");
74
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
75
+ const exports = require(path.join(process.cwd(), file.parentPath, file.name));
76
+ const values = Object.values(exports).filter((e) => {
77
+ try {
78
+ const m = new e();
79
+ return m instanceof Model;
80
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
81
+ }
82
+ catch (e) {
83
+ return false;
84
+ }
85
+ });
86
+ return values;
87
+ }
69
88
  export async function readModelFolders(...folders) {
70
89
  // eslint-disable-next-line @typescript-eslint/no-require-imports
71
90
  const fs = require("fs");
91
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
92
+ const path = require("path");
72
93
  // // eslint-disable-next-line @typescript-eslint/no-require-imports
73
94
  // const path = require("path");
74
95
  const result = [];
@@ -78,20 +99,9 @@ export async function readModelFolders(...folders) {
78
99
  withFileTypes: true,
79
100
  recursive: true,
80
101
  })
81
- .filter((f) => f.isFile());
102
+ .filter((f) => f.isFile() && f.name.endsWith("js"));
82
103
  for (const file of files) {
83
- const exports = await normalizeImport(import(file));
84
- const values = Object.values(exports).filter((e) => {
85
- try {
86
- const m = new e();
87
- return m instanceof Model;
88
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
89
- }
90
- catch (e) {
91
- return false;
92
- }
93
- });
94
- result.push(...values);
104
+ result.push(...readModelFile(file));
95
105
  }
96
106
  }
97
107
  return result;
@@ -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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"}
@@ -0,0 +1,7 @@
1
+ import { FabricFlags } from "../shared/index";
2
+ export type FabricClientFlags = FabricFlags & {
3
+ evaluateTimeout: number;
4
+ endorseTimeout: number;
5
+ submitTimeout: number;
6
+ commitTimeout: number;
7
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":""}
@@ -8,7 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { model, Model, required, } from "@decaf-ts/decorator-validation";
11
- import { column, createdAt, pk, table, createdBy, updatedAt, updatedBy, } from "@decaf-ts/core";
11
+ import { column, createdAt, pk, table, createdBy, updatedAt, updatedBy, index, } from "@decaf-ts/core";
12
12
  import { uses } from "@decaf-ts/decoration";
13
13
  import { FabricFlavour, ownedBy } from "./../shared/index.js";
14
14
  let Address = class Address extends Model {
@@ -23,6 +23,7 @@ __decorate([
23
23
  __decorate([
24
24
  column(),
25
25
  required(),
26
+ index(["asc", "desc"]),
26
27
  __metadata("design:type", String)
27
28
  ], Address.prototype, "city", void 0);
28
29
  __decorate([
@@ -38,6 +39,7 @@ __decorate([
38
39
  __decorate([
39
40
  column(),
40
41
  createdAt(),
42
+ index(),
41
43
  __metadata("design:type", Date)
42
44
  ], Address.prototype, "createdAt", void 0);
43
45
  __decorate([
@@ -48,6 +50,7 @@ __decorate([
48
50
  __decorate([
49
51
  column(),
50
52
  createdBy(),
53
+ index(["asc", "desc"]),
51
54
  __metadata("design:type", String)
52
55
  ], Address.prototype, "createdBy", void 0);
53
56
  __decorate([
@@ -58,6 +61,7 @@ __decorate([
58
61
  __decorate([
59
62
  column(),
60
63
  ownedBy(),
64
+ index(),
61
65
  __metadata("design:type", String)
62
66
  ], Address.prototype, "msp", void 0);
63
67
  Address = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"Address.js","sourceRoot":"","sources":["../../../src/contract/Address.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,KAAK,EACL,KAAK,EAEL,QAAQ,GACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,MAAM,EACN,SAAS,EACT,EAAE,EACF,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,6BAAwB;AAKlD,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,KAAK;IAoChC,YAAY,GAAuB;QACjC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AArCC;IADC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;mCAC1B;AAIZ;IAFC,MAAM,EAAE;IACR,QAAQ,EAAE;;qCACG;AAId;IAFC,MAAM,EAAE;IACR,QAAQ,EAAE;;uCACK;AAIhB;IAFC,MAAM,EAAE;IACR,QAAQ,EAAE;;uCACK;AAIhB;IAFC,MAAM,EAAE;IACR,SAAS,EAAE;8BACA,IAAI;0CAAC;AAIjB;IAFC,MAAM,EAAE;IACR,SAAS,EAAE;8BACA,IAAI;0CAAC;AAIjB;IAFC,MAAM,EAAE;IACR,SAAS,EAAE;;0CACO;AAInB;IAFC,MAAM,EAAE;IACR,SAAS,EAAE;;0CACO;AAInB;IAFC,MAAM,EAAE;IACR,OAAO,EAAE;;oCACG;AAlCF,OAAO;IAHnB,IAAI,CAAC,aAAa,CAAC;IACnB,KAAK,EAAE;IACP,KAAK,EAAE;;GACK,OAAO,CAuCnB"}
1
+ {"version":3,"file":"Address.js","sourceRoot":"","sources":["../../../src/contract/Address.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,KAAK,EACL,KAAK,EAEL,QAAQ,GACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,MAAM,EACN,SAAS,EACT,EAAE,EACF,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,KAAK,GACN,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,6BAAwB;AAKlD,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,KAAK;IAwChC,YAAY,GAAuB;QACjC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAzCC;IADC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;mCAC1B;AAKZ;IAHC,MAAM,EAAE;IACR,QAAQ,EAAE;IACV,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;;qCACT;AAId;IAFC,MAAM,EAAE;IACR,QAAQ,EAAE;;uCACK;AAIhB;IAFC,MAAM,EAAE;IACR,QAAQ,EAAE;;uCACK;AAKhB;IAHC,MAAM,EAAE;IACR,SAAS,EAAE;IACX,KAAK,EAAE;8BACI,IAAI;0CAAC;AAIjB;IAFC,MAAM,EAAE;IACR,SAAS,EAAE;8BACA,IAAI;0CAAC;AAKjB;IAHC,MAAM,EAAE;IACR,SAAS,EAAE;IACX,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;;0CACJ;AAInB;IAFC,MAAM,EAAE;IACR,SAAS,EAAE;;0CACO;AAKnB;IAHC,MAAM,EAAE;IACR,OAAO,EAAE;IACT,KAAK,EAAE;;oCACK;AAtCF,OAAO;IAHnB,IAAI,CAAC,aAAa,CAAC;IACnB,KAAK,EAAE;IACP,KAAK,EAAE;;GACK,OAAO,CA2CnB"}
@@ -5,7 +5,7 @@ import { FabricContractContext } from "./ContractContext";
5
5
  import { BaseError, OperationKeys, PrimaryKeyType } from "@decaf-ts/db-decorators";
6
6
  import { Context as Ctx } from "fabric-contract-api";
7
7
  import { Logger } from "@decaf-ts/logging";
8
- import { RelationsMetadata, SequenceOptions, Adapter, PreparedModel, Repository, ContextualizedArgs, Context, RawResult } from "@decaf-ts/core";
8
+ import { RelationsMetadata, Sequence, SequenceOptions, Adapter, PreparedModel, Repository, ContextualizedArgs, Context, RawResult } from "@decaf-ts/core";
9
9
  import type { ContextualArgs, MaybeContextualArg } from "@decaf-ts/core";
10
10
  import { FabricContractRepository } from "./FabricContractRepository";
11
11
  import { ChaincodeStub, ClientIdentity, Iterators, StateQueryResponse } from "fabric-shim-api";
@@ -124,6 +124,13 @@ export declare class FabricContractAdapter extends CouchDBAdapter<any, void, Fab
124
124
  * @return {Constructor<Repository<M, MangoQuery, FabricContractAdapter, FabricContractFlags, FabricContractContext>>} The repository constructor
125
125
  */
126
126
  repository<R extends Repository<any, Adapter<any, void, MangoQuery, Context<FabricContractFlags>>>>(): Constructor<R>;
127
+ /**
128
+ * @description Creates a sequence generator
129
+ * @summary Factory method that creates a sequence generator for generating sequential values
130
+ * @param {SequenceOptions} options - Configuration options for the sequence
131
+ * @return {Promise<Sequence>} A promise that resolves to a new sequence instance
132
+ */
133
+ Sequence(options: SequenceOptions): Promise<Sequence>;
127
134
  /**
128
135
  * @description Creates a new FabricContractAdapter instance
129
136
  * @summary Initializes an adapter for interacting with the Fabric state database
@@ -8,8 +8,9 @@ import { FabricContractRepository } from "./FabricContractRepository.js";
8
8
  import { FabricStatement } from "./FabricContractStatement.js";
9
9
  import { FabricFlavour } from "./../shared/constants.js";
10
10
  import { SimpleDeterministicSerializer } from "./../shared/SimpleDeterministicSerializer.js";
11
- import { Decoration, propMetadata, } from "@decaf-ts/decoration";
11
+ import { Decoration, propMetadata } from "@decaf-ts/decoration";
12
12
  import { ContractLogger } from "./logging.js";
13
+ import { FabricContractSequence } from "./FabricContractSequence.js";
13
14
  /**
14
15
  * @description Sets the creator or updater field in a model based on the user in the context
15
16
  * @summary Callback function used in decorators to automatically set the created_by or updated_by fields
@@ -153,6 +154,15 @@ export class FabricContractAdapter extends CouchDBAdapter {
153
154
  repository() {
154
155
  return FabricContractRepository;
155
156
  }
157
+ /**
158
+ * @description Creates a sequence generator
159
+ * @summary Factory method that creates a sequence generator for generating sequential values
160
+ * @param {SequenceOptions} options - Configuration options for the sequence
161
+ * @return {Promise<Sequence>} A promise that resolves to a new sequence instance
162
+ */
163
+ async Sequence(options) {
164
+ return new FabricContractSequence(options, this);
165
+ }
156
166
  /**
157
167
  * @description Creates a new FabricContractAdapter instance
158
168
  * @summary Initializes an adapter for interacting with the Fabric state database
@@ -578,19 +588,19 @@ export class FabricContractAdapter extends CouchDBAdapter {
578
588
  async raw(rawInput,
579
589
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
580
590
  docsOnly = true, ...args) {
581
- const { log, stub } = this.logCtx(args, this.raw);
591
+ const { log, stub, ctx } = this.logCtx(args, this.raw);
582
592
  const { skip, limit } = rawInput;
583
593
  let iterator;
584
594
  if (limit || skip) {
585
595
  delete rawInput["limit"];
586
596
  delete rawInput["skip"];
587
597
  log.debug(`Retrieving paginated iterator: limit: ${limit}/ skip: ${skip}`);
588
- const response = (await this.queryResultPaginated(stub, rawInput, limit || 250, skip?.toString()));
598
+ const response = (await this.queryResultPaginated(stub, rawInput, limit || 250, skip?.toString(), ctx));
589
599
  iterator = response.iterator;
590
600
  }
591
601
  else {
592
602
  log.debug("Retrieving iterator");
593
- iterator = (await this.queryResult(stub, rawInput));
603
+ iterator = (await this.queryResult(stub, rawInput, ctx));
594
604
  }
595
605
  log.debug("Iterator acquired");
596
606
  const results = (await this.resultIterator(log, iterator));
@@ -1 +1 @@
1
- {"version":3,"file":"ContractAdapter.js","sourceRoot":"","sources":["../../../src/contracts/ContractAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContractAdapter.js","sourceRoot":"","sources":["../../../src/contracts/ContractAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { Repository, ObserverHandler, EventIds, ContextualArgs } from "@decaf-ts/core";
1
+ import { Repository, ObserverHandler, EventIds, ContextualArgs, MaybeContextualArg } from "@decaf-ts/core";
2
2
  import { FabricContractContext } from "./ContractContext";
3
3
  import { Model } from "@decaf-ts/decorator-validation";
4
4
  import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
5
5
  import { Constructor } from "@decaf-ts/decoration";
6
- import type { FabricContractAdapter } from "./ContractAdapter";
6
+ import { FabricContractAdapter } from "./ContractAdapter";
7
7
  /**
8
8
  * @description Repository for Hyperledger Fabric chaincode models
9
9
  * @summary Provides CRUD operations for models within Fabric chaincode contracts
@@ -83,6 +83,8 @@ export declare class FabricContractRepository<M extends Model> extends Repositor
83
83
  forcePrepareComplexQueries: boolean;
84
84
  };
85
85
  constructor(adapter?: FabricContractAdapter, clazz?: Constructor<M>, trackedEvents?: (OperationKeys | BulkCrudOperationKeys | string)[] | undefined);
86
+ protected createAllPrefix(models: M[], ...args: MaybeContextualArg<FabricContractContext>): Promise<[M[], ...any[], FabricContractContext]>;
87
+ statement(name: string, ...args: MaybeContextualArg<FabricContractContext>): Promise<any>;
86
88
  /**
87
89
  * @description Gets the observer handler for this repository
88
90
  * @summary Returns a FabricContractRepositoryObservableHandler instance
@@ -1,5 +1,7 @@
1
- import { Repository, } from "@decaf-ts/core";
1
+ import { Repository, QueryError, Context, PersistenceKeys, } from "@decaf-ts/core";
2
+ import { Model } from "@decaf-ts/decorator-validation";
2
3
  import { FabricContractRepositoryObservableHandler } from "./FabricContractRepositoryObservableHandler.js";
4
+ import { BaseError, enforceDBDecorators, InternalError, OperationKeys, reduceErrorsToPrint, ValidationError, } from "@decaf-ts/db-decorators";
3
5
  /**
4
6
  * @description Repository for Hyperledger Fabric chaincode models
5
7
  * @summary Provides CRUD operations for models within Fabric chaincode contracts
@@ -76,6 +78,66 @@ export class FabricContractRepository extends Repository {
76
78
  forcePrepareComplexQueries: false,
77
79
  });
78
80
  }
81
+ async createAllPrefix(models, ...args) {
82
+ const contextArgs = await Context.args(OperationKeys.CREATE, this.class, args, this.adapter, this._overrides || {});
83
+ const ignoreHandlers = contextArgs.context.get("ignoreHandlers");
84
+ const ignoreValidate = contextArgs.context.get("ignoreValidation");
85
+ if (!models.length)
86
+ return [models, ...contextArgs.args];
87
+ const opts = Model.sequenceFor(models[0]);
88
+ let ids = [];
89
+ if (opts.type) {
90
+ if (!opts.name)
91
+ opts.name = Model.sequenceName(models[0], "pk");
92
+ ids = await (await this.adapter.Sequence(opts)).range(models.length, ...contextArgs.args);
93
+ }
94
+ else {
95
+ ids = models.map((m, i) => {
96
+ if (typeof m[this.pk] === "undefined")
97
+ throw new InternalError(`Primary key is not defined for model in position ${i}`);
98
+ return m[this.pk];
99
+ });
100
+ }
101
+ models = await Promise.all(models.map(async (m, i) => {
102
+ m = new this.class(m);
103
+ if (opts.type) {
104
+ m[this.pk] = (opts.type !== "String"
105
+ ? ids[i]
106
+ : opts.generated
107
+ ? ids[i]
108
+ : `${m[this.pk]}`.toString());
109
+ }
110
+ if (!ignoreHandlers)
111
+ await enforceDBDecorators(this, contextArgs.context, m, OperationKeys.CREATE, OperationKeys.ON);
112
+ return m;
113
+ }));
114
+ if (!ignoreValidate) {
115
+ const ignoredProps = contextArgs.context.get("ignoredValidationProperties") || [];
116
+ const errors = await Promise.all(models.map((m) => Promise.resolve(m.hasErrors(...ignoredProps))));
117
+ const errorMessages = reduceErrorsToPrint(errors);
118
+ if (errorMessages)
119
+ throw new ValidationError(errorMessages);
120
+ }
121
+ return [models, ...contextArgs.args];
122
+ }
123
+ async statement(name, ...args) {
124
+ if (!Repository.statements(this, name))
125
+ throw new QueryError(`Invalid prepared statement requested ${name}`);
126
+ const contextArgs = await Context.args(PersistenceKeys.STATEMENT, this.class, args, this.adapter, this._overrides || {});
127
+ if (contextArgs.context.logger) {
128
+ contextArgs.context.logger.info(`Repo statement: ${name} + ${args}`);
129
+ }
130
+ const { log, ctxArgs } = this.logCtx(contextArgs.args, this.statement);
131
+ log.verbose(`Executing prepared statement ${name} with args ${ctxArgs}`);
132
+ try {
133
+ return this[name](...ctxArgs);
134
+ }
135
+ catch (e) {
136
+ if (e instanceof BaseError)
137
+ throw e;
138
+ throw new InternalError(`Failed to execute prepared statement ${name} with args ${ctxArgs}: ${e}`);
139
+ }
140
+ }
79
141
  /**
80
142
  * @description Gets the observer handler for this repository
81
143
  * @summary Returns a FabricContractRepositoryObservableHandler instance
@@ -1 +1 @@
1
- {"version":3,"file":"FabricContractRepository.js","sourceRoot":"","sources":["../../../src/contracts/FabricContractRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAIX,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,yCAAyC,EAAE,uDAAoD;AAKxG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,MAAM,OAAO,wBAA0C,SAAQ,UAG9D;IASC,YACE,OAA+B,EAC/B,KAAsB,EACZ,aAAkE;QAE5E,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAFZ,kBAAa,GAAb,aAAa,CAAqD;QAX3D,eAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE;YACrE,gBAAgB,EAAE,KAAK;YACvB,cAAc,EAAE,KAAK;YACrB,kBAAkB,EAAE,IAAI;YACxB,yBAAyB,EAAE,KAAK;YAChC,0BAA0B,EAAE,KAAK;SAClC,CAAC,CAAC;IAQH,CAAC;IAED;;;;OAIG;IACM,eAAe;QACtB,OAAO,IAAI,yCAAyC,EAAE,CAAC;IACzD,CAAC;IAED;;;;;;;;;OASG;IACM,KAAK,CAAC,eAAe,CAC5B,KAA8B,EAC9B,KAAqD,EACrD,EAAY,EACZ,GAAG,IAA2C;QAE9C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjE,OAAO,MAAM,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAClE,CAAC;CACF"}
1
+ {"version":3,"file":"FabricContractRepository.js","sourceRoot":"","sources":["../../../src/contracts/FabricContractRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAKV,UAAU,EACV,OAAO,EACP,eAAe,GAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,yCAAyC,EAAE,uDAAoD;AACxG,OAAO,EACL,SAAS,EAET,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAIjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,MAAM,OAAO,wBAA0C,SAAQ,UAG9D;IASC,YACE,OAA+B,EAC/B,KAAsB,EACZ,aAAkE;QAE5E,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAFZ,kBAAa,GAAb,aAAa,CAAqD;QAX3D,eAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE;YACrE,gBAAgB,EAAE,KAAK;YACvB,cAAc,EAAE,KAAK;YACrB,kBAAkB,EAAE,IAAI;YACxB,yBAAyB,EAAE,KAAK;YAChC,0BAA0B,EAAE,KAAK;SAClC,CAAC,CAAC;IAQH,CAAC;IAEkB,KAAK,CAAC,eAAe,CACtC,MAAW,EACX,GAAG,IAA+C;QAElD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CACpC,aAAa,CAAC,MAAM,EACpB,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,UAAU,IAAI,EAAE,CACtB,CAAC;QACF,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,GAAG,GAA6C,EAAE,CAAC;QACvD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAChE,GAAG,GAAG,MAAM,CACV,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAClC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,WAAW;oBACnC,MAAM,IAAI,aAAa,CACrB,oDAAoD,CAAC,EAAE,CACxD,CAAC;gBACJ,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAW,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CACxB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CACX,IAAI,CAAC,IAAI,KAAK,QAAQ;oBACpB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACR,CAAC,CAAC,IAAI,CAAC,SAAS;wBACd,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACR,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CACnB,CAAC;YAClB,CAAC;YAED,IAAI,CAAC,cAAc;gBACjB,MAAM,mBAAmB,CACvB,IAAI,EACJ,WAAW,CAAC,OAAO,EACnB,CAAC,EACD,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,EAAE,CACjB,CAAC;YACJ,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,YAAY,GAChB,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC;YAE/D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CACjE,CAAC;YAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAElD,IAAI,aAAa;gBAAE,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAEQ,KAAK,CAAC,SAAS,CACtB,IAAY,EACZ,GAAG,IAA+C;QAElD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAyB,CAAC;YACzD,MAAM,IAAI,UAAU,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CACpC,eAAe,CAAC,SAAS,EACzB,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,UAAU,IAAI,EAAE,CACtB,CAAC;QACF,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvE,GAAG,CAAC,OAAO,CAAC,gCAAgC,IAAI,cAAc,OAAO,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,OAAQ,IAAY,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,SAAS;gBAAE,MAAM,CAAC,CAAC;YACpC,MAAM,IAAI,aAAa,CACrB,wCAAwC,IAAI,cAAc,OAAO,KAAK,CAAC,EAAE,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACM,eAAe;QACtB,OAAO,IAAI,yCAAyC,EAAE,CAAC;IACzD,CAAC;IAED;;;;;;;;;OASG;IACM,KAAK,CAAC,eAAe,CAC5B,KAA8B,EAC9B,KAAqD,EACrD,EAAY,EACZ,GAAG,IAA2C;QAE9C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjE,OAAO,MAAM,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -0,0 +1,86 @@
1
+ import { Adapter, Context, MaybeContextualArg, Sequence, SequenceOptions } from "@decaf-ts/core";
2
+ /**
3
+ * @description Abstract base class for sequence generation
4
+ * @summary Provides a framework for generating sequential values (like primary keys) in the persistence layer.
5
+ * Implementations of this class handle the specifics of how sequences are stored and incremented in different
6
+ * database systems.
7
+ * @param {SequenceOptions} options - Configuration options for the sequence generator
8
+ * @class Sequence
9
+ * @example
10
+ * ```typescript
11
+ * // Example implementation for a specific database
12
+ * class PostgresSequence extends Sequence {
13
+ * constructor(options: SequenceOptions) {
14
+ * super(options);
15
+ * }
16
+ *
17
+ * async next(): Promise<number> {
18
+ * // Implementation to get next value from PostgreSQL sequence
19
+ * const result = await this.options.executor.raw(`SELECT nextval('${this.options.name}')`);
20
+ * return parseInt(result.rows[0].nextval);
21
+ * }
22
+ *
23
+ * async current(): Promise<number> {
24
+ * // Implementation to get current value from PostgreSQL sequence
25
+ * const result = await this.options.executor.raw(`SELECT currval('${this.options.name}')`);
26
+ * return parseInt(result.rows[0].currval);
27
+ * }
28
+ *
29
+ * async range(count: number): Promise<number[]> {
30
+ * // Implementation to get a range of values
31
+ * const values: number[] = [];
32
+ * for (let i = 0; i < count; i++) {
33
+ * values.push(await this.next());
34
+ * }
35
+ * return values;
36
+ * }
37
+ * }
38
+ *
39
+ * // Usage
40
+ * const sequence = new PostgresSequence({
41
+ * name: 'user_id_seq',
42
+ * executor: dbExecutor
43
+ * });
44
+ *
45
+ * const nextId = await sequence.next();
46
+ * ```
47
+ */
48
+ export declare class FabricContractSequence extends Sequence {
49
+ /**
50
+ * @description Creates a new sequence instance
51
+ * @summary Protected constructor that initializes the sequence with the provided options
52
+ */
53
+ constructor(options: SequenceOptions, adapter: Adapter<any, any, any, any>);
54
+ /**
55
+ * @description Retrieves the current value of the sequence
56
+ * @summary Gets the current value of the sequence from storage. If the sequence
57
+ * doesn't exist yet, it returns the configured starting value.
58
+ * @return A promise that resolves to the current sequence value
59
+ */
60
+ current(...args: MaybeContextualArg<any>): Promise<string | number | bigint>;
61
+ /**
62
+ * @description Increments the sequence value
63
+ * @summary Increases the current sequence value by the specified amount and persists
64
+ * the new value to storage. This method handles both numeric and BigInt sequence types.
65
+ * @param {string | number | bigint} current - The current value of the sequence
66
+ * @param {number} [count] - Optional amount to increment by, defaults to the sequence's incrementBy value
67
+ * @return A promise that resolves to the new sequence value after incrementing
68
+ */
69
+ protected increment(current: string | number | bigint, count: number | undefined, ctx: Context<any>): Promise<string | number | bigint>;
70
+ /**
71
+ * @description Gets the next value in the sequence
72
+ * @summary Retrieves the current value of the sequence and increments it by the
73
+ * configured increment amount. This is the main method used to get a new sequential value.
74
+ * @return A promise that resolves to the next value in the sequence
75
+ */
76
+ next(...argz: MaybeContextualArg<any>): Promise<number | string | bigint>;
77
+ /**
78
+ * @description Generates a range of sequential values
79
+ * @summary Retrieves a specified number of sequential values from the sequence.
80
+ * This is useful when you need to allocate multiple IDs at once.
81
+ * The method increments the sequence by the total amount needed and returns all values in the range.
82
+ * @param {number} count - The number of sequential values to generate
83
+ * @return A promise that resolves to an array of sequential values
84
+ */
85
+ range(count: number, ...argz: MaybeContextualArg<any>): Promise<(number | string | bigint)[]>;
86
+ }