@bsv/overlay 2.3.1 → 2.6.1

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 (201) hide show
  1. package/README.md +166 -0
  2. package/dist/cjs/mod.d.ts +3 -0
  3. package/dist/cjs/mod.d.ts.map +1 -1
  4. package/dist/cjs/mod.js +8 -1
  5. package/dist/cjs/mod.js.map +1 -1
  6. package/dist/cjs/package.json +10 -4
  7. package/dist/cjs/src/BASM.d.ts +6 -0
  8. package/dist/cjs/src/BASM.d.ts.map +1 -1
  9. package/dist/cjs/src/BASM.js +21 -8
  10. package/dist/cjs/src/BASM.js.map +1 -1
  11. package/dist/cjs/src/BASMRemote.d.ts +8 -1
  12. package/dist/cjs/src/BASMRemote.d.ts.map +1 -1
  13. package/dist/cjs/src/BASMRemote.js +179 -13
  14. package/dist/cjs/src/BASMRemote.js.map +1 -1
  15. package/dist/cjs/src/BASMValidation.d.ts +27 -0
  16. package/dist/cjs/src/BASMValidation.d.ts.map +1 -0
  17. package/dist/cjs/src/BASMValidation.js +108 -0
  18. package/dist/cjs/src/BASMValidation.js.map +1 -0
  19. package/dist/cjs/src/DiscoveryAdvertisementValidation.d.ts +11 -0
  20. package/dist/cjs/src/DiscoveryAdvertisementValidation.d.ts.map +1 -0
  21. package/dist/cjs/src/DiscoveryAdvertisementValidation.js +60 -0
  22. package/dist/cjs/src/DiscoveryAdvertisementValidation.js.map +1 -0
  23. package/dist/cjs/src/Engine.d.ts +37 -13
  24. package/dist/cjs/src/Engine.d.ts.map +1 -1
  25. package/dist/cjs/src/Engine.js +1713 -336
  26. package/dist/cjs/src/Engine.js.map +1 -1
  27. package/dist/cjs/src/EngineAdmission.d.ts +70 -0
  28. package/dist/cjs/src/EngineAdmission.d.ts.map +1 -0
  29. package/dist/cjs/src/EngineAdmission.js +297 -0
  30. package/dist/cjs/src/EngineAdmission.js.map +1 -0
  31. package/dist/cjs/src/GASP/OverlayGASPRemote.d.ts +4 -3
  32. package/dist/cjs/src/GASP/OverlayGASPRemote.d.ts.map +1 -1
  33. package/dist/cjs/src/GASP/OverlayGASPRemote.js +27 -43
  34. package/dist/cjs/src/GASP/OverlayGASPRemote.js.map +1 -1
  35. package/dist/cjs/src/GASP/OverlayGASPStorage.d.ts +22 -16
  36. package/dist/cjs/src/GASP/OverlayGASPStorage.d.ts.map +1 -1
  37. package/dist/cjs/src/GASP/OverlayGASPStorage.js +206 -57
  38. package/dist/cjs/src/GASP/OverlayGASPStorage.js.map +1 -1
  39. package/dist/cjs/src/RemoteSecurity.d.ts +50 -0
  40. package/dist/cjs/src/RemoteSecurity.d.ts.map +1 -0
  41. package/dist/cjs/src/RemoteSecurity.js +301 -0
  42. package/dist/cjs/src/RemoteSecurity.js.map +1 -0
  43. package/dist/cjs/src/storage/AdmissionStorage.d.ts +185 -0
  44. package/dist/cjs/src/storage/AdmissionStorage.d.ts.map +1 -0
  45. package/dist/cjs/src/storage/AdmissionStorage.js +93 -0
  46. package/dist/cjs/src/storage/AdmissionStorage.js.map +1 -0
  47. package/dist/cjs/src/storage/RecoveryContract.d.ts +50 -0
  48. package/dist/cjs/src/storage/RecoveryContract.d.ts.map +1 -0
  49. package/dist/cjs/src/storage/RecoveryContract.js +35 -0
  50. package/dist/cjs/src/storage/RecoveryContract.js.map +1 -0
  51. package/dist/cjs/src/storage/Storage.d.ts +32 -19
  52. package/dist/cjs/src/storage/Storage.d.ts.map +1 -1
  53. package/dist/cjs/src/storage/Storage.js +5 -0
  54. package/dist/cjs/src/storage/Storage.js.map +1 -1
  55. package/dist/cjs/src/storage/knex/KnexStorage.d.ts +8 -8
  56. package/dist/cjs/src/storage/knex/KnexStorage.d.ts.map +1 -1
  57. package/dist/cjs/src/storage/knex/KnexStorage.js +98 -61
  58. package/dist/cjs/src/storage/knex/KnexStorage.js.map +1 -1
  59. package/dist/cjs/src/storage/knex/all-migrations.d.ts.map +1 -1
  60. package/dist/cjs/src/storage/knex/all-migrations.js +5 -1
  61. package/dist/cjs/src/storage/knex/all-migrations.js.map +1 -1
  62. package/dist/cjs/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.d.ts +4 -0
  63. package/dist/cjs/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.d.ts.map +1 -0
  64. package/dist/cjs/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.js +36 -0
  65. package/dist/cjs/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.js.map +1 -0
  66. package/dist/cjs/src/storage/knex/migrations/2026-09-20-001-spent-by.d.ts +5 -0
  67. package/dist/cjs/src/storage/knex/migrations/2026-09-20-001-spent-by.d.ts.map +1 -0
  68. package/dist/cjs/src/storage/knex/migrations/2026-09-20-001-spent-by.js +16 -0
  69. package/dist/cjs/src/storage/knex/migrations/2026-09-20-001-spent-by.js.map +1 -0
  70. package/dist/cjs/src/storage/mongo/MongoAdmissionPlan.d.ts +18 -0
  71. package/dist/cjs/src/storage/mongo/MongoAdmissionPlan.d.ts.map +1 -0
  72. package/dist/cjs/src/storage/mongo/MongoAdmissionPlan.js +229 -0
  73. package/dist/cjs/src/storage/mongo/MongoAdmissionPlan.js.map +1 -0
  74. package/dist/cjs/src/storage/mongo/MongoAdmissionStorage.d.ts +112 -0
  75. package/dist/cjs/src/storage/mongo/MongoAdmissionStorage.d.ts.map +1 -0
  76. package/dist/cjs/src/storage/mongo/MongoAdmissionStorage.js +675 -0
  77. package/dist/cjs/src/storage/mongo/MongoAdmissionStorage.js.map +1 -0
  78. package/dist/cjs/src/storage/mongo/MongoOverlayStorage.d.ts +71 -0
  79. package/dist/cjs/src/storage/mongo/MongoOverlayStorage.d.ts.map +1 -0
  80. package/dist/cjs/src/storage/mongo/MongoOverlayStorage.js +453 -0
  81. package/dist/cjs/src/storage/mongo/MongoOverlayStorage.js.map +1 -0
  82. package/dist/cjs/src/storage/mongo/MongoPayloadStore.d.ts +134 -0
  83. package/dist/cjs/src/storage/mongo/MongoPayloadStore.d.ts.map +1 -0
  84. package/dist/cjs/src/storage/mongo/MongoPayloadStore.js +756 -0
  85. package/dist/cjs/src/storage/mongo/MongoPayloadStore.js.map +1 -0
  86. package/dist/cjs/src/storage/mongo/MongoReadGuards.d.ts +44 -0
  87. package/dist/cjs/src/storage/mongo/MongoReadGuards.d.ts.map +1 -0
  88. package/dist/cjs/src/storage/mongo/MongoReadGuards.js +135 -0
  89. package/dist/cjs/src/storage/mongo/MongoReadGuards.js.map +1 -0
  90. package/dist/cjs/src/storage/mongo/MongoSchema.d.ts +67 -0
  91. package/dist/cjs/src/storage/mongo/MongoSchema.d.ts.map +1 -0
  92. package/dist/cjs/src/storage/mongo/MongoSchema.js +743 -0
  93. package/dist/cjs/src/storage/mongo/MongoSchema.js.map +1 -0
  94. package/dist/cjs/src/storage/mongo/MongoTransactionRunner.d.ts +69 -0
  95. package/dist/cjs/src/storage/mongo/MongoTransactionRunner.d.ts.map +1 -0
  96. package/dist/cjs/src/storage/mongo/MongoTransactionRunner.js +368 -0
  97. package/dist/cjs/src/storage/mongo/MongoTransactionRunner.js.map +1 -0
  98. package/dist/cjs/src/storage/mongo.d.ts +9 -0
  99. package/dist/cjs/src/storage/mongo.d.ts.map +1 -0
  100. package/dist/cjs/src/storage/mongo.js +25 -0
  101. package/dist/cjs/src/storage/mongo.js.map +1 -0
  102. package/dist/esm/mod.js +3 -0
  103. package/dist/esm/mod.js.map +1 -1
  104. package/dist/esm/src/BASM.js +21 -8
  105. package/dist/esm/src/BASM.js.map +1 -1
  106. package/dist/esm/src/BASMRemote.js +176 -12
  107. package/dist/esm/src/BASMRemote.js.map +1 -1
  108. package/dist/esm/src/BASMValidation.js +95 -0
  109. package/dist/esm/src/BASMValidation.js.map +1 -0
  110. package/dist/esm/src/DiscoveryAdvertisementValidation.js +57 -0
  111. package/dist/esm/src/DiscoveryAdvertisementValidation.js.map +1 -0
  112. package/dist/esm/src/Engine.js +1698 -326
  113. package/dist/esm/src/Engine.js.map +1 -1
  114. package/dist/esm/src/EngineAdmission.js +280 -0
  115. package/dist/esm/src/EngineAdmission.js.map +1 -0
  116. package/dist/esm/src/GASP/OverlayGASPRemote.js +27 -43
  117. package/dist/esm/src/GASP/OverlayGASPRemote.js.map +1 -1
  118. package/dist/esm/src/GASP/OverlayGASPStorage.js +200 -56
  119. package/dist/esm/src/GASP/OverlayGASPStorage.js.map +1 -1
  120. package/dist/esm/src/RemoteSecurity.js +279 -0
  121. package/dist/esm/src/RemoteSecurity.js.map +1 -0
  122. package/dist/esm/src/storage/AdmissionStorage.js +85 -0
  123. package/dist/esm/src/storage/AdmissionStorage.js.map +1 -0
  124. package/dist/esm/src/storage/RecoveryContract.js +31 -0
  125. package/dist/esm/src/storage/RecoveryContract.js.map +1 -0
  126. package/dist/esm/src/storage/Storage.js +4 -1
  127. package/dist/esm/src/storage/Storage.js.map +1 -1
  128. package/dist/esm/src/storage/knex/KnexStorage.js +98 -61
  129. package/dist/esm/src/storage/knex/KnexStorage.js.map +1 -1
  130. package/dist/esm/src/storage/knex/all-migrations.js +5 -1
  131. package/dist/esm/src/storage/knex/all-migrations.js.map +1 -1
  132. package/dist/esm/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.js +32 -0
  133. package/dist/esm/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.js.map +1 -0
  134. package/dist/esm/src/storage/knex/migrations/2026-09-20-001-spent-by.js +12 -0
  135. package/dist/esm/src/storage/knex/migrations/2026-09-20-001-spent-by.js.map +1 -0
  136. package/dist/esm/src/storage/mongo/MongoAdmissionPlan.js +217 -0
  137. package/dist/esm/src/storage/mongo/MongoAdmissionPlan.js.map +1 -0
  138. package/dist/esm/src/storage/mongo/MongoAdmissionStorage.js +673 -0
  139. package/dist/esm/src/storage/mongo/MongoAdmissionStorage.js.map +1 -0
  140. package/dist/esm/src/storage/mongo/MongoOverlayStorage.js +451 -0
  141. package/dist/esm/src/storage/mongo/MongoOverlayStorage.js.map +1 -0
  142. package/dist/esm/src/storage/mongo/MongoPayloadStore.js +747 -0
  143. package/dist/esm/src/storage/mongo/MongoPayloadStore.js.map +1 -0
  144. package/dist/esm/src/storage/mongo/MongoReadGuards.js +129 -0
  145. package/dist/esm/src/storage/mongo/MongoReadGuards.js.map +1 -0
  146. package/dist/esm/src/storage/mongo/MongoSchema.js +730 -0
  147. package/dist/esm/src/storage/mongo/MongoSchema.js.map +1 -0
  148. package/dist/esm/src/storage/mongo/MongoTransactionRunner.js +371 -0
  149. package/dist/esm/src/storage/mongo/MongoTransactionRunner.js.map +1 -0
  150. package/dist/esm/src/storage/mongo.js +9 -0
  151. package/dist/esm/src/storage/mongo.js.map +1 -0
  152. package/dist/types/mod.d.ts +3 -0
  153. package/dist/types/mod.d.ts.map +1 -1
  154. package/dist/types/src/BASM.d.ts +6 -0
  155. package/dist/types/src/BASM.d.ts.map +1 -1
  156. package/dist/types/src/BASMRemote.d.ts +8 -1
  157. package/dist/types/src/BASMRemote.d.ts.map +1 -1
  158. package/dist/types/src/BASMValidation.d.ts +27 -0
  159. package/dist/types/src/BASMValidation.d.ts.map +1 -0
  160. package/dist/types/src/DiscoveryAdvertisementValidation.d.ts +11 -0
  161. package/dist/types/src/DiscoveryAdvertisementValidation.d.ts.map +1 -0
  162. package/dist/types/src/Engine.d.ts +37 -13
  163. package/dist/types/src/Engine.d.ts.map +1 -1
  164. package/dist/types/src/EngineAdmission.d.ts +70 -0
  165. package/dist/types/src/EngineAdmission.d.ts.map +1 -0
  166. package/dist/types/src/GASP/OverlayGASPRemote.d.ts +4 -3
  167. package/dist/types/src/GASP/OverlayGASPRemote.d.ts.map +1 -1
  168. package/dist/types/src/GASP/OverlayGASPStorage.d.ts +22 -16
  169. package/dist/types/src/GASP/OverlayGASPStorage.d.ts.map +1 -1
  170. package/dist/types/src/RemoteSecurity.d.ts +50 -0
  171. package/dist/types/src/RemoteSecurity.d.ts.map +1 -0
  172. package/dist/types/src/storage/AdmissionStorage.d.ts +185 -0
  173. package/dist/types/src/storage/AdmissionStorage.d.ts.map +1 -0
  174. package/dist/types/src/storage/RecoveryContract.d.ts +50 -0
  175. package/dist/types/src/storage/RecoveryContract.d.ts.map +1 -0
  176. package/dist/types/src/storage/Storage.d.ts +32 -19
  177. package/dist/types/src/storage/Storage.d.ts.map +1 -1
  178. package/dist/types/src/storage/knex/KnexStorage.d.ts +8 -8
  179. package/dist/types/src/storage/knex/KnexStorage.d.ts.map +1 -1
  180. package/dist/types/src/storage/knex/all-migrations.d.ts.map +1 -1
  181. package/dist/types/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.d.ts +4 -0
  182. package/dist/types/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.d.ts.map +1 -0
  183. package/dist/types/src/storage/knex/migrations/2026-09-20-001-spent-by.d.ts +5 -0
  184. package/dist/types/src/storage/knex/migrations/2026-09-20-001-spent-by.d.ts.map +1 -0
  185. package/dist/types/src/storage/mongo/MongoAdmissionPlan.d.ts +18 -0
  186. package/dist/types/src/storage/mongo/MongoAdmissionPlan.d.ts.map +1 -0
  187. package/dist/types/src/storage/mongo/MongoAdmissionStorage.d.ts +112 -0
  188. package/dist/types/src/storage/mongo/MongoAdmissionStorage.d.ts.map +1 -0
  189. package/dist/types/src/storage/mongo/MongoOverlayStorage.d.ts +71 -0
  190. package/dist/types/src/storage/mongo/MongoOverlayStorage.d.ts.map +1 -0
  191. package/dist/types/src/storage/mongo/MongoPayloadStore.d.ts +134 -0
  192. package/dist/types/src/storage/mongo/MongoPayloadStore.d.ts.map +1 -0
  193. package/dist/types/src/storage/mongo/MongoReadGuards.d.ts +44 -0
  194. package/dist/types/src/storage/mongo/MongoReadGuards.d.ts.map +1 -0
  195. package/dist/types/src/storage/mongo/MongoSchema.d.ts +67 -0
  196. package/dist/types/src/storage/mongo/MongoSchema.d.ts.map +1 -0
  197. package/dist/types/src/storage/mongo/MongoTransactionRunner.d.ts +69 -0
  198. package/dist/types/src/storage/mongo/MongoTransactionRunner.d.ts.map +1 -0
  199. package/dist/types/src/storage/mongo.d.ts +9 -0
  200. package/dist/types/src/storage/mongo.d.ts.map +1 -0
  201. package/package.json +11 -5
