@event-driven-io/dumbo 0.13.0-beta.40 → 0.13.0-beta.41

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 (53) hide show
  1. package/dist/cloudflare.cjs +3 -3
  2. package/dist/cloudflare.d.cts +2 -2
  3. package/dist/cloudflare.d.ts +2 -2
  4. package/dist/cloudflare.js +3 -3
  5. package/dist/{core-BG__WVn6.js → core-BMeDuqBQ.js} +5 -2
  6. package/dist/{core-BG__WVn6.js.map → core-BMeDuqBQ.js.map} +1 -1
  7. package/dist/{core-BchvTX3G.js → core-BPNgo5b6.js} +3 -3
  8. package/dist/{core-BchvTX3G.js.map → core-BPNgo5b6.js.map} +1 -1
  9. package/dist/{core-CWZb0zOY.cjs → core-CIVu4cNp.cjs} +3 -3
  10. package/dist/{core-CWZb0zOY.cjs.map → core-CIVu4cNp.cjs.map} +1 -1
  11. package/dist/{core-D-smW7cm.cjs → core-D5W_5J8k.cjs} +5 -2
  12. package/dist/{core-D-smW7cm.cjs.map → core-D5W_5J8k.cjs.map} +1 -1
  13. package/dist/{core-DXCRR5A9.cjs → core-DqUjje4u.cjs} +3 -3
  14. package/dist/{core-DXCRR5A9.cjs.map → core-DqUjje4u.cjs.map} +1 -1
  15. package/dist/{core-DlV8ua1P.js → core-gu5fi784.js} +3 -3
  16. package/dist/{core-DlV8ua1P.js.map → core-gu5fi784.js.map} +1 -1
  17. package/dist/{index-N2ly5shv.d.cts → index-B-q2er0S.d.cts} +2 -2
  18. package/dist/{index-BgFHGsuP.d.ts → index-B5qbt5nP.d.ts} +2 -2
  19. package/dist/{index-cxtbLiju.d.ts → index-BJJAkyuJ.d.ts} +2 -2
  20. package/dist/{index-BDSQvDH2.d.cts → index-CRbkvVjT.d.ts} +3 -1
  21. package/dist/{index-zkszkJqP.d.ts → index-Cmdlb0KP.d.cts} +3 -1
  22. package/dist/{index-S_wp0Eaf.d.cts → index-D7qxqMf9.d.cts} +2 -2
  23. package/dist/{index-BdWFmDhJ.d.cts → index-DtRCGhFP.d.cts} +2 -2
  24. package/dist/{index-DaP2fTEX.d.ts → index-m5LDyNNF.d.ts} +2 -2
  25. package/dist/index.cjs +3 -3
  26. package/dist/index.d.cts +2 -2
  27. package/dist/index.d.ts +2 -2
  28. package/dist/index.js +3 -3
  29. package/dist/pg.cjs +3 -3
  30. package/dist/pg.d.cts +2 -2
  31. package/dist/pg.d.ts +2 -2
  32. package/dist/pg.js +3 -3
  33. package/dist/{postgreSQLMetadata-BTz6vdwE.js → postgreSQLMetadata-Khf1e9CT.js} +2 -2
  34. package/dist/{postgreSQLMetadata-BTz6vdwE.js.map → postgreSQLMetadata-Khf1e9CT.js.map} +1 -1
  35. package/dist/{postgreSQLMetadata-WGXySO7a.cjs → postgreSQLMetadata-Ri_p5u6i.cjs} +2 -2
  36. package/dist/{postgreSQLMetadata-WGXySO7a.cjs.map → postgreSQLMetadata-Ri_p5u6i.cjs.map} +1 -1
  37. package/dist/postgresql.cjs +2 -2
  38. package/dist/postgresql.d.cts +2 -2
  39. package/dist/postgresql.d.ts +2 -2
  40. package/dist/postgresql.js +2 -2
  41. package/dist/sqlite.cjs +2 -2
  42. package/dist/sqlite.d.cts +2 -2
  43. package/dist/sqlite.d.ts +2 -2
  44. package/dist/sqlite.js +2 -2
  45. package/dist/sqlite3.cjs +3 -3
  46. package/dist/sqlite3.d.cts +2 -2
  47. package/dist/sqlite3.d.ts +2 -2
  48. package/dist/sqlite3.js +3 -3
  49. package/dist/{sqliteMetadata-PJTRPIZ1.cjs → sqliteMetadata-CpmoZxqb.cjs} +2 -2
  50. package/dist/{sqliteMetadata-PJTRPIZ1.cjs.map → sqliteMetadata-CpmoZxqb.cjs.map} +1 -1
  51. package/dist/{sqliteMetadata-7qBjsMBN.js → sqliteMetadata-viYmVwA5.js} +2 -2
  52. package/dist/{sqliteMetadata-7qBjsMBN.js.map → sqliteMetadata-viYmVwA5.js.map} +1 -1
  53. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- const require_core = require('./core-D-smW7cm.cjs');
2
- require('./postgreSQLMetadata-WGXySO7a.cjs');
1
+ const require_core = require('./core-D5W_5J8k.cjs');
2
+ require('./postgreSQLMetadata-Ri_p5u6i.cjs');
3
3
 
4
4
  //#region src/storage/postgresql/core/errors/errorMapper.ts
