hazo_connect 2.7.3 → 3.1.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.
Files changed (76) hide show
  1. package/README.md +25 -3
  2. package/dist/adapters/base-adapter.d.ts +2 -51
  3. package/dist/adapters/base-adapter.d.ts.map +1 -1
  4. package/dist/adapters/base-adapter.js +23 -77
  5. package/dist/adapters/base-adapter.js.map +1 -1
  6. package/dist/adapters/better-sqlite3-adapter.d.ts +61 -0
  7. package/dist/adapters/better-sqlite3-adapter.d.ts.map +1 -0
  8. package/dist/adapters/better-sqlite3-adapter.js +364 -0
  9. package/dist/adapters/better-sqlite3-adapter.js.map +1 -0
  10. package/dist/adapters/clause-builder.d.ts.map +1 -1
  11. package/dist/adapters/clause-builder.js +14 -13
  12. package/dist/adapters/clause-builder.js.map +1 -1
  13. package/dist/adapters/postgrest-adapter.d.ts.map +1 -1
  14. package/dist/adapters/postgrest-adapter.js +6 -5
  15. package/dist/adapters/postgrest-adapter.js.map +1 -1
  16. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  17. package/dist/adapters/sqlite-adapter.js +3 -24
  18. package/dist/adapters/sqlite-adapter.js.map +1 -1
  19. package/dist/adapters/supabase-adapter.d.ts.map +1 -1
  20. package/dist/adapters/supabase-adapter.js +3 -2
  21. package/dist/adapters/supabase-adapter.js.map +1 -1
  22. package/dist/connect-config.d.ts +83 -0
  23. package/dist/connect-config.d.ts.map +1 -0
  24. package/dist/connect-config.js +55 -0
  25. package/dist/connect-config.js.map +1 -0
  26. package/dist/default-logger.js +3 -3
  27. package/dist/factory.d.ts.map +1 -1
  28. package/dist/factory.js +32 -12
  29. package/dist/factory.js.map +1 -1
  30. package/dist/helpers.d.ts.map +1 -1
  31. package/dist/helpers.js +5 -4
  32. package/dist/helpers.js.map +1 -1
  33. package/dist/index.js +7 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/log-level-wrapper.d.ts.map +1 -1
  36. package/dist/log-level-wrapper.js +0 -2
  37. package/dist/log-level-wrapper.js.map +1 -1
  38. package/dist/migrations/runner.d.ts.map +1 -1
  39. package/dist/migrations/runner.js +8 -4
  40. package/dist/migrations/runner.js.map +1 -1
  41. package/dist/nextjs/api-route-helpers.d.ts.map +1 -1
  42. package/dist/nextjs/api-route-helpers.js +3 -4
  43. package/dist/nextjs/api-route-helpers.js.map +1 -1
  44. package/dist/nextjs/route-setup.d.ts.map +1 -1
  45. package/dist/nextjs/route-setup.js +3 -5
  46. package/dist/nextjs/route-setup.js.map +1 -1
  47. package/dist/nextjs/server-only.d.ts.map +1 -1
  48. package/dist/nextjs/server-only.js +2 -5
  49. package/dist/nextjs/server-only.js.map +1 -1
  50. package/dist/nextjs/setup-helpers.d.ts +4 -0
  51. package/dist/nextjs/setup-helpers.d.ts.map +1 -1
  52. package/dist/nextjs/setup-helpers.js +9 -7
  53. package/dist/nextjs/setup-helpers.js.map +1 -1
  54. package/dist/query-builder.d.ts.map +1 -1
  55. package/dist/query-builder.js +4 -3
  56. package/dist/query-builder.js.map +1 -1
  57. package/dist/server/index.d.ts.map +1 -1
  58. package/dist/server/index.js +6 -6
  59. package/dist/server/index.js.map +1 -1
  60. package/dist/sqlite/admin-service.d.ts.map +1 -1
  61. package/dist/sqlite/admin-service.js +27 -15
  62. package/dist/sqlite/admin-service.js.map +1 -1
  63. package/dist/sqlite/placeholder-rewrite.d.ts +18 -0
  64. package/dist/sqlite/placeholder-rewrite.d.ts.map +1 -0
  65. package/dist/sqlite/placeholder-rewrite.js +38 -0
  66. package/dist/sqlite/placeholder-rewrite.js.map +1 -0
  67. package/dist/types.d.ts +10 -0
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/types.js.map +1 -1
  70. package/dist/utils/sqlite-utils.d.ts.map +1 -1
  71. package/dist/utils/sqlite-utils.js +4 -3
  72. package/dist/utils/sqlite-utils.js.map +1 -1
  73. package/dist/utils/where-builder.d.ts.map +1 -1
  74. package/dist/utils/where-builder.js +3 -2
  75. package/dist/utils/where-builder.js.map +1 -1
  76. package/package.json +23 -7
