@haverstack/adapter-sqlite 0.1.0 → 0.2.0

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.
package/README.md CHANGED
@@ -42,10 +42,10 @@ await stack.close();
42
42
 
43
43
  Creates a new database at `opts.path`. Throws if the file already exists.
44
44
 
45
- | Option | Type | Description |
46
- | ---------- | -------- | -------------------------------------- |
47
- | `path` | `string` | Absolute path to the `.db` file |
48
- | `entityId` | `string` | Entity ID of the stack owner |
45
+ | Option | Type | Description |
46
+ | ---------- | -------- | ---------------------------------------------- |
47
+ | `path` | `string` | Absolute path to the `.db` file |
48
+ | `entityId` | `string` | Entity ID of the stack owner |
49
49
  | `timezone` | `string` | IANA timezone string (e.g. `America/New_York`) |
50
50
 
51
51
  ### `SQLiteAdapter.open(opts)`
@@ -62,11 +62,11 @@ Given a database at `./my-stack.db`, attachments are stored in `./attachments/`.
62
62
 
63
63
  ## Capabilities
64
64
 
65
- | Feature | Supported |
66
- | ------------------ | --------- |
67
- | Full-text search | Yes (FTS4) |
68
- | Content field query | Yes |
69
- | Sortable fields | `createdAt`, `updatedAt`, `version` |
65
+ | Feature | Supported |
66
+ | ------------------- | ----------------------------------- |
67
+ | Full-text search | Yes (FTS4) |
68
+ | Content field query | Yes |
69
+ | Sortable fields | `createdAt`, `updatedAt`, `version` |
70
70
 
71
71
  ## License
72
72
 
package/dist/index.d.ts CHANGED
@@ -6,13 +6,15 @@
6
6
  * without native compilation.
7
7
  *
8
8
  * The database is held in memory and flushed to disk on every
9
- * write. Attachments are stored as files in an `attachments/`
10
- * subdirectory next to the database file.
9
+ * write. Attachments are stored as extension-less files in an
10
+ * `attachments/` subdirectory next to the database file.
11
+ * File IDs are SHA-256 hashes of the content, enabling
12
+ * automatic deduplication.
11
13
  *
12
14
  * Stack config (timezone, entity_id, etc.) is stored in a
13
15
  * `stack_config` key/value table.
14
16
  */
