@agentuity/postgres 1.0.15 → 1.0.17
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/dist/client.d.ts +68 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +171 -3
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/mutation.d.ts +42 -0
- package/dist/mutation.d.ts.map +1 -0
- package/dist/mutation.js +241 -0
- package/dist/mutation.js.map +1 -0
- package/dist/transaction.d.ts +5 -0
- package/dist/transaction.d.ts.map +1 -1
- package/dist/transaction.js +16 -0
- package/dist/transaction.js.map +1 -1
- package/dist/types.d.ts +76 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/client.ts +199 -5
- package/src/index.ts +9 -1
- package/src/mutation.ts +245 -0
- package/src/transaction.ts +15 -0
- package/src/types.ts +83 -2
package/dist/client.d.ts
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
import { SQL as BunSQL, type SQLQuery } from 'bun';
|
|
2
|
-
import type { PostgresConfig, ConnectionStats, TransactionOptions, ReserveOptions } from './types';
|
|
2
|
+
import type { PostgresConfig, ConnectionStats, TransactionOptions, ReserveOptions, UnsafeQueryResult } from './types';
|
|
3
3
|
import { Transaction, ReservedConnection } from './transaction';
|
|
4
|
+
/**
|
|
5
|
+
* Creates a lazy thenable with format locking for safe query execution.
|
|
6
|
+
*
|
|
7
|
+
* The returned object implements the {@link UnsafeQueryResult} interface: it is
|
|
8
|
+
* thenable (`.then()`, `.catch()`, `.finally()`) and exposes a `.values()`
|
|
9
|
+
* method for array-format results. Execution is deferred until the first
|
|
10
|
+
* consumption method is called.
|
|
11
|
+
*
|
|
12
|
+
* **Format locking:** The first access (`.then()` or `.values()`) determines
|
|
13
|
+
* the result format for the lifetime of the thenable. Attempting the other
|
|
14
|
+
* format afterwards throws an error, preventing accidental duplicate execution.
|
|
15
|
+
*
|
|
16
|
+
* @param makeExecutor - Factory that creates the execution promise.
|
|
17
|
+
* Called with `true` for array format (`.values()`) or `false` for row-object
|
|
18
|
+
* format (`.then()`).
|
|
19
|
+
* @returns A lazy thenable with `.values()` support
|
|
20
|
+
*
|
|
21
|
+
* @internal Exported for use by `@agentuity/drizzle` — not part of the public API.
|
|
22
|
+
*/
|
|
23
|
+
export declare function createThenable(makeExecutor: (useValues: boolean) => Promise<unknown>): UnsafeQueryResult;
|
|
4
24
|
/**
|
|
5
25
|
* A resilient PostgreSQL client with automatic reconnection.
|
|
6
26
|
*
|
|
@@ -138,6 +158,52 @@ export declare class PostgresClient {
|
|
|
138
158
|
* @param query - The raw SQL query string
|
|
139
159
|
*/
|
|
140
160
|
unsafe(query: string): SQLQuery;
|
|
161
|
+
/**
|
|
162
|
+
* Execute a raw SQL query with automatic retry and transaction wrapping for mutations.
|
|
163
|
+
*
|
|
164
|
+
* Unlike {@link unsafe}, this method:
|
|
165
|
+
* - Automatically retries on retryable errors (connection drops, resets)
|
|
166
|
+
* - Wraps mutation statements in transactions for safe retry
|
|
167
|
+
* - Returns a thenable with `.values()` support matching Bun's SQLQuery interface
|
|
168
|
+
*
|
|
169
|
+
* Detected mutation types: INSERT, UPDATE, DELETE, COPY, TRUNCATE, MERGE, CALL, DO.
|
|
170
|
+
* EXPLAIN queries are never wrapped (read-only analysis).
|
|
171
|
+
*
|
|
172
|
+
* For SELECT queries, retries without transaction wrapping (idempotent).
|
|
173
|
+
* For mutations, wraps in BEGIN/COMMIT so PostgreSQL auto-rolls back
|
|
174
|
+
* uncommitted transactions on connection drop, making retry safe.
|
|
175
|
+
*
|
|
176
|
+
* **⚠️ COMMIT Uncertainty Window:**
|
|
177
|
+
* If the connection drops after the server processes COMMIT but before the client
|
|
178
|
+
* receives confirmation (~<1ms window), changes ARE committed but the client sees
|
|
179
|
+
* a failure. Retry will then duplicate the mutation. This is an inherent limitation
|
|
180
|
+
* of retry-based approaches. Use application-level idempotency (e.g., unique
|
|
181
|
+
* constraints with ON CONFLICT) for critical operations.
|
|
182
|
+
*
|
|
183
|
+
* **⚠️ Result Format Locking:**
|
|
184
|
+
* Each unsafeQuery() result can only be consumed via ONE access pattern — either
|
|
185
|
+
* `await result` (row objects) or `await result.values()` (arrays), not both.
|
|
186
|
+
* Attempting the second pattern throws an error to prevent accidental duplicate execution.
|
|
187
|
+
*
|
|
188
|
+
* @param query - The raw SQL query string
|
|
189
|
+
* @param params - Optional query parameters
|
|
190
|
+
* @returns A thenable that resolves to rows (objects) or arrays via `.values()`
|
|
191
|
+
*
|
|
192
|
+
* @see https://github.com/agentuity/sdk/issues/911
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* // INSERT with safe retry
|
|
197
|
+
* const rows = await client.unsafeQuery('INSERT INTO items (name) VALUES ($1) RETURNING *', ['test']);
|
|
198
|
+
*
|
|
199
|
+
* // SELECT with retry (no transaction overhead)
|
|
200
|
+
* const items = await client.unsafeQuery('SELECT * FROM items WHERE id = $1', [42]);
|
|
201
|
+
*
|
|
202
|
+
* // Get raw arrays via .values()
|
|
203
|
+
* const arrays = await client.unsafeQuery('SELECT id, name FROM items').values();
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
unsafeQuery(query: string, params?: unknown[]): UnsafeQueryResult;
|
|
141
207
|
/**
|
|
142
208
|
* Registers signal handlers to detect application shutdown.
|
|
143
209
|
* When shutdown is detected, reconnection is disabled.
|
|
@@ -223,6 +289,7 @@ export declare class PostgresClient {
|
|
|
223
289
|
*/
|
|
224
290
|
export type CallablePostgresClient = PostgresClient & {
|
|
225
291
|
(strings: TemplateStringsArray, ...values: unknown[]): Promise<unknown[]>;
|
|
292
|
+
unsafeQuery(query: string, params?: unknown[]): UnsafeQueryResult;
|
|
226
293
|
};
|
|
227
294
|
/**
|
|
228
295
|
* Creates a PostgresClient that can be called as a tagged template literal.
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,KAAK,QAAQ,EAAY,MAAM,KAAK,CAAC;AAC7D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -4,6 +4,60 @@ import { computeBackoff, sleep, mergeReconnectConfig } from './reconnect';
|
|
|
4
4
|
import { Transaction } from './transaction';
|
|
5
5
|
import { registerClient, unregisterClient } from './registry';
|
|
6
6
|
import { injectSslMode } from './tls';
|
|
7
|
+
import { isMutationStatement } from './mutation';
|
|
8
|
+
/**
|
|
9
|
+
* Creates a lazy thenable with format locking for safe query execution.
|
|
10
|
+
*
|
|
11
|
+
* The returned object implements the {@link UnsafeQueryResult} interface: it is
|
|
12
|
+
* thenable (`.then()`, `.catch()`, `.finally()`) and exposes a `.values()`
|
|
13
|
+
* method for array-format results. Execution is deferred until the first
|
|
14
|
+
* consumption method is called.
|
|
15
|
+
*
|
|
16
|
+
* **Format locking:** The first access (`.then()` or `.values()`) determines
|
|
17
|
+
* the result format for the lifetime of the thenable. Attempting the other
|
|
18
|
+
* format afterwards throws an error, preventing accidental duplicate execution.
|
|
19
|
+
*
|
|
20
|
+
* @param makeExecutor - Factory that creates the execution promise.
|
|
21
|
+
* Called with `true` for array format (`.values()`) or `false` for row-object
|
|
22
|
+
* format (`.then()`).
|
|
23
|
+
* @returns A lazy thenable with `.values()` support
|
|
24
|
+
*
|
|
25
|
+
* @internal Exported for use by `@agentuity/drizzle` — not part of the public API.
|
|
26
|
+
*/
|
|
27
|
+
export function createThenable(makeExecutor) {
|
|
28
|
+
let started = null;
|
|
29
|
+
let executionMode = null; // tracks useValues for first call
|
|
30
|
+
const startExecution = (useValues) => {
|
|
31
|
+
if (started) {
|
|
32
|
+
if (executionMode !== useValues) {
|
|
33
|
+
throw new Error(`Cannot access .${useValues ? 'values()' : 'then()'} after .${!useValues ? 'values()' : 'then()'} ` +
|
|
34
|
+
'on the same query result. The result format is locked to the first access mode ' +
|
|
35
|
+
'to prevent duplicate query execution. Create a new unsafeQuery() call for a different format.');
|
|
36
|
+
}
|
|
37
|
+
return started;
|
|
38
|
+
}
|
|
39
|
+
executionMode = useValues;
|
|
40
|
+
started = makeExecutor(useValues);
|
|
41
|
+
return started;
|
|
42
|
+
};
|
|
43
|
+
return new Proxy({}, {
|
|
44
|
+
get(_target, prop) {
|
|
45
|
+
if (prop === 'then') {
|
|
46
|
+
return (onfulfilled, onrejected) => startExecution(false).then(onfulfilled, onrejected);
|
|
47
|
+
}
|
|
48
|
+
if (prop === 'catch') {
|
|
49
|
+
return (onrejected) => startExecution(false).catch(onrejected);
|
|
50
|
+
}
|
|
51
|
+
if (prop === 'finally') {
|
|
52
|
+
return (onfinally) => startExecution(false).finally(onfinally ?? undefined);
|
|
53
|
+
}
|
|
54
|
+
if (prop === 'values') {
|
|
55
|
+
return () => startExecution(true);
|
|
56
|
+
}
|
|
57
|
+
return undefined;
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
}
|
|
7
61
|
/**
|
|
8
62
|
* A resilient PostgreSQL client with automatic reconnection.
|
|
9
63
|
*
|
|
@@ -124,8 +178,22 @@ export class PostgresClient {
|
|
|
124
178
|
* ```
|
|
125
179
|
*/
|
|
126
180
|
query(strings, ...values) {
|
|
181
|
+
// Reconstruct query shape for mutation detection.
|
|
182
|
+
// Space as separator is safe — doesn't affect SQL keyword detection.
|
|
183
|
+
const queryShape = strings.join(' ');
|
|
184
|
+
const mutation = isMutationStatement(queryShape);
|
|
127
185
|
return this._executeWithRetry(async () => {
|
|
128
186
|
const sql = await this._ensureConnectedAsync();
|
|
187
|
+
if (mutation) {
|
|
188
|
+
// Use sql.begin() callback API for pool-safe transactions.
|
|
189
|
+
// Bun requires this instead of manual BEGIN/COMMIT when max > 1,
|
|
190
|
+
// because sql.begin() reserves a specific connection for the
|
|
191
|
+
// transaction. Manual BEGIN via sql.unsafe('BEGIN') would throw
|
|
192
|
+
// ERR_POSTGRES_UNSAFE_TRANSACTION on pooled connections.
|
|
193
|
+
return sql.begin(async (tx) => {
|
|
194
|
+
return tx(strings, ...values);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
129
197
|
return sql(strings, ...values);
|
|
130
198
|
});
|
|
131
199
|
}
|
|
@@ -152,6 +220,12 @@ export class PostgresClient {
|
|
|
152
220
|
// Use async ensure to wait for connection/reconnect completion
|
|
153
221
|
// This ensures _warmConnection() updates connection stats before we proceed
|
|
154
222
|
const sql = await this._ensureConnectedAsync();
|
|
223
|
+
// Reserve a dedicated connection from the pool. Bun requires either
|
|
224
|
+
// sql.begin(callback), sql.reserve(), or max:1 for transactions.
|
|
225
|
+
// Since this API returns a Transaction object for manual commit/rollback,
|
|
226
|
+
// we need a reserved connection to guarantee all queries hit the same
|
|
227
|
+
// connection as the BEGIN.
|
|
228
|
+
const reserved = await sql.reserve();
|
|
155
229
|
// Build BEGIN statement with options
|
|
156
230
|
let beginStatement = 'BEGIN';
|
|
157
231
|
if (options?.isolationLevel) {
|
|
@@ -169,9 +243,16 @@ export class PostgresClient {
|
|
|
169
243
|
else if (options?.deferrable === false) {
|
|
170
244
|
beginStatement += ' NOT DEFERRABLE';
|
|
171
245
|
}
|
|
172
|
-
// Execute BEGIN
|
|
173
|
-
|
|
174
|
-
|
|
246
|
+
// Execute BEGIN on the reserved connection
|
|
247
|
+
try {
|
|
248
|
+
const connection = await reserved.unsafe(beginStatement);
|
|
249
|
+
return new Transaction(reserved, connection);
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
// Release the reserved connection if BEGIN fails
|
|
253
|
+
reserved.release();
|
|
254
|
+
throw error;
|
|
255
|
+
}
|
|
175
256
|
}
|
|
176
257
|
/**
|
|
177
258
|
* Reserve an exclusive connection from the pool.
|
|
@@ -238,6 +319,73 @@ export class PostgresClient {
|
|
|
238
319
|
const sql = this._ensureConnected();
|
|
239
320
|
return sql.unsafe(query);
|
|
240
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Execute a raw SQL query with automatic retry and transaction wrapping for mutations.
|
|
324
|
+
*
|
|
325
|
+
* Unlike {@link unsafe}, this method:
|
|
326
|
+
* - Automatically retries on retryable errors (connection drops, resets)
|
|
327
|
+
* - Wraps mutation statements in transactions for safe retry
|
|
328
|
+
* - Returns a thenable with `.values()` support matching Bun's SQLQuery interface
|
|
329
|
+
*
|
|
330
|
+
* Detected mutation types: INSERT, UPDATE, DELETE, COPY, TRUNCATE, MERGE, CALL, DO.
|
|
331
|
+
* EXPLAIN queries are never wrapped (read-only analysis).
|
|
332
|
+
*
|
|
333
|
+
* For SELECT queries, retries without transaction wrapping (idempotent).
|
|
334
|
+
* For mutations, wraps in BEGIN/COMMIT so PostgreSQL auto-rolls back
|
|
335
|
+
* uncommitted transactions on connection drop, making retry safe.
|
|
336
|
+
*
|
|
337
|
+
* **⚠️ COMMIT Uncertainty Window:**
|
|
338
|
+
* If the connection drops after the server processes COMMIT but before the client
|
|
339
|
+
* receives confirmation (~<1ms window), changes ARE committed but the client sees
|
|
340
|
+
* a failure. Retry will then duplicate the mutation. This is an inherent limitation
|
|
341
|
+
* of retry-based approaches. Use application-level idempotency (e.g., unique
|
|
342
|
+
* constraints with ON CONFLICT) for critical operations.
|
|
343
|
+
*
|
|
344
|
+
* **⚠️ Result Format Locking:**
|
|
345
|
+
* Each unsafeQuery() result can only be consumed via ONE access pattern — either
|
|
346
|
+
* `await result` (row objects) or `await result.values()` (arrays), not both.
|
|
347
|
+
* Attempting the second pattern throws an error to prevent accidental duplicate execution.
|
|
348
|
+
*
|
|
349
|
+
* @param query - The raw SQL query string
|
|
350
|
+
* @param params - Optional query parameters
|
|
351
|
+
* @returns A thenable that resolves to rows (objects) or arrays via `.values()`
|
|
352
|
+
*
|
|
353
|
+
* @see https://github.com/agentuity/sdk/issues/911
|
|
354
|
+
*
|
|
355
|
+
* @example
|
|
356
|
+
* ```typescript
|
|
357
|
+
* // INSERT with safe retry
|
|
358
|
+
* const rows = await client.unsafeQuery('INSERT INTO items (name) VALUES ($1) RETURNING *', ['test']);
|
|
359
|
+
*
|
|
360
|
+
* // SELECT with retry (no transaction overhead)
|
|
361
|
+
* const items = await client.unsafeQuery('SELECT * FROM items WHERE id = $1', [42]);
|
|
362
|
+
*
|
|
363
|
+
* // Get raw arrays via .values()
|
|
364
|
+
* const arrays = await client.unsafeQuery('SELECT id, name FROM items').values();
|
|
365
|
+
* ```
|
|
366
|
+
*/
|
|
367
|
+
unsafeQuery(query, params) {
|
|
368
|
+
if (isMutationStatement(query)) {
|
|
369
|
+
// Use sql.begin() callback API for pool-safe transactions.
|
|
370
|
+
// Bun requires this instead of manual BEGIN/COMMIT when max > 1.
|
|
371
|
+
// sql.begin() auto-COMMITs on success and auto-ROLLBACKs on error.
|
|
372
|
+
const makeTransactionalExecutor = (useValues) => this._executeWithRetry(async () => {
|
|
373
|
+
const raw = this._ensureConnected();
|
|
374
|
+
return raw.begin(async (tx) => {
|
|
375
|
+
const q = params ? tx.unsafe(query, params) : tx.unsafe(query);
|
|
376
|
+
return useValues ? await q.values() : await q;
|
|
377
|
+
});
|
|
378
|
+
});
|
|
379
|
+
return createThenable(makeTransactionalExecutor);
|
|
380
|
+
}
|
|
381
|
+
// Non-mutation: plain retry without transaction overhead
|
|
382
|
+
const makeExecutor = (useValues) => this._executeWithRetry(async () => {
|
|
383
|
+
const raw = this._ensureConnected();
|
|
384
|
+
const q = params ? raw.unsafe(query, params) : raw.unsafe(query);
|
|
385
|
+
return useValues ? q.values() : q;
|
|
386
|
+
});
|
|
387
|
+
return createThenable(makeExecutor);
|
|
388
|
+
}
|
|
241
389
|
/**
|
|
242
390
|
* Registers signal handlers to detect application shutdown.
|
|
243
391
|
* When shutdown is detected, reconnection is disabled.
|
|
@@ -292,12 +440,16 @@ export class PostgresClient {
|
|
|
292
440
|
bunOptions.password = this._config.password;
|
|
293
441
|
if (this._config.database)
|
|
294
442
|
bunOptions.database = this._config.database;
|
|
443
|
+
if (this._config.path)
|
|
444
|
+
bunOptions.path = this._config.path;
|
|
295
445
|
if (this._config.max)
|
|
296
446
|
bunOptions.max = this._config.max;
|
|
297
447
|
if (this._config.idleTimeout !== undefined)
|
|
298
448
|
bunOptions.idleTimeout = this._config.idleTimeout;
|
|
299
449
|
if (this._config.connectionTimeout !== undefined)
|
|
300
450
|
bunOptions.connectionTimeout = this._config.connectionTimeout;
|
|
451
|
+
if (this._config.maxLifetime !== undefined)
|
|
452
|
+
bunOptions.maxLifetime = this._config.maxLifetime;
|
|
301
453
|
// Handle TLS configuration
|
|
302
454
|
if (this._config.tls !== undefined) {
|
|
303
455
|
if (typeof this._config.tls === 'boolean') {
|
|
@@ -307,6 +459,21 @@ export class PostgresClient {
|
|
|
307
459
|
bunOptions.tls = this._config.tls;
|
|
308
460
|
}
|
|
309
461
|
}
|
|
462
|
+
// Postgres client runtime configuration (search_path, statement_timeout, etc.)
|
|
463
|
+
if (this._config.connection)
|
|
464
|
+
bunOptions.connection = this._config.connection;
|
|
465
|
+
// Default to unnamed prepared statements (prepare: false) to prevent
|
|
466
|
+
// "prepared statement did not exist" errors when backend connections
|
|
467
|
+
// rotate (e.g., connection poolers, hot reloads, server restarts).
|
|
468
|
+
// See: https://github.com/agentuity/sdk/issues/1005
|
|
469
|
+
bunOptions.prepare = this._config.prepare ?? false;
|
|
470
|
+
// BigInt handling for integers outside i32 range
|
|
471
|
+
if (this._config.bigint !== undefined)
|
|
472
|
+
bunOptions.bigint = this._config.bigint;
|
|
473
|
+
// Set up onconnect handler
|
|
474
|
+
if (this._config.onconnect) {
|
|
475
|
+
bunOptions.onconnect = this._config.onconnect;
|
|
476
|
+
}
|
|
310
477
|
// Set up onclose handler for reconnection
|
|
311
478
|
bunOptions.onclose = (err) => {
|
|
312
479
|
this._handleClose(err ?? undefined);
|
|
@@ -682,6 +849,7 @@ export function createCallableClient(config) {
|
|
|
682
849
|
callable.close = client.close.bind(client);
|
|
683
850
|
callable.shutdown = client.shutdown.bind(client);
|
|
684
851
|
callable.unsafe = client.unsafe.bind(client);
|
|
852
|
+
callable.unsafeQuery = client.unsafeQuery.bind(client);
|
|
685
853
|
callable.waitForConnection = client.waitForConnection.bind(client);
|
|
686
854
|
callable.executeWithRetry = client.executeWithRetry.bind(client);
|
|
687
855
|
return callable;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,11 +31,12 @@
|
|
|
31
31
|
* @packageDocumentation
|
|
32
32
|
*/
|
|
33
33
|
export { postgres, default } from './postgres';
|
|
34
|
-
export { PostgresClient, createCallableClient, type CallablePostgresClient } from './client';
|
|
34
|
+
export { PostgresClient, createCallableClient, createThenable, type CallablePostgresClient, } from './client';
|
|
35
35
|
export { PostgresPool, Pool, createPool } from './pool';
|
|
36
36
|
export { Transaction, Savepoint, ReservedConnection } from './transaction';
|
|
37
37
|
export { patchBunSQL, isPatched, SQL } from './patch';
|
|
38
38
|
export { injectSslMode } from './tls';
|
|
39
|
+
export { isMutationStatement } from './mutation';
|
|
39
40
|
export type { PostgresConfig, ReconnectConfig, ConnectionStats, TLSConfig, TransactionOptions, ReserveOptions, PoolConfig, PoolStats, PoolSSLConfig, } from './types';
|
|
40
41
|
export { PostgresError, ConnectionClosedError, ReconnectFailedError, QueryTimeoutError, TransactionError, UnsupportedOperationError, isRetryableError, } from './errors';
|
|
41
42
|
export { computeBackoff, sleep, mergeReconnectConfig, DEFAULT_RECONNECT_CONFIG } from './reconnect';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EACN,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,KAAK,sBAAsB,GAC3B,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,YAAY,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,SAAS,EACT,aAAa,GACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAGpG,OAAO,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,KAAK,WAAW,GAChB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
// Main factory function
|
|
34
34
|
export { postgres, default } from './postgres';
|
|
35
35
|
// Client class for advanced usage
|
|
36
|
-
export { PostgresClient, createCallableClient } from './client';
|
|
36
|
+
export { PostgresClient, createCallableClient, createThenable, } from './client';
|
|
37
37
|
// Pool class for pg.Pool-based connections
|
|
38
38
|
export { PostgresPool, Pool, createPool } from './pool';
|
|
39
39
|
// Transaction and reserved connection classes
|
|
@@ -42,6 +42,8 @@ export { Transaction, Savepoint, ReservedConnection } from './transaction';
|
|
|
42
42
|
export { patchBunSQL, isPatched, SQL } from './patch';
|
|
43
43
|
// TLS utilities
|
|
44
44
|
export { injectSslMode } from './tls';
|
|
45
|
+
// Mutation detection utility
|
|
46
|
+
export { isMutationStatement } from './mutation';
|
|
45
47
|
// Errors
|
|
46
48
|
export { PostgresError, ConnectionClosedError, ReconnectFailedError, QueryTimeoutError, TransactionError, UnsupportedOperationError, isRetryableError, } from './errors';
|
|
47
49
|
// Reconnection utilities
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,wBAAwB;AACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE/C,kCAAkC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,wBAAwB;AACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE/C,kCAAkC;AAClC,OAAO,EACN,cAAc,EACd,oBAAoB,EACpB,cAAc,GAEd,MAAM,UAAU,CAAC;AAElB,2CAA2C;AAC3C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAExD,8CAA8C;AAC9C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE3E,gDAAgD;AAChD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAEtD,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,6BAA6B;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAejD,SAAS;AACT,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,GAChB,MAAM,UAAU,CAAC;AAElB,yBAAyB;AACzB,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEpG,2CAA2C;AAC3C,OAAO,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,GAEhB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strips leading whitespace and SQL comments (block and line) from a query string.
|
|
3
|
+
* Returns the remaining query text starting at the first non-comment token.
|
|
4
|
+
*
|
|
5
|
+
* Note: This regex does NOT support nested block comments. Use
|
|
6
|
+
* {@link stripLeadingComments} for full nested comment support.
|
|
7
|
+
*/
|
|
8
|
+
export declare const LEADING_COMMENTS_RE: RegExp;
|
|
9
|
+
/**
|
|
10
|
+
* Determines whether a SQL query is a mutation that requires transaction
|
|
11
|
+
* wrapping for safe retry.
|
|
12
|
+
*
|
|
13
|
+
* Detected mutation types: INSERT, UPDATE, DELETE, COPY, TRUNCATE, MERGE,
|
|
14
|
+
* CALL, DO. EXPLAIN queries are never wrapped (read-only analysis, even
|
|
15
|
+
* when the explained statement is a mutation like `EXPLAIN INSERT INTO ...`).
|
|
16
|
+
*
|
|
17
|
+
* Mutation statements wrapped in a transaction can be safely retried because
|
|
18
|
+
* PostgreSQL guarantees that uncommitted transactions are rolled back when
|
|
19
|
+
* the connection drops. This prevents:
|
|
20
|
+
* - Duplicate rows from retried INSERTs
|
|
21
|
+
* - Double-applied changes from retried UPDATEs (e.g., counter increments)
|
|
22
|
+
* - Repeated side effects from retried DELETEs (e.g., cascade triggers)
|
|
23
|
+
*
|
|
24
|
+
* Handles three patterns:
|
|
25
|
+
* 1. Direct mutations: `INSERT INTO ...`, `UPDATE ... SET`, `DELETE FROM ...`,
|
|
26
|
+
* `COPY ...`, `TRUNCATE ...`, `MERGE ...`, `CALL ...`, `DO ...`
|
|
27
|
+
* (with optional leading comments/whitespace)
|
|
28
|
+
* 2. CTE mutations: `WITH cte AS (...) INSERT|UPDATE|DELETE|... ...` — scans
|
|
29
|
+
* past the WITH clause by tracking parenthesis depth to skip CTE
|
|
30
|
+
* subexpressions, then checks if the first top-level DML keyword is a
|
|
31
|
+
* mutation. The scanner treats single-quoted strings, double-quoted
|
|
32
|
+
* identifiers, dollar-quoted strings, line comments (--), and block
|
|
33
|
+
* comments (including nested) as atomic regions so parentheses inside
|
|
34
|
+
* them do not corrupt depth tracking.
|
|
35
|
+
* 3. Multi-statement queries: `SELECT 1; INSERT INTO items VALUES (1)` —
|
|
36
|
+
* scans past semicolons at depth 0 to find mutation keywords in
|
|
37
|
+
* subsequent statements.
|
|
38
|
+
*
|
|
39
|
+
* @see https://github.com/agentuity/sdk/issues/911
|
|
40
|
+
*/
|
|
41
|
+
export declare function isMutationStatement(query: string): boolean;
|
|
42
|
+
//# sourceMappingURL=mutation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QAA0C,CAAC;AAiD3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CA4J1D"}
|