drizzle-orm 0.40.0 → 1.0.0-beta.1-cacd055
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-sql/driver.cjs +16 -5
- package/bun-sql/driver.cjs.map +1 -1
- package/bun-sql/driver.d.cts +7 -6
- package/bun-sql/driver.d.ts +7 -6
- package/bun-sql/driver.js +6 -8
- package/bun-sql/driver.js.map +1 -1
- package/bun-sql/migrator.cjs.map +1 -1
- package/bun-sql/migrator.d.cts +2 -1
- package/bun-sql/migrator.d.ts +2 -1
- package/bun-sql/migrator.js.map +1 -1
- package/bun-sql/session.cjs +50 -6
- package/bun-sql/session.cjs.map +1 -1
- package/bun-sql/session.d.cts +14 -9
- package/bun-sql/session.d.ts +14 -9
- package/bun-sql/session.js +50 -6
- package/bun-sql/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/casing.cjs +3 -0
- package/casing.cjs.map +1 -1
- package/casing.d.cts +1 -1
- package/casing.d.ts +1 -1
- package/casing.js +4 -1
- package/casing.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 +50 -8
- 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 +50 -8
- 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/gel/driver.cjs +17 -6
- package/gel/driver.cjs.map +1 -1
- package/gel/driver.d.cts +8 -7
- package/gel/driver.d.ts +8 -7
- package/gel/driver.js +7 -9
- package/gel/driver.js.map +1 -1
- package/gel/migrator.cjs.map +1 -1
- package/gel/migrator.d.cts +1 -1
- package/gel/migrator.d.ts +1 -1
- package/gel/migrator.js.map +1 -1
- package/gel/session.cjs +46 -4
- package/gel/session.cjs.map +1 -1
- package/gel/session.d.cts +13 -8
- package/gel/session.d.ts +13 -8
- package/gel/session.js +46 -4
- package/gel/session.js.map +1 -1
- package/gel-core/columns/timestamptz.cjs +5 -0
- package/gel-core/columns/timestamptz.cjs.map +1 -1
- package/gel-core/columns/timestamptz.d.cts +1 -0
- package/gel-core/columns/timestamptz.d.ts +1 -0
- package/gel-core/columns/timestamptz.js +5 -0
- package/gel-core/columns/timestamptz.js.map +1 -1
- package/gel-core/db.cjs +28 -4
- package/gel-core/db.cjs.map +1 -1
- package/gel-core/db.d.cts +16 -9
- package/gel-core/db.d.ts +16 -9
- package/gel-core/db.js +27 -3
- package/gel-core/db.js.map +1 -1
- package/gel-core/dialect.cjs +172 -488
- package/gel-core/dialect.cjs.map +1 -1
- package/gel-core/dialect.d.cts +26 -8
- package/gel-core/dialect.d.ts +26 -8
- package/gel-core/dialect.js +170 -495
- package/gel-core/dialect.js.map +1 -1
- package/gel-core/query-builders/_query.cjs +149 -0
- package/gel-core/query-builders/_query.cjs.map +1 -0
- package/gel-core/query-builders/_query.d.cts +46 -0
- package/gel-core/query-builders/_query.d.ts +46 -0
- package/gel-core/query-builders/_query.js +114 -0
- package/gel-core/query-builders/_query.js.map +1 -0
- package/gel-core/query-builders/query.cjs +27 -24
- package/gel-core/query-builders/query.cjs.map +1 -1
- package/gel-core/query-builders/query.d.cts +9 -8
- package/gel-core/query-builders/query.d.ts +9 -8
- package/gel-core/query-builders/query.js +26 -23
- package/gel-core/query-builders/query.js.map +1 -1
- package/gel-core/session.cjs +3 -2
- package/gel-core/session.cjs.map +1 -1
- package/gel-core/session.d.cts +9 -6
- package/gel-core/session.d.ts +9 -6
- package/gel-core/session.js +3 -2
- package/gel-core/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 +56 -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 +56 -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/columns/binary.cjs +11 -0
- package/mysql-core/columns/binary.cjs.map +1 -1
- package/mysql-core/columns/binary.d.cts +1 -0
- package/mysql-core/columns/binary.d.ts +1 -0
- package/mysql-core/columns/binary.js +11 -0
- package/mysql-core/columns/binary.js.map +1 -1
- package/mysql-core/columns/decimal.cjs +5 -0
- package/mysql-core/columns/decimal.cjs.map +1 -1
- package/mysql-core/columns/decimal.d.cts +1 -0
- package/mysql-core/columns/decimal.d.ts +1 -0
- package/mysql-core/columns/decimal.js +5 -0
- package/mysql-core/columns/decimal.js.map +1 -1
- package/mysql-core/columns/float.cjs +6 -0
- package/mysql-core/columns/float.cjs.map +1 -1
- package/mysql-core/columns/float.d.cts +1 -0
- package/mysql-core/columns/float.d.ts +1 -0
- package/mysql-core/columns/float.js +6 -0
- package/mysql-core/columns/float.js.map +1 -1
- package/mysql-core/columns/varbinary.cjs +11 -0
- package/mysql-core/columns/varbinary.cjs.map +1 -1
- package/mysql-core/columns/varbinary.d.cts +1 -0
- package/mysql-core/columns/varbinary.d.ts +1 -0
- package/mysql-core/columns/varbinary.js +11 -0
- package/mysql-core/columns/varbinary.js.map +1 -1
- package/mysql-core/columns/varchar.cjs.map +1 -1
- package/mysql-core/columns/varchar.d.cts +1 -1
- package/mysql-core/columns/varchar.d.ts +1 -1
- package/mysql-core/columns/varchar.js.map +1 -1
- package/mysql-core/db.cjs +30 -6
- 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 +29 -5
- package/mysql-core/db.js.map +1 -1
- package/mysql-core/dialect.cjs +208 -15
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +36 -13
- package/mysql-core/dialect.d.ts +36 -13
- package/mysql-core/dialect.js +206 -22
- 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-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 +27 -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 +27 -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 +30 -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 +30 -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 +64 -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 +64 -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 +69 -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 +69 -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 +111 -51
- package/pg-core/columns/numeric.cjs +5 -0
- package/pg-core/columns/numeric.cjs.map +1 -1
- package/pg-core/columns/numeric.d.cts +1 -0
- package/pg-core/columns/numeric.d.ts +1 -0
- package/pg-core/columns/numeric.js +5 -0
- package/pg-core/columns/numeric.js.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.cjs +2 -0
- package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.d.cts +1 -1
- package/pg-core/columns/postgis_extension/geometry.d.ts +1 -1
- package/pg-core/columns/postgis_extension/geometry.js +2 -0
- package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
- package/pg-core/db.cjs +32 -5
- 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 +31 -4
- package/pg-core/db.js.map +1 -1
- package/pg-core/dialect.cjs +190 -488
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.d.cts +27 -8
- package/pg-core/dialect.d.ts +27 -8
- package/pg-core/dialect.js +189 -495
- 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-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 +48 -5
- 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 +48 -5
- 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 +45 -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 +45 -5
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +7 -6
- 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 +7 -9
- 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 +657 -245
- package/relations.cjs.map +1 -1
- package/relations.d.cts +339 -140
- package/relations.d.ts +339 -140
- package/relations.js +643 -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/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/expressions/conditions.cjs.map +1 -1
- package/sql/expressions/conditions.d.cts +4 -4
- package/sql/expressions/conditions.d.ts +4 -4
- package/sql/expressions/conditions.js.map +1 -1
- package/sql/sql.cjs +21 -0
- 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 +22 -1
- 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 +71 -36
- package/sql-js/session.cjs.map +1 -1
- package/sql-js/session.d.cts +16 -13
- package/sql-js/session.d.ts +16 -13
- package/sql-js/session.js +71 -36
- package/sql-js/session.js.map +1 -1
- package/sqlite-core/columns/blob.cjs +12 -0
- package/sqlite-core/columns/blob.cjs.map +1 -1
- package/sqlite-core/columns/blob.d.cts +2 -1
- package/sqlite-core/columns/blob.d.ts +2 -1
- package/sqlite-core/columns/blob.js +12 -0
- package/sqlite-core/columns/blob.js.map +1 -1
- package/sqlite-core/db.cjs +39 -12
- package/sqlite-core/db.cjs.map +1 -1
- package/sqlite-core/db.d.cts +16 -8
- package/sqlite-core/db.d.ts +16 -8
- package/sqlite-core/db.js +38 -11
- package/sqlite-core/db.js.map +1 -1
- package/sqlite-core/dialect.cjs +193 -7
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.d.cts +31 -9
- package/sqlite-core/dialect.d.ts +31 -9
- package/sqlite-core/dialect.js +191 -14
- 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 +56 -35
- package/sqlite-core/query-builders/query.cjs.map +1 -1
- package/sqlite-core/query-builders/query.d.cts +18 -17
- package/sqlite-core/query-builders/query.d.ts +18 -17
- package/sqlite-core/query-builders/query.js +56 -35
- 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 +15 -7
- package/sqlite-core/session.d.ts +15 -7
- package/sqlite-core/session.js +6 -2
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-proxy/driver.cjs +23 -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 +13 -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 +50 -6
- 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 +50 -6
- package/sqlite-proxy/session.js.map +1 -1
- package/table.cjs.map +1 -1
- package/table.d.cts +2 -2
- package/table.d.ts +2 -2
- 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 +58 -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 +58 -4
- package/vercel-postgres/session.js.map +1 -1
- package/version.cjs +2 -2
- package/version.cjs.map +1 -1
- package/version.d.cts +2 -2
- package/version.d.ts +2 -2
- package/version.js +2 -2
- package/version.js.map +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
|
@@ -1,71 +1,90 @@
|
|
|
1
|
-
import { type AnyTable,
|
|
1
|
+
import { type AnyTable, Table } from "./table.js";
|
|
2
|
+
import type { CasingCache } from "./casing.js";
|
|
2
3
|
import { type AnyColumn, Column } from "./column.js";
|
|
3
4
|
import { entityKind } from "./entity.js";
|
|
4
5
|
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 { Assume,
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
readonly
|
|
6
|
+
import { Placeholder, SQL, sql, type SQLWrapper, View } from "./sql/sql.js";
|
|
7
|
+
import type { Assume, DrizzleTypeError, Equal, Simplify, ValueOrArray } from "./utils.js";
|
|
8
|
+
export type FieldValue = Column | SQLWrapper | SQL.Aliased | SQL;
|
|
9
|
+
export type FieldSelection = Record<string, FieldValue>;
|
|
10
|
+
export declare class Relations<TSchema extends Record<string, unknown> = Record<string, unknown>, TTables extends Record<string, Table | View> = Record<string, Table | View>, TConfig extends RelationsBuilderConfig<TTables> = RelationsBuilderConfig<TTables>> {
|
|
11
|
+
readonly schema: TSchema;
|
|
12
|
+
readonly tables: TTables;
|
|
13
|
+
readonly config: TConfig;
|
|
14
|
+
static readonly [entityKind]: string;
|
|
15
|
+
readonly $brand: 'RelationsV2';
|
|
16
|
+
/** table DB name -> schema table key */
|
|
17
|
+
readonly tableNamesMap: Record<string, string>;
|
|
18
|
+
readonly tablesConfig: TablesRelationalConfig;
|
|
19
|
+
constructor(schema: TSchema, tables: TTables, config: TConfig);
|
|
20
|
+
}
|
|
21
|
+
export type EmptyRelations = Relations<Record<string, never>, Record<string, never>, Record<string, never>>;
|
|
22
|
+
export type AnyRelations = Relations<Record<string, any>, Record<string, any>, Record<string, any>>;
|
|
23
|
+
export declare abstract class Relation<TSourceTableName extends string = string, TTargetTableName extends string = string> {
|
|
24
|
+
readonly targetTable: AnyTable<{
|
|
25
|
+
name: TTargetTableName;
|
|
26
|
+
}> | View<TTargetTableName>;
|
|
13
27
|
static readonly [entityKind]: string;
|
|
14
|
-
readonly $brand: '
|
|
15
|
-
readonly referencedTableName: TTableName;
|
|
28
|
+
readonly $brand: 'RelationV2';
|
|
16
29
|
fieldName: string;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
30
|
+
sourceColumns: AnyColumn<{
|
|
31
|
+
tableName: TSourceTableName;
|
|
32
|
+
}>[];
|
|
33
|
+
targetColumns: AnyColumn<{
|
|
34
|
+
tableName: TTargetTableName;
|
|
35
|
+
}>[];
|
|
36
|
+
alias: string | undefined;
|
|
37
|
+
where: AnyTableFilter | undefined;
|
|
38
|
+
sourceTable: AnyTable<{
|
|
39
|
+
name: TSourceTableName;
|
|
40
|
+
}> | View<TSourceTableName>;
|
|
41
|
+
through?: {
|
|
42
|
+
source: RelationsBuilderColumnBase[];
|
|
43
|
+
target: RelationsBuilderColumnBase[];
|
|
44
|
+
};
|
|
45
|
+
throughTable?: Table | View;
|
|
46
|
+
isReversed?: boolean;
|
|
47
|
+
constructor(targetTable: AnyTable<{
|
|
48
|
+
name: TTargetTableName;
|
|
49
|
+
}> | View<TTargetTableName>);
|
|
21
50
|
}
|
|
22
|
-
export declare class
|
|
23
|
-
readonly table: AnyTable<{
|
|
24
|
-
name: TTableName;
|
|
25
|
-
}>;
|
|
26
|
-
readonly config: (helpers: TableRelationsHelpers<TTableName>) => TConfig;
|
|
51
|
+
export declare class One<TSourceTableName extends string, TTargetTableName extends string, TOptional extends boolean = boolean> extends Relation<TSourceTableName, TTargetTableName> {
|
|
27
52
|
static readonly [entityKind]: string;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
53
|
+
protected $relationBrand: 'OneV2';
|
|
54
|
+
readonly optional: TOptional;
|
|
55
|
+
constructor(tables: Record<string, Table | View>, targetTable: AnyTable<{
|
|
56
|
+
name: TTargetTableName;
|
|
57
|
+
}> | View<TTargetTableName>, config: AnyOneConfig | undefined);
|
|
32
58
|
}
|
|
33
|
-
export declare class
|
|
34
|
-
readonly config:
|
|
35
|
-
tableName: TTableName;
|
|
36
|
-
}>[]> | undefined;
|
|
37
|
-
readonly isNullable: TIsNullable;
|
|
59
|
+
export declare class Many<TSourceTableName extends string, TTargetTableName extends string> extends Relation<TSourceTableName, TTargetTableName> {
|
|
60
|
+
readonly config: AnyManyConfig | undefined;
|
|
38
61
|
static readonly [entityKind]: string;
|
|
39
|
-
protected $relationBrand: '
|
|
40
|
-
constructor(
|
|
41
|
-
name:
|
|
42
|
-
}>, config:
|
|
43
|
-
tableName: TTableName;
|
|
44
|
-
}>[]> | undefined, isNullable: TIsNullable);
|
|
45
|
-
withFieldName(fieldName: string): One<TTableName>;
|
|
62
|
+
protected $relationBrand: 'ManyV2';
|
|
63
|
+
constructor(tables: Record<string, Table | View>, targetTable: AnyTable<{
|
|
64
|
+
name: TTargetTableName;
|
|
65
|
+
}> | View<TTargetTableName>, config: AnyManyConfig | undefined);
|
|
46
66
|
}
|
|
47
|
-
export declare class
|
|
48
|
-
readonly config: {
|
|
49
|
-
relationName: string;
|
|
50
|
-
} | undefined;
|
|
67
|
+
export declare abstract class AggregatedField<T = unknown> implements SQLWrapper<T> {
|
|
51
68
|
static readonly [entityKind]: string;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
export
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
69
|
+
readonly $brand: 'AggregatedField';
|
|
70
|
+
readonly _: {
|
|
71
|
+
readonly data: T;
|
|
72
|
+
};
|
|
73
|
+
protected table: Table | View | undefined;
|
|
74
|
+
onTable(table: Table | View): this;
|
|
75
|
+
abstract getSQL(): SQL<T>;
|
|
76
|
+
}
|
|
77
|
+
export declare class Count extends AggregatedField<number> {
|
|
78
|
+
static readonly [entityKind]: string;
|
|
79
|
+
protected $aggregatedFieldBrand: 'Count';
|
|
80
|
+
private query;
|
|
81
|
+
getSQL(): SQL<number>;
|
|
82
|
+
}
|
|
64
83
|
export type ExtractObjectValues<T> = T[keyof T];
|
|
65
84
|
export type ExtractRelationsFromTableExtraConfigSchema<TConfig extends unknown[]> = ExtractObjectValues<{
|
|
66
85
|
[K in keyof TConfig as TConfig[K] extends Relations<any> ? K : never]: TConfig[K] extends Relations<infer TRelationConfig> ? TRelationConfig : never;
|
|
67
86
|
}>;
|
|
68
|
-
export declare
|
|
87
|
+
export declare const operators: {
|
|
69
88
|
and: typeof and;
|
|
70
89
|
between: typeof between;
|
|
71
90
|
eq: import("./expressions.js").BinaryOperator;
|
|
@@ -89,127 +108,307 @@ export declare function getOperators(): {
|
|
|
89
108
|
or: typeof or;
|
|
90
109
|
sql: typeof sql;
|
|
91
110
|
};
|
|
92
|
-
export type Operators =
|
|
111
|
+
export type Operators = typeof operators;
|
|
112
|
+
export declare const orderByOperators: {
|
|
113
|
+
sql: typeof sql;
|
|
114
|
+
asc: typeof asc;
|
|
115
|
+
desc: typeof desc;
|
|
116
|
+
};
|
|
93
117
|
export declare function getOrderByOperators(): {
|
|
94
118
|
sql: typeof sql;
|
|
95
119
|
asc: typeof asc;
|
|
96
120
|
desc: typeof desc;
|
|
97
121
|
};
|
|
98
122
|
export type OrderByOperators = ReturnType<typeof getOrderByOperators>;
|
|
99
|
-
export type
|
|
100
|
-
[K in keyof TSchema as TSchema[K]['
|
|
123
|
+
export type FindTableInRelationalConfig<TSchema extends TablesRelationalConfig, TTargetTable extends Table | View, TTableName extends string = TTargetTable['_']['name']> = ExtractObjectValues<{
|
|
124
|
+
[K in keyof TSchema as TSchema[K]['tsName'] extends TTableName ? K : never]: TSchema[K];
|
|
101
125
|
}>;
|
|
102
|
-
export
|
|
126
|
+
export interface SQLOperator {
|
|
127
|
+
sql: Operators['sql'];
|
|
128
|
+
}
|
|
129
|
+
export type DBQueryConfig<TRelationType extends 'one' | 'many' = 'one' | 'many', TSchema extends TablesRelationalConfig = TablesRelationalConfig, TTableConfig extends TableRelationalConfig = TableRelationalConfig, TIsNested extends boolean = false> = (TTableConfig['relations'] extends Record<string, never> ? {} : {
|
|
130
|
+
with?: {
|
|
131
|
+
[K in keyof TTableConfig['relations']]?: boolean | (TTableConfig['relations'][K] extends Relation ? DBQueryConfig<TTableConfig['relations'][K] extends One<string, string> ? 'one' : 'many', TSchema, FindTableInRelationalConfig<TSchema, TTableConfig['relations'][K]['targetTable']>, true> : never) | undefined;
|
|
132
|
+
} | undefined;
|
|
133
|
+
}) & {
|
|
134
|
+
columns?: {
|
|
135
|
+
[K in keyof TTableConfig['columns']]?: boolean | undefined;
|
|
136
|
+
} | undefined;
|
|
137
|
+
where?: RelationsFilter<TTableConfig, TSchema> | undefined;
|
|
138
|
+
extras?: Record<string, SQLWrapper | ((table: TTableConfig['table'], operators: SQLOperator) => SQLWrapper)> | undefined;
|
|
139
|
+
} & (`${TRelationType}_${TIsNested}` extends 'one_true' ? {} : {
|
|
140
|
+
orderBy?: {
|
|
141
|
+
[K in keyof TTableConfig['columns']]?: 'asc' | 'desc' | undefined;
|
|
142
|
+
} | ((table: TTableConfig['table'], operators: OrderByOperators) => ValueOrArray<AnyColumn | SQL>) | undefined;
|
|
143
|
+
offset?: number | Placeholder | undefined;
|
|
144
|
+
}) & (TRelationType extends 'many' ? {
|
|
145
|
+
limit?: number | Placeholder | undefined;
|
|
146
|
+
} : {});
|
|
147
|
+
export type AnyDBQueryConfig = {
|
|
103
148
|
columns?: {
|
|
104
|
-
[K in keyof
|
|
149
|
+
[K in keyof TableRelationalConfig['columns']]?: boolean | undefined;
|
|
105
150
|
} | undefined;
|
|
151
|
+
where?: RelationsFilter<TableRelationalConfig, TablesRelationalConfig> | undefined;
|
|
152
|
+
extras?: Record<string, SQLWrapper | ((table: TableRelationalConfig['table'], operators: SQLOperator) => SQLWrapper)> | undefined;
|
|
106
153
|
with?: {
|
|
107
|
-
[K in keyof
|
|
154
|
+
[K in keyof TableRelationalConfig['relations']]?: boolean | (TableRelationalConfig['relations'][K] extends Relation ? DBQueryConfig<TableRelationalConfig['relations'][K] extends One<string, string> ? 'one' : 'many', TablesRelationalConfig, FindTableInRelationalConfig<TablesRelationalConfig, TableRelationalConfig['relations'][K]['targetTable']>> : never) | undefined;
|
|
108
155
|
} | undefined;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
sql: Operators['sql'];
|
|
113
|
-
}) => Record<string, SQL.Aliased>) | undefined;
|
|
114
|
-
} & (TRelationType extends 'many' ? {
|
|
115
|
-
where?: SQL | undefined | ((fields: Simplify<[
|
|
116
|
-
TTableConfig['columns']
|
|
117
|
-
] extends [never] ? {} : TTableConfig['columns']>, operators: Operators) => SQL | undefined);
|
|
118
|
-
orderBy?: ValueOrArray<AnyColumn | SQL> | ((fields: Simplify<[
|
|
119
|
-
TTableConfig['columns']
|
|
120
|
-
] extends [never] ? {} : TTableConfig['columns']>, operators: OrderByOperators) => ValueOrArray<AnyColumn | SQL>) | undefined;
|
|
121
|
-
limit?: number | Placeholder | undefined;
|
|
122
|
-
} & (TIsRoot extends true ? {
|
|
156
|
+
orderBy?: {
|
|
157
|
+
[K in keyof TableRelationalConfig['columns']]?: 'asc' | 'desc' | undefined;
|
|
158
|
+
} | ((table: TableRelationalConfig['table'], operators: OrderByOperators) => ValueOrArray<AnyColumn | SQL>) | undefined;
|
|
123
159
|
offset?: number | Placeholder | undefined;
|
|
124
|
-
|
|
160
|
+
limit?: number | Placeholder | undefined;
|
|
161
|
+
};
|
|
125
162
|
export interface TableRelationalConfig {
|
|
163
|
+
table: Table | View;
|
|
126
164
|
tsName: string;
|
|
127
165
|
dbName: string;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
schema?: string;
|
|
166
|
+
schema: string | undefined;
|
|
167
|
+
columns: FieldSelection;
|
|
168
|
+
relations: Record<string, RelationsBuilderEntry>;
|
|
132
169
|
}
|
|
133
170
|
export type TablesRelationalConfig = Record<string, TableRelationalConfig>;
|
|
134
|
-
export interface RelationalSchemaConfig<
|
|
135
|
-
|
|
136
|
-
|
|
171
|
+
export interface RelationalSchemaConfig<TTablesConfig extends TablesRelationalConfig> {
|
|
172
|
+
tables: Record<string, Table>;
|
|
173
|
+
tablesConfig: TTablesConfig;
|
|
137
174
|
tableNamesMap: Record<string, string>;
|
|
138
175
|
}
|
|
139
|
-
|
|
140
|
-
[K in keyof
|
|
176
|
+
type NonUndefinedRecord<TRecord extends Record<string, any>> = {
|
|
177
|
+
[K in keyof TRecord as K extends undefined ? never : K]: TRecord[K];
|
|
178
|
+
};
|
|
179
|
+
export type ExtractTablesWithRelations<TRelations extends Relations, TTables extends Record<string, Table | View> = TRelations['tables']> = {
|
|
180
|
+
[K in keyof TTables]: {
|
|
181
|
+
table: TTables[K];
|
|
141
182
|
tsName: K & string;
|
|
142
|
-
dbName:
|
|
143
|
-
columns:
|
|
144
|
-
relations:
|
|
145
|
-
|
|
146
|
-
}
|
|
183
|
+
dbName: TTables[K]['_']['name'];
|
|
184
|
+
columns: TTables[K] extends Table ? TTables[K]['_']['columns'] : Assume<TTables[K], View>['_']['selectedFields'];
|
|
185
|
+
relations: K extends keyof TRelations['config'] ? TRelations['config'][K] extends Record<string, any> ? NonUndefinedRecord<TRelations['config'][K]> : Record<string, never> : Record<string, never>;
|
|
186
|
+
schema: TTables[K] extends Table ? TTables[K]['_']['schema'] : string | undefined;
|
|
187
|
+
};
|
|
147
188
|
};
|
|
148
189
|
export type ReturnTypeOrValue<T> = T extends (...args: any[]) => infer R ? R : T;
|
|
149
|
-
export type BuildRelationResult<
|
|
150
|
-
[K in
|
|
190
|
+
export type BuildRelationResult<TConfig extends TablesRelationalConfig, TInclude, TRelations extends Record<string, RelationsBuilderEntry>> = {
|
|
191
|
+
[K in TruthyKeysOnly<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 : TInclude[K] extends Record<string, unknown> ? TInclude[K]['where'] extends Record<string, any> ? null : never : never) : TResult[] : never : TRelations[K] extends AggregatedField<infer TData> ? TData : never;
|
|
151
192
|
};
|
|
152
193
|
export type NonUndefinedKeysOnly<T> = ExtractObjectValues<{
|
|
153
194
|
[K in keyof T as T[K] extends undefined ? never : K]: K;
|
|
154
195
|
}> & keyof T;
|
|
155
|
-
export type
|
|
156
|
-
[K in
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
|
|
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>;
|
|
196
|
+
export type TruthyKeysOnly<T> = ExtractObjectValues<{
|
|
197
|
+
[K in keyof T as T[K] extends undefined | false ? never : K]: K;
|
|
198
|
+
}> & keyof T;
|
|
199
|
+
export type InferRelationalQueryTableResult<TTable extends Table | View, TRawSelection extends Record<string, unknown>, TSelectedFields extends Record<string, unknown> | 'Full' = 'Full', TFilteredSelection extends Record<string, unknown> = TSelectedFields extends 'Full' ? TRawSelection : {
|
|
200
|
+
[K in Equal<Exclude<TSelectedFields[keyof TSelectedFields & keyof TRawSelection], undefined>, false> extends true ? Exclude<keyof TRawSelection, NonUndefinedKeysOnly<TSelectedFields>> : {
|
|
201
|
+
[K in keyof TSelectedFields]: Equal<TSelectedFields[K], true> extends true ? K : never;
|
|
202
|
+
}[keyof TSelectedFields] & keyof TRawSelection]: TRawSelection[K];
|
|
203
|
+
}> = {
|
|
204
|
+
[K in keyof TFilteredSelection]: TTable['$inferSelect'][Assume<K, keyof TTable['$inferSelect']>];
|
|
172
205
|
};
|
|
173
|
-
export
|
|
174
|
-
|
|
175
|
-
}
|
|
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"]>;
|
|
206
|
+
export type BuildQueryResult<TSchema extends TablesRelationalConfig, TTableConfig extends TableRelationalConfig, TFullSelection extends true | Record<string, unknown>> = Equal<TFullSelection, true> extends true ? Simplify<InferRelationalQueryTableResult<TTableConfig['table'], TTableConfig['columns']>> : TFullSelection extends Record<string, unknown> ? Simplify<(InferRelationalQueryTableResult<TTableConfig['table'], TTableConfig['columns'], TFullSelection['columns'] extends Record<string, unknown> ? TFullSelection['columns'] : 'Full'>) & (TFullSelection['extras'] extends Record<string, SQLWrapper | ((...args: any[]) => SQLWrapper)> ? {
|
|
207
|
+
[K in NonUndefinedKeysOnly<ReturnTypeOrValue<TFullSelection['extras']>>]: ReturnType<Assume<ReturnTypeOrValue<TFullSelection['extras'][K]>, SQLWrapper>['getSQL']>['_']['type'];
|
|
208
|
+
} : {}) & (TFullSelection['with'] extends Record<string, unknown> ? BuildRelationResult<TSchema, TFullSelection['with'], TTableConfig['relations']> : {})> : never;
|
|
184
209
|
export interface NormalizedRelation {
|
|
185
210
|
fields: AnyColumn[];
|
|
186
211
|
references: AnyColumn[];
|
|
187
212
|
}
|
|
188
|
-
export
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
213
|
+
export interface BuildRelationalQueryResult {
|
|
214
|
+
selection: {
|
|
215
|
+
key: string;
|
|
216
|
+
field: Column | Table | SQL | SQL.Aliased | SQLWrapper | AggregatedField;
|
|
217
|
+
isArray?: boolean;
|
|
218
|
+
selection?: BuildRelationalQueryResult['selection'];
|
|
219
|
+
isOptional?: boolean;
|
|
220
|
+
}[];
|
|
221
|
+
sql: SQL;
|
|
222
|
+
}
|
|
223
|
+
export declare function mapRelationalRow(row: Record<string, unknown>, buildQueryResultSelection: BuildRelationalQueryResult['selection'], mapColumnValue?: (value: unknown) => unknown,
|
|
224
|
+
/** Needed for SQLite as it returns JSON values as strings */
|
|
225
|
+
parseJson?: boolean, path?: string): Record<string, unknown>;
|
|
226
|
+
export declare class RelationsBuilderTable<TTableName extends string = string> {
|
|
227
|
+
static readonly [entityKind]: string;
|
|
228
|
+
readonly _: {
|
|
229
|
+
readonly name: TTableName;
|
|
230
|
+
readonly table: AnyTable<{
|
|
231
|
+
name: TTableName;
|
|
232
|
+
}> | View<TTableName>;
|
|
233
|
+
};
|
|
234
|
+
constructor(table: AnyTable<{
|
|
235
|
+
name: TTableName;
|
|
236
|
+
}> | View<TTableName>, key: string);
|
|
237
|
+
}
|
|
238
|
+
export interface RelationsBuilderColumnConfig<TTableName extends string = string, TData = unknown> {
|
|
239
|
+
readonly tableName: TTableName;
|
|
240
|
+
readonly data: TData;
|
|
241
|
+
readonly column: AnyColumn<{
|
|
242
|
+
tableName: TTableName;
|
|
243
|
+
}> | SQL<TData> | SQLWrapper<TData> | SQL.Aliased<TData>;
|
|
244
|
+
readonly through?: RelationsBuilderColumnBase;
|
|
245
|
+
readonly key: string;
|
|
246
|
+
}
|
|
247
|
+
export type RelationsBuilderColumnBase<TTableName extends string = string, TData = unknown> = {
|
|
248
|
+
_: RelationsBuilderColumnConfig<TTableName, TData>;
|
|
249
|
+
};
|
|
250
|
+
export declare class RelationsBuilderColumn<TTableName extends string = string, TData = unknown> implements RelationsBuilderColumnBase<TTableName, TData> {
|
|
251
|
+
static readonly [entityKind]: string;
|
|
252
|
+
readonly _: {
|
|
253
|
+
readonly tableName: TTableName;
|
|
254
|
+
readonly data: TData;
|
|
255
|
+
readonly column: AnyColumn<{
|
|
256
|
+
tableName: TTableName;
|
|
257
|
+
}> | SQL<TData> | SQLWrapper<TData> | SQL.Aliased<TData>;
|
|
258
|
+
readonly key: string;
|
|
259
|
+
};
|
|
260
|
+
constructor(column: AnyColumn<{
|
|
193
261
|
tableName: TTableName;
|
|
194
|
-
}>,
|
|
262
|
+
}> | SQL<TData> | SQLWrapper<TData> | SQL.Aliased<TData>, tableName: TTableName, key: string);
|
|
263
|
+
through(column: RelationsBuilderColumn): RelationsBuilderJunctionColumn<TTableName, TData>;
|
|
264
|
+
}
|
|
265
|
+
export declare class RelationsBuilderJunctionColumn<TTableName extends string = string, TData = unknown> implements RelationsBuilderColumnBase<TTableName, TData> {
|
|
266
|
+
static readonly [entityKind]: string;
|
|
267
|
+
readonly _: {
|
|
268
|
+
readonly tableName: TTableName;
|
|
269
|
+
readonly data: TData;
|
|
270
|
+
readonly column: AnyColumn<{
|
|
271
|
+
tableName: TTableName;
|
|
272
|
+
}> | SQL<TData> | SQLWrapper<TData> | SQL.Aliased<TData>;
|
|
273
|
+
readonly through: RelationsBuilderColumnBase;
|
|
274
|
+
readonly key: string;
|
|
275
|
+
};
|
|
276
|
+
constructor(column: AnyColumn<{
|
|
195
277
|
tableName: TTableName;
|
|
196
|
-
}>
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
278
|
+
}> | SQL<TData> | SQLWrapper<TData> | SQL.Aliased<TData>, tableName: TTableName, key: string, through: RelationsBuilderColumnBase);
|
|
279
|
+
}
|
|
280
|
+
export interface RelationFieldsFilterInternals<T> {
|
|
281
|
+
eq?: T | Placeholder | undefined;
|
|
282
|
+
ne?: T | Placeholder | undefined;
|
|
283
|
+
gt?: T | Placeholder | undefined;
|
|
284
|
+
gte?: T | Placeholder | undefined;
|
|
285
|
+
lt?: T | Placeholder | undefined;
|
|
286
|
+
lte?: T | Placeholder | undefined;
|
|
287
|
+
in?: (T | Placeholder)[] | Placeholder | undefined;
|
|
288
|
+
notIn?: (T | Placeholder)[] | Placeholder | undefined;
|
|
289
|
+
like?: string | Placeholder | undefined;
|
|
290
|
+
ilike?: string | Placeholder | undefined;
|
|
291
|
+
notLike?: string | Placeholder | undefined;
|
|
292
|
+
notIlike?: string | Placeholder | undefined;
|
|
293
|
+
isNull?: true | undefined;
|
|
294
|
+
isNotNull?: true | undefined;
|
|
295
|
+
NOT?: RelationsFieldFilter<T> | undefined;
|
|
296
|
+
OR?: RelationsFieldFilter<T>[] | undefined;
|
|
297
|
+
AND?: RelationsFieldFilter<T>[] | undefined;
|
|
298
|
+
}
|
|
299
|
+
export type RelationsFieldFilter<T = unknown> = RelationFieldsFilterInternals<T> | (unknown extends T ? never : T extends object ? never : T) | Placeholder;
|
|
300
|
+
export interface RelationsFilterCommons<TTable extends TableRelationalConfig = TableRelationalConfig, TSchema extends TablesRelationalConfig = TablesRelationalConfig> {
|
|
301
|
+
OR?: RelationsFilter<TTable, TSchema>[] | undefined;
|
|
302
|
+
NOT?: RelationsFilter<TTable, TSchema> | undefined;
|
|
303
|
+
AND?: RelationsFilter<TTable, TSchema>[] | undefined;
|
|
304
|
+
RAW?: SQLWrapper | ((table: TTable['table'], operators: Operators) => SQL) | undefined;
|
|
305
|
+
}
|
|
306
|
+
export type RelationsFilter<TTable extends TableRelationalConfig, TSchema extends TablesRelationalConfig, TRelations extends Record<string, Relation> = TTable['relations'], TColumns extends FieldSelection = TTable['columns']> = TTable['relations'] extends Record<string, never> ? TableFilter<TTable['table']> : {
|
|
307
|
+
[K in keyof TColumns]?: (TColumns[K] extends Column ? RelationsFieldFilter<TColumns[K]['_']['data']> : RelationsFieldFilter<unknown>) | undefined;
|
|
308
|
+
} & {
|
|
309
|
+
[K in keyof TRelations]?: boolean | RelationsFilter<FindTableInRelationalConfig<TSchema, TRelations[K]['targetTable']>, TSchema> | undefined;
|
|
310
|
+
} & RelationsFilterCommons<TTable, TSchema>;
|
|
311
|
+
export interface TableFilterCommons<TTable extends Table | View = Table | View, TColumns extends FieldSelection = TTable extends View ? Assume<TTable['_']['selectedFields'], FieldSelection> : Assume<TTable, Table>['_']['columns']> {
|
|
312
|
+
OR?: TableFilter<TTable, TColumns>[] | undefined;
|
|
313
|
+
NOT?: TableFilter<TTable, TColumns> | undefined;
|
|
314
|
+
AND?: TableFilter<TTable, TColumns>[] | undefined;
|
|
315
|
+
RAW?: SQLWrapper | ((table: TTable, operators: Operators) => SQL) | undefined;
|
|
316
|
+
}
|
|
317
|
+
export type TableFilter<TTable extends Table | View = Table | View, TColumns extends FieldSelection = TTable extends View ? Assume<TTable['_']['selectedFields'], FieldSelection> : Assume<TTable, Table>['_']['columns']> = {
|
|
318
|
+
[K in keyof TColumns as K extends keyof TableFilterCommons ? never : K]?: TColumns[K] extends Column ? RelationsFieldFilter<TColumns[K]['_']['data']> : RelationsFieldFilter<unknown>;
|
|
319
|
+
} & TableFilterCommons<TTable, TColumns>;
|
|
320
|
+
export type AnyRelationsFilter = RelationsFilter<TableRelationalConfig, TablesRelationalConfig, Record<string, Relation>, FieldSelection>;
|
|
321
|
+
export type AnyTableFilter = TableFilter<Table | View, FieldSelection>;
|
|
322
|
+
export interface OneConfig<TSchema extends Record<string, Table | View>, TSourceColumns extends Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]]> | Readonly<RelationsBuilderColumnBase>, TTargetTableName extends string, TOptional extends boolean> {
|
|
323
|
+
from?: TSourceColumns;
|
|
324
|
+
to?: TSourceColumns extends RelationsBuilderJunctionColumn | [RelationsBuilderJunctionColumn, ...RelationsBuilderJunctionColumn[]] ? RelationsBuilderJunctionColumn<TTargetTableName> | [
|
|
325
|
+
RelationsBuilderJunctionColumn<TTargetTableName>,
|
|
326
|
+
...RelationsBuilderJunctionColumn<TTargetTableName>[]
|
|
327
|
+
] : TSourceColumns extends [RelationsBuilderColumn] ? RelationsBuilderColumn<TTargetTableName> | [RelationsBuilderColumn<TTargetTableName>] : TSourceColumns extends [RelationsBuilderColumn, ...RelationsBuilderColumn[]] ? {
|
|
328
|
+
[K in keyof TSourceColumns]: RelationsBuilderColumn<TTargetTableName>;
|
|
329
|
+
} : RelationsBuilderColumn<TTargetTableName>;
|
|
330
|
+
where?: TableFilter<TSchema[TTargetTableName]>;
|
|
331
|
+
optional?: TOptional;
|
|
332
|
+
alias?: string;
|
|
333
|
+
}
|
|
334
|
+
export type AnyOneConfig = OneConfig<Record<string, Table | View>, Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]] | RelationsBuilderColumnBase<string, unknown>>, string, boolean>;
|
|
335
|
+
export interface ManyConfig<TSchema extends Record<string, Table | View>, TSourceColumns extends Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]]> | Readonly<RelationsBuilderColumnBase>, TTargetTableName extends string> {
|
|
336
|
+
from?: TSourceColumns;
|
|
337
|
+
to?: TSourceColumns extends RelationsBuilderJunctionColumn | [RelationsBuilderJunctionColumn, ...RelationsBuilderJunctionColumn[]] ? RelationsBuilderJunctionColumn<TTargetTableName> | [
|
|
338
|
+
RelationsBuilderJunctionColumn<TTargetTableName>,
|
|
339
|
+
...RelationsBuilderJunctionColumn<TTargetTableName>[]
|
|
340
|
+
] : TSourceColumns extends [RelationsBuilderColumn] ? RelationsBuilderColumn<TTargetTableName> | [RelationsBuilderColumn<TTargetTableName>] : TSourceColumns extends [RelationsBuilderColumn, ...RelationsBuilderColumn[]] ? {
|
|
341
|
+
[K in keyof TSourceColumns]: RelationsBuilderColumn<TTargetTableName>;
|
|
342
|
+
} : RelationsBuilderColumn<TTargetTableName>;
|
|
343
|
+
where?: TableFilter<TSchema[TTargetTableName]>;
|
|
344
|
+
alias?: string;
|
|
345
|
+
}
|
|
346
|
+
export type AnyManyConfig = ManyConfig<Record<string, Table | View>, Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]]> | Readonly<RelationsBuilderColumnBase>, string>;
|
|
347
|
+
export interface OneFn<TTables extends Record<string, Table | View>, TTargetTableName extends string> {
|
|
348
|
+
<TSourceColumns extends Readonly<[RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]]> | RelationsBuilderColumnBase = any, TOptional extends boolean = true>(config?: OneConfig<TTables, TSourceColumns, TTargetTableName, TOptional>): One<TSourceColumns extends [RelationsBuilderColumnBase, ...RelationsBuilderColumnBase[]] ? TSourceColumns[number]['_']['tableName'] : Assume<TSourceColumns, RelationsBuilderColumnBase>['_']['tableName'], TTargetTableName, TOptional>;
|
|
349
|
+
}
|
|
350
|
+
export interface ManyFn<TTables extends Record<string, Table | View>, TTargetTableName extends string> {
|
|
351
|
+
<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>;
|
|
352
|
+
}
|
|
353
|
+
export declare class RelationsHelperStatic<TTables extends Record<string, Table | View>> {
|
|
354
|
+
static readonly [entityKind]: string;
|
|
355
|
+
readonly $brand: 'RelationsHelperStatic';
|
|
356
|
+
readonly _: {
|
|
357
|
+
readonly tables: TTables;
|
|
358
|
+
};
|
|
359
|
+
constructor(tables: TTables);
|
|
360
|
+
one: {
|
|
361
|
+
[K in keyof TTables]: OneFn<TTables, K & string>;
|
|
362
|
+
};
|
|
363
|
+
many: {
|
|
364
|
+
[K in keyof TTables]: ManyFn<TTables, K & string>;
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
export type RelationsBuilder<TSchema extends Record<string, Table | View>> = {
|
|
368
|
+
[TTableName in keyof TSchema & string]: TSchema[TTableName] extends Table | View<string, boolean, FieldSelection> ? ({
|
|
369
|
+
[TColumnName in keyof (TSchema[TTableName] extends Table ? TSchema[TTableName]['_']['columns'] : Assume<TSchema[TTableName], View>['_']['selectedFields'])]: RelationsBuilderColumn<TTableName, (TSchema[TTableName] extends Table ? TSchema[TTableName]['_']['columns'] : Assume<Assume<TSchema[TTableName], View>['_']['selectedFields'], FieldSelection>)[TColumnName] extends infer Field ? Field extends Column ? Field['_']['data'] : Field extends SQLWrapper<infer Data> | SQL<infer Data> | SQL.Aliased<infer Data> ? Data : never : never>;
|
|
370
|
+
} & RelationsBuilderTable<TTableName>) : DrizzleTypeError<'Views with nested selections are not supported by the relational query builder'>;
|
|
371
|
+
} & RelationsHelperStatic<TSchema>;
|
|
372
|
+
export type RelationsBuilderConfig<TTables extends Record<string, Table | View>> = {
|
|
373
|
+
[TTableName in keyof TTables & string]?: TTables[TTableName] extends Table | View<string, boolean, FieldSelection> ? Record<string, RelationsBuilderEntry<TTables, TTableName>> : DrizzleTypeError<'Views with nested selections are not supported by the relational query builder'>;
|
|
374
|
+
};
|
|
375
|
+
export type RelationsBuilderEntry<TTables extends Record<string, Table | View> = Record<string, Table | View>, TSourceTableName extends string = string> = Relation<TSourceTableName, keyof TTables & string>;
|
|
376
|
+
export type ExtractTablesFromSchema<TSchema extends Record<string, unknown>> = {
|
|
377
|
+
[K in keyof TSchema as TSchema[K] extends Table | View ? K : never]: TSchema[K] extends Table | View ? TSchema[K] : never;
|
|
378
|
+
};
|
|
379
|
+
export declare function createRelationsHelper<TSchema extends Record<string, unknown>, TTables extends Record<string, Table | View>>(schema: TSchema): RelationsBuilder<TTables>;
|
|
380
|
+
export declare function defineRelations<TSchema extends Record<string, unknown>, TConfig extends RelationsBuilderConfig<TTables>, TTables extends Record<string, Table | View> = ExtractTablesFromSchema<TSchema>>(schema: TSchema, relations?: (helpers: RelationsBuilder<TTables>) => TConfig): Relations<TSchema, TTables, TConfig>;
|
|
381
|
+
export interface WithContainer<TRelatedTables extends Record<string, Table> = Record<string, Table>> {
|
|
382
|
+
with?: {
|
|
383
|
+
[K in keyof TRelatedTables]?: boolean | AnyDBQueryConfig;
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
export interface ColumnWithTSName {
|
|
387
|
+
column: Column | SQL | SQLWrapper | SQL.Aliased;
|
|
388
|
+
tsName: string;
|
|
389
|
+
}
|
|
390
|
+
export type RelationsOrder<TColumns extends FieldSelection> = {
|
|
391
|
+
[K in keyof TColumns]?: 'asc' | 'desc';
|
|
200
392
|
};
|
|
201
|
-
export type
|
|
202
|
-
export
|
|
203
|
-
|
|
393
|
+
export type OrderBy = Exclude<AnyDBQueryConfig['orderBy'], undefined>;
|
|
394
|
+
export type Extras = Exclude<AnyDBQueryConfig['extras'], undefined>;
|
|
395
|
+
export declare function relationsFilterToSQL(table: Table | View, filter: AnyRelationsFilter | AnyTableFilter): SQL | undefined;
|
|
396
|
+
export declare function relationsFilterToSQL(table: Table | View, filter: AnyRelationsFilter | AnyTableFilter, tableRelations: Record<string, Relation>, tablesRelations: TablesRelationalConfig, tableNamesMap: Record<string, string>, casing: CasingCache, depth?: number): SQL | undefined;
|
|
397
|
+
export declare function relationsOrderToSQL(table: Table | View, orders: OrderBy): SQL | undefined;
|
|
398
|
+
export declare function relationExtrasToSQL(table: Table | View, extras: Extras): {
|
|
399
|
+
sql: SQL<unknown> | undefined;
|
|
204
400
|
selection: {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
isExtra?: boolean;
|
|
211
|
-
selection: BuildRelationalQueryResult<TTable>['selection'];
|
|
401
|
+
key: string;
|
|
402
|
+
field: Column | Table | SQL | SQL.Aliased | SQLWrapper | AggregatedField;
|
|
403
|
+
isArray?: boolean;
|
|
404
|
+
selection?: BuildRelationalQueryResult["selection"];
|
|
405
|
+
isOptional?: boolean;
|
|
212
406
|
}[];
|
|
213
|
-
|
|
407
|
+
};
|
|
408
|
+
export interface BuiltRelationFilters {
|
|
409
|
+
filter?: SQL;
|
|
410
|
+
joinCondition?: SQL;
|
|
214
411
|
}
|
|
215
|
-
export declare function
|
|
412
|
+
export declare function relationToSQL(casing: CasingCache, relation: Relation, sourceTable: Table | View, targetTable: Table | View, throughTable?: Table | View): BuiltRelationFilters;
|
|
413
|
+
export declare function getTableAsAliasSQL(table: Table | View): SQL<unknown>;
|
|
414
|
+
export {};
|