@@ -0,0 +1,364 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.BetterSqlite3Adapter = void 0;
40
+ /**
41
+ * Purpose: SQLite adapter powered by the native better-sqlite3 driver.
42
+ *
43
+ * Shares the QueryBuilder→SQL translation layer with the sql.js adapter and
44
+ * differs only in execution: prepared statements run synchronously (wrapped in
45
+ * async to satisfy HazoConnectAdapter) and writes go straight to the database
46
+ * file — there is no export()/writeFile persistence step. WAL and sensible
47
+ * pragmas are applied on open so the file can be safely shared with another
48
+ * in-process better-sqlite3 connection.
49
+ */
50
+ const path_1 = __importDefault(require("path"));
51
+ const base_adapter_js_1 = require("./base-adapter.js");
52
+ const types_js_1 = require("../types.js");
53
+ const query_translator_js_1 = require("../sqlite/query-translator.js");
54
+ const sqlite_utils_js_1 = require("../utils/sqlite-utils.js");
55
+ const clause_builder_js_1 = require("./clause-builder.js");
56
+ const placeholder_rewrite_js_1 = require("../sqlite/placeholder-rewrite.js");
57
+ const DEFAULT_PRAGMAS = {
58
+ foreign_keys: 'ON',
59
+ busy_timeout: 5000,
60
+ };
61
+ class BetterSqlite3Adapter extends base_adapter_js_1.BaseAdapter {
62
+ constructor(config, logger) {
63
+ super(config, logger);
64
+ this.inTransaction = false;
65
+ this._claimQueue = Promise.resolve();
66
+ this.sqliteConfig = this.normalizeConfig(config);
67
+ this.isReadOnlyMode = Boolean(this.sqliteConfig.read_only);
68
+ this.databasePath = this.sqliteConfig.database_path ?? ':memory:';
69
+ this.pragmas = { ...DEFAULT_PRAGMAS, ...(this.sqliteConfig.pragmas ?? {}) };
70
+ this.databasePromise = this.initializeDatabase();
71
+ }
72
+ async getConfig() {
73
+ return { ...this.sqliteConfig };
74
+ }
75
+ async query(builder, method = 'GET', body) {
76
+ const normalizedMethod = method.toUpperCase();
77
+ try {
78
+ switch (normalizedMethod) {
79
+ case 'GET':
80
+ return await this.executeSelect(builder);
81
+ case 'POST':
82
+ this.ensureWritable();
83
+ return await this.executeInsert(builder, body);
84
+ case 'PUT':
85
+ case 'PATCH':
86
+ this.ensureWritable();
87
+ return await this.executeUpdate(builder, body);
88
+ case 'DELETE':
89
+ this.ensureWritable();
90
+ return await this.executeDelete(builder);
91
+ default:
92
+ this.throwError(types_js_1.ErrorCode.VALIDATION_ERROR, `Unsupported method '${method}' for better-sqlite3 adapter`);
93
+ }
94
+ }
95
+ catch (error) {
96
+ return this.handleSqliteError(error);
97
+ }
98
+ }
99
+ async rawQuery(sql, options = {}) {
100
+ try {
101
+ const params = this.normalizeRawParams(options?.params);
102
+ if (this.isMutatingSql(sql))
103
+ this.ensureWritable();
104
+ const db = await this.getDatabase();
105
+ const rows = this.executeStatement(db, sql, params);
106
+ this.logQuery('better-sqlite3 raw query', { sql, row_count: rows.length });
107
+ return rows;
108
+ }
109
+ catch (error) {
110
+ return this.handleSqliteError(error);
111
+ }
112
+ }
113
+ // --- query execution ---
114
+ async executeSelect(builder) {
115
+ const translation = this.translateWithHandling(() => (0, query_translator_js_1.translateSelect)(builder));
116
+ const db = await this.getDatabase();
117
+ const rows = this.executeStatement(db, translation.sql, translation.params);
118
+ this.logQuery('better-sqlite3 select', { sql: translation.sql, row_count: rows.length });
119
+ return rows;
120
+ }
121
+ async executeInsert(builder, body) {
122
+ const payload = this.normalizeInsertBody(body);
123
+ const translation = this.translateWithHandling(() => (0, query_translator_js_1.translateInsert)(builder, payload));
124
+ const db = await this.getDatabase();
125
+ const rows = this.runStatements(db, translation.statements);
126
+ this.logQuery('better-sqlite3 insert', {
127
+ statements_executed: translation.statements.length,
128
+ row_count: rows.length,
129
+ });
130
+ return rows;
131
+ }
132
+ async executeUpdate(builder, body) {
133
+ const updates = this.normalizeUpdateBody(body);
134
+ const translation = this.translateWithHandling(() => (0, query_translator_js_1.translateUpdate)(builder, updates));
135
+ const db = await this.getDatabase();
136
+ const rows = this.executeStatement(db, translation.sql, translation.params);
137
+ this.logQuery('better-sqlite3 update', { sql: translation.sql, row_count: rows.length });
138
+ return rows;
139
+ }
140
+ async executeDelete(builder) {
141
+ const translation = this.translateWithHandling(() => (0, query_translator_js_1.translateDelete)(builder));
142
+ const db = await this.getDatabase();
143
+ const rows = this.executeStatement(db, translation.sql, translation.params);
144
+ this.logQuery('better-sqlite3 delete', { sql: translation.sql, row_count: rows.length });
145
+ return rows;
146
+ }
147
+ // --- statement execution ---
148
+ runStatements(db, statements) {
149
+ const results = [];
150
+ for (const statement of statements) {
151
+ results.push(...this.executeStatement(db, statement.sql, statement.params));
152
+ }
153
+ return results;
154
+ }
155
+ executeStatement(db, sql, params) {
156
+ const stmt = db.prepare(sql);
157
+ const bound = this.toBindable(params);
158
+ if (stmt.reader) {
159
+ return stmt.all(...bound);
160
+ }
161
+ stmt.run(...bound);
162
+ return [];
163
+ }
164
+ /** better-sqlite3 rejects booleans and undefined; coerce to its accepted set. */
165
+ toBindable(params) {
166
+ return (params ?? []).map((p) => {
167
+ if (typeof p === 'boolean')
168
+ return p ? 1 : 0;
169
+ if (p === undefined)
170
+ return null;
171
+ return p;
172
+ });
173
+ }
174
+ // --- lifecycle ---
175
+ normalizeConfig(config) {
176
+ const raw = config?.sqlite ? config.sqlite : config;
177
+ const rawPath = raw?.database_path != null ? String(raw.database_path) : undefined;
178
+ const isMemory = rawPath === ':memory:' || rawPath === undefined;
179
+ const databasePath = isMemory ? ':memory:' : path_1.default.resolve(rawPath);
180
+ return {
181
+ database_path: databasePath,
182
+ read_only: raw?.read_only === true,
183
+ pragmas: (0, sqlite_utils_js_1.isPlainObject)(raw?.pragmas) ? raw.pragmas : undefined,
184
+ };
185
+ }
186
+ async initializeDatabase() {
187
+ let Database;
188
+ try {
189
+ const mod = await Promise.resolve().then(() => __importStar(require('better-sqlite3')));
190
+ Database = (mod.default ?? mod);
191
+ }
192
+ catch (error) {
193
+ this.throwError(types_js_1.ErrorCode.CONFIG_ERROR, "The better-sqlite3 driver requires the 'better-sqlite3' package. Install it with: npm install better-sqlite3", undefined, error);
194
+ }
195
+ const db = new Database(this.databasePath, { readonly: this.isReadOnlyMode });
196
+ const isMemory = this.databasePath === ':memory:';
197
+ // journal_mode=WAL needs a writable, file-backed connection.
198
+ if (!this.isReadOnlyMode && !isMemory && this.pragmas.journal_mode === undefined) {
199
+ db.pragma('journal_mode = WAL');
200
+ }
201
+ for (const [key, value] of Object.entries(this.pragmas)) {
202
+ if (key === 'journal_mode' && (this.isReadOnlyMode || isMemory))
203
+ continue;
204
+ db.pragma(`${key} = ${value}`);
205
+ }
206
+ this.dbInstance = db;
207
+ return db;
208
+ }
209
+ async getDatabase() {
210
+ if (this.dbInstance)
211
+ return this.dbInstance;
212
+ this.dbInstance = await this.databasePromise;
213
+ return this.dbInstance;
214
+ }
215
+ ensureWritable() {
216
+ if (this.isReadOnlyMode) {
217
+ this.throwError(types_js_1.ErrorCode.CONFIG_ERROR, 'better-sqlite3 database is configured as read-only and cannot accept write operations');
218
+ }
219
+ }
220
+ // --- payload helpers (mirror the sql.js adapter) ---
221
+ normalizeInsertBody(body) {
222
+ if (Array.isArray(body)) {
223
+ if (!body.length)
224
+ this.throwError(types_js_1.ErrorCode.CONFIG_ERROR, 'Insert payload array cannot be empty');
225
+ return body.map((row) => {
226
+ if (!(0, sqlite_utils_js_1.isPlainObject)(row)) {
227
+ this.throwError(types_js_1.ErrorCode.CONFIG_ERROR, 'Insert payload array items must be plain objects');
228
+ }
229
+ return row;
230
+ });
231
+ }
232
+ if ((0, sqlite_utils_js_1.isPlainObject)(body))
233
+ return body;
234
+ this.throwError(types_js_1.ErrorCode.CONFIG_ERROR, 'Insert payload must be an object or array of objects');
235
+ }
236
+ normalizeUpdateBody(body) {
237
+ if (!(0, sqlite_utils_js_1.isPlainObject)(body))
238
+ this.throwError(types_js_1.ErrorCode.CONFIG_ERROR, 'Update payload must be an object');
239
+ const updates = body;
240
+ if (Object.keys(updates).length === 0) {
241
+ this.throwError(types_js_1.ErrorCode.CONFIG_ERROR, 'Update payload must include at least one column');
242
+ }
243
+ return updates;
244
+ }
245
+ normalizeRawParams(params) {
246
+ if (params === undefined || params === null)
247
+ return [];
248
+ if (!Array.isArray(params))
249
+ this.throwError(types_js_1.ErrorCode.CONFIG_ERROR, 'rawQuery params must be an array');
250
+ return params;
251
+ }
252
+ isMutatingSql(sql) {
253
+ const keyword = sql.trim().split(/\s+/)[0]?.toUpperCase() ?? '';
254
+ return ['INSERT', 'UPDATE', 'DELETE', 'REPLACE', 'CREATE', 'DROP', 'ALTER'].includes(keyword);
255
+ }
256
+ translateWithHandling(translate) {
257
+ try {
258
+ return translate();
259
+ }
260
+ catch (error) {
261
+ if (error instanceof query_translator_js_1.SqliteTranslationError) {
262
+ this.throwError(types_js_1.ErrorCode.CONFIG_ERROR, error.message);
263
+ }
264
+ throw error;
265
+ }
266
+ }
267
+ handleSqliteError(error) {
268
+ if (error instanceof query_translator_js_1.SqliteTranslationError) {
269
+ this.throwError(types_js_1.ErrorCode.CONFIG_ERROR, error.message);
270
+ }
271
+ if (error?.code)
272
+ throw error;
273
+ const message = error instanceof Error ? error.message : String(error);
274
+ this.throwError(types_js_1.ErrorCode.QUERY_ERROR, `better-sqlite3 request failed: ${message}`, undefined, error);
275
+ }
276
+ // --- transactions & claimRows (added in Task 5) ---
277
+ /**
278
+ * Execute one or more SQL statements separated by semicolons (DDL/migrations).
279
+ */
280
+ async execScript(sql) {
281
+ this.ensureWritable();
282
+ try {
283
+ const db = await this.getDatabase();
284
+ db.exec(sql);
285
+ }
286
+ catch (error) {
287
+ return this.handleSqliteError(error);
288
+ }
289
+ }
290
+ /**
291
+ * Run a sequence of writes atomically via BEGIN/COMMIT/ROLLBACK. The callback
292
+ * receives a tx facade with the same query/rawQuery/execScript shape. Nested
293
+ * transactions throw.
294
+ */
295
+ async transaction(fn) {
296
+ this.ensureWritable();
297
+ if (this.inTransaction) {
298
+ this.throwError(types_js_1.ErrorCode.VALIDATION_ERROR, 'Nested transactions are not supported');
299
+ }
300
+ const db = await this.getDatabase();
301
+ db.exec('BEGIN');
302
+ this.inTransaction = true;
303
+ const tx = {
304
+ query: (builder, method, body) => this.query(builder, method, body),
305
+ rawQuery: (sql, options) => this.rawQuery(sql, options),
306
+ execScript: (sql) => this.execScript(sql),
307
+ };
308
+ try {
309
+ const result = await fn(tx);
310
+ db.exec('COMMIT');
311
+ this.inTransaction = false;
312
+ return result;
313
+ }
314
+ catch (error) {
315
+ try {
316
+ db.exec('ROLLBACK');
317
+ }
318
+ catch (rollbackError) {
319
+ this.logger?.warn?.('better-sqlite3 ROLLBACK failed; transaction state may be inconsistent', {
320
+ error: rollbackError instanceof Error ? rollbackError.message : String(rollbackError),
321
+ });
322
+ }
323
+ this.inTransaction = false;
324
+ throw error;
325
+ }
326
+ }
327
+ /**
328
+ * Atomically claim up to `limit` rows matching `where`, apply `set`, return the
329
+ * updated rows. Concurrent calls are serialized through a promise chain so a
330
+ * second call waits for the first transaction to commit (avoids nested BEGIN).
331
+ */
332
+ async claimRows(opts) {
333
+ (0, clause_builder_js_1.validateClaimRowsOptions)(opts);
334
+ (0, clause_builder_js_1.validateColumnName)(opts.table);
335
+ const returning = (opts.returning ?? ['*']).map((c) => {
336
+ if (c !== '*')
337
+ (0, clause_builder_js_1.validateColumnName)(c);
338
+ return c;
339
+ });
340
+ if (opts.orderBy)
341
+ (0, clause_builder_js_1.validateColumnName)(opts.orderBy.column);
342
+ const limit = opts.limit ?? 1;
343
+ const result = this._claimQueue.then(() => this.transaction(async (tx) => {
344
+ const whereClause = (0, placeholder_rewrite_js_1.sqliteSerializeWhere)(opts.where, 1);
345
+ const orderByClause = opts.orderBy
346
+ ? ` ORDER BY ${opts.orderBy.column} ${opts.orderBy.direction.toUpperCase()}`
347
+ : '';
348
+ const selectSql = `SELECT id FROM ${opts.table} WHERE ${whereClause.fragment}${orderByClause} LIMIT ${limit}`;
349
+ const candidates = (await tx.rawQuery(selectSql, { params: whereClause.params }));
350
+ if (candidates.length === 0)
351
+ return [];
352
+ const setClause = (0, placeholder_rewrite_js_1.sqliteSerializeSet)(opts.set, whereClause.nextParamIndex);
353
+ const idPlaceholders = candidates.map(() => '?').join(', ');
354
+ const idParams = candidates.map((c) => c.id);
355
+ const updateSql = `UPDATE ${opts.table} SET ${setClause.fragment} WHERE id IN (${idPlaceholders}) RETURNING ${returning.join(', ')}`;
356
+ const updated = await tx.rawQuery(updateSql, { params: [...setClause.params, ...idParams] });
357
+ return updated;
358
+ }));
359
+ this._claimQueue = result.catch(() => undefined);
360
+ return result;
361
+ }
362
+ }
363
+ exports.BetterSqlite3Adapter = BetterSqlite3Adapter;
364
+ //# sourceMappingURL=better-sqlite3-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"better-sqlite3-adapter.js","sourceRoot":"","sources":["../../src/lib/adapters/better-sqlite3-adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clause-builder.d.ts","sourceRoot":"","sources":["../../src/lib/adapters/clause-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AACzC,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAE1D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAC/F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,WAAW,CAK5E;AA0BD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmChG;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CAyCvG;AAID,KAAK,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CAqBpG;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBrI;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,EAAE,CAI1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,GAAG,IAAI,CAUP"}
1
+ {"version":3,"file":"clause-builder.d.ts","sourceRoot":"","sources":["../../src/lib/adapters/clause-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AACzC,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAE1D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAC/F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,WAAW,CAK5E;AA0BD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmChG;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CAyCvG;AAID,KAAK,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CAqBpG;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBrI;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,EAAE,CAI1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,GAAG,IAAI,CAUP"}
@@ -14,6 +14,7 @@ exports.serializeSetToPgSql = serializeSetToPgSql;
14
14
  exports.serializeSetToPostgrestBody = serializeSetToPostgrestBody;
15
15
  exports.incrementedColumns = incrementedColumns;
16
16
  exports.validateClaimRowsOptions = validateClaimRowsOptions;
17
+ const hazo_core_1 = require("hazo_core");
17
18
  const COLUMN_NAME_RE = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
18
19
  const ALLOWED_OPS = new Set(["eq", "lte", "gte", "lt", "gt", "in", "increment", "$now"]);
19
20
  function isNowSentinel(v) {
@@ -21,12 +22,12 @@ function isNowSentinel(v) {
21
22
  }
22
23
  function validateColumnName(name) {
23
24
  if (!COLUMN_NAME_RE.test(name)) {
24
- throw new Error(`invalid column name: ${JSON.stringify(name)}`);
25
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: `invalid column name: ${JSON.stringify(name)}` });
25
26
  }
26
27
  }
