@fragno-dev/db 0.1.7 → 0.1.9
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 +103 -101
- package/CHANGELOG.md +12 -0
- package/dist/adapters/drizzle/drizzle-adapter.js +1 -1
- package/dist/adapters/drizzle/drizzle-query.d.ts +5 -0
- package/dist/adapters/drizzle/drizzle-query.js +40 -16
- package/dist/adapters/drizzle/drizzle-query.js.map +1 -1
- package/dist/adapters/drizzle/drizzle-uow-compiler.js +14 -24
- package/dist/adapters/drizzle/drizzle-uow-compiler.js.map +1 -1
- package/dist/adapters/drizzle/drizzle-uow-executor.js +3 -3
- package/dist/adapters/drizzle/generate.d.ts +24 -0
- package/dist/adapters/drizzle/generate.d.ts.map +1 -0
- package/dist/adapters/drizzle/generate.js +34 -18
- package/dist/adapters/drizzle/generate.js.map +1 -1
- package/dist/adapters/drizzle/shared.js +13 -4
- package/dist/adapters/drizzle/shared.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/alias.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/casing.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/column-builder.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/column.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/entity.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/errors.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/pg-core/columns/common.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/pg-core/columns/enum.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/pg-core/foreign-keys.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/pg-core/unique-constraint.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/pg-core/utils/array.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/query-builders/query-builder.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/query-promise.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/relations.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/selection-proxy.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sql/expressions/conditions.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sql/expressions/select.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sql/functions/aggregate.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sql/sql.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/columns/common.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/db.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/dialect.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/foreign-keys.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/query-builders/count.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/query-builders/query.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/query-builders/select.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/query-builders/update.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/table.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/unique-constraint.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/utils.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/sqlite-core/view-base.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/subquery.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/table.js.map +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_d581c715d15ad795b3728767f4706e8d/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/table.utils.js.map +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_d581c715d15ad795b3728767f4706e8d/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/tracing-utils.js.map +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_d581c715d15ad795b3728767f4706e8d/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/tracing.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/utils.js.map +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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/view-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 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_d581c715d15ad795b3728767f4706e8d}/node_modules/drizzle-orm/view-common.js.map +1 -1
- package/dist/query/unit-of-work.d.ts +6 -2
- package/dist/query/unit-of-work.d.ts.map +1 -1
- package/dist/query/unit-of-work.js +19 -3
- package/dist/query/unit-of-work.js.map +1 -1
- package/package.json +8 -3
- package/src/adapters/drizzle/drizzle-adapter-pglite.test.ts +54 -0
- package/src/adapters/drizzle/drizzle-adapter.test.ts +3 -3
- package/src/adapters/drizzle/drizzle-query.test.ts +449 -0
- package/src/adapters/drizzle/drizzle-query.ts +58 -21
- package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +222 -0
- package/src/adapters/drizzle/drizzle-uow-compiler.ts +23 -15
- package/src/adapters/drizzle/generate.test.ts +168 -56
- package/src/adapters/drizzle/generate.ts +80 -21
- package/src/adapters/drizzle/shared.ts +14 -4
- package/src/adapters/drizzle/test-utils.ts +1 -0
- package/src/query/unit-of-work.ts +28 -0
- package/tsdown.config.ts +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 +0 -6
- 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 +0 -8
- 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 +0 -8
|
@@ -388,6 +388,131 @@ describe("drizzle-uow-compiler", () => {
|
|
|
388
388
|
]);
|
|
389
389
|
});
|
|
390
390
|
|
|
391
|
+
it("should compile create operation with external id string for reference column", () => {
|
|
392
|
+
const uow = createTestUOW();
|
|
393
|
+
// Create a post with userId as just an external id string
|
|
394
|
+
uow.create("posts", {
|
|
395
|
+
title: "Test Post",
|
|
396
|
+
content: "Post content",
|
|
397
|
+
userId: "user_external_id_123",
|
|
398
|
+
viewCount: 5,
|
|
399
|
+
});
|
|
400
|
+
|
|
401
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
402
|
+
const compiled = uow.compile(compiler);
|
|
403
|
+
const [batch] = compiled.mutationBatch;
|
|
404
|
+
assert(batch);
|
|
405
|
+
expect(batch.expectedAffectedRows).toBeNull();
|
|
406
|
+
expect(batch.query.sql).toMatchInlineSnapshot(
|
|
407
|
+
`"insert into "posts" ("id", "title", "content", "userId", "viewCount", "_internalId", "_version") values ($1, $2, $3, (select "_internalId" from "users" where "id" = $4 limit 1), $5, default, default)"`,
|
|
408
|
+
);
|
|
409
|
+
expect(batch.query.params).toMatchObject([
|
|
410
|
+
expect.any(String), // auto-generated post ID
|
|
411
|
+
"Test Post",
|
|
412
|
+
"Post content",
|
|
413
|
+
"user_external_id_123", // external id string
|
|
414
|
+
5, // viewCount
|
|
415
|
+
]);
|
|
416
|
+
});
|
|
417
|
+
|
|
418
|
+
it("should compile create operation with bigint for reference column (no subquery)", () => {
|
|
419
|
+
const uow = createTestUOW();
|
|
420
|
+
// Create a post with userId as a bigint directly (internal ID)
|
|
421
|
+
uow.create("posts", {
|
|
422
|
+
title: "Direct ID Post",
|
|
423
|
+
content: "Content with direct bigint",
|
|
424
|
+
userId: 12345n,
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
428
|
+
const compiled = uow.compile(compiler);
|
|
429
|
+
const [batch] = compiled.mutationBatch;
|
|
430
|
+
assert(batch);
|
|
431
|
+
expect(batch.expectedAffectedRows).toBeNull();
|
|
432
|
+
// Should NOT have a subquery when using bigint directly
|
|
433
|
+
expect(batch.query.sql).not.toMatch(/\(select.*from.*users/i);
|
|
434
|
+
expect(batch.query.sql).toMatchInlineSnapshot(
|
|
435
|
+
`"insert into "posts" ("id", "title", "content", "userId", "viewCount", "_internalId", "_version") values ($1, $2, $3, $4, default, default, default)"`,
|
|
436
|
+
);
|
|
437
|
+
expect(batch.query.params).toMatchObject([
|
|
438
|
+
expect.any(String), // auto-generated post ID
|
|
439
|
+
"Direct ID Post",
|
|
440
|
+
"Content with direct bigint",
|
|
441
|
+
12345n, // bigint internal ID directly
|
|
442
|
+
]);
|
|
443
|
+
});
|
|
444
|
+
|
|
445
|
+
it("should compile create operation with FragnoId object for reference column", () => {
|
|
446
|
+
const uow = createTestUOW();
|
|
447
|
+
const userId = FragnoId.fromExternal("user_ext_789", 0);
|
|
448
|
+
// Create a post with userId as a FragnoId object
|
|
449
|
+
uow.create("posts", {
|
|
450
|
+
title: "Post with FragnoId",
|
|
451
|
+
content: "Content",
|
|
452
|
+
userId,
|
|
453
|
+
});
|
|
454
|
+
|
|
455
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
456
|
+
const compiled = uow.compile(compiler);
|
|
457
|
+
const [batch] = compiled.mutationBatch;
|
|
458
|
+
assert(batch);
|
|
459
|
+
expect(batch.expectedAffectedRows).toBeNull();
|
|
460
|
+
// FragnoId should use internal ID directly (no subquery needed if available)
|
|
461
|
+
// But since we don't have the internal ID populated in the test, it should serialize
|
|
462
|
+
expect(batch.query.sql).toMatchInlineSnapshot(
|
|
463
|
+
`"insert into "posts" ("id", "title", "content", "userId", "viewCount", "_internalId", "_version") values ($1, $2, $3, $4, default, default, default)"`,
|
|
464
|
+
);
|
|
465
|
+
});
|
|
466
|
+
|
|
467
|
+
it("should compile update operation with external id string for reference column", () => {
|
|
468
|
+
const uow = createTestUOW();
|
|
469
|
+
const postId = FragnoId.fromExternal("post123", 0);
|
|
470
|
+
uow.update("posts", postId, (b) =>
|
|
471
|
+
b.set({
|
|
472
|
+
userId: "new_user_external_id_456",
|
|
473
|
+
}),
|
|
474
|
+
);
|
|
475
|
+
|
|
476
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
477
|
+
const compiled = uow.compile(compiler);
|
|
478
|
+
const [batch] = compiled.mutationBatch;
|
|
479
|
+
assert(batch);
|
|
480
|
+
expect(batch.expectedAffectedRows).toBeNull();
|
|
481
|
+
// Should generate a subquery for the string external ID in UPDATE
|
|
482
|
+
expect(batch.query.sql).toMatchInlineSnapshot(
|
|
483
|
+
`"update "posts" set "userId" = (select "_internalId" from "users" where "id" = $1 limit 1), "_version" = COALESCE(_version, 0) + 1 where "posts"."id" = $2"`,
|
|
484
|
+
);
|
|
485
|
+
expect(batch.query.params).toMatchObject([
|
|
486
|
+
"new_user_external_id_456", // external id string
|
|
487
|
+
"post123", // post external id
|
|
488
|
+
]);
|
|
489
|
+
});
|
|
490
|
+
|
|
491
|
+
it("should compile update operation with bigint for reference column (no subquery)", () => {
|
|
492
|
+
const uow = createTestUOW();
|
|
493
|
+
const postId = FragnoId.fromExternal("post456", 0);
|
|
494
|
+
uow.update("posts", postId, (b) =>
|
|
495
|
+
b.set({
|
|
496
|
+
userId: 99999n,
|
|
497
|
+
}),
|
|
498
|
+
);
|
|
499
|
+
|
|
500
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
501
|
+
const compiled = uow.compile(compiler);
|
|
502
|
+
const [batch] = compiled.mutationBatch;
|
|
503
|
+
assert(batch);
|
|
504
|
+
expect(batch.expectedAffectedRows).toBeNull();
|
|
505
|
+
// Should NOT have a subquery when using bigint directly
|
|
506
|
+
expect(batch.query.sql).not.toMatch(/\(select.*from.*users/i);
|
|
507
|
+
expect(batch.query.sql).toMatchInlineSnapshot(
|
|
508
|
+
`"update "posts" set "userId" = $1, "_version" = COALESCE(_version, 0) + 1 where "posts"."id" = $2"`,
|
|
509
|
+
);
|
|
510
|
+
expect(batch.query.params).toMatchObject([
|
|
511
|
+
99999n, // bigint internal ID directly
|
|
512
|
+
"post456", // post external id
|
|
513
|
+
]);
|
|
514
|
+
});
|
|
515
|
+
|
|
391
516
|
it("should compile update operation with ID", () => {
|
|
392
517
|
const uow = createTestUOW();
|
|
393
518
|
const userId = FragnoId.fromExternal("user123", 0);
|
|
@@ -1082,4 +1207,101 @@ describe("drizzle-uow-compiler", () => {
|
|
|
1082
1207
|
);
|
|
1083
1208
|
});
|
|
1084
1209
|
});
|
|
1210
|
+
|
|
1211
|
+
describe("auth schema with session joins", () => {
|
|
1212
|
+
const authSchema = schema((s) => {
|
|
1213
|
+
return s
|
|
1214
|
+
.addTable("user", (t) => {
|
|
1215
|
+
return t
|
|
1216
|
+
.addColumn("id", idColumn())
|
|
1217
|
+
.addColumn("email", column("string"))
|
|
1218
|
+
.addColumn("passwordHash", column("string"))
|
|
1219
|
+
.addColumn(
|
|
1220
|
+
"createdAt",
|
|
1221
|
+
column("timestamp").defaultTo$((b) => b.now()),
|
|
1222
|
+
)
|
|
1223
|
+
.createIndex("idx_user_email", ["email"]);
|
|
1224
|
+
})
|
|
1225
|
+
.addTable("session", (t) => {
|
|
1226
|
+
return t
|
|
1227
|
+
.addColumn("id", idColumn())
|
|
1228
|
+
.addColumn("userId", referenceColumn())
|
|
1229
|
+
.addColumn("expiresAt", column("timestamp"))
|
|
1230
|
+
.addColumn(
|
|
1231
|
+
"createdAt",
|
|
1232
|
+
column("timestamp").defaultTo$((b) => b.now()),
|
|
1233
|
+
)
|
|
1234
|
+
.createIndex("idx_session_user", ["userId"]);
|
|
1235
|
+
})
|
|
1236
|
+
.addReference("sessionOwner", {
|
|
1237
|
+
from: {
|
|
1238
|
+
table: "session",
|
|
1239
|
+
column: "userId",
|
|
1240
|
+
},
|
|
1241
|
+
to: {
|
|
1242
|
+
table: "user",
|
|
1243
|
+
column: "id",
|
|
1244
|
+
},
|
|
1245
|
+
type: "one",
|
|
1246
|
+
});
|
|
1247
|
+
});
|
|
1248
|
+
|
|
1249
|
+
let authDb: DBType;
|
|
1250
|
+
let authPool: ConnectionPool<DBType>;
|
|
1251
|
+
|
|
1252
|
+
beforeAll(async () => {
|
|
1253
|
+
// Write schema to file and dynamically import it
|
|
1254
|
+
const { schemaModule, cleanup } = await writeAndLoadSchema(
|
|
1255
|
+
"drizzle-uow-compiler-auth",
|
|
1256
|
+
authSchema,
|
|
1257
|
+
"postgresql",
|
|
1258
|
+
);
|
|
1259
|
+
|
|
1260
|
+
// Create Drizzle instance with PGLite (in-memory Postgres)
|
|
1261
|
+
authDb = drizzle({
|
|
1262
|
+
schema: schemaModule,
|
|
1263
|
+
}) as unknown as DBType;
|
|
1264
|
+
|
|
1265
|
+
// Wrap in connection pool
|
|
1266
|
+
authPool = createDrizzleConnectionPool(authDb);
|
|
1267
|
+
|
|
1268
|
+
return async () => {
|
|
1269
|
+
await cleanup();
|
|
1270
|
+
};
|
|
1271
|
+
}, 12000);
|
|
1272
|
+
|
|
1273
|
+
function createAuthUOW(name?: string) {
|
|
1274
|
+
const compiler = createDrizzleUOWCompiler(authSchema, authPool, "postgresql");
|
|
1275
|
+
const mockExecutor = {
|
|
1276
|
+
executeRetrievalPhase: async () => [],
|
|
1277
|
+
executeMutationPhase: async () => ({ success: true, createdInternalIds: [] }),
|
|
1278
|
+
};
|
|
1279
|
+
const mockDecoder: UOWDecoder<typeof authSchema> = (rawResults, operations) => {
|
|
1280
|
+
if (rawResults.length !== operations.length) {
|
|
1281
|
+
throw new Error("rawResults and ops must have the same length");
|
|
1282
|
+
}
|
|
1283
|
+
return rawResults;
|
|
1284
|
+
};
|
|
1285
|
+
return new UnitOfWork(authSchema, compiler, mockExecutor, mockDecoder, name);
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
it("should compile find session with user join", () => {
|
|
1289
|
+
const uow = createAuthUOW();
|
|
1290
|
+
const sessionId = "session123";
|
|
1291
|
+
uow.find("session", (b) =>
|
|
1292
|
+
b
|
|
1293
|
+
.whereIndex("primary", (eb) => eb("id", "=", sessionId))
|
|
1294
|
+
.join((j) => j.sessionOwner((b) => b.select(["id", "email"]))),
|
|
1295
|
+
);
|
|
1296
|
+
|
|
1297
|
+
const compiler = createDrizzleUOWCompiler(authSchema, authPool, "postgresql");
|
|
1298
|
+
const compiled = uow.compile(compiler);
|
|
1299
|
+
|
|
1300
|
+
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
1301
|
+
expect(compiled.retrievalBatch[0].sql).toMatchInlineSnapshot(
|
|
1302
|
+
`"select "session"."id", "session"."userId", "session"."expiresAt", "session"."createdAt", "session"."_internalId", "session"."_version", "session_sessionOwner"."data" as "sessionOwner" from "session" "session" left join lateral (select json_build_array("session_sessionOwner"."id", "session_sessionOwner"."email", "session_sessionOwner"."_internalId", "session_sessionOwner"."_version") as "data" from (select * from "user" "session_sessionOwner" where "session_sessionOwner"."_internalId" = "session"."userId" limit $1) "session_sessionOwner") "session_sessionOwner" on true where "session"."id" = $2"`,
|
|
1303
|
+
);
|
|
1304
|
+
expect(compiled.retrievalBatch[0].params).toEqual([1, sessionId]);
|
|
1305
|
+
});
|
|
1306
|
+
});
|
|
1085
1307
|
});
|
|
@@ -37,7 +37,6 @@ export type DrizzleCompiledQuery = {
|
|
|
37
37
|
* @param pool - Connection pool for acquiring database connections
|
|
38
38
|
* @param provider - SQL provider (sqlite, mysql, postgresql)
|
|
39
39
|
* @param mapper - Optional table name mapper for namespace prefixing
|
|
40
|
-
* @param onQuery - Optional callback to receive compiled queries for logging/debugging
|
|
41
40
|
* @returns A UOWCompiler instance for Drizzle
|
|
42
41
|
*/
|
|
43
42
|
export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
@@ -45,7 +44,6 @@ export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
|
45
44
|
pool: ConnectionPool<DBType>,
|
|
46
45
|
provider: "sqlite" | "mysql" | "postgresql",
|
|
47
46
|
mapper?: TableNameMapper,
|
|
48
|
-
onQuery?: (query: DrizzleCompiledQuery) => void,
|
|
49
47
|
): UOWCompiler<TSchema, DrizzleCompiledQuery> {
|
|
50
48
|
// Get db synchronously for compilation (doesn't execute, just builds SQL)
|
|
51
49
|
// TODO: We don't even need a Drizzle instance with a db client attached here. `drizzle({ schema })` is enough.
|
|
@@ -185,16 +183,15 @@ export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
|
185
183
|
const externalId = value.externalIdValue;
|
|
186
184
|
const internalIdCol = refTable.getInternalIdColumn();
|
|
187
185
|
const idCol = refTable.getIdColumn();
|
|
188
|
-
const drizzleRefTable = toDrizzleTable(refTable);
|
|
189
|
-
const drizzleIdCol = toDrizzleColumn(idCol);
|
|
190
186
|
|
|
191
|
-
//
|
|
187
|
+
// Map logical table name to physical table name using the mapper
|
|
188
|
+
const physicalTableName = mapper ? mapper.toPhysical(refTable.ormName) : refTable.ormName;
|
|
189
|
+
|
|
190
|
+
// Build a SQL subquery using Drizzle's sql template
|
|
191
|
+
// This creates a subquery: (SELECT _internalId FROM table WHERE id = ? LIMIT 1)
|
|
192
192
|
// Safe cast: we're building a SQL subquery that returns a single bigint value
|
|
193
|
-
processed[key] =
|
|
194
|
-
.select({
|
|
195
|
-
.from(drizzleRefTable)
|
|
196
|
-
.where(Drizzle.eq(drizzleIdCol, externalId))
|
|
197
|
-
.limit(1) as unknown;
|
|
193
|
+
processed[key] =
|
|
194
|
+
Drizzle.sql`(select ${Drizzle.sql.identifier(internalIdCol.name)} from ${Drizzle.sql.identifier(physicalTableName)} where ${Drizzle.sql.identifier(idCol.name)} = ${externalId} limit 1)`;
|
|
198
195
|
} else {
|
|
199
196
|
processed[key] = value;
|
|
200
197
|
}
|
|
@@ -315,7 +312,6 @@ export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
|
315
312
|
const query = db.select({ count: Drizzle.count() }).from(drizzleTable);
|
|
316
313
|
|
|
317
314
|
const compiledQuery = whereClause ? query.where(whereClause).toSQL() : query.toSQL();
|
|
318
|
-
onQuery?.(compiledQuery);
|
|
319
315
|
return compiledQuery;
|
|
320
316
|
}
|
|
321
317
|
|
|
@@ -452,7 +448,6 @@ export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
|
452
448
|
|
|
453
449
|
const physicalTableName = mapper ? mapper.toPhysical(op.table.ormName) : op.table.ormName;
|
|
454
450
|
const compiledQuery = db.query[physicalTableName].findMany(queryConfig).toSQL();
|
|
455
|
-
onQuery?.(compiledQuery);
|
|
456
451
|
return compiledQuery;
|
|
457
452
|
}
|
|
458
453
|
}
|
|
@@ -470,7 +465,6 @@ export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
|
470
465
|
const values = processReferenceSubqueries(encodedValues);
|
|
471
466
|
|
|
472
467
|
const compiledQuery = db.insert(drizzleTable).values(values).toSQL();
|
|
473
|
-
onQuery?.(compiledQuery);
|
|
474
468
|
return {
|
|
475
469
|
query: compiledQuery,
|
|
476
470
|
expectedAffectedRows: null, // creates don't need affected row checks
|
|
@@ -514,7 +508,6 @@ export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
|
514
508
|
) as unknown;
|
|
515
509
|
|
|
516
510
|
const compiledQuery = db.update(drizzleTable).set(setValues).where(whereClause).toSQL();
|
|
517
|
-
onQuery?.(compiledQuery);
|
|
518
511
|
return {
|
|
519
512
|
query: compiledQuery,
|
|
520
513
|
expectedAffectedRows: op.checkVersion ? 1 : null,
|
|
@@ -527,7 +520,23 @@ export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
|
527
520
|
const versionColumn = table.getVersionColumn();
|
|
528
521
|
const drizzleTable = toDrizzleTable(table);
|
|
529
522
|
|
|
523
|
+
if (!op.id) {
|
|
524
|
+
throw new Error(
|
|
525
|
+
`[Drizzle] Delete operation on table "${op.table}" has undefined id. ` +
|
|
526
|
+
`Make sure you're passing a valid FragnoId or string ID.`,
|
|
527
|
+
);
|
|
528
|
+
}
|
|
529
|
+
|
|
530
530
|
const externalId = typeof op.id === "string" ? op.id : op.id.externalId;
|
|
531
|
+
|
|
532
|
+
if (!externalId) {
|
|
533
|
+
throw new Error(
|
|
534
|
+
`[Drizzle] Delete operation on table "${op.table}" has invalid id. ` +
|
|
535
|
+
`The FragnoId object exists but has no externalId. ` +
|
|
536
|
+
`Received: ${JSON.stringify(op.id)}. ` +
|
|
537
|
+
`Make sure the record was properly loaded from the database.`,
|
|
538
|
+
);
|
|
539
|
+
}
|
|
531
540
|
const versionToCheck = getVersionToCheck(op.id, op.checkVersion);
|
|
532
541
|
|
|
533
542
|
// Build WHERE clause that filters by ID and optionally by version
|
|
@@ -550,7 +559,6 @@ export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
|
550
559
|
const whereClause = condition === true ? undefined : buildWhere(condition);
|
|
551
560
|
|
|
552
561
|
const compiledQuery = db.delete(drizzleTable).where(whereClause).toSQL();
|
|
553
|
-
onQuery?.(compiledQuery);
|
|
554
562
|
return {
|
|
555
563
|
query: compiledQuery,
|
|
556
564
|
expectedAffectedRows: op.checkVersion ? 1 : null,
|