@fragno-dev/db 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +212 -207
- package/CHANGELOG.md +8 -0
- package/dist/adapters/adapters.d.ts +6 -1
- package/dist/adapters/adapters.d.ts.map +1 -1
- package/dist/adapters/adapters.js +7 -1
- package/dist/adapters/adapters.js.map +1 -0
- package/dist/adapters/drizzle/drizzle-adapter.d.ts +5 -2
- package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -1
- package/dist/adapters/drizzle/drizzle-adapter.js +23 -14
- package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -1
- package/dist/adapters/drizzle/drizzle-connection-pool.js +40 -0
- package/dist/adapters/drizzle/drizzle-connection-pool.js.map +1 -0
- package/dist/adapters/drizzle/drizzle-query.js +24 -11
- package/dist/adapters/drizzle/drizzle-query.js.map +1 -1
- package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts.map +1 -1
- package/dist/adapters/drizzle/drizzle-uow-compiler.js +8 -8
- package/dist/adapters/drizzle/drizzle-uow-compiler.js.map +1 -1
- package/dist/adapters/drizzle/drizzle-uow-executor.js +12 -5
- package/dist/adapters/drizzle/drizzle-uow-executor.js.map +1 -1
- package/dist/adapters/kysely/kysely-adapter.d.ts +5 -2
- package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -1
- package/dist/adapters/kysely/kysely-adapter.js +70 -39
- package/dist/adapters/kysely/kysely-adapter.js.map +1 -1
- package/dist/adapters/kysely/kysely-connection-pool.js +41 -0
- package/dist/adapters/kysely/kysely-connection-pool.js.map +1 -0
- package/dist/adapters/kysely/kysely-query-compiler.js +2 -3
- package/dist/adapters/kysely/kysely-query-compiler.js.map +1 -1
- package/dist/adapters/kysely/kysely-query.js +22 -11
- package/dist/adapters/kysely/kysely-query.js.map +1 -1
- package/dist/adapters/kysely/kysely-uow-compiler.js +5 -5
- package/dist/adapters/kysely/kysely-uow-compiler.js.map +1 -1
- package/dist/adapters/kysely/migration/execute-factory.js +8 -2
- package/dist/adapters/kysely/migration/execute-factory.js.map +1 -1
- package/dist/migration-engine/generation-engine.d.ts.map +1 -1
- package/dist/migration-engine/generation-engine.js +8 -1
- package/dist/migration-engine/generation-engine.js.map +1 -1
- package/dist/mod.d.ts +1 -1
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js.map +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/alias.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/alias.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/casing.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/casing.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/column-builder.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/column-builder.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/column.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/column.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/entity.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/entity.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/errors.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/errors.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/pg-core/columns/common.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/columns/common.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/pg-core/columns/enum.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/columns/enum.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/pg-core/foreign-keys.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/foreign-keys.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/pg-core/unique-constraint.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/unique-constraint.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/pg-core/utils/array.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/utils/array.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/query-builders/query-builder.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/query-builders/query-builder.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/query-promise.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/query-promise.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/relations.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/relations.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/selection-proxy.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/selection-proxy.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sql/expressions/conditions.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sql/expressions/conditions.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sql/expressions/select.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sql/expressions/select.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sql/functions/aggregate.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sql/functions/aggregate.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sql/sql.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sql/sql.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/columns/common.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/columns/common.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/db.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/db.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/dialect.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/dialect.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/foreign-keys.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/foreign-keys.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/count.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/count.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/query.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/query.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/select.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/select.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/update.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/update.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/table.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/table.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/unique-constraint.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/unique-constraint.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/utils.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/utils.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/view-base.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/view-base.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/subquery.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/subquery.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/table.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/table.js.map +1 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/table.utils.js +6 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/table.utils.js.map +1 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/tracing-utils.js +8 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/tracing-utils.js.map +1 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/tracing.js +8 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/tracing.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/utils.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/utils.js.map +1 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/view-common.js +6 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/view-common.js.map +1 -0
- package/package.json +4 -5
- package/src/adapters/adapters.ts +8 -0
- package/src/adapters/drizzle/drizzle-adapter-sqlite.test.ts +9 -11
- package/src/adapters/drizzle/drizzle-adapter.ts +31 -16
- package/src/adapters/drizzle/drizzle-connection-pool.ts +66 -0
- package/src/adapters/drizzle/drizzle-query.ts +33 -16
- package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +57 -62
- package/src/adapters/drizzle/drizzle-uow-compiler.ts +16 -6
- package/src/adapters/drizzle/drizzle-uow-executor.ts +27 -4
- package/src/adapters/kysely/kysely-adapter.ts +94 -55
- package/src/adapters/kysely/kysely-connection-pool.ts +70 -0
- package/src/adapters/kysely/kysely-query-compiler.ts +10 -6
- package/src/adapters/kysely/kysely-query.ts +30 -17
- package/src/adapters/kysely/kysely-uow-compiler.test.ts +47 -47
- package/src/adapters/kysely/kysely-uow-compiler.ts +13 -8
- package/src/adapters/kysely/kysely-uow-joins.test.ts +34 -34
- package/src/adapters/kysely/migration/execute-factory.ts +24 -3
- package/src/fragment.test.ts +7 -0
- package/src/migration-engine/generation-engine.ts +18 -6
- package/src/mod.ts +1 -1
- package/src/shared/connection-pool.ts +24 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/alias.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/casing.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/column-builder.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/column.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/entity.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/errors.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/columns/common.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/columns/enum.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/foreign-keys.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/unique-constraint.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/utils/array.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/query-builders/query-builder.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/query-promise.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/relations.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/selection-proxy.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/expressions/conditions.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/expressions/select.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/functions/aggregate.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/sql.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/columns/common.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/db.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/dialect.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/foreign-keys.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/count.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/query.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/select.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/update.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/table.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/unique-constraint.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/utils.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/view-base.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/subquery.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/table.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/table.utils.js +0 -6
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/table.utils.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing-utils.js +0 -8
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing-utils.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing.js +0 -8
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/utils.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/view-common.js +0 -6
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/view-common.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kysely-uow-compiler.js","names":["indexColumns: AnyColumn[]","orderDirection: \"asc\" | \"desc\"","orderBy: [AnyColumn, \"asc\" | \"desc\"][] | undefined","cursorCondition: Condition | undefined","combinedWhere: Condition | undefined"],"sources":["../../../src/adapters/kysely/kysely-uow-compiler.ts"],"sourcesContent":["import type { CompiledQuery } from \"kysely\";\nimport type { AnyColumn, AnySchema, FragnoId } from \"../../schema/create\";\nimport type {\n CompiledMutation,\n MutationOperation,\n RetrievalOperation,\n UOWCompiler,\n} from \"../../query/unit-of-work\";\nimport type { KyselyConfig } from \"./kysely-adapter\";\nimport { createKyselyQueryCompiler } from \"./kysely-query-compiler\";\nimport { createKyselyQueryBuilder } from \"./kysely-query-builder\";\nimport { buildCondition, type Condition } from \"../../query/condition-builder\";\nimport { decodeCursor, serializeCursorValues } from \"../../query/cursor\";\nimport type { AnySelectClause } from \"../../query/query\";\nimport type { TableNameMapper } from \"./kysely-shared\";\n\n/**\n * Create a Kysely-specific Unit of Work compiler\n *\n * This compiler translates UOW operations into Kysely CompiledQuery objects\n * that can be executed as a batch/transaction.\n *\n * @param schema - The database schema\n * @param config - Kysely configuration\n * @param mapper - Optional table name mapper for namespace prefixing\n * @returns A UOWCompiler instance for Kysely\n */\nexport function createKyselyUOWCompiler<TSchema extends AnySchema>(\n schema: TSchema,\n config: KyselyConfig,\n mapper?: TableNameMapper,\n): UOWCompiler<TSchema, CompiledQuery> {\n const queryCompiler = createKyselyQueryCompiler(schema, config, mapper);\n const { db, provider } = config;\n // Resolve the db instance if it's a function\n const kysely = typeof db === \"function\" ? db() : db;\n const queryBuilder = createKyselyQueryBuilder(kysely, provider, mapper);\n\n function toTable(name: unknown) {\n const table = schema.tables[name as string];\n if (!table) {\n throw new Error(`Invalid table name ${name}.`);\n }\n return table;\n }\n\n return {\n compileRetrievalOperation(op: RetrievalOperation<TSchema>): CompiledQuery | null {\n switch (op.type) {\n case \"count\": {\n return queryCompiler.count(op.table.name, {\n where: op.options.where,\n });\n }\n\n case \"find\": {\n // Map UOW FindOptions to query compiler's FindManyOptions\n const {\n useIndex: _useIndex,\n orderByIndex,\n joins: join,\n after,\n before,\n pageSize,\n ...findManyOptions\n } = op.options;\n\n // Get index columns for ordering and cursor pagination\n let indexColumns: AnyColumn[] = [];\n let orderDirection: \"asc\" | \"desc\" = \"asc\";\n\n if (orderByIndex) {\n const index = op.table.indexes[orderByIndex.indexName];\n orderDirection = orderByIndex.direction;\n\n if (!index) {\n // If _primary index doesn't exist, fall back to internal ID column\n // (which is the actual primary key and maintains insertion order)\n if (orderByIndex.indexName === \"_primary\") {\n indexColumns = [op.table.getIdColumn()];\n } else {\n throw new Error(\n `Index \"${orderByIndex.indexName}\" not found on table \"${op.table.name}\"`,\n );\n }\n } else {\n // Order by all columns in the index with the specified direction\n indexColumns = index.columns;\n }\n }\n\n // Convert orderByIndex to orderBy format\n let orderBy: [AnyColumn, \"asc\" | \"desc\"][] | undefined;\n if (indexColumns.length > 0) {\n orderBy = indexColumns.map((col) => [col, orderDirection]);\n }\n\n // Handle cursor pagination - build a cursor condition\n let cursorCondition: Condition | undefined;\n\n if ((after || before) && indexColumns.length > 0) {\n const cursor = after || before;\n const cursorData = decodeCursor(cursor!);\n const serializedValues = serializeCursorValues(cursorData, indexColumns, provider);\n\n // Build tuple comparison for cursor pagination\n // For \"after\" with \"asc\": (col1, col2, ...) > (val1, val2, ...)\n // For \"before\" with \"desc\": reverse the comparison\n const isAfter = !!after;\n const useGreaterThan =\n (isAfter && orderDirection === \"asc\") || (!isAfter && orderDirection === \"desc\");\n\n if (indexColumns.length === 1) {\n // Simple single-column case\n const col = indexColumns[0]!;\n const val = serializedValues[col.ormName];\n const operator = useGreaterThan ? \">\" : \"<\";\n cursorCondition = {\n type: \"compare\",\n a: col,\n operator,\n b: val,\n };\n } else {\n // Multi-column tuple comparison - not yet supported for Kysely\n throw new Error(\n \"Multi-column cursor pagination is not yet supported in Kysely Unit of Work implementation\",\n );\n }\n }\n\n // Combine user where clause with cursor condition\n let combinedWhere: Condition | undefined;\n if (findManyOptions.where) {\n const whereResult = buildCondition(op.table.columns, findManyOptions.where);\n if (whereResult === true) {\n combinedWhere = undefined;\n } else if (whereResult === false) {\n return null;\n } else {\n combinedWhere = whereResult;\n }\n }\n\n if (cursorCondition) {\n if (combinedWhere) {\n combinedWhere = {\n type: \"and\",\n items: [combinedWhere, cursorCondition],\n };\n } else {\n combinedWhere = cursorCondition;\n }\n }\n\n // When we have joins or need to bypass buildFindOptions, use queryBuilder directly\n if (join && join.length > 0) {\n return queryBuilder.findMany(op.table, {\n // Safe cast: select from UOW matches SimplifyFindOptions requirement\n select: (findManyOptions.select ?? true) as AnySelectClause,\n where: combinedWhere,\n orderBy,\n limit: pageSize,\n join,\n });\n }\n\n return queryCompiler.findMany(op.table.name, {\n ...findManyOptions,\n where: combinedWhere ? () => combinedWhere! : undefined,\n orderBy: orderBy?.map(([col, dir]) => [col.ormName, dir]),\n limit: pageSize,\n });\n }\n }\n },\n\n compileMutationOperation(\n op: MutationOperation<TSchema>,\n ): CompiledMutation<CompiledQuery> | null {\n switch (op.type) {\n case \"create\":\n // queryCompiler.create() calls encodeValues() which handles runtime defaults\n return {\n query: queryCompiler.create(op.table, op.values),\n expectedAffectedRows: null, // creates don't need affected row checks\n };\n\n case \"update\": {\n const table = toTable(op.table);\n const idColumn = table.getIdColumn();\n const versionColumn = table.getVersionColumn();\n\n const externalId = typeof op.id === \"string\" ? op.id : op.id.externalId;\n const versionToCheck = getVersionToCheck(op.id, op.checkVersion);\n\n // Build WHERE clause that filters by ID and optionally by version\n const whereClause =\n versionToCheck !== undefined\n ? () =>\n buildCondition(table.columns, (eb) =>\n eb.and(\n eb(idColumn.ormName, \"=\", externalId),\n eb(versionColumn.ormName, \"=\", versionToCheck),\n ),\n )\n : () => buildCondition(table.columns, (eb) => eb(idColumn.ormName, \"=\", externalId));\n\n const query = queryCompiler.updateMany(op.table, {\n where: whereClause,\n set: op.set,\n });\n\n return query\n ? {\n query,\n expectedAffectedRows: op.checkVersion ? 1 : null,\n }\n : null;\n }\n\n case \"delete\": {\n const table = toTable(op.table);\n const idColumn = table.getIdColumn();\n const versionColumn = table.getVersionColumn();\n\n // Extract external ID based on whether op.id is FragnoId or string\n const externalId = typeof op.id === \"string\" ? op.id : op.id.externalId;\n const versionToCheck = getVersionToCheck(op.id, op.checkVersion);\n\n // Build WHERE clause that filters by ID and optionally by version\n const whereClause =\n versionToCheck !== undefined\n ? () =>\n buildCondition(table.columns, (eb) =>\n eb.and(\n eb(idColumn.ormName, \"=\", externalId),\n eb(versionColumn.ormName, \"=\", versionToCheck),\n ),\n )\n : () => buildCondition(table.columns, (eb) => eb(idColumn.ormName, \"=\", externalId));\n\n const query = queryCompiler.deleteMany(op.table, {\n where: whereClause,\n });\n\n return query\n ? {\n query,\n expectedAffectedRows: op.checkVersion ? 1 : null,\n }\n : null;\n }\n }\n },\n };\n}\n\n/**\n * Get the version to check for a given ID and checkVersion flag.\n * @returns The version to check or undefined if no check is required.\n * @throws Error if the ID is a string and checkVersion is true.\n */\nfunction getVersionToCheck(id: FragnoId | string, checkVersion: boolean): number | undefined {\n if (!checkVersion) {\n return undefined;\n }\n\n if (typeof id === \"string\") {\n throw new Error(\n `Cannot use checkVersion with a string ID. Version checking requires a FragnoId with version information.`,\n );\n }\n\n return id.version;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kysely-uow-compiler.js","names":["indexColumns: AnyColumn[]","orderDirection: \"asc\" | \"desc\"","orderBy: [AnyColumn, \"asc\" | \"desc\"][] | undefined","cursorCondition: Condition | undefined","combinedWhere: Condition | undefined"],"sources":["../../../src/adapters/kysely/kysely-uow-compiler.ts"],"sourcesContent":["import type { CompiledQuery, Kysely } from \"kysely\";\nimport type { AnyColumn, AnySchema, FragnoId } from \"../../schema/create\";\nimport type {\n CompiledMutation,\n MutationOperation,\n RetrievalOperation,\n UOWCompiler,\n} from \"../../query/unit-of-work\";\nimport { createKyselyQueryCompiler } from \"./kysely-query-compiler\";\nimport { createKyselyQueryBuilder } from \"./kysely-query-builder\";\nimport { buildCondition, type Condition } from \"../../query/condition-builder\";\nimport { decodeCursor, serializeCursorValues } from \"../../query/cursor\";\nimport type { AnySelectClause } from \"../../query/query\";\nimport type { TableNameMapper } from \"./kysely-shared\";\nimport type { ConnectionPool } from \"../../shared/connection-pool\";\nimport type { SQLProvider } from \"../../shared/providers\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype KyselyAny = Kysely<any>;\n\n/**\n * Create a Kysely-specific Unit of Work compiler\n *\n * This compiler translates UOW operations into Kysely CompiledQuery objects\n * that can be executed as a batch/transaction.\n *\n * @param schema - The database schema\n * @param pool - Connection pool for acquiring database connections\n * @param provider - SQL provider (postgresql, mysql, sqlite, etc.)\n * @param mapper - Optional table name mapper for namespace prefixing\n * @returns A UOWCompiler instance for Kysely\n */\nexport function createKyselyUOWCompiler<TSchema extends AnySchema>(\n schema: TSchema,\n pool: ConnectionPool<KyselyAny>,\n provider: SQLProvider,\n mapper?: TableNameMapper,\n): UOWCompiler<TSchema, CompiledQuery> {\n const queryCompiler = createKyselyQueryCompiler(schema, pool, provider, mapper);\n // Get kysely instance for query building (compilation doesn't execute, just builds SQL)\n const kysely = pool.getDatabaseSync();\n const queryBuilder = createKyselyQueryBuilder(kysely, provider, mapper);\n\n function toTable(name: unknown) {\n const table = schema.tables[name as string];\n if (!table) {\n throw new Error(`Invalid table name ${name}.`);\n }\n return table;\n }\n\n return {\n compileRetrievalOperation(op: RetrievalOperation<TSchema>): CompiledQuery | null {\n switch (op.type) {\n case \"count\": {\n return queryCompiler.count(op.table.name, {\n where: op.options.where,\n });\n }\n\n case \"find\": {\n // Map UOW FindOptions to query compiler's FindManyOptions\n const {\n useIndex: _useIndex,\n orderByIndex,\n joins: join,\n after,\n before,\n pageSize,\n ...findManyOptions\n } = op.options;\n\n // Get index columns for ordering and cursor pagination\n let indexColumns: AnyColumn[] = [];\n let orderDirection: \"asc\" | \"desc\" = \"asc\";\n\n if (orderByIndex) {\n const index = op.table.indexes[orderByIndex.indexName];\n orderDirection = orderByIndex.direction;\n\n if (!index) {\n // If _primary index doesn't exist, fall back to internal ID column\n // (which is the actual primary key and maintains insertion order)\n if (orderByIndex.indexName === \"_primary\") {\n indexColumns = [op.table.getIdColumn()];\n } else {\n throw new Error(\n `Index \"${orderByIndex.indexName}\" not found on table \"${op.table.name}\"`,\n );\n }\n } else {\n // Order by all columns in the index with the specified direction\n indexColumns = index.columns;\n }\n }\n\n // Convert orderByIndex to orderBy format\n let orderBy: [AnyColumn, \"asc\" | \"desc\"][] | undefined;\n if (indexColumns.length > 0) {\n orderBy = indexColumns.map((col) => [col, orderDirection]);\n }\n\n // Handle cursor pagination - build a cursor condition\n let cursorCondition: Condition | undefined;\n\n if ((after || before) && indexColumns.length > 0) {\n const cursor = after || before;\n const cursorData = decodeCursor(cursor!);\n const serializedValues = serializeCursorValues(cursorData, indexColumns, provider);\n\n // Build tuple comparison for cursor pagination\n // For \"after\" with \"asc\": (col1, col2, ...) > (val1, val2, ...)\n // For \"before\" with \"desc\": reverse the comparison\n const isAfter = !!after;\n const useGreaterThan =\n (isAfter && orderDirection === \"asc\") || (!isAfter && orderDirection === \"desc\");\n\n if (indexColumns.length === 1) {\n // Simple single-column case\n const col = indexColumns[0]!;\n const val = serializedValues[col.ormName];\n const operator = useGreaterThan ? \">\" : \"<\";\n cursorCondition = {\n type: \"compare\",\n a: col,\n operator,\n b: val,\n };\n } else {\n // Multi-column tuple comparison - not yet supported for Kysely\n throw new Error(\n \"Multi-column cursor pagination is not yet supported in Kysely Unit of Work implementation\",\n );\n }\n }\n\n // Combine user where clause with cursor condition\n let combinedWhere: Condition | undefined;\n if (findManyOptions.where) {\n const whereResult = buildCondition(op.table.columns, findManyOptions.where);\n if (whereResult === true) {\n combinedWhere = undefined;\n } else if (whereResult === false) {\n return null;\n } else {\n combinedWhere = whereResult;\n }\n }\n\n if (cursorCondition) {\n if (combinedWhere) {\n combinedWhere = {\n type: \"and\",\n items: [combinedWhere, cursorCondition],\n };\n } else {\n combinedWhere = cursorCondition;\n }\n }\n\n // When we have joins or need to bypass buildFindOptions, use queryBuilder directly\n if (join && join.length > 0) {\n return queryBuilder.findMany(op.table, {\n // Safe cast: select from UOW matches SimplifyFindOptions requirement\n select: (findManyOptions.select ?? true) as AnySelectClause,\n where: combinedWhere,\n orderBy,\n limit: pageSize,\n join,\n });\n }\n\n return queryCompiler.findMany(op.table.name, {\n ...findManyOptions,\n where: combinedWhere ? () => combinedWhere! : undefined,\n orderBy: orderBy?.map(([col, dir]) => [col.ormName, dir]),\n limit: pageSize,\n });\n }\n }\n },\n\n compileMutationOperation(\n op: MutationOperation<TSchema>,\n ): CompiledMutation<CompiledQuery> | null {\n switch (op.type) {\n case \"create\":\n // queryCompiler.create() calls encodeValues() which handles runtime defaults\n return {\n query: queryCompiler.create(op.table, op.values),\n expectedAffectedRows: null, // creates don't need affected row checks\n };\n\n case \"update\": {\n const table = toTable(op.table);\n const idColumn = table.getIdColumn();\n const versionColumn = table.getVersionColumn();\n\n const externalId = typeof op.id === \"string\" ? op.id : op.id.externalId;\n const versionToCheck = getVersionToCheck(op.id, op.checkVersion);\n\n // Build WHERE clause that filters by ID and optionally by version\n const whereClause =\n versionToCheck !== undefined\n ? () =>\n buildCondition(table.columns, (eb) =>\n eb.and(\n eb(idColumn.ormName, \"=\", externalId),\n eb(versionColumn.ormName, \"=\", versionToCheck),\n ),\n )\n : () => buildCondition(table.columns, (eb) => eb(idColumn.ormName, \"=\", externalId));\n\n const query = queryCompiler.updateMany(op.table, {\n where: whereClause,\n set: op.set,\n });\n\n return query\n ? {\n query,\n expectedAffectedRows: op.checkVersion ? 1 : null,\n }\n : null;\n }\n\n case \"delete\": {\n const table = toTable(op.table);\n const idColumn = table.getIdColumn();\n const versionColumn = table.getVersionColumn();\n\n // Extract external ID based on whether op.id is FragnoId or string\n const externalId = typeof op.id === \"string\" ? op.id : op.id.externalId;\n const versionToCheck = getVersionToCheck(op.id, op.checkVersion);\n\n // Build WHERE clause that filters by ID and optionally by version\n const whereClause =\n versionToCheck !== undefined\n ? () =>\n buildCondition(table.columns, (eb) =>\n eb.and(\n eb(idColumn.ormName, \"=\", externalId),\n eb(versionColumn.ormName, \"=\", versionToCheck),\n ),\n )\n : () => buildCondition(table.columns, (eb) => eb(idColumn.ormName, \"=\", externalId));\n\n const query = queryCompiler.deleteMany(op.table, {\n where: whereClause,\n });\n\n return query\n ? {\n query,\n expectedAffectedRows: op.checkVersion ? 1 : null,\n }\n : null;\n }\n }\n },\n };\n}\n\n/**\n * Get the version to check for a given ID and checkVersion flag.\n * @returns The version to check or undefined if no check is required.\n * @throws Error if the ID is a string and checkVersion is true.\n */\nfunction getVersionToCheck(id: FragnoId | string, checkVersion: boolean): number | undefined {\n if (!checkVersion) {\n return undefined;\n }\n\n if (typeof id === \"string\") {\n throw new Error(\n `Cannot use checkVersion with a string ID. Version checking requires a FragnoId with version information.`,\n );\n }\n\n return id.version;\n}\n"],"mappings":"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"}
|
|
@@ -8,8 +8,14 @@ import { MssqlMigrationExecutor } from "./execute-mssql.js";
|
|
|
8
8
|
* Create a provider-specific migration executor.
|
|
9
9
|
*/
|
|
10
10
|
function createMigrationExecutor(config) {
|
|
11
|
-
const {
|
|
12
|
-
const
|
|
11
|
+
const { provider } = config;
|
|
12
|
+
const dbOrFactory = config.db;
|
|
13
|
+
let kysely;
|
|
14
|
+
if (typeof dbOrFactory === "function") {
|
|
15
|
+
const result = dbOrFactory();
|
|
16
|
+
if (result && typeof result.then === "function") throw new Error("Cannot create migration executor with async database factory. Database must be initialized before calling preprocessOperations.");
|
|
17
|
+
kysely = result;
|
|
18
|
+
} else kysely = dbOrFactory;
|
|
13
19
|
switch (provider) {
|
|
14
20
|
case "sqlite": return new SqliteMigrationExecutor(kysely, provider);
|
|
15
21
|
case "postgresql":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-factory.js","names":["_exhaustive: never"],"sources":["../../../../src/adapters/kysely/migration/execute-factory.ts"],"sourcesContent":["import type { KyselyConfig } from \"../kysely-adapter\";\nimport type { MigrationExecutor } from \"./execute-base\";\nimport { SqliteMigrationExecutor } from \"./execute-sqlite\";\nimport { PostgresMigrationExecutor } from \"./execute-postgres\";\nimport { MysqlMigrationExecutor } from \"./execute-mysql\";\nimport { MssqlMigrationExecutor } from \"./execute-mssql\";\n\n/**\n * Create a provider-specific migration executor.\n */\nexport function createMigrationExecutor(config: KyselyConfig): MigrationExecutor {\n const {
|
|
1
|
+
{"version":3,"file":"execute-factory.js","names":["kysely: KyselyAny","_exhaustive: never"],"sources":["../../../../src/adapters/kysely/migration/execute-factory.ts"],"sourcesContent":["import type { Kysely } from \"kysely\";\nimport type { KyselyConfig } from \"../kysely-adapter\";\nimport type { MigrationExecutor } from \"./execute-base\";\nimport { SqliteMigrationExecutor } from \"./execute-sqlite\";\nimport { PostgresMigrationExecutor } from \"./execute-postgres\";\nimport { MysqlMigrationExecutor } from \"./execute-mysql\";\nimport { MssqlMigrationExecutor } from \"./execute-mssql\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype KyselyAny = Kysely<any>;\n\n/**\n * Create a provider-specific migration executor.\n */\nexport function createMigrationExecutor(config: KyselyConfig): MigrationExecutor {\n const { provider } = config;\n // Resolve db instance synchronously\n // Safe cast: This is only called from synchronous contexts where the db must be available\n const dbOrFactory = config.db;\n let kysely: KyselyAny;\n\n if (typeof dbOrFactory === \"function\") {\n const result = dbOrFactory();\n // Check if it's a Promise - if so, this is an error in usage\n if (result && typeof (result as Promise<unknown>).then === \"function\") {\n throw new Error(\n \"Cannot create migration executor with async database factory. \" +\n \"Database must be initialized before calling preprocessOperations.\",\n );\n }\n // Safe cast: We've verified it's not a Promise\n kysely = result as KyselyAny;\n } else {\n kysely = dbOrFactory;\n }\n\n switch (provider) {\n case \"sqlite\":\n return new SqliteMigrationExecutor(kysely, provider);\n case \"postgresql\":\n case \"cockroachdb\":\n return new PostgresMigrationExecutor(kysely, provider);\n case \"mysql\":\n return new MysqlMigrationExecutor(kysely, provider);\n case \"mssql\":\n return new MssqlMigrationExecutor(kysely, provider);\n default: {\n // Ensure exhaustive switch\n const _exhaustive: never = provider;\n throw new Error(`Unsupported provider: ${_exhaustive}`);\n }\n }\n}\n"],"mappings":";;;;;;;;;AAcA,SAAgB,wBAAwB,QAAyC;CAC/E,MAAM,EAAE,aAAa;CAGrB,MAAM,cAAc,OAAO;CAC3B,IAAIA;AAEJ,KAAI,OAAO,gBAAgB,YAAY;EACrC,MAAM,SAAS,aAAa;AAE5B,MAAI,UAAU,OAAQ,OAA4B,SAAS,WACzD,OAAM,IAAI,MACR,kIAED;AAGH,WAAS;OAET,UAAS;AAGX,SAAQ,UAAR;EACE,KAAK,SACH,QAAO,IAAI,wBAAwB,QAAQ,SAAS;EACtD,KAAK;EACL,KAAK,cACH,QAAO,IAAI,0BAA0B,QAAQ,SAAS;EACxD,KAAK,QACH,QAAO,IAAI,uBAAuB,QAAQ,SAAS;EACrD,KAAK,QACH,QAAO,IAAI,uBAAuB,QAAQ,SAAS;EACrD,SAAS;GAEP,MAAMC,cAAqB;AAC3B,SAAM,IAAI,MAAM,yBAAyB,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generation-engine.d.ts","names":[],"sources":["../../src/migration-engine/generation-engine.ts"],"sourcesContent":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"generation-engine.d.ts","names":[],"sources":["../../src/migration-engine/generation-engine.ts"],"sourcesContent":[],"mappings":";;;;;UAaiB,sBAAA;;EAAA,IAAA,EAAA,MAAA;EAMA,SAAA,EAAA,MAAA;AASjB;AAOsB,UAhBL,wBAAA,CAgB+B;EACN,MAAA,EAAA,MAAA;EAAf,IAAA,EAAA,MAAA;EAEd,SAAA,EAAA,MAAA;EAMF,WAAA,EAAA,MAAA;EAAR,SAAA,EAAA,MAAA;EAAO,iBAAA,CAAA,EAnBY,iBAmBZ;AAiJV;AAAgF,UAjK/D,sBAAA,CAiK+D;EAAf,SAAA,EAAA,MAAA;EACpD,UAAA,EAAA,OAAA;EACF,WAAA,EAAA,MAAA;EAAR,SAAA,EAAA,MAAA;;AAyIa,iBArSM,0BAsSb,CAAA,yBArSkB,cAsSxB,CAtSuC,SAsSjB,CAAA,EAAA,CAAA,CAAA,SAAA,EApSZ,UAoSY,EAAA,QAAA,EAAA;;;;IA9RtB,QAAQ;;;;;;;;iBAiJW,2CAA2C,eAAe,yBACnE,aACV,QAAQ;;;;;;;;;;;iBAyIK,6BAAA,QACP,6BACN"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fragnoDatabaseAdapterNameFakeSymbol, fragnoDatabaseAdapterVersionFakeSymbol } from "../adapters/adapters.js";
|
|
1
2
|
import { SETTINGS_NAMESPACE, createSettingsManager, settingsSchema } from "../shared/settings-schema.js";
|
|
2
3
|
|
|
3
4
|
//#region src/migration-engine/generation-engine.ts
|
|
@@ -72,7 +73,13 @@ async function executeMigrations(databases) {
|
|
|
72
73
|
if (databases.length === 0) throw new Error("No databases provided for migration");
|
|
73
74
|
const adapter = databases[0].adapter;
|
|
74
75
|
if (!adapter.createMigrationEngine) throw new Error("Adapter does not support running migrations. The adapter only supports schema generation.\nTry using 'generateMigrationsOrSchema' instead to generate schema files.");
|
|
75
|
-
|
|
76
|
+
const firstAdapterName = adapter[fragnoDatabaseAdapterNameFakeSymbol];
|
|
77
|
+
const firstAdapterVersion = adapter[fragnoDatabaseAdapterVersionFakeSymbol];
|
|
78
|
+
for (const db of databases) {
|
|
79
|
+
const dbAdapterName = db.adapter[fragnoDatabaseAdapterNameFakeSymbol];
|
|
80
|
+
const dbAdapterVersion = db.adapter[fragnoDatabaseAdapterVersionFakeSymbol];
|
|
81
|
+
if (dbAdapterName !== firstAdapterName || dbAdapterVersion !== firstAdapterVersion) throw new Error(`All fragments must use the same database adapter. Found: ${firstAdapterName}@${firstAdapterVersion} and ${dbAdapterName}@${dbAdapterVersion}`);
|
|
82
|
+
}
|
|
76
83
|
if (!await adapter.isConnectionHealthy()) throw new Error("Database connection is not healthy. Please check your database connection and try again.");
|
|
77
84
|
const results = [];
|
|
78
85
|
const migrationsToExecute = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generation-engine.js","names":["settingsSourceVersion: number","generatedFiles: GenerationInternalResult[]","results: ExecuteMigrationResult[]","migrationsToExecute: Array<{\n namespace: string;\n fromVersion: number;\n toVersion: number;\n preparedMigration: PreparedMigration;\n }>"],"sources":["../../src/migration-engine/generation-engine.ts"],"sourcesContent":["import type { FragnoDatabase } from \"../mod\";\nimport type { AnySchema } from \"../schema/create\";\nimport type { PreparedMigration } from \"./create\";\nimport {\n settingsSchema,\n SETTINGS_NAMESPACE,\n createSettingsManager,\n} from \"../shared/settings-schema\";\n\nexport interface GenerationEngineResult {\n schema: string;\n path: string;\n namespace: string;\n}\n\nexport interface GenerationInternalResult {\n schema: string;\n path: string;\n namespace: string;\n fromVersion: number;\n toVersion: number;\n preparedMigration?: PreparedMigration;\n}\n\nexport interface ExecuteMigrationResult {\n namespace: string;\n didMigrate: boolean;\n fromVersion: number;\n toVersion: number;\n}\n\nexport async function generateMigrationsOrSchema<\n const TDatabases extends FragnoDatabase<AnySchema>[],\n>(\n databases: TDatabases,\n options?: {\n path?: string;\n toVersion?: number;\n fromVersion?: number;\n },\n): Promise<GenerationEngineResult[]> {\n if (databases.length === 0) {\n throw new Error(\"No databases provided for schema generation\");\n }\n\n const firstDb = databases[0];\n const adapter = firstDb.adapter;\n\n // If adapter has createSchemaGenerator, use it for combined generation (e.g., Drizzle)\n if (adapter.createSchemaGenerator) {\n if (options?.toVersion !== undefined || options?.fromVersion !== undefined) {\n console.warn(\n \"⚠️ Warning: --from and --to version options are not supported when generating schemas for multiple fragments and will be ignored.\",\n );\n }\n\n const fragments = databases.map((db) => ({\n schema: db.schema,\n namespace: db.namespace,\n }));\n\n const generator = adapter.createSchemaGenerator(fragments, {\n path: options?.path,\n });\n\n return [\n {\n ...generator.generateSchema(),\n namespace: firstDb.namespace,\n },\n ];\n }\n\n // Otherwise, use migration engine for individual generation (e.g., Kysely)\n if (!adapter.createMigrationEngine) {\n throw new Error(\n \"Adapter does not support migration-based schema generation. Ensure your adapter implements createMigrationEngine.\",\n );\n }\n\n if (!(await adapter.isConnectionHealthy())) {\n throw new Error(\n \"Database connection is not healthy. Please check your database connection and try again.\",\n );\n }\n\n const settingsQueryEngine = adapter.createQueryEngine(settingsSchema, \"\");\n const settingsManager = createSettingsManager(settingsQueryEngine, SETTINGS_NAMESPACE);\n\n let settingsSourceVersion: number;\n try {\n const result = await settingsManager.get(\"version\");\n\n if (!result) {\n settingsSourceVersion = 0;\n } else {\n settingsSourceVersion = parseInt(result.value);\n }\n } catch {\n // We don't really have a way to verify this error happens because the key doesn't exist in the database\n settingsSourceVersion = 0;\n }\n\n const generatedFiles: GenerationInternalResult[] = [];\n\n const settingsMigrator = adapter.createMigrationEngine(settingsSchema, SETTINGS_NAMESPACE);\n const settingsTargetVersion = settingsSchema.version;\n\n // Generate settings table migration\n const settingsMigration = await settingsMigrator.prepareMigrationTo(settingsTargetVersion, {\n fromVersion: settingsSourceVersion,\n });\n\n if (!settingsMigration.getSQL) {\n throw new Error(\n \"Migration engine does not support SQL generation. Ensure your adapter's migration engine provides getSQL().\",\n );\n }\n\n const settingsSql = settingsMigration.getSQL();\n\n if (settingsSql.trim()) {\n generatedFiles.push({\n schema: settingsSql,\n path: \"settings-migration.sql\", // Placeholder, will be renamed in post-processing\n namespace: SETTINGS_NAMESPACE,\n fromVersion: settingsSourceVersion,\n toVersion: settingsTargetVersion,\n preparedMigration: settingsMigration,\n });\n }\n\n // Generate migration for each fragment\n for (const db of databases) {\n const dbAdapter = db.adapter;\n\n // Use migration engine\n if (!dbAdapter.createMigrationEngine) {\n throw new Error(\n `Adapter for ${db.namespace} does not support schema generation. ` +\n `Ensure your adapter implements either createSchemaGenerator or createMigrationEngine.`,\n );\n }\n\n const migrator = dbAdapter.createMigrationEngine(db.schema, db.namespace);\n const targetVersion = options?.toVersion ?? db.schema.version;\n const sourceVersion = options?.fromVersion ?? 0;\n\n // Generate migration from source to target version\n const preparedMigration = await migrator.prepareMigrationTo(targetVersion, {\n fromVersion: sourceVersion,\n });\n\n if (!preparedMigration.getSQL) {\n throw new Error(\n \"Migration engine does not support SQL generation. Ensure your adapter's migration engine provides getSQL().\",\n );\n }\n\n const sql = preparedMigration.getSQL();\n\n // If no migrations needed, skip this fragment\n if (sql.trim()) {\n generatedFiles.push({\n schema: sql,\n path: \"schema.sql\", // Placeholder, will be renamed in post-processing\n namespace: db.namespace,\n fromVersion: sourceVersion,\n toVersion: targetVersion,\n preparedMigration: preparedMigration,\n });\n }\n }\n\n // Post-process filenames with ordering\n return postProcessMigrationFilenames(generatedFiles);\n}\n\n/**\n * Execute migrations for all fragments in the correct order.\n * Migrates settings table first, then fragments alphabetically.\n *\n * @param databases - Array of FragnoDatabase instances to migrate\n * @returns Array of execution results for each migration\n */\nexport async function executeMigrations<const TDatabases extends FragnoDatabase<AnySchema>[]>(\n databases: TDatabases,\n): Promise<ExecuteMigrationResult[]> {\n if (databases.length === 0) {\n throw new Error(\"No databases provided for migration\");\n }\n\n const firstDb = databases[0];\n const adapter = firstDb.adapter;\n\n // Validate adapter supports migrations\n if (!adapter.createMigrationEngine) {\n throw new Error(\n \"Adapter does not support running migrations. The adapter only supports schema generation.\\n\" +\n \"Try using 'generateMigrationsOrSchema' instead to generate schema files.\",\n );\n }\n\n // Validate all use same adapter\n const allSameAdapter = databases.every((db) => db.adapter === adapter);\n if (!allSameAdapter) {\n throw new Error(\n \"All fragments must use the same database adapter instance. Mixed adapters are not supported.\",\n );\n }\n\n if (!(await adapter.isConnectionHealthy())) {\n throw new Error(\n \"Database connection is not healthy. Please check your database connection and try again.\",\n );\n }\n\n const results: ExecuteMigrationResult[] = [];\n const migrationsToExecute: Array<{\n namespace: string;\n fromVersion: number;\n toVersion: number;\n preparedMigration: PreparedMigration;\n }> = [];\n\n // 1. Prepare settings table migration\n const settingsQueryEngine = adapter.createQueryEngine(settingsSchema, \"\");\n const settingsManager = createSettingsManager(settingsQueryEngine, SETTINGS_NAMESPACE);\n\n let settingsSourceVersion: number;\n try {\n const result = await settingsManager.get(\"version\");\n settingsSourceVersion = result ? parseInt(result.value) : 0;\n } catch {\n settingsSourceVersion = 0;\n }\n\n const settingsMigrator = adapter.createMigrationEngine(settingsSchema, SETTINGS_NAMESPACE);\n const settingsTargetVersion = settingsSchema.version;\n\n if (settingsSourceVersion < settingsTargetVersion) {\n const settingsMigration = await settingsMigrator.prepareMigrationTo(settingsTargetVersion, {\n fromVersion: settingsSourceVersion,\n updateSettings: true,\n });\n\n if (settingsMigration.operations.length > 0) {\n migrationsToExecute.push({\n namespace: SETTINGS_NAMESPACE,\n fromVersion: settingsSourceVersion,\n toVersion: settingsTargetVersion,\n preparedMigration: settingsMigration,\n });\n }\n }\n\n // 2. Prepare fragment migrations (sorted alphabetically)\n const sortedDatabases = [...databases].sort((a, b) => a.namespace.localeCompare(b.namespace));\n\n for (const fragnoDb of sortedDatabases) {\n const migrator = adapter.createMigrationEngine(fragnoDb.schema, fragnoDb.namespace);\n const currentVersion = await migrator.getVersion();\n const targetVersion = fragnoDb.schema.version;\n\n if (currentVersion < targetVersion) {\n const preparedMigration = await migrator.prepareMigrationTo(targetVersion, {\n updateSettings: true,\n });\n\n if (preparedMigration.operations.length > 0) {\n migrationsToExecute.push({\n namespace: fragnoDb.namespace,\n fromVersion: currentVersion,\n toVersion: targetVersion,\n preparedMigration: preparedMigration,\n });\n }\n }\n }\n\n // 3. Execute all migrations in order\n for (const migration of migrationsToExecute) {\n await migration.preparedMigration.execute();\n results.push({\n namespace: migration.namespace,\n didMigrate: true,\n fromVersion: migration.fromVersion,\n toVersion: migration.toVersion,\n });\n }\n\n // 4. Add skipped migrations (already up-to-date)\n for (const fragnoDb of databases) {\n if (!results.find((r) => r.namespace === fragnoDb.namespace)) {\n results.push({\n namespace: fragnoDb.namespace,\n didMigrate: false,\n fromVersion: fragnoDb.schema.version,\n toVersion: fragnoDb.schema.version,\n });\n }\n }\n\n return results;\n}\n\n/**\n * Post-processes migration files to add ordering and standardize naming.\n *\n * Sorts files with settings namespace first, then alphabetically by namespace,\n * and assigns ordering numbers. Transforms filenames to format:\n * `<date>_<n>_f<from>_t<to>_<namespace>.sql`\n *\n * @param files - Array of generated migration files with version information\n * @returns Array of files with standardized paths and ordering\n */\nexport function postProcessMigrationFilenames(\n files: GenerationInternalResult[],\n): GenerationEngineResult[] {\n if (files.length === 0) {\n return [];\n }\n\n // Sort files: settings namespace first, then alphabetically by namespace\n const sortedFiles = [...files].sort((a, b) => {\n if (a.namespace === SETTINGS_NAMESPACE) {\n return -1;\n }\n if (b.namespace === SETTINGS_NAMESPACE) {\n return 1;\n }\n return a.namespace.localeCompare(b.namespace);\n });\n\n // Generate date prefix for filenames\n const date = new Date().toISOString().split(\"T\")[0].replace(/-/g, \"\");\n\n // Rename files with ordering\n return sortedFiles.map((file, index) => {\n const fromVersion = file.fromVersion ?? 0;\n const toVersion = file.toVersion ?? 0;\n\n // Create new filename with ordering\n const orderNum = (index + 1).toString().padStart(3, \"0\");\n const fromPadded = fromVersion.toString().padStart(3, \"0\");\n const toPadded = toVersion.toString().padStart(3, \"0\");\n const safeName = file.namespace.replace(/[^a-z0-9-]/gi, \"_\");\n const newPath = `${date}_${orderNum}_f${fromPadded}_t${toPadded}_${safeName}.sql`;\n\n return {\n schema: file.schema,\n path: newPath,\n namespace: file.namespace,\n };\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generation-engine.js","names":["settingsSourceVersion: number","generatedFiles: GenerationInternalResult[]","results: ExecuteMigrationResult[]","migrationsToExecute: Array<{\n namespace: string;\n fromVersion: number;\n toVersion: number;\n preparedMigration: PreparedMigration;\n }>"],"sources":["../../src/migration-engine/generation-engine.ts"],"sourcesContent":["import type { FragnoDatabase } from \"../mod\";\nimport type { AnySchema } from \"../schema/create\";\nimport type { PreparedMigration } from \"./create\";\nimport {\n settingsSchema,\n SETTINGS_NAMESPACE,\n createSettingsManager,\n} from \"../shared/settings-schema\";\nimport {\n fragnoDatabaseAdapterNameFakeSymbol,\n fragnoDatabaseAdapterVersionFakeSymbol,\n} from \"../adapters/adapters\";\n\nexport interface GenerationEngineResult {\n schema: string;\n path: string;\n namespace: string;\n}\n\nexport interface GenerationInternalResult {\n schema: string;\n path: string;\n namespace: string;\n fromVersion: number;\n toVersion: number;\n preparedMigration?: PreparedMigration;\n}\n\nexport interface ExecuteMigrationResult {\n namespace: string;\n didMigrate: boolean;\n fromVersion: number;\n toVersion: number;\n}\n\nexport async function generateMigrationsOrSchema<\n const TDatabases extends FragnoDatabase<AnySchema>[],\n>(\n databases: TDatabases,\n options?: {\n path?: string;\n toVersion?: number;\n fromVersion?: number;\n },\n): Promise<GenerationEngineResult[]> {\n if (databases.length === 0) {\n throw new Error(\"No databases provided for schema generation\");\n }\n\n const firstDb = databases[0];\n const adapter = firstDb.adapter;\n\n // If adapter has createSchemaGenerator, use it for combined generation (e.g., Drizzle)\n if (adapter.createSchemaGenerator) {\n if (options?.toVersion !== undefined || options?.fromVersion !== undefined) {\n console.warn(\n \"⚠️ Warning: --from and --to version options are not supported when generating schemas for multiple fragments and will be ignored.\",\n );\n }\n\n const fragments = databases.map((db) => ({\n schema: db.schema,\n namespace: db.namespace,\n }));\n\n const generator = adapter.createSchemaGenerator(fragments, {\n path: options?.path,\n });\n\n return [\n {\n ...generator.generateSchema(),\n namespace: firstDb.namespace,\n },\n ];\n }\n\n // Otherwise, use migration engine for individual generation (e.g., Kysely)\n if (!adapter.createMigrationEngine) {\n throw new Error(\n \"Adapter does not support migration-based schema generation. Ensure your adapter implements createMigrationEngine.\",\n );\n }\n\n if (!(await adapter.isConnectionHealthy())) {\n throw new Error(\n \"Database connection is not healthy. Please check your database connection and try again.\",\n );\n }\n\n const settingsQueryEngine = adapter.createQueryEngine(settingsSchema, \"\");\n const settingsManager = createSettingsManager(settingsQueryEngine, SETTINGS_NAMESPACE);\n\n let settingsSourceVersion: number;\n try {\n const result = await settingsManager.get(\"version\");\n\n if (!result) {\n settingsSourceVersion = 0;\n } else {\n settingsSourceVersion = parseInt(result.value);\n }\n } catch {\n // We don't really have a way to verify this error happens because the key doesn't exist in the database\n settingsSourceVersion = 0;\n }\n\n const generatedFiles: GenerationInternalResult[] = [];\n\n const settingsMigrator = adapter.createMigrationEngine(settingsSchema, SETTINGS_NAMESPACE);\n const settingsTargetVersion = settingsSchema.version;\n\n // Generate settings table migration\n const settingsMigration = await settingsMigrator.prepareMigrationTo(settingsTargetVersion, {\n fromVersion: settingsSourceVersion,\n });\n\n if (!settingsMigration.getSQL) {\n throw new Error(\n \"Migration engine does not support SQL generation. Ensure your adapter's migration engine provides getSQL().\",\n );\n }\n\n const settingsSql = settingsMigration.getSQL();\n\n if (settingsSql.trim()) {\n generatedFiles.push({\n schema: settingsSql,\n path: \"settings-migration.sql\", // Placeholder, will be renamed in post-processing\n namespace: SETTINGS_NAMESPACE,\n fromVersion: settingsSourceVersion,\n toVersion: settingsTargetVersion,\n preparedMigration: settingsMigration,\n });\n }\n\n // Generate migration for each fragment\n for (const db of databases) {\n const dbAdapter = db.adapter;\n\n // Use migration engine\n if (!dbAdapter.createMigrationEngine) {\n throw new Error(\n `Adapter for ${db.namespace} does not support schema generation. ` +\n `Ensure your adapter implements either createSchemaGenerator or createMigrationEngine.`,\n );\n }\n\n const migrator = dbAdapter.createMigrationEngine(db.schema, db.namespace);\n const targetVersion = options?.toVersion ?? db.schema.version;\n const sourceVersion = options?.fromVersion ?? 0;\n\n // Generate migration from source to target version\n const preparedMigration = await migrator.prepareMigrationTo(targetVersion, {\n fromVersion: sourceVersion,\n });\n\n if (!preparedMigration.getSQL) {\n throw new Error(\n \"Migration engine does not support SQL generation. Ensure your adapter's migration engine provides getSQL().\",\n );\n }\n\n const sql = preparedMigration.getSQL();\n\n // If no migrations needed, skip this fragment\n if (sql.trim()) {\n generatedFiles.push({\n schema: sql,\n path: \"schema.sql\", // Placeholder, will be renamed in post-processing\n namespace: db.namespace,\n fromVersion: sourceVersion,\n toVersion: targetVersion,\n preparedMigration: preparedMigration,\n });\n }\n }\n\n // Post-process filenames with ordering\n return postProcessMigrationFilenames(generatedFiles);\n}\n\n/**\n * Execute migrations for all fragments in the correct order.\n * Migrates settings table first, then fragments alphabetically.\n *\n * @param databases - Array of FragnoDatabase instances to migrate\n * @returns Array of execution results for each migration\n */\nexport async function executeMigrations<const TDatabases extends FragnoDatabase<AnySchema>[]>(\n databases: TDatabases,\n): Promise<ExecuteMigrationResult[]> {\n if (databases.length === 0) {\n throw new Error(\"No databases provided for migration\");\n }\n\n const firstDb = databases[0];\n const adapter = firstDb.adapter;\n\n // Validate adapter supports migrations\n if (!adapter.createMigrationEngine) {\n throw new Error(\n \"Adapter does not support running migrations. The adapter only supports schema generation.\\n\" +\n \"Try using 'generateMigrationsOrSchema' instead to generate schema files.\",\n );\n }\n\n // Validate all use same adapter name and version\n const firstAdapterName = adapter[fragnoDatabaseAdapterNameFakeSymbol];\n const firstAdapterVersion = adapter[fragnoDatabaseAdapterVersionFakeSymbol];\n\n for (const db of databases) {\n const dbAdapterName = db.adapter[fragnoDatabaseAdapterNameFakeSymbol];\n const dbAdapterVersion = db.adapter[fragnoDatabaseAdapterVersionFakeSymbol];\n\n if (dbAdapterName !== firstAdapterName || dbAdapterVersion !== firstAdapterVersion) {\n throw new Error(\n `All fragments must use the same database adapter. ` +\n `Found: ${firstAdapterName}@${firstAdapterVersion} and ${dbAdapterName}@${dbAdapterVersion}`,\n );\n }\n }\n\n if (!(await adapter.isConnectionHealthy())) {\n throw new Error(\n \"Database connection is not healthy. Please check your database connection and try again.\",\n );\n }\n\n const results: ExecuteMigrationResult[] = [];\n const migrationsToExecute: Array<{\n namespace: string;\n fromVersion: number;\n toVersion: number;\n preparedMigration: PreparedMigration;\n }> = [];\n\n // 1. Prepare settings table migration\n const settingsQueryEngine = adapter.createQueryEngine(settingsSchema, \"\");\n const settingsManager = createSettingsManager(settingsQueryEngine, SETTINGS_NAMESPACE);\n\n let settingsSourceVersion: number;\n try {\n const result = await settingsManager.get(\"version\");\n settingsSourceVersion = result ? parseInt(result.value) : 0;\n } catch {\n settingsSourceVersion = 0;\n }\n\n const settingsMigrator = adapter.createMigrationEngine(settingsSchema, SETTINGS_NAMESPACE);\n const settingsTargetVersion = settingsSchema.version;\n\n if (settingsSourceVersion < settingsTargetVersion) {\n const settingsMigration = await settingsMigrator.prepareMigrationTo(settingsTargetVersion, {\n fromVersion: settingsSourceVersion,\n updateSettings: true,\n });\n\n if (settingsMigration.operations.length > 0) {\n migrationsToExecute.push({\n namespace: SETTINGS_NAMESPACE,\n fromVersion: settingsSourceVersion,\n toVersion: settingsTargetVersion,\n preparedMigration: settingsMigration,\n });\n }\n }\n\n // 2. Prepare fragment migrations (sorted alphabetically)\n const sortedDatabases = [...databases].sort((a, b) => a.namespace.localeCompare(b.namespace));\n\n for (const fragnoDb of sortedDatabases) {\n const migrator = adapter.createMigrationEngine(fragnoDb.schema, fragnoDb.namespace);\n const currentVersion = await migrator.getVersion();\n const targetVersion = fragnoDb.schema.version;\n\n if (currentVersion < targetVersion) {\n const preparedMigration = await migrator.prepareMigrationTo(targetVersion, {\n updateSettings: true,\n });\n\n if (preparedMigration.operations.length > 0) {\n migrationsToExecute.push({\n namespace: fragnoDb.namespace,\n fromVersion: currentVersion,\n toVersion: targetVersion,\n preparedMigration: preparedMigration,\n });\n }\n }\n }\n\n // 3. Execute all migrations in order\n for (const migration of migrationsToExecute) {\n await migration.preparedMigration.execute();\n results.push({\n namespace: migration.namespace,\n didMigrate: true,\n fromVersion: migration.fromVersion,\n toVersion: migration.toVersion,\n });\n }\n\n // 4. Add skipped migrations (already up-to-date)\n for (const fragnoDb of databases) {\n if (!results.find((r) => r.namespace === fragnoDb.namespace)) {\n results.push({\n namespace: fragnoDb.namespace,\n didMigrate: false,\n fromVersion: fragnoDb.schema.version,\n toVersion: fragnoDb.schema.version,\n });\n }\n }\n\n return results;\n}\n\n/**\n * Post-processes migration files to add ordering and standardize naming.\n *\n * Sorts files with settings namespace first, then alphabetically by namespace,\n * and assigns ordering numbers. Transforms filenames to format:\n * `<date>_<n>_f<from>_t<to>_<namespace>.sql`\n *\n * @param files - Array of generated migration files with version information\n * @returns Array of files with standardized paths and ordering\n */\nexport function postProcessMigrationFilenames(\n files: GenerationInternalResult[],\n): GenerationEngineResult[] {\n if (files.length === 0) {\n return [];\n }\n\n // Sort files: settings namespace first, then alphabetically by namespace\n const sortedFiles = [...files].sort((a, b) => {\n if (a.namespace === SETTINGS_NAMESPACE) {\n return -1;\n }\n if (b.namespace === SETTINGS_NAMESPACE) {\n return 1;\n }\n return a.namespace.localeCompare(b.namespace);\n });\n\n // Generate date prefix for filenames\n const date = new Date().toISOString().split(\"T\")[0].replace(/-/g, \"\");\n\n // Rename files with ordering\n return sortedFiles.map((file, index) => {\n const fromVersion = file.fromVersion ?? 0;\n const toVersion = file.toVersion ?? 0;\n\n // Create new filename with ordering\n const orderNum = (index + 1).toString().padStart(3, \"0\");\n const fromPadded = fromVersion.toString().padStart(3, \"0\");\n const toPadded = toVersion.toString().padStart(3, \"0\");\n const safeName = file.namespace.replace(/[^a-z0-9-]/gi, \"_\");\n const newPath = `${date}_${orderNum}_f${fromPadded}_t${toPadded}_${safeName}.sql`;\n\n return {\n schema: file.schema,\n path: newPath,\n namespace: file.namespace,\n };\n });\n}\n"],"mappings":"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"}
|
package/dist/mod.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ declare class FragnoDatabase<const T extends AnySchema> {
|
|
|
42
42
|
runMigrations(): Promise<boolean>;
|
|
43
43
|
get namespace(): string;
|
|
44
44
|
get schema(): T;
|
|
45
|
-
get adapter(): DatabaseAdapter
|
|
45
|
+
get adapter(): DatabaseAdapter;
|
|
46
46
|
}
|
|
47
47
|
declare function defineFragnoDatabase<const TSchema extends AnySchema>(options: CreateFragnoDatabaseDefinitionOptions<TSchema>): FragnoDatabaseDefinition<TSchema>;
|
|
48
48
|
//#endregion
|
package/dist/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","names":[],"sources":["../src/mod.ts"],"sourcesContent":[],"mappings":";;;;;;cAMa;cACA;AADA,UAGI,qCAHkD,CAAA,UAGF,SAHE,CAAA,CAAA;EACtD,SAAA,EAAA,MAAA;EAEI,MAAA,EAEP,CAFO;AAKjB;AAoBa,iBApBG,gBAAA,CAoBqB,KAAA,EAAA,OAAA,CAAA,EAAA,KAAA,IApBsB,cAoBtB,CApBqC,SAoBrC,CAAA;;;;;;AAoBc,cApBtC,wBAoBsC,CAAA,gBApBG,SAoBH,CAAA,CAAA;EAAf,CAAA,OAAA;EAAc,WAAA,CAAA,OAAA,EAhB3B,qCAgB2B,CAhBW,CAgBX,CAAA;EAarC,IAAA,SAAA,CAAA,CAAA,EAAc,MAAA;EAAiB,IAAA,MAAA,CAAA,CAAA,EApBhC,CAoBgC;EAKQ;;;EAM7C,MAAA,CAAA,OAAA,EAxBW,eAwBX,CAAA,EAxB6B,cAwB7B,CAxB4C,CAwB5C,CAAA;;;;;;
|
|
1
|
+
{"version":3,"file":"mod.d.ts","names":[],"sources":["../src/mod.ts"],"sourcesContent":[],"mappings":";;;;;;cAMa;cACA;AADA,UAGI,qCAHkD,CAAA,UAGF,SAHE,CAAA,CAAA;EACtD,SAAA,EAAA,MAAA;EAEI,MAAA,EAEP,CAFO;AAKjB;AAoBa,iBApBG,gBAAA,CAoBqB,KAAA,EAAA,OAAA,CAAA,EAAA,KAAA,IApBsB,cAoBtB,CApBqC,SAoBrC,CAAA;;;;;;AAoBc,cApBtC,wBAoBsC,CAAA,gBApBG,SAoBH,CAAA,CAAA;EAAf,CAAA,OAAA;EAAc,WAAA,CAAA,OAAA,EAhB3B,qCAgB2B,CAhBW,CAgBX,CAAA;EAarC,IAAA,SAAA,CAAA,CAAA,EAAc,MAAA;EAAiB,IAAA,MAAA,CAAA,CAAA,EApBhC,CAoBgC;EAKQ;;;EAM7C,MAAA,CAAA,OAAA,EAxBW,eAwBX,CAAA,EAxB6B,cAwB7B,CAxB4C,CAwB5C,CAAA;;;;;;AAoCU,cA/CJ,cA+CI,CAAA,gBA/C2B,SA+C3B,CAAA,CAAA;EAAe,CAAA,OAAA;EAKhB,WAAA,CAAA,OAAA,EAAA;IAA2C,SAAA,EAAA,MAAA;IACV,MAAA,EAhDG,CAgDH;IAAtC,OAAA,EAhDqD,eAgDrD;EACiB,CAAA;EAAzB,KA3CI,wBAAA,GA2CJ,EAAA,OA3CwC,wBA2CxC;EAAwB,YAAA,CAAA,CAAA,EAvCH,OAuCG,CAvCK,aAuCL,CAvCmB,CAuCnB,CAAA,CAAA;mBA3BF;;gBAgBb;iBAIK;;iBAKD,2CAA2C,oBAChD,sCAAsC,WAC9C,yBAAyB"}
|
package/dist/mod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","names":["#namespace","#schema","#adapter"],"sources":["../src/mod.ts"],"sourcesContent":["import type { DatabaseAdapter } from \"./adapters/adapters\";\nimport type { AnySchema } from \"./schema/create\";\nimport type { AbstractQuery } from \"./query/query\";\n\nexport type { DatabaseAdapter };\n\nexport const fragnoDatabaseFakeSymbol = \"$fragno-database\" as const;\nexport const fragnoDatabaseLibraryVersion = \"0.1\" as const;\n\nexport interface CreateFragnoDatabaseDefinitionOptions<T extends AnySchema> {\n namespace: string;\n schema: T;\n}\n\nexport function isFragnoDatabase(value: unknown): value is FragnoDatabase<AnySchema> {\n if (value instanceof FragnoDatabase) {\n return true;\n }\n\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n return (\n fragnoDatabaseFakeSymbol in value &&\n value[fragnoDatabaseFakeSymbol] === fragnoDatabaseFakeSymbol\n );\n}\n\n/**\n * Definition of a Fragno database schema and namespace.\n * Created by library authors using defineFragnoDatabase().\n * Apps instantiate it by calling .create(adapter).\n */\nexport class FragnoDatabaseDefinition<const T extends AnySchema> {\n #namespace: string;\n #schema: T;\n\n constructor(options: CreateFragnoDatabaseDefinitionOptions<T>) {\n this.#namespace = options.namespace;\n this.#schema = options.schema;\n }\n\n get namespace() {\n return this.#namespace;\n }\n\n get schema() {\n return this.#schema;\n }\n\n /**\n * Creates a FragnoDatabase instance by binding an adapter to this definition.\n */\n create(adapter: DatabaseAdapter): FragnoDatabase<T> {\n return new FragnoDatabase({\n namespace: this.#namespace,\n schema: this.#schema,\n adapter,\n });\n }\n}\n\n/**\n * A Fragno database instance with a bound adapter.\n * Created from a FragnoDatabaseDefinition by calling .create(adapter).\n */\nexport class FragnoDatabase<const T extends AnySchema> {\n #namespace: string;\n #schema: T;\n #adapter: DatabaseAdapter;\n\n constructor(options: { namespace: string; schema: T; adapter: DatabaseAdapter }) {\n this.#namespace = options.namespace;\n this.#schema = options.schema;\n this.#adapter = options.adapter;\n }\n\n get [fragnoDatabaseFakeSymbol](): typeof fragnoDatabaseFakeSymbol {\n return fragnoDatabaseFakeSymbol;\n }\n\n async createClient(): Promise<AbstractQuery<T>> {\n const dbVersion = await this.#adapter.getSchemaVersion(this.#namespace);\n if (dbVersion !== this.#schema.version.toString()) {\n throw new Error(\n `Database is not at expected version. Did you forget to run migrations?` +\n ` Current version: ${dbVersion}, Expected version: ${this.#schema.version}`,\n );\n }\n\n return this.#adapter.createQueryEngine(this.#schema, this.#namespace);\n }\n\n async runMigrations(): Promise<boolean> {\n if (!this.#adapter.createMigrationEngine) {\n throw new Error(\"Migration engine not supported for this adapter.\");\n }\n\n const migrator = this.#adapter.createMigrationEngine(this.#schema, this.#namespace);\n const preparedMigration = await migrator.prepareMigration();\n await preparedMigration.execute();\n\n return preparedMigration.operations.length > 0;\n }\n\n get namespace() {\n return this.#namespace;\n }\n\n get schema() {\n return this.#schema;\n }\n\n get adapter() {\n return this.#adapter;\n }\n}\n\nexport function defineFragnoDatabase<const TSchema extends AnySchema>(\n options: CreateFragnoDatabaseDefinitionOptions<TSchema>,\n): FragnoDatabaseDefinition<TSchema> {\n return new FragnoDatabaseDefinition(options);\n}\n\nexport {\n defineFragmentWithDatabase,\n DatabaseFragmentBuilder,\n type FragnoPublicConfigWithDatabase,\n type DatabaseFragmentContext,\n} from \"./fragment\";\n"],"mappings":";;;AAMA,MAAa,2BAA2B;AACxC,MAAa,+BAA+B;AAO5C,SAAgB,iBAAiB,OAAoD;AACnF,KAAI,iBAAiB,eACnB,QAAO;AAGT,KAAI,OAAO,UAAU,YAAY,UAAU,KACzC,QAAO;AAGT,QACE,4BAA4B,SAC5B,MAAM,8BAA8B;;;;;;;AASxC,IAAa,2BAAb,MAAiE;CAC/D;CACA;CAEA,YAAY,SAAmD;AAC7D,QAAKA,YAAa,QAAQ;AAC1B,QAAKC,SAAU,QAAQ;;CAGzB,IAAI,YAAY;AACd,SAAO,MAAKD;;CAGd,IAAI,SAAS;AACX,SAAO,MAAKC;;;;;CAMd,OAAO,SAA6C;AAClD,SAAO,IAAI,eAAe;GACxB,WAAW,MAAKD;GAChB,QAAQ,MAAKC;GACb;GACD,CAAC;;;;;;;AAQN,IAAa,iBAAb,MAAuD;CACrD;CACA;CACA;CAEA,YAAY,SAAqE;AAC/E,QAAKD,YAAa,QAAQ;AAC1B,QAAKC,SAAU,QAAQ;AACvB,QAAKC,UAAW,QAAQ;;CAG1B,KAAK,4BAA6D;AAChE,SAAO;;CAGT,MAAM,eAA0C;EAC9C,MAAM,YAAY,MAAM,MAAKA,QAAS,iBAAiB,MAAKF,UAAW;AACvE,MAAI,cAAc,MAAKC,OAAQ,QAAQ,UAAU,CAC/C,OAAM,IAAI,MACR,2FACuB,UAAU,sBAAsB,MAAKA,OAAQ,UACrE;AAGH,SAAO,MAAKC,QAAS,kBAAkB,MAAKD,QAAS,MAAKD,UAAW;;CAGvE,MAAM,gBAAkC;AACtC,MAAI,CAAC,MAAKE,QAAS,sBACjB,OAAM,IAAI,MAAM,mDAAmD;EAIrE,MAAM,oBAAoB,MADT,MAAKA,QAAS,sBAAsB,MAAKD,QAAS,MAAKD,UAAW,CAC1C,kBAAkB;AAC3D,QAAM,kBAAkB,SAAS;AAEjC,SAAO,kBAAkB,WAAW,SAAS;;CAG/C,IAAI,YAAY;AACd,SAAO,MAAKA;;CAGd,IAAI,SAAS;AACX,SAAO,MAAKC;;CAGd,IAAI,
|
|
1
|
+
{"version":3,"file":"mod.js","names":["#namespace","#schema","#adapter"],"sources":["../src/mod.ts"],"sourcesContent":["import type { DatabaseAdapter } from \"./adapters/adapters\";\nimport type { AnySchema } from \"./schema/create\";\nimport type { AbstractQuery } from \"./query/query\";\n\nexport type { DatabaseAdapter };\n\nexport const fragnoDatabaseFakeSymbol = \"$fragno-database\" as const;\nexport const fragnoDatabaseLibraryVersion = \"0.1\" as const;\n\nexport interface CreateFragnoDatabaseDefinitionOptions<T extends AnySchema> {\n namespace: string;\n schema: T;\n}\n\nexport function isFragnoDatabase(value: unknown): value is FragnoDatabase<AnySchema> {\n if (value instanceof FragnoDatabase) {\n return true;\n }\n\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n return (\n fragnoDatabaseFakeSymbol in value &&\n value[fragnoDatabaseFakeSymbol] === fragnoDatabaseFakeSymbol\n );\n}\n\n/**\n * Definition of a Fragno database schema and namespace.\n * Created by library authors using defineFragnoDatabase().\n * Apps instantiate it by calling .create(adapter).\n */\nexport class FragnoDatabaseDefinition<const T extends AnySchema> {\n #namespace: string;\n #schema: T;\n\n constructor(options: CreateFragnoDatabaseDefinitionOptions<T>) {\n this.#namespace = options.namespace;\n this.#schema = options.schema;\n }\n\n get namespace() {\n return this.#namespace;\n }\n\n get schema() {\n return this.#schema;\n }\n\n /**\n * Creates a FragnoDatabase instance by binding an adapter to this definition.\n */\n create(adapter: DatabaseAdapter): FragnoDatabase<T> {\n return new FragnoDatabase({\n namespace: this.#namespace,\n schema: this.#schema,\n adapter,\n });\n }\n}\n\n/**\n * A Fragno database instance with a bound adapter.\n * Created from a FragnoDatabaseDefinition by calling .create(adapter).\n */\nexport class FragnoDatabase<const T extends AnySchema> {\n #namespace: string;\n #schema: T;\n #adapter: DatabaseAdapter;\n\n constructor(options: { namespace: string; schema: T; adapter: DatabaseAdapter }) {\n this.#namespace = options.namespace;\n this.#schema = options.schema;\n this.#adapter = options.adapter;\n }\n\n get [fragnoDatabaseFakeSymbol](): typeof fragnoDatabaseFakeSymbol {\n return fragnoDatabaseFakeSymbol;\n }\n\n async createClient(): Promise<AbstractQuery<T>> {\n const dbVersion = await this.#adapter.getSchemaVersion(this.#namespace);\n if (dbVersion !== this.#schema.version.toString()) {\n throw new Error(\n `Database is not at expected version. Did you forget to run migrations?` +\n ` Current version: ${dbVersion}, Expected version: ${this.#schema.version}`,\n );\n }\n\n return this.#adapter.createQueryEngine(this.#schema, this.#namespace);\n }\n\n async runMigrations(): Promise<boolean> {\n if (!this.#adapter.createMigrationEngine) {\n throw new Error(\"Migration engine not supported for this adapter.\");\n }\n\n const migrator = this.#adapter.createMigrationEngine(this.#schema, this.#namespace);\n const preparedMigration = await migrator.prepareMigration();\n await preparedMigration.execute();\n\n return preparedMigration.operations.length > 0;\n }\n\n get namespace() {\n return this.#namespace;\n }\n\n get schema() {\n return this.#schema;\n }\n\n get adapter(): DatabaseAdapter {\n return this.#adapter;\n }\n}\n\nexport function defineFragnoDatabase<const TSchema extends AnySchema>(\n options: CreateFragnoDatabaseDefinitionOptions<TSchema>,\n): FragnoDatabaseDefinition<TSchema> {\n return new FragnoDatabaseDefinition(options);\n}\n\nexport {\n defineFragmentWithDatabase,\n DatabaseFragmentBuilder,\n type FragnoPublicConfigWithDatabase,\n type DatabaseFragmentContext,\n} from \"./fragment\";\n"],"mappings":";;;AAMA,MAAa,2BAA2B;AACxC,MAAa,+BAA+B;AAO5C,SAAgB,iBAAiB,OAAoD;AACnF,KAAI,iBAAiB,eACnB,QAAO;AAGT,KAAI,OAAO,UAAU,YAAY,UAAU,KACzC,QAAO;AAGT,QACE,4BAA4B,SAC5B,MAAM,8BAA8B;;;;;;;AASxC,IAAa,2BAAb,MAAiE;CAC/D;CACA;CAEA,YAAY,SAAmD;AAC7D,QAAKA,YAAa,QAAQ;AAC1B,QAAKC,SAAU,QAAQ;;CAGzB,IAAI,YAAY;AACd,SAAO,MAAKD;;CAGd,IAAI,SAAS;AACX,SAAO,MAAKC;;;;;CAMd,OAAO,SAA6C;AAClD,SAAO,IAAI,eAAe;GACxB,WAAW,MAAKD;GAChB,QAAQ,MAAKC;GACb;GACD,CAAC;;;;;;;AAQN,IAAa,iBAAb,MAAuD;CACrD;CACA;CACA;CAEA,YAAY,SAAqE;AAC/E,QAAKD,YAAa,QAAQ;AAC1B,QAAKC,SAAU,QAAQ;AACvB,QAAKC,UAAW,QAAQ;;CAG1B,KAAK,4BAA6D;AAChE,SAAO;;CAGT,MAAM,eAA0C;EAC9C,MAAM,YAAY,MAAM,MAAKA,QAAS,iBAAiB,MAAKF,UAAW;AACvE,MAAI,cAAc,MAAKC,OAAQ,QAAQ,UAAU,CAC/C,OAAM,IAAI,MACR,2FACuB,UAAU,sBAAsB,MAAKA,OAAQ,UACrE;AAGH,SAAO,MAAKC,QAAS,kBAAkB,MAAKD,QAAS,MAAKD,UAAW;;CAGvE,MAAM,gBAAkC;AACtC,MAAI,CAAC,MAAKE,QAAS,sBACjB,OAAM,IAAI,MAAM,mDAAmD;EAIrE,MAAM,oBAAoB,MADT,MAAKA,QAAS,sBAAsB,MAAKD,QAAS,MAAKD,UAAW,CAC1C,kBAAkB;AAC3D,QAAM,kBAAkB,SAAS;AAEjC,SAAO,kBAAkB,WAAW,SAAS;;CAG/C,IAAI,YAAY;AACd,SAAO,MAAKA;;CAGd,IAAI,SAAS;AACX,SAAO,MAAKC;;CAGd,IAAI,UAA2B;AAC7B,SAAO,MAAKC;;;AAIhB,SAAgB,qBACd,SACmC;AACnC,QAAO,IAAI,yBAAyB,QAAQ"}
|
|
@@ -4,7 +4,7 @@ import { ViewBaseConfig } from "./view-common.js";
|
|
|
4
4
|
import { Table } from "./table.js";
|
|
5
5
|
import { SQL, sql } from "./sql/sql.js";
|
|
6
6
|
|
|
7
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
7
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/alias.js
|
|
8
8
|
var ColumnAliasProxyHandler = class {
|
|
9
9
|
constructor(table) {
|
|
10
10
|
this.table = table;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alias.js","names":[],"sources":["../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/alias.js"],"sourcesContent":["import { Column } from \"./column.js\";\nimport { entityKind, is } from \"./entity.js\";\nimport { SQL, sql } from \"./sql/sql.js\";\nimport { Table } from \"./table.js\";\nimport { ViewBaseConfig } from \"./view-common.js\";\nclass ColumnAliasProxyHandler {\n constructor(table) {\n this.table = table;\n }\n static [entityKind] = \"ColumnAliasProxyHandler\";\n get(columnObj, prop) {\n if (prop === \"table\") {\n return this.table;\n }\n return columnObj[prop];\n }\n}\nclass TableAliasProxyHandler {\n constructor(alias, replaceOriginalName) {\n this.alias = alias;\n this.replaceOriginalName = replaceOriginalName;\n }\n static [entityKind] = \"TableAliasProxyHandler\";\n get(target, prop) {\n if (prop === Table.Symbol.IsAlias) {\n return true;\n }\n if (prop === Table.Symbol.Name) {\n return this.alias;\n }\n if (this.replaceOriginalName && prop === Table.Symbol.OriginalName) {\n return this.alias;\n }\n if (prop === ViewBaseConfig) {\n return {\n ...target[ViewBaseConfig],\n name: this.alias,\n isAlias: true\n };\n }\n if (prop === Table.Symbol.Columns) {\n const columns = target[Table.Symbol.Columns];\n if (!columns) {\n return columns;\n }\n const proxiedColumns = {};\n Object.keys(columns).map((key) => {\n proxiedColumns[key] = new Proxy(\n columns[key],\n new ColumnAliasProxyHandler(new Proxy(target, this))\n );\n });\n return proxiedColumns;\n }\n const value = target[prop];\n if (is(value, Column)) {\n return new Proxy(value, new ColumnAliasProxyHandler(new Proxy(target, this)));\n }\n return value;\n }\n}\nclass RelationTableAliasProxyHandler {\n constructor(alias) {\n this.alias = alias;\n }\n static [entityKind] = \"RelationTableAliasProxyHandler\";\n get(target, prop) {\n if (prop === \"sourceTable\") {\n return aliasedTable(target.sourceTable, this.alias);\n }\n return target[prop];\n }\n}\nfunction aliasedTable(table, tableAlias) {\n return new Proxy(table, new TableAliasProxyHandler(tableAlias, false));\n}\nfunction aliasedRelation(relation, tableAlias) {\n return new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));\n}\nfunction aliasedTableColumn(column, tableAlias) {\n return new Proxy(\n column,\n new ColumnAliasProxyHandler(new Proxy(column.table, new TableAliasProxyHandler(tableAlias, false)))\n );\n}\nfunction mapColumnsInAliasedSQLToAlias(query, alias) {\n return new SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);\n}\nfunction mapColumnsInSQLToAlias(query, alias) {\n return sql.join(query.queryChunks.map((c) => {\n if (is(c, Column)) {\n return aliasedTableColumn(c, alias);\n }\n if (is(c, SQL)) {\n return mapColumnsInSQLToAlias(c, alias);\n }\n if (is(c, SQL.Aliased)) {\n return mapColumnsInAliasedSQLToAlias(c, alias);\n }\n return c;\n }));\n}\nexport {\n ColumnAliasProxyHandler,\n RelationTableAliasProxyHandler,\n TableAliasProxyHandler,\n aliasedRelation,\n aliasedTable,\n aliasedTableColumn,\n mapColumnsInAliasedSQLToAlias,\n mapColumnsInSQLToAlias\n};\n//# sourceMappingURL=alias.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;AAKA,IAAM,0BAAN,MAA8B;CAC5B,YAAY,OAAO;AACjB,OAAK,QAAQ;;CAEf,QAAQ,cAAc;CACtB,IAAI,WAAW,MAAM;AACnB,MAAI,SAAS,QACX,QAAO,KAAK;AAEd,SAAO,UAAU;;;AAGrB,IAAM,yBAAN,MAA6B;CAC3B,YAAY,OAAO,qBAAqB;AACtC,OAAK,QAAQ;AACb,OAAK,sBAAsB;;CAE7B,QAAQ,cAAc;CACtB,IAAI,QAAQ,MAAM;AAChB,MAAI,SAAS,MAAM,OAAO,QACxB,QAAO;AAET,MAAI,SAAS,MAAM,OAAO,KACxB,QAAO,KAAK;AAEd,MAAI,KAAK,uBAAuB,SAAS,MAAM,OAAO,aACpD,QAAO,KAAK;AAEd,MAAI,SAAS,eACX,QAAO;GACL,GAAG,OAAO;GACV,MAAM,KAAK;GACX,SAAS;GACV;AAEH,MAAI,SAAS,MAAM,OAAO,SAAS;GACjC,MAAM,UAAU,OAAO,MAAM,OAAO;AACpC,OAAI,CAAC,QACH,QAAO;GAET,MAAM,iBAAiB,EAAE;AACzB,UAAO,KAAK,QAAQ,CAAC,KAAK,QAAQ;AAChC,mBAAe,OAAO,IAAI,MACxB,QAAQ,MACR,IAAI,wBAAwB,IAAI,MAAM,QAAQ,KAAK,CAAC,CACrD;KACD;AACF,UAAO;;EAET,MAAM,QAAQ,OAAO;AACrB,MAAI,GAAG,OAAO,OAAO,CACnB,QAAO,IAAI,MAAM,OAAO,IAAI,wBAAwB,IAAI,MAAM,QAAQ,KAAK,CAAC,CAAC;AAE/E,SAAO;;;AAGX,IAAM,iCAAN,MAAqC;CACnC,YAAY,OAAO;AACjB,OAAK,QAAQ;;CAEf,QAAQ,cAAc;CACtB,IAAI,QAAQ,MAAM;AAChB,MAAI,SAAS,cACX,QAAO,aAAa,OAAO,aAAa,KAAK,MAAM;AAErD,SAAO,OAAO;;;AAGlB,SAAS,aAAa,OAAO,YAAY;AACvC,QAAO,IAAI,MAAM,OAAO,IAAI,uBAAuB,YAAY,MAAM,CAAC;;AAKxE,SAAS,mBAAmB,QAAQ,YAAY;AAC9C,QAAO,IAAI,MACT,QACA,IAAI,wBAAwB,IAAI,MAAM,OAAO,OAAO,IAAI,uBAAuB,YAAY,MAAM,CAAC,CAAC,CACpG;;AAEH,SAAS,8BAA8B,OAAO,OAAO;AACnD,QAAO,IAAI,IAAI,QAAQ,uBAAuB,MAAM,KAAK,MAAM,EAAE,MAAM,WAAW;;AAEpF,SAAS,uBAAuB,OAAO,OAAO;AAC5C,QAAO,IAAI,KAAK,MAAM,YAAY,KAAK,MAAM;AAC3C,MAAI,GAAG,GAAG,OAAO,CACf,QAAO,mBAAmB,GAAG,MAAM;AAErC,MAAI,GAAG,GAAG,IAAI,CACZ,QAAO,uBAAuB,GAAG,MAAM;AAEzC,MAAI,GAAG,GAAG,IAAI,QAAQ,CACpB,QAAO,8BAA8B,GAAG,MAAM;AAEhD,SAAO;GACP,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { entityKind } from "./entity.js";
|
|
2
2
|
import { Table } from "./table.js";
|
|
3
3
|
|
|
4
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
4
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/casing.js
|
|
5
5
|
function toSnakeCase(input) {
|
|
6
6
|
return (input.replace(/['\u2019]/g, "").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g) ?? []).map((word) => word.toLowerCase()).join("_");
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"casing.js","names":[],"sources":["../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/casing.js"],"sourcesContent":["import { entityKind } from \"./entity.js\";\nimport { Table } from \"./table.js\";\nfunction toSnakeCase(input) {\n const words = input.replace(/['\\u2019]/g, \"\").match(/[\\da-z]+|[A-Z]+(?![a-z])|[A-Z][\\da-z]+/g) ?? [];\n return words.map((word) => word.toLowerCase()).join(\"_\");\n}\nfunction toCamelCase(input) {\n const words = input.replace(/['\\u2019]/g, \"\").match(/[\\da-z]+|[A-Z]+(?![a-z])|[A-Z][\\da-z]+/g) ?? [];\n return words.reduce((acc, word, i) => {\n const formattedWord = i === 0 ? word.toLowerCase() : `${word[0].toUpperCase()}${word.slice(1)}`;\n return acc + formattedWord;\n }, \"\");\n}\nfunction noopCase(input) {\n return input;\n}\nclass CasingCache {\n static [entityKind] = \"CasingCache\";\n /** @internal */\n cache = {};\n cachedTables = {};\n convert;\n constructor(casing) {\n this.convert = casing === \"snake_case\" ? toSnakeCase : casing === \"camelCase\" ? toCamelCase : noopCase;\n }\n getColumnCasing(column) {\n if (!column.keyAsName) return column.name;\n const schema = column.table[Table.Symbol.Schema] ?? \"public\";\n const tableName = column.table[Table.Symbol.OriginalName];\n const key = `${schema}.${tableName}.${column.name}`;\n if (!this.cache[key]) {\n this.cacheTable(column.table);\n }\n return this.cache[key];\n }\n cacheTable(table) {\n const schema = table[Table.Symbol.Schema] ?? \"public\";\n const tableName = table[Table.Symbol.OriginalName];\n const tableKey = `${schema}.${tableName}`;\n if (!this.cachedTables[tableKey]) {\n for (const column of Object.values(table[Table.Symbol.Columns])) {\n const columnKey = `${tableKey}.${column.name}`;\n this.cache[columnKey] = this.convert(column.name);\n }\n this.cachedTables[tableKey] = true;\n }\n }\n clearCache() {\n this.cache = {};\n this.cachedTables = {};\n }\n}\nexport {\n CasingCache,\n toCamelCase,\n toSnakeCase\n};\n//# sourceMappingURL=casing.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAEA,SAAS,YAAY,OAAO;AAE1B,SADc,MAAM,QAAQ,cAAc,GAAG,CAAC,MAAM,0CAA0C,IAAI,EAAE,EACvF,KAAK,SAAS,KAAK,aAAa,CAAC,CAAC,KAAK,IAAI;;AAE1D,SAAS,YAAY,OAAO;AAE1B,SADc,MAAM,QAAQ,cAAc,GAAG,CAAC,MAAM,0CAA0C,IAAI,EAAE,EACvF,QAAQ,KAAK,MAAM,MAAM;AAEpC,SAAO,OADe,MAAM,IAAI,KAAK,aAAa,GAAG,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,MAAM,EAAE;IAE5F,GAAG;;AAER,SAAS,SAAS,OAAO;AACvB,QAAO;;AAET,IAAM,cAAN,MAAkB;CAChB,QAAQ,cAAc;;CAEtB,QAAQ,EAAE;CACV,eAAe,EAAE;CACjB;CACA,YAAY,QAAQ;AAClB,OAAK,UAAU,WAAW,eAAe,cAAc,WAAW,cAAc,cAAc;;CAEhG,gBAAgB,QAAQ;AACtB,MAAI,CAAC,OAAO,UAAW,QAAO,OAAO;EAGrC,MAAM,MAAM,GAFG,OAAO,MAAM,MAAM,OAAO,WAAW,SAE9B,GADJ,OAAO,MAAM,MAAM,OAAO,cACT,GAAG,OAAO;AAC7C,MAAI,CAAC,KAAK,MAAM,KACd,MAAK,WAAW,OAAO,MAAM;AAE/B,SAAO,KAAK,MAAM;;CAEpB,WAAW,OAAO;EAGhB,MAAM,WAAW,GAFF,MAAM,MAAM,OAAO,WAAW,SAElB,GADT,MAAM,MAAM,OAAO;AAErC,MAAI,CAAC,KAAK,aAAa,WAAW;AAChC,QAAK,MAAM,UAAU,OAAO,OAAO,MAAM,MAAM,OAAO,SAAS,EAAE;IAC/D,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO;AACxC,SAAK,MAAM,aAAa,KAAK,QAAQ,OAAO,KAAK;;AAEnD,QAAK,aAAa,YAAY;;;CAGlC,aAAa;AACX,OAAK,QAAQ,EAAE;AACf,OAAK,eAAe,EAAE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { entityKind } from "./entity.js";
|
|
2
2
|
|
|
3
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
3
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/column-builder.js
|
|
4
4
|
var ColumnBuilder = class {
|
|
5
5
|
static [entityKind] = "ColumnBuilder";
|
|
6
6
|
config;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-builder.js","names":[],"sources":["../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/column-builder.js"],"sourcesContent":["import { entityKind } from \"./entity.js\";\nclass ColumnBuilder {\n static [entityKind] = \"ColumnBuilder\";\n config;\n constructor(name, dataType, columnType) {\n this.config = {\n name,\n keyAsName: name === \"\",\n notNull: false,\n default: void 0,\n hasDefault: false,\n primaryKey: false,\n isUnique: false,\n uniqueName: void 0,\n uniqueType: void 0,\n dataType,\n columnType,\n generated: void 0\n };\n }\n /**\n * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n *\n * @example\n * ```ts\n * const users = pgTable('users', {\n * \tid: integer('id').$type<UserId>().primaryKey(),\n * \tdetails: json('details').$type<UserDetails>().notNull(),\n * });\n * ```\n */\n $type() {\n return this;\n }\n /**\n * Adds a `not null` clause to the column definition.\n *\n * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n */\n notNull() {\n this.config.notNull = true;\n return this;\n }\n /**\n * Adds a `default <value>` clause to the column definition.\n *\n * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n *\n * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n */\n default(value) {\n this.config.default = value;\n this.config.hasDefault = true;\n return this;\n }\n /**\n * Adds a dynamic default value to the column.\n * The function will be called when the row is inserted, and the returned value will be used as the column value.\n *\n * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n */\n $defaultFn(fn) {\n this.config.defaultFn = fn;\n this.config.hasDefault = true;\n return this;\n }\n /**\n * Alias for {@link $defaultFn}.\n */\n $default = this.$defaultFn;\n /**\n * Adds a dynamic update value to the column.\n * The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.\n * If no `default` (or `$defaultFn`) value is provided, the function will be called when the row is inserted as well, and the returned value will be used as the column value.\n *\n * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n */\n $onUpdateFn(fn) {\n this.config.onUpdateFn = fn;\n this.config.hasDefault = true;\n return this;\n }\n /**\n * Alias for {@link $onUpdateFn}.\n */\n $onUpdate = this.$onUpdateFn;\n /**\n * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n *\n * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n */\n primaryKey() {\n this.config.primaryKey = true;\n this.config.notNull = true;\n return this;\n }\n /** @internal Sets the name of the column to the key within the table definition if a name was not given. */\n setName(name) {\n if (this.config.name !== \"\") return;\n this.config.name = name;\n }\n}\nexport {\n ColumnBuilder\n};\n//# sourceMappingURL=column-builder.js.map"],"x_google_ignoreList":[0],"mappings":";;;AACA,IAAM,gBAAN,MAAoB;CAClB,QAAQ,cAAc;CACtB;CACA,YAAY,MAAM,UAAU,YAAY;AACtC,OAAK,SAAS;GACZ;GACA,WAAW,SAAS;GACpB,SAAS;GACT,SAAS,KAAK;GACd,YAAY;GACZ,YAAY;GACZ,UAAU;GACV,YAAY,KAAK;GACjB,YAAY,KAAK;GACjB;GACA;GACA,WAAW,KAAK;GACjB;;;;;;;;;;;;;CAaH,QAAQ;AACN,SAAO;;;;;;;CAOT,UAAU;AACR,OAAK,OAAO,UAAU;AACtB,SAAO;;;;;;;;;CAST,QAAQ,OAAO;AACb,OAAK,OAAO,UAAU;AACtB,OAAK,OAAO,aAAa;AACzB,SAAO;;;;;;;;CAQT,WAAW,IAAI;AACb,OAAK,OAAO,YAAY;AACxB,OAAK,OAAO,aAAa;AACzB,SAAO;;;;;CAKT,WAAW,KAAK;;;;;;;;CAQhB,YAAY,IAAI;AACd,OAAK,OAAO,aAAa;AACzB,OAAK,OAAO,aAAa;AACzB,SAAO;;;;;CAKT,YAAY,KAAK;;;;;;CAMjB,aAAa;AACX,OAAK,OAAO,aAAa;AACzB,OAAK,OAAO,UAAU;AACtB,SAAO;;;CAGT,QAAQ,MAAM;AACZ,MAAI,KAAK,OAAO,SAAS,GAAI;AAC7B,OAAK,OAAO,OAAO"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { entityKind } from "./entity.js";
|
|
2
2
|
|
|
3
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
3
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/column.js
|
|
4
4
|
var Column = class {
|
|
5
5
|
constructor(table, config) {
|
|
6
6
|
this.table = table;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column.js","names":[],"sources":["../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/column.js"],"sourcesContent":["import { entityKind } from \"./entity.js\";\nclass Column {\n constructor(table, config) {\n this.table = table;\n this.config = config;\n this.name = config.name;\n this.keyAsName = config.keyAsName;\n this.notNull = config.notNull;\n this.default = config.default;\n this.defaultFn = config.defaultFn;\n this.onUpdateFn = config.onUpdateFn;\n this.hasDefault = config.hasDefault;\n this.primary = config.primaryKey;\n this.isUnique = config.isUnique;\n this.uniqueName = config.uniqueName;\n this.uniqueType = config.uniqueType;\n this.dataType = config.dataType;\n this.columnType = config.columnType;\n this.generated = config.generated;\n this.generatedIdentity = config.generatedIdentity;\n }\n static [entityKind] = \"Column\";\n name;\n keyAsName;\n primary;\n notNull;\n default;\n defaultFn;\n onUpdateFn;\n hasDefault;\n isUnique;\n uniqueName;\n uniqueType;\n dataType;\n columnType;\n enumValues = void 0;\n generated = void 0;\n generatedIdentity = void 0;\n config;\n mapFromDriverValue(value) {\n return value;\n }\n mapToDriverValue(value) {\n return value;\n }\n // ** @internal */\n shouldDisableInsert() {\n return this.config.generated !== void 0 && this.config.generated.type !== \"byDefault\";\n }\n}\nexport {\n Column\n};\n//# sourceMappingURL=column.js.map"],"x_google_ignoreList":[0],"mappings":";;;AACA,IAAM,SAAN,MAAa;CACX,YAAY,OAAO,QAAQ;AACzB,OAAK,QAAQ;AACb,OAAK,SAAS;AACd,OAAK,OAAO,OAAO;AACnB,OAAK,YAAY,OAAO;AACxB,OAAK,UAAU,OAAO;AACtB,OAAK,UAAU,OAAO;AACtB,OAAK,YAAY,OAAO;AACxB,OAAK,aAAa,OAAO;AACzB,OAAK,aAAa,OAAO;AACzB,OAAK,UAAU,OAAO;AACtB,OAAK,WAAW,OAAO;AACvB,OAAK,aAAa,OAAO;AACzB,OAAK,aAAa,OAAO;AACzB,OAAK,WAAW,OAAO;AACvB,OAAK,aAAa,OAAO;AACzB,OAAK,YAAY,OAAO;AACxB,OAAK,oBAAoB,OAAO;;CAElC,QAAQ,cAAc;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,aAAa,KAAK;CAClB,YAAY,KAAK;CACjB,oBAAoB,KAAK;CACzB;CACA,mBAAmB,OAAO;AACxB,SAAO;;CAET,iBAAiB,OAAO;AACtB,SAAO;;CAGT,sBAAsB;AACpB,SAAO,KAAK,OAAO,cAAc,KAAK,KAAK,KAAK,OAAO,UAAU,SAAS"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
1
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/entity.js
|
|
2
2
|
const entityKind = Symbol.for("drizzle:entityKind");
|
|
3
3
|
const hasOwnEntityKind = Symbol.for("drizzle:hasOwnEntityKind");
|
|
4
4
|
function is(value, type) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.js","names":[],"sources":["../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/entity.js"],"sourcesContent":["const entityKind = Symbol.for(\"drizzle:entityKind\");\nconst hasOwnEntityKind = Symbol.for(\"drizzle:hasOwnEntityKind\");\nfunction is(value, type) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n if (value instanceof type) {\n return true;\n }\n if (!Object.prototype.hasOwnProperty.call(type, entityKind)) {\n throw new Error(\n `Class \"${type.name ?? \"<unknown>\"}\" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`\n );\n }\n let cls = Object.getPrototypeOf(value).constructor;\n if (cls) {\n while (cls) {\n if (entityKind in cls && cls[entityKind] === type[entityKind]) {\n return true;\n }\n cls = Object.getPrototypeOf(cls);\n }\n }\n return false;\n}\nexport {\n entityKind,\n hasOwnEntityKind,\n is\n};\n//# sourceMappingURL=entity.js.map"],"x_google_ignoreList":[0],"mappings":";AAAA,MAAM,aAAa,OAAO,IAAI,qBAAqB;AACnD,MAAM,mBAAmB,OAAO,IAAI,2BAA2B;AAC/D,SAAS,GAAG,OAAO,MAAM;AACvB,KAAI,CAAC,SAAS,OAAO,UAAU,SAC7B,QAAO;AAET,KAAI,iBAAiB,KACnB,QAAO;AAET,KAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,WAAW,CACzD,OAAM,IAAI,MACR,UAAU,KAAK,QAAQ,YAAY,+HACpC;CAEH,IAAI,MAAM,OAAO,eAAe,MAAM,CAAC;AACvC,KAAI,IACF,QAAO,KAAK;AACV,MAAI,cAAc,OAAO,IAAI,gBAAgB,KAAK,YAChD,QAAO;AAET,QAAM,OAAO,eAAe,IAAI;;AAGpC,QAAO"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { entityKind } from "./entity.js";
|
|
2
2
|
|
|
3
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
3
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/errors.js
|
|
4
4
|
var DrizzleError = class extends Error {
|
|
5
5
|
static [entityKind] = "DrizzleError";
|
|
6
6
|
constructor({ message, cause }) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","names":[],"sources":["../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/errors.js"],"sourcesContent":["import { entityKind } from \"./entity.js\";\nclass DrizzleError extends Error {\n static [entityKind] = \"DrizzleError\";\n constructor({ message, cause }) {\n super(message);\n this.name = \"DrizzleError\";\n this.cause = cause;\n }\n}\nclass DrizzleQueryError extends Error {\n constructor(query, params, cause) {\n super(`Failed query: ${query}\nparams: ${params}`);\n this.query = query;\n this.params = params;\n this.cause = cause;\n Error.captureStackTrace(this, DrizzleQueryError);\n if (cause) this.cause = cause;\n }\n}\nclass TransactionRollbackError extends DrizzleError {\n static [entityKind] = \"TransactionRollbackError\";\n constructor() {\n super({ message: \"Rollback\" });\n }\n}\nexport {\n DrizzleError,\n DrizzleQueryError,\n TransactionRollbackError\n};\n//# sourceMappingURL=errors.js.map"],"x_google_ignoreList":[0],"mappings":";;;AACA,IAAM,eAAN,cAA2B,MAAM;CAC/B,QAAQ,cAAc;CACtB,YAAY,EAAE,SAAS,SAAS;AAC9B,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,QAAQ;;;AAcjB,IAAM,2BAAN,cAAuC,aAAa;CAClD,QAAQ,cAAc;CACtB,cAAc;AACZ,QAAM,EAAE,SAAS,YAAY,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { iife } from "../../tracing-utils.js";
|
|
|
6
6
|
import { uniqueKeyName } from "../unique-constraint.js";
|
|
7
7
|
import { makePgArray, parsePgArray } from "../utils/array.js";
|
|
8
8
|
|
|
9
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
9
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/columns/common.js
|
|
10
10
|
var PgColumnBuilder = class extends ColumnBuilder {
|
|
11
11
|
foreignKeyConfigs = [];
|
|
12
12
|
static [entityKind] = "PgColumnBuilder";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/columns/common.js"],"sourcesContent":["import { ColumnBuilder } from \"../../column-builder.js\";\nimport { Column } from \"../../column.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { ForeignKeyBuilder } from \"../foreign-keys.js\";\nimport { iife } from \"../../tracing-utils.js\";\nimport { uniqueKeyName } from \"../unique-constraint.js\";\nimport { makePgArray, parsePgArray } from \"../utils/array.js\";\nclass PgColumnBuilder extends ColumnBuilder {\n foreignKeyConfigs = [];\n static [entityKind] = \"PgColumnBuilder\";\n array(size) {\n return new PgArrayBuilder(this.config.name, this, size);\n }\n references(ref, actions = {}) {\n this.foreignKeyConfigs.push({ ref, actions });\n return this;\n }\n unique(name, config) {\n this.config.isUnique = true;\n this.config.uniqueName = name;\n this.config.uniqueType = config?.nulls;\n return this;\n }\n generatedAlwaysAs(as) {\n this.config.generated = {\n as,\n type: \"always\",\n mode: \"stored\"\n };\n return this;\n }\n /** @internal */\n buildForeignKeys(column, table) {\n return this.foreignKeyConfigs.map(({ ref, actions }) => {\n return iife(\n (ref2, actions2) => {\n const builder = new ForeignKeyBuilder(() => {\n const foreignColumn = ref2();\n return { columns: [column], foreignColumns: [foreignColumn] };\n });\n if (actions2.onUpdate) {\n builder.onUpdate(actions2.onUpdate);\n }\n if (actions2.onDelete) {\n builder.onDelete(actions2.onDelete);\n }\n return builder.build(table);\n },\n ref,\n actions\n );\n });\n }\n /** @internal */\n buildExtraConfigColumn(table) {\n return new ExtraConfigColumn(table, this.config);\n }\n}\nclass PgColumn extends Column {\n constructor(table, config) {\n if (!config.uniqueName) {\n config.uniqueName = uniqueKeyName(table, [config.name]);\n }\n super(table, config);\n this.table = table;\n }\n static [entityKind] = \"PgColumn\";\n}\nclass ExtraConfigColumn extends PgColumn {\n static [entityKind] = \"ExtraConfigColumn\";\n getSQLType() {\n return this.getSQLType();\n }\n indexConfig = {\n order: this.config.order ?? \"asc\",\n nulls: this.config.nulls ?? \"last\",\n opClass: this.config.opClass\n };\n defaultConfig = {\n order: \"asc\",\n nulls: \"last\",\n opClass: void 0\n };\n asc() {\n this.indexConfig.order = \"asc\";\n return this;\n }\n desc() {\n this.indexConfig.order = \"desc\";\n return this;\n }\n nullsFirst() {\n this.indexConfig.nulls = \"first\";\n return this;\n }\n nullsLast() {\n this.indexConfig.nulls = \"last\";\n return this;\n }\n /**\n * ### PostgreSQL documentation quote\n *\n * > An operator class with optional parameters can be specified for each column of an index.\n * The operator class identifies the operators to be used by the index for that column.\n * For example, a B-tree index on four-byte integers would use the int4_ops class;\n * this operator class includes comparison functions for four-byte integers.\n * In practice the default operator class for the column's data type is usually sufficient.\n * The main point of having operator classes is that for some data types, there could be more than one meaningful ordering.\n * For example, we might want to sort a complex-number data type either by absolute value or by real part.\n * We could do this by defining two operator classes for the data type and then selecting the proper class when creating an index.\n * More information about operator classes check:\n *\n * ### Useful links\n * https://www.postgresql.org/docs/current/sql-createindex.html\n *\n * https://www.postgresql.org/docs/current/indexes-opclass.html\n *\n * https://www.postgresql.org/docs/current/xindex.html\n *\n * ### Additional types\n * If you have the `pg_vector` extension installed in your database, you can use the\n * `vector_l2_ops`, `vector_ip_ops`, `vector_cosine_ops`, `vector_l1_ops`, `bit_hamming_ops`, `bit_jaccard_ops`, `halfvec_l2_ops`, `sparsevec_l2_ops` options, which are predefined types.\n *\n * **You can always specify any string you want in the operator class, in case Drizzle doesn't have it natively in its types**\n *\n * @param opClass\n * @returns\n */\n op(opClass) {\n this.indexConfig.opClass = opClass;\n return this;\n }\n}\nclass IndexedColumn {\n static [entityKind] = \"IndexedColumn\";\n constructor(name, keyAsName, type, indexConfig) {\n this.name = name;\n this.keyAsName = keyAsName;\n this.type = type;\n this.indexConfig = indexConfig;\n }\n name;\n keyAsName;\n type;\n indexConfig;\n}\nclass PgArrayBuilder extends PgColumnBuilder {\n static [entityKind] = \"PgArrayBuilder\";\n constructor(name, baseBuilder, size) {\n super(name, \"array\", \"PgArray\");\n this.config.baseBuilder = baseBuilder;\n this.config.size = size;\n }\n /** @internal */\n build(table) {\n const baseColumn = this.config.baseBuilder.build(table);\n return new PgArray(\n table,\n this.config,\n baseColumn\n );\n }\n}\nclass PgArray extends PgColumn {\n constructor(table, config, baseColumn, range) {\n super(table, config);\n this.baseColumn = baseColumn;\n this.range = range;\n this.size = config.size;\n }\n size;\n static [entityKind] = \"PgArray\";\n getSQLType() {\n return `${this.baseColumn.getSQLType()}[${typeof this.size === \"number\" ? this.size : \"\"}]`;\n }\n mapFromDriverValue(value) {\n if (typeof value === \"string\") {\n value = parsePgArray(value);\n }\n return value.map((v) => this.baseColumn.mapFromDriverValue(v));\n }\n mapToDriverValue(value, isNestedArray = false) {\n const a = value.map(\n (v) => v === null ? null : is(this.baseColumn, PgArray) ? this.baseColumn.mapToDriverValue(v, true) : this.baseColumn.mapToDriverValue(v)\n );\n if (isNestedArray) return a;\n return makePgArray(a);\n }\n}\nexport {\n ExtraConfigColumn,\n IndexedColumn,\n PgArray,\n PgArrayBuilder,\n PgColumn,\n PgColumnBuilder\n};\n//# sourceMappingURL=common.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { entityKind } from "../../entity.js";
|
|
2
2
|
import { PgColumn, PgColumnBuilder } from "./common.js";
|
|
3
3
|
|
|
4
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
4
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/columns/enum.js
|
|
5
5
|
var PgEnumObjectColumnBuilder = class extends PgColumnBuilder {
|
|
6
6
|
static [entityKind] = "PgEnumObjectColumnBuilder";
|
|
7
7
|
constructor(name, enumInstance) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum.js","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/columns/enum.js"],"sourcesContent":["import { entityKind } from \"../../entity.js\";\nimport { PgColumn, PgColumnBuilder } from \"./common.js\";\nclass PgEnumObjectColumnBuilder extends PgColumnBuilder {\n static [entityKind] = \"PgEnumObjectColumnBuilder\";\n constructor(name, enumInstance) {\n super(name, \"string\", \"PgEnumObjectColumn\");\n this.config.enum = enumInstance;\n }\n /** @internal */\n build(table) {\n return new PgEnumObjectColumn(\n table,\n this.config\n );\n }\n}\nclass PgEnumObjectColumn extends PgColumn {\n static [entityKind] = \"PgEnumObjectColumn\";\n enum;\n enumValues = this.config.enum.enumValues;\n constructor(table, config) {\n super(table, config);\n this.enum = config.enum;\n }\n getSQLType() {\n return this.enum.enumName;\n }\n}\nconst isPgEnumSym = Symbol.for(\"drizzle:isPgEnum\");\nfunction isPgEnum(obj) {\n return !!obj && typeof obj === \"function\" && isPgEnumSym in obj && obj[isPgEnumSym] === true;\n}\nclass PgEnumColumnBuilder extends PgColumnBuilder {\n static [entityKind] = \"PgEnumColumnBuilder\";\n constructor(name, enumInstance) {\n super(name, \"string\", \"PgEnumColumn\");\n this.config.enum = enumInstance;\n }\n /** @internal */\n build(table) {\n return new PgEnumColumn(\n table,\n this.config\n );\n }\n}\nclass PgEnumColumn extends PgColumn {\n static [entityKind] = \"PgEnumColumn\";\n enum = this.config.enum;\n enumValues = this.config.enum.enumValues;\n constructor(table, config) {\n super(table, config);\n this.enum = config.enum;\n }\n getSQLType() {\n return this.enum.enumName;\n }\n}\nfunction pgEnum(enumName, input) {\n return Array.isArray(input) ? pgEnumWithSchema(enumName, [...input], void 0) : pgEnumObjectWithSchema(enumName, input, void 0);\n}\nfunction pgEnumWithSchema(enumName, values, schema) {\n const enumInstance = Object.assign(\n (name) => new PgEnumColumnBuilder(name ?? \"\", enumInstance),\n {\n enumName,\n enumValues: values,\n schema,\n [isPgEnumSym]: true\n }\n );\n return enumInstance;\n}\nfunction pgEnumObjectWithSchema(enumName, values, schema) {\n const enumInstance = Object.assign(\n (name) => new PgEnumObjectColumnBuilder(name ?? \"\", enumInstance),\n {\n enumName,\n enumValues: Object.values(values),\n schema,\n [isPgEnumSym]: true\n }\n );\n return enumInstance;\n}\nexport {\n PgEnumColumn,\n PgEnumColumnBuilder,\n PgEnumObjectColumn,\n PgEnumObjectColumnBuilder,\n isPgEnum,\n pgEnum,\n pgEnumObjectWithSchema,\n pgEnumWithSchema\n};\n//# sourceMappingURL=enum.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAEA,IAAM,4BAAN,cAAwC,gBAAgB;CACtD,QAAQ,cAAc;CACtB,YAAY,MAAM,cAAc;AAC9B,QAAM,MAAM,UAAU,qBAAqB;AAC3C,OAAK,OAAO,OAAO;;;CAGrB,MAAM,OAAO;AACX,SAAO,IAAI,mBACT,OACA,KAAK,OACN;;;AAGL,IAAM,qBAAN,cAAiC,SAAS;CACxC,QAAQ,cAAc;CACtB;CACA,aAAa,KAAK,OAAO,KAAK;CAC9B,YAAY,OAAO,QAAQ;AACzB,QAAM,OAAO,OAAO;AACpB,OAAK,OAAO,OAAO;;CAErB,aAAa;AACX,SAAO,KAAK,KAAK;;;AAGrB,MAAM,cAAc,OAAO,IAAI,mBAAmB;AAClD,SAAS,SAAS,KAAK;AACrB,QAAO,CAAC,CAAC,OAAO,OAAO,QAAQ,cAAc,eAAe,OAAO,IAAI,iBAAiB;;AAE1F,IAAM,sBAAN,cAAkC,gBAAgB;CAChD,QAAQ,cAAc;CACtB,YAAY,MAAM,cAAc;AAC9B,QAAM,MAAM,UAAU,eAAe;AACrC,OAAK,OAAO,OAAO;;;CAGrB,MAAM,OAAO;AACX,SAAO,IAAI,aACT,OACA,KAAK,OACN;;;AAGL,IAAM,eAAN,cAA2B,SAAS;CAClC,QAAQ,cAAc;CACtB,OAAO,KAAK,OAAO;CACnB,aAAa,KAAK,OAAO,KAAK;CAC9B,YAAY,OAAO,QAAQ;AACzB,QAAM,OAAO,OAAO;AACpB,OAAK,OAAO,OAAO;;CAErB,aAAa;AACX,SAAO,KAAK,KAAK"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { entityKind } from "../entity.js";
|
|
2
2
|
import { TableName } from "../table.utils.js";
|
|
3
3
|
|
|
4
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
4
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/foreign-keys.js
|
|
5
5
|
var ForeignKeyBuilder = class {
|
|
6
6
|
static [entityKind] = "PgForeignKeyBuilder";
|
|
7
7
|
/** @internal */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foreign-keys.js","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/foreign-keys.js"],"sourcesContent":["import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\nclass ForeignKeyBuilder {\n static [entityKind] = \"PgForeignKeyBuilder\";\n /** @internal */\n reference;\n /** @internal */\n _onUpdate = \"no action\";\n /** @internal */\n _onDelete = \"no action\";\n constructor(config, actions) {\n this.reference = () => {\n const { name, columns, foreignColumns } = config();\n return { name, columns, foreignTable: foreignColumns[0].table, foreignColumns };\n };\n if (actions) {\n this._onUpdate = actions.onUpdate;\n this._onDelete = actions.onDelete;\n }\n }\n onUpdate(action) {\n this._onUpdate = action === void 0 ? \"no action\" : action;\n return this;\n }\n onDelete(action) {\n this._onDelete = action === void 0 ? \"no action\" : action;\n return this;\n }\n /** @internal */\n build(table) {\n return new ForeignKey(table, this);\n }\n}\nclass ForeignKey {\n constructor(table, builder) {\n this.table = table;\n this.reference = builder.reference;\n this.onUpdate = builder._onUpdate;\n this.onDelete = builder._onDelete;\n }\n static [entityKind] = \"PgForeignKey\";\n reference;\n onUpdate;\n onDelete;\n getName() {\n const { name, columns, foreignColumns } = this.reference();\n const columnNames = columns.map((column) => column.name);\n const foreignColumnNames = foreignColumns.map((column) => column.name);\n const chunks = [\n this.table[TableName],\n ...columnNames,\n foreignColumns[0].table[TableName],\n ...foreignColumnNames\n ];\n return name ?? `${chunks.join(\"_\")}_fk`;\n }\n}\nfunction foreignKey(config) {\n function mappedConfig() {\n const { name, columns, foreignColumns } = config;\n return {\n name,\n columns,\n foreignColumns\n };\n }\n return new ForeignKeyBuilder(mappedConfig);\n}\nexport {\n ForeignKey,\n ForeignKeyBuilder,\n foreignKey\n};\n//# sourceMappingURL=foreign-keys.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAEA,IAAM,oBAAN,MAAwB;CACtB,QAAQ,cAAc;;CAEtB;;CAEA,YAAY;;CAEZ,YAAY;CACZ,YAAY,QAAQ,SAAS;AAC3B,OAAK,kBAAkB;GACrB,MAAM,EAAE,MAAM,SAAS,mBAAmB,QAAQ;AAClD,UAAO;IAAE;IAAM;IAAS,cAAc,eAAe,GAAG;IAAO;IAAgB;;AAEjF,MAAI,SAAS;AACX,QAAK,YAAY,QAAQ;AACzB,QAAK,YAAY,QAAQ;;;CAG7B,SAAS,QAAQ;AACf,OAAK,YAAY,WAAW,KAAK,IAAI,cAAc;AACnD,SAAO;;CAET,SAAS,QAAQ;AACf,OAAK,YAAY,WAAW,KAAK,IAAI,cAAc;AACnD,SAAO;;;CAGT,MAAM,OAAO;AACX,SAAO,IAAI,WAAW,OAAO,KAAK;;;AAGtC,IAAM,aAAN,MAAiB;CACf,YAAY,OAAO,SAAS;AAC1B,OAAK,QAAQ;AACb,OAAK,YAAY,QAAQ;AACzB,OAAK,WAAW,QAAQ;AACxB,OAAK,WAAW,QAAQ;;CAE1B,QAAQ,cAAc;CACtB;CACA;CACA;CACA,UAAU;EACR,MAAM,EAAE,MAAM,SAAS,mBAAmB,KAAK,WAAW;EAC1D,MAAM,cAAc,QAAQ,KAAK,WAAW,OAAO,KAAK;EACxD,MAAM,qBAAqB,eAAe,KAAK,WAAW,OAAO,KAAK;EACtE,MAAM,SAAS;GACb,KAAK,MAAM;GACX,GAAG;GACH,eAAe,GAAG,MAAM;GACxB,GAAG;GACJ;AACD,SAAO,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { entityKind } from "../entity.js";
|
|
2
2
|
import { TableName } from "../table.utils.js";
|
|
3
3
|
|
|
4
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
4
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/unique-constraint.js
|
|
5
5
|
function uniqueKeyName(table, columns) {
|
|
6
6
|
return `${table[TableName]}_${columns.join("_")}_unique`;
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unique-constraint.js","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/unique-constraint.js"],"sourcesContent":["import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\nfunction unique(name) {\n return new UniqueOnConstraintBuilder(name);\n}\nfunction uniqueKeyName(table, columns) {\n return `${table[TableName]}_${columns.join(\"_\")}_unique`;\n}\nclass UniqueConstraintBuilder {\n constructor(columns, name) {\n this.name = name;\n this.columns = columns;\n }\n static [entityKind] = \"PgUniqueConstraintBuilder\";\n /** @internal */\n columns;\n /** @internal */\n nullsNotDistinctConfig = false;\n nullsNotDistinct() {\n this.nullsNotDistinctConfig = true;\n return this;\n }\n /** @internal */\n build(table) {\n return new UniqueConstraint(table, this.columns, this.nullsNotDistinctConfig, this.name);\n }\n}\nclass UniqueOnConstraintBuilder {\n static [entityKind] = \"PgUniqueOnConstraintBuilder\";\n /** @internal */\n name;\n constructor(name) {\n this.name = name;\n }\n on(...columns) {\n return new UniqueConstraintBuilder(columns, this.name);\n }\n}\nclass UniqueConstraint {\n constructor(table, columns, nullsNotDistinct, name) {\n this.table = table;\n this.columns = columns;\n this.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n this.nullsNotDistinct = nullsNotDistinct;\n }\n static [entityKind] = \"PgUniqueConstraint\";\n columns;\n name;\n nullsNotDistinct = false;\n getName() {\n return this.name;\n }\n}\nexport {\n UniqueConstraint,\n UniqueConstraintBuilder,\n UniqueOnConstraintBuilder,\n unique,\n uniqueKeyName\n};\n//# sourceMappingURL=unique-constraint.js.map"],"x_google_ignoreList":[0],"mappings":";;;;AAKA,SAAS,cAAc,OAAO,SAAS;AACrC,QAAO,GAAG,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC;;AAElD,IAAM,0BAAN,MAA8B;CAC5B,YAAY,SAAS,MAAM;AACzB,OAAK,OAAO;AACZ,OAAK,UAAU;;CAEjB,QAAQ,cAAc;;CAEtB;;CAEA,yBAAyB;CACzB,mBAAmB;AACjB,OAAK,yBAAyB;AAC9B,SAAO;;;CAGT,MAAM,OAAO;AACX,SAAO,IAAI,iBAAiB,OAAO,KAAK,SAAS,KAAK,wBAAwB,KAAK,KAAK;;;AAG5F,IAAM,4BAAN,MAAgC;CAC9B,QAAQ,cAAc;;CAEtB;CACA,YAAY,MAAM;AAChB,OAAK,OAAO;;CAEd,GAAG,GAAG,SAAS;AACb,SAAO,IAAI,wBAAwB,SAAS,KAAK,KAAK;;;AAG1D,IAAM,mBAAN,MAAuB;CACrB,YAAY,OAAO,SAAS,kBAAkB,MAAM;AAClD,OAAK,QAAQ;AACb,OAAK,UAAU;AACf,OAAK,OAAO,QAAQ,cAAc,KAAK,OAAO,KAAK,QAAQ,KAAK,WAAW,OAAO,KAAK,CAAC;AACxF,OAAK,mBAAmB;;CAE1B,QAAQ,cAAc;CACtB;CACA;CACA,mBAAmB;CACnB,UAAU;AACR,SAAO,KAAK"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
1
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/utils/array.js
|
|
2
2
|
function parsePgArrayValue(arrayString, startFrom, inQuotes) {
|
|
3
3
|
for (let i = startFrom; i < arrayString.length; i++) {
|
|
4
4
|
const char = arrayString[i];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/utils/array.js"],"sourcesContent":["function parsePgArrayValue(arrayString, startFrom, inQuotes) {\n for (let i = startFrom; i < arrayString.length; i++) {\n const char = arrayString[i];\n if (char === \"\\\\\") {\n i++;\n continue;\n }\n if (char === '\"') {\n return [arrayString.slice(startFrom, i).replace(/\\\\/g, \"\"), i + 1];\n }\n if (inQuotes) {\n continue;\n }\n if (char === \",\" || char === \"}\") {\n return [arrayString.slice(startFrom, i).replace(/\\\\/g, \"\"), i];\n }\n }\n return [arrayString.slice(startFrom).replace(/\\\\/g, \"\"), arrayString.length];\n}\nfunction parsePgNestedArray(arrayString, startFrom = 0) {\n const result = [];\n let i = startFrom;\n let lastCharIsComma = false;\n while (i < arrayString.length) {\n const char = arrayString[i];\n if (char === \",\") {\n if (lastCharIsComma || i === startFrom) {\n result.push(\"\");\n }\n lastCharIsComma = true;\n i++;\n continue;\n }\n lastCharIsComma = false;\n if (char === \"\\\\\") {\n i += 2;\n continue;\n }\n if (char === '\"') {\n const [value2, startFrom2] = parsePgArrayValue(arrayString, i + 1, true);\n result.push(value2);\n i = startFrom2;\n continue;\n }\n if (char === \"}\") {\n return [result, i + 1];\n }\n if (char === \"{\") {\n const [value2, startFrom2] = parsePgNestedArray(arrayString, i + 1);\n result.push(value2);\n i = startFrom2;\n continue;\n }\n const [value, newStartFrom] = parsePgArrayValue(arrayString, i, false);\n result.push(value);\n i = newStartFrom;\n }\n return [result, i];\n}\nfunction parsePgArray(arrayString) {\n const [result] = parsePgNestedArray(arrayString, 1);\n return result;\n}\nfunction makePgArray(array) {\n return `{${array.map((item) => {\n if (Array.isArray(item)) {\n return makePgArray(item);\n }\n if (typeof item === \"string\") {\n return `\"${item.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"')}\"`;\n }\n return `${item}`;\n }).join(\",\")}}`;\n}\nexport {\n makePgArray,\n parsePgArray,\n parsePgNestedArray\n};\n//# sourceMappingURL=array.js.map"],"x_google_ignoreList":[0],"mappings":";AAAA,SAAS,kBAAkB,aAAa,WAAW,UAAU;AAC3D,MAAK,IAAI,IAAI,WAAW,IAAI,YAAY,QAAQ,KAAK;EACnD,MAAM,OAAO,YAAY;AACzB,MAAI,SAAS,MAAM;AACjB;AACA;;AAEF,MAAI,SAAS,KACX,QAAO,CAAC,YAAY,MAAM,WAAW,EAAE,CAAC,QAAQ,OAAO,GAAG,EAAE,IAAI,EAAE;AAEpE,MAAI,SACF;AAEF,MAAI,SAAS,OAAO,SAAS,IAC3B,QAAO,CAAC,YAAY,MAAM,WAAW,EAAE,CAAC,QAAQ,OAAO,GAAG,EAAE,EAAE;;AAGlE,QAAO,CAAC,YAAY,MAAM,UAAU,CAAC,QAAQ,OAAO,GAAG,EAAE,YAAY,OAAO;;AAE9E,SAAS,mBAAmB,aAAa,YAAY,GAAG;CACtD,MAAM,SAAS,EAAE;CACjB,IAAI,IAAI;CACR,IAAI,kBAAkB;AACtB,QAAO,IAAI,YAAY,QAAQ;EAC7B,MAAM,OAAO,YAAY;AACzB,MAAI,SAAS,KAAK;AAChB,OAAI,mBAAmB,MAAM,UAC3B,QAAO,KAAK,GAAG;AAEjB,qBAAkB;AAClB;AACA;;AAEF,oBAAkB;AAClB,MAAI,SAAS,MAAM;AACjB,QAAK;AACL;;AAEF,MAAI,SAAS,MAAK;GAChB,MAAM,CAAC,QAAQ,cAAc,kBAAkB,aAAa,IAAI,GAAG,KAAK;AACxE,UAAO,KAAK,OAAO;AACnB,OAAI;AACJ;;AAEF,MAAI,SAAS,IACX,QAAO,CAAC,QAAQ,IAAI,EAAE;AAExB,MAAI,SAAS,KAAK;GAChB,MAAM,CAAC,QAAQ,cAAc,mBAAmB,aAAa,IAAI,EAAE;AACnE,UAAO,KAAK,OAAO;AACnB,OAAI;AACJ;;EAEF,MAAM,CAAC,OAAO,gBAAgB,kBAAkB,aAAa,GAAG,MAAM;AACtE,SAAO,KAAK,MAAM;AAClB,MAAI;;AAEN,QAAO,CAAC,QAAQ,EAAE;;AAEpB,SAAS,aAAa,aAAa;CACjC,MAAM,CAAC,UAAU,mBAAmB,aAAa,EAAE;AACnD,QAAO;;AAET,SAAS,YAAY,OAAO;AAC1B,QAAO,IAAI,MAAM,KAAK,SAAS;AAC7B,MAAI,MAAM,QAAQ,KAAK,CACrB,QAAO,YAAY,KAAK;AAE1B,MAAI,OAAO,SAAS,SAClB,QAAO,IAAI,KAAK,QAAQ,OAAO,OAAO,CAAC,QAAQ,MAAM,OAAM,CAAC;AAE9D,SAAO,GAAG;GACV,CAAC,KAAK,IAAI,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { entityKind } from "../entity.js";
|
|
2
2
|
|
|
3
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
3
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/query-builders/query-builder.js
|
|
4
4
|
var TypedQueryBuilder = class {
|
|
5
5
|
static [entityKind] = "TypedQueryBuilder";
|
|
6
6
|
/** @internal */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.js","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/query-builders/query-builder.js"],"sourcesContent":["import { entityKind } from \"../entity.js\";\nclass TypedQueryBuilder {\n static [entityKind] = \"TypedQueryBuilder\";\n /** @internal */\n getSelectedFields() {\n return this._.selectedFields;\n }\n}\nexport {\n TypedQueryBuilder\n};\n//# sourceMappingURL=query-builder.js.map"],"x_google_ignoreList":[0],"mappings":";;;AACA,IAAM,oBAAN,MAAwB;CACtB,QAAQ,cAAc;;CAEtB,oBAAoB;AAClB,SAAO,KAAK,EAAE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { entityKind } from "./entity.js";
|
|
2
2
|
|
|
3
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
3
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/query-promise.js
|
|
4
4
|
var QueryPromise = class {
|
|
5
5
|
static [entityKind] = "QueryPromise";
|
|
6
6
|
[Symbol.toStringTag] = "QueryPromise";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-promise.js","names":[],"sources":["../../../../../../../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/query-promise.js"],"sourcesContent":["import { entityKind } from \"./entity.js\";\nclass QueryPromise {\n static [entityKind] = \"QueryPromise\";\n [Symbol.toStringTag] = \"QueryPromise\";\n catch(onRejected) {\n return this.then(void 0, onRejected);\n }\n finally(onFinally) {\n return this.then(\n (value) => {\n onFinally?.();\n return value;\n },\n (reason) => {\n onFinally?.();\n throw reason;\n }\n );\n }\n then(onFulfilled, onRejected) {\n return this.execute().then(onFulfilled, onRejected);\n }\n}\nexport {\n QueryPromise\n};\n//# sourceMappingURL=query-promise.js.map"],"x_google_ignoreList":[0],"mappings":";;;AACA,IAAM,eAAN,MAAmB;CACjB,QAAQ,cAAc;CACtB,CAAC,OAAO,eAAe;CACvB,MAAM,YAAY;AAChB,SAAO,KAAK,KAAK,KAAK,GAAG,WAAW;;CAEtC,QAAQ,WAAW;AACjB,SAAO,KAAK,MACT,UAAU;AACT,gBAAa;AACb,UAAO;MAER,WAAW;AACV,gBAAa;AACb,SAAM;IAET;;CAEH,KAAK,aAAa,YAAY;AAC5B,SAAO,KAAK,SAAS,CAAC,KAAK,aAAa,WAAW"}
|
|
@@ -5,7 +5,7 @@ import { SQL, sql } from "./sql/sql.js";
|
|
|
5
5
|
import { and, between, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or } from "./sql/expressions/conditions.js";
|
|
6
6
|
import { asc, desc } from "./sql/expressions/select.js";
|
|
7
7
|
|
|
8
|
-
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@
|
|
8
|
+
//#region ../../node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql+pglite@0.3.11_@libsql+client@0.15.15_@types+better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/relations.js
|
|
9
9
|
var Relation = class {
|
|
10
10
|
constructor(sourceTable, referencedTable, relationName) {
|
|
11
11
|
this.sourceTable = sourceTable;
|