27
28
  function validateOperator(op) {
28
29
  if (!ALLOWED_OPS.has(op)) {
29
- throw new Error(`unknown operator: ${JSON.stringify(op)}`);
30
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: `unknown operator: ${JSON.stringify(op)}` });
30
31
  }
31
32
  }
32
33
  function resolveNowSentinel(v, dialect) {
@@ -45,7 +46,7 @@ function asOperator(v) {
45
46
  if (keys.length === 0)
46
47
  return null;
47
48
  if (keys.length > 1) {
48
- throw new Error(`multiple operators in single clause not supported: ${keys.join(", ")}`);
49
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: `multiple operators in single clause not supported: ${keys.join(", ")}` });
49
50
  }
50
51
  const op = keys[0];
51
52
  return { op, value: v[op] };
@@ -73,11 +74,11 @@ function serializeWhereToPostgrest(where) {
73
74
  if (opObj) {
74
75
  if (opObj.op === "in") {
75
76
  if (!Array.isArray(opObj.value))
76
- throw new Error(`in clause requires array for column ${col}`);
77
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: `in clause requires array for column ${col}` });
77
78
  for (const v of opObj.value) {
78
79
  const s = String(v);
79
80
  if (s.includes(",") || s.includes("(") || s.includes(")")) {
80
- throw new Error(`in clause value contains reserved PostgREST chars (, ( )) — column ${col}`);
81
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: `in clause value contains reserved PostgREST chars (, ( )) — column ${col}` });
81
82
  }
