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/sql/sql.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.cjs","names":["entityKind","Table","tracer","IsAlias","Column","ViewBaseConfig","Subquery","TableName","TableSchema","OriginalName","TableColumns"],"sources":["../../src/sql/sql.ts"],"sourcesContent":["import type { CasingCache } from '~/casing.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { SelectResult } from '~/query-builders/select.types.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { TableName } from '~/table.utils.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { AnyColumn } from '../column.ts';\nimport { Column } from '../column.ts';\nimport { IsAlias, OriginalName, Table, TableColumns, TableSchema } from '../table.ts';\n\n/**\n * This class is used to indicate a primitive param value that is used in `sql` tag.\n * It is only used on type level and is never instantiated at runtime.\n * If you see a value of this type in the code, its runtime value is actually the primitive param value.\n */\nexport class FakePrimitiveParam {\n\tstatic readonly [entityKind]: string = 'FakePrimitiveParam';\n}\n\nexport type Chunk =\n\t| string\n\t| Table\n\t| View\n\t| AnyColumn\n\t| Name\n\t| Param\n\t| Placeholder\n\t| SQL;\n\nexport interface BuildQueryConfig {\n\tcasing: CasingCache;\n\tescapeName(name: string): string;\n\tescapeParam(num: number, value: unknown): string;\n\tescapeString(str: string): string;\n\tprepareTyping?: (encoder: DriverValueEncoder<unknown, unknown>) => QueryTypingsValue;\n\tparamStartIndex?: { value: number };\n\tinlineParams?: boolean;\n\tinvokeSource?: 'indexes' | 'mssql-check' | 'mssql-view-with-schemabinding' | undefined;\n}\n\nexport type QueryTypingsValue = 'json' | 'decimal' | 'time' | 'timestamp' | 'uuid' | 'date' | 'none';\n\nexport interface Query {\n\tsql: string;\n\tparams: unknown[];\n}\n\nexport interface QueryWithTypings extends Query {\n\ttypings?: QueryTypingsValue[];\n}\n\n/**\n * Any value that implements the `getSQL` method. The implementations include:\n * - `Table`\n * - `Column`\n * - `View`\n * - `Subquery`\n * - `SQL`\n * - `SQL.Aliased`\n * - `Placeholder`\n * - `Param`\n */\nexport interface SQLWrapper<T = unknown> {\n\tgetSQL(): SQL<T>;\n\tshouldOmitSQLParens?(): boolean;\n}\n\nexport function isSQLWrapper(value: unknown): value is SQLWrapper {\n\treturn value !== null && value !== undefined && typeof (value as any).getSQL === 'function';\n}\n\nfunction mergeQueries(queries: QueryWithTypings[]): QueryWithTypings {\n\tconst result: QueryWithTypings = { sql: '', params: [] };\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t\tif (query.typings?.length) {\n\t\t\tif (!result.typings) {\n\t\t\t\tresult.typings = [];\n\t\t\t}\n\t\t\tresult.typings.push(...query.typings);\n\t\t}\n\t}\n\treturn result;\n}\n\nexport class StringChunk implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'StringChunk';\n\n\treadonly value: string[];\n\n\tconstructor(value: string | string[]) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\nexport class SQL<T = unknown> implements SQLWrapper<T> {\n\tstatic readonly [entityKind]: string = 'SQL';\n\n\tdeclare _: {\n\t\tbrand: 'SQL';\n\t\ttype: T;\n\t};\n\n\t/** @internal */\n\tdecoder: DriverValueDecoder<T, any> = noopDecoder;\n\t/** @internal */\n\tpublic shouldInlineParams = false;\n\n\t/** @internal */\n\tusedTables: string[] = [];\n\n\tconstructor(readonly queryChunks: SQLChunk[]) {\n\t\tfor (const chunk of queryChunks) {\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\n\t\t\t\tthis.usedTables.push(\n\t\t\t\t\tschemaName === undefined\n\t\t\t\t\t\t? chunk[Table.Symbol.Name]\n\t\t\t\t\t\t: schemaName + '.' + chunk[Table.Symbol.Name],\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tappend(query: SQL): this {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\n\ttoQuery(config: BuildQueryConfig): QueryWithTypings {\n\t\treturn tracer.startActiveSpan('drizzle.buildSQL', (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': query.sql,\n\t\t\t\t'drizzle.query.params': JSON.stringify(query.params),\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\n\tbuildQueryFromSourceParams(chunks: SQLChunk[], _config: BuildQueryConfig): Query {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 },\n\t\t});\n\n\t\tconst {\n\t\t\tcasing,\n\t\t\tescapeName,\n\t\t\tescapeParam,\n\t\t\tprepareTyping,\n\t\t\tinlineParams,\n\t\t\tparamStartIndex,\n\t\t\tinvokeSource,\n\t\t} = config;\n\n\t\treturn mergeQueries(chunks.map((chunk): QueryWithTypings => {\n\t\t\tif (is(chunk, StringChunk)) {\n\t\t\t\treturn { sql: chunk.value.join(''), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Name)) {\n\t\t\t\treturn { sql: escapeName(chunk.value), params: [] };\n\t\t\t}\n\n\t\t\tif (chunk === undefined) {\n\t\t\t\treturn { sql: '', params: [] };\n\t\t\t}\n\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result: SQLChunk[] = [new StringChunk('(')];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) {\n\t\t\t\t\t\tresult.push(new StringChunk(', '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(')'));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL)) {\n\t\t\t\treturn this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t\t...config,\n\t\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\n\t\t\t\tif (invokeSource === 'mssql-view-with-schemabinding') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsql: (schemaName === undefined ? escapeName('dbo') : escapeName(schemaName)) + '.'\n\t\t\t\t\t\t\t+ escapeName(tableName),\n\t\t\t\t\t\tparams: [],\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined || chunk[IsAlias]\n\t\t\t\t\t\t? escapeName(tableName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(tableName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\tconst columnName = casing.getColumnCasing(chunk);\n\t\t\t\tif (_config.invokeSource === 'indexes') {\n\t\t\t\t\treturn { sql: escapeName(columnName), params: [] };\n\t\t\t\t}\n\n\t\t\t\tconst schemaName = invokeSource === 'mssql-check' ? undefined : chunk.table[Table.Symbol.Schema];\n\t\t\t\treturn {\n\t\t\t\t\tsql: chunk.isAlias ? escapeName(chunk.name) : chunk.table[IsAlias] || schemaName === undefined\n\t\t\t\t\t\t? escapeName(chunk.table[Table.Symbol.Name]) + '.' + escapeName(columnName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(chunk.table[Table.Symbol.Name]) + '.'\n\t\t\t\t\t\t\t+ escapeName(columnName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined || chunk[ViewBaseConfig].isAlias\n\t\t\t\t\t\t? escapeName(viewName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(viewName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tif (is(chunk.value, Placeholder)) {\n\t\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t\t\t}\n\n\t\t\t\tconst mappedValue = chunk.value === null ? null : chunk.encoder.mapToDriverValue(chunk.value);\n\n\t\t\t\tif (is(mappedValue, SQL)) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t}\n\n\t\t\t\tif (inlineParams) {\n\t\t\t\t\treturn { sql: this.mapInlineParam(mappedValue, config), params: [] };\n\t\t\t\t}\n\n\t\t\t\tlet typings: QueryTypingsValue[] = ['none'];\n\t\t\t\tif (prepareTyping) {\n\t\t\t\t\ttypings = [prepareTyping(chunk.encoder)];\n\t\t\t\t}\n\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, mappedValue), params: [mappedValue], typings };\n\t\t\t}\n\n\t\t\tif (is(chunk, Placeholder)) {\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== undefined) {\n\t\t\t\treturn {\n\t\t\t\t\tsql: (chunk.origin !== undefined ? escapeName(chunk.origin) + '.' : '') + escapeName(chunk.fieldAlias),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk._.isWith) {\n\t\t\t\t\treturn { sql: escapeName(chunk._.alias), params: [] };\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk._.sql,\n\t\t\t\t\tnew StringChunk(') '),\n\t\t\t\t\tnew Name(chunk._.alias),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (typeof chunk === 'function' && 'enumName' in chunk) {\n\t\t\t\tif ('schema' in chunk && chunk.schema) {\n\t\t\t\t\treturn { sql: escapeName(chunk.schema as string) + '.' + escapeName(chunk.enumName as string), params: [] };\n\t\t\t\t}\n\t\t\t\treturn { sql: escapeName(chunk.enumName as string), params: [] };\n\t\t\t}\n\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\tif (chunk.shouldOmitSQLParens?.()) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([chunk.getSQL()], config);\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(')'),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (inlineParams) {\n\t\t\t\treturn { sql: this.mapInlineParam(chunk, config), params: [] };\n\t\t\t}\n\n\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t}));\n\t}\n\n\tprivate mapInlineParam(\n\t\tchunk: unknown,\n\t\t{ escapeString }: BuildQueryConfig,\n\t): string {\n\t\tif (chunk === null) {\n\t\t\treturn 'null';\n\t\t}\n\t\tif (typeof chunk === 'number' || typeof chunk === 'boolean' || typeof chunk === 'bigint') {\n\t\t\treturn chunk.toString();\n\t\t}\n\t\tif (typeof chunk === 'string') {\n\t\t\treturn escapeString(chunk);\n\t\t}\n\t\tif (typeof chunk === 'object') {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === '[object Object]') {\n\t\t\t\treturn escapeString(JSON.stringify(chunk));\n\t\t\t}\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error('Unexpected param value: ' + chunk);\n\t}\n\n\tgetSQL(): SQL<T> {\n\t\treturn this;\n\t}\n\n\tas(alias: string): SQL.Aliased<T>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(): SQL<TData>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(alias: string): SQL.Aliased<TData>;\n\tas(alias?: string): SQL<T> | SQL.Aliased<T> {\n\t\t// TODO: remove with deprecated overloads\n\t\tif (alias === undefined) {\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\n\tmapWith<\n\t\tTDecoder extends\n\t\t\t| DriverValueDecoder<any, any>\n\t\t\t| DriverValueDecoder<any, any>['mapFromDriverValue'],\n\t>(decoder: TDecoder): SQL<GetDecoderResult<TDecoder>> {\n\t\tthis.decoder = typeof decoder === 'function' ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this as SQL<GetDecoderResult<TDecoder>>;\n\t}\n\n\tinlineParams(): this {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * This method is used to conditionally include a part of the query.\n\t *\n\t * @param condition - Condition to check\n\t * @returns itself if the condition is `true`, otherwise `undefined`\n\t */\n\tif(condition: any | undefined): this | undefined {\n\t\treturn condition ? this : undefined;\n\t}\n}\n\nexport type GetDecoderResult<T> = T extends Column ? T['_']['data'] : T extends\n\t| DriverValueDecoder<infer TData, any>\n\t| DriverValueDecoder<infer TData, any>['mapFromDriverValue'] ? TData\n: never;\n\n/**\n * Any DB name (table, column, index etc.)\n */\nexport class Name implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Name';\n\n\tprotected brand!: 'Name';\n\n\tconstructor(readonly value: string) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/**\n * Any DB name (table, column, index etc.)\n * @deprecated Use `sql.identifier` instead.\n */\nexport function name(value: string): Name {\n\treturn new Name(value);\n}\n\nexport interface DriverValueDecoder<TData, TDriverParam> {\n\tmapFromDriverValue(value: TDriverParam): TData;\n}\n\nexport interface DriverValueEncoder<TData, TDriverParam> {\n\tmapToDriverValue(value: TData): TDriverParam | SQL;\n}\n\nexport function isDriverValueEncoder(value: unknown): value is DriverValueEncoder<any, any> {\n\treturn typeof value === 'object' && value !== null && 'mapToDriverValue' in value\n\t\t&& typeof (value as any).mapToDriverValue === 'function';\n}\n\nexport const noopDecoder: DriverValueDecoder<any, any> = {\n\tmapFromDriverValue: (value) => value,\n};\n\nexport const noopEncoder: DriverValueEncoder<any, any> = {\n\tmapToDriverValue: (value) => value,\n};\n\nexport interface DriverValueMapper<TData, TDriverParam>\n\textends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam>\n{}\n\nexport const noopMapper: DriverValueMapper<any, any> = {\n\t...noopDecoder,\n\t...noopEncoder,\n};\n\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nexport class Param<TDataType = unknown, TDriverParamType = TDataType> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Param';\n\n\tprotected brand!: 'BoundParamValue';\n\n\t/**\n\t * @param value - Parameter value\n\t * @param encoder - Encoder to convert the value to a driver parameter\n\t */\n\tconstructor(\n\t\treadonly value: TDataType,\n\t\treadonly encoder: DriverValueEncoder<TDataType, TDriverParamType> = noopEncoder,\n\t) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.param` instead. */\nexport function param<TData, TDriver>(\n\tvalue: TData,\n\tencoder?: DriverValueEncoder<TData, TDriver>,\n): Param<TData, TDriver> {\n\treturn new Param(value, encoder);\n}\n\n/**\n * Anything that can be passed to the `` sql`...` `` tagged function.\n */\nexport type SQLChunk =\n\t| StringChunk\n\t| SQLChunk[]\n\t| SQLWrapper\n\t| SQL\n\t| Table\n\t| View\n\t| Subquery\n\t| AnyColumn\n\t| Param\n\t| Name\n\t| undefined\n\t| FakePrimitiveParam\n\t| Placeholder;\n\nexport type SQLGenerator<T = unknown> = typeof sql<T>;\n\nexport function sql<T>(strings: TemplateStringsArray, ...params: any[]): SQL<T>;\n/*\n\tThe type of `params` is specified as `SQLChunk[]`, but that's slightly incorrect -\n\tin runtime, users won't pass `FakePrimitiveParam` instances as `params` - they will pass primitive values\n\twhich will be wrapped in `Param`. That's why the overload specifies `params` as `any[]` and not as `SQLSourceParam[]`.\n\tThis type is used to make our lives easier and the type checker happy.\n*/\nexport function sql(strings: TemplateStringsArray, ...params: SQLChunk[]): SQL {\n\tconst queryChunks: SQLChunk[] = [];\n\tif (params.length > 0 || (strings.length > 0 && strings[0] !== '')) {\n\t\tqueryChunks.push(new StringChunk(strings[0]!));\n\t}\n\tfor (const [paramIndex, param] of params.entries()) {\n\t\tqueryChunks.push(param, new StringChunk(strings[paramIndex + 1]!));\n\t}\n\n\treturn new SQL(queryChunks);\n}\n\nexport namespace sql {\n\texport function empty(): SQL {\n\t\treturn new SQL([]);\n\t}\n\n\t/** @deprecated - use `sql.join()` */\n\texport function fromList(list: SQLChunk[]): SQL {\n\t\treturn new SQL(list);\n\t}\n\n\t/**\n\t * Convenience function to create an SQL query from a raw string.\n\t * @param str The raw SQL query string.\n\t */\n\texport function raw(str: string): SQL {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\n\t/**\n\t * Join a list of SQL chunks with a separator.\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`]);\n\t * // sql`abc`\n\t * ```\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`], sql`, `);\n\t * // sql`a, b, c`\n\t * ```\n\t */\n\texport function join(chunks: SQLChunk[], separator?: SQLChunk): SQL {\n\t\tconst result: SQLChunk[] = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== undefined) {\n\t\t\t\tresult.push(separator);\n\t\t\t}\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\n\t/**\n\t * Create a SQL chunk that represents a DB identifier (table, column, index etc.).\n\t * When used in a query, the identifier will be escaped based on the DB engine.\n\t * For example, in PostgreSQL, identifiers are escaped with double quotes.\n\t *\n\t * **WARNING: This function does not offer any protection against SQL injections, so you must validate any user input beforehand.**\n\t *\n\t * @example ```ts\n\t * const query = sql`SELECT * FROM ${sql.identifier('my-table')}`;\n\t * // 'SELECT * FROM \"my-table\"'\n\t * ```\n\t */\n\texport function identifier(value: string): Name {\n\t\treturn new Name(value);\n\t}\n\n\texport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\t\treturn new Placeholder(name);\n\t}\n\n\texport function param<TData, TDriver>(\n\t\tvalue: TData,\n\t\tencoder?: DriverValueEncoder<TData, TDriver>,\n\t): Param<TData, TDriver> {\n\t\treturn new Param(value, encoder);\n\t}\n\n\t/**\n\t * Attach [sqlcommenter](https://google.github.io/sqlcommenter) comment to a query\n\t */\n\texport function comment(input: CommentInput): SQL | undefined {\n\t\tconst encoded = sqlCommenter(input);\n\t\tif (!encoded.length) return undefined;\n\n\t\treturn sql.raw(encoded);\n\t}\n}\n\nexport function sqlCommenter(input: CommentInput): string {\n\tconst encoded = sqlCommenter.encodeInput(input);\n\tif (!encoded.length) return '';\n\n\treturn `/*${encoded}*/`;\n}\n\nexport namespace sqlCommenter {\n\texport function merge(input1: CommentInput | undefined, input2: CommentInput | undefined) {\n\t\tlet encoded: CommentInput;\n\t\tif (typeof input1 === 'object' && typeof input2 === 'object') {\n\t\t\tencoded = encodeInput({ ...input1, ...input2 });\n\t\t} else if (input1 && input2) {\n\t\t\tencoded = [encodeInput(input1), encodeInput(input2)].filter((i) => i.length).join(',');\n\t\t} else if (input2) {\n\t\t\tencoded = encodeInput(input2);\n\t\t} else if (input1) {\n\t\t\tencoded = encodeInput(input1);\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (!encoded.length) return '';\n\n\t\treturn `/*${encoded}*/`;\n\t}\n\n\texport function encodeInput(input: CommentInput): string {\n\t\tif (typeof input === 'string') {\n\t\t\tif (!input.length) return input;\n\n\t\t\treturn sanitizeStringInput(input);\n\t\t}\n\n\t\tconst parts: string[] = [];\n\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tif (value === null || value === undefined || value === '') continue;\n\n\t\t\tconst encodedKey = sanitizeObjectElement(key);\n\t\t\tconst encodedValue = sanitizeObjectElement(String(value));\n\n\t\t\tparts.push(`${encodedKey}='${encodedValue}'`);\n\t\t}\n\n\t\tif (!parts.length) return '';\n\n\t\treturn parts.sort().join(',');\n\t}\n\n\texport function sanitizeObjectElement(key: string): string {\n\t\tconst urlEncoded = encodeURIComponent(key);\n\t\treturn urlEncoded.replace(/'/g, `\\\\'`);\n\t}\n\n\texport function sanitizeStringInput(input: string): string {\n\t\treturn input.replace(/\\/\\*/g, '/ *').replace(/\\*\\//g, '* /');\n\t}\n}\n\nexport type CommentInput = string | SqlCommenterInput;\n\nexport type SqlCommenterInput = Record<\n\tstring,\n\tstring | number | bigint | boolean | null | undefined\n>;\n\nexport namespace SQL {\n\texport class Aliased<T = unknown> implements SQLWrapper<T> {\n\t\tstatic readonly [entityKind]: string = 'SQL.Aliased';\n\n\t\tdeclare _: {\n\t\t\tbrand: 'SQL.Aliased';\n\t\t\ttype: T;\n\t\t};\n\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\t\t/** @internal */\n\t\torigin?: string;\n\n\t\tconstructor(\n\t\t\treadonly sql: SQL<T>,\n\t\t\treadonly fieldAlias: string,\n\t\t) {}\n\n\t\tgetSQL(): SQL<T> {\n\t\t\treturn this.sql as SQL<T>;\n\t\t}\n\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased<T>(this.sql, this.fieldAlias);\n\t\t}\n\t}\n}\n\nexport class Placeholder<TName extends string = string, TValue = any> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Placeholder';\n\n\tdeclare protected: TValue;\n\n\tconstructor(readonly name: TName) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.placeholder` instead. */\nexport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\treturn new Placeholder(name);\n}\n\nexport function fillPlaceholders(params: unknown[], values: Record<string, unknown>): unknown[] {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\t}\n\n\t\t\treturn values[p.name];\n\t\t}\n\n\t\tif (is(p, Param) && is(p.value, Placeholder)) {\n\t\t\tif (!(p.value.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.value.name}\" was provided`);\n\t\t\t}\n\n\t\t\treturn p.encoder.mapToDriverValue(values[p.value.name]);\n\t\t}\n\n\t\treturn p;\n\t});\n}\n\nexport type ColumnsSelection = Record<string, unknown>;\n\nconst IsDrizzleView = Symbol.for('drizzle:IsDrizzleView');\n\nexport abstract class View<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n> {\n\tstatic readonly [entityKind]: string = 'View';\n\n\tdeclare _: {\n\t\tbrand: 'View';\n\t\tviewBrand: string;\n\t\tname: TName;\n\t\texisting: TExisting;\n\t\tselectedFields: TSelection;\n\t};\n\n\t/** @internal */\n\t[ViewBaseConfig]: {\n\t\tname: TName;\n\t\toriginalName: TName;\n\t\tschema: string | undefined;\n\t\tselectedFields: ColumnsSelection;\n\t\tisExisting: TExisting;\n\t\tquery: TExisting extends true ? undefined : SQL;\n\t\tisAlias: boolean;\n\t};\n\n\t/** @internal */\n\t[IsDrizzleView] = true;\n\n\t/** @internal */\n\tpublic get [TableName]() {\n\t\treturn this[ViewBaseConfig].name;\n\t}\n\n\t/** @internal */\n\tpublic get [TableSchema]() {\n\t\treturn this[ViewBaseConfig].schema;\n\t}\n\n\t/** @internal */\n\tpublic get [IsAlias]() {\n\t\treturn this[ViewBaseConfig].isAlias;\n\t}\n\n\t/** @internal */\n\tpublic get [OriginalName]() {\n\t\treturn this[ViewBaseConfig].originalName;\n\t}\n\n\t/** @internal */\n\tpublic get [TableColumns]() {\n\t\treturn (this[ViewBaseConfig].selectedFields) as any as Record<string, unknown>;\n\t}\n\n\tdeclare readonly $inferSelect: InferSelectViewModel<View<Assume<TName, string>, TExisting, TSelection>>;\n\n\tconstructor(\n\t\t{ name, schema, selectedFields, query }: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: ColumnsSelection;\n\t\t\tquery: SQL | undefined;\n\t\t},\n\t) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery: query as (TExisting extends true ? undefined : SQL),\n\t\t\tisExisting: !query as TExisting,\n\t\t\tisAlias: false,\n\t\t};\n\t}\n}\n\nexport function isView(view: unknown): view is View {\n\treturn typeof view === 'object' && view !== null && IsDrizzleView in view;\n}\n\nexport function getViewName<T extends View>(view: T): T['_']['name'] {\n\treturn view[ViewBaseConfig].name;\n}\n\nexport type InferSelectViewModel<TView extends View> =\n\tEqual<TView['_']['selectedFields'], { [x: string]: unknown }> extends true ? { [x: string]: unknown }\n\t\t: SelectResult<\n\t\t\tTView['_']['selectedFields'],\n\t\t\t'single',\n\t\t\tRecord<TView['_']['name'], 'not-null'>\n\t\t>;\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n// Defined separately from the Column class to resolve circular dependency\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\nexport type SQLEntity = SQL | SQLWrapper | SQL.Aliased | Table | View;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sql.cjs","names":["entityKind","Table","tracer","IsAlias","Column","ViewBaseConfig","Subquery","TableName","TableSchema","OriginalName","TableColumns"],"sources":["../../src/sql/sql.ts"],"sourcesContent":["import type { CasingCache } from '~/casing.ts';\nimport type { CodecsCollection } from '~/codecs.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { SelectResult } from '~/query-builders/select.types.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { TableName } from '~/table.utils.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { AnyColumn } from '../column.ts';\nimport { Column } from '../column.ts';\nimport { IsAlias, OriginalName, Table, TableColumns, TableSchema } from '../table.ts';\n\n/**\n * This class is used to indicate a primitive param value that is used in `sql` tag.\n * It is only used on type level and is never instantiated at runtime.\n * If you see a value of this type in the code, its runtime value is actually the primitive param value.\n */\nexport class FakePrimitiveParam {\n\tstatic readonly [entityKind]: string = 'FakePrimitiveParam';\n}\n\nexport type Chunk =\n\t| string\n\t| Table\n\t| View\n\t| AnyColumn\n\t| Name\n\t| Param\n\t| Placeholder\n\t| SQL;\n\nexport interface BuildQueryConfig {\n\tcasing: CasingCache;\n\tescapeName(name: string): string;\n\tescapeParam(num: number, value: unknown): string;\n\tescapeString(str: string): string;\n\tprepareTyping?: (encoder: DriverValueEncoder<unknown, unknown>) => QueryTypingsValue;\n\tcodecs?: CodecsCollection;\n\tparamStartIndex?: { value: number };\n\tinlineParams?: boolean;\n\tinvokeSource?: 'indexes' | 'mssql-check' | 'mssql-view-with-schemabinding' | undefined;\n}\n\nexport type QueryTypingsValue = 'json' | 'decimal' | 'time' | 'timestamp' | 'uuid' | 'date' | 'none';\n\nexport interface Query {\n\tsql: string;\n\tparams: unknown[];\n}\n\nexport interface QueryWithTypings extends Query {\n\ttypings?: QueryTypingsValue[];\n}\n\n/**\n * Any value that implements the `getSQL` method. The implementations include:\n * - `Table`\n * - `Column`\n * - `View`\n * - `Subquery`\n * - `SQL`\n * - `SQL.Aliased`\n * - `Placeholder`\n * - `Param`\n */\nexport interface SQLWrapper<T = unknown> {\n\tgetSQL(): SQL<T>;\n\tshouldOmitSQLParens?(): boolean;\n}\n\nexport function isSQLWrapper(value: unknown): value is SQLWrapper {\n\treturn value !== null && value !== undefined && typeof (value as any).getSQL === 'function';\n}\n\nfunction mergeQueries(queries: QueryWithTypings[]): QueryWithTypings {\n\tconst result: QueryWithTypings = { sql: '', params: [] };\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t\tif (query.typings?.length) {\n\t\t\tif (!result.typings) {\n\t\t\t\tresult.typings = [];\n\t\t\t}\n\t\t\tresult.typings.push(...query.typings);\n\t\t}\n\t}\n\treturn result;\n}\n\nexport class StringChunk implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'StringChunk';\n\n\treadonly value: string[];\n\n\tconstructor(value: string | string[]) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\nexport class SQL<T = unknown> implements SQLWrapper<T> {\n\tstatic readonly [entityKind]: string = 'SQL';\n\n\tdeclare _: {\n\t\tbrand: 'SQL';\n\t\ttype: T;\n\t};\n\n\t/** @internal */\n\tdecoder: DriverValueDecoder<T, any> = noopDecoder;\n\t/** @internal */\n\tpublic shouldInlineParams = false;\n\n\t/** @internal */\n\tusedTables: string[] = [];\n\n\tconstructor(readonly queryChunks: SQLChunk[]) {\n\t\tfor (const chunk of queryChunks) {\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\n\t\t\t\tthis.usedTables.push(\n\t\t\t\t\tschemaName === undefined\n\t\t\t\t\t\t? chunk[Table.Symbol.Name]\n\t\t\t\t\t\t: schemaName + '.' + chunk[Table.Symbol.Name],\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tappend(query: SQL): this {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\n\ttoQuery(config: BuildQueryConfig): QueryWithTypings {\n\t\treturn tracer.startActiveSpan('drizzle.buildSQL', (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': query.sql,\n\t\t\t\t'drizzle.query.params': JSON.stringify(query.params),\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\n\tbuildQueryFromSourceParams(chunks: SQLChunk[], _config: BuildQueryConfig): Query {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 },\n\t\t});\n\n\t\tconst {\n\t\t\tcasing,\n\t\t\tescapeName,\n\t\t\tescapeParam,\n\t\t\tprepareTyping,\n\t\t\tcodecs,\n\t\t\tinlineParams,\n\t\t\tparamStartIndex,\n\t\t\tinvokeSource,\n\t\t} = config;\n\n\t\treturn mergeQueries(chunks.map((chunk): QueryWithTypings => {\n\t\t\tif (is(chunk, StringChunk)) {\n\t\t\t\treturn { sql: chunk.value.join(''), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Name)) {\n\t\t\t\treturn { sql: escapeName(chunk.value), params: [] };\n\t\t\t}\n\n\t\t\tif (chunk === undefined) {\n\t\t\t\treturn { sql: '', params: [] };\n\t\t\t}\n\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result: SQLChunk[] = [new StringChunk('(')];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) {\n\t\t\t\t\t\tresult.push(new StringChunk(', '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(')'));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL)) {\n\t\t\t\treturn this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t\t...config,\n\t\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\n\t\t\t\tif (invokeSource === 'mssql-view-with-schemabinding') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsql: (schemaName === undefined ? escapeName('dbo') : escapeName(schemaName)) + '.'\n\t\t\t\t\t\t\t+ escapeName(tableName),\n\t\t\t\t\t\tparams: [],\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined || chunk[IsAlias]\n\t\t\t\t\t\t? escapeName(tableName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(tableName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\tconst columnName = casing.getColumnCasing(chunk);\n\t\t\t\tif (_config.invokeSource === 'indexes') {\n\t\t\t\t\treturn { sql: escapeName(columnName), params: [] };\n\t\t\t\t}\n\n\t\t\t\tconst schemaName = invokeSource === 'mssql-check' ? undefined : chunk.table[Table.Symbol.Schema];\n\t\t\t\treturn {\n\t\t\t\t\tsql: chunk.isAlias ? escapeName(chunk.name) : chunk.table[IsAlias] || schemaName === undefined\n\t\t\t\t\t\t? escapeName(chunk.table[Table.Symbol.Name]) + '.' + escapeName(columnName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(chunk.table[Table.Symbol.Name]) + '.'\n\t\t\t\t\t\t\t+ escapeName(columnName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined || chunk[ViewBaseConfig].isAlias\n\t\t\t\t\t\t? escapeName(viewName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(viewName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tif (is(chunk.value, SQL)) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([chunk.value], config);\n\t\t\t\t}\n\n\t\t\t\tconst useCodecs = codecs && is(chunk.encoder, Column);\n\n\t\t\t\tif (is(chunk.value, Placeholder)) {\n\t\t\t\t\tconst escaped = escapeParam(paramStartIndex.value++, chunk);\n\t\t\t\t\tchunk.codec = useCodecs\n\t\t\t\t\t\t? (value) => codecs.apply(chunk.encoder as Column, 'normalizeParam', value)\n\t\t\t\t\t\t: undefined;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsql: useCodecs\n\t\t\t\t\t\t\t? codecs.apply(chunk.encoder, 'castParam', escaped)\n\t\t\t\t\t\t\t: escaped,\n\t\t\t\t\t\tparams: [chunk],\n\t\t\t\t\t\ttypings: ['none'],\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tlet mappedValue: any;\n\t\t\t\tif (chunk.value === null) {\n\t\t\t\t\tmappedValue = chunk.value;\n\t\t\t\t} else {\n\t\t\t\t\tmappedValue = chunk.encoder.mapToDriverValue.isNoop\n\t\t\t\t\t\t? chunk.value\n\t\t\t\t\t\t: chunk.encoder.mapToDriverValue(chunk.value);\n\n\t\t\t\t\tif (is(mappedValue, SQL)) {\n\t\t\t\t\t\treturn this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (useCodecs) {\n\t\t\t\t\t\tmappedValue = codecs.apply(\n\t\t\t\t\t\t\tchunk.encoder,\n\t\t\t\t\t\t\t'normalizeParam',\n\t\t\t\t\t\t\tmappedValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (inlineParams) {\n\t\t\t\t\treturn { sql: this.mapInlineParam(mappedValue, config), params: [] };\n\t\t\t\t}\n\n\t\t\t\tlet typings: QueryTypingsValue[] = ['none'];\n\t\t\t\tif (prepareTyping) {\n\t\t\t\t\ttypings = [prepareTyping(chunk.encoder)];\n\t\t\t\t}\n\n\t\t\t\tconst escaped = escapeParam(paramStartIndex.value++, mappedValue);\n\t\t\t\treturn {\n\t\t\t\t\tsql: useCodecs\n\t\t\t\t\t\t? codecs.apply(chunk.encoder, 'castParam', escaped)\n\t\t\t\t\t\t: escaped,\n\t\t\t\t\tparams: [mappedValue],\n\t\t\t\t\ttypings,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Placeholder)) {\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== undefined) {\n\t\t\t\treturn {\n\t\t\t\t\tsql: (chunk.origin !== undefined ? escapeName(chunk.origin) + '.' : '') + escapeName(chunk.fieldAlias),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk._.isWith) {\n\t\t\t\t\treturn { sql: escapeName(chunk._.alias), params: [] };\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk._.sql,\n\t\t\t\t\tnew StringChunk(') '),\n\t\t\t\t\tnew Name(chunk._.alias),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (typeof chunk === 'function' && 'enumName' in chunk) {\n\t\t\t\tif ('schema' in chunk && chunk.schema) {\n\t\t\t\t\treturn { sql: escapeName(chunk.schema as string) + '.' + escapeName(chunk.enumName as string), params: [] };\n\t\t\t\t}\n\t\t\t\treturn { sql: escapeName(chunk.enumName as string), params: [] };\n\t\t\t}\n\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\tif (chunk.shouldOmitSQLParens?.()) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([chunk.getSQL()], config);\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(')'),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (inlineParams) {\n\t\t\t\treturn { sql: this.mapInlineParam(chunk, config), params: [] };\n\t\t\t}\n\n\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t}));\n\t}\n\n\tprivate mapInlineParam(\n\t\tchunk: unknown,\n\t\t{ escapeString }: BuildQueryConfig,\n\t): string {\n\t\tif (chunk === null) {\n\t\t\treturn 'null';\n\t\t}\n\t\tif (typeof chunk === 'number' || typeof chunk === 'boolean' || typeof chunk === 'bigint') {\n\t\t\treturn chunk.toString();\n\t\t}\n\t\tif (typeof chunk === 'string') {\n\t\t\treturn escapeString(chunk);\n\t\t}\n\t\tif (typeof chunk === 'object') {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === '[object Object]') {\n\t\t\t\treturn escapeString(JSON.stringify(chunk));\n\t\t\t}\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error('Unexpected param value: ' + chunk);\n\t}\n\n\tgetSQL(): SQL<T> {\n\t\treturn this;\n\t}\n\n\tas(alias: string): SQL.Aliased<T>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(): SQL<TData>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(alias: string): SQL.Aliased<TData>;\n\tas(alias?: string): SQL<T> | SQL.Aliased<T> {\n\t\t// TODO: remove with deprecated overloads\n\t\tif (alias === undefined) {\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\n\tmapWith<\n\t\tTDecoder extends\n\t\t\t| DriverValueDecoder<any, any>\n\t\t\t| DriverValueDecoder<any, any>['mapFromDriverValue'],\n\t>(decoder: TDecoder): SQL<GetDecoderResult<TDecoder>> {\n\t\tthis.decoder = typeof decoder === 'function' ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this as SQL<GetDecoderResult<TDecoder>>;\n\t}\n\n\tinlineParams(): this {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * This method is used to conditionally include a part of the query.\n\t *\n\t * @param condition - Condition to check\n\t * @returns itself if the condition is `true`, otherwise `undefined`\n\t */\n\tif(condition: any | undefined): this | undefined {\n\t\treturn condition ? this : undefined;\n\t}\n}\n\nexport type GetDecoderResult<T> = T extends Column ? T['_']['data'] : T extends\n\t| DriverValueDecoder<infer TData, any>\n\t| DriverValueDecoder<infer TData, any>['mapFromDriverValue'] ? TData\n: never;\n\n/**\n * Any DB name (table, column, index etc.)\n */\nexport class Name implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Name';\n\n\tprotected brand!: 'Name';\n\n\tconstructor(readonly value: string) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/**\n * Any DB name (table, column, index etc.)\n * @deprecated Use `sql.identifier` instead.\n */\nexport function name(value: string): Name {\n\treturn new Name(value);\n}\n\nexport interface DriverValueDecoderFn<TData, TDriverParam> {\n\t(value: TDriverParam): TData;\n\t/** @internal */\n\tisNoop?: true | undefined;\n}\n\nexport interface DriverValueDecoder<TData, TDriverParam> {\n\tmapFromDriverValue: DriverValueDecoderFn<TData, TDriverParam>;\n}\n\nexport interface DriverValueEncoderFn<TData, TDriverParam> {\n\t(value: TData): TDriverParam;\n\t/** @internal */\n\tisNoop?: true | undefined;\n}\n\nexport interface DriverValueEncoder<TData, TDriverParam> {\n\tmapToDriverValue: DriverValueEncoderFn<TData, TDriverParam>;\n}\n\nexport function isDriverValueEncoder(value: unknown): value is DriverValueEncoder<any, any> {\n\treturn typeof value === 'object' && value !== null && 'mapToDriverValue' in value\n\t\t&& typeof (value as any).mapToDriverValue === 'function';\n}\n\nexport const noopDecoder: DriverValueDecoder<any, any> = {\n\tmapFromDriverValue: (value) => value,\n};\n\nnoopDecoder.mapFromDriverValue.isNoop = true;\n\nexport const noopEncoder: DriverValueEncoder<any, any> = {\n\tmapToDriverValue: (value) => value,\n};\n\nnoopEncoder.mapToDriverValue.isNoop = true;\n\nexport interface DriverValueMapper<TData, TDriverParam>\n\textends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam>\n{}\n\nexport function isNoop(mapper: DriverValueEncoderFn<any, any> | DriverValueDecoderFn<any, any>) {\n\treturn mapper.isNoop;\n}\n\nexport const noopMapper: DriverValueMapper<any, any> = {\n\t...noopDecoder,\n\t...noopEncoder,\n};\n\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nexport class Param<TDataType = any, TDriverParamType = TDataType> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Param';\n\n\tprotected brand!: 'BoundParamValue';\n\n\t/**\n\t * @param value - Parameter value\n\t * @param encoder - Encoder to convert the value to a driver parameter\n\t */\n\tconstructor(\n\t\treadonly value: TDataType,\n\t\treadonly encoder: DriverValueEncoder<TDataType, TDriverParamType> = noopEncoder,\n\t\tpublic codec?: (value: any) => any,\n\t) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.param` instead. */\nexport function param<TData, TDriver>(\n\tvalue: TData,\n\tencoder?: DriverValueEncoder<TData, TDriver>,\n): Param<TData, TDriver> {\n\treturn new Param(value, encoder);\n}\n\n/**\n * Anything that can be passed to the `` sql`...` `` tagged function.\n */\nexport type SQLChunk =\n\t| StringChunk\n\t| SQLChunk[]\n\t| SQLWrapper\n\t| SQL\n\t| Table\n\t| View\n\t| Subquery\n\t| AnyColumn\n\t| Param\n\t| Name\n\t| undefined\n\t| FakePrimitiveParam\n\t| Placeholder;\n\nexport type SQLGenerator<T = unknown> = typeof sql<T>;\n\nexport function sql<T>(strings: TemplateStringsArray, ...params: any[]): SQL<T>;\n/*\n\tThe type of `params` is specified as `SQLChunk[]`, but that's slightly incorrect -\n\tin runtime, users won't pass `FakePrimitiveParam` instances as `params` - they will pass primitive values\n\twhich will be wrapped in `Param`. That's why the overload specifies `params` as `any[]` and not as `SQLSourceParam[]`.\n\tThis type is used to make our lives easier and the type checker happy.\n*/\nexport function sql(strings: TemplateStringsArray, ...params: SQLChunk[]): SQL {\n\tconst queryChunks: SQLChunk[] = [];\n\tif (params.length > 0 || (strings.length > 0 && strings[0] !== '')) {\n\t\tqueryChunks.push(new StringChunk(strings[0]!));\n\t}\n\tfor (const [paramIndex, param] of params.entries()) {\n\t\tqueryChunks.push(param, new StringChunk(strings[paramIndex + 1]!));\n\t}\n\n\treturn new SQL(queryChunks);\n}\n\nexport namespace sql {\n\texport function empty(): SQL {\n\t\treturn new SQL([]);\n\t}\n\n\t/** @deprecated - use `sql.join()` */\n\texport function fromList(list: SQLChunk[]): SQL {\n\t\treturn new SQL(list);\n\t}\n\n\t/**\n\t * Convenience function to create an SQL query from a raw string.\n\t * @param str The raw SQL query string.\n\t */\n\texport function raw(str: string): SQL {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\n\t/**\n\t * Join a list of SQL chunks with a separator.\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`]);\n\t * // sql`abc`\n\t * ```\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`], sql`, `);\n\t * // sql`a, b, c`\n\t * ```\n\t */\n\texport function join(chunks: SQLChunk[], separator?: SQLChunk): SQL {\n\t\tconst result: SQLChunk[] = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== undefined) {\n\t\t\t\tresult.push(separator);\n\t\t\t}\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\n\t/**\n\t * Create a SQL chunk that represents a DB identifier (table, column, index etc.).\n\t * When used in a query, the identifier will be escaped based on the DB engine.\n\t * For example, in PostgreSQL, identifiers are escaped with double quotes.\n\t *\n\t * **WARNING: This function does not offer any protection against SQL injections, so you must validate any user input beforehand.**\n\t *\n\t * @example ```ts\n\t * const query = sql`SELECT * FROM ${sql.identifier('my-table')}`;\n\t * // 'SELECT * FROM \"my-table\"'\n\t * ```\n\t */\n\texport function identifier(value: string): Name {\n\t\treturn new Name(value);\n\t}\n\n\texport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\t\treturn new Placeholder(name);\n\t}\n\n\texport function param<TData, TDriver>(\n\t\tvalue: TData,\n\t\tencoder?: DriverValueEncoder<TData, TDriver>,\n\t): Param<TData, TDriver> {\n\t\treturn new Param(value, encoder);\n\t}\n\n\t/**\n\t * Attach [sqlcommenter](https://google.github.io/sqlcommenter) comment to a query\n\t */\n\texport function comment(input: CommentInput): SQL | undefined {\n\t\tconst encoded = sqlCommenter(input);\n\t\tif (!encoded.length) return undefined;\n\n\t\treturn sql.raw(encoded);\n\t}\n}\n\nexport function sqlCommenter(input: CommentInput): string {\n\tconst encoded = sqlCommenter.encodeInput(input);\n\tif (!encoded.length) return '';\n\n\treturn `/*${encoded}*/`;\n}\n\nexport namespace sqlCommenter {\n\texport function merge(input1: CommentInput | undefined, input2: CommentInput | undefined) {\n\t\tlet encoded: CommentInput;\n\t\tif (typeof input1 === 'object' && typeof input2 === 'object') {\n\t\t\tencoded = encodeInput({ ...input1, ...input2 });\n\t\t} else if (input1 && input2) {\n\t\t\tencoded = [encodeInput(input1), encodeInput(input2)].filter((i) => i.length).join(',');\n\t\t} else if (input2) {\n\t\t\tencoded = encodeInput(input2);\n\t\t} else if (input1) {\n\t\t\tencoded = encodeInput(input1);\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (!encoded.length) return '';\n\n\t\treturn `/*${encoded}*/`;\n\t}\n\n\texport function encodeInput(input: CommentInput): string {\n\t\tif (typeof input === 'string') {\n\t\t\tif (!input.length) return input;\n\n\t\t\treturn sanitizeStringInput(input);\n\t\t}\n\n\t\tconst parts: string[] = [];\n\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tif (value === null || value === undefined || value === '') continue;\n\n\t\t\tconst encodedKey = sanitizeObjectElement(key);\n\t\t\tconst encodedValue = sanitizeObjectElement(String(value));\n\n\t\t\tparts.push(`${encodedKey}='${encodedValue}'`);\n\t\t}\n\n\t\tif (!parts.length) return '';\n\n\t\treturn parts.sort().join(',');\n\t}\n\n\texport function sanitizeObjectElement(key: string): string {\n\t\tconst urlEncoded = encodeURIComponent(key);\n\t\treturn urlEncoded.replace(/'/g, `\\\\'`);\n\t}\n\n\texport function sanitizeStringInput(input: string): string {\n\t\treturn input.replace(/\\/\\*/g, '/ *').replace(/\\*\\//g, '* /');\n\t}\n}\n\nexport type CommentInput = string | SqlCommenterInput;\n\nexport type SqlCommenterInput = Record<\n\tstring,\n\tstring | number | bigint | boolean | null | undefined\n>;\n\nexport namespace SQL {\n\texport class Aliased<T = unknown> implements SQLWrapper<T> {\n\t\tstatic readonly [entityKind]: string = 'SQL.Aliased';\n\n\t\tdeclare _: {\n\t\t\tbrand: 'SQL.Aliased';\n\t\t\ttype: T;\n\t\t};\n\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\t\t/** @internal */\n\t\torigin?: string;\n\n\t\tconstructor(\n\t\t\treadonly sql: SQL<T>,\n\t\t\treadonly fieldAlias: string,\n\t\t) {}\n\n\t\tgetSQL(): SQL<T> {\n\t\t\treturn this.sql as SQL<T>;\n\t\t}\n\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased<T>(this.sql, this.fieldAlias);\n\t\t}\n\t}\n}\n\nexport class Placeholder<TName extends string = string, TValue = any> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Placeholder';\n\n\tdeclare protected: TValue;\n\n\tconstructor(readonly name: TName) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.placeholder` instead. */\nexport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\treturn new Placeholder(name);\n}\n\nexport function fillPlaceholders(params: unknown[], values: Record<string, unknown>): unknown[] {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\t}\n\n\t\t\treturn values[p.name];\n\t\t}\n\n\t\tif (is(p, Param) && is(p.value, Placeholder)) {\n\t\t\tif (!(p.value.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.value.name}\" was provided`);\n\t\t\t}\n\n\t\t\tif (values[p.value.name] === null) return values[p.value.name];\n\n\t\t\tconst mapped = p.encoder.mapToDriverValue.isNoop\n\t\t\t\t? values[p.value.name]\n\t\t\t\t: p.encoder.mapToDriverValue(values[p.value.name]);\n\n\t\t\treturn p.codec ? p.codec(mapped) : mapped;\n\t\t}\n\n\t\treturn p;\n\t});\n}\n\nexport type ColumnsSelection = Record<string, unknown>;\n\nconst IsDrizzleView = Symbol.for('drizzle:IsDrizzleView');\n\nexport abstract class View<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n> {\n\tstatic readonly [entityKind]: string = 'View';\n\n\tdeclare _: {\n\t\tbrand: 'View';\n\t\tviewBrand: string;\n\t\tname: TName;\n\t\texisting: TExisting;\n\t\tselectedFields: TSelection;\n\t};\n\n\t/** @internal */\n\t[ViewBaseConfig]: {\n\t\tname: TName;\n\t\toriginalName: TName;\n\t\tschema: string | undefined;\n\t\tselectedFields: ColumnsSelection;\n\t\tisExisting: TExisting;\n\t\tquery: TExisting extends true ? undefined : SQL;\n\t\tisAlias: boolean;\n\t};\n\n\t/** @internal */\n\t[IsDrizzleView] = true;\n\n\t/** @internal */\n\tpublic get [TableName]() {\n\t\treturn this[ViewBaseConfig].name;\n\t}\n\n\t/** @internal */\n\tpublic get [TableSchema]() {\n\t\treturn this[ViewBaseConfig].schema;\n\t}\n\n\t/** @internal */\n\tpublic get [IsAlias]() {\n\t\treturn this[ViewBaseConfig].isAlias;\n\t}\n\n\t/** @internal */\n\tpublic get [OriginalName]() {\n\t\treturn this[ViewBaseConfig].originalName;\n\t}\n\n\t/** @internal */\n\tpublic get [TableColumns]() {\n\t\treturn (this[ViewBaseConfig].selectedFields) as any as Record<string, unknown>;\n\t}\n\n\tdeclare readonly $inferSelect: InferSelectViewModel<View<Assume<TName, string>, TExisting, TSelection>>;\n\n\tconstructor(\n\t\t{ name, schema, selectedFields, query }: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: ColumnsSelection;\n\t\t\tquery: SQL | undefined;\n\t\t},\n\t) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery: query as (TExisting extends true ? undefined : SQL),\n\t\t\tisExisting: !query as TExisting,\n\t\t\tisAlias: false,\n\t\t};\n\t}\n}\n\nexport function isView(view: unknown): view is View {\n\treturn typeof view === 'object' && view !== null && IsDrizzleView in view;\n}\n\nexport function getViewName<T extends View>(view: T): T['_']['name'] {\n\treturn view[ViewBaseConfig].name;\n}\n\nexport type InferSelectViewModel<TView extends View> =\n\tEqual<TView['_']['selectedFields'], { [x: string]: unknown }> extends true ? { [x: string]: unknown }\n\t\t: SelectResult<\n\t\t\tTView['_']['selectedFields'],\n\t\t\t'single',\n\t\t\tRecord<TView['_']['name'], 'not-null'>\n\t\t>;\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n// Defined separately from the Column class to resolve circular dependency\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\nexport type SQLEntity = SQL | SQLWrapper | SQL.Aliased | Table | View;\n"],"mappings":"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"}
|
package/sql/sql.d.cts
CHANGED
|
@@ -4,6 +4,7 @@ import { entityKind } from "../entity.cjs";
|
|
|
4
4
|
import { SelectResult } from "../query-builders/select.types.cjs";
|
|
5
5
|
import { Subquery } from "../subquery.cjs";
|
|
6
6
|
import { Assume, Equal } from "../utils.cjs";
|
|
7
|
+
import { CodecsCollection } from "../codecs.cjs";
|
|
7
8
|
import { CasingCache } from "../casing.cjs";
|
|
8
9
|
|
|
9
10
|
//#region src/sql/sql.d.ts
|
|
@@ -22,6 +23,7 @@ interface BuildQueryConfig {
|
|
|
22
23
|
escapeParam(num: number, value: unknown): string;
|
|
23
24
|
escapeString(str: string): string;
|
|
24
25
|
prepareTyping?: (encoder: DriverValueEncoder<unknown, unknown>) => QueryTypingsValue;
|
|
26
|
+
codecs?: CodecsCollection;
|
|
25
27
|
paramStartIndex?: {
|
|
26
28
|
value: number;
|
|
27
29
|
};
|
|
@@ -108,28 +110,36 @@ declare class Name implements SQLWrapper {
|
|
|
108
110
|
* @deprecated Use `sql.identifier` instead.
|
|
109
111
|
*/
|
|
110
112
|
declare function name(value: string): Name;
|
|
113
|
+
interface DriverValueDecoderFn<TData, TDriverParam> {
|
|
114
|
+
(value: TDriverParam): TData;
|
|
115
|
+
}
|
|
111
116
|
interface DriverValueDecoder<TData, TDriverParam> {
|
|
112
|
-
mapFromDriverValue
|
|
117
|
+
mapFromDriverValue: DriverValueDecoderFn<TData, TDriverParam>;
|
|
118
|
+
}
|
|
119
|
+
interface DriverValueEncoderFn<TData, TDriverParam> {
|
|
120
|
+
(value: TData): TDriverParam;
|
|
113
121
|
}
|
|
114
122
|
interface DriverValueEncoder<TData, TDriverParam> {
|
|
115
|
-
mapToDriverValue
|
|
123
|
+
mapToDriverValue: DriverValueEncoderFn<TData, TDriverParam>;
|
|
116
124
|
}
|
|
117
125
|
declare function isDriverValueEncoder(value: unknown): value is DriverValueEncoder<any, any>;
|
|
118
126
|
declare const noopDecoder: DriverValueDecoder<any, any>;
|
|
119
127
|
declare const noopEncoder: DriverValueEncoder<any, any>;
|
|
120
128
|
interface DriverValueMapper<TData, TDriverParam> extends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam> {}
|
|
129
|
+
declare function isNoop(mapper: DriverValueEncoderFn<any, any> | DriverValueDecoderFn<any, any>): true | undefined;
|
|
121
130
|
declare const noopMapper: DriverValueMapper<any, any>;
|
|
122
131
|
/** Parameter value that is optionally bound to an encoder (for example, a column). */
|
|
123
|
-
declare class Param<TDataType =
|
|
132
|
+
declare class Param<TDataType = any, TDriverParamType = TDataType> implements SQLWrapper {
|
|
124
133
|
readonly value: TDataType;
|
|
125
134
|
readonly encoder: DriverValueEncoder<TDataType, TDriverParamType>;
|
|
135
|
+
codec?: ((value: any) => any) | undefined;
|
|
126
136
|
static readonly [entityKind]: string;
|
|
127
137
|
protected brand: 'BoundParamValue';
|
|
128
138
|
/**
|
|
129
139
|
* @param value - Parameter value
|
|
130
140
|
* @param encoder - Encoder to convert the value to a driver parameter
|
|
131
141
|
*/
|
|
132
|
-
constructor(value: TDataType, encoder?: DriverValueEncoder<TDataType, TDriverParamType
|
|
142
|
+
constructor(value: TDataType, encoder?: DriverValueEncoder<TDataType, TDriverParamType>, codec?: ((value: any) => any) | undefined);
|
|
133
143
|
getSQL(): SQL<unknown>;
|
|
134
144
|
}
|
|
135
145
|
/** @deprecated Use `sql.param` instead. */
|
|
@@ -247,5 +257,5 @@ type InferSelectViewModel<TView extends View> = Equal<TView['_']['selectedFields
|
|
|
247
257
|
} : SelectResult<TView['_']['selectedFields'], 'single', Record<TView['_']['name'], 'not-null'>>;
|
|
248
258
|
type SQLEntity = SQL | SQLWrapper | SQL.Aliased | Table | View;
|
|
249
259
|
//#endregion
|
|
250
|
-
export { BuildQueryConfig, Chunk, ColumnsSelection, CommentInput, DriverValueDecoder, DriverValueEncoder, DriverValueMapper, FakePrimitiveParam, GetDecoderResult, InferSelectViewModel, Name, Param, Placeholder, Query, QueryTypingsValue, QueryWithTypings, SQL, SQLChunk, SQLEntity, SQLGenerator, SQLWrapper, SqlCommenterInput, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder, isSQLWrapper, isView, name, noopDecoder, noopEncoder, noopMapper, param, placeholder, sql, sqlCommenter };
|
|
260
|
+
export { BuildQueryConfig, Chunk, ColumnsSelection, CommentInput, DriverValueDecoder, DriverValueDecoderFn, DriverValueEncoder, DriverValueEncoderFn, DriverValueMapper, FakePrimitiveParam, GetDecoderResult, InferSelectViewModel, Name, Param, Placeholder, Query, QueryTypingsValue, QueryWithTypings, SQL, SQLChunk, SQLEntity, SQLGenerator, SQLWrapper, SqlCommenterInput, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder, isNoop, isSQLWrapper, isView, name, noopDecoder, noopEncoder, noopMapper, param, placeholder, sql, sqlCommenter };
|
|
251
261
|
//# sourceMappingURL=sql.d.cts.map
|
package/sql/sql.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { AnyColumn, Column } from "../column.js";
|
|
|
3
3
|
import { entityKind } from "../entity.js";
|
|
4
4
|
import { Subquery } from "../subquery.js";
|
|
5
5
|
import { Assume, Equal } from "../utils.js";
|
|
6
|
+
import { CodecsCollection } from "../codecs.js";
|
|
6
7
|
import { CasingCache } from "../casing.js";
|
|
7
8
|
import { SelectResult } from "../query-builders/select.types.js";
|
|
8
9
|
|
|
@@ -22,6 +23,7 @@ interface BuildQueryConfig {
|
|
|
22
23
|
escapeParam(num: number, value: unknown): string;
|
|
23
24
|
escapeString(str: string): string;
|
|
24
25
|
prepareTyping?: (encoder: DriverValueEncoder<unknown, unknown>) => QueryTypingsValue;
|
|
26
|
+
codecs?: CodecsCollection;
|
|
25
27
|
paramStartIndex?: {
|
|
26
28
|
value: number;
|
|
27
29
|
};
|
|
@@ -108,28 +110,36 @@ declare class Name implements SQLWrapper {
|
|
|
108
110
|
* @deprecated Use `sql.identifier` instead.
|
|
109
111
|
*/
|
|
110
112
|
declare function name(value: string): Name;
|
|
113
|
+
interface DriverValueDecoderFn<TData, TDriverParam> {
|
|
114
|
+
(value: TDriverParam): TData;
|
|
115
|
+
}
|
|
111
116
|
interface DriverValueDecoder<TData, TDriverParam> {
|
|
112
|
-
mapFromDriverValue
|
|
117
|
+
mapFromDriverValue: DriverValueDecoderFn<TData, TDriverParam>;
|
|
118
|
+
}
|
|
119
|
+
interface DriverValueEncoderFn<TData, TDriverParam> {
|
|
120
|
+
(value: TData): TDriverParam;
|
|
113
121
|
}
|
|
114
122
|
interface DriverValueEncoder<TData, TDriverParam> {
|
|
115
|
-
mapToDriverValue
|
|
123
|
+
mapToDriverValue: DriverValueEncoderFn<TData, TDriverParam>;
|
|
116
124
|
}
|
|
117
125
|
declare function isDriverValueEncoder(value: unknown): value is DriverValueEncoder<any, any>;
|
|
118
126
|
declare const noopDecoder: DriverValueDecoder<any, any>;
|
|
119
127
|
declare const noopEncoder: DriverValueEncoder<any, any>;
|
|
120
128
|
interface DriverValueMapper<TData, TDriverParam> extends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam> {}
|
|
129
|
+
declare function isNoop(mapper: DriverValueEncoderFn<any, any> | DriverValueDecoderFn<any, any>): true | undefined;
|
|
121
130
|
declare const noopMapper: DriverValueMapper<any, any>;
|
|
122
131
|
/** Parameter value that is optionally bound to an encoder (for example, a column). */
|
|
123
|
-
declare class Param<TDataType =
|
|
132
|
+
declare class Param<TDataType = any, TDriverParamType = TDataType> implements SQLWrapper {
|
|
124
133
|
readonly value: TDataType;
|
|
125
134
|
readonly encoder: DriverValueEncoder<TDataType, TDriverParamType>;
|
|
135
|
+
codec?: ((value: any) => any) | undefined;
|
|
126
136
|
static readonly [entityKind]: string;
|
|
127
137
|
protected brand: 'BoundParamValue';
|
|
128
138
|
/**
|
|
129
139
|
* @param value - Parameter value
|
|
130
140
|
* @param encoder - Encoder to convert the value to a driver parameter
|
|
131
141
|
*/
|
|
132
|
-
constructor(value: TDataType, encoder?: DriverValueEncoder<TDataType, TDriverParamType
|
|
142
|
+
constructor(value: TDataType, encoder?: DriverValueEncoder<TDataType, TDriverParamType>, codec?: ((value: any) => any) | undefined);
|
|
133
143
|
getSQL(): SQL<unknown>;
|
|
134
144
|
}
|
|
135
145
|
/** @deprecated Use `sql.param` instead. */
|
|
@@ -247,5 +257,5 @@ type InferSelectViewModel<TView extends View> = Equal<TView['_']['selectedFields
|
|
|
247
257
|
} : SelectResult<TView['_']['selectedFields'], 'single', Record<TView['_']['name'], 'not-null'>>;
|
|
248
258
|
type SQLEntity = SQL | SQLWrapper | SQL.Aliased | Table | View;
|
|
249
259
|
//#endregion
|
|
250
|
-
export { BuildQueryConfig, Chunk, ColumnsSelection, CommentInput, DriverValueDecoder, DriverValueEncoder, DriverValueMapper, FakePrimitiveParam, GetDecoderResult, InferSelectViewModel, Name, Param, Placeholder, Query, QueryTypingsValue, QueryWithTypings, SQL, SQLChunk, SQLEntity, SQLGenerator, SQLWrapper, SqlCommenterInput, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder, isSQLWrapper, isView, name, noopDecoder, noopEncoder, noopMapper, param, placeholder, sql, sqlCommenter };
|
|
260
|
+
export { BuildQueryConfig, Chunk, ColumnsSelection, CommentInput, DriverValueDecoder, DriverValueDecoderFn, DriverValueEncoder, DriverValueEncoderFn, DriverValueMapper, FakePrimitiveParam, GetDecoderResult, InferSelectViewModel, Name, Param, Placeholder, Query, QueryTypingsValue, QueryWithTypings, SQL, SQLChunk, SQLEntity, SQLGenerator, SQLWrapper, SqlCommenterInput, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder, isNoop, isSQLWrapper, isView, name, noopDecoder, noopEncoder, noopMapper, param, placeholder, sql, sqlCommenter };
|
|
251
261
|
//# sourceMappingURL=sql.d.ts.map
|
package/sql/sql.js
CHANGED
|
@@ -77,7 +77,7 @@ var SQL = class SQL {
|
|
|
77
77
|
inlineParams: _config.inlineParams || this.shouldInlineParams,
|
|
78
78
|
paramStartIndex: _config.paramStartIndex || { value: 0 }
|
|
79
79
|
});
|
|
80
|
-
const { casing, escapeName, escapeParam, prepareTyping, inlineParams, paramStartIndex, invokeSource } = config;
|
|
80
|
+
const { casing, escapeName, escapeParam, prepareTyping, codecs, inlineParams, paramStartIndex, invokeSource } = config;
|
|
81
81
|
return mergeQueries(chunks.map((chunk) => {
|
|
82
82
|
if (is(chunk, StringChunk)) return {
|
|
83
83
|
sql: chunk.value.join(""),
|
|
@@ -137,21 +137,33 @@ var SQL = class SQL {
|
|
|
137
137
|
};
|
|
138
138
|
}
|
|
139
139
|
if (is(chunk, Param)) {
|
|
140
|
-
if (is(chunk.value,
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
140
|
+
if (is(chunk.value, SQL)) return this.buildQueryFromSourceParams([chunk.value], config);
|
|
141
|
+
const useCodecs = codecs && is(chunk.encoder, Column);
|
|
142
|
+
if (is(chunk.value, Placeholder)) {
|
|
143
|
+
const escaped = escapeParam(paramStartIndex.value++, chunk);
|
|
144
|
+
chunk.codec = useCodecs ? (value) => codecs.apply(chunk.encoder, "normalizeParam", value) : void 0;
|
|
145
|
+
return {
|
|
146
|
+
sql: useCodecs ? codecs.apply(chunk.encoder, "castParam", escaped) : escaped,
|
|
147
|
+
params: [chunk],
|
|
148
|
+
typings: ["none"]
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
let mappedValue;
|
|
152
|
+
if (chunk.value === null) mappedValue = chunk.value;
|
|
153
|
+
else {
|
|
154
|
+
mappedValue = chunk.encoder.mapToDriverValue.isNoop ? chunk.value : chunk.encoder.mapToDriverValue(chunk.value);
|
|
155
|
+
if (is(mappedValue, SQL)) return this.buildQueryFromSourceParams([mappedValue], config);
|
|
156
|
+
if (useCodecs) mappedValue = codecs.apply(chunk.encoder, "normalizeParam", mappedValue);
|
|
157
|
+
}
|
|
147
158
|
if (inlineParams) return {
|
|
148
159
|
sql: this.mapInlineParam(mappedValue, config),
|
|
149
160
|
params: []
|
|
150
161
|
};
|
|
151
162
|
let typings = ["none"];
|
|
152
163
|
if (prepareTyping) typings = [prepareTyping(chunk.encoder)];
|
|
164
|
+
const escaped = escapeParam(paramStartIndex.value++, mappedValue);
|
|
153
165
|
return {
|
|
154
|
-
sql:
|
|
166
|
+
sql: useCodecs ? codecs.apply(chunk.encoder, "castParam", escaped) : escaped,
|
|
155
167
|
params: [mappedValue],
|
|
156
168
|
typings
|
|
157
169
|
};
|
|
@@ -266,7 +278,12 @@ function isDriverValueEncoder(value) {
|
|
|
266
278
|
return typeof value === "object" && value !== null && "mapToDriverValue" in value && typeof value.mapToDriverValue === "function";
|
|
267
279
|
}
|
|
268
280
|
const noopDecoder = { mapFromDriverValue: (value) => value };
|
|
281
|
+
noopDecoder.mapFromDriverValue.isNoop = true;
|
|
269
282
|
const noopEncoder = { mapToDriverValue: (value) => value };
|
|
283
|
+
noopEncoder.mapToDriverValue.isNoop = true;
|
|
284
|
+
function isNoop(mapper) {
|
|
285
|
+
return mapper.isNoop;
|
|
286
|
+
}
|
|
270
287
|
const noopMapper = {
|
|
271
288
|
...noopDecoder,
|
|
272
289
|
...noopEncoder
|
|
@@ -279,9 +296,10 @@ var Param = class {
|
|
|
279
296
|
* @param value - Parameter value
|
|
280
297
|
* @param encoder - Encoder to convert the value to a driver parameter
|
|
281
298
|
*/
|
|
282
|
-
constructor(value, encoder = noopEncoder) {
|
|
299
|
+
constructor(value, encoder = noopEncoder, codec) {
|
|
283
300
|
this.value = value;
|
|
284
301
|
this.encoder = encoder;
|
|
302
|
+
this.codec = codec;
|
|
285
303
|
}
|
|
286
304
|
getSQL() {
|
|
287
305
|
return new SQL([this]);
|
|
@@ -425,7 +443,9 @@ function fillPlaceholders(params, values) {
|
|
|
425
443
|
}
|
|
426
444
|
if (is(p, Param) && is(p.value, Placeholder)) {
|
|
427
445
|
if (!(p.value.name in values)) throw new Error(`No value for placeholder "${p.value.name}" was provided`);
|
|
428
|
-
|
|
446
|
+
if (values[p.value.name] === null) return values[p.value.name];
|
|
447
|
+
const mapped = p.encoder.mapToDriverValue.isNoop ? values[p.value.name] : p.encoder.mapToDriverValue(values[p.value.name]);
|
|
448
|
+
return p.codec ? p.codec(mapped) : mapped;
|
|
429
449
|
}
|
|
430
450
|
return p;
|
|
431
451
|
});
|
|
@@ -483,5 +503,5 @@ Subquery.prototype.getSQL = function() {
|
|
|
483
503
|
};
|
|
484
504
|
|
|
485
505
|
//#endregion
|
|
486
|
-
export { FakePrimitiveParam, Name, Param, Placeholder, SQL, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder, isSQLWrapper, isView, name, noopDecoder, noopEncoder, noopMapper, param, placeholder, sql, sqlCommenter };
|
|
506
|
+
export { FakePrimitiveParam, Name, Param, Placeholder, SQL, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder, isNoop, isSQLWrapper, isView, name, noopDecoder, noopEncoder, noopMapper, param, placeholder, sql, sqlCommenter };
|
|
487
507
|
//# sourceMappingURL=sql.js.map
|
package/sql/sql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.js","names":[],"sources":["../../src/sql/sql.ts"],"sourcesContent":["import type { CasingCache } from '~/casing.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { SelectResult } from '~/query-builders/select.types.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { TableName } from '~/table.utils.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { AnyColumn } from '../column.ts';\nimport { Column } from '../column.ts';\nimport { IsAlias, OriginalName, Table, TableColumns, TableSchema } from '../table.ts';\n\n/**\n * This class is used to indicate a primitive param value that is used in `sql` tag.\n * It is only used on type level and is never instantiated at runtime.\n * If you see a value of this type in the code, its runtime value is actually the primitive param value.\n */\nexport class FakePrimitiveParam {\n\tstatic readonly [entityKind]: string = 'FakePrimitiveParam';\n}\n\nexport type Chunk =\n\t| string\n\t| Table\n\t| View\n\t| AnyColumn\n\t| Name\n\t| Param\n\t| Placeholder\n\t| SQL;\n\nexport interface BuildQueryConfig {\n\tcasing: CasingCache;\n\tescapeName(name: string): string;\n\tescapeParam(num: number, value: unknown): string;\n\tescapeString(str: string): string;\n\tprepareTyping?: (encoder: DriverValueEncoder<unknown, unknown>) => QueryTypingsValue;\n\tparamStartIndex?: { value: number };\n\tinlineParams?: boolean;\n\tinvokeSource?: 'indexes' | 'mssql-check' | 'mssql-view-with-schemabinding' | undefined;\n}\n\nexport type QueryTypingsValue = 'json' | 'decimal' | 'time' | 'timestamp' | 'uuid' | 'date' | 'none';\n\nexport interface Query {\n\tsql: string;\n\tparams: unknown[];\n}\n\nexport interface QueryWithTypings extends Query {\n\ttypings?: QueryTypingsValue[];\n}\n\n/**\n * Any value that implements the `getSQL` method. The implementations include:\n * - `Table`\n * - `Column`\n * - `View`\n * - `Subquery`\n * - `SQL`\n * - `SQL.Aliased`\n * - `Placeholder`\n * - `Param`\n */\nexport interface SQLWrapper<T = unknown> {\n\tgetSQL(): SQL<T>;\n\tshouldOmitSQLParens?(): boolean;\n}\n\nexport function isSQLWrapper(value: unknown): value is SQLWrapper {\n\treturn value !== null && value !== undefined && typeof (value as any).getSQL === 'function';\n}\n\nfunction mergeQueries(queries: QueryWithTypings[]): QueryWithTypings {\n\tconst result: QueryWithTypings = { sql: '', params: [] };\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t\tif (query.typings?.length) {\n\t\t\tif (!result.typings) {\n\t\t\t\tresult.typings = [];\n\t\t\t}\n\t\t\tresult.typings.push(...query.typings);\n\t\t}\n\t}\n\treturn result;\n}\n\nexport class StringChunk implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'StringChunk';\n\n\treadonly value: string[];\n\n\tconstructor(value: string | string[]) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\nexport class SQL<T = unknown> implements SQLWrapper<T> {\n\tstatic readonly [entityKind]: string = 'SQL';\n\n\tdeclare _: {\n\t\tbrand: 'SQL';\n\t\ttype: T;\n\t};\n\n\t/** @internal */\n\tdecoder: DriverValueDecoder<T, any> = noopDecoder;\n\t/** @internal */\n\tpublic shouldInlineParams = false;\n\n\t/** @internal */\n\tusedTables: string[] = [];\n\n\tconstructor(readonly queryChunks: SQLChunk[]) {\n\t\tfor (const chunk of queryChunks) {\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\n\t\t\t\tthis.usedTables.push(\n\t\t\t\t\tschemaName === undefined\n\t\t\t\t\t\t? chunk[Table.Symbol.Name]\n\t\t\t\t\t\t: schemaName + '.' + chunk[Table.Symbol.Name],\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tappend(query: SQL): this {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\n\ttoQuery(config: BuildQueryConfig): QueryWithTypings {\n\t\treturn tracer.startActiveSpan('drizzle.buildSQL', (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': query.sql,\n\t\t\t\t'drizzle.query.params': JSON.stringify(query.params),\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\n\tbuildQueryFromSourceParams(chunks: SQLChunk[], _config: BuildQueryConfig): Query {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 },\n\t\t});\n\n\t\tconst {\n\t\t\tcasing,\n\t\t\tescapeName,\n\t\t\tescapeParam,\n\t\t\tprepareTyping,\n\t\t\tinlineParams,\n\t\t\tparamStartIndex,\n\t\t\tinvokeSource,\n\t\t} = config;\n\n\t\treturn mergeQueries(chunks.map((chunk): QueryWithTypings => {\n\t\t\tif (is(chunk, StringChunk)) {\n\t\t\t\treturn { sql: chunk.value.join(''), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Name)) {\n\t\t\t\treturn { sql: escapeName(chunk.value), params: [] };\n\t\t\t}\n\n\t\t\tif (chunk === undefined) {\n\t\t\t\treturn { sql: '', params: [] };\n\t\t\t}\n\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result: SQLChunk[] = [new StringChunk('(')];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) {\n\t\t\t\t\t\tresult.push(new StringChunk(', '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(')'));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL)) {\n\t\t\t\treturn this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t\t...config,\n\t\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\n\t\t\t\tif (invokeSource === 'mssql-view-with-schemabinding') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsql: (schemaName === undefined ? escapeName('dbo') : escapeName(schemaName)) + '.'\n\t\t\t\t\t\t\t+ escapeName(tableName),\n\t\t\t\t\t\tparams: [],\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined || chunk[IsAlias]\n\t\t\t\t\t\t? escapeName(tableName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(tableName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\tconst columnName = casing.getColumnCasing(chunk);\n\t\t\t\tif (_config.invokeSource === 'indexes') {\n\t\t\t\t\treturn { sql: escapeName(columnName), params: [] };\n\t\t\t\t}\n\n\t\t\t\tconst schemaName = invokeSource === 'mssql-check' ? undefined : chunk.table[Table.Symbol.Schema];\n\t\t\t\treturn {\n\t\t\t\t\tsql: chunk.isAlias ? escapeName(chunk.name) : chunk.table[IsAlias] || schemaName === undefined\n\t\t\t\t\t\t? escapeName(chunk.table[Table.Symbol.Name]) + '.' + escapeName(columnName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(chunk.table[Table.Symbol.Name]) + '.'\n\t\t\t\t\t\t\t+ escapeName(columnName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined || chunk[ViewBaseConfig].isAlias\n\t\t\t\t\t\t? escapeName(viewName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(viewName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tif (is(chunk.value, Placeholder)) {\n\t\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t\t\t}\n\n\t\t\t\tconst mappedValue = chunk.value === null ? null : chunk.encoder.mapToDriverValue(chunk.value);\n\n\t\t\t\tif (is(mappedValue, SQL)) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t}\n\n\t\t\t\tif (inlineParams) {\n\t\t\t\t\treturn { sql: this.mapInlineParam(mappedValue, config), params: [] };\n\t\t\t\t}\n\n\t\t\t\tlet typings: QueryTypingsValue[] = ['none'];\n\t\t\t\tif (prepareTyping) {\n\t\t\t\t\ttypings = [prepareTyping(chunk.encoder)];\n\t\t\t\t}\n\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, mappedValue), params: [mappedValue], typings };\n\t\t\t}\n\n\t\t\tif (is(chunk, Placeholder)) {\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== undefined) {\n\t\t\t\treturn {\n\t\t\t\t\tsql: (chunk.origin !== undefined ? escapeName(chunk.origin) + '.' : '') + escapeName(chunk.fieldAlias),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk._.isWith) {\n\t\t\t\t\treturn { sql: escapeName(chunk._.alias), params: [] };\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk._.sql,\n\t\t\t\t\tnew StringChunk(') '),\n\t\t\t\t\tnew Name(chunk._.alias),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (typeof chunk === 'function' && 'enumName' in chunk) {\n\t\t\t\tif ('schema' in chunk && chunk.schema) {\n\t\t\t\t\treturn { sql: escapeName(chunk.schema as string) + '.' + escapeName(chunk.enumName as string), params: [] };\n\t\t\t\t}\n\t\t\t\treturn { sql: escapeName(chunk.enumName as string), params: [] };\n\t\t\t}\n\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\tif (chunk.shouldOmitSQLParens?.()) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([chunk.getSQL()], config);\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(')'),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (inlineParams) {\n\t\t\t\treturn { sql: this.mapInlineParam(chunk, config), params: [] };\n\t\t\t}\n\n\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t}));\n\t}\n\n\tprivate mapInlineParam(\n\t\tchunk: unknown,\n\t\t{ escapeString }: BuildQueryConfig,\n\t): string {\n\t\tif (chunk === null) {\n\t\t\treturn 'null';\n\t\t}\n\t\tif (typeof chunk === 'number' || typeof chunk === 'boolean' || typeof chunk === 'bigint') {\n\t\t\treturn chunk.toString();\n\t\t}\n\t\tif (typeof chunk === 'string') {\n\t\t\treturn escapeString(chunk);\n\t\t}\n\t\tif (typeof chunk === 'object') {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === '[object Object]') {\n\t\t\t\treturn escapeString(JSON.stringify(chunk));\n\t\t\t}\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error('Unexpected param value: ' + chunk);\n\t}\n\n\tgetSQL(): SQL<T> {\n\t\treturn this;\n\t}\n\n\tas(alias: string): SQL.Aliased<T>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(): SQL<TData>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(alias: string): SQL.Aliased<TData>;\n\tas(alias?: string): SQL<T> | SQL.Aliased<T> {\n\t\t// TODO: remove with deprecated overloads\n\t\tif (alias === undefined) {\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\n\tmapWith<\n\t\tTDecoder extends\n\t\t\t| DriverValueDecoder<any, any>\n\t\t\t| DriverValueDecoder<any, any>['mapFromDriverValue'],\n\t>(decoder: TDecoder): SQL<GetDecoderResult<TDecoder>> {\n\t\tthis.decoder = typeof decoder === 'function' ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this as SQL<GetDecoderResult<TDecoder>>;\n\t}\n\n\tinlineParams(): this {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * This method is used to conditionally include a part of the query.\n\t *\n\t * @param condition - Condition to check\n\t * @returns itself if the condition is `true`, otherwise `undefined`\n\t */\n\tif(condition: any | undefined): this | undefined {\n\t\treturn condition ? this : undefined;\n\t}\n}\n\nexport type GetDecoderResult<T> = T extends Column ? T['_']['data'] : T extends\n\t| DriverValueDecoder<infer TData, any>\n\t| DriverValueDecoder<infer TData, any>['mapFromDriverValue'] ? TData\n: never;\n\n/**\n * Any DB name (table, column, index etc.)\n */\nexport class Name implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Name';\n\n\tprotected brand!: 'Name';\n\n\tconstructor(readonly value: string) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/**\n * Any DB name (table, column, index etc.)\n * @deprecated Use `sql.identifier` instead.\n */\nexport function name(value: string): Name {\n\treturn new Name(value);\n}\n\nexport interface DriverValueDecoder<TData, TDriverParam> {\n\tmapFromDriverValue(value: TDriverParam): TData;\n}\n\nexport interface DriverValueEncoder<TData, TDriverParam> {\n\tmapToDriverValue(value: TData): TDriverParam | SQL;\n}\n\nexport function isDriverValueEncoder(value: unknown): value is DriverValueEncoder<any, any> {\n\treturn typeof value === 'object' && value !== null && 'mapToDriverValue' in value\n\t\t&& typeof (value as any).mapToDriverValue === 'function';\n}\n\nexport const noopDecoder: DriverValueDecoder<any, any> = {\n\tmapFromDriverValue: (value) => value,\n};\n\nexport const noopEncoder: DriverValueEncoder<any, any> = {\n\tmapToDriverValue: (value) => value,\n};\n\nexport interface DriverValueMapper<TData, TDriverParam>\n\textends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam>\n{}\n\nexport const noopMapper: DriverValueMapper<any, any> = {\n\t...noopDecoder,\n\t...noopEncoder,\n};\n\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nexport class Param<TDataType = unknown, TDriverParamType = TDataType> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Param';\n\n\tprotected brand!: 'BoundParamValue';\n\n\t/**\n\t * @param value - Parameter value\n\t * @param encoder - Encoder to convert the value to a driver parameter\n\t */\n\tconstructor(\n\t\treadonly value: TDataType,\n\t\treadonly encoder: DriverValueEncoder<TDataType, TDriverParamType> = noopEncoder,\n\t) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.param` instead. */\nexport function param<TData, TDriver>(\n\tvalue: TData,\n\tencoder?: DriverValueEncoder<TData, TDriver>,\n): Param<TData, TDriver> {\n\treturn new Param(value, encoder);\n}\n\n/**\n * Anything that can be passed to the `` sql`...` `` tagged function.\n */\nexport type SQLChunk =\n\t| StringChunk\n\t| SQLChunk[]\n\t| SQLWrapper\n\t| SQL\n\t| Table\n\t| View\n\t| Subquery\n\t| AnyColumn\n\t| Param\n\t| Name\n\t| undefined\n\t| FakePrimitiveParam\n\t| Placeholder;\n\nexport type SQLGenerator<T = unknown> = typeof sql<T>;\n\nexport function sql<T>(strings: TemplateStringsArray, ...params: any[]): SQL<T>;\n/*\n\tThe type of `params` is specified as `SQLChunk[]`, but that's slightly incorrect -\n\tin runtime, users won't pass `FakePrimitiveParam` instances as `params` - they will pass primitive values\n\twhich will be wrapped in `Param`. That's why the overload specifies `params` as `any[]` and not as `SQLSourceParam[]`.\n\tThis type is used to make our lives easier and the type checker happy.\n*/\nexport function sql(strings: TemplateStringsArray, ...params: SQLChunk[]): SQL {\n\tconst queryChunks: SQLChunk[] = [];\n\tif (params.length > 0 || (strings.length > 0 && strings[0] !== '')) {\n\t\tqueryChunks.push(new StringChunk(strings[0]!));\n\t}\n\tfor (const [paramIndex, param] of params.entries()) {\n\t\tqueryChunks.push(param, new StringChunk(strings[paramIndex + 1]!));\n\t}\n\n\treturn new SQL(queryChunks);\n}\n\nexport namespace sql {\n\texport function empty(): SQL {\n\t\treturn new SQL([]);\n\t}\n\n\t/** @deprecated - use `sql.join()` */\n\texport function fromList(list: SQLChunk[]): SQL {\n\t\treturn new SQL(list);\n\t}\n\n\t/**\n\t * Convenience function to create an SQL query from a raw string.\n\t * @param str The raw SQL query string.\n\t */\n\texport function raw(str: string): SQL {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\n\t/**\n\t * Join a list of SQL chunks with a separator.\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`]);\n\t * // sql`abc`\n\t * ```\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`], sql`, `);\n\t * // sql`a, b, c`\n\t * ```\n\t */\n\texport function join(chunks: SQLChunk[], separator?: SQLChunk): SQL {\n\t\tconst result: SQLChunk[] = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== undefined) {\n\t\t\t\tresult.push(separator);\n\t\t\t}\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\n\t/**\n\t * Create a SQL chunk that represents a DB identifier (table, column, index etc.).\n\t * When used in a query, the identifier will be escaped based on the DB engine.\n\t * For example, in PostgreSQL, identifiers are escaped with double quotes.\n\t *\n\t * **WARNING: This function does not offer any protection against SQL injections, so you must validate any user input beforehand.**\n\t *\n\t * @example ```ts\n\t * const query = sql`SELECT * FROM ${sql.identifier('my-table')}`;\n\t * // 'SELECT * FROM \"my-table\"'\n\t * ```\n\t */\n\texport function identifier(value: string): Name {\n\t\treturn new Name(value);\n\t}\n\n\texport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\t\treturn new Placeholder(name);\n\t}\n\n\texport function param<TData, TDriver>(\n\t\tvalue: TData,\n\t\tencoder?: DriverValueEncoder<TData, TDriver>,\n\t): Param<TData, TDriver> {\n\t\treturn new Param(value, encoder);\n\t}\n\n\t/**\n\t * Attach [sqlcommenter](https://google.github.io/sqlcommenter) comment to a query\n\t */\n\texport function comment(input: CommentInput): SQL | undefined {\n\t\tconst encoded = sqlCommenter(input);\n\t\tif (!encoded.length) return undefined;\n\n\t\treturn sql.raw(encoded);\n\t}\n}\n\nexport function sqlCommenter(input: CommentInput): string {\n\tconst encoded = sqlCommenter.encodeInput(input);\n\tif (!encoded.length) return '';\n\n\treturn `/*${encoded}*/`;\n}\n\nexport namespace sqlCommenter {\n\texport function merge(input1: CommentInput | undefined, input2: CommentInput | undefined) {\n\t\tlet encoded: CommentInput;\n\t\tif (typeof input1 === 'object' && typeof input2 === 'object') {\n\t\t\tencoded = encodeInput({ ...input1, ...input2 });\n\t\t} else if (input1 && input2) {\n\t\t\tencoded = [encodeInput(input1), encodeInput(input2)].filter((i) => i.length).join(',');\n\t\t} else if (input2) {\n\t\t\tencoded = encodeInput(input2);\n\t\t} else if (input1) {\n\t\t\tencoded = encodeInput(input1);\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (!encoded.length) return '';\n\n\t\treturn `/*${encoded}*/`;\n\t}\n\n\texport function encodeInput(input: CommentInput): string {\n\t\tif (typeof input === 'string') {\n\t\t\tif (!input.length) return input;\n\n\t\t\treturn sanitizeStringInput(input);\n\t\t}\n\n\t\tconst parts: string[] = [];\n\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tif (value === null || value === undefined || value === '') continue;\n\n\t\t\tconst encodedKey = sanitizeObjectElement(key);\n\t\t\tconst encodedValue = sanitizeObjectElement(String(value));\n\n\t\t\tparts.push(`${encodedKey}='${encodedValue}'`);\n\t\t}\n\n\t\tif (!parts.length) return '';\n\n\t\treturn parts.sort().join(',');\n\t}\n\n\texport function sanitizeObjectElement(key: string): string {\n\t\tconst urlEncoded = encodeURIComponent(key);\n\t\treturn urlEncoded.replace(/'/g, `\\\\'`);\n\t}\n\n\texport function sanitizeStringInput(input: string): string {\n\t\treturn input.replace(/\\/\\*/g, '/ *').replace(/\\*\\//g, '* /');\n\t}\n}\n\nexport type CommentInput = string | SqlCommenterInput;\n\nexport type SqlCommenterInput = Record<\n\tstring,\n\tstring | number | bigint | boolean | null | undefined\n>;\n\nexport namespace SQL {\n\texport class Aliased<T = unknown> implements SQLWrapper<T> {\n\t\tstatic readonly [entityKind]: string = 'SQL.Aliased';\n\n\t\tdeclare _: {\n\t\t\tbrand: 'SQL.Aliased';\n\t\t\ttype: T;\n\t\t};\n\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\t\t/** @internal */\n\t\torigin?: string;\n\n\t\tconstructor(\n\t\t\treadonly sql: SQL<T>,\n\t\t\treadonly fieldAlias: string,\n\t\t) {}\n\n\t\tgetSQL(): SQL<T> {\n\t\t\treturn this.sql as SQL<T>;\n\t\t}\n\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased<T>(this.sql, this.fieldAlias);\n\t\t}\n\t}\n}\n\nexport class Placeholder<TName extends string = string, TValue = any> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Placeholder';\n\n\tdeclare protected: TValue;\n\n\tconstructor(readonly name: TName) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.placeholder` instead. */\nexport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\treturn new Placeholder(name);\n}\n\nexport function fillPlaceholders(params: unknown[], values: Record<string, unknown>): unknown[] {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\t}\n\n\t\t\treturn values[p.name];\n\t\t}\n\n\t\tif (is(p, Param) && is(p.value, Placeholder)) {\n\t\t\tif (!(p.value.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.value.name}\" was provided`);\n\t\t\t}\n\n\t\t\treturn p.encoder.mapToDriverValue(values[p.value.name]);\n\t\t}\n\n\t\treturn p;\n\t});\n}\n\nexport type ColumnsSelection = Record<string, unknown>;\n\nconst IsDrizzleView = Symbol.for('drizzle:IsDrizzleView');\n\nexport abstract class View<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n> {\n\tstatic readonly [entityKind]: string = 'View';\n\n\tdeclare _: {\n\t\tbrand: 'View';\n\t\tviewBrand: string;\n\t\tname: TName;\n\t\texisting: TExisting;\n\t\tselectedFields: TSelection;\n\t};\n\n\t/** @internal */\n\t[ViewBaseConfig]: {\n\t\tname: TName;\n\t\toriginalName: TName;\n\t\tschema: string | undefined;\n\t\tselectedFields: ColumnsSelection;\n\t\tisExisting: TExisting;\n\t\tquery: TExisting extends true ? undefined : SQL;\n\t\tisAlias: boolean;\n\t};\n\n\t/** @internal */\n\t[IsDrizzleView] = true;\n\n\t/** @internal */\n\tpublic get [TableName]() {\n\t\treturn this[ViewBaseConfig].name;\n\t}\n\n\t/** @internal */\n\tpublic get [TableSchema]() {\n\t\treturn this[ViewBaseConfig].schema;\n\t}\n\n\t/** @internal */\n\tpublic get [IsAlias]() {\n\t\treturn this[ViewBaseConfig].isAlias;\n\t}\n\n\t/** @internal */\n\tpublic get [OriginalName]() {\n\t\treturn this[ViewBaseConfig].originalName;\n\t}\n\n\t/** @internal */\n\tpublic get [TableColumns]() {\n\t\treturn (this[ViewBaseConfig].selectedFields) as any as Record<string, unknown>;\n\t}\n\n\tdeclare readonly $inferSelect: InferSelectViewModel<View<Assume<TName, string>, TExisting, TSelection>>;\n\n\tconstructor(\n\t\t{ name, schema, selectedFields, query }: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: ColumnsSelection;\n\t\t\tquery: SQL | undefined;\n\t\t},\n\t) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery: query as (TExisting extends true ? undefined : SQL),\n\t\t\tisExisting: !query as TExisting,\n\t\t\tisAlias: false,\n\t\t};\n\t}\n}\n\nexport function isView(view: unknown): view is View {\n\treturn typeof view === 'object' && view !== null && IsDrizzleView in view;\n}\n\nexport function getViewName<T extends View>(view: T): T['_']['name'] {\n\treturn view[ViewBaseConfig].name;\n}\n\nexport type InferSelectViewModel<TView extends View> =\n\tEqual<TView['_']['selectedFields'], { [x: string]: unknown }> extends true ? { [x: string]: unknown }\n\t\t: SelectResult<\n\t\t\tTView['_']['selectedFields'],\n\t\t\t'single',\n\t\t\tRecord<TView['_']['name'], 'not-null'>\n\t\t>;\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n// Defined separately from the Column class to resolve circular dependency\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\nexport type SQLEntity = SQL | SQLWrapper | SQL.Aliased | Table | View;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sql.js","names":[],"sources":["../../src/sql/sql.ts"],"sourcesContent":["import type { CasingCache } from '~/casing.ts';\nimport type { CodecsCollection } from '~/codecs.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { SelectResult } from '~/query-builders/select.types.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { TableName } from '~/table.utils.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { AnyColumn } from '../column.ts';\nimport { Column } from '../column.ts';\nimport { IsAlias, OriginalName, Table, TableColumns, TableSchema } from '../table.ts';\n\n/**\n * This class is used to indicate a primitive param value that is used in `sql` tag.\n * It is only used on type level and is never instantiated at runtime.\n * If you see a value of this type in the code, its runtime value is actually the primitive param value.\n */\nexport class FakePrimitiveParam {\n\tstatic readonly [entityKind]: string = 'FakePrimitiveParam';\n}\n\nexport type Chunk =\n\t| string\n\t| Table\n\t| View\n\t| AnyColumn\n\t| Name\n\t| Param\n\t| Placeholder\n\t| SQL;\n\nexport interface BuildQueryConfig {\n\tcasing: CasingCache;\n\tescapeName(name: string): string;\n\tescapeParam(num: number, value: unknown): string;\n\tescapeString(str: string): string;\n\tprepareTyping?: (encoder: DriverValueEncoder<unknown, unknown>) => QueryTypingsValue;\n\tcodecs?: CodecsCollection;\n\tparamStartIndex?: { value: number };\n\tinlineParams?: boolean;\n\tinvokeSource?: 'indexes' | 'mssql-check' | 'mssql-view-with-schemabinding' | undefined;\n}\n\nexport type QueryTypingsValue = 'json' | 'decimal' | 'time' | 'timestamp' | 'uuid' | 'date' | 'none';\n\nexport interface Query {\n\tsql: string;\n\tparams: unknown[];\n}\n\nexport interface QueryWithTypings extends Query {\n\ttypings?: QueryTypingsValue[];\n}\n\n/**\n * Any value that implements the `getSQL` method. The implementations include:\n * - `Table`\n * - `Column`\n * - `View`\n * - `Subquery`\n * - `SQL`\n * - `SQL.Aliased`\n * - `Placeholder`\n * - `Param`\n */\nexport interface SQLWrapper<T = unknown> {\n\tgetSQL(): SQL<T>;\n\tshouldOmitSQLParens?(): boolean;\n}\n\nexport function isSQLWrapper(value: unknown): value is SQLWrapper {\n\treturn value !== null && value !== undefined && typeof (value as any).getSQL === 'function';\n}\n\nfunction mergeQueries(queries: QueryWithTypings[]): QueryWithTypings {\n\tconst result: QueryWithTypings = { sql: '', params: [] };\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t\tif (query.typings?.length) {\n\t\t\tif (!result.typings) {\n\t\t\t\tresult.typings = [];\n\t\t\t}\n\t\t\tresult.typings.push(...query.typings);\n\t\t}\n\t}\n\treturn result;\n}\n\nexport class StringChunk implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'StringChunk';\n\n\treadonly value: string[];\n\n\tconstructor(value: string | string[]) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\nexport class SQL<T = unknown> implements SQLWrapper<T> {\n\tstatic readonly [entityKind]: string = 'SQL';\n\n\tdeclare _: {\n\t\tbrand: 'SQL';\n\t\ttype: T;\n\t};\n\n\t/** @internal */\n\tdecoder: DriverValueDecoder<T, any> = noopDecoder;\n\t/** @internal */\n\tpublic shouldInlineParams = false;\n\n\t/** @internal */\n\tusedTables: string[] = [];\n\n\tconstructor(readonly queryChunks: SQLChunk[]) {\n\t\tfor (const chunk of queryChunks) {\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\n\t\t\t\tthis.usedTables.push(\n\t\t\t\t\tschemaName === undefined\n\t\t\t\t\t\t? chunk[Table.Symbol.Name]\n\t\t\t\t\t\t: schemaName + '.' + chunk[Table.Symbol.Name],\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tappend(query: SQL): this {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\n\ttoQuery(config: BuildQueryConfig): QueryWithTypings {\n\t\treturn tracer.startActiveSpan('drizzle.buildSQL', (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': query.sql,\n\t\t\t\t'drizzle.query.params': JSON.stringify(query.params),\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\n\tbuildQueryFromSourceParams(chunks: SQLChunk[], _config: BuildQueryConfig): Query {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 },\n\t\t});\n\n\t\tconst {\n\t\t\tcasing,\n\t\t\tescapeName,\n\t\t\tescapeParam,\n\t\t\tprepareTyping,\n\t\t\tcodecs,\n\t\t\tinlineParams,\n\t\t\tparamStartIndex,\n\t\t\tinvokeSource,\n\t\t} = config;\n\n\t\treturn mergeQueries(chunks.map((chunk): QueryWithTypings => {\n\t\t\tif (is(chunk, StringChunk)) {\n\t\t\t\treturn { sql: chunk.value.join(''), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Name)) {\n\t\t\t\treturn { sql: escapeName(chunk.value), params: [] };\n\t\t\t}\n\n\t\t\tif (chunk === undefined) {\n\t\t\t\treturn { sql: '', params: [] };\n\t\t\t}\n\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result: SQLChunk[] = [new StringChunk('(')];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) {\n\t\t\t\t\t\tresult.push(new StringChunk(', '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(')'));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL)) {\n\t\t\t\treturn this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t\t...config,\n\t\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\n\t\t\t\tif (invokeSource === 'mssql-view-with-schemabinding') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsql: (schemaName === undefined ? escapeName('dbo') : escapeName(schemaName)) + '.'\n\t\t\t\t\t\t\t+ escapeName(tableName),\n\t\t\t\t\t\tparams: [],\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined || chunk[IsAlias]\n\t\t\t\t\t\t? escapeName(tableName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(tableName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\tconst columnName = casing.getColumnCasing(chunk);\n\t\t\t\tif (_config.invokeSource === 'indexes') {\n\t\t\t\t\treturn { sql: escapeName(columnName), params: [] };\n\t\t\t\t}\n\n\t\t\t\tconst schemaName = invokeSource === 'mssql-check' ? undefined : chunk.table[Table.Symbol.Schema];\n\t\t\t\treturn {\n\t\t\t\t\tsql: chunk.isAlias ? escapeName(chunk.name) : chunk.table[IsAlias] || schemaName === undefined\n\t\t\t\t\t\t? escapeName(chunk.table[Table.Symbol.Name]) + '.' + escapeName(columnName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(chunk.table[Table.Symbol.Name]) + '.'\n\t\t\t\t\t\t\t+ escapeName(columnName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined || chunk[ViewBaseConfig].isAlias\n\t\t\t\t\t\t? escapeName(viewName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(viewName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tif (is(chunk.value, SQL)) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([chunk.value], config);\n\t\t\t\t}\n\n\t\t\t\tconst useCodecs = codecs && is(chunk.encoder, Column);\n\n\t\t\t\tif (is(chunk.value, Placeholder)) {\n\t\t\t\t\tconst escaped = escapeParam(paramStartIndex.value++, chunk);\n\t\t\t\t\tchunk.codec = useCodecs\n\t\t\t\t\t\t? (value) => codecs.apply(chunk.encoder as Column, 'normalizeParam', value)\n\t\t\t\t\t\t: undefined;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsql: useCodecs\n\t\t\t\t\t\t\t? codecs.apply(chunk.encoder, 'castParam', escaped)\n\t\t\t\t\t\t\t: escaped,\n\t\t\t\t\t\tparams: [chunk],\n\t\t\t\t\t\ttypings: ['none'],\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tlet mappedValue: any;\n\t\t\t\tif (chunk.value === null) {\n\t\t\t\t\tmappedValue = chunk.value;\n\t\t\t\t} else {\n\t\t\t\t\tmappedValue = chunk.encoder.mapToDriverValue.isNoop\n\t\t\t\t\t\t? chunk.value\n\t\t\t\t\t\t: chunk.encoder.mapToDriverValue(chunk.value);\n\n\t\t\t\t\tif (is(mappedValue, SQL)) {\n\t\t\t\t\t\treturn this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (useCodecs) {\n\t\t\t\t\t\tmappedValue = codecs.apply(\n\t\t\t\t\t\t\tchunk.encoder,\n\t\t\t\t\t\t\t'normalizeParam',\n\t\t\t\t\t\t\tmappedValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (inlineParams) {\n\t\t\t\t\treturn { sql: this.mapInlineParam(mappedValue, config), params: [] };\n\t\t\t\t}\n\n\t\t\t\tlet typings: QueryTypingsValue[] = ['none'];\n\t\t\t\tif (prepareTyping) {\n\t\t\t\t\ttypings = [prepareTyping(chunk.encoder)];\n\t\t\t\t}\n\n\t\t\t\tconst escaped = escapeParam(paramStartIndex.value++, mappedValue);\n\t\t\t\treturn {\n\t\t\t\t\tsql: useCodecs\n\t\t\t\t\t\t? codecs.apply(chunk.encoder, 'castParam', escaped)\n\t\t\t\t\t\t: escaped,\n\t\t\t\t\tparams: [mappedValue],\n\t\t\t\t\ttypings,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Placeholder)) {\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== undefined) {\n\t\t\t\treturn {\n\t\t\t\t\tsql: (chunk.origin !== undefined ? escapeName(chunk.origin) + '.' : '') + escapeName(chunk.fieldAlias),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk._.isWith) {\n\t\t\t\t\treturn { sql: escapeName(chunk._.alias), params: [] };\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk._.sql,\n\t\t\t\t\tnew StringChunk(') '),\n\t\t\t\t\tnew Name(chunk._.alias),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (typeof chunk === 'function' && 'enumName' in chunk) {\n\t\t\t\tif ('schema' in chunk && chunk.schema) {\n\t\t\t\t\treturn { sql: escapeName(chunk.schema as string) + '.' + escapeName(chunk.enumName as string), params: [] };\n\t\t\t\t}\n\t\t\t\treturn { sql: escapeName(chunk.enumName as string), params: [] };\n\t\t\t}\n\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\tif (chunk.shouldOmitSQLParens?.()) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([chunk.getSQL()], config);\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(')'),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (inlineParams) {\n\t\t\t\treturn { sql: this.mapInlineParam(chunk, config), params: [] };\n\t\t\t}\n\n\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t}));\n\t}\n\n\tprivate mapInlineParam(\n\t\tchunk: unknown,\n\t\t{ escapeString }: BuildQueryConfig,\n\t): string {\n\t\tif (chunk === null) {\n\t\t\treturn 'null';\n\t\t}\n\t\tif (typeof chunk === 'number' || typeof chunk === 'boolean' || typeof chunk === 'bigint') {\n\t\t\treturn chunk.toString();\n\t\t}\n\t\tif (typeof chunk === 'string') {\n\t\t\treturn escapeString(chunk);\n\t\t}\n\t\tif (typeof chunk === 'object') {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === '[object Object]') {\n\t\t\t\treturn escapeString(JSON.stringify(chunk));\n\t\t\t}\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error('Unexpected param value: ' + chunk);\n\t}\n\n\tgetSQL(): SQL<T> {\n\t\treturn this;\n\t}\n\n\tas(alias: string): SQL.Aliased<T>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(): SQL<TData>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(alias: string): SQL.Aliased<TData>;\n\tas(alias?: string): SQL<T> | SQL.Aliased<T> {\n\t\t// TODO: remove with deprecated overloads\n\t\tif (alias === undefined) {\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\n\tmapWith<\n\t\tTDecoder extends\n\t\t\t| DriverValueDecoder<any, any>\n\t\t\t| DriverValueDecoder<any, any>['mapFromDriverValue'],\n\t>(decoder: TDecoder): SQL<GetDecoderResult<TDecoder>> {\n\t\tthis.decoder = typeof decoder === 'function' ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this as SQL<GetDecoderResult<TDecoder>>;\n\t}\n\n\tinlineParams(): this {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * This method is used to conditionally include a part of the query.\n\t *\n\t * @param condition - Condition to check\n\t * @returns itself if the condition is `true`, otherwise `undefined`\n\t */\n\tif(condition: any | undefined): this | undefined {\n\t\treturn condition ? this : undefined;\n\t}\n}\n\nexport type GetDecoderResult<T> = T extends Column ? T['_']['data'] : T extends\n\t| DriverValueDecoder<infer TData, any>\n\t| DriverValueDecoder<infer TData, any>['mapFromDriverValue'] ? TData\n: never;\n\n/**\n * Any DB name (table, column, index etc.)\n */\nexport class Name implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Name';\n\n\tprotected brand!: 'Name';\n\n\tconstructor(readonly value: string) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/**\n * Any DB name (table, column, index etc.)\n * @deprecated Use `sql.identifier` instead.\n */\nexport function name(value: string): Name {\n\treturn new Name(value);\n}\n\nexport interface DriverValueDecoderFn<TData, TDriverParam> {\n\t(value: TDriverParam): TData;\n\t/** @internal */\n\tisNoop?: true | undefined;\n}\n\nexport interface DriverValueDecoder<TData, TDriverParam> {\n\tmapFromDriverValue: DriverValueDecoderFn<TData, TDriverParam>;\n}\n\nexport interface DriverValueEncoderFn<TData, TDriverParam> {\n\t(value: TData): TDriverParam;\n\t/** @internal */\n\tisNoop?: true | undefined;\n}\n\nexport interface DriverValueEncoder<TData, TDriverParam> {\n\tmapToDriverValue: DriverValueEncoderFn<TData, TDriverParam>;\n}\n\nexport function isDriverValueEncoder(value: unknown): value is DriverValueEncoder<any, any> {\n\treturn typeof value === 'object' && value !== null && 'mapToDriverValue' in value\n\t\t&& typeof (value as any).mapToDriverValue === 'function';\n}\n\nexport const noopDecoder: DriverValueDecoder<any, any> = {\n\tmapFromDriverValue: (value) => value,\n};\n\nnoopDecoder.mapFromDriverValue.isNoop = true;\n\nexport const noopEncoder: DriverValueEncoder<any, any> = {\n\tmapToDriverValue: (value) => value,\n};\n\nnoopEncoder.mapToDriverValue.isNoop = true;\n\nexport interface DriverValueMapper<TData, TDriverParam>\n\textends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam>\n{}\n\nexport function isNoop(mapper: DriverValueEncoderFn<any, any> | DriverValueDecoderFn<any, any>) {\n\treturn mapper.isNoop;\n}\n\nexport const noopMapper: DriverValueMapper<any, any> = {\n\t...noopDecoder,\n\t...noopEncoder,\n};\n\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nexport class Param<TDataType = any, TDriverParamType = TDataType> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Param';\n\n\tprotected brand!: 'BoundParamValue';\n\n\t/**\n\t * @param value - Parameter value\n\t * @param encoder - Encoder to convert the value to a driver parameter\n\t */\n\tconstructor(\n\t\treadonly value: TDataType,\n\t\treadonly encoder: DriverValueEncoder<TDataType, TDriverParamType> = noopEncoder,\n\t\tpublic codec?: (value: any) => any,\n\t) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.param` instead. */\nexport function param<TData, TDriver>(\n\tvalue: TData,\n\tencoder?: DriverValueEncoder<TData, TDriver>,\n): Param<TData, TDriver> {\n\treturn new Param(value, encoder);\n}\n\n/**\n * Anything that can be passed to the `` sql`...` `` tagged function.\n */\nexport type SQLChunk =\n\t| StringChunk\n\t| SQLChunk[]\n\t| SQLWrapper\n\t| SQL\n\t| Table\n\t| View\n\t| Subquery\n\t| AnyColumn\n\t| Param\n\t| Name\n\t| undefined\n\t| FakePrimitiveParam\n\t| Placeholder;\n\nexport type SQLGenerator<T = unknown> = typeof sql<T>;\n\nexport function sql<T>(strings: TemplateStringsArray, ...params: any[]): SQL<T>;\n/*\n\tThe type of `params` is specified as `SQLChunk[]`, but that's slightly incorrect -\n\tin runtime, users won't pass `FakePrimitiveParam` instances as `params` - they will pass primitive values\n\twhich will be wrapped in `Param`. That's why the overload specifies `params` as `any[]` and not as `SQLSourceParam[]`.\n\tThis type is used to make our lives easier and the type checker happy.\n*/\nexport function sql(strings: TemplateStringsArray, ...params: SQLChunk[]): SQL {\n\tconst queryChunks: SQLChunk[] = [];\n\tif (params.length > 0 || (strings.length > 0 && strings[0] !== '')) {\n\t\tqueryChunks.push(new StringChunk(strings[0]!));\n\t}\n\tfor (const [paramIndex, param] of params.entries()) {\n\t\tqueryChunks.push(param, new StringChunk(strings[paramIndex + 1]!));\n\t}\n\n\treturn new SQL(queryChunks);\n}\n\nexport namespace sql {\n\texport function empty(): SQL {\n\t\treturn new SQL([]);\n\t}\n\n\t/** @deprecated - use `sql.join()` */\n\texport function fromList(list: SQLChunk[]): SQL {\n\t\treturn new SQL(list);\n\t}\n\n\t/**\n\t * Convenience function to create an SQL query from a raw string.\n\t * @param str The raw SQL query string.\n\t */\n\texport function raw(str: string): SQL {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\n\t/**\n\t * Join a list of SQL chunks with a separator.\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`]);\n\t * // sql`abc`\n\t * ```\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`], sql`, `);\n\t * // sql`a, b, c`\n\t * ```\n\t */\n\texport function join(chunks: SQLChunk[], separator?: SQLChunk): SQL {\n\t\tconst result: SQLChunk[] = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== undefined) {\n\t\t\t\tresult.push(separator);\n\t\t\t}\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\n\t/**\n\t * Create a SQL chunk that represents a DB identifier (table, column, index etc.).\n\t * When used in a query, the identifier will be escaped based on the DB engine.\n\t * For example, in PostgreSQL, identifiers are escaped with double quotes.\n\t *\n\t * **WARNING: This function does not offer any protection against SQL injections, so you must validate any user input beforehand.**\n\t *\n\t * @example ```ts\n\t * const query = sql`SELECT * FROM ${sql.identifier('my-table')}`;\n\t * // 'SELECT * FROM \"my-table\"'\n\t * ```\n\t */\n\texport function identifier(value: string): Name {\n\t\treturn new Name(value);\n\t}\n\n\texport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\t\treturn new Placeholder(name);\n\t}\n\n\texport function param<TData, TDriver>(\n\t\tvalue: TData,\n\t\tencoder?: DriverValueEncoder<TData, TDriver>,\n\t): Param<TData, TDriver> {\n\t\treturn new Param(value, encoder);\n\t}\n\n\t/**\n\t * Attach [sqlcommenter](https://google.github.io/sqlcommenter) comment to a query\n\t */\n\texport function comment(input: CommentInput): SQL | undefined {\n\t\tconst encoded = sqlCommenter(input);\n\t\tif (!encoded.length) return undefined;\n\n\t\treturn sql.raw(encoded);\n\t}\n}\n\nexport function sqlCommenter(input: CommentInput): string {\n\tconst encoded = sqlCommenter.encodeInput(input);\n\tif (!encoded.length) return '';\n\n\treturn `/*${encoded}*/`;\n}\n\nexport namespace sqlCommenter {\n\texport function merge(input1: CommentInput | undefined, input2: CommentInput | undefined) {\n\t\tlet encoded: CommentInput;\n\t\tif (typeof input1 === 'object' && typeof input2 === 'object') {\n\t\t\tencoded = encodeInput({ ...input1, ...input2 });\n\t\t} else if (input1 && input2) {\n\t\t\tencoded = [encodeInput(input1), encodeInput(input2)].filter((i) => i.length).join(',');\n\t\t} else if (input2) {\n\t\t\tencoded = encodeInput(input2);\n\t\t} else if (input1) {\n\t\t\tencoded = encodeInput(input1);\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (!encoded.length) return '';\n\n\t\treturn `/*${encoded}*/`;\n\t}\n\n\texport function encodeInput(input: CommentInput): string {\n\t\tif (typeof input === 'string') {\n\t\t\tif (!input.length) return input;\n\n\t\t\treturn sanitizeStringInput(input);\n\t\t}\n\n\t\tconst parts: string[] = [];\n\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tif (value === null || value === undefined || value === '') continue;\n\n\t\t\tconst encodedKey = sanitizeObjectElement(key);\n\t\t\tconst encodedValue = sanitizeObjectElement(String(value));\n\n\t\t\tparts.push(`${encodedKey}='${encodedValue}'`);\n\t\t}\n\n\t\tif (!parts.length) return '';\n\n\t\treturn parts.sort().join(',');\n\t}\n\n\texport function sanitizeObjectElement(key: string): string {\n\t\tconst urlEncoded = encodeURIComponent(key);\n\t\treturn urlEncoded.replace(/'/g, `\\\\'`);\n\t}\n\n\texport function sanitizeStringInput(input: string): string {\n\t\treturn input.replace(/\\/\\*/g, '/ *').replace(/\\*\\//g, '* /');\n\t}\n}\n\nexport type CommentInput = string | SqlCommenterInput;\n\nexport type SqlCommenterInput = Record<\n\tstring,\n\tstring | number | bigint | boolean | null | undefined\n>;\n\nexport namespace SQL {\n\texport class Aliased<T = unknown> implements SQLWrapper<T> {\n\t\tstatic readonly [entityKind]: string = 'SQL.Aliased';\n\n\t\tdeclare _: {\n\t\t\tbrand: 'SQL.Aliased';\n\t\t\ttype: T;\n\t\t};\n\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\t\t/** @internal */\n\t\torigin?: string;\n\n\t\tconstructor(\n\t\t\treadonly sql: SQL<T>,\n\t\t\treadonly fieldAlias: string,\n\t\t) {}\n\n\t\tgetSQL(): SQL<T> {\n\t\t\treturn this.sql as SQL<T>;\n\t\t}\n\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased<T>(this.sql, this.fieldAlias);\n\t\t}\n\t}\n}\n\nexport class Placeholder<TName extends string = string, TValue = any> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Placeholder';\n\n\tdeclare protected: TValue;\n\n\tconstructor(readonly name: TName) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.placeholder` instead. */\nexport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\treturn new Placeholder(name);\n}\n\nexport function fillPlaceholders(params: unknown[], values: Record<string, unknown>): unknown[] {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\t}\n\n\t\t\treturn values[p.name];\n\t\t}\n\n\t\tif (is(p, Param) && is(p.value, Placeholder)) {\n\t\t\tif (!(p.value.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.value.name}\" was provided`);\n\t\t\t}\n\n\t\t\tif (values[p.value.name] === null) return values[p.value.name];\n\n\t\t\tconst mapped = p.encoder.mapToDriverValue.isNoop\n\t\t\t\t? values[p.value.name]\n\t\t\t\t: p.encoder.mapToDriverValue(values[p.value.name]);\n\n\t\t\treturn p.codec ? p.codec(mapped) : mapped;\n\t\t}\n\n\t\treturn p;\n\t});\n}\n\nexport type ColumnsSelection = Record<string, unknown>;\n\nconst IsDrizzleView = Symbol.for('drizzle:IsDrizzleView');\n\nexport abstract class View<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n> {\n\tstatic readonly [entityKind]: string = 'View';\n\n\tdeclare _: {\n\t\tbrand: 'View';\n\t\tviewBrand: string;\n\t\tname: TName;\n\t\texisting: TExisting;\n\t\tselectedFields: TSelection;\n\t};\n\n\t/** @internal */\n\t[ViewBaseConfig]: {\n\t\tname: TName;\n\t\toriginalName: TName;\n\t\tschema: string | undefined;\n\t\tselectedFields: ColumnsSelection;\n\t\tisExisting: TExisting;\n\t\tquery: TExisting extends true ? undefined : SQL;\n\t\tisAlias: boolean;\n\t};\n\n\t/** @internal */\n\t[IsDrizzleView] = true;\n\n\t/** @internal */\n\tpublic get [TableName]() {\n\t\treturn this[ViewBaseConfig].name;\n\t}\n\n\t/** @internal */\n\tpublic get [TableSchema]() {\n\t\treturn this[ViewBaseConfig].schema;\n\t}\n\n\t/** @internal */\n\tpublic get [IsAlias]() {\n\t\treturn this[ViewBaseConfig].isAlias;\n\t}\n\n\t/** @internal */\n\tpublic get [OriginalName]() {\n\t\treturn this[ViewBaseConfig].originalName;\n\t}\n\n\t/** @internal */\n\tpublic get [TableColumns]() {\n\t\treturn (this[ViewBaseConfig].selectedFields) as any as Record<string, unknown>;\n\t}\n\n\tdeclare readonly $inferSelect: InferSelectViewModel<View<Assume<TName, string>, TExisting, TSelection>>;\n\n\tconstructor(\n\t\t{ name, schema, selectedFields, query }: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: ColumnsSelection;\n\t\t\tquery: SQL | undefined;\n\t\t},\n\t) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery: query as (TExisting extends true ? undefined : SQL),\n\t\t\tisExisting: !query as TExisting,\n\t\t\tisAlias: false,\n\t\t};\n\t}\n}\n\nexport function isView(view: unknown): view is View {\n\treturn typeof view === 'object' && view !== null && IsDrizzleView in view;\n}\n\nexport function getViewName<T extends View>(view: T): T['_']['name'] {\n\treturn view[ViewBaseConfig].name;\n}\n\nexport type InferSelectViewModel<TView extends View> =\n\tEqual<TView['_']['selectedFields'], { [x: string]: unknown }> extends true ? { [x: string]: unknown }\n\t\t: SelectResult<\n\t\t\tTView['_']['selectedFields'],\n\t\t\t'single',\n\t\t\tRecord<TView['_']['name'], 'not-null'>\n\t\t>;\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n// Defined separately from the Column class to resolve circular dependency\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\nexport type SQLEntity = SQL | SQLWrapper | SQL.Aliased | Table | View;\n"],"mappings":"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"}
|
package/sql-js/driver.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
3
3
|
const require_sql_js_session = require('./session.cjs');
|
|
4
|
+
let __logger_ts = require("../logger.cjs");
|
|
4
5
|
let ___relations_ts = require("../_relations.cjs");
|
|
5
6
|
___relations_ts = require_runtime.__toESM(___relations_ts);
|
|
6
|
-
let __logger_ts = require("../logger.cjs");
|
|
7
7
|
let __sqlite_core_db_ts = require("../sqlite-core/db.cjs");
|
|
8
8
|
let __sqlite_core_dialect_ts = require("../sqlite-core/dialect.cjs");
|
|
9
9
|
|
|
@@ -23,7 +23,10 @@ function drizzle(client, config = {}) {
|
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
const relations = config.relations ?? {};
|
|
26
|
-
return new __sqlite_core_db_ts.BaseSQLiteDatabase("sync", dialect, new require_sql_js_session.SQLJsSession(client, dialect, relations, schema, {
|
|
26
|
+
return new __sqlite_core_db_ts.BaseSQLiteDatabase("sync", dialect, new require_sql_js_session.SQLJsSession(client, dialect, relations, schema, {
|
|
27
|
+
logger,
|
|
28
|
+
useJitMapper: config.useJitMappers
|
|
29
|
+
}), relations, schema);
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
//#endregion
|
package/sql-js/driver.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.cjs","names":["SQLiteSyncDialect","DefaultLogger","V1","BaseSQLiteDatabase","SQLJsSession"],"sources":["../../src/sql-js/driver.ts"],"sourcesContent":["import type { Database } from 'sql.js';\nimport * as V1 from '~/_relations.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { SQLJsSession } from './session.ts';\n\nexport type SQLJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> = BaseSQLiteDatabase<'sync', void, TSchema, TRelations>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SQLJsDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteSyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLJsSession(client, dialect, relations, schema, { logger });\n\treturn new BaseSQLiteDatabase('sync', dialect, session, relations, schema) as SQLJsDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,QAIf,QACA,SAA6C,EAAE,EACV;CACrC,MAAM,UAAU,IAAIA,2CAAkB,EAAE,QAAQ,OAAO,QAAQ,CAAC;CAChE,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;AAExC,QAAO,IAAIC,uCAAmB,QAAQ,SADtB,IAAIC,oCAAa,QAAQ,SAAS,WAAW,QAAQ
|
|
1
|
+
{"version":3,"file":"driver.cjs","names":["SQLiteSyncDialect","DefaultLogger","V1","BaseSQLiteDatabase","SQLJsSession"],"sources":["../../src/sql-js/driver.ts"],"sourcesContent":["import type { Database } from 'sql.js';\nimport * as V1 from '~/_relations.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { SQLJsSession } from './session.ts';\n\nexport type SQLJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> = BaseSQLiteDatabase<'sync', void, TSchema, TRelations>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SQLJsDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteSyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLJsSession(client, dialect, relations, schema, { logger, useJitMapper: config.useJitMappers });\n\treturn new BaseSQLiteDatabase('sync', dialect, session, relations, schema) as SQLJsDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,QAIf,QACA,SAA6C,EAAE,EACV;CACrC,MAAM,UAAU,IAAIA,2CAAkB,EAAE,QAAQ,OAAO,QAAQ,CAAC;CAChE,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;AAExC,QAAO,IAAIC,uCAAmB,QAAQ,SADtB,IAAIC,oCAAa,QAAQ,SAAS,WAAW,QAAQ;EAAE;EAAQ,cAAc,OAAO;EAAe,CAAC,EAC5D,WAAW,OAAO"}
|