15
- import type { StackAdapter, StackRecord, StackType, TypeId, RecordVersion, StackQuery, QueryResult, Association, AdapterCapabilities } from '@haverstack/core';
17
+ import type { StackAdapter, StackRecord, StackType, TypeId, RecordVersion, StackQuery, QueryResult, Association, AdapterCapabilities, AttachmentMeta } from '@haverstack/core';
16
18
  export type SQLiteInitializeOptions = {
17
19
  /** Absolute path to the .db file. Must not already exist. */
18
20
  path: string;
@@ -25,6 +27,13 @@ export type SQLiteOpenOptions = {
25
27
  /** Absolute path to an existing .db file. */
26
28
  path: string;
27
29
  };
30
+ export type TokenInfo = {
31
+ id: string;
32
+ entityId: string;
33
+ label?: string;
34
+ createdAt: Date;
35
+ expiresAt?: Date;
36
+ };
28
37
  export declare class SQLiteAdapter implements StackAdapter {
29
38
  private readonly SQL;
30
39
  private readonly path;
@@ -46,6 +55,11 @@ export declare class SQLiteAdapter implements StackAdapter {
46
55
  setConfig(key: string, value: string): Promise<void>;
47
56
  /** Flush the in-memory database to disk. Called after every write. */
48
57
  private persist;
58
+ /**
59
+ * Runs after SCHEMA_SQL to handle databases created before breaking schema
60
+ * changes. Safe to call on both fresh and existing databases.
61
+ */
62
+ private runMigrations;
49
63
  createRecord(record: StackRecord): Promise<StackRecord>;
50
64
  getRecord(id: string): Promise<StackRecord | null>;
51
65
  updateRecord(id: string, changes: Partial<StackRecord>): Promise<StackRecord>;
@@ -59,14 +73,29 @@ export declare class SQLiteAdapter implements StackAdapter {
59
73
  saveType(type: StackType): Promise<void>;
60
74
  getType(id: TypeId): Promise<StackType | null>;
61
75
  listTypes(): Promise<StackType[]>;
62
- putAttachment(data: Uint8Array, mimeType: string): Promise<string>;
76
+ putAttachment(data: Uint8Array, mimeType: string, filename?: string): Promise<string>;
63
77
  getAttachment(fileId: string): Promise<Uint8Array>;
64
78
  deleteAttachment(fileId: string): Promise<void>;
79
+ getAttachmentMeta(fileId: string): Promise<AttachmentMeta | null>;
80
+ createToken(entityId: string, opts?: {
81
+ label?: string;
82
+ expiresAt?: Date;
83
+ }): Promise<{
84
+ id: string;
85
+ token: string;
86
+ }>;
87
+ lookupToken(token: string): Promise<{
88
+ entityId: string;
89
+ } | null>;
90
+ listTokens(): Promise<TokenInfo[]>;
91
+ revokeToken(id: string): Promise<void>;
65
92
  associate(recordId: string, association: Association): Promise<void>;
66
93
  dissociate(recordId: string, association: Association): Promise<void>;
67
94
  private insertAssociations;
68
95
  private getAssociationsForRecord;
69
96
  private updateFts;
70
97
  private execQuery;
98
+ flush(): Promise<void>;
99
+ close(): Promise<void>;
71
100
  }
72
101
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,MAAM,EACN,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAM1B,MAAM,MAAM,uBAAuB,GAAG;IACpC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AA+TF,qBAAa,aAAc,YAAW,YAAY;IAW9C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXvB,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAIxC;IAEF,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC,OAAO;IAOP;;;OAGG;WACU,UAAU,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC;IAsB9E;;;OAGG;WACU,IAAI,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAqB5D,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAY9C,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D,sEAAsE;IACtE,OAAO,CAAC,OAAO;IASf;;;OAGG;IACH,OAAO,CAAC,aAAa;IAwBf,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IA8BvD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAalD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAwD7E,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAetE,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAoCrD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAQjD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAQtE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9D,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAK9C,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAWjC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBrF,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMlD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAqBjE,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAO,GAC9C,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBnC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAYhE,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAiBlC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3E,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,SAAS;IAeX,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
package/dist/index.js CHANGED
@@ -6,17 +6,19 @@
6
6
  * without native compilation.
7
7
  *
8
8
  * The database is held in memory and flushed to disk on every
9
- * write. Attachments are stored as files in an `attachments/`
10
- * subdirectory next to the database file.
9
+ * write. Attachments are stored as extension-less files in an
10
+ * `attachments/` subdirectory next to the database file.
11
+ * File IDs are SHA-256 hashes of the content, enabling
12
+ * automatic deduplication.
11
13
  *
12
14
  * Stack config (timezone, entity_id, etc.) is stored in a
13
15
  * `stack_config` key/value table.
14
16
  */
15
17
  import initSqlJs from 'sql.js';
18
+ import { createHash, randomBytes } from 'node:crypto';
16
19
  import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
17
- import { readFile, writeFile } from 'fs/promises';
20
+ import { readFile, writeFile, unlink } from 'fs/promises';
18
21
  import { join, dirname } from 'path';
19
- import { generateId } from '@haverstack/core';
20
22
  // -------------------------------------------------------
21
23
  // SQL — schema
22
24
  // -------------------------------------------------------
@@ -73,8 +75,18 @@ const SCHEMA_SQL = `
73
75
  CREATE TABLE IF NOT EXISTS attachments (
74
76
  file_id TEXT PRIMARY KEY,
75
77
  mime_type TEXT NOT NULL,
76
- created_at INTEGER NOT NULL,
77
- path TEXT NOT NULL
78
+ size INTEGER NOT NULL,
79
+ filename TEXT,
80
+ created_at INTEGER NOT NULL
81
+ ) STRICT;
82
+
83
+ CREATE TABLE IF NOT EXISTS tokens (
84
+ id TEXT PRIMARY KEY,
85
+ token_hash TEXT NOT NULL UNIQUE,
86
+ entity_id TEXT NOT NULL,
87
+ label TEXT,
88
+ created_at INTEGER NOT NULL,
89
+ expires_at INTEGER
78
90
  ) STRICT;
79
91
 
80
92
  -- Indexes
@@ -87,7 +99,9 @@ const SCHEMA_SQL = `
87
99
  CREATE INDEX IF NOT EXISTS idx_records_updated_at ON records(updated_at);
88
100
  CREATE INDEX IF NOT EXISTS idx_assoc_record_id ON associations(record_id);
89
101
  CREATE INDEX IF NOT EXISTS idx_assoc_kind_label ON associations(kind, label);
102
+ CREATE INDEX IF NOT EXISTS idx_assoc_kind_file_id ON associations(kind, file_id);
90
103
  CREATE INDEX IF NOT EXISTS idx_types_base_id ON types(base_id);
104
+ CREATE INDEX IF NOT EXISTS idx_tokens_hash ON tokens(token_hash);
91
105
 
92
106
  -- Full-text search (FTS4 — compatible with sql.js)
93
107
  CREATE VIRTUAL TABLE IF NOT EXISTS records_fts USING fts4(
@@ -166,9 +180,8 @@ const rowToVersion = (row) => {
166
180
  v.entityId = row.entity_id;
167
181
  return v;
168
182
  };
169
- // -------------------------------------------------------
170
- // Query building
171
- // -------------------------------------------------------
183
+ const getSortField = (query) => query.sort?.field ?? 'createdAt';
184
+ const getSortColumn = (field) => field === 'createdAt' ? 'created_at' : field === 'updatedAt' ? 'updated_at' : 'version';
172
185
  const buildWhereClause = (query) => {
173
186
  const conditions = [];
174
187
  const params = [];
@@ -228,6 +241,11 @@ const buildWhereClause = (query) => {
228
241
  conditions.push(`EXISTS (SELECT 1 FROM associations a WHERE a.record_id = r.id AND a.kind = 'attachment' AND a.label = ?)`);
229
242
  params.push(f.hasAttachment);
230
243
  }
244
+ // Attachment file ID filter — find records that reference a specific file
245
+ if (f.attachmentFileId) {
246
+ conditions.push(`EXISTS (SELECT 1 FROM associations a WHERE a.record_id = r.id AND a.kind = 'attachment' AND a.file_id = ?)`);
247
+ params.push(f.attachmentFileId);
248
+ }
231
249
  // Relationship filter
232
250
  if (f.relatedTo) {
233
251
  conditions.push(`EXISTS (SELECT 1 FROM associations a WHERE a.record_id = r.id AND a.kind = 'relationship' AND a.related_id = ?` +
@@ -249,13 +267,18 @@ const buildWhereClause = (query) => {
249
267
  conditions.push(`r.rowid IN (SELECT rowid FROM records_fts WHERE records_fts MATCH ?)`);
250
268
  params.push(f.search);
251
269
  }
252
- // Cursor (created_at + id for stable pagination)
270
+ // Cursor (sort-field value + id for stable pagination)
253
271
  if (query.cursor) {
254
- const [cursorTs, cursorId] = Buffer.from(query.cursor, 'base64').toString().split('|');
272
+ const parts = Buffer.from(query.cursor, 'base64').toString().split('|');
273
+ // New format: field|value|id (3 parts). Legacy format: value|id (2 parts, implies createdAt).
274
+ const [cursorField, cursorValue, cursorId] = parts.length === 3
275
+ ? parts
276
+ : ['createdAt', parts[0], parts[1]];
277
+ const col = getSortColumn(cursorField);
255
278
  const sortDir = query.sort?.direction ?? 'desc';
256
279
  const op = sortDir === 'asc' ? '>' : '<';
257
- conditions.push(`(r.created_at ${op} ? OR (r.created_at = ? AND r.id ${op} ?))`);
258
- params.push(Number(cursorTs), Number(cursorTs), cursorId);
280
+ conditions.push(`(r.${col} ${op} ? OR (r.${col} = ? AND r.id ${op} ?))`);
281
+ params.push(Number(cursorValue), Number(cursorValue), cursorId);
259
282
  }
260
283
  return {
261
284
  sql: conditions.length ? `WHERE ${conditions.join(' AND ')}` : '',
@@ -263,12 +286,18 @@ const buildWhereClause = (query) => {
263
286
  };
264
287
  };
265
288
  const buildOrderClause = (query) => {
266
- const field = query.sort?.field ?? 'created_at';
289
+ const field = getSortField(query);
267
290
  const dir = (query.sort?.direction ?? 'desc').toUpperCase();
268
- const col = field === 'createdAt' ? 'created_at' : field === 'updatedAt' ? 'updated_at' : field;
269
- return `ORDER BY r.${col} ${dir}, r.id ${dir}`;
291
+ return `ORDER BY r.${getSortColumn(field)} ${dir}, r.id ${dir}`;
292
+ };
293
+ const makeCursor = (record, field) => {
294
+ const value = field === 'updatedAt'
295
+ ? toMs(record.updatedAt)
296
+ : field === 'version'
297
+ ? record.version
298
+ : toMs(record.createdAt);
299
+ return Buffer.from(`${field}|${value}|${record.id}`).toString('base64');
270
300
  };
271
- const makeCursor = (record) => Buffer.from(`${toMs(record.createdAt)}|${record.id}`).toString('base64');
272
301
  // -------------------------------------------------------
273
302
  // SQLite adapter
274
303
  // -------------------------------------------------------
@@ -300,6 +329,7 @@ export class SQLiteAdapter {
300
329
  const adapter = new SQLiteAdapter(SQL, opts.path);
301
330
  adapter.db = new SQL.Database();
302
331
  adapter.db.run(SCHEMA_SQL);
332
+ adapter.runMigrations();
303
333
  mkdirSync(adapter.attachmentsDir, { recursive: true });
304
334
  adapter.db.run(`INSERT INTO stack_config (key, value) VALUES
305
335
  ('entity_id', ?), ('timezone', ?), ('version', '1')`, [opts.entityId, opts.timezone]);
@@ -320,6 +350,7 @@ export class SQLiteAdapter {
320
350
  const fileBuffer = readFileSync(opts.path);
321
351
  adapter.db = new SQL.Database(fileBuffer);
322
352
  adapter.db.run(SCHEMA_SQL); // safe — all statements use CREATE IF NOT EXISTS
353
+ adapter.runMigrations();
323
354
  mkdirSync(adapter.attachmentsDir, { recursive: true });
324
355
  return adapter;
325
356
  }
@@ -350,6 +381,33 @@ export class SQLiteAdapter {
350
381
  writeFileSync(this.path, Buffer.from(data));
351
382
  }
352
383
  // -------------------------------------------------------
384
+ // Schema migrations
385
+ // -------------------------------------------------------
386
+ /**
387
+ * Runs after SCHEMA_SQL to handle databases created before breaking schema
388
+ * changes. Safe to call on both fresh and existing databases.
389
+ */
390
+ runMigrations() {
391
+ const cols = this.execQuery('PRAGMA table_info(attachments)');
392
+ if (!cols.length)
393
+ return; // Table doesn't exist yet — SCHEMA_SQL will create it.
394
+ const hasPath = cols.some((c) => c.name === 'path');
395
+ if (hasPath) {
396
+ // Pre-content-addressed-storage schema. File IDs and paths are incompatible;
397
+ // drop and recreate. Any existing attachment rows are unreadable anyway.
398
+ this.db.run('DROP TABLE attachments');
399
+ this.db.run(`
400
+ CREATE TABLE attachments (
401
+ file_id TEXT PRIMARY KEY,
402
+ mime_type TEXT NOT NULL,
403
+ size INTEGER NOT NULL,
404
+ filename TEXT,
405
+ created_at INTEGER NOT NULL
406
+ ) STRICT
407
+ `);
408
+ }
409
+ }
410
+ // -------------------------------------------------------
353
411
  // Records
354
412
  // -------------------------------------------------------
355
413
  async createRecord(record) {
@@ -463,7 +521,7 @@ export class SQLiteAdapter {
463
521
  const countRows = this.execQuery(`SELECT COUNT(*) as total FROM records r ${where}`, params);
464
522
  const total = countRows[0]?.total ?? 0;
465
523
  const lastRecord = records[records.length - 1];
466
- const cursor = hasMore && lastRecord ? makeCursor(lastRecord) : null;
524
+ const cursor = hasMore && lastRecord ? makeCursor(lastRecord, getSortField(query)) : null;
467
525
  return { records, cursor, total };
468
526
  }
469
527
  // -------------------------------------------------------
@@ -517,30 +575,89 @@ export class SQLiteAdapter {
517
575
  // -------------------------------------------------------
518
576
  // Attachments
519
577
  // -------------------------------------------------------
520
- async putAttachment(data, mimeType) {
521
- const fileId = generateId();
522
- const ext = mimeType.split('/')[1] ?? 'bin';
523
- const filename = `${fileId}.${ext}`;
524
- const filePath = join(this.attachmentsDir, filename);
525
- await writeFile(filePath, data);
526
- this.db.run('INSERT INTO attachments (file_id, mime_type, created_at, path) VALUES (?, ?, ?, ?)', [fileId, mimeType, toMs(new Date()), filename]);
578
+ async putAttachment(data, mimeType, filename) {
579
+ const fileId = createHash('sha256').update(data).digest('hex');
580
+ // Dedup: same bytes already stored — return existing ID without re-writing.
581
+ const existing = await this.getAttachmentMeta(fileId);
582
+ if (existing)
583
+ return fileId;
584
+ await writeFile(join(this.attachmentsDir, fileId), data);
585
+ this.db.run('INSERT INTO attachments (file_id, mime_type, size, filename, created_at) VALUES (?, ?, ?, ?, ?)', [fileId, mimeType, data.byteLength, filename ?? null, toMs(new Date())]);
527
586
  this.persist();
528
587
  return fileId;
529
588
  }
530
589
  async getAttachment(fileId) {
531
- const rows = this.execQuery('SELECT path FROM attachments WHERE file_id = ?', [fileId]);
532
- if (!rows.length) {
590
+ const meta = await this.getAttachmentMeta(fileId);
591
+ if (!meta)
533
592
  throw new Error(`Attachment not found: "${fileId}"`);
534
- }
535
- const filePath = join(this.attachmentsDir, rows[0].path);
536
- return readFile(filePath);
593
+ return readFile(join(this.attachmentsDir, fileId));
537
594
  }
538
595
  async deleteAttachment(fileId) {
539
596
  this.db.run('DELETE FROM attachments WHERE file_id = ?', [fileId]);
540
597
  this.persist();
598
+ try {
599
+ await unlink(join(this.attachmentsDir, fileId));
600
+ }
601
+ catch {
602
+ // Non-fatal — file may already be gone.
603
+ }
604
+ }
605
+ async getAttachmentMeta(fileId) {
606
+ const rows = this.execQuery('SELECT mime_type, size, created_at, filename FROM attachments WHERE file_id = ?', [fileId]);
607
+ if (!rows.length)
608
+ return null;
609
+ const row = rows[0];
610
+ return {
611
+ mimeType: row.mime_type,
612
+ size: row.size,
613
+ createdAt: fromMs(row.created_at),
614
+ ...(row.filename && { filename: row.filename }),
615
+ };
616
+ }
617
+ // -------------------------------------------------------
618
+ // Tokens
619
+ // -------------------------------------------------------
620
+ async createToken(entityId, opts = {}) {
621
+ const id = randomBytes(8).toString('hex');
622
+ const token = randomBytes(32).toString('hex');
623
+ const tokenHash = createHash('sha256').update(token).digest('hex');
624
+ this.db.run('INSERT INTO tokens (id, token_hash, entity_id, label, created_at, expires_at) VALUES (?, ?, ?, ?, ?, ?)', [
625
+ id,
626
+ tokenHash,
627
+ entityId,
628
+ opts.label ?? null,
629
+ toMs(new Date()),
630
+ opts.expiresAt ? toMs(opts.expiresAt) : null,
631
+ ]);
632
+ this.persist();
633
+ return { id, token };
634
+ }
635
+ async lookupToken(token) {
636
+ const hash = createHash('sha256').update(token).digest('hex');
637
+ const rows = this.execQuery('SELECT entity_id, expires_at FROM tokens WHERE token_hash = ?', [hash]);
638
+ if (!rows.length)
639
+ return null;
640
+ const row = rows[0];
641
+ if (row.expires_at !== null && Date.now() > row.expires_at)
642
+ return null;
643
+ return { entityId: row.entity_id };
644
+ }
645
+ async listTokens() {
646
+ const rows = this.execQuery('SELECT id, entity_id, label, created_at, expires_at FROM tokens ORDER BY created_at DESC');
647
+ return rows.map((row) => ({
648
+ id: row.id,
649
+ entityId: row.entity_id,
650
+ ...(row.label && { label: row.label }),
651
+ createdAt: fromMs(row.created_at),
652
+ ...(row.expires_at !== null && { expiresAt: fromMs(row.expires_at) }),
653
+ }));
654
+ }
655
+ async revokeToken(id) {
656
+ this.db.run('DELETE FROM tokens WHERE id = ?', [id]);
657
+ this.persist();
541
658
  }
542
659
  // -------------------------------------------------------
543
- // Private helpers
660
+ // Associations
544
661
  // -------------------------------------------------------
545
662
  async associate(recordId, association) {
546
663
  this.insertAssociations(recordId, [association]);
@@ -597,5 +714,14 @@ export class SQLiteAdapter {
597
714
  stmt.free();
598
715
  return results;
599
716
  }
717
+ // -------------------------------------------------------
718
+ // Lifecycle
719
+ // -------------------------------------------------------
720
+ async flush() {
721
+ this.persist();
722
+ }
723
+ async close() {
724
+ this.db.close();
725
+ }
600
726
  }
601
727
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haverstack/adapter-sqlite",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "SQLite storage adapter for Haverstack",
5
5
  "type": "module",
6
6
  "exports": {
@@ -27,20 +27,21 @@
27
27
  "personal data",
28
28
  "storage"
29
29
  ],
30
+ "scripts": {
31
+ "prepublishOnly": "pnpm run build",
32
+ "build": "tsc -p tsconfig.build.json",
33
+ "test": "vitest run",
34
+ "typecheck": "tsc --noEmit",
35
+ "lint": "eslint src tests"
36
+ },
30
37
  "dependencies": {
31
- "sql.js": "^1.14.0",
32
- "@haverstack/core": "0.1.0"
38
+ "@haverstack/core": "workspace:*",
39
+ "sql.js": "^1.14.0"
33
40
  },
34
41
  "devDependencies": {
35
42
  "@types/node": "^22.0.0",
36
43
  "@types/sql.js": "^1.4.9",
37
44
  "typescript": "^5.5.0",
38
45
  "vitest": "^2.0.0"
39
- },
40
- "scripts": {
41
- "build": "tsc -p tsconfig.build.json",
42
- "test": "vitest run",
43
- "typecheck": "tsc --noEmit",
44
- "lint": "eslint src tests"
45
46
  }
46
- }
47
+ }
package/LICENSE DELETED
@@ -1,7 +0,0 @@
1
- CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
2
-
3
- To the extent possible under law, the Haverstack contributors have waived all
4
- copyright and related or neighboring rights to Haverstack. This work is
5
- published from the United States.
6
-
7
- https://creativecommons.org/publicdomain/zero/1.0/