82
83
  }
83
84
  out[col] = `in.(${opObj.value.map(String).join(",")})`;
@@ -85,7 +86,7 @@ function serializeWhereToPostgrest(where) {
85
86
  else {
86
87
  const resolved = resolveNowSentinel(opObj.value, "postgrest");
87
88
  if (resolved.kind === "sql")
88
- throw new Error("postgrest path cannot use sql sentinel");
89
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: "postgrest path cannot use sql sentinel" });
89
90
  out[col] = `${opObj.op}.${String(resolved.value)}`;
90
91
  }
91
92
  }
@@ -118,7 +119,7 @@ function serializeWhereToPgSql(where, startIndex) {
118
119
  if (opObj) {
119
120
  if (opObj.op === "in") {
120
121
  if (!Array.isArray(opObj.value))
121
- throw new Error(`in clause requires array for column ${col}`);
122
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: `in clause requires array for column ${col}` });
122
123
  const slots = opObj.value.map(() => `$${idx++}`);
123
124
  params.push(...opObj.value);
124
125
  parts.push(`${col} IN (${slots.join(", ")})`);
@@ -156,7 +157,7 @@ function serializeSetToPgSql(set, startIndex) {
156
157
  if (typeof raw === "object" && raw !== null && "increment" in raw) {
157
158
  const n = raw.increment;
158
159
  if (typeof n !== "number" || !Number.isFinite(n))
159
- throw new Error(`increment must be a finite number for column ${col}`);
160
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: `increment must be a finite number for column ${col}` });
160
161
  parts.push(`${col} = ${col} + ${n}`);
161
162
  continue;
162
163
  }