@@ -0,0 +1,50 @@
1
+ import { type HistoryFence, type StorageScope, type StorageUint64 } from './AdmissionStorage.js';
2
+ export interface RecoveryLease extends HistoryFence {
3
+ scope: StorageScope;
4
+ topic: string;
5
+ peerId: string;
6
+ jobId: string;
7
+ leaseToken: StorageUint64;
8
+ expiresAtMs: StorageUint64;
9
+ }
10
+ /** Use database time and this predicate INSIDE the checkpoint/publication CAS. */
11
+ export declare function isRecoveryLeaseCurrent(expected: RecoveryLease, current: RecoveryLease, nowMs: StorageUint64): boolean;
12
+ /** A repair's own revision/checkpoint must move together; other workers rewind. */
13
+ export interface HistoryRevisionHandoff {
14
+ expected: RecoveryLease;
15
+ checkpoint: string;
16
+ }
17
+ /** Immutable history; a current pointer must CAS both revisions and the header. */
18
+ export interface TopicAnchorRevision extends HistoryFence {
19
+ scope: StorageScope;
20
+ topic: string;
21
+ height: StorageUint64;
22
+ blockHash: string;
23
+ basmRoot: string;
24
+ admittedCount: StorageUint64;
25
+ tac: string;
26
+ previousTac: string;
27
+ policyId: string;
28
+ }
29
+ /** A local tuple does not negotiate a remote protocol. Evidence comes from S06. */
30
+ export type GaspCursorEvidence = {
31
+ mode: 'negotiated-tuple';
32
+ negotiated: boolean;
33
+ pageFinalized: boolean;
34
+ } | {
35
+ mode: 'inclusive-since';
36
+ inclusiveSemanticsProven: boolean;
37
+ equalScoreDrained: boolean;
38
+ pageFinalized: boolean;
39
+ } | {
40
+ mode: 'full-resync';
41
+ noSkipSemanticsProven: boolean;
42
+ resyncCompleted: boolean;
43
+ pageFinalized: boolean;
44
+ } | {
45
+ mode: 'unsupported';
46
+ pageFinalized: boolean;
47
+ };
48
+ /** Gate for a durable finalization/cursor transaction; never advances a cursor. */
49
+ export declare function canAdvanceGaspCursor(evidence: GaspCursorEvidence): boolean;
50
+ //# sourceMappingURL=RecoveryContract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecoveryContract.d.ts","sourceRoot":"","sources":["../../../../src/storage/RecoveryContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,aAAa,CAAA;IACzB,WAAW,EAAE,aAAa,CAAA;CAC3B;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,aAAa,GACnB,OAAO,CAcT;AAED,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GACzE;IACE,IAAI,EAAE,iBAAiB,CAAA;IACvB,wBAAwB,EAAE,OAAO,CAAA;IACjC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,aAAa,EAAE,OAAO,CAAA;CACvB,GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;CACvB,GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAAA;AAEnD,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAY1E"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isRecoveryLeaseCurrent = isRecoveryLeaseCurrent;
4
+ exports.canAdvanceGaspCursor = canAdvanceGaspCursor;
5
+ const AdmissionStorage_js_1 = require("./AdmissionStorage.js");
6
+ /** Use database time and this predicate INSIDE the checkpoint/publication CAS. */
7
+ function isRecoveryLeaseCurrent(expected, current, nowMs) {
8
+ return (expected.scope.network === current.scope.network &&
9
+ expected.scope.genesisHash === current.scope.genesisHash &&
10
+ expected.scope.nodeId === current.scope.nodeId &&
11
+ expected.topic === current.topic &&
12
+ expected.peerId === current.peerId &&
13
+ expected.jobId === current.jobId &&
14
+ (0, AdmissionStorage_js_1.parseStorageUint64)(expected.chainEpoch) === (0, AdmissionStorage_js_1.parseStorageUint64)(current.chainEpoch) &&
15
+ (0, AdmissionStorage_js_1.parseStorageUint64)(expected.topicHistoryGeneration) ===
16
+ (0, AdmissionStorage_js_1.parseStorageUint64)(current.topicHistoryGeneration) &&
17
+ (0, AdmissionStorage_js_1.parseStorageUint64)(expected.leaseToken) === (0, AdmissionStorage_js_1.parseStorageUint64)(current.leaseToken) &&
18
+ (0, AdmissionStorage_js_1.parseStorageUint64)(current.expiresAtMs) > (0, AdmissionStorage_js_1.parseStorageUint64)(nowMs));
19
+ }
20
+ /** Gate for a durable finalization/cursor transaction; never advances a cursor. */
21
+ function canAdvanceGaspCursor(evidence) {
22
+ if (!evidence.pageFinalized)
23
+ return false;
24
+ switch (evidence.mode) {
25
+ case 'negotiated-tuple':
26
+ return evidence.negotiated;
27
+ case 'inclusive-since':
28
+ return evidence.inclusiveSemanticsProven && evidence.equalScoreDrained;
29
+ case 'full-resync':
30
+ return evidence.noSkipSemanticsProven && evidence.resyncCompleted;
31
+ default:
32
+ return false;
33
+ }
34
+ }
35
+ //# sourceMappingURL=RecoveryContract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecoveryContract.js","sourceRoot":"","sources":["../../../../src/storage/RecoveryContract.ts"],"names":[],"mappings":";;;;AAAA,+DAK8B;AAW9B,kFAAkF;AAClF,gCACE,QAAuB,EACvB,OAAsB,EACtB,KAAoB;IAEpB,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO;QAChD,QAAQ,CAAC,KAAK,CAAC,WAAW,KAAK,OAAO,CAAC,KAAK,CAAC,WAAW;QACxD,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM;QAC9C,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QAChC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QAClC,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QAChC,IAAA,wCAAkB,EAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAA,wCAAkB,EAAC,OAAO,CAAC,UAAU,CAAC;QAClF,IAAA,wCAAkB,EAAC,QAAQ,CAAC,sBAAsB,CAAC;YACjD,IAAA,wCAAkB,EAAC,OAAO,CAAC,sBAAsB,CAAC;QACpD,IAAA,wCAAkB,EAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAA,wCAAkB,EAAC,OAAO,CAAC,UAAU,CAAC;QAClF,IAAA,wCAAkB,EAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAA,wCAAkB,EAAC,KAAK,CAAC,CACpE,CAAA;AACH,CAAC;AAsCD,mFAAmF;AACnF,8BAAqC,QAA4B;IAC/D,IAAI,CAAC,QAAQ,CAAC,aAAa;QAAE,OAAO,KAAK,CAAA;IACzC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,kBAAkB;YACrB,OAAO,QAAQ,CAAC,UAAU,CAAA;QAC5B,KAAK,iBAAiB;YACpB,OAAO,QAAQ,CAAC,wBAAwB,IAAI,QAAQ,CAAC,iBAAiB,CAAA;QACxE,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC,qBAAqB,IAAI,QAAQ,CAAC,eAAe,CAAA;QACnE;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Output } from '../Output.js';
2
+ import type { AdmissionStorage } from './AdmissionStorage.js';
2
3
  import type { AdmittedTxRef, RawTransactionRecord, TopicAnchorTip, TopicBlockAnchor } from '../BASM.js';
