@bsv/overlay 2.0.2 → 2.0.4

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 (82) hide show
  1. package/dist/cjs/mod.js +6 -1
  2. package/dist/cjs/mod.js.map +1 -1
  3. package/dist/cjs/package.json +13 -11
  4. package/dist/cjs/src/BASM.js +92 -0
  5. package/dist/cjs/src/BASM.js.map +1 -0
  6. package/dist/cjs/src/BASMRemote.js +43 -0
  7. package/dist/cjs/src/BASMRemote.js.map +1 -0
  8. package/dist/cjs/src/Engine.js +649 -47
  9. package/dist/cjs/src/Engine.js.map +1 -1
  10. package/dist/cjs/src/GASP/OverlayGASPRemote.js +2 -2
  11. package/dist/cjs/src/GASP/OverlayGASPRemote.js.map +1 -1
  12. package/dist/cjs/src/GASP/OverlayGASPStorage.js +18 -25
  13. package/dist/cjs/src/GASP/OverlayGASPStorage.js.map +1 -1
  14. package/dist/cjs/src/storage/knex/KnexStorage.js +329 -12
  15. package/dist/cjs/src/storage/knex/KnexStorage.js.map +1 -1
  16. package/dist/cjs/src/storage/knex/all-migrations.js +3 -1
  17. package/dist/cjs/src/storage/knex/all-migrations.js.map +1 -1
  18. package/dist/cjs/src/storage/knex/migrations/2025-05-28-001-enlarge.js +2 -24
  19. package/dist/cjs/src/storage/knex/migrations/2025-05-28-001-enlarge.js.map +1 -1
  20. package/dist/cjs/src/storage/knex/migrations/2026-05-29-001-brc136-basm.js +114 -0
  21. package/dist/cjs/src/storage/knex/migrations/2026-05-29-001-brc136-basm.js.map +1 -0
  22. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  23. package/dist/esm/mod.js +1 -0
  24. package/dist/esm/mod.js.map +1 -1
  25. package/dist/esm/src/BASM.js +85 -0
  26. package/dist/esm/src/BASM.js.map +1 -0
  27. package/dist/esm/src/BASMRemote.js +42 -0
  28. package/dist/esm/src/BASMRemote.js.map +1 -0
  29. package/dist/esm/src/Engine.js +637 -46
  30. package/dist/esm/src/Engine.js.map +1 -1
  31. package/dist/esm/src/GASP/OverlayGASPRemote.js +2 -2
  32. package/dist/esm/src/GASP/OverlayGASPRemote.js.map +1 -1
  33. package/dist/esm/src/GASP/OverlayGASPStorage.js +18 -25
  34. package/dist/esm/src/GASP/OverlayGASPStorage.js.map +1 -1
  35. package/dist/esm/src/storage/knex/KnexStorage.js +323 -12
  36. package/dist/esm/src/storage/knex/KnexStorage.js.map +1 -1
  37. package/dist/esm/src/storage/knex/all-migrations.js +3 -1
  38. package/dist/esm/src/storage/knex/all-migrations.js.map +1 -1
  39. package/dist/esm/src/storage/knex/migrations/2025-05-28-001-enlarge.js +2 -24
  40. package/dist/esm/src/storage/knex/migrations/2025-05-28-001-enlarge.js.map +1 -1
  41. package/dist/esm/src/storage/knex/migrations/2026-05-29-001-brc136-basm.js +109 -0
  42. package/dist/esm/src/storage/knex/migrations/2026-05-29-001-brc136-basm.js.map +1 -0
  43. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  44. package/dist/types/mod.d.ts +2 -0
  45. package/dist/types/mod.d.ts.map +1 -1
  46. package/dist/types/src/BASM.d.ts +110 -0
  47. package/dist/types/src/BASM.d.ts.map +1 -0
  48. package/dist/types/src/BASMRemote.d.ts +14 -0
  49. package/dist/types/src/BASMRemote.d.ts.map +1 -0
  50. package/dist/types/src/Engine.d.ts +78 -1
  51. package/dist/types/src/Engine.d.ts.map +1 -1
  52. package/dist/types/src/GASP/OverlayGASPStorage.d.ts +1 -1
  53. package/dist/types/src/GASP/OverlayGASPStorage.d.ts.map +1 -1
  54. package/dist/types/src/LookupService.d.ts.map +1 -1
  55. package/dist/types/src/storage/Storage.d.ts +118 -0
  56. package/dist/types/src/storage/Storage.d.ts.map +1 -1
  57. package/dist/types/src/storage/knex/KnexStorage.d.ts +38 -6
  58. package/dist/types/src/storage/knex/KnexStorage.d.ts.map +1 -1
  59. package/dist/types/src/storage/knex/all-migrations.d.ts.map +1 -1
  60. package/dist/types/src/storage/knex/migrations/2025-05-28-001-enlarge.d.ts.map +1 -1
  61. package/dist/types/src/storage/knex/migrations/2026-05-29-001-brc136-basm.d.ts +4 -0
  62. package/dist/types/src/storage/knex/migrations/2026-05-29-001-brc136-basm.d.ts.map +1 -0
  63. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  64. package/docs/BRC-136-BASM.md +285 -0
  65. package/docs/README.md +2 -0
  66. package/docs/Synchronization.md +10 -1
  67. package/mod.ts +25 -1
  68. package/package.json +25 -23
  69. package/src/BASM.ts +208 -0
  70. package/src/BASMRemote.ts +54 -0
  71. package/src/Engine.ts +762 -47
  72. package/src/GASP/OverlayGASPRemote.ts +2 -2
  73. package/src/GASP/OverlayGASPStorage.ts +17 -22
  74. package/src/LookupService.ts +2 -1
  75. package/src/__tests/BASM.test.ts +44 -0
  76. package/src/__tests/BASMChain.test.ts +290 -0
  77. package/src/__tests/Engine.test.ts +3 -4
  78. package/src/storage/Storage.ts +127 -0
  79. package/src/storage/knex/KnexStorage.ts +376 -14
  80. package/src/storage/knex/all-migrations.ts +3 -1
  81. package/src/storage/knex/migrations/2025-05-28-001-enlarge.ts +2 -22
  82. package/src/storage/knex/migrations/2026-05-29-001-brc136-basm.ts +123 -0
