@framers/sql-storage-adapter 0.7.4 → 0.7.6

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/README.md +25 -13
  2. package/dist/adapters/supabase.d.ts +8 -0
  3. package/dist/adapters/supabase.d.ts.map +1 -1
  4. package/dist/adapters/supabase.js +38 -11
  5. package/dist/adapters/supabase.js.map +1 -1
  6. package/dist/cjs/adapters/supabase.d.ts +8 -0
  7. package/dist/cjs/adapters/supabase.js +29 -11
  8. package/dist/cjs/core/contracts/features.js +4 -2
  9. package/dist/cjs/core/contracts/fts.d.ts +20 -8
  10. package/dist/cjs/core/portable.d.ts +1 -0
  11. package/dist/cjs/core/portable.js +3 -0
  12. package/dist/cjs/core/resolver.js +1 -1
  13. package/dist/cjs/fts/PostgresFts.d.ts +14 -13
  14. package/dist/cjs/fts/PostgresFts.js +61 -33
  15. package/dist/cjs/fts/SqliteFts4.d.ts +28 -0
  16. package/dist/cjs/fts/SqliteFts4.js +67 -0
  17. package/dist/cjs/fts/SqliteFts5.d.ts +1 -0
  18. package/dist/cjs/fts/SqliteFts5.js +3 -0
  19. package/dist/cjs/index.d.ts +1 -0
  20. package/dist/cjs/index.js +3 -0
  21. package/dist/core/contracts/features.d.ts.map +1 -1
  22. package/dist/core/contracts/features.js +6 -2
  23. package/dist/core/contracts/features.js.map +1 -1
  24. package/dist/core/contracts/fts.d.ts +20 -8
  25. package/dist/core/contracts/fts.d.ts.map +1 -1
  26. package/dist/core/portable.d.ts +1 -0
  27. package/dist/core/portable.d.ts.map +1 -1
  28. package/dist/core/portable.js +1 -0
  29. package/dist/core/portable.js.map +1 -1
  30. package/dist/core/resolver.js +1 -1
  31. package/dist/core/resolver.js.map +1 -1
  32. package/dist/fts/PostgresFts.d.ts +14 -13
  33. package/dist/fts/PostgresFts.d.ts.map +1 -1
  34. package/dist/fts/PostgresFts.js +83 -39
  35. package/dist/fts/PostgresFts.js.map +1 -1
  36. package/dist/fts/SqliteFts4.d.ts +28 -0
  37. package/dist/fts/SqliteFts4.d.ts.map +1 -0
  38. package/dist/fts/SqliteFts4.js +56 -0
  39. package/dist/fts/SqliteFts4.js.map +1 -0
  40. package/dist/fts/SqliteFts5.d.ts +1 -0
  41. package/dist/fts/SqliteFts5.d.ts.map +1 -1
  42. package/dist/fts/SqliteFts5.js +3 -0
  43. package/dist/fts/SqliteFts5.js.map +1 -1
  44. package/dist/index.d.ts +1 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +1 -0
  47. package/dist/index.js.map +1 -1
  48. package/package.json +1 -1
package/README.md CHANGED
@@ -92,6 +92,7 @@ import { createStorageFeatures, runSchemaMigrations, isUniqueViolation } from '@
92
92
  | `@framers/sql-storage-adapter` | Everything, with `createDatabase` and the resolver |
93
93
  | `./core` | Contracts and errors, dialects, full-text search, codecs, exporters, `createStorageFeatures`, the schema-migration runner, `isUniqueViolation`, the logger. No adapter |
94
94
  | `./postgres`, `./better-sqlite3`, `./sqljs`, `./indexeddb`, `./capacitor` | One adapter each |
95
+ | `SupabaseAdapter` (root) | Deprecated: use `./postgres` with the Supabase connection string |
95
96
  | `./backup` | S3-compatible backups (`@aws-sdk/client-s3`) |
96
97
  | `./authjs` | The Auth.js database adapter (also in `./core`) |
97
98
  | `./electron`, `./electron/renderer`, `./electron/preload` | The Electron adapters. `./electron/renderer` holds only what a window uses; `require('./electron/preload')` gives one bundled CommonJS file for a sandboxed preload |