5
5
  /**
@@ -447,4 +447,4 @@ Object.defineProperty(exports, 'tryAcquireAdvisoryLock', {
447
447
  return tryAcquireAdvisoryLock;
448
448
  }
449
449
  });
450
- //# sourceMappingURL=core-DXCRR5A9.cjs.map
450
+ //# sourceMappingURL=core-DqUjje4u.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-DXCRR5A9.cjs","names":["DumboError","UniqueConstraintError","ForeignKeyViolationError","NotNullViolationError","CheckViolationError","ExclusionViolationError","SerializationError","DeadlockError","LockNotAvailableError","QueryCanceledError","AdminShutdownError","ConnectionError","DataError","IntegrityConstraintViolationError","InvalidOperationError","InsufficientResourcesError","SystemError","defaultDatabaseLockOptions","single","SQL","QueryCanceledError","DumboError","registerDefaultMigratorOptions","SQLProcessor","SQLArray","exhaustiveCheck","mapDefaultSQLColumnProcessors","SQLFormatter","SQLProcessorsRegistry","defaultProcessorsRegistry","mapSQLIdentifier","registerFormatter"],"sources":["../src/storage/postgresql/core/errors/errorMapper.ts","../src/storage/postgresql/core/locks/advisoryLocks.ts","../src/storage/postgresql/core/schema/migrations.ts","../src/storage/postgresql/core/sql/processors/arrayProcessors.ts","../src/storage/postgresql/core/sql/processors/columProcessors.ts","../src/storage/postgresql/core/sql/formatter/reserved.ts","../src/storage/postgresql/core/sql/formatter/index.ts","../src/storage/postgresql/core/index.ts"],"sourcesContent":["import {\n AdminShutdownError,\n CheckViolationError,\n ConnectionError,\n DataError,\n DeadlockError,\n DumboError,\n ExclusionViolationError,\n ForeignKeyViolationError,\n InsufficientResourcesError,\n IntegrityConstraintViolationError,\n InvalidOperationError,\n LockNotAvailableError,\n NotNullViolationError,\n QueryCanceledError,\n SerializationError,\n SystemError,\n UniqueConstraintError,\n} from '../../../../core/errors';\n\n/**\n * Checks whether the given error looks like a PostgreSQL DatabaseError\n * from the `pg` driver (has a string `code` property with a SQLSTATE value).\n */\nconst getPostgresErrorCode = (error: unknown): string | undefined => {\n if (\n error instanceof Error &&\n 'code' in error &&\n typeof (error as Record<string, unknown>).code === 'string'\n ) {\n return (error as Record<string, unknown>).code as string;\n }\n return undefined;\n};\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 * Maps a PostgreSQL error (from the `pg` driver) to a typed DumboError\n * based on the SQLSTATE code.\n *\n * SQLSTATE reference: https://www.postgresql.org/docs/current/errcodes-appendix.html\n * Transient classification based on Npgsql's PostgresException.IsTransient.\n *\n * Falls back to a generic DumboError (500) if the error is not a recognized PostgreSQL error.\n */\nexport const mapPostgresError = (error: unknown): DumboError => {\n if (DumboError.isInstanceOf<DumboError>(error)) return error;\n\n const code = getPostgresErrorCode(error);\n if (!code)\n return new DumboError({\n errorCode: 500,\n message: getErrorMessage(error),\n innerError: asError(error),\n });\n\n const message = getErrorMessage(error);\n const innerError = asError(error);\n\n // Exact SQLSTATE matches first, then class prefix fallbacks\n\n switch (code) {\n // ── Class 23: Integrity Constraint Violations ──\n case '23505':\n return new UniqueConstraintError(message, innerError);\n case '23503':\n return new ForeignKeyViolationError(message, innerError);\n case '23502':\n return new NotNullViolationError(message, innerError);\n case '23514':\n return new CheckViolationError(message, innerError);\n case '23P01':\n return new ExclusionViolationError(message, innerError);\n\n // ── Class 40: Transaction Rollback ──\n case '40001':\n return new SerializationError(message, innerError);\n case '40P01':\n return new DeadlockError(message, innerError);\n\n // ── Class 55: Object Not In Prerequisite State ──\n case '55P03':\n case '55006':\n return new LockNotAvailableError(message, innerError);\n\n // ── Class 57: Operator Intervention ──\n case '57014': // query_canceled (e.g. statement timeout)\n return new QueryCanceledError(message, innerError);\n case '57P01': // admin shutdown\n case '57P02': // crash shutdown\n return new AdminShutdownError(message, innerError);\n case '57P03': // cannot connect now\n case '57P05': // idle session timeout\n return new ConnectionError(message, innerError);\n }\n\n // Class prefix fallbacks (first 2 characters of the SQLSTATE code)\n const sqlClass = code.slice(0, 2);\n\n switch (sqlClass) {\n // ── Class 08: Connection Exception ──\n case '08':\n return new ConnectionError(message, innerError);\n\n // ── Class 22: Data Exception ──\n case '22':\n return new DataError(message, innerError);\n\n // ── Class 23: Integrity Constraint (fallback for unknown codes) ──\n case '23':\n return new IntegrityConstraintViolationError(message, innerError);\n\n // ── Class 42: Syntax Error or Access Rule Violation ──\n case '42':\n return new InvalidOperationError(message, innerError);\n\n // ── Class 53: Insufficient Resources ──\n case '53':\n return new InsufficientResourcesError(message, innerError);\n\n // ── Class 57: Operator Intervention (fallback) ──\n case '57':\n return new ConnectionError(message, innerError);\n\n // ── Class 58: System Error ──\n case '58':\n return new SystemError(message, innerError);\n }\n\n return new DumboError({\n errorCode: 500,\n message,\n innerError,\n });\n};\n","import {\n defaultDatabaseLockOptions,\n single,\n SQL,\n type AcquireDatabaseLockMode,\n type AcquireDatabaseLockOptions,\n type DatabaseLock,\n type DatabaseLockOptions,\n type ReleaseDatabaseLockOptions,\n type SQLExecutor,\n} from '../../../../core';\nimport { DumboError, QueryCanceledError } from '../../../../core/errors';\n\nexport const tryAcquireAdvisoryLock = async (\n execute: SQLExecutor,\n options: AcquireDatabaseLockOptions,\n): Promise<boolean> => {\n const timeoutMs = options.timeoutMs ?? defaultDatabaseLockOptions.timeoutMs;\n\n const advisoryLock =\n options.mode === 'Permanent' ? 'pg_advisory_lock' : 'pg_advisory_xact_lock';\n\n try {\n await single(\n execute.query<{ locked: boolean }>(\n SQL`SELECT ${SQL.plain(advisoryLock)}(${options.lockId}) AS locked`,\n { timeoutMs },\n ),\n );\n return true;\n } catch (error) {\n if (\n error instanceof QueryCanceledError ||\n DumboError.isInstanceOf(error, {\n errorType: QueryCanceledError.ErrorType,\n })\n )\n return false;\n\n throw error;\n }\n};\n\nexport const releaseAdvisoryLock = async (\n execute: SQLExecutor,\n options: ReleaseDatabaseLockOptions,\n): Promise<boolean> => {\n const timeoutMs = options.timeoutMs ?? defaultDatabaseLockOptions.timeoutMs;\n\n try {\n await single(\n execute.query<{ locked: boolean }>(\n SQL`SELECT pg_advisory_unlock(${options.lockId}) AS locked`,\n { timeoutMs },\n ),\n );\n return true;\n } catch (error) {\n if (\n error instanceof QueryCanceledError ||\n DumboError.isInstanceOf(error, {\n errorType: QueryCanceledError.ErrorType,\n })\n )\n return false;\n\n throw error;\n }\n};\n\nexport const acquireAdvisoryLock = async (\n execute: SQLExecutor,\n options: AcquireDatabaseLockOptions,\n) => {\n const lockAcquired = await tryAcquireAdvisoryLock(execute, options);\n if (!lockAcquired) {\n throw new Error(\n 'Failed to acquire advisory lock within the specified timeout. Migration aborted.',\n );\n }\n};\n\nexport const AdvisoryLock: DatabaseLock = {\n acquire: acquireAdvisoryLock,\n tryAcquire: tryAcquireAdvisoryLock,\n release: releaseAdvisoryLock,\n withAcquire: async <Result>(\n execute: SQLExecutor,\n handle: () => Promise<Result>,\n options: AcquireDatabaseLockOptions,\n ) => {\n await acquireAdvisoryLock(execute, options);\n try {\n return await handle();\n } finally {\n if (options.mode === 'Permanent')\n await releaseAdvisoryLock(execute, options);\n }\n },\n};\n\nexport const advisoryLock = (\n execute: SQLExecutor,\n options: DatabaseLockOptions,\n) => ({\n acquire: (acquireOptions?: { mode: AcquireDatabaseLockMode }) =>\n acquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n }),\n tryAcquire: (acquireOptions?: { mode: AcquireDatabaseLockMode }) =>\n tryAcquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n }),\n release: () => releaseAdvisoryLock(execute, options),\n withAcquire: async <Result>(\n handle: () => Promise<Result>,\n acquireOptions?: { mode: AcquireDatabaseLockMode },\n ) => {\n await acquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n });\n try {\n return await handle();\n } finally {\n await releaseAdvisoryLock(execute, options);\n }\n },\n});\n","import {\n type MigratorOptions,\n registerDefaultMigratorOptions,\n} from '../../../../core';\nimport { AdvisoryLock } from '../locks';\n\nexport const DefaultPostgreSQLMigratorOptions: MigratorOptions = {\n lock: {\n databaseLock: AdvisoryLock,\n },\n};\n\nregisterDefaultMigratorOptions('PostgreSQL', DefaultPostgreSQLMigratorOptions);\n","import type { SQLIn } from '../../../../../core';\nimport {\n SQLArray,\n SQLProcessor,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nexport const PostgreSQLArrayProcessor: SQLProcessor<SQLArray> = SQLProcessor({\n canHandle: 'SQL_ARRAY',\n handle: (\n token: SQLArray,\n { builder, mapper, serializer }: SQLProcessorContext,\n ) => {\n if (token.value.length === 0) {\n throw new Error(\n \"Empty arrays are not supported. If you're using it with SELECT IN statement Use SQL.in(column, array) helper instead.\",\n );\n }\n const mappedValue = mapper.mapValue(token.value, serializer) as unknown[];\n\n if (token.mode === 'params') {\n builder.addParams(mappedValue);\n } else {\n builder.addParam(mappedValue);\n }\n },\n});\n\nexport const PostgreSQLExpandSQLInProcessor: SQLProcessor<SQLIn> = SQLProcessor(\n {\n canHandle: 'SQL_IN',\n handle: (token: SQLIn, context: SQLProcessorContext) => {\n const { builder, mapper, processorsRegistry } = context;\n const { values: inValues, column, mode } = token;\n\n if (inValues.value.length === 0) {\n builder.addParam(mapper.mapValue(false, context.serializer));\n return;\n }\n\n builder.addSQL(\n mapper.mapValue(column.value, context.serializer) as string,\n );\n const arrayProcessor = processorsRegistry.get(SQLArray.type);\n\n if (!arrayProcessor) {\n throw new Error(\n 'No sql processor registered for an array. Cannot expand IN statement',\n );\n }\n\n if (mode === 'params') {\n builder.addSQL(` IN (`);\n const expandedArray = { ...inValues, mode: 'params' as const };\n arrayProcessor.handle(expandedArray, context);\n builder.addSQL(`)`);\n } else {\n builder.addSQL(` = ANY (`);\n arrayProcessor.handle(inValues, context);\n builder.addSQL(`)`);\n }\n },\n },\n);\n","import {\n mapDefaultSQLColumnProcessors,\n type DefaultSQLColumnProcessors,\n type DefaultSQLColumnToken,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nconst mapColumnType = (\n token: DefaultSQLColumnToken,\n { builder }: SQLProcessorContext,\n): void => {\n let columnSQL: string;\n const { sqlTokenType } = token;\n switch (sqlTokenType) {\n case 'SQL_COLUMN_AUTO_INCREMENT':\n columnSQL = `${token.bigint ? 'BIGSERIAL' : 'SERIAL'} ${token.primaryKey ? 'PRIMARY KEY' : ''}`;\n break;\n case 'SQL_COLUMN_BIGINT':\n columnSQL = 'BIGINT';\n break;\n case 'SQL_COLUMN_SERIAL':\n columnSQL = 'SERIAL';\n break;\n case 'SQL_COLUMN_INTEGER':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_JSONB':\n columnSQL = 'JSONB';\n break;\n case 'SQL_COLUMN_BIGSERIAL':\n columnSQL = 'BIGSERIAL';\n break;\n case 'SQL_COLUMN_TIMESTAMP':\n columnSQL = 'TIMESTAMP';\n break;\n case 'SQL_COLUMN_TIMESTAMPTZ':\n columnSQL = 'TIMESTAMPTZ';\n break;\n case 'SQL_COLUMN_VARCHAR':\n columnSQL = `VARCHAR ${Number.isNaN(token.length) ? '' : `(${token.length})`}`;\n break;\n default: {\n const exhaustiveCheck: never = sqlTokenType;\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Unknown column type: ${exhaustiveCheck}`);\n }\n }\n builder.addSQL(columnSQL);\n};\n\nexport const postgreSQLColumnProcessors: DefaultSQLColumnProcessors =\n mapDefaultSQLColumnProcessors(mapColumnType);\n","// Ported from: https://github.com/datalanche/node-pg-format/blob/master/lib/reserved.js\n//\n// PostgreSQL reserved words\n//\nconst reservedMap: { [key: string]: boolean } = {\n AES128: true,\n AES256: true,\n ALL: true,\n ALLOWOVERWRITE: true,\n ANALYSE: true,\n ANALYZE: true,\n AND: true,\n ANY: true,\n ARRAY: true,\n AS: true,\n ASC: true,\n AUTHORIZATION: true,\n BACKUP: true,\n BETWEEN: true,\n BINARY: true,\n BLANKSASNULL: true,\n BOTH: true,\n BYTEDICT: true,\n CASE: true,\n CAST: true,\n CHECK: true,\n COLLATE: true,\n COLUMN: true,\n CONSTRAINT: true,\n CREATE: true,\n CREDENTIALS: true,\n CROSS: true,\n CURRENT_DATE: true,\n CURRENT_TIME: true,\n CURRENT_TIMESTAMP: true,\n CURRENT_USER: true,\n CURRENT_USER_ID: true,\n DEFAULT: true,\n DEFERRABLE: true,\n DEFLATE: true,\n DEFRAG: true,\n DELTA: true,\n DELTA32K: true,\n DESC: true,\n DISABLE: true,\n DISTINCT: true,\n DO: true,\n ELSE: true,\n EMPTYASNULL: true,\n ENABLE: true,\n ENCODE: true,\n ENCRYPT: true,\n ENCRYPTION: true,\n END: true,\n EXCEPT: true,\n EXPLICIT: true,\n FALSE: true,\n FOR: true,\n FOREIGN: true,\n FREEZE: true,\n FROM: true,\n FULL: true,\n GLOBALDICT256: true,\n GLOBALDICT64K: true,\n GRANT: true,\n GROUP: true,\n GZIP: true,\n HAVING: true,\n IDENTITY: true,\n IGNORE: true,\n ILIKE: true,\n IN: true,\n INITIALLY: true,\n INNER: true,\n INTERSECT: true,\n INTO: true,\n IS: true,\n ISNULL: true,\n JOIN: true,\n LEADING: true,\n LEFT: true,\n LIKE: true,\n LIMIT: true,\n LOCALTIME: true,\n LOCALTIMESTAMP: true,\n LUN: true,\n LUNS: true,\n LZO: true,\n LZOP: true,\n MINUS: true,\n MOSTLY13: true,\n MOSTLY32: true,\n MOSTLY8: true,\n NATURAL: true,\n NEW: true,\n NOT: true,\n NOTNULL: true,\n NULL: true,\n NULLS: true,\n OFF: true,\n OFFLINE: true,\n OFFSET: true,\n OLD: true,\n ON: true,\n ONLY: true,\n OPEN: true,\n OR: true,\n ORDER: true,\n OUTER: true,\n OVERLAPS: true,\n PARALLEL: true,\n PARTITION: true,\n PERCENT: true,\n PLACING: true,\n PRIMARY: true,\n RAW: true,\n READRATIO: true,\n RECOVER: true,\n REFERENCES: true,\n REJECTLOG: true,\n RESORT: true,\n RESTORE: true,\n RIGHT: true,\n SELECT: true,\n SESSION_USER: true,\n SIMILAR: true,\n SOME: true,\n SYSDATE: true,\n SYSTEM: true,\n TABLE: true,\n TAG: true,\n TDES: true,\n TEXT255: true,\n TEXT32K: true,\n THEN: true,\n TO: true,\n TOP: true,\n TRAILING: true,\n TRUE: true,\n TRUNCATECOLUMNS: true,\n UNION: true,\n UNIQUE: true,\n USER: true,\n USING: true,\n VERBOSE: true,\n WALLET: true,\n WHEN: true,\n WHERE: true,\n WITH: true,\n WITHOUT: true,\n};\n\nexport default reservedMap;\n","import {\n defaultProcessorsRegistry,\n mapSQLIdentifier,\n registerFormatter,\n SQLFormatter,\n SQLProcessorsRegistry,\n} from '../../../../../core';\nimport {\n PostgreSQLArrayProcessor,\n postgreSQLColumnProcessors,\n PostgreSQLExpandSQLInProcessor,\n} from '../processors';\nimport reservedMap from './reserved';\n\nconst postgreSQLProcessorsRegistry = SQLProcessorsRegistry({\n from: defaultProcessorsRegistry,\n})\n .register(postgreSQLColumnProcessors)\n .register(PostgreSQLArrayProcessor, PostgreSQLExpandSQLInProcessor);\n\nconst pgFormatter: SQLFormatter = SQLFormatter({\n processorsRegistry: postgreSQLProcessorsRegistry,\n valueMapper: {\n mapDate: (value: Date): unknown =>\n value.toISOString().replace('T', ' ').replace('Z', '+00'),\n mapPlaceholder: (index: number): string => `$${index + 1}`,\n mapIdentifier: (value: string): string =>\n mapSQLIdentifier(value, { reservedWords: reservedMap }),\n mapArray: (values: unknown[]): unknown[] => values,\n },\n});\n\nregisterFormatter('PostgreSQL', pgFormatter);\n\n// Export the original functions if needed\nexport { pgFormatter };\n","import type { DatabaseDriverType } from '../../../core';\n\nexport * from './connections';\nexport * from './errors';\nexport * from './locks';\nexport * from './schema';\nexport * from './sql';\n\nexport type PostgreSQLDatabaseName = 'PostgreSQL';\nexport const PostgreSQLDatabaseName = 'PostgreSQL';\n\nexport type PostgreSQLDriverType<DriverName extends string = string> =\n DatabaseDriverType<PostgreSQLDatabaseName, DriverName>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"core-DqUjje4u.cjs","names":["DumboError","UniqueConstraintError","ForeignKeyViolationError","NotNullViolationError","CheckViolationError","ExclusionViolationError","SerializationError","DeadlockError","LockNotAvailableError","QueryCanceledError","AdminShutdownError","ConnectionError","DataError","IntegrityConstraintViolationError","InvalidOperationError","InsufficientResourcesError","SystemError","defaultDatabaseLockOptions","single","SQL","QueryCanceledError","DumboError","registerDefaultMigratorOptions","SQLProcessor","SQLArray","exhaustiveCheck","mapDefaultSQLColumnProcessors","SQLFormatter","SQLProcessorsRegistry","defaultProcessorsRegistry","mapSQLIdentifier","registerFormatter"],"sources":["../src/storage/postgresql/core/errors/errorMapper.ts","../src/storage/postgresql/core/locks/advisoryLocks.ts","../src/storage/postgresql/core/schema/migrations.ts","../src/storage/postgresql/core/sql/processors/arrayProcessors.ts","../src/storage/postgresql/core/sql/processors/columProcessors.ts","../src/storage/postgresql/core/sql/formatter/reserved.ts","../src/storage/postgresql/core/sql/formatter/index.ts","../src/storage/postgresql/core/index.ts"],"sourcesContent":["import {\n AdminShutdownError,\n CheckViolationError,\n ConnectionError,\n DataError,\n DeadlockError,\n DumboError,\n ExclusionViolationError,\n ForeignKeyViolationError,\n InsufficientResourcesError,\n IntegrityConstraintViolationError,\n InvalidOperationError,\n LockNotAvailableError,\n NotNullViolationError,\n QueryCanceledError,\n SerializationError,\n SystemError,\n UniqueConstraintError,\n} from '../../../../core/errors';\n\n/**\n * Checks whether the given error looks like a PostgreSQL DatabaseError\n * from the `pg` driver (has a string `code` property with a SQLSTATE value).\n */\nconst getPostgresErrorCode = (error: unknown): string | undefined => {\n if (\n error instanceof Error &&\n 'code' in error &&\n typeof (error as Record<string, unknown>).code === 'string'\n ) {\n return (error as Record<string, unknown>).code as string;\n }\n return undefined;\n};\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 * Maps a PostgreSQL error (from the `pg` driver) to a typed DumboError\n * based on the SQLSTATE code.\n *\n * SQLSTATE reference: https://www.postgresql.org/docs/current/errcodes-appendix.html\n * Transient classification based on Npgsql's PostgresException.IsTransient.\n *\n * Falls back to a generic DumboError (500) if the error is not a recognized PostgreSQL error.\n */\nexport const mapPostgresError = (error: unknown): DumboError => {\n if (DumboError.isInstanceOf<DumboError>(error)) return error;\n\n const code = getPostgresErrorCode(error);\n if (!code)\n return new DumboError({\n errorCode: 500,\n message: getErrorMessage(error),\n innerError: asError(error),\n });\n\n const message = getErrorMessage(error);\n const innerError = asError(error);\n\n // Exact SQLSTATE matches first, then class prefix fallbacks\n\n switch (code) {\n // ── Class 23: Integrity Constraint Violations ──\n case '23505':\n return new UniqueConstraintError(message, innerError);\n case '23503':\n return new ForeignKeyViolationError(message, innerError);\n case '23502':\n return new NotNullViolationError(message, innerError);\n case '23514':\n return new CheckViolationError(message, innerError);\n case '23P01':\n return new ExclusionViolationError(message, innerError);\n\n // ── Class 40: Transaction Rollback ──\n case '40001':\n return new SerializationError(message, innerError);\n case '40P01':\n return new DeadlockError(message, innerError);\n\n // ── Class 55: Object Not In Prerequisite State ──\n case '55P03':\n case '55006':\n return new LockNotAvailableError(message, innerError);\n\n // ── Class 57: Operator Intervention ──\n case '57014': // query_canceled (e.g. statement timeout)\n return new QueryCanceledError(message, innerError);\n case '57P01': // admin shutdown\n case '57P02': // crash shutdown\n return new AdminShutdownError(message, innerError);\n case '57P03': // cannot connect now\n case '57P05': // idle session timeout\n return new ConnectionError(message, innerError);\n }\n\n // Class prefix fallbacks (first 2 characters of the SQLSTATE code)\n const sqlClass = code.slice(0, 2);\n\n switch (sqlClass) {\n // ── Class 08: Connection Exception ──\n case '08':\n return new ConnectionError(message, innerError);\n\n // ── Class 22: Data Exception ──\n case '22':\n return new DataError(message, innerError);\n\n // ── Class 23: Integrity Constraint (fallback for unknown codes) ──\n case '23':\n return new IntegrityConstraintViolationError(message, innerError);\n\n // ── Class 42: Syntax Error or Access Rule Violation ──\n case '42':\n return new InvalidOperationError(message, innerError);\n\n // ── Class 53: Insufficient Resources ──\n case '53':\n return new InsufficientResourcesError(message, innerError);\n\n // ── Class 57: Operator Intervention (fallback) ──\n case '57':\n return new ConnectionError(message, innerError);\n\n // ── Class 58: System Error ──\n case '58':\n return new SystemError(message, innerError);\n }\n\n return new DumboError({\n errorCode: 500,\n message,\n innerError,\n });\n};\n","import {\n defaultDatabaseLockOptions,\n single,\n SQL,\n type AcquireDatabaseLockMode,\n type AcquireDatabaseLockOptions,\n type DatabaseLock,\n type DatabaseLockOptions,\n type ReleaseDatabaseLockOptions,\n type SQLExecutor,\n} from '../../../../core';\nimport { DumboError, QueryCanceledError } from '../../../../core/errors';\n\nexport const tryAcquireAdvisoryLock = async (\n execute: SQLExecutor,\n options: AcquireDatabaseLockOptions,\n): Promise<boolean> => {\n const timeoutMs = options.timeoutMs ?? defaultDatabaseLockOptions.timeoutMs;\n\n const advisoryLock =\n options.mode === 'Permanent' ? 'pg_advisory_lock' : 'pg_advisory_xact_lock';\n\n try {\n await single(\n execute.query<{ locked: boolean }>(\n SQL`SELECT ${SQL.plain(advisoryLock)}(${options.lockId}) AS locked`,\n { timeoutMs },\n ),\n );\n return true;\n } catch (error) {\n if (\n error instanceof QueryCanceledError ||\n DumboError.isInstanceOf(error, {\n errorType: QueryCanceledError.ErrorType,\n })\n )\n return false;\n\n throw error;\n }\n};\n\nexport const releaseAdvisoryLock = async (\n execute: SQLExecutor,\n options: ReleaseDatabaseLockOptions,\n): Promise<boolean> => {\n const timeoutMs = options.timeoutMs ?? defaultDatabaseLockOptions.timeoutMs;\n\n try {\n await single(\n execute.query<{ locked: boolean }>(\n SQL`SELECT pg_advisory_unlock(${options.lockId}) AS locked`,\n { timeoutMs },\n ),\n );\n return true;\n } catch (error) {\n if (\n error instanceof QueryCanceledError ||\n DumboError.isInstanceOf(error, {\n errorType: QueryCanceledError.ErrorType,\n })\n )\n return false;\n\n throw error;\n }\n};\n\nexport const acquireAdvisoryLock = async (\n execute: SQLExecutor,\n options: AcquireDatabaseLockOptions,\n) => {\n const lockAcquired = await tryAcquireAdvisoryLock(execute, options);\n if (!lockAcquired) {\n throw new Error(\n 'Failed to acquire advisory lock within the specified timeout. Migration aborted.',\n );\n }\n};\n\nexport const AdvisoryLock: DatabaseLock = {\n acquire: acquireAdvisoryLock,\n tryAcquire: tryAcquireAdvisoryLock,\n release: releaseAdvisoryLock,\n withAcquire: async <Result>(\n execute: SQLExecutor,\n handle: () => Promise<Result>,\n options: AcquireDatabaseLockOptions,\n ) => {\n await acquireAdvisoryLock(execute, options);\n try {\n return await handle();\n } finally {\n if (options.mode === 'Permanent')\n await releaseAdvisoryLock(execute, options);\n }\n },\n};\n\nexport const advisoryLock = (\n execute: SQLExecutor,\n options: DatabaseLockOptions,\n) => ({\n acquire: (acquireOptions?: { mode: AcquireDatabaseLockMode }) =>\n acquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n }),\n tryAcquire: (acquireOptions?: { mode: AcquireDatabaseLockMode }) =>\n tryAcquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n }),\n release: () => releaseAdvisoryLock(execute, options),\n withAcquire: async <Result>(\n handle: () => Promise<Result>,\n acquireOptions?: { mode: AcquireDatabaseLockMode },\n ) => {\n await acquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n });\n try {\n return await handle();\n } finally {\n await releaseAdvisoryLock(execute, options);\n }\n },\n});\n","import {\n type MigratorOptions,\n registerDefaultMigratorOptions,\n} from '../../../../core';\nimport { AdvisoryLock } from '../locks';\n\nexport const DefaultPostgreSQLMigratorOptions: MigratorOptions = {\n lock: {\n databaseLock: AdvisoryLock,\n },\n};\n\nregisterDefaultMigratorOptions('PostgreSQL', DefaultPostgreSQLMigratorOptions);\n","import type { SQLIn } from '../../../../../core';\nimport {\n SQLArray,\n SQLProcessor,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nexport const PostgreSQLArrayProcessor: SQLProcessor<SQLArray> = SQLProcessor({\n canHandle: 'SQL_ARRAY',\n handle: (\n token: SQLArray,\n { builder, mapper, serializer }: SQLProcessorContext,\n ) => {\n if (token.value.length === 0) {\n throw new Error(\n \"Empty arrays are not supported. If you're using it with SELECT IN statement Use SQL.in(column, array) helper instead.\",\n );\n }\n const mappedValue = mapper.mapValue(token.value, serializer) as unknown[];\n\n if (token.mode === 'params') {\n builder.addParams(mappedValue);\n } else {\n builder.addParam(mappedValue);\n }\n },\n});\n\nexport const PostgreSQLExpandSQLInProcessor: SQLProcessor<SQLIn> = SQLProcessor(\n {\n canHandle: 'SQL_IN',\n handle: (token: SQLIn, context: SQLProcessorContext) => {\n const { builder, mapper, processorsRegistry } = context;\n const { values: inValues, column, mode } = token;\n\n if (inValues.value.length === 0) {\n builder.addParam(mapper.mapValue(false, context.serializer));\n return;\n }\n\n builder.addSQL(\n mapper.mapValue(column.value, context.serializer) as string,\n );\n const arrayProcessor = processorsRegistry.get(SQLArray.type);\n\n if (!arrayProcessor) {\n throw new Error(\n 'No sql processor registered for an array. Cannot expand IN statement',\n );\n }\n\n if (mode === 'params') {\n builder.addSQL(` IN (`);\n const expandedArray = { ...inValues, mode: 'params' as const };\n arrayProcessor.handle(expandedArray, context);\n builder.addSQL(`)`);\n } else {\n builder.addSQL(` = ANY (`);\n arrayProcessor.handle(inValues, context);\n builder.addSQL(`)`);\n }\n },\n },\n);\n","import {\n mapDefaultSQLColumnProcessors,\n type DefaultSQLColumnProcessors,\n type DefaultSQLColumnToken,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nconst mapColumnType = (\n token: DefaultSQLColumnToken,\n { builder }: SQLProcessorContext,\n): void => {\n let columnSQL: string;\n const { sqlTokenType } = token;\n switch (sqlTokenType) {\n case 'SQL_COLUMN_AUTO_INCREMENT':\n columnSQL = `${token.bigint ? 'BIGSERIAL' : 'SERIAL'} ${token.primaryKey ? 'PRIMARY KEY' : ''}`;\n break;\n case 'SQL_COLUMN_BIGINT':\n columnSQL = 'BIGINT';\n break;\n case 'SQL_COLUMN_SERIAL':\n columnSQL = 'SERIAL';\n break;\n case 'SQL_COLUMN_INTEGER':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_JSONB':\n columnSQL = 'JSONB';\n break;\n case 'SQL_COLUMN_BIGSERIAL':\n columnSQL = 'BIGSERIAL';\n break;\n case 'SQL_COLUMN_TIMESTAMP':\n columnSQL = 'TIMESTAMP';\n break;\n case 'SQL_COLUMN_TIMESTAMPTZ':\n columnSQL = 'TIMESTAMPTZ';\n break;\n case 'SQL_COLUMN_VARCHAR':\n columnSQL = `VARCHAR ${Number.isNaN(token.length) ? '' : `(${token.length})`}`;\n break;\n default: {\n const exhaustiveCheck: never = sqlTokenType;\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Unknown column type: ${exhaustiveCheck}`);\n }\n }\n builder.addSQL(columnSQL);\n};\n\nexport const postgreSQLColumnProcessors: DefaultSQLColumnProcessors =\n mapDefaultSQLColumnProcessors(mapColumnType);\n","// Ported from: https://github.com/datalanche/node-pg-format/blob/master/lib/reserved.js\n//\n// PostgreSQL reserved words\n//\nconst reservedMap: { [key: string]: boolean } = {\n AES128: true,\n AES256: true,\n ALL: true,\n ALLOWOVERWRITE: true,\n ANALYSE: true,\n ANALYZE: true,\n AND: true,\n ANY: true,\n ARRAY: true,\n AS: true,\n ASC: true,\n AUTHORIZATION: true,\n BACKUP: true,\n BETWEEN: true,\n BINARY: true,\n BLANKSASNULL: true,\n BOTH: true,\n BYTEDICT: true,\n CASE: true,\n CAST: true,\n CHECK: true,\n COLLATE: true,\n COLUMN: true,\n CONSTRAINT: true,\n CREATE: true,\n CREDENTIALS: true,\n CROSS: true,\n CURRENT_DATE: true,\n CURRENT_TIME: true,\n CURRENT_TIMESTAMP: true,\n CURRENT_USER: true,\n CURRENT_USER_ID: true,\n DEFAULT: true,\n DEFERRABLE: true,\n DEFLATE: true,\n DEFRAG: true,\n DELTA: true,\n DELTA32K: true,\n DESC: true,\n DISABLE: true,\n DISTINCT: true,\n DO: true,\n ELSE: true,\n EMPTYASNULL: true,\n ENABLE: true,\n ENCODE: true,\n ENCRYPT: true,\n ENCRYPTION: true,\n END: true,\n EXCEPT: true,\n EXPLICIT: true,\n FALSE: true,\n FOR: true,\n FOREIGN: true,\n FREEZE: true,\n FROM: true,\n FULL: true,\n GLOBALDICT256: true,\n GLOBALDICT64K: true,\n GRANT: true,\n GROUP: true,\n GZIP: true,\n HAVING: true,\n IDENTITY: true,\n IGNORE: true,\n ILIKE: true,\n IN: true,\n INITIALLY: true,\n INNER: true,\n INTERSECT: true,\n INTO: true,\n IS: true,\n ISNULL: true,\n JOIN: true,\n LEADING: true,\n LEFT: true,\n LIKE: true,\n LIMIT: true,\n LOCALTIME: true,\n LOCALTIMESTAMP: true,\n LUN: true,\n LUNS: true,\n LZO: true,\n LZOP: true,\n MINUS: true,\n MOSTLY13: true,\n MOSTLY32: true,\n MOSTLY8: true,\n NATURAL: true,\n NEW: true,\n NOT: true,\n NOTNULL: true,\n NULL: true,\n NULLS: true,\n OFF: true,\n OFFLINE: true,\n OFFSET: true,\n OLD: true,\n ON: true,\n ONLY: true,\n OPEN: true,\n OR: true,\n ORDER: true,\n OUTER: true,\n OVERLAPS: true,\n PARALLEL: true,\n PARTITION: true,\n PERCENT: true,\n PLACING: true,\n PRIMARY: true,\n RAW: true,\n READRATIO: true,\n RECOVER: true,\n REFERENCES: true,\n REJECTLOG: true,\n RESORT: true,\n RESTORE: true,\n RIGHT: true,\n SELECT: true,\n SESSION_USER: true,\n SIMILAR: true,\n SOME: true,\n SYSDATE: true,\n SYSTEM: true,\n TABLE: true,\n TAG: true,\n TDES: true,\n TEXT255: true,\n TEXT32K: true,\n THEN: true,\n TO: true,\n TOP: true,\n TRAILING: true,\n TRUE: true,\n TRUNCATECOLUMNS: true,\n UNION: true,\n UNIQUE: true,\n USER: true,\n USING: true,\n VERBOSE: true,\n WALLET: true,\n WHEN: true,\n WHERE: true,\n WITH: true,\n WITHOUT: true,\n};\n\nexport default reservedMap;\n","import {\n defaultProcessorsRegistry,\n mapSQLIdentifier,\n registerFormatter,\n SQLFormatter,\n SQLProcessorsRegistry,\n} from '../../../../../core';\nimport {\n PostgreSQLArrayProcessor,\n postgreSQLColumnProcessors,\n PostgreSQLExpandSQLInProcessor,\n} from '../processors';\nimport reservedMap from './reserved';\n\nconst postgreSQLProcessorsRegistry = SQLProcessorsRegistry({\n from: defaultProcessorsRegistry,\n})\n .register(postgreSQLColumnProcessors)\n .register(PostgreSQLArrayProcessor, PostgreSQLExpandSQLInProcessor);\n\nconst pgFormatter: SQLFormatter = SQLFormatter({\n processorsRegistry: postgreSQLProcessorsRegistry,\n valueMapper: {\n mapDate: (value: Date): unknown =>\n value.toISOString().replace('T', ' ').replace('Z', '+00'),\n mapPlaceholder: (index: number): string => `$${index + 1}`,\n mapIdentifier: (value: string): string =>\n mapSQLIdentifier(value, { reservedWords: reservedMap }),\n mapArray: (values: unknown[]): unknown[] => values,\n },\n});\n\nregisterFormatter('PostgreSQL', pgFormatter);\n\n// Export the original functions if needed\nexport { pgFormatter };\n","import type { DatabaseDriverType } from '../../../core';\n\nexport * from './connections';\nexport * from './errors';\nexport * from './locks';\nexport * from './schema';\nexport * from './sql';\n\nexport type PostgreSQLDatabaseName = 'PostgreSQL';\nexport const PostgreSQLDatabaseName = 'PostgreSQL';\n\nexport type PostgreSQLDriverType<DriverName extends string = string> =\n DatabaseDriverType<PostgreSQLDatabaseName, DriverName>;\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { A as CheckViolationError, B as InvalidOperationError, Dt as SQLProcessorsRegistry, E as sqlExecutor, Et as mapDefaultSQLColumnProcessors, F as DumboError, G as SystemError, H as NotNullViolationError, L as ForeignKeyViolationError, M as ConnectionError, N as DataError, P as DeadlockError, R as InsufficientResourcesError, T as mapSQLQueryResult, Tt as defaultProcessorsRegistry, V as LockNotAvailableError, W as SerializationError, Z as registerDefaultMigratorOptions, dt as registerFormatter, it as tracer, l as createAmbientConnection, n as createAmbientConnectionPool, o as createSingletonConnectionPool, q as UniqueConstraintError, st as SQLFormatter, t as createAlwaysNewConnectionPool, u as createConnection, xt as SQL, z as IntegrityConstraintViolationError } from "./core-BG__WVn6.js";
2
- import "./sqliteMetadata-7qBjsMBN.js";
1
+ import { A as CheckViolationError, B as InvalidOperationError, Dt as SQLProcessorsRegistry, E as sqlExecutor, Et as mapDefaultSQLColumnProcessors, F as DumboError, G as SystemError, H as NotNullViolationError, L as ForeignKeyViolationError, M as ConnectionError, N as DataError, P as DeadlockError, R as InsufficientResourcesError, T as mapSQLQueryResult, Tt as defaultProcessorsRegistry, V as LockNotAvailableError, W as SerializationError, Z as registerDefaultMigratorOptions, dt as registerFormatter, it as tracer, l as createAmbientConnection, n as createAmbientConnectionPool, o as createSingletonConnectionPool, q as UniqueConstraintError, st as SQLFormatter, t as createAlwaysNewConnectionPool, u as createConnection, xt as SQL, z as IntegrityConstraintViolationError } from "./core-BMeDuqBQ.js";
2
+ import "./sqliteMetadata-viYmVwA5.js";
3
3
 
