@enbox/dwn-sql-store 0.0.6 → 0.0.8

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 (48) hide show
  1. package/dist/esm/src/blockstore-sql.js +117 -0
  2. package/dist/esm/src/blockstore-sql.js.map +1 -0
  3. package/dist/esm/src/data-store-s3.js +243 -0
  4. package/dist/esm/src/data-store-s3.js.map +1 -0
  5. package/dist/esm/src/data-store-sql.js +175 -59
  6. package/dist/esm/src/data-store-sql.js.map +1 -1
  7. package/dist/esm/src/main.js +4 -0
  8. package/dist/esm/src/main.js.map +1 -1
  9. package/dist/esm/src/migration-runner.js +99 -0
  10. package/dist/esm/src/migration-runner.js.map +1 -0
  11. package/dist/esm/src/migrations/001-initial-schema.js +163 -0
  12. package/dist/esm/src/migrations/001-initial-schema.js.map +1 -0
  13. package/dist/esm/src/migrations/002-content-addressed-datastore.js +126 -0
  14. package/dist/esm/src/migrations/002-content-addressed-datastore.js.map +1 -0
  15. package/dist/esm/src/migrations/index.js +11 -0
  16. package/dist/esm/src/migrations/index.js.map +1 -0
  17. package/dist/esm/src/state-index-sql.js +4 -3
  18. package/dist/esm/src/state-index-sql.js.map +1 -1
  19. package/dist/types/src/blockstore-sql.d.ts +36 -0
  20. package/dist/types/src/blockstore-sql.d.ts.map +1 -0
  21. package/dist/types/src/data-store-s3.d.ts +53 -0
  22. package/dist/types/src/data-store-s3.d.ts.map +1 -0
  23. package/dist/types/src/data-store-sql.d.ts +12 -0
  24. package/dist/types/src/data-store-sql.d.ts.map +1 -1
  25. package/dist/types/src/main.d.ts +4 -0
  26. package/dist/types/src/main.d.ts.map +1 -1
  27. package/dist/types/src/migration-runner.d.ts +50 -0
  28. package/dist/types/src/migration-runner.d.ts.map +1 -0
  29. package/dist/types/src/migrations/001-initial-schema.d.ts +10 -0
  30. package/dist/types/src/migrations/001-initial-schema.d.ts.map +1 -0
  31. package/dist/types/src/migrations/002-content-addressed-datastore.d.ts +28 -0
  32. package/dist/types/src/migrations/002-content-addressed-datastore.d.ts.map +1 -0
  33. package/dist/types/src/migrations/index.d.ts +7 -0
  34. package/dist/types/src/migrations/index.d.ts.map +1 -0
  35. package/dist/types/src/state-index-sql.d.ts.map +1 -1
  36. package/dist/types/src/types.d.ts +25 -0
  37. package/dist/types/src/types.d.ts.map +1 -1
  38. package/package.json +8 -2
  39. package/src/blockstore-sql.ts +142 -0
  40. package/src/data-store-s3.ts +338 -0
  41. package/src/data-store-sql.ts +208 -79
  42. package/src/main.ts +4 -0
  43. package/src/migration-runner.ts +137 -0
  44. package/src/migrations/001-initial-schema.ts +190 -0
  45. package/src/migrations/002-content-addressed-datastore.ts +140 -0
  46. package/src/migrations/index.ts +13 -0
  47. package/src/state-index-sql.ts +4 -3
  48. package/src/types.ts +29 -0