@@ -730,30 +731,41 @@ const ddl = `CREATE TABLE notes (id ${d.columnType('uuid')} PRIMARY KEY DEFAULT
730
731
  - Column values follow each engine: a PostgreSQL `BOOLEAN` returns `true` and the SQLite `INTEGER` returns `1`, and a `TIMESTAMPTZ` returns a `Date` where SQLite returns text. `typeParsers` (see "Values") narrows the PostgreSQL side.
731
732
  - `pragma()` returns null on PostgreSQL and `advisoryTransactionLock()` returns null on SQLite: skip the statement when it is null.
732
733
 
733
- ### IFullTextSearch — FTS5 & tsvector
734
+ ### IFullTextSearch — FTS5, FTS4 & tsvector
735
+
736
+ `createStorageFeatures` gives each engine the full-text search it has:
737
+ - FTS5 on better-sqlite3;
738
+ - FTS4 on sql.js and IndexedDB, whose stock sql.js build compiles FTS3 and FTS4 and no FTS5;
739
+ - a tsvector column with a GIN index on PostgreSQL, the Supabase adapter included. (`SupabaseAdapter` is deprecated: reach Supabase with `createPostgresAdapter({ connectionString })`, which gives it the same features.)
740
+
741
+ The same calls return the same rows on all three, and `tests/fts.parity.spec.ts` runs them on each.
734
742
 
735
743
  ```typescript
736
744
  const { fts } = features;
737
745
 