@@ -178,11 +179,11 @@ function serializeSetToPostgrestBody(set, observed) {
178
179
  if (typeof raw === "object" && raw !== null && "increment" in raw) {
179
180
  const n = raw.increment;
180
181
  if (typeof n !== "number" || !Number.isFinite(n))
181
- throw new Error(`increment must be a finite number for column ${col}`);
182
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: `increment must be a finite number for column ${col}` });
182
183
  const current = observed[col];
183
184
  if (typeof current !== "number") {
184
185
  const display = current === null ? "null" : typeof current;
185
- throw new Error(`increment on ${col} requires observed numeric value (got ${display})`);
186
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: `increment on ${col} requires observed numeric value (got ${display})` });
186
187
  }
187
188
  out[col] = current + n;
188
189
  continue;
@@ -209,13 +210,13 @@ function incrementedColumns(set) {
209
210
  */
210
211
  function validateClaimRowsOptions(opts) {
211
212
  if (Object.keys(opts.where).length === 0) {
212
- throw new Error("claimRows: where must contain at least one condition");
213
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: 'claimRows: where must contain at least one condition' });
213
214
  }
214
215
  if (Object.keys(opts.set).length === 0) {
215
- throw new Error("claimRows: set must contain at least one field");
216
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: 'claimRows: set must contain at least one field' });
216
217
  }