3
4
  /**
4
5
  * Represents a transaction that has been applied to a topic.
@@ -48,10 +49,16 @@ export interface UnprovenAppliedTransactionCandidate {
48
49
  outputIndex: number;
49
50
  }>;
50
51
  }
52
+ export interface UnprovenQueryLimits {
53
+ maxCandidates: number;
54
+ maxOutputs: number;
55
+ }
51
56
  /**
52
57
  * Defines the Storage Engine interface used internally by the Overlay Services Engine.
53
58
  */
54
59
  export interface Storage {
60
+ /** Optional whole-admission contract. Legacy CRUD does not imply this capability. */
61
+ readonly admission?: AdmissionStorage;
55
62
  /**
56
63
  * Adds a new output to storage
57
64
  * @param utxo — The output to add
@@ -81,7 +88,7 @@ export interface Storage {
81
88
  * @param txid — TXID of the outputs to find
82
89
  * @param includeBEEF — Whether to include the BEEF data for the outputs (optional)
83
90
  */
84
- findOutputsForTransaction: (txid: string, includeBEEF?: boolean) => Promise<Output[]>;
91
+ findOutputsForTransaction: (txid: string, includeBEEF?: boolean, limit?: number) => Promise<Output[]>;
85
92
  /**
86
93
  * Finds current UTXOs that have been admitted into a given topic
87
94
  * @param topic - The topic for which we want to find Unspent Transaction Outputs (UTXOs).
@@ -99,19 +106,23 @@ export interface Storage {
99
106
  */
100
107
  deleteOutput: (txid: string, outputIndex: number, topic: string) => Promise<void>;
101
108
  /**
102
- * Updates a UTXO as spent
103
- * @param txid — TXID of the output to update
104
- * @param outputIndex — Index of the output to update
105
- * @param topic — Topic in which the output should be updated
106
- */
107
- markUTXOAsSpent: (txid: string, outputIndex: number, topic: string) => Promise<void>;
108
- /**
109
- * Updates which outputs are consumed by this output
110
- * @param txid — TXID of the output to update
111
- * @param outputIndex Index of the output to update
112
- * @param topic — Topic in which the output should be updated
113
- * @param consumedBy The new set of outputs consumed by this output
114
- */
109
+ * Updates a UTXO as spent
110
+ * @param txid — TXID of the output to update
111
+ * @param outputIndex — Index of the output to update
112
+ * @param topic — Topic in which the output should be updated
113
+ * @param spendingTxid — Optional transaction claiming the spend. Repeating
114
+ * the same claim is idempotent; a different spender must still fail.
115
+ * @throws If the topical output does not exist or was spent by a different
116
+ * transaction. Storage implementations must make this check and update atomic.
117
+ */
118
+ markUTXOAsSpent: (txid: string, outputIndex: number, topic: string, spendingTxid?: string) => Promise<void>;
119
+ /**
120
+ * Updates which outputs are consumed by this output
121
+ * @param txid — TXID of the output to update
122
+ * @param outputIndex — Index of the output to update
123
+ * @param topic — Topic in which the output should be updated
124
+ * @param consumedBy — The new set of outputs consumed by this output
125
+ */
115
126
  updateConsumedBy: (txid: string, outputIndex: number, topic: string, consumedBy: Array<{
116
127
  txid: string;
117
128
  outputIndex: number;
@@ -153,7 +164,7 @@ export interface Storage {
153
164
  /**
154
165
  * Returns proven topic transactions admitted in one block, in canonical block order.
155
166
  */
156
- findAdmittedTransactionsForBlock?: (topic: string, blockHeight: number, blockHash?: string) => Promise<AdmittedTxRef[]>;
167
+ findAdmittedTransactionsForBlock?: (topic: string, blockHeight: number, blockHash?: string, limit?: number) => Promise<AdmittedTxRef[]>;
157
168
  /**
158
169
  * Persists or replaces a topic block anchor for one height.
159
170
  */
@@ -165,7 +176,7 @@ export interface Storage {
165
176
  /**
166
177
  * Returns topic block anchors across a closed height range.
167
178
  */
168
- findTopicBlockAnchors?: (topic: string, fromHeight: number, toHeight: number) => Promise<TopicBlockAnchor[]>;
179
+ findTopicBlockAnchors?: (topic: string, fromHeight: number, toHeight: number, limit?: number) => Promise<TopicBlockAnchor[]>;
169
180
  /**
170
181
  * Returns the latest known topic anchor tip.
171
182
  */
@@ -188,7 +199,7 @@ export interface Storage {
188
199
  /**
189
200
  * Finds topic-applied transactions with no direct proof old enough to evict.
190
201
  */
191
- findUnprovenAppliedTransactions?: (cutoffHeight: number, topic?: string) => Promise<UnprovenAppliedTransactionCandidate[]>;
202
+ findUnprovenAppliedTransactions?: (cutoffHeight: number, topic?: string, limits?: UnprovenQueryLimits) => Promise<UnprovenAppliedTransactionCandidate[]>;
192
203
  /**
193
204
  * Deletes a topic-applied transaction record.
194
205
  */
@@ -197,7 +208,7 @@ export interface Storage {
197
208
  * Returns proven topic-applied transactions whose proof anchors to the given
198
209
  * block hash. Used to demote admissions when that block is reorged out.
199
210
  */
200
- findProvenAppliedTransactionsByBlockHash?: (blockHash: string) => Promise<Array<{
211
+ findProvenAppliedTransactionsByBlockHash?: (blockHash: string, limit?: number) => Promise<Array<{
201
212
  txid: string;
202
213
  topic: string;
203
214
  blockHeight: number;
@@ -206,7 +217,7 @@ export interface Storage {
206
217
  * Returns proven topic-applied transactions in a closed block-height range,
207
218
  * including the proof's block hash and merkle root for revalidation sweeps.
208
219
  */
209
- findProvenAppliedTransactionsInRange?: (fromHeight: number, toHeight: number, topic?: string) => Promise<Array<{
220
+ findProvenAppliedTransactionsInRange?: (fromHeight: number, toHeight: number, topic?: string, limit?: number) => Promise<Array<{
210
221
  txid: string;
211
222
  topic: string;
212
223
  blockHeight: number;
@@ -234,4 +245,6 @@ export interface Storage {
234
245
  */
235
246
  getLastInteraction: (host: string, topic: string) => Promise<number>;
236
247
  }
248
+ /** True when the optional admission field is present. Protocol detection is separate. */
249
+ export declare function storageHasAdmission(storage: Storage): boolean;
237
250
  //# sourceMappingURL=Storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../../../../src/storage/Storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../../../../src/storage/Storage.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storageHasAdmission = storageHasAdmission;
4
+ /** True when the optional admission field is present. Protocol detection is separate. */
5
+ function storageHasAdmission(storage) {
6
+ return storage.admission !== undefined;
7
+ }
3
8
  //# sourceMappingURL=Storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../../src/storage/Storage.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../../src/storage/Storage.ts"],"names":[],"mappings":";;;AAoVA,yFAAyF;AACzF,6BAAoC,OAAgB;IAClD,OAAO,OAAO,CAAC,SAAS,KAAK,SAAS,CAAA;AACxC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Storage, type AppliedTransaction, type AppliedTransactionProofUpdate, type StoredTransactionRecord, type UnprovenAppliedTransactionCandidate } from '../Storage.js';
1
+ import { Storage, type AppliedTransaction, type AppliedTransactionProofUpdate, type StoredTransactionRecord, type UnprovenAppliedTransactionCandidate, type UnprovenQueryLimits } from '../Storage.js';
2
2
  import { Knex } from 'knex';
3
3
  import type { Output } from '../../Output.js';
4
4
  import { type AdmittedTxRef, type RawTransactionRecord, type TopicAnchorTip, type TopicBlockAnchor } from '../../BASM.js';
@@ -16,11 +16,11 @@ export declare class KnexStorage implements Storage {
16
16
  txid: string;
17
17
  outputIndex: number;
18
18
  }>, includeBEEF?: boolean): Promise<Output[]>;
19
- findOutputsForTransaction(txid: string, includeBEEF?: boolean): Promise<Output[]>;
19
+ findOutputsForTransaction(txid: string, includeBEEF?: boolean, limit?: number): Promise<Output[]>;
20
20
  findUTXOsForTopic(topic: string, since?: number, limit?: number, includeBEEF?: boolean): Promise<Output[]>;
21
21
  deleteOutput(txid: string, outputIndex: number, topic: string): Promise<void>;
22
22
  insertOutput(output: Output): Promise<void>;
23
- markUTXOAsSpent(txid: string, outputIndex: number, topic?: string): Promise<void>;
23
+ markUTXOAsSpent(txid: string, outputIndex: number, topic: string, spendingTxid?: string): Promise<void>;
24
24
  updateConsumedBy(txid: string, outputIndex: number, topic: string, consumedBy: Array<{
25
25
  txid: string;
26
26
  outputIndex: number;
@@ -36,10 +36,10 @@ export declare class KnexStorage implements Storage {
36
36
  }): Promise<boolean>;
37
37
  updateLastInteraction(host: string, topic: string, since: number): Promise<void>;
38
38
  getLastInteraction(host: string, topic: string): Promise<number>;
39
- findAdmittedTransactionsForBlock(topic: string, blockHeight: number, blockHash?: string): Promise<AdmittedTxRef[]>;
39
+ findAdmittedTransactionsForBlock(topic: string, blockHeight: number, blockHash?: string, limit?: number): Promise<AdmittedTxRef[]>;
40
40
  upsertTopicBlockAnchor(anchor: TopicBlockAnchor): Promise<void>;
41
41
  findTopicBlockAnchor(topic: string, blockHeight: number, blockHash?: string): Promise<TopicBlockAnchor | undefined>;
42
- findTopicBlockAnchors(topic: string, fromHeight: number, toHeight: number): Promise<TopicBlockAnchor[]>;
42
+ findTopicBlockAnchors(topic: string, fromHeight: number, toHeight: number, limit?: number): Promise<TopicBlockAnchor[]>;
43
43
  findTopicAnchorTip(topic: string): Promise<TopicAnchorTip | undefined>;
44
44
  findRawTransactions(txids: string[]): Promise<RawTransactionRecord[]>;
45
45
  findTransactionMerklePaths(txids: string[]): Promise<Array<{
@@ -50,14 +50,14 @@ export declare class KnexStorage implements Storage {
50
50
  blockIndex?: number;
51
51
  merkleRoot?: string;
52
52
  }>>;
53
- findUnprovenAppliedTransactions(cutoffHeight: number, topic?: string): Promise<UnprovenAppliedTransactionCandidate[]>;
53
+ findUnprovenAppliedTransactions(cutoffHeight: number, topic?: string, limits?: UnprovenQueryLimits): Promise<UnprovenAppliedTransactionCandidate[]>;
54
54
  deleteAppliedTransaction(txid: string, topic: string): Promise<void>;
55
- findProvenAppliedTransactionsByBlockHash(blockHash: string): Promise<Array<{
55
+ findProvenAppliedTransactionsByBlockHash(blockHash: string, limit?: number): Promise<Array<{
56
56
  txid: string;
57
57
  topic: string;
58
58
  blockHeight: number;
59
59
  }>>;
60
- findProvenAppliedTransactionsInRange(fromHeight: number, toHeight: number, topic?: string): Promise<Array<{
60
+ findProvenAppliedTransactionsInRange(fromHeight: number, toHeight: number, topic?: string, limit?: number): Promise<Array<{
61
61
  txid: string;
62
62
  topic: string;
63
63
  blockHeight: number;
@@ -1 +1 @@
1
- {"version":3,"file":"KnexStorage.d.ts","sourceRoot":"","sources":["../../../../../src/storage/knex/KnexStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,mCAAmC,EACzC,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EAEtB,MAAM,eAAe,CAAA;AAetB,qBAAa,WAAY,YAAW,OAAO;IACzC,IAAI,EAAE,IAAI,CAAA;IAEV,YAAa,IAAI,EAAE,IAAI,EAEtB;IAED,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,yBAAyB;YAcnB,uBAAuB;IAkB/B,UAAU,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6B1I;IAEK,sBAAsB,CAC1B,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,EACvD,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BnB;IAEK,yBAAyB,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAe9F;IAEK,iBAAiB,CAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiCvH;IAEK,YAAY,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAanF;IAEK,YAAY,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCjD;IAEK,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvF;IAEK,gBAAgB,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjJ;IAEK,qBAAqB,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAExE;IAEK,uBAAuB,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnH;IAEK,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB5E;IAEK,6BAA6B,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBxF;IAEK,wBAAwB,CAAE,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE;IAEK,2BAA2B,CAAE,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAOxF;IAEK,qBAAqB,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtF;IAEK,kBAAkB,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOtE;IAEK,gCAAgC,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAiBvH;IAEK,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpE;IAEK,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAiBxH;IAEK,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAgB5G;IAEK,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAsB3E;IAEK,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAoB1E;IAEK,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/D,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAC,CAAC,CAoCF;IAEK,+BAA+B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mCAAmC,EAAE,CAAC,CAiC1H;IAEK,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;IAEK,wCAAwC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAWtI;IAEK,oCAAoC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAmB9M;IAEK,kCAAkC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcnF;CACF"}
1
+ {"version":3,"file":"KnexStorage.d.ts","sourceRoot":"","sources":["../../../../../src/storage/knex/KnexStorage.ts"],"names":[],"mappings":"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"}