738
- // Create index: FTS5 virtual table (SQLite) or tsvector + GIN (Postgres)
739
- await adapter.exec(fts.createIndex({
746
+ // FTS5 or FTS4 virtual table (SQLite), or a _tsv column with a GIN index (PostgreSQL)
747
+ await db.exec(fts.createIndex({
740
748
  table: 'docs_fts',
741
749
  columns: ['title', 'body'],
742
750
  contentTable: 'documents',
743
751
  tokenizer: 'porter ascii',
752
+ weights: { title: 'A', body: 'C' }, // PostgreSQL ranks with them; SQLite ignores them
744
753
  }));
754
+ await db.exec(fts.rebuildCommand('docs_fts'));
755
+
756
+ // The best match first on every engine; a named placeholder binds once wherever it appears
757
+ const rows = await db.all(
758
+ `SELECT t.id FROM ${fts.joinClause('documents', 't', 'docs_fts', 'docs_fts')}
759
+ WHERE ${fts.matchClause('docs_fts', '@q')} ORDER BY ${fts.relevanceOrder('docs_fts', '@q')}`,
760
+ { q: fts.sanitizeQuery(userText) },
761
+ );
762
+ ```
745
763
 
746
- // Search query
747
- const sql = `
748
- SELECT t.*
749
- FROM ${fts.joinClause('documents', 't', 'fts', 'docs_fts')}
750
- WHERE ${fts.matchClause('docs_fts', '?')}
751
- ORDER BY ${fts.rankExpression('fts')}
752
- `;
764
+ - **Ordering.** `relevanceOrder` orders best first everywhere. `rankExpression` keeps each engine's own direction: FTS5's `rank` is lower-better, FTS4's `length(offsets())` and PostgreSQL's `ts_rank` are higher-better.
765
+ - **Queries.** `sanitizeQuery` turns text into its words, quoted and joined with OR, on every engine. PostgreSQL reads queries with `websearch_to_tsquery`: words are ANDed, and `or`, `-word` and quoted phrases work as in a search box.
766
+ - **One index, many features objects.** On PostgreSQL, `createIndex` records each index's table, columns, language and weights for the whole process, so a features object made later syncs, rebuilds and queries an index another one created, and each index keeps its own language. Run `createIndex` (it is idempotent) in each process before `syncInsert` or `rebuildCommand`.
767
+ - **Aliases.** On SQLite, alias the index as itself in `joinClause` (or pass the alias as `indexName` to `matchClause`), since a MATCH names the table as the query writes it.
753
768
 
754
- // Rebuild index
755
- await adapter.exec(fts.rebuildCommand('docs_fts'));
756
- ```
757
769
 
758
770
  ### IBlobCodec — Cross-Platform Binary Encoding
759
771
 
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * Supabase Postgres Storage Adapter
3
3
  * Provides full Postgres capabilities with Supabase's managed infrastructure
4
+ *
5
+ * @deprecated Use the PostgreSQL adapter with the Supabase connection string:
6
+ * `createPostgresAdapter({ connectionString, ssl: { rejectUnauthorized: true, ca } })`
7
+ * from `@framers/sql-storage-adapter/postgres`. It reaches Supabase the same
8
+ * way, with pool control, transaction error handling and `strict` resolution.
4
9
  */
5
10
  import type { StorageAdapter, StorageCapability, StorageOpenOptions, StorageParameters, StorageRunResult, BatchResult } from '../core/contracts/index.js';
6
11
  import type { StorageAdapterExtensions, ExtendedBatchOperation, Migration, PerformanceMetrics, StreamOptions } from '../core/contracts/extensions.js';
@@ -12,10 +17,13 @@ export interface SupabaseAdapterOptions extends StorageOpenOptions {
12
17
  idleTimeoutMillis?: number;
13
18
  connectionTimeoutMillis?: number;
14
19
  };
20
+ /** TLS: false turns it off; an object (with `ca` to verify Supabase's certificate) is passed to pg; otherwise TLS without verification. */
15
21
  ssl?: boolean | {
16
22
  rejectUnauthorized: boolean;
23
+ ca?: string;
17
24
  };
18
25
  }
26
+ /** @deprecated Use `createPostgresAdapter` from `@framers/sql-storage-adapter/postgres` with the Supabase connection string. */
19
27
  export declare class SupabaseAdapter implements StorageAdapter, StorageAdapterExtensions {
20
28
  readonly kind = "supabase-postgres";
21
29
  readonly capabilities: ReadonlySet<StorageCapability>;
@@ -1 +1 @@
1
- {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/adapters/supabase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/adapters/supabase.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,30 @@
1
1
  /**
2
2
  * Supabase Postgres Storage Adapter
3
3
  * Provides full Postgres capabilities with Supabase's managed infrastructure
4
+ *
5
+ * @deprecated Use the PostgreSQL adapter with the Supabase connection string:
6
+ * `createPostgresAdapter({ connectionString, ssl: { rejectUnauthorized: true, ca } })`
7
+ * from `@framers/sql-storage-adapter/postgres`. It reaches Supabase the same
8
+ * way, with pool control, transaction error handling and `strict` resolution.
4
9
  */
10
+ import { toPostgresStatement } from '../shared/sqlPlaceholders.js';
11
+ import { getStorageLogger } from '../shared/logger.js';
12
+ /** Whether this process has been told the adapter is deprecated. */
13
+ let deprecationLogged = false;
14
+ /** A statement and its parameters for pg: `?` and `@name` rewritten to `$n`, as the PostgreSQL adapter does. */
15
+ const prepare = (statement, parameters) => {
16
+ const { text, values } = toPostgresStatement(statement, parameters);
17
+ return [text, values];
18
+ };
19
+ /** An error with `message`, keeping the database error as `cause` and its PostgreSQL error `code`. */
20
+ const failure = (message, error) => {
21
+ const wrapped = new Error(message);
22
+ wrapped.cause = error;
23
+ if (error && typeof error === 'object' && 'code' in error)
24
+ wrapped.code = error.code;
25
+ return wrapped;
26
+ };
27
+ /** @deprecated Use `createPostgresAdapter` from `@framers/sql-storage-adapter/postgres` with the Supabase connection string. */
5
28
  export class SupabaseAdapter {
6
29
  constructor() {
7
30
  this.kind = 'supabase-postgres';
@@ -27,6 +50,10 @@ export class SupabaseAdapter {
27
50
  }
28
51
  async open(options) {
29
52
  this.options = options;
53
+ if (!deprecationLogged) {
54
+ deprecationLogged = true;
55
+ getStorageLogger().warn({ adapter: 'supabase-postgres' }, 'SupabaseAdapter is deprecated: use createPostgresAdapter({ connectionString }) from @framers/sql-storage-adapter/postgres, which reaches Supabase the same way. SupabaseAdapter does not verify the server certificate unless ssl is { rejectUnauthorized: true, ca }.');
56
+ }
30
57
  // Dynamic import to avoid bundling pg when not needed
31
58
  const pg = await import('pg');
32
59
  const { Pool } = pg;
@@ -47,7 +74,7 @@ export class SupabaseAdapter {
47
74
  min: options?.poolConfig?.min || 2,
48
75
  idleTimeoutMillis: options?.poolConfig?.idleTimeoutMillis || 30000,
49
76
  connectionTimeoutMillis: options?.poolConfig?.connectionTimeoutMillis || 5000,
50
- ssl: options?.ssl !== false ? { rejectUnauthorized: false } : undefined
77
+ ssl: options?.ssl === false ? undefined : typeof options?.ssl === 'object' ? options.ssl : { rejectUnauthorized: false }
51
78
  });
52
79
  // Test connection
53
80
  try {
@@ -95,7 +122,7 @@ export class SupabaseAdapter {
95
122
  throw new Error('Storage adapter not opened');
96
123
  const startTime = Date.now();
97
124
  try {
98
- const result = await this.pool.query(statement, Array.isArray(parameters) ? parameters : undefined);
125
+ const result = await this.pool.query(...prepare(statement, parameters));
99
126
  this.trackQuery(statement, startTime);
100
127
  return {
101
128
  changes: result.rowCount || 0,
@@ -103,7 +130,7 @@ export class SupabaseAdapter {
103
130
  };
104
131
  }
105
132
  catch (error) {
106
- throw new Error(`Query failed: ${error}`);
133
+ throw failure(`Query failed: ${error}`, error);
107
134
  }
108
135
  }
109
136
  async get(statement, parameters) {
@@ -125,7 +152,7 @@ export class SupabaseAdapter {
125
152
  }
126
153
  const startTime = Date.now();
127
154
  try {
128
- const result = await this.pool.query(statement, Array.isArray(parameters) ? parameters : undefined);
155
+ const result = await this.pool.query(...prepare(statement, parameters));
129
156
  this.trackQuery(statement, startTime);
130
157
  const value = result.rows[0] || null;
131
158
  // Update cache
@@ -143,7 +170,7 @@ export class SupabaseAdapter {
143
170
  return value;
144
171
  }
145
172
  catch (error) {
146
- throw new Error(`Query failed: ${error}`);
173
+ throw failure(`Query failed: ${error}`, error);
147
174
  }
148
175
  }
149
176
  async all(statement, parameters) {
@@ -167,7 +194,7 @@ export class SupabaseAdapter {
167
194
  }
168
195
  const startTime = Date.now();
169
196
  try {
170
- const result = await this.pool.query(statement, Array.isArray(parameters) ? parameters : undefined);
197
+ const result = await this.pool.query(...prepare(statement, parameters));
171
198
  this.trackQuery(statement, startTime);
172
199
  const rows = result.rows;
173
200
  // Update cache
@@ -185,7 +212,7 @@ export class SupabaseAdapter {
185
212
  return rows;
186
213
  }
187
214
  catch (error) {
188
- throw new Error(`Query failed: ${error}`);
215
+ throw failure(`Query failed: ${error}`, error);
189
216
  }
190
217
  }
191
218
  async exec(script) {
@@ -197,7 +224,7 @@ export class SupabaseAdapter {
197
224
  this.trackQuery(script, startTime);
198
225
  }
199
226
  catch (error) {
200
- throw new Error(`Script execution failed: ${error}`);
227
+ throw failure(`Script execution failed: ${error}`, error);
201
228
  }
202
229
  }
203
230
  async transaction(fn) {
@@ -213,15 +240,15 @@ export class SupabaseAdapter {
213
240
  open: async () => { },
214
241
  close: async () => { },
215
242
  run: async (stmt, params) => {
216
- const result = await client.query(stmt, Array.isArray(params) ? params : undefined);
243
+ const result = await client.query(...prepare(stmt, params));
217
244
  return { changes: result.rowCount || 0, lastInsertRowid: 0 };
218
245
  },
219
246
  get: async (stmt, params) => {
220
- const result = await client.query(stmt, Array.isArray(params) ? params : undefined);
247
+ const result = await client.query(...prepare(stmt, params));
221
248
  return result.rows[0] || null;
222
249
  },
223
250
  all: async (stmt, params) => {
224
- const result = await client.query(stmt, Array.isArray(params) ? params : undefined);
251
+ const result = await client.query(...prepare(stmt, params));
225
252
  return result.rows;
226
253
  },
227
254
  exec: async (script) => {
@@ -1 +1 @@
1
- {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/adapters/supabase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/adapters/supabase.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * Supabase Postgres Storage Adapter
3
3
  * Provides full Postgres capabilities with Supabase's managed infrastructure
4
+ *
5
+ * @deprecated Use the PostgreSQL adapter with the Supabase connection string:
6
+ * `createPostgresAdapter({ connectionString, ssl: { rejectUnauthorized: true, ca } })`
7
+ * from `@framers/sql-storage-adapter/postgres`. It reaches Supabase the same
8
+ * way, with pool control, transaction error handling and `strict` resolution.
4
9
  */
5
10
  import type { StorageAdapter, StorageCapability, StorageOpenOptions, StorageParameters, StorageRunResult, BatchResult } from '../core/contracts/index.js';
6
11
  import type { StorageAdapterExtensions, ExtendedBatchOperation, Migration, PerformanceMetrics, StreamOptions } from '../core/contracts/extensions.js';
@@ -12,10 +17,13 @@ export interface SupabaseAdapterOptions extends StorageOpenOptions {
12
17
  idleTimeoutMillis?: number;
13
18
  connectionTimeoutMillis?: number;
14
19
  };
20
+ /** TLS: false turns it off; an object (with `ca` to verify Supabase's certificate) is passed to pg; otherwise TLS without verification. */
15
21
  ssl?: boolean | {
16
22
  rejectUnauthorized: boolean;
23
+ ca?: string;
17
24
  };
18
25
  }
26
+ /** @deprecated Use `createPostgresAdapter` from `@framers/sql-storage-adapter/postgres` with the Supabase connection string. */
19
27
  export declare class SupabaseAdapter implements StorageAdapter, StorageAdapterExtensions {
20
28
  readonly kind = "supabase-postgres";
21
29
  readonly capabilities: ReadonlySet<StorageCapability>;
@@ -30,6 +30,20 @@ __export(supabase_exports, {
30
30
  SupabaseAdapter: () => SupabaseAdapter
31
31
  });
32
32
  module.exports = __toCommonJS(supabase_exports);
33
+ var import_sqlPlaceholders = require("../shared/sqlPlaceholders.js");
34
+ var import_logger = require("../shared/logger.js");
35
+ let deprecationLogged = false;
36
+ const prepare = (statement, parameters) => {
37
+ const { text, values } = (0, import_sqlPlaceholders.toPostgresStatement)(statement, parameters);
38
+ return [text, values];
39
+ };
40
+ const failure = (message, error) => {
41
+ const wrapped = new Error(message);
42
+ wrapped.cause = error;
43
+ if (error && typeof error === "object" && "code" in error)
44
+ wrapped.code = error.code;
45
+ return wrapped;
46
+ };
33
47
  class SupabaseAdapter {
34
48
  constructor() {
35
49
  this.kind = "supabase-postgres";
@@ -55,6 +69,10 @@ class SupabaseAdapter {
55
69
  }
56
70
  async open(options) {
57
71
  this.options = options;
72
+ if (!deprecationLogged) {
73
+ deprecationLogged = true;
74
+ (0, import_logger.getStorageLogger)().warn({ adapter: "supabase-postgres" }, "SupabaseAdapter is deprecated: use createPostgresAdapter({ connectionString }) from @framers/sql-storage-adapter/postgres, which reaches Supabase the same way. SupabaseAdapter does not verify the server certificate unless ssl is { rejectUnauthorized: true, ca }.");
75
+ }
58
76
  const pg = await Promise.resolve().then(() => __toESM(require("pg")));
59
77
  const { Pool } = pg;
60
78
  const getEnv = (key) => {
@@ -73,7 +91,7 @@ class SupabaseAdapter {
73
91
  min: options?.poolConfig?.min || 2,
74
92
  idleTimeoutMillis: options?.poolConfig?.idleTimeoutMillis || 3e4,
75
93
  connectionTimeoutMillis: options?.poolConfig?.connectionTimeoutMillis || 5e3,
76
- ssl: options?.ssl !== false ? { rejectUnauthorized: false } : void 0
94
+ ssl: options?.ssl === false ? void 0 : typeof options?.ssl === "object" ? options.ssl : { rejectUnauthorized: false }
77
95
  });
78
96
  try {
79
97
  const client = await this.pool.connect();
@@ -118,14 +136,14 @@ class SupabaseAdapter {
118
136
  throw new Error("Storage adapter not opened");
119
137
  const startTime = Date.now();
120
138
  try {
121
- const result = await this.pool.query(statement, Array.isArray(parameters) ? parameters : void 0);
139
+ const result = await this.pool.query(...prepare(statement, parameters));
122
140
  this.trackQuery(statement, startTime);
123
141
  return {
124
142
  changes: result.rowCount || 0,
125
143
  lastInsertRowid: result.rows[0]?.id || 0
126
144
  };
127
145
  } catch (error) {
128
- throw new Error(`Query failed: ${error}`);
146
+ throw failure(`Query failed: ${error}`, error);
129
147
  }
130
148
  }
131
149
  async get(statement, parameters) {
@@ -146,7 +164,7 @@ class SupabaseAdapter {
146
164
  }
147
165
  const startTime = Date.now();
148
166
  try {
149
- const result = await this.pool.query(statement, Array.isArray(parameters) ? parameters : void 0);
167
+ const result = await this.pool.query(...prepare(statement, parameters));
150
168
  this.trackQuery(statement, startTime);
151
169
  const value = result.rows[0] || null;
152
170
  if (this.cacheEnabled && value !== null) {
@@ -161,7 +179,7 @@ class SupabaseAdapter {
161
179
  }
162
180
  return value;
163
181
  } catch (error) {
164
- throw new Error(`Query failed: ${error}`);
182
+ throw failure(`Query failed: ${error}`, error);
165
183
  }
166
184
  }
167
185
  async all(statement, parameters) {
@@ -184,7 +202,7 @@ class SupabaseAdapter {
184
202
  }
185
203
  const startTime = Date.now();
186
204
  try {
187
- const result = await this.pool.query(statement, Array.isArray(parameters) ? parameters : void 0);
205
+ const result = await this.pool.query(...prepare(statement, parameters));
188
206
  this.trackQuery(statement, startTime);
189
207
  const rows = result.rows;
190
208
  if (this.cacheEnabled) {
@@ -199,7 +217,7 @@ class SupabaseAdapter {
199
217
  }
200
218
  return rows;
201
219
  } catch (error) {
202
- throw new Error(`Query failed: ${error}`);
220
+ throw failure(`Query failed: ${error}`, error);
203
221
  }
204
222
  }
205
223
  async exec(script) {
@@ -210,7 +228,7 @@ class SupabaseAdapter {
210
228
  await this.pool.query(script);
211
229
  this.trackQuery(script, startTime);
212
230
  } catch (error) {
213
- throw new Error(`Script execution failed: ${error}`);
231
+ throw failure(`Script execution failed: ${error}`, error);
214
232
  }
215
233
  }
216
234
  async transaction(fn) {
@@ -227,15 +245,15 @@ class SupabaseAdapter {
227
245
  close: async () => {
228
246
  },
229
247
  run: async (stmt, params) => {
230
- const result2 = await client.query(stmt, Array.isArray(params) ? params : void 0);
248
+ const result2 = await client.query(...prepare(stmt, params));
231
249
  return { changes: result2.rowCount || 0, lastInsertRowid: 0 };
232
250
  },
233
251
  get: async (stmt, params) => {
234
- const result2 = await client.query(stmt, Array.isArray(params) ? params : void 0);
252
+ const result2 = await client.query(...prepare(stmt, params));
235
253
  return result2.rows[0] || null;
236
254
  },
237
255
  all: async (stmt, params) => {
238
- const result2 = await client.query(stmt, Array.isArray(params) ? params : void 0);
256
+ const result2 = await client.query(...prepare(stmt, params));
239
257
  return result2.rows;
240
258
  },
241
259
  exec: async (script) => {
@@ -23,6 +23,7 @@ module.exports = __toCommonJS(features_exports);
23
23
  var import_SqliteDialect = require("../../dialects/SqliteDialect.js");
24
24
  var import_PostgresDialect = require("../../dialects/PostgresDialect.js");
25
25
  var import_SqliteFts5 = require("../../fts/SqliteFts5.js");
26
+ var import_SqliteFts4 = require("../../fts/SqliteFts4.js");
26
27
  var import_PostgresFts = require("../../fts/PostgresFts.js");
27
28
  var import_NodeBlobCodec = require("../../codecs/NodeBlobCodec.js");
28
29
  var import_BrowserBlobCodec = require("../../codecs/BrowserBlobCodec.js");
@@ -45,12 +46,13 @@ function extractPostgresConnectionString(adapter) {
45
46
  return `postgresql://${auth}${host}:${port}/${options.database}${sslQuery}`;
46
47
  }
47
48
  function createStorageFeatures(adapter) {
48
- const isPostgres = adapter.kind === "postgres";
49
+ const isPostgres = adapter.kind === "postgres" || adapter.kind === "supabase-postgres";
50
+ const hasFts5 = adapter.kind !== "sqljs" && adapter.kind !== "indexeddb";
49
51
  const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
50
52
  const postgresConnectionString = isPostgres ? extractPostgresConnectionString(adapter) : void 0;
51
53
  return {
52
54
  dialect: isPostgres ? new import_PostgresDialect.PostgresDialect() : new import_SqliteDialect.SqliteDialect(),
53
- fts: isPostgres ? new import_PostgresFts.PostgresFts() : new import_SqliteFts5.SqliteFts5(),
55
+ fts: isPostgres ? new import_PostgresFts.PostgresFts() : hasFts5 ? new import_SqliteFts5.SqliteFts5() : new import_SqliteFts4.SqliteFts4(),
54
56
  blobCodec: isBrowser ? new import_BrowserBlobCodec.BrowserBlobCodec() : new import_NodeBlobCodec.NodeBlobCodec(),
55
57
  exporter: isPostgres ? new import_PostgresExporter.PostgresExporter(postgresConnectionString) : new import_SqliteFileExporter.SqliteFileExporter(adapter)
56
58
  };
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * Full-text search abstraction.
3
3
  *
4
- * SQLite implementations use FTS5 virtual tables.
5
- * Postgres implementations use tsvector columns with GIN indexes.
4
+ * better-sqlite3 uses FTS5 virtual tables; sql.js and IndexedDB use FTS4, which
5
+ * their stock sql.js build has (it has no FTS5). Postgres implementations use
6
+ * tsvector columns with GIN indexes.
6
7
  * Methods return SQL strings — no database calls.
7
8
  */
8
9
  export interface IFullTextSearch {
@@ -13,25 +14,36 @@ export interface IFullTextSearch {
13
14
  * @param config.columns - Columns to index.
14
15
  * @param config.contentTable - Source table (for external-content FTS5).
15
16
  * @param config.tokenizer - Tokenizer config (e.g. 'porter ascii').
17
+ * @param config.weights - PostgreSQL: a weight per column (A highest, D lowest) for ranking. The SQLite engines rank without it.
16
18
  */
17
19
  createIndex(config: {
18
20
  table: string;
19
21
  columns: string[];
20
22
  contentTable?: string;
21
23
  tokenizer?: string;
24
+ weights?: Record<string, 'A' | 'B' | 'C' | 'D'>;
22
25
  }): string;
23
26
  /**
24
27
  * Generate a WHERE clause fragment for full-text matching.
25
28
  * SQLite: `memory_traces_fts MATCH ?`
26
- * Postgres: `memory_traces._tsv @@ plainto_tsquery('english', $1)`
29
+ * Postgres: `_tsv @@ websearch_to_tsquery('english', $1)`, in the index's own language
27
30
  */
28
31
  matchClause(indexName: string, queryPlaceholder: string): string;
29
32
  /**
30
- * Generate an ORDER BY rank expression.
31
- * SQLite: `memory_traces_fts.rank`
32
- * Postgres: `ts_rank(memory_traces._tsv, plainto_tsquery('english', $1))`
33
+ * A rank value, in each engine's own direction.
34
+ * SQLite FTS5: `memory_traces_fts.rank` (lower is better)
35
+ * SQLite FTS4: `length(offsets(memory_traces_fts))` (higher is better)
36
+ * Postgres: `ts_rank(_tsv, websearch_to_tsquery('english', $1))` (higher is better)
37
+ * Use relevanceOrder to order the same way on every engine.
33
38
  */
34
39
  rankExpression(indexName: string, queryPlaceholder?: string): string;
40
+ /**
41
+ * An ORDER BY fragment that puts the best match first on every engine.
42
+ * SQLite FTS5: `memory_traces_fts.rank`
43
+ * SQLite FTS4: `length(offsets(memory_traces_fts)) DESC`
44
+ * Postgres: `ts_rank(_tsv, websearch_to_tsquery('english', $1)) DESC`
45
+ */
46
+ relevanceOrder(indexName: string, queryPlaceholder?: string): string;
35
47
  /**
36
48
  * Generate the rebuild/reindex command.
37
49
  * SQLite: `INSERT INTO fts_table(fts_table) VALUES('rebuild')`
@@ -46,8 +58,8 @@ export interface IFullTextSearch {
46
58
  syncInsert(indexName: string, rowIdExpr: string, columns: string[]): string;
47
59
  /**
48
60
  * Sanitize natural-language input into a safe search query.
49
- * SQLite: wraps words in quotes, strips FTS5 operators.
50
- * Postgres: pass-through (plainto_tsquery handles it).
61
+ * Every engine: the words, quoted, joined with OR, with the operators of
62
+ * the query syntax stripped, so it matches the same rows everywhere.
51
63
  */
52
64
  sanitizeQuery(input: string): string;
53
65
  /**
@@ -10,6 +10,7 @@ export * from '../types/index.js';
10
10
  export { SqliteDialect } from '../dialects/SqliteDialect.js';
11
11
  export { PostgresDialect } from '../dialects/PostgresDialect.js';
12
12
  export { SqliteFts5 } from '../fts/SqliteFts5.js';
13
+ export { SqliteFts4 } from '../fts/SqliteFts4.js';
13
14
  export { PostgresFts } from '../fts/PostgresFts.js';
14
15
  export { NodeBlobCodec } from '../codecs/NodeBlobCodec.js';
15
16
  export { BrowserBlobCodec } from '../codecs/BrowserBlobCodec.js';
@@ -25,6 +25,7 @@ __export(portable_exports, {
25
25
  PostgresFts: () => import_PostgresFts.PostgresFts,
26
26
  SqliteDialect: () => import_SqliteDialect.SqliteDialect,
27
27
  SqliteFileExporter: () => import_SqliteFileExporter.SqliteFileExporter,
28
+ SqliteFts4: () => import_SqliteFts4.SqliteFts4,
28
29
  SqliteFts5: () => import_SqliteFts5.SqliteFts5,
29
30
  createStorageFeatures: () => import_features.createStorageFeatures,
30
31
  getStorageLogger: () => import_logger.getStorageLogger,
@@ -36,6 +37,7 @@ __reExport(portable_exports, require("../types/index.js"), module.exports);
36
37
  var import_SqliteDialect = require("../dialects/SqliteDialect.js");
37
38
  var import_PostgresDialect = require("../dialects/PostgresDialect.js");
38
39
  var import_SqliteFts5 = require("../fts/SqliteFts5.js");
40
+ var import_SqliteFts4 = require("../fts/SqliteFts4.js");
39
41
  var import_PostgresFts = require("../fts/PostgresFts.js");
40
42
  var import_NodeBlobCodec = require("../codecs/NodeBlobCodec.js");
41
43
  var import_BrowserBlobCodec = require("../codecs/BrowserBlobCodec.js");
@@ -56,6 +58,7 @@ __reExport(portable_exports, require("../shared/parameterUtils.js"), module.expo
56
58
  PostgresFts,
57
59
  SqliteDialect,
58
60
  SqliteFileExporter,
61
+ SqliteFts4,
59
62
  SqliteFts5,
60
63
  createStorageFeatures,
61
64
  getStorageLogger,
@@ -87,7 +87,7 @@ const unsupportedKind = (kind) => {
87
87
  case "electron-renderer":
88
88
  return new Error(`The resolver cannot build adapter kind "${kind}". Create it with createElectronRendererAdapter from '@framers/sql-storage-adapter/electron'.`);
89
89
  case "supabase":
90
- return new Error(`The resolver cannot build adapter kind "${kind}". Use kind "postgres" with the Supabase connection string, or create a SupabaseAdapter.`);
90
+ return new Error(`The resolver cannot build adapter kind "${kind}". Use kind "postgres" with the Supabase connection string (SupabaseAdapter is deprecated).`);
91
91
  default:
92
92
  return new Error(`Unknown adapter kind "${kind}". The resolver builds postgres, better-sqlite3, capacitor, indexeddb, sqljs and memory.`);
93
93
  }
@@ -1,29 +1,30 @@
1
1
  import type { IFullTextSearch } from '../core/contracts/fts.js';
2
+ type Weight = 'A' | 'B' | 'C' | 'D';
2
3
  /**
3
4
  * Postgres full-text search using tsvector columns and GIN indexes.
4
5
  *
5
- * Unlike FTS5 (separate virtual table), Postgres stores the tsvector
6
- * as a column `_tsv` on the content table itself. The `createIndex()`
7
- * call adds the column, creates the GIN index, and backfills existing rows.
6
+ * Unlike FTS5 (separate virtual table), Postgres stores the tsvector as a
7
+ * column `_tsv` on the content table itself. The `createIndex()` call adds the
8
+ * column, creates the GIN index, and backfills existing rows. Queries go
9
+ * through `websearch_to_tsquery`, which reads raw user text without syntax
10
+ * errors: words are ANDed, and `or`, `-word` and quoted phrases work as in a
11
+ * web search box.
8
12
  */
9
13
  export declare class PostgresFts implements IFullTextSearch {
10
- /** The content table is stored during createIndex for use by other methods. */
11
- private _contentTable;
12
- private _columns;
13
- private _lang;
14
14
  createIndex(config: {
15
15
  table: string;
16
16
  columns: string[];
17
17
  contentTable?: string;
18
18
  tokenizer?: string;
19
+ weights?: Record<string, Weight>;
19
20
  }): string;
20
- matchClause(_indexName: string, queryPlaceholder: string): string;
21
- rankExpression(_indexName: string, queryPlaceholder?: string): string;
22
- rebuildCommand(_indexName: string): string;
23
- syncInsert(_indexName: string, _rowIdExpr: string, columns: string[]): string;
21
+ matchClause(indexName: string, queryPlaceholder: string): string;
22
+ rankExpression(indexName: string, queryPlaceholder?: string): string;
23
+ relevanceOrder(indexName: string, queryPlaceholder?: string): string;
24
+ rebuildCommand(indexName: string): string;
25
+ syncInsert(indexName: string, _rowIdExpr: string, columns: string[]): string;
24
26
  sanitizeQuery(input: string): string;
25
27
  joinClause(contentTable: string, contentAlias: string, _ftsAlias: string, _indexName: string): string;
26
- /** Map FTS5-style tokenizer strings to Postgres text search configurations. */
27
- private _tokenizerToLang;
28
28
  }
29
+ export {};
29
30
  //# sourceMappingURL=PostgresFts.d.ts.map