4
4
  //#region src/storage/sqlite/core/errors/errorMapper.ts
5
5
  /**
@@ -448,4 +448,4 @@ const SQLiteDatabaseName = "SQLite";
448
448
 
449
449
  //#endregion
450
450
  export { mapSqliteError as C, sqliteFormatter as S, SQLiteConnectionString as _, sqliteAmbientConnectionPool as a, sqliteExecute as b, toSqlitePoolOptions as c, isSQLiteError as d, sqliteAmbientClientConnection as f, transactionNestingCounter as g, sqlitePoolClientConnection as h, sqliteAlwaysNewConnectionPool as i, DEFAULT_SQLITE_PRAGMA_OPTIONS as l, sqliteConnection as m, DefaultSQLiteMigratorOptions as n, sqlitePool as o, sqliteClientConnection as p, isInMemoryDatabase as r, sqliteSingletonConnectionPool as s, SQLiteDatabaseName as t, InMemorySQLiteDatabase as u, parsePragmasFromConnectionString as v, sqliteSQLExecutor as x, sqliteTransaction as y };
451
- //# sourceMappingURL=core-DlV8ua1P.js.map
451
+ //# sourceMappingURL=core-gu5fi784.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-DlV8ua1P.js","names":["exhaustiveCheck"],"sources":["../src/storage/sqlite/core/errors/errorMapper.ts","../src/storage/sqlite/core/sql/processors/columProcessors.ts","../src/storage/sqlite/core/sql/formatter/index.ts","../src/storage/sqlite/core/execute/execute.ts","../src/storage/sqlite/core/transactions/index.ts","../src/storage/sqlite/core/connections/connectionString.ts","../src/storage/sqlite/core/connections/index.ts","../src/storage/sqlite/core/pool/pool.ts","../src/storage/sqlite/core/schema/migrations.ts","../src/storage/sqlite/core/index.ts"],"sourcesContent":["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\n/**\n * Extracts the SQLite error code string from a `sqlite3` driver error.\n *\n * The `sqlite3` (node-sqlite3) driver sets `error.code` to a string like\n * `'SQLITE_CONSTRAINT'` and `error.errno` to the numeric result code.\n * See: https://github.com/TryGhost/node-sqlite3\n */\nconst getSqliteErrorCode = (error: unknown): string | undefined => {\n if (\n error instanceof Error &&\n 'code' in error &&\n typeof (error as Record<string, unknown>).code === 'string'\n ) {\n return (error as Record<string, unknown>).code as string;\n }\n return undefined;\n};\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 * Maps a constraint error to a specific DumboError subtype by inspecting the\n * error message. The `sqlite3` driver only exposes the primary result code\n * `SQLITE_CONSTRAINT` — the constraint subtype (UNIQUE, FOREIGN KEY, etc.)\n * is embedded in the message string by SQLite, e.g.:\n * \"SQLITE_CONSTRAINT: UNIQUE constraint failed: users.email\"\n *\n * Reference: https://www.sqlite.org/rescode.html (extended result codes 275–3091)\n */\nconst mapConstraintError = (\n message: string | undefined,\n innerError: Error | undefined,\n): DumboError => {\n const upperMessage = message?.toUpperCase() ?? '';\n\n // SQLITE_CONSTRAINT_UNIQUE (2067) / SQLITE_CONSTRAINT_PRIMARYKEY (1555)\n if (upperMessage.includes('UNIQUE') || upperMessage.includes('PRIMARY KEY'))\n return new UniqueConstraintError(message, innerError);\n\n // SQLITE_CONSTRAINT_FOREIGNKEY (787)\n if (upperMessage.includes('FOREIGN KEY'))\n return new ForeignKeyViolationError(message, innerError);\n\n // SQLITE_CONSTRAINT_NOTNULL (1299)\n if (upperMessage.includes('NOT NULL'))\n return new NotNullViolationError(message, innerError);\n\n // SQLITE_CONSTRAINT_CHECK (275)\n if (upperMessage.includes('CHECK'))\n return new CheckViolationError(message, innerError);\n\n // SQLITE_CONSTRAINT_ROWID (2579), SQLITE_CONSTRAINT_TRIGGER (1811),\n // SQLITE_CONSTRAINT_COMMITHOOK (531), SQLITE_CONSTRAINT_PINNED (2835),\n // SQLITE_CONSTRAINT_DATATYPE (3091), etc.\n return new IntegrityConstraintViolationError(message, innerError);\n};\n\n/**\n * Maps a SQLite error (from the `sqlite3` / node-sqlite3 driver) to a typed\n * DumboError based on the SQLite result code.\n *\n * Result code reference: https://www.sqlite.org/rescode.html\n *\n * Falls back to a generic DumboError (500) if the error is not a recognized SQLite error.\n */\nexport const mapSqliteError = (error: unknown): DumboError => {\n if (DumboError.isInstanceOf<DumboError>(error)) return error;\n\n const code = getSqliteErrorCode(error);\n if (!code)\n return new DumboError({\n errorCode: 500,\n message: getErrorMessage(error),\n innerError: asError(error),\n });\n\n const message = getErrorMessage(error);\n const innerError = asError(error);\n\n switch (code) {\n // ── Constraint violations (19) ──\n // node-sqlite3 only exposes the primary code; subtype is in the message.\n case 'SQLITE_CONSTRAINT':\n return mapConstraintError(message, innerError);\n\n // ── Busy / lock contention ──\n // SQLITE_BUSY (5): conflict with a separate database connection\n case 'SQLITE_BUSY':\n return new LockNotAvailableError(message, innerError);\n\n // SQLITE_LOCKED (6): conflict within the same connection or shared cache\n case 'SQLITE_LOCKED':\n return new DeadlockError(message, innerError);\n\n // SQLITE_PROTOCOL (15): WAL locking race condition\n case 'SQLITE_PROTOCOL':\n return new LockNotAvailableError(message, innerError);\n\n // ── Connection / open errors ──\n // SQLITE_CANTOPEN (14): unable to open database file\n case 'SQLITE_CANTOPEN':\n return new ConnectionError(message, innerError);\n\n // SQLITE_NOTADB (26): file is not a database\n case 'SQLITE_NOTADB':\n return new ConnectionError(message, innerError);\n\n // ── Resource exhaustion ──\n // SQLITE_NOMEM (7): out of memory\n case 'SQLITE_NOMEM':\n return new InsufficientResourcesError(message, innerError);\n\n // SQLITE_FULL (13): disk full\n case 'SQLITE_FULL':\n return new InsufficientResourcesError(message, innerError);\n\n // ── System / I/O errors ──\n // SQLITE_IOERR (10): operating system I/O error\n case 'SQLITE_IOERR':\n return new SystemError(message, innerError);\n\n // SQLITE_CORRUPT (11): database file is corrupted\n case 'SQLITE_CORRUPT':\n return new SystemError(message, innerError);\n\n // SQLITE_INTERNAL (2): internal SQLite malfunction\n case 'SQLITE_INTERNAL':\n return new SystemError(message, innerError);\n\n // SQLITE_NOLFS (22): large file support unavailable\n case 'SQLITE_NOLFS':\n return new SystemError(message, innerError);\n\n // ── Data errors ──\n // SQLITE_TOOBIG (18): string or BLOB too large\n case 'SQLITE_TOOBIG':\n return new DataError(message, innerError);\n\n // SQLITE_MISMATCH (20): datatype mismatch\n case 'SQLITE_MISMATCH':\n return new DataError(message, innerError);\n\n // SQLITE_RANGE (25): bind parameter index out of range\n case 'SQLITE_RANGE':\n return new DataError(message, innerError);\n\n // ── Invalid operations ──\n // SQLITE_ERROR (1): generic SQL error (syntax errors, missing tables, etc.)\n case 'SQLITE_ERROR':\n return new InvalidOperationError(message, innerError);\n\n // SQLITE_READONLY (8): attempt to write to a read-only database\n case 'SQLITE_READONLY':\n return new InvalidOperationError(message, innerError);\n\n // SQLITE_MISUSE (21): API misuse\n case 'SQLITE_MISUSE':\n return new InvalidOperationError(message, innerError);\n\n // SQLITE_AUTH (23): authorization denied\n case 'SQLITE_AUTH':\n return new InvalidOperationError(message, innerError);\n\n // SQLITE_PERM (3): access permission denied\n case 'SQLITE_PERM':\n return new InvalidOperationError(message, innerError);\n\n // SQLITE_SCHEMA (17): schema changed, statement needs re-preparation\n case 'SQLITE_SCHEMA':\n return new InvalidOperationError(message, innerError);\n\n // ── Transaction / abort ──\n // SQLITE_ABORT (4): operation aborted (e.g. by rollback)\n case 'SQLITE_ABORT':\n return new SerializationError(message, innerError);\n\n // SQLITE_INTERRUPT (9): operation interrupted\n case 'SQLITE_INTERRUPT':\n return new SerializationError(message, innerError);\n }\n\n return new DumboError({\n errorCode: 500,\n message,\n innerError,\n });\n};\n","import {\n mapDefaultSQLColumnProcessors,\n type DefaultSQLColumnProcessors,\n type DefaultSQLColumnToken,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nconst mapColumnType = (\n token: DefaultSQLColumnToken,\n { builder }: SQLProcessorContext,\n): void => {\n let columnSQL: string;\n const { sqlTokenType } = token;\n switch (sqlTokenType) {\n case 'SQL_COLUMN_AUTO_INCREMENT':\n columnSQL = `INTEGER ${token.primaryKey ? 'PRIMARY KEY' : ''} AUTOINCREMENT`;\n break;\n case 'SQL_COLUMN_BIGINT':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_SERIAL':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_INTEGER':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_JSONB':\n columnSQL = 'BLOB';\n break;\n case 'SQL_COLUMN_BIGSERIAL':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_TIMESTAMP':\n columnSQL = 'DATETIME';\n break;\n case 'SQL_COLUMN_TIMESTAMPTZ':\n columnSQL = 'DATETIME';\n break;\n case 'SQL_COLUMN_VARCHAR':\n columnSQL = `VARCHAR ${Number.isNaN(token.length) ? '' : `(${token.length})`}`;\n break;\n default: {\n const exhaustiveCheck: never = sqlTokenType;\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Unknown column type: ${exhaustiveCheck}`);\n }\n }\n builder.addSQL(columnSQL);\n};\n\nexport const sqliteColumnProcessors: DefaultSQLColumnProcessors =\n mapDefaultSQLColumnProcessors(mapColumnType);\n","import {\n defaultProcessorsRegistry,\n registerFormatter,\n SQLFormatter,\n SQLProcessorsRegistry,\n} from '../../../../../core/sql';\nimport { sqliteColumnProcessors } from '../processors';\n\nconst sqliteSQLProcessorsRegistry = SQLProcessorsRegistry({\n from: defaultProcessorsRegistry,\n}).register(sqliteColumnProcessors);\n\nconst sqliteFormatter: SQLFormatter = SQLFormatter({\n processorsRegistry: sqliteSQLProcessorsRegistry,\n});\n\nregisterFormatter('SQLite', sqliteFormatter);\n\nexport { sqliteFormatter };\n","import type { SQLiteDriverType } from '..';\nimport type { JSONSerializer, SQLFormatter, SQL } from '../../../../core';\nimport {\n mapSQLQueryResult,\n tracer,\n type BatchSQLCommandOptions,\n type DbSQLExecutor,\n type QueryResult,\n type QueryResultRow,\n type SQLCommandOptions,\n type SQLQueryOptions,\n} from '../../../../core';\nimport type { DumboError } from '../../../../core/errors';\nimport type { SQLiteClient } from '../connections';\nimport { mapSqliteError } from '../errors/errorMapper';\nimport { sqliteFormatter } from '../sql/formatter';\n\nexport type SQLiteErrorMapper = (error: unknown) => DumboError;\n\nexport const sqliteExecute = async <Result = void>(\n database: SQLiteClient,\n handle: (client: SQLiteClient) => Promise<Result>,\n) => {\n try {\n return await handle(database);\n } finally {\n await database.close();\n }\n};\n\nexport type SQLiteSQLExecutor<\n DriverType extends SQLiteDriverType = SQLiteDriverType,\n> = DbSQLExecutor<DriverType, SQLiteClient>;\n\nexport const sqliteSQLExecutor = <\n DriverType extends SQLiteDriverType = SQLiteDriverType,\n>(\n driverType: DriverType,\n serializer: JSONSerializer,\n formatter?: SQLFormatter,\n errorMapper?: SQLiteErrorMapper,\n): SQLiteSQLExecutor<DriverType> => ({\n driverType,\n query: async <Result extends QueryResultRow = QueryResultRow>(\n client: SQLiteClient,\n sql: SQL,\n options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>> => {\n tracer.info('db:sql:query', {\n query: (formatter ?? sqliteFormatter).format(sql, { serializer }).query,\n params: (formatter ?? sqliteFormatter).format(sql, { serializer }).params,\n debugSQL: (formatter ?? sqliteFormatter).describe(sql, { serializer }),\n });\n\n try {\n let result = await client.query<Result>(sql, options);\n\n if (options?.mapping) {\n result = {\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n };\n }\n\n return result;\n } catch (error) {\n tracer.error('db:sql:query:execute:error', { error });\n throw (errorMapper ?? mapSqliteError)(error);\n }\n },\n batchQuery: async <Result extends QueryResultRow = QueryResultRow>(\n client: SQLiteClient,\n sqls: SQL[],\n options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>[]> => {\n try {\n const results = await client.batchQuery<Result>(sqls, options);\n\n if (options?.mapping) {\n return results.map((result) => ({\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n }));\n }\n\n return results;\n } catch (error) {\n tracer.error('db:sql:batch_query:execute:error', { error });\n throw (errorMapper ?? mapSqliteError)(error);\n }\n },\n command: async <Result extends QueryResultRow = QueryResultRow>(\n client: SQLiteClient,\n sql: SQL,\n options?: SQLCommandOptions,\n ): Promise<QueryResult<Result>> => {\n tracer.info('db:sql:command', {\n query: (formatter ?? sqliteFormatter).format(sql, { serializer }).query,\n params: (formatter ?? sqliteFormatter).format(sql, { serializer }).params,\n debugSQL: (formatter ?? sqliteFormatter).describe(sql, { serializer }),\n });\n\n try {\n return await client.command<Result>(sql, options);\n } catch (error) {\n tracer.error('db:sql:command:execute:error', { error });\n throw (errorMapper ?? mapSqliteError)(error);\n }\n },\n batchCommand: async <Result extends QueryResultRow = QueryResultRow>(\n client: SQLiteClient,\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 (errorMapper ?? mapSqliteError)(error);\n }\n },\n formatter: formatter ?? sqliteFormatter,\n});\n","import type {\n InferTransactionFromConnection,\n JSONSerializer,\n} from '../../../../core';\nimport {\n InvalidOperationError,\n SQL,\n sqlExecutor,\n type DatabaseTransaction,\n type DatabaseTransactionOptions,\n type InferDbClientFromConnection,\n} from '../../../../core';\nimport { sqliteSQLExecutor } from '../../core/execute';\nimport {\n transactionNestingCounter,\n type AnySQLiteConnection,\n type SQLiteClientOrPoolClient,\n} from '../connections';\n\nexport type SQLiteTransaction<\n ConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n TransactionOptions extends SQLiteTransactionOptions =\n SQLiteTransactionOptions,\n> = DatabaseTransaction<ConnectionType, TransactionOptions>;\n\nexport type SQLiteTransactionMode = 'DEFERRED' | 'IMMEDIATE' | 'EXCLUSIVE';\n\nexport type SQLiteTransactionOptions = DatabaseTransactionOptions & {\n mode?: SQLiteTransactionMode;\n useSavepoints?: boolean;\n};\n\nexport const sqliteTransaction =\n <ConnectionType extends AnySQLiteConnection = AnySQLiteConnection>(\n driverType: ConnectionType['driverType'],\n connection: () => ConnectionType,\n allowNestedTransactions: boolean,\n serializer: JSONSerializer,\n defaultTransactionMode?: 'IMMEDIATE' | 'DEFERRED' | 'EXCLUSIVE',\n ) =>\n (\n getClient: Promise<InferDbClientFromConnection<ConnectionType>>,\n options?: {\n close: (\n client: InferDbClientFromConnection<ConnectionType>,\n error?: unknown,\n ) => Promise<void>;\n } & SQLiteTransactionOptions,\n ): InferTransactionFromConnection<ConnectionType> => {\n const transactionCounter = transactionNestingCounter();\n allowNestedTransactions =\n options?.allowNestedTransactions ?? allowNestedTransactions;\n\n let hasBegun = false;\n\n const transaction: DatabaseTransaction<ConnectionType> = {\n connection: connection(),\n driverType,\n begin: async function () {\n const client = (await getClient) as SQLiteClientOrPoolClient;\n\n if (allowNestedTransactions) {\n if (transactionCounter.level >= 1) {\n transactionCounter.increment();\n if (options?.useSavepoints) {\n await client.command(\n SQL`SAVEPOINT transaction${SQL.plain(transactionCounter.level.toString())}`,\n );\n }\n return;\n }\n\n transactionCounter.increment();\n } else if (hasBegun) {\n throw new InvalidOperationError(\n 'Cannot start a nested transaction: allowNestedTransactions is false. ' +\n 'Set transactionOptions: { allowNestedTransactions: true } on your pool or connection.',\n );\n }\n\n hasBegun = true;\n const mode = options?.mode ?? defaultTransactionMode ?? 'IMMEDIATE';\n await client.command(SQL`BEGIN ${SQL.plain(mode)} TRANSACTION`);\n },\n commit: async function () {\n const client = (await getClient) as SQLiteClientOrPoolClient;\n\n if (allowNestedTransactions && transactionCounter.level > 1) {\n if (options?.useSavepoints) {\n await client.command(\n SQL`RELEASE transaction${SQL.plain(transactionCounter.level.toString())}`,\n );\n }\n transactionCounter.decrement();\n return;\n }\n\n try {\n if (allowNestedTransactions) transactionCounter.reset();\n hasBegun = false;\n await client.command(SQL`COMMIT`);\n } finally {\n if (options?.close)\n await options?.close(\n client as InferDbClientFromConnection<ConnectionType>,\n );\n }\n },\n rollback: async function (error?: unknown) {\n const client = (await getClient) as SQLiteClientOrPoolClient;\n\n if (allowNestedTransactions && transactionCounter.level > 1) {\n transactionCounter.decrement();\n return;\n }\n\n try {\n hasBegun = false;\n await client.command(SQL`ROLLBACK`);\n } finally {\n if (options?.close)\n await options?.close(\n client as InferDbClientFromConnection<ConnectionType>,\n error,\n );\n }\n },\n execute: sqlExecutor(sqliteSQLExecutor(driverType, serializer), {\n connect: () => getClient,\n }),\n _transactionOptions: {\n ...options,\n allowNestedTransactions,\n },\n };\n\n return transaction as InferTransactionFromConnection<ConnectionType>;\n };\n","import type { DatabaseConnectionString } from '../../../all';\n\nexport type SQLitePragmaOptions = {\n journal_mode?: 'DELETE' | 'TRUNCATE' | 'PERSIST' | 'MEMORY' | 'WAL' | 'OFF';\n synchronous?: 'OFF' | 'NORMAL' | 'FULL' | 'EXTRA';\n cache_size?: number;\n foreign_keys?: boolean;\n temp_store?: 'DEFAULT' | 'FILE' | 'MEMORY';\n busy_timeout?: number;\n mmap_size?: number;\n};\n\nexport type SQLiteConnectionString = DatabaseConnectionString<\n 'SQLite',\n `file:${string}` | `:memory:` | `/${string}` | `./${string}`\n>;\n\nexport const SQLiteConnectionString = (\n connectionString: string,\n): SQLiteConnectionString => {\n if (\n !connectionString.startsWith('file:') &&\n connectionString !== ':memory:' &&\n !connectionString.startsWith('/') &&\n !connectionString.startsWith('./')\n ) {\n throw new Error(\n `Invalid SQLite connection string: ${connectionString}. It should start with \"file:\", \":memory:\", \"/\", or \"./\".`,\n );\n }\n return connectionString as SQLiteConnectionString;\n};\n\nexport const parsePragmasFromConnectionString = (\n connectionString: string | SQLiteConnectionString,\n): Partial<SQLitePragmaOptions> => {\n const str = String(connectionString);\n\n if (!str.startsWith('file:')) {\n return {};\n }\n\n const url = new URL(str);\n const params = url.searchParams;\n const pragmas: Partial<SQLitePragmaOptions> = {};\n\n const journalMode = params.get('journal_mode');\n if (journalMode !== null) {\n pragmas.journal_mode = journalMode as\n 'DELETE' | 'TRUNCATE' | 'PERSIST' | 'MEMORY' | 'WAL' | 'OFF';\n }\n\n const synchronous = params.get('synchronous');\n if (synchronous !== null) {\n pragmas.synchronous = synchronous as 'OFF' | 'NORMAL' | 'FULL' | 'EXTRA';\n }\n\n const cacheSize = params.get('cache_size');\n if (cacheSize !== null) {\n pragmas.cache_size = parseInt(cacheSize, 10);\n }\n\n const foreignKeys = params.get('foreign_keys');\n if (foreignKeys !== null) {\n const val = foreignKeys.toLowerCase();\n pragmas.foreign_keys = val === 'true' || val === 'on' || val === '1';\n }\n\n const tempStore = params.get('temp_store');\n if (tempStore !== null) {\n pragmas.temp_store = tempStore.toUpperCase() as\n 'DEFAULT' | 'FILE' | 'MEMORY';\n }\n\n const busyTimeout = params.get('busy_timeout');\n if (busyTimeout !== null) {\n pragmas.busy_timeout = parseInt(busyTimeout, 10);\n }\n\n const mmapSize = params.get('mmap_size');\n if (mmapSize !== null) {\n pragmas.mmap_size = parseInt(mmapSize, 10);\n }\n\n return pragmas;\n};\n","import type { SQLiteDriverType } from '..';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n createAmbientConnection,\n createConnection,\n type AnyConnection,\n type BatchSQLCommandOptions,\n type Connection,\n type ConnectionOptions,\n type DatabaseTransaction,\n type InferDbClientFromConnection,\n type InferDriverTypeFromConnection,\n type InitTransaction,\n type SQLCommandOptions,\n type SQLExecutor,\n} from '../../../../core';\nimport { mapSqliteError } from '../errors';\nimport { sqliteSQLExecutor, type SQLiteErrorMapper } from '../execute';\nimport { sqliteTransaction, type SQLiteTransactionMode } from '../transactions';\nimport {\n SQLiteConnectionString,\n type SQLitePragmaOptions,\n} from './connectionString';\n\nexport type SQLiteCommandOptions = SQLCommandOptions & {\n ignoreChangesCount?: boolean;\n};\n\nexport type BatchSQLiteCommandOptions = SQLiteCommandOptions &\n BatchSQLCommandOptions;\n\nexport type SQLiteParameters =\n object | string | bigint | number | boolean | null;\n\nexport type SQLiteClient = {\n connect: () => Promise<void>;\n close: () => Promise<void>;\n} & SQLExecutor;\n\nexport type SQLitePoolClient = {\n release: () => void;\n} & SQLExecutor;\n\nexport type SQLiteClientFactory<\n SQLiteClientType extends SQLiteClient = SQLiteClient,\n ClientOptions = SQLiteClientOptions,\n> = (options: ClientOptions) => SQLiteClientType;\n\nexport type SQLiteClientOrPoolClient = SQLitePoolClient | SQLiteClient;\n\nexport interface SQLiteError extends Error {\n errno: number;\n}\n\nexport const isSQLiteError = (error: unknown): error is SQLiteError => {\n if (error instanceof Error && 'code' in error) {\n return true;\n }\n\n return false;\n};\n\nexport type SQLiteClientConnection<\n Self extends AnyConnection = AnyConnection,\n DriverType extends SQLiteDriverType = SQLiteDriverType,\n SQLiteClientType extends SQLiteClient = SQLiteClient,\n TransactionType extends DatabaseTransaction<Self> = DatabaseTransaction<Self>,\n> = Connection<Self, DriverType, SQLiteClientType, TransactionType>;\n\nexport type SQLitePoolClientConnection<\n Self extends AnyConnection = AnyConnection,\n DriverType extends SQLiteDriverType = SQLiteDriverType,\n SQLitePoolClientType extends SQLitePoolClient = SQLitePoolClient,\n TransactionType extends DatabaseTransaction<Self> = DatabaseTransaction<Self>,\n> = Connection<Self, DriverType, SQLitePoolClientType, TransactionType>;\n\nexport type SQLiteConnection<\n Self extends AnyConnection = AnyConnection,\n DriverType extends SQLiteDriverType = SQLiteDriverType,\n SQLiteClientType extends SQLiteClientOrPoolClient =\n SQLiteClient | SQLitePoolClient,\n TransactionType extends DatabaseTransaction<Self> = DatabaseTransaction<Self>,\n> =\n | (SQLiteClientType extends SQLiteClient\n ? SQLiteClientConnection<\n Self,\n DriverType,\n SQLiteClientType,\n TransactionType\n >\n : never)\n | (SQLiteClientType extends SQLitePoolClient\n ? SQLitePoolClientConnection<\n Self,\n DriverType,\n SQLiteClientType,\n TransactionType\n >\n : never);\n\nexport type AnySQLiteClientConnection =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n SQLiteClientConnection<any, any>;\n\nexport type AnySQLitePoolClientConnection =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n SQLitePoolClientConnection<any, any, any, any>;\n\nexport type AnySQLiteConnection =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n SQLiteConnection<any, any, any, any>;\n\nexport type SQLiteConnectionOptions<\n ConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> = ConnectionOptions<ConnectionType> & SQLiteClientOptions;\n\nexport type SQLiteClientConnectionDefinitionOptions<\n SQLiteConnectionType extends AnySQLiteClientConnection =\n AnySQLiteClientConnection,\n ConnectionOptions = SQLiteConnectionOptions,\n> = {\n driverType: InferDriverTypeFromConnection<SQLiteConnectionType>;\n type: 'Client';\n sqliteClientFactory: SQLiteClientFactory<\n InferDbClientFromConnection<SQLiteConnectionType>,\n ConnectionOptions\n >;\n connectionOptions: SQLiteConnectionOptions<SQLiteConnectionType>;\n serializer: JSONSerializer;\n};\n\nexport type SQLitePoolConnectionDefinitionOptions<\n SQLiteConnectionType extends AnySQLitePoolClientConnection =\n AnySQLitePoolClientConnection,\n ConnectionOptions = SQLiteConnectionOptions,\n> = {\n driverType: InferDriverTypeFromConnection<SQLiteConnectionType>;\n type: 'PoolClient';\n sqliteClientFactory: SQLiteClientFactory<\n InferDbClientFromConnection<SQLiteConnectionType>,\n ConnectionOptions\n >;\n connectionOptions: SQLiteConnectionOptions<SQLiteConnectionType>;\n serializer: JSONSerializer;\n};\n\nexport type SQLiteConnectionDefinitionOptions<\n SQLiteConnectionType extends AnySQLitePoolClientConnection =\n AnySQLitePoolClientConnection,\n ClientOptions = SQLiteClientOptions,\n> =\n | SQLiteClientConnectionDefinitionOptions<SQLiteConnectionType, ClientOptions>\n | SQLitePoolConnectionDefinitionOptions<SQLiteConnectionType, ClientOptions>;\n\nexport type SQLiteConnectionFactory<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions = SQLiteConnectionOptions,\n> = (options: ConnectionOptions) => SQLiteConnectionType;\n\nexport type TransactionNestingCounter = {\n increment: () => void;\n decrement: () => void;\n reset: () => void;\n level: number;\n};\n\nexport const transactionNestingCounter = (): TransactionNestingCounter => {\n let transactionLevel = 0;\n\n return {\n reset: () => {\n transactionLevel = 0;\n },\n increment: () => {\n transactionLevel++;\n },\n decrement: () => {\n transactionLevel--;\n\n if (transactionLevel < 0) {\n throw new Error('Transaction level is out of bounds');\n }\n },\n get level() {\n return transactionLevel;\n },\n };\n};\n\nexport type SqliteAmbientClientConnectionOptions<\n SQLiteConnectionType extends AnySQLiteClientConnection =\n AnySQLiteClientConnection,\n> = {\n driverType: SQLiteConnectionType['driverType'];\n client: InferDbClientFromConnection<SQLiteConnectionType>;\n initTransaction?: InitTransaction<SQLiteConnectionType>;\n allowNestedTransactions?: boolean;\n defaultTransactionMode?: SQLiteTransactionMode;\n serializer: JSONSerializer;\n errorMapper?: SQLiteErrorMapper;\n};\n\nexport const sqliteAmbientClientConnection = <\n SQLiteConnectionType extends AnySQLiteClientConnection =\n AnySQLiteClientConnection,\n>(\n options: SqliteAmbientClientConnectionOptions<SQLiteConnectionType>,\n) => {\n const {\n client,\n driverType,\n initTransaction,\n allowNestedTransactions,\n defaultTransactionMode,\n serializer,\n errorMapper,\n } = options;\n\n return createAmbientConnection<SQLiteConnectionType>({\n driverType,\n client,\n initTransaction:\n initTransaction ??\n ((connection) =>\n sqliteTransaction(\n driverType,\n connection,\n allowNestedTransactions ?? false,\n serializer,\n defaultTransactionMode,\n )),\n executor: ({ serializer }) =>\n sqliteSQLExecutor(driverType, serializer, undefined, errorMapper),\n serializer,\n });\n};\n\nexport const sqliteClientConnection = <\n SQLiteConnectionType extends AnySQLiteClientConnection =\n AnySQLiteClientConnection,\n ClientOptions = SQLiteClientOptions,\n>(\n options: SQLiteClientConnectionDefinitionOptions<\n SQLiteConnectionType,\n ClientOptions\n >,\n): SQLiteConnectionType => {\n const { connectionOptions, sqliteClientFactory, serializer } = options;\n\n let client: InferDbClientFromConnection<SQLiteConnectionType> | null = null;\n\n const connect = async (): Promise<\n InferDbClientFromConnection<SQLiteConnectionType>\n > => {\n if (client) return Promise.resolve(client);\n\n client = sqliteClientFactory(connectionOptions as ClientOptions);\n\n if (client && 'connect' in client && typeof client.connect === 'function') {\n try {\n await client.connect();\n } catch (error) {\n throw mapSqliteError(error);\n }\n }\n\n return client;\n };\n\n return createConnection({\n driverType: options.driverType,\n connect,\n close: async () => {\n if (client && 'close' in client && typeof client.close === 'function')\n await client.close();\n else if (\n client &&\n 'release' in client &&\n typeof client.release === 'function'\n )\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n client.release();\n },\n initTransaction: (connection) =>\n sqliteTransaction(\n options.driverType,\n connection,\n connectionOptions.transactionOptions?.allowNestedTransactions ?? false,\n serializer,\n connectionOptions.defaultTransactionMode,\n ),\n executor: ({ serializer }) =>\n sqliteSQLExecutor(options.driverType, serializer),\n serializer,\n });\n};\n\nexport const sqlitePoolClientConnection = <\n SQLiteConnectionType extends AnySQLiteClientConnection =\n AnySQLiteClientConnection,\n ClientOptions = SQLiteClientOptions,\n>(\n options: SQLitePoolConnectionDefinitionOptions<\n SQLiteConnectionType,\n ClientOptions\n >,\n): SQLiteConnectionType => {\n const { connectionOptions, sqliteClientFactory, serializer } = options;\n\n let client: InferDbClientFromConnection<SQLiteConnectionType> | null = null;\n\n const connect = async (): Promise<\n InferDbClientFromConnection<SQLiteConnectionType>\n > => {\n if (client) return Promise.resolve(client);\n\n client = sqliteClientFactory(connectionOptions as ClientOptions);\n\n try {\n await client.connect();\n } catch (error) {\n throw mapSqliteError(error);\n }\n\n return client;\n };\n\n return createConnection({\n driverType: options.driverType,\n connect,\n close: () =>\n client !== null\n ? Promise.resolve((client as unknown as SQLitePoolClient).release())\n : Promise.resolve(),\n initTransaction: (connection) =>\n sqliteTransaction(\n options.driverType,\n connection,\n connectionOptions.transactionOptions?.allowNestedTransactions ?? false,\n serializer,\n connectionOptions.defaultTransactionMode,\n ),\n executor: ({ serializer }) =>\n sqliteSQLExecutor(options.driverType, serializer),\n serializer,\n });\n};\n\nexport function sqliteConnection<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ClientOptions = SQLiteClientOptions,\n>(\n options: SQLiteConnectionDefinitionOptions<\n SQLiteConnectionType,\n ClientOptions\n >,\n): SQLiteConnectionType {\n return options.type === 'Client'\n ? sqliteClientConnection(options)\n : sqlitePoolClientConnection(options);\n}\n\nexport type InMemorySQLiteDatabase = ':memory:';\nexport const InMemorySQLiteDatabase = SQLiteConnectionString(':memory:');\n\nexport type { SQLitePragmaOptions } from './connectionString';\n\nexport const DEFAULT_SQLITE_PRAGMA_OPTIONS: SQLitePragmaOptions = {\n journal_mode: 'WAL',\n synchronous: 'NORMAL',\n cache_size: -1000000,\n foreign_keys: true,\n temp_store: 'MEMORY',\n busy_timeout: 5000,\n mmap_size: 268435456,\n};\n\nexport type SQLiteClientOptions = {\n pragmaOptions?: Partial<SQLitePragmaOptions>;\n defaultTransactionMode?: SQLiteTransactionMode;\n skipDatabasePragmas?: boolean;\n readonly?: boolean;\n};\n\nexport * from './connectionString';\n","import type { SQLiteConnectionString } from '../connections/connectionString';\nimport {\n InMemorySQLiteDatabase,\n type AnySQLiteConnection,\n type SQLiteConnectionFactory,\n type SQLiteConnectionOptions,\n} from '../connections';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n createAlwaysNewConnectionPool,\n createAmbientConnectionPool,\n createSingletonConnectionPool,\n type ConnectionPool,\n} from '../../../../core';\n\nexport type SQLiteFileNameOrConnectionString =\n | {\n fileName: string | SQLiteConnectionString;\n connectionString?: never;\n }\n | {\n connectionString: string | SQLiteConnectionString;\n fileName?: never;\n };\n\nexport const isInMemoryDatabase = (\n options: Record<string, unknown>,\n): boolean => {\n if ('fileName' in options) {\n return options.fileName === InMemorySQLiteDatabase;\n }\n if ('connectionString' in options) {\n return options.connectionString === InMemorySQLiteDatabase;\n }\n return false;\n};\n\nexport type SQLiteAmbientConnectionPool<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> = ConnectionPool<SQLiteConnectionType>;\n\ntype SQLiteAmbientConnectionPoolOptions<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> = {\n singleton?: true;\n pooled?: false;\n sqliteConnectionFactory?: never;\n connection: SQLiteConnectionType;\n connectionOptions?: never;\n};\n\nexport const sqliteAmbientConnectionPool = <\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n>(\n options: {\n driverType: SQLiteConnectionType['driverType'];\n } & SQLiteAmbientConnectionPoolOptions<SQLiteConnectionType['driverType']>,\n): SQLiteAmbientConnectionPool<SQLiteConnectionType['driverType']> => {\n const { connection, driverType } = options;\n\n return createAmbientConnectionPool<SQLiteConnectionType>({\n driverType,\n connection: connection,\n });\n};\n\ntype SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions = SQLiteConnectionOptions,\n> = {\n singleton: true;\n pooled?: true;\n sqliteConnectionFactory: SQLiteConnectionFactory<\n SQLiteConnectionType,\n ConnectionOptions\n >;\n connection?: never;\n connectionOptions: ConnectionOptions;\n};\n\nexport type SQLiteSingletonConnectionPool<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> = ConnectionPool<SQLiteConnectionType>;\n\nexport const sqliteSingletonConnectionPool = <\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions & Record<string, unknown> =\n SQLiteConnectionOptions & Record<string, unknown>,\n>(\n options: {\n driverType: SQLiteConnectionType['driverType'];\n } & SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n >,\n): SQLiteSingletonConnectionPool<SQLiteConnectionType> => {\n const { driverType, sqliteConnectionFactory, connectionOptions } = options;\n\n return createSingletonConnectionPool<SQLiteConnectionType>({\n driverType,\n getConnection: () => sqliteConnectionFactory(connectionOptions),\n });\n};\n\ntype SQLiteAlwaysNewPoolOptions<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions = SQLiteConnectionOptions,\n> = {\n singleton?: false;\n pooled?: true;\n sqliteConnectionFactory: SQLiteConnectionFactory<\n SQLiteConnectionType,\n ConnectionOptions\n >;\n connection?: never;\n connectionOptions: ConnectionOptions;\n};\n\nexport type SQLiteAlwaysNewConnectionPool<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> = ConnectionPool<SQLiteConnectionType>;\n\nexport const sqliteAlwaysNewConnectionPool = <\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions & Record<string, unknown> =\n SQLiteConnectionOptions & Record<string, unknown>,\n>(\n options: {\n driverType: SQLiteConnectionType['driverType'];\n } & SQLiteAlwaysNewPoolOptions<SQLiteConnectionType, ConnectionOptions>,\n): SQLiteAlwaysNewConnectionPool<SQLiteConnectionType> => {\n const { driverType, sqliteConnectionFactory, connectionOptions } = options;\n\n return createAlwaysNewConnectionPool<SQLiteConnectionType>({\n driverType,\n getConnection: () => sqliteConnectionFactory(connectionOptions),\n });\n};\n\nexport type SQLitePoolOptions<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions = SQLiteConnectionOptions,\n> = (\n | SQLiteAlwaysNewPoolOptions<SQLiteConnectionType, ConnectionOptions>\n | SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n >\n | SQLiteAmbientConnectionPoolOptions<SQLiteConnectionType>\n) & {\n driverType: SQLiteConnectionType['driverType'];\n serializer?: JSONSerializer;\n};\n\nexport type SQLitePool<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> =\n | SQLiteAmbientConnectionPool<SQLiteConnectionType>\n | SQLiteSingletonConnectionPool<SQLiteConnectionType>\n | SQLiteAlwaysNewConnectionPool<SQLiteConnectionType>;\n\nexport type SQLitePoolFactoryOptions<\n SQLiteConnectionType extends AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions,\n> = Omit<\n SQLitePoolOptions<SQLiteConnectionType, ConnectionOptions>,\n 'singleton'\n> & {\n singleton?: boolean;\n};\n\nexport const toSqlitePoolOptions = <\n SQLiteConnectionType extends AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions,\n>(\n options: SQLitePoolFactoryOptions<SQLiteConnectionType, ConnectionOptions>,\n): SQLitePoolOptions<SQLiteConnectionType, ConnectionOptions> => {\n const { singleton, ...rest } = options;\n const isInMemory = isInMemoryDatabase(options);\n\n if ('client' in options && options.client) {\n return { ...rest, singleton: true } as SQLitePoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n >;\n }\n\n if (isInMemory) {\n return { ...rest, singleton: true } as SQLitePoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n >;\n }\n\n if (singleton === true) {\n return { ...rest, singleton: true } as SQLitePoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n >;\n }\n\n return rest as SQLitePoolOptions<SQLiteConnectionType, ConnectionOptions>;\n};\n\nexport function sqlitePool<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions = SQLiteConnectionOptions,\n>(\n options: SQLitePoolOptions<SQLiteConnectionType, ConnectionOptions>,\n): SQLitePool<SQLiteConnectionType> {\n const { driverType } = options;\n\n if (\n (\n options as SQLiteAmbientConnectionPoolOptions<SQLiteConnectionType> & {\n driverType: SQLiteConnectionType['driverType'];\n }\n ).connection\n )\n return createAmbientConnectionPool<SQLiteConnectionType>({\n driverType,\n connection: (\n options as SQLiteAmbientConnectionPoolOptions<SQLiteConnectionType> & {\n driverType: SQLiteConnectionType['driverType'];\n }\n ).connection,\n });\n\n if (\n options.singleton === true &&\n (\n options as SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n > & { driverType: SQLiteConnectionType['driverType'] }\n ).sqliteConnectionFactory\n ) {\n return createSingletonConnectionPool({\n driverType,\n getConnection: () =>\n (\n options as SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n > & { driverType: SQLiteConnectionType['driverType'] }\n ).sqliteConnectionFactory(\n (\n options as SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n > & { driverType: SQLiteConnectionType['driverType'] }\n ).connectionOptions,\n ),\n });\n }\n\n return createAlwaysNewConnectionPool({\n driverType,\n getConnection: () =>\n (\n options as SQLiteAlwaysNewPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n > & { driverType: SQLiteConnectionType['driverType'] }\n ).sqliteConnectionFactory(\n (\n options as SQLiteAlwaysNewPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n > & { driverType: SQLiteConnectionType['driverType'] }\n ).connectionOptions,\n ),\n });\n}\n","import {\n registerDefaultMigratorOptions,\n type MigratorOptions,\n} from '../../../../core';\n\nexport const DefaultSQLiteMigratorOptions: MigratorOptions = {};\n\nregisterDefaultMigratorOptions('SQLite', DefaultSQLiteMigratorOptions);\n","import type { DatabaseDriverType } from '../../..';\n\nexport * from './connections';\nexport * from './errors';\nexport * from './execute';\nexport * from './pool';\nexport * from './schema';\nexport * from './sql';\nexport * from './transactions';\n\nexport type SQLiteDatabaseName = 'SQLite';\nexport const SQLiteDatabaseName = 'SQLite';\n\nexport type SQLiteDriverType<DriverName extends string = string> =\n DatabaseDriverType<SQLiteDatabaseName, DriverName>;\n\nexport type SQLiteDatabaseType = 'SQLite';\n"],"mappings":"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"}
1
+ {"version":3,"file":"core-gu5fi784.js","names":["exhaustiveCheck"],"sources":["../src/storage/sqlite/core/errors/errorMapper.ts","../src/storage/sqlite/core/sql/processors/columProcessors.ts","../src/storage/sqlite/core/sql/formatter/index.ts","../src/storage/sqlite/core/execute/execute.ts","../src/storage/sqlite/core/transactions/index.ts","../src/storage/sqlite/core/connections/connectionString.ts","../src/storage/sqlite/core/connections/index.ts","../src/storage/sqlite/core/pool/pool.ts","../src/storage/sqlite/core/schema/migrations.ts","../src/storage/sqlite/core/index.ts"],"sourcesContent":["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\n/**\n * Extracts the SQLite error code string from a `sqlite3` driver error.\n *\n * The `sqlite3` (node-sqlite3) driver sets `error.code` to a string like\n * `'SQLITE_CONSTRAINT'` and `error.errno` to the numeric result code.\n * See: https://github.com/TryGhost/node-sqlite3\n */\nconst getSqliteErrorCode = (error: unknown): string | undefined => {\n if (\n error instanceof Error &&\n 'code' in error &&\n typeof (error as Record<string, unknown>).code === 'string'\n ) {\n return (error as Record<string, unknown>).code as string;\n }\n return undefined;\n};\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 * Maps a constraint error to a specific DumboError subtype by inspecting the\n * error message. The `sqlite3` driver only exposes the primary result code\n * `SQLITE_CONSTRAINT` — the constraint subtype (UNIQUE, FOREIGN KEY, etc.)\n * is embedded in the message string by SQLite, e.g.:\n * \"SQLITE_CONSTRAINT: UNIQUE constraint failed: users.email\"\n *\n * Reference: https://www.sqlite.org/rescode.html (extended result codes 275–3091)\n */\nconst mapConstraintError = (\n message: string | undefined,\n innerError: Error | undefined,\n): DumboError => {\n const upperMessage = message?.toUpperCase() ?? '';\n\n // SQLITE_CONSTRAINT_UNIQUE (2067) / SQLITE_CONSTRAINT_PRIMARYKEY (1555)\n if (upperMessage.includes('UNIQUE') || upperMessage.includes('PRIMARY KEY'))\n return new UniqueConstraintError(message, innerError);\n\n // SQLITE_CONSTRAINT_FOREIGNKEY (787)\n if (upperMessage.includes('FOREIGN KEY'))\n return new ForeignKeyViolationError(message, innerError);\n\n // SQLITE_CONSTRAINT_NOTNULL (1299)\n if (upperMessage.includes('NOT NULL'))\n return new NotNullViolationError(message, innerError);\n\n // SQLITE_CONSTRAINT_CHECK (275)\n if (upperMessage.includes('CHECK'))\n return new CheckViolationError(message, innerError);\n\n // SQLITE_CONSTRAINT_ROWID (2579), SQLITE_CONSTRAINT_TRIGGER (1811),\n // SQLITE_CONSTRAINT_COMMITHOOK (531), SQLITE_CONSTRAINT_PINNED (2835),\n // SQLITE_CONSTRAINT_DATATYPE (3091), etc.\n return new IntegrityConstraintViolationError(message, innerError);\n};\n\n/**\n * Maps a SQLite error (from the `sqlite3` / node-sqlite3 driver) to a typed\n * DumboError based on the SQLite result code.\n *\n * Result code reference: https://www.sqlite.org/rescode.html\n *\n * Falls back to a generic DumboError (500) if the error is not a recognized SQLite error.\n */\nexport const mapSqliteError = (error: unknown): DumboError => {\n if (DumboError.isInstanceOf<DumboError>(error)) return error;\n\n const code = getSqliteErrorCode(error);\n if (!code)\n return new DumboError({\n errorCode: 500,\n message: getErrorMessage(error),\n innerError: asError(error),\n });\n\n const message = getErrorMessage(error);\n const innerError = asError(error);\n\n switch (code) {\n // ── Constraint violations (19) ──\n // node-sqlite3 only exposes the primary code; subtype is in the message.\n case 'SQLITE_CONSTRAINT':\n return mapConstraintError(message, innerError);\n\n // ── Busy / lock contention ──\n // SQLITE_BUSY (5): conflict with a separate database connection\n case 'SQLITE_BUSY':\n return new LockNotAvailableError(message, innerError);\n\n // SQLITE_LOCKED (6): conflict within the same connection or shared cache\n case 'SQLITE_LOCKED':\n return new DeadlockError(message, innerError);\n\n // SQLITE_PROTOCOL (15): WAL locking race condition\n case 'SQLITE_PROTOCOL':\n return new LockNotAvailableError(message, innerError);\n\n // ── Connection / open errors ──\n // SQLITE_CANTOPEN (14): unable to open database file\n case 'SQLITE_CANTOPEN':\n return new ConnectionError(message, innerError);\n\n // SQLITE_NOTADB (26): file is not a database\n case 'SQLITE_NOTADB':\n return new ConnectionError(message, innerError);\n\n // ── Resource exhaustion ──\n // SQLITE_NOMEM (7): out of memory\n case 'SQLITE_NOMEM':\n return new InsufficientResourcesError(message, innerError);\n\n // SQLITE_FULL (13): disk full\n case 'SQLITE_FULL':\n return new InsufficientResourcesError(message, innerError);\n\n // ── System / I/O errors ──\n // SQLITE_IOERR (10): operating system I/O error\n case 'SQLITE_IOERR':\n return new SystemError(message, innerError);\n\n // SQLITE_CORRUPT (11): database file is corrupted\n case 'SQLITE_CORRUPT':\n return new SystemError(message, innerError);\n\n // SQLITE_INTERNAL (2): internal SQLite malfunction\n case 'SQLITE_INTERNAL':\n return new SystemError(message, innerError);\n\n // SQLITE_NOLFS (22): large file support unavailable\n case 'SQLITE_NOLFS':\n return new SystemError(message, innerError);\n\n // ── Data errors ──\n // SQLITE_TOOBIG (18): string or BLOB too large\n case 'SQLITE_TOOBIG':\n return new DataError(message, innerError);\n\n // SQLITE_MISMATCH (20): datatype mismatch\n case 'SQLITE_MISMATCH':\n return new DataError(message, innerError);\n\n // SQLITE_RANGE (25): bind parameter index out of range\n case 'SQLITE_RANGE':\n return new DataError(message, innerError);\n\n // ── Invalid operations ──\n // SQLITE_ERROR (1): generic SQL error (syntax errors, missing tables, etc.)\n case 'SQLITE_ERROR':\n return new InvalidOperationError(message, innerError);\n\n // SQLITE_READONLY (8): attempt to write to a read-only database\n case 'SQLITE_READONLY':\n return new InvalidOperationError(message, innerError);\n\n // SQLITE_MISUSE (21): API misuse\n case 'SQLITE_MISUSE':\n return new InvalidOperationError(message, innerError);\n\n // SQLITE_AUTH (23): authorization denied\n case 'SQLITE_AUTH':\n return new InvalidOperationError(message, innerError);\n\n // SQLITE_PERM (3): access permission denied\n case 'SQLITE_PERM':\n return new InvalidOperationError(message, innerError);\n\n // SQLITE_SCHEMA (17): schema changed, statement needs re-preparation\n case 'SQLITE_SCHEMA':\n return new InvalidOperationError(message, innerError);\n\n // ── Transaction / abort ──\n // SQLITE_ABORT (4): operation aborted (e.g. by rollback)\n case 'SQLITE_ABORT':\n return new SerializationError(message, innerError);\n\n // SQLITE_INTERRUPT (9): operation interrupted\n case 'SQLITE_INTERRUPT':\n return new SerializationError(message, innerError);\n }\n\n return new DumboError({\n errorCode: 500,\n message,\n innerError,\n });\n};\n","import {\n mapDefaultSQLColumnProcessors,\n type DefaultSQLColumnProcessors,\n type DefaultSQLColumnToken,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nconst mapColumnType = (\n token: DefaultSQLColumnToken,\n { builder }: SQLProcessorContext,\n): void => {\n let columnSQL: string;\n const { sqlTokenType } = token;\n switch (sqlTokenType) {\n case 'SQL_COLUMN_AUTO_INCREMENT':\n columnSQL = `INTEGER ${token.primaryKey ? 'PRIMARY KEY' : ''} AUTOINCREMENT`;\n break;\n case 'SQL_COLUMN_BIGINT':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_SERIAL':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_INTEGER':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_JSONB':\n columnSQL = 'BLOB';\n break;\n case 'SQL_COLUMN_BIGSERIAL':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_TIMESTAMP':\n columnSQL = 'DATETIME';\n break;\n case 'SQL_COLUMN_TIMESTAMPTZ':\n columnSQL = 'DATETIME';\n break;\n case 'SQL_COLUMN_VARCHAR':\n columnSQL = `VARCHAR ${Number.isNaN(token.length) ? '' : `(${token.length})`}`;\n break;\n default: {\n const exhaustiveCheck: never = sqlTokenType;\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Unknown column type: ${exhaustiveCheck}`);\n }\n }\n builder.addSQL(columnSQL);\n};\n\nexport const sqliteColumnProcessors: DefaultSQLColumnProcessors =\n mapDefaultSQLColumnProcessors(mapColumnType);\n","import {\n defaultProcessorsRegistry,\n registerFormatter,\n SQLFormatter,\n SQLProcessorsRegistry,\n} from '../../../../../core/sql';\nimport { sqliteColumnProcessors } from '../processors';\n\nconst sqliteSQLProcessorsRegistry = SQLProcessorsRegistry({\n from: defaultProcessorsRegistry,\n}).register(sqliteColumnProcessors);\n\nconst sqliteFormatter: SQLFormatter = SQLFormatter({\n processorsRegistry: sqliteSQLProcessorsRegistry,\n});\n\nregisterFormatter('SQLite', sqliteFormatter);\n\nexport { sqliteFormatter };\n","import type { SQLiteDriverType } from '..';\nimport type { JSONSerializer, SQLFormatter, SQL } from '../../../../core';\nimport {\n mapSQLQueryResult,\n tracer,\n type BatchSQLCommandOptions,\n type DbSQLExecutor,\n type QueryResult,\n type QueryResultRow,\n type SQLCommandOptions,\n type SQLQueryOptions,\n} from '../../../../core';\nimport type { DumboError } from '../../../../core/errors';\nimport type { SQLiteClient } from '../connections';\nimport { mapSqliteError } from '../errors/errorMapper';\nimport { sqliteFormatter } from '../sql/formatter';\n\nexport type SQLiteErrorMapper = (error: unknown) => DumboError;\n\nexport const sqliteExecute = async <Result = void>(\n database: SQLiteClient,\n handle: (client: SQLiteClient) => Promise<Result>,\n) => {\n try {\n return await handle(database);\n } finally {\n await database.close();\n }\n};\n\nexport type SQLiteSQLExecutor<\n DriverType extends SQLiteDriverType = SQLiteDriverType,\n> = DbSQLExecutor<DriverType, SQLiteClient>;\n\nexport const sqliteSQLExecutor = <\n DriverType extends SQLiteDriverType = SQLiteDriverType,\n>(\n driverType: DriverType,\n serializer: JSONSerializer,\n formatter?: SQLFormatter,\n errorMapper?: SQLiteErrorMapper,\n): SQLiteSQLExecutor<DriverType> => ({\n driverType,\n query: async <Result extends QueryResultRow = QueryResultRow>(\n client: SQLiteClient,\n sql: SQL,\n options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>> => {\n tracer.info('db:sql:query', {\n query: (formatter ?? sqliteFormatter).format(sql, { serializer }).query,\n params: (formatter ?? sqliteFormatter).format(sql, { serializer }).params,\n debugSQL: (formatter ?? sqliteFormatter).describe(sql, { serializer }),\n });\n\n try {\n let result = await client.query<Result>(sql, options);\n\n if (options?.mapping) {\n result = {\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n };\n }\n\n return result;\n } catch (error) {\n tracer.error('db:sql:query:execute:error', { error });\n throw (errorMapper ?? mapSqliteError)(error);\n }\n },\n batchQuery: async <Result extends QueryResultRow = QueryResultRow>(\n client: SQLiteClient,\n sqls: SQL[],\n options?: SQLQueryOptions,\n ): Promise<QueryResult<Result>[]> => {\n try {\n const results = await client.batchQuery<Result>(sqls, options);\n\n if (options?.mapping) {\n return results.map((result) => ({\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n }));\n }\n\n return results;\n } catch (error) {\n tracer.error('db:sql:batch_query:execute:error', { error });\n throw (errorMapper ?? mapSqliteError)(error);\n }\n },\n command: async <Result extends QueryResultRow = QueryResultRow>(\n client: SQLiteClient,\n sql: SQL,\n options?: SQLCommandOptions,\n ): Promise<QueryResult<Result>> => {\n tracer.info('db:sql:command', {\n query: (formatter ?? sqliteFormatter).format(sql, { serializer }).query,\n params: (formatter ?? sqliteFormatter).format(sql, { serializer }).params,\n debugSQL: (formatter ?? sqliteFormatter).describe(sql, { serializer }),\n });\n\n try {\n return await client.command<Result>(sql, options);\n } catch (error) {\n tracer.error('db:sql:command:execute:error', { error });\n throw (errorMapper ?? mapSqliteError)(error);\n }\n },\n batchCommand: async <Result extends QueryResultRow = QueryResultRow>(\n client: SQLiteClient,\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 (errorMapper ?? mapSqliteError)(error);\n }\n },\n formatter: formatter ?? sqliteFormatter,\n});\n","import type {\n InferTransactionFromConnection,\n JSONSerializer,\n} from '../../../../core';\nimport {\n InvalidOperationError,\n SQL,\n sqlExecutor,\n type DatabaseTransaction,\n type DatabaseTransactionOptions,\n type InferDbClientFromConnection,\n} from '../../../../core';\nimport { sqliteSQLExecutor } from '../../core/execute';\nimport {\n transactionNestingCounter,\n type AnySQLiteConnection,\n type SQLiteClientOrPoolClient,\n} from '../connections';\n\nexport type SQLiteTransaction<\n ConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n TransactionOptions extends SQLiteTransactionOptions =\n SQLiteTransactionOptions,\n> = DatabaseTransaction<ConnectionType, TransactionOptions>;\n\nexport type SQLiteTransactionMode = 'DEFERRED' | 'IMMEDIATE' | 'EXCLUSIVE';\n\nexport type SQLiteTransactionOptions = DatabaseTransactionOptions & {\n mode?: SQLiteTransactionMode;\n useSavepoints?: boolean;\n};\n\nexport const sqliteTransaction =\n <ConnectionType extends AnySQLiteConnection = AnySQLiteConnection>(\n driverType: ConnectionType['driverType'],\n connection: () => ConnectionType,\n allowNestedTransactions: boolean,\n serializer: JSONSerializer,\n defaultTransactionMode?: 'IMMEDIATE' | 'DEFERRED' | 'EXCLUSIVE',\n ) =>\n (\n getClient: Promise<InferDbClientFromConnection<ConnectionType>>,\n options?: {\n close: (\n client: InferDbClientFromConnection<ConnectionType>,\n error?: unknown,\n ) => Promise<void>;\n } & SQLiteTransactionOptions,\n ): InferTransactionFromConnection<ConnectionType> => {\n const transactionCounter = transactionNestingCounter();\n allowNestedTransactions =\n options?.allowNestedTransactions ?? allowNestedTransactions;\n\n let hasBegun = false;\n\n const transaction: DatabaseTransaction<ConnectionType> = {\n connection: connection(),\n driverType,\n begin: async function () {\n const client = (await getClient) as SQLiteClientOrPoolClient;\n\n if (allowNestedTransactions) {\n if (transactionCounter.level >= 1) {\n transactionCounter.increment();\n if (options?.useSavepoints) {\n await client.command(\n SQL`SAVEPOINT transaction${SQL.plain(transactionCounter.level.toString())}`,\n );\n }\n return;\n }\n\n transactionCounter.increment();\n } else if (hasBegun) {\n throw new InvalidOperationError(\n 'Cannot start a nested transaction: allowNestedTransactions is false. ' +\n 'Set transactionOptions: { allowNestedTransactions: true } on your pool or connection.',\n );\n }\n\n hasBegun = true;\n const mode = options?.mode ?? defaultTransactionMode ?? 'IMMEDIATE';\n await client.command(SQL`BEGIN ${SQL.plain(mode)} TRANSACTION`);\n },\n commit: async function () {\n const client = (await getClient) as SQLiteClientOrPoolClient;\n\n if (allowNestedTransactions && transactionCounter.level > 1) {\n if (options?.useSavepoints) {\n await client.command(\n SQL`RELEASE transaction${SQL.plain(transactionCounter.level.toString())}`,\n );\n }\n transactionCounter.decrement();\n return;\n }\n\n try {\n if (allowNestedTransactions) transactionCounter.reset();\n hasBegun = false;\n await client.command(SQL`COMMIT`);\n } finally {\n if (options?.close)\n await options?.close(\n client as InferDbClientFromConnection<ConnectionType>,\n );\n }\n },\n rollback: async function (error?: unknown) {\n const client = (await getClient) as SQLiteClientOrPoolClient;\n\n if (allowNestedTransactions && transactionCounter.level > 1) {\n transactionCounter.decrement();\n return;\n }\n\n try {\n hasBegun = false;\n await client.command(SQL`ROLLBACK`);\n } finally {\n if (options?.close)\n await options?.close(\n client as InferDbClientFromConnection<ConnectionType>,\n error,\n );\n }\n },\n execute: sqlExecutor(sqliteSQLExecutor(driverType, serializer), {\n connect: () => getClient,\n }),\n _transactionOptions: {\n ...options,\n allowNestedTransactions,\n },\n };\n\n return transaction as InferTransactionFromConnection<ConnectionType>;\n };\n","import type { DatabaseConnectionString } from '../../../all';\n\nexport type SQLitePragmaOptions = {\n journal_mode?: 'DELETE' | 'TRUNCATE' | 'PERSIST' | 'MEMORY' | 'WAL' | 'OFF';\n synchronous?: 'OFF' | 'NORMAL' | 'FULL' | 'EXTRA';\n cache_size?: number;\n foreign_keys?: boolean;\n temp_store?: 'DEFAULT' | 'FILE' | 'MEMORY';\n busy_timeout?: number;\n mmap_size?: number;\n};\n\nexport type SQLiteConnectionString = DatabaseConnectionString<\n 'SQLite',\n `file:${string}` | `:memory:` | `/${string}` | `./${string}`\n>;\n\nexport const SQLiteConnectionString = (\n connectionString: string,\n): SQLiteConnectionString => {\n if (\n !connectionString.startsWith('file:') &&\n connectionString !== ':memory:' &&\n !connectionString.startsWith('/') &&\n !connectionString.startsWith('./')\n ) {\n throw new Error(\n `Invalid SQLite connection string: ${connectionString}. It should start with \"file:\", \":memory:\", \"/\", or \"./\".`,\n );\n }\n return connectionString as SQLiteConnectionString;\n};\n\nexport const parsePragmasFromConnectionString = (\n connectionString: string | SQLiteConnectionString,\n): Partial<SQLitePragmaOptions> => {\n const str = String(connectionString);\n\n if (!str.startsWith('file:')) {\n return {};\n }\n\n const url = new URL(str);\n const params = url.searchParams;\n const pragmas: Partial<SQLitePragmaOptions> = {};\n\n const journalMode = params.get('journal_mode');\n if (journalMode !== null) {\n pragmas.journal_mode = journalMode as\n 'DELETE' | 'TRUNCATE' | 'PERSIST' | 'MEMORY' | 'WAL' | 'OFF';\n }\n\n const synchronous = params.get('synchronous');\n if (synchronous !== null) {\n pragmas.synchronous = synchronous as 'OFF' | 'NORMAL' | 'FULL' | 'EXTRA';\n }\n\n const cacheSize = params.get('cache_size');\n if (cacheSize !== null) {\n pragmas.cache_size = parseInt(cacheSize, 10);\n }\n\n const foreignKeys = params.get('foreign_keys');\n if (foreignKeys !== null) {\n const val = foreignKeys.toLowerCase();\n pragmas.foreign_keys = val === 'true' || val === 'on' || val === '1';\n }\n\n const tempStore = params.get('temp_store');\n if (tempStore !== null) {\n pragmas.temp_store = tempStore.toUpperCase() as\n 'DEFAULT' | 'FILE' | 'MEMORY';\n }\n\n const busyTimeout = params.get('busy_timeout');\n if (busyTimeout !== null) {\n pragmas.busy_timeout = parseInt(busyTimeout, 10);\n }\n\n const mmapSize = params.get('mmap_size');\n if (mmapSize !== null) {\n pragmas.mmap_size = parseInt(mmapSize, 10);\n }\n\n return pragmas;\n};\n","import type { SQLiteDriverType } from '..';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n createAmbientConnection,\n createConnection,\n type AnyConnection,\n type BatchSQLCommandOptions,\n type Connection,\n type ConnectionOptions,\n type DatabaseTransaction,\n type InferDbClientFromConnection,\n type InferDriverTypeFromConnection,\n type InitTransaction,\n type SQLCommandOptions,\n type SQLExecutor,\n} from '../../../../core';\nimport { mapSqliteError } from '../errors';\nimport { sqliteSQLExecutor, type SQLiteErrorMapper } from '../execute';\nimport { sqliteTransaction, type SQLiteTransactionMode } from '../transactions';\nimport {\n SQLiteConnectionString,\n type SQLitePragmaOptions,\n} from './connectionString';\n\nexport type SQLiteCommandOptions = SQLCommandOptions & {\n ignoreChangesCount?: boolean;\n};\n\nexport type BatchSQLiteCommandOptions = SQLiteCommandOptions &\n BatchSQLCommandOptions;\n\nexport type SQLiteParameters =\n object | string | bigint | number | boolean | null;\n\nexport type SQLiteClient = {\n connect: () => Promise<void>;\n close: () => Promise<void>;\n} & SQLExecutor;\n\nexport type SQLitePoolClient = {\n release: () => void;\n} & SQLExecutor;\n\nexport type SQLiteClientFactory<\n SQLiteClientType extends SQLiteClient = SQLiteClient,\n ClientOptions = SQLiteClientOptions,\n> = (options: ClientOptions) => SQLiteClientType;\n\nexport type SQLiteClientOrPoolClient = SQLitePoolClient | SQLiteClient;\n\nexport interface SQLiteError extends Error {\n errno: number;\n}\n\nexport const isSQLiteError = (error: unknown): error is SQLiteError => {\n if (error instanceof Error && 'code' in error) {\n return true;\n }\n\n return false;\n};\n\nexport type SQLiteClientConnection<\n Self extends AnyConnection = AnyConnection,\n DriverType extends SQLiteDriverType = SQLiteDriverType,\n SQLiteClientType extends SQLiteClient = SQLiteClient,\n TransactionType extends DatabaseTransaction<Self> = DatabaseTransaction<Self>,\n> = Connection<Self, DriverType, SQLiteClientType, TransactionType>;\n\nexport type SQLitePoolClientConnection<\n Self extends AnyConnection = AnyConnection,\n DriverType extends SQLiteDriverType = SQLiteDriverType,\n SQLitePoolClientType extends SQLitePoolClient = SQLitePoolClient,\n TransactionType extends DatabaseTransaction<Self> = DatabaseTransaction<Self>,\n> = Connection<Self, DriverType, SQLitePoolClientType, TransactionType>;\n\nexport type SQLiteConnection<\n Self extends AnyConnection = AnyConnection,\n DriverType extends SQLiteDriverType = SQLiteDriverType,\n SQLiteClientType extends SQLiteClientOrPoolClient =\n SQLiteClient | SQLitePoolClient,\n TransactionType extends DatabaseTransaction<Self> = DatabaseTransaction<Self>,\n> =\n | (SQLiteClientType extends SQLiteClient\n ? SQLiteClientConnection<\n Self,\n DriverType,\n SQLiteClientType,\n TransactionType\n >\n : never)\n | (SQLiteClientType extends SQLitePoolClient\n ? SQLitePoolClientConnection<\n Self,\n DriverType,\n SQLiteClientType,\n TransactionType\n >\n : never);\n\nexport type AnySQLiteClientConnection =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n SQLiteClientConnection<any, any>;\n\nexport type AnySQLitePoolClientConnection =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n SQLitePoolClientConnection<any, any, any, any>;\n\nexport type AnySQLiteConnection =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n SQLiteConnection<any, any, any, any>;\n\nexport type SQLiteConnectionOptions<\n ConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> = ConnectionOptions<ConnectionType> & SQLiteClientOptions;\n\nexport type SQLiteClientConnectionDefinitionOptions<\n SQLiteConnectionType extends AnySQLiteClientConnection =\n AnySQLiteClientConnection,\n ConnectionOptions = SQLiteConnectionOptions,\n> = {\n driverType: InferDriverTypeFromConnection<SQLiteConnectionType>;\n type: 'Client';\n sqliteClientFactory: SQLiteClientFactory<\n InferDbClientFromConnection<SQLiteConnectionType>,\n ConnectionOptions\n >;\n connectionOptions: SQLiteConnectionOptions<SQLiteConnectionType>;\n serializer: JSONSerializer;\n};\n\nexport type SQLitePoolConnectionDefinitionOptions<\n SQLiteConnectionType extends AnySQLitePoolClientConnection =\n AnySQLitePoolClientConnection,\n ConnectionOptions = SQLiteConnectionOptions,\n> = {\n driverType: InferDriverTypeFromConnection<SQLiteConnectionType>;\n type: 'PoolClient';\n sqliteClientFactory: SQLiteClientFactory<\n InferDbClientFromConnection<SQLiteConnectionType>,\n ConnectionOptions\n >;\n connectionOptions: SQLiteConnectionOptions<SQLiteConnectionType>;\n serializer: JSONSerializer;\n};\n\nexport type SQLiteConnectionDefinitionOptions<\n SQLiteConnectionType extends AnySQLitePoolClientConnection =\n AnySQLitePoolClientConnection,\n ClientOptions = SQLiteClientOptions,\n> =\n | SQLiteClientConnectionDefinitionOptions<SQLiteConnectionType, ClientOptions>\n | SQLitePoolConnectionDefinitionOptions<SQLiteConnectionType, ClientOptions>;\n\nexport type SQLiteConnectionFactory<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions = SQLiteConnectionOptions,\n> = (options: ConnectionOptions) => SQLiteConnectionType;\n\nexport type TransactionNestingCounter = {\n increment: () => void;\n decrement: () => void;\n reset: () => void;\n level: number;\n};\n\nexport const transactionNestingCounter = (): TransactionNestingCounter => {\n let transactionLevel = 0;\n\n return {\n reset: () => {\n transactionLevel = 0;\n },\n increment: () => {\n transactionLevel++;\n },\n decrement: () => {\n transactionLevel--;\n\n if (transactionLevel < 0) {\n throw new Error('Transaction level is out of bounds');\n }\n },\n get level() {\n return transactionLevel;\n },\n };\n};\n\nexport type SqliteAmbientClientConnectionOptions<\n SQLiteConnectionType extends AnySQLiteClientConnection =\n AnySQLiteClientConnection,\n> = {\n driverType: SQLiteConnectionType['driverType'];\n client: InferDbClientFromConnection<SQLiteConnectionType>;\n initTransaction?: InitTransaction<SQLiteConnectionType>;\n allowNestedTransactions?: boolean;\n defaultTransactionMode?: SQLiteTransactionMode;\n serializer: JSONSerializer;\n errorMapper?: SQLiteErrorMapper;\n};\n\nexport const sqliteAmbientClientConnection = <\n SQLiteConnectionType extends AnySQLiteClientConnection =\n AnySQLiteClientConnection,\n>(\n options: SqliteAmbientClientConnectionOptions<SQLiteConnectionType>,\n) => {\n const {\n client,\n driverType,\n initTransaction,\n allowNestedTransactions,\n defaultTransactionMode,\n serializer,\n errorMapper,\n } = options;\n\n return createAmbientConnection<SQLiteConnectionType>({\n driverType,\n client,\n initTransaction:\n initTransaction ??\n ((connection) =>\n sqliteTransaction(\n driverType,\n connection,\n allowNestedTransactions ?? false,\n serializer,\n defaultTransactionMode,\n )),\n executor: ({ serializer }) =>\n sqliteSQLExecutor(driverType, serializer, undefined, errorMapper),\n serializer,\n });\n};\n\nexport const sqliteClientConnection = <\n SQLiteConnectionType extends AnySQLiteClientConnection =\n AnySQLiteClientConnection,\n ClientOptions = SQLiteClientOptions,\n>(\n options: SQLiteClientConnectionDefinitionOptions<\n SQLiteConnectionType,\n ClientOptions\n >,\n): SQLiteConnectionType => {\n const { connectionOptions, sqliteClientFactory, serializer } = options;\n\n let client: InferDbClientFromConnection<SQLiteConnectionType> | null = null;\n\n const connect = async (): Promise<\n InferDbClientFromConnection<SQLiteConnectionType>\n > => {\n if (client) return Promise.resolve(client);\n\n client = sqliteClientFactory(connectionOptions as ClientOptions);\n\n if (client && 'connect' in client && typeof client.connect === 'function') {\n try {\n await client.connect();\n } catch (error) {\n throw mapSqliteError(error);\n }\n }\n\n return client;\n };\n\n return createConnection({\n driverType: options.driverType,\n connect,\n close: async () => {\n if (client && 'close' in client && typeof client.close === 'function')\n await client.close();\n else if (\n client &&\n 'release' in client &&\n typeof client.release === 'function'\n )\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n client.release();\n },\n initTransaction: (connection) =>\n sqliteTransaction(\n options.driverType,\n connection,\n connectionOptions.transactionOptions?.allowNestedTransactions ?? false,\n serializer,\n connectionOptions.defaultTransactionMode,\n ),\n executor: ({ serializer }) =>\n sqliteSQLExecutor(options.driverType, serializer),\n serializer,\n });\n};\n\nexport const sqlitePoolClientConnection = <\n SQLiteConnectionType extends AnySQLiteClientConnection =\n AnySQLiteClientConnection,\n ClientOptions = SQLiteClientOptions,\n>(\n options: SQLitePoolConnectionDefinitionOptions<\n SQLiteConnectionType,\n ClientOptions\n >,\n): SQLiteConnectionType => {\n const { connectionOptions, sqliteClientFactory, serializer } = options;\n\n let client: InferDbClientFromConnection<SQLiteConnectionType> | null = null;\n\n const connect = async (): Promise<\n InferDbClientFromConnection<SQLiteConnectionType>\n > => {\n if (client) return Promise.resolve(client);\n\n client = sqliteClientFactory(connectionOptions as ClientOptions);\n\n try {\n await client.connect();\n } catch (error) {\n throw mapSqliteError(error);\n }\n\n return client;\n };\n\n return createConnection({\n driverType: options.driverType,\n connect,\n close: () =>\n client !== null\n ? Promise.resolve((client as unknown as SQLitePoolClient).release())\n : Promise.resolve(),\n initTransaction: (connection) =>\n sqliteTransaction(\n options.driverType,\n connection,\n connectionOptions.transactionOptions?.allowNestedTransactions ?? false,\n serializer,\n connectionOptions.defaultTransactionMode,\n ),\n executor: ({ serializer }) =>\n sqliteSQLExecutor(options.driverType, serializer),\n serializer,\n });\n};\n\nexport function sqliteConnection<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ClientOptions = SQLiteClientOptions,\n>(\n options: SQLiteConnectionDefinitionOptions<\n SQLiteConnectionType,\n ClientOptions\n >,\n): SQLiteConnectionType {\n return options.type === 'Client'\n ? sqliteClientConnection(options)\n : sqlitePoolClientConnection(options);\n}\n\nexport type InMemorySQLiteDatabase = ':memory:';\nexport const InMemorySQLiteDatabase = SQLiteConnectionString(':memory:');\n\nexport type { SQLitePragmaOptions } from './connectionString';\n\nexport const DEFAULT_SQLITE_PRAGMA_OPTIONS: SQLitePragmaOptions = {\n journal_mode: 'WAL',\n synchronous: 'NORMAL',\n cache_size: -1000000,\n foreign_keys: true,\n temp_store: 'MEMORY',\n busy_timeout: 5000,\n mmap_size: 268435456,\n};\n\nexport type SQLiteClientOptions = {\n pragmaOptions?: Partial<SQLitePragmaOptions>;\n defaultTransactionMode?: SQLiteTransactionMode;\n skipDatabasePragmas?: boolean;\n readonly?: boolean;\n};\n\nexport * from './connectionString';\n","import type { SQLiteConnectionString } from '../connections/connectionString';\nimport {\n InMemorySQLiteDatabase,\n type AnySQLiteConnection,\n type SQLiteConnectionFactory,\n type SQLiteConnectionOptions,\n} from '../connections';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n createAlwaysNewConnectionPool,\n createAmbientConnectionPool,\n createSingletonConnectionPool,\n type ConnectionPool,\n} from '../../../../core';\n\nexport type SQLiteFileNameOrConnectionString =\n | {\n fileName: string | SQLiteConnectionString;\n connectionString?: never;\n }\n | {\n connectionString: string | SQLiteConnectionString;\n fileName?: never;\n };\n\nexport const isInMemoryDatabase = (\n options: Record<string, unknown>,\n): boolean => {\n if ('fileName' in options) {\n return options.fileName === InMemorySQLiteDatabase;\n }\n if ('connectionString' in options) {\n return options.connectionString === InMemorySQLiteDatabase;\n }\n return false;\n};\n\nexport type SQLiteAmbientConnectionPool<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> = ConnectionPool<SQLiteConnectionType>;\n\ntype SQLiteAmbientConnectionPoolOptions<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> = {\n singleton?: true;\n pooled?: false;\n sqliteConnectionFactory?: never;\n connection: SQLiteConnectionType;\n connectionOptions?: never;\n};\n\nexport const sqliteAmbientConnectionPool = <\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n>(\n options: {\n driverType: SQLiteConnectionType['driverType'];\n } & SQLiteAmbientConnectionPoolOptions<SQLiteConnectionType['driverType']>,\n): SQLiteAmbientConnectionPool<SQLiteConnectionType['driverType']> => {\n const { connection, driverType } = options;\n\n return createAmbientConnectionPool<SQLiteConnectionType>({\n driverType,\n connection: connection,\n });\n};\n\ntype SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions = SQLiteConnectionOptions,\n> = {\n singleton: true;\n pooled?: true;\n sqliteConnectionFactory: SQLiteConnectionFactory<\n SQLiteConnectionType,\n ConnectionOptions\n >;\n connection?: never;\n connectionOptions: ConnectionOptions;\n};\n\nexport type SQLiteSingletonConnectionPool<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> = ConnectionPool<SQLiteConnectionType>;\n\nexport const sqliteSingletonConnectionPool = <\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions & Record<string, unknown> =\n SQLiteConnectionOptions & Record<string, unknown>,\n>(\n options: {\n driverType: SQLiteConnectionType['driverType'];\n } & SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n >,\n): SQLiteSingletonConnectionPool<SQLiteConnectionType> => {\n const { driverType, sqliteConnectionFactory, connectionOptions } = options;\n\n return createSingletonConnectionPool<SQLiteConnectionType>({\n driverType,\n getConnection: () => sqliteConnectionFactory(connectionOptions),\n });\n};\n\ntype SQLiteAlwaysNewPoolOptions<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions = SQLiteConnectionOptions,\n> = {\n singleton?: false;\n pooled?: true;\n sqliteConnectionFactory: SQLiteConnectionFactory<\n SQLiteConnectionType,\n ConnectionOptions\n >;\n connection?: never;\n connectionOptions: ConnectionOptions;\n};\n\nexport type SQLiteAlwaysNewConnectionPool<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> = ConnectionPool<SQLiteConnectionType>;\n\nexport const sqliteAlwaysNewConnectionPool = <\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions & Record<string, unknown> =\n SQLiteConnectionOptions & Record<string, unknown>,\n>(\n options: {\n driverType: SQLiteConnectionType['driverType'];\n } & SQLiteAlwaysNewPoolOptions<SQLiteConnectionType, ConnectionOptions>,\n): SQLiteAlwaysNewConnectionPool<SQLiteConnectionType> => {\n const { driverType, sqliteConnectionFactory, connectionOptions } = options;\n\n return createAlwaysNewConnectionPool<SQLiteConnectionType>({\n driverType,\n getConnection: () => sqliteConnectionFactory(connectionOptions),\n });\n};\n\nexport type SQLitePoolOptions<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions = SQLiteConnectionOptions,\n> = (\n | SQLiteAlwaysNewPoolOptions<SQLiteConnectionType, ConnectionOptions>\n | SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n >\n | SQLiteAmbientConnectionPoolOptions<SQLiteConnectionType>\n) & {\n driverType: SQLiteConnectionType['driverType'];\n serializer?: JSONSerializer;\n};\n\nexport type SQLitePool<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n> =\n | SQLiteAmbientConnectionPool<SQLiteConnectionType>\n | SQLiteSingletonConnectionPool<SQLiteConnectionType>\n | SQLiteAlwaysNewConnectionPool<SQLiteConnectionType>;\n\nexport type SQLitePoolFactoryOptions<\n SQLiteConnectionType extends AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions,\n> = Omit<\n SQLitePoolOptions<SQLiteConnectionType, ConnectionOptions>,\n 'singleton'\n> & {\n singleton?: boolean;\n};\n\nexport const toSqlitePoolOptions = <\n SQLiteConnectionType extends AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions,\n>(\n options: SQLitePoolFactoryOptions<SQLiteConnectionType, ConnectionOptions>,\n): SQLitePoolOptions<SQLiteConnectionType, ConnectionOptions> => {\n const { singleton, ...rest } = options;\n const isInMemory = isInMemoryDatabase(options);\n\n if ('client' in options && options.client) {\n return { ...rest, singleton: true } as SQLitePoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n >;\n }\n\n if (isInMemory) {\n return { ...rest, singleton: true } as SQLitePoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n >;\n }\n\n if (singleton === true) {\n return { ...rest, singleton: true } as SQLitePoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n >;\n }\n\n return rest as SQLitePoolOptions<SQLiteConnectionType, ConnectionOptions>;\n};\n\nexport function sqlitePool<\n SQLiteConnectionType extends AnySQLiteConnection = AnySQLiteConnection,\n ConnectionOptions extends SQLiteConnectionOptions = SQLiteConnectionOptions,\n>(\n options: SQLitePoolOptions<SQLiteConnectionType, ConnectionOptions>,\n): SQLitePool<SQLiteConnectionType> {\n const { driverType } = options;\n\n if (\n (\n options as SQLiteAmbientConnectionPoolOptions<SQLiteConnectionType> & {\n driverType: SQLiteConnectionType['driverType'];\n }\n ).connection\n )\n return createAmbientConnectionPool<SQLiteConnectionType>({\n driverType,\n connection: (\n options as SQLiteAmbientConnectionPoolOptions<SQLiteConnectionType> & {\n driverType: SQLiteConnectionType['driverType'];\n }\n ).connection,\n });\n\n if (\n options.singleton === true &&\n (\n options as SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n > & { driverType: SQLiteConnectionType['driverType'] }\n ).sqliteConnectionFactory\n ) {\n return createSingletonConnectionPool({\n driverType,\n getConnection: () =>\n (\n options as SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n > & { driverType: SQLiteConnectionType['driverType'] }\n ).sqliteConnectionFactory(\n (\n options as SQLiteSingletonConnectionPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n > & { driverType: SQLiteConnectionType['driverType'] }\n ).connectionOptions,\n ),\n });\n }\n\n return createAlwaysNewConnectionPool({\n driverType,\n getConnection: () =>\n (\n options as SQLiteAlwaysNewPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n > & { driverType: SQLiteConnectionType['driverType'] }\n ).sqliteConnectionFactory(\n (\n options as SQLiteAlwaysNewPoolOptions<\n SQLiteConnectionType,\n ConnectionOptions\n > & { driverType: SQLiteConnectionType['driverType'] }\n ).connectionOptions,\n ),\n });\n}\n","import {\n registerDefaultMigratorOptions,\n type MigratorOptions,\n} from '../../../../core';\n\nexport const DefaultSQLiteMigratorOptions: MigratorOptions = {};\n\nregisterDefaultMigratorOptions('SQLite', DefaultSQLiteMigratorOptions);\n","import type { DatabaseDriverType } from '../../..';\n\nexport * from './connections';\nexport * from './errors';\nexport * from './execute';\nexport * from './pool';\nexport * from './schema';\nexport * from './sql';\nexport * from './transactions';\n\nexport type SQLiteDatabaseName = 'SQLite';\nexport const SQLiteDatabaseName = 'SQLite';\n\nexport type SQLiteDriverType<DriverName extends string = string> =\n DatabaseDriverType<SQLiteDatabaseName, DriverName>;\n\nexport type SQLiteDatabaseType = 'SQLite';\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { D as Connection, E as AnyConnection, F as InferDriverTypeFromConnection, Gt as DbSQLExecutor, I as InferTransactionFromConnection, Jt as SQLExecutor, K as DatabaseTransaction, P as InferDbClientFromConnection, R as InitTransaction, Ri as SQLFormatter, Wt as BatchSQLCommandOptions, co as JSONSerializer, gn as DumboError, i as DatabaseConnectionString, k as ConnectionOptions, p as ConnectionPool, q as DatabaseTransactionOptions, qt as SQLCommandOptions, rt as DatabaseDriverType, xt as MigratorOptions } from "./index-BDSQvDH2.cjs";
1
+ import { D as Connection, E as AnyConnection, F as InferDriverTypeFromConnection, Gt as DbSQLExecutor, I as InferTransactionFromConnection, Jt as SQLExecutor, K as DatabaseTransaction, P as InferDbClientFromConnection, R as InitTransaction, Ri as SQLFormatter, Wt as BatchSQLCommandOptions, co as JSONSerializer, gn as DumboError, i as DatabaseConnectionString, k as ConnectionOptions, p as ConnectionPool, q as DatabaseTransactionOptions, qt as SQLCommandOptions, rt as DatabaseDriverType, xt as MigratorOptions } from "./index-Cmdlb0KP.cjs";
2
2
  //#region src/storage/sqlite/core/execute/execute.d.ts
3
3
  type SQLiteErrorMapper = (error: unknown) => DumboError;
4
4
  declare const sqliteExecute: <Result = void>(database: SQLiteClient, handle: (client: SQLiteClient) => Promise<Result>) => Promise<Result>;
@@ -183,4 +183,4 @@ type SQLiteDriverType<DriverName extends string = string> = DatabaseDriverType<S
183
183
  type SQLiteDatabaseType = 'SQLite';
184
184
  //#endregion
185
185
  export { SQLitePragmaOptions as $, SQLiteClientConnectionDefinitionOptions as A, SQLiteParameters as B, AnySQLiteConnection as C, InMemorySQLiteDatabase as D, DEFAULT_SQLITE_PRAGMA_OPTIONS as E, SQLiteConnection as F, TransactionNestingCounter as G, SQLitePoolClientConnection as H, SQLiteConnectionDefinitionOptions as I, sqliteClientConnection as J, isSQLiteError as K, SQLiteConnectionFactory as L, SQLiteClientOptions as M, SQLiteClientOrPoolClient as N, SQLiteClient as O, SQLiteCommandOptions as P, SQLiteConnectionString as Q, SQLiteConnectionOptions as R, AnySQLiteClientConnection as S, BatchSQLiteCommandOptions as T, SQLitePoolConnectionDefinitionOptions as U, SQLitePoolClient as V, SqliteAmbientClientConnectionOptions as W, sqlitePoolClientConnection as X, sqliteConnection as Y, transactionNestingCounter as Z, sqliteAmbientConnectionPool as _, defaultSQLiteDatabase as a, SQLiteErrorMapper as at, toSqlitePoolOptions as b, SQLiteAlwaysNewConnectionPool as c, sqliteSQLExecutor as ct, SQLitePool as d, parsePragmasFromConnectionString as et, SQLitePoolFactoryOptions as f, sqliteAlwaysNewConnectionPool as g, isInMemoryDatabase as h, sqliteFormatter as i, sqliteTransaction as it, SQLiteClientFactory as j, SQLiteClientConnection as k, SQLiteAmbientConnectionPool as l, SQLiteSingletonConnectionPool as m, SQLiteDatabaseType as n, SQLiteTransactionMode as nt, tableExists as o, SQLiteSQLExecutor as ot, SQLitePoolOptions as p, sqliteAmbientClientConnection as q, SQLiteDriverType as r, SQLiteTransactionOptions as rt, DefaultSQLiteMigratorOptions as s, sqliteExecute as st, SQLiteDatabaseName as t, SQLiteTransaction as tt, SQLiteFileNameOrConnectionString as u, sqlitePool as v, AnySQLitePoolClientConnection as w, mapSqliteError as x, sqliteSingletonConnectionPool as y, SQLiteError as z };
186
- //# sourceMappingURL=index-N2ly5shv.d.cts.map
186
+ //# sourceMappingURL=index-B-q2er0S.d.cts.map
@@ -1,4 +1,4 @@
1
- import { D as Connection, E as AnyConnection, F as InferDriverTypeFromConnection, Gt as DbSQLExecutor, I as InferTransactionFromConnection, Jt as SQLExecutor, K as DatabaseTransaction, P as InferDbClientFromConnection, R as InitTransaction, Ri as SQLFormatter, Wt as BatchSQLCommandOptions, co as JSONSerializer, gn as DumboError, i as DatabaseConnectionString, k as ConnectionOptions, p as ConnectionPool, q as DatabaseTransactionOptions, qt as SQLCommandOptions, rt as DatabaseDriverType, xt as MigratorOptions } from "./index-zkszkJqP.js";
1
+ import { D as Connection, E as AnyConnection, F as InferDriverTypeFromConnection, Gt as DbSQLExecutor, I as InferTransactionFromConnection, Jt as SQLExecutor, K as DatabaseTransaction, P as InferDbClientFromConnection, R as InitTransaction, Ri as SQLFormatter, Wt as BatchSQLCommandOptions, co as JSONSerializer, gn as DumboError, i as DatabaseConnectionString, k as ConnectionOptions, p as ConnectionPool, q as DatabaseTransactionOptions, qt as SQLCommandOptions, rt as DatabaseDriverType, xt as MigratorOptions } from "./index-CRbkvVjT.js";
2
2
  //#region src/storage/sqlite/core/execute/execute.d.ts
3
3
  type SQLiteErrorMapper = (error: unknown) => DumboError;
4
4
  declare const sqliteExecute: <Result = void>(database: SQLiteClient, handle: (client: SQLiteClient) => Promise<Result>) => Promise<Result>;
@@ -183,4 +183,4 @@ type SQLiteDriverType<DriverName extends string = string> = DatabaseDriverType<S
183
183
  type SQLiteDatabaseType = 'SQLite';
184
184
  //#endregion
185
185
  export { SQLitePragmaOptions as $, SQLiteClientConnectionDefinitionOptions as A, SQLiteParameters as B, AnySQLiteConnection as C, InMemorySQLiteDatabase as D, DEFAULT_SQLITE_PRAGMA_OPTIONS as E, SQLiteConnection as F, TransactionNestingCounter as G, SQLitePoolClientConnection as H, SQLiteConnectionDefinitionOptions as I, sqliteClientConnection as J, isSQLiteError as K, SQLiteConnectionFactory as L, SQLiteClientOptions as M, SQLiteClientOrPoolClient as N, SQLiteClient as O, SQLiteCommandOptions as P, SQLiteConnectionString as Q, SQLiteConnectionOptions as R, AnySQLiteClientConnection as S, BatchSQLiteCommandOptions as T, SQLitePoolConnectionDefinitionOptions as U, SQLitePoolClient as V, SqliteAmbientClientConnectionOptions as W, sqlitePoolClientConnection as X, sqliteConnection as Y, transactionNestingCounter as Z, sqliteAmbientConnectionPool as _, defaultSQLiteDatabase as a, SQLiteErrorMapper as at, toSqlitePoolOptions as b, SQLiteAlwaysNewConnectionPool as c, sqliteSQLExecutor as ct, SQLitePool as d, parsePragmasFromConnectionString as et, SQLitePoolFactoryOptions as f, sqliteAlwaysNewConnectionPool as g, isInMemoryDatabase as h, sqliteFormatter as i, sqliteTransaction as it, SQLiteClientFactory as j, SQLiteClientConnection as k, SQLiteAmbientConnectionPool as l, SQLiteSingletonConnectionPool as m, SQLiteDatabaseType as n, SQLiteTransactionMode as nt, tableExists as o, SQLiteSQLExecutor as ot, SQLitePoolOptions as p, sqliteAmbientClientConnection as q, SQLiteDriverType as r, SQLiteTransactionOptions as rt, DefaultSQLiteMigratorOptions as s, sqliteExecute as st, SQLiteDatabaseName as t, SQLiteTransaction as tt, SQLiteFileNameOrConnectionString as u, sqlitePool as v, AnySQLitePoolClientConnection as w, mapSqliteError as x, sqliteSingletonConnectionPool as y, SQLiteError as z };
186
- //# sourceMappingURL=index-BgFHGsuP.d.ts.map
186
+ //# sourceMappingURL=index-B5qbt5nP.d.ts.map
@@ -1,4 +1,4 @@
1
- import { At as DatabaseLockOptions, Dt as AcquireDatabaseLockMode, Gi as SQL, Jt as SQLExecutor, Mt as ReleaseDatabaseLockOptions, Ot as AcquireDatabaseLockOptions, Qi as DefaultSQLColumnProcessors, Ri as SQLFormatter, Wa as SQLIn, gn as DumboError, i as DatabaseConnectionString, kt as DatabaseLock, ra as SQLProcessor, rt as DatabaseDriverType, xt as MigratorOptions, za as SQLArray } from "./index-zkszkJqP.js";
1
+ import { At as DatabaseLockOptions, Dt as AcquireDatabaseLockMode, Gi as SQL, Jt as SQLExecutor, Mt as ReleaseDatabaseLockOptions, Ot as AcquireDatabaseLockOptions, Qi as DefaultSQLColumnProcessors, Ri as SQLFormatter, Wa as SQLIn, gn as DumboError, i as DatabaseConnectionString, kt as DatabaseLock, ra as SQLProcessor, rt as DatabaseDriverType, xt as MigratorOptions, za as SQLArray } from "./index-CRbkvVjT.js";
2
2
 
3
3
  //#region src/storage/postgresql/core/connections/connectionString.d.ts
4
4
  declare const defaultPostgreSQLConnectionString: PostgreSQLConnectionString;
@@ -65,4 +65,4 @@ declare const PostgreSQLDatabaseName = "PostgreSQL";
65
65
  type PostgreSQLDriverType<DriverName extends string = string> = DatabaseDriverType<PostgreSQLDatabaseName, DriverName>;
66
66
  //#endregion
67
67
  export { tryAcquireAdvisoryLock as _, PostgreSQLExpandSQLInProcessor as a, defaultPostgreSQLConnectionString as b, functionExists as c, tableExistsSQL as d, DefaultPostgreSQLMigratorOptions as f, releaseAdvisoryLock as g, advisoryLock as h, PostgreSQLArrayProcessor as i, functionExistsSQL as l, acquireAdvisoryLock as m, PostgreSQLDriverType as n, pgFormatter as o, AdvisoryLock as p, postgreSQLColumnProcessors as r, defaultPostgreSqlDatabase as s, PostgreSQLDatabaseName as t, tableExists as u, mapPostgresError as v, parseDatabaseName as x, PostgreSQLConnectionString as y };
68
- //# sourceMappingURL=index-cxtbLiju.d.ts.map
68
+ //# sourceMappingURL=index-BJJAkyuJ.d.ts.map
@@ -1084,6 +1084,8 @@ type BatchSQLCommandOptions = SQLCommandOptions & {
1084
1084
  assertChanges?: boolean;
1085
1085
  };
1086
1086
  declare class BatchCommandNoChangesError extends DumboError {
1087
+ static readonly ErrorCode: number;
1088
+ static readonly ErrorType: string;
1087
1089
  readonly statementIndex: number;
1088
1090
  constructor(statementIndex: number);
1089
1091
  }
@@ -1582,4 +1584,4 @@ declare function dumbo<DatabaseDriver extends AnyDumboDatabaseDriver = AnyDumboD
1582
1584
  }): ExtractDumboTypeFromDriver<DatabaseDriver>;