@@ -1 +1 @@
1
- {"version":3,"file":"data-store-sql.js","sourceRoot":"","sources":["../../../src/data-store-sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-store-sql.js","sourceRoot":"","sources":["../../../src/data-store-sql.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,13 @@ export * from './dialect/bun-sqlite-adapter.js';
3
3
  export * from './dialect/mysql-dialect.js';
4
4
  export * from './dialect/postgres-dialect.js';
5
5
  export * from './dialect/sqlite-dialect.js';
6
+ export * from './blockstore-sql.js';
7
+ export * from './data-store-s3.js';
6
8
  export * from './data-store-sql.js';
7
9
  export * from './state-index-sql.js';
8
10
  export * from './message-store-sql.js';
11
+ export * from './migration-runner.js';
12
+ export * from './migrations/index.js';
9
13
  export * from './resumable-task-store-sql.js';
10
14
  export * from './smt-store-sql.js';
11
15
  //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { allMigrations } from './migrations/index.js';
2
+ /**
3
+ * Minimal forward-only migration runner for dwn-sql-store.
4
+ *
5
+ * Tracks applied migrations in a `dwn_migrations` table and applies
6
+ * pending migrations in sequential order on each call to `run()`.
7
+ *
8
+ * Design decisions:
9
+ * - Forward-only: no rollback support. Keep migrations simple and additive.
10
+ * - TypeScript migrations: use the Dialect interface for cross-dialect DDL.
11
+ * - Idempotent: calling `run()` on an up-to-date database is a no-op.
12
+ * - Transaction per migration: each migration runs in its own transaction
13
+ * so a failure leaves the database in the last known-good state.
14
+ */
15
+ /**
16
+ * Convenience function to run all DWN store migrations against a database.
17
+ *
18
+ * Creates a `MigrationRunner` with the full set of built-in migrations and
19
+ * runs them. Call this once during application startup, before opening any
20
+ * stores — e.g. in `getDwnConfig()` or equivalent initialization code.
21
+ *
22
+ * @param db - An open Kysely instance connected to the target database.
23
+ * @param dialect - The dialect for the target database.
24
+ * @returns The names of newly applied migrations (empty if already up-to-date).
25
+ */
26
+ export async function runDwnStoreMigrations(db, dialect) {
27
+ const runner = new MigrationRunner(db, dialect, allMigrations);
28
+ return runner.run();
29
+ }
30
+ export class MigrationRunner {
31
+ #db;
32
+ #dialect;
33
+ #migrations;
34
+ constructor(db, dialect, migrations) {
35
+ this.#db = db;
36
+ this.#dialect = dialect;
37
+ this.#migrations = migrations;
38
+ }
39
+ /**
40
+ * Ensure the `dwn_migrations` tracking table exists, then apply any
41
+ * pending migrations in order. Returns the names of newly applied migrations.
42
+ */
43
+ async run() {
44
+ await this.#ensureMigrationTable();
45
+ const applied = await this.#getAppliedMigrations();
46
+ const appliedSet = new Set(applied);
47
+ const pending = this.#migrations.filter((m) => !appliedSet.has(m.name));
48
+ const newlyApplied = [];
49
+ for (const migration of pending) {
50
+ await this.#applyMigration(migration);
51
+ newlyApplied.push(migration.name);
52
+ }
53
+ return newlyApplied;
54
+ }
55
+ /**
56
+ * Create the `dwn_migrations` table if it does not already exist.
57
+ */
58
+ async #ensureMigrationTable() {
59
+ const exists = await this.#dialect.hasTable(this.#db, 'dwn_migrations');
60
+ if (exists) {
61
+ return;
62
+ }
63
+ await this.#db.schema
64
+ .createTable('dwn_migrations')
65
+ .ifNotExists()
66
+ .addColumn('name', 'varchar(255)', (col) => col.primaryKey().notNull())
67
+ .addColumn('appliedAt', 'varchar(30)', (col) => col.notNull())
68
+ .execute();
69
+ }
70
+ /**
71
+ * Get the list of migration names that have already been applied.
72
+ */
73
+ async #getAppliedMigrations() {
74
+ const rows = await this.#db
75
+ .selectFrom('dwn_migrations')
76
+ .select('name')
77
+ .orderBy('name', 'asc')
78
+ .execute();
79
+ return rows.map((r) => r.name);
80
+ }
81
+ /**
82
+ * Apply a single migration within a transaction and record it.
83
+ */
84
+ async #applyMigration(migration) {
85
+ await this.#db.transaction().execute(async (trx) => {
86
+ // Run the migration
87
+ await migration.up(trx, this.#dialect);
88
+ // Record it as applied
89
+ await trx
90
+ .insertInto('dwn_migrations')
91
+ .values({
92
+ name: migration.name,
93
+ appliedAt: new Date().toISOString(),
94
+ })
95
+ .execute();
96
+ });
97
+ }
98
+ }
99
+ //# sourceMappingURL=migration-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../../../src/migration-runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAyBtD;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAAe,EAAE,OAAgB;IAC3E,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,OAAO,eAAe;IAC1B,GAAG,CAAgC;IACnC,QAAQ,CAAU;IAClB,WAAW,CAAc;IAEzB,YAAY,EAAe,EAAE,OAAgB,EAAE,UAAuB;QACpE,IAAI,CAAC,GAAG,GAAG,EAAmC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,GAAG;QACd,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAExE,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACxE,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;aAClB,WAAW,CAAC,gBAAgB,CAAC;aAC7B,WAAW,EAAE;aACb,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC;aACtE,SAAS,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;aAC7D,OAAO,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG;aACxB,UAAU,CAAC,gBAAgB,CAAC;aAC5B,MAAM,CAAC,MAAM,CAAC;aACd,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;aACtB,OAAO,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,SAAoB;QACxC,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACjD,oBAAoB;YACpB,MAAM,SAAS,CAAC,EAAE,CAAC,GAA6B,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEjE,uBAAuB;YACvB,MAAO,GAAgD;iBACpD,UAAU,CAAC,gBAAgB,CAAC;iBAC5B,MAAM,CAAC;gBACN,IAAI,EAAQ,SAAS,CAAC,IAAI;gBAC1B,SAAS,EAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;iBACD,OAAO,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,163 @@
1
+ import { sql } from 'kysely';
2
+ /**
3
+ * Baseline migration: captures the schema as of the pre-migration era.
4
+ *
5
+ * For existing databases that already have these tables, this migration is
6
+ * detected as "already applied" during the adoption bootstrap (see MigrationRunner).
7
+ * For new databases, this creates the full initial schema.
8
+ */
9
+ export const migration001InitialSchema = {
10
+ name: '001-initial-schema',
11
+ async up(db, dialect) {
12
+ // ─── messageStoreMessages ───────────────────────────────────────────
13
+ if (!(await dialect.hasTable(db, 'messageStoreMessages'))) {
14
+ let table = db.schema
15
+ .createTable('messageStoreMessages')
16
+ .ifNotExists()
17
+ .addColumn('tenant', 'varchar(255)', (col) => col.notNull())
18
+ .addColumn('messageCid', 'varchar(60)', (col) => col.notNull())
19
+ .addColumn('interface', 'varchar(20)')
20
+ .addColumn('method', 'varchar(20)')
21
+ .addColumn('recordId', 'varchar(60)')
22
+ .addColumn('entryId', 'varchar(60)')
23
+ .addColumn('parentId', 'varchar(60)')
24
+ .addColumn('protocol', 'varchar(200)')
25
+ .addColumn('protocolPath', 'varchar(200)')
26
+ .addColumn('contextId', 'varchar(600)')
27
+ .addColumn('schema', 'varchar(200)')
28
+ .addColumn('author', 'varchar(255)')
29
+ .addColumn('recipient', 'varchar(255)')
30
+ .addColumn('messageTimestamp', 'varchar(30)')
31
+ .addColumn('dateCreated', 'varchar(30)')
32
+ .addColumn('datePublished', 'varchar(30)')
33
+ .addColumn('isLatestBaseState', 'boolean')
34
+ .addColumn('published', 'boolean')
35
+ .addColumn('prune', 'boolean')
36
+ .addColumn('dataFormat', 'varchar(30)')
37
+ .addColumn('dataCid', 'varchar(60)')
38
+ .addColumn('dataSize', 'integer')
39
+ .addColumn('encodedData', 'text')
40
+ .addColumn('attester', 'text')
41
+ .addColumn('permissionGrantId', 'varchar(60)');
42
+ table = dialect.addAutoIncrementingColumn(table, 'id', (col) => col.primaryKey());
43
+ table = dialect.addBlobColumn(table, 'encodedMessageBytes', (col) => col.notNull());
44
+ await table.execute();
45
+ await db.schema.createIndex('index_tenant_messageCid')
46
+ .on('messageStoreMessages').columns(['tenant', 'messageCid']).unique().execute();
47
+ const indexes = [
48
+ ['tenant', 'recordId'],
49
+ ['tenant', 'entryId'],
50
+ ['tenant', 'parentId'],
51
+ ['tenant', 'protocol', 'published', 'messageTimestamp'],
52
+ ['tenant', 'interface'],
53
+ ['tenant', 'permissionGrantId'],
54
+ ['tenant', 'dateCreated'],
55
+ ['tenant', 'datePublished'],
56
+ ];
57
+ for (const cols of indexes) {
58
+ await db.schema.createIndex('index_' + cols.join('_'))
59
+ .on('messageStoreMessages').columns(cols).execute();
60
+ }
61
+ // MySQL needs prefix length for contextId
62
+ if (dialect.name === 'MySQL') {
63
+ await sql `CREATE INDEX index_tenant_contextId_messageTimestamp
64
+ ON ${sql.table('messageStoreMessages')} (tenant, contextId(480), messageTimestamp)`
65
+ .execute(db);
66
+ }
67
+ else {
68
+ await db.schema.createIndex('index_tenant_contextId_messageTimestamp')
69
+ .on('messageStoreMessages').columns(['tenant', 'contextId', 'messageTimestamp']).execute();
70
+ }
71
+ }
72
+ // ─── messageStoreRecordsTags ─────────────────────────────────────────
73
+ if (!(await dialect.hasTable(db, 'messageStoreRecordsTags'))) {
74
+ let table = db.schema
75
+ .createTable('messageStoreRecordsTags')
76
+ .ifNotExists()
77
+ .addColumn('tag', 'varchar(30)', (col) => col.notNull())
78
+ .addColumn('valueString', 'varchar(200)')
79
+ .addColumn('valueNumber', 'decimal');
80
+ table = dialect.addAutoIncrementingColumn(table, 'id', (col) => col.primaryKey());
81
+ table = dialect.addReferencedColumn(table, 'messageStoreRecordsTags', 'messageInsertId', 'integer', 'messageStoreMessages', 'id', 'cascade');
82
+ await table.execute();
83
+ const tagIndexes = [
84
+ ['messageInsertId'],
85
+ ['tag', 'valueString'],
86
+ ['tag', 'valueNumber'],
87
+ ];
88
+ for (const cols of tagIndexes) {
89
+ await db.schema.createIndex('index_' + cols.join('_'))
90
+ .on('messageStoreRecordsTags').columns(cols).execute();
91
+ }
92
+ }
93
+ // ─── dataStore ──────────────────────────────────────────────────────
94
+ if (!(await dialect.hasTable(db, 'dataStore'))) {
95
+ let table = db.schema
96
+ .createTable('dataStore')
97
+ .ifNotExists()
98
+ .addColumn('tenant', 'varchar(255)', (col) => col.notNull())
99
+ .addColumn('recordId', 'varchar(60)', (col) => col.notNull())
100
+ .addColumn('dataCid', 'varchar(60)', (col) => col.notNull());
101
+ table = dialect.addAutoIncrementingColumn(table, 'id', (col) => col.primaryKey());
102
+ table = dialect.addBlobColumn(table, 'data', (col) => col.notNull());
103
+ await table.execute();
104
+ await db.schema.createIndex('tenant_recordId_dataCid')
105
+ .on('dataStore').columns(['tenant', 'recordId', 'dataCid']).unique().execute();
106
+ }
107
+ // ─── resumableTasks ─────────────────────────────────────────────────
108
+ if (!(await dialect.hasTable(db, 'resumableTasks'))) {
109
+ await db.schema
110
+ .createTable('resumableTasks')
111
+ .ifNotExists()
112
+ .addColumn('id', 'varchar(255)', (col) => col.primaryKey())
113
+ .addColumn('task', 'text')
114
+ .addColumn('timeout', 'bigint')
115
+ .addColumn('retryCount', 'integer')
116
+ .execute();
117
+ await db.schema.createIndex('index_timeout')
118
+ .on('resumableTasks').column('timeout').execute();
119
+ }
120
+ // ─── stateIndexNodes ────────────────────────────────────────────────
121
+ if (!(await dialect.hasTable(db, 'stateIndexNodes'))) {
122
+ await db.schema
123
+ .createTable('stateIndexNodes')
124
+ .ifNotExists()
125
+ .addColumn('tenant', 'varchar(255)', (col) => col.notNull())
126
+ .addColumn('scope', 'varchar(200)', (col) => col.notNull())
127
+ .addColumn('nodeHash', 'varchar(64)', (col) => col.notNull())
128
+ .addColumn('nodeType', 'varchar(10)', (col) => col.notNull())
129
+ .addColumn('leftHash', 'varchar(64)')
130
+ .addColumn('rightHash', 'varchar(64)')
131
+ .addColumn('leafKeyHash', 'varchar(64)')
132
+ .addColumn('leafValueCid', 'varchar(60)')
133
+ .execute();
134
+ await db.schema.createIndex('index_stateIndexNodes_tenant_scope_nodeHash')
135
+ .on('stateIndexNodes').columns(['tenant', 'scope', 'nodeHash']).execute();
136
+ }
137
+ // ─── stateIndexRoots ────────────────────────────────────────────────
138
+ if (!(await dialect.hasTable(db, 'stateIndexRoots'))) {
139
+ await db.schema
140
+ .createTable('stateIndexRoots')
141
+ .ifNotExists()
142
+ .addColumn('tenant', 'varchar(255)', (col) => col.notNull())
143
+ .addColumn('scope', 'varchar(200)', (col) => col.notNull())
144
+ .addColumn('rootHash', 'varchar(64)', (col) => col.notNull())
145
+ .execute();
146
+ await db.schema.createIndex('index_stateIndexRoots_tenant_scope')
147
+ .on('stateIndexRoots').columns(['tenant', 'scope']).execute();
148
+ }
149
+ // ─── stateIndexMeta ─────────────────────────────────────────────────
150
+ if (!(await dialect.hasTable(db, 'stateIndexMeta'))) {
151
+ await db.schema
152
+ .createTable('stateIndexMeta')
153
+ .ifNotExists()
154
+ .addColumn('tenant', 'varchar(255)', (col) => col.notNull())
155
+ .addColumn('messageCid', 'varchar(60)', (col) => col.notNull())
156
+ .addColumn('protocol', 'varchar(200)')
157
+ .execute();
158
+ await db.schema.createIndex('index_stateIndexMeta_tenant_messageCid')
159
+ .on('stateIndexMeta').columns(['tenant', 'messageCid']).execute();
160
+ }
161
+ },
162
+ };
163
+ //# sourceMappingURL=001-initial-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"001-initial-schema.js","sourceRoot":"","sources":["../../../../src/migrations/001-initial-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import { sql } from 'kysely';
2
+ /**
3
+ * Migration 002: Content-addressed DataStore with deduplication.
4
+ *
5
+ * Replaces the monolithic `dataStore` table (which stores entire blobs per
6
+ * tenant+recordId+dataCid) with two tables that enable whole-file dedup:
7
+ *
8
+ * - `dataRefs`: reference table linking (tenant, recordId) to a dataCid.
9
+ * Multiple tenant/record pairs can reference the same dataCid. Includes
10
+ * `dataSize` for efficient size queries (fixes the existing admin store bug).
11
+ *
12
+ * - `dataBlocks`: content storage table keyed by (rootDataCid, blockCid).
13
+ * Stores individual ~256KB DAG-PB blocks produced by ipfs-unixfs-importer.
14
+ * Content is shared across all references to the same dataCid.
15
+ *
16
+ * Data migration strategy:
17
+ * - For each row in the old `dataStore`, insert a ref into `dataRefs` and a
18
+ * single block into `dataBlocks` with blockCid = dataCid (treating the
19
+ * existing assembled blob as one block). This is a safe migration because
20
+ * the new DataStoreSql code will re-chunk via ipfs-unixfs-importer on the
21
+ * next write. Reads of migrated data use a fast path that detects the
22
+ * single-block case and returns the data directly without the exporter.
23
+ *
24
+ * NOTE: For large databases, the data migration may take significant time.
25
+ * The migration runs in a single transaction for atomicity.
26
+ */
27
+ export const migration002ContentAddressedDatastore = {
28
+ name: '002-content-addressed-datastore',
29
+ async up(db, dialect) {
30
+ // ─── Create dataRefs table ──────────────────────────────────────────
31
+ if (!(await dialect.hasTable(db, 'dataRefs'))) {
32
+ await db.schema
33
+ .createTable('dataRefs')
34
+ .ifNotExists()
35
+ .addColumn('tenant', 'varchar(255)', (col) => col.notNull())
36
+ .addColumn('recordId', 'varchar(60)', (col) => col.notNull())
37
+ .addColumn('dataCid', 'varchar(60)', (col) => col.notNull())
38
+ .addColumn('dataSize', 'bigint', (col) => col.notNull())
39
+ .execute();
40
+ // Unique constraint: one ref per (tenant, recordId, dataCid)
41
+ await db.schema.createIndex('index_dataRefs_tenant_recordId_dataCid')
42
+ .on('dataRefs').columns(['tenant', 'recordId', 'dataCid']).unique().execute();
43
+ // Index for dataCid lookups (refcount queries, GC)
44
+ await db.schema.createIndex('index_dataRefs_dataCid')
45
+ .on('dataRefs').column('dataCid').execute();
46
+ // Index for tenant-scoped size aggregation (admin queries)
47
+ await db.schema.createIndex('index_dataRefs_tenant')
48
+ .on('dataRefs').column('tenant').execute();
49
+ }
50
+ // ─── Create dataBlocks table ────────────────────────────────────────
51
+ if (!(await dialect.hasTable(db, 'dataBlocks'))) {
52
+ let table = db.schema
53
+ .createTable('dataBlocks')
54
+ .ifNotExists()
55
+ .addColumn('rootDataCid', 'varchar(60)', (col) => col.notNull())
56
+ .addColumn('blockCid', 'varchar(60)', (col) => col.notNull());
57
+ table = dialect.addBlobColumn(table, 'data', (col) => col.notNull());
58
+ await table.execute();
59
+ // Primary-like unique index on (rootDataCid, blockCid)
60
+ await db.schema.createIndex('index_dataBlocks_rootDataCid_blockCid')
61
+ .on('dataBlocks').columns(['rootDataCid', 'blockCid']).unique().execute();
62
+ }
63
+ // ─── Migrate data from old dataStore table ──────────────────────────
64
+ const oldTableExists = await dialect.hasTable(db, 'dataStore');
65
+ if (oldTableExists) {
66
+ // Check if old table has any data to migrate
67
+ const countResult = await sql `SELECT COUNT(*) as cnt FROM ${sql.table('dataStore')}`
68
+ .execute(db);
69
+ const count = Number(countResult.rows[0]?.cnt ?? 0);
70
+ if (count > 0) {
71
+ // Column references must be quoted to preserve camelCase in PostgreSQL.
72
+ const recordId = sql.ref('recordId');
73
+ const dataCid = sql.ref('dataCid');
74
+ const dataSize = sql.ref('dataSize');
75
+ const rootDataCid = sql.ref('rootDataCid');
76
+ const blockCid = sql.ref('blockCid');
77
+ // Migrate refs: insert into dataRefs from dataStore
78
+ // Use LENGTH/OCTET_LENGTH depending on dialect for blob size
79
+ if (dialect.name === 'SQLite') {
80
+ await sql `
81
+ INSERT INTO ${sql.table('dataRefs')} (tenant, ${recordId}, ${dataCid}, ${dataSize})
82
+ SELECT tenant, ${recordId}, ${dataCid}, LENGTH(data)
83
+ FROM ${sql.table('dataStore')}
84
+ `.execute(db);
85
+ }
86
+ else {
87
+ // PostgreSQL uses OCTET_LENGTH for bytea, MySQL uses LENGTH for blob
88
+ await sql `
89
+ INSERT INTO ${sql.table('dataRefs')} (tenant, ${recordId}, ${dataCid}, ${dataSize})
90
+ SELECT tenant, ${recordId}, ${dataCid}, OCTET_LENGTH(data)
91
+ FROM ${sql.table('dataStore')}
92
+ `.execute(db);
93
+ }
94
+ // Migrate blocks: treat each existing blob as a single block
95
+ // where blockCid = dataCid (the root CID is the only block)
96
+ // Skip duplicates: only insert blocks for dataCids not already in dataBlocks
97
+ if (dialect.name === 'MySQL') {
98
+ await sql `
99
+ INSERT IGNORE INTO ${sql.table('dataBlocks')} (${rootDataCid}, ${blockCid}, data)
100
+ SELECT ${dataCid}, ${dataCid}, data
101
+ FROM ${sql.table('dataStore')}
102
+ `.execute(db);
103
+ }
104
+ else if (dialect.name === 'SQLite') {
105
+ await sql `
106
+ INSERT OR IGNORE INTO ${sql.table('dataBlocks')} (${rootDataCid}, ${blockCid}, data)
107
+ SELECT ${dataCid}, ${dataCid}, data
108
+ FROM ${sql.table('dataStore')}
109
+ `.execute(db);
110
+ }
111
+ else {
112
+ // PostgreSQL
113
+ await sql `
114
+ INSERT INTO ${sql.table('dataBlocks')} (${rootDataCid}, ${blockCid}, data)
115
+ SELECT ${dataCid}, ${dataCid}, data
116
+ FROM ${sql.table('dataStore')}
117
+ ON CONFLICT (${rootDataCid}, ${blockCid}) DO NOTHING
118
+ `.execute(db);
119
+ }
120
+ }
121
+ // Drop the old table after migration
122
+ await db.schema.dropTable('dataStore').execute();
123
+ }
124
+ },
125
+ };
126
+ //# sourceMappingURL=002-content-addressed-datastore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"002-content-addressed-datastore.js","sourceRoot":"","sources":["../../../../src/migrations/002-content-addressed-datastore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { migration001InitialSchema } from './001-initial-schema.js';
2
+ import { migration002ContentAddressedDatastore } from './002-content-addressed-datastore.js';
3
+ /**
4
+ * All migrations in sequential order. The MigrationRunner applies them
5
+ * in array order, skipping any that have already been recorded.
6
+ */
7
+ export const allMigrations = [
8
+ migration001InitialSchema,
9
+ migration002ContentAddressedDatastore,
10
+ ];
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/migrations/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,qCAAqC,EAAE,MAAM,sCAAsC,CAAC;AAE7F;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,yBAAyB;IACzB,qCAAqC;CACtC,CAAC"}
@@ -118,7 +118,8 @@ export class StateIndexSql {
118
118
  // Insert into the global tree
119
119
  const globalSmt = await this.getGlobalTree(tenant);
120
120
  await globalSmt.insert(messageCid);
121
- // If the message is associated with a protocol, insert into the protocol-scoped tree
121
+ // Insert into the protocol-scoped tree if the message has a protocol (e.g. RecordsWrite).
122
+ // Non-record messages like ProtocolsConfigure do not have a protocol.
122
123
  const protocol = indexes.protocol;
123
124
  if (protocol !== undefined) {
124
125
  const protoSmt = await this.getProtocolTree(tenant, protocol);
@@ -152,8 +153,8 @@ export class StateIndexSql {
152
153
  .executeTakeFirst();
153
154
  // Delete from global tree
154
155
  await globalSmt.delete(messageCid);
155
- // Delete from protocol tree if applicable
156
- if (meta?.protocol) {
156
+ // Delete from protocol tree if the message had a protocol
157
+ if (meta && meta.protocol !== null) {
157
158
  const protoSmt = await this.getProtocolTree(tenant, meta.protocol);
158
159
  await protoSmt.delete(messageCid);
159
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"state-index-sql.js","sourceRoot":"","sources":["../../../src/state-index-sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-index-sql.js","sourceRoot":"","sources":["../../../src/state-index-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,OAAO,aAAa;IACxB,QAAQ,CAAU;IAClB,GAAG,GAAmC,IAAI,CAAC;IAE3C;;;;OAIG;IACH,YAAY,GAA2C,IAAI,GAAG,EAAE,CAAC;IAEjE;;;OAGG;IACH,cAAc,GAA2C,IAAI,GAAG,EAAE,CAAC;IAEnE,YAAY,OAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEnE,oDAAoD;QACpD,MAAM,iBAAiB,EAAE,CAAC;QAE1B,yEAAyE;QACzE,MAAM,cAAc,GAAG,iBAAiB,CAAC;QACzC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAChF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;iBAClB,WAAW,CAAC,cAAc,CAAC;iBAC3B,WAAW,EAAE;iBACb,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC3D,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC1D,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC5D,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC5D,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;iBACpC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC;iBACrC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;iBACvC,SAAS,CAAC,cAAc,EAAE,aAAa,CAAC;iBACxC,OAAO,EAAE,CAAC;YAEb,0EAA0E;YAC1E,sEAAsE;YACtE,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;iBAClB,WAAW,CAAC,6CAA6C,CAAC;iBAC1D,EAAE,CAAC,cAAc,CAAC;iBAClB,OAAO,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;iBACxC,OAAO,EAAE,CAAC;QACf,CAAC;QAED,yEAAyE;QACzE,MAAM,cAAc,GAAG,iBAAiB,CAAC;QACzC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAChF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;iBAClB,WAAW,CAAC,cAAc,CAAC;iBAC3B,WAAW,EAAE;iBACb,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC3D,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC1D,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC5D,OAAO,EAAE,CAAC;YAEb,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;iBAClB,WAAW,CAAC,oCAAoC,CAAC;iBACjD,EAAE,CAAC,cAAc,CAAC;iBAClB,OAAO,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;iBAC5B,OAAO,EAAE,CAAC;QACf,CAAC;QAED,yEAAyE;QACzE,MAAM,aAAa,GAAG,gBAAgB,CAAC;QACvC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC9E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;iBAClB,WAAW,CAAC,aAAa,CAAC;iBAC1B,WAAW,EAAE;iBACb,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC3D,SAAS,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC9D,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC;iBACrC,OAAO,EAAE,CAAC;YAEb,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;iBAClB,WAAW,CAAC,wCAAwC,CAAC;iBACrD,EAAE,CAAC,aAAa,CAAC;iBACjB,OAAO,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;iBACjC,OAAO,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAE5B,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,UAAkB,EAAE,OAAkB;QACjE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,8BAA8B;QAC9B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEnC,0FAA0F;QAC1F,sEAAsE;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA8B,CAAC;QACxD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9D,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QAED,6CAA6C;QAC7C,MAAM,IAAI,CAAC,GAAG;aACX,UAAU,CAAC,gBAAgB,CAAC;aAC5B,MAAM,CAAC;YACN,MAAM;YACN,UAAU;YACV,QAAQ,EAAE,QAAQ,IAAI,IAAI;SAC3B,CAAC;aACD,OAAO,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,WAAqB;QAChD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEnD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,+CAA+C;YAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG;iBACxB,UAAU,CAAC,gBAAgB,CAAC;iBAC5B,MAAM,CAAC,UAAU,CAAC;iBAClB,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;iBAC5B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,UAAU,CAAC;iBACpC,gBAAgB,EAAE,CAAC;YAEtB,0BAA0B;YAC1B,MAAM,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAEnC,0DAA0D;YAC1D,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnE,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;YAED,4BAA4B;YAC5B,MAAM,IAAI,CAAC,GAAG;iBACX,UAAU,CAAC,gBAAgB,CAAC;iBAC5B,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;iBAC5B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,UAAU,CAAC;iBACpC,OAAO,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,QAAgB;QACpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,MAAiB;QACpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAiB;QAC9E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAiB;QAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAiB;QACzE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,2EAA2E;IAE3E;;;OAGG;IACK,aAAa,CAAC,MAAc;QAClC,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,eAAe,CAAC,MAAc,EAAE,QAAgB;QACtD,MAAM,QAAQ,GAAG,GAAG,MAAM,OAAO,QAAQ,EAAE,CAAC;QAC5C,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,KAAa;QACpD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC;YAC5B,EAAE,EAAE,IAAI,CAAC,GAAI;YACb,MAAM;YACN,KAAK;SACN,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;CAEF"}
@@ -0,0 +1,36 @@
1
+ import type { DwnDatabaseType } from './types.js';
2
+ import type { Kysely } from 'kysely';
3
+ import type { AbortOptions, AwaitIterable } from 'interface-store';
4
+ import type { Blockstore, Pair } from 'interface-blockstore';
5
+ import { CID } from 'multiformats';
6
+ /**
7
+ * SQL-backed implementation of the `Blockstore` v5 interface, scoped to a
8
+ * single `rootDataCid`. All block operations are constrained to the blocks
9
+ * belonging to this root CID in the `dataBlocks` table.
10
+ *
11
+ * Used by `ipfs-unixfs-importer` (during `put()`) and `ipfs-unixfs-exporter`
12
+ * (during `get()`) to store and retrieve individual DAG-PB blocks.
13
+ *
14
+ * The Kysely instance and database connection are managed externally by
15
+ * `DataStoreSql`. This class does not own the connection lifecycle.
16
+ */
17
+ export declare class BlockstoreSql implements Blockstore {
18
+ #private;
19
+ constructor(db: Kysely<DwnDatabaseType>, rootDataCid: string);
20
+ open(): Promise<void>;
21
+ close(): Promise<void>;
22
+ put(key: CID, val: Uint8Array, _options?: AbortOptions): Promise<CID>;
23
+ get(key: CID, _options?: AbortOptions): Promise<Uint8Array>;
24
+ has(key: CID, _options?: AbortOptions): Promise<boolean>;
25
+ delete(key: CID, _options?: AbortOptions): Promise<void>;
26
+ isEmpty(_options?: AbortOptions): Promise<boolean>;
27
+ putMany(source: AwaitIterable<Pair>, options?: AbortOptions): AsyncIterable<CID>;
28
+ getMany(source: AwaitIterable<CID>, options?: AbortOptions): AsyncIterable<Pair>;
29
+ getAll(_options?: AbortOptions): AsyncIterable<Pair>;
30
+ deleteMany(source: AwaitIterable<CID>, options?: AbortOptions): AsyncIterable<CID>;
31
+ /**
32
+ * Deletes all blocks for this rootDataCid.
33
+ */
34
+ clear(): Promise<void>;
35
+ }
36
+ //# sourceMappingURL=blockstore-sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockstore-sql.d.ts","sourceRoot":"","sources":["../../../src/blockstore-sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,YAAW,UAAU;;gBAIlC,EAAE,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,MAAM;IAK/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAerE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAe3D,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAWxD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,OAAO,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhD,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC;IAOhF,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC;IAShF,MAAM,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC;IAepD,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC;IAOjG;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAMpC"}