@@ -0,0 +1,110 @@
1
+ import { MerklePath } from '@bsv/sdk';
2
+ export declare const BASM_ZERO_HASH = "0000000000000000000000000000000000000000000000000000000000000000";
3
+ export interface TopicBlockAnchor {
4
+ topic: string;
5
+ blockHeight: number;
6
+ blockHash: string;
7
+ basmRoot: string;
8
+ admittedCount: number;
9
+ tac: string;
10
+ }
11
+ export interface TopicAnchorTip {
12
+ topic: string;
13
+ blockHeight: number;
14
+ blockHash?: string;
15
+ basmRoot?: string;
16
+ admittedCount?: number;
17
+ tac: string;
18
+ }
19
+ export interface AdmittedTxRef {
20
+ txid: string;
21
+ blockIndex: number;
22
+ }
23
+ export interface RawTransactionRecord {
24
+ txid: string;
25
+ rawTx: string;
26
+ }
27
+ export interface RawTransactionRequest {
28
+ txids: string[];
29
+ }
30
+ export interface RawTransactionResponse {
31
+ transactions: RawTransactionRecord[];
32
+ missing: string[];
33
+ }
34
+ export interface TopicAnchorHeader {
35
+ blockHeight: number;
36
+ blockHash: string;
37
+ merkleRoot?: string;
38
+ }
39
+ export type TopicAnchorHeaderResolver = (blockHeight: number) => Promise<TopicAnchorHeader | undefined>;
40
+ export interface TopicAnchorRangeRequest {
41
+ fromHeight: number;
42
+ toHeight: number;
43
+ }
44
+ export interface TopicAnchorRangeResponse {
45
+ topic: string;
46
+ anchors: TopicBlockAnchor[];
47
+ }
48
+ export interface AdmittedListRequest {
49
+ blockHeight: number;
50
+ blockHash?: string;
51
+ }
52
+ export interface AdmittedListResponse {
53
+ topic: string;
54
+ blockHeight: number;
55
+ blockHash?: string;
56
+ admitted: AdmittedTxRef[];
57
+ }
58
+ export interface CompoundMerklePathRequest {
59
+ blockHeight: number;
60
+ txids: string[];
61
+ }
62
+ export interface CompoundMerklePathResponse {
63
+ topic: string;
64
+ blockHeight: number;
65
+ txids: string[];
66
+ merklePath: string;
67
+ }
68
+ export interface MerkleProofMetadata {
69
+ blockHeight: number;
70
+ blockIndex: number;
71
+ merkleRoot: string;
72
+ }
73
+ export interface ReorgReport {
74
+ perTopic: Array<{
75
+ topic: string;
76
+ demotedTxids: string[];
77
+ rebuiltFrom: number;
78
+ rebuiltTo: number;
79
+ }>;
80
+ }
81
+ export interface BASMPeerSyncReport {
82
+ topic: string;
83
+ endpoint: string;
84
+ status: 'matched' | 'advanced' | 'diverged' | 'skipped' | 'error';
85
+ localTip?: TopicAnchorTip;
86
+ remoteTip?: TopicAnchorTip;
87
+ checkedHeights: number[];
88
+ missingTxids: string[];
89
+ fetchedTxCount: number;
90
+ message?: string;
91
+ }
92
+ type AdmittedTxLike = string | AdmittedTxRef;
93
+ /**
94
+ * Computes a BRC-136 BASM root from admitted topic txids.
95
+ *
96
+ * The API accepts normal display-order txid hex because that is what the BSV
97
+ * TypeScript stack exposes at its public boundaries. Hashing is performed on
98
+ * internal byte order as required by the BRC, and the returned root is display
99
+ * order for JSON/wire compatibility.
100
+ */
101
+ export declare function computeBasmRoot(admitted: AdmittedTxLike[]): string;
102
+ /**
103
+ * Computes the BRC-136 cumulative Topic Anchor Chain hash:
104
+ * SHA256d(prevTac || blockHash || basmRoot), with all inputs reversed to
105
+ * internal byte order before hashing and the output returned as display hex.
106
+ */
107
+ export declare function computeTac(prevTac: string, blockHash: string, basmRoot: string): string;
108
+ export declare function extractMerkleProofMetadata(txid: string, proof?: MerklePath): MerkleProofMetadata | undefined;
109
+ export {};
110
+ //# sourceMappingURL=BASM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BASM.d.ts","sourceRoot":"","sources":["../../../src/BASM.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { AdmittedListResponse, CompoundMerklePathResponse, RawTransactionResponse, TopicAnchorRangeResponse, TopicAnchorTip } from './BASM.js';
2
+ export declare class BASMRemote {
3
+ private readonly endpoint;
4
+ private readonly topic;
5
+ private readonly fetchImpl;
6
+ constructor(endpoint: string, topic: string, fetchImpl?: typeof fetch);
7
+ requestTopicAnchorTip(): Promise<TopicAnchorTip>;
8
+ requestTopicAnchorRange(fromHeight: number, toHeight: number): Promise<TopicAnchorRangeResponse>;
9
+ requestAdmittedList(blockHeight: number, blockHash?: string): Promise<AdmittedListResponse>;
10
+ requestCompoundMerklePath(blockHeight: number, txids: string[]): Promise<CompoundMerklePathResponse>;
11
+ requestRawTransactions(txids: string[]): Promise<RawTransactionResponse>;
12
+ private post;
13
+ }
14
+ //# sourceMappingURL=BASMRemote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BASMRemote.d.ts","sourceRoot":"","sources":["../../../src/BASMRemote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,cAAc,EACf,MAAM,WAAW,CAAA;AAElB,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,KAA8B;IAG7D,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC;IAIhD,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAIhG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI3F,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAIpG,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAIhE,IAAI;CAkBnB"}
@@ -6,6 +6,7 @@ import { ChainTracker, MerklePath, Broadcaster, TaggedBEEF, STEAK, LookupQuestio
6
6
  import { Advertiser } from './Advertiser.js';
7
7
  import { GASPInitialRequest, GASPInitialResponse, GASPNode } from '@bsv/gasp';
8
8
  import { SyncConfiguration } from './SyncConfiguration.js';
9
+ import { type AdmittedListResponse, type BASMPeerSyncReport, type CompoundMerklePathResponse, type RawTransactionResponse, type ReorgReport, type TopicAnchorHeaderResolver, type TopicAnchorRangeResponse, type TopicAnchorTip } from './BASM.js';
9
10
  type UTXOHistoryHydrationContext = {
10
11
  outputCache: Map<string, Promise<Output | null>>;
11
12
  };
@@ -33,6 +34,9 @@ export declare class Engine {
33
34
  overlayBroadcastFacilitator: OverlayBroadcastFacilitator;
34
35
  logger: typeof console;
35
36
  suppressDefaultSyncAdvertisements: boolean;
37
+ topicAnchorHeaderResolver?: TopicAnchorHeaderResolver | undefined;
38
+ basmSyncEnabled: boolean;
39
+ unprovenEvictionBlocks: number;
36
40
  /**
37
41
  * Creates a new Overlay Services Engine
38
42
  * @param {[key: string]: TopicManager} managers - manages topic admittance
@@ -51,14 +55,68 @@ export declare class Engine {
51
55
  * @param {OverlayBroadcastFacilitator} overlayBroadcastFacilitator - Facilitator for propagation to other Overlay Services.
52
56
  * @param {typeof console} logger - The place where log entries are written.
53
57
  * @param {boolean} suppressDefaultSyncAdvertisements - Whether to suppress the default (SHIP/SLAP) sync advertisements.
58
+ * @param {TopicAnchorHeaderResolver} topicAnchorHeaderResolver - Resolves block hashes for BASM anchors.
59
+ * @param {boolean} basmSyncEnabled - Whether BASM sync should run automatically.
60
+ * @param {number} unprovenEvictionBlocks - Default block age for opt-in unproven state eviction.
54
61
  */
55
62
  constructor(managers: {
56
63
  [key: string]: TopicManager;
57
64
  }, lookupServices: {
58
65
  [key: string]: LookupService;
59
- }, storage: Storage, chainTracker: ChainTracker | 'scripts only', hostingURL?: string | undefined, shipTrackers?: string[] | undefined, slapTrackers?: string[] | undefined, broadcaster?: Broadcaster | undefined, advertiser?: Advertiser | undefined, syncConfiguration?: SyncConfiguration | undefined, logTime?: boolean, logPrefix?: string, throwOnBroadcastFailure?: boolean, overlayBroadcastFacilitator?: OverlayBroadcastFacilitator, logger?: typeof console, suppressDefaultSyncAdvertisements?: boolean);
66
+ }, storage: Storage, chainTracker: ChainTracker | 'scripts only', hostingURL?: string | undefined, shipTrackers?: string[] | undefined, slapTrackers?: string[] | undefined, broadcaster?: Broadcaster | undefined, advertiser?: Advertiser | undefined, syncConfiguration?: SyncConfiguration | undefined, logTime?: boolean, logPrefix?: string, throwOnBroadcastFailure?: boolean, overlayBroadcastFacilitator?: OverlayBroadcastFacilitator, logger?: typeof console, suppressDefaultSyncAdvertisements?: boolean, topicAnchorHeaderResolver?: TopicAnchorHeaderResolver | undefined, basmSyncEnabled?: boolean, unprovenEvictionBlocks?: number);
60
67
  private startTime;