1583
1585
  //#endregion
1584
1586
  export { transactionFactoryWithAsyncAmbientConnection as $, JSONCodecOptions as $a, mapDefaultSQLColumnProcessors as $i, ValidateTable as $n, NormalizeColumnPath as $r, executeInNewConnection as $t, CreateAmbientConnectionOptions as A, SQLColumnToken as Aa, mapSchemaComponentsOfType as Ai, CollectReferencesErrors as An, InferDatabaseSchemas as Ar, DatabaseLockOptions as At, WithConnectionOptions as B, SQLArrayMode as Ba, describeSQL as Bi, SchemaTablesWithSingle as Bn, AllColumnTypesInSchema as Br, getDefaultDatabase as Bt, createConnectionPool as C, JSONValueType as Ca, ExtractAdditionalData as Ci, NotNullViolationError as Cn, InferTableSchemaComponentTypes as Cr, combineMigrations as Ct, Connection as D, JavaScriptValueTypeToNameMap as Da, filterSchemaComponentsOfType as Di, TransientDatabaseError as Dn, TableURNType as Dr, AcquireDatabaseLockMode as Dt, AnyConnection as E, JavaScriptValueTypeName as Ea, SchemaComponentType as Ei, SystemError as En, TableURN as Er, runSQLMigrations as Et, InferDriverTypeFromConnection as F, TimestamptzToken as Fa, sqlMigration as Fi, DatabaseSchemasWithSingle as Fn, TableRowType as Fr, DatabaseCapabilities as Ft, AnyDatabaseTransaction as G, SQLLiteral as Ga, SQL as Gi, ValidateDatabaseSchemas as Gn, ColumnPath as Gr, DbSQLExecutor as Gt, createConnection as H, SQLDefaultTokensTypes as Ha, getFormatter as Hi, ValidateColumnTypeMatch as Hn, AnyTableRelationshipDefinition as Hr, resolveDatabaseMetadata as Ht, InferTransactionFromConnection as I, VarcharToken as Ia, FormatContext as Ii, NoError as In, Writable as Ir, DatabaseMetadata as It, InferTransactionOptionsFromTransaction as J, ParametrizedSQL as Ja, ExpandArrayProcessor as Ji, ValidateReferences as Jn, ExtractColumnNames as Jr, SQLExecutor as Jt, DatabaseTransaction as K, SQLPlain as Ka, isSQL as Ki, ValidateDatabaseSchemasWithMessages as Kn, ColumnPathToReference as Kr, DbSQLExecutorOptions as Kt, InferTransactionOptionsFromConnection as L, AnySQLToken as La, FormatSQLOptions as Li, RelationshipColumnsMismatchError as Ln, AllColumnReferences as Lr, DumboDatabaseMetadataRegistry as Lt, CreateSingletonConnectionOptions as M, SQLColumnTypeTokensFactory as Ma, MigrationRecord as Mi, ColumnReferenceError as Mn, InferTableRow as Mr, ReleaseDatabaseLockOptions as Mt, CreateTransientConnectionOptions as N, SerialToken as Na, MigrationStyle as Ni, ColumnReferenceExistanceError as Nn, TableColumnNames as Nr, defaultDatabaseLockOptions as Nt, ConnectionFactory as O, NotNullableSQLColumnTokenProps as Oa, findSchemaComponentsOfType as Oi, UniqueConstraintError as On, tableSchemaComponent as Or, AcquireDatabaseLockOptions as Ot, InferDbClientFromConnection as P, TimestampToken as Pa, SQLMigration as Pi, ColumnReferenceTypeMismatchError as Pn, TableColumnType as Pr, dumboSchema as Pt, transactionFactoryWithAmbientConnection as Q, JSONCodec as Qa, DefaultSQLColumnProcessors as Qi, ValidateSchemaTables as Qn, LookupColumnType as Qr, executeInAmbientConnection as Qt, InitTransaction as R, ExtractSQLTokenType as Ra, SQLFormatter as Ri, RelationshipReferencesLengthMismatchError as Rn, AllColumnReferencesInSchema as Rr, dumboDatabaseMetadataRegistry as Rt, createBoundedConnectionPool as S, JSONBToken as Sa, DumboSchemaComponentType as Si, LockNotAvailableError as Sn, InferTableSchemaComponentColumns as Sr, RunSQLMigrationsResult as St, createSingletonConnectionPool as T, JavaScriptValueType as Ta, SchemaComponentOptions as Ti, SerializationError as Tn, TableSchemaComponent as Tr, registerDefaultMigratorOptions as Tt, createSingletonConnection as U, SQLIdentifier as Ua, registerFormatter as Ui, ValidateColumnsMatch as Un, AnyTableRelationshipDefinitionWithColumns as Ur, BatchCommandNoChangesError as Ut, createAmbientConnection as V, SQLDefaultTokens as Va, formatSQL as Vi, ValidateColumnReference as Vn, AnyRelationshipDefinition as Vr, getDefaultDatabaseAsync as Vt, createTransientConnection as W, SQLIn as Wa, RawSQL as Wi, ValidateDatabaseSchema as Wn, ColumnName$1 as Wr, BatchSQLCommandOptions as Wt, WithDatabaseTransactionFactory as X, SerializationCodec as Xa, FormatIdentifierProcessor as Xi, ValidateRelationshipColumns as Xn, ExtractSchemaNames as Xr, SQLQueryResultColumnMapping as Xt, TransactionResult as Y, ParametrizedSQLBuilder as Ya, ExpandSQLInProcessor as Yi, ValidateRelationship as Yn, ExtractColumnTypeName as Yr, SQLQueryOptions as Yt, executeInTransaction as Z, Serializer as Za, MapLiteralProcessor as Zi, ValidateRelationshipLength as Zn, ExtractTableNames as Zr, WithSQLExecutor as Zt, CreateConnectionPoolOptions as _, BigIntegerToken as _a, ColumnURN as _i, ExclusionViolationError as _n, DatabaseSchemaTables as _r, dumboDatabaseDriverRegistry as _t, parseConnectionString as a, SQLProcessorOptions as aa, TableColumnName as ai, sqlExecutor as an, JSONRevivers as ao, FormatTableLevel as ar, DatabaseType as at, createAlwaysNewConnectionPool as b, DefaultSQLColumnToken as ba, AnySchemaComponent as bi, IntegrityConstraintViolationError as bn, databaseSchemaSchemaComponent as br, MIGRATIONS_LOCK_ID as bt, LogLevel as c, DefaultMapSQLParamValueOptions as ca, AnyTypeValidationError as ci, QueryResult as cn, JSONSerializer as co, Join as cr, getDatabaseDriverName as ct, tracer as d, SQLValueMapper as da, IndexURN as di, CheckViolationError as dn, composeJSONRevivers as do, DatabaseSchemas as dr, AnyDumboDatabaseDriver as dt, SQLProcessorsReadonlyRegistry as ea, NormalizeReference as ei, executeInNewDbClient as en, JSONDeserializeOptions as eo, ValidateTableRelationships as er, transactionFactoryWithDbClient as et, AmbientConnectionPoolOptions as f, mapANSISQLParamPlaceholder as fa, IndexURNType as fi, ConcurrencyError as fn, jsonSerializer as fo, DatabaseURN as fr, DumboDatabaseDriver as ft, CreateBoundedConnectionPoolOptions as g, AutoIncrementSQLColumnToken as ga, ColumnSchemaComponentOptions as gi, DumboError as gn, DatabaseSchemaSchemaComponent as gr, canHandleDriverWithConnectionString as gt, CreateAlwaysNewConnectionPoolOptions as h, AnyColumnTypeToken as ha, ColumnSchemaComponent as hi, DeadlockError as hn, AnyDatabaseSchemaSchemaComponent as hr, ExtractDumboTypeFromDriver as ht, DatabaseConnectionString as i, SQLProcessorContext as ia, SchemaColumnName as ii, mapSQLQueryResult as in, JSONReviverContext as io, FormatSingleError as ir, DatabaseDriverTypeParts as it, CreateConnectionOptions as j, SQLColumnTypeTokens as ja, schemaComponent as ji, CollectRelationshipErrors as jn, InferSchemaTables as jr, NoDatabaseLock as jt, ConnectionOptions as k, NullableSQLColumnTokenProps as ka, isSchemaComponentOfType as ki, schemaComponentURN as kn, InferColumnType as kr, DatabaseLock as kt, LogStyle as l, MapSQLParamValue as la, TypeValidationSuccess as li, QueryResultRow as ln, JSONSerializerOptions as lo, AnyDatabaseSchemaComponent as lr, getDatabaseType as lt, ConnectionPoolFactory as m, mapSQLParamValue as ma, AnyColumnSchemaComponent as mi, DataError as mn, databaseSchemaComponent as mr, ExtractDumboDatabaseDriverOptions as mt, sqliteMetadata as n, AnySQLProcessor as na, RelationshipDefinition as ni, mapColumnToDate as nn, JSONReplacers as no, FormatRelationshipBlock as nr, DatabaseDriverName as nt, Dumbo as o, ANSISQLIdentifierQuote as oa, TableRelationships as oi, sqlExecutorInAmbientConnection as on, JSONSerializationOptions as oo, FormatValidationErrors as or, InferDriverDatabaseType as ot, ConnectionPool as p, mapSQLIdentifier as pa, indexSchemaComponent as pi, ConnectionError as pn, DbClientSetup as po, DatabaseURNType as pr, DumboDatabaseDriverRegistry as pt, DatabaseTransactionOptions as q, SQLToken as qa, defaultProcessorsRegistry as qi, ValidateReference as qn, ColumnReference as qr, SQLCommandOptions as qt, postgreSQLMetadata as r, SQLProcessor as ra, RelationshipType as ri, mapColumnToJSON as rn, JSONReviver as ro, FormatSchemaLevel as rr, DatabaseDriverType as rt, DumboConnectionOptions as s, ANSISQLParamPlaceholder as sa, relationship as si, sqlExecutorInNewConnection as sn, JSONSerializeOptions as so, IndentErrors as sr, fromDatabaseDriverType as st, dumbo as t, SQLProcessorsRegistry as ta, ParseReferencePath as ti, mapColumnToBigint as tn, JSONReplacer as to, FormatDatabaseValidationErrors as tr, transactionFactoryWithNewConnection as tt, LogType as u, MapSQLParamValueOptions as ua, IndexSchemaComponent as ui, AdminShutdownError as un, composeJSONReplacers as uo, DatabaseSchemaComponent as ur, toDatabaseDriverType as ut, SingletonClientConnectionPoolOptions as v, BigSerialToken as va, ColumnURNType as vi, ForeignKeyViolationError as vn, DatabaseSchemaURN as vr, SchemaComponentMigrator as vt, createSingletonClientConnectionPool as w, JSONValueTypeName as wa, SchemaComponent as wi, QueryCanceledError as wn, TableColumns as wr, getDefaultMigratorOptionsFromRegistry as wt, createAmbientConnectionPool as x, IntegerToken as xa, AnySchemaComponentOfType as xi, InvalidOperationError as xn, AnyTableSchemaComponent as xr, MigratorOptions as xt, SingletonConnectionPoolOptions as y, ColumnTypeToken as ya, columnSchemaComponent as yi, InsufficientResourcesError as yn, DatabaseSchemaURNType as yr, migrationTableSchemaComponent as yt, WithConnectionFactory as z, SQLArray as za, SQLFormatterOptions as zi, RelationshipValidationError as zn, AllColumnTypes as zr, getDatabaseMetadata as zt };
