drizzle-orm 0.38.2 → 0.38.3-791f459
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/_relations.cjs +328 -0
- package/_relations.cjs.map +1 -0
- package/_relations.d.cts +215 -0
- package/_relations.d.ts +215 -0
- package/_relations.js +316 -0
- package/_relations.js.map +1 -0
- package/alias.cjs.map +1 -1
- package/alias.d.cts +3 -3
- package/alias.d.ts +3 -3
- package/alias.js.map +1 -1
- package/aws-data-api/pg/driver.cjs +19 -5
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +9 -8
- package/aws-data-api/pg/driver.d.ts +9 -8
- package/aws-data-api/pg/driver.js +9 -8
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/migrator.cjs.map +1 -1
- package/aws-data-api/pg/migrator.d.cts +2 -1
- package/aws-data-api/pg/migrator.d.ts +2 -1
- package/aws-data-api/pg/migrator.js.map +1 -1
- package/aws-data-api/pg/session.cjs +67 -4
- package/aws-data-api/pg/session.cjs.map +1 -1
- package/aws-data-api/pg/session.d.cts +13 -8
- package/aws-data-api/pg/session.d.ts +13 -8
- package/aws-data-api/pg/session.js +67 -4
- package/aws-data-api/pg/session.js.map +1 -1
- package/better-sqlite3/driver.cjs +12 -5
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.d.cts +7 -6
- package/better-sqlite3/driver.d.ts +7 -6
- package/better-sqlite3/driver.js +12 -8
- package/better-sqlite3/driver.js.map +1 -1
- package/better-sqlite3/migrator.cjs.map +1 -1
- package/better-sqlite3/migrator.d.cts +2 -1
- package/better-sqlite3/migrator.d.ts +2 -1
- package/better-sqlite3/migrator.js.map +1 -1
- package/better-sqlite3/session.cjs +49 -4
- package/better-sqlite3/session.cjs.map +1 -1
- package/better-sqlite3/session.d.cts +14 -8
- package/better-sqlite3/session.d.ts +14 -8
- package/better-sqlite3/session.js +49 -4
- package/better-sqlite3/session.js.map +1 -1
- package/bun-sqlite/driver.cjs +22 -5
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.d.cts +7 -6
- package/bun-sqlite/driver.d.ts +7 -6
- package/bun-sqlite/driver.js +12 -8
- package/bun-sqlite/driver.js.map +1 -1
- package/bun-sqlite/migrator.cjs.map +1 -1
- package/bun-sqlite/migrator.d.cts +2 -1
- package/bun-sqlite/migrator.d.ts +2 -1
- package/bun-sqlite/migrator.js.map +1 -1
- package/bun-sqlite/session.cjs +49 -4
- package/bun-sqlite/session.cjs.map +1 -1
- package/bun-sqlite/session.d.cts +14 -8
- package/bun-sqlite/session.d.ts +14 -8
- package/bun-sqlite/session.js +49 -4
- package/bun-sqlite/session.js.map +1 -1
- package/d1/driver.cjs +22 -5
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.d.cts +3 -2
- package/d1/driver.d.ts +3 -2
- package/d1/driver.js +12 -8
- package/d1/driver.js.map +1 -1
- package/d1/migrator.cjs.map +1 -1
- package/d1/migrator.d.cts +2 -1
- package/d1/migrator.d.ts +2 -1
- package/d1/migrator.js.map +1 -1
- package/d1/session.cjs +48 -6
- package/d1/session.cjs.map +1 -1
- package/d1/session.d.cts +15 -8
- package/d1/session.d.ts +15 -8
- package/d1/session.js +48 -6
- package/d1/session.js.map +1 -1
- package/durable-sqlite/driver.cjs +16 -5
- package/durable-sqlite/driver.cjs.map +1 -1
- package/durable-sqlite/driver.d.cts +3 -2
- package/durable-sqlite/driver.d.ts +3 -2
- package/durable-sqlite/driver.js +6 -8
- package/durable-sqlite/driver.js.map +1 -1
- package/durable-sqlite/migrator.cjs.map +1 -1
- package/durable-sqlite/migrator.d.cts +2 -1
- package/durable-sqlite/migrator.d.ts +2 -1
- package/durable-sqlite/migrator.js.map +1 -1
- package/durable-sqlite/session.cjs +46 -4
- package/durable-sqlite/session.cjs.map +1 -1
- package/durable-sqlite/session.d.cts +14 -8
- package/durable-sqlite/session.d.ts +14 -8
- package/durable-sqlite/session.js +46 -4
- package/durable-sqlite/session.js.map +1 -1
- package/expo-sqlite/driver.cjs +22 -5
- package/expo-sqlite/driver.cjs.map +1 -1
- package/expo-sqlite/driver.d.cts +3 -2
- package/expo-sqlite/driver.d.ts +3 -2
- package/expo-sqlite/driver.js +12 -8
- package/expo-sqlite/driver.js.map +1 -1
- package/expo-sqlite/migrator.cjs.map +1 -1
- package/expo-sqlite/migrator.d.cts +3 -2
- package/expo-sqlite/migrator.d.ts +3 -2
- package/expo-sqlite/migrator.js.map +1 -1
- package/expo-sqlite/query.cjs +13 -2
- package/expo-sqlite/query.cjs.map +1 -1
- package/expo-sqlite/query.d.cts +2 -1
- package/expo-sqlite/query.d.ts +2 -1
- package/expo-sqlite/query.js +3 -2
- package/expo-sqlite/query.js.map +1 -1
- package/expo-sqlite/session.cjs +47 -4
- package/expo-sqlite/session.cjs.map +1 -1
- package/expo-sqlite/session.d.cts +14 -8
- package/expo-sqlite/session.d.ts +14 -8
- package/expo-sqlite/session.js +47 -4
- package/expo-sqlite/session.js.map +1 -1
- package/libsql/driver-core.cjs +22 -5
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.d.cts +2 -1
- package/libsql/driver-core.d.ts +2 -1
- package/libsql/driver-core.js +12 -8
- package/libsql/driver-core.js.map +1 -1
- package/libsql/driver.cjs.map +1 -1
- package/libsql/driver.d.cts +6 -5
- package/libsql/driver.d.ts +6 -5
- package/libsql/driver.js.map +1 -1
- package/libsql/http/index.cjs.map +1 -1
- package/libsql/http/index.d.cts +6 -5
- package/libsql/http/index.d.ts +6 -5
- package/libsql/http/index.js.map +1 -1
- package/libsql/migrator.cjs.map +1 -1
- package/libsql/migrator.d.cts +2 -1
- package/libsql/migrator.d.ts +2 -1
- package/libsql/migrator.js.map +1 -1
- package/libsql/node/index.cjs.map +1 -1
- package/libsql/node/index.d.cts +6 -5
- package/libsql/node/index.d.ts +6 -5
- package/libsql/node/index.js.map +1 -1
- package/libsql/session.cjs +60 -4
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +15 -9
- package/libsql/session.d.ts +15 -9
- package/libsql/session.js +60 -4
- package/libsql/session.js.map +1 -1
- package/libsql/sqlite3/index.cjs.map +1 -1
- package/libsql/sqlite3/index.d.cts +6 -5
- package/libsql/sqlite3/index.d.ts +6 -5
- package/libsql/sqlite3/index.js.map +1 -1
- package/libsql/wasm/index.cjs.map +1 -1
- package/libsql/wasm/index.d.cts +6 -5
- package/libsql/wasm/index.d.ts +6 -5
- package/libsql/wasm/index.js.map +1 -1
- package/libsql/web/index.cjs.map +1 -1
- package/libsql/web/index.d.cts +6 -5
- package/libsql/web/index.d.ts +6 -5
- package/libsql/web/index.js.map +1 -1
- package/libsql/ws/index.cjs.map +1 -1
- package/libsql/ws/index.d.cts +6 -5
- package/libsql/ws/index.d.ts +6 -5
- package/libsql/ws/index.js.map +1 -1
- package/mysql-core/db.cjs +29 -8
- package/mysql-core/db.cjs.map +1 -1
- package/mysql-core/db.d.cts +15 -8
- package/mysql-core/db.d.ts +15 -8
- package/mysql-core/db.js +28 -7
- package/mysql-core/db.js.map +1 -1
- package/mysql-core/dialect.cjs +178 -15
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +31 -13
- package/mysql-core/dialect.d.ts +31 -13
- package/mysql-core/dialect.js +175 -21
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/_query.cjs +149 -0
- package/mysql-core/query-builders/_query.cjs.map +1 -0
- package/mysql-core/query-builders/_query.d.cts +44 -0
- package/mysql-core/query-builders/_query.d.ts +44 -0
- package/mysql-core/query-builders/_query.js +114 -0
- package/mysql-core/query-builders/_query.js.map +1 -0
- package/mysql-core/query-builders/count.cjs.map +1 -1
- package/mysql-core/query-builders/count.d.cts +1 -1
- package/mysql-core/query-builders/count.d.ts +1 -1
- package/mysql-core/query-builders/count.js.map +1 -1
- package/mysql-core/query-builders/query.cjs +18 -31
- package/mysql-core/query-builders/query.cjs.map +1 -1
- package/mysql-core/query-builders/query.d.cts +8 -10
- package/mysql-core/query-builders/query.d.ts +8 -10
- package/mysql-core/query-builders/query.js +18 -31
- package/mysql-core/query-builders/query.js.map +1 -1
- package/mysql-core/session.cjs +3 -2
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +10 -7
- package/mysql-core/session.d.ts +10 -7
- package/mysql-core/session.js +3 -2
- package/mysql-core/session.js.map +1 -1
- package/mysql-core/table.cjs.map +1 -1
- package/mysql-core/table.d.cts +12 -12
- package/mysql-core/table.d.ts +12 -12
- package/mysql-core/table.js.map +1 -1
- package/mysql-proxy/driver.cjs +22 -5
- package/mysql-proxy/driver.cjs.map +1 -1
- package/mysql-proxy/driver.d.cts +3 -2
- package/mysql-proxy/driver.d.ts +3 -2
- package/mysql-proxy/driver.js +12 -8
- package/mysql-proxy/driver.js.map +1 -1
- package/mysql-proxy/migrator.cjs.map +1 -1
- package/mysql-proxy/migrator.d.cts +2 -1
- package/mysql-proxy/migrator.d.ts +2 -1
- package/mysql-proxy/migrator.js.map +1 -1
- package/mysql-proxy/session.cjs +47 -2
- package/mysql-proxy/session.cjs.map +1 -1
- package/mysql-proxy/session.d.cts +13 -8
- package/mysql-proxy/session.d.ts +13 -8
- package/mysql-proxy/session.js +47 -2
- package/mysql-proxy/session.js.map +1 -1
- package/mysql2/driver.cjs +24 -7
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +10 -9
- package/mysql2/driver.d.ts +10 -9
- package/mysql2/driver.js +14 -10
- package/mysql2/driver.js.map +1 -1
- package/mysql2/migrator.cjs.map +1 -1
- package/mysql2/migrator.d.cts +2 -1
- package/mysql2/migrator.d.ts +2 -1
- package/mysql2/migrator.js.map +1 -1
- package/mysql2/session.cjs +51 -2
- package/mysql2/session.cjs.map +1 -1
- package/mysql2/session.d.cts +13 -8
- package/mysql2/session.d.ts +13 -8
- package/mysql2/session.js +51 -2
- package/mysql2/session.js.map +1 -1
- package/neon-http/driver.cjs +21 -7
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +10 -9
- package/neon-http/driver.d.ts +10 -9
- package/neon-http/driver.js +11 -7
- package/neon-http/driver.js.map +1 -1
- package/neon-http/migrator.cjs.map +1 -1
- package/neon-http/migrator.d.cts +2 -1
- package/neon-http/migrator.d.ts +2 -1
- package/neon-http/migrator.js.map +1 -1
- package/neon-http/session.cjs +32 -2
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +13 -8
- package/neon-http/session.d.ts +13 -8
- package/neon-http/session.js +32 -2
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +18 -7
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +9 -8
- package/neon-serverless/driver.d.ts +9 -8
- package/neon-serverless/driver.js +8 -10
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/migrator.cjs.map +1 -1
- package/neon-serverless/migrator.d.cts +2 -1
- package/neon-serverless/migrator.d.ts +2 -1
- package/neon-serverless/migrator.js.map +1 -1
- package/neon-serverless/session.cjs +40 -5
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.d.cts +13 -8
- package/neon-serverless/session.d.ts +13 -8
- package/neon-serverless/session.js +40 -5
- package/neon-serverless/session.js.map +1 -1
- package/node-postgres/driver.cjs +13 -7
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +9 -8
- package/node-postgres/driver.d.ts +9 -8
- package/node-postgres/driver.js +13 -10
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/migrator.cjs.map +1 -1
- package/node-postgres/migrator.d.cts +2 -1
- package/node-postgres/migrator.d.ts +2 -1
- package/node-postgres/migrator.js.map +1 -1
- package/node-postgres/session.cjs +45 -4
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +13 -8
- package/node-postgres/session.d.ts +13 -8
- package/node-postgres/session.js +45 -4
- package/node-postgres/session.js.map +1 -1
- package/op-sqlite/driver.cjs +22 -5
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.d.cts +3 -2
- package/op-sqlite/driver.d.ts +3 -2
- package/op-sqlite/driver.js +12 -8
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/migrator.cjs.map +1 -1
- package/op-sqlite/migrator.d.cts +3 -2
- package/op-sqlite/migrator.d.ts +3 -2
- package/op-sqlite/migrator.js.map +1 -1
- package/op-sqlite/session.cjs +47 -4
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +14 -8
- package/op-sqlite/session.d.ts +14 -8
- package/op-sqlite/session.js +47 -4
- package/op-sqlite/session.js.map +1 -1
- package/package.json +99 -51
- package/pg-core/db.cjs +31 -7
- package/pg-core/db.cjs.map +1 -1
- package/pg-core/db.d.cts +16 -9
- package/pg-core/db.d.ts +16 -9
- package/pg-core/db.js +30 -6
- package/pg-core/db.js.map +1 -1
- package/pg-core/dialect.cjs +154 -488
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.d.cts +23 -7
- package/pg-core/dialect.d.ts +23 -7
- package/pg-core/dialect.js +151 -494
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/query-builders/_query.cjs +155 -0
- package/pg-core/query-builders/_query.cjs.map +1 -0
- package/pg-core/query-builders/_query.d.cts +47 -0
- package/pg-core/query-builders/_query.d.ts +47 -0
- package/pg-core/query-builders/_query.js +120 -0
- package/pg-core/query-builders/_query.js.map +1 -0
- package/pg-core/query-builders/count.cjs.map +1 -1
- package/pg-core/query-builders/count.d.cts +1 -1
- package/pg-core/query-builders/count.d.ts +1 -1
- package/pg-core/query-builders/count.js.map +1 -1
- package/pg-core/query-builders/query.cjs +15 -18
- package/pg-core/query-builders/query.cjs.map +1 -1
- package/pg-core/query-builders/query.d.cts +6 -6
- package/pg-core/query-builders/query.d.ts +6 -6
- package/pg-core/query-builders/query.js +15 -18
- package/pg-core/query-builders/query.js.map +1 -1
- package/pg-core/session.cjs +3 -2
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +9 -6
- package/pg-core/session.d.ts +9 -6
- package/pg-core/session.js +3 -2
- package/pg-core/session.js.map +1 -1
- package/pg-core/table.cjs.map +1 -1
- package/pg-core/table.d.cts +12 -12
- package/pg-core/table.d.ts +12 -12
- package/pg-core/table.js.map +1 -1
- package/pg-proxy/driver.cjs +21 -5
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.d.cts +3 -2
- package/pg-proxy/driver.d.ts +3 -2
- package/pg-proxy/driver.js +11 -8
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/migrator.cjs.map +1 -1
- package/pg-proxy/migrator.d.cts +2 -1
- package/pg-proxy/migrator.d.ts +2 -1
- package/pg-proxy/migrator.js.map +1 -1
- package/pg-proxy/session.cjs +37 -2
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +13 -8
- package/pg-proxy/session.d.ts +13 -8
- package/pg-proxy/session.js +37 -2
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +23 -7
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +9 -8
- package/pglite/driver.d.ts +9 -8
- package/pglite/driver.js +13 -10
- package/pglite/driver.js.map +1 -1
- package/pglite/migrator.cjs.map +1 -1
- package/pglite/migrator.d.cts +2 -1
- package/pglite/migrator.d.ts +2 -1
- package/pglite/migrator.js.map +1 -1
- package/pglite/session.cjs +34 -3
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +13 -8
- package/pglite/session.d.ts +13 -8
- package/pglite/session.js +34 -3
- package/pglite/session.js.map +1 -1
- package/planetscale-serverless/driver.cjs +22 -5
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +7 -6
- package/planetscale-serverless/driver.d.ts +7 -6
- package/planetscale-serverless/driver.js +12 -8
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/migrator.cjs.map +1 -1
- package/planetscale-serverless/migrator.d.cts +2 -1
- package/planetscale-serverless/migrator.d.ts +2 -1
- package/planetscale-serverless/migrator.js.map +1 -1
- package/planetscale-serverless/session.cjs +68 -5
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +14 -9
- package/planetscale-serverless/session.d.ts +14 -9
- package/planetscale-serverless/session.js +68 -5
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +6 -5
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +7 -6
- package/postgres-js/driver.d.ts +7 -6
- package/postgres-js/driver.js +6 -8
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/migrator.cjs.map +1 -1
- package/postgres-js/migrator.d.cts +2 -1
- package/postgres-js/migrator.d.ts +2 -1
- package/postgres-js/migrator.js.map +1 -1
- package/postgres-js/session.cjs +51 -6
- package/postgres-js/session.cjs.map +1 -1
- package/postgres-js/session.d.cts +15 -9
- package/postgres-js/session.d.ts +15 -9
- package/postgres-js/session.js +51 -6
- package/postgres-js/session.js.map +1 -1
- package/prisma/mysql/driver.cjs +1 -1
- package/prisma/mysql/driver.cjs.map +1 -1
- package/prisma/mysql/driver.js +1 -1
- package/prisma/mysql/driver.js.map +1 -1
- package/prisma/mysql/session.cjs +3 -0
- package/prisma/mysql/session.cjs.map +1 -1
- package/prisma/mysql/session.d.cts +3 -1
- package/prisma/mysql/session.d.ts +3 -1
- package/prisma/mysql/session.js +3 -0
- package/prisma/mysql/session.js.map +1 -1
- package/prisma/pg/driver.cjs +1 -1
- package/prisma/pg/driver.cjs.map +1 -1
- package/prisma/pg/driver.js +1 -1
- package/prisma/pg/driver.js.map +1 -1
- package/prisma/pg/session.cjs +3 -0
- package/prisma/pg/session.cjs.map +1 -1
- package/prisma/pg/session.d.cts +3 -1
- package/prisma/pg/session.d.ts +3 -1
- package/prisma/pg/session.js +3 -0
- package/prisma/pg/session.js.map +1 -1
- package/prisma/sqlite/driver.cjs +1 -1
- package/prisma/sqlite/driver.cjs.map +1 -1
- package/prisma/sqlite/driver.js +1 -1
- package/prisma/sqlite/driver.js.map +1 -1
- package/prisma/sqlite/session.cjs +3 -0
- package/prisma/sqlite/session.cjs.map +1 -1
- package/prisma/sqlite/session.d.cts +4 -2
- package/prisma/sqlite/session.d.ts +4 -2
- package/prisma/sqlite/session.js +3 -0
- package/prisma/sqlite/session.js.map +1 -1
- package/relations.cjs +470 -245
- package/relations.cjs.map +1 -1
- package/relations.d.cts +268 -131
- package/relations.d.ts +268 -131
- package/relations.js +459 -240
- package/relations.js.map +1 -1
- package/singlestore/driver.cjs +1 -1
- package/singlestore/driver.cjs.map +1 -1
- package/singlestore/driver.d.cts +1 -1
- package/singlestore/driver.d.ts +1 -1
- package/singlestore/driver.js +3 -3
- package/singlestore/driver.js.map +1 -1
- package/singlestore/session.cjs.map +1 -1
- package/singlestore/session.d.cts +4 -4
- package/singlestore/session.d.ts +4 -4
- package/singlestore/session.js.map +1 -1
- package/singlestore-core/columns/all.cjs +3 -0
- package/singlestore-core/columns/all.cjs.map +1 -1
- package/singlestore-core/columns/all.d.cts +4 -1
- package/singlestore-core/columns/all.d.ts +4 -1
- package/singlestore-core/columns/all.js +4 -1
- package/singlestore-core/columns/all.js.map +1 -1
- package/singlestore-core/columns/char.cjs.map +1 -1
- package/singlestore-core/columns/char.d.cts +19 -10
- package/singlestore-core/columns/char.d.ts +19 -10
- package/singlestore-core/columns/char.js.map +1 -1
- package/singlestore-core/columns/text.cjs.map +1 -1
- package/singlestore-core/columns/text.d.cts +1 -1
- package/singlestore-core/columns/text.d.ts +1 -1
- package/singlestore-core/columns/text.js.map +1 -1
- package/singlestore-core/columns/varchar.cjs.map +1 -1
- package/singlestore-core/columns/varchar.d.cts +17 -8
- package/singlestore-core/columns/varchar.d.ts +17 -8
- package/singlestore-core/columns/varchar.js.map +1 -1
- package/singlestore-core/db.cjs.map +1 -1
- package/singlestore-core/db.d.cts +3 -3
- package/singlestore-core/db.d.ts +3 -3
- package/singlestore-core/db.js.map +1 -1
- package/singlestore-core/dialect.cjs +16 -6
- package/singlestore-core/dialect.cjs.map +1 -1
- package/singlestore-core/dialect.d.cts +6 -6
- package/singlestore-core/dialect.d.ts +6 -6
- package/singlestore-core/dialect.js +6 -12
- package/singlestore-core/dialect.js.map +1 -1
- package/singlestore-core/query-builders/query.cjs +12 -2
- package/singlestore-core/query-builders/query.cjs.map +1 -1
- package/singlestore-core/query-builders/query.d.cts +6 -6
- package/singlestore-core/query-builders/query.d.ts +6 -6
- package/singlestore-core/query-builders/query.js +2 -4
- package/singlestore-core/query-builders/query.js.map +1 -1
- package/singlestore-core/session.cjs.map +1 -1
- package/singlestore-core/session.d.cts +5 -5
- package/singlestore-core/session.d.ts +5 -5
- package/singlestore-core/session.js.map +1 -1
- package/singlestore-proxy/driver.cjs +1 -1
- package/singlestore-proxy/driver.cjs.map +1 -1
- package/singlestore-proxy/driver.js +3 -3
- package/singlestore-proxy/driver.js.map +1 -1
- package/singlestore-proxy/session.cjs.map +1 -1
- package/singlestore-proxy/session.d.cts +4 -4
- package/singlestore-proxy/session.d.ts +4 -4
- package/singlestore-proxy/session.js.map +1 -1
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.d.cts +8 -8
- package/sql/sql.d.ts +8 -8
- package/sql/sql.js.map +1 -1
- package/sql-js/driver.cjs +16 -5
- package/sql-js/driver.cjs.map +1 -1
- package/sql-js/driver.d.cts +3 -2
- package/sql-js/driver.d.ts +3 -2
- package/sql-js/driver.js +6 -8
- package/sql-js/driver.js.map +1 -1
- package/sql-js/migrator.cjs.map +1 -1
- package/sql-js/migrator.d.cts +2 -1
- package/sql-js/migrator.d.ts +2 -1
- package/sql-js/migrator.js.map +1 -1
- package/sql-js/session.cjs +58 -4
- package/sql-js/session.cjs.map +1 -1
- package/sql-js/session.d.cts +14 -8
- package/sql-js/session.d.ts +14 -8
- package/sql-js/session.js +58 -4
- package/sql-js/session.js.map +1 -1
- package/sqlite-core/db.cjs +36 -14
- package/sqlite-core/db.cjs.map +1 -1
- package/sqlite-core/db.d.cts +15 -8
- package/sqlite-core/db.d.ts +15 -8
- package/sqlite-core/db.js +35 -13
- package/sqlite-core/db.js.map +1 -1
- package/sqlite-core/dialect.cjs +173 -7
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.d.cts +27 -9
- package/sqlite-core/dialect.d.ts +27 -9
- package/sqlite-core/dialect.js +170 -13
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/query-builders/_query.cjs +187 -0
- package/sqlite-core/query-builders/_query.cjs.map +1 -0
- package/sqlite-core/query-builders/_query.d.cts +55 -0
- package/sqlite-core/query-builders/_query.d.ts +55 -0
- package/sqlite-core/query-builders/_query.js +151 -0
- package/sqlite-core/query-builders/_query.js.map +1 -0
- package/sqlite-core/query-builders/count.cjs.map +1 -1
- package/sqlite-core/query-builders/count.d.cts +1 -1
- package/sqlite-core/query-builders/count.d.ts +1 -1
- package/sqlite-core/query-builders/count.js.map +1 -1
- package/sqlite-core/query-builders/delete.cjs.map +1 -1
- package/sqlite-core/query-builders/delete.d.cts +1 -1
- package/sqlite-core/query-builders/delete.d.ts +1 -1
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/insert.cjs.map +1 -1
- package/sqlite-core/query-builders/insert.d.cts +3 -3
- package/sqlite-core/query-builders/insert.d.ts +3 -3
- package/sqlite-core/query-builders/insert.js.map +1 -1
- package/sqlite-core/query-builders/query.cjs +32 -29
- package/sqlite-core/query-builders/query.cjs.map +1 -1
- package/sqlite-core/query-builders/query.d.cts +15 -16
- package/sqlite-core/query-builders/query.d.ts +15 -16
- package/sqlite-core/query-builders/query.js +32 -29
- package/sqlite-core/query-builders/query.js.map +1 -1
- package/sqlite-core/query-builders/select.cjs.map +1 -1
- package/sqlite-core/query-builders/select.d.cts +3 -3
- package/sqlite-core/query-builders/select.d.ts +3 -3
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.d.cts +3 -3
- package/sqlite-core/query-builders/update.d.ts +3 -3
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/session.cjs +6 -2
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +14 -6
- package/sqlite-core/session.d.ts +14 -6
- package/sqlite-core/session.js +6 -2
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-core/table.cjs.map +1 -1
- package/sqlite-core/table.d.cts +12 -12
- package/sqlite-core/table.d.ts +12 -12
- package/sqlite-core/table.js.map +1 -1
- package/sqlite-proxy/driver.cjs +22 -5
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.d.cts +4 -3
- package/sqlite-proxy/driver.d.ts +4 -3
- package/sqlite-proxy/driver.js +12 -5
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/migrator.cjs.map +1 -1
- package/sqlite-proxy/migrator.d.cts +2 -1
- package/sqlite-proxy/migrator.d.ts +2 -1
- package/sqlite-proxy/migrator.js.map +1 -1
- package/sqlite-proxy/session.cjs +47 -4
- package/sqlite-proxy/session.cjs.map +1 -1
- package/sqlite-proxy/session.d.cts +14 -8
- package/sqlite-proxy/session.d.ts +14 -8
- package/sqlite-proxy/session.js +47 -4
- package/sqlite-proxy/session.js.map +1 -1
- package/table.cjs.map +1 -1
- package/table.d.cts +1 -1
- package/table.d.ts +1 -1
- package/table.js.map +1 -1
- package/tidb-serverless/driver.cjs +22 -5
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +7 -6
- package/tidb-serverless/driver.d.ts +7 -6
- package/tidb-serverless/driver.js +12 -8
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/migrator.cjs.map +1 -1
- package/tidb-serverless/migrator.d.cts +2 -1
- package/tidb-serverless/migrator.d.ts +2 -1
- package/tidb-serverless/migrator.js.map +1 -1
- package/tidb-serverless/session.cjs +62 -5
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +14 -9
- package/tidb-serverless/session.d.ts +14 -9
- package/tidb-serverless/session.js +62 -5
- package/tidb-serverless/session.js.map +1 -1
- package/utils.cjs +2 -2
- package/utils.cjs.map +1 -1
- package/utils.d.cts +3 -1
- package/utils.d.ts +3 -1
- package/utils.js +2 -2
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +23 -7
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +9 -8
- package/vercel-postgres/driver.d.ts +9 -8
- package/vercel-postgres/driver.js +13 -10
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/migrator.cjs.map +1 -1
- package/vercel-postgres/migrator.d.cts +2 -1
- package/vercel-postgres/migrator.d.ts +2 -1
- package/vercel-postgres/migrator.js.map +1 -1
- package/vercel-postgres/session.cjs +34 -4
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.d.cts +13 -8
- package/vercel-postgres/session.d.ts +13 -8
- package/vercel-postgres/session.js +34 -4
- package/vercel-postgres/session.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/xata-http/driver.cjs +17 -5
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +5 -4
- package/xata-http/driver.d.ts +5 -4
- package/xata-http/driver.js +7 -5
- package/xata-http/driver.js.map +1 -1
- package/xata-http/migrator.cjs.map +1 -1
- package/xata-http/migrator.d.cts +2 -1
- package/xata-http/migrator.d.ts +2 -1
- package/xata-http/migrator.js.map +1 -1
- package/xata-http/session.cjs +30 -2
- package/xata-http/session.cjs.map +1 -1
- package/xata-http/session.d.cts +13 -8
- package/xata-http/session.d.ts +13 -8
- package/xata-http/session.js +30 -2
- package/xata-http/session.js.map +1 -1
package/relations.d.ts
CHANGED
|
@@ -2,70 +2,80 @@ import { type AnyTable, type InferModelFromColumns, Table } from "./table.js";
|
|
|
2
2
|
import { type AnyColumn, Column } from "./column.js";
|
|
3
3
|
import { entityKind } from "./entity.js";
|
|
4
4
|
import { and, asc, between, desc, exists, ilike, inArray, isNotNull, isNull, like, not, notBetween, notExists, notIlike, notInArray, notLike, or } from "./sql/expressions/index.js";
|
|
5
|
-
import {
|
|
6
|
-
import type
|
|
7
|
-
export declare
|
|
8
|
-
readonly
|
|
9
|
-
readonly
|
|
10
|
-
|
|
5
|
+
import { Placeholder, SQL, sql, type SQLWrapper } from "./sql/sql.js";
|
|
6
|
+
import { type Assume, type Equal, type Simplify, type ValueOrArray, type Writable } from "./utils.js";
|
|
7
|
+
export declare class Relations<TSchema extends Record<string, unknown> = Record<string, unknown>, TTables extends Record<string, Table> = Record<string, Table>, TConfig extends RelationsBuilderConfig<TTables> = RelationsBuilderConfig<TTables>> {
|
|
8
|
+
readonly schema: TSchema;
|
|
9
|
+
readonly tables: TTables;
|
|
10
|
+
readonly config: TConfig;
|
|
11
|
+
static readonly [entityKind]: string;
|
|
12
|
+
readonly $brand: 'Relations';
|
|
13
|
+
/** table DB name -> schema table key */
|
|
14
|
+
readonly tableNamesMap: Record<string, string>;
|
|
15
|
+
readonly tablesConfig: TablesRelationalConfig;
|
|
16
|
+
constructor(schema: TSchema, tables: TTables, config: TConfig);
|
|
17
|
+
}
|
|
18
|
+
export type EmptyRelations = Relations<Record<string, never>, Record<string, never>, Record<string, never>>;
|
|
19
|
+
export type AnyRelations = Relations<Record<string, any>, Record<string, any>, Record<string, any>>;
|
|
20
|
+
export declare abstract class Relation<TSourceTableName extends string = string, TTargetTableName extends string = string> {
|
|
21
|
+
readonly targetTable: AnyTable<{
|
|
22
|
+
name: TTargetTableName;
|
|
11
23
|
}>;
|
|
12
|
-
readonly relationName: string | undefined;
|
|
13
24
|
static readonly [entityKind]: string;
|
|
14
25
|
readonly $brand: 'Relation';
|
|
15
|
-
readonly referencedTableName: TTableName;
|
|
16
26
|
fieldName: string;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
sourceColumns: AnyColumn<{
|
|
28
|
+
tableName: TSourceTableName;
|
|
29
|
+
}>[];
|
|
30
|
+
targetColumns: AnyColumn<{
|
|
31
|
+
tableName: TTargetTableName;
|
|
32
|
+
}>[];
|
|
33
|
+
alias: string | undefined;
|
|
34
|
+
where: RelationsFilter<Record<string, Column>> | undefined;
|
|
35
|
+
sourceTable: AnyTable<{
|
|
36
|
+
name: TSourceTableName;
|
|
25
37
|
}>;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
constructor(table: AnyTable<{
|
|
30
|
-
name: TTableName;
|
|
31
|
-
}>, config: (helpers: TableRelationsHelpers<TTableName>) => TConfig);
|
|
38
|
+
constructor(targetTable: AnyTable<{
|
|
39
|
+
name: TTargetTableName;
|
|
40
|
+
}>);
|
|
32
41
|
}
|
|
33
|
-
export declare class One<
|
|
34
|
-
readonly config: RelationConfig<TTableName, string, AnyColumn<{
|
|
35
|
-
tableName: TTableName;
|
|
36
|
-
}>[]> | undefined;
|
|
37
|
-
readonly isNullable: TIsNullable;
|
|
42
|
+
export declare class One<TSourceTableName extends string, TTargetTableName extends string, TOptional extends boolean = boolean> extends Relation<TSourceTableName, TTargetTableName> {
|
|
38
43
|
static readonly [entityKind]: string;
|
|
39
44
|
protected $relationBrand: 'One';
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}>[]> | undefined, isNullable: TIsNullable);
|
|
45
|
-
withFieldName(fieldName: string): One<TTableName>;
|
|
45
|
+
readonly optional: TOptional;
|
|
46
|
+
constructor(targetTable: AnyTable<{
|
|
47
|
+
name: TTargetTableName;
|
|
48
|
+
}>, config: AnyOneConfig | undefined);
|
|
46
49
|
}
|
|
47
|
-
export declare class Many<
|
|
48
|
-
readonly config:
|
|
49
|
-
relationName: string;
|
|
50
|
-
} | undefined;
|
|
50
|
+
export declare class Many<TSourceTableName extends string, TTargetTableName extends string> extends Relation<TSourceTableName, TTargetTableName> {
|
|
51
|
+
readonly config: AnyManyConfig | undefined;
|
|
51
52
|
static readonly [entityKind]: string;
|
|
52
53
|
protected $relationBrand: 'Many';
|
|
53
|
-
constructor(
|
|
54
|
-
name:
|
|
55
|
-
}>, config:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
54
|
+
constructor(targetTable: AnyTable<{
|
|
55
|
+
name: TTargetTableName;
|
|
56
|
+
}>, config: AnyManyConfig | undefined);
|
|
57
|
+
}
|
|
58
|
+
export declare abstract class AggregatedField<T = unknown> implements SQLWrapper<T> {
|
|
59
|
+
static readonly [entityKind]: string;
|
|
60
|
+
readonly $brand: 'AggregatedField';
|
|
61
|
+
readonly _: {
|
|
62
|
+
readonly data: T;
|
|
63
|
+
};
|
|
64
|
+
protected table: Table | undefined;
|
|
65
|
+
onTable(table: Table): this;
|
|
66
|
+
abstract getSQL(): SQL<T>;
|
|
67
|
+
}
|
|
68
|
+
export declare class Count extends AggregatedField<number> {
|
|
69
|
+
static readonly [entityKind]: string;
|
|
70
|
+
protected $aggregatedFieldBrand: 'Count';
|
|
71
|
+
private query;
|
|
72
|
+
getSQL(): SQL<number>;
|
|
73
|
+
}
|
|
64
74
|
export type ExtractObjectValues<T> = T[keyof T];
|
|
65
75
|
export type ExtractRelationsFromTableExtraConfigSchema<TConfig extends unknown[]> = ExtractObjectValues<{
|
|
66
76
|
[K in keyof TConfig as TConfig[K] extends Relations<any> ? K : never]: TConfig[K] extends Relations<infer TRelationConfig> ? TRelationConfig : never;
|
|
67
77
|
}>;
|
|
68
|
-
export declare
|
|
78
|
+
export declare const operators: {
|
|
69
79
|
and: typeof and;
|
|
70
80
|
between: typeof between;
|
|
71
81
|
eq: import("./expressions.js").BinaryOperator;
|
|
@@ -89,65 +99,77 @@ export declare function getOperators(): {
|
|
|
89
99
|
or: typeof or;
|
|
90
100
|
sql: typeof sql;
|
|
91
101
|
};
|
|
92
|
-
export type Operators =
|
|
102
|
+
export type Operators = typeof operators;
|
|
103
|
+
export declare const orderByOperators: {
|
|
104
|
+
sql: typeof sql;
|
|
105
|
+
asc: typeof asc;
|
|
106
|
+
desc: typeof desc;
|
|
107
|
+
};
|
|
93
108
|
export declare function getOrderByOperators(): {
|
|
94
109
|
sql: typeof sql;
|
|
95
110
|
asc: typeof asc;
|
|
96
111
|
desc: typeof desc;
|
|
97
112
|
};
|
|
98
113
|
export type OrderByOperators = ReturnType<typeof getOrderByOperators>;
|
|
99
|
-
export type
|
|
100
|
-
[K in keyof TSchema as TSchema[K]['
|
|
114
|
+
export type FindTableInRelationalConfig<TSchema extends TablesRelationalConfig, TTargetTable extends Table, TTableName extends string = TTargetTable['_']['name']> = ExtractObjectValues<{
|
|
115
|
+
[K in keyof TSchema as TSchema[K]['tsName'] extends TTableName ? K : never]: TSchema[K];
|
|
101
116
|
}>;
|
|
102
|
-
export type
|
|
117
|
+
export type SQLOperator = {
|
|
118
|
+
sql: Operators['sql'];
|
|
119
|
+
};
|
|
120
|
+
export type DBQueryConfig<TRelationType extends 'one' | 'many' = 'one' | 'many', TSchema extends TablesRelationalConfig = TablesRelationalConfig, TTableConfig extends TableRelationalConfig = TableRelationalConfig> = {
|
|
121
|
+
config?: TTableConfig['relations'];
|
|
103
122
|
columns?: {
|
|
104
|
-
[K in keyof TTableConfig['columns']]?:
|
|
105
|
-
} |
|
|
123
|
+
[K in keyof TTableConfig['columns']]?: true;
|
|
124
|
+
} | {
|
|
125
|
+
[K in keyof TTableConfig['columns']]?: false;
|
|
126
|
+
};
|
|
106
127
|
with?: {
|
|
107
|
-
[K in keyof TTableConfig['relations']]?: true | DBQueryConfig<TTableConfig['relations'][K] extends One ? 'one' : 'many',
|
|
108
|
-
}
|
|
109
|
-
extras?: Record<string,
|
|
110
|
-
TTableConfig['columns']
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
} & (TRelationType extends 'many' ? {
|
|
115
|
-
where?: SQL | undefined | ((fields: Simplify<[
|
|
116
|
-
TTableConfig['columns']
|
|
117
|
-
] extends [never] ? {} : TTableConfig['columns']>, operators: Operators) => SQL | undefined);
|
|
128
|
+
[K in keyof TTableConfig['relations']]?: true | (TTableConfig['relations'][K] extends Relation ? DBQueryConfig<TTableConfig['relations'][K] extends One<string, string> ? 'one' : 'many', TSchema, FindTableInRelationalConfig<TSchema, TTableConfig['relations'][K]['targetTable']>> : never);
|
|
129
|
+
};
|
|
130
|
+
extras?: Record<string, SQLWrapper> | ((table: Simplify<AnyTable<TTableConfig> & {
|
|
131
|
+
[K in keyof TTableConfig['columns']]: TTableConfig['columns'][K];
|
|
132
|
+
}>, operators: SQLOperator) => Record<string, SQLWrapper>);
|
|
133
|
+
offset?: number | Placeholder;
|
|
134
|
+
where?: RelationsFilter<TTableConfig['columns']>;
|
|
118
135
|
orderBy?: ValueOrArray<AnyColumn | SQL> | ((fields: Simplify<[
|
|
119
136
|
TTableConfig['columns']
|
|
120
|
-
] extends [never] ? {} : TTableConfig['columns']>, operators: OrderByOperators) => ValueOrArray<AnyColumn | SQL>)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
} : {}) : {});
|
|
137
|
+
] extends [never] ? {} : TTableConfig['columns']>, operators: OrderByOperators) => ValueOrArray<AnyColumn | SQL>);
|
|
138
|
+
} & (TRelationType extends 'many' ? {
|
|
139
|
+
limit?: number | Placeholder;
|
|
140
|
+
} : {});
|
|
125
141
|
export interface TableRelationalConfig {
|
|
142
|
+
table: Table;
|
|
126
143
|
tsName: string;
|
|
127
144
|
dbName: string;
|
|
128
145
|
columns: Record<string, Column>;
|
|
129
|
-
relations: Record<string,
|
|
146
|
+
relations: Record<string, RelationsBuilderEntry>;
|
|
130
147
|
primaryKey: AnyColumn[];
|
|
131
|
-
schema
|
|
148
|
+
schema: string | undefined;
|
|
132
149
|
}
|
|
133
150
|
export type TablesRelationalConfig = Record<string, TableRelationalConfig>;
|
|
134
|
-
export interface RelationalSchemaConfig<
|
|
135
|
-
|
|
136
|
-
|
|
151
|
+
export interface RelationalSchemaConfig<TTablesConfig extends TablesRelationalConfig> {
|
|
152
|
+
tables: Record<string, Table>;
|
|
153
|
+
tablesConfig: TTablesConfig;
|
|
137
154
|
tableNamesMap: Record<string, string>;
|
|
138
155
|
}
|
|
139
|
-
|
|
140
|
-
[K in keyof
|
|
156
|
+
type NonUndefinedRecord<TRecord extends Record<string, any>> = {
|
|
157
|
+
[K in keyof TRecord as K extends undefined ? never : K]: TRecord[K];
|
|
158
|
+
};
|
|
159
|
+
export type ExtractTablesWithRelations<TRelations extends Relations, TTables extends Record<string, Table> = TRelations['tables']> = {
|
|
160
|
+
[K in keyof TTables]: {
|
|
161
|
+
table: TTables[K];
|
|
141
162
|
tsName: K & string;
|
|
142
|
-
dbName:
|
|
143
|
-
columns:
|
|
144
|
-
relations:
|
|
163
|
+
dbName: TTables[K]['_']['name'];
|
|
164
|
+
columns: TTables[K]['_']['columns'];
|
|
165
|
+
relations: K extends keyof TRelations['config'] ? TRelations['config'][K] extends Record<string, any> ? NonUndefinedRecord<TRelations['config'][K]> : Record<string, never> : Record<string, never>;
|
|
145
166
|
primaryKey: AnyColumn[];
|
|
146
|
-
|
|
167
|
+
schema: TTables[K]['_']['schema'];
|
|
168
|
+
};
|
|
147
169
|
};
|
|
148
170
|
export type ReturnTypeOrValue<T> = T extends (...args: any[]) => infer R ? R : T;
|
|
149
|
-
export type BuildRelationResult<
|
|
150
|
-
[K in NonUndefinedKeysOnly<TInclude> & keyof TRelations]: TRelations[K] extends infer TRel extends Relation ? BuildQueryResult<
|
|
171
|
+
export type BuildRelationResult<TConfig extends TablesRelationalConfig, TInclude, TRelations extends Record<string, RelationsBuilderEntry>> = {
|
|
172
|
+
[K in NonUndefinedKeysOnly<TInclude> & keyof TRelations]: TRelations[K] extends infer TRel extends Relation ? BuildQueryResult<TConfig, FindTableInRelationalConfig<TConfig, TRel['targetTable']>, Assume<TInclude[K], true | Record<string, unknown>>> extends infer TResult ? TRel extends One<string, string> ? TResult | (Equal<TRel['optional'], true> extends true ? null : never) : TResult[] : never : TRelations[K] extends AggregatedField<infer TData> ? TData : never;
|
|
151
173
|
};
|
|
152
174
|
export type NonUndefinedKeysOnly<T> = ExtractObjectValues<{
|
|
153
175
|
[K in keyof T as T[K] extends undefined ? never : K]: K;
|
|
@@ -157,59 +179,174 @@ export type BuildQueryResult<TSchema extends TablesRelationalConfig, TTableConfi
|
|
|
157
179
|
[K in keyof TFullSelection['columns']]: Equal<TFullSelection['columns'][K], true> extends true ? K : never;
|
|
158
180
|
}[keyof TFullSelection['columns']] & keyof TTableConfig['columns']]: TTableConfig['columns'][K];
|
|
159
181
|
}> : InferModelFromColumns<TTableConfig['columns']>) & (TFullSelection['extras'] extends Record<string, unknown> | ((...args: any[]) => Record<string, unknown>) ? {
|
|
160
|
-
[K in NonUndefinedKeysOnly<ReturnTypeOrValue<TFullSelection['extras']>>]: Assume<ReturnTypeOrValue<TFullSelection['extras']>[K],
|
|
182
|
+
[K in NonUndefinedKeysOnly<ReturnTypeOrValue<TFullSelection['extras']>>]: ReturnType<Assume<ReturnTypeOrValue<TFullSelection['extras']>[K], SQLWrapper>['getSQL']>['_']['type'];
|
|
161
183
|
} : {}) & (TFullSelection['with'] extends Record<string, unknown> ? BuildRelationResult<TSchema, TFullSelection['with'], TTableConfig['relations']> : {})> : never;
|
|
162
|
-
export interface RelationConfig<TTableName extends string, TForeignTableName extends string, TColumns extends AnyColumn<{
|
|
163
|
-
tableName: TTableName;
|
|
164
|
-
}>[]> {
|
|
165
|
-
relationName?: string;
|
|
166
|
-
fields: TColumns;
|
|
167
|
-
references: ColumnsWithTable<TTableName, TForeignTableName, TColumns>;
|
|
168
|
-
}
|
|
169
|
-
export declare function extractTablesRelationalConfig<TTables extends TablesRelationalConfig>(schema: Record<string, unknown>, configHelpers: (table: Table) => any): {
|
|
170
|
-
tables: TTables;
|
|
171
|
-
tableNamesMap: Record<string, string>;
|
|
172
|
-
};
|
|
173
|
-
export declare function relations<TTableName extends string, TRelations extends Record<string, Relation<any>>>(table: AnyTable<{
|
|
174
|
-
name: TTableName;
|
|
175
|
-
}>, relations: (helpers: TableRelationsHelpers<TTableName>) => TRelations): Relations<TTableName, TRelations>;
|
|
176
|
-
export declare function createOne<TTableName extends string>(sourceTable: Table): <TForeignTable extends Table, TColumns extends [AnyColumn<{
|
|
177
|
-
tableName: TTableName;
|
|
178
|
-
}>, ...AnyColumn<{
|
|
179
|
-
tableName: TTableName;
|
|
180
|
-
}>[]]>(table: TForeignTable, config?: RelationConfig<TTableName, TForeignTable["_"]["name"], TColumns>) => One<TForeignTable["_"]["name"], Equal<TColumns[number]["_"]["notNull"], true>>;
|
|
181
|
-
export declare function createMany(sourceTable: Table): <TForeignTable extends Table>(referencedTable: TForeignTable, config?: {
|
|
182
|
-
relationName: string;
|
|
183
|
-
}) => Many<TForeignTable["_"]["name"]>;
|
|
184
184
|
export interface NormalizedRelation {
|
|
185
185
|
fields: AnyColumn[];
|
|
186
186
|
references: AnyColumn[];
|
|
187
187
|
}
|
|
188
|
-
export
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
188
|
+
export interface BuildRelationalQueryResult {
|
|
189
|
+
selection: {
|
|
190
|
+
key: string;
|
|
191
|
+
field: Column | Table | SQL | SQL.Aliased | SQLWrapper | AggregatedField;
|
|
192
|
+
isArray?: boolean;
|
|
193
|
+
selection?: BuildRelationalQueryResult['selection'];
|
|
194
|
+
}[];
|
|
195
|
+
sql: SQL;
|
|
196
|
+
}
|
|
197
|
+
export declare function mapRelationalRow(row: Record<string, unknown>, buildQueryResultSelection: BuildRelationalQueryResult['selection'], mapColumnValue?: (value: unknown) => unknown,
|
|
198
|
+
/** Needed for SQLite as it returns JSON values as strings */
|
|
199
|
+
parseJson?: boolean): Record<string, unknown>;
|
|
200
|
+
export declare class RelationsBuilderTable<TTableName extends string = string> implements SQLWrapper {
|
|
201
|
+
static readonly [entityKind]: string;
|
|
202
|
+
readonly _: {
|
|
203
|
+
readonly name: TTableName;
|
|
204
|
+
readonly table: AnyTable<{
|
|
205
|
+
name: TTableName;
|
|
206
|
+
}>;
|
|
207
|
+
};
|
|
208
|
+
constructor(table: AnyTable<{
|
|
209
|
+
name: TTableName;
|
|
210
|
+
}>);
|
|
211
|
+
getSQL(): SQL;
|
|
212
|
+
}
|
|
213
|
+
export type RelationsBuilderColumnConfig<TTableName extends string = string, TData = unknown> = {
|
|
214
|
+
readonly tableName: TTableName;
|
|
215
|
+
readonly data: TData;
|
|
216
|
+
readonly column: AnyColumn<{
|
|
193
217
|
tableName: TTableName;
|
|
194
|
-
}
|
|
218
|
+
}>;
|
|
219
|
+
through?: RelationsBuilderColumnBase;
|
|
220
|
+
};
|
|
221
|
+
export type RelationsBuilderColumnBase<TTableName extends string = string, TData = unknown> = {
|
|
222
|
+
_: RelationsBuilderColumnConfig<TTableName, TData>;
|
|
223
|
+
} & SQLWrapper;
|
|
224
|
+
export declare class RelationsBuilderColumn<TTableName extends string = string, TData = unknown> implements SQLWrapper, RelationsBuilderColumnBase<TTableName, TData> {
|
|
225
|
+
static readonly [entityKind]: string;
|
|
226
|
+
readonly _: {
|
|
227
|
+
readonly tableName: TTableName;
|
|
228
|
+
readonly data: TData;
|
|
229
|
+
readonly column: AnyColumn<{
|
|
230
|
+
tableName: TTableName;
|
|
231
|
+
}>;
|
|
232
|
+
through?: RelationsBuilderColumnBase;
|
|
233
|
+
};
|
|
234
|
+
constructor(column: AnyColumn<{
|
|
195
235
|
tableName: TTableName;
|
|
196
|
-
}>
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
236
|
+
}>);
|
|
237
|
+
through(column: RelationsBuilderColumnBase<string, TData>): Omit<this, 'through'>;
|
|
238
|
+
getSQL(): SQL;
|
|
239
|
+
}
|
|
240
|
+
export type RelationFieldsFilterInternals<T> = {
|
|
241
|
+
eq?: T;
|
|
242
|
+
ne?: T;
|
|
243
|
+
gt?: T;
|
|
244
|
+
gte?: T;
|
|
245
|
+
lt?: T;
|
|
246
|
+
lte?: T;
|
|
247
|
+
in?: T[];
|
|
248
|
+
notIn?: T[];
|
|
249
|
+
like?: string;
|
|
250
|
+
ilike?: string;
|
|
251
|
+
notLike?: string;
|
|
252
|
+
notIlike?: string;
|
|
253
|
+
isNull?: true;
|
|
254
|
+
isNotNull?: true;
|
|
255
|
+
NOT?: RelationsFieldFilter<T>;
|
|
256
|
+
OR?: RelationsFieldFilter<T>[];
|
|
257
|
+
};
|
|
258
|
+
export type RelationsFieldFilter<T> = T | RelationFieldsFilterInternals<T | Placeholder>;
|
|
259
|
+
export type RelationsFilter<TColumns extends Record<string, Column>> = {
|
|
260
|
+
[K in keyof TColumns]?: RelationsFieldFilter<TColumns[K]['_']['data']>;
|
|
261
|
+
} & {
|
|
262
|
+
OR?: RelationsFilter<TColumns>[];
|
|
263
|
+
NOT?: RelationsFilter<TColumns>;
|
|
264
|
+
RAW?: (table: Simplify<AnyTable<{
|
|
265
|
+
columns: TColumns;
|
|
266
|
+
}> & {
|
|
267
|
+
[K in keyof TColumns]: TColumns[K];
|
|
268
|
+
}>, operators: Operators) => SQL;
|
|
269
|
+
};
|
|
270
|
+
export interface OneConfig<TSchema extends Record<string, Table>, TSourceColumns extends Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]]> | Readonly<RelationsBuilderColumnBase>, TTargetTableName extends string, TOptional extends boolean> {
|
|
271
|
+
from?: TSourceColumns | Writable<TSourceColumns>;
|
|
272
|
+
to?: TSourceColumns extends [RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]] ? {
|
|
273
|
+
[K in keyof TSourceColumns]: RelationsBuilderColumnBase<TTargetTableName>;
|
|
274
|
+
} : RelationsBuilderColumnBase<TTargetTableName>;
|
|
275
|
+
where?: TSourceColumns extends [RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]] ? RelationsFilter<TSchema[TSourceColumns[number]['_']['tableName']]['_']['columns']> : RelationsFilter<TSchema[Assume<TSourceColumns, RelationsBuilderColumnBase>['_']['tableName']]['_']['columns']>;
|
|
276
|
+
optional?: TOptional;
|
|
277
|
+
alias?: string;
|
|
278
|
+
}
|
|
279
|
+
export type AnyOneConfig = OneConfig<Record<string, Table>, Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]] | RelationsBuilderColumnBase<string, unknown>>, string, boolean>;
|
|
280
|
+
export interface ManyConfig<TSchema extends Record<string, Table>, TSourceColumns extends Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]]> | Readonly<RelationsBuilderColumnBase>, TTargetTableName extends string> {
|
|
281
|
+
from?: TSourceColumns;
|
|
282
|
+
to?: TSourceColumns extends [RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]] ? {
|
|
283
|
+
[K in keyof TSourceColumns]: RelationsBuilderColumnBase<TTargetTableName>;
|
|
284
|
+
} : RelationsBuilderColumnBase<TTargetTableName>;
|
|
285
|
+
where?: TSourceColumns extends [RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]] ? RelationsFilter<TSchema[TSourceColumns[number]['_']['tableName']]['_']['columns']> : RelationsFilter<TSchema[Assume<TSourceColumns, RelationsBuilderColumnBase>['_']['tableName']]['_']['columns']>;
|
|
286
|
+
alias?: string;
|
|
287
|
+
}
|
|
288
|
+
export type AnyManyConfig = ManyConfig<Record<string, Table>, Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]]> | Readonly<RelationsBuilderColumnBase>, string>;
|
|
289
|
+
export interface OneFn<TTables extends Record<string, Table>, TTargetTableName extends string> {
|
|
290
|
+
<TSourceColumns extends Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]]> | RelationsBuilderColumnBase = any, TOptional extends boolean = false>(config?: OneConfig<TTables, TSourceColumns, TTargetTableName, TOptional>): One<TSourceColumns extends [RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]] ? TSourceColumns[number]['_']['tableName'] : Assume<TSourceColumns, RelationsBuilderColumnBase>['_']['tableName'], TTargetTableName, TOptional>;
|
|
291
|
+
}
|
|
292
|
+
export interface ManyFn<TTables extends Record<string, Table>, TTargetTableName extends string> {
|
|
293
|
+
<TSourceColumns extends Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]]> | RelationsBuilderColumnBase = any>(config?: ManyConfig<TTables, TSourceColumns, TTargetTableName>): Many<TSourceColumns extends [RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]] ? TSourceColumns[number]['_']['tableName'] : Assume<TSourceColumns, RelationsBuilderColumnBase>['_']['tableName'], TTargetTableName>;
|
|
294
|
+
}
|
|
295
|
+
export declare class RelationsHelperStatic<TTables extends Record<string, Table>> {
|
|
296
|
+
static readonly [entityKind]: string;
|
|
297
|
+
readonly $brand: 'RelationsHelperStatic';
|
|
298
|
+
readonly _: {
|
|
299
|
+
readonly tables: TTables;
|
|
300
|
+
};
|
|
301
|
+
constructor(tables: TTables);
|
|
302
|
+
one: {
|
|
303
|
+
[K in keyof TTables]: OneFn<TTables, K & string>;
|
|
304
|
+
};
|
|
305
|
+
many: {
|
|
306
|
+
[K in keyof TTables]: ManyFn<TTables, K & string>;
|
|
307
|
+
};
|
|
308
|
+
aggs: {
|
|
309
|
+
count(): Count;
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
export type RelationsBuilder<TSchema extends Record<string, Table>> = {
|
|
313
|
+
[TTableName in keyof TSchema & string]: {
|
|
314
|
+
[TColumnName in keyof TSchema[TTableName]['_']['columns']]: RelationsBuilderColumn<TTableName, TSchema[TTableName]['_']['columns'][TColumnName]['_']['data']>;
|
|
315
|
+
} & RelationsBuilderTable<TTableName>;
|
|
316
|
+
} & RelationsHelperStatic<TSchema>;
|
|
317
|
+
export type RelationsBuilderConfig<TTables extends Record<string, Table>> = {
|
|
318
|
+
[TTableName in keyof TTables & string]?: Record<string, RelationsBuilderEntry<TTables, TTableName>>;
|
|
319
|
+
};
|
|
320
|
+
export type RelationsBuilderEntry<TTables extends Record<string, Table> = Record<string, Table>, TSourceTableName extends string = string> = Relation<TSourceTableName, keyof TTables & string> | AggregatedField<any>;
|
|
321
|
+
export type ExtractTablesFromSchema<TSchema extends Record<string, unknown>> = {
|
|
322
|
+
[K in keyof TSchema as TSchema[K] extends Table ? K : never]: TSchema[K] extends Table ? TSchema[K] : never;
|
|
323
|
+
};
|
|
324
|
+
export declare function createRelationsHelper<TSchema extends Record<string, unknown>, TTables extends Record<string, Table>>(schema: TSchema): RelationsBuilder<TTables>;
|
|
325
|
+
export declare function defineRelations<TSchema extends Record<string, unknown>, TConfig extends RelationsBuilderConfig<TTables>, TTables extends Record<string, Table> = ExtractTablesFromSchema<TSchema>>(schema: TSchema, relations: (helpers: RelationsBuilder<TTables>) => TConfig): Relations<TSchema, TTables, TConfig>;
|
|
326
|
+
export type WithContainer<TRelatedTables extends Record<string, Table>> = {
|
|
327
|
+
with?: {
|
|
328
|
+
[K in keyof TRelatedTables]?: boolean | DBQueryConfig;
|
|
329
|
+
};
|
|
330
|
+
};
|
|
331
|
+
export type ColumnWithTSName = {
|
|
332
|
+
column: Column;
|
|
333
|
+
tsName: string;
|
|
334
|
+
};
|
|
335
|
+
export type RelationsOrder<TColumns extends Record<string, Column>> = {
|
|
336
|
+
[K in keyof TColumns]?: 'asc' | 'desc';
|
|
337
|
+
};
|
|
338
|
+
export type OrderBy = ValueOrArray<AnyColumn | SQL> | ((fields: Record<string, Column>, operators: OrderByOperators) => ValueOrArray<AnyColumn | SQL>);
|
|
339
|
+
export type Extras = Record<string, SQL> | ((fields: Record<string, Column>, operators: SQLOperator) => Record<string, SQL>);
|
|
340
|
+
export declare function relationsFilterToSQL(table: Table, filter: RelationsFilter<Record<string, Column>>): SQL | undefined;
|
|
341
|
+
export declare function relationsOrderToSQL(table: Table, orders: ValueOrArray<AnyColumn | SQL> | ((fields: Record<string, Column>, operators: OrderByOperators) => ValueOrArray<AnyColumn | SQL>)): SQL | undefined;
|
|
342
|
+
export declare function relationExtrasToSQL(table: Table, extras: Record<string, SQLWrapper> | ((columns: Record<string, Column>, operators: SQLOperator) => Record<string, SQLWrapper>)): {
|
|
343
|
+
sql: SQL<unknown> | undefined;
|
|
204
344
|
selection: {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
isJson: boolean;
|
|
210
|
-
isExtra?: boolean;
|
|
211
|
-
selection: BuildRelationalQueryResult<TTable>['selection'];
|
|
345
|
+
key: string;
|
|
346
|
+
field: Column | Table | SQL | SQL.Aliased | SQLWrapper | AggregatedField;
|
|
347
|
+
isArray?: boolean;
|
|
348
|
+
selection?: BuildRelationalQueryResult["selection"];
|
|
212
349
|
}[];
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
export
|
|
350
|
+
};
|
|
351
|
+
export declare function relationToSQL(relation: Relation, sourceTable: Table, targetTable: Table): SQL | undefined;
|
|
352
|
+
export {};
|