61
68
  private endTime;
69
+ private currentHeightOrUndefined;
70
+ private resolveBlockHash;
71
+ private compactBEEFForStorage;
72
+ private recordTransactionData;
73
+ private buildAppliedTransactionRecord;
74
+ private recomputeTopicBlockAnchor;
75
+ /**
76
+ * Extends every configured topic's anchor chain forward with empty Topic Block
77
+ * Anchors (basmRoot = zero hash, admittedCount = 0) up to `toHeight`, so the
78
+ * cumulative TAC advances on every block even when a topic admits nothing —
79
+ * this is what lets a peer authoritatively confirm "this block contained no
80
+ * transactions for this topic". Chains with no first admission yet are left
81
+ * unstarted (genesis is the topic's first admitted height).
82
+ */
83
+ advanceTopicAnchorChains(toHeight?: number): Promise<void>;
84
+ /**
85
+ * Rebuilds a contiguous slice of a topic's anchor chain over [fromHeight,
86
+ * toHeight]. Each height uses its admitted transactions (empty -> zero basmRoot)
87
+ * and chains the cumulative TAC from the prior height. Missing heights are
88
+ * filled rather than skipped, so the chain stays gap-free. If a block hash
89
+ * cannot be resolved for some height the extension halts there to preserve
90
+ * contiguity instead of leaving a hole.
91
+ */
92
+ private rebuildTopicAnchorChain;
93
+ /**
94
+ * Reconciles BASM anchors with a blockchain reorganization reported by the
95
+ * chain tracker (e.g. go-chaintracks `/v2/reorg/stream`). Proven topic
96
+ * transactions whose block was orphaned are demoted to unproven so they leave
97
+ * the admitted set, then every topic anchor chain intersecting the affected
98
+ * height range is rebuilt over the canonical block hashes. A reorg changes the
99
+ * canonical block hash for the affected heights, so topics with no demoted
100
+ * transaction are rebuilt too. Idempotent: a clean window demotes nothing and
101
+ * reproduces an identical TAC, so this is safe to invoke on every reorg event,
102
+ * SSE reconnect, and poll.
103
+ */
104
+ handleReorg(input: {
105
+ orphanedBlockHashes: string[];
106
+ rebuildFromHeight: number;
107
+ newTipHeight: number;
108
+ }): Promise<ReorgReport>;
109
+ /**
110
+ * Revalidation sweep: the reorg fallback for chain trackers without a reorg
111
+ * event stream, and the catch-up step on every reorg-SSE (re)connect (the
112
+ * go-chaintracks reorg stream carries no event ids, so a reconnect cannot
113
+ * replay events missed while disconnected). Scans proven applied transactions
114
+ * in `[tip - depth + 1, tip]`; any whose proof root no longer validates against
115
+ * the chain tracker, or whose block hash diverges from the canonical header, is
116
+ * treated as orphaned and reconciled via {@link handleReorg}.
117
+ */
118
+ private isProvenAnchorStale;
119
+ revalidateRecentAnchors(depth?: number): Promise<ReorgReport | undefined>;
62
120
  /**
63
121
  * Submits a transaction for processing by Overlay Services.
64
122
  * @param {TaggedBEEF} taggedBEEF - The transaction to process
@@ -110,6 +168,25 @@ export declare class Engine {
110
168
  * @throws Error if the overlay service engine is not configured for topical synchronization.
111
169
  */