1585
- //# sourceMappingURL=index-BDSQvDH2.d.cts.map
1587
+ //# sourceMappingURL=index-CRbkvVjT.d.ts.map
@@ -1084,6 +1084,8 @@ type BatchSQLCommandOptions = SQLCommandOptions & {
1084
1084
  assertChanges?: boolean;
1085
1085
  };
1086
1086
  declare class BatchCommandNoChangesError extends DumboError {
1087
+ static readonly ErrorCode: number;
1088
+ static readonly ErrorType: string;
1087
1089
  readonly statementIndex: number;
1088
1090
  constructor(statementIndex: number);
1089
1091
  }
@@ -1582,4 +1584,4 @@ declare function dumbo<DatabaseDriver extends AnyDumboDatabaseDriver = AnyDumboD
1582
1584
  }): ExtractDumboTypeFromDriver<DatabaseDriver>;
1583
1585
  //#endregion
1584
1586
  export { transactionFactoryWithAsyncAmbientConnection as $, JSONCodecOptions as $a, mapDefaultSQLColumnProcessors as $i, ValidateTable as $n, NormalizeColumnPath as $r, executeInNewConnection as $t, CreateAmbientConnectionOptions as A, SQLColumnToken as Aa, mapSchemaComponentsOfType as Ai, CollectReferencesErrors as An, InferDatabaseSchemas as Ar, DatabaseLockOptions as At, WithConnectionOptions as B, SQLArrayMode as Ba, describeSQL as Bi, SchemaTablesWithSingle as Bn, AllColumnTypesInSchema as Br, getDefaultDatabase as Bt, createConnectionPool as C, JSONValueType as Ca, ExtractAdditionalData as Ci, NotNullViolationError as Cn, InferTableSchemaComponentTypes as Cr, combineMigrations as Ct, Connection as D, JavaScriptValueTypeToNameMap as Da, filterSchemaComponentsOfType as Di, TransientDatabaseError as Dn, TableURNType as Dr, AcquireDatabaseLockMode as Dt, AnyConnection as E, JavaScriptValueTypeName as Ea, SchemaComponentType as Ei, SystemError as En, TableURN as Er, runSQLMigrations as Et, InferDriverTypeFromConnection as F, TimestamptzToken as Fa, sqlMigration as Fi, DatabaseSchemasWithSingle as Fn, TableRowType as Fr, DatabaseCapabilities as Ft, AnyDatabaseTransaction as G, SQLLiteral as Ga, SQL as Gi, ValidateDatabaseSchemas as Gn, ColumnPath as Gr, DbSQLExecutor as Gt, createConnection as H, SQLDefaultTokensTypes as Ha, getFormatter as Hi, ValidateColumnTypeMatch as Hn, AnyTableRelationshipDefinition as Hr, resolveDatabaseMetadata as Ht, InferTransactionFromConnection as I, VarcharToken as Ia, FormatContext as Ii, NoError as In, Writable as Ir, DatabaseMetadata as It, InferTransactionOptionsFromTransaction as J, ParametrizedSQL as Ja, ExpandArrayProcessor as Ji, ValidateReferences as Jn, ExtractColumnNames as Jr, SQLExecutor as Jt, DatabaseTransaction as K, SQLPlain as Ka, isSQL as Ki, ValidateDatabaseSchemasWithMessages as Kn, ColumnPathToReference as Kr, DbSQLExecutorOptions as Kt, InferTransactionOptionsFromConnection as L, AnySQLToken as La, FormatSQLOptions as Li, RelationshipColumnsMismatchError as Ln, AllColumnReferences as Lr, DumboDatabaseMetadataRegistry as Lt, CreateSingletonConnectionOptions as M, SQLColumnTypeTokensFactory as Ma, MigrationRecord as Mi, ColumnReferenceError as Mn, InferTableRow as Mr, ReleaseDatabaseLockOptions as Mt, CreateTransientConnectionOptions as N, SerialToken as Na, MigrationStyle as Ni, ColumnReferenceExistanceError as Nn, TableColumnNames as Nr, defaultDatabaseLockOptions as Nt, ConnectionFactory as O, NotNullableSQLColumnTokenProps as Oa, findSchemaComponentsOfType as Oi, UniqueConstraintError as On, tableSchemaComponent as Or, AcquireDatabaseLockOptions as Ot, InferDbClientFromConnection as P, TimestampToken as Pa, SQLMigration as Pi, ColumnReferenceTypeMismatchError as Pn, TableColumnType as Pr, dumboSchema as Pt, transactionFactoryWithAmbientConnection as Q, JSONCodec as Qa, DefaultSQLColumnProcessors as Qi, ValidateSchemaTables as Qn, LookupColumnType as Qr, executeInAmbientConnection as Qt, InitTransaction as R, ExtractSQLTokenType as Ra, SQLFormatter as Ri, RelationshipReferencesLengthMismatchError as Rn, AllColumnReferencesInSchema as Rr, dumboDatabaseMetadataRegistry as Rt, createBoundedConnectionPool as S, JSONBToken as Sa, DumboSchemaComponentType as Si, LockNotAvailableError as Sn, InferTableSchemaComponentColumns as Sr, RunSQLMigrationsResult as St, createSingletonConnectionPool as T, JavaScriptValueType as Ta, SchemaComponentOptions as Ti, SerializationError as Tn, TableSchemaComponent as Tr, registerDefaultMigratorOptions as Tt, createSingletonConnection as U, SQLIdentifier as Ua, registerFormatter as Ui, ValidateColumnsMatch as Un, AnyTableRelationshipDefinitionWithColumns as Ur, BatchCommandNoChangesError as Ut, createAmbientConnection as V, SQLDefaultTokens as Va, formatSQL as Vi, ValidateColumnReference as Vn, AnyRelationshipDefinition as Vr, getDefaultDatabaseAsync as Vt, createTransientConnection as W, SQLIn as Wa, RawSQL as Wi, ValidateDatabaseSchema as Wn, ColumnName$1 as Wr, BatchSQLCommandOptions as Wt, WithDatabaseTransactionFactory as X, SerializationCodec as Xa, FormatIdentifierProcessor as Xi, ValidateRelationshipColumns as Xn, ExtractSchemaNames as Xr, SQLQueryResultColumnMapping as Xt, TransactionResult as Y, ParametrizedSQLBuilder as Ya, ExpandSQLInProcessor as Yi, ValidateRelationship as Yn, ExtractColumnTypeName as Yr, SQLQueryOptions as Yt, executeInTransaction as Z, Serializer as Za, MapLiteralProcessor as Zi, ValidateRelationshipLength as Zn, ExtractTableNames as Zr, WithSQLExecutor as Zt, CreateConnectionPoolOptions as _, BigIntegerToken as _a, ColumnURN as _i, ExclusionViolationError as _n, DatabaseSchemaTables as _r, dumboDatabaseDriverRegistry as _t, parseConnectionString as a, SQLProcessorOptions as aa, TableColumnName as ai, sqlExecutor as an, JSONRevivers as ao, FormatTableLevel as ar, DatabaseType as at, createAlwaysNewConnectionPool as b, DefaultSQLColumnToken as ba, AnySchemaComponent as bi, IntegrityConstraintViolationError as bn, databaseSchemaSchemaComponent as br, MIGRATIONS_LOCK_ID as bt, LogLevel as c, DefaultMapSQLParamValueOptions as ca, AnyTypeValidationError as ci, QueryResult as cn, JSONSerializer as co, Join as cr, getDatabaseDriverName as ct, tracer as d, SQLValueMapper as da, IndexURN as di, CheckViolationError as dn, composeJSONRevivers as do, DatabaseSchemas as dr, AnyDumboDatabaseDriver as dt, SQLProcessorsReadonlyRegistry as ea, NormalizeReference as ei, executeInNewDbClient as en, JSONDeserializeOptions as eo, ValidateTableRelationships as er, transactionFactoryWithDbClient as et, AmbientConnectionPoolOptions as f, mapANSISQLParamPlaceholder as fa, IndexURNType as fi, ConcurrencyError as fn, jsonSerializer as fo, DatabaseURN as fr, DumboDatabaseDriver as ft, CreateBoundedConnectionPoolOptions as g, AutoIncrementSQLColumnToken as ga, ColumnSchemaComponentOptions as gi, DumboError as gn, DatabaseSchemaSchemaComponent as gr, canHandleDriverWithConnectionString as gt, CreateAlwaysNewConnectionPoolOptions as h, AnyColumnTypeToken as ha, ColumnSchemaComponent as hi, DeadlockError as hn, AnyDatabaseSchemaSchemaComponent as hr, ExtractDumboTypeFromDriver as ht, DatabaseConnectionString as i, SQLProcessorContext as ia, SchemaColumnName as ii, mapSQLQueryResult as in, JSONReviverContext as io, FormatSingleError as ir, DatabaseDriverTypeParts as it, CreateConnectionOptions as j, SQLColumnTypeTokens as ja, schemaComponent as ji, CollectRelationshipErrors as jn, InferSchemaTables as jr, NoDatabaseLock as jt, ConnectionOptions as k, NullableSQLColumnTokenProps as ka, isSchemaComponentOfType as ki, schemaComponentURN as kn, InferColumnType as kr, DatabaseLock as kt, LogStyle as l, MapSQLParamValue as la, TypeValidationSuccess as li, QueryResultRow as ln, JSONSerializerOptions as lo, AnyDatabaseSchemaComponent as lr, getDatabaseType as lt, ConnectionPoolFactory as m, mapSQLParamValue as ma, AnyColumnSchemaComponent as mi, DataError as mn, databaseSchemaComponent as mr, ExtractDumboDatabaseDriverOptions as mt, sqliteMetadata as n, AnySQLProcessor as na, RelationshipDefinition as ni, mapColumnToDate as nn, JSONReplacers as no, FormatRelationshipBlock as nr, DatabaseDriverName as nt, Dumbo as o, ANSISQLIdentifierQuote as oa, TableRelationships as oi, sqlExecutorInAmbientConnection as on, JSONSerializationOptions as oo, FormatValidationErrors as or, InferDriverDatabaseType as ot, ConnectionPool as p, mapSQLIdentifier as pa, indexSchemaComponent as pi, ConnectionError as pn, DbClientSetup as po, DatabaseURNType as pr, DumboDatabaseDriverRegistry as pt, DatabaseTransactionOptions as q, SQLToken as qa, defaultProcessorsRegistry as qi, ValidateReference as qn, ColumnReference as qr, SQLCommandOptions as qt, postgreSQLMetadata as r, SQLProcessor as ra, RelationshipType as ri, mapColumnToJSON as rn, JSONReviver as ro, FormatSchemaLevel as rr, DatabaseDriverType as rt, DumboConnectionOptions as s, ANSISQLParamPlaceholder as sa, relationship as si, sqlExecutorInNewConnection as sn, JSONSerializeOptions as so, IndentErrors as sr, fromDatabaseDriverType as st, dumbo as t, SQLProcessorsRegistry as ta, ParseReferencePath as ti, mapColumnToBigint as tn, JSONReplacer as to, FormatDatabaseValidationErrors as tr, transactionFactoryWithNewConnection as tt, LogType as u, MapSQLParamValueOptions as ua, IndexSchemaComponent as ui, AdminShutdownError as un, composeJSONReplacers as uo, DatabaseSchemaComponent as ur, toDatabaseDriverType as ut, SingletonClientConnectionPoolOptions as v, BigSerialToken as va, ColumnURNType as vi, ForeignKeyViolationError as vn, DatabaseSchemaURN as vr, SchemaComponentMigrator as vt, createSingletonClientConnectionPool as w, JSONValueTypeName as wa, SchemaComponent as wi, QueryCanceledError as wn, TableColumns as wr, getDefaultMigratorOptionsFromRegistry as wt, createAmbientConnectionPool as x, IntegerToken as xa, AnySchemaComponentOfType as xi, InvalidOperationError as xn, AnyTableSchemaComponent as xr, MigratorOptions as xt, SingletonConnectionPoolOptions as y, ColumnTypeToken as ya, columnSchemaComponent as yi, InsufficientResourcesError as yn, DatabaseSchemaURNType as yr, migrationTableSchemaComponent as yt, WithConnectionFactory as z, SQLArray as za, SQLFormatterOptions as zi, RelationshipValidationError as zn, AllColumnTypes as zr, getDatabaseMetadata as zt };