217
218
  if (opts.returning !== undefined && opts.returning.length === 0) {
218
- throw new Error("claimRows: returning must contain at least one column (or omit for default *)");
219
+ throw new hazo_core_1.HazoValidationError({ code: 'HAZO_CONNECT_VALIDATION_ERROR', pkg: 'hazo_connect', message: 'claimRows: returning must contain at least one column (or omit for default *)' });
219
220
  }
220
221
  }
221
222
  //# sourceMappingURL=clause-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clause-builder.js","sourceRoot":"","sources":["../../src/lib/adapters/clause-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clause-builder.js","sourceRoot":"","sources":["../../src/lib/adapters/clause-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgrest-adapter.d.ts","sourceRoot":"","sources":["../../src/lib/adapters/postgrest-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAUlD;;GAEG;AACH,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAY,YAAW,kBAAkB;IAC7E,OAAO,CAAC,eAAe,CAAiB;IAExC;;;;OAIG;gBACS,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM;IAoBxC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA2GzB;;;;;;OAMG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAgB,EAC3D,IAAI,CAAC,EAAE,GAAG,GACT,OAAO,CAAC,GAAG,CAAC;IAoBf;;;;;OAKG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;IAwFzE;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAG3C,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,yBAAyB;IAyBjC;;;;;;;;;;;;;;;;;OAiBG;IACG,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAgFlF;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,WAAW;CAKpB"}