112
170
  startGASPSync(): Promise<void>;
171
+ private resolveSyncEndpointsForTopic;
172
+ provideTopicAnchorTip(topic: string): Promise<TopicAnchorTip>;
173
+ provideTopicAnchorRange(topic: string, fromHeight: number, toHeight: number): Promise<TopicAnchorRangeResponse>;
174
+ provideAdmittedList(topic: string, blockHeight: number, blockHash?: string): Promise<AdmittedListResponse>;
175
+ provideCompoundMerklePath(topic: string, blockHeight: number, txids: string[]): Promise<CompoundMerklePathResponse>;
176
+ provideRawTransactions(txids: string[]): Promise<RawTransactionResponse>;
177
+ startBASMSync(): Promise<BASMPeerSyncReport[]>;
178
+ private reconcileBASMWithPeer;
179
+ private reconcileRemoteAnchor;
180
+ private fetchBASMMissingTransactions;
181
+ evictUnprovenTransactions(options?: {
182
+ topic?: string;
183
+ thresholdBlocks?: number;
184
+ }): Promise<{
185
+ cutoffHeight: number;
186
+ candidates: number;
187
+ evictedTransactions: number;
188
+ evictedOutputs: number;
189
+ }>;
113
190
  /**
114
191
  * Given a GASP request, create an initial response.
115
192
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../../src/Engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../../src/Engine.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export interface GraphNode {
14
14
  outputMetadata?: string;
15
15
  inputs?: Record<string, {
16
16
  hash: string;
17
- }> | undefined;
17
+ }>;
18
18
  children: GraphNode[];
19
19
  parent?: GraphNode;
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayGASPStorage.d.ts","sourceRoot":"","sources":["../../../../src/GASP/OverlayGASPStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAA;IACrD,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED,qBAAa,kBAAmB,YAAW,WAAW;IAShC,KAAK,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM;IAAS,eAAe,CAAC,EAAE,MAAM;IARzF,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAK;IAC/D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAI;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;IACrE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAI;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IACjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iCAAiC,CAAI;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAI;gBAEpC,KAAK,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAS,eAAe,CAAC,EAAE,MAAM,YAAA;mBAEpE,2BAA2B;IAOhD,OAAO,CAAC,MAAM,CAAC,2BAA2B;mBAQrB,uBAAuB;IAO5C,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAQtC;;;;OAIG;IACG,cAAc,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAS3D;;;;;;;OAOG;IACG,eAAe,CAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsBhH;;;;MAIE;IACI,gBAAgB,CAAE,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAgD5E;;;OAGG;YACW,uBAAuB;IAkBrC;;;;;MAKE;IACI,aAAa,CAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C/E;;;;;;QAMI;IACE,mBAAmB,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2D1D;;;OAGG;IACG,YAAY,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnD;;;OAGG;IACG,aAAa,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBpD;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAuBnC;;;;OAIG;IACH,OAAO,CAAC,cAAc;CAsBvB"}
1
+ {"version":3,"file":"OverlayGASPStorage.d.ts","sourceRoot":"","sources":["../../../../src/GASP/OverlayGASPStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED,qBAAa,kBAAmB,YAAW,WAAW;IAShC,KAAK,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM;IAAS,eAAe,CAAC,EAAE,MAAM;IARzF,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAK;IAC/D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAI;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;IACrE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAI;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IACjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iCAAiC,CAAI;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAI;gBAEpC,KAAK,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAS,eAAe,CAAC,EAAE,MAAM,YAAA;mBAEpE,2BAA2B;IAOhD,OAAO,CAAC,MAAM,CAAC,2BAA2B;mBAQrB,uBAAuB;IAO5C,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAQtC;;;;OAIG;IACG,cAAc,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAS3D;;;;;;;OAOG;IACG,eAAe,CAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsBhH;;;;MAIE;IACI,gBAAgB,CAAE,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA4C5E;;;OAGG;YACW,uBAAuB;IAkBrC;;;;;MAKE;IACI,aAAa,CAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C/E;;;;;;QAMI;IACE,mBAAmB,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2D1D;;;OAGG;IACG,YAAY,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnD;;;OAGG;IACG,aAAa,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBpD;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAuBnC;;;;OAIG;IACH,OAAO,CAAC,cAAc;CAsBvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"LookupService.d.ts","sourceRoot":"","sources":["../../../src/LookupService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LookupService.d.ts","sourceRoot":"","sources":["../../../src/LookupService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Output } from '../Output.js';
2
+ import type { AdmittedTxRef, RawTransactionRecord, TopicAnchorTip, TopicBlockAnchor } from '../BASM.js';
2
3
  /**
3
4
  * Represents a transaction that has been applied to a topic.
4
5
  */
