drizzle-orm 1.0.0-beta.20-afec359 → 1.0.0-beta.21
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 +13 -2
- package/_relations.d.ts +13 -2
- package/_relations.js.map +1 -1
- package/alias.cjs +1 -1
- package/alias.js +1 -1
- package/aws-data-api/common/index.cjs +0 -2
- package/aws-data-api/common/index.cjs.map +1 -1
- package/aws-data-api/common/index.js +0 -2
- package/aws-data-api/common/index.js.map +1 -1
- package/aws-data-api/pg/driver.cjs +20 -93
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +13 -17
- package/aws-data-api/pg/driver.d.ts +13 -17
- package/aws-data-api/pg/driver.js +20 -93
- 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 +113 -44
- package/aws-data-api/pg/session.cjs.map +1 -1
- package/aws-data-api/pg/session.d.cts +42 -12
- package/aws-data-api/pg/session.d.ts +43 -13
- package/aws-data-api/pg/session.js +114 -46
- package/aws-data-api/pg/session.js.map +1 -1
- package/better-sqlite3/driver.cjs +2 -5
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.d.ts +1 -1
- package/better-sqlite3/driver.js +2 -5
- package/better-sqlite3/driver.js.map +1 -1
- package/better-sqlite3/session.cjs +15 -16
- package/better-sqlite3/session.cjs.map +1 -1
- package/better-sqlite3/session.d.cts +6 -10
- package/better-sqlite3/session.d.ts +7 -11
- package/better-sqlite3/session.js +16 -17
- package/better-sqlite3/session.js.map +1 -1
- package/bun-sql/driver.cjs.map +1 -1
- package/bun-sql/driver.d.cts +6 -7
- package/bun-sql/driver.d.ts +6 -7
- package/bun-sql/driver.js.map +1 -1
- package/bun-sql/index.cjs +1 -0
- 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 +3 -4
- package/bun-sql/mysql/driver.cjs.map +1 -1
- package/bun-sql/mysql/driver.js +2 -3
- package/bun-sql/mysql/driver.js.map +1 -1
- package/bun-sql/mysql/session.cjs +24 -37
- package/bun-sql/mysql/session.cjs.map +1 -1
- package/bun-sql/mysql/session.d.cts +4 -10
- package/bun-sql/mysql/session.d.ts +6 -12
- package/bun-sql/mysql/session.js +25 -38
- package/bun-sql/mysql/session.js.map +1 -1
- package/bun-sql/postgres/driver.cjs +20 -144
- package/bun-sql/postgres/driver.cjs.map +1 -1
- package/bun-sql/postgres/driver.d.cts +6 -10
- package/bun-sql/postgres/driver.d.ts +7 -11
- package/bun-sql/postgres/driver.js +20 -144
- 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 +112 -17
- package/bun-sql/postgres/session.cjs.map +1 -1
- package/bun-sql/postgres/session.d.cts +33 -11
- package/bun-sql/postgres/session.d.ts +34 -12
- package/bun-sql/postgres/session.js +112 -18
- package/bun-sql/postgres/session.js.map +1 -1
- package/bun-sql/session.cjs +1 -0
- 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 +3 -4
- package/bun-sql/sqlite/driver.cjs.map +1 -1
- package/bun-sql/sqlite/driver.d.ts +1 -1
- package/bun-sql/sqlite/driver.js +2 -3
- package/bun-sql/sqlite/driver.js.map +1 -1
- package/bun-sql/sqlite/session.cjs +17 -18
- package/bun-sql/sqlite/session.cjs.map +1 -1
- package/bun-sql/sqlite/session.d.cts +6 -9
- package/bun-sql/sqlite/session.d.ts +7 -10
- package/bun-sql/sqlite/session.js +18 -19
- package/bun-sql/sqlite/session.js.map +1 -1
- package/bun-sqlite/driver.cjs +2 -5
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.d.ts +1 -1
- package/bun-sqlite/driver.js +2 -5
- package/bun-sqlite/driver.js.map +1 -1
- package/bun-sqlite/session.cjs +14 -15
- package/bun-sqlite/session.cjs.map +1 -1
- package/bun-sqlite/session.d.cts +6 -10
- package/bun-sqlite/session.d.ts +6 -10
- package/bun-sqlite/session.js +15 -16
- package/bun-sqlite/session.js.map +1 -1
- package/cache/core/cache-effect.cjs +2 -2
- package/cache/core/cache-effect.d.ts +1 -1
- package/cache/core/cache-effect.js +1 -1
- package/cockroach/driver.cjs +4 -10
- package/cockroach/driver.cjs.map +1 -1
- package/cockroach/driver.d.cts +0 -1
- package/cockroach/driver.d.ts +2 -3
- package/cockroach/driver.js +4 -10
- package/cockroach/driver.js.map +1 -1
- package/cockroach/session.cjs +9 -7
- package/cockroach/session.cjs.map +1 -1
- package/cockroach/session.d.cts +3 -5
- package/cockroach/session.d.ts +5 -7
- package/cockroach/session.js +10 -8
- 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 +5 -5
- 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 +3 -3
- package/cockroach-core/columns/common.js +5 -5
- 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.d.ts +2 -2
- package/cockroach-core/db.js +1 -1
- package/cockroach-core/db.js.map +1 -1
- package/cockroach-core/dialect.cjs +2 -2
- package/cockroach-core/dialect.d.ts +2 -2
- package/cockroach-core/dialect.js +2 -2
- package/cockroach-core/index.cjs +14 -14
- package/cockroach-core/index.js +14 -14
- package/cockroach-core/query-builders/delete.cjs +1 -1
- 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 +2 -2
- package/cockroach-core/query-builders/delete.js +1 -1
- package/cockroach-core/query-builders/delete.js.map +1 -1
- package/cockroach-core/query-builders/index.cjs +2 -2
- package/cockroach-core/query-builders/index.js +2 -2
- package/cockroach-core/query-builders/insert.cjs +1 -1
- package/cockroach-core/query-builders/insert.cjs.map +1 -1
- package/cockroach-core/query-builders/insert.d.ts +1 -1
- package/cockroach-core/query-builders/insert.js +1 -1
- package/cockroach-core/query-builders/insert.js.map +1 -1
- package/cockroach-core/query-builders/query.cjs +1 -1
- package/cockroach-core/query-builders/query.cjs.map +1 -1
- package/cockroach-core/query-builders/query.js +1 -1
- package/cockroach-core/query-builders/query.js.map +1 -1
- package/cockroach-core/query-builders/raw.cjs +4 -0
- package/cockroach-core/query-builders/raw.cjs.map +1 -1
- package/cockroach-core/query-builders/raw.js +4 -0
- package/cockroach-core/query-builders/raw.js.map +1 -1
- package/cockroach-core/query-builders/refresh-materialized-view.cjs +1 -1
- package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +1 -1
- package/cockroach-core/query-builders/refresh-materialized-view.js +1 -1
- package/cockroach-core/query-builders/refresh-materialized-view.js.map +1 -1
- package/cockroach-core/query-builders/select.cjs +2 -2
- package/cockroach-core/query-builders/select.cjs.map +1 -1
- package/cockroach-core/query-builders/select.d.ts +3 -3
- package/cockroach-core/query-builders/select.js +2 -2
- package/cockroach-core/query-builders/select.js.map +1 -1
- package/cockroach-core/query-builders/select.types.d.ts +1 -1
- package/cockroach-core/query-builders/update.cjs +2 -2
- package/cockroach-core/query-builders/update.cjs.map +1 -1
- package/cockroach-core/query-builders/update.d.ts +1 -1
- package/cockroach-core/query-builders/update.js +2 -2
- package/cockroach-core/query-builders/update.js.map +1 -1
- package/cockroach-core/schema.cjs +1 -1
- package/cockroach-core/schema.js +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/cockroach-core/utils.cjs +3 -3
- package/cockroach-core/utils.js +3 -3
- package/cockroach-core/view.cjs +1 -1
- package/cockroach-core/view.js +1 -1
- package/column.cjs +5 -10
- package/column.cjs.map +1 -1
- package/column.d.cts +3 -3
- package/column.d.ts +3 -3
- package/column.js +5 -10
- package/column.js.map +1 -1
- package/d1/driver.cjs +2 -3
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.d.ts +1 -1
- package/d1/driver.js +2 -3
- package/d1/driver.js.map +1 -1
- package/d1/session.cjs +15 -17
- package/d1/session.cjs.map +1 -1
- package/d1/session.d.cts +6 -9
- package/d1/session.d.ts +7 -10
- package/d1/session.js +16 -18
- package/d1/session.js.map +1 -1
- package/durable-sqlite/driver.cjs +2 -5
- package/durable-sqlite/driver.cjs.map +1 -1
- package/durable-sqlite/driver.d.ts +1 -1
- package/durable-sqlite/driver.js +2 -5
- package/durable-sqlite/driver.js.map +1 -1
- package/durable-sqlite/migrator.cjs +1 -1
- package/durable-sqlite/migrator.js +1 -1
- package/durable-sqlite/session.cjs +14 -15
- package/durable-sqlite/session.cjs.map +1 -1
- package/durable-sqlite/session.d.cts +6 -10
- package/durable-sqlite/session.d.ts +6 -10
- package/durable-sqlite/session.js +15 -16
- package/durable-sqlite/session.js.map +1 -1
- package/effect-core/index.cjs +1 -1
- package/effect-core/index.js +1 -1
- package/effect-postgres/driver.cjs +14 -100
- package/effect-postgres/driver.cjs.map +1 -1
- package/effect-postgres/driver.d.cts +8 -12
- package/effect-postgres/driver.d.ts +10 -14
- package/effect-postgres/driver.js +14 -100
- 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 +2 -2
- package/effect-postgres/migrator.js.map +1 -1
- package/effect-postgres/session.cjs +71 -12
- package/effect-postgres/session.cjs.map +1 -1
- package/effect-postgres/session.d.cts +31 -14
- package/effect-postgres/session.d.ts +34 -17
- package/effect-postgres/session.js +71 -13
- package/effect-postgres/session.js.map +1 -1
- package/effect-schema/column.cjs +1 -1
- package/effect-schema/column.d.ts +8 -8
- package/effect-schema/column.js +1 -1
- package/effect-schema/column.types.d.ts +14 -14
- package/effect-schema/schema.types.internal.d.ts +7 -7
- package/expo-sqlite/driver.cjs +2 -5
- package/expo-sqlite/driver.cjs.map +1 -1
- package/expo-sqlite/driver.d.ts +1 -1
- package/expo-sqlite/driver.js +2 -5
- package/expo-sqlite/driver.js.map +1 -1
- package/expo-sqlite/session.cjs +14 -15
- package/expo-sqlite/session.cjs.map +1 -1
- package/expo-sqlite/session.d.cts +6 -10
- package/expo-sqlite/session.d.ts +6 -10
- package/expo-sqlite/session.js +15 -16
- package/expo-sqlite/session.js.map +1 -1
- package/gel/driver.cjs +3 -5
- package/gel/driver.cjs.map +1 -1
- package/gel/driver.d.cts +0 -1
- package/gel/driver.d.ts +4 -5
- package/gel/driver.js +3 -5
- package/gel/driver.js.map +1 -1
- package/gel/session.cjs +13 -13
- package/gel/session.cjs.map +1 -1
- package/gel/session.d.cts +5 -8
- package/gel/session.d.ts +9 -12
- package/gel/session.js +14 -14
- 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 +3 -3
- 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 +3 -3
- 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/timestamp.d.ts +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 +3 -3
- package/gel-core/db.js +1 -1
- package/gel-core/db.js.map +1 -1
- package/gel-core/index.cjs +13 -13
- package/gel-core/index.js +13 -13
- package/gel-core/query-builders/_query.cjs +1 -1
- package/gel-core/query-builders/_query.cjs.map +1 -1
- package/gel-core/query-builders/_query.js +1 -1
- package/gel-core/query-builders/_query.js.map +1 -1
- package/gel-core/query-builders/delete.cjs +1 -1
- package/gel-core/query-builders/delete.cjs.map +1 -1
- package/gel-core/query-builders/delete.d.ts +2 -2
- package/gel-core/query-builders/delete.js +1 -1
- package/gel-core/query-builders/delete.js.map +1 -1
- package/gel-core/query-builders/index.cjs +1 -1
- package/gel-core/query-builders/index.js +1 -1
- package/gel-core/query-builders/insert.cjs +1 -1
- package/gel-core/query-builders/insert.cjs.map +1 -1
- package/gel-core/query-builders/insert.d.ts +2 -2
- package/gel-core/query-builders/insert.js +1 -1
- package/gel-core/query-builders/insert.js.map +1 -1
- package/gel-core/query-builders/query.cjs +5 -13
- 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 +5 -13
- package/gel-core/query-builders/query.js.map +1 -1
- package/gel-core/query-builders/raw.cjs +4 -0
- package/gel-core/query-builders/raw.cjs.map +1 -1
- package/gel-core/query-builders/raw.js +4 -0
- package/gel-core/query-builders/raw.js.map +1 -1
- package/gel-core/query-builders/refresh-materialized-view.cjs +1 -1
- package/gel-core/query-builders/refresh-materialized-view.cjs.map +1 -1
- package/gel-core/query-builders/refresh-materialized-view.d.ts +1 -1
- package/gel-core/query-builders/refresh-materialized-view.js +1 -1
- package/gel-core/query-builders/refresh-materialized-view.js.map +1 -1
- package/gel-core/query-builders/select.cjs +1 -1
- package/gel-core/query-builders/select.cjs.map +1 -1
- package/gel-core/query-builders/select.d.ts +3 -3
- package/gel-core/query-builders/select.js +1 -1
- package/gel-core/query-builders/select.js.map +1 -1
- package/gel-core/query-builders/select.types.d.ts +1 -1
- package/gel-core/query-builders/update.cjs +1 -1
- package/gel-core/query-builders/update.cjs.map +1 -1
- package/gel-core/query-builders/update.d.ts +2 -2
- package/gel-core/query-builders/update.js +1 -1
- 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/gel-core/utils.cjs +4 -4
- package/gel-core/utils.js +4 -4
- package/gel-core/view.cjs +1 -1
- package/gel-core/view.js +1 -1
- package/index.cjs +6 -12
- package/index.d.cts +6 -6
- package/index.d.ts +6 -6
- package/index.js +9 -9
- package/libsql/driver-core.cjs +2 -3
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.d.ts +1 -1
- package/libsql/driver-core.js +2 -3
- package/libsql/driver-core.js.map +1 -1
- package/libsql/session.cjs +15 -14
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +6 -9
- package/libsql/session.d.ts +7 -10
- package/libsql/session.js +16 -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 +2 -2
- package/mssql-core/dialect.d.ts +1 -1
- package/mssql-core/dialect.js +2 -2
- package/mssql-core/index.cjs +13 -13
- package/mssql-core/index.js +13 -13
- package/mssql-core/query-builders/delete.d.ts +1 -1
- package/mssql-core/query-builders/insert.d.ts +1 -1
- package/mssql-core/query-builders/select.d.ts +1 -1
- package/mssql-core/query-builders/update.d.ts +2 -2
- 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/mssql-core/utils.cjs +3 -3
- package/mssql-core/utils.js +3 -3
- package/mssql-core/view.cjs +2 -2
- package/mssql-core/view.js +2 -2
- 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 +2 -2
- package/mysql-core/dialect.cjs +2 -2
- package/mysql-core/dialect.d.ts +1 -1
- package/mysql-core/dialect.js +2 -2
- package/mysql-core/index.cjs +1 -1
- package/mysql-core/index.js +1 -1
- package/mysql-core/query-builders/query.cjs +5 -13
- 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 +5 -13
- package/mysql-core/query-builders/query.js.map +1 -1
- package/mysql-core/session.cjs +2 -1
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +4 -3
- package/mysql-core/session.d.ts +4 -3
- package/mysql-core/session.js +2 -1
- 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 +2 -5
- package/mysql-proxy/driver.cjs.map +1 -1
- package/mysql-proxy/driver.js +2 -5
- package/mysql-proxy/driver.js.map +1 -1
- package/mysql-proxy/session.cjs +19 -26
- package/mysql-proxy/session.cjs.map +1 -1
- package/mysql-proxy/session.d.cts +4 -11
- package/mysql-proxy/session.d.ts +6 -13
- package/mysql-proxy/session.js +20 -27
- package/mysql-proxy/session.js.map +1 -1
- package/mysql2/driver.cjs +2 -3
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +0 -1
- package/mysql2/driver.d.ts +3 -4
- package/mysql2/driver.js +2 -3
- package/mysql2/driver.js.map +1 -1
- package/mysql2/session.cjs +39 -49
- package/mysql2/session.cjs.map +1 -1
- package/mysql2/session.d.cts +4 -11
- package/mysql2/session.d.ts +6 -13
- package/mysql2/session.js +40 -50
- package/mysql2/session.js.map +1 -1
- package/neon-http/driver.cjs +65 -34
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +19 -15
- package/neon-http/driver.d.ts +20 -16
- package/neon-http/driver.js +64 -34
- package/neon-http/driver.js.map +1 -1
- package/neon-http/index.cjs +4 -2
- 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 +117 -28
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +38 -10
- package/neon-http/session.d.ts +40 -12
- package/neon-http/session.js +117 -30
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +32 -14
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +17 -12
- package/neon-serverless/driver.d.ts +18 -13
- package/neon-serverless/driver.js +31 -14
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/index.cjs +3 -2
- 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 +108 -32
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.d.cts +32 -9
- package/neon-serverless/session.d.ts +33 -10
- package/neon-serverless/session.js +109 -34
- package/neon-serverless/session.js.map +1 -1
- package/netlify-db/driver.cjs +123 -0
- package/netlify-db/driver.cjs.map +1 -0
- package/netlify-db/driver.d.cts +90 -0
- package/netlify-db/driver.d.ts +90 -0
- package/netlify-db/driver.js +113 -0
- package/netlify-db/driver.js.map +1 -0
- package/netlify-db/index.cjs +15 -0
- package/netlify-db/index.d.cts +3 -0
- package/netlify-db/index.d.ts +3 -0
- package/netlify-db/index.js +4 -0
- package/netlify-db/migrator.cjs +17 -0
- package/netlify-db/migrator.cjs.map +1 -0
- package/netlify-db/migrator.d.cts +11 -0
- package/netlify-db/migrator.d.ts +11 -0
- package/netlify-db/migrator.js +15 -0
- package/netlify-db/migrator.js.map +1 -0
- package/netlify-db/session.cjs +153 -0
- package/netlify-db/session.cjs.map +1 -0
- package/netlify-db/session.d.cts +68 -0
- package/netlify-db/session.d.ts +68 -0
- package/netlify-db/session.js +149 -0
- package/netlify-db/session.js.map +1 -0
- package/node-mssql/driver.cjs +3 -9
- package/node-mssql/driver.cjs.map +1 -1
- package/node-mssql/driver.d.cts +0 -1
- package/node-mssql/driver.d.ts +2 -3
- package/node-mssql/driver.js +3 -9
- package/node-mssql/driver.js.map +1 -1
- package/node-mssql/session.cjs +4 -6
- package/node-mssql/session.cjs.map +1 -1
- package/node-mssql/session.d.cts +1 -4
- package/node-mssql/session.d.ts +3 -6
- package/node-mssql/session.js +5 -7
- package/node-mssql/session.js.map +1 -1
- package/node-postgres/driver.cjs +18 -15
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +6 -11
- package/node-postgres/driver.d.ts +7 -12
- package/node-postgres/driver.js +18 -15
- 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 +126 -33
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +30 -10
- package/node-postgres/session.d.ts +31 -11
- package/node-postgres/session.js +127 -35
- 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 +9 -4
- package/node-sqlite/session.cjs.map +1 -1
- package/node-sqlite/session.d.cts +4 -3
- package/node-sqlite/session.d.ts +5 -4
- package/node-sqlite/session.js +9 -4
- package/node-sqlite/session.js.map +1 -1
- package/op-sqlite/driver.cjs +2 -3
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.d.ts +1 -1
- package/op-sqlite/driver.js +2 -3
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/session.cjs +16 -18
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +6 -10
- package/op-sqlite/session.d.ts +7 -11
- package/op-sqlite/session.js +17 -19
- package/op-sqlite/session.js.map +1 -1
- package/operations.d.cts +0 -3
- package/operations.d.ts +0 -3
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +4736 -4700
- package/pg-core/async/count.cjs +9 -2
- package/pg-core/async/count.cjs.map +1 -1
- package/pg-core/async/count.js +9 -2
- package/pg-core/async/count.js.map +1 -1
- package/pg-core/async/db.cjs +27 -10
- package/pg-core/async/db.cjs.map +1 -1
- package/pg-core/async/db.d.cts +13 -5
- package/pg-core/async/db.d.ts +16 -8
- package/pg-core/async/db.js +27 -10
- package/pg-core/async/db.js.map +1 -1
- package/pg-core/async/delete.cjs +13 -8
- package/pg-core/async/delete.cjs.map +1 -1
- package/pg-core/async/delete.js +13 -8
- package/pg-core/async/delete.js.map +1 -1
- package/pg-core/async/insert.cjs +12 -7
- package/pg-core/async/insert.cjs.map +1 -1
- package/pg-core/async/insert.js +12 -7
- package/pg-core/async/insert.js.map +1 -1
- package/pg-core/async/query.cjs +14 -8
- package/pg-core/async/query.cjs.map +1 -1
- package/pg-core/async/query.js +14 -8
- package/pg-core/async/query.js.map +1 -1
- package/pg-core/async/refresh-materialized-view.cjs +9 -1
- package/pg-core/async/refresh-materialized-view.cjs.map +1 -1
- package/pg-core/async/refresh-materialized-view.js +9 -1
- package/pg-core/async/refresh-materialized-view.js.map +1 -1
- package/pg-core/async/select.cjs +13 -4
- package/pg-core/async/select.cjs.map +1 -1
- package/pg-core/async/select.js +13 -4
- package/pg-core/async/select.js.map +1 -1
- package/pg-core/async/session.cjs +22 -46
- package/pg-core/async/session.cjs.map +1 -1
- package/pg-core/async/session.d.cts +31 -25
- package/pg-core/async/session.d.ts +32 -26
- package/pg-core/async/session.js +23 -47
- package/pg-core/async/session.js.map +1 -1
- package/pg-core/async/update.cjs +15 -11
- package/pg-core/async/update.cjs.map +1 -1
- package/pg-core/async/update.js +15 -11
- package/pg-core/async/update.js.map +1 -1
- package/pg-core/columns/bigint.cjs +9 -10
- package/pg-core/columns/bigint.cjs.map +1 -1
- package/pg-core/columns/bigint.d.cts +3 -2
- package/pg-core/columns/bigint.d.ts +3 -2
- package/pg-core/columns/bigint.js +9 -10
- 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 +2 -1
- package/pg-core/columns/bigserial.d.ts +2 -1
- package/pg-core/columns/bigserial.js +6 -6
- package/pg-core/columns/bigserial.js.map +1 -1
- package/pg-core/columns/boolean.cjs +0 -2
- package/pg-core/columns/boolean.cjs.map +1 -1
- package/pg-core/columns/boolean.js +0 -2
- package/pg-core/columns/boolean.js.map +1 -1
- package/pg-core/columns/bytea.cjs +8 -2
- package/pg-core/columns/bytea.cjs.map +1 -1
- package/pg-core/columns/bytea.d.cts +1 -0
- package/pg-core/columns/bytea.d.ts +1 -0
- package/pg-core/columns/bytea.js +8 -2
- package/pg-core/columns/bytea.js.map +1 -1
- package/pg-core/columns/char.cjs +0 -2
- package/pg-core/columns/char.cjs.map +1 -1
- package/pg-core/columns/char.js +0 -2
- package/pg-core/columns/char.js.map +1 -1
- package/pg-core/columns/cidr.cjs +0 -2
- package/pg-core/columns/cidr.cjs.map +1 -1
- package/pg-core/columns/cidr.js +0 -2
- package/pg-core/columns/cidr.js.map +1 -1
- package/pg-core/columns/common.cjs +9 -11
- package/pg-core/columns/common.cjs.map +1 -1
- package/pg-core/columns/common.d.cts +39 -34
- package/pg-core/columns/common.d.ts +39 -34
- package/pg-core/columns/common.js +9 -11
- package/pg-core/columns/common.js.map +1 -1
- package/pg-core/columns/custom.cjs +46 -16
- package/pg-core/columns/custom.cjs.map +1 -1
- package/pg-core/columns/custom.d.cts +8 -17
- package/pg-core/columns/custom.d.ts +8 -17
- package/pg-core/columns/custom.js +46 -16
- package/pg-core/columns/custom.js.map +1 -1
- package/pg-core/columns/date.cjs +12 -11
- package/pg-core/columns/date.cjs.map +1 -1
- package/pg-core/columns/date.d.cts +4 -3
- package/pg-core/columns/date.d.ts +4 -3
- package/pg-core/columns/date.js +12 -11
- package/pg-core/columns/date.js.map +1 -1
- package/pg-core/columns/double-precision.cjs +4 -2
- package/pg-core/columns/double-precision.cjs.map +1 -1
- package/pg-core/columns/double-precision.d.cts +1 -0
- package/pg-core/columns/double-precision.d.ts +1 -0
- package/pg-core/columns/double-precision.js +4 -2
- package/pg-core/columns/double-precision.js.map +1 -1
- package/pg-core/columns/enum.cjs +0 -4
- package/pg-core/columns/enum.cjs.map +1 -1
- package/pg-core/columns/enum.js +0 -4
- 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 +0 -2
- package/pg-core/columns/inet.cjs.map +1 -1
- package/pg-core/columns/inet.js +0 -2
- package/pg-core/columns/inet.js.map +1 -1
- package/pg-core/columns/integer.cjs +4 -2
- package/pg-core/columns/integer.cjs.map +1 -1
- package/pg-core/columns/integer.d.cts +1 -0
- package/pg-core/columns/integer.d.ts +1 -0
- package/pg-core/columns/integer.js +4 -2
- package/pg-core/columns/integer.js.map +1 -1
- package/pg-core/columns/interval.cjs +0 -2
- package/pg-core/columns/interval.cjs.map +1 -1
- package/pg-core/columns/interval.js +0 -2
- package/pg-core/columns/interval.js.map +1 -1
- package/pg-core/columns/json.cjs +11 -2
- package/pg-core/columns/json.cjs.map +1 -1
- package/pg-core/columns/json.d.cts +2 -0
- package/pg-core/columns/json.d.ts +2 -0
- package/pg-core/columns/json.js +11 -2
- package/pg-core/columns/json.js.map +1 -1
- package/pg-core/columns/jsonb.cjs +11 -2
- package/pg-core/columns/jsonb.cjs.map +1 -1
- package/pg-core/columns/jsonb.d.cts +2 -0
- package/pg-core/columns/jsonb.d.ts +2 -0
- package/pg-core/columns/jsonb.js +11 -2
- package/pg-core/columns/jsonb.js.map +1 -1
- package/pg-core/columns/line.cjs +8 -12
- 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 +8 -12
- package/pg-core/columns/line.js.map +1 -1
- package/pg-core/columns/macaddr.cjs +0 -2
- package/pg-core/columns/macaddr.cjs.map +1 -1
- package/pg-core/columns/macaddr.js +0 -2
- package/pg-core/columns/macaddr.js.map +1 -1
- package/pg-core/columns/macaddr8.cjs +0 -2
- package/pg-core/columns/macaddr8.cjs.map +1 -1
- package/pg-core/columns/macaddr8.js +0 -2
- package/pg-core/columns/macaddr8.js.map +1 -1
- package/pg-core/columns/numeric.cjs +15 -12
- package/pg-core/columns/numeric.cjs.map +1 -1
- package/pg-core/columns/numeric.d.cts +5 -4
- package/pg-core/columns/numeric.d.ts +5 -4
- package/pg-core/columns/numeric.js +15 -12
- package/pg-core/columns/numeric.js.map +1 -1
- package/pg-core/columns/point.cjs +21 -19
- package/pg-core/columns/point.cjs.map +1 -1
- package/pg-core/columns/point.d.cts +11 -5
- package/pg-core/columns/point.d.ts +11 -5
- package/pg-core/columns/point.js +21 -19
- package/pg-core/columns/point.js.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.cjs +9 -12
- 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 +9 -12
- package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
- package/pg-core/columns/real.cjs +4 -2
- package/pg-core/columns/real.cjs.map +1 -1
- package/pg-core/columns/real.d.cts +1 -0
- package/pg-core/columns/real.d.ts +1 -0
- package/pg-core/columns/real.js +4 -2
- package/pg-core/columns/real.js.map +1 -1
- package/pg-core/columns/serial.cjs +0 -2
- package/pg-core/columns/serial.cjs.map +1 -1
- package/pg-core/columns/serial.js +0 -2
- package/pg-core/columns/serial.js.map +1 -1
- package/pg-core/columns/smallint.cjs +4 -2
- package/pg-core/columns/smallint.cjs.map +1 -1
- package/pg-core/columns/smallint.d.cts +1 -0
- package/pg-core/columns/smallint.d.ts +1 -0
- package/pg-core/columns/smallint.js +4 -2
- package/pg-core/columns/smallint.js.map +1 -1
- package/pg-core/columns/smallserial.cjs +0 -2
- package/pg-core/columns/smallserial.cjs.map +1 -1
- package/pg-core/columns/smallserial.js +0 -2
- package/pg-core/columns/smallserial.js.map +1 -1
- package/pg-core/columns/text.cjs +0 -2
- package/pg-core/columns/text.cjs.map +1 -1
- package/pg-core/columns/text.js +0 -2
- package/pg-core/columns/text.js.map +1 -1
- package/pg-core/columns/time.cjs +0 -2
- package/pg-core/columns/time.cjs.map +1 -1
- package/pg-core/columns/time.js +0 -2
- package/pg-core/columns/time.js.map +1 -1
- package/pg-core/columns/timestamp.cjs +14 -13
- package/pg-core/columns/timestamp.cjs.map +1 -1
- package/pg-core/columns/timestamp.d.cts +4 -3
- package/pg-core/columns/timestamp.d.ts +4 -3
- package/pg-core/columns/timestamp.js +14 -13
- package/pg-core/columns/timestamp.js.map +1 -1
- package/pg-core/columns/uuid.cjs +0 -2
- package/pg-core/columns/uuid.cjs.map +1 -1
- package/pg-core/columns/uuid.js +0 -2
- package/pg-core/columns/uuid.js.map +1 -1
- package/pg-core/columns/varchar.cjs +0 -2
- package/pg-core/columns/varchar.cjs.map +1 -1
- package/pg-core/columns/varchar.js +0 -2
- package/pg-core/columns/varchar.js.map +1 -1
- package/pg-core/columns/vector_extension/bit.cjs +0 -2
- package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
- package/pg-core/columns/vector_extension/bit.js +0 -2
- package/pg-core/columns/vector_extension/bit.js.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.cjs +4 -6
- 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 +4 -6
- package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
- package/pg-core/columns/vector_extension/sparsevec.cjs +0 -2
- package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
- package/pg-core/columns/vector_extension/sparsevec.js +0 -2
- package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
- package/pg-core/columns/vector_extension/vector.cjs +4 -6
- 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 +4 -6
- package/pg-core/columns/vector_extension/vector.js.map +1 -1
- package/pg-core/dialect.cjs +217 -52
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.d.cts +30 -19
- package/pg-core/dialect.d.ts +31 -20
- package/pg-core/dialect.js +221 -57
- 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 +20 -14
- package/pg-core/effect/db.cjs.map +1 -1
- package/pg-core/effect/db.d.cts +11 -7
- package/pg-core/effect/db.d.ts +13 -9
- package/pg-core/effect/db.js +20 -14
- package/pg-core/effect/db.js.map +1 -1
- package/pg-core/effect/delete.cjs +6 -8
- 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 +6 -8
- package/pg-core/effect/delete.js.map +1 -1
- package/pg-core/effect/index.cjs +3 -3
- package/pg-core/effect/index.js +3 -3
- package/pg-core/effect/insert.cjs +5 -7
- 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 +5 -7
- package/pg-core/effect/insert.js.map +1 -1
- package/pg-core/effect/query.cjs +6 -7
- 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 +6 -7
- package/pg-core/effect/query.js.map +1 -1
- package/pg-core/effect/refresh-materialized-view.cjs +2 -1
- 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 +2 -1
- package/pg-core/effect/refresh-materialized-view.js.map +1 -1
- package/pg-core/effect/select.cjs +5 -3
- 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 +5 -3
- package/pg-core/effect/select.js.map +1 -1
- package/pg-core/effect/session.cjs +19 -30
- package/pg-core/effect/session.cjs.map +1 -1
- package/pg-core/effect/session.d.cts +28 -24
- package/pg-core/effect/session.d.ts +29 -25
- package/pg-core/effect/session.js +20 -31
- 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 +16 -16
- package/pg-core/index.d.cts +4 -4
- package/pg-core/index.d.ts +4 -4
- package/pg-core/index.js +13 -13
- package/pg-core/query-builders/_query.cjs +101 -0
- package/pg-core/query-builders/_query.cjs.map +1 -0
- package/pg-core/query-builders/_query.d.cts +55 -0
- package/pg-core/query-builders/_query.d.ts +55 -0
- package/pg-core/query-builders/_query.js +97 -0
- package/pg-core/query-builders/_query.js.map +1 -0
- package/pg-core/query-builders/delete.cjs +1 -1
- package/pg-core/query-builders/delete.cjs.map +1 -1
- package/pg-core/query-builders/delete.js +1 -1
- package/pg-core/query-builders/delete.js.map +1 -1
- package/pg-core/query-builders/index.cjs +1 -1
- package/pg-core/query-builders/index.js +1 -1
- package/pg-core/query-builders/insert.cjs +1 -1
- package/pg-core/query-builders/insert.cjs.map +1 -1
- package/pg-core/query-builders/insert.js +1 -1
- package/pg-core/query-builders/insert.js.map +1 -1
- package/pg-core/query-builders/query.cjs +1 -0
- package/pg-core/query-builders/query.cjs.map +1 -1
- package/pg-core/query-builders/query.d.cts +1 -2
- package/pg-core/query-builders/query.d.ts +1 -2
- package/pg-core/query-builders/query.js +1 -0
- package/pg-core/query-builders/query.js.map +1 -1
- package/pg-core/query-builders/raw.cjs +4 -0
- package/pg-core/query-builders/raw.cjs.map +1 -1
- package/pg-core/query-builders/raw.js +4 -0
- package/pg-core/query-builders/raw.js.map +1 -1
- package/pg-core/query-builders/update.cjs +1 -1
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.js +1 -1
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/schema.cjs +1 -1
- package/pg-core/schema.js +1 -1
- package/pg-core/session.cjs +5 -3
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +7 -4
- package/pg-core/session.d.ts +7 -4
- package/pg-core/session.js +5 -3
- 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/{array.cjs → utils/array.cjs} +1 -1
- package/pg-core/utils/array.cjs.map +1 -0
- package/pg-core/{array.d.cts → utils/array.d.cts} +1 -1
- package/pg-core/{array.d.ts → utils/array.d.ts} +1 -1
- package/pg-core/{array.js → utils/array.js} +1 -1
- package/pg-core/utils/array.js.map +1 -0
- package/pg-core/utils/index.cjs +6 -0
- package/pg-core/utils/index.d.cts +2 -0
- package/pg-core/utils/index.d.ts +2 -0
- package/pg-core/utils/index.js +3 -0
- package/pg-core/utils.cjs +2 -2
- package/pg-core/utils.cjs.map +1 -1
- package/pg-core/utils.d.cts +1 -7
- package/pg-core/utils.d.ts +1 -7
- package/pg-core/utils.js +2 -2
- package/pg-core/utils.js.map +1 -1
- package/pg-core/view.cjs +1 -1
- package/pg-core/view.js +1 -1
- package/pg-proxy/driver.cjs +15 -10
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.d.cts +3 -6
- package/pg-proxy/driver.d.ts +4 -7
- package/pg-proxy/driver.js +14 -10
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/index.cjs +2 -0
- 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 +84 -8
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +32 -9
- package/pg-proxy/session.d.ts +33 -10
- package/pg-proxy/session.js +84 -10
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +33 -71
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +17 -12
- package/pglite/driver.d.ts +19 -14
- package/pglite/driver.js +32 -71
- package/pglite/driver.js.map +1 -1
- package/pglite/index.cjs +3 -2
- 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 +86 -25
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +30 -9
- package/pglite/session.d.ts +32 -11
- package/pglite/session.js +87 -27
- package/pglite/session.js.map +1 -1
- package/planetscale-serverless/driver.cjs +2 -3
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +0 -1
- package/planetscale-serverless/driver.d.ts +0 -1
- package/planetscale-serverless/driver.js +2 -3
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/session.cjs +20 -27
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +6 -12
- package/planetscale-serverless/session.d.ts +8 -14
- package/planetscale-serverless/session.js +21 -28
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +19 -124
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +6 -10
- package/postgres-js/driver.d.ts +7 -11
- package/postgres-js/driver.js +19 -124
- 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 +112 -17
- package/postgres-js/session.cjs.map +1 -1
- package/postgres-js/session.d.cts +31 -10
- package/postgres-js/session.d.ts +32 -11
- package/postgres-js/session.js +112 -18
- package/postgres-js/session.js.map +1 -1
- package/prisma/mysql/driver.cjs +1 -1
- package/prisma/mysql/driver.js +1 -1
- package/prisma/mysql/session.cjs +1 -2
- package/prisma/mysql/session.cjs.map +1 -1
- package/prisma/mysql/session.d.cts +0 -1
- package/prisma/mysql/session.d.ts +1 -2
- package/prisma/mysql/session.js +1 -2
- package/prisma/mysql/session.js.map +1 -1
- package/prisma/pg/driver.cjs +3 -9
- package/prisma/pg/driver.cjs.map +1 -1
- package/prisma/pg/driver.d.cts +3 -7
- package/prisma/pg/driver.d.ts +3 -7
- package/prisma/pg/driver.js +4 -9
- 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 +25 -1
- package/prisma/pg/session.cjs.map +1 -1
- package/prisma/pg/session.d.cts +15 -3
- package/prisma/pg/session.d.ts +15 -3
- package/prisma/pg/session.js +25 -2
- package/prisma/pg/session.js.map +1 -1
- package/prisma/sqlite/session.cjs +3 -0
- package/prisma/sqlite/session.cjs.map +1 -1
- package/prisma/sqlite/session.d.cts +1 -0
- package/prisma/sqlite/session.d.ts +2 -1
- package/prisma/sqlite/session.js +3 -0
- package/prisma/sqlite/session.js.map +1 -1
- package/relations.cjs +24 -85
- package/relations.cjs.map +1 -1
- package/relations.d.cts +16 -41
- package/relations.d.ts +16 -41
- package/relations.js +25 -84
- 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/selection-proxy.cjs +1 -1
- package/selection-proxy.js +1 -1
- package/singlestore/driver.cjs +2 -4
- package/singlestore/driver.cjs.map +1 -1
- package/singlestore/driver.d.cts +1 -2
- package/singlestore/driver.d.ts +3 -4
- package/singlestore/driver.js +2 -4
- package/singlestore/driver.js.map +1 -1
- package/singlestore/session.cjs +7 -17
- package/singlestore/session.cjs.map +1 -1
- package/singlestore/session.d.cts +4 -8
- package/singlestore/session.d.ts +6 -10
- package/singlestore/session.js +8 -18
- 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 +2 -2
- package/singlestore-core/dialect.cjs +2 -2
- package/singlestore-core/dialect.d.ts +1 -1
- package/singlestore-core/dialect.js +2 -2
- package/singlestore-core/query-builders/delete.d.ts +1 -1
- package/singlestore-core/query-builders/insert.d.ts +1 -1
- package/singlestore-core/query-builders/query.cjs +5 -13
- 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 +5 -13
- package/singlestore-core/query-builders/query.js.map +1 -1
- package/singlestore-core/query-builders/select.d.ts +1 -1
- package/singlestore-core/query-builders/update.d.ts +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 +2 -5
- package/singlestore-proxy/driver.cjs.map +1 -1
- package/singlestore-proxy/driver.js +2 -5
- package/singlestore-proxy/driver.js.map +1 -1
- package/singlestore-proxy/session.cjs +6 -11
- package/singlestore-proxy/session.cjs.map +1 -1
- package/singlestore-proxy/session.d.cts +4 -9
- package/singlestore-proxy/session.d.ts +5 -10
- package/singlestore-proxy/session.js +7 -12
- package/singlestore-proxy/session.js.map +1 -1
- package/sql/index.cjs +0 -1
- package/sql/index.d.cts +2 -2
- package/sql/index.d.ts +2 -2
- package/sql/index.js +2 -2
- package/sql/sql.cjs +11 -32
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.d.cts +5 -15
- package/sql/sql.d.ts +5 -15
- package/sql/sql.js +12 -32
- package/sql/sql.js.map +1 -1
- package/sql-js/driver.cjs +2 -5
- package/sql-js/driver.cjs.map +1 -1
- package/sql-js/driver.d.ts +1 -1
- package/sql-js/driver.js +2 -5
- 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 +6 -10
- package/sql-js/session.d.ts +6 -10
- package/sql-js/session.js +15 -15
- package/sql-js/session.js.map +1 -1
- package/sqlite-cloud/driver.cjs +2 -3
- package/sqlite-cloud/driver.cjs.map +1 -1
- package/sqlite-cloud/driver.d.ts +1 -1
- package/sqlite-cloud/driver.js +2 -3
- package/sqlite-cloud/driver.js.map +1 -1
- package/sqlite-cloud/session.cjs +20 -21
- package/sqlite-cloud/session.cjs.map +1 -1
- package/sqlite-cloud/session.d.cts +6 -9
- package/sqlite-cloud/session.d.ts +7 -10
- package/sqlite-cloud/session.js +21 -22
- 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/index.cjs +9 -9
- package/sqlite-core/index.js +9 -9
- 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/index.cjs +1 -1
- package/sqlite-core/query-builders/index.js +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 +5 -13
- 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 +5 -13
- package/sqlite-core/query-builders/query.js.map +1 -1
- package/sqlite-core/query-builders/raw.cjs +4 -0
- package/sqlite-core/query-builders/raw.cjs.map +1 -1
- package/sqlite-core/query-builders/raw.js +4 -0
- package/sqlite-core/query-builders/raw.js.map +1 -1
- package/sqlite-core/query-builders/select.cjs +2 -2
- package/sqlite-core/query-builders/select.cjs.map +1 -1
- package/sqlite-core/query-builders/select.js +2 -2
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs +2 -2
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.js +2 -2
- 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-core/utils.cjs +3 -3
- package/sqlite-core/utils.js +3 -3
- package/sqlite-proxy/driver.cjs +2 -3
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.d.ts +1 -1
- package/sqlite-proxy/driver.js +2 -3
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/session.cjs +17 -20
- package/sqlite-proxy/session.cjs.map +1 -1
- package/sqlite-proxy/session.d.cts +7 -11
- package/sqlite-proxy/session.d.ts +8 -12
- package/sqlite-proxy/session.js +18 -21
- 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 +2 -3
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +0 -1
- package/tidb-serverless/driver.d.ts +0 -1
- package/tidb-serverless/driver.js +2 -3
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/session.cjs +37 -25
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +4 -10
- package/tidb-serverless/session.d.ts +6 -12
- package/tidb-serverless/session.js +38 -26
- package/tidb-serverless/session.js.map +1 -1
- package/tursodatabase/driver-core.cjs +2 -3
- package/tursodatabase/driver-core.cjs.map +1 -1
- package/tursodatabase/driver-core.d.ts +1 -1
- package/tursodatabase/driver-core.js +2 -3
- package/tursodatabase/driver-core.js.map +1 -1
- package/tursodatabase/session.cjs +19 -20
- package/tursodatabase/session.cjs.map +1 -1
- package/tursodatabase/session.d.cts +6 -9
- package/tursodatabase/session.d.ts +7 -10
- package/tursodatabase/session.js +20 -21
- 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.d.ts +1 -1
- package/up-migrations/effect-pg.js +3 -3
- package/up-migrations/effect-pg.js.map +1 -1
- package/up-migrations/pg.cjs +8 -3
- package/up-migrations/pg.cjs.map +1 -1
- package/up-migrations/pg.d.cts +1 -1
- package/up-migrations/pg.d.ts +2 -2
- package/up-migrations/pg.js +8 -3
- package/up-migrations/pg.js.map +1 -1
- package/up-migrations/sqlite.d.ts +2 -2
- package/utils.cjs +7 -129
- package/utils.cjs.map +1 -1
- package/utils.d.cts +3 -10
- package/utils.d.ts +3 -10
- package/utils.js +8 -127
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +32 -14
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +17 -12
- package/vercel-postgres/driver.d.ts +18 -13
- package/vercel-postgres/driver.js +31 -14
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/index.cjs +3 -2
- 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 +110 -32
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.d.cts +32 -9
- package/vercel-postgres/session.d.ts +33 -10
- package/vercel-postgres/session.js +111 -34
- package/vercel-postgres/session.js.map +1 -1
- package/xata-http/driver.cjs +31 -91
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +16 -10
- package/xata-http/driver.d.ts +17 -11
- package/xata-http/driver.js +30 -91
- package/xata-http/driver.js.map +1 -1
- package/xata-http/index.cjs +4 -2
- 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 +110 -24
- package/xata-http/session.cjs.map +1 -1
- package/xata-http/session.d.cts +33 -7
- package/xata-http/session.d.ts +34 -8
- package/xata-http/session.js +110 -26
- package/xata-http/session.js.map +1 -1
- package/codecs.cjs +0 -77
- package/codecs.cjs.map +0 -1
- package/codecs.d.cts +0 -68
- package/codecs.d.ts +0 -68
- package/codecs.js +0 -74
- package/codecs.js.map +0 -1
- package/pg-core/array.cjs.map +0 -1
- package/pg-core/array.js.map +0 -1
- package/pg-core/codecs.cjs +0 -156
- package/pg-core/codecs.cjs.map +0 -1
- package/pg-core/codecs.d.cts +0 -27
- package/pg-core/codecs.d.ts +0 -27
- package/pg-core/codecs.js +0 -148
- package/pg-core/codecs.js.map +0 -1
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 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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"}
|
|
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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"}
|
package/sql/sql.d.cts
CHANGED
|
@@ -4,7 +4,6 @@ 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";
|
|
8
7
|
import { CasingCache } from "../casing.cjs";
|
|
9
8
|
|
|
10
9
|
//#region src/sql/sql.d.ts
|
|
@@ -23,7 +22,6 @@ interface BuildQueryConfig {
|
|
|
23
22
|
escapeParam(num: number, value: unknown): string;
|
|
24
23
|
escapeString(str: string): string;
|
|
25
24
|
prepareTyping?: (encoder: DriverValueEncoder<unknown, unknown>) => QueryTypingsValue;
|
|
26
|
-
codecs?: CodecsCollection;
|
|
27
25
|
paramStartIndex?: {
|
|
28
26
|
value: number;
|
|
29
27
|
};
|
|
@@ -110,36 +108,28 @@ declare class Name implements SQLWrapper {
|
|
|
110
108
|
* @deprecated Use `sql.identifier` instead.
|
|
111
109
|
*/
|
|
112
110
|
declare function name(value: string): Name;
|
|
113
|
-
interface DriverValueDecoderFn<TData, TDriverParam> {
|
|
114
|
-
(value: TDriverParam): TData;
|
|
115
|
-
}
|
|
116
111
|
interface DriverValueDecoder<TData, TDriverParam> {
|
|
117
|
-
mapFromDriverValue:
|
|
118
|
-
}
|
|
119
|
-
interface DriverValueEncoderFn<TData, TDriverParam> {
|
|
120
|
-
(value: TData): TDriverParam;
|
|
112
|
+
mapFromDriverValue(value: TDriverParam): TData;
|
|
121
113
|
}
|
|
122
114
|
interface DriverValueEncoder<TData, TDriverParam> {
|
|
123
|
-
mapToDriverValue:
|
|
115
|
+
mapToDriverValue(value: TData): TDriverParam | SQL;
|
|
124
116
|
}
|
|
125
117
|
declare function isDriverValueEncoder(value: unknown): value is DriverValueEncoder<any, any>;
|
|
126
118
|
declare const noopDecoder: DriverValueDecoder<any, any>;
|
|
127
119
|
declare const noopEncoder: DriverValueEncoder<any, any>;
|
|
128
120
|
interface DriverValueMapper<TData, TDriverParam> extends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam> {}
|
|
129
|
-
declare function isNoop(mapper: DriverValueEncoderFn<any, any> | DriverValueDecoderFn<any, any>): true | undefined;
|
|
130
121
|
declare const noopMapper: DriverValueMapper<any, any>;
|
|
131
122
|
/** Parameter value that is optionally bound to an encoder (for example, a column). */
|
|
132
|
-
declare class Param<TDataType =
|
|
123
|
+
declare class Param<TDataType = unknown, TDriverParamType = TDataType> implements SQLWrapper {
|
|
133
124
|
readonly value: TDataType;
|
|
134
125
|
readonly encoder: DriverValueEncoder<TDataType, TDriverParamType>;
|
|
135
|
-
codec?: ((value: any) => any) | undefined;
|
|
136
126
|
static readonly [entityKind]: string;
|
|
137
127
|
protected brand: 'BoundParamValue';
|
|
138
128
|
/**
|
|
139
129
|
* @param value - Parameter value
|
|
140
130
|
* @param encoder - Encoder to convert the value to a driver parameter
|
|
141
131
|
*/
|
|
142
|
-
constructor(value: TDataType, encoder?: DriverValueEncoder<TDataType, TDriverParamType
|
|
132
|
+
constructor(value: TDataType, encoder?: DriverValueEncoder<TDataType, TDriverParamType>);
|
|
143
133
|
getSQL(): SQL<unknown>;
|
|
144
134
|
}
|
|
145
135
|
/** @deprecated Use `sql.param` instead. */
|
|
@@ -257,5 +247,5 @@ type InferSelectViewModel<TView extends View> = Equal<TView['_']['selectedFields
|
|
|
257
247
|
} : SelectResult<TView['_']['selectedFields'], 'single', Record<TView['_']['name'], 'not-null'>>;
|
|
258
248
|
type SQLEntity = SQL | SQLWrapper | SQL.Aliased | Table | View;
|
|
259
249
|
//#endregion
|
|
260
|
-
export { BuildQueryConfig, Chunk, ColumnsSelection, CommentInput, DriverValueDecoder,
|
|
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 };
|
|
261
251
|
//# sourceMappingURL=sql.d.cts.map
|
package/sql/sql.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ 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";
|
|
7
6
|
import { CasingCache } from "../casing.js";
|
|
8
7
|
import { SelectResult } from "../query-builders/select.types.js";
|
|
9
8
|
|
|
@@ -23,7 +22,6 @@ interface BuildQueryConfig {
|
|
|
23
22
|
escapeParam(num: number, value: unknown): string;
|
|
24
23
|
escapeString(str: string): string;
|
|
25
24
|
prepareTyping?: (encoder: DriverValueEncoder<unknown, unknown>) => QueryTypingsValue;
|
|
26
|
-
codecs?: CodecsCollection;
|
|
27
25
|
paramStartIndex?: {
|
|
28
26
|
value: number;
|
|
29
27
|
};
|
|
@@ -110,36 +108,28 @@ declare class Name implements SQLWrapper {
|
|
|
110
108
|
* @deprecated Use `sql.identifier` instead.
|
|
111
109
|
*/
|
|
112
110
|
declare function name(value: string): Name;
|
|
113
|
-
interface DriverValueDecoderFn<TData, TDriverParam> {
|
|
114
|
-
(value: TDriverParam): TData;
|
|
115
|
-
}
|
|
116
111
|
interface DriverValueDecoder<TData, TDriverParam> {
|
|
117
|
-
mapFromDriverValue:
|
|
118
|
-
}
|
|
119
|
-
interface DriverValueEncoderFn<TData, TDriverParam> {
|
|
120
|
-
(value: TData): TDriverParam;
|
|
112
|
+
mapFromDriverValue(value: TDriverParam): TData;
|
|
121
113
|
}
|
|
122
114
|
interface DriverValueEncoder<TData, TDriverParam> {
|
|
123
|
-
mapToDriverValue:
|
|
115
|
+
mapToDriverValue(value: TData): TDriverParam | SQL;
|
|
124
116
|
}
|
|
125
117
|
declare function isDriverValueEncoder(value: unknown): value is DriverValueEncoder<any, any>;
|
|
126
118
|
declare const noopDecoder: DriverValueDecoder<any, any>;
|
|
127
119
|
declare const noopEncoder: DriverValueEncoder<any, any>;
|
|
128
120
|
interface DriverValueMapper<TData, TDriverParam> extends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam> {}
|
|
129
|
-
declare function isNoop(mapper: DriverValueEncoderFn<any, any> | DriverValueDecoderFn<any, any>): true | undefined;
|
|
130
121
|
declare const noopMapper: DriverValueMapper<any, any>;
|
|
131
122
|
/** Parameter value that is optionally bound to an encoder (for example, a column). */
|
|
132
|
-
declare class Param<TDataType =
|
|
123
|
+
declare class Param<TDataType = unknown, TDriverParamType = TDataType> implements SQLWrapper {
|
|
133
124
|
readonly value: TDataType;
|
|
134
125
|
readonly encoder: DriverValueEncoder<TDataType, TDriverParamType>;
|
|
135
|
-
codec?: ((value: any) => any) | undefined;
|
|
136
126
|
static readonly [entityKind]: string;
|
|
137
127
|
protected brand: 'BoundParamValue';
|
|
138
128
|
/**
|
|
139
129
|
* @param value - Parameter value
|
|
140
130
|
* @param encoder - Encoder to convert the value to a driver parameter
|
|
141
131
|
*/
|
|
142
|
-
constructor(value: TDataType, encoder?: DriverValueEncoder<TDataType, TDriverParamType
|
|
132
|
+
constructor(value: TDataType, encoder?: DriverValueEncoder<TDataType, TDriverParamType>);
|
|
143
133
|
getSQL(): SQL<unknown>;
|
|
144
134
|
}
|
|
145
135
|
/** @deprecated Use `sql.param` instead. */
|
|
@@ -257,5 +247,5 @@ type InferSelectViewModel<TView extends View> = Equal<TView['_']['selectedFields
|
|
|
257
247
|
} : SelectResult<TView['_']['selectedFields'], 'single', Record<TView['_']['name'], 'not-null'>>;
|
|
258
248
|
type SQLEntity = SQL | SQLWrapper | SQL.Aliased | Table | View;
|
|
259
249
|
//#endregion
|
|
260
|
-
export { BuildQueryConfig, Chunk, ColumnsSelection, CommentInput, DriverValueDecoder,
|
|
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 };
|
|
261
251
|
//# 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,
|
|
80
|
+
const { casing, escapeName, escapeParam, prepareTyping, 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,33 +137,21 @@ 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
|
-
|
|
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
|
-
}
|
|
140
|
+
if (is(chunk.value, Placeholder)) return {
|
|
141
|
+
sql: escapeParam(paramStartIndex.value++, chunk),
|
|
142
|
+
params: [chunk],
|
|
143
|
+
typings: ["none"]
|
|
144
|
+
};
|
|
145
|
+
const mappedValue = chunk.value === null ? null : chunk.encoder.mapToDriverValue(chunk.value);
|
|
146
|
+
if (is(mappedValue, SQL)) return this.buildQueryFromSourceParams([mappedValue], config);
|
|
158
147
|
if (inlineParams) return {
|
|
159
148
|
sql: this.mapInlineParam(mappedValue, config),
|
|
160
149
|
params: []
|
|
161
150
|
};
|
|
162
151
|
let typings = ["none"];
|
|
163
152
|
if (prepareTyping) typings = [prepareTyping(chunk.encoder)];
|
|
164
|
-
const escaped = escapeParam(paramStartIndex.value++, mappedValue);
|
|
165
153
|
return {
|
|
166
|
-
sql:
|
|
154
|
+
sql: escapeParam(paramStartIndex.value++, mappedValue),
|
|
167
155
|
params: [mappedValue],
|
|
168
156
|
typings
|
|
169
157
|
};
|
|
@@ -278,12 +266,7 @@ function isDriverValueEncoder(value) {
|
|
|
278
266
|
return typeof value === "object" && value !== null && "mapToDriverValue" in value && typeof value.mapToDriverValue === "function";
|
|
279
267
|
}
|
|
280
268
|
const noopDecoder = { mapFromDriverValue: (value) => value };
|
|
281
|
-
noopDecoder.mapFromDriverValue.isNoop = true;
|
|
282
269
|
const noopEncoder = { mapToDriverValue: (value) => value };
|
|
283
|
-
noopEncoder.mapToDriverValue.isNoop = true;
|
|
284
|
-
function isNoop(mapper) {
|
|
285
|
-
return mapper.isNoop;
|
|
286
|
-
}
|
|
287
270
|
const noopMapper = {
|
|
288
271
|
...noopDecoder,
|
|
289
272
|
...noopEncoder
|
|
@@ -296,10 +279,9 @@ var Param = class {
|
|
|
296
279
|
* @param value - Parameter value
|
|
297
280
|
* @param encoder - Encoder to convert the value to a driver parameter
|
|
298
281
|
*/
|
|
299
|
-
constructor(value, encoder = noopEncoder
|
|
282
|
+
constructor(value, encoder = noopEncoder) {
|
|
300
283
|
this.value = value;
|
|
301
284
|
this.encoder = encoder;
|
|
302
|
-
this.codec = codec;
|
|
303
285
|
}
|
|
304
286
|
getSQL() {
|
|
305
287
|
return new SQL([this]);
|
|
@@ -443,9 +425,7 @@ function fillPlaceholders(params, values) {
|
|
|
443
425
|
}
|
|
444
426
|
if (is(p, Param) && is(p.value, Placeholder)) {
|
|
445
427
|
if (!(p.value.name in values)) throw new Error(`No value for placeholder "${p.value.name}" was provided`);
|
|
446
|
-
|
|
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;
|
|
428
|
+
return p.encoder.mapToDriverValue(values[p.value.name]);
|
|
449
429
|
}
|
|
450
430
|
return p;
|
|
451
431
|
});
|
|
@@ -503,5 +483,5 @@ Subquery.prototype.getSQL = function() {
|
|
|
503
483
|
};
|
|
504
484
|
|
|
505
485
|
//#endregion
|
|
506
|
-
export { FakePrimitiveParam, Name, Param, Placeholder, SQL, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder,
|
|
486
|
+
export { FakePrimitiveParam, Name, Param, Placeholder, SQL, StringChunk, View, fillPlaceholders, getViewName, isDriverValueEncoder, isSQLWrapper, isView, name, noopDecoder, noopEncoder, noopMapper, param, placeholder, sql, sqlCommenter };
|
|
507
487
|
//# 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 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":";;;;;;;;;;;;;;AAkBA,IAAa,qBAAb,MAAgC;CAC/B,QAAiB,cAAsB;;AAoDxC,SAAgB,aAAa,OAAqC;AACjE,QAAO,UAAU,QAAQ,UAAU,UAAa,OAAQ,MAAc,WAAW;;AAGlF,SAAS,aAAa,SAA+C;CACpE,MAAM,SAA2B;EAAE,KAAK;EAAI,QAAQ,EAAE;EAAE;AACxD,MAAK,MAAM,SAAS,SAAS;AAC5B,SAAO,OAAO,MAAM;AACpB,SAAO,OAAO,KAAK,GAAG,MAAM,OAAO;AACnC,MAAI,MAAM,SAAS,QAAQ;AAC1B,OAAI,CAAC,OAAO,QACX,QAAO,UAAU,EAAE;AAEpB,UAAO,QAAQ,KAAK,GAAG,MAAM,QAAQ;;;AAGvC,QAAO;;AAGR,IAAa,cAAb,MAA+C;CAC9C,QAAiB,cAAsB;CAEvC,AAAS;CAET,YAAY,OAA0B;AACrC,OAAK,QAAQ,MAAM,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM;;CAGpD,SAAuB;AACtB,SAAO,IAAI,IAAI,CAAC,KAAK,CAAC;;;AAIxB,IAAa,MAAb,MAAa,IAA0C;CACtD,QAAiB,cAAsB;;CAQvC,UAAsC;;CAEtC,AAAO,qBAAqB;;CAG5B,aAAuB,EAAE;CAEzB,YAAY,AAAS,aAAyB;EAAzB;AACpB,OAAK,MAAM,SAAS,YACnB,KAAI,GAAG,OAAO,MAAM,EAAE;GACrB,MAAM,aAAa,MAAM,MAAM,OAAO;AAEtC,QAAK,WAAW,KACf,eAAe,SACZ,MAAM,MAAM,OAAO,QACnB,aAAa,MAAM,MAAM,MAAM,OAAO,MACzC;;;CAKJ,OAAO,OAAkB;AACxB,OAAK,YAAY,KAAK,GAAG,MAAM,YAAY;AAC3C,SAAO;;CAGR,QAAQ,QAA4C;AACnD,SAAO,OAAO,gBAAgB,qBAAqB,SAAS;GAC3D,MAAM,QAAQ,KAAK,2BAA2B,KAAK,aAAa,OAAO;AACvE,SAAM,cAAc;IACnB,sBAAsB,MAAM;IAC5B,wBAAwB,KAAK,UAAU,MAAM,OAAO;IACpD,CAAC;AACF,UAAO;IACN;;CAGH,2BAA2B,QAAoB,SAAkC;EAChF,MAAM,SAAS,OAAO,OAAO,EAAE,EAAE,SAAS;GACzC,cAAc,QAAQ,gBAAgB,KAAK;GAC3C,iBAAiB,QAAQ,mBAAmB,EAAE,OAAO,GAAG;GACxD,CAAC;EAEF,MAAM,EACL,QACA,YACA,aACA,eACA,QACA,cACA,iBACA,iBACG;AAEJ,SAAO,aAAa,OAAO,KAAK,UAA4B;AAC3D,OAAI,GAAG,OAAO,YAAY,CACzB,QAAO;IAAE,KAAK,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,EAAE;IAAE;AAGjD,OAAI,GAAG,OAAO,KAAK,CAClB,QAAO;IAAE,KAAK,WAAW,MAAM,MAAM;IAAE,QAAQ,EAAE;IAAE;AAGpD,OAAI,UAAU,OACb,QAAO;IAAE,KAAK;IAAI,QAAQ,EAAE;IAAE;AAG/B,OAAI,MAAM,QAAQ,MAAM,EAAE;IACzB,MAAM,SAAqB,CAAC,IAAI,YAAY,IAAI,CAAC;AACjD,SAAK,MAAM,CAAC,GAAG,MAAM,MAAM,SAAS,EAAE;AACrC,YAAO,KAAK,EAAE;AACd,SAAI,IAAI,MAAM,SAAS,EACtB,QAAO,KAAK,IAAI,YAAY,KAAK,CAAC;;AAGpC,WAAO,KAAK,IAAI,YAAY,IAAI,CAAC;AACjC,WAAO,KAAK,2BAA2B,QAAQ,OAAO;;AAGvD,OAAI,GAAG,OAAO,IAAI,CACjB,QAAO,KAAK,2BAA2B,MAAM,aAAa;IACzD,GAAG;IACH,cAAc,gBAAgB,MAAM;IACpC,CAAC;AAGH,OAAI,GAAG,OAAO,MAAM,EAAE;IACrB,MAAM,aAAa,MAAM,MAAM,OAAO;IACtC,MAAM,YAAY,MAAM,MAAM,OAAO;AAErC,QAAI,iBAAiB,gCACpB,QAAO;KACN,MAAM,eAAe,SAAY,WAAW,MAAM,GAAG,WAAW,WAAW,IAAI,MAC5E,WAAW,UAAU;KACxB,QAAQ,EAAE;KACV;AAGF,WAAO;KACN,KAAK,eAAe,UAAa,MAAM,WACpC,WAAW,UAAU,GACrB,WAAW,WAAW,GAAG,MAAM,WAAW,UAAU;KACvD,QAAQ,EAAE;KACV;;AAGF,OAAI,GAAG,OAAO,OAAO,EAAE;IACtB,MAAM,aAAa,OAAO,gBAAgB,MAAM;AAChD,QAAI,QAAQ,iBAAiB,UAC5B,QAAO;KAAE,KAAK,WAAW,WAAW;KAAE,QAAQ,EAAE;KAAE;IAGnD,MAAM,aAAa,iBAAiB,gBAAgB,SAAY,MAAM,MAAM,MAAM,OAAO;AACzF,WAAO;KACN,KAAK,MAAM,UAAU,WAAW,MAAM,KAAK,GAAG,MAAM,MAAM,YAAY,eAAe,SAClF,WAAW,MAAM,MAAM,MAAM,OAAO,MAAM,GAAG,MAAM,WAAW,WAAW,GACzE,WAAW,WAAW,GAAG,MAAM,WAAW,MAAM,MAAM,MAAM,OAAO,MAAM,GAAG,MAC3E,WAAW,WAAW;KAC1B,QAAQ,EAAE;KACV;;AAGF,OAAI,GAAG,OAAO,KAAK,EAAE;IACpB,MAAM,aAAa,MAAM,gBAAgB;IACzC,MAAM,WAAW,MAAM,gBAAgB;AACvC,WAAO;KACN,KAAK,eAAe,UAAa,MAAM,gBAAgB,UACpD,WAAW,SAAS,GACpB,WAAW,WAAW,GAAG,MAAM,WAAW,SAAS;KACtD,QAAQ,EAAE;KACV;;AAGF,OAAI,GAAG,OAAO,MAAM,EAAE;AACrB,QAAI,GAAG,MAAM,OAAO,IAAI,CACvB,QAAO,KAAK,2BAA2B,CAAC,MAAM,MAAM,EAAE,OAAO;IAG9D,MAAM,YAAY,UAAU,GAAG,MAAM,SAAS,OAAO;AAErD,QAAI,GAAG,MAAM,OAAO,YAAY,EAAE;KACjC,MAAM,UAAU,YAAY,gBAAgB,SAAS,MAAM;AAC3D,WAAM,QAAQ,aACV,UAAU,OAAO,MAAM,MAAM,SAAmB,kBAAkB,MAAM,GACzE;AACH,YAAO;MACN,KAAK,YACF,OAAO,MAAM,MAAM,SAAS,aAAa,QAAQ,GACjD;MACH,QAAQ,CAAC,MAAM;MACf,SAAS,CAAC,OAAO;MACjB;;IAGF,IAAI;AACJ,QAAI,MAAM,UAAU,KACnB,eAAc,MAAM;SACd;AACN,mBAAc,MAAM,QAAQ,iBAAiB,SAC1C,MAAM,QACN,MAAM,QAAQ,iBAAiB,MAAM,MAAM;AAE9C,SAAI,GAAG,aAAa,IAAI,CACvB,QAAO,KAAK,2BAA2B,CAAC,YAAY,EAAE,OAAO;AAG9D,SAAI,UACH,eAAc,OAAO,MACpB,MAAM,SACN,kBACA,YACA;;AAIH,QAAI,aACH,QAAO;KAAE,KAAK,KAAK,eAAe,aAAa,OAAO;KAAE,QAAQ,EAAE;KAAE;IAGrE,IAAI,UAA+B,CAAC,OAAO;AAC3C,QAAI,cACH,WAAU,CAAC,cAAc,MAAM,QAAQ,CAAC;IAGzC,MAAM,UAAU,YAAY,gBAAgB,SAAS,YAAY;AACjE,WAAO;KACN,KAAK,YACF,OAAO,MAAM,MAAM,SAAS,aAAa,QAAQ,GACjD;KACH,QAAQ,CAAC,YAAY;KACrB;KACA;;AAGF,OAAI,GAAG,OAAO,YAAY,CACzB,QAAO;IAAE,KAAK,YAAY,gBAAgB,SAAS,MAAM;IAAE,QAAQ,CAAC,MAAM;IAAE,SAAS,CAAC,OAAO;IAAE;AAGhG,OAAI,GAAG,OAAO,IAAI,QAAQ,IAAI,MAAM,eAAe,OAClD,QAAO;IACN,MAAM,MAAM,WAAW,SAAY,WAAW,MAAM,OAAO,GAAG,MAAM,MAAM,WAAW,MAAM,WAAW;IACtG,QAAQ,EAAE;IACV;AAGF,OAAI,GAAG,OAAO,SAAS,EAAE;AACxB,QAAI,MAAM,EAAE,OACX,QAAO;KAAE,KAAK,WAAW,MAAM,EAAE,MAAM;KAAE,QAAQ,EAAE;KAAE;AAEtD,WAAO,KAAK,2BAA2B;KACtC,IAAI,YAAY,IAAI;KACpB,MAAM,EAAE;KACR,IAAI,YAAY,KAAK;KACrB,IAAI,KAAK,MAAM,EAAE,MAAM;KACvB,EAAE,OAAO;;AAGX,OAAI,OAAO,UAAU,cAAc,cAAc,OAAO;AACvD,QAAI,YAAY,SAAS,MAAM,OAC9B,QAAO;KAAE,KAAK,WAAW,MAAM,OAAiB,GAAG,MAAM,WAAW,MAAM,SAAmB;KAAE,QAAQ,EAAE;KAAE;AAE5G,WAAO;KAAE,KAAK,WAAW,MAAM,SAAmB;KAAE,QAAQ,EAAE;KAAE;;AAGjE,OAAI,aAAa,MAAM,EAAE;AACxB,QAAI,MAAM,uBAAuB,CAChC,QAAO,KAAK,2BAA2B,CAAC,MAAM,QAAQ,CAAC,EAAE,OAAO;AAEjE,WAAO,KAAK,2BAA2B;KACtC,IAAI,YAAY,IAAI;KACpB,MAAM,QAAQ;KACd,IAAI,YAAY,IAAI;KACpB,EAAE,OAAO;;AAGX,OAAI,aACH,QAAO;IAAE,KAAK,KAAK,eAAe,OAAO,OAAO;IAAE,QAAQ,EAAE;IAAE;AAG/D,UAAO;IAAE,KAAK,YAAY,gBAAgB,SAAS,MAAM;IAAE,QAAQ,CAAC,MAAM;IAAE,SAAS,CAAC,OAAO;IAAE;IAC9F,CAAC;;CAGJ,AAAQ,eACP,OACA,EAAE,gBACO;AACT,MAAI,UAAU,KACb,QAAO;AAER,MAAI,OAAO,UAAU,YAAY,OAAO,UAAU,aAAa,OAAO,UAAU,SAC/E,QAAO,MAAM,UAAU;AAExB,MAAI,OAAO,UAAU,SACpB,QAAO,aAAa,MAAM;AAE3B,MAAI,OAAO,UAAU,UAAU;GAC9B,MAAM,sBAAsB,MAAM,UAAU;AAC5C,OAAI,wBAAwB,kBAC3B,QAAO,aAAa,KAAK,UAAU,MAAM,CAAC;AAE3C,UAAO,aAAa,oBAAoB;;AAEzC,QAAM,IAAI,MAAM,6BAA6B,MAAM;;CAGpD,SAAiB;AAChB,SAAO;;CAcR,GAAG,OAAyC;AAE3C,MAAI,UAAU,OACb,QAAO;AAGR,SAAO,IAAI,IAAI,QAAQ,MAAM,MAAM;;CAGpC,QAIE,SAAoD;AACrD,OAAK,UAAU,OAAO,YAAY,aAAa,EAAE,oBAAoB,SAAS,GAAG;AACjF,SAAO;;CAGR,eAAqB;AACpB,OAAK,qBAAqB;AAC1B,SAAO;;;;;;;;CASR,GAAG,WAA8C;AAChD,SAAO,YAAY,OAAO;;;;;;AAY5B,IAAa,OAAb,MAAwC;CACvC,QAAiB,cAAsB;CAEvC,AAAU;CAEV,YAAY,AAAS,OAAe;EAAf;;CAErB,SAAuB;AACtB,SAAO,IAAI,IAAI,CAAC,KAAK,CAAC;;;;;;;AAQxB,SAAgB,KAAK,OAAqB;AACzC,QAAO,IAAI,KAAK,MAAM;;AAuBvB,SAAgB,qBAAqB,OAAuD;AAC3F,QAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,sBAAsB,SACxE,OAAQ,MAAc,qBAAqB;;AAGhD,MAAa,cAA4C,EACxD,qBAAqB,UAAU,OAC/B;AAED,YAAY,mBAAmB,SAAS;AAExC,MAAa,cAA4C,EACxD,mBAAmB,UAAU,OAC7B;AAED,YAAY,iBAAiB,SAAS;AAMtC,SAAgB,OAAO,QAAyE;AAC/F,QAAO,OAAO;;AAGf,MAAa,aAA0C;CACtD,GAAG;CACH,GAAG;CACH;;AAGD,IAAa,QAAb,MAAwF;CACvF,QAAiB,cAAsB;CAEvC,AAAU;;;;;CAMV,YACC,AAAS,OACT,AAAS,UAA2D,aACpE,AAAO,OACN;EAHQ;EACA;EACF;;CAGR,SAAuB;AACtB,SAAO,IAAI,IAAI,CAAC,KAAK,CAAC;;;;AAKxB,SAAgB,MACf,OACA,SACwB;AACxB,QAAO,IAAI,MAAM,OAAO,QAAQ;;AA8BjC,SAAgB,IAAI,SAA+B,GAAG,QAAyB;CAC9E,MAAM,cAA0B,EAAE;AAClC,KAAI,OAAO,SAAS,KAAM,QAAQ,SAAS,KAAK,QAAQ,OAAO,GAC9D,aAAY,KAAK,IAAI,YAAY,QAAQ,GAAI,CAAC;AAE/C,MAAK,MAAM,CAAC,YAAY,UAAU,OAAO,SAAS,CACjD,aAAY,KAAK,OAAO,IAAI,YAAY,QAAQ,aAAa,GAAI,CAAC;AAGnE,QAAO,IAAI,IAAI,YAAY;;;CAIpB,SAAS,QAAa;AAC5B,SAAO,IAAI,IAAI,EAAE,CAAC;;;CAIZ,SAAS,SAAS,MAAuB;AAC/C,SAAO,IAAI,IAAI,KAAK;;;CAOd,SAAS,IAAI,KAAkB;AACrC,SAAO,IAAI,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC;;;CAgBhC,SAAS,KAAK,QAAoB,WAA2B;EACnE,MAAM,SAAqB,EAAE;AAC7B,OAAK,MAAM,CAAC,GAAG,UAAU,OAAO,SAAS,EAAE;AAC1C,OAAI,IAAI,KAAK,cAAc,OAC1B,QAAO,KAAK,UAAU;AAEvB,UAAO,KAAK,MAAM;;AAEnB,SAAO,IAAI,IAAI,OAAO;;;CAehB,SAAS,WAAW,OAAqB;AAC/C,SAAO,IAAI,KAAK,MAAM;;;CAGhB,SAAS,YAAkC,MAAiC;AAClF,SAAO,IAAI,YAAY,KAAK;;;CAGtB,SAAS,MACf,OACA,SACwB;AACxB,SAAO,IAAI,MAAM,OAAO,QAAQ;;;CAM1B,SAAS,QAAQ,OAAsC;EAC7D,MAAM,UAAU,aAAa,MAAM;AACnC,MAAI,CAAC,QAAQ,OAAQ,QAAO;AAE5B,SAAO,IAAI,IAAI,QAAQ;;;;AAIzB,SAAgB,aAAa,OAA6B;CACzD,MAAM,UAAU,aAAa,YAAY,MAAM;AAC/C,KAAI,CAAC,QAAQ,OAAQ,QAAO;AAE5B,QAAO,KAAK,QAAQ;;;CAIb,SAAS,MAAM,QAAkC,QAAkC;EACzF,IAAI;AACJ,MAAI,OAAO,WAAW,YAAY,OAAO,WAAW,SACnD,WAAU,YAAY;GAAE,GAAG;GAAQ,GAAG;GAAQ,CAAC;WACrC,UAAU,OACpB,WAAU,CAAC,YAAY,OAAO,EAAE,YAAY,OAAO,CAAC,CAAC,QAAQ,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI;WAC5E,OACV,WAAU,YAAY,OAAO;WACnB,OACV,WAAU,YAAY,OAAO;MAE7B,QAAO;AAGR,MAAI,CAAC,QAAQ,OAAQ,QAAO;AAE5B,SAAO,KAAK,QAAQ;;;CAGd,SAAS,YAAY,OAA6B;AACxD,MAAI,OAAO,UAAU,UAAU;AAC9B,OAAI,CAAC,MAAM,OAAQ,QAAO;AAE1B,UAAO,oBAAoB,MAAM;;EAGlC,MAAM,QAAkB,EAAE;AAE1B,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,EAAE;AACjD,OAAI,UAAU,QAAQ,UAAU,UAAa,UAAU,GAAI;GAE3D,MAAM,aAAa,sBAAsB,IAAI;GAC7C,MAAM,eAAe,sBAAsB,OAAO,MAAM,CAAC;AAEzD,SAAM,KAAK,GAAG,WAAW,IAAI,aAAa,GAAG;;AAG9C,MAAI,CAAC,MAAM,OAAQ,QAAO;AAE1B,SAAO,MAAM,MAAM,CAAC,KAAK,IAAI;;;CAGvB,SAAS,sBAAsB,KAAqB;AAE1D,SADmB,mBAAmB,IAAI,CACxB,QAAQ,MAAM,MAAM;;;CAGhC,SAAS,oBAAoB,OAAuB;AAC1D,SAAO,MAAM,QAAQ,SAAS,MAAM,CAAC,QAAQ,SAAS,MAAM;;;;;CAYtD,MAAM,QAA8C;EAC1D,QAAiB,cAAsB;;EAQvC,mBAAmB;;EAEnB;EAEA,YACC,AAAS,KACT,AAAS,YACR;GAFQ;GACA;;EAGV,SAAiB;AAChB,UAAO,KAAK;;;EAIb,QAAQ;AACP,UAAO,IAAI,QAAW,KAAK,KAAK,KAAK,WAAW;;;;;AAKnD,IAAa,cAAb,MAA4F;CAC3F,QAAiB,cAAsB;CAIvC,YAAY,AAAS,MAAa;EAAb;;CAErB,SAAc;AACb,SAAO,IAAI,IAAI,CAAC,KAAK,CAAC;;;;AAKxB,SAAgB,YAAkC,MAAiC;AAClF,QAAO,IAAI,YAAY,KAAK;;AAG7B,SAAgB,iBAAiB,QAAmB,QAA4C;AAC/F,QAAO,OAAO,KAAK,MAAM;AACxB,MAAI,GAAG,GAAG,YAAY,EAAE;AACvB,OAAI,EAAE,EAAE,QAAQ,QACf,OAAM,IAAI,MAAM,6BAA6B,EAAE,KAAK,gBAAgB;AAGrE,UAAO,OAAO,EAAE;;AAGjB,MAAI,GAAG,GAAG,MAAM,IAAI,GAAG,EAAE,OAAO,YAAY,EAAE;AAC7C,OAAI,EAAE,EAAE,MAAM,QAAQ,QACrB,OAAM,IAAI,MAAM,6BAA6B,EAAE,MAAM,KAAK,gBAAgB;AAG3E,OAAI,OAAO,EAAE,MAAM,UAAU,KAAM,QAAO,OAAO,EAAE,MAAM;GAEzD,MAAM,SAAS,EAAE,QAAQ,iBAAiB,SACvC,OAAO,EAAE,MAAM,QACf,EAAE,QAAQ,iBAAiB,OAAO,EAAE,MAAM,MAAM;AAEnD,UAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,GAAG;;AAGpC,SAAO;GACN;;AAKH,MAAM,gBAAgB,OAAO,IAAI,wBAAwB;AAEzD,IAAsB,OAAtB,MAIE;CACD,QAAiB,cAAsB;;CAWvC,CAAC;;CAWD,CAAC,iBAAiB;;CAGlB,KAAY,aAAa;AACxB,SAAO,KAAK,gBAAgB;;;CAI7B,KAAY,eAAe;AAC1B,SAAO,KAAK,gBAAgB;;;CAI7B,KAAY,WAAW;AACtB,SAAO,KAAK,gBAAgB;;;CAI7B,KAAY,gBAAgB;AAC3B,SAAO,KAAK,gBAAgB;;;CAI7B,KAAY,gBAAgB;AAC3B,SAAQ,KAAK,gBAAgB;;CAK9B,YACC,EAAE,MAAM,QAAQ,gBAAgB,SAM/B;AACD,OAAK,kBAAkB;GACtB;GACA,cAAc;GACd;GACA;GACO;GACP,YAAY,CAAC;GACb,SAAS;GACT;;;AAIH,SAAgB,OAAO,MAA6B;AACnD,QAAO,OAAO,SAAS,YAAY,SAAS,QAAQ,iBAAiB;;AAGtE,SAAgB,YAA4B,MAAyB;AACpE,QAAO,KAAK,gBAAgB;;AAY7B,OAAO,UAAU,SAAS,WAAW;AACpC,QAAO,IAAI,IAAI,CAAC,KAAK,CAAC;;AAGvB,SAAS,UAAU,SAAS,WAAW;AACtC,QAAO,IAAI,IAAI,CAAC,KAAK,CAAC"}
|
|
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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"}
|
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");
|
|
5
4
|
let ___relations_ts = require("../_relations.cjs");
|
|
6
5
|
___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,10 +23,7 @@ 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, {
|
|
27
|
-
logger,
|
|
28
|
-
useJitMapper: config.useJitMappers
|
|
29
|
-
}), relations, schema);
|
|
26
|
+
return new __sqlite_core_db_ts.BaseSQLiteDatabase("sync", dialect, new require_sql_js_session.SQLJsSession(client, dialect, relations, schema, { logger }), relations, schema);
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
//#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
|
|
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,EAAE,QAAQ,CAAC,EACxB,WAAW,OAAO"}
|