1
+ {"version":3,"file":"postgrest-adapter.d.ts","sourceRoot":"","sources":["../../src/lib/adapters/postgrest-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAUlD;;GAEG;AACH,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAY,YAAW,kBAAkB;IAC7E,OAAO,CAAC,eAAe,CAAiB;IAExC;;;;OAIG;gBACS,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM;IAoBxC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA2GzB;;;;;;OAMG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAgB,EAC3D,IAAI,CAAC,EAAE,GAAG,GACT,OAAO,CAAC,GAAG,CAAC;IAoBf;;;;;OAKG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;IAwFzE;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAG3C,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,yBAAyB;IAyBjC;;;;;;;;;;;;;;;;;OAiBG;IACG,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IA8ElF;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,WAAW;CAKpB"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.PostgrestAdapter = void 0;
11
+ const hazo_core_1 = require("hazo_core");
11
12
  const base_adapter_js_1 = require("./base-adapter.js");
12
13
  const types_js_1 = require("../types.js");
13
14
  const clause_builder_js_1 = require("./clause-builder.js");
@@ -188,7 +189,7 @@ class PostgrestAdapter extends base_adapter_js_1.BaseAdapter {
188
189
  hasBody: !!options.body
189
190
  });
190
191
  try {
191
- const response = await fetch(url, { ...options, headers });
192
+ const response = await (0, hazo_core_1.fetchWithRequestId)(url, { ...options, headers });
192
193
  if (!response.ok) {
193
194
  const errorData = await response.text();
194
195
  const parsedDetails = this.parseErrorPayload(errorData);
@@ -300,10 +301,10 @@ class PostgrestAdapter extends base_adapter_js_1.BaseAdapter {
300
301
  limit: String(limit),
301
302
  ...(orderClause ? { order: orderClause } : {}),
302
303
  });
303
- const candidatesRes = await fetch(getUrl, { headers: this.claimRowsHeaders() });
304
+ const candidatesRes = await (0, hazo_core_1.fetchWithRequestId)(getUrl, { headers: this.claimRowsHeaders() });
304
305
  if (!candidatesRes.ok) {
305
306
  const body = await candidatesRes.text();
306
- throw new Error(`claimRows: GET candidates failed (${candidatesRes.status}): ${body}`);
307
+ throw new hazo_core_1.HazoUnavailableError({ code: 'HAZO_CONNECT_QUERY_TIMEOUT', pkg: 'hazo_connect', message: `claimRows: GET candidates failed (${candidatesRes.status}): ${body}` });
307
308
  }
308
309
  const candidates = (await candidatesRes.json());
309
310
  if (candidates.length === 0)
@@ -322,7 +323,7 @@ class PostgrestAdapter extends base_adapter_js_1.BaseAdapter {
322
323
  select: returning.join(','),
323
324
  });
324
325
  const body = (0, clause_builder_js_1.serializeSetToPostgrestBody)(opts.set, cand);
325
- const patchRes = await fetch(patchUrl, {
326
+ const patchRes = await (0, hazo_core_1.fetchWithRequestId)(patchUrl, {
326
327
  method: 'PATCH',
327
328
  headers: this.claimRowsHeaders({
328
329
  'Content-Type': 'application/json',
@@ -333,7 +334,7 @@ class PostgrestAdapter extends base_adapter_js_1.BaseAdapter {
333
334
  // 4xx/5xx are real errors — throw rather than silently swallow.
334
335
  if (!patchRes.ok) {
335
336
  const errBody = await patchRes.text();
336
- throw new Error(`claimRows: PATCH failed (${patchRes.status}): ${errBody}`);
337
+ throw new hazo_core_1.HazoUnavailableError({ code: 'HAZO_CONNECT_QUERY_TIMEOUT', pkg: 'hazo_connect', message: `claimRows: PATCH failed (${patchRes.status}): ${errBody}` });
337
338
  }
338
339
  // 2xx with empty array means the CAS witness failed — another worker claimed this row first.
339
340
  const patched = (await patchRes.json());