@@ -7,6 +8,45 @@ export interface AppliedTransaction {
7
8
  txid: string;
8
9
  /** Output index of the applied transaction */
9
10
  topic: string;
11
+ /** Block height of the transaction proof, when known */
12
+ blockHeight?: number;
13
+ /** Block hash for the proven transaction's block, when known */
14
+ blockHash?: string;
15
+ /** Transaction's canonical in-block index, when known */
16
+ blockIndex?: number;
17
+ /** Merkle root computed from the direct proof, when known */
18
+ merkleRoot?: string;
19
+ /** Chain height when this transaction was first seen by this overlay */
20
+ firstSeenHeight?: number;
21
+ /** Whether this applied transaction has a direct proof of inclusion */
22
+ proven?: boolean;
23
+ }
24
+ export interface StoredTransactionRecord {
25
+ txid: string;
26
+ beef?: number[];
27
+ rawTx?: number[];
28
+ merklePath?: number[];
29
+ blockHeight?: number;
30
+ blockHash?: string;
31
+ blockIndex?: number;
32
+ merkleRoot?: string;
33
+ }
34
+ export interface AppliedTransactionProofUpdate {
35
+ txid: string;
36
+ topic: string;
37
+ blockHeight: number;
38
+ blockHash?: string;
39
+ blockIndex?: number;
40
+ merkleRoot?: string;
41
+ }
42
+ export interface UnprovenAppliedTransactionCandidate {
43
+ txid: string;
44
+ topic: string;
45
+ firstSeenHeight?: number;
46
+ outputs: Array<{
47
+ txid: string;
48
+ outputIndex: number;
49
+ }>;
10
50
  }