1585
- //# sourceMappingURL=index-zkszkJqP.d.ts.map
1587
+ //# sourceMappingURL=index-Cmdlb0KP.d.cts.map
@@ -1,4 +1,4 @@
1
- import { La as AnySQLToken, ci as AnyTypeValidationError, cn as QueryResult, li as TypeValidationSuccess, ln as QueryResultRow } from "./index-BDSQvDH2.cjs";
1
+ import { La as AnySQLToken, ci as AnyTypeValidationError, cn as QueryResult, li as TypeValidationSuccess, ln as QueryResultRow } from "./index-Cmdlb0KP.cjs";
2
2
 
3
3
  //#region src/core/sql/valueMappers/reservedSqlWords.d.ts
4
4
  declare const ansiSqlReservedMap: {
@@ -64,4 +64,4 @@ declare const prettyJson: (obj: unknown, options?: {
64
64
  }) => string;
65
65
  //#endregion
66
66
  export { toCamelCase as _, IsError as a, ansiSqlReservedMap as b, ExistsSQLQueryResult as c, first as d, firstOrNull as f, mapToCamelCase as g, mapRows as h, Expect as i, count as l, singleOrNull as m, color as n, IsOK as o, single as p, Equals as r, CountSQLQueryResult as s, prettyJson as t, exists as u, TokenizedSQL as v, isTokenizedSQL as y };
67
- //# sourceMappingURL=index-S_wp0Eaf.d.cts.map
67
+ //# sourceMappingURL=index-D7qxqMf9.d.cts.map
@@ -1,4 +1,4 @@
1
- import { At as DatabaseLockOptions, Dt as AcquireDatabaseLockMode, Gi as SQL, Jt as SQLExecutor, Mt as ReleaseDatabaseLockOptions, Ot as AcquireDatabaseLockOptions, Qi as DefaultSQLColumnProcessors, Ri as SQLFormatter, Wa as SQLIn, gn as DumboError, i as DatabaseConnectionString, kt as DatabaseLock, ra as SQLProcessor, rt as DatabaseDriverType, xt as MigratorOptions, za as SQLArray } from "./index-BDSQvDH2.cjs";
1
+ import { At as DatabaseLockOptions, Dt as AcquireDatabaseLockMode, Gi as SQL, Jt as SQLExecutor, Mt as ReleaseDatabaseLockOptions, Ot as AcquireDatabaseLockOptions, Qi as DefaultSQLColumnProcessors, Ri as SQLFormatter, Wa as SQLIn, gn as DumboError, i as DatabaseConnectionString, kt as DatabaseLock, ra as SQLProcessor, rt as DatabaseDriverType, xt as MigratorOptions, za as SQLArray } from "./index-Cmdlb0KP.cjs";
2
2
 
3
3
  //#region src/storage/postgresql/core/connections/connectionString.d.ts
4
4
  declare const defaultPostgreSQLConnectionString: PostgreSQLConnectionString;
@@ -65,4 +65,4 @@ declare const PostgreSQLDatabaseName = "PostgreSQL";
65
65
  type PostgreSQLDriverType<DriverName extends string = string> = DatabaseDriverType<PostgreSQLDatabaseName, DriverName>;
66
66
  //#endregion
67
67
  export { tryAcquireAdvisoryLock as _, PostgreSQLExpandSQLInProcessor as a, defaultPostgreSQLConnectionString as b, functionExists as c, tableExistsSQL as d, DefaultPostgreSQLMigratorOptions as f, releaseAdvisoryLock as g, advisoryLock as h, PostgreSQLArrayProcessor as i, functionExistsSQL as l, acquireAdvisoryLock as m, PostgreSQLDriverType as n, pgFormatter as o, AdvisoryLock as p, postgreSQLColumnProcessors as r, defaultPostgreSqlDatabase as s, PostgreSQLDatabaseName as t, tableExists as u, mapPostgresError as v, parseDatabaseName as x, PostgreSQLConnectionString as y };
68
- //# sourceMappingURL=index-BdWFmDhJ.d.cts.map
68
+ //# sourceMappingURL=index-DtRCGhFP.d.cts.map
@@ -1,4 +1,4 @@
1
- import { La as AnySQLToken, ci as AnyTypeValidationError, cn as QueryResult, li as TypeValidationSuccess, ln as QueryResultRow } from "./index-zkszkJqP.js";
1
+ import { La as AnySQLToken, ci as AnyTypeValidationError, cn as QueryResult, li as TypeValidationSuccess, ln as QueryResultRow } from "./index-CRbkvVjT.js";
2
2
 
3
3
  //#region src/core/sql/valueMappers/reservedSqlWords.d.ts
4
4
  declare const ansiSqlReservedMap: {
@@ -64,4 +64,4 @@ declare const prettyJson: (obj: unknown, options?: {
64
64
  }) => string;
65
65
  //#endregion
66
66
  export { toCamelCase as _, IsError as a, ansiSqlReservedMap as b, ExistsSQLQueryResult as c, first as d, firstOrNull as f, mapToCamelCase as g, mapRows as h, Expect as i, count as l, singleOrNull as m, color as n, IsOK as o, single as p, Equals as r, CountSQLQueryResult as s, prettyJson as t, exists as u, TokenizedSQL as v, isTokenizedSQL as y };
67
- //# sourceMappingURL=index-DaP2fTEX.d.ts.map
67
+ //# sourceMappingURL=index-m5LDyNNF.d.ts.map
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_core = require('./core-D-smW7cm.cjs');
3
- require('./postgreSQLMetadata-WGXySO7a.cjs');
4
- require('./sqliteMetadata-PJTRPIZ1.cjs');
2
+ const require_core = require('./core-D5W_5J8k.cjs');
3
+ require('./postgreSQLMetadata-Ri_p5u6i.cjs');
4
+ require('./sqliteMetadata-CpmoZxqb.cjs');
5
5
 
6
6
  //#region src/core/schema/components/relationships/relationshipTypes.ts
7
7
  const relationship = (columns, references, type) => {