drizzle-orm 1.0.0-beta.21 → 1.0.0-beta.21-4fa69ab
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.map +1 -1
- package/_relations.d.cts +2 -13
- package/_relations.d.ts +2 -13
- package/_relations.js.map +1 -1
- package/aws-data-api/common/index.cjs +2 -0
- package/aws-data-api/common/index.cjs.map +1 -1
- package/aws-data-api/common/index.js +2 -0
- package/aws-data-api/common/index.js.map +1 -1
- package/aws-data-api/pg/driver.cjs +93 -20
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +17 -13
- package/aws-data-api/pg/driver.d.ts +16 -12
- package/aws-data-api/pg/driver.js +93 -20
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/index.cjs +1 -1
- package/aws-data-api/pg/index.d.cts +3 -3
- package/aws-data-api/pg/index.d.ts +3 -3
- package/aws-data-api/pg/index.js +3 -3
- package/aws-data-api/pg/migrator.cjs.map +1 -1
- package/aws-data-api/pg/migrator.d.cts +1 -1
- package/aws-data-api/pg/migrator.d.ts +1 -1
- package/aws-data-api/pg/migrator.js.map +1 -1
- package/aws-data-api/pg/session.cjs +44 -113
- package/aws-data-api/pg/session.cjs.map +1 -1
- package/aws-data-api/pg/session.d.cts +12 -42
- package/aws-data-api/pg/session.d.ts +12 -42
- package/aws-data-api/pg/session.js +46 -114
- package/aws-data-api/pg/session.js.map +1 -1
- package/better-sqlite3/driver.cjs +5 -2
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.d.ts +1 -1
- package/better-sqlite3/driver.js +5 -2
- package/better-sqlite3/driver.js.map +1 -1
- package/better-sqlite3/session.cjs +15 -14
- package/better-sqlite3/session.cjs.map +1 -1
- package/better-sqlite3/session.d.cts +10 -6
- package/better-sqlite3/session.d.ts +10 -6
- package/better-sqlite3/session.js +16 -15
- package/better-sqlite3/session.js.map +1 -1
- 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.map +1 -1
- package/bun-sql/index.cjs +0 -1
- package/bun-sql/index.d.cts +2 -2
- package/bun-sql/index.d.ts +2 -2
- package/bun-sql/index.js +2 -2
- package/bun-sql/migrator.cjs.map +1 -1
- package/bun-sql/migrator.d.cts +2 -2
- package/bun-sql/migrator.d.ts +2 -2
- package/bun-sql/migrator.js.map +1 -1
- package/bun-sql/mysql/driver.cjs +4 -3
- package/bun-sql/mysql/driver.cjs.map +1 -1
- package/bun-sql/mysql/driver.js +3 -2
- package/bun-sql/mysql/driver.js.map +1 -1
- package/bun-sql/mysql/session.cjs +36 -23
- package/bun-sql/mysql/session.cjs.map +1 -1
- package/bun-sql/mysql/session.d.cts +10 -4
- package/bun-sql/mysql/session.d.ts +11 -5
- package/bun-sql/mysql/session.js +37 -24
- package/bun-sql/mysql/session.js.map +1 -1
- package/bun-sql/postgres/driver.cjs +143 -19
- package/bun-sql/postgres/driver.cjs.map +1 -1
- package/bun-sql/postgres/driver.d.cts +10 -6
- package/bun-sql/postgres/driver.d.ts +10 -6
- package/bun-sql/postgres/driver.js +143 -19
- package/bun-sql/postgres/driver.js.map +1 -1
- package/bun-sql/postgres/index.cjs +1 -1
- package/bun-sql/postgres/index.d.cts +3 -3
- package/bun-sql/postgres/index.d.ts +3 -3
- package/bun-sql/postgres/index.js +3 -3
- package/bun-sql/postgres/migrator.cjs.map +1 -1
- package/bun-sql/postgres/migrator.d.cts +1 -1
- package/bun-sql/postgres/migrator.d.ts +1 -1
- package/bun-sql/postgres/migrator.js.map +1 -1
- package/bun-sql/postgres/session.cjs +16 -111
- package/bun-sql/postgres/session.cjs.map +1 -1
- package/bun-sql/postgres/session.d.cts +11 -33
- package/bun-sql/postgres/session.d.ts +10 -32
- package/bun-sql/postgres/session.js +17 -111
- package/bun-sql/postgres/session.js.map +1 -1
- package/bun-sql/session.cjs +0 -1
- package/bun-sql/session.d.cts +2 -2
- package/bun-sql/session.d.ts +2 -2
- package/bun-sql/session.js +2 -2
- package/bun-sql/sqlite/driver.cjs +4 -3
- package/bun-sql/sqlite/driver.cjs.map +1 -1
- package/bun-sql/sqlite/driver.d.ts +1 -1
- package/bun-sql/sqlite/driver.js +3 -2
- package/bun-sql/sqlite/driver.js.map +1 -1
- package/bun-sql/sqlite/session.cjs +17 -16
- package/bun-sql/sqlite/session.cjs.map +1 -1
- package/bun-sql/sqlite/session.d.cts +9 -6
- package/bun-sql/sqlite/session.d.ts +9 -6
- package/bun-sql/sqlite/session.js +18 -17
- package/bun-sql/sqlite/session.js.map +1 -1
- package/bun-sqlite/driver.cjs +5 -2
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.d.ts +1 -1
- package/bun-sqlite/driver.js +5 -2
- package/bun-sqlite/driver.js.map +1 -1
- package/bun-sqlite/session.cjs +15 -14
- package/bun-sqlite/session.cjs.map +1 -1
- package/bun-sqlite/session.d.cts +10 -6
- package/bun-sqlite/session.d.ts +10 -6
- package/bun-sqlite/session.js +16 -15
- package/bun-sqlite/session.js.map +1 -1
- package/cache/core/cache-effect.d.cts +1 -1
- package/cache/core/cache-effect.d.ts +1 -1
- package/cache/upstash/cache.d.cts +1 -1
- package/cache/upstash/cache.d.ts +1 -1
- package/cockroach/driver.cjs +9 -3
- package/cockroach/driver.cjs.map +1 -1
- package/cockroach/driver.d.cts +1 -0
- package/cockroach/driver.d.ts +2 -1
- package/cockroach/driver.js +9 -3
- package/cockroach/driver.js.map +1 -1
- package/cockroach/session.cjs +7 -9
- package/cockroach/session.cjs.map +1 -1
- package/cockroach/session.d.cts +5 -3
- package/cockroach/session.d.ts +6 -4
- package/cockroach/session.js +8 -10
- package/cockroach/session.js.map +1 -1
- package/cockroach-core/columns/bigint.cjs +4 -4
- package/cockroach-core/columns/bigint.cjs.map +1 -1
- package/cockroach-core/columns/bigint.d.cts +2 -2
- package/cockroach-core/columns/bigint.d.ts +2 -2
- package/cockroach-core/columns/bigint.js +4 -4
- package/cockroach-core/columns/bigint.js.map +1 -1
- package/cockroach-core/columns/common.cjs +4 -4
- package/cockroach-core/columns/common.cjs.map +1 -1
- package/cockroach-core/columns/common.d.cts +2 -2
- package/cockroach-core/columns/common.d.ts +2 -2
- package/cockroach-core/columns/common.js +4 -4
- package/cockroach-core/columns/common.js.map +1 -1
- package/cockroach-core/columns/custom.cjs +4 -4
- package/cockroach-core/columns/custom.cjs.map +1 -1
- package/cockroach-core/columns/custom.d.cts +2 -2
- package/cockroach-core/columns/custom.d.ts +2 -2
- package/cockroach-core/columns/custom.js +4 -4
- package/cockroach-core/columns/custom.js.map +1 -1
- package/cockroach-core/columns/date.cjs +6 -6
- package/cockroach-core/columns/date.cjs.map +1 -1
- package/cockroach-core/columns/date.d.cts +3 -3
- package/cockroach-core/columns/date.d.ts +3 -3
- package/cockroach-core/columns/date.js +6 -6
- package/cockroach-core/columns/date.js.map +1 -1
- package/cockroach-core/columns/decimal.cjs +4 -4
- package/cockroach-core/columns/decimal.cjs.map +1 -1
- package/cockroach-core/columns/decimal.d.cts +2 -2
- package/cockroach-core/columns/decimal.d.ts +2 -2
- package/cockroach-core/columns/decimal.js +4 -4
- package/cockroach-core/columns/decimal.js.map +1 -1
- package/cockroach-core/columns/float.cjs +2 -2
- package/cockroach-core/columns/float.cjs.map +1 -1
- package/cockroach-core/columns/float.d.cts +1 -1
- package/cockroach-core/columns/float.d.ts +1 -1
- package/cockroach-core/columns/float.js +2 -2
- package/cockroach-core/columns/float.js.map +1 -1
- package/cockroach-core/columns/geometry.cjs +8 -8
- package/cockroach-core/columns/geometry.cjs.map +1 -1
- package/cockroach-core/columns/geometry.d.cts +5 -5
- package/cockroach-core/columns/geometry.d.ts +5 -5
- package/cockroach-core/columns/geometry.js +8 -8
- package/cockroach-core/columns/geometry.js.map +1 -1
- package/cockroach-core/columns/integer.cjs +2 -2
- package/cockroach-core/columns/integer.cjs.map +1 -1
- package/cockroach-core/columns/integer.d.cts +1 -1
- package/cockroach-core/columns/integer.d.ts +1 -1
- package/cockroach-core/columns/integer.js +2 -2
- package/cockroach-core/columns/integer.js.map +1 -1
- package/cockroach-core/columns/jsonb.cjs +4 -4
- package/cockroach-core/columns/jsonb.cjs.map +1 -1
- package/cockroach-core/columns/jsonb.d.cts +2 -2
- package/cockroach-core/columns/jsonb.d.ts +2 -2
- package/cockroach-core/columns/jsonb.js +4 -4
- package/cockroach-core/columns/jsonb.js.map +1 -1
- package/cockroach-core/columns/vector.cjs +4 -4
- package/cockroach-core/columns/vector.cjs.map +1 -1
- package/cockroach-core/columns/vector.d.cts +2 -2
- package/cockroach-core/columns/vector.d.ts +2 -2
- package/cockroach-core/columns/vector.js +4 -4
- package/cockroach-core/columns/vector.js.map +1 -1
- package/cockroach-core/db.cjs +1 -1
- package/cockroach-core/db.cjs.map +1 -1
- package/cockroach-core/db.js +1 -1
- package/cockroach-core/db.js.map +1 -1
- package/cockroach-core/dialect.cjs +1 -1
- package/cockroach-core/dialect.d.ts +1 -1
- package/cockroach-core/dialect.js +1 -1
- package/cockroach-core/query-builders/delete.cjs +6 -2
- package/cockroach-core/query-builders/delete.cjs.map +1 -1
- package/cockroach-core/query-builders/delete.d.cts +1 -1
- package/cockroach-core/query-builders/delete.d.ts +1 -1
- package/cockroach-core/query-builders/delete.js +6 -2
- package/cockroach-core/query-builders/delete.js.map +1 -1
- package/cockroach-core/query-builders/insert.cjs +6 -2
- package/cockroach-core/query-builders/insert.cjs.map +1 -1
- package/cockroach-core/query-builders/insert.js +6 -2
- package/cockroach-core/query-builders/insert.js.map +1 -1
- package/cockroach-core/query-builders/query.cjs +2 -2
- package/cockroach-core/query-builders/query.cjs.map +1 -1
- package/cockroach-core/query-builders/query.js +2 -2
- package/cockroach-core/query-builders/query.js.map +1 -1
- package/cockroach-core/query-builders/raw.cjs +0 -4
- package/cockroach-core/query-builders/raw.cjs.map +1 -1
- package/cockroach-core/query-builders/raw.js +0 -4
- package/cockroach-core/query-builders/raw.js.map +1 -1
- package/cockroach-core/query-builders/refresh-materialized-view.cjs +2 -2
- package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +1 -1
- package/cockroach-core/query-builders/refresh-materialized-view.js +2 -2
- package/cockroach-core/query-builders/refresh-materialized-view.js.map +1 -1
- package/cockroach-core/query-builders/select.cjs +6 -2
- package/cockroach-core/query-builders/select.cjs.map +1 -1
- package/cockroach-core/query-builders/select.js +6 -2
- package/cockroach-core/query-builders/select.js.map +1 -1
- package/cockroach-core/query-builders/update.cjs +6 -2
- package/cockroach-core/query-builders/update.cjs.map +1 -1
- package/cockroach-core/query-builders/update.js +6 -2
- package/cockroach-core/query-builders/update.js.map +1 -1
- package/cockroach-core/session.cjs +2 -2
- package/cockroach-core/session.cjs.map +1 -1
- package/cockroach-core/session.d.cts +1 -1
- package/cockroach-core/session.d.ts +1 -1
- package/cockroach-core/session.js +2 -2
- package/cockroach-core/session.js.map +1 -1
- package/cockroach-core/table.cjs +1 -1
- package/cockroach-core/table.cjs.map +1 -1
- package/cockroach-core/table.js +1 -1
- package/cockroach-core/table.js.map +1 -1
- package/codecs.cjs +77 -0
- package/codecs.cjs.map +1 -0
- package/codecs.d.cts +68 -0
- package/codecs.d.ts +68 -0
- package/codecs.js +74 -0
- package/codecs.js.map +1 -0
- package/column.cjs +10 -5
- package/column.cjs.map +1 -1
- package/column.d.cts +3 -3
- package/column.d.ts +3 -3
- package/column.js +10 -5
- package/column.js.map +1 -1
- package/d1/driver.cjs +3 -2
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.d.ts +1 -1
- package/d1/driver.js +3 -2
- package/d1/driver.js.map +1 -1
- package/d1/session.cjs +16 -14
- package/d1/session.cjs.map +1 -1
- package/d1/session.d.cts +9 -6
- package/d1/session.d.ts +9 -6
- package/d1/session.js +17 -15
- package/d1/session.js.map +1 -1
- package/durable-sqlite/driver.cjs +5 -2
- package/durable-sqlite/driver.cjs.map +1 -1
- package/durable-sqlite/driver.d.ts +1 -1
- package/durable-sqlite/driver.js +5 -2
- package/durable-sqlite/driver.js.map +1 -1
- package/durable-sqlite/session.cjs +15 -14
- package/durable-sqlite/session.cjs.map +1 -1
- package/durable-sqlite/session.d.cts +10 -6
- package/durable-sqlite/session.d.ts +10 -6
- package/durable-sqlite/session.js +16 -15
- package/durable-sqlite/session.js.map +1 -1
- package/effect-postgres/driver.cjs +99 -13
- package/effect-postgres/driver.cjs.map +1 -1
- package/effect-postgres/driver.d.cts +12 -8
- package/effect-postgres/driver.d.ts +12 -8
- package/effect-postgres/driver.js +99 -13
- package/effect-postgres/driver.js.map +1 -1
- package/effect-postgres/index.cjs +1 -1
- package/effect-postgres/index.d.cts +3 -3
- package/effect-postgres/index.d.ts +3 -3
- package/effect-postgres/index.js +3 -3
- package/effect-postgres/migrator.cjs.map +1 -1
- package/effect-postgres/migrator.d.cts +1 -1
- package/effect-postgres/migrator.d.ts +1 -1
- package/effect-postgres/migrator.js.map +1 -1
- package/effect-postgres/session.cjs +12 -71
- package/effect-postgres/session.cjs.map +1 -1
- package/effect-postgres/session.d.cts +14 -31
- package/effect-postgres/session.d.ts +16 -33
- package/effect-postgres/session.js +13 -71
- package/effect-postgres/session.js.map +1 -1
- package/expo-sqlite/driver.cjs +5 -2
- package/expo-sqlite/driver.cjs.map +1 -1
- package/expo-sqlite/driver.d.ts +1 -1
- package/expo-sqlite/driver.js +5 -2
- package/expo-sqlite/driver.js.map +1 -1
- package/expo-sqlite/session.cjs +15 -14
- package/expo-sqlite/session.cjs.map +1 -1
- package/expo-sqlite/session.d.cts +10 -6
- package/expo-sqlite/session.d.ts +10 -6
- package/expo-sqlite/session.js +16 -15
- package/expo-sqlite/session.js.map +1 -1
- package/gel/driver.cjs +4 -2
- package/gel/driver.cjs.map +1 -1
- package/gel/driver.d.cts +1 -0
- package/gel/driver.d.ts +2 -1
- package/gel/driver.js +4 -2
- package/gel/driver.js.map +1 -1
- package/gel/session.cjs +12 -12
- package/gel/session.cjs.map +1 -1
- package/gel/session.d.cts +8 -5
- package/gel/session.d.ts +9 -6
- package/gel/session.js +13 -13
- package/gel/session.js.map +1 -1
- package/gel-core/columns/bigintT.cjs +2 -2
- package/gel-core/columns/bigintT.cjs.map +1 -1
- package/gel-core/columns/bigintT.d.cts +1 -1
- package/gel-core/columns/bigintT.d.ts +1 -1
- package/gel-core/columns/bigintT.js +2 -2
- package/gel-core/columns/bigintT.js.map +1 -1
- package/gel-core/columns/common.cjs +2 -2
- package/gel-core/columns/common.cjs.map +1 -1
- package/gel-core/columns/common.d.cts +1 -1
- package/gel-core/columns/common.d.ts +1 -1
- package/gel-core/columns/common.js +2 -2
- package/gel-core/columns/common.js.map +1 -1
- package/gel-core/columns/custom.cjs +4 -4
- package/gel-core/columns/custom.cjs.map +1 -1
- package/gel-core/columns/custom.d.cts +2 -2
- package/gel-core/columns/custom.d.ts +2 -2
- package/gel-core/columns/custom.js +4 -4
- package/gel-core/columns/custom.js.map +1 -1
- package/gel-core/columns/double-precision.cjs +2 -2
- package/gel-core/columns/double-precision.cjs.map +1 -1
- package/gel-core/columns/double-precision.d.cts +1 -1
- package/gel-core/columns/double-precision.d.ts +1 -1
- package/gel-core/columns/double-precision.js +2 -2
- package/gel-core/columns/double-precision.js.map +1 -1
- package/gel-core/columns/timestamptz.cjs +2 -2
- package/gel-core/columns/timestamptz.cjs.map +1 -1
- package/gel-core/columns/timestamptz.d.cts +1 -1
- package/gel-core/columns/timestamptz.d.ts +1 -1
- package/gel-core/columns/timestamptz.js +2 -2
- package/gel-core/columns/timestamptz.js.map +1 -1
- package/gel-core/db.cjs +1 -1
- package/gel-core/db.cjs.map +1 -1
- package/gel-core/db.d.ts +1 -1
- package/gel-core/db.js +1 -1
- package/gel-core/db.js.map +1 -1
- package/gel-core/query-builders/_query.cjs +2 -2
- package/gel-core/query-builders/_query.cjs.map +1 -1
- package/gel-core/query-builders/_query.js +2 -2
- package/gel-core/query-builders/_query.js.map +1 -1
- package/gel-core/query-builders/delete.cjs +2 -2
- package/gel-core/query-builders/delete.cjs.map +1 -1
- package/gel-core/query-builders/delete.js +2 -2
- package/gel-core/query-builders/delete.js.map +1 -1
- package/gel-core/query-builders/insert.cjs +2 -2
- package/gel-core/query-builders/insert.cjs.map +1 -1
- package/gel-core/query-builders/insert.js +2 -2
- package/gel-core/query-builders/insert.js.map +1 -1
- package/gel-core/query-builders/query.cjs +13 -5
- package/gel-core/query-builders/query.cjs.map +1 -1
- package/gel-core/query-builders/query.d.ts +1 -1
- package/gel-core/query-builders/query.js +14 -6
- package/gel-core/query-builders/query.js.map +1 -1
- package/gel-core/query-builders/raw.cjs +0 -4
- package/gel-core/query-builders/raw.cjs.map +1 -1
- package/gel-core/query-builders/raw.js +0 -4
- package/gel-core/query-builders/raw.js.map +1 -1
- package/gel-core/query-builders/refresh-materialized-view.cjs +2 -2
- package/gel-core/query-builders/refresh-materialized-view.cjs.map +1 -1
- package/gel-core/query-builders/refresh-materialized-view.js +2 -2
- package/gel-core/query-builders/refresh-materialized-view.js.map +1 -1
- package/gel-core/query-builders/select.cjs +6 -2
- package/gel-core/query-builders/select.cjs.map +1 -1
- package/gel-core/query-builders/select.js +6 -2
- package/gel-core/query-builders/select.js.map +1 -1
- package/gel-core/query-builders/update.cjs +2 -2
- package/gel-core/query-builders/update.cjs.map +1 -1
- package/gel-core/query-builders/update.js +2 -2
- package/gel-core/query-builders/update.js.map +1 -1
- package/gel-core/session.cjs +2 -2
- package/gel-core/session.cjs.map +1 -1
- package/gel-core/session.d.cts +3 -3
- package/gel-core/session.d.ts +3 -3
- package/gel-core/session.js +2 -2
- package/gel-core/session.js.map +1 -1
- package/gel-core/table.cjs +1 -1
- package/gel-core/table.cjs.map +1 -1
- package/gel-core/table.js +1 -1
- package/gel-core/table.js.map +1 -1
- package/index.cjs +6 -0
- package/index.d.cts +6 -6
- package/index.d.ts +6 -6
- package/index.js +4 -4
- package/libsql/driver-core.cjs +3 -2
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.d.ts +1 -1
- package/libsql/driver-core.js +3 -2
- package/libsql/driver-core.js.map +1 -1
- package/libsql/session.cjs +13 -14
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +9 -6
- package/libsql/session.d.ts +9 -6
- package/libsql/session.js +14 -15
- package/libsql/session.js.map +1 -1
- package/mssql-core/columns/bigint.cjs +2 -2
- package/mssql-core/columns/bigint.cjs.map +1 -1
- package/mssql-core/columns/bigint.d.cts +1 -1
- package/mssql-core/columns/bigint.d.ts +1 -1
- package/mssql-core/columns/bigint.js +2 -2
- package/mssql-core/columns/bigint.js.map +1 -1
- package/mssql-core/columns/custom.cjs +4 -4
- package/mssql-core/columns/custom.cjs.map +1 -1
- package/mssql-core/columns/custom.d.cts +2 -2
- package/mssql-core/columns/custom.d.ts +2 -2
- package/mssql-core/columns/custom.js +4 -4
- package/mssql-core/columns/custom.js.map +1 -1
- package/mssql-core/columns/date.cjs +4 -4
- package/mssql-core/columns/date.cjs.map +1 -1
- package/mssql-core/columns/date.d.cts +2 -2
- package/mssql-core/columns/date.d.ts +2 -2
- package/mssql-core/columns/date.js +4 -4
- package/mssql-core/columns/date.js.map +1 -1
- package/mssql-core/columns/datetime.cjs +2 -2
- package/mssql-core/columns/datetime.cjs.map +1 -1
- package/mssql-core/columns/datetime.d.cts +1 -1
- package/mssql-core/columns/datetime.d.ts +1 -1
- package/mssql-core/columns/datetime.js +2 -2
- package/mssql-core/columns/datetime.js.map +1 -1
- package/mssql-core/columns/datetime2.cjs +2 -2
- package/mssql-core/columns/datetime2.cjs.map +1 -1
- package/mssql-core/columns/datetime2.d.cts +1 -1
- package/mssql-core/columns/datetime2.d.ts +1 -1
- package/mssql-core/columns/datetime2.js +2 -2
- package/mssql-core/columns/datetime2.js.map +1 -1
- package/mssql-core/columns/datetimeoffset.cjs +2 -2
- package/mssql-core/columns/datetimeoffset.cjs.map +1 -1
- package/mssql-core/columns/datetimeoffset.d.cts +1 -1
- package/mssql-core/columns/datetimeoffset.d.ts +1 -1
- package/mssql-core/columns/datetimeoffset.js +2 -2
- package/mssql-core/columns/datetimeoffset.js.map +1 -1
- package/mssql-core/columns/decimal.cjs +4 -4
- package/mssql-core/columns/decimal.cjs.map +1 -1
- package/mssql-core/columns/decimal.d.cts +2 -2
- package/mssql-core/columns/decimal.d.ts +2 -2
- package/mssql-core/columns/decimal.js +4 -4
- package/mssql-core/columns/decimal.js.map +1 -1
- package/mssql-core/columns/numeric.cjs +4 -4
- package/mssql-core/columns/numeric.cjs.map +1 -1
- package/mssql-core/columns/numeric.d.cts +2 -2
- package/mssql-core/columns/numeric.d.ts +2 -2
- package/mssql-core/columns/numeric.js +4 -4
- package/mssql-core/columns/numeric.js.map +1 -1
- package/mssql-core/columns/smallint.cjs +2 -2
- package/mssql-core/columns/smallint.cjs.map +1 -1
- package/mssql-core/columns/smallint.d.cts +1 -1
- package/mssql-core/columns/smallint.d.ts +1 -1
- package/mssql-core/columns/smallint.js +2 -2
- package/mssql-core/columns/smallint.js.map +1 -1
- package/mssql-core/columns/time.cjs +2 -2
- package/mssql-core/columns/time.cjs.map +1 -1
- package/mssql-core/columns/time.d.cts +1 -1
- package/mssql-core/columns/time.d.ts +1 -1
- package/mssql-core/columns/time.js +2 -2
- package/mssql-core/columns/time.js.map +1 -1
- package/mssql-core/columns/tinyint.cjs +2 -2
- package/mssql-core/columns/tinyint.cjs.map +1 -1
- package/mssql-core/columns/tinyint.d.cts +1 -1
- package/mssql-core/columns/tinyint.d.ts +1 -1
- package/mssql-core/columns/tinyint.js +2 -2
- package/mssql-core/columns/tinyint.js.map +1 -1
- package/mssql-core/columns/varchar.cjs +4 -4
- package/mssql-core/columns/varchar.cjs.map +1 -1
- package/mssql-core/columns/varchar.d.cts +2 -2
- package/mssql-core/columns/varchar.d.ts +2 -2
- package/mssql-core/columns/varchar.js +4 -4
- package/mssql-core/columns/varchar.js.map +1 -1
- package/mssql-core/dialect.cjs +1 -1
- package/mssql-core/dialect.d.ts +1 -1
- package/mssql-core/dialect.js +1 -1
- package/mssql-core/query-builders/select.cjs +4 -0
- package/mssql-core/query-builders/select.cjs.map +1 -1
- package/mssql-core/query-builders/select.js +4 -0
- package/mssql-core/query-builders/select.js.map +1 -1
- package/mssql-core/query-builders/update.d.ts +1 -1
- package/mssql-core/table.cjs +1 -1
- package/mssql-core/table.cjs.map +1 -1
- package/mssql-core/table.js +1 -1
- package/mssql-core/table.js.map +1 -1
- package/mysql-core/columns/bigint.cjs +8 -8
- package/mysql-core/columns/bigint.cjs.map +1 -1
- package/mysql-core/columns/bigint.d.cts +4 -4
- package/mysql-core/columns/bigint.d.ts +4 -4
- package/mysql-core/columns/bigint.js +8 -8
- package/mysql-core/columns/bigint.js.map +1 -1
- package/mysql-core/columns/binary.cjs +2 -2
- package/mysql-core/columns/binary.cjs.map +1 -1
- package/mysql-core/columns/binary.d.cts +1 -1
- package/mysql-core/columns/binary.d.ts +1 -1
- package/mysql-core/columns/binary.js +2 -2
- package/mysql-core/columns/binary.js.map +1 -1
- package/mysql-core/columns/blob.cjs +4 -4
- package/mysql-core/columns/blob.cjs.map +1 -1
- package/mysql-core/columns/blob.d.cts +2 -2
- package/mysql-core/columns/blob.d.ts +2 -2
- package/mysql-core/columns/blob.js +4 -4
- package/mysql-core/columns/blob.js.map +1 -1
- package/mysql-core/columns/boolean.cjs +2 -2
- package/mysql-core/columns/boolean.cjs.map +1 -1
- package/mysql-core/columns/boolean.d.cts +1 -1
- package/mysql-core/columns/boolean.d.ts +1 -1
- package/mysql-core/columns/boolean.js +2 -2
- package/mysql-core/columns/boolean.js.map +1 -1
- package/mysql-core/columns/custom.cjs +4 -4
- package/mysql-core/columns/custom.cjs.map +1 -1
- package/mysql-core/columns/custom.d.cts +2 -2
- package/mysql-core/columns/custom.d.ts +2 -2
- package/mysql-core/columns/custom.js +4 -4
- package/mysql-core/columns/custom.js.map +1 -1
- package/mysql-core/columns/date.cjs +4 -4
- package/mysql-core/columns/date.cjs.map +1 -1
- package/mysql-core/columns/date.d.cts +2 -2
- package/mysql-core/columns/date.d.ts +2 -2
- package/mysql-core/columns/date.js +4 -4
- package/mysql-core/columns/date.js.map +1 -1
- package/mysql-core/columns/datetime.cjs +8 -8
- package/mysql-core/columns/datetime.cjs.map +1 -1
- package/mysql-core/columns/datetime.d.cts +4 -4
- package/mysql-core/columns/datetime.d.ts +4 -4
- package/mysql-core/columns/datetime.js +8 -8
- package/mysql-core/columns/datetime.js.map +1 -1
- package/mysql-core/columns/decimal.cjs +4 -4
- package/mysql-core/columns/decimal.cjs.map +1 -1
- package/mysql-core/columns/decimal.d.cts +2 -2
- package/mysql-core/columns/decimal.d.ts +2 -2
- package/mysql-core/columns/decimal.js +4 -4
- package/mysql-core/columns/decimal.js.map +1 -1
- package/mysql-core/columns/float.cjs +2 -2
- package/mysql-core/columns/float.cjs.map +1 -1
- package/mysql-core/columns/float.d.cts +1 -1
- package/mysql-core/columns/float.d.ts +1 -1
- package/mysql-core/columns/float.js +2 -2
- package/mysql-core/columns/float.js.map +1 -1
- package/mysql-core/columns/int.cjs +2 -2
- package/mysql-core/columns/int.cjs.map +1 -1
- package/mysql-core/columns/int.d.cts +1 -1
- package/mysql-core/columns/int.d.ts +1 -1
- package/mysql-core/columns/int.js +2 -2
- package/mysql-core/columns/int.js.map +1 -1
- package/mysql-core/columns/json.cjs +2 -2
- package/mysql-core/columns/json.cjs.map +1 -1
- package/mysql-core/columns/json.d.cts +1 -1
- package/mysql-core/columns/json.d.ts +1 -1
- package/mysql-core/columns/json.js +2 -2
- package/mysql-core/columns/json.js.map +1 -1
- package/mysql-core/columns/mediumint.cjs +2 -2
- package/mysql-core/columns/mediumint.cjs.map +1 -1
- package/mysql-core/columns/mediumint.d.cts +1 -1
- package/mysql-core/columns/mediumint.d.ts +1 -1
- package/mysql-core/columns/mediumint.js +2 -2
- package/mysql-core/columns/mediumint.js.map +1 -1
- package/mysql-core/columns/serial.cjs +2 -2
- package/mysql-core/columns/serial.cjs.map +1 -1
- package/mysql-core/columns/serial.d.cts +1 -1
- package/mysql-core/columns/serial.d.ts +1 -1
- package/mysql-core/columns/serial.js +2 -2
- package/mysql-core/columns/serial.js.map +1 -1
- package/mysql-core/columns/smallint.cjs +2 -2
- package/mysql-core/columns/smallint.cjs.map +1 -1
- package/mysql-core/columns/smallint.d.cts +1 -1
- package/mysql-core/columns/smallint.d.ts +1 -1
- package/mysql-core/columns/smallint.js +2 -2
- package/mysql-core/columns/smallint.js.map +1 -1
- package/mysql-core/columns/time.cjs +2 -2
- package/mysql-core/columns/time.cjs.map +1 -1
- package/mysql-core/columns/time.d.cts +1 -1
- package/mysql-core/columns/time.d.ts +1 -1
- package/mysql-core/columns/time.js +2 -2
- package/mysql-core/columns/time.js.map +1 -1
- package/mysql-core/columns/timestamp.cjs +8 -8
- package/mysql-core/columns/timestamp.cjs.map +1 -1
- package/mysql-core/columns/timestamp.d.cts +4 -4
- package/mysql-core/columns/timestamp.d.ts +4 -4
- package/mysql-core/columns/timestamp.js +8 -8
- package/mysql-core/columns/timestamp.js.map +1 -1
- package/mysql-core/columns/tinyint.cjs +2 -2
- package/mysql-core/columns/tinyint.cjs.map +1 -1
- package/mysql-core/columns/tinyint.d.cts +1 -1
- package/mysql-core/columns/tinyint.d.ts +1 -1
- package/mysql-core/columns/tinyint.js +2 -2
- package/mysql-core/columns/tinyint.js.map +1 -1
- package/mysql-core/columns/varbinary.cjs +2 -2
- package/mysql-core/columns/varbinary.cjs.map +1 -1
- package/mysql-core/columns/varbinary.d.cts +1 -1
- package/mysql-core/columns/varbinary.d.ts +1 -1
- package/mysql-core/columns/varbinary.js +2 -2
- package/mysql-core/columns/varbinary.js.map +1 -1
- package/mysql-core/columns/year.cjs +2 -2
- package/mysql-core/columns/year.cjs.map +1 -1
- package/mysql-core/columns/year.d.cts +1 -1
- package/mysql-core/columns/year.d.ts +1 -1
- package/mysql-core/columns/year.js +2 -2
- package/mysql-core/columns/year.js.map +1 -1
- package/mysql-core/db.d.ts +1 -1
- package/mysql-core/dialect.cjs +1 -1
- package/mysql-core/dialect.d.ts +1 -1
- package/mysql-core/dialect.js +1 -1
- package/mysql-core/query-builders/query.cjs +13 -5
- package/mysql-core/query-builders/query.cjs.map +1 -1
- package/mysql-core/query-builders/query.d.ts +1 -1
- package/mysql-core/query-builders/query.js +13 -5
- package/mysql-core/query-builders/query.js.map +1 -1
- package/mysql-core/query-builders/select.cjs +4 -0
- package/mysql-core/query-builders/select.cjs.map +1 -1
- package/mysql-core/query-builders/select.js +4 -0
- package/mysql-core/query-builders/select.js.map +1 -1
- package/mysql-core/session.cjs +1 -2
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +3 -4
- package/mysql-core/session.d.ts +3 -4
- package/mysql-core/session.js +1 -2
- package/mysql-core/session.js.map +1 -1
- package/mysql-core/table.cjs +1 -1
- package/mysql-core/table.cjs.map +1 -1
- package/mysql-core/table.js +1 -1
- package/mysql-core/table.js.map +1 -1
- package/mysql-proxy/driver.cjs +5 -2
- package/mysql-proxy/driver.cjs.map +1 -1
- package/mysql-proxy/driver.js +5 -2
- package/mysql-proxy/driver.js.map +1 -1
- package/mysql-proxy/session.cjs +25 -18
- package/mysql-proxy/session.cjs.map +1 -1
- package/mysql-proxy/session.d.cts +11 -4
- package/mysql-proxy/session.d.ts +12 -5
- package/mysql-proxy/session.js +26 -19
- package/mysql-proxy/session.js.map +1 -1
- package/mysql2/driver.cjs +3 -2
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +1 -0
- package/mysql2/driver.d.ts +3 -2
- package/mysql2/driver.js +3 -2
- package/mysql2/driver.js.map +1 -1
- package/mysql2/session.cjs +48 -38
- package/mysql2/session.cjs.map +1 -1
- package/mysql2/session.d.cts +11 -4
- package/mysql2/session.d.ts +12 -5
- package/mysql2/session.js +49 -39
- package/mysql2/session.js.map +1 -1
- package/neon-http/driver.cjs +34 -65
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +15 -19
- package/neon-http/driver.d.ts +16 -20
- package/neon-http/driver.js +34 -64
- package/neon-http/driver.js.map +1 -1
- package/neon-http/index.cjs +2 -4
- package/neon-http/index.d.cts +3 -3
- package/neon-http/index.d.ts +3 -3
- package/neon-http/index.js +3 -3
- package/neon-http/migrator.cjs +1 -1
- package/neon-http/migrator.cjs.map +1 -1
- package/neon-http/migrator.d.cts +1 -1
- package/neon-http/migrator.d.ts +1 -1
- package/neon-http/migrator.js +1 -1
- package/neon-http/migrator.js.map +1 -1
- package/neon-http/session.cjs +27 -116
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +10 -38
- package/neon-http/session.d.ts +10 -38
- package/neon-http/session.js +29 -116
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +14 -32
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +12 -17
- package/neon-serverless/driver.d.ts +13 -18
- package/neon-serverless/driver.js +14 -31
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/index.cjs +2 -3
- package/neon-serverless/index.d.cts +3 -3
- package/neon-serverless/index.d.ts +3 -3
- package/neon-serverless/index.js +3 -3
- package/neon-serverless/migrator.cjs.map +1 -1
- package/neon-serverless/migrator.d.cts +1 -1
- package/neon-serverless/migrator.d.ts +1 -1
- package/neon-serverless/migrator.js.map +1 -1
- package/neon-serverless/session.cjs +32 -108
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.d.cts +9 -32
- package/neon-serverless/session.d.ts +9 -32
- package/neon-serverless/session.js +34 -109
- package/neon-serverless/session.js.map +1 -1
- package/netlify-db/driver.cjs +36 -43
- package/netlify-db/driver.cjs.map +1 -1
- package/netlify-db/driver.d.cts +29 -29
- package/netlify-db/driver.d.ts +31 -31
- package/netlify-db/driver.js +35 -42
- package/netlify-db/driver.js.map +1 -1
- package/netlify-db/index.cjs +3 -2
- package/netlify-db/index.d.cts +3 -3
- package/netlify-db/index.d.ts +3 -3
- package/netlify-db/index.js +2 -2
- package/netlify-db/migrator.cjs.map +1 -1
- package/netlify-db/migrator.d.cts +1 -1
- package/netlify-db/migrator.d.ts +1 -1
- package/netlify-db/migrator.js.map +1 -1
- package/netlify-db/session.cjs +61 -39
- package/netlify-db/session.cjs.map +1 -1
- package/netlify-db/session.d.cts +22 -23
- package/netlify-db/session.d.ts +23 -24
- package/netlify-db/session.js +63 -41
- package/netlify-db/session.js.map +1 -1
- package/node-mssql/driver.cjs +9 -3
- package/node-mssql/driver.cjs.map +1 -1
- package/node-mssql/driver.d.cts +1 -0
- package/node-mssql/driver.d.ts +2 -1
- package/node-mssql/driver.js +9 -3
- package/node-mssql/driver.js.map +1 -1
- package/node-mssql/session.cjs +6 -4
- package/node-mssql/session.cjs.map +1 -1
- package/node-mssql/session.d.cts +4 -1
- package/node-mssql/session.d.ts +5 -2
- package/node-mssql/session.js +7 -5
- package/node-mssql/session.js.map +1 -1
- package/node-postgres/driver.cjs +15 -18
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +11 -6
- package/node-postgres/driver.d.ts +12 -7
- package/node-postgres/driver.js +15 -18
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/index.cjs +2 -2
- package/node-postgres/index.d.cts +3 -3
- package/node-postgres/index.d.ts +3 -3
- package/node-postgres/index.js +3 -3
- package/node-postgres/migrator.cjs.map +1 -1
- package/node-postgres/migrator.d.cts +1 -1
- package/node-postgres/migrator.d.ts +1 -1
- package/node-postgres/migrator.js.map +1 -1
- package/node-postgres/session.cjs +32 -125
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +10 -30
- package/node-postgres/session.d.ts +9 -29
- package/node-postgres/session.js +34 -126
- package/node-postgres/session.js.map +1 -1
- package/node-sqlite/driver.cjs +1 -1
- package/node-sqlite/driver.d.ts +1 -1
- package/node-sqlite/driver.js +1 -1
- package/node-sqlite/session.cjs +4 -9
- package/node-sqlite/session.cjs.map +1 -1
- package/node-sqlite/session.d.cts +3 -4
- package/node-sqlite/session.d.ts +4 -5
- package/node-sqlite/session.js +4 -9
- package/node-sqlite/session.js.map +1 -1
- package/op-sqlite/driver.cjs +3 -2
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.d.ts +1 -1
- package/op-sqlite/driver.js +3 -2
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/session.cjs +17 -15
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +10 -6
- package/op-sqlite/session.d.ts +10 -6
- package/op-sqlite/session.js +18 -16
- package/op-sqlite/session.js.map +1 -1
- package/operations.d.cts +3 -0
- package/operations.d.ts +3 -0
- package/package.json +43 -31
- package/pg-core/{utils/array.cjs → array.cjs} +1 -1
- package/pg-core/array.cjs.map +1 -0
- package/pg-core/{utils/array.d.cts → array.d.cts} +1 -1
- package/pg-core/{utils/array.d.ts → array.d.ts} +1 -1
- package/pg-core/{utils/array.js → array.js} +1 -1
- package/pg-core/array.js.map +1 -0
- package/pg-core/async/count.cjs +2 -9
- package/pg-core/async/count.cjs.map +1 -1
- package/pg-core/async/count.js +2 -9
- package/pg-core/async/count.js.map +1 -1
- package/pg-core/async/db.cjs +8 -28
- package/pg-core/async/db.cjs.map +1 -1
- package/pg-core/async/db.d.cts +5 -13
- package/pg-core/async/db.d.ts +6 -14
- package/pg-core/async/db.js +8 -28
- package/pg-core/async/db.js.map +1 -1
- package/pg-core/async/delete.cjs +7 -12
- package/pg-core/async/delete.cjs.map +1 -1
- package/pg-core/async/delete.js +7 -12
- package/pg-core/async/delete.js.map +1 -1
- package/pg-core/async/insert.cjs +7 -12
- package/pg-core/async/insert.cjs.map +1 -1
- package/pg-core/async/insert.js +7 -12
- package/pg-core/async/insert.js.map +1 -1
- package/pg-core/async/query.cjs +8 -14
- package/pg-core/async/query.cjs.map +1 -1
- package/pg-core/async/query.js +8 -14
- package/pg-core/async/query.js.map +1 -1
- package/pg-core/async/refresh-materialized-view.cjs +1 -9
- package/pg-core/async/refresh-materialized-view.cjs.map +1 -1
- package/pg-core/async/refresh-materialized-view.js +1 -9
- package/pg-core/async/refresh-materialized-view.js.map +1 -1
- package/pg-core/async/select.cjs +4 -13
- package/pg-core/async/select.cjs.map +1 -1
- package/pg-core/async/select.js +4 -13
- package/pg-core/async/select.js.map +1 -1
- package/pg-core/async/session.cjs +44 -20
- package/pg-core/async/session.cjs.map +1 -1
- package/pg-core/async/session.d.cts +25 -31
- package/pg-core/async/session.d.ts +26 -32
- package/pg-core/async/session.js +45 -21
- package/pg-core/async/session.js.map +1 -1
- package/pg-core/async/update.cjs +11 -15
- package/pg-core/async/update.cjs.map +1 -1
- package/pg-core/async/update.js +11 -15
- package/pg-core/async/update.js.map +1 -1
- package/pg-core/codecs.cjs +156 -0
- package/pg-core/codecs.cjs.map +1 -0
- package/pg-core/codecs.d.cts +27 -0
- package/pg-core/codecs.d.ts +27 -0
- package/pg-core/codecs.js +148 -0
- package/pg-core/codecs.js.map +1 -0
- package/pg-core/columns/bigint.cjs +10 -9
- package/pg-core/columns/bigint.cjs.map +1 -1
- package/pg-core/columns/bigint.d.cts +2 -3
- package/pg-core/columns/bigint.d.ts +2 -3
- package/pg-core/columns/bigint.js +10 -9
- package/pg-core/columns/bigint.js.map +1 -1
- package/pg-core/columns/bigserial.cjs +6 -6
- package/pg-core/columns/bigserial.cjs.map +1 -1
- package/pg-core/columns/bigserial.d.cts +1 -2
- package/pg-core/columns/bigserial.d.ts +1 -2
- package/pg-core/columns/bigserial.js +6 -6
- package/pg-core/columns/bigserial.js.map +1 -1
- package/pg-core/columns/boolean.cjs +2 -0
- package/pg-core/columns/boolean.cjs.map +1 -1
- package/pg-core/columns/boolean.js +2 -0
- package/pg-core/columns/boolean.js.map +1 -1
- package/pg-core/columns/bytea.cjs +2 -8
- package/pg-core/columns/bytea.cjs.map +1 -1
- package/pg-core/columns/bytea.d.cts +0 -1
- package/pg-core/columns/bytea.d.ts +0 -1
- package/pg-core/columns/bytea.js +2 -8
- package/pg-core/columns/bytea.js.map +1 -1
- package/pg-core/columns/char.cjs +2 -0
- package/pg-core/columns/char.cjs.map +1 -1
- package/pg-core/columns/char.js +2 -0
- package/pg-core/columns/char.js.map +1 -1
- package/pg-core/columns/cidr.cjs +2 -0
- package/pg-core/columns/cidr.cjs.map +1 -1
- package/pg-core/columns/cidr.js +2 -0
- package/pg-core/columns/cidr.js.map +1 -1
- package/pg-core/columns/common.cjs +10 -8
- package/pg-core/columns/common.cjs.map +1 -1
- package/pg-core/columns/common.d.cts +34 -39
- package/pg-core/columns/common.d.ts +34 -39
- package/pg-core/columns/common.js +10 -8
- package/pg-core/columns/common.js.map +1 -1
- package/pg-core/columns/custom.cjs +16 -46
- package/pg-core/columns/custom.cjs.map +1 -1
- package/pg-core/columns/custom.d.cts +17 -8
- package/pg-core/columns/custom.d.ts +17 -8
- package/pg-core/columns/custom.js +16 -46
- package/pg-core/columns/custom.js.map +1 -1
- package/pg-core/columns/date.cjs +11 -12
- package/pg-core/columns/date.cjs.map +1 -1
- package/pg-core/columns/date.d.cts +3 -4
- package/pg-core/columns/date.d.ts +3 -4
- package/pg-core/columns/date.js +11 -12
- package/pg-core/columns/date.js.map +1 -1
- package/pg-core/columns/double-precision.cjs +2 -4
- package/pg-core/columns/double-precision.cjs.map +1 -1
- package/pg-core/columns/double-precision.d.cts +0 -1
- package/pg-core/columns/double-precision.d.ts +0 -1
- package/pg-core/columns/double-precision.js +2 -4
- package/pg-core/columns/double-precision.js.map +1 -1
- package/pg-core/columns/enum.cjs +4 -0
- package/pg-core/columns/enum.cjs.map +1 -1
- package/pg-core/columns/enum.js +4 -0
- package/pg-core/columns/enum.js.map +1 -1
- package/pg-core/columns/index.d.cts +2 -2
- package/pg-core/columns/index.d.ts +2 -2
- package/pg-core/columns/inet.cjs +2 -0
- package/pg-core/columns/inet.cjs.map +1 -1
- package/pg-core/columns/inet.js +2 -0
- package/pg-core/columns/inet.js.map +1 -1
- package/pg-core/columns/integer.cjs +2 -4
- package/pg-core/columns/integer.cjs.map +1 -1
- package/pg-core/columns/integer.d.cts +0 -1
- package/pg-core/columns/integer.d.ts +0 -1
- package/pg-core/columns/integer.js +2 -4
- package/pg-core/columns/integer.js.map +1 -1
- package/pg-core/columns/interval.cjs +2 -0
- package/pg-core/columns/interval.cjs.map +1 -1
- package/pg-core/columns/interval.js +2 -0
- package/pg-core/columns/interval.js.map +1 -1
- package/pg-core/columns/json.cjs +2 -11
- package/pg-core/columns/json.cjs.map +1 -1
- package/pg-core/columns/json.d.cts +0 -2
- package/pg-core/columns/json.d.ts +0 -2
- package/pg-core/columns/json.js +2 -11
- package/pg-core/columns/json.js.map +1 -1
- package/pg-core/columns/jsonb.cjs +2 -11
- package/pg-core/columns/jsonb.cjs.map +1 -1
- package/pg-core/columns/jsonb.d.cts +0 -2
- package/pg-core/columns/jsonb.d.ts +0 -2
- package/pg-core/columns/jsonb.js +2 -11
- package/pg-core/columns/jsonb.js.map +1 -1
- package/pg-core/columns/line.cjs +12 -8
- package/pg-core/columns/line.cjs.map +1 -1
- package/pg-core/columns/line.d.cts +5 -5
- package/pg-core/columns/line.d.ts +5 -5
- package/pg-core/columns/line.js +12 -8
- package/pg-core/columns/line.js.map +1 -1
- package/pg-core/columns/macaddr.cjs +2 -0
- package/pg-core/columns/macaddr.cjs.map +1 -1
- package/pg-core/columns/macaddr.js +2 -0
- package/pg-core/columns/macaddr.js.map +1 -1
- package/pg-core/columns/macaddr8.cjs +2 -0
- package/pg-core/columns/macaddr8.cjs.map +1 -1
- package/pg-core/columns/macaddr8.js +2 -0
- package/pg-core/columns/macaddr8.js.map +1 -1
- package/pg-core/columns/numeric.cjs +12 -15
- package/pg-core/columns/numeric.cjs.map +1 -1
- package/pg-core/columns/numeric.d.cts +4 -5
- package/pg-core/columns/numeric.d.ts +4 -5
- package/pg-core/columns/numeric.js +12 -15
- package/pg-core/columns/numeric.js.map +1 -1
- package/pg-core/columns/point.cjs +19 -21
- package/pg-core/columns/point.cjs.map +1 -1
- package/pg-core/columns/point.d.cts +5 -11
- package/pg-core/columns/point.d.ts +5 -11
- package/pg-core/columns/point.js +19 -21
- package/pg-core/columns/point.js.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.cjs +12 -9
- package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.d.cts +5 -5
- package/pg-core/columns/postgis_extension/geometry.d.ts +5 -5
- package/pg-core/columns/postgis_extension/geometry.js +12 -9
- package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
- package/pg-core/columns/real.cjs +2 -4
- package/pg-core/columns/real.cjs.map +1 -1
- package/pg-core/columns/real.d.cts +0 -1
- package/pg-core/columns/real.d.ts +0 -1
- package/pg-core/columns/real.js +2 -4
- package/pg-core/columns/real.js.map +1 -1
- package/pg-core/columns/serial.cjs +2 -0
- package/pg-core/columns/serial.cjs.map +1 -1
- package/pg-core/columns/serial.js +2 -0
- package/pg-core/columns/serial.js.map +1 -1
- package/pg-core/columns/smallint.cjs +2 -4
- package/pg-core/columns/smallint.cjs.map +1 -1
- package/pg-core/columns/smallint.d.cts +0 -1
- package/pg-core/columns/smallint.d.ts +0 -1
- package/pg-core/columns/smallint.js +2 -4
- package/pg-core/columns/smallint.js.map +1 -1
- package/pg-core/columns/smallserial.cjs +2 -0
- package/pg-core/columns/smallserial.cjs.map +1 -1
- package/pg-core/columns/smallserial.js +2 -0
- package/pg-core/columns/smallserial.js.map +1 -1
- package/pg-core/columns/text.cjs +2 -0
- package/pg-core/columns/text.cjs.map +1 -1
- package/pg-core/columns/text.js +2 -0
- package/pg-core/columns/text.js.map +1 -1
- package/pg-core/columns/time.cjs +2 -0
- package/pg-core/columns/time.cjs.map +1 -1
- package/pg-core/columns/time.js +2 -0
- package/pg-core/columns/time.js.map +1 -1
- package/pg-core/columns/timestamp.cjs +13 -14
- package/pg-core/columns/timestamp.cjs.map +1 -1
- package/pg-core/columns/timestamp.d.cts +3 -4
- package/pg-core/columns/timestamp.d.ts +3 -4
- package/pg-core/columns/timestamp.js +13 -14
- package/pg-core/columns/timestamp.js.map +1 -1
- package/pg-core/columns/uuid.cjs +2 -0
- package/pg-core/columns/uuid.cjs.map +1 -1
- package/pg-core/columns/uuid.js +2 -0
- package/pg-core/columns/uuid.js.map +1 -1
- package/pg-core/columns/varchar.cjs +2 -0
- package/pg-core/columns/varchar.cjs.map +1 -1
- package/pg-core/columns/varchar.js +2 -0
- package/pg-core/columns/varchar.js.map +1 -1
- package/pg-core/columns/vector_extension/bit.cjs +2 -0
- package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
- package/pg-core/columns/vector_extension/bit.js +2 -0
- package/pg-core/columns/vector_extension/bit.js.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.cjs +6 -4
- package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.d.cts +2 -2
- package/pg-core/columns/vector_extension/halfvec.d.ts +2 -2
- package/pg-core/columns/vector_extension/halfvec.js +6 -4
- package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
- package/pg-core/columns/vector_extension/sparsevec.cjs +2 -0
- package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
- package/pg-core/columns/vector_extension/sparsevec.js +2 -0
- package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
- package/pg-core/columns/vector_extension/vector.cjs +6 -4
- package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
- package/pg-core/columns/vector_extension/vector.d.cts +2 -2
- package/pg-core/columns/vector_extension/vector.d.ts +2 -2
- package/pg-core/columns/vector_extension/vector.js +6 -4
- package/pg-core/columns/vector_extension/vector.js.map +1 -1
- package/pg-core/dialect.cjs +73 -226
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.d.cts +27 -34
- package/pg-core/dialect.d.ts +27 -34
- package/pg-core/dialect.js +78 -230
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/effect/count.cjs +1 -1
- package/pg-core/effect/count.cjs.map +1 -1
- package/pg-core/effect/count.d.cts +2 -2
- package/pg-core/effect/count.d.ts +2 -2
- package/pg-core/effect/count.js +1 -1
- package/pg-core/effect/count.js.map +1 -1
- package/pg-core/effect/db.cjs +9 -18
- package/pg-core/effect/db.cjs.map +1 -1
- package/pg-core/effect/db.d.cts +7 -11
- package/pg-core/effect/db.d.ts +6 -10
- package/pg-core/effect/db.js +9 -18
- package/pg-core/effect/db.js.map +1 -1
- package/pg-core/effect/delete.cjs +7 -5
- package/pg-core/effect/delete.cjs.map +1 -1
- package/pg-core/effect/delete.d.cts +1 -1
- package/pg-core/effect/delete.d.ts +1 -1
- package/pg-core/effect/delete.js +7 -5
- package/pg-core/effect/delete.js.map +1 -1
- package/pg-core/effect/insert.cjs +7 -5
- package/pg-core/effect/insert.cjs.map +1 -1
- package/pg-core/effect/insert.d.cts +1 -1
- package/pg-core/effect/insert.d.ts +1 -1
- package/pg-core/effect/insert.js +7 -5
- package/pg-core/effect/insert.js.map +1 -1
- package/pg-core/effect/query.cjs +7 -6
- package/pg-core/effect/query.cjs.map +1 -1
- package/pg-core/effect/query.d.cts +1 -1
- package/pg-core/effect/query.d.ts +1 -1
- package/pg-core/effect/query.js +7 -6
- package/pg-core/effect/query.js.map +1 -1
- package/pg-core/effect/refresh-materialized-view.cjs +1 -2
- package/pg-core/effect/refresh-materialized-view.cjs.map +1 -1
- package/pg-core/effect/refresh-materialized-view.d.cts +1 -1
- package/pg-core/effect/refresh-materialized-view.d.ts +1 -1
- package/pg-core/effect/refresh-materialized-view.js +1 -2
- package/pg-core/effect/refresh-materialized-view.js.map +1 -1
- package/pg-core/effect/select.cjs +3 -5
- package/pg-core/effect/select.cjs.map +1 -1
- package/pg-core/effect/select.d.cts +1 -1
- package/pg-core/effect/select.d.ts +1 -1
- package/pg-core/effect/select.js +3 -5
- package/pg-core/effect/select.js.map +1 -1
- package/pg-core/effect/session.cjs +28 -17
- package/pg-core/effect/session.cjs.map +1 -1
- package/pg-core/effect/session.d.cts +24 -28
- package/pg-core/effect/session.d.ts +25 -29
- package/pg-core/effect/session.js +29 -18
- package/pg-core/effect/session.js.map +1 -1
- package/pg-core/effect/update.cjs +8 -8
- package/pg-core/effect/update.cjs.map +1 -1
- package/pg-core/effect/update.d.cts +1 -1
- package/pg-core/effect/update.d.ts +1 -1
- package/pg-core/effect/update.js +8 -8
- package/pg-core/effect/update.js.map +1 -1
- package/pg-core/index.cjs +4 -4
- package/pg-core/index.d.cts +4 -4
- package/pg-core/index.d.ts +4 -4
- package/pg-core/index.js +1 -1
- package/pg-core/query-builders/delete.cjs +6 -2
- package/pg-core/query-builders/delete.cjs.map +1 -1
- package/pg-core/query-builders/delete.d.cts +2 -0
- package/pg-core/query-builders/delete.d.ts +2 -0
- package/pg-core/query-builders/delete.js +6 -2
- package/pg-core/query-builders/delete.js.map +1 -1
- package/pg-core/query-builders/insert.cjs +7 -2
- package/pg-core/query-builders/insert.cjs.map +1 -1
- package/pg-core/query-builders/insert.d.cts +2 -0
- package/pg-core/query-builders/insert.d.ts +2 -0
- package/pg-core/query-builders/insert.js +7 -2
- package/pg-core/query-builders/insert.js.map +1 -1
- package/pg-core/query-builders/query-builder.cjs +2 -1
- package/pg-core/query-builders/query-builder.cjs.map +1 -1
- package/pg-core/query-builders/query-builder.js +2 -1
- package/pg-core/query-builders/query-builder.js.map +1 -1
- package/pg-core/query-builders/query.cjs +0 -1
- package/pg-core/query-builders/query.cjs.map +1 -1
- package/pg-core/query-builders/query.d.cts +2 -1
- package/pg-core/query-builders/query.d.ts +2 -1
- package/pg-core/query-builders/query.js +0 -1
- package/pg-core/query-builders/query.js.map +1 -1
- package/pg-core/query-builders/raw.cjs +0 -4
- package/pg-core/query-builders/raw.cjs.map +1 -1
- package/pg-core/query-builders/raw.js +0 -4
- package/pg-core/query-builders/raw.js.map +1 -1
- package/pg-core/query-builders/select.cjs +6 -2
- package/pg-core/query-builders/select.cjs.map +1 -1
- package/pg-core/query-builders/select.d.cts +1 -0
- package/pg-core/query-builders/select.d.ts +1 -0
- package/pg-core/query-builders/select.js +6 -2
- package/pg-core/query-builders/select.js.map +1 -1
- package/pg-core/query-builders/select.types.d.cts +1 -0
- package/pg-core/query-builders/select.types.d.ts +1 -0
- package/pg-core/query-builders/update.cjs +6 -2
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.d.cts +2 -0
- package/pg-core/query-builders/update.d.ts +2 -0
- package/pg-core/query-builders/update.js +6 -2
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/session.cjs +3 -5
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +4 -7
- package/pg-core/session.d.ts +4 -7
- package/pg-core/session.js +3 -5
- package/pg-core/session.js.map +1 -1
- package/pg-core/table.cjs +1 -1
- package/pg-core/table.cjs.map +1 -1
- package/pg-core/table.js +1 -1
- package/pg-core/table.js.map +1 -1
- package/pg-core/utils.cjs.map +1 -1
- package/pg-core/utils.d.cts +7 -1
- package/pg-core/utils.d.ts +7 -1
- package/pg-core/utils.js.map +1 -1
- package/pg-core/view.cjs +2 -2
- package/pg-core/view.cjs.map +1 -1
- package/pg-core/view.js +2 -2
- package/pg-core/view.js.map +1 -1
- package/pg-proxy/driver.cjs +10 -15
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.d.cts +6 -3
- package/pg-proxy/driver.d.ts +6 -3
- package/pg-proxy/driver.js +10 -14
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/index.cjs +0 -2
- package/pg-proxy/index.d.cts +2 -2
- package/pg-proxy/index.d.ts +2 -2
- package/pg-proxy/index.js +2 -2
- package/pg-proxy/migrator.cjs.map +1 -1
- package/pg-proxy/migrator.d.cts +1 -1
- package/pg-proxy/migrator.d.ts +1 -1
- package/pg-proxy/migrator.js.map +1 -1
- package/pg-proxy/session.cjs +8 -84
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +9 -32
- package/pg-proxy/session.d.ts +9 -32
- package/pg-proxy/session.js +10 -84
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +71 -33
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +12 -17
- package/pglite/driver.d.ts +13 -18
- package/pglite/driver.js +71 -32
- package/pglite/driver.js.map +1 -1
- package/pglite/index.cjs +2 -3
- package/pglite/index.d.cts +3 -3
- package/pglite/index.d.ts +3 -3
- package/pglite/index.js +3 -3
- package/pglite/migrator.cjs.map +1 -1
- package/pglite/migrator.d.cts +1 -1
- package/pglite/migrator.d.ts +1 -1
- package/pglite/migrator.js.map +1 -1
- package/pglite/session.cjs +24 -85
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +9 -30
- package/pglite/session.d.ts +9 -30
- package/pglite/session.js +26 -86
- package/pglite/session.js.map +1 -1
- package/planetscale-serverless/driver.cjs +3 -2
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +1 -0
- package/planetscale-serverless/driver.d.ts +1 -0
- package/planetscale-serverless/driver.js +3 -2
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/session.cjs +26 -19
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +12 -6
- package/planetscale-serverless/session.d.ts +13 -7
- package/planetscale-serverless/session.js +27 -20
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +124 -19
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +10 -6
- package/postgres-js/driver.d.ts +10 -6
- package/postgres-js/driver.js +124 -19
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/index.cjs +2 -2
- package/postgres-js/index.d.cts +3 -3
- package/postgres-js/index.d.ts +3 -3
- package/postgres-js/index.js +3 -3
- package/postgres-js/migrator.cjs.map +1 -1
- package/postgres-js/migrator.d.cts +1 -1
- package/postgres-js/migrator.d.ts +1 -1
- package/postgres-js/migrator.js.map +1 -1
- package/postgres-js/session.cjs +16 -111
- package/postgres-js/session.cjs.map +1 -1
- package/postgres-js/session.d.cts +10 -31
- package/postgres-js/session.d.ts +9 -30
- package/postgres-js/session.js +17 -111
- package/postgres-js/session.js.map +1 -1
- package/prisma/mysql/session.cjs +2 -1
- package/prisma/mysql/session.cjs.map +1 -1
- package/prisma/mysql/session.d.cts +1 -0
- package/prisma/mysql/session.d.ts +2 -1
- package/prisma/mysql/session.js +2 -1
- package/prisma/mysql/session.js.map +1 -1
- package/prisma/pg/driver.cjs +9 -3
- package/prisma/pg/driver.cjs.map +1 -1
- package/prisma/pg/driver.d.cts +7 -3
- package/prisma/pg/driver.d.ts +7 -3
- package/prisma/pg/driver.js +9 -4
- package/prisma/pg/driver.js.map +1 -1
- package/prisma/pg/index.cjs +2 -2
- package/prisma/pg/index.d.cts +3 -3
- package/prisma/pg/index.d.ts +3 -3
- package/prisma/pg/index.js +3 -3
- package/prisma/pg/session.cjs +1 -25
- package/prisma/pg/session.cjs.map +1 -1
- package/prisma/pg/session.d.cts +3 -15
- package/prisma/pg/session.d.ts +2 -14
- package/prisma/pg/session.js +2 -25
- package/prisma/pg/session.js.map +1 -1
- package/prisma/sqlite/session.cjs +0 -3
- package/prisma/sqlite/session.cjs.map +1 -1
- package/prisma/sqlite/session.d.cts +0 -1
- package/prisma/sqlite/session.d.ts +1 -2
- package/prisma/sqlite/session.js +0 -3
- package/prisma/sqlite/session.js.map +1 -1
- package/query-builders/query-builder.cjs +4 -0
- package/query-builders/query-builder.cjs.map +1 -1
- package/query-builders/query-builder.js +4 -0
- package/query-builders/query-builder.js.map +1 -1
- package/relations.cjs +84 -23
- package/relations.cjs.map +1 -1
- package/relations.d.cts +41 -16
- package/relations.d.ts +41 -16
- package/relations.js +83 -24
- package/relations.js.map +1 -1
- package/row-mappers/index.cjs +1 -1
- package/row-mappers/index.cjs.map +1 -1
- package/row-mappers/index.js +1 -1
- package/row-mappers/index.js.map +1 -1
- package/singlestore/driver.cjs +4 -2
- package/singlestore/driver.cjs.map +1 -1
- package/singlestore/driver.d.cts +2 -1
- package/singlestore/driver.d.ts +3 -2
- package/singlestore/driver.js +4 -2
- package/singlestore/driver.js.map +1 -1
- package/singlestore/session.cjs +16 -6
- package/singlestore/session.cjs.map +1 -1
- package/singlestore/session.d.cts +8 -4
- package/singlestore/session.d.ts +8 -4
- package/singlestore/session.js +17 -7
- package/singlestore/session.js.map +1 -1
- package/singlestore-core/columns/bigint.cjs +4 -4
- package/singlestore-core/columns/bigint.cjs.map +1 -1
- package/singlestore-core/columns/bigint.d.cts +2 -2
- package/singlestore-core/columns/bigint.d.ts +2 -2
- package/singlestore-core/columns/bigint.js +4 -4
- package/singlestore-core/columns/bigint.js.map +1 -1
- package/singlestore-core/columns/binary.cjs +2 -2
- package/singlestore-core/columns/binary.cjs.map +1 -1
- package/singlestore-core/columns/binary.d.cts +1 -1
- package/singlestore-core/columns/binary.d.ts +1 -1
- package/singlestore-core/columns/binary.js +2 -2
- package/singlestore-core/columns/binary.js.map +1 -1
- package/singlestore-core/columns/boolean.cjs +2 -2
- package/singlestore-core/columns/boolean.cjs.map +1 -1
- package/singlestore-core/columns/boolean.d.cts +1 -1
- package/singlestore-core/columns/boolean.d.ts +1 -1
- package/singlestore-core/columns/boolean.js +2 -2
- package/singlestore-core/columns/boolean.js.map +1 -1
- package/singlestore-core/columns/custom.cjs +4 -4
- package/singlestore-core/columns/custom.cjs.map +1 -1
- package/singlestore-core/columns/custom.d.cts +2 -2
- package/singlestore-core/columns/custom.d.ts +2 -2
- package/singlestore-core/columns/custom.js +4 -4
- package/singlestore-core/columns/custom.js.map +1 -1
- package/singlestore-core/columns/date.cjs +2 -2
- package/singlestore-core/columns/date.cjs.map +1 -1
- package/singlestore-core/columns/date.d.cts +1 -1
- package/singlestore-core/columns/date.d.ts +1 -1
- package/singlestore-core/columns/date.js +2 -2
- package/singlestore-core/columns/date.js.map +1 -1
- package/singlestore-core/columns/datetime.cjs +6 -6
- package/singlestore-core/columns/datetime.cjs.map +1 -1
- package/singlestore-core/columns/datetime.d.cts +3 -3
- package/singlestore-core/columns/datetime.d.ts +3 -3
- package/singlestore-core/columns/datetime.js +6 -6
- package/singlestore-core/columns/datetime.js.map +1 -1
- package/singlestore-core/columns/decimal.cjs +4 -4
- package/singlestore-core/columns/decimal.cjs.map +1 -1
- package/singlestore-core/columns/decimal.d.cts +2 -2
- package/singlestore-core/columns/decimal.d.ts +2 -2
- package/singlestore-core/columns/decimal.js +4 -4
- package/singlestore-core/columns/decimal.js.map +1 -1
- package/singlestore-core/columns/float.cjs +2 -2
- package/singlestore-core/columns/float.cjs.map +1 -1
- package/singlestore-core/columns/float.d.cts +1 -1
- package/singlestore-core/columns/float.d.ts +1 -1
- package/singlestore-core/columns/float.js +2 -2
- package/singlestore-core/columns/float.js.map +1 -1
- package/singlestore-core/columns/int.cjs +2 -2
- package/singlestore-core/columns/int.cjs.map +1 -1
- package/singlestore-core/columns/int.d.cts +1 -1
- package/singlestore-core/columns/int.d.ts +1 -1
- package/singlestore-core/columns/int.js +2 -2
- package/singlestore-core/columns/int.js.map +1 -1
- package/singlestore-core/columns/json.cjs +2 -2
- package/singlestore-core/columns/json.cjs.map +1 -1
- package/singlestore-core/columns/json.d.cts +1 -1
- package/singlestore-core/columns/json.d.ts +1 -1
- package/singlestore-core/columns/json.js +2 -2
- package/singlestore-core/columns/json.js.map +1 -1
- package/singlestore-core/columns/mediumint.cjs +2 -2
- package/singlestore-core/columns/mediumint.cjs.map +1 -1
- package/singlestore-core/columns/mediumint.d.cts +1 -1
- package/singlestore-core/columns/mediumint.d.ts +1 -1
- package/singlestore-core/columns/mediumint.js +2 -2
- package/singlestore-core/columns/mediumint.js.map +1 -1
- package/singlestore-core/columns/serial.cjs +2 -2
- package/singlestore-core/columns/serial.cjs.map +1 -1
- package/singlestore-core/columns/serial.d.cts +1 -1
- package/singlestore-core/columns/serial.d.ts +1 -1
- package/singlestore-core/columns/serial.js +2 -2
- package/singlestore-core/columns/serial.js.map +1 -1
- package/singlestore-core/columns/smallint.cjs +2 -2
- package/singlestore-core/columns/smallint.cjs.map +1 -1
- package/singlestore-core/columns/smallint.d.cts +1 -1
- package/singlestore-core/columns/smallint.d.ts +1 -1
- package/singlestore-core/columns/smallint.js +2 -2
- package/singlestore-core/columns/smallint.js.map +1 -1
- package/singlestore-core/columns/timestamp.cjs +6 -6
- package/singlestore-core/columns/timestamp.cjs.map +1 -1
- package/singlestore-core/columns/timestamp.d.cts +3 -3
- package/singlestore-core/columns/timestamp.d.ts +3 -3
- package/singlestore-core/columns/timestamp.js +6 -6
- package/singlestore-core/columns/timestamp.js.map +1 -1
- package/singlestore-core/columns/tinyint.cjs +2 -2
- package/singlestore-core/columns/tinyint.cjs.map +1 -1
- package/singlestore-core/columns/tinyint.d.cts +1 -1
- package/singlestore-core/columns/tinyint.d.ts +1 -1
- package/singlestore-core/columns/tinyint.js +2 -2
- package/singlestore-core/columns/tinyint.js.map +1 -1
- package/singlestore-core/columns/varbinary.cjs +2 -2
- package/singlestore-core/columns/varbinary.cjs.map +1 -1
- package/singlestore-core/columns/varbinary.d.cts +1 -1
- package/singlestore-core/columns/varbinary.d.ts +1 -1
- package/singlestore-core/columns/varbinary.js +2 -2
- package/singlestore-core/columns/varbinary.js.map +1 -1
- package/singlestore-core/columns/vector.cjs +8 -8
- package/singlestore-core/columns/vector.cjs.map +1 -1
- package/singlestore-core/columns/vector.d.cts +4 -4
- package/singlestore-core/columns/vector.d.ts +4 -4
- package/singlestore-core/columns/vector.js +8 -8
- package/singlestore-core/columns/vector.js.map +1 -1
- package/singlestore-core/columns/year.cjs +2 -2
- package/singlestore-core/columns/year.cjs.map +1 -1
- package/singlestore-core/columns/year.d.cts +1 -1
- package/singlestore-core/columns/year.d.ts +1 -1
- package/singlestore-core/columns/year.js +2 -2
- package/singlestore-core/columns/year.js.map +1 -1
- package/singlestore-core/db.d.ts +1 -1
- package/singlestore-core/dialect.cjs +1 -1
- package/singlestore-core/dialect.d.ts +1 -1
- package/singlestore-core/dialect.js +1 -1
- package/singlestore-core/query-builders/query.cjs +13 -5
- package/singlestore-core/query-builders/query.cjs.map +1 -1
- package/singlestore-core/query-builders/query.d.ts +1 -1
- package/singlestore-core/query-builders/query.js +13 -5
- package/singlestore-core/query-builders/query.js.map +1 -1
- package/singlestore-core/query-builders/select.cjs +4 -0
- package/singlestore-core/query-builders/select.cjs.map +1 -1
- package/singlestore-core/query-builders/select.js +4 -0
- package/singlestore-core/query-builders/select.js.map +1 -1
- package/singlestore-core/session.cjs.map +1 -1
- package/singlestore-core/session.d.cts +2 -2
- package/singlestore-core/session.d.ts +2 -2
- package/singlestore-core/session.js.map +1 -1
- package/singlestore-core/table.cjs +1 -1
- package/singlestore-core/table.cjs.map +1 -1
- package/singlestore-core/table.js +1 -1
- package/singlestore-core/table.js.map +1 -1
- package/singlestore-proxy/driver.cjs +5 -2
- package/singlestore-proxy/driver.cjs.map +1 -1
- package/singlestore-proxy/driver.js +5 -2
- package/singlestore-proxy/driver.js.map +1 -1
- package/singlestore-proxy/session.cjs +11 -6
- package/singlestore-proxy/session.cjs.map +1 -1
- package/singlestore-proxy/session.d.cts +9 -4
- package/singlestore-proxy/session.d.ts +9 -4
- package/singlestore-proxy/session.js +12 -7
- package/singlestore-proxy/session.js.map +1 -1
- package/sql/index.cjs +1 -0
- package/sql/index.d.cts +2 -2
- package/sql/index.d.ts +2 -2
- package/sql/index.js +2 -2
- package/sql/sql.cjs +32 -11
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.d.cts +15 -5
- package/sql/sql.d.ts +15 -5
- package/sql/sql.js +32 -12
- package/sql/sql.js.map +1 -1
- package/sql-js/driver.cjs +5 -2
- package/sql-js/driver.cjs.map +1 -1
- package/sql-js/driver.d.ts +1 -1
- package/sql-js/driver.js +5 -2
- package/sql-js/driver.js.map +1 -1
- package/sql-js/session.cjs +14 -14
- package/sql-js/session.cjs.map +1 -1
- package/sql-js/session.d.cts +10 -6
- package/sql-js/session.d.ts +10 -6
- package/sql-js/session.js +15 -15
- package/sql-js/session.js.map +1 -1
- package/sqlite-cloud/driver.cjs +3 -2
- package/sqlite-cloud/driver.cjs.map +1 -1
- package/sqlite-cloud/driver.d.ts +1 -1
- package/sqlite-cloud/driver.js +3 -2
- package/sqlite-cloud/driver.js.map +1 -1
- package/sqlite-cloud/session.cjs +20 -19
- package/sqlite-cloud/session.cjs.map +1 -1
- package/sqlite-cloud/session.d.cts +9 -6
- package/sqlite-cloud/session.d.ts +9 -6
- package/sqlite-cloud/session.js +21 -20
- package/sqlite-cloud/session.js.map +1 -1
- package/sqlite-core/columns/blob.cjs +10 -10
- package/sqlite-core/columns/blob.cjs.map +1 -1
- package/sqlite-core/columns/blob.d.cts +5 -5
- package/sqlite-core/columns/blob.d.ts +5 -5
- package/sqlite-core/columns/blob.js +10 -10
- package/sqlite-core/columns/blob.js.map +1 -1
- package/sqlite-core/columns/custom.cjs +4 -4
- package/sqlite-core/columns/custom.cjs.map +1 -1
- package/sqlite-core/columns/custom.d.cts +2 -2
- package/sqlite-core/columns/custom.d.ts +2 -2
- package/sqlite-core/columns/custom.js +4 -4
- package/sqlite-core/columns/custom.js.map +1 -1
- package/sqlite-core/columns/integer.cjs +8 -8
- package/sqlite-core/columns/integer.cjs.map +1 -1
- package/sqlite-core/columns/integer.d.cts +4 -4
- package/sqlite-core/columns/integer.d.ts +4 -4
- package/sqlite-core/columns/integer.js +8 -8
- package/sqlite-core/columns/integer.js.map +1 -1
- package/sqlite-core/columns/numeric.cjs +4 -4
- package/sqlite-core/columns/numeric.cjs.map +1 -1
- package/sqlite-core/columns/numeric.d.cts +2 -2
- package/sqlite-core/columns/numeric.d.ts +2 -2
- package/sqlite-core/columns/numeric.js +4 -4
- package/sqlite-core/columns/numeric.js.map +1 -1
- package/sqlite-core/columns/text.cjs +4 -4
- package/sqlite-core/columns/text.cjs.map +1 -1
- package/sqlite-core/columns/text.d.cts +2 -2
- package/sqlite-core/columns/text.d.ts +2 -2
- package/sqlite-core/columns/text.js +4 -4
- package/sqlite-core/columns/text.js.map +1 -1
- package/sqlite-core/db.d.ts +1 -1
- package/sqlite-core/dialect.cjs +2 -2
- package/sqlite-core/dialect.d.ts +1 -1
- package/sqlite-core/dialect.js +2 -2
- package/sqlite-core/query-builders/_query.cjs +1 -1
- package/sqlite-core/query-builders/_query.cjs.map +1 -1
- package/sqlite-core/query-builders/_query.js +1 -1
- package/sqlite-core/query-builders/_query.js.map +1 -1
- package/sqlite-core/query-builders/delete.cjs +1 -1
- package/sqlite-core/query-builders/delete.cjs.map +1 -1
- package/sqlite-core/query-builders/delete.js +1 -1
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/insert.cjs +1 -1
- package/sqlite-core/query-builders/insert.cjs.map +1 -1
- package/sqlite-core/query-builders/insert.js +1 -1
- package/sqlite-core/query-builders/insert.js.map +1 -1
- package/sqlite-core/query-builders/query.cjs +13 -5
- package/sqlite-core/query-builders/query.cjs.map +1 -1
- package/sqlite-core/query-builders/query.d.ts +1 -1
- package/sqlite-core/query-builders/query.js +13 -5
- package/sqlite-core/query-builders/query.js.map +1 -1
- package/sqlite-core/query-builders/raw.cjs +0 -4
- package/sqlite-core/query-builders/raw.cjs.map +1 -1
- package/sqlite-core/query-builders/raw.js +0 -4
- package/sqlite-core/query-builders/raw.js.map +1 -1
- package/sqlite-core/query-builders/select.cjs +5 -1
- package/sqlite-core/query-builders/select.cjs.map +1 -1
- package/sqlite-core/query-builders/select.js +5 -1
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs +1 -1
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.js +1 -1
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/session.cjs +8 -8
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +5 -5
- package/sqlite-core/session.d.ts +5 -5
- package/sqlite-core/session.js +8 -8
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-core/table.cjs +1 -1
- package/sqlite-core/table.cjs.map +1 -1
- package/sqlite-core/table.js +1 -1
- package/sqlite-core/table.js.map +1 -1
- package/sqlite-proxy/driver.cjs +3 -2
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.d.ts +1 -1
- package/sqlite-proxy/driver.js +3 -2
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/session.cjs +19 -16
- package/sqlite-proxy/session.cjs.map +1 -1
- package/sqlite-proxy/session.d.cts +11 -7
- package/sqlite-proxy/session.d.ts +11 -7
- package/sqlite-proxy/session.js +20 -17
- package/sqlite-proxy/session.js.map +1 -1
- package/table.d.cts +1 -1
- package/table.d.ts +1 -1
- package/tidb-serverless/driver.cjs +3 -2
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +1 -0
- package/tidb-serverless/driver.d.ts +1 -0
- package/tidb-serverless/driver.js +3 -2
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/session.cjs +24 -36
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +10 -4
- package/tidb-serverless/session.d.ts +11 -5
- package/tidb-serverless/session.js +25 -37
- package/tidb-serverless/session.js.map +1 -1
- package/tursodatabase/driver-core.cjs +3 -2
- package/tursodatabase/driver-core.cjs.map +1 -1
- package/tursodatabase/driver-core.d.ts +1 -1
- package/tursodatabase/driver-core.js +3 -2
- package/tursodatabase/driver-core.js.map +1 -1
- package/tursodatabase/session.cjs +19 -18
- package/tursodatabase/session.cjs.map +1 -1
- package/tursodatabase/session.d.cts +9 -6
- package/tursodatabase/session.d.ts +9 -6
- package/tursodatabase/session.js +20 -19
- package/tursodatabase/session.js.map +1 -1
- package/up-migrations/effect-pg.cjs +3 -3
- package/up-migrations/effect-pg.cjs.map +1 -1
- package/up-migrations/effect-pg.js +3 -3
- package/up-migrations/effect-pg.js.map +1 -1
- package/up-migrations/pg.cjs +3 -8
- package/up-migrations/pg.cjs.map +1 -1
- package/up-migrations/pg.d.cts +1 -1
- package/up-migrations/pg.d.ts +1 -1
- package/up-migrations/pg.js +3 -8
- package/up-migrations/pg.js.map +1 -1
- package/up-migrations/sqlite.d.ts +2 -2
- package/utils.cjs +128 -6
- package/utils.cjs.map +1 -1
- package/utils.d.cts +10 -3
- package/utils.d.ts +10 -3
- package/utils.js +126 -7
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +14 -32
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +12 -17
- package/vercel-postgres/driver.d.ts +13 -18
- package/vercel-postgres/driver.js +14 -31
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/index.cjs +2 -3
- package/vercel-postgres/index.d.cts +3 -3
- package/vercel-postgres/index.d.ts +3 -3
- package/vercel-postgres/index.js +3 -3
- package/vercel-postgres/migrator.cjs.map +1 -1
- package/vercel-postgres/migrator.d.cts +1 -1
- package/vercel-postgres/migrator.d.ts +1 -1
- package/vercel-postgres/migrator.js.map +1 -1
- package/vercel-postgres/session.cjs +32 -110
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.d.cts +9 -32
- package/vercel-postgres/session.d.ts +9 -32
- package/vercel-postgres/session.js +34 -111
- package/vercel-postgres/session.js.map +1 -1
- package/xata-http/driver.cjs +91 -31
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +10 -16
- package/xata-http/driver.d.ts +11 -17
- package/xata-http/driver.js +91 -30
- package/xata-http/driver.js.map +1 -1
- package/xata-http/index.cjs +2 -4
- package/xata-http/index.d.cts +3 -3
- package/xata-http/index.d.ts +3 -3
- package/xata-http/index.js +3 -3
- package/xata-http/migrator.cjs +1 -1
- package/xata-http/migrator.cjs.map +1 -1
- package/xata-http/migrator.d.cts +1 -1
- package/xata-http/migrator.d.ts +1 -1
- package/xata-http/migrator.js +1 -1
- package/xata-http/migrator.js.map +1 -1
- package/xata-http/session.cjs +23 -109
- package/xata-http/session.cjs.map +1 -1
- package/xata-http/session.d.cts +7 -33
- package/xata-http/session.d.ts +6 -32
- package/xata-http/session.js +25 -109
- package/xata-http/session.js.map +1 -1
- package/pg-core/query-builders/_query.cjs +0 -101
- package/pg-core/query-builders/_query.cjs.map +0 -1
- package/pg-core/query-builders/_query.d.cts +0 -55
- package/pg-core/query-builders/_query.d.ts +0 -55
- package/pg-core/query-builders/_query.js +0 -97
- package/pg-core/query-builders/_query.js.map +0 -1
- package/pg-core/utils/array.cjs.map +0 -1
- package/pg-core/utils/array.js.map +0 -1
- package/pg-core/utils/index.cjs +0 -6
- package/pg-core/utils/index.d.cts +0 -2
- package/pg-core/utils/index.d.ts +0 -2
- package/pg-core/utils/index.js +0 -3
package/gel/session.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { entityKind } from "../entity.js";
|
|
2
2
|
import { tracer } from "../tracing.js";
|
|
3
|
-
import { mapResultRow } from "../utils.js";
|
|
3
|
+
import { makeJitQueryMapper, mapResultRow } from "../utils.js";
|
|
4
4
|
import { fillPlaceholders } from "../sql/sql.js";
|
|
5
5
|
import { NoopLogger } from "../logger.js";
|
|
6
6
|
import { NoopCache } from "../cache/core/index.js";
|
|
7
|
+
import { makeJitRqbMapper } from "../relations.js";
|
|
7
8
|
import { GelPreparedQuery, GelSession, GelTransaction } from "../gel-core/session.js";
|
|
8
9
|
|
|
9
10
|
//#region src/gel/session.ts
|
|
10
11
|
var GelDbPreparedQuery = class extends GelPreparedQuery {
|
|
11
12
|
static [entityKind] = "GelPreparedQuery";
|
|
12
|
-
|
|
13
|
+
jitMapper;
|
|
14
|
+
constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMapper, customResultMapper, transaction = false, isRqbV2Query, rqbConfig) {
|
|
13
15
|
super({
|
|
14
16
|
sql: queryString,
|
|
15
17
|
params
|
|
@@ -19,10 +21,11 @@ var GelDbPreparedQuery = class extends GelPreparedQuery {
|
|
|
19
21
|
this.params = params;
|
|
20
22
|
this.logger = logger;
|
|
21
23
|
this.fields = fields;
|
|
22
|
-
this.
|
|
24
|
+
this.useJitMapper = useJitMapper;
|
|
23
25
|
this.customResultMapper = customResultMapper;
|
|
24
26
|
this.transaction = transaction;
|
|
25
27
|
this.isRqbV2Query = isRqbV2Query;
|
|
28
|
+
this.rqbConfig = rqbConfig;
|
|
26
29
|
}
|
|
27
30
|
async execute(placeholderValues = {}) {
|
|
28
31
|
if (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);
|
|
@@ -49,7 +52,8 @@ var GelDbPreparedQuery = class extends GelPreparedQuery {
|
|
|
49
52
|
});
|
|
50
53
|
});
|
|
51
54
|
return tracer.startActiveSpan("drizzle.mapResponse", () => {
|
|
52
|
-
|
|
55
|
+
if (customResultMapper) return customResultMapper(result);
|
|
56
|
+
return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))(result) : result.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
|
|
53
57
|
});
|
|
54
58
|
});
|
|
55
59
|
}
|
|
@@ -66,7 +70,7 @@ var GelDbPreparedQuery = class extends GelPreparedQuery {
|
|
|
66
70
|
return client.querySQL(query, params.length ? params : void 0);
|
|
67
71
|
});
|
|
68
72
|
return tracer.startActiveSpan("drizzle.mapResponse", () => {
|
|
69
|
-
return customResultMapper(result);
|
|
73
|
+
return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))(result) : customResultMapper(result);
|
|
70
74
|
});
|
|
71
75
|
});
|
|
72
76
|
}
|
|
@@ -85,10 +89,6 @@ var GelDbPreparedQuery = class extends GelPreparedQuery {
|
|
|
85
89
|
});
|
|
86
90
|
});
|
|
87
91
|
}
|
|
88
|
-
/** @internal */
|
|
89
|
-
isResponseInArrayMode() {
|
|
90
|
-
return this._isResponseInArrayMode;
|
|
91
|
-
}
|
|
92
92
|
};
|
|
93
93
|
var GelDbSession = class GelDbSession extends GelSession {
|
|
94
94
|
static [entityKind] = "GelDbSession";
|
|
@@ -103,11 +103,11 @@ var GelDbSession = class GelDbSession extends GelSession {
|
|
|
103
103
|
this.logger = options.logger ?? new NoopLogger();
|
|
104
104
|
this.cache = options.cache ?? new NoopCache();
|
|
105
105
|
}
|
|
106
|
-
prepareQuery(query, fields, name,
|
|
107
|
-
return new GelDbPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields,
|
|
106
|
+
prepareQuery(query, fields, name, customResultMapper, queryMetadata, cacheConfig) {
|
|
107
|
+
return new GelDbPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMapper, customResultMapper);
|
|
108
108
|
}
|
|
109
|
-
prepareRelationalQuery(query, fields, name, customResultMapper) {
|
|
110
|
-
return new GelDbPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields,
|
|
109
|
+
prepareRelationalQuery(query, fields, name, customResultMapper, config) {
|
|
110
|
+
return new GelDbPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMapper, customResultMapper, void 0, true, config);
|
|
111
111
|
}
|
|
112
112
|
async transaction(transaction) {
|
|
113
113
|
return await this.client.transaction(async (clientTx) => {
|
package/gel/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","names":[],"sources":["../../src/gel/session.ts"],"sourcesContent":["import type { Client } from 'gel';\nimport type { Transaction } from 'gel/dist/transaction';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/gel-core/query-builders/select.types.ts';\nimport { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from '~/gel-core/session.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type GelClient = Client | Transaction;\n\nexport class GelDbPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends GelPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'GelPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate transaction: boolean = false,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.querySQL(query, params.length ? params : undefined);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = (await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.withSQLRowMode('array').querySQL(query, params.length ? params : undefined);\n\t\t\t\t});\n\t\t\t})) as unknown[][];\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(result)\n\t\t\t\t\t: result.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { queryString: query, client, customResultMapper } = this;\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.querySQL(query, params.length ? params : undefined);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\t\t\tresult as Record<string, unknown>[],\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn await tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.withSQLRowMode('array').querySQL(\n\t\t\t\t\t\tthis.queryString,\n\t\t\t\t\t\tparams.length ? params : undefined,\n\t\t\t\t\t).then((\n\t\t\t\t\t\tresult,\n\t\t\t\t\t) => result);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface GelSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDbSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends GelSession<GelQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'GelDbSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tdialect: GelDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: GelSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): GelDbPreparedQuery<T> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper?: (rows: Record<string, unknown>[]) => T['execute'],\n\t): GelDbPreparedQuery<T, true> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn await (this.client as Client).transaction(async (clientTx) => {\n\t\t\tconst session = new GelDbSession(clientTx, this.dialect, this.relations, this.schema, this.options);\n\t\t\tconst tx = new GelDbTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t);\n\t\t\treturn await transaction(tx);\n\t\t});\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\t\treturn Number(res[0]['count']);\n\t}\n}\n\nexport class GelDbTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends GelTransaction<GelQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'GelDbTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: GelDbTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst tx = new GelDbTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t);\n\t\treturn await transaction(tx);\n\t}\n}\n\n// TODO fix this\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","names":[],"sources":["../../src/gel/session.ts"],"sourcesContent":["import type { Client } from 'gel';\nimport type { Transaction } from 'gel/dist/transaction';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/gel-core/query-builders/select.types.ts';\nimport { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from '~/gel-core/session.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport type GelClient = Client | Transaction;\n\nexport class GelDbPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends GelPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'GelPreparedQuery';\n\tprivate jitMapper?: RowsMapper<T['execute']> | RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate transaction: boolean = false,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.querySQL(query, params.length ? params : undefined);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = (await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.withSQLRowMode('array').querySQL(query, params.length ? params : undefined);\n\t\t\t\t});\n\t\t\t})) as unknown[][];\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\tif (customResultMapper) {\n\t\t\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(result);\n\t\t\t\t}\n\n\t\t\t\treturn this.useJitMapper\n\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<T['execute']>\n\t\t\t\t\t\t?? makeJitQueryMapper<T['execute']>(fields!, joinsNotNullableMap))(result)\n\t\t\t\t\t: result.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { queryString: query, client, customResultMapper } = this;\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.querySQL(query, params.length ? params : undefined);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn this.useJitMapper\n\t\t\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))(result as Record<string, unknown>[])\n\t\t\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\t\t\t\tresult as Record<string, unknown>[],\n\t\t\t\t\t);\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn await tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.withSQLRowMode('array').querySQL(\n\t\t\t\t\t\tthis.queryString,\n\t\t\t\t\t\tparams.length ? params : undefined,\n\t\t\t\t\t).then((\n\t\t\t\t\t\tresult,\n\t\t\t\t\t) => result);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport interface GelSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMapper?: boolean;\n}\n\nexport class GelDbSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends GelSession<GelQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'GelDbSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tdialect: GelDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: GelSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): GelDbPreparedQuery<T> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t): GelDbPreparedQuery<T, true> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn await (this.client as Client).transaction(async (clientTx) => {\n\t\t\tconst session = new GelDbSession(clientTx, this.dialect, this.relations, this.schema, this.options);\n\t\t\tconst tx = new GelDbTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t);\n\t\t\treturn await transaction(tx);\n\t\t});\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\t\treturn Number(res[0]['count']);\n\t}\n}\n\nexport class GelDbTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends GelTransaction<GelQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'GelDbTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: GelDbTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst tx = new GelDbTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t);\n\t\treturn await transaction(tx);\n\t}\n}\n\n// TODO fix this\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n"],"mappings":"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"}
|
|
@@ -20,9 +20,9 @@ var GelBigInt64 = class extends require_gel_core_columns_common.GelColumn {
|
|
|
20
20
|
getSQLType() {
|
|
21
21
|
return "edgedbt.bigint_t";
|
|
22
22
|
}
|
|
23
|
-
mapFromDriverValue(value) {
|
|
23
|
+
mapFromDriverValue = (value) => {
|
|
24
24
|
return BigInt(value);
|
|
25
|
-
}
|
|
25
|
+
};
|
|
26
26
|
};
|
|
27
27
|
function bigintT(name) {
|
|
28
28
|
return new GelBigInt64Builder(name ?? "");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigintT.cjs","names":["GelIntColumnBaseBuilder","entityKind","GelColumn"],"sources":["../../../src/gel-core/columns/bigintT.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { GelTable } from '~/gel-core/table.ts';\nimport { GelColumn } from './common.ts';\nimport { GelIntColumnBaseBuilder } from './int.common.ts';\n\nexport class GelBigInt64Builder extends GelIntColumnBaseBuilder<{\n\tdataType: 'bigint int64';\n\tdata: bigint;\n\tdriverParam: bigint;\n}> {\n\tstatic override readonly [entityKind]: string = 'GelBigInt64Builder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'bigint int64', 'GelBigInt64');\n\t}\n\n\t/** @internal */\n\toverride build(table: GelTable) {\n\t\treturn new GelBigInt64(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class GelBigInt64<T extends ColumnBaseConfig<'bigint int64'>> extends GelColumn<T> {\n\tstatic override readonly [entityKind]: string = 'GelBigInt64';\n\n\tgetSQLType(): string {\n\t\treturn 'edgedbt.bigint_t';\n\t}\n\n\toverride mapFromDriverValue(value: string): bigint {\n\t\treturn BigInt(value as string); // TODO ts error if remove 'as string'\n\t}
|
|
1
|
+
{"version":3,"file":"bigintT.cjs","names":["GelIntColumnBaseBuilder","entityKind","GelColumn"],"sources":["../../../src/gel-core/columns/bigintT.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { GelTable } from '~/gel-core/table.ts';\nimport { GelColumn } from './common.ts';\nimport { GelIntColumnBaseBuilder } from './int.common.ts';\n\nexport class GelBigInt64Builder extends GelIntColumnBaseBuilder<{\n\tdataType: 'bigint int64';\n\tdata: bigint;\n\tdriverParam: bigint;\n}> {\n\tstatic override readonly [entityKind]: string = 'GelBigInt64Builder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'bigint int64', 'GelBigInt64');\n\t}\n\n\t/** @internal */\n\toverride build(table: GelTable) {\n\t\treturn new GelBigInt64(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class GelBigInt64<T extends ColumnBaseConfig<'bigint int64'>> extends GelColumn<T> {\n\tstatic override readonly [entityKind]: string = 'GelBigInt64';\n\n\tgetSQLType(): string {\n\t\treturn 'edgedbt.bigint_t';\n\t}\n\n\toverride mapFromDriverValue = (value: string): bigint => {\n\t\treturn BigInt(value as string); // TODO ts error if remove 'as string'\n\t};\n}\nexport function bigintT(name?: string): GelBigInt64Builder {\n\treturn new GelBigInt64Builder(name ?? '');\n}\n"],"mappings":";;;;;;;AAMA,IAAa,qBAAb,cAAwCA,4DAIrC;CACF,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc;AACzB,QAAM,MAAM,gBAAgB,cAAc;;;CAI3C,AAAS,MAAM,OAAiB;AAC/B,SAAO,IAAI,YACV,OACA,KAAK,OACL;;;AAIH,IAAa,cAAb,cAA6EC,0CAAa;CACzF,QAA0BD,0BAAsB;CAEhD,aAAqB;AACpB,SAAO;;CAGR,AAAS,sBAAsB,UAA0B;AACxD,SAAO,OAAO,MAAgB;;;AAGhC,SAAgB,QAAQ,MAAmC;AAC1D,QAAO,IAAI,mBAAmB,QAAQ,GAAG"}
|
|
@@ -15,7 +15,7 @@ declare class GelBigInt64Builder extends GelIntColumnBaseBuilder<{
|
|
|
15
15
|
declare class GelBigInt64<T extends ColumnBaseConfig<'bigint int64'>> extends GelColumn<T> {
|
|
16
16
|
static readonly [entityKind]: string;
|
|
17
17
|
getSQLType(): string;
|
|
18
|
-
mapFromDriverValue(value: string)
|
|
18
|
+
mapFromDriverValue: (value: string) => bigint;
|
|
19
19
|
}
|
|
20
20
|
declare function bigintT(name?: string): GelBigInt64Builder;
|
|
21
21
|
//#endregion
|
|
@@ -15,7 +15,7 @@ declare class GelBigInt64Builder extends GelIntColumnBaseBuilder<{
|
|
|
15
15
|
declare class GelBigInt64<T extends ColumnBaseConfig<'bigint int64'>> extends GelColumn<T> {
|
|
16
16
|
static readonly [entityKind]: string;
|
|
17
17
|
getSQLType(): string;
|
|
18
|
-
mapFromDriverValue(value: string)
|
|
18
|
+
mapFromDriverValue: (value: string) => bigint;
|
|
19
19
|
}
|
|
20
20
|
declare function bigintT(name?: string): GelBigInt64Builder;
|
|
21
21
|
//#endregion
|
|
@@ -18,9 +18,9 @@ var GelBigInt64 = class extends GelColumn {
|
|
|
18
18
|
getSQLType() {
|
|
19
19
|
return "edgedbt.bigint_t";
|
|
20
20
|
}
|
|
21
|
-
mapFromDriverValue(value) {
|
|
21
|
+
mapFromDriverValue = (value) => {
|
|
22
22
|
return BigInt(value);
|
|
23
|
-
}
|
|
23
|
+
};
|
|
24
24
|
};
|
|
25
25
|
function bigintT(name) {
|
|
26
26
|
return new GelBigInt64Builder(name ?? "");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigintT.js","names":[],"sources":["../../../src/gel-core/columns/bigintT.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { GelTable } from '~/gel-core/table.ts';\nimport { GelColumn } from './common.ts';\nimport { GelIntColumnBaseBuilder } from './int.common.ts';\n\nexport class GelBigInt64Builder extends GelIntColumnBaseBuilder<{\n\tdataType: 'bigint int64';\n\tdata: bigint;\n\tdriverParam: bigint;\n}> {\n\tstatic override readonly [entityKind]: string = 'GelBigInt64Builder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'bigint int64', 'GelBigInt64');\n\t}\n\n\t/** @internal */\n\toverride build(table: GelTable) {\n\t\treturn new GelBigInt64(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class GelBigInt64<T extends ColumnBaseConfig<'bigint int64'>> extends GelColumn<T> {\n\tstatic override readonly [entityKind]: string = 'GelBigInt64';\n\n\tgetSQLType(): string {\n\t\treturn 'edgedbt.bigint_t';\n\t}\n\n\toverride mapFromDriverValue(value: string): bigint {\n\t\treturn BigInt(value as string); // TODO ts error if remove 'as string'\n\t}
|
|
1
|
+
{"version":3,"file":"bigintT.js","names":[],"sources":["../../../src/gel-core/columns/bigintT.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { GelTable } from '~/gel-core/table.ts';\nimport { GelColumn } from './common.ts';\nimport { GelIntColumnBaseBuilder } from './int.common.ts';\n\nexport class GelBigInt64Builder extends GelIntColumnBaseBuilder<{\n\tdataType: 'bigint int64';\n\tdata: bigint;\n\tdriverParam: bigint;\n}> {\n\tstatic override readonly [entityKind]: string = 'GelBigInt64Builder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'bigint int64', 'GelBigInt64');\n\t}\n\n\t/** @internal */\n\toverride build(table: GelTable) {\n\t\treturn new GelBigInt64(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class GelBigInt64<T extends ColumnBaseConfig<'bigint int64'>> extends GelColumn<T> {\n\tstatic override readonly [entityKind]: string = 'GelBigInt64';\n\n\tgetSQLType(): string {\n\t\treturn 'edgedbt.bigint_t';\n\t}\n\n\toverride mapFromDriverValue = (value: string): bigint => {\n\t\treturn BigInt(value as string); // TODO ts error if remove 'as string'\n\t};\n}\nexport function bigintT(name?: string): GelBigInt64Builder {\n\treturn new GelBigInt64Builder(name ?? '');\n}\n"],"mappings":";;;;;AAMA,IAAa,qBAAb,cAAwC,wBAIrC;CACF,QAA0B,cAAsB;CAEhD,YAAY,MAAc;AACzB,QAAM,MAAM,gBAAgB,cAAc;;;CAI3C,AAAS,MAAM,OAAiB;AAC/B,SAAO,IAAI,YACV,OACA,KAAK,OACL;;;AAIH,IAAa,cAAb,cAA6E,UAAa;CACzF,QAA0B,cAAsB;CAEhD,aAAqB;AACpB,SAAO;;CAGR,AAAS,sBAAsB,UAA0B;AACxD,SAAO,OAAO,MAAgB;;;AAGhC,SAAgB,QAAQ,MAAmC;AAC1D,QAAO,IAAI,mBAAmB,QAAQ,GAAG"}
|
|
@@ -163,9 +163,9 @@ var GelArray = class extends GelColumn {
|
|
|
163
163
|
this.baseColumn = baseColumn;
|
|
164
164
|
this.range = range;
|
|
165
165
|
}
|
|
166
|
-
mapFromDriverValue(value) {
|
|
166
|
+
mapFromDriverValue = (value) => {
|
|
167
167
|
return value.map((v) => this.baseColumn.mapFromDriverValue(v));
|
|
168
|
-
}
|
|
168
|
+
};
|
|
169
169
|
mapFromJsonValue(value) {
|
|
170
170
|
const base = this.baseColumn;
|
|
171
171
|
return "mapFromJsonValue" in base ? value.map((v) => base.mapFromJsonValue(v)) : value.map((v) => base.mapFromDriverValue(v));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.cjs","names":["ColumnBuilder","entityKind","ForeignKeyBuilder","Column"],"sources":["../../../src/gel-core/columns/common.ts"],"sourcesContent":["import type {\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnType,\n\tHasGenerated,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Simplify, Update } from '~/utils.ts';\n\nimport type { ForeignKey, UpdateDeleteAction } from '~/gel-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/gel-core/foreign-keys.ts';\nimport type { AnyGelTable, GelTable } from '~/gel-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { iife } from '~/tracing-utils.ts';\nimport type { GelIndexOpClass } from '../indexes.ts';\n\nexport type GelColumns = Record<string, GelColumn<any>>;\n\nexport interface ReferenceConfig {\n\tref: () => GelColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport abstract class GelColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnType> = ColumnBuilderBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder<T, TRuntimeConfig, TExtraConfig> {\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\tstatic override readonly [entityKind]: string = 'GelColumnBuilder';\n\n\tarray(length?: number): GelArrayBuilder<\n\t\t& {\n\t\t\tname: string;\n\t\t\tdataType: 'array basecolumn';\n\t\t\tdata: T['data'][];\n\t\t\tdriverParam: T['driverParam'][] | string;\n\t\t\tbaseBuilder: T;\n\t\t}\n\t\t& (T extends { notNull: true } ? { notNull: true } : {})\n\t\t& (T extends { hasDefault: true } ? { hasDefault: true } : {}),\n\t\tT\n\t> {\n\t\treturn new GelArrayBuilder(this.config.name, this as GelColumnBuilder<any, any>, length as any);\n\t}\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t\tconfig?: { nulls: 'distinct' | 'not distinct' },\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\tthis.config.uniqueType = config?.nulls;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | (() => SQL)): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: 'stored',\n\t\t};\n\t\treturn this as HasGenerated<this, {\n\t\t\ttype: 'always';\n\t\t}>;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: GelColumn, table: GelTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn iife(\n\t\t\t\t(ref, actions) => {\n\t\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t\t});\n\t\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t\t}\n\t\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t\t}\n\t\t\t\t\treturn builder.build(table);\n\t\t\t\t},\n\t\t\t\tref,\n\t\t\t\tactions,\n\t\t\t);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(table: GelTable): GelColumn<any>;\n\n\t/** @internal */\n\tbuildExtraConfigColumn<TTableName extends string>(\n\t\ttable: AnyGelTable<{ name: TTableName }>,\n\t): GelExtraConfigColumn {\n\t\treturn new GelExtraConfigColumn(table, this.config);\n\t}\n}\n\n// To understand how to use `GelColumn` and `GelColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class GelColumn<\n\tT extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = {},\n> extends Column<T, TRuntimeConfig> {\n\tstatic override readonly [entityKind]: string = 'GelColumn';\n\n\t/** @internal */\n\toverride readonly table: GelTable;\n\n\tconstructor(\n\t\ttable: GelTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data']> & TRuntimeConfig,\n\t) {\n\t\tsuper(table, config);\n\t\tthis.table = table;\n\t}\n}\n\nexport type IndexedExtraConfigType = { order?: 'asc' | 'desc'; nulls?: 'first' | 'last'; opClass?: string };\n\nexport class GelExtraConfigColumn<\n\tT extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>,\n> extends GelColumn<T, IndexedExtraConfigType> {\n\tstatic override readonly [entityKind]: string = 'GelExtraConfigColumn';\n\n\toverride getSQLType(): string {\n\t\treturn this.getSQLType();\n\t}\n\n\tindexConfig: IndexedExtraConfigType = {\n\t\torder: this.config.order ?? 'asc',\n\t\tnulls: this.config.nulls ?? 'last',\n\t\topClass: this.config.opClass,\n\t};\n\tdefaultConfig: IndexedExtraConfigType = {\n\t\torder: 'asc',\n\t\tnulls: 'last',\n\t\topClass: undefined,\n\t};\n\n\tasc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'asc';\n\t\treturn this;\n\t}\n\n\tdesc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'desc';\n\t\treturn this;\n\t}\n\n\tnullsFirst(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'first';\n\t\treturn this;\n\t}\n\n\tnullsLast(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'last';\n\t\treturn this;\n\t}\n\n\t/**\n\t * ### PostgreSQL documentation quote\n\t *\n\t * > An operator class with optional parameters can be specified for each column of an index.\n\t * The operator class identifies the operators to be used by the index for that column.\n\t * For example, a B-tree index on four-byte integers would use the int4_ops class;\n\t * this operator class includes comparison functions for four-byte integers.\n\t * In practice the default operator class for the column's data type is usually sufficient.\n\t * The main point of having operator classes is that for some data types, there could be more than one meaningful ordering.\n\t * For example, we might want to sort a complex-number data type either by absolute value or by real part.\n\t * We could do this by defining two operator classes for the data type and then selecting the proper class when creating an index.\n\t * More information about operator classes check:\n\t *\n\t * ### Useful links\n\t * https://www.postgresql.org/docs/current/sql-createindex.html\n\t *\n\t * https://www.postgresql.org/docs/current/indexes-opclass.html\n\t *\n\t * https://www.postgresql.org/docs/current/xindex.html\n\t *\n\t * ### Additional types\n\t * If you have the `Gel_vector` extension installed in your database, you can use the\n\t * `vector_l2_ops`, `vector_ip_ops`, `vector_cosine_ops`, `vector_l1_ops`, `bit_hamming_ops`, `bit_jaccard_ops`, `halfvec_l2_ops`, `sparsevec_l2_ops` options, which are predefined types.\n\t *\n\t * **You can always specify any string you want in the operator class, in case Drizzle doesn't have it natively in its types**\n\t *\n\t * @param opClass\n\t * @returns\n\t */\n\top(opClass: GelIndexOpClass): Omit<this, 'op'> {\n\t\tthis.indexConfig.opClass = opClass;\n\t\treturn this;\n\t}\n}\n\nexport class IndexedColumn {\n\tstatic readonly [entityKind]: string = 'IndexedColumn';\n\tconstructor(\n\t\tname: string | undefined,\n\t\tkeyAsName: boolean,\n\t\ttype: string,\n\t\tindexConfig: IndexedExtraConfigType,\n\t) {\n\t\tthis.name = name;\n\t\tthis.keyAsName = keyAsName;\n\t\tthis.type = type;\n\t\tthis.indexConfig = indexConfig;\n\t}\n\n\tname: string | undefined;\n\tkeyAsName: boolean;\n\ttype: string;\n\tindexConfig: IndexedExtraConfigType;\n}\n\nexport type AnyGelColumn<TPartial extends Partial<ColumnBaseConfig<ColumnType>> = {}> = GelColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnType>, TPartial>>\n>;\n\nexport type GelArrayColumnBuilderBaseConfig = ColumnBuilderBaseConfig<'array basecolumn'> & {\n\tbaseBuilder: ColumnBuilderBaseConfig<ColumnType>;\n};\n\nexport class GelArrayBuilder<\n\tT extends GelArrayColumnBuilderBaseConfig,\n\tTBase extends ColumnBuilderBaseConfig<ColumnType> | GelArrayColumnBuilderBaseConfig,\n> extends GelColumnBuilder<\n\tT & {\n\t\tbaseBuilder: TBase extends GelArrayColumnBuilderBaseConfig ? GelArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: GelColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any>>>>;\n\t},\n\t{\n\t\tbaseBuilder: TBase extends GelArrayColumnBuilderBaseConfig ? GelArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: GelColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any>>>>;\n\t\tlength: number | undefined;\n\t},\n\t{}\n> {\n\tstatic override readonly [entityKind]: string = 'GelArrayBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tbaseBuilder: GelArrayBuilder<T, TBase>['config']['baseBuilder'],\n\t\tlength: number | undefined,\n\t) {\n\t\tsuper(name, 'array basecolumn', 'GelArray');\n\t\tthis.config.baseBuilder = baseBuilder;\n\t\tthis.config.length = length;\n\t}\n\n\t/** @internal */\n\toverride build(table: GelTable) {\n\t\tconst baseColumn: any = this.config.baseBuilder.build(table);\n\t\treturn new GelArray(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t\tbaseColumn,\n\t\t);\n\t}\n}\n\nexport class GelArray<\n\tT extends ColumnBaseConfig<'array basecolumn'> & {\n\t\tlength: number | undefined;\n\t\tbaseBuilder: ColumnBuilderBaseConfig<ColumnType>;\n\t},\n\tTBase extends ColumnBuilderBaseConfig<ColumnType>,\n> extends GelColumn<T, {}> {\n\tstatic override readonly [entityKind]: string = 'GelArray';\n\n\tconstructor(\n\t\ttable: AnyGelTable<{ name: T['tableName'] }>,\n\t\tconfig: GelArrayBuilder<T, TBase>['config'],\n\t\treadonly baseColumn: GelColumn,\n\t\treadonly range?: [number | undefined, number | undefined],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\toverride mapFromDriverValue(value: unknown[]): T['data'] {\n\t\treturn value.map((v) => this.baseColumn.mapFromDriverValue(v));\n\t}\n\n\t// Needed for arrays of custom types\n\tmapFromJsonValue(value: unknown[]): T['data'] {\n\t\tconst base = this.baseColumn;\n\n\t\treturn 'mapFromJsonValue' in base\n\t\t\t? value.map((v) => (<(value: unknown) => unknown> base.mapFromJsonValue)(v))\n\t\t\t: value.map((v) => base.mapFromDriverValue(v));\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `${this.baseColumn.getSQLType()}[${typeof this.length === 'number' ? this.length : ''}]`;\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.cjs","names":["ColumnBuilder","entityKind","ForeignKeyBuilder","Column"],"sources":["../../../src/gel-core/columns/common.ts"],"sourcesContent":["import type {\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnType,\n\tHasGenerated,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Simplify, Update } from '~/utils.ts';\n\nimport type { ForeignKey, UpdateDeleteAction } from '~/gel-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/gel-core/foreign-keys.ts';\nimport type { AnyGelTable, GelTable } from '~/gel-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { iife } from '~/tracing-utils.ts';\nimport type { GelIndexOpClass } from '../indexes.ts';\n\nexport type GelColumns = Record<string, GelColumn<any>>;\n\nexport interface ReferenceConfig {\n\tref: () => GelColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport abstract class GelColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnType> = ColumnBuilderBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder<T, TRuntimeConfig, TExtraConfig> {\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\tstatic override readonly [entityKind]: string = 'GelColumnBuilder';\n\n\tarray(length?: number): GelArrayBuilder<\n\t\t& {\n\t\t\tname: string;\n\t\t\tdataType: 'array basecolumn';\n\t\t\tdata: T['data'][];\n\t\t\tdriverParam: T['driverParam'][] | string;\n\t\t\tbaseBuilder: T;\n\t\t}\n\t\t& (T extends { notNull: true } ? { notNull: true } : {})\n\t\t& (T extends { hasDefault: true } ? { hasDefault: true } : {}),\n\t\tT\n\t> {\n\t\treturn new GelArrayBuilder(this.config.name, this as GelColumnBuilder<any, any>, length as any);\n\t}\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t\tconfig?: { nulls: 'distinct' | 'not distinct' },\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\tthis.config.uniqueType = config?.nulls;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | (() => SQL)): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: 'stored',\n\t\t};\n\t\treturn this as HasGenerated<this, {\n\t\t\ttype: 'always';\n\t\t}>;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: GelColumn, table: GelTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn iife(\n\t\t\t\t(ref, actions) => {\n\t\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t\t});\n\t\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t\t}\n\t\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t\t}\n\t\t\t\t\treturn builder.build(table);\n\t\t\t\t},\n\t\t\t\tref,\n\t\t\t\tactions,\n\t\t\t);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(table: GelTable): GelColumn<any>;\n\n\t/** @internal */\n\tbuildExtraConfigColumn<TTableName extends string>(\n\t\ttable: AnyGelTable<{ name: TTableName }>,\n\t): GelExtraConfigColumn {\n\t\treturn new GelExtraConfigColumn(table, this.config);\n\t}\n}\n\n// To understand how to use `GelColumn` and `GelColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class GelColumn<\n\tT extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = {},\n> extends Column<T, TRuntimeConfig> {\n\tstatic override readonly [entityKind]: string = 'GelColumn';\n\n\t/** @internal */\n\toverride readonly table: GelTable;\n\n\tconstructor(\n\t\ttable: GelTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data']> & TRuntimeConfig,\n\t) {\n\t\tsuper(table, config);\n\t\tthis.table = table;\n\t}\n}\n\nexport type IndexedExtraConfigType = { order?: 'asc' | 'desc'; nulls?: 'first' | 'last'; opClass?: string };\n\nexport class GelExtraConfigColumn<\n\tT extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>,\n> extends GelColumn<T, IndexedExtraConfigType> {\n\tstatic override readonly [entityKind]: string = 'GelExtraConfigColumn';\n\n\toverride getSQLType(): string {\n\t\treturn this.getSQLType();\n\t}\n\n\tindexConfig: IndexedExtraConfigType = {\n\t\torder: this.config.order ?? 'asc',\n\t\tnulls: this.config.nulls ?? 'last',\n\t\topClass: this.config.opClass,\n\t};\n\tdefaultConfig: IndexedExtraConfigType = {\n\t\torder: 'asc',\n\t\tnulls: 'last',\n\t\topClass: undefined,\n\t};\n\n\tasc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'asc';\n\t\treturn this;\n\t}\n\n\tdesc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'desc';\n\t\treturn this;\n\t}\n\n\tnullsFirst(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'first';\n\t\treturn this;\n\t}\n\n\tnullsLast(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'last';\n\t\treturn this;\n\t}\n\n\t/**\n\t * ### PostgreSQL documentation quote\n\t *\n\t * > An operator class with optional parameters can be specified for each column of an index.\n\t * The operator class identifies the operators to be used by the index for that column.\n\t * For example, a B-tree index on four-byte integers would use the int4_ops class;\n\t * this operator class includes comparison functions for four-byte integers.\n\t * In practice the default operator class for the column's data type is usually sufficient.\n\t * The main point of having operator classes is that for some data types, there could be more than one meaningful ordering.\n\t * For example, we might want to sort a complex-number data type either by absolute value or by real part.\n\t * We could do this by defining two operator classes for the data type and then selecting the proper class when creating an index.\n\t * More information about operator classes check:\n\t *\n\t * ### Useful links\n\t * https://www.postgresql.org/docs/current/sql-createindex.html\n\t *\n\t * https://www.postgresql.org/docs/current/indexes-opclass.html\n\t *\n\t * https://www.postgresql.org/docs/current/xindex.html\n\t *\n\t * ### Additional types\n\t * If you have the `Gel_vector` extension installed in your database, you can use the\n\t * `vector_l2_ops`, `vector_ip_ops`, `vector_cosine_ops`, `vector_l1_ops`, `bit_hamming_ops`, `bit_jaccard_ops`, `halfvec_l2_ops`, `sparsevec_l2_ops` options, which are predefined types.\n\t *\n\t * **You can always specify any string you want in the operator class, in case Drizzle doesn't have it natively in its types**\n\t *\n\t * @param opClass\n\t * @returns\n\t */\n\top(opClass: GelIndexOpClass): Omit<this, 'op'> {\n\t\tthis.indexConfig.opClass = opClass;\n\t\treturn this;\n\t}\n}\n\nexport class IndexedColumn {\n\tstatic readonly [entityKind]: string = 'IndexedColumn';\n\tconstructor(\n\t\tname: string | undefined,\n\t\tkeyAsName: boolean,\n\t\ttype: string,\n\t\tindexConfig: IndexedExtraConfigType,\n\t) {\n\t\tthis.name = name;\n\t\tthis.keyAsName = keyAsName;\n\t\tthis.type = type;\n\t\tthis.indexConfig = indexConfig;\n\t}\n\n\tname: string | undefined;\n\tkeyAsName: boolean;\n\ttype: string;\n\tindexConfig: IndexedExtraConfigType;\n}\n\nexport type AnyGelColumn<TPartial extends Partial<ColumnBaseConfig<ColumnType>> = {}> = GelColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnType>, TPartial>>\n>;\n\nexport type GelArrayColumnBuilderBaseConfig = ColumnBuilderBaseConfig<'array basecolumn'> & {\n\tbaseBuilder: ColumnBuilderBaseConfig<ColumnType>;\n};\n\nexport class GelArrayBuilder<\n\tT extends GelArrayColumnBuilderBaseConfig,\n\tTBase extends ColumnBuilderBaseConfig<ColumnType> | GelArrayColumnBuilderBaseConfig,\n> extends GelColumnBuilder<\n\tT & {\n\t\tbaseBuilder: TBase extends GelArrayColumnBuilderBaseConfig ? GelArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: GelColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any>>>>;\n\t},\n\t{\n\t\tbaseBuilder: TBase extends GelArrayColumnBuilderBaseConfig ? GelArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: GelColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any>>>>;\n\t\tlength: number | undefined;\n\t},\n\t{}\n> {\n\tstatic override readonly [entityKind]: string = 'GelArrayBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tbaseBuilder: GelArrayBuilder<T, TBase>['config']['baseBuilder'],\n\t\tlength: number | undefined,\n\t) {\n\t\tsuper(name, 'array basecolumn', 'GelArray');\n\t\tthis.config.baseBuilder = baseBuilder;\n\t\tthis.config.length = length;\n\t}\n\n\t/** @internal */\n\toverride build(table: GelTable) {\n\t\tconst baseColumn: any = this.config.baseBuilder.build(table);\n\t\treturn new GelArray(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t\tbaseColumn,\n\t\t);\n\t}\n}\n\nexport class GelArray<\n\tT extends ColumnBaseConfig<'array basecolumn'> & {\n\t\tlength: number | undefined;\n\t\tbaseBuilder: ColumnBuilderBaseConfig<ColumnType>;\n\t},\n\tTBase extends ColumnBuilderBaseConfig<ColumnType>,\n> extends GelColumn<T, {}> {\n\tstatic override readonly [entityKind]: string = 'GelArray';\n\n\tconstructor(\n\t\ttable: AnyGelTable<{ name: T['tableName'] }>,\n\t\tconfig: GelArrayBuilder<T, TBase>['config'],\n\t\treadonly baseColumn: GelColumn,\n\t\treadonly range?: [number | undefined, number | undefined],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\toverride mapFromDriverValue = (value: unknown[]): T['data'] => {\n\t\treturn value.map((v) => this.baseColumn.mapFromDriverValue(v));\n\t};\n\n\t// Needed for arrays of custom types\n\tmapFromJsonValue(value: unknown[]): T['data'] {\n\t\tconst base = this.baseColumn;\n\n\t\treturn 'mapFromJsonValue' in base\n\t\t\t? value.map((v) => (<(value: unknown) => unknown> base.mapFromJsonValue)(v))\n\t\t\t: value.map((v) => base.mapFromDriverValue(v));\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `${this.baseColumn.getSQLType()}[${typeof this.length === 'number' ? this.length : ''}]`;\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -126,7 +126,7 @@ declare class GelArray<T extends ColumnBaseConfig<'array basecolumn'> & {
|
|
|
126
126
|
constructor(table: AnyGelTable<{
|
|
127
127
|
name: T['tableName'];
|
|
128
128
|
}>, config: GelArrayBuilder<T, TBase>['config'], baseColumn: GelColumn, range?: [number | undefined, number | undefined] | undefined);
|
|
129
|
-
mapFromDriverValue(value: unknown[])
|
|
129
|
+
mapFromDriverValue: (value: unknown[]) => T["data"];
|
|
130
130
|
mapFromJsonValue(value: unknown[]): T['data'];
|
|
131
131
|
getSQLType(): string;
|
|
132
132
|
}
|
|
@@ -126,7 +126,7 @@ declare class GelArray<T extends ColumnBaseConfig<'array basecolumn'> & {
|
|
|
126
126
|
constructor(table: AnyGelTable<{
|
|
127
127
|
name: T['tableName'];
|
|
128
128
|
}>, config: GelArrayBuilder<T, TBase>['config'], baseColumn: GelColumn, range?: [number | undefined, number | undefined] | undefined);
|
|
129
|
-
mapFromDriverValue(value: unknown[])
|
|
129
|
+
mapFromDriverValue: (value: unknown[]) => T["data"];
|
|
130
130
|
mapFromJsonValue(value: unknown[]): T['data'];
|
|
131
131
|
getSQLType(): string;
|
|
132
132
|
}
|
|
@@ -161,9 +161,9 @@ var GelArray = class extends GelColumn {
|
|
|
161
161
|
this.baseColumn = baseColumn;
|
|
162
162
|
this.range = range;
|
|
163
163
|
}
|
|
164
|
-
mapFromDriverValue(value) {
|
|
164
|
+
mapFromDriverValue = (value) => {
|
|
165
165
|
return value.map((v) => this.baseColumn.mapFromDriverValue(v));
|
|
166
|
-
}
|
|
166
|
+
};
|
|
167
167
|
mapFromJsonValue(value) {
|
|
168
168
|
const base = this.baseColumn;
|
|
169
169
|
return "mapFromJsonValue" in base ? value.map((v) => base.mapFromJsonValue(v)) : value.map((v) => base.mapFromDriverValue(v));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","names":[],"sources":["../../../src/gel-core/columns/common.ts"],"sourcesContent":["import type {\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnType,\n\tHasGenerated,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Simplify, Update } from '~/utils.ts';\n\nimport type { ForeignKey, UpdateDeleteAction } from '~/gel-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/gel-core/foreign-keys.ts';\nimport type { AnyGelTable, GelTable } from '~/gel-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { iife } from '~/tracing-utils.ts';\nimport type { GelIndexOpClass } from '../indexes.ts';\n\nexport type GelColumns = Record<string, GelColumn<any>>;\n\nexport interface ReferenceConfig {\n\tref: () => GelColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport abstract class GelColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnType> = ColumnBuilderBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder<T, TRuntimeConfig, TExtraConfig> {\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\tstatic override readonly [entityKind]: string = 'GelColumnBuilder';\n\n\tarray(length?: number): GelArrayBuilder<\n\t\t& {\n\t\t\tname: string;\n\t\t\tdataType: 'array basecolumn';\n\t\t\tdata: T['data'][];\n\t\t\tdriverParam: T['driverParam'][] | string;\n\t\t\tbaseBuilder: T;\n\t\t}\n\t\t& (T extends { notNull: true } ? { notNull: true } : {})\n\t\t& (T extends { hasDefault: true } ? { hasDefault: true } : {}),\n\t\tT\n\t> {\n\t\treturn new GelArrayBuilder(this.config.name, this as GelColumnBuilder<any, any>, length as any);\n\t}\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t\tconfig?: { nulls: 'distinct' | 'not distinct' },\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\tthis.config.uniqueType = config?.nulls;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | (() => SQL)): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: 'stored',\n\t\t};\n\t\treturn this as HasGenerated<this, {\n\t\t\ttype: 'always';\n\t\t}>;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: GelColumn, table: GelTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn iife(\n\t\t\t\t(ref, actions) => {\n\t\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t\t});\n\t\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t\t}\n\t\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t\t}\n\t\t\t\t\treturn builder.build(table);\n\t\t\t\t},\n\t\t\t\tref,\n\t\t\t\tactions,\n\t\t\t);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(table: GelTable): GelColumn<any>;\n\n\t/** @internal */\n\tbuildExtraConfigColumn<TTableName extends string>(\n\t\ttable: AnyGelTable<{ name: TTableName }>,\n\t): GelExtraConfigColumn {\n\t\treturn new GelExtraConfigColumn(table, this.config);\n\t}\n}\n\n// To understand how to use `GelColumn` and `GelColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class GelColumn<\n\tT extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = {},\n> extends Column<T, TRuntimeConfig> {\n\tstatic override readonly [entityKind]: string = 'GelColumn';\n\n\t/** @internal */\n\toverride readonly table: GelTable;\n\n\tconstructor(\n\t\ttable: GelTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data']> & TRuntimeConfig,\n\t) {\n\t\tsuper(table, config);\n\t\tthis.table = table;\n\t}\n}\n\nexport type IndexedExtraConfigType = { order?: 'asc' | 'desc'; nulls?: 'first' | 'last'; opClass?: string };\n\nexport class GelExtraConfigColumn<\n\tT extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>,\n> extends GelColumn<T, IndexedExtraConfigType> {\n\tstatic override readonly [entityKind]: string = 'GelExtraConfigColumn';\n\n\toverride getSQLType(): string {\n\t\treturn this.getSQLType();\n\t}\n\n\tindexConfig: IndexedExtraConfigType = {\n\t\torder: this.config.order ?? 'asc',\n\t\tnulls: this.config.nulls ?? 'last',\n\t\topClass: this.config.opClass,\n\t};\n\tdefaultConfig: IndexedExtraConfigType = {\n\t\torder: 'asc',\n\t\tnulls: 'last',\n\t\topClass: undefined,\n\t};\n\n\tasc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'asc';\n\t\treturn this;\n\t}\n\n\tdesc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'desc';\n\t\treturn this;\n\t}\n\n\tnullsFirst(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'first';\n\t\treturn this;\n\t}\n\n\tnullsLast(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'last';\n\t\treturn this;\n\t}\n\n\t/**\n\t * ### PostgreSQL documentation quote\n\t *\n\t * > An operator class with optional parameters can be specified for each column of an index.\n\t * The operator class identifies the operators to be used by the index for that column.\n\t * For example, a B-tree index on four-byte integers would use the int4_ops class;\n\t * this operator class includes comparison functions for four-byte integers.\n\t * In practice the default operator class for the column's data type is usually sufficient.\n\t * The main point of having operator classes is that for some data types, there could be more than one meaningful ordering.\n\t * For example, we might want to sort a complex-number data type either by absolute value or by real part.\n\t * We could do this by defining two operator classes for the data type and then selecting the proper class when creating an index.\n\t * More information about operator classes check:\n\t *\n\t * ### Useful links\n\t * https://www.postgresql.org/docs/current/sql-createindex.html\n\t *\n\t * https://www.postgresql.org/docs/current/indexes-opclass.html\n\t *\n\t * https://www.postgresql.org/docs/current/xindex.html\n\t *\n\t * ### Additional types\n\t * If you have the `Gel_vector` extension installed in your database, you can use the\n\t * `vector_l2_ops`, `vector_ip_ops`, `vector_cosine_ops`, `vector_l1_ops`, `bit_hamming_ops`, `bit_jaccard_ops`, `halfvec_l2_ops`, `sparsevec_l2_ops` options, which are predefined types.\n\t *\n\t * **You can always specify any string you want in the operator class, in case Drizzle doesn't have it natively in its types**\n\t *\n\t * @param opClass\n\t * @returns\n\t */\n\top(opClass: GelIndexOpClass): Omit<this, 'op'> {\n\t\tthis.indexConfig.opClass = opClass;\n\t\treturn this;\n\t}\n}\n\nexport class IndexedColumn {\n\tstatic readonly [entityKind]: string = 'IndexedColumn';\n\tconstructor(\n\t\tname: string | undefined,\n\t\tkeyAsName: boolean,\n\t\ttype: string,\n\t\tindexConfig: IndexedExtraConfigType,\n\t) {\n\t\tthis.name = name;\n\t\tthis.keyAsName = keyAsName;\n\t\tthis.type = type;\n\t\tthis.indexConfig = indexConfig;\n\t}\n\n\tname: string | undefined;\n\tkeyAsName: boolean;\n\ttype: string;\n\tindexConfig: IndexedExtraConfigType;\n}\n\nexport type AnyGelColumn<TPartial extends Partial<ColumnBaseConfig<ColumnType>> = {}> = GelColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnType>, TPartial>>\n>;\n\nexport type GelArrayColumnBuilderBaseConfig = ColumnBuilderBaseConfig<'array basecolumn'> & {\n\tbaseBuilder: ColumnBuilderBaseConfig<ColumnType>;\n};\n\nexport class GelArrayBuilder<\n\tT extends GelArrayColumnBuilderBaseConfig,\n\tTBase extends ColumnBuilderBaseConfig<ColumnType> | GelArrayColumnBuilderBaseConfig,\n> extends GelColumnBuilder<\n\tT & {\n\t\tbaseBuilder: TBase extends GelArrayColumnBuilderBaseConfig ? GelArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: GelColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any>>>>;\n\t},\n\t{\n\t\tbaseBuilder: TBase extends GelArrayColumnBuilderBaseConfig ? GelArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: GelColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any>>>>;\n\t\tlength: number | undefined;\n\t},\n\t{}\n> {\n\tstatic override readonly [entityKind]: string = 'GelArrayBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tbaseBuilder: GelArrayBuilder<T, TBase>['config']['baseBuilder'],\n\t\tlength: number | undefined,\n\t) {\n\t\tsuper(name, 'array basecolumn', 'GelArray');\n\t\tthis.config.baseBuilder = baseBuilder;\n\t\tthis.config.length = length;\n\t}\n\n\t/** @internal */\n\toverride build(table: GelTable) {\n\t\tconst baseColumn: any = this.config.baseBuilder.build(table);\n\t\treturn new GelArray(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t\tbaseColumn,\n\t\t);\n\t}\n}\n\nexport class GelArray<\n\tT extends ColumnBaseConfig<'array basecolumn'> & {\n\t\tlength: number | undefined;\n\t\tbaseBuilder: ColumnBuilderBaseConfig<ColumnType>;\n\t},\n\tTBase extends ColumnBuilderBaseConfig<ColumnType>,\n> extends GelColumn<T, {}> {\n\tstatic override readonly [entityKind]: string = 'GelArray';\n\n\tconstructor(\n\t\ttable: AnyGelTable<{ name: T['tableName'] }>,\n\t\tconfig: GelArrayBuilder<T, TBase>['config'],\n\t\treadonly baseColumn: GelColumn,\n\t\treadonly range?: [number | undefined, number | undefined],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\toverride mapFromDriverValue(value: unknown[]): T['data'] {\n\t\treturn value.map((v) => this.baseColumn.mapFromDriverValue(v));\n\t}\n\n\t// Needed for arrays of custom types\n\tmapFromJsonValue(value: unknown[]): T['data'] {\n\t\tconst base = this.baseColumn;\n\n\t\treturn 'mapFromJsonValue' in base\n\t\t\t? value.map((v) => (<(value: unknown) => unknown> base.mapFromJsonValue)(v))\n\t\t\t: value.map((v) => base.mapFromDriverValue(v));\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `${this.baseColumn.getSQLType()}[${typeof this.length === 'number' ? this.length : ''}]`;\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.js","names":[],"sources":["../../../src/gel-core/columns/common.ts"],"sourcesContent":["import type {\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnType,\n\tHasGenerated,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Simplify, Update } from '~/utils.ts';\n\nimport type { ForeignKey, UpdateDeleteAction } from '~/gel-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/gel-core/foreign-keys.ts';\nimport type { AnyGelTable, GelTable } from '~/gel-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { iife } from '~/tracing-utils.ts';\nimport type { GelIndexOpClass } from '../indexes.ts';\n\nexport type GelColumns = Record<string, GelColumn<any>>;\n\nexport interface ReferenceConfig {\n\tref: () => GelColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport abstract class GelColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnType> = ColumnBuilderBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder<T, TRuntimeConfig, TExtraConfig> {\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\tstatic override readonly [entityKind]: string = 'GelColumnBuilder';\n\n\tarray(length?: number): GelArrayBuilder<\n\t\t& {\n\t\t\tname: string;\n\t\t\tdataType: 'array basecolumn';\n\t\t\tdata: T['data'][];\n\t\t\tdriverParam: T['driverParam'][] | string;\n\t\t\tbaseBuilder: T;\n\t\t}\n\t\t& (T extends { notNull: true } ? { notNull: true } : {})\n\t\t& (T extends { hasDefault: true } ? { hasDefault: true } : {}),\n\t\tT\n\t> {\n\t\treturn new GelArrayBuilder(this.config.name, this as GelColumnBuilder<any, any>, length as any);\n\t}\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t\tconfig?: { nulls: 'distinct' | 'not distinct' },\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\tthis.config.uniqueType = config?.nulls;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | (() => SQL)): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: 'stored',\n\t\t};\n\t\treturn this as HasGenerated<this, {\n\t\t\ttype: 'always';\n\t\t}>;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: GelColumn, table: GelTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn iife(\n\t\t\t\t(ref, actions) => {\n\t\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t\t});\n\t\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t\t}\n\t\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t\t}\n\t\t\t\t\treturn builder.build(table);\n\t\t\t\t},\n\t\t\t\tref,\n\t\t\t\tactions,\n\t\t\t);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(table: GelTable): GelColumn<any>;\n\n\t/** @internal */\n\tbuildExtraConfigColumn<TTableName extends string>(\n\t\ttable: AnyGelTable<{ name: TTableName }>,\n\t): GelExtraConfigColumn {\n\t\treturn new GelExtraConfigColumn(table, this.config);\n\t}\n}\n\n// To understand how to use `GelColumn` and `GelColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class GelColumn<\n\tT extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = {},\n> extends Column<T, TRuntimeConfig> {\n\tstatic override readonly [entityKind]: string = 'GelColumn';\n\n\t/** @internal */\n\toverride readonly table: GelTable;\n\n\tconstructor(\n\t\ttable: GelTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data']> & TRuntimeConfig,\n\t) {\n\t\tsuper(table, config);\n\t\tthis.table = table;\n\t}\n}\n\nexport type IndexedExtraConfigType = { order?: 'asc' | 'desc'; nulls?: 'first' | 'last'; opClass?: string };\n\nexport class GelExtraConfigColumn<\n\tT extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>,\n> extends GelColumn<T, IndexedExtraConfigType> {\n\tstatic override readonly [entityKind]: string = 'GelExtraConfigColumn';\n\n\toverride getSQLType(): string {\n\t\treturn this.getSQLType();\n\t}\n\n\tindexConfig: IndexedExtraConfigType = {\n\t\torder: this.config.order ?? 'asc',\n\t\tnulls: this.config.nulls ?? 'last',\n\t\topClass: this.config.opClass,\n\t};\n\tdefaultConfig: IndexedExtraConfigType = {\n\t\torder: 'asc',\n\t\tnulls: 'last',\n\t\topClass: undefined,\n\t};\n\n\tasc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'asc';\n\t\treturn this;\n\t}\n\n\tdesc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'desc';\n\t\treturn this;\n\t}\n\n\tnullsFirst(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'first';\n\t\treturn this;\n\t}\n\n\tnullsLast(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'last';\n\t\treturn this;\n\t}\n\n\t/**\n\t * ### PostgreSQL documentation quote\n\t *\n\t * > An operator class with optional parameters can be specified for each column of an index.\n\t * The operator class identifies the operators to be used by the index for that column.\n\t * For example, a B-tree index on four-byte integers would use the int4_ops class;\n\t * this operator class includes comparison functions for four-byte integers.\n\t * In practice the default operator class for the column's data type is usually sufficient.\n\t * The main point of having operator classes is that for some data types, there could be more than one meaningful ordering.\n\t * For example, we might want to sort a complex-number data type either by absolute value or by real part.\n\t * We could do this by defining two operator classes for the data type and then selecting the proper class when creating an index.\n\t * More information about operator classes check:\n\t *\n\t * ### Useful links\n\t * https://www.postgresql.org/docs/current/sql-createindex.html\n\t *\n\t * https://www.postgresql.org/docs/current/indexes-opclass.html\n\t *\n\t * https://www.postgresql.org/docs/current/xindex.html\n\t *\n\t * ### Additional types\n\t * If you have the `Gel_vector` extension installed in your database, you can use the\n\t * `vector_l2_ops`, `vector_ip_ops`, `vector_cosine_ops`, `vector_l1_ops`, `bit_hamming_ops`, `bit_jaccard_ops`, `halfvec_l2_ops`, `sparsevec_l2_ops` options, which are predefined types.\n\t *\n\t * **You can always specify any string you want in the operator class, in case Drizzle doesn't have it natively in its types**\n\t *\n\t * @param opClass\n\t * @returns\n\t */\n\top(opClass: GelIndexOpClass): Omit<this, 'op'> {\n\t\tthis.indexConfig.opClass = opClass;\n\t\treturn this;\n\t}\n}\n\nexport class IndexedColumn {\n\tstatic readonly [entityKind]: string = 'IndexedColumn';\n\tconstructor(\n\t\tname: string | undefined,\n\t\tkeyAsName: boolean,\n\t\ttype: string,\n\t\tindexConfig: IndexedExtraConfigType,\n\t) {\n\t\tthis.name = name;\n\t\tthis.keyAsName = keyAsName;\n\t\tthis.type = type;\n\t\tthis.indexConfig = indexConfig;\n\t}\n\n\tname: string | undefined;\n\tkeyAsName: boolean;\n\ttype: string;\n\tindexConfig: IndexedExtraConfigType;\n}\n\nexport type AnyGelColumn<TPartial extends Partial<ColumnBaseConfig<ColumnType>> = {}> = GelColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnType>, TPartial>>\n>;\n\nexport type GelArrayColumnBuilderBaseConfig = ColumnBuilderBaseConfig<'array basecolumn'> & {\n\tbaseBuilder: ColumnBuilderBaseConfig<ColumnType>;\n};\n\nexport class GelArrayBuilder<\n\tT extends GelArrayColumnBuilderBaseConfig,\n\tTBase extends ColumnBuilderBaseConfig<ColumnType> | GelArrayColumnBuilderBaseConfig,\n> extends GelColumnBuilder<\n\tT & {\n\t\tbaseBuilder: TBase extends GelArrayColumnBuilderBaseConfig ? GelArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: GelColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any>>>>;\n\t},\n\t{\n\t\tbaseBuilder: TBase extends GelArrayColumnBuilderBaseConfig ? GelArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: GelColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any>>>>;\n\t\tlength: number | undefined;\n\t},\n\t{}\n> {\n\tstatic override readonly [entityKind]: string = 'GelArrayBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tbaseBuilder: GelArrayBuilder<T, TBase>['config']['baseBuilder'],\n\t\tlength: number | undefined,\n\t) {\n\t\tsuper(name, 'array basecolumn', 'GelArray');\n\t\tthis.config.baseBuilder = baseBuilder;\n\t\tthis.config.length = length;\n\t}\n\n\t/** @internal */\n\toverride build(table: GelTable) {\n\t\tconst baseColumn: any = this.config.baseBuilder.build(table);\n\t\treturn new GelArray(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t\tbaseColumn,\n\t\t);\n\t}\n}\n\nexport class GelArray<\n\tT extends ColumnBaseConfig<'array basecolumn'> & {\n\t\tlength: number | undefined;\n\t\tbaseBuilder: ColumnBuilderBaseConfig<ColumnType>;\n\t},\n\tTBase extends ColumnBuilderBaseConfig<ColumnType>,\n> extends GelColumn<T, {}> {\n\tstatic override readonly [entityKind]: string = 'GelArray';\n\n\tconstructor(\n\t\ttable: AnyGelTable<{ name: T['tableName'] }>,\n\t\tconfig: GelArrayBuilder<T, TBase>['config'],\n\t\treadonly baseColumn: GelColumn,\n\t\treadonly range?: [number | undefined, number | undefined],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\toverride mapFromDriverValue = (value: unknown[]): T['data'] => {\n\t\treturn value.map((v) => this.baseColumn.mapFromDriverValue(v));\n\t};\n\n\t// Needed for arrays of custom types\n\tmapFromJsonValue(value: unknown[]): T['data'] {\n\t\tconst base = this.baseColumn;\n\n\t\treturn 'mapFromJsonValue' in base\n\t\t\t? value.map((v) => (<(value: unknown) => unknown> base.mapFromJsonValue)(v))\n\t\t\t: value.map((v) => base.mapFromDriverValue(v));\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `${this.baseColumn.getSQLType()}[${typeof this.length === 'number' ? this.length : ''}]`;\n\t}\n}\n"],"mappings":";;;;;;;AA8BA,IAAsB,mBAAtB,cAIU,cAA+C;CACxD,AAAQ,oBAAuC,EAAE;CAEjD,QAA0B,cAAsB;CAEhD,MAAM,QAWJ;AACD,SAAO,IAAI,gBAAgB,KAAK,OAAO,MAAM,MAAoC,OAAc;;CAGhG,WACC,KACA,UAAsC,EAAE,EACjC;AACP,OAAK,kBAAkB,KAAK;GAAE;GAAK;GAAS,CAAC;AAC7C,SAAO;;CAGR,OACC,MACA,QACO;AACP,OAAK,OAAO,WAAW;AACvB,OAAK,OAAO,aAAa;AACzB,OAAK,OAAO,aAAa,QAAQ;AACjC,SAAO;;CAGR,kBAAkB,IAEf;AACF,OAAK,OAAO,YAAY;GACvB;GACA,MAAM;GACN,MAAM;GACN;AACD,SAAO;;;CAMR,iBAAiB,QAAmB,OAA+B;AAClE,SAAO,KAAK,kBAAkB,KAAK,EAAE,KAAK,cAAc;AACvD,UAAO,MACL,KAAK,YAAY;IACjB,MAAM,UAAU,IAAI,wBAAwB;KAC3C,MAAM,gBAAgB,KAAK;AAC3B,YAAO;MAAE,SAAS,CAAC,OAAO;MAAE,gBAAgB,CAAC,cAAc;MAAE;MAC5D;AACF,QAAI,QAAQ,SACX,SAAQ,SAAS,QAAQ,SAAS;AAEnC,QAAI,QAAQ,SACX,SAAQ,SAAS,QAAQ,SAAS;AAEnC,WAAO,QAAQ,MAAM,MAAM;MAE5B,KACA,QACA;IACA;;;CAOH,uBACC,OACuB;AACvB,SAAO,IAAI,qBAAqB,OAAO,KAAK,OAAO;;;AAKrD,IAAsB,YAAtB,cAGU,OAA0B;CACnC,QAA0B,cAAsB;;CAGhD,AAAkB;CAElB,YACC,OACA,QACC;AACD,QAAM,OAAO,OAAO;AACpB,OAAK,QAAQ;;;AAMf,IAAa,uBAAb,cAEU,UAAqC;CAC9C,QAA0B,cAAsB;CAEhD,AAAS,aAAqB;AAC7B,SAAO,KAAK,YAAY;;CAGzB,cAAsC;EACrC,OAAO,KAAK,OAAO,SAAS;EAC5B,OAAO,KAAK,OAAO,SAAS;EAC5B,SAAS,KAAK,OAAO;EACrB;CACD,gBAAwC;EACvC,OAAO;EACP,OAAO;EACP,SAAS;EACT;CAED,MAAkC;AACjC,OAAK,YAAY,QAAQ;AACzB,SAAO;;CAGR,OAAmC;AAClC,OAAK,YAAY,QAAQ;AACzB,SAAO;;CAGR,aAAqD;AACpD,OAAK,YAAY,QAAQ;AACzB,SAAO;;CAGR,YAAoD;AACnD,OAAK,YAAY,QAAQ;AACzB,SAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCR,GAAG,SAA4C;AAC9C,OAAK,YAAY,UAAU;AAC3B,SAAO;;;AAIT,IAAa,gBAAb,MAA2B;CAC1B,QAAiB,cAAsB;CACvC,YACC,MACA,WACA,MACA,aACC;AACD,OAAK,OAAO;AACZ,OAAK,YAAY;AACjB,OAAK,OAAO;AACZ,OAAK,cAAc;;CAGpB;CACA;CACA;CACA;;AAWD,IAAa,kBAAb,cAGU,iBAmBR;CACD,QAA0B,cAAsB;CAEhD,YACC,MACA,aACA,QACC;AACD,QAAM,MAAM,oBAAoB,WAAW;AAC3C,OAAK,OAAO,cAAc;AAC1B,OAAK,OAAO,SAAS;;;CAItB,AAAS,MAAM,OAAiB;EAC/B,MAAM,aAAkB,KAAK,OAAO,YAAY,MAAM,MAAM;AAC5D,SAAO,IAAI,SACV,OACA,KAAK,QACL,WACA;;;AAIH,IAAa,WAAb,cAMU,UAAiB;CAC1B,QAA0B,cAAsB;CAEhD,YACC,OACA,QACA,AAAS,YACT,AAAS,OACR;AACD,QAAM,OAAO,OAAO;EAHX;EACA;;CAKV,AAAS,sBAAsB,UAAgC;AAC9D,SAAO,MAAM,KAAK,MAAM,KAAK,WAAW,mBAAmB,EAAE,CAAC;;CAI/D,iBAAiB,OAA6B;EAC7C,MAAM,OAAO,KAAK;AAElB,SAAO,sBAAsB,OAC1B,MAAM,KAAK,MAAqC,KAAK,iBAAkB,EAAE,CAAC,GAC1E,MAAM,KAAK,MAAM,KAAK,mBAAmB,EAAE,CAAC;;CAGhD,aAAqB;AACpB,SAAO,GAAG,KAAK,WAAW,YAAY,CAAC,GAAG,OAAO,KAAK,WAAW,WAAW,KAAK,SAAS,GAAG"}
|
|
@@ -35,9 +35,9 @@ var GelCustomColumn = class extends require_gel_core_columns_common.GelColumn {
|
|
|
35
35
|
getSQLType() {
|
|
36
36
|
return this.sqlName;
|
|
37
37
|
}
|
|
38
|
-
mapFromDriverValue(value) {
|
|
38
|
+
mapFromDriverValue = (value) => {
|
|
39
39
|
return typeof this.mapFrom === "function" ? this.mapFrom(value) : value;
|
|
40
|
-
}
|
|
40
|
+
};
|
|
41
41
|
mapFromJsonValue(value) {
|
|
42
42
|
return typeof this.mapJson === "function" ? this.mapJson(value) : this.mapFromDriverValue(value);
|
|
43
43
|
}
|
|
@@ -45,9 +45,9 @@ var GelCustomColumn = class extends require_gel_core_columns_common.GelColumn {
|
|
|
45
45
|
if (typeof this.forJsonSelect === "function") return this.forJsonSelect(identifier, sql, arrayDimensions);
|
|
46
46
|
return identifier;
|
|
47
47
|
}
|
|
48
|
-
mapToDriverValue(value) {
|
|
48
|
+
mapToDriverValue = (value) => {
|
|
49
49
|
return typeof this.mapTo === "function" ? this.mapTo(value) : value;
|
|
50
|
-
}
|
|
50
|
+
};
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
53
53
|
* Custom gel database data type generator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom.cjs","names":["GelColumnBuilder","entityKind","GelColumn"],"sources":["../../../src/gel-core/columns/custom.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyGelTable, GelTable } from '~/gel-core/table.ts';\nimport type { SQL, SQLGenerator } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { GelColumn, GelColumnBuilder } from './common.ts';\n\nexport type ConvertCustomConfig<T extends Partial<CustomTypeValues>> =\n\t& {\n\t\tdataType: 'custom';\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverData'];\n\t}\n\t& (T['notNull'] extends true ? { notNull: true } : {})\n\t& (T['default'] extends true ? { hasDefault: true } : {});\n\nexport interface GelCustomColumnInnerConfig {\n\tcustomTypeValues: CustomTypeValues;\n}\n\nexport class GelCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom'>> extends GelColumnBuilder<\n\tT,\n\t{\n\t\tfieldConfig: CustomTypeValues['config'];\n\t\tcustomTypeParams: CustomTypeParams<any>;\n\t}\n> {\n\tstatic override readonly [entityKind]: string = 'GelCustomColumnBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tfieldConfig: CustomTypeValues['config'],\n\t\tcustomTypeParams: CustomTypeParams<any>,\n\t) {\n\t\tsuper(name, 'custom', 'GelCustomColumn');\n\t\tthis.config.fieldConfig = fieldConfig;\n\t\tthis.config.customTypeParams = customTypeParams;\n\t}\n\n\t/** @internal */\n\toverride build(table: GelTable) {\n\t\treturn new GelCustomColumn(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class GelCustomColumn<T extends ColumnBaseConfig<'custom'>> extends GelColumn<T> {\n\tstatic override readonly [entityKind]: string = 'GelCustomColumn';\n\n\tprivate sqlName: string;\n\tprivate mapTo?: (value: T['data']) => T['driverParam'];\n\tprivate mapFrom?: (value: T['driverParam']) => T['data'];\n\tprivate mapJson?: (value: unknown) => T['data'];\n\tprivate forJsonSelect?: (name: SQL, sql: SQLGenerator, arrayDimensions?: number) => SQL;\n\n\tconstructor(\n\t\ttable: AnyGelTable<{ name: T['tableName'] }>,\n\t\tconfig: GelCustomColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n\t\tthis.mapTo = config.customTypeParams.toDriver;\n\t\tthis.mapFrom = config.customTypeParams.fromDriver;\n\t\tthis.mapJson = config.customTypeParams.fromJson;\n\t\tthis.forJsonSelect = config.customTypeParams.forJsonSelect;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.sqlName;\n\t}\n\n\toverride mapFromDriverValue(value: T['driverParam']): T['data'] {\n\t\treturn typeof this.mapFrom === 'function' ? this.mapFrom(value) : value as T['data'];\n\t}\n\n\tmapFromJsonValue(value: unknown): T['data'] {\n\t\treturn typeof this.mapJson === 'function' ? this.mapJson(value) : this.mapFromDriverValue(value) as T['data'];\n\t}\n\n\tjsonSelectIdentifier(identifier: SQL, sql: SQLGenerator, arrayDimensions?: number): SQL {\n\t\tif (typeof this.forJsonSelect === 'function') return this.forJsonSelect(identifier, sql, arrayDimensions);\n\n\t\treturn identifier;\n\t}\n\n\toverride mapToDriverValue(value: T['data']): T['driverParam'] {\n\t\treturn typeof this.mapTo === 'function' ? this.mapTo(value) : value as T['data'];\n\t}\n}\n\nexport interface CustomTypeValues {\n\t/**\n\t * Required type for custom column, that will infer proper type model\n\t *\n\t * Examples:\n\t *\n\t * If you want your column to be `string` type after selecting/or on inserting - use `data: string`. Like `text`, `varchar`\n\t *\n\t * If you want your column to be `number` type after selecting/or on inserting - use `data: number`. Like `integer`\n\t */\n\tdata: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is returning for specific database data type\n\t *\n\t * Needed only in case driver's output and input for type differ\n\t *\n\t * Defaults to {@link driverData}\n\t */\n\tdriverOutput?: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is accepting for specific database data type\n\t */\n\tdriverData?: unknown;\n\n\t/**\n\t * Type helper, that represents what type field returns after being aggregated to JSON\n\t */\n\tjsonData?: unknown;\n\n\t/**\n\t * What config type should be used for {@link CustomTypeParams} `dataType` generation\n\t */\n\tconfig?: Record<string, any>;\n\n\t/**\n\t * Whether the config argument should be required or not\n\t * @default false\n\t */\n\tconfigRequired?: boolean;\n\n\t/**\n\t * If your custom data type should be notNull by default you can use `notNull: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tnotNull?: boolean;\n\n\t/**\n\t * If your custom data type has default you can use `default: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tdefault?: boolean;\n}\n\nexport interface CustomTypeParams<T extends CustomTypeValues> {\n\t/**\n\t * Database data type string representation, that is used for migrations\n\t * @example\n\t * ```\n\t * `jsonb`, `text`\n\t * ```\n\t *\n\t * If database data type needs additional params you can use them from `config` param\n\t * @example\n\t * ```\n\t * `varchar(256)`, `numeric(2,3)`\n\t * ```\n\t *\n\t * To make `config` be of specific type please use config generic in {@link CustomTypeValues}\n\t *\n\t * @example\n\t * Usage example\n\t * ```\n\t * dataType() {\n\t * return 'boolean';\n\t * },\n\t * ```\n\t * Or\n\t * ```\n\t * dataType(config) {\n\t * \t return typeof config.length !== 'undefined' ? `varchar(${config.length})` : `varchar`;\n\t * \t }\n\t * ```\n\t */\n\tdataType: (config: T['config'] | (Equal<T['configRequired'], true> extends true ? never : undefined)) => string;\n\n\t/**\n\t * Optional mapping function, that is used to transform inputs from desired to be used in code format to one suitable for driver\n\t * @example\n\t * For example, when using jsonb we need to map JS/TS object to string before writing to database\n\t * ```\n\t * toDriver(value: TData): string {\n\t * \t return JSON.stringify(value);\n\t * }\n\t * ```\n\t */\n\ttoDriver?: (value: T['data']) => T['driverData'] | SQL;\n\n\t/**\n\t * Optional mapping function, that is used for transforming data returned by driver to desired column's output format\n\t * @example\n\t * For example, when using timestamp we need to map string Date representation to JS Date\n\t * ```\n\t * fromDriver(value: string): Date {\n\t * \treturn new Date(value);\n\t * }\n\t * ```\n\t *\n\t * It'll cause the returned data to change from:\n\t * ```\n\t * {\n\t * \tcustomField: \"2025-04-07T03:25:16.635Z\";\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tcustomField: new Date(\"2025-04-07T03:25:16.635Z\");\n\t * }\n\t * ```\n\t */\n\tfromDriver?: (value: 'driverOutput' extends keyof T ? T['driverOutput'] : T['driverData']) => T['data'];\n\n\t/**\n\t * Optional mapping function, that is used for transforming data returned by transofmed to JSON in database data to desired format\n\t *\n\t * Used by [relational queries](https://orm.drizzle.team/docs/rqb-v2)\n\t *\n\t * Defaults to {@link fromDriver} function\n\t * @example\n\t * For example, when querying bigint column via [RQB](https://orm.drizzle.team/docs/rqb-v2) or [JSON functions](https://orm.drizzle.team/docs/json-functions), the result field will be returned as it's string representation, as opposed to bigint from regular query\n\t * To handle that, we need a separate function to handle such field's mapping:\n\t * ```\n\t * fromJson(value: string): bigint {\n\t * \treturn BigInt(value);\n\t * },\n\t * ```\n\t *\n\t * It'll cause the returned data to change from:\n\t * ```\n\t * {\n\t * \tcustomField: \"5044565289845416380\";\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tcustomField: 5044565289845416380n;\n\t * }\n\t * ```\n\t */\n\tfromJson?: (value: T['jsonData']) => T['data'];\n\n\t/**\n\t * Optional selection modifier function, that is used for modifying selection of column inside [JSON functions](https://orm.drizzle.team/docs/json-functions)\n\t *\n\t * Additional mapping that could be required for such scenarios can be handled using {@link fromJson} function\n\t *\n\t * Used by [relational queries](https://orm.drizzle.team/docs/rqb-v2)\n\t * @example\n\t * For example, when using bigint we need to cast field to text to preserve data integrity\n\t * ```\n\t * forJsonSelect(identifier: SQL, sql: SQLGenerator, arrayDimensions?: number): SQL {\n\t * \treturn sql`${identifier}::text`\n\t * },\n\t * ```\n\t *\n\t * This will change query from:\n\t * ```\n\t * SELECT\n\t * \trow_to_json(\"t\".*)\n\t * \tFROM\n\t * \t(\n\t * \t\tSELECT\n\t * \t\t\"table\".\"custom_bigint\" AS \"bigint\"\n\t * \t\tFROM\n\t * \t\t\"table\"\n\t * \t) AS \"t\"\n\t * ```\n\t * to:\n\t * ```\n\t * SELECT\n\t * \trow_to_json(\"t\".*)\n\t * \tFROM\n\t * \t(\n\t * \t\tSELECT\n\t * \t\t\"table\".\"custom_bigint\"::text AS \"bigint\"\n\t * \t\tFROM\n\t * \t\t\"table\"\n\t * \t) AS \"t\"\n\t * ```\n\t *\n\t * Returned by query object will change from:\n\t * ```\n\t * {\n\t * \tbigint: 5044565289845416000; // Partial data loss due to direct conversion to JSON format\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tbigint: \"5044565289845416380\"; // Data is preserved due to conversion of field to text before JSON-ification\n\t * }\n\t * ```\n\t */\n\tforJsonSelect?: (identifier: SQL, sql: SQLGenerator, arrayDimensions?: number) => SQL;\n}\n\n/**\n * Custom gel database data type generator\n */\nexport function customType<T extends CustomTypeValues = CustomTypeValues>(\n\tcustomTypeParams: CustomTypeParams<T>,\n): Equal<T['configRequired'], true> extends true ? {\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig: TConfig,\n\t\t): GelCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t\t(\n\t\t\tdbname: string,\n\t\t\tfieldConfig: T['config'],\n\t\t): GelCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t}\n\t: {\n\t\t(): GelCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig?: TConfig,\n\t\t): GelCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t\t(\n\t\t\tdbname: string,\n\t\t\tfieldConfig?: T['config'],\n\t\t): GelCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t}\n{\n\treturn (\n\t\ta?: string | T['config'],\n\t\tb?: T['config'],\n\t): GelCustomColumnBuilder<ConvertCustomConfig<T>> => {\n\t\tconst { name, config } = getColumnNameAndConfig<T['config']>(a, b);\n\t\treturn new GelCustomColumnBuilder(name, config, customTypeParams);\n\t};\n}\n"],"mappings":";;;;;;;AAqBA,IAAa,yBAAb,cAAyFA,iDAMvF;CACD,QAA0BC,0BAAsB;CAEhD,YACC,MACA,aACA,kBACC;AACD,QAAM,MAAM,UAAU,kBAAkB;AACxC,OAAK,OAAO,cAAc;AAC1B,OAAK,OAAO,mBAAmB;;;CAIhC,AAAS,MAAM,OAAiB;AAC/B,SAAO,IAAI,gBACV,OACA,KAAK,OACL;;;AAIH,IAAa,kBAAb,cAA2EC,0CAAa;CACvF,QAA0BD,0BAAsB;CAEhD,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,YACC,OACA,QACC;AACD,QAAM,OAAO,OAAO;AACpB,OAAK,UAAU,OAAO,iBAAiB,SAAS,OAAO,YAAY;AACnE,OAAK,QAAQ,OAAO,iBAAiB;AACrC,OAAK,UAAU,OAAO,iBAAiB;AACvC,OAAK,UAAU,OAAO,iBAAiB;AACvC,OAAK,gBAAgB,OAAO,iBAAiB;;CAG9C,aAAqB;AACpB,SAAO,KAAK;;CAGb,AAAS,mBAAmB,OAAoC;AAC/D,SAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,MAAM,GAAG;;CAGnE,iBAAiB,OAA2B;AAC3C,SAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,MAAM,GAAG,KAAK,mBAAmB,MAAM;;CAGjG,qBAAqB,YAAiB,KAAmB,iBAA+B;AACvF,MAAI,OAAO,KAAK,kBAAkB,WAAY,QAAO,KAAK,cAAc,YAAY,KAAK,gBAAgB;AAEzG,SAAO;;CAGR,AAAS,iBAAiB,OAAoC;AAC7D,SAAO,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,MAAM,GAAG;;;;;;AAoOhE,SAAgB,WACf,kBAoBD;AACC,SACC,GACA,MACoD;EACpD,MAAM,EAAE,MAAM,kDAA+C,GAAG,EAAE;AAClE,SAAO,IAAI,uBAAuB,MAAM,QAAQ,iBAAiB"}
|
|
1
|
+
{"version":3,"file":"custom.cjs","names":["GelColumnBuilder","entityKind","GelColumn"],"sources":["../../../src/gel-core/columns/custom.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyGelTable, GelTable } from '~/gel-core/table.ts';\nimport type { SQL, SQLGenerator } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { GelColumn, GelColumnBuilder } from './common.ts';\n\nexport type ConvertCustomConfig<T extends Partial<CustomTypeValues>> =\n\t& {\n\t\tdataType: 'custom';\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverData'];\n\t}\n\t& (T['notNull'] extends true ? { notNull: true } : {})\n\t& (T['default'] extends true ? { hasDefault: true } : {});\n\nexport interface GelCustomColumnInnerConfig {\n\tcustomTypeValues: CustomTypeValues;\n}\n\nexport class GelCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom'>> extends GelColumnBuilder<\n\tT,\n\t{\n\t\tfieldConfig: CustomTypeValues['config'];\n\t\tcustomTypeParams: CustomTypeParams<any>;\n\t}\n> {\n\tstatic override readonly [entityKind]: string = 'GelCustomColumnBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tfieldConfig: CustomTypeValues['config'],\n\t\tcustomTypeParams: CustomTypeParams<any>,\n\t) {\n\t\tsuper(name, 'custom', 'GelCustomColumn');\n\t\tthis.config.fieldConfig = fieldConfig;\n\t\tthis.config.customTypeParams = customTypeParams;\n\t}\n\n\t/** @internal */\n\toverride build(table: GelTable) {\n\t\treturn new GelCustomColumn(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class GelCustomColumn<T extends ColumnBaseConfig<'custom'>> extends GelColumn<T> {\n\tstatic override readonly [entityKind]: string = 'GelCustomColumn';\n\n\tprivate sqlName: string;\n\tprivate mapTo?: (value: T['data']) => T['driverParam'];\n\tprivate mapFrom?: (value: T['driverParam']) => T['data'];\n\tprivate mapJson?: (value: unknown) => T['data'];\n\tprivate forJsonSelect?: (name: SQL, sql: SQLGenerator, arrayDimensions?: number) => SQL;\n\n\tconstructor(\n\t\ttable: AnyGelTable<{ name: T['tableName'] }>,\n\t\tconfig: GelCustomColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n\t\tthis.mapTo = config.customTypeParams.toDriver;\n\t\tthis.mapFrom = config.customTypeParams.fromDriver;\n\t\tthis.mapJson = config.customTypeParams.fromJson;\n\t\tthis.forJsonSelect = config.customTypeParams.forJsonSelect;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.sqlName;\n\t}\n\n\toverride mapFromDriverValue = (value: T['driverParam']): T['data'] => {\n\t\treturn typeof this.mapFrom === 'function' ? this.mapFrom(value) : value as T['data'];\n\t};\n\n\tmapFromJsonValue(value: unknown): T['data'] {\n\t\treturn typeof this.mapJson === 'function' ? this.mapJson(value) : this.mapFromDriverValue(value) as T['data'];\n\t}\n\n\tjsonSelectIdentifier(identifier: SQL, sql: SQLGenerator, arrayDimensions?: number): SQL {\n\t\tif (typeof this.forJsonSelect === 'function') return this.forJsonSelect(identifier, sql, arrayDimensions);\n\n\t\treturn identifier;\n\t}\n\n\toverride mapToDriverValue = (value: T['data']): T['driverParam'] => {\n\t\treturn typeof this.mapTo === 'function' ? this.mapTo(value) : value as T['data'];\n\t};\n}\n\nexport interface CustomTypeValues {\n\t/**\n\t * Required type for custom column, that will infer proper type model\n\t *\n\t * Examples:\n\t *\n\t * If you want your column to be `string` type after selecting/or on inserting - use `data: string`. Like `text`, `varchar`\n\t *\n\t * If you want your column to be `number` type after selecting/or on inserting - use `data: number`. Like `integer`\n\t */\n\tdata: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is returning for specific database data type\n\t *\n\t * Needed only in case driver's output and input for type differ\n\t *\n\t * Defaults to {@link driverData}\n\t */\n\tdriverOutput?: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is accepting for specific database data type\n\t */\n\tdriverData?: unknown;\n\n\t/**\n\t * Type helper, that represents what type field returns after being aggregated to JSON\n\t */\n\tjsonData?: unknown;\n\n\t/**\n\t * What config type should be used for {@link CustomTypeParams} `dataType` generation\n\t */\n\tconfig?: Record<string, any>;\n\n\t/**\n\t * Whether the config argument should be required or not\n\t * @default false\n\t */\n\tconfigRequired?: boolean;\n\n\t/**\n\t * If your custom data type should be notNull by default you can use `notNull: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tnotNull?: boolean;\n\n\t/**\n\t * If your custom data type has default you can use `default: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tdefault?: boolean;\n}\n\nexport interface CustomTypeParams<T extends CustomTypeValues> {\n\t/**\n\t * Database data type string representation, that is used for migrations\n\t * @example\n\t * ```\n\t * `jsonb`, `text`\n\t * ```\n\t *\n\t * If database data type needs additional params you can use them from `config` param\n\t * @example\n\t * ```\n\t * `varchar(256)`, `numeric(2,3)`\n\t * ```\n\t *\n\t * To make `config` be of specific type please use config generic in {@link CustomTypeValues}\n\t *\n\t * @example\n\t * Usage example\n\t * ```\n\t * dataType() {\n\t * return 'boolean';\n\t * },\n\t * ```\n\t * Or\n\t * ```\n\t * dataType(config) {\n\t * \t return typeof config.length !== 'undefined' ? `varchar(${config.length})` : `varchar`;\n\t * \t }\n\t * ```\n\t */\n\tdataType: (config: T['config'] | (Equal<T['configRequired'], true> extends true ? never : undefined)) => string;\n\n\t/**\n\t * Optional mapping function, that is used to transform inputs from desired to be used in code format to one suitable for driver\n\t * @example\n\t * For example, when using jsonb we need to map JS/TS object to string before writing to database\n\t * ```\n\t * toDriver(value: TData): string {\n\t * \t return JSON.stringify(value);\n\t * }\n\t * ```\n\t */\n\ttoDriver?: (value: T['data']) => T['driverData'] | SQL;\n\n\t/**\n\t * Optional mapping function, that is used for transforming data returned by driver to desired column's output format\n\t * @example\n\t * For example, when using timestamp we need to map string Date representation to JS Date\n\t * ```\n\t * fromDriver(value: string): Date {\n\t * \treturn new Date(value);\n\t * }\n\t * ```\n\t *\n\t * It'll cause the returned data to change from:\n\t * ```\n\t * {\n\t * \tcustomField: \"2025-04-07T03:25:16.635Z\";\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tcustomField: new Date(\"2025-04-07T03:25:16.635Z\");\n\t * }\n\t * ```\n\t */\n\tfromDriver?: (value: 'driverOutput' extends keyof T ? T['driverOutput'] : T['driverData']) => T['data'];\n\n\t/**\n\t * Optional mapping function, that is used for transforming data returned by transofmed to JSON in database data to desired format\n\t *\n\t * Used by [relational queries](https://orm.drizzle.team/docs/rqb-v2)\n\t *\n\t * Defaults to {@link fromDriver} function\n\t * @example\n\t * For example, when querying bigint column via [RQB](https://orm.drizzle.team/docs/rqb-v2) or [JSON functions](https://orm.drizzle.team/docs/json-functions), the result field will be returned as it's string representation, as opposed to bigint from regular query\n\t * To handle that, we need a separate function to handle such field's mapping:\n\t * ```\n\t * fromJson(value: string): bigint {\n\t * \treturn BigInt(value);\n\t * },\n\t * ```\n\t *\n\t * It'll cause the returned data to change from:\n\t * ```\n\t * {\n\t * \tcustomField: \"5044565289845416380\";\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tcustomField: 5044565289845416380n;\n\t * }\n\t * ```\n\t */\n\tfromJson?: (value: T['jsonData']) => T['data'];\n\n\t/**\n\t * Optional selection modifier function, that is used for modifying selection of column inside [JSON functions](https://orm.drizzle.team/docs/json-functions)\n\t *\n\t * Additional mapping that could be required for such scenarios can be handled using {@link fromJson} function\n\t *\n\t * Used by [relational queries](https://orm.drizzle.team/docs/rqb-v2)\n\t * @example\n\t * For example, when using bigint we need to cast field to text to preserve data integrity\n\t * ```\n\t * forJsonSelect(identifier: SQL, sql: SQLGenerator, arrayDimensions?: number): SQL {\n\t * \treturn sql`${identifier}::text`\n\t * },\n\t * ```\n\t *\n\t * This will change query from:\n\t * ```\n\t * SELECT\n\t * \trow_to_json(\"t\".*)\n\t * \tFROM\n\t * \t(\n\t * \t\tSELECT\n\t * \t\t\"table\".\"custom_bigint\" AS \"bigint\"\n\t * \t\tFROM\n\t * \t\t\"table\"\n\t * \t) AS \"t\"\n\t * ```\n\t * to:\n\t * ```\n\t * SELECT\n\t * \trow_to_json(\"t\".*)\n\t * \tFROM\n\t * \t(\n\t * \t\tSELECT\n\t * \t\t\"table\".\"custom_bigint\"::text AS \"bigint\"\n\t * \t\tFROM\n\t * \t\t\"table\"\n\t * \t) AS \"t\"\n\t * ```\n\t *\n\t * Returned by query object will change from:\n\t * ```\n\t * {\n\t * \tbigint: 5044565289845416000; // Partial data loss due to direct conversion to JSON format\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tbigint: \"5044565289845416380\"; // Data is preserved due to conversion of field to text before JSON-ification\n\t * }\n\t * ```\n\t */\n\tforJsonSelect?: (identifier: SQL, sql: SQLGenerator, arrayDimensions?: number) => SQL;\n}\n\n/**\n * Custom gel database data type generator\n */\nexport function customType<T extends CustomTypeValues = CustomTypeValues>(\n\tcustomTypeParams: CustomTypeParams<T>,\n): Equal<T['configRequired'], true> extends true ? {\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig: TConfig,\n\t\t): GelCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t\t(\n\t\t\tdbname: string,\n\t\t\tfieldConfig: T['config'],\n\t\t): GelCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t}\n\t: {\n\t\t(): GelCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig?: TConfig,\n\t\t): GelCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t\t(\n\t\t\tdbname: string,\n\t\t\tfieldConfig?: T['config'],\n\t\t): GelCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t}\n{\n\treturn (\n\t\ta?: string | T['config'],\n\t\tb?: T['config'],\n\t): GelCustomColumnBuilder<ConvertCustomConfig<T>> => {\n\t\tconst { name, config } = getColumnNameAndConfig<T['config']>(a, b);\n\t\treturn new GelCustomColumnBuilder(name, config, customTypeParams);\n\t};\n}\n"],"mappings":";;;;;;;AAqBA,IAAa,yBAAb,cAAyFA,iDAMvF;CACD,QAA0BC,0BAAsB;CAEhD,YACC,MACA,aACA,kBACC;AACD,QAAM,MAAM,UAAU,kBAAkB;AACxC,OAAK,OAAO,cAAc;AAC1B,OAAK,OAAO,mBAAmB;;;CAIhC,AAAS,MAAM,OAAiB;AAC/B,SAAO,IAAI,gBACV,OACA,KAAK,OACL;;;AAIH,IAAa,kBAAb,cAA2EC,0CAAa;CACvF,QAA0BD,0BAAsB;CAEhD,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,YACC,OACA,QACC;AACD,QAAM,OAAO,OAAO;AACpB,OAAK,UAAU,OAAO,iBAAiB,SAAS,OAAO,YAAY;AACnE,OAAK,QAAQ,OAAO,iBAAiB;AACrC,OAAK,UAAU,OAAO,iBAAiB;AACvC,OAAK,UAAU,OAAO,iBAAiB;AACvC,OAAK,gBAAgB,OAAO,iBAAiB;;CAG9C,aAAqB;AACpB,SAAO,KAAK;;CAGb,AAAS,sBAAsB,UAAuC;AACrE,SAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,MAAM,GAAG;;CAGnE,iBAAiB,OAA2B;AAC3C,SAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,MAAM,GAAG,KAAK,mBAAmB,MAAM;;CAGjG,qBAAqB,YAAiB,KAAmB,iBAA+B;AACvF,MAAI,OAAO,KAAK,kBAAkB,WAAY,QAAO,KAAK,cAAc,YAAY,KAAK,gBAAgB;AAEzG,SAAO;;CAGR,AAAS,oBAAoB,UAAuC;AACnE,SAAO,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,MAAM,GAAG;;;;;;AAoOhE,SAAgB,WACf,kBAoBD;AACC,SACC,GACA,MACoD;EACpD,MAAM,EAAE,MAAM,kDAA+C,GAAG,EAAE;AAClE,SAAO,IAAI,uBAAuB,MAAM,QAAQ,iBAAiB"}
|
|
@@ -37,10 +37,10 @@ declare class GelCustomColumn<T extends ColumnBaseConfig<'custom'>> extends GelC
|
|
|
37
37
|
name: T['tableName'];
|
|
38
38
|
}>, config: GelCustomColumnBuilder<T>['config']);
|
|
39
39
|
getSQLType(): string;
|
|
40
|
-
mapFromDriverValue(value: T[
|
|
40
|
+
mapFromDriverValue: (value: T["driverParam"]) => T["data"];
|
|
41
41
|
mapFromJsonValue(value: unknown): T['data'];
|
|
42
42
|
jsonSelectIdentifier(identifier: SQL, sql: SQLGenerator, arrayDimensions?: number): SQL;
|
|
43
|
-
mapToDriverValue(value: T[
|
|
43
|
+
mapToDriverValue: (value: T["data"]) => T["driverParam"];
|
|
44
44
|
}
|
|
45
45
|
interface CustomTypeValues {
|
|
46
46
|
/**
|
|
@@ -37,10 +37,10 @@ declare class GelCustomColumn<T extends ColumnBaseConfig<'custom'>> extends GelC
|
|
|
37
37
|
name: T['tableName'];
|
|
38
38
|
}>, config: GelCustomColumnBuilder<T>['config']);
|
|
39
39
|
getSQLType(): string;
|
|
40
|
-
mapFromDriverValue(value: T[
|
|
40
|
+
mapFromDriverValue: (value: T["driverParam"]) => T["data"];
|
|
41
41
|
mapFromJsonValue(value: unknown): T['data'];
|
|
42
42
|
jsonSelectIdentifier(identifier: SQL, sql: SQLGenerator, arrayDimensions?: number): SQL;
|
|
43
|
-
mapToDriverValue(value: T[
|
|
43
|
+
mapToDriverValue: (value: T["data"]) => T["driverParam"];
|
|
44
44
|
}
|
|
45
45
|
interface CustomTypeValues {
|
|
46
46
|
/**
|
|
@@ -33,9 +33,9 @@ var GelCustomColumn = class extends GelColumn {
|
|
|
33
33
|
getSQLType() {
|
|
34
34
|
return this.sqlName;
|
|
35
35
|
}
|
|
36
|
-
mapFromDriverValue(value) {
|
|
36
|
+
mapFromDriverValue = (value) => {
|
|
37
37
|
return typeof this.mapFrom === "function" ? this.mapFrom(value) : value;
|
|
38
|
-
}
|
|
38
|
+
};
|
|
39
39
|
mapFromJsonValue(value) {
|
|
40
40
|
return typeof this.mapJson === "function" ? this.mapJson(value) : this.mapFromDriverValue(value);
|
|
41
41
|
}
|
|
@@ -43,9 +43,9 @@ var GelCustomColumn = class extends GelColumn {
|
|
|
43
43
|
if (typeof this.forJsonSelect === "function") return this.forJsonSelect(identifier, sql, arrayDimensions);
|
|
44
44
|
return identifier;
|
|
45
45
|
}
|
|
46
|
-
mapToDriverValue(value) {
|
|
46
|
+
mapToDriverValue = (value) => {
|
|
47
47
|
return typeof this.mapTo === "function" ? this.mapTo(value) : value;
|
|
48
|
-
}
|
|
48
|
+
};
|
|
49
49
|
};
|
|
50
50
|
/**
|
|
51
51
|
* Custom gel database data type generator
|