@dbos-inc/dbos-sdk 4.26.5-preview → 4.26.7-preview

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.
@@ -1,245 +1,71 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPGDatabaseOwner = exports.currentDBUserIdentity = exports.connectToPGAndReportOutcome = exports.connectToPGDatabase = exports.maskDatabaseUrl = exports.getDatabaseNameFromUrl = exports.getPGClientConfig = exports.deriveDatabaseUrl = exports.ensurePGDatabase = exports.dropPGDatabase = void 0;
3
+ exports.maskDatabaseUrl = exports.getDatabaseNameFromUrl = exports.deriveDatabaseUrl = exports.ensurePGDatabase = exports.dropPGDatabase = void 0;
4
4
  const pg_1 = require("pg");
5
+ const error_1 = require("./error");
6
+ const utils_1 = require("./utils");
7
+ /** Both helpers address the database by name, so a URL without one is a caller error, not a runtime failure. */
8
+ function requireDatabaseName(databaseUrl) {
9
+ const dbName = getDatabaseNameFromUrl(databaseUrl);
10
+ if (!dbName) {
11
+ throw new error_1.DBOSError(`No database name in ${maskDatabaseUrl(databaseUrl)}; expected a path such as /mydb`);
12
+ }
13
+ return dbName;
14
+ }
5
15
  /**
6
- * Drop a postgres database from a postgres server. This requires a target DB name,
7
- * and a way to connect to its server with privileges to issue the drop. See `opts`.
8
- * Environment variables are not currently considered.
9
- *
10
- * @param opts - Options for connecting to DB and issuing the drop
11
- * @returns `DropDatabaseResult` indicating success, failures, and any notes or hints
16
+ * Drop `databaseUrl`'s database, via the admin (`/postgres`) database on the same server.
17
+ * Throws if the drop could not be carried out.
12
18
  */
13
- async function dropPGDatabase(opts = {}) {
14
- if (!opts.urlToDrop && !opts.dbToDrop) {
15
- throw new TypeError(`dropPGDatabase requires a target database name or URL to DROP`);
16
- }
17
- const notes = [];
18
- const log = (msg) => {
19
- notes.push(msg);
20
- (opts.logger ?? console.log)(msg);
21
- };
22
- function fail(msg, hint) {
23
- log(`FAIL: ${msg}${hint ? ` | HINT: ${hint}` : ''}`);
24
- return { message: msg, status: 'failed', notes, hint };
25
- }
26
- const adminUrl = opts.adminUrl ?? (opts.urlToDrop ? deriveDatabaseUrl(opts.urlToDrop, 'postgres') : undefined);
27
- if (!adminUrl) {
28
- // We could consider the environment, but let's not right now.
29
- throw new TypeError(`dropPostgresDatabase requires a connection string to a database with permission to perform the DROP`);
30
- }
31
- const maybeTemplate1Url = deriveDatabaseUrl(opts.urlToDrop ?? adminUrl, 'template1');
32
- const tryTemplate1Fallback = opts.tryTemplate1Fallback ?? true;
33
- const targetDb = opts.dbToDrop ?? getDatabaseNameFromUrl(opts.urlToDrop);
34
- if (!targetDb) {
35
- return fail('Target URL has no database name in the path (e.g., /mydb).', 'Fix the target URL and retry.');
36
- }
37
- log(`Target DB to drop: ${targetDb}`);
38
- log(`Admin URL (planned): ${maskDatabaseUrl(adminUrl)}`);
39
- // 1) Try admin connection first (best detection for existence & privileges)
40
- let admin = await connectToPGDatabase(adminUrl, log);
41
- if (!admin && tryTemplate1Fallback) {
42
- log(`Admin connect failed. Trying template1 as a fallback...`);
43
- admin = await connectToPGDatabase(maybeTemplate1Url, log);
44
- }
45
- // Helper to check DB existence via catalog (requires admin connection)
46
- const checkExistsViaAdmin = async () => {
47
- if (!admin)
48
- return 'unknown';
49
- const { rows } = await admin.query(`SELECT EXISTS (SELECT 1 FROM pg_database WHERE datname = $1) AS exists`, [targetDb]);
50
- return rows[0]?.exists ?? false;
51
- };
19
+ async function dropPGDatabase(databaseUrl, logger) {
20
+ const quoted = quotePGIdentifier(requireDatabaseName(databaseUrl));
21
+ const client = new pg_1.Client((0, utils_1.getClientConfig)(deriveDatabaseUrl(databaseUrl, 'postgres')));
22
+ // An 'error' event with no listener would take down the process.
23
+ client.on('error', (err) => logger.warn(`Unexpected error in admin client: ${err}`));
52
24
  try {
53
- // If admin connected, see if the DB exists; if not, this is an early success.
54
- let exists = 'unknown';
55
- if (admin) {
56
- exists = await checkExistsViaAdmin();
57
- if (exists === false) {
58
- log(`DB "${targetDb}" does not exist (confirmed via catalog).`);
59
- return { status: 'did_not_exist', notes, message: 'Success (already dropped)' };
60
- }
61
- }
62
- // If we couldn't connect as admin, try connecting to target to distinguish "doesn't exist" from failure to connect.
63
- if (!admin) {
64
- const probe = await connectToPGAndReportOutcome(opts.urlToDrop ?? deriveDatabaseUrl(adminUrl, targetDb), log, 'probe target (existence test)');
65
- if (probe.result === 'ok') {
66
- // We can reach the target DB—so it exists—but we’re connected *to* it; we cannot DROP from within.
67
- await probe.client.end().catch(() => { });
68
- return fail(`Database "${targetDb}" exists, but we could not establish an admin connection to drop it.`, `Provide an admin/alternate DB URL (same server) with privileges to DROP DATABASE`);
69
- }
70
- else if (probe.code === '3D000') {
71
- log(`DB "${targetDb}" does not exist (error 3D000 while connecting). Database already does not exist.`);
72
- return { status: 'did_not_exist', notes, message: 'Success (already dropped)' };
73
- }
74
- else {
75
- // Ambiguous: not proven missing, no admin path to check or drop.
76
- return fail(`Could not establish any admin connection, and target connect failed with ${probe.code ?? probe.result}.`, networkOrAuthHint(probe.code));
77
- }
78
- }
79
- // 2) We have an admin connection and the DB likely exists. Check privileges upfront (nice error).
80
- const who = await currentDBUserIdentity(admin);
81
- const owner = await getPGDatabaseOwner(admin, targetDb);
82
- if (!who.isSuperuser && owner && owner !== who.user) {
83
- log(`Ownership check: DB owned by "${owner}", current_user is "${who.user}" (superuser=${who.isSuperuser}).`);
84
- // We can still try (maybe you have sufficient rights via membership), but warn early.
85
- log(`Warning: You might lack privileges to DROP this database unless you are the owner or superuser.`);
86
- }
87
- // 3) Attempt the drop
25
+ await client.connect();
88
26
  try {
89
- log(`Attempting DROP ... WITH (FORCE).`);
90
- await dropWithForce(admin, targetDb);
27
+ await client.query(`DROP DATABASE IF EXISTS ${quoted} WITH (FORCE)`);
91
28
  }
92
- catch (err) {
93
- const e = err;
94
- // If FORCE path failed due to syntax (older server), fallback once.
95
- if (isForceSyntaxError(e)) {
96
- log(`WITH (FORCE) not supported by server (syntax error). Falling back to terminate-and-drop.`);
97
- try {
98
- await terminateAndDrop(admin, targetDb, 3000, log);
99
- }
100
- catch (err2) {
101
- const e2 = err2;
102
- await admin.end().catch(() => { });
103
- return fail(`Drop failed even after fallback: ${shortenErr(e2)}`, createDropHintFromSqlState(e2?.code));
104
- }
105
- }
106
- else {
107
- await admin.end().catch(() => { });
108
- return fail(`Drop failed: ${shortenErr(e)}`, createDropHintFromSqlState(e?.code));
109
- }
110
- }
111
- // 4) Verify postcondition
112
- const finalExists = await checkExistsViaAdmin();
113
- if (finalExists === false) {
114
- log(`Verified: database "${targetDb}" is gone.`);
115
- return { status: 'dropped', notes, message: 'Success (dropped)' };
116
- }
117
- else if (finalExists === true) {
118
- return fail(`After drop attempt, database "${targetDb}" still exists.`, `Terminate all sessions and retry.`);
119
- }
120
- else {
121
- // Unknown (shouldn't happen with admin connected)
122
- log(`Could not verify drop due to unexpected state.`);
123
- return { status: 'dropped', notes, message: 'Success (dropped)' }; // we did our best; treat as success if we didn't see errors
29
+ catch (e) {
30
+ // CockroachDB and Postgres before 13 reject WITH (FORCE), and drop an idle database without it.
31
+ if (e.code !== '42601')
32
+ throw e;
33
+ await client.query(`DROP DATABASE IF EXISTS ${quoted}`);
124
34
  }
125
35
  }
126
36
  finally {
127
- await admin?.end().catch(() => { });
37
+ await client.end().catch(() => { });
128
38
  }
129
39
  }
130
40
  exports.dropPGDatabase = dropPGDatabase;
131
- async function ensurePGDatabase(opts) {
132
- if (!opts.urlToEnsure && !opts.dbToEnsure) {
133
- throw new TypeError(`ensurePGDatabase requires a target database name or URL to check`);
134
- }
135
- const notes = [];
136
- const log = (msg) => {
137
- notes.push(msg);
138
- (opts.logger ?? console.log)(msg);
139
- };
140
- function fail(msg, hint) {
141
- log(`FAIL: ${msg}${hint ? ` | HINT: ${hint}` : ''}`);
142
- return { status: 'failed', notes, hint, message: msg };
143
- }
144
- const targetDb = opts.dbToEnsure ?? getDatabaseNameFromUrl(opts.urlToEnsure);
145
- if (!targetDb) {
146
- return fail('Target URL has no database name in the path (e.g., /mydb).', 'Fix the target URL and retry.');
147
- }
148
- // Try a quick connect attempt first; this requires the least assumptions and has the least chance of messing us up.
149
- if (opts.urlToEnsure) {
150
- try {
151
- const probe = await connectToPGAndReportOutcome(opts.urlToEnsure, log, 'probe target (existence test)');
152
- if (probe.result === 'ok') {
153
- // CockroachDB lets you connect to (and SELECT 1 from) a nonexistent database;
154
- // hit a catalog that requires the current database to exist to verify.
155
- try {
156
- await probe.client.query('SELECT 1 FROM information_schema.schemata LIMIT 1');
157
- await probe.client.end().catch(() => { });
158
- return { status: 'already_exists', notes, message: 'Success (already existed)' };
159
- }
160
- catch (qerr) {
161
- await probe.client.end().catch(() => { });
162
- log(`Probe connect succeeded but verification query failed: ${qerr.message}; attempting create.`);
163
- }
164
- }
165
- }
166
- catch (e) {
167
- log(`Caught error probing database: (e as Error).message; attempting create.`);
168
- }
169
- }
170
- // At this point, we know we need an admin URL, if only as a base of the real URL
171
- const adminUrl = opts.adminUrl ?? (opts.urlToEnsure ? deriveDatabaseUrl(opts.urlToEnsure, 'postgres') : undefined);
172
- if (!adminUrl) {
173
- // We could consider the environment, but let's not right now.
174
- throw new TypeError(`dropPostgresDatabase requires a connection string to a database with permission to perform the DROP`);
175
- }
176
- const maybeTemplate1Url = deriveDatabaseUrl(opts.urlToEnsure ?? adminUrl, 'template1');
177
- const tryTemplate1Fallback = opts.tryTemplate1Fallback ?? true;
178
- // 1) Try admin connection first (best detection for existence & privileges)
179
- let admin = await connectToPGDatabase(adminUrl, log);
180
- if (!admin && tryTemplate1Fallback) {
181
- log(`Admin connect failed. Trying template1 as a fallback...`);
182
- admin = await connectToPGDatabase(maybeTemplate1Url, log);
183
- }
184
- // Helper to check DB existence via catalog (requires admin connection)
185
- const checkExistsViaAdmin = async () => {
186
- if (!admin)
187
- return 'unknown';
188
- const { rows } = await admin.query(`SELECT EXISTS (SELECT 1 FROM pg_database WHERE datname = $1) AS exists`, [targetDb]);
189
- return rows[0]?.exists ?? false;
190
- };
41
+ /**
42
+ * Create `databaseUrl`'s database if it does not already exist, via the admin (`/postgres`)
43
+ * database on the same server. Best-effort: a database we cannot provision may still be one
44
+ * we can connect to and use, so connection and creation failures are logged rather than thrown.
45
+ * A URL carrying no database name is a caller error and does throw.
46
+ */
47
+ async function ensurePGDatabase(databaseUrl, logger) {
48
+ const dbName = requireDatabaseName(databaseUrl);
49
+ const client = new pg_1.Client((0, utils_1.getClientConfig)(deriveDatabaseUrl(databaseUrl, 'postgres')));
50
+ // An 'error' event with no listener would take down the process.
51
+ client.on('error', (err) => logger.warn(`Unexpected error in startup client: ${err}`));
52
+ let creating = false;
191
53
  try {
192
- // If admin connected, see if the DB exists; if so, this is an early success.
193
- let exists = 'unknown';
194
- if (admin) {
195
- exists = await checkExistsViaAdmin();
196
- if (exists === true) {
197
- log(`DB "${targetDb}" exists (confirmed via catalog).`);
198
- return { status: 'already_exists', notes, message: 'Success (already existed)' };
199
- }
200
- }
201
- // If we couldn't connect as admin, try connecting to target to distinguish "doesn't exist" from failure to connect.
202
- if (!admin) {
203
- const dbUrl = opts.urlToEnsure ?? deriveDatabaseUrl(adminUrl, targetDb);
204
- const probe = await connectToPGAndReportOutcome(dbUrl, log, 'probe target (existence test)');
205
- if (probe.result === 'ok') {
206
- // We can reach the target DB.... via a URL derived from admin
207
- await probe.client.end().catch(() => { });
208
- log(`Probe of database ${targetDb} via ${maskDatabaseUrl(dbUrl)} succeeds.`);
209
- return { status: 'already_exists', notes, message: 'Success (already existed)' };
210
- }
211
- else {
212
- // Ambiguous: We do not know it to be there, and we can't make an admin connection to proceed.
213
- return fail(`Could not establish any admin connection, and target connect failed with ${probe.code ?? probe.result}.`, networkOrAuthHint(probe.code));
214
- }
215
- }
216
- // 3) Attempt the CREATE
217
- try {
218
- log(`Attempting CREATE.`);
219
- await createDb(admin, targetDb);
220
- }
221
- catch (err) {
222
- const e = err;
223
- await admin.end().catch(() => { });
224
- return fail(`Create failed: ${shortenErr(e)}`, createDropHintFromSqlState(e?.code));
225
- }
226
- // 4) Verify postcondition
227
- const finalExists = await checkExistsViaAdmin();
228
- if (finalExists === true) {
229
- log(`Verified: database "${targetDb}" exists.`);
230
- return { status: 'created', notes, message: 'Success (created)' };
231
- }
232
- else if (finalExists === false) {
233
- return fail(`After create attempt, database "${targetDb}" does not exist still.`);
234
- }
235
- else {
236
- // Unknown (shouldn't happen with admin connected)
237
- log(`Could not verify creation due to unexpected state.`);
238
- return { status: 'created', notes, message: 'Success (unverified)' };
54
+ await client.connect();
55
+ const { rowCount } = await client.query(`SELECT 1 FROM pg_database WHERE datname = $1`, [dbName]);
56
+ if (!rowCount) {
57
+ creating = true;
58
+ await client.query(`CREATE DATABASE ${quotePGIdentifier(dbName)}`);
59
+ logger.info(`Created database ${dbName}`);
239
60
  }
240
61
  }
62
+ catch (e) {
63
+ // Name the operation that failed: "verify" and "create" need very different fixes.
64
+ const attempted = creating ? `create database ${dbName}` : `verify the existence of database ${dbName}`;
65
+ logger.warn(`Could not ${attempted}, continuing: ${e.message}`);
66
+ }
241
67
  finally {
242
- await admin?.end().catch(() => { });
68
+ await client.end().catch(() => { });
243
69
  }
244
70
  }
245
71
  exports.ensurePGDatabase = ensurePGDatabase;
@@ -254,29 +80,15 @@ function deriveDatabaseUrl(urlStr, otherDbName) {
254
80
  }
255
81
  }
256
82
  exports.deriveDatabaseUrl = deriveDatabaseUrl;
257
- // The `pg` package we use does not parse the connect_timeout parameter, so we need to handle it ourselves.
258
- function getPGClientConfig(databaseUrl) {
259
- const connectionString = typeof databaseUrl === 'string' ? databaseUrl : databaseUrl.toString();
260
- const timeout = getTimeout(typeof databaseUrl === 'string' ? new URL(databaseUrl) : databaseUrl);
261
- return {
262
- connectionString,
263
- connectionTimeoutMillis: timeout ? timeout * 1000 : 10000,
264
- };
265
- function getTimeout(url) {
266
- try {
267
- const $timeout = url.searchParams.get('connect_timeout');
268
- return $timeout ? parseInt($timeout, 10) : undefined;
269
- }
270
- catch {
271
- // Ignore errors in parsing the connect_timeout parameter
272
- return undefined;
273
- }
274
- }
275
- }
276
- exports.getPGClientConfig = getPGClientConfig;
277
83
  function getDatabaseNameFromUrl(urlStr) {
278
- const u = new URL(urlStr);
279
- return u.pathname?.replace(/^\//, '') || '';
84
+ const pathname = new URL(urlStr).pathname?.replace(/^\//, '') || '';
85
+ // Decode exactly as `pg` does, so we never provision a different database than we connect to.
86
+ try {
87
+ return decodeURI(pathname);
88
+ }
89
+ catch {
90
+ return pathname;
91
+ }
280
92
  }
281
93
  exports.getDatabaseNameFromUrl = getDatabaseNameFromUrl;
282
94
  function maskDatabaseUrl(urlStr) {
@@ -292,159 +104,7 @@ function maskDatabaseUrl(urlStr) {
292
104
  }
293
105
  }
294
106
  exports.maskDatabaseUrl = maskDatabaseUrl;
295
- async function connectToPGDatabase(url, log) {
296
- log(`Connecting: ${maskDatabaseUrl(url)}`);
297
- const client = new pg_1.Client(getPGClientConfig(url));
298
- client.on('error', (err) => {
299
- log(`Unexpected error in startup client: ${err}`);
300
- });
301
- try {
302
- await client.connect();
303
- return client;
304
- }
305
- catch (err) {
306
- const e = err;
307
- log(`Connect failed: ${shortenErr(e)}${e?.code ? ` (code ${e.code})` : ''}`);
308
- try {
309
- await client.end();
310
- }
311
- catch { }
312
- return null;
313
- }
314
- }
315
- exports.connectToPGDatabase = connectToPGDatabase;
316
- async function connectToPGAndReportOutcome(url, log, label) {
317
- log(`Connecting to ${label}: ${maskDatabaseUrl(url)}`);
318
- const client = new pg_1.Client(getPGClientConfig(url));
319
- client.on('error', (err) => {
320
- log(`Unexpected error in startup client: ${err}`);
321
- });
322
- try {
323
- await client.connect();
324
- return { result: 'ok', client };
325
- }
326
- catch (err) {
327
- const e = err;
328
- try {
329
- await client.end();
330
- }
331
- catch { }
332
- return { result: 'error', code: e?.code, message: e?.message ?? String(e) };
333
- }
334
- }
335
- exports.connectToPGAndReportOutcome = connectToPGAndReportOutcome;
336
- function shortenErr(e) {
337
- const m = e?.message ?? String(e);
338
- return m.length > 500 ? `${m.slice(0, 500)}…` : m;
339
- }
340
- async function currentDBUserIdentity(client) {
341
- const { rows: userRows } = await client.query(`SELECT current_user AS user`);
342
- const user = userRows[0]?.user ?? '';
343
- const { rows: roleRows } = await client.query(`SELECT rolsuper FROM pg_roles WHERE rolname = current_user`);
344
- return { user, isSuperuser: !!roleRows[0]?.rolsuper };
345
- }
346
- exports.currentDBUserIdentity = currentDBUserIdentity;
347
- async function getPGDatabaseOwner(admin, dbName) {
348
- const { rows } = await admin.query(`SELECT r.rolname AS owner
349
- FROM pg_database d JOIN pg_roles r ON r.oid = d.datdba
350
- WHERE d.datname = $1`, [dbName]);
351
- return rows[0]?.owner ?? null;
352
- }
353
- exports.getPGDatabaseOwner = getPGDatabaseOwner;
354
107
  function quotePGIdentifier(name) {
355
108
  return `"${name.replace(/"/g, '""')}"`;
356
109
  }
357
- async function dropWithForce(admin, dbName) {
358
- await admin.query(`DROP DATABASE IF EXISTS ${quotePGIdentifier(dbName)} WITH (FORCE)`);
359
- }
360
- async function createDb(admin, dbName) {
361
- await admin.query(`CREATE DATABASE ${quotePGIdentifier(dbName)}`);
362
- }
363
- function isForceSyntaxError(e) {
364
- return e?.code === '42601' /* syntax_error */ || /WITH\s*\(\s*FORCE\s*\)/i.test(e?.message ?? '');
365
- }
366
- async function terminateAndDrop(admin, dbName, settleMs, log) {
367
- // Prevent new connections (best-effort; ignore errors)
368
- try {
369
- await admin.query(`ALTER DATABASE ${quotePGIdentifier(dbName)} WITH ALLOW_CONNECTIONS = false`);
370
- }
371
- catch (e) {
372
- log(`ALTER DATABASE ... ALLOW_CONNECTIONS=false failed (continuing): ${shortenErr(e)}`);
373
- }
374
- // Terminate existing sessions (best-effort; not all servers expose pg_terminate_backend, e.g. CockroachDB)
375
- try {
376
- await admin.query(`SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = $1 AND pid <> pg_backend_pid()`, [dbName]);
377
- }
378
- catch (e) {
379
- log(`pg_terminate_backend failed (continuing): ${shortenErr(e)}`);
380
- }
381
- if (settleMs > 0) {
382
- log(`Waiting ${settleMs}ms for backends to terminate...`);
383
- await new Promise((r) => setTimeout(r, settleMs));
384
- }
385
- // Try DROP, and if "being accessed" shows up, retry once after an extra wait
386
- try {
387
- await admin.query(`DROP DATABASE IF EXISTS ${quotePGIdentifier(dbName)}`);
388
- }
389
- catch (err) {
390
- const e = err;
391
- if (e?.code === '55006') {
392
- log(`DB still "being accessed by other users"; retrying after extra wait...`);
393
- await new Promise((r) => setTimeout(r, Math.max(1000, settleMs)));
394
- try {
395
- await admin.query(`SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = $1 AND pid <> pg_backend_pid()`, [dbName]);
396
- }
397
- catch (e2) {
398
- log(`pg_terminate_backend failed (continuing): ${shortenErr(e2)}`);
399
- }
400
- await admin.query(`DROP DATABASE IF EXISTS ${quotePGIdentifier(dbName)}`);
401
- }
402
- else {
403
- throw e;
404
- }
405
- }
406
- }
407
- function networkOrAuthHint(code) {
408
- if (!code)
409
- return;
410
- switch (code) {
411
- case 'ECONNREFUSED':
412
- return 'Server not reachable. Check host/port or firewall.';
413
- case 'ENOTFOUND':
414
- return 'Hostname not resolvable. Check DNS/host.';
415
- case 'ETIMEDOUT':
416
- return 'Connection timed out. Check network/firewall.';
417
- case '28P01':
418
- return 'Invalid password.';
419
- case '28000':
420
- return 'Authentication rejected (pg_hba.conf or method).';
421
- default: {
422
- if (code.substring(0, 2) === '28')
423
- return 'Other connection security error';
424
- return undefined;
425
- }
426
- }
427
- }
428
- function createDropHintFromSqlState(code) {
429
- switch (code?.substring(0, 5)) {
430
- case '42501':
431
- return 'Insufficient privilege. You must be the owner or a superuser.';
432
- case '53300':
433
- return 'Too many connections to server; free some slots.';
434
- default:
435
- break;
436
- }
437
- switch (code?.substring(0, 2)) {
438
- case '42':
439
- return 'Syntax error or access rule violation.';
440
- case '3D':
441
- return 'Target database does not exist (already gone).';
442
- case '55':
443
- return 'Database is in use. Terminate sessions or use PG13+ WITH (FORCE).';
444
- case '53':
445
- return 'Insufficient resources.';
446
- default:
447
- return undefined;
448
- }
449
- }
450
110
  //# sourceMappingURL=database_utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database_utils.js","sourceRoot":"","sources":["../../src/database_utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database_utils.js","sourceRoot":"","sources":["../../src/database_utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { FunctionName } from './decorators';
2
+ import { DBOSError } from './error';
2
3
  /**
3
4
  * This interface is to be used for implementers of transactional data sources
4
5
  * This is what gets registered for the transaction control framework
@@ -95,6 +96,25 @@ export interface PGTransactionConfig {
95
96
  /** If set, request read-only transaction from underlying app database */
96
97
  readOnly?: boolean;
97
98
  }
99
+ /** Base error type, re-exported so data sources can raise DBOS-typed failures. */
100
+ export { DBOSError };
101
+ /**
102
+ * Internal signal that a concurrent duplicate execution recorded this step's outcome first.
103
+ * Data sources throw this from their completion insert so the user transaction rolls back
104
+ * and the recorded outcome is replayed instead; it is never surfaced to user code.
105
+ */
106
+ export declare class DBOSStepAlreadyRecordedError extends Error {
107
+ constructor(workflowID: string, stepID: number);
108
+ }
109
+ /**
110
+ * Deliver a transaction outcome recorded by an earlier or concurrent execution.
111
+ * Data sources share this between their pre-execution check and their conflict handler
112
+ * so the two paths cannot drift apart.
113
+ */
114
+ export declare function replayRecordedStep<Return>(recorded: {
115
+ output?: string | null;
116
+ error?: string | null;
117
+ }): Return;
98
118
  export interface CheckSchemaInstallationReturn {
99
119
  schema_exists: number;
100
120
  table_exists: number;
@@ -105,5 +125,4 @@ export declare function createTransactionCompletionTablePG(schemaName?: string):
105
125
  export declare function isPGRetriableTransactionError(error: unknown): boolean;
106
126
  export declare function isPGKeyConflictError(error: unknown): boolean;
107
127
  export declare function isPGFailedSqlTransactionError(error: unknown): boolean;
108
- export { maskDatabaseUrl, getDatabaseNameFromUrl, deriveDatabaseUrl, getPGClientConfig, connectToPGDatabase, connectToPGAndReportOutcome, DropDatabaseOptions, DropDatabaseResult, dropPGDatabase, EnsureDatabaseOptions, EnsureDatabaseResult, ensurePGDatabase, } from './database_utils';
109
128
  //# sourceMappingURL=datasource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../src/datasource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../src/datasource.ts"],"names":[],"mappings":"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"}