@event-driven-io/dumbo 0.13.0-beta.21 → 0.13.0-beta.23

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 (62) hide show
  1. package/dist/{chunk-FC4JR2R3.js → chunk-56QRSCG5.js} +2 -2
  2. package/dist/{chunk-65DKXURG.js → chunk-5OX6NE4Z.js} +2 -2
  3. package/dist/{chunk-IVJ3SNPJ.js → chunk-5SCFH2HY.js} +2 -2
  4. package/dist/{chunk-AMACBMAZ.cjs → chunk-7D7WADBK.cjs} +186 -98
  5. package/dist/chunk-7D7WADBK.cjs.map +1 -0
  6. package/dist/{chunk-H7ZKIJHB.cjs → chunk-7RMJPFU5.cjs} +6 -6
  7. package/dist/{chunk-H7ZKIJHB.cjs.map → chunk-7RMJPFU5.cjs.map} +1 -1
  8. package/dist/{chunk-7WEBHXZD.cjs → chunk-HXQYRDCR.cjs} +43 -43
  9. package/dist/{chunk-7WEBHXZD.cjs.map → chunk-HXQYRDCR.cjs.map} +1 -1
  10. package/dist/{chunk-T4A6BQRA.js → chunk-LPIIB75Q.js} +120 -32
  11. package/dist/chunk-LPIIB75Q.js.map +1 -0
  12. package/dist/{chunk-XO5T5N5S.js → chunk-QUAG4MBP.js} +294 -14
  13. package/dist/chunk-QUAG4MBP.js.map +1 -0
  14. package/dist/{chunk-XOQHZABK.cjs → chunk-QVEVSWG6.cjs} +307 -27
  15. package/dist/chunk-QVEVSWG6.cjs.map +1 -0
  16. package/dist/{chunk-R7P7CNMK.cjs → chunk-TMFEMKPE.cjs} +4 -4
  17. package/dist/{chunk-R7P7CNMK.cjs.map → chunk-TMFEMKPE.cjs.map} +1 -1
  18. package/dist/cloudflare.cjs +66 -61
  19. package/dist/cloudflare.cjs.map +1 -1
  20. package/dist/cloudflare.d.cts +4 -4
  21. package/dist/cloudflare.d.ts +4 -4
  22. package/dist/cloudflare.js +9 -4
  23. package/dist/cloudflare.js.map +1 -1
  24. package/dist/{columnProcessors-Difrrk4c.d.cts → columnProcessors-CsQjv8si.d.cts} +1 -1
  25. package/dist/{columnProcessors-C7fRa54L.d.ts → columnProcessors-giHzjHuv.d.ts} +1 -1
  26. package/dist/{connectionString-oeg1LD5V.d.ts → connectionString-J4yRT71A.d.cts} +40 -31
  27. package/dist/{connectionString-oeg1LD5V.d.cts → connectionString-J4yRT71A.d.ts} +40 -31
  28. package/dist/index.cjs +7 -5
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.cts +3 -3
  31. package/dist/index.d.ts +3 -3
  32. package/dist/index.js +5 -3
  33. package/dist/index.js.map +1 -1
  34. package/dist/pg.cjs +39 -38
  35. package/dist/pg.cjs.map +1 -1
  36. package/dist/pg.d.cts +7 -7
  37. package/dist/pg.d.ts +7 -7
  38. package/dist/pg.js +5 -4
  39. package/dist/pg.js.map +1 -1
  40. package/dist/postgresql.cjs +4 -4
  41. package/dist/postgresql.d.cts +2 -2
  42. package/dist/postgresql.d.ts +2 -2
  43. package/dist/postgresql.js +3 -3
  44. package/dist/sqlite.cjs +8 -4
  45. package/dist/sqlite.cjs.map +1 -1
  46. package/dist/sqlite.d.cts +49 -23
  47. package/dist/sqlite.d.ts +49 -23
  48. package/dist/sqlite.js +7 -3
  49. package/dist/sqlite3.cjs +65 -28
  50. package/dist/sqlite3.cjs.map +1 -1
  51. package/dist/sqlite3.d.cts +11 -11
  52. package/dist/sqlite3.d.ts +11 -11
  53. package/dist/sqlite3.js +48 -11
  54. package/dist/sqlite3.js.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/chunk-AMACBMAZ.cjs.map +0 -1
  57. package/dist/chunk-T4A6BQRA.js.map +0 -1
  58. package/dist/chunk-XO5T5N5S.js.map +0 -1
  59. package/dist/chunk-XOQHZABK.cjs.map +0 -1
  60. /package/dist/{chunk-FC4JR2R3.js.map → chunk-56QRSCG5.js.map} +0 -0
  61. /package/dist/{chunk-65DKXURG.js.map → chunk-5OX6NE4Z.js.map} +0 -0
  62. /package/dist/{chunk-IVJ3SNPJ.js.map → chunk-5SCFH2HY.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/storage/sqlite/d1/connections/d1Client.ts","../src/storage/sqlite/d1/errors/errorMapper.ts","../src/storage/sqlite/d1/execute/d1SqlExecutor.ts","../src/storage/sqlite/d1/transactions/d1Transaction.ts","../src/storage/sqlite/d1/connections/d1Connection.ts","../src/storage/sqlite/d1/pool/d1ConnectionPool.ts","../src/storage/sqlite/d1/index.ts"],"sourcesContent":["import type {\n D1Database,\n D1DatabaseSession,\n D1SessionBookmark,\n D1SessionConstraint,\n} from '@cloudflare/workers-types';\nimport {\n BatchCommandNoChangesError,\n type BatchSQLCommandOptions,\n type JSONSerializer,\n type QueryResult,\n type QueryResultRow,\n type SQL,\n type SQLCommandOptions,\n type SQLQueryOptions,\n} from '../../../../core';\nimport { sqliteFormatter, type SQLiteClient } from '../../core';\n\nexport type D1DatabaseOrSession = D1Database | D1DatabaseSession;\n\nexport type D1ClientOptions = {\n database: D1Database;\n session?: D1DatabaseSession | undefined;\n serializer: JSONSerializer;\n};\n\nexport type D1SessionOptions = {\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n constraintOrBookmark?: D1SessionBookmark | D1SessionConstraint;\n};\n\nexport type D1Client = SQLiteClient & {\n database: D1Database;\n session?: D1DatabaseSession | undefined;\n\n withSession: (constraintOrBookmark?: D1SessionOptions) => Promise<D1Client>;\n};\n\nexport const d1Client = (options: D1ClientOptions): D1Client => {\n const { database, session, serializer } = options;\n\n const execute = session ?? database;\n\n return {\n database,\n session: session,\n connect: () => Promise.resolve(),\n close: () => Promise.resolve(),\n withSession: async (constraintOrBookmark?: D1SessionOptions) => {\n const newSession = constraintOrBookmark\n ? database.withSession(constraintOrBookmark as string)\n : database.withSession();\n\n return Promise.resolve(\n d1Client({\n database,\n session: newSession,\n serializer,\n }),\n );\n },\n\n query: async <Result extends QueryResultRow = QueryResultRow>(\n sql: SQL,\n _options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>> => {\n const { query, params } = sqliteFormatter.format(sql, { serializer });\n const stmt = execute.prepare(query);\n const bound = params?.length ? stmt.bind(...params) : stmt;\n const { results } = await bound.all<Result>();\n return { rowCount: results?.length ?? 0, rows: results ?? [] };\n },\n\n batchQuery: async <Result extends QueryResultRow = QueryResultRow>(\n sqls: SQL[],\n _options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>[]> => {\n const statements = sqls.map((sql) => {\n const { query, params } = sqliteFormatter.format(sql, { serializer });\n const stmt = execute.prepare(query);\n return params?.length ? stmt.bind(...params) : stmt;\n });\n const results = await execute.batch<Result>(statements);\n return results.map((result) => ({\n rowCount: result.results?.length ?? 0,\n rows: result.results ?? [],\n }));\n },\n\n command: async <Result extends QueryResultRow = QueryResultRow>(\n sql: SQL,\n _options?: SQLCommandOptions,\n ): Promise<QueryResult<Result>> => {\n const { query, params } = sqliteFormatter.format(sql, { serializer });\n const stmt = execute.prepare(query);\n const bound = params?.length ? stmt.bind(...params) : stmt;\n const result = await bound.run<Result>();\n return {\n rowCount: result.meta?.changes ?? 0,\n rows: result.results ?? [],\n };\n },\n\n batchCommand: async <Result extends QueryResultRow = QueryResultRow>(\n sqls: SQL[],\n options?: BatchSQLCommandOptions,\n ): Promise<QueryResult<Result>[]> => {\n const statements = sqls.map((sql) => {\n const { query, params } = sqliteFormatter.format(sql, { serializer });\n const stmt = execute.prepare(query);\n return params?.length ? stmt.bind(...params) : stmt;\n });\n const batchResults = await execute.batch<Result>(statements);\n\n return batchResults.map((result, i) => {\n const qr: QueryResult<Result> = {\n rowCount: result.meta?.changes ?? 0,\n rows: result.results ?? [],\n };\n\n if (options?.assertChanges && (qr.rowCount ?? 0) === 0) {\n throw new BatchCommandNoChangesError(i);\n }\n\n return qr;\n });\n },\n };\n};\n","import {\n CheckViolationError,\n ConnectionError,\n DataError,\n DeadlockError,\n DumboError,\n ForeignKeyViolationError,\n InsufficientResourcesError,\n IntegrityConstraintViolationError,\n InvalidOperationError,\n LockNotAvailableError,\n NotNullViolationError,\n SerializationError,\n SystemError,\n UniqueConstraintError,\n} from '../../../../core/errors';\n\nconst getErrorMessage = (error: unknown): string | undefined =>\n error instanceof Error ? error.message : undefined;\n\nconst asError = (error: unknown): Error | undefined =>\n error instanceof Error ? error : undefined;\n\n/**\n * Determines the constraint subtype from the error message.\n *\n * D1 embeds the SQLite constraint detail in the message string, e.g.:\n * \"D1_ERROR: UNIQUE constraint failed: users.email\"\n * \"D1_ERROR: SQLITE_CONSTRAINT: FOREIGN KEY constraint failed\"\n */\nconst mapConstraintError = (\n message: string | undefined,\n innerError: Error | undefined,\n): DumboError => {\n const upperMessage = message?.toUpperCase() ?? '';\n\n if (upperMessage.includes('UNIQUE') || upperMessage.includes('PRIMARY KEY'))\n return new UniqueConstraintError(message, innerError);\n\n if (upperMessage.includes('FOREIGN KEY'))\n return new ForeignKeyViolationError(message, innerError);\n\n if (upperMessage.includes('NOT NULL'))\n return new NotNullViolationError(message, innerError);\n\n if (upperMessage.includes('CHECK'))\n return new CheckViolationError(message, innerError);\n\n return new IntegrityConstraintViolationError(message, innerError);\n};\n\nconst isConstraintMessage = (upper: string): boolean =>\n upper.includes('CONSTRAINT') ||\n upper.includes('UNIQUE') ||\n upper.includes('PRIMARY KEY') ||\n upper.includes('FOREIGN KEY') ||\n upper.includes('NOT NULL');\n\n/** Extracts the first `SQLITE_<CODE>` token from a message string. */\nconst SQLITE_CODE_RE = /SQLITE_([A-Z]+)/;\n\nconst extractEmbeddedSqliteCode = (message: string): string | undefined => {\n const match = SQLITE_CODE_RE.exec(message);\n return match ? `SQLITE_${match[1]}` : undefined;\n};\n\n/**\n * Maps a `SQLITE_*` code found in the D1 message to a DumboError.\n *\n * D1 sometimes forwards raw SQLite result codes from the C++ layer, e.g.:\n * \"D1_ERROR: SQLITE_BUSY: database is locked\"\n * \"SQLITE_READONLY: attempt to write a readonly database\"\n *\n * See https://www.sqlite.org/rescode.html for the full code list.\n */\nconst mapEmbeddedSqliteCode = (\n code: string,\n message: string | undefined,\n innerError: Error | undefined,\n): DumboError | undefined => {\n switch (code) {\n case 'SQLITE_CONSTRAINT':\n return mapConstraintError(message, innerError);\n case 'SQLITE_BUSY':\n return new LockNotAvailableError(message, innerError);\n case 'SQLITE_LOCKED':\n return new DeadlockError(message, innerError);\n case 'SQLITE_PROTOCOL':\n return new LockNotAvailableError(message, innerError);\n case 'SQLITE_CANTOPEN':\n return new ConnectionError(message, innerError);\n case 'SQLITE_NOTADB':\n return new ConnectionError(message, innerError);\n case 'SQLITE_NOMEM':\n return new InsufficientResourcesError(message, innerError);\n case 'SQLITE_FULL':\n return new InsufficientResourcesError(message, innerError);\n case 'SQLITE_IOERR':\n return new SystemError(message, innerError);\n case 'SQLITE_CORRUPT':\n return new SystemError(message, innerError);\n case 'SQLITE_INTERNAL':\n return new SystemError(message, innerError);\n case 'SQLITE_NOLFS':\n return new SystemError(message, innerError);\n case 'SQLITE_TOOBIG':\n return new DataError(message, innerError);\n case 'SQLITE_MISMATCH':\n return new DataError(message, innerError);\n case 'SQLITE_RANGE':\n return new DataError(message, innerError);\n case 'SQLITE_ERROR':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_READONLY':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_MISUSE':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_AUTH':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_PERM':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_SCHEMA':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_ABORT':\n return new SerializationError(message, innerError);\n case 'SQLITE_INTERRUPT':\n return new SerializationError(message, innerError);\n }\n return undefined;\n};\n\n/**\n * Maps a Cloudflare D1 error to a typed DumboError.\n *\n * Unlike node-sqlite3, D1 throws **plain `Error` objects** with no `code`\n * property. All error information is embedded in `error.message`, using\n * well-known prefixes from the `workerd` runtime:\n *\n * | Prefix | Meaning |\n * |-----------------------|----------------------------------------------|\n * | `D1_ERROR:` | General D1 / SQLite error |\n * | `D1_EXEC_ERROR:` | Error during `.exec()` batch |\n * | `D1_TYPE_ERROR:` | Type mismatch (e.g. `undefined` vs `null`) |\n * | `D1_COLUMN_NOTFOUND` | Referenced column does not exist |\n * | `D1_DUMP_ERROR:` | Error during database dump |\n * | `D1_SESSION_ERROR:` | Session bookmark / constraint error |\n *\n * D1 also surfaces platform-level messages (no prefix) for transient errors:\n * - \"Network connection lost.\"\n * - \"D1 DB is overloaded. Too many requests queued.\"\n * - \"Memory limit would be exceeded by this operation.\"\n * - \"Cannot resolve D1 DB due to transient issue on remote node.\"\n * - \"D1 DB reset because its code was updated.\"\n *\n * Reference:\n * - https://developers.cloudflare.com/d1/platform/client-api/\n * - https://github.com/cloudflare/workerd (src/cloudflare/internal/d1-api.ts)\n *\n * Falls back to a generic DumboError (500) if the error is not a recognized D1 error.\n */\nexport const mapD1Error = (error: unknown): DumboError => {\n if (DumboError.isInstanceOf<DumboError>(error)) return error;\n\n const message = getErrorMessage(error);\n if (!message)\n return new DumboError({\n errorCode: 500,\n message: error instanceof Error ? error.message : String(error),\n innerError: asError(error),\n });\n\n const innerError = asError(error);\n const upper = message.toUpperCase();\n\n // D1-specific prefixes are checked first because some (e.g. D1_SESSION_ERROR)\n // contain constraint keywords in their message but have different semantics.\n if (upper.startsWith('D1_TYPE_ERROR'))\n return new DataError(message, innerError);\n\n if (upper.startsWith('D1_COLUMN_NOTFOUND'))\n return new DataError(message, innerError);\n\n if (upper.startsWith('D1_DUMP_ERROR'))\n return new SystemError(message, innerError);\n\n if (upper.startsWith('D1_SESSION_ERROR'))\n return new ConnectionError(message, innerError);\n\n if (isConstraintMessage(upper)) {\n return mapConstraintError(message, innerError);\n }\n\n if (\n upper.includes('NETWORK CONNECTION LOST') ||\n upper.includes('CANNOT RESOLVE D1 DB DUE TO TRANSIENT ISSUE') ||\n upper.includes('D1 DB RESET BECAUSE')\n )\n return new ConnectionError(message, innerError);\n\n if (\n upper.includes('D1 DB IS OVERLOADED') ||\n upper.includes('TOO MANY REQUESTS') ||\n upper.includes('MEMORY LIMIT WOULD BE EXCEEDED')\n )\n return new InsufficientResourcesError(message, innerError);\n\n if (upper.startsWith('D1_ERROR') || upper.startsWith('D1_EXEC_ERROR')) {\n const embeddedCode = extractEmbeddedSqliteCode(message);\n if (embeddedCode) {\n const mapped = mapEmbeddedSqliteCode(embeddedCode, message, innerError);\n if (mapped) return mapped;\n }\n\n return new InvalidOperationError(message, innerError);\n }\n\n const embeddedCode = extractEmbeddedSqliteCode(message);\n if (embeddedCode) {\n const mapped = mapEmbeddedSqliteCode(embeddedCode, message, innerError);\n if (mapped) return mapped;\n }\n\n return new DumboError({\n errorCode: 500,\n message,\n innerError,\n });\n};\n","import type {\n BatchSQLCommandOptions,\n DbSQLExecutor,\n QueryResult,\n QueryResultRow,\n SQL,\n SQLCommandOptions,\n SQLQueryOptions,\n} from '../../../../core';\nimport { tracer } from '../../../../core';\nimport { sqliteFormatter } from '../../core';\nimport type { D1Client, D1DriverType } from '../connections';\nimport { mapD1Error } from '../errors/errorMapper';\n\nexport const d1SQLExecutor = (): DbSQLExecutor<D1DriverType, D1Client> => ({\n driverType: 'SQLite:d1',\n formatter: sqliteFormatter,\n\n query: async <Result extends QueryResultRow>(\n client: D1Client,\n sql: SQL,\n options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>> => {\n try {\n return await client.query<Result>(sql, options);\n } catch (error) {\n tracer.error('db:sql:query:execute:error', { error });\n throw mapD1Error(error);\n }\n },\n\n batchQuery: async <Result extends QueryResultRow>(\n client: D1Client,\n sqls: SQL[],\n options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>[]> => {\n try {\n return await client.batchQuery<Result>(sqls, options);\n } catch (error) {\n tracer.error('db:sql:batch_query:execute:error', { error });\n throw mapD1Error(error);\n }\n },\n\n command: async <Result extends QueryResultRow>(\n client: D1Client,\n sql: SQL,\n options?: SQLCommandOptions,\n ): Promise<QueryResult<Result>> => {\n try {\n return await client.command<Result>(sql, options);\n } catch (error) {\n tracer.error('db:sql:command:execute:error', { error });\n throw mapD1Error(error);\n }\n },\n\n batchCommand: async <Result extends QueryResultRow>(\n client: D1Client,\n sqls: SQL[],\n options?: BatchSQLCommandOptions,\n ): Promise<QueryResult<Result>[]> => {\n try {\n return await client.batchCommand<Result>(sqls, options);\n } catch (error) {\n tracer.error('db:sql:batch_command:execute:error', { error });\n throw mapD1Error(error);\n }\n },\n});\n","import type { JSONSerializer } from '../../../../core';\nimport {\n sqlExecutor,\n type DatabaseTransaction,\n type DatabaseTransactionOptions,\n} from '../../../../core';\nimport { transactionNestingCounter } from '../../core';\nimport {\n D1DriverType,\n type D1Client,\n type D1Connection,\n type D1SessionOptions,\n} from '../connections';\nimport { d1SQLExecutor } from '../execute';\n\nexport type D1Transaction = DatabaseTransaction<D1Connection>;\n\nexport type D1TransactionOptions = DatabaseTransactionOptions & {\n d1Session?: D1SessionOptions;\n mode?: D1TransactionMode;\n};\n\nexport type D1TransactionMode = 'session_based' | 'strict';\n\nexport class D1TransactionNotSupportedError extends Error {\n constructor() {\n super(\n 'D1 does not support SQL transactions (BEGIN/COMMIT/ROLLBACK/SAVEPOINT). ' +\n 'Use { mode: \"session_based\" } to opt-in to session+batch semantics, or use ' +\n 'connection.execute.batchCommand() for atomic multi-statement execution.',\n );\n this.name = 'D1TransactionNotSupportedError';\n }\n}\n\nexport const d1Transaction =\n (\n connection: () => D1Connection,\n serializer: JSONSerializer,\n defaultOptions?: D1TransactionOptions,\n ) =>\n (\n getClient: Promise<D1Client>,\n options?: {\n close: (client: D1Client, error?: unknown) => Promise<void>;\n } & D1TransactionOptions,\n ): D1Transaction => {\n const transactionCounter = transactionNestingCounter();\n\n const allowNestedTransactions =\n options?.allowNestedTransactions ??\n defaultOptions?.allowNestedTransactions;\n\n const mode = options?.mode ?? defaultOptions?.mode;\n\n let client: D1Client | null = null;\n let sessionClient: D1Client | null = null;\n\n const getDatabaseClient = async () => {\n if (client) return Promise.resolve(client);\n\n client = await getClient;\n return client;\n };\n\n return {\n connection: connection(),\n driverType: D1DriverType,\n begin: async function () {\n if (mode !== 'session_based') {\n throw new D1TransactionNotSupportedError();\n }\n\n const client = await getDatabaseClient();\n\n if (allowNestedTransactions) {\n if (transactionCounter.level >= 1) {\n transactionCounter.increment();\n return;\n }\n\n transactionCounter.increment();\n }\n\n sessionClient = await client.withSession(options?.d1Session);\n },\n commit: async function () {\n const client = await getDatabaseClient();\n\n try {\n if (allowNestedTransactions) {\n if (transactionCounter.level > 1) {\n transactionCounter.decrement();\n\n return;\n }\n\n transactionCounter.reset();\n }\n sessionClient = null;\n } finally {\n if (options?.close) await options?.close(client);\n }\n },\n rollback: async function (error?: unknown) {\n const client = await getDatabaseClient();\n try {\n if (allowNestedTransactions) {\n if (transactionCounter.level > 1) {\n transactionCounter.decrement();\n return;\n }\n }\n\n sessionClient = null;\n } finally {\n if (options?.close) await options?.close(client, error);\n }\n },\n execute: sqlExecutor(d1SQLExecutor(), {\n connect: () => {\n if (!sessionClient) {\n throw new Error(\n 'Transaction has not been started. Call begin() first.',\n );\n }\n return Promise.resolve(sessionClient);\n },\n }),\n };\n };\n","import type { Connection } from '../../../../core';\nimport {\n sqliteAmbientClientConnection,\n type SQLiteConnectionOptions,\n type SQLiteDriverType,\n} from '../../core';\nimport { mapD1Error } from '../errors/errorMapper';\nimport {\n d1Transaction,\n type D1Transaction,\n type D1TransactionOptions,\n} from '../transactions';\nimport {\n d1Client,\n type D1Client,\n type D1ClientOptions,\n type D1SessionOptions,\n} from './d1Client';\n\nexport type D1DriverType = SQLiteDriverType<'d1'>;\nexport const D1DriverType: D1DriverType = 'SQLite:d1';\n\nexport type D1Connection = Connection<\n D1Connection,\n D1DriverType,\n D1Client,\n D1Transaction,\n D1TransactionOptions\n> & {\n d1Session: (constraintOrBookmark?: D1SessionOptions) => Promise<D1Connection>;\n withD1Session: <Result = never>(\n handle: (connection: D1Connection) => Promise<Result>,\n options?: D1SessionOptions,\n ) => Promise<Result>;\n};\n\nexport type D1ConnectionOptions = SQLiteConnectionOptions<D1Connection> & {\n client?: D1Client;\n connection?: D1Connection;\n transaction?: D1Transaction;\n} & D1ClientOptions;\n\nexport const d1Connection = (options: D1ConnectionOptions) => {\n const connection = options.connection ??\n options.transaction?.connection ?? {\n ...sqliteAmbientClientConnection<D1Connection>({\n driverType: D1DriverType,\n client: options.client ?? d1Client(options),\n initTransaction: (connection) =>\n d1Transaction(\n connection,\n options.serializer,\n options.transactionOptions,\n ),\n serializer: options.serializer,\n errorMapper: mapD1Error,\n }),\n };\n\n connection.d1Session = async (\n constraintOrBookmark?: D1SessionOptions,\n ): Promise<D1Connection> => {\n const client = await connection.open();\n\n const sessionClient = await client.withSession(constraintOrBookmark);\n\n return d1Connection({\n ...options,\n client: sessionClient,\n });\n };\n\n connection.withD1Session = async <Result = never>(\n handle: (connection: D1Connection) => Promise<Result>,\n options?: D1SessionOptions,\n ): Promise<Result> => {\n const sessionConnection = await connection.d1Session(options);\n\n try {\n return await handle(sessionConnection);\n } finally {\n await sessionConnection.close();\n }\n };\n\n return connection;\n};\n","import type { D1ConnectionOptions } from '..';\nimport {\n createSingletonConnectionPool,\n JSONSerializer,\n type ConnectionPool,\n type JSONSerializationOptions,\n} from '../../../../core';\nimport {\n d1Connection,\n D1DriverType,\n type D1Connection,\n} from '../connections/d1Connection';\n\nexport type D1PoolOptions = Omit<D1ConnectionOptions, 'serializer'> &\n JSONSerializationOptions;\n\nexport type D1ConnectionPool = ConnectionPool<D1Connection>;\n\nexport const d1Pool = (options: D1PoolOptions): D1ConnectionPool =>\n createSingletonConnectionPool<D1Connection>({\n driverType: D1DriverType,\n getConnection: () =>\n d1Connection({\n ...options,\n serializer: JSONSerializer.from(options),\n }),\n });\n","export * from './connections';\nimport type { D1Database } from '@cloudflare/workers-types';\nimport type { D1ConnectionPool } from '../../../cloudflare';\nimport {\n dumboDatabaseDriverRegistry,\n type DumboConnectionOptions,\n type DumboDatabaseDriver,\n} from '../../../core';\nimport {\n DefaultSQLiteMigratorOptions,\n sqliteFormatter,\n sqliteMetadata,\n} from '../core';\nimport { D1DriverType, type D1Connection } from './connections';\nimport { d1Pool, type D1PoolOptions } from './pool';\n\nexport type D1DumboOptions = D1PoolOptions;\n\nexport const d1DumboDriver: DumboDatabaseDriver<\n D1Connection,\n D1DumboOptions,\n D1ConnectionPool\n> = {\n driverType: D1DriverType,\n createPool: (options) => d1Pool(options),\n sqlFormatter: sqliteFormatter,\n defaultMigratorOptions: DefaultSQLiteMigratorOptions,\n canHandle: (options) => {\n return options.driverType === D1DriverType && 'database' in options;\n },\n databaseMetadata: sqliteMetadata,\n};\n\nexport const useD1DumboDriver = () => {\n dumboDatabaseDriverRegistry.register(D1DriverType, d1DumboDriver);\n};\n\nexport type D1DumboConnectionOptions = DumboConnectionOptions<\n typeof d1DumboDriver\n> & { database: D1Database };\n\nuseD1DumboDriver();\n\nexport * from './connections';\nexport * from './errors';\nexport * from './execute';\nexport * from './formatter';\nexport * from './pool';\nexport * from './transactions';\n"],"mappings":"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","names":["options","embeddedCode","client","connection","options"]}
1
+ {"version":3,"sources":["../src/storage/sqlite/d1/connections/d1Client.ts","../src/storage/sqlite/d1/errors/errorMapper.ts","../src/storage/sqlite/d1/execute/d1SqlExecutor.ts","../src/storage/sqlite/d1/transactions/d1Transaction.ts","../src/storage/sqlite/d1/connections/d1Connection.ts","../src/storage/sqlite/d1/pool/d1ConnectionPool.ts","../src/storage/sqlite/d1/index.ts"],"sourcesContent":["import type {\n D1Database,\n D1DatabaseSession,\n D1SessionBookmark,\n D1SessionConstraint,\n} from '@cloudflare/workers-types';\nimport {\n BatchCommandNoChangesError,\n type BatchSQLCommandOptions,\n type JSONSerializer,\n type QueryResult,\n type QueryResultRow,\n type SQL,\n type SQLCommandOptions,\n type SQLQueryOptions,\n} from '../../../../core';\nimport { sqliteFormatter, type SQLiteClient } from '../../core';\n\nexport type D1DatabaseOrSession = D1Database | D1DatabaseSession;\n\nexport type D1ClientOptions = {\n database: D1Database;\n session?: D1DatabaseSession | undefined;\n serializer: JSONSerializer;\n};\n\nexport type D1SessionOptions = {\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n constraintOrBookmark?: D1SessionBookmark | D1SessionConstraint;\n};\n\nexport type D1Client = SQLiteClient & {\n database: D1Database;\n session?: D1DatabaseSession | undefined;\n\n withSession: (constraintOrBookmark?: D1SessionOptions) => Promise<D1Client>;\n};\n\nexport const d1Client = (options: D1ClientOptions): D1Client => {\n const { database, session, serializer } = options;\n\n const execute = session ?? database;\n\n return {\n database,\n session: session,\n connect: () => Promise.resolve(),\n close: () => Promise.resolve(),\n withSession: async (constraintOrBookmark?: D1SessionOptions) => {\n const newSession = constraintOrBookmark\n ? database.withSession(constraintOrBookmark as string)\n : database.withSession();\n\n return Promise.resolve(\n d1Client({\n database,\n session: newSession,\n serializer,\n }),\n );\n },\n\n query: async <Result extends QueryResultRow = QueryResultRow>(\n sql: SQL,\n _options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>> => {\n const { query, params } = sqliteFormatter.format(sql, { serializer });\n const stmt = execute.prepare(query);\n const bound = params?.length ? stmt.bind(...params) : stmt;\n const { results } = await bound.all<Result>();\n return { rowCount: results?.length ?? 0, rows: results ?? [] };\n },\n\n batchQuery: async <Result extends QueryResultRow = QueryResultRow>(\n sqls: SQL[],\n _options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>[]> => {\n const statements = sqls.map((sql) => {\n const { query, params } = sqliteFormatter.format(sql, { serializer });\n const stmt = execute.prepare(query);\n return params?.length ? stmt.bind(...params) : stmt;\n });\n const results = await execute.batch<Result>(statements);\n return results.map((result) => ({\n rowCount: result.results?.length ?? 0,\n rows: result.results ?? [],\n }));\n },\n\n command: async <Result extends QueryResultRow = QueryResultRow>(\n sql: SQL,\n _options?: SQLCommandOptions,\n ): Promise<QueryResult<Result>> => {\n const { query, params } = sqliteFormatter.format(sql, { serializer });\n const stmt = execute.prepare(query);\n const bound = params?.length ? stmt.bind(...params) : stmt;\n const result = await bound.run<Result>();\n return {\n rowCount: result.meta?.changes ?? 0,\n rows: result.results ?? [],\n };\n },\n\n batchCommand: async <Result extends QueryResultRow = QueryResultRow>(\n sqls: SQL[],\n options?: BatchSQLCommandOptions,\n ): Promise<QueryResult<Result>[]> => {\n const statements = sqls.map((sql) => {\n const { query, params } = sqliteFormatter.format(sql, { serializer });\n const stmt = execute.prepare(query);\n return params?.length ? stmt.bind(...params) : stmt;\n });\n const batchResults = await execute.batch<Result>(statements);\n\n return batchResults.map((result, i) => {\n const qr: QueryResult<Result> = {\n rowCount: result.meta?.changes ?? 0,\n rows: result.results ?? [],\n };\n\n if (options?.assertChanges && (qr.rowCount ?? 0) === 0) {\n throw new BatchCommandNoChangesError(i);\n }\n\n return qr;\n });\n },\n };\n};\n","import {\n CheckViolationError,\n ConnectionError,\n DataError,\n DeadlockError,\n DumboError,\n ForeignKeyViolationError,\n InsufficientResourcesError,\n IntegrityConstraintViolationError,\n InvalidOperationError,\n LockNotAvailableError,\n NotNullViolationError,\n SerializationError,\n SystemError,\n UniqueConstraintError,\n} from '../../../../core/errors';\n\nconst getErrorMessage = (error: unknown): string | undefined =>\n error instanceof Error ? error.message : undefined;\n\nconst asError = (error: unknown): Error | undefined =>\n error instanceof Error ? error : undefined;\n\n/**\n * Determines the constraint subtype from the error message.\n *\n * D1 embeds the SQLite constraint detail in the message string, e.g.:\n * \"D1_ERROR: UNIQUE constraint failed: users.email\"\n * \"D1_ERROR: SQLITE_CONSTRAINT: FOREIGN KEY constraint failed\"\n */\nconst mapConstraintError = (\n message: string | undefined,\n innerError: Error | undefined,\n): DumboError => {\n const upperMessage = message?.toUpperCase() ?? '';\n\n if (upperMessage.includes('UNIQUE') || upperMessage.includes('PRIMARY KEY'))\n return new UniqueConstraintError(message, innerError);\n\n if (upperMessage.includes('FOREIGN KEY'))\n return new ForeignKeyViolationError(message, innerError);\n\n if (upperMessage.includes('NOT NULL'))\n return new NotNullViolationError(message, innerError);\n\n if (upperMessage.includes('CHECK'))\n return new CheckViolationError(message, innerError);\n\n return new IntegrityConstraintViolationError(message, innerError);\n};\n\nconst isConstraintMessage = (upper: string): boolean =>\n upper.includes('CONSTRAINT') ||\n upper.includes('UNIQUE') ||\n upper.includes('PRIMARY KEY') ||\n upper.includes('FOREIGN KEY') ||\n upper.includes('NOT NULL');\n\n/** Extracts the first `SQLITE_<CODE>` token from a message string. */\nconst SQLITE_CODE_RE = /SQLITE_([A-Z]+)/;\n\nconst extractEmbeddedSqliteCode = (message: string): string | undefined => {\n const match = SQLITE_CODE_RE.exec(message);\n return match ? `SQLITE_${match[1]}` : undefined;\n};\n\n/**\n * Maps a `SQLITE_*` code found in the D1 message to a DumboError.\n *\n * D1 sometimes forwards raw SQLite result codes from the C++ layer, e.g.:\n * \"D1_ERROR: SQLITE_BUSY: database is locked\"\n * \"SQLITE_READONLY: attempt to write a readonly database\"\n *\n * See https://www.sqlite.org/rescode.html for the full code list.\n */\nconst mapEmbeddedSqliteCode = (\n code: string,\n message: string | undefined,\n innerError: Error | undefined,\n): DumboError | undefined => {\n switch (code) {\n case 'SQLITE_CONSTRAINT':\n return mapConstraintError(message, innerError);\n case 'SQLITE_BUSY':\n return new LockNotAvailableError(message, innerError);\n case 'SQLITE_LOCKED':\n return new DeadlockError(message, innerError);\n case 'SQLITE_PROTOCOL':\n return new LockNotAvailableError(message, innerError);\n case 'SQLITE_CANTOPEN':\n return new ConnectionError(message, innerError);\n case 'SQLITE_NOTADB':\n return new ConnectionError(message, innerError);\n case 'SQLITE_NOMEM':\n return new InsufficientResourcesError(message, innerError);\n case 'SQLITE_FULL':\n return new InsufficientResourcesError(message, innerError);\n case 'SQLITE_IOERR':\n return new SystemError(message, innerError);\n case 'SQLITE_CORRUPT':\n return new SystemError(message, innerError);\n case 'SQLITE_INTERNAL':\n return new SystemError(message, innerError);\n case 'SQLITE_NOLFS':\n return new SystemError(message, innerError);\n case 'SQLITE_TOOBIG':\n return new DataError(message, innerError);\n case 'SQLITE_MISMATCH':\n return new DataError(message, innerError);\n case 'SQLITE_RANGE':\n return new DataError(message, innerError);\n case 'SQLITE_ERROR':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_READONLY':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_MISUSE':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_AUTH':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_PERM':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_SCHEMA':\n return new InvalidOperationError(message, innerError);\n case 'SQLITE_ABORT':\n return new SerializationError(message, innerError);\n case 'SQLITE_INTERRUPT':\n return new SerializationError(message, innerError);\n }\n return undefined;\n};\n\n/**\n * Maps a Cloudflare D1 error to a typed DumboError.\n *\n * Unlike node-sqlite3, D1 throws **plain `Error` objects** with no `code`\n * property. All error information is embedded in `error.message`, using\n * well-known prefixes from the `workerd` runtime:\n *\n * | Prefix | Meaning |\n * |-----------------------|----------------------------------------------|\n * | `D1_ERROR:` | General D1 / SQLite error |\n * | `D1_EXEC_ERROR:` | Error during `.exec()` batch |\n * | `D1_TYPE_ERROR:` | Type mismatch (e.g. `undefined` vs `null`) |\n * | `D1_COLUMN_NOTFOUND` | Referenced column does not exist |\n * | `D1_DUMP_ERROR:` | Error during database dump |\n * | `D1_SESSION_ERROR:` | Session bookmark / constraint error |\n *\n * D1 also surfaces platform-level messages (no prefix) for transient errors:\n * - \"Network connection lost.\"\n * - \"D1 DB is overloaded. Too many requests queued.\"\n * - \"Memory limit would be exceeded by this operation.\"\n * - \"Cannot resolve D1 DB due to transient issue on remote node.\"\n * - \"D1 DB reset because its code was updated.\"\n *\n * Reference:\n * - https://developers.cloudflare.com/d1/platform/client-api/\n * - https://github.com/cloudflare/workerd (src/cloudflare/internal/d1-api.ts)\n *\n * Falls back to a generic DumboError (500) if the error is not a recognized D1 error.\n */\nexport const mapD1Error = (error: unknown): DumboError => {\n if (DumboError.isInstanceOf<DumboError>(error)) return error;\n\n const message = getErrorMessage(error);\n if (!message)\n return new DumboError({\n errorCode: 500,\n message: error instanceof Error ? error.message : String(error),\n innerError: asError(error),\n });\n\n const innerError = asError(error);\n const upper = message.toUpperCase();\n\n // D1-specific prefixes are checked first because some (e.g. D1_SESSION_ERROR)\n // contain constraint keywords in their message but have different semantics.\n if (upper.startsWith('D1_TYPE_ERROR'))\n return new DataError(message, innerError);\n\n if (upper.startsWith('D1_COLUMN_NOTFOUND'))\n return new DataError(message, innerError);\n\n if (upper.startsWith('D1_DUMP_ERROR'))\n return new SystemError(message, innerError);\n\n if (upper.startsWith('D1_SESSION_ERROR'))\n return new ConnectionError(message, innerError);\n\n if (isConstraintMessage(upper)) {\n return mapConstraintError(message, innerError);\n }\n\n if (\n upper.includes('NETWORK CONNECTION LOST') ||\n upper.includes('CANNOT RESOLVE D1 DB DUE TO TRANSIENT ISSUE') ||\n upper.includes('D1 DB RESET BECAUSE')\n )\n return new ConnectionError(message, innerError);\n\n if (\n upper.includes('D1 DB IS OVERLOADED') ||\n upper.includes('TOO MANY REQUESTS') ||\n upper.includes('MEMORY LIMIT WOULD BE EXCEEDED')\n )\n return new InsufficientResourcesError(message, innerError);\n\n if (upper.startsWith('D1_ERROR') || upper.startsWith('D1_EXEC_ERROR')) {\n const embeddedCode = extractEmbeddedSqliteCode(message);\n if (embeddedCode) {\n const mapped = mapEmbeddedSqliteCode(embeddedCode, message, innerError);\n if (mapped) return mapped;\n }\n\n return new InvalidOperationError(message, innerError);\n }\n\n const embeddedCode = extractEmbeddedSqliteCode(message);\n if (embeddedCode) {\n const mapped = mapEmbeddedSqliteCode(embeddedCode, message, innerError);\n if (mapped) return mapped;\n }\n\n return new DumboError({\n errorCode: 500,\n message,\n innerError,\n });\n};\n","import type {\n BatchSQLCommandOptions,\n DbSQLExecutor,\n QueryResult,\n QueryResultRow,\n SQL,\n SQLCommandOptions,\n SQLQueryOptions,\n} from '../../../../core';\nimport { tracer } from '../../../../core';\nimport { sqliteFormatter } from '../../core';\nimport type { D1Client, D1DriverType } from '../connections';\nimport { mapD1Error } from '../errors/errorMapper';\n\nexport const d1SQLExecutor = (): DbSQLExecutor<D1DriverType, D1Client> => ({\n driverType: 'SQLite:d1',\n formatter: sqliteFormatter,\n\n query: async <Result extends QueryResultRow>(\n client: D1Client,\n sql: SQL,\n options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>> => {\n try {\n return await client.query<Result>(sql, options);\n } catch (error) {\n tracer.error('db:sql:query:execute:error', { error });\n throw mapD1Error(error);\n }\n },\n\n batchQuery: async <Result extends QueryResultRow>(\n client: D1Client,\n sqls: SQL[],\n options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>[]> => {\n try {\n return await client.batchQuery<Result>(sqls, options);\n } catch (error) {\n tracer.error('db:sql:batch_query:execute:error', { error });\n throw mapD1Error(error);\n }\n },\n\n command: async <Result extends QueryResultRow>(\n client: D1Client,\n sql: SQL,\n options?: SQLCommandOptions,\n ): Promise<QueryResult<Result>> => {\n try {\n return await client.command<Result>(sql, options);\n } catch (error) {\n tracer.error('db:sql:command:execute:error', { error });\n throw mapD1Error(error);\n }\n },\n\n batchCommand: async <Result extends QueryResultRow>(\n client: D1Client,\n sqls: SQL[],\n options?: BatchSQLCommandOptions,\n ): Promise<QueryResult<Result>[]> => {\n try {\n return await client.batchCommand<Result>(sqls, options);\n } catch (error) {\n tracer.error('db:sql:batch_command:execute:error', { error });\n throw mapD1Error(error);\n }\n },\n});\n","import type { JSONSerializer } from '../../../../core';\nimport {\n sqlExecutor,\n type DatabaseTransaction,\n type DatabaseTransactionOptions,\n} from '../../../../core';\nimport { transactionNestingCounter } from '../../core';\nimport {\n D1DriverType,\n type D1Client,\n type D1Connection,\n type D1SessionOptions,\n} from '../connections';\nimport { d1SQLExecutor } from '../execute';\n\nexport type D1Transaction = DatabaseTransaction<\n D1Connection,\n D1TransactionOptions\n>;\n\nexport type D1TransactionOptions = DatabaseTransactionOptions & {\n d1Session?: D1SessionOptions;\n mode?: D1TransactionMode;\n};\n\nexport type D1TransactionMode = 'session_based' | 'strict';\n\nexport class D1TransactionNotSupportedError extends Error {\n constructor() {\n super(\n 'D1 does not support SQL transactions (BEGIN/COMMIT/ROLLBACK/SAVEPOINT). ' +\n 'Use { mode: \"session_based\" } to opt-in to session+batch semantics, or use ' +\n 'connection.execute.batchCommand() for atomic multi-statement execution.',\n );\n this.name = 'D1TransactionNotSupportedError';\n }\n}\n\nexport const d1Transaction =\n (\n connection: () => D1Connection,\n serializer: JSONSerializer,\n defaultOptions?: D1TransactionOptions,\n ) =>\n (\n getClient: Promise<D1Client>,\n options?: {\n close: (client: D1Client, error?: unknown) => Promise<void>;\n } & D1TransactionOptions,\n ): D1Transaction => {\n const transactionCounter = transactionNestingCounter();\n\n const allowNestedTransactions =\n options?.allowNestedTransactions ??\n defaultOptions?.allowNestedTransactions;\n\n const mode = options?.mode ?? defaultOptions?.mode;\n\n let client: D1Client | null = null;\n let sessionClient: D1Client | null = null;\n\n const getDatabaseClient = async () => {\n if (client) return Promise.resolve(client);\n\n client = await getClient;\n return client;\n };\n\n return {\n connection: connection(),\n driverType: D1DriverType,\n begin: async function () {\n if (mode !== 'session_based') {\n throw new D1TransactionNotSupportedError();\n }\n\n const client = await getDatabaseClient();\n\n if (allowNestedTransactions) {\n if (transactionCounter.level >= 1) {\n transactionCounter.increment();\n return;\n }\n\n transactionCounter.increment();\n }\n\n sessionClient = await client.withSession(options?.d1Session);\n },\n commit: async function () {\n const client = await getDatabaseClient();\n\n try {\n if (allowNestedTransactions) {\n if (transactionCounter.level > 1) {\n transactionCounter.decrement();\n\n return;\n }\n\n transactionCounter.reset();\n }\n sessionClient = null;\n } finally {\n if (options?.close) await options?.close(client);\n }\n },\n rollback: async function (error?: unknown) {\n const client = await getDatabaseClient();\n try {\n if (allowNestedTransactions) {\n if (transactionCounter.level > 1) {\n transactionCounter.decrement();\n return;\n }\n }\n\n sessionClient = null;\n } finally {\n if (options?.close) await options?.close(client, error);\n }\n },\n execute: sqlExecutor(d1SQLExecutor(), {\n connect: () => {\n if (!sessionClient) {\n throw new Error(\n 'Transaction has not been started. Call begin() first.',\n );\n }\n return Promise.resolve(sessionClient);\n },\n }),\n _transactionOptions: options ?? {},\n };\n };\n","import type { Connection } from '../../../../core';\nimport {\n sqliteAmbientClientConnection,\n type SQLiteConnectionOptions,\n type SQLiteDriverType,\n} from '../../core';\nimport { mapD1Error } from '../errors/errorMapper';\nimport { d1Transaction, type D1Transaction } from '../transactions';\nimport {\n d1Client,\n type D1Client,\n type D1ClientOptions,\n type D1SessionOptions,\n} from './d1Client';\n\nexport type D1DriverType = SQLiteDriverType<'d1'>;\nexport const D1DriverType: D1DriverType = 'SQLite:d1';\n\nexport type D1Connection = Connection<\n D1Connection,\n D1DriverType,\n D1Client,\n D1Transaction\n> & {\n d1Session: (constraintOrBookmark?: D1SessionOptions) => Promise<D1Connection>;\n withD1Session: <Result = never>(\n handle: (connection: D1Connection) => Promise<Result>,\n options?: D1SessionOptions,\n ) => Promise<Result>;\n};\n\nexport type D1ConnectionOptions = SQLiteConnectionOptions<D1Connection> & {\n client?: D1Client;\n connection?: D1Connection;\n transaction?: D1Transaction;\n} & D1ClientOptions;\n\nexport const d1Connection = (options: D1ConnectionOptions) => {\n const connection = options.connection ??\n options.transaction?.connection ?? {\n ...sqliteAmbientClientConnection<D1Connection>({\n driverType: D1DriverType,\n client: options.client ?? d1Client(options),\n initTransaction: (connection) =>\n d1Transaction(\n connection,\n options.serializer,\n options.transactionOptions,\n ),\n serializer: options.serializer,\n errorMapper: mapD1Error,\n }),\n };\n\n connection.d1Session = async (\n constraintOrBookmark?: D1SessionOptions,\n ): Promise<D1Connection> => {\n const client = await connection.open();\n\n const sessionClient = await client.withSession(constraintOrBookmark);\n\n return d1Connection({\n ...options,\n client: sessionClient,\n });\n };\n\n connection.withD1Session = async <Result = never>(\n handle: (connection: D1Connection) => Promise<Result>,\n options?: D1SessionOptions,\n ): Promise<Result> => {\n const sessionConnection = await connection.d1Session(options);\n\n try {\n return await handle(sessionConnection);\n } finally {\n await sessionConnection.close();\n }\n };\n\n return connection;\n};\n","import type { D1ConnectionOptions } from '..';\nimport {\n createSingletonConnectionPool,\n JSONSerializer,\n type ConnectionPool,\n type JSONSerializationOptions,\n} from '../../../../core';\nimport {\n d1Connection,\n D1DriverType,\n type D1Connection,\n} from '../connections/d1Connection';\n\nexport type D1PoolOptions = Omit<D1ConnectionOptions, 'serializer'> &\n JSONSerializationOptions;\n\nexport type D1ConnectionPool = ConnectionPool<D1Connection>;\n\nexport const d1Pool = (options: D1PoolOptions): D1ConnectionPool =>\n createSingletonConnectionPool<D1Connection>({\n driverType: D1DriverType,\n getConnection: () =>\n d1Connection({\n ...options,\n serializer: JSONSerializer.from(options),\n }),\n });\n","export * from './connections';\nimport type { D1Database } from '@cloudflare/workers-types';\nimport type { D1ConnectionPool } from '../../../cloudflare';\nimport {\n dumboDatabaseDriverRegistry,\n type DumboConnectionOptions,\n type DumboDatabaseDriver,\n} from '../../../core';\nimport {\n DefaultSQLiteMigratorOptions,\n sqliteFormatter,\n sqliteMetadata,\n} from '../core';\nimport { D1DriverType, type D1Connection } from './connections';\nimport { d1Pool, type D1PoolOptions } from './pool';\n\nexport type D1DumboOptions = D1PoolOptions;\n\nexport const d1DumboDriver: DumboDatabaseDriver<\n D1Connection,\n D1DumboOptions,\n D1ConnectionPool\n> = {\n driverType: D1DriverType,\n createPool: (options) => d1Pool(options),\n sqlFormatter: sqliteFormatter,\n defaultMigratorOptions: DefaultSQLiteMigratorOptions,\n canHandle: (options) => {\n return options.driverType === D1DriverType && 'database' in options;\n },\n databaseMetadata: sqliteMetadata,\n};\n\nexport const useD1DumboDriver = () => {\n dumboDatabaseDriverRegistry.register(D1DriverType, d1DumboDriver);\n};\n\nexport type D1DumboConnectionOptions = DumboConnectionOptions<\n typeof d1DumboDriver\n> & { database: D1Database };\n\nuseD1DumboDriver();\n\nexport * from './connections';\nexport * from './errors';\nexport * from './execute';\nexport * from './formatter';\nexport * from './pool';\nexport * from './transactions';\n"],"mappings":"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","names":["options","embeddedCode","client","connection","options"]}
@@ -1,4 +1,4 @@
1
- import { S as SQLColumnTypeTokens, a as SQLProcessor, D as DefaultSQLColumnToken, b as SQLProcessorContext } from './connectionString-oeg1LD5V.cjs';
1
+ import { S as SQLColumnTypeTokens, a as SQLProcessor, D as DefaultSQLColumnToken, b as SQLProcessorContext } from './connectionString-J4yRT71A.cjs';
2
2
 
3
3
  type DefaultSQLColumnProcessors = {
4
4
  [key in keyof SQLColumnTypeTokens]: SQLProcessor<SQLColumnTypeTokens[key]>;
@@ -1,4 +1,4 @@
1
- import { S as SQLColumnTypeTokens, a as SQLProcessor, D as DefaultSQLColumnToken, b as SQLProcessorContext } from './connectionString-oeg1LD5V.js';
1
+ import { S as SQLColumnTypeTokens, a as SQLProcessor, D as DefaultSQLColumnToken, b as SQLProcessorContext } from './connectionString-J4yRT71A.js';
2
2
 
3
3
  type DefaultSQLColumnProcessors = {
4
4
  [key in keyof SQLColumnTypeTokens]: SQLProcessor<SQLColumnTypeTokens[key]>;
@@ -1338,43 +1338,46 @@ declare function getDatabaseDriverName<T extends DatabaseType>(databaseDriverTyp
1338
1338
  */
1339
1339
  declare function getDatabaseType<T extends DatabaseType>(databaseDriverType: DatabaseDriverType<T>): DatabaseType;
1340
1340
 
1341
- interface DatabaseTransaction<ConnectionType extends AnyConnection = AnyConnection> extends WithSQLExecutor {
1341
+ interface DatabaseTransaction<ConnectionType extends AnyConnection = AnyConnection, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions> extends WithSQLExecutor {
1342
1342
  driverType: ConnectionType['driverType'];
1343
1343
  connection: ConnectionType;
1344
1344
  begin: () => Promise<void>;
1345
1345
  commit: () => Promise<void>;
1346
1346
  rollback: (error?: unknown) => Promise<void>;
1347
+ _transactionOptions: TransactionOptionsType;
1347
1348
  }
1348
- type AnyDatabaseTransaction = DatabaseTransaction<any>;
1349
+ type AnyDatabaseTransaction = DatabaseTransaction<any, any>;
1349
1350
  type DatabaseTransactionOptions = {
1350
1351
  allowNestedTransactions?: boolean;
1351
1352
  readonly?: boolean;
1352
1353
  };
1353
- interface WithDatabaseTransactionFactory<ConnectionType extends AnyConnection = AnyConnection, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions> {
1354
- transaction: (options?: TransactionOptionsType) => TransactionType;
1355
- withTransaction: <Result = never>(handle: (transaction: TransactionType) => Promise<TransactionResult<Result> | Result>, options?: TransactionOptionsType) => Promise<Result>;
1354
+ type InferTransactionOptionsFromTransaction<C extends AnyDatabaseTransaction> = C extends DatabaseTransaction<any, infer TO> ? TO : never;
1355
+ interface WithDatabaseTransactionFactory<ConnectionType extends AnyConnection = AnyConnection> {
1356
+ transaction: (options?: InferTransactionOptionsFromConnection<ConnectionType>) => InferTransactionFromConnection<ConnectionType>;
1357
+ withTransaction: <Result = never>(handle: (transaction: InferTransactionFromConnection<ConnectionType>) => Promise<TransactionResult<Result> | Result>, options?: InferTransactionOptionsFromConnection<ConnectionType>) => Promise<Result>;
1356
1358
  }
1357
1359
  type TransactionResult<Result> = {
1358
1360
  success: boolean;
1359
1361
  result: Result;
1360
1362
  };
1361
1363
  declare const executeInTransaction: <DatabaseTransactionType extends AnyDatabaseTransaction = AnyDatabaseTransaction, Result = void>(transaction: DatabaseTransactionType, handle: (transaction: DatabaseTransactionType) => Promise<TransactionResult<Result> | Result>) => Promise<Result>;
1362
- declare const transactionFactoryWithDbClient: <ConnectionType extends AnyConnection = AnyConnection, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions>(connect: () => Promise<InferDbClientFromConnection<ConnectionType>>, initTransaction: (client: Promise<InferDbClientFromConnection<ConnectionType>>, options?: TransactionOptionsType & {
1364
+ declare const transactionFactoryWithDbClient: <ConnectionType extends AnyConnection = AnyConnection>(connect: () => Promise<InferDbClientFromConnection<ConnectionType>>, initTransaction: (client: Promise<InferDbClientFromConnection<ConnectionType>>, options?: InferTransactionOptionsFromConnection<ConnectionType> & {
1363
1365
  close: (client: InferDbClientFromConnection<ConnectionType>, error?: unknown) => Promise<void>;
1364
- }) => TransactionType) => WithDatabaseTransactionFactory<ConnectionType, TransactionType, TransactionOptionsType>;
1365
- declare const transactionFactoryWithNewConnection: <ConnectionType extends AnyConnection = AnyConnection, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions>(connect: () => ConnectionType) => WithDatabaseTransactionFactory<ConnectionType, TransactionType, TransactionOptionsType>;
1366
+ }) => InferTransactionFromConnection<ConnectionType>) => WithDatabaseTransactionFactory<ConnectionType>;
1367
+ declare const transactionFactoryWithNewConnection: <ConnectionType extends AnyConnection = AnyConnection>(connect: () => ConnectionType) => WithDatabaseTransactionFactory<ConnectionType>;
1366
1368
  declare const transactionFactoryWithAmbientConnection: <ConnectionType extends AnyConnection = AnyConnection>(connect: () => ConnectionType) => WithDatabaseTransactionFactory<ConnectionType>;
1367
1369
 
1368
- interface Connection<Self extends AnyConnection = AnyConnection, DriverType extends DatabaseDriverType = DatabaseDriverType, DbClient = unknown, TransactionType extends DatabaseTransaction<Self> = DatabaseTransaction<Self>, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions> extends WithSQLExecutor, WithDatabaseTransactionFactory<Self, TransactionType, TransactionOptionsType> {
1370
+ interface Connection<Self extends AnyConnection = AnyConnection, DriverType extends DatabaseDriverType = DatabaseDriverType, DbClient = unknown, TransactionType extends DatabaseTransaction<Self, any> = DatabaseTransaction<Self, any>> extends WithSQLExecutor, WithDatabaseTransactionFactory<Self> {
1369
1371
  driverType: DriverType;
1370
1372
  open: () => Promise<DbClient>;
1371
1373
  close: () => Promise<void>;
1374
+ _transactionType: TransactionType;
1372
1375
  }
1373
- type AnyConnection = Connection<AnyConnection, DatabaseDriverType, unknown, AnyDatabaseTransaction, DatabaseTransactionOptions>;
1374
- type InferDriverTypeFromConnection<C extends AnyConnection> = C extends Connection<any, infer DT, any, any, any> ? DT : never;
1375
- type InferDbClientFromConnection<C extends AnyConnection> = C extends Connection<any, any, infer DC, any, any> ? DC : never;
1376
- type InferTransactionFromConnection<C extends AnyConnection> = C extends Connection<any, any, any, infer DT, any> ? DT : never;
1377
- type InferTransactionOptionsFromConnection<C extends AnyConnection> = C extends Connection<any, any, any, any, infer TO> ? TO : never;
1376
+ type AnyConnection = Connection<AnyConnection, DatabaseDriverType, unknown, AnyDatabaseTransaction>;
1377
+ type InferDriverTypeFromConnection<C extends AnyConnection> = C extends Connection<any, infer DT, any, any> ? DT : never;
1378
+ type InferDbClientFromConnection<C extends AnyConnection> = C extends Connection<any, any, infer DC, any> ? DC : never;
1379
+ type InferTransactionFromConnection<C extends AnyConnection> = C extends Connection<any, any, any, infer DT> ? DT : never;
1380
+ type InferTransactionOptionsFromConnection<C extends AnyConnection> = InferTransactionOptionsFromTransaction<InferTransactionFromConnection<C>>;
1378
1381
  type ConnectionOptions<ConnectionType extends AnyConnection = AnyConnection> = {
1379
1382
  driverType?: ConnectionType['driverType'];
1380
1383
  transactionOptions?: InferTransactionOptionsFromConnection<ConnectionType>;
@@ -1384,49 +1387,49 @@ type WithConnectionOptions = {
1384
1387
  readonly?: boolean;
1385
1388
  };
1386
1389
  interface WithConnectionFactory<ConnectionType extends AnyConnection = AnyConnection> {
1387
- connection: () => Promise<ConnectionType>;
1390
+ connection: (options?: WithConnectionOptions) => Promise<ConnectionType>;
1388
1391
  withConnection: <Result = unknown>(handle: (connection: ConnectionType) => Promise<Result>, options?: WithConnectionOptions) => Promise<Result>;
1389
1392
  }
1390
- type InitTransaction<ConnectionType extends AnyConnection = AnyConnection, TreansactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions> = (connection: () => ConnectionType) => (client: Promise<InferDbClientFromConnection<ConnectionType>>, options?: TransactionOptionsType & {
1393
+ type InitTransaction<ConnectionType extends AnyConnection = AnyConnection> = (connection: () => ConnectionType) => (client: Promise<InferDbClientFromConnection<ConnectionType>>, options?: InferTransactionOptionsFromConnection<ConnectionType> & {
1391
1394
  close: (client: InferDbClientFromConnection<ConnectionType>, error?: unknown) => Promise<void>;
1392
- }) => TreansactionType;
1393
- type CreateConnectionOptions<ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions> = {
1395
+ }) => InferTransactionFromConnection<ConnectionType>;
1396
+ type CreateConnectionOptions<ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor> = {
1394
1397
  driverType: InferDriverTypeFromConnection<ConnectionType>;
1395
1398
  connect: () => Promise<InferDbClientFromConnection<ConnectionType>>;
1396
1399
  close: (client: InferDbClientFromConnection<ConnectionType>) => Promise<void>;
1397
- initTransaction: InitTransaction<ConnectionType, TransactionType, TransactionOptionsType>;
1400
+ initTransaction: InitTransaction<ConnectionType>;
1398
1401
  serializer: JSONSerializer;
1399
1402
  executor: (options: DbSQLExecutorOptions) => Executor;
1400
1403
  };
1401
- type CreateAmbientConnectionOptions<ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions> = {
1404
+ type CreateAmbientConnectionOptions<ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor> = {
1402
1405
  driverType: InferDriverTypeFromConnection<ConnectionType>;
1403
1406
  client: InferDbClientFromConnection<ConnectionType>;
1404
1407
  serializer: JSONSerializer;
1405
- initTransaction: InitTransaction<ConnectionType, TransactionType, TransactionOptionsType>;
1408
+ initTransaction: InitTransaction<ConnectionType>;
1406
1409
  executor: (options: DbSQLExecutorOptions) => Executor;
1407
1410
  };
1408
- declare const createAmbientConnection: <ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>>(options: CreateAmbientConnectionOptions<ConnectionType, Executor, TransactionType>) => ConnectionType;
1409
- type CreateSingletonConnectionOptions<ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions> = {
1411
+ declare const createAmbientConnection: <ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor>(options: CreateAmbientConnectionOptions<ConnectionType, Executor>) => ConnectionType;
1412
+ type CreateSingletonConnectionOptions<ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor> = {
1410
1413
  driverType: InferDriverTypeFromConnection<ConnectionType>;
1411
1414
  connect: () => Promise<InferDbClientFromConnection<ConnectionType>>;
1412
1415
  close: (client: InferDbClientFromConnection<ConnectionType>) => Promise<void>;
1413
- initTransaction: InitTransaction<ConnectionType, TransactionType, TransactionOptionsType>;
1416
+ initTransaction: InitTransaction<ConnectionType>;
1414
1417
  serializer: JSONSerializer;
1415
1418
  executor: (options: DbSQLExecutorOptions) => Executor;
1416
1419
  };
1417
- declare const createSingletonConnection: <ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>>(options: CreateSingletonConnectionOptions<ConnectionType, Executor, TransactionType>) => ConnectionType;
1418
- type CreateTransientConnectionOptions<ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions> = {
1420
+ declare const createSingletonConnection: <ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor>(options: CreateSingletonConnectionOptions<ConnectionType, Executor>) => ConnectionType;
1421
+ type CreateTransientConnectionOptions<ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor> = {
1419
1422
  driverType: InferDriverTypeFromConnection<ConnectionType>;
1420
1423
  open: () => Promise<InferDbClientFromConnection<ConnectionType>>;
1421
1424
  close: () => Promise<void>;
1422
- initTransaction: InitTransaction<ConnectionType, TransactionType, TransactionOptionsType>;
1425
+ initTransaction: InitTransaction<ConnectionType>;
1423
1426
  serializer: JSONSerializer;
1424
1427
  executor: (options: DbSQLExecutorOptions) => Executor;
1425
1428
  };
1426
- declare const createTransientConnection: <ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>>(options: CreateTransientConnectionOptions<ConnectionType, Executor, TransactionType>) => ConnectionType;
1427
- declare const createConnection: <ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>>(options: CreateConnectionOptions<ConnectionType, Executor, TransactionType>) => ConnectionType;
1429
+ declare const createTransientConnection: <ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor>(options: CreateTransientConnectionOptions<ConnectionType, Executor>) => ConnectionType;
1430
+ declare const createConnection: <ConnectionType extends AnyConnection = AnyConnection, Executor extends DbSQLExecutor = DbSQLExecutor>(options: CreateConnectionOptions<ConnectionType, Executor>) => ConnectionType;
1428
1431
 
1429
- interface ConnectionPool<ConnectionType extends AnyConnection = AnyConnection, TransactionType extends DatabaseTransaction<ConnectionType> = DatabaseTransaction<ConnectionType>, TransactionOptionsType extends DatabaseTransactionOptions = DatabaseTransactionOptions> extends WithSQLExecutor, WithConnectionFactory<ConnectionType>, WithDatabaseTransactionFactory<ConnectionType, TransactionType, TransactionOptionsType> {
1432
+ interface ConnectionPool<ConnectionType extends AnyConnection = AnyConnection> extends WithSQLExecutor, WithConnectionFactory<ConnectionType>, WithDatabaseTransactionFactory<ConnectionType> {
1430
1433
  driverType: ConnectionType['driverType'];
1431
1434
  close: () => Promise<void>;
1432
1435
  }
@@ -1442,6 +1445,12 @@ type SingletonConnectionPoolOptions<ConnectionType extends AnyConnection> = {
1442
1445
  connectionOptions?: never;
1443
1446
  };
1444
1447
  declare const createSingletonConnectionPool: <ConnectionType extends AnyConnection>(options: SingletonConnectionPoolOptions<ConnectionType>) => ConnectionPool<ConnectionType>;
1448
+ type CreateBoundedConnectionPoolOptions<ConnectionType extends AnyConnection> = {
1449
+ driverType: ConnectionType['driverType'];
1450
+ getConnection: () => ConnectionType | Promise<ConnectionType>;
1451
+ maxConnections: number;
1452
+ };
1453
+ declare const createBoundedConnectionPool: <ConnectionType extends AnyConnection>(options: CreateBoundedConnectionPoolOptions<ConnectionType>) => ConnectionPool<ConnectionType>;
1445
1454
  type SingletonClientConnectionPoolOptions<ConnectionType extends AnyConnection> = {
1446
1455
  driverType: ConnectionType['driverType'];
1447
1456
  dbClient: InferDbClientFromConnection<ConnectionType>;
@@ -1483,4 +1492,4 @@ type DatabaseConnectionString<DatabaseTypeName extends DatabaseType = DatabaseTy
1483
1492
  };
1484
1493
  declare const parseConnectionString: (connectionString: DatabaseConnectionString | string) => DatabaseDriverTypeParts;
1485
1494
 
1486
- export { type CreateTransientConnectionOptions as $, type AnyConnection as A, type Dumbo as B, type Connection as C, type DefaultSQLColumnToken as D, type AnyTypeValidationError as E, type TypeValidationSuccess as F, type AnyDumboDatabaseDriver as G, type ExtractDumboDatabaseDriverOptions as H, type InferTransactionFromConnection as I, JSONSerializer as J, type ExtractDumboTypeFromDriver as K, type InferDriverTypeFromConnection as L, type MigratorOptions as M, type InferDbClientFromConnection as N, type ConnectionOptions as O, type ConnectionFactory as P, type QueryResultRow as Q, type WithConnectionFactory as R, SQLColumnTypeTokens as S, TableURN as T, type InitTransaction as U, type CreateConnectionOptions as V, type WithConnectionOptions as W, type CreateAmbientConnectionOptions as X, createAmbientConnection as Y, type CreateSingletonConnectionOptions as Z, createSingletonConnection as _, SQLProcessor as a, sqlExecutorInAmbientConnection as a$, createTransientConnection as a0, createConnection as a1, type ConnectionPoolFactory as a2, type AmbientConnectionPoolOptions as a3, createAmbientConnectionPool as a4, type SingletonConnectionPoolOptions as a5, createSingletonConnectionPool as a6, type SingletonClientConnectionPoolOptions as a7, createSingletonClientConnectionPool as a8, type CreateAlwaysNewConnectionPoolOptions as a9, LockNotAvailableError as aA, InsufficientResourcesError as aB, SystemError as aC, AdminShutdownError as aD, QueryCanceledError as aE, IntegrityConstraintViolationError as aF, UniqueConstraintError as aG, ForeignKeyViolationError as aH, NotNullViolationError as aI, CheckViolationError as aJ, ExclusionViolationError as aK, DataError as aL, InvalidOperationError as aM, mapColumnToJSON as aN, mapColumnToBigint as aO, mapColumnToDate as aP, mapSQLQueryResult as aQ, type SQLQueryResultColumnMapping as aR, type SQLQueryOptions as aS, type SQLCommandOptions as aT, type BatchSQLCommandOptions as aU, BatchCommandNoChangesError as aV, type DbSQLExecutorOptions as aW, type SQLExecutor as aX, type WithSQLExecutor as aY, sqlExecutor as aZ, sqlExecutorInNewConnection as a_, createAlwaysNewConnectionPool as aa, type CreateConnectionPoolOptions as ab, createConnectionPool as ac, type AnyDatabaseTransaction as ad, type WithDatabaseTransactionFactory as ae, type TransactionResult as af, executeInTransaction as ag, transactionFactoryWithDbClient as ah, transactionFactoryWithNewConnection as ai, transactionFactoryWithAmbientConnection as aj, type DatabaseType as ak, type DatabaseDriverName as al, type InferDriverDatabaseType as am, type DatabaseDriverTypeParts as an, toDatabaseDriverType as ao, fromDatabaseDriverType as ap, getDatabaseDriverName as aq, getDatabaseType as ar, canHandleDriverWithConnectionString as as, DumboDatabaseDriverRegistry as at, dumboDatabaseDriverRegistry as au, ConcurrencyError as av, TransientDatabaseError as aw, ConnectionError as ax, SerializationError as ay, DeadlockError as az, type SQLProcessorContext as b, type ValidateColumnTypeMatch as b$, executeInNewDbClient as b0, executeInNewConnection as b1, executeInAmbientConnection as b2, type DatabaseLockOptions as b3, type AcquireDatabaseLockMode as b4, type AcquireDatabaseLockOptions as b5, type ReleaseDatabaseLockOptions as b6, defaultDatabaseLockOptions as b7, type DatabaseLock as b8, NoDatabaseLock as b9, type NormalizeReference as bA, type NormalizeColumnPath as bB, type ColumnName as bC, type TableColumnName as bD, type SchemaColumnName as bE, type ColumnPath as bF, type ColumnReference as bG, type ColumnPathToReference as bH, type ParseReferencePath as bI, type LookupColumnType as bJ, type RelationshipType as bK, type RelationshipDefinition as bL, type AnyTableRelationshipDefinition as bM, type AnyTableRelationshipDefinitionWithColumns as bN, type TableRelationships as bO, relationship as bP, type AnyRelationshipDefinition as bQ, type RelationshipColumnsMismatchError as bR, type RelationshipReferencesLengthMismatchError as bS, type ColumnReferenceExistanceError as bT, type ColumnReferenceTypeMismatchError as bU, type NoError as bV, type ColumnReferenceError as bW, type RelationshipValidationError as bX, type ValidateRelationshipLength as bY, type ValidateRelationshipColumns as bZ, type ValidateColumnReference as b_, ColumnURNType as ba, type ColumnSchemaComponent as bb, type AnyColumnSchemaComponent as bc, type ColumnSchemaComponentOptions as bd, columnSchemaComponent as be, DatabaseURNType as bf, type DatabaseSchemas as bg, type DatabaseSchemaComponent as bh, type AnyDatabaseSchemaComponent as bi, databaseSchemaComponent as bj, DatabaseSchemaURNType as bk, type DatabaseSchemaTables as bl, type DatabaseSchemaSchemaComponent as bm, type AnyDatabaseSchemaSchemaComponent as bn, databaseSchemaSchemaComponent as bo, IndexURNType as bp, type IndexSchemaComponent as bq, indexSchemaComponent as br, type ExtractSchemaNames as bs, type ExtractTableNames as bt, type ExtractColumnNames as bu, type ExtractColumnTypeName as bv, type AllColumnTypes as bw, type AllColumnReferences as bx, type AllColumnTypesInSchema as by, type AllColumnReferencesInSchema as bz, type DumboDatabaseDriver as c, sqlMigration as c$, type ValidateColumnsMatch as c0, type ValidateReference as c1, type ValidateReferences as c2, type CollectReferencesErrors as c3, type SchemaTablesWithSingle as c4, type DatabaseSchemasWithSingle as c5, type ValidateRelationship as c6, type CollectRelationshipErrors as c7, type ValidateTableRelationships as c8, type ValidateTable as c9, type InferDatabaseSchemas as cA, type DatabaseCapabilities as cB, DumboDatabaseMetadataRegistry as cC, dumboDatabaseMetadataRegistry as cD, getDatabaseMetadata as cE, resolveDatabaseMetadata as cF, getDefaultDatabase as cG, getDefaultDatabaseAsync as cH, dumboSchema as cI, MIGRATIONS_LOCK_ID as cJ, registerDefaultMigratorOptions as cK, getDefaultMigratorOptionsFromRegistry as cL, type RunSQLMigrationsResult as cM, runSQLMigrations as cN, combineMigrations as cO, type ExtractAdditionalData as cP, type AnySchemaComponent as cQ, type AnySchemaComponentOfType as cR, type SchemaComponentOptions as cS, type SchemaComponentType as cT, type DumboSchemaComponentType as cU, schemaComponent as cV, isSchemaComponentOfType as cW, filterSchemaComponentsOfType as cX, mapSchemaComponentsOfType as cY, findSchemaComponentsOfType as cZ, type MigrationStyle as c_, type ValidateSchemaTables as ca, type ValidateDatabaseSchema as cb, type ValidateDatabaseSchemas as cc, type ValidateDatabaseSchemasWithMessages as cd, type Join as ce, type IndentErrors as cf, type FormatSingleError as cg, type FormatRelationshipBlock as ch, type FormatTableLevel as ci, type FormatSchemaLevel as cj, type FormatDatabaseValidationErrors as ck, type FormatValidationErrors as cl, TableURNType as cm, type TableColumns as cn, type TableSchemaComponent as co, type InferTableSchemaComponentTypes as cp, type InferTableSchemaComponentColumns as cq, type AnyTableSchemaComponent as cr, tableSchemaComponent as cs, type Writable as ct, type InferColumnType as cu, type TableColumnType as cv, type TableColumnNames as cw, type InferTableRow as cx, type TableRowType as cy, type InferSchemaTables as cz, SQLFormatter as d, ANSISQLParamPlaceholder as d$, type MigrationRecord as d0, type Serializer as d1, type SerializationCodec as d2, composeJSONReplacers as d3, composeJSONRevivers as d4, JSONCodec as d5, JSONReplacer as d6, JSONReplacers as d7, JSONReviver as d8, JSONRevivers as d9, type JavaScriptValueType as dA, type JavaScriptValueTypeName as dB, type JavaScriptValueTypeToNameMap as dC, ColumnTypeToken as dD, type AnyColumnTypeToken as dE, SerialToken as dF, BigSerialToken as dG, IntegerToken as dH, BigIntegerToken as dI, JSONBToken as dJ, TimestampToken as dK, TimestamptzToken as dL, VarcharToken as dM, type NotNullableSQLColumnTokenProps as dN, type NullableSQLColumnTokenProps as dO, SQLColumnToken as dP, AutoIncrementSQLColumnToken as dQ, SQLColumnTypeTokensFactory as dR, SQLToken as dS, type ExtractSQLTokenType as dT, SQLPlain as dU, type SQLArrayMode as dV, type SQLDefaultTokens as dW, type SQLDefaultTokensTypes as dX, SQLValueMapper as dY, type MapSQLParamValue as dZ, type MapSQLParamValueOptions as d_, jsonSerializer as da, type JSONCodecOptions as db, type JSONDeserializeOptions as dc, type JSONSerializeOptions as dd, type JSONSerializerOptions as de, type JSONReviverContext as df, type FormatContext as dg, type FormatSQLOptions as dh, type SQLFormatterOptions as di, registerFormatter as dj, getFormatter as dk, formatSQL as dl, describeSQL as dm, type ParametrizedSQL as dn, ParametrizedSQLBuilder as dp, defaultProcessorsRegistry as dq, type AnySQLProcessor as dr, type SQLProcessorOptions as ds, type SQLProcessorsReadonlyRegistry as dt, SQLProcessorsRegistry as du, SQL as dv, RawSQL as dw, isSQL as dx, type JSONValueType as dy, type JSONValueTypeName as dz, type DatabaseMetadata as e, ANSISQLIdentifierQuote as e0, mapANSISQLParamPlaceholder as e1, mapSQLIdentifier as e2, DefaultMapSQLParamValueOptions as e3, mapSQLParamValue as e4, type DatabaseConnectionString as e5, parseConnectionString as e6, type DumboConnectionOptions as f, type DatabaseTransactionOptions as g, type DatabaseTransaction as h, type ConnectionPool as i, type InferTransactionOptionsFromConnection as j, type JSONSerializationOptions as k, type DbSQLExecutor as l, DumboError as m, SQLArray as n, SQLIn as o, SQLIdentifier as p, SQLLiteral as q, type AnySQLToken as r, DatabaseURN as s, DatabaseSchemaURN as t, ColumnURN as u, IndexURN as v, type QueryResult as w, type SchemaComponent as x, type SQLMigration as y, type DatabaseDriverType as z };
1495
+ export { type CreateTransientConnectionOptions as $, type AnyConnection as A, type AnyTypeValidationError as B, type Connection as C, type DefaultSQLColumnToken as D, type TypeValidationSuccess as E, type AnyDumboDatabaseDriver as F, type ExtractDumboDatabaseDriverOptions as G, type ExtractDumboTypeFromDriver as H, IndexURN as I, JSONSerializer as J, type InferDriverTypeFromConnection as K, type InferDbClientFromConnection as L, type MigratorOptions as M, type InferTransactionFromConnection as N, type InferTransactionOptionsFromConnection as O, type ConnectionFactory as P, type QueryResultRow as Q, type WithConnectionFactory as R, SQLColumnTypeTokens as S, TableURN as T, type InitTransaction as U, type CreateConnectionOptions as V, type WithConnectionOptions as W, type CreateAmbientConnectionOptions as X, createAmbientConnection as Y, type CreateSingletonConnectionOptions as Z, createSingletonConnection as _, SQLProcessor as a, type WithSQLExecutor as a$, createTransientConnection as a0, createConnection as a1, type ConnectionPoolFactory as a2, type AmbientConnectionPoolOptions as a3, createAmbientConnectionPool as a4, type SingletonConnectionPoolOptions as a5, createSingletonConnectionPool as a6, type CreateBoundedConnectionPoolOptions as a7, createBoundedConnectionPool as a8, type SingletonClientConnectionPoolOptions as a9, ConnectionError as aA, SerializationError as aB, DeadlockError as aC, LockNotAvailableError as aD, InsufficientResourcesError as aE, SystemError as aF, AdminShutdownError as aG, QueryCanceledError as aH, IntegrityConstraintViolationError as aI, UniqueConstraintError as aJ, ForeignKeyViolationError as aK, NotNullViolationError as aL, CheckViolationError as aM, ExclusionViolationError as aN, DataError as aO, InvalidOperationError as aP, mapColumnToJSON as aQ, mapColumnToBigint as aR, mapColumnToDate as aS, mapSQLQueryResult as aT, type SQLQueryResultColumnMapping as aU, type SQLQueryOptions as aV, type SQLCommandOptions as aW, type BatchSQLCommandOptions as aX, BatchCommandNoChangesError as aY, type DbSQLExecutorOptions as aZ, type SQLExecutor as a_, createSingletonClientConnectionPool as aa, type CreateAlwaysNewConnectionPoolOptions as ab, createAlwaysNewConnectionPool as ac, type CreateConnectionPoolOptions as ad, createConnectionPool as ae, type AnyDatabaseTransaction as af, type InferTransactionOptionsFromTransaction as ag, type WithDatabaseTransactionFactory as ah, type TransactionResult as ai, executeInTransaction as aj, transactionFactoryWithDbClient as ak, transactionFactoryWithNewConnection as al, transactionFactoryWithAmbientConnection as am, type DatabaseType as an, type DatabaseDriverName as ao, type InferDriverDatabaseType as ap, type DatabaseDriverTypeParts as aq, toDatabaseDriverType as ar, fromDatabaseDriverType as as, getDatabaseDriverName as at, getDatabaseType as au, canHandleDriverWithConnectionString as av, DumboDatabaseDriverRegistry as aw, dumboDatabaseDriverRegistry as ax, ConcurrencyError as ay, TransientDatabaseError as az, type SQLProcessorContext as b, type ValidateRelationshipLength as b$, sqlExecutor as b0, sqlExecutorInNewConnection as b1, sqlExecutorInAmbientConnection as b2, executeInNewDbClient as b3, executeInNewConnection as b4, executeInAmbientConnection as b5, type DatabaseLockOptions as b6, type AcquireDatabaseLockMode as b7, type AcquireDatabaseLockOptions as b8, type ReleaseDatabaseLockOptions as b9, type AllColumnReferences as bA, type AllColumnTypesInSchema as bB, type AllColumnReferencesInSchema as bC, type NormalizeReference as bD, type NormalizeColumnPath as bE, type ColumnName as bF, type TableColumnName as bG, type SchemaColumnName as bH, type ColumnPath as bI, type ColumnReference as bJ, type ColumnPathToReference as bK, type ParseReferencePath as bL, type LookupColumnType as bM, type RelationshipType as bN, type RelationshipDefinition as bO, type AnyTableRelationshipDefinition as bP, type AnyTableRelationshipDefinitionWithColumns as bQ, type TableRelationships as bR, relationship as bS, type AnyRelationshipDefinition as bT, type RelationshipColumnsMismatchError as bU, type RelationshipReferencesLengthMismatchError as bV, type ColumnReferenceExistanceError as bW, type ColumnReferenceTypeMismatchError as bX, type NoError as bY, type ColumnReferenceError as bZ, type RelationshipValidationError as b_, defaultDatabaseLockOptions as ba, type DatabaseLock as bb, NoDatabaseLock as bc, ColumnURNType as bd, type ColumnSchemaComponent as be, type AnyColumnSchemaComponent as bf, type ColumnSchemaComponentOptions as bg, columnSchemaComponent as bh, DatabaseURNType as bi, type DatabaseSchemas as bj, type DatabaseSchemaComponent as bk, type AnyDatabaseSchemaComponent as bl, databaseSchemaComponent as bm, DatabaseSchemaURNType as bn, type DatabaseSchemaTables as bo, type DatabaseSchemaSchemaComponent as bp, type AnyDatabaseSchemaSchemaComponent as bq, databaseSchemaSchemaComponent as br, IndexURNType as bs, type IndexSchemaComponent as bt, indexSchemaComponent as bu, type ExtractSchemaNames as bv, type ExtractTableNames as bw, type ExtractColumnNames as bx, type ExtractColumnTypeName as by, type AllColumnTypes as bz, type DumboDatabaseDriver as c, mapSchemaComponentsOfType as c$, type ValidateRelationshipColumns as c0, type ValidateColumnReference as c1, type ValidateColumnTypeMatch as c2, type ValidateColumnsMatch as c3, type ValidateReference as c4, type ValidateReferences as c5, type CollectReferencesErrors as c6, type SchemaTablesWithSingle as c7, type DatabaseSchemasWithSingle as c8, type ValidateRelationship as c9, type InferTableRow as cA, type TableRowType as cB, type InferSchemaTables as cC, type InferDatabaseSchemas as cD, type DatabaseCapabilities as cE, DumboDatabaseMetadataRegistry as cF, dumboDatabaseMetadataRegistry as cG, getDatabaseMetadata as cH, resolveDatabaseMetadata as cI, getDefaultDatabase as cJ, getDefaultDatabaseAsync as cK, dumboSchema as cL, MIGRATIONS_LOCK_ID as cM, registerDefaultMigratorOptions as cN, getDefaultMigratorOptionsFromRegistry as cO, type RunSQLMigrationsResult as cP, runSQLMigrations as cQ, combineMigrations as cR, type ExtractAdditionalData as cS, type AnySchemaComponent as cT, type AnySchemaComponentOfType as cU, type SchemaComponentOptions as cV, type SchemaComponentType as cW, type DumboSchemaComponentType as cX, schemaComponent as cY, isSchemaComponentOfType as cZ, filterSchemaComponentsOfType as c_, type CollectRelationshipErrors as ca, type ValidateTableRelationships as cb, type ValidateTable as cc, type ValidateSchemaTables as cd, type ValidateDatabaseSchema as ce, type ValidateDatabaseSchemas as cf, type ValidateDatabaseSchemasWithMessages as cg, type Join as ch, type IndentErrors as ci, type FormatSingleError as cj, type FormatRelationshipBlock as ck, type FormatTableLevel as cl, type FormatSchemaLevel as cm, type FormatDatabaseValidationErrors as cn, type FormatValidationErrors as co, TableURNType as cp, type TableColumns as cq, type TableSchemaComponent as cr, type InferTableSchemaComponentTypes as cs, type InferTableSchemaComponentColumns as ct, type AnyTableSchemaComponent as cu, tableSchemaComponent as cv, type Writable as cw, type InferColumnType as cx, type TableColumnType as cy, type TableColumnNames as cz, type ConnectionOptions as d, SQLValueMapper as d$, findSchemaComponentsOfType as d0, type MigrationStyle as d1, sqlMigration as d2, type MigrationRecord as d3, type Serializer as d4, type SerializationCodec as d5, composeJSONReplacers as d6, composeJSONRevivers as d7, JSONCodec as d8, JSONReplacer as d9, isSQL as dA, type JSONValueType as dB, type JSONValueTypeName as dC, type JavaScriptValueType as dD, type JavaScriptValueTypeName as dE, type JavaScriptValueTypeToNameMap as dF, ColumnTypeToken as dG, type AnyColumnTypeToken as dH, SerialToken as dI, BigSerialToken as dJ, IntegerToken as dK, BigIntegerToken as dL, JSONBToken as dM, TimestampToken as dN, TimestamptzToken as dO, VarcharToken as dP, type NotNullableSQLColumnTokenProps as dQ, type NullableSQLColumnTokenProps as dR, SQLColumnToken as dS, AutoIncrementSQLColumnToken as dT, SQLColumnTypeTokensFactory as dU, SQLToken as dV, type ExtractSQLTokenType as dW, SQLPlain as dX, type SQLArrayMode as dY, type SQLDefaultTokens as dZ, type SQLDefaultTokensTypes as d_, JSONReplacers as da, JSONReviver as db, JSONRevivers as dc, jsonSerializer as dd, type JSONCodecOptions as de, type JSONDeserializeOptions as df, type JSONSerializeOptions as dg, type JSONSerializerOptions as dh, type JSONReviverContext as di, type FormatContext as dj, type FormatSQLOptions as dk, type SQLFormatterOptions as dl, registerFormatter as dm, getFormatter as dn, formatSQL as dp, describeSQL as dq, type ParametrizedSQL as dr, ParametrizedSQLBuilder as ds, defaultProcessorsRegistry as dt, type AnySQLProcessor as du, type SQLProcessorOptions as dv, type SQLProcessorsReadonlyRegistry as dw, SQLProcessorsRegistry as dx, SQL as dy, RawSQL as dz, SQLFormatter as e, type MapSQLParamValue as e0, type MapSQLParamValueOptions as e1, ANSISQLParamPlaceholder as e2, ANSISQLIdentifierQuote as e3, mapANSISQLParamPlaceholder as e4, mapSQLIdentifier as e5, DefaultMapSQLParamValueOptions as e6, mapSQLParamValue as e7, type DatabaseConnectionString as e8, parseConnectionString as e9, type DatabaseMetadata as f, type DumboConnectionOptions as g, type DatabaseTransactionOptions as h, type DatabaseTransaction as i, type ConnectionPool as j, type JSONSerializationOptions as k, type DbSQLExecutor as l, DumboError as m, SQLArray as n, SQLIn as o, SQLIdentifier as p, SQLLiteral as q, type AnySQLToken as r, DatabaseURN as s, DatabaseSchemaURN as t, ColumnURN as u, type QueryResult as v, type SchemaComponent as w, type SQLMigration as x, type DatabaseDriverType as y, type Dumbo as z };