11
51
  /**
12
52
  * Defines the Storage Engine interface used internally by the Overlay Services Engine.
@@ -90,6 +130,15 @@ export interface Storage {
90
130
  * @param blockHeight - height of the block the transaction associated with this output was included in
91
131
  */
92
132
  updateOutputBlockHeight?: (txid: string, outputIndex: number, topic: string, blockHeight: number) => Promise<void>;
133
+ /**
134
+ * Upserts transaction-level data used for compact BEEF, raw-tx BASM fetches,
135
+ * and direct proof retrieval.
136
+ */
137
+ upsertTransactionRecord?: (record: StoredTransactionRecord) => Promise<void>;
138
+ /**
139
+ * Updates direct proof metadata for an applied topic transaction.
140
+ */
141
+ updateAppliedTransactionProof?: (record: AppliedTransactionProofUpdate) => Promise<void>;
93
142
  /**
94
143
  * Inserts record of the applied transaction
95
144
  * @param tx — The transaction to insert
@@ -101,6 +150,75 @@ export interface Storage {
101
150
  * @returns Whether the transaction is already applied
102
151
  */
103
152
  doesAppliedTransactionExist: (tx: AppliedTransaction) => Promise<boolean>;
153
+ /**
154
+ * Returns proven topic transactions admitted in one block, in canonical block order.
155
+ */
156
+ findAdmittedTransactionsForBlock?: (topic: string, blockHeight: number, blockHash?: string) => Promise<AdmittedTxRef[]>;
157
+ /**
158
+ * Persists or replaces a topic block anchor for one height.
159
+ */
160
+ upsertTopicBlockAnchor?: (anchor: TopicBlockAnchor) => Promise<void>;
161
+ /**
162
+ * Returns one topic block anchor.
163
+ */
164
+ findTopicBlockAnchor?: (topic: string, blockHeight: number, blockHash?: string) => Promise<TopicBlockAnchor | undefined>;
165
+ /**
166
+ * Returns topic block anchors across a closed height range.
167
+ */
168
+ findTopicBlockAnchors?: (topic: string, fromHeight: number, toHeight: number) => Promise<TopicBlockAnchor[]>;
169
+ /**
170
+ * Returns the latest known topic anchor tip.
171
+ */
172
+ findTopicAnchorTip?: (topic: string) => Promise<TopicAnchorTip | undefined>;
173
+ /**
174
+ * Returns raw transactions for the requested txids.
175
+ */
176
+ findRawTransactions?: (txids: string[]) => Promise<RawTransactionRecord[]>;
177
+ /**
178
+ * Returns direct Merkle paths for the requested txids.
179
+ */
180
+ findTransactionMerklePaths?: (txids: string[]) => Promise<Array<{
181
+ txid: string;
182
+ merklePath: string;
183
+ blockHeight?: number;
184
+ blockHash?: string;
185
+ blockIndex?: number;
186
+ merkleRoot?: string;
187
+ }>>;
188
+ /**
189
+ * Finds topic-applied transactions with no direct proof old enough to evict.
190
+ */
191
+ findUnprovenAppliedTransactions?: (cutoffHeight: number, topic?: string) => Promise<UnprovenAppliedTransactionCandidate[]>;
192
+ /**
193
+ * Deletes a topic-applied transaction record.
194
+ */
195
+ deleteAppliedTransaction?: (txid: string, topic: string) => Promise<void>;
196
+ /**
197
+ * Returns proven topic-applied transactions whose proof anchors to the given
198
+ * block hash. Used to demote admissions when that block is reorged out.
199
+ */
200
+ findProvenAppliedTransactionsByBlockHash?: (blockHash: string) => Promise<Array<{
201
+ txid: string;
202
+ topic: string;
203
+ blockHeight: number;
204
+ }>>;
205
+ /**
206
+ * Returns proven topic-applied transactions in a closed block-height range,
207
+ * including the proof's block hash and merkle root for revalidation sweeps.
208
+ */
209
+ findProvenAppliedTransactionsInRange?: (fromHeight: number, toHeight: number, topic?: string) => Promise<Array<{
210
+ txid: string;
211
+ topic: string;
212
+ blockHeight: number;
213
+ blockHash?: string;
214
+ merkleRoot?: string;
215
+ }>>;
216
+ /**
217
+ * Demotes a proven applied transaction back to unproven: clears the block
218
+ * proof metadata and `proven` flag while retaining `firstSeenHeight`, so the
219
+ * "received" record survives until re-proof or unproven eviction.
220
+ */
221
+ demoteAppliedTransactionToUnproven?: (txid: string, topic: string) => Promise<void>;
104
222
  /**
105
223
  * Updates the last interaction score for a given host and topic
106
224
  * @param host — The host identifier
@@ -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,11 +1,15 @@
1
- import { Storage } from '../Storage.js';
1
+ import { Storage, type AppliedTransaction, type AppliedTransactionProofUpdate, type StoredTransactionRecord, type UnprovenAppliedTransactionCandidate } from '../Storage.js';
2
2
  import { Knex } from 'knex';
3
3
  import type { Output } from '../../Output.js';
4
+ import { type AdmittedTxRef, type RawTransactionRecord, type TopicAnchorTip, type TopicBlockAnchor } from '../../BASM.js';
4
5
  export declare class KnexStorage implements Storage {
5
6
  knex: Knex;
6
7
  constructor(knex: Knex);
7
8
  private parseOutputRelations;
8
9
  private parseOutputRecord;
10
+ private binaryToNumberArray;
11
+ private binaryToHex;
12
+ private transactionRecordFromBEEF;
9
13
  private fetchTransactionBeefMap;
10
14
  findOutput(txid: string, outputIndex: number, topic?: string, spent?: boolean, includeBEEF?: boolean): Promise<Output | null>;
11
15
  findOutputsByOutpoints(outpoints: Array<{
@@ -14,7 +18,7 @@ export declare class KnexStorage implements Storage {
14
18
  }>, includeBEEF?: boolean): Promise<Output[]>;
15
19
  findOutputsForTransaction(txid: string, includeBEEF?: boolean): Promise<Output[]>;
16
20
  findUTXOsForTopic(topic: string, since?: number, limit?: number, includeBEEF?: boolean): Promise<Output[]>;
17
- deleteOutput(txid: string, outputIndex: number, _: string): Promise<void>;
21
+ deleteOutput(txid: string, outputIndex: number, topic: string): Promise<void>;
18
22
  insertOutput(output: Output): Promise<void>;
19
23
  markUTXOAsSpent(txid: string, outputIndex: number, topic?: string): Promise<void>;
20
24
  updateConsumedBy(txid: string, outputIndex: number, topic: string, consumedBy: Array<{
@@ -23,15 +27,43 @@ export declare class KnexStorage implements Storage {
23
27
  }>): Promise<void>;
24
28
  updateTransactionBEEF(txid: string, beef: number[]): Promise<void>;
25
29
  updateOutputBlockHeight(txid: string, outputIndex: number, topic: string, blockHeight: number): Promise<void>;
26
- insertAppliedTransaction(tx: {
27
- txid: string;
28
- topic: string;
29
- }): Promise<void>;
30
+ upsertTransactionRecord(record: StoredTransactionRecord): Promise<void>;
31
+ updateAppliedTransactionProof(record: AppliedTransactionProofUpdate): Promise<void>;
32
+ insertAppliedTransaction(tx: AppliedTransaction): Promise<void>;
30
33
  doesAppliedTransactionExist(tx: {
31
34
  txid: string;
32
35
  topic: string;
33
36
  }): Promise<boolean>;
34
37
  updateLastInteraction(host: string, topic: string, since: number): Promise<void>;
35
38
  getLastInteraction(host: string, topic: string): Promise<number>;
39
+ findAdmittedTransactionsForBlock(topic: string, blockHeight: number, blockHash?: string): Promise<AdmittedTxRef[]>;
40
+ upsertTopicBlockAnchor(anchor: TopicBlockAnchor): Promise<void>;
41
+ findTopicBlockAnchor(topic: string, blockHeight: number, blockHash?: string): Promise<TopicBlockAnchor | undefined>;
42
+ findTopicBlockAnchors(topic: string, fromHeight: number, toHeight: number): Promise<TopicBlockAnchor[]>;
43
+ findTopicAnchorTip(topic: string): Promise<TopicAnchorTip | undefined>;
44
+ findRawTransactions(txids: string[]): Promise<RawTransactionRecord[]>;
45
+ findTransactionMerklePaths(txids: string[]): Promise<Array<{
46
+ txid: string;
47
+ merklePath: string;
48
+ blockHeight?: number;
49
+ blockHash?: string;
50
+ blockIndex?: number;
51
+ merkleRoot?: string;
52
+ }>>;
53
+ findUnprovenAppliedTransactions(cutoffHeight: number, topic?: string): Promise<UnprovenAppliedTransactionCandidate[]>;
54
+ deleteAppliedTransaction(txid: string, topic: string): Promise<void>;
55
+ findProvenAppliedTransactionsByBlockHash(blockHash: string): Promise<Array<{
56
+ txid: string;
57
+ topic: string;
58
+ blockHeight: number;
59
+ }>>;
60
+ findProvenAppliedTransactionsInRange(fromHeight: number, toHeight: number, topic?: string): Promise<Array<{
61
+ txid: string;
62
+ topic: string;
63
+ blockHeight: number;
64
+ blockHash?: string;
65
+ merkleRoot?: string;
66
+ }>>;
67
+ demoteAppliedTransactionToUnproven(txid: string, topic: string): Promise<void>;
36
68
  }
37
69
  //# sourceMappingURL=KnexStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KnexStorage.d.ts","sourceRoot":"","sources":["../../../../../src/storage/knex/KnexStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAc7C,qBAAa,WAAY,YAAW,OAAO;IACzC,IAAI,EAAE,IAAI,CAAA;gBAEG,IAAI,EAAE,IAAI;IAIvB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,iBAAiB;YAeX,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;IA+BrI,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;IA8Bd,yBAAyB,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBzF,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;IAmClH,YAAY,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1E,YAAY,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B5C,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlF,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;IAQ5I,qBAAqB,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnE,uBAAuB,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9G,wBAAwB,CAAE,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7E,2BAA2B,CAAE,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IASnF,qBAAqB,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjF,kBAAkB,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAQxE"}
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;gBAEG,IAAI,EAAE,IAAI;IAIvB,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;IA+BrI,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;IA8Bd,yBAAyB,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBzF,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;IAmClH,YAAY,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9E,YAAY,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C5C,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlF,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;IAQ5I,qBAAqB,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,uBAAuB,CAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9G,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvE,6BAA6B,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnF,wBAAwB,CAAE,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAahE,2BAA2B,CAAE,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IASnF,qBAAqB,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjF,kBAAkB,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASjE,gCAAgC,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAmBlH,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/D,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAmBnH,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkBvG,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAwBtE,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAsBrE,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;IAsCG,+BAA+B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mCAAmC,EAAE,CAAC;IAmCrH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,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;IAajI,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;IAqBzM,kCAAkC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAerF"}
@@ -1 +1 @@
1
- {"version":3,"file":"all-migrations.d.ts","sourceRoot":"","sources":["../../../../../src/storage/knex/all-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAU3B;;GAEG;AACH,UAAU,SAAS;IACjB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpC;AAED,QAAA,MAAM,aAAa,EAAE,SAAS,EAS7B,CAAA;AAED,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"all-migrations.d.ts","sourceRoot":"","sources":["../../../../../src/storage/knex/all-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAW3B;;GAEG;AACH,UAAU,SAAS;IACjB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpC;AAED,QAAA,MAAM,aAAa,EAAE,SAAS,EAU7B,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"2025-05-28-001-enlarge.d.ts","sourceRoot":"","sources":["../../../../../../src/storage/knex/migrations/2025-05-28-001-enlarge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAEhC,wBAAsB,EAAE,CAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BnD;AAED,wBAAsB,IAAI,CAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BrD"}
1
+ {"version":3,"file":"2025-05-28-001-enlarge.d.ts","sourceRoot":"","sources":["../../../../../../src/storage/knex/migrations/2025-05-28-001-enlarge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAEhC,wBAAsB,EAAE,CAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBnD;AAED,wBAAsB,IAAI,CAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAcrD"}
@@ -0,0 +1,4 @@
1
+ import type { Knex } from 'knex';
2
+ export declare function up(knex: Knex): Promise<void>;
3
+ export declare function down(knex: Knex): Promise<void>;
4
+ //# sourceMappingURL=2026-05-29-001-brc136-basm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2026-05-29-001-brc136-basm.d.ts","sourceRoot":"","sources":["../../../../../../src/storage/knex/migrations/2026-05-29-001-brc136-basm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAqBhC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ElD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBpD"}