drizzle-orm 1.0.0-beta.1-84d9a79 → 1.0.0-beta.1-9fb1d0d
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/aws-data-api/common/index.d.cts +1 -1
- package/aws-data-api/common/index.d.ts +1 -1
- package/aws-data-api/pg/driver.cjs +1 -1
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.js +1 -1
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/session.cjs.map +1 -1
- package/aws-data-api/pg/session.d.cts +6 -6
- package/aws-data-api/pg/session.d.ts +6 -6
- package/aws-data-api/pg/session.js.map +1 -1
- package/better-sqlite3/driver.cjs +1 -1
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.js +1 -1
- package/better-sqlite3/driver.js.map +1 -1
- package/better-sqlite3/session.cjs.map +1 -1
- package/better-sqlite3/session.d.cts +6 -6
- package/better-sqlite3/session.d.ts +6 -6
- package/better-sqlite3/session.js.map +1 -1
- package/bun-sql/driver.cjs +1 -1
- package/bun-sql/driver.cjs.map +1 -1
- package/bun-sql/driver.js +1 -1
- package/bun-sql/driver.js.map +1 -1
- 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/session.cjs.map +1 -1
- package/bun-sql/session.d.cts +7 -7
- package/bun-sql/session.d.ts +7 -7
- package/bun-sql/session.js.map +1 -1
- package/bun-sqlite/driver.cjs +1 -1
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.js +1 -1
- package/bun-sqlite/driver.js.map +1 -1
- package/bun-sqlite/session.cjs.map +1 -1
- package/bun-sqlite/session.d.cts +6 -6
- package/bun-sqlite/session.d.ts +6 -6
- package/bun-sqlite/session.js.map +1 -1
- package/column-builder.cjs +9 -2
- package/column-builder.cjs.map +1 -1
- package/column-builder.d.cts +50 -65
- package/column-builder.d.ts +50 -65
- package/column-builder.js +7 -1
- package/column-builder.js.map +1 -1
- package/column.cjs +37 -21
- package/column.cjs.map +1 -1
- package/column.d.cts +20 -32
- package/column.d.ts +20 -32
- package/column.js +35 -20
- package/column.js.map +1 -1
- package/d1/driver.cjs +1 -1
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.js +1 -1
- package/d1/driver.js.map +1 -1
- package/d1/session.cjs.map +1 -1
- package/d1/session.d.cts +6 -6
- package/d1/session.d.ts +6 -6
- package/d1/session.js.map +1 -1
- package/durable-sqlite/driver.cjs +1 -1
- package/durable-sqlite/driver.cjs.map +1 -1
- package/durable-sqlite/driver.js +1 -1
- package/durable-sqlite/driver.js.map +1 -1
- package/durable-sqlite/session.cjs.map +1 -1
- package/durable-sqlite/session.d.cts +6 -6
- package/durable-sqlite/session.d.ts +6 -6
- package/durable-sqlite/session.js.map +1 -1
- package/expo-sqlite/driver.cjs +1 -1
- package/expo-sqlite/driver.cjs.map +1 -1
- package/expo-sqlite/driver.js +1 -1
- package/expo-sqlite/driver.js.map +1 -1
- package/expo-sqlite/session.cjs.map +1 -1
- package/expo-sqlite/session.d.cts +6 -6
- package/expo-sqlite/session.d.ts +6 -6
- package/expo-sqlite/session.js.map +1 -1
- package/gel/driver.cjs +1 -1
- package/gel/driver.cjs.map +1 -1
- package/gel/driver.d.cts +2 -2
- package/gel/driver.d.ts +2 -2
- package/gel/driver.js +1 -1
- package/gel/driver.js.map +1 -1
- package/gel/session.cjs.map +1 -1
- package/gel/session.d.cts +6 -6
- package/gel/session.d.ts +6 -6
- package/gel/session.js.map +1 -1
- package/gel-core/columns/bigint.cjs +1 -1
- package/gel-core/columns/bigint.cjs.map +1 -1
- package/gel-core/columns/bigint.d.cts +7 -12
- package/gel-core/columns/bigint.d.ts +7 -12
- package/gel-core/columns/bigint.js +1 -1
- package/gel-core/columns/bigint.js.map +1 -1
- package/gel-core/columns/bigintT.cjs +1 -1
- package/gel-core/columns/bigintT.cjs.map +1 -1
- package/gel-core/columns/bigintT.d.cts +7 -12
- package/gel-core/columns/bigintT.d.ts +7 -12
- package/gel-core/columns/bigintT.js +1 -1
- package/gel-core/columns/bigintT.js.map +1 -1
- package/gel-core/columns/boolean.cjs.map +1 -1
- package/gel-core/columns/boolean.d.cts +6 -11
- package/gel-core/columns/boolean.d.ts +6 -11
- package/gel-core/columns/boolean.js.map +1 -1
- package/gel-core/columns/bytes.cjs +1 -1
- package/gel-core/columns/bytes.cjs.map +1 -1
- package/gel-core/columns/bytes.d.cts +7 -12
- package/gel-core/columns/bytes.d.ts +7 -12
- package/gel-core/columns/bytes.js +1 -1
- package/gel-core/columns/bytes.js.map +1 -1
- package/gel-core/columns/common.cjs +9 -9
- package/gel-core/columns/common.cjs.map +1 -1
- package/gel-core/columns/common.d.cts +24 -41
- package/gel-core/columns/common.d.ts +24 -41
- package/gel-core/columns/common.js +9 -9
- package/gel-core/columns/common.js.map +1 -1
- package/gel-core/columns/custom.cjs.map +1 -1
- package/gel-core/columns/custom.d.cts +10 -14
- package/gel-core/columns/custom.d.ts +10 -14
- package/gel-core/columns/custom.js.map +1 -1
- package/gel-core/columns/date-duration.cjs +1 -1
- package/gel-core/columns/date-duration.cjs.map +1 -1
- package/gel-core/columns/date-duration.d.cts +7 -12
- package/gel-core/columns/date-duration.d.ts +7 -12
- package/gel-core/columns/date-duration.js +1 -1
- package/gel-core/columns/date-duration.js.map +1 -1
- package/gel-core/columns/date.common.cjs.map +1 -1
- package/gel-core/columns/date.common.d.cts +2 -2
- package/gel-core/columns/date.common.d.ts +2 -2
- package/gel-core/columns/date.common.js.map +1 -1
- package/gel-core/columns/decimal.cjs +1 -1
- package/gel-core/columns/decimal.cjs.map +1 -1
- package/gel-core/columns/decimal.d.cts +8 -13
- package/gel-core/columns/decimal.d.ts +8 -13
- package/gel-core/columns/decimal.js +1 -1
- package/gel-core/columns/decimal.js.map +1 -1
- package/gel-core/columns/double-precision.cjs +1 -1
- package/gel-core/columns/double-precision.cjs.map +1 -1
- package/gel-core/columns/double-precision.d.cts +7 -12
- package/gel-core/columns/double-precision.d.ts +7 -12
- package/gel-core/columns/double-precision.js +1 -1
- package/gel-core/columns/double-precision.js.map +1 -1
- package/gel-core/columns/duration.cjs +1 -1
- package/gel-core/columns/duration.cjs.map +1 -1
- package/gel-core/columns/duration.d.cts +7 -12
- package/gel-core/columns/duration.d.ts +7 -12
- package/gel-core/columns/duration.js +1 -1
- package/gel-core/columns/duration.js.map +1 -1
- package/gel-core/columns/int.common.cjs.map +1 -1
- package/gel-core/columns/int.common.d.cts +2 -2
- package/gel-core/columns/int.common.d.ts +2 -2
- package/gel-core/columns/int.common.js.map +1 -1
- package/gel-core/columns/integer.cjs +1 -1
- package/gel-core/columns/integer.cjs.map +1 -1
- package/gel-core/columns/integer.d.cts +7 -12
- package/gel-core/columns/integer.d.ts +7 -12
- package/gel-core/columns/integer.js +1 -1
- package/gel-core/columns/integer.js.map +1 -1
- package/gel-core/columns/json.cjs +1 -1
- package/gel-core/columns/json.cjs.map +1 -1
- package/gel-core/columns/json.d.cts +8 -13
- package/gel-core/columns/json.d.ts +8 -13
- package/gel-core/columns/json.js +1 -1
- package/gel-core/columns/json.js.map +1 -1
- package/gel-core/columns/localdate.cjs +1 -1
- package/gel-core/columns/localdate.cjs.map +1 -1
- package/gel-core/columns/localdate.d.cts +7 -12
- package/gel-core/columns/localdate.d.ts +7 -12
- package/gel-core/columns/localdate.js +1 -1
- package/gel-core/columns/localdate.js.map +1 -1
- package/gel-core/columns/localtime.cjs +1 -1
- package/gel-core/columns/localtime.cjs.map +1 -1
- package/gel-core/columns/localtime.d.cts +7 -12
- package/gel-core/columns/localtime.d.ts +7 -12
- package/gel-core/columns/localtime.js +1 -1
- package/gel-core/columns/localtime.js.map +1 -1
- package/gel-core/columns/real.cjs +1 -1
- package/gel-core/columns/real.cjs.map +1 -1
- package/gel-core/columns/real.d.cts +8 -13
- package/gel-core/columns/real.d.ts +8 -13
- package/gel-core/columns/real.js +1 -1
- package/gel-core/columns/real.js.map +1 -1
- package/gel-core/columns/relative-duration.cjs +1 -1
- package/gel-core/columns/relative-duration.cjs.map +1 -1
- package/gel-core/columns/relative-duration.d.cts +7 -12
- package/gel-core/columns/relative-duration.d.ts +7 -12
- package/gel-core/columns/relative-duration.js +1 -1
- package/gel-core/columns/relative-duration.js.map +1 -1
- package/gel-core/columns/smallint.cjs +1 -1
- package/gel-core/columns/smallint.cjs.map +1 -1
- package/gel-core/columns/smallint.d.cts +7 -12
- package/gel-core/columns/smallint.d.ts +7 -12
- package/gel-core/columns/smallint.js +1 -1
- package/gel-core/columns/smallint.js.map +1 -1
- package/gel-core/columns/text.cjs.map +1 -1
- package/gel-core/columns/text.d.cts +6 -12
- package/gel-core/columns/text.d.ts +6 -12
- package/gel-core/columns/text.js.map +1 -1
- package/gel-core/columns/timestamp.cjs +1 -1
- package/gel-core/columns/timestamp.cjs.map +1 -1
- package/gel-core/columns/timestamp.d.cts +8 -13
- package/gel-core/columns/timestamp.d.ts +8 -13
- package/gel-core/columns/timestamp.js +1 -1
- package/gel-core/columns/timestamp.js.map +1 -1
- package/gel-core/columns/timestamptz.cjs +1 -1
- package/gel-core/columns/timestamptz.cjs.map +1 -1
- package/gel-core/columns/timestamptz.d.cts +8 -13
- package/gel-core/columns/timestamptz.d.ts +8 -13
- package/gel-core/columns/timestamptz.js +1 -1
- package/gel-core/columns/timestamptz.js.map +1 -1
- package/gel-core/columns/uuid.cjs +1 -1
- package/gel-core/columns/uuid.cjs.map +1 -1
- package/gel-core/columns/uuid.d.cts +7 -12
- package/gel-core/columns/uuid.d.ts +7 -12
- package/gel-core/columns/uuid.js +1 -1
- package/gel-core/columns/uuid.js.map +1 -1
- package/gel-core/db.cjs +10 -15
- package/gel-core/db.cjs.map +1 -1
- package/gel-core/db.d.cts +8 -8
- package/gel-core/db.d.ts +8 -8
- package/gel-core/db.js +10 -15
- package/gel-core/db.js.map +1 -1
- package/gel-core/dialect.cjs +13 -13
- package/gel-core/dialect.cjs.map +1 -1
- package/gel-core/dialect.d.cts +1 -3
- package/gel-core/dialect.d.ts +1 -3
- package/gel-core/dialect.js +14 -14
- package/gel-core/dialect.js.map +1 -1
- package/gel-core/query-builders/delete.cjs.map +1 -1
- package/gel-core/query-builders/delete.js.map +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.cts +2 -2
- package/gel-core/query-builders/insert.d.ts +2 -2
- package/gel-core/query-builders/insert.js +2 -2
- package/gel-core/query-builders/insert.js.map +1 -1
- package/gel-core/query-builders/query.cjs +2 -12
- package/gel-core/query-builders/query.cjs.map +1 -1
- package/gel-core/query-builders/query.d.cts +2 -6
- package/gel-core/query-builders/query.d.ts +2 -6
- package/gel-core/query-builders/query.js +2 -12
- package/gel-core/query-builders/query.js.map +1 -1
- package/gel-core/query-builders/select.types.cjs.map +1 -1
- package/gel-core/query-builders/select.types.d.cts +1 -1
- package/gel-core/query-builders/select.types.d.ts +1 -1
- package/gel-core/query-builders/update.cjs.map +1 -1
- package/gel-core/query-builders/update.d.cts +3 -3
- package/gel-core/query-builders/update.d.ts +3 -3
- package/gel-core/query-builders/update.js.map +1 -1
- package/gel-core/session.cjs.map +1 -1
- package/gel-core/session.d.cts +7 -7
- package/gel-core/session.d.ts +7 -7
- package/gel-core/session.js.map +1 -1
- package/gel-core/table.cjs.map +1 -1
- package/gel-core/table.d.cts +9 -11
- package/gel-core/table.d.ts +9 -11
- package/gel-core/table.js +3 -1
- package/gel-core/table.js.map +1 -1
- package/gel-core/utils.d.cts +1 -1
- package/gel-core/utils.d.ts +1 -1
- package/gel-core/view.cjs.map +1 -1
- package/gel-core/view.d.cts +3 -4
- package/gel-core/view.d.ts +3 -4
- package/gel-core/view.js.map +1 -1
- package/libsql/driver-core.cjs +1 -1
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.js +1 -1
- package/libsql/driver-core.js.map +1 -1
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +6 -6
- package/libsql/session.d.ts +6 -6
- package/libsql/session.js.map +1 -1
- package/mysql-core/columns/bigint.cjs +2 -2
- package/mysql-core/columns/bigint.cjs.map +1 -1
- package/mysql-core/columns/bigint.d.cts +19 -25
- package/mysql-core/columns/bigint.d.ts +19 -25
- package/mysql-core/columns/bigint.js +2 -2
- package/mysql-core/columns/bigint.js.map +1 -1
- package/mysql-core/columns/binary.cjs +5 -4
- package/mysql-core/columns/binary.cjs.map +1 -1
- package/mysql-core/columns/binary.d.cts +13 -14
- package/mysql-core/columns/binary.d.ts +13 -14
- package/mysql-core/columns/binary.js +5 -4
- package/mysql-core/columns/binary.js.map +1 -1
- package/mysql-core/columns/boolean.cjs.map +1 -1
- package/mysql-core/columns/boolean.d.cts +6 -11
- package/mysql-core/columns/boolean.d.ts +6 -11
- package/mysql-core/columns/boolean.js.map +1 -1
- package/mysql-core/columns/char.cjs +5 -4
- package/mysql-core/columns/char.cjs.map +1 -1
- package/mysql-core/columns/char.d.cts +18 -23
- package/mysql-core/columns/char.d.ts +18 -23
- package/mysql-core/columns/char.js +5 -4
- package/mysql-core/columns/char.js.map +1 -1
- package/mysql-core/columns/common.cjs +3 -1
- package/mysql-core/columns/common.cjs.map +1 -1
- package/mysql-core/columns/common.d.cts +10 -18
- package/mysql-core/columns/common.d.ts +10 -18
- package/mysql-core/columns/common.js +3 -1
- package/mysql-core/columns/common.js.map +1 -1
- package/mysql-core/columns/custom.cjs.map +1 -1
- package/mysql-core/columns/custom.d.cts +9 -14
- package/mysql-core/columns/custom.d.ts +9 -14
- package/mysql-core/columns/custom.js.map +1 -1
- package/mysql-core/columns/date.cjs +2 -2
- package/mysql-core/columns/date.cjs.map +1 -1
- package/mysql-core/columns/date.common.cjs +1 -1
- package/mysql-core/columns/date.common.cjs.map +1 -1
- package/mysql-core/columns/date.common.d.cts +3 -3
- package/mysql-core/columns/date.common.d.ts +3 -3
- package/mysql-core/columns/date.common.js +1 -1
- package/mysql-core/columns/date.common.js.map +1 -1
- package/mysql-core/columns/date.d.cts +16 -24
- package/mysql-core/columns/date.d.ts +16 -24
- package/mysql-core/columns/date.js +2 -2
- package/mysql-core/columns/date.js.map +1 -1
- package/mysql-core/columns/datetime.cjs +2 -2
- package/mysql-core/columns/datetime.cjs.map +1 -1
- package/mysql-core/columns/datetime.d.cts +16 -24
- package/mysql-core/columns/datetime.d.ts +16 -24
- package/mysql-core/columns/datetime.js +2 -2
- package/mysql-core/columns/datetime.js.map +1 -1
- package/mysql-core/columns/decimal.cjs +3 -3
- package/mysql-core/columns/decimal.cjs.map +1 -1
- package/mysql-core/columns/decimal.d.cts +22 -33
- package/mysql-core/columns/decimal.d.ts +22 -33
- package/mysql-core/columns/decimal.js +3 -3
- package/mysql-core/columns/decimal.js.map +1 -1
- package/mysql-core/columns/double.cjs +1 -1
- package/mysql-core/columns/double.cjs.map +1 -1
- package/mysql-core/columns/double.d.cts +11 -15
- package/mysql-core/columns/double.d.ts +11 -15
- package/mysql-core/columns/double.js +1 -1
- package/mysql-core/columns/double.js.map +1 -1
- package/mysql-core/columns/enum.cjs +2 -2
- package/mysql-core/columns/enum.cjs.map +1 -1
- package/mysql-core/columns/enum.d.cts +18 -23
- package/mysql-core/columns/enum.d.ts +18 -23
- package/mysql-core/columns/enum.js +2 -2
- package/mysql-core/columns/enum.js.map +1 -1
- package/mysql-core/columns/float.cjs +1 -1
- package/mysql-core/columns/float.cjs.map +1 -1
- package/mysql-core/columns/float.d.cts +11 -15
- package/mysql-core/columns/float.d.ts +11 -15
- package/mysql-core/columns/float.js +1 -1
- package/mysql-core/columns/float.js.map +1 -1
- package/mysql-core/columns/int.cjs +1 -1
- package/mysql-core/columns/int.cjs.map +1 -1
- package/mysql-core/columns/int.d.cts +11 -15
- package/mysql-core/columns/int.d.ts +11 -15
- package/mysql-core/columns/int.js +1 -1
- package/mysql-core/columns/int.js.map +1 -1
- package/mysql-core/columns/json.cjs +1 -1
- package/mysql-core/columns/json.cjs.map +1 -1
- package/mysql-core/columns/json.d.cts +7 -12
- package/mysql-core/columns/json.d.ts +7 -12
- package/mysql-core/columns/json.js +1 -1
- package/mysql-core/columns/json.js.map +1 -1
- package/mysql-core/columns/mediumint.cjs +1 -1
- package/mysql-core/columns/mediumint.cjs.map +1 -1
- package/mysql-core/columns/mediumint.d.cts +9 -13
- package/mysql-core/columns/mediumint.d.ts +9 -13
- package/mysql-core/columns/mediumint.js +1 -1
- package/mysql-core/columns/mediumint.js.map +1 -1
- package/mysql-core/columns/real.cjs +1 -1
- package/mysql-core/columns/real.cjs.map +1 -1
- package/mysql-core/columns/real.d.cts +8 -13
- package/mysql-core/columns/real.d.ts +8 -13
- package/mysql-core/columns/real.js +1 -1
- package/mysql-core/columns/real.js.map +1 -1
- package/mysql-core/columns/serial.cjs +1 -1
- package/mysql-core/columns/serial.cjs.map +1 -1
- package/mysql-core/columns/serial.d.cts +11 -12
- package/mysql-core/columns/serial.d.ts +11 -12
- package/mysql-core/columns/serial.js +1 -1
- package/mysql-core/columns/serial.js.map +1 -1
- package/mysql-core/columns/smallint.cjs +1 -1
- package/mysql-core/columns/smallint.cjs.map +1 -1
- package/mysql-core/columns/smallint.d.cts +9 -13
- package/mysql-core/columns/smallint.d.ts +9 -13
- package/mysql-core/columns/smallint.js +1 -1
- package/mysql-core/columns/smallint.js.map +1 -1
- package/mysql-core/columns/text.cjs +19 -1
- package/mysql-core/columns/text.cjs.map +1 -1
- package/mysql-core/columns/text.d.cts +17 -23
- package/mysql-core/columns/text.d.ts +17 -23
- package/mysql-core/columns/text.js +19 -1
- package/mysql-core/columns/text.js.map +1 -1
- package/mysql-core/columns/time.cjs +1 -1
- package/mysql-core/columns/time.cjs.map +1 -1
- package/mysql-core/columns/time.d.cts +8 -13
- package/mysql-core/columns/time.d.ts +8 -13
- package/mysql-core/columns/time.js +1 -1
- package/mysql-core/columns/time.js.map +1 -1
- package/mysql-core/columns/timestamp.cjs +2 -2
- package/mysql-core/columns/timestamp.cjs.map +1 -1
- package/mysql-core/columns/timestamp.d.cts +14 -22
- package/mysql-core/columns/timestamp.d.ts +14 -22
- package/mysql-core/columns/timestamp.js +2 -2
- package/mysql-core/columns/timestamp.js.map +1 -1
- package/mysql-core/columns/tinyint.cjs +1 -1
- package/mysql-core/columns/tinyint.cjs.map +1 -1
- package/mysql-core/columns/tinyint.d.cts +9 -13
- package/mysql-core/columns/tinyint.d.ts +9 -13
- package/mysql-core/columns/tinyint.js +1 -1
- package/mysql-core/columns/tinyint.js.map +1 -1
- package/mysql-core/columns/varbinary.cjs +2 -3
- package/mysql-core/columns/varbinary.cjs.map +1 -1
- package/mysql-core/columns/varbinary.d.cts +7 -12
- package/mysql-core/columns/varbinary.d.ts +7 -12
- package/mysql-core/columns/varbinary.js +2 -3
- package/mysql-core/columns/varbinary.js.map +1 -1
- package/mysql-core/columns/varchar.cjs +2 -3
- package/mysql-core/columns/varchar.cjs.map +1 -1
- package/mysql-core/columns/varchar.d.cts +12 -21
- package/mysql-core/columns/varchar.d.ts +12 -21
- package/mysql-core/columns/varchar.js +2 -3
- package/mysql-core/columns/varchar.js.map +1 -1
- package/mysql-core/columns/year.cjs +1 -1
- package/mysql-core/columns/year.cjs.map +1 -1
- package/mysql-core/columns/year.d.cts +7 -12
- package/mysql-core/columns/year.d.ts +7 -12
- package/mysql-core/columns/year.js +1 -1
- package/mysql-core/columns/year.js.map +1 -1
- package/mysql-core/db.cjs +10 -29
- package/mysql-core/db.cjs.map +1 -1
- package/mysql-core/db.d.cts +7 -7
- package/mysql-core/db.d.ts +7 -7
- package/mysql-core/db.js +10 -29
- package/mysql-core/db.js.map +1 -1
- package/mysql-core/dialect.cjs +8 -12
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +1 -3
- package/mysql-core/dialect.d.ts +1 -3
- package/mysql-core/dialect.js +9 -13
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/insert.cjs +1 -1
- package/mysql-core/query-builders/insert.cjs.map +1 -1
- package/mysql-core/query-builders/insert.d.cts +5 -5
- package/mysql-core/query-builders/insert.d.ts +5 -5
- package/mysql-core/query-builders/insert.js +2 -2
- package/mysql-core/query-builders/insert.js.map +1 -1
- package/mysql-core/query-builders/query.cjs +2 -12
- package/mysql-core/query-builders/query.cjs.map +1 -1
- package/mysql-core/query-builders/query.d.cts +2 -6
- package/mysql-core/query-builders/query.d.ts +2 -6
- package/mysql-core/query-builders/query.js +2 -12
- package/mysql-core/query-builders/query.js.map +1 -1
- package/mysql-core/query-builders/select.types.cjs.map +1 -1
- package/mysql-core/query-builders/select.types.d.cts +1 -1
- package/mysql-core/query-builders/select.types.d.ts +1 -1
- package/mysql-core/query-builders/update.cjs.map +1 -1
- package/mysql-core/query-builders/update.d.cts +3 -2
- package/mysql-core/query-builders/update.d.ts +3 -2
- package/mysql-core/query-builders/update.js.map +1 -1
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +7 -7
- package/mysql-core/session.d.ts +7 -7
- package/mysql-core/session.js.map +1 -1
- package/mysql-core/table.cjs.map +1 -1
- package/mysql-core/table.d.cts +10 -13
- package/mysql-core/table.d.ts +10 -13
- package/mysql-core/table.js +3 -1
- package/mysql-core/table.js.map +1 -1
- package/mysql-core/utils.d.cts +1 -1
- package/mysql-core/utils.d.ts +1 -1
- package/mysql-core/view.cjs.map +1 -1
- package/mysql-core/view.d.cts +3 -4
- package/mysql-core/view.d.ts +3 -4
- package/mysql-core/view.js.map +1 -1
- package/mysql-proxy/driver.cjs +1 -1
- package/mysql-proxy/driver.cjs.map +1 -1
- package/mysql-proxy/driver.js +1 -1
- package/mysql-proxy/driver.js.map +1 -1
- package/mysql-proxy/session.cjs.map +1 -1
- package/mysql-proxy/session.d.cts +6 -6
- package/mysql-proxy/session.d.ts +6 -6
- package/mysql-proxy/session.js.map +1 -1
- package/mysql2/driver.cjs +1 -1
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +2 -2
- package/mysql2/driver.d.ts +2 -2
- package/mysql2/driver.js +1 -1
- package/mysql2/driver.js.map +1 -1
- package/mysql2/session.cjs.map +1 -1
- package/mysql2/session.d.cts +6 -6
- package/mysql2/session.d.ts +6 -6
- package/mysql2/session.js.map +1 -1
- package/neon/neon-auth.d.cts +18 -25
- package/neon/neon-auth.d.ts +18 -25
- package/neon-http/driver.cjs +1 -1
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +2 -2
- package/neon-http/driver.d.ts +2 -2
- package/neon-http/driver.js +1 -1
- package/neon-http/driver.js.map +1 -1
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +5 -5
- package/neon-http/session.d.ts +5 -5
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +1 -1
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +2 -2
- package/neon-serverless/driver.d.ts +2 -2
- package/neon-serverless/driver.js +1 -1
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.d.cts +6 -6
- package/neon-serverless/session.d.ts +6 -6
- package/neon-serverless/session.js.map +1 -1
- package/node-postgres/driver.cjs +1 -1
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +2 -2
- package/node-postgres/driver.d.ts +2 -2
- package/node-postgres/driver.js +1 -1
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +6 -6
- package/node-postgres/session.d.ts +6 -6
- package/node-postgres/session.js.map +1 -1
- package/op-sqlite/driver.cjs +1 -1
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.js +1 -1
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +6 -6
- package/op-sqlite/session.d.ts +6 -6
- package/op-sqlite/session.js.map +1 -1
- package/operations.cjs.map +1 -1
- package/operations.d.cts +3 -3
- package/operations.d.ts +3 -3
- package/package.json +122 -155
- package/pg-core/columns/bigint.cjs +3 -6
- package/pg-core/columns/bigint.cjs.map +1 -1
- package/pg-core/columns/bigint.d.cts +14 -21
- package/pg-core/columns/bigint.d.ts +14 -21
- package/pg-core/columns/bigint.js +3 -6
- package/pg-core/columns/bigint.js.map +1 -1
- package/pg-core/columns/bigserial.cjs +2 -2
- package/pg-core/columns/bigserial.cjs.map +1 -1
- package/pg-core/columns/bigserial.d.cts +16 -19
- package/pg-core/columns/bigserial.d.ts +16 -19
- package/pg-core/columns/bigserial.js +2 -2
- package/pg-core/columns/bigserial.js.map +1 -1
- package/pg-core/columns/boolean.cjs.map +1 -1
- package/pg-core/columns/boolean.d.cts +6 -11
- package/pg-core/columns/boolean.d.ts +6 -11
- package/pg-core/columns/boolean.js.map +1 -1
- package/pg-core/columns/bytea.cjs +1 -1
- package/pg-core/columns/bytea.cjs.map +1 -1
- package/pg-core/columns/bytea.d.cts +7 -12
- package/pg-core/columns/bytea.d.ts +7 -12
- package/pg-core/columns/bytea.js +1 -1
- package/pg-core/columns/bytea.js.map +1 -1
- package/pg-core/columns/char.cjs +5 -4
- package/pg-core/columns/char.cjs.map +1 -1
- package/pg-core/columns/char.d.cts +18 -29
- package/pg-core/columns/char.d.ts +18 -29
- package/pg-core/columns/char.js +5 -4
- package/pg-core/columns/char.js.map +1 -1
- package/pg-core/columns/cidr.cjs +1 -1
- package/pg-core/columns/cidr.cjs.map +1 -1
- package/pg-core/columns/cidr.d.cts +7 -12
- package/pg-core/columns/cidr.d.ts +7 -12
- package/pg-core/columns/cidr.js +1 -1
- package/pg-core/columns/cidr.js.map +1 -1
- package/pg-core/columns/common.cjs +9 -9
- package/pg-core/columns/common.cjs.map +1 -1
- package/pg-core/columns/common.d.cts +24 -41
- package/pg-core/columns/common.d.ts +24 -41
- package/pg-core/columns/common.js +9 -9
- package/pg-core/columns/common.js.map +1 -1
- package/pg-core/columns/custom.cjs.map +1 -1
- package/pg-core/columns/custom.d.cts +11 -18
- package/pg-core/columns/custom.d.ts +11 -18
- package/pg-core/columns/custom.js.map +1 -1
- package/pg-core/columns/date.cjs +2 -2
- package/pg-core/columns/date.cjs.map +1 -1
- package/pg-core/columns/date.common.cjs.map +1 -1
- package/pg-core/columns/date.common.d.cts +2 -2
- package/pg-core/columns/date.common.d.ts +2 -2
- package/pg-core/columns/date.common.js.map +1 -1
- package/pg-core/columns/date.d.cts +14 -22
- package/pg-core/columns/date.d.ts +14 -22
- package/pg-core/columns/date.js +2 -2
- package/pg-core/columns/date.js.map +1 -1
- package/pg-core/columns/double-precision.cjs +1 -1
- package/pg-core/columns/double-precision.cjs.map +1 -1
- package/pg-core/columns/double-precision.d.cts +7 -12
- package/pg-core/columns/double-precision.d.ts +7 -12
- package/pg-core/columns/double-precision.js +1 -1
- package/pg-core/columns/double-precision.js.map +1 -1
- package/pg-core/columns/enum.cjs +2 -2
- package/pg-core/columns/enum.cjs.map +1 -1
- package/pg-core/columns/enum.d.cts +23 -40
- package/pg-core/columns/enum.d.ts +23 -40
- package/pg-core/columns/enum.js +2 -2
- package/pg-core/columns/enum.js.map +1 -1
- package/pg-core/columns/inet.cjs +1 -1
- package/pg-core/columns/inet.cjs.map +1 -1
- package/pg-core/columns/inet.d.cts +7 -12
- package/pg-core/columns/inet.d.ts +7 -12
- package/pg-core/columns/inet.js +1 -1
- package/pg-core/columns/inet.js.map +1 -1
- package/pg-core/columns/int.common.cjs.map +1 -1
- package/pg-core/columns/int.common.d.cts +2 -2
- package/pg-core/columns/int.common.d.ts +2 -2
- package/pg-core/columns/int.common.js.map +1 -1
- package/pg-core/columns/integer.cjs +1 -1
- package/pg-core/columns/integer.cjs.map +1 -1
- package/pg-core/columns/integer.d.cts +7 -12
- package/pg-core/columns/integer.d.ts +7 -12
- package/pg-core/columns/integer.js +1 -1
- package/pg-core/columns/integer.js.map +1 -1
- package/pg-core/columns/interval.cjs +1 -1
- package/pg-core/columns/interval.cjs.map +1 -1
- package/pg-core/columns/interval.d.cts +8 -13
- package/pg-core/columns/interval.d.ts +8 -13
- package/pg-core/columns/interval.js +1 -1
- package/pg-core/columns/interval.js.map +1 -1
- package/pg-core/columns/json.cjs +1 -1
- package/pg-core/columns/json.cjs.map +1 -1
- package/pg-core/columns/json.d.cts +9 -16
- package/pg-core/columns/json.d.ts +9 -16
- package/pg-core/columns/json.js +1 -1
- package/pg-core/columns/json.js.map +1 -1
- package/pg-core/columns/jsonb.cjs +1 -1
- package/pg-core/columns/jsonb.cjs.map +1 -1
- package/pg-core/columns/jsonb.d.cts +9 -16
- package/pg-core/columns/jsonb.d.ts +9 -16
- package/pg-core/columns/jsonb.js +1 -1
- package/pg-core/columns/jsonb.js.map +1 -1
- package/pg-core/columns/line.cjs +2 -2
- package/pg-core/columns/line.cjs.map +1 -1
- package/pg-core/columns/line.d.cts +14 -22
- package/pg-core/columns/line.d.ts +14 -22
- package/pg-core/columns/line.js +2 -2
- package/pg-core/columns/line.js.map +1 -1
- package/pg-core/columns/macaddr.cjs +1 -1
- package/pg-core/columns/macaddr.cjs.map +1 -1
- package/pg-core/columns/macaddr.d.cts +7 -12
- package/pg-core/columns/macaddr.d.ts +7 -12
- package/pg-core/columns/macaddr.js +1 -1
- package/pg-core/columns/macaddr.js.map +1 -1
- package/pg-core/columns/macaddr8.cjs +1 -1
- package/pg-core/columns/macaddr8.cjs.map +1 -1
- package/pg-core/columns/macaddr8.d.cts +7 -12
- package/pg-core/columns/macaddr8.d.ts +7 -12
- package/pg-core/columns/macaddr8.js +1 -1
- package/pg-core/columns/macaddr8.js.map +1 -1
- package/pg-core/columns/numeric.cjs +2 -2
- package/pg-core/columns/numeric.cjs.map +1 -1
- package/pg-core/columns/numeric.d.cts +23 -39
- package/pg-core/columns/numeric.d.ts +23 -39
- package/pg-core/columns/numeric.js +2 -2
- package/pg-core/columns/numeric.js.map +1 -1
- package/pg-core/columns/point.cjs +2 -2
- package/pg-core/columns/point.cjs.map +1 -1
- package/pg-core/columns/point.d.cts +12 -20
- package/pg-core/columns/point.d.ts +12 -20
- package/pg-core/columns/point.js +2 -2
- package/pg-core/columns/point.js.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.cjs +2 -2
- package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.d.cts +14 -22
- package/pg-core/columns/postgis_extension/geometry.d.ts +14 -22
- package/pg-core/columns/postgis_extension/geometry.js +2 -2
- package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
- package/pg-core/columns/real.cjs +1 -1
- package/pg-core/columns/real.cjs.map +1 -1
- package/pg-core/columns/real.d.cts +9 -16
- package/pg-core/columns/real.d.ts +9 -16
- package/pg-core/columns/real.js +1 -1
- package/pg-core/columns/real.js.map +1 -1
- package/pg-core/columns/serial.cjs +1 -1
- package/pg-core/columns/serial.cjs.map +1 -1
- package/pg-core/columns/serial.d.cts +9 -12
- package/pg-core/columns/serial.d.ts +9 -12
- package/pg-core/columns/serial.js +1 -1
- package/pg-core/columns/serial.js.map +1 -1
- package/pg-core/columns/smallint.cjs +1 -1
- package/pg-core/columns/smallint.cjs.map +1 -1
- package/pg-core/columns/smallint.d.cts +7 -12
- package/pg-core/columns/smallint.d.ts +7 -12
- package/pg-core/columns/smallint.js +1 -1
- package/pg-core/columns/smallint.js.map +1 -1
- package/pg-core/columns/smallserial.cjs +1 -1
- package/pg-core/columns/smallserial.cjs.map +1 -1
- package/pg-core/columns/smallserial.d.cts +9 -12
- package/pg-core/columns/smallserial.d.ts +9 -12
- package/pg-core/columns/smallserial.js +1 -1
- package/pg-core/columns/smallserial.js.map +1 -1
- package/pg-core/columns/text.cjs +7 -3
- package/pg-core/columns/text.cjs.map +1 -1
- package/pg-core/columns/text.d.cts +14 -18
- package/pg-core/columns/text.d.ts +14 -18
- package/pg-core/columns/text.js +7 -3
- package/pg-core/columns/text.js.map +1 -1
- package/pg-core/columns/time.cjs +1 -1
- package/pg-core/columns/time.cjs.map +1 -1
- package/pg-core/columns/time.d.cts +10 -17
- package/pg-core/columns/time.d.ts +10 -17
- package/pg-core/columns/time.js +1 -1
- package/pg-core/columns/time.js.map +1 -1
- package/pg-core/columns/timestamp.cjs +2 -2
- package/pg-core/columns/timestamp.cjs.map +1 -1
- package/pg-core/columns/timestamp.d.cts +17 -29
- package/pg-core/columns/timestamp.d.ts +17 -29
- package/pg-core/columns/timestamp.js +2 -2
- package/pg-core/columns/timestamp.js.map +1 -1
- package/pg-core/columns/uuid.cjs +1 -1
- package/pg-core/columns/uuid.cjs.map +1 -1
- package/pg-core/columns/uuid.d.cts +7 -12
- package/pg-core/columns/uuid.d.ts +7 -12
- package/pg-core/columns/uuid.js +1 -1
- package/pg-core/columns/uuid.js.map +1 -1
- package/pg-core/columns/varchar.cjs +1 -2
- package/pg-core/columns/varchar.cjs.map +1 -1
- package/pg-core/columns/varchar.d.cts +14 -27
- package/pg-core/columns/varchar.d.ts +14 -27
- package/pg-core/columns/varchar.js +1 -2
- package/pg-core/columns/varchar.js.map +1 -1
- package/pg-core/columns/vector_extension/bit.cjs +4 -4
- package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
- package/pg-core/columns/vector_extension/bit.d.cts +12 -25
- package/pg-core/columns/vector_extension/bit.d.ts +12 -25
- package/pg-core/columns/vector_extension/bit.js +4 -4
- package/pg-core/columns/vector_extension/bit.js.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.cjs +4 -4
- package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.d.cts +11 -26
- package/pg-core/columns/vector_extension/halfvec.d.ts +11 -26
- package/pg-core/columns/vector_extension/halfvec.js +4 -4
- package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
- package/pg-core/columns/vector_extension/sparsevec.cjs +1 -1
- package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
- package/pg-core/columns/vector_extension/sparsevec.d.cts +7 -11
- package/pg-core/columns/vector_extension/sparsevec.d.ts +7 -11
- package/pg-core/columns/vector_extension/sparsevec.js +1 -1
- package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
- package/pg-core/columns/vector_extension/vector.cjs +4 -4
- package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
- package/pg-core/columns/vector_extension/vector.d.cts +11 -26
- package/pg-core/columns/vector_extension/vector.d.ts +11 -26
- package/pg-core/columns/vector_extension/vector.js +4 -4
- package/pg-core/columns/vector_extension/vector.js.map +1 -1
- package/pg-core/db.cjs +10 -15
- package/pg-core/db.cjs.map +1 -1
- package/pg-core/db.d.cts +8 -8
- package/pg-core/db.d.ts +8 -8
- package/pg-core/db.js +10 -15
- package/pg-core/db.js.map +1 -1
- package/pg-core/dialect.cjs +13 -13
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.d.cts +1 -3
- package/pg-core/dialect.d.ts +1 -3
- package/pg-core/dialect.js +14 -14
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/query-builders/delete.cjs.map +1 -1
- package/pg-core/query-builders/delete.js.map +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.d.cts +2 -2
- package/pg-core/query-builders/insert.d.ts +2 -2
- package/pg-core/query-builders/insert.js +2 -2
- package/pg-core/query-builders/insert.js.map +1 -1
- package/pg-core/query-builders/query.cjs +2 -12
- package/pg-core/query-builders/query.cjs.map +1 -1
- package/pg-core/query-builders/query.d.cts +2 -6
- package/pg-core/query-builders/query.d.ts +2 -6
- package/pg-core/query-builders/query.js +2 -12
- package/pg-core/query-builders/query.js.map +1 -1
- package/pg-core/query-builders/select.types.cjs.map +1 -1
- package/pg-core/query-builders/select.types.d.cts +1 -1
- package/pg-core/query-builders/select.types.d.ts +1 -1
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.d.cts +3 -3
- package/pg-core/query-builders/update.d.ts +3 -3
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +7 -7
- package/pg-core/session.d.ts +7 -7
- package/pg-core/session.js.map +1 -1
- package/pg-core/table.cjs.map +1 -1
- package/pg-core/table.d.cts +9 -11
- package/pg-core/table.d.ts +9 -11
- package/pg-core/table.js +3 -1
- package/pg-core/table.js.map +1 -1
- package/pg-core/utils.cjs +3 -1
- package/pg-core/utils.cjs.map +1 -1
- package/pg-core/utils.d.cts +1 -1
- package/pg-core/utils.d.ts +1 -1
- package/pg-core/utils.js +4 -2
- package/pg-core/utils.js.map +1 -1
- package/pg-core/view.cjs.map +1 -1
- package/pg-core/view.d.cts +5 -6
- package/pg-core/view.d.ts +5 -6
- package/pg-core/view.js.map +1 -1
- package/pg-proxy/driver.cjs +1 -1
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.js +1 -1
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +6 -6
- package/pg-proxy/session.d.ts +6 -6
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +1 -1
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +2 -2
- package/pglite/driver.d.ts +2 -2
- package/pglite/driver.js +1 -1
- package/pglite/driver.js.map +1 -1
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +6 -6
- package/pglite/session.d.ts +6 -6
- package/pglite/session.js.map +1 -1
- package/planetscale-serverless/driver.cjs +1 -1
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.js +1 -1
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +7 -7
- package/planetscale-serverless/session.d.ts +7 -7
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +1 -1
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +1 -1
- package/postgres-js/driver.d.ts +1 -1
- package/postgres-js/driver.js +1 -1
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/session.cjs.map +1 -1
- package/postgres-js/session.d.cts +7 -7
- package/postgres-js/session.d.ts +7 -7
- package/postgres-js/session.js.map +1 -1
- package/prisma/mysql/driver.cjs +7 -1
- package/prisma/mysql/driver.cjs.map +1 -1
- package/prisma/mysql/driver.js +7 -1
- package/prisma/mysql/driver.js.map +1 -1
- package/prisma/mysql/session.cjs.map +1 -1
- package/prisma/mysql/session.d.cts +2 -2
- package/prisma/mysql/session.d.ts +2 -2
- package/prisma/mysql/session.js.map +1 -1
- package/prisma/pg/driver.cjs +1 -1
- package/prisma/pg/driver.cjs.map +1 -1
- package/prisma/pg/driver.js +1 -1
- package/prisma/pg/driver.js.map +1 -1
- package/prisma/pg/session.cjs.map +1 -1
- package/prisma/pg/session.d.cts +2 -2
- package/prisma/pg/session.d.ts +2 -2
- package/prisma/pg/session.js.map +1 -1
- package/prisma/sqlite/driver.cjs +7 -1
- package/prisma/sqlite/driver.cjs.map +1 -1
- package/prisma/sqlite/driver.js +7 -1
- package/prisma/sqlite/driver.js.map +1 -1
- package/prisma/sqlite/session.cjs.map +1 -1
- package/prisma/sqlite/session.d.cts +3 -3
- package/prisma/sqlite/session.d.ts +3 -3
- package/prisma/sqlite/session.js.map +1 -1
- package/query-builders/select.types.cjs.map +1 -1
- package/query-builders/select.types.d.cts +2 -2
- package/query-builders/select.types.d.ts +2 -2
- package/relations.cjs +174 -163
- package/relations.cjs.map +1 -1
- package/relations.d.cts +170 -190
- package/relations.d.ts +170 -190
- package/relations.js +170 -163
- package/relations.js.map +1 -1
- package/singlestore-core/columns/bigint.cjs +2 -2
- package/singlestore-core/columns/bigint.cjs.map +1 -1
- package/singlestore-core/columns/bigint.d.cts +17 -24
- package/singlestore-core/columns/bigint.d.ts +17 -24
- package/singlestore-core/columns/bigint.js +2 -2
- package/singlestore-core/columns/bigint.js.map +1 -1
- package/singlestore-core/columns/binary.cjs +5 -4
- package/singlestore-core/columns/binary.cjs.map +1 -1
- package/singlestore-core/columns/binary.d.cts +13 -15
- package/singlestore-core/columns/binary.d.ts +13 -15
- package/singlestore-core/columns/binary.js +5 -4
- package/singlestore-core/columns/binary.js.map +1 -1
- package/singlestore-core/columns/boolean.cjs.map +1 -1
- package/singlestore-core/columns/boolean.d.cts +6 -12
- package/singlestore-core/columns/boolean.d.ts +6 -12
- package/singlestore-core/columns/boolean.js.map +1 -1
- package/singlestore-core/columns/char.cjs +5 -4
- package/singlestore-core/columns/char.cjs.map +1 -1
- package/singlestore-core/columns/char.d.cts +18 -24
- package/singlestore-core/columns/char.d.ts +18 -24
- package/singlestore-core/columns/char.js +5 -4
- package/singlestore-core/columns/char.js.map +1 -1
- package/singlestore-core/columns/common.cjs +3 -2
- package/singlestore-core/columns/common.cjs.map +1 -1
- package/singlestore-core/columns/common.d.cts +14 -18
- package/singlestore-core/columns/common.d.ts +14 -18
- package/singlestore-core/columns/common.js +3 -2
- package/singlestore-core/columns/common.js.map +1 -1
- package/singlestore-core/columns/custom.cjs.map +1 -1
- package/singlestore-core/columns/custom.d.cts +10 -15
- package/singlestore-core/columns/custom.d.ts +10 -15
- 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.common.cjs.map +1 -1
- package/singlestore-core/columns/date.common.d.cts +3 -3
- package/singlestore-core/columns/date.common.d.ts +3 -3
- package/singlestore-core/columns/date.common.js.map +1 -1
- package/singlestore-core/columns/date.d.cts +16 -26
- package/singlestore-core/columns/date.d.ts +16 -26
- package/singlestore-core/columns/date.js +2 -2
- package/singlestore-core/columns/date.js.map +1 -1
- package/singlestore-core/columns/datetime.cjs +3 -5
- package/singlestore-core/columns/datetime.cjs.map +1 -1
- package/singlestore-core/columns/datetime.d.cts +25 -27
- package/singlestore-core/columns/datetime.d.ts +25 -27
- package/singlestore-core/columns/datetime.js +3 -5
- package/singlestore-core/columns/datetime.js.map +1 -1
- package/singlestore-core/columns/decimal.cjs +3 -3
- package/singlestore-core/columns/decimal.cjs.map +1 -1
- package/singlestore-core/columns/decimal.d.cts +22 -36
- package/singlestore-core/columns/decimal.d.ts +22 -36
- package/singlestore-core/columns/decimal.js +3 -3
- package/singlestore-core/columns/decimal.js.map +1 -1
- package/singlestore-core/columns/double.cjs +1 -1
- package/singlestore-core/columns/double.cjs.map +1 -1
- package/singlestore-core/columns/double.d.cts +11 -16
- package/singlestore-core/columns/double.d.ts +11 -16
- package/singlestore-core/columns/double.js +1 -1
- package/singlestore-core/columns/double.js.map +1 -1
- package/singlestore-core/columns/enum.cjs +1 -1
- package/singlestore-core/columns/enum.cjs.map +1 -1
- package/singlestore-core/columns/enum.d.cts +14 -15
- package/singlestore-core/columns/enum.d.ts +14 -15
- package/singlestore-core/columns/enum.js +1 -1
- package/singlestore-core/columns/enum.js.map +1 -1
- package/singlestore-core/columns/float.cjs +1 -1
- package/singlestore-core/columns/float.cjs.map +1 -1
- package/singlestore-core/columns/float.d.cts +11 -16
- package/singlestore-core/columns/float.d.ts +11 -16
- package/singlestore-core/columns/float.js +1 -1
- package/singlestore-core/columns/float.js.map +1 -1
- package/singlestore-core/columns/int.cjs +1 -1
- package/singlestore-core/columns/int.cjs.map +1 -1
- package/singlestore-core/columns/int.d.cts +11 -16
- package/singlestore-core/columns/int.d.ts +11 -16
- package/singlestore-core/columns/int.js +1 -1
- package/singlestore-core/columns/int.js.map +1 -1
- package/singlestore-core/columns/json.cjs +1 -1
- package/singlestore-core/columns/json.cjs.map +1 -1
- package/singlestore-core/columns/json.d.cts +7 -13
- package/singlestore-core/columns/json.d.ts +7 -13
- package/singlestore-core/columns/json.js +1 -1
- package/singlestore-core/columns/json.js.map +1 -1
- package/singlestore-core/columns/mediumint.cjs +1 -1
- package/singlestore-core/columns/mediumint.cjs.map +1 -1
- package/singlestore-core/columns/mediumint.d.cts +9 -14
- package/singlestore-core/columns/mediumint.d.ts +9 -14
- package/singlestore-core/columns/mediumint.js +1 -1
- package/singlestore-core/columns/mediumint.js.map +1 -1
- package/singlestore-core/columns/real.cjs +1 -1
- package/singlestore-core/columns/real.cjs.map +1 -1
- package/singlestore-core/columns/real.d.cts +8 -14
- package/singlestore-core/columns/real.d.ts +8 -14
- package/singlestore-core/columns/real.js +1 -1
- package/singlestore-core/columns/real.js.map +1 -1
- package/singlestore-core/columns/serial.cjs +1 -1
- package/singlestore-core/columns/serial.cjs.map +1 -1
- package/singlestore-core/columns/serial.d.cts +11 -13
- package/singlestore-core/columns/serial.d.ts +11 -13
- package/singlestore-core/columns/serial.js +1 -1
- package/singlestore-core/columns/serial.js.map +1 -1
- package/singlestore-core/columns/smallint.cjs +1 -1
- package/singlestore-core/columns/smallint.cjs.map +1 -1
- package/singlestore-core/columns/smallint.d.cts +9 -14
- package/singlestore-core/columns/smallint.d.ts +9 -14
- package/singlestore-core/columns/smallint.js +1 -1
- package/singlestore-core/columns/smallint.js.map +1 -1
- package/singlestore-core/columns/text.cjs +19 -1
- package/singlestore-core/columns/text.cjs.map +1 -1
- package/singlestore-core/columns/text.d.cts +17 -24
- package/singlestore-core/columns/text.d.ts +17 -24
- package/singlestore-core/columns/text.js +19 -1
- package/singlestore-core/columns/text.js.map +1 -1
- package/singlestore-core/columns/time.cjs +1 -1
- package/singlestore-core/columns/time.cjs.map +1 -1
- package/singlestore-core/columns/time.d.cts +7 -13
- package/singlestore-core/columns/time.d.ts +7 -13
- package/singlestore-core/columns/time.js +1 -1
- package/singlestore-core/columns/time.js.map +1 -1
- package/singlestore-core/columns/timestamp.cjs +2 -2
- package/singlestore-core/columns/timestamp.cjs.map +1 -1
- package/singlestore-core/columns/timestamp.d.cts +14 -24
- package/singlestore-core/columns/timestamp.d.ts +14 -24
- package/singlestore-core/columns/timestamp.js +2 -2
- package/singlestore-core/columns/timestamp.js.map +1 -1
- package/singlestore-core/columns/tinyint.cjs +1 -1
- package/singlestore-core/columns/tinyint.cjs.map +1 -1
- package/singlestore-core/columns/tinyint.d.cts +9 -14
- package/singlestore-core/columns/tinyint.d.ts +9 -14
- package/singlestore-core/columns/tinyint.js +1 -1
- package/singlestore-core/columns/tinyint.js.map +1 -1
- package/singlestore-core/columns/varbinary.cjs +2 -3
- package/singlestore-core/columns/varbinary.cjs.map +1 -1
- package/singlestore-core/columns/varbinary.d.cts +7 -13
- package/singlestore-core/columns/varbinary.d.ts +7 -13
- package/singlestore-core/columns/varbinary.js +2 -3
- package/singlestore-core/columns/varbinary.js.map +1 -1
- package/singlestore-core/columns/varchar.cjs +1 -2
- package/singlestore-core/columns/varchar.cjs.map +1 -1
- package/singlestore-core/columns/varchar.d.cts +12 -24
- package/singlestore-core/columns/varchar.d.ts +12 -24
- package/singlestore-core/columns/varchar.js +1 -2
- package/singlestore-core/columns/varchar.js.map +1 -1
- package/singlestore-core/columns/vector.cjs +5 -5
- package/singlestore-core/columns/vector.cjs.map +1 -1
- package/singlestore-core/columns/vector.d.cts +17 -14
- package/singlestore-core/columns/vector.d.ts +17 -14
- package/singlestore-core/columns/vector.js +5 -5
- package/singlestore-core/columns/vector.js.map +1 -1
- package/singlestore-core/columns/year.cjs +1 -1
- package/singlestore-core/columns/year.cjs.map +1 -1
- package/singlestore-core/columns/year.d.cts +7 -13
- package/singlestore-core/columns/year.d.ts +7 -13
- package/singlestore-core/columns/year.js +1 -1
- package/singlestore-core/columns/year.js.map +1 -1
- package/singlestore-core/dialect.cjs +2 -2
- package/singlestore-core/dialect.cjs.map +1 -1
- package/singlestore-core/dialect.js +2 -2
- package/singlestore-core/dialect.js.map +1 -1
- package/singlestore-core/query-builders/insert.cjs.map +1 -1
- package/singlestore-core/query-builders/insert.d.cts +3 -3
- package/singlestore-core/query-builders/insert.d.ts +3 -3
- package/singlestore-core/query-builders/insert.js.map +1 -1
- package/singlestore-core/query-builders/select.types.cjs.map +1 -1
- package/singlestore-core/query-builders/select.types.d.cts +1 -1
- package/singlestore-core/query-builders/select.types.d.ts +1 -1
- package/singlestore-core/query-builders/update.cjs.map +1 -1
- package/singlestore-core/query-builders/update.d.cts +3 -2
- package/singlestore-core/query-builders/update.d.ts +3 -2
- package/singlestore-core/query-builders/update.js.map +1 -1
- package/singlestore-core/table.cjs.map +1 -1
- package/singlestore-core/table.d.cts +10 -13
- package/singlestore-core/table.d.ts +10 -13
- package/singlestore-core/table.js +3 -1
- package/singlestore-core/table.js.map +1 -1
- package/singlestore-core/utils.d.cts +1 -1
- package/singlestore-core/utils.d.ts +1 -1
- package/singlestore-core/view.cjs.map +1 -1
- package/singlestore-core/view.d.cts +2 -3
- package/singlestore-core/view.d.ts +2 -3
- package/singlestore-core/view.js.map +1 -1
- package/sql/sql.cjs +2 -2
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.js +3 -3
- package/sql/sql.js.map +1 -1
- package/sql-js/driver.cjs +1 -1
- package/sql-js/driver.cjs.map +1 -1
- package/sql-js/driver.js +1 -1
- package/sql-js/driver.js.map +1 -1
- package/sql-js/session.cjs.map +1 -1
- package/sql-js/session.d.cts +6 -6
- package/sql-js/session.d.ts +6 -6
- package/sql-js/session.js.map +1 -1
- package/sqlite-core/columns/blob.cjs +3 -3
- package/sqlite-core/columns/blob.cjs.map +1 -1
- package/sqlite-core/columns/blob.d.cts +20 -31
- package/sqlite-core/columns/blob.d.ts +20 -31
- package/sqlite-core/columns/blob.js +3 -3
- package/sqlite-core/columns/blob.js.map +1 -1
- package/sqlite-core/columns/common.cjs +3 -1
- package/sqlite-core/columns/common.cjs.map +1 -1
- package/sqlite-core/columns/common.d.cts +6 -14
- package/sqlite-core/columns/common.d.ts +6 -14
- package/sqlite-core/columns/common.js +3 -1
- package/sqlite-core/columns/common.js.map +1 -1
- package/sqlite-core/columns/custom.cjs.map +1 -1
- package/sqlite-core/columns/custom.d.cts +10 -14
- package/sqlite-core/columns/custom.d.ts +10 -14
- package/sqlite-core/columns/custom.js.map +1 -1
- package/sqlite-core/columns/integer.cjs +2 -2
- package/sqlite-core/columns/integer.cjs.map +1 -1
- package/sqlite-core/columns/integer.d.cts +28 -44
- package/sqlite-core/columns/integer.d.ts +28 -44
- package/sqlite-core/columns/integer.js +2 -2
- package/sqlite-core/columns/integer.js.map +1 -1
- package/sqlite-core/columns/numeric.cjs +2 -2
- package/sqlite-core/columns/numeric.cjs.map +1 -1
- package/sqlite-core/columns/numeric.d.cts +19 -29
- package/sqlite-core/columns/numeric.d.ts +19 -29
- package/sqlite-core/columns/numeric.js +2 -2
- package/sqlite-core/columns/numeric.js.map +1 -1
- package/sqlite-core/columns/real.cjs +1 -1
- package/sqlite-core/columns/real.cjs.map +1 -1
- package/sqlite-core/columns/real.d.cts +7 -12
- package/sqlite-core/columns/real.d.ts +7 -12
- package/sqlite-core/columns/real.js +1 -1
- package/sqlite-core/columns/real.js.map +1 -1
- package/sqlite-core/columns/text.cjs +2 -3
- package/sqlite-core/columns/text.cjs.map +1 -1
- package/sqlite-core/columns/text.d.cts +20 -35
- package/sqlite-core/columns/text.d.ts +20 -35
- package/sqlite-core/columns/text.js +2 -3
- package/sqlite-core/columns/text.js.map +1 -1
- package/sqlite-core/db.cjs +13 -18
- package/sqlite-core/db.cjs.map +1 -1
- package/sqlite-core/db.d.cts +7 -7
- package/sqlite-core/db.d.ts +7 -7
- package/sqlite-core/db.js +13 -18
- package/sqlite-core/db.js.map +1 -1
- package/sqlite-core/dialect.cjs +8 -12
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.d.cts +3 -5
- package/sqlite-core/dialect.d.ts +3 -5
- package/sqlite-core/dialect.js +9 -13
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/query-builders/_query.cjs.map +1 -1
- package/sqlite-core/query-builders/_query.d.cts +3 -3
- package/sqlite-core/query-builders/_query.d.ts +3 -3
- package/sqlite-core/query-builders/_query.js.map +1 -1
- package/sqlite-core/query-builders/delete.cjs.map +1 -1
- package/sqlite-core/query-builders/delete.d.cts +1 -1
- package/sqlite-core/query-builders/delete.d.ts +1 -1
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/insert.cjs +1 -1
- package/sqlite-core/query-builders/insert.cjs.map +1 -1
- package/sqlite-core/query-builders/insert.d.cts +8 -7
- package/sqlite-core/query-builders/insert.d.ts +8 -7
- package/sqlite-core/query-builders/insert.js +2 -2
- package/sqlite-core/query-builders/insert.js.map +1 -1
- package/sqlite-core/query-builders/query.cjs +2 -18
- package/sqlite-core/query-builders/query.cjs.map +1 -1
- package/sqlite-core/query-builders/query.d.cts +2 -6
- package/sqlite-core/query-builders/query.d.ts +2 -6
- package/sqlite-core/query-builders/query.js +2 -18
- package/sqlite-core/query-builders/query.js.map +1 -1
- package/sqlite-core/query-builders/select.cjs.map +1 -1
- package/sqlite-core/query-builders/select.d.cts +3 -3
- package/sqlite-core/query-builders/select.d.ts +3 -3
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/select.types.cjs.map +1 -1
- package/sqlite-core/query-builders/select.types.d.cts +1 -1
- package/sqlite-core/query-builders/select.types.d.ts +1 -1
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.d.cts +6 -5
- package/sqlite-core/query-builders/update.d.ts +6 -5
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +6 -6
- package/sqlite-core/session.d.ts +6 -6
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-core/table.cjs.map +1 -1
- package/sqlite-core/table.d.cts +9 -11
- package/sqlite-core/table.d.ts +9 -11
- package/sqlite-core/table.js +3 -1
- package/sqlite-core/table.js.map +1 -1
- package/sqlite-core/utils.d.cts +1 -1
- package/sqlite-core/utils.d.ts +1 -1
- package/sqlite-core/view.cjs.map +1 -1
- package/sqlite-core/view.d.cts +3 -4
- package/sqlite-core/view.d.ts +3 -4
- package/sqlite-core/view.js.map +1 -1
- package/sqlite-proxy/driver.cjs +1 -1
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.js +1 -1
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/session.cjs.map +1 -1
- package/sqlite-proxy/session.d.cts +6 -6
- package/sqlite-proxy/session.d.ts +6 -6
- package/sqlite-proxy/session.js.map +1 -1
- package/supabase/rls.d.cts +30 -43
- package/supabase/rls.d.ts +30 -43
- package/table.cjs +13 -12
- package/table.cjs.map +1 -1
- package/table.d.cts +26 -35
- package/table.d.ts +26 -35
- package/table.js +11 -10
- package/table.js.map +1 -1
- package/tidb-serverless/driver.cjs +1 -1
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.js +1 -1
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +7 -7
- package/tidb-serverless/session.d.ts +7 -7
- package/tidb-serverless/session.js.map +1 -1
- package/utils.cjs +5 -0
- package/utils.cjs.map +1 -1
- package/utils.d.cts +2 -2
- package/utils.d.ts +2 -2
- package/utils.js +5 -0
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +1 -1
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +2 -2
- package/vercel-postgres/driver.d.ts +2 -2
- package/vercel-postgres/driver.js +1 -1
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.d.cts +6 -6
- package/vercel-postgres/session.d.ts +6 -6
- package/vercel-postgres/session.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/xata-http/driver.cjs +1 -1
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +2 -2
- package/xata-http/driver.d.ts +2 -2
- package/xata-http/driver.js +1 -1
- package/xata-http/driver.js.map +1 -1
- package/xata-http/session.cjs.map +1 -1
- package/xata-http/session.d.cts +6 -6
- package/xata-http/session.d.ts +6 -6
- package/xata-http/session.js.map +1 -1
- package/knex/index.cjs +0 -2
- package/knex/index.cjs.map +0 -1
- package/knex/index.d.cts +0 -9
- package/knex/index.d.ts +0 -9
- package/knex/index.js +0 -1
- package/knex/index.js.map +0 -1
- package/kysely/index.cjs +0 -17
- package/kysely/index.cjs.map +0 -1
- package/kysely/index.d.cts +0 -16
- package/kysely/index.d.ts +0 -16
- package/kysely/index.js +0 -1
- package/kysely/index.js.map +0 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ColumnBuilderBaseConfig, ColumnBuilderExtraConfig, ColumnBuilderRuntimeConfig, ColumnType, HasGenerated } from "../../column-builder.cjs";
|
|
2
2
|
import { ColumnBuilder } from "../../column-builder.cjs";
|
|
3
3
|
import type { ColumnBaseConfig } from "../../column.cjs";
|
|
4
4
|
import { Column } from "../../column.cjs";
|
|
5
5
|
import { entityKind } from "../../entity.cjs";
|
|
6
|
-
import type { Simplify, Update } from "../../utils.cjs";
|
|
7
6
|
import type { UpdateDeleteAction } from "../foreign-keys.cjs";
|
|
8
7
|
import type { AnyPgTable, PgTable } from "../table.cjs";
|
|
9
8
|
import type { SQL } from "../../sql/sql.cjs";
|
|
9
|
+
import type { Update } from "../../utils.cjs";
|
|
10
10
|
import type { PgIndexOpClass } from "../indexes.cjs";
|
|
11
|
+
export type PgColumns = Record<string, PgColumn<any>>;
|
|
11
12
|
export interface ReferenceConfig {
|
|
12
13
|
ref: () => PgColumn;
|
|
13
14
|
actions: {
|
|
@@ -15,23 +16,14 @@ export interface ReferenceConfig {
|
|
|
15
16
|
onDelete?: UpdateDeleteAction;
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
export
|
|
19
|
-
dialect: 'pg';
|
|
20
|
-
}> {
|
|
21
|
-
}
|
|
22
|
-
export declare abstract class PgColumnBuilder<T extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = object, TTypeConfig extends object = object, TExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & {
|
|
23
|
-
dialect: 'pg';
|
|
24
|
-
}, TExtraConfig> implements PgColumnBuilderBase<T, TTypeConfig> {
|
|
19
|
+
export declare abstract class PgColumnBuilder<T extends ColumnBuilderBaseConfig<ColumnType> = ColumnBuilderBaseConfig<ColumnType>, TRuntimeConfig extends object = object> extends ColumnBuilder<T, TRuntimeConfig, ColumnBuilderExtraConfig> {
|
|
25
20
|
private foreignKeyConfigs;
|
|
26
21
|
static readonly [entityKind]: string;
|
|
27
|
-
array
|
|
28
|
-
name:
|
|
29
|
-
dataType: 'array';
|
|
30
|
-
columnType: 'PgArray';
|
|
22
|
+
array(length?: number): PgArrayBuilder<{
|
|
23
|
+
name: string;
|
|
24
|
+
dataType: 'array basecolumn';
|
|
31
25
|
data: T['data'][];
|
|
32
26
|
driverParam: T['driverParam'][] | string;
|
|
33
|
-
enumValues: T['enumValues'];
|
|
34
|
-
size: TSize;
|
|
35
27
|
baseBuilder: T;
|
|
36
28
|
} & (T extends {
|
|
37
29
|
notNull: true;
|
|
@@ -50,19 +42,16 @@ export declare abstract class PgColumnBuilder<T extends ColumnBuilderBaseConfig<
|
|
|
50
42
|
type: 'always';
|
|
51
43
|
}>;
|
|
52
44
|
}
|
|
53
|
-
export declare abstract class PgColumn<T extends ColumnBaseConfig<
|
|
54
|
-
dialect: 'pg';
|
|
55
|
-
}> {
|
|
56
|
-
readonly table: PgTable;
|
|
45
|
+
export declare abstract class PgColumn<T extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>, TRuntimeConfig extends object = {}> extends Column<T, TRuntimeConfig> {
|
|
57
46
|
static readonly [entityKind]: string;
|
|
58
|
-
constructor(table: PgTable, config: ColumnBuilderRuntimeConfig<T['data']
|
|
47
|
+
constructor(table: PgTable, config: ColumnBuilderRuntimeConfig<T['data']> & TRuntimeConfig);
|
|
59
48
|
}
|
|
60
49
|
export type IndexedExtraConfigType = {
|
|
61
50
|
order?: 'asc' | 'desc';
|
|
62
51
|
nulls?: 'first' | 'last';
|
|
63
52
|
opClass?: string;
|
|
64
53
|
};
|
|
65
|
-
export declare class ExtraConfigColumn<T extends ColumnBaseConfig<
|
|
54
|
+
export declare class ExtraConfigColumn<T extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>> extends PgColumn<T, IndexedExtraConfigType> {
|
|
66
55
|
static readonly [entityKind]: string;
|
|
67
56
|
getSQLType(): string;
|
|
68
57
|
indexConfig: IndexedExtraConfigType;
|
|
@@ -110,35 +99,29 @@ export declare class IndexedColumn {
|
|
|
110
99
|
type: string;
|
|
111
100
|
indexConfig: IndexedExtraConfigType;
|
|
112
101
|
}
|
|
113
|
-
export type AnyPgColumn<TPartial extends Partial<ColumnBaseConfig<
|
|
114
|
-
export type PgArrayColumnBuilderBaseConfig = ColumnBuilderBaseConfig<'array
|
|
115
|
-
|
|
116
|
-
baseBuilder: ColumnBuilderBaseConfig<ColumnDataType, string>;
|
|
102
|
+
export type AnyPgColumn<TPartial extends Partial<ColumnBaseConfig<ColumnType>> = {}> = PgColumn<Required<Update<ColumnBaseConfig<ColumnType>, TPartial>>>;
|
|
103
|
+
export type PgArrayColumnBuilderBaseConfig = ColumnBuilderBaseConfig<'array basecolumn'> & {
|
|
104
|
+
baseBuilder: ColumnBuilderBaseConfig<ColumnType>;
|
|
117
105
|
};
|
|
118
|
-
export declare class PgArrayBuilder<T extends PgArrayColumnBuilderBaseConfig, TBase extends ColumnBuilderBaseConfig<
|
|
106
|
+
export declare class PgArrayBuilder<T extends PgArrayColumnBuilderBaseConfig, TBase extends ColumnBuilderBaseConfig<ColumnType> | PgArrayColumnBuilderBaseConfig> extends PgColumnBuilder<T & {
|
|
119
107
|
baseBuilder: TBase extends PgArrayColumnBuilderBaseConfig ? PgArrayBuilder<TBase, TBase extends {
|
|
120
|
-
baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any
|
|
121
|
-
} ? TBaseBuilder : never> : PgColumnBuilder<TBase, {}
|
|
122
|
-
size: T['size'];
|
|
108
|
+
baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any>;
|
|
109
|
+
} ? TBaseBuilder : never> : PgColumnBuilder<TBase, {}>;
|
|
123
110
|
}, {
|
|
124
111
|
baseBuilder: TBase extends PgArrayColumnBuilderBaseConfig ? PgArrayBuilder<TBase, TBase extends {
|
|
125
|
-
baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any
|
|
126
|
-
} ? TBaseBuilder : never> : PgColumnBuilder<TBase, {}
|
|
127
|
-
|
|
112
|
+
baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any>;
|
|
113
|
+
} ? TBaseBuilder : never> : PgColumnBuilder<TBase, {}>;
|
|
114
|
+
length: number | undefined;
|
|
128
115
|
}> {
|
|
129
116
|
static readonly [entityKind] = "PgArrayBuilder";
|
|
130
|
-
constructor(name: string, baseBuilder: PgArrayBuilder<T, TBase>['config']['baseBuilder'],
|
|
117
|
+
constructor(name: string, baseBuilder: PgArrayBuilder<T, TBase>['config']['baseBuilder'], length: number | undefined);
|
|
131
118
|
}
|
|
132
|
-
export declare class PgArray<T extends ColumnBaseConfig<'array
|
|
133
|
-
|
|
134
|
-
baseBuilder: ColumnBuilderBaseConfig<
|
|
135
|
-
}, TBase extends ColumnBuilderBaseConfig<
|
|
136
|
-
size: T['size'];
|
|
137
|
-
baseBuilder: T['baseBuilder'];
|
|
138
|
-
}> {
|
|
119
|
+
export declare class PgArray<T extends ColumnBaseConfig<'array basecolumn'> & {
|
|
120
|
+
length: number | undefined;
|
|
121
|
+
baseBuilder: ColumnBuilderBaseConfig<ColumnType>;
|
|
122
|
+
}, TBase extends ColumnBuilderBaseConfig<ColumnType>> extends PgColumn<T, {}> {
|
|
139
123
|
readonly baseColumn: PgColumn;
|
|
140
124
|
readonly range?: [number | undefined, number | undefined] | undefined;
|
|
141
|
-
readonly size: T['size'];
|
|
142
125
|
static readonly [entityKind]: string;
|
|
143
126
|
constructor(table: AnyPgTable<{
|
|
144
127
|
name: T['tableName'];
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ColumnBuilderBaseConfig, ColumnBuilderExtraConfig, ColumnBuilderRuntimeConfig, ColumnType, HasGenerated } from "../../column-builder.js";
|
|
2
2
|
import { ColumnBuilder } from "../../column-builder.js";
|
|
3
3
|
import type { ColumnBaseConfig } from "../../column.js";
|
|
4
4
|
import { Column } from "../../column.js";
|
|
5
5
|
import { entityKind } from "../../entity.js";
|
|
6
|
-
import type { Simplify, Update } from "../../utils.js";
|
|
7
6
|
import type { UpdateDeleteAction } from "../foreign-keys.js";
|
|
8
7
|
import type { AnyPgTable, PgTable } from "../table.js";
|
|
9
8
|
import type { SQL } from "../../sql/sql.js";
|
|
9
|
+
import type { Update } from "../../utils.js";
|
|
10
10
|
import type { PgIndexOpClass } from "../indexes.js";
|
|
11
|
+
export type PgColumns = Record<string, PgColumn<any>>;
|
|
11
12
|
export interface ReferenceConfig {
|
|
12
13
|
ref: () => PgColumn;
|
|
13
14
|
actions: {
|
|
@@ -15,23 +16,14 @@ export interface ReferenceConfig {
|
|
|
15
16
|
onDelete?: UpdateDeleteAction;
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
export
|
|
19
|
-
dialect: 'pg';
|
|
20
|
-
}> {
|
|
21
|
-
}
|
|
22
|
-
export declare abstract class PgColumnBuilder<T extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = object, TTypeConfig extends object = object, TExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & {
|
|
23
|
-
dialect: 'pg';
|
|
24
|
-
}, TExtraConfig> implements PgColumnBuilderBase<T, TTypeConfig> {
|
|
19
|
+
export declare abstract class PgColumnBuilder<T extends ColumnBuilderBaseConfig<ColumnType> = ColumnBuilderBaseConfig<ColumnType>, TRuntimeConfig extends object = object> extends ColumnBuilder<T, TRuntimeConfig, ColumnBuilderExtraConfig> {
|
|
25
20
|
private foreignKeyConfigs;
|
|
26
21
|
static readonly [entityKind]: string;
|
|
27
|
-
array
|
|
28
|
-
name:
|
|
29
|
-
dataType: 'array';
|
|
30
|
-
columnType: 'PgArray';
|
|
22
|
+
array(length?: number): PgArrayBuilder<{
|
|
23
|
+
name: string;
|
|
24
|
+
dataType: 'array basecolumn';
|
|
31
25
|
data: T['data'][];
|
|
32
26
|
driverParam: T['driverParam'][] | string;
|
|
33
|
-
enumValues: T['enumValues'];
|
|
34
|
-
size: TSize;
|
|
35
27
|
baseBuilder: T;
|
|
36
28
|
} & (T extends {
|
|
37
29
|
notNull: true;
|
|
@@ -50,19 +42,16 @@ export declare abstract class PgColumnBuilder<T extends ColumnBuilderBaseConfig<
|
|
|
50
42
|
type: 'always';
|
|
51
43
|
}>;
|
|
52
44
|
}
|
|
53
|
-
export declare abstract class PgColumn<T extends ColumnBaseConfig<
|
|
54
|
-
dialect: 'pg';
|
|
55
|
-
}> {
|
|
56
|
-
readonly table: PgTable;
|
|
45
|
+
export declare abstract class PgColumn<T extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>, TRuntimeConfig extends object = {}> extends Column<T, TRuntimeConfig> {
|
|
57
46
|
static readonly [entityKind]: string;
|
|
58
|
-
constructor(table: PgTable, config: ColumnBuilderRuntimeConfig<T['data']
|
|
47
|
+
constructor(table: PgTable, config: ColumnBuilderRuntimeConfig<T['data']> & TRuntimeConfig);
|
|
59
48
|
}
|
|
60
49
|
export type IndexedExtraConfigType = {
|
|
61
50
|
order?: 'asc' | 'desc';
|
|
62
51
|
nulls?: 'first' | 'last';
|
|
63
52
|
opClass?: string;
|
|
64
53
|
};
|
|
65
|
-
export declare class ExtraConfigColumn<T extends ColumnBaseConfig<
|
|
54
|
+
export declare class ExtraConfigColumn<T extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>> extends PgColumn<T, IndexedExtraConfigType> {
|
|
66
55
|
static readonly [entityKind]: string;
|
|
67
56
|
getSQLType(): string;
|
|
68
57
|
indexConfig: IndexedExtraConfigType;
|
|
@@ -110,35 +99,29 @@ export declare class IndexedColumn {
|
|
|
110
99
|
type: string;
|
|
111
100
|
indexConfig: IndexedExtraConfigType;
|
|
112
101
|
}
|
|
113
|
-
export type AnyPgColumn<TPartial extends Partial<ColumnBaseConfig<
|
|
114
|
-
export type PgArrayColumnBuilderBaseConfig = ColumnBuilderBaseConfig<'array
|
|
115
|
-
|
|
116
|
-
baseBuilder: ColumnBuilderBaseConfig<ColumnDataType, string>;
|
|
102
|
+
export type AnyPgColumn<TPartial extends Partial<ColumnBaseConfig<ColumnType>> = {}> = PgColumn<Required<Update<ColumnBaseConfig<ColumnType>, TPartial>>>;
|
|
103
|
+
export type PgArrayColumnBuilderBaseConfig = ColumnBuilderBaseConfig<'array basecolumn'> & {
|
|
104
|
+
baseBuilder: ColumnBuilderBaseConfig<ColumnType>;
|
|
117
105
|
};
|
|
118
|
-
export declare class PgArrayBuilder<T extends PgArrayColumnBuilderBaseConfig, TBase extends ColumnBuilderBaseConfig<
|
|
106
|
+
export declare class PgArrayBuilder<T extends PgArrayColumnBuilderBaseConfig, TBase extends ColumnBuilderBaseConfig<ColumnType> | PgArrayColumnBuilderBaseConfig> extends PgColumnBuilder<T & {
|
|
119
107
|
baseBuilder: TBase extends PgArrayColumnBuilderBaseConfig ? PgArrayBuilder<TBase, TBase extends {
|
|
120
|
-
baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any
|
|
121
|
-
} ? TBaseBuilder : never> : PgColumnBuilder<TBase, {}
|
|
122
|
-
size: T['size'];
|
|
108
|
+
baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any>;
|
|
109
|
+
} ? TBaseBuilder : never> : PgColumnBuilder<TBase, {}>;
|
|
123
110
|
}, {
|
|
124
111
|
baseBuilder: TBase extends PgArrayColumnBuilderBaseConfig ? PgArrayBuilder<TBase, TBase extends {
|
|
125
|
-
baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any
|
|
126
|
-
} ? TBaseBuilder : never> : PgColumnBuilder<TBase, {}
|
|
127
|
-
|
|
112
|
+
baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any>;
|
|
113
|
+
} ? TBaseBuilder : never> : PgColumnBuilder<TBase, {}>;
|
|
114
|
+
length: number | undefined;
|
|
128
115
|
}> {
|
|
129
116
|
static readonly [entityKind] = "PgArrayBuilder";
|
|
130
|
-
constructor(name: string, baseBuilder: PgArrayBuilder<T, TBase>['config']['baseBuilder'],
|
|
117
|
+
constructor(name: string, baseBuilder: PgArrayBuilder<T, TBase>['config']['baseBuilder'], length: number | undefined);
|
|
131
118
|
}
|
|
132
|
-
export declare class PgArray<T extends ColumnBaseConfig<'array
|
|
133
|
-
|
|
134
|
-
baseBuilder: ColumnBuilderBaseConfig<
|
|
135
|
-
}, TBase extends ColumnBuilderBaseConfig<
|
|
136
|
-
size: T['size'];
|
|
137
|
-
baseBuilder: T['baseBuilder'];
|
|
138
|
-
}> {
|
|
119
|
+
export declare class PgArray<T extends ColumnBaseConfig<'array basecolumn'> & {
|
|
120
|
+
length: number | undefined;
|
|
121
|
+
baseBuilder: ColumnBuilderBaseConfig<ColumnType>;
|
|
122
|
+
}, TBase extends ColumnBuilderBaseConfig<ColumnType>> extends PgColumn<T, {}> {
|
|
139
123
|
readonly baseColumn: PgColumn;
|
|
140
124
|
readonly range?: [number | undefined, number | undefined] | undefined;
|
|
141
|
-
readonly size: T['size'];
|
|
142
125
|
static readonly [entityKind]: string;
|
|
143
126
|
constructor(table: AnyPgTable<{
|
|
144
127
|
name: T['tableName'];
|
|
@@ -8,8 +8,8 @@ import { makePgArray, parsePgArray } from "../utils/array.js";
|
|
|
8
8
|
class PgColumnBuilder extends ColumnBuilder {
|
|
9
9
|
foreignKeyConfigs = [];
|
|
10
10
|
static [entityKind] = "PgColumnBuilder";
|
|
11
|
-
array(
|
|
12
|
-
return new PgArrayBuilder(this.config.name, this,
|
|
11
|
+
array(length) {
|
|
12
|
+
return new PgArrayBuilder(this.config.name, this, length);
|
|
13
13
|
}
|
|
14
14
|
references(ref, actions = {}) {
|
|
15
15
|
this.foreignKeyConfigs.push({ ref, actions });
|
|
@@ -57,6 +57,9 @@ class PgColumnBuilder extends ColumnBuilder {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
class PgColumn extends Column {
|
|
60
|
+
static [entityKind] = "PgColumn";
|
|
61
|
+
/** @internal */
|
|
62
|
+
table;
|
|
60
63
|
constructor(table, config) {
|
|
61
64
|
if (!config.uniqueName) {
|
|
62
65
|
config.uniqueName = uniqueKeyName(table, [config.name]);
|
|
@@ -64,7 +67,6 @@ class PgColumn extends Column {
|
|
|
64
67
|
super(table, config);
|
|
65
68
|
this.table = table;
|
|
66
69
|
}
|
|
67
|
-
static [entityKind] = "PgColumn";
|
|
68
70
|
}
|
|
69
71
|
class ExtraConfigColumn extends PgColumn {
|
|
70
72
|
static [entityKind] = "ExtraConfigColumn";
|
|
@@ -146,10 +148,10 @@ class IndexedColumn {
|
|
|
146
148
|
}
|
|
147
149
|
class PgArrayBuilder extends PgColumnBuilder {
|
|
148
150
|
static [entityKind] = "PgArrayBuilder";
|
|
149
|
-
constructor(name, baseBuilder,
|
|
150
|
-
super(name, "array", "PgArray");
|
|
151
|
+
constructor(name, baseBuilder, length) {
|
|
152
|
+
super(name, "array basecolumn", "PgArray");
|
|
151
153
|
this.config.baseBuilder = baseBuilder;
|
|
152
|
-
this.config.
|
|
154
|
+
this.config.length = length;
|
|
153
155
|
}
|
|
154
156
|
/** @internal */
|
|
155
157
|
build(table) {
|
|
@@ -166,12 +168,10 @@ class PgArray extends PgColumn {
|
|
|
166
168
|
super(table, config);
|
|
167
169
|
this.baseColumn = baseColumn;
|
|
168
170
|
this.range = range;
|
|
169
|
-
this.size = config.size;
|
|
170
171
|
}
|
|
171
|
-
size;
|
|
172
172
|
static [entityKind] = "PgArray";
|
|
173
173
|
getSQLType() {
|
|
174
|
-
return `${this.baseColumn.getSQLType()}[${typeof this.
|
|
174
|
+
return `${this.baseColumn.getSQLType()}[${typeof this.length === "number" ? this.length : ""}]`;
|
|
175
175
|
}
|
|
176
176
|
mapFromDriverValue(value) {
|
|
177
177
|
if (typeof value === "string") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/pg-core/columns/common.ts"],"sourcesContent":["import type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasGenerated,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Simplify, Update } from '~/utils.ts';\n\nimport type { ForeignKey, UpdateDeleteAction } from '~/pg-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/pg-core/foreign-keys.ts';\nimport type { AnyPgTable, PgTable } from '~/pg-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { iife } from '~/tracing-utils.ts';\nimport type { PgIndexOpClass } from '../indexes.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\nimport { makePgArray, parsePgArray } from '../utils/array.ts';\n\nexport interface ReferenceConfig {\n\tref: () => PgColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface PgColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase<T, TTypeConfig & { dialect: 'pg' }> {}\n\nexport abstract class PgColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & { dialect: 'pg' }, TExtraConfig>\n\timplements PgColumnBuilderBase<T, TTypeConfig>\n{\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\tstatic override readonly [entityKind]: string = 'PgColumnBuilder';\n\n\tarray<TSize extends number | undefined = undefined>(size?: TSize): PgArrayBuilder<\n\t\t& {\n\t\t\tname: T['name'];\n\t\t\tdataType: 'array';\n\t\t\tcolumnType: 'PgArray';\n\t\t\tdata: T['data'][];\n\t\t\tdriverParam: T['driverParam'][] | string;\n\t\t\tenumValues: T['enumValues'];\n\t\t\tsize: TSize;\n\t\t\tbaseBuilder: T;\n\t\t}\n\t\t& (T extends { notNull: true } ? { notNull: true } : {})\n\t\t& (T extends { hasDefault: true } ? { hasDefault: true } : {}),\n\t\tT\n\t> {\n\t\treturn new PgArrayBuilder(this.config.name, this as PgColumnBuilder<any, any>, size as any);\n\t}\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t\tconfig?: { nulls: 'distinct' | 'not distinct' },\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\tthis.config.uniqueType = config?.nulls;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | T['data'] | (() => SQL)): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: 'stored',\n\t\t};\n\t\treturn this as HasGenerated<this, {\n\t\t\ttype: 'always';\n\t\t}>;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: PgColumn, table: PgTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn iife(\n\t\t\t\t(ref, actions) => {\n\t\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t\t});\n\t\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t\t}\n\t\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t\t}\n\t\t\t\t\treturn builder.build(table);\n\t\t\t\t},\n\t\t\t\tref,\n\t\t\t\tactions,\n\t\t\t);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgColumn<MakeColumnConfig<T, TTableName>>;\n\n\t/** @internal */\n\tbuildExtraConfigColumn<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): ExtraConfigColumn {\n\t\treturn new ExtraConfigColumn(table, this.config);\n\t}\n}\n\n// To understand how to use `PgColumn` and `PgColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class PgColumn<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = {},\n\tTTypeConfig extends object = {},\n> extends Column<T, TRuntimeConfig, TTypeConfig & { dialect: 'pg' }> {\n\tstatic override readonly [entityKind]: string = 'PgColumn';\n\n\tconstructor(\n\t\toverride readonly table: PgTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type IndexedExtraConfigType = { order?: 'asc' | 'desc'; nulls?: 'first' | 'last'; opClass?: string };\n\nexport class ExtraConfigColumn<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n> extends PgColumn<T, IndexedExtraConfigType> {\n\tstatic override readonly [entityKind]: string = 'ExtraConfigColumn';\n\n\toverride getSQLType(): string {\n\t\treturn this.getSQLType();\n\t}\n\n\tindexConfig: IndexedExtraConfigType = {\n\t\torder: this.config.order ?? 'asc',\n\t\tnulls: this.config.nulls ?? 'last',\n\t\topClass: this.config.opClass,\n\t};\n\tdefaultConfig: IndexedExtraConfigType = {\n\t\torder: 'asc',\n\t\tnulls: 'last',\n\t\topClass: undefined,\n\t};\n\n\tasc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'asc';\n\t\treturn this;\n\t}\n\n\tdesc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'desc';\n\t\treturn this;\n\t}\n\n\tnullsFirst(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'first';\n\t\treturn this;\n\t}\n\n\tnullsLast(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'last';\n\t\treturn this;\n\t}\n\n\t/**\n\t * ### PostgreSQL documentation quote\n\t *\n\t * > An operator class with optional parameters can be specified for each column of an index.\n\t * The operator class identifies the operators to be used by the index for that column.\n\t * For example, a B-tree index on four-byte integers would use the int4_ops class;\n\t * this operator class includes comparison functions for four-byte integers.\n\t * In practice the default operator class for the column's data type is usually sufficient.\n\t * The main point of having operator classes is that for some data types, there could be more than one meaningful ordering.\n\t * For example, we might want to sort a complex-number data type either by absolute value or by real part.\n\t * We could do this by defining two operator classes for the data type and then selecting the proper class when creating an index.\n\t * More information about operator classes check:\n\t *\n\t * ### Useful links\n\t * https://www.postgresql.org/docs/current/sql-createindex.html\n\t *\n\t * https://www.postgresql.org/docs/current/indexes-opclass.html\n\t *\n\t * https://www.postgresql.org/docs/current/xindex.html\n\t *\n\t * ### Additional types\n\t * If you have the `pg_vector` extension installed in your database, you can use the\n\t * `vector_l2_ops`, `vector_ip_ops`, `vector_cosine_ops`, `vector_l1_ops`, `bit_hamming_ops`, `bit_jaccard_ops`, `halfvec_l2_ops`, `sparsevec_l2_ops` options, which are predefined types.\n\t *\n\t * **You can always specify any string you want in the operator class, in case Drizzle doesn't have it natively in its types**\n\t *\n\t * @param opClass\n\t * @returns\n\t */\n\top(opClass: PgIndexOpClass): Omit<this, 'op'> {\n\t\tthis.indexConfig.opClass = opClass;\n\t\treturn this;\n\t}\n}\n\nexport class IndexedColumn {\n\tstatic readonly [entityKind]: string = 'IndexedColumn';\n\tconstructor(\n\t\tname: string | undefined,\n\t\tkeyAsName: boolean,\n\t\ttype: string,\n\t\tindexConfig: IndexedExtraConfigType,\n\t) {\n\t\tthis.name = name;\n\t\tthis.keyAsName = keyAsName;\n\t\tthis.type = type;\n\t\tthis.indexConfig = indexConfig;\n\t}\n\n\tname: string | undefined;\n\tkeyAsName: boolean;\n\ttype: string;\n\tindexConfig: IndexedExtraConfigType;\n}\n\nexport type AnyPgColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = PgColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n\nexport type PgArrayColumnBuilderBaseConfig = ColumnBuilderBaseConfig<'array', 'PgArray'> & {\n\tsize: number | undefined;\n\tbaseBuilder: ColumnBuilderBaseConfig<ColumnDataType, string>;\n};\n\nexport class PgArrayBuilder<\n\tT extends PgArrayColumnBuilderBaseConfig,\n\tTBase extends ColumnBuilderBaseConfig<ColumnDataType, string> | PgArrayColumnBuilderBaseConfig,\n> extends PgColumnBuilder<\n\tT,\n\t{\n\t\tbaseBuilder: TBase extends PgArrayColumnBuilderBaseConfig ? PgArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any, any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: PgColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any, any>>>>;\n\t\tsize: T['size'];\n\t},\n\t{\n\t\tbaseBuilder: TBase extends PgArrayColumnBuilderBaseConfig ? PgArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any, any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: PgColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any, any>>>>;\n\t\tsize: T['size'];\n\t}\n> {\n\tstatic override readonly [entityKind] = 'PgArrayBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tbaseBuilder: PgArrayBuilder<T, TBase>['config']['baseBuilder'],\n\t\tsize: T['size'],\n\t) {\n\t\tsuper(name, 'array', 'PgArray');\n\t\tthis.config.baseBuilder = baseBuilder;\n\t\tthis.config.size = size;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgArray<MakeColumnConfig<T, TTableName> & { size: T['size']; baseBuilder: T['baseBuilder'] }, TBase> {\n\t\tconst baseColumn = this.config.baseBuilder.build(table);\n\t\treturn new PgArray<MakeColumnConfig<T, TTableName> & { size: T['size']; baseBuilder: T['baseBuilder'] }, TBase>(\n\t\t\ttable as AnyPgTable<{ name: MakeColumnConfig<T, TTableName>['tableName'] }>,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t\tbaseColumn,\n\t\t);\n\t}\n}\n\nexport class PgArray<\n\tT extends ColumnBaseConfig<'array', 'PgArray'> & {\n\t\tsize: number | undefined;\n\t\tbaseBuilder: ColumnBuilderBaseConfig<ColumnDataType, string>;\n\t},\n\tTBase extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n> extends PgColumn<T, {}, { size: T['size']; baseBuilder: T['baseBuilder'] }> {\n\treadonly size: T['size'];\n\n\tstatic override readonly [entityKind]: string = 'PgArray';\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgArrayBuilder<T, TBase>['config'],\n\t\treadonly baseColumn: PgColumn,\n\t\treadonly range?: [number | undefined, number | undefined],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.size = config.size;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `${this.baseColumn.getSQLType()}[${typeof this.size === 'number' ? this.size : ''}]`;\n\t}\n\n\toverride mapFromDriverValue(value: unknown[] | string): T['data'] {\n\t\tif (typeof value === 'string') {\n\t\t\t// Thank you node-postgres for not parsing enum arrays\n\t\t\tvalue = parsePgArray(value);\n\t\t}\n\t\treturn value.map((v) => this.baseColumn.mapFromDriverValue(v));\n\t}\n\n\t// Needed for arrays of custom types\n\tmapFromJsonValue(value: unknown[] | string): T['data'] {\n\t\tif (typeof value === 'string') {\n\t\t\t// Thank you node-postgres for not parsing enum arrays\n\t\t\tvalue = parsePgArray(value);\n\t\t}\n\n\t\tconst base = this.baseColumn;\n\n\t\treturn 'mapFromJsonValue' in base\n\t\t\t? value.map((v) => (<(value: unknown) => unknown> base.mapFromJsonValue)(v))\n\t\t\t: value.map((v) => base.mapFromDriverValue(v));\n\t}\n\n\toverride mapToDriverValue(value: unknown[], isNestedArray = false): unknown[] | string {\n\t\tconst a = value.map((v) =>\n\t\t\tv === null\n\t\t\t\t? null\n\t\t\t\t: is(this.baseColumn, PgArray)\n\t\t\t\t? this.baseColumn.mapToDriverValue(v as unknown[], true)\n\t\t\t\t: this.baseColumn.mapToDriverValue(v)\n\t\t);\n\t\tif (isNestedArray) return a;\n\t\treturn makePgArray(a);\n\t}\n}\n"],"mappings":"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","names":["ref","actions"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/pg-core/columns/common.ts"],"sourcesContent":["import type {\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnType,\n\tHasGenerated,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/pg-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/pg-core/foreign-keys.ts';\nimport type { AnyPgTable, PgTable } from '~/pg-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { iife } from '~/tracing-utils.ts';\nimport type { Update } from '~/utils.ts';\nimport type { PgIndexOpClass } from '../indexes.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\nimport { makePgArray, parsePgArray } from '../utils/array.ts';\n\nexport type PgColumns = Record<string, PgColumn<any>>;\n\nexport interface ReferenceConfig {\n\tref: () => PgColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport abstract class PgColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnType> = ColumnBuilderBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n> extends ColumnBuilder<T, TRuntimeConfig, ColumnBuilderExtraConfig> {\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\tstatic override readonly [entityKind]: string = 'PgColumnBuilder';\n\n\tarray(length?: number): PgArrayBuilder<\n\t\t& {\n\t\t\tname: string;\n\t\t\tdataType: 'array basecolumn';\n\t\t\tdata: T['data'][];\n\t\t\tdriverParam: T['driverParam'][] | string;\n\t\t\tbaseBuilder: T;\n\t\t}\n\t\t& (T extends { notNull: true } ? { notNull: true } : {})\n\t\t& (T extends { hasDefault: true } ? { hasDefault: true } : {}),\n\t\tT\n\t> {\n\t\treturn new PgArrayBuilder(this.config.name, this as PgColumnBuilder<any, any>, length as any);\n\t}\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t\tconfig?: { nulls: 'distinct' | 'not distinct' },\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\tthis.config.uniqueType = config?.nulls;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | T['data'] | (() => SQL)): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: 'stored',\n\t\t};\n\t\treturn this as HasGenerated<this, {\n\t\t\ttype: 'always';\n\t\t}>;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: PgColumn, table: PgTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn iife(\n\t\t\t\t(ref, actions) => {\n\t\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t\t});\n\t\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t\t}\n\t\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t\t}\n\t\t\t\t\treturn builder.build(table);\n\t\t\t\t},\n\t\t\t\tref,\n\t\t\t\tactions,\n\t\t\t);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(table: PgTable): PgColumn<any>;\n\n\t/** @internal */\n\tbuildExtraConfigColumn<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): ExtraConfigColumn {\n\t\treturn new ExtraConfigColumn(table, this.config);\n\t}\n}\n\n// To understand how to use `PgColumn` and `PgColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class PgColumn<\n\tT extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = {},\n> extends Column<T, TRuntimeConfig> {\n\tstatic override readonly [entityKind]: string = 'PgColumn';\n\n\t/** @internal */\n\toverride readonly table: PgTable;\n\n\tconstructor(\n\t\ttable: PgTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data']> & TRuntimeConfig,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t\tthis.table = table;\n\t}\n}\n\nexport type IndexedExtraConfigType = { order?: 'asc' | 'desc'; nulls?: 'first' | 'last'; opClass?: string };\n\nexport class ExtraConfigColumn<\n\tT extends ColumnBaseConfig<ColumnType> = ColumnBaseConfig<ColumnType>,\n> extends PgColumn<T, IndexedExtraConfigType> {\n\tstatic override readonly [entityKind]: string = 'ExtraConfigColumn';\n\n\toverride getSQLType(): string {\n\t\treturn this.getSQLType();\n\t}\n\n\tindexConfig: IndexedExtraConfigType = {\n\t\torder: this.config.order ?? 'asc',\n\t\tnulls: this.config.nulls ?? 'last',\n\t\topClass: this.config.opClass,\n\t};\n\tdefaultConfig: IndexedExtraConfigType = {\n\t\torder: 'asc',\n\t\tnulls: 'last',\n\t\topClass: undefined,\n\t};\n\n\tasc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'asc';\n\t\treturn this;\n\t}\n\n\tdesc(): Omit<this, 'asc' | 'desc'> {\n\t\tthis.indexConfig.order = 'desc';\n\t\treturn this;\n\t}\n\n\tnullsFirst(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'first';\n\t\treturn this;\n\t}\n\n\tnullsLast(): Omit<this, 'nullsFirst' | 'nullsLast'> {\n\t\tthis.indexConfig.nulls = 'last';\n\t\treturn this;\n\t}\n\n\t/**\n\t * ### PostgreSQL documentation quote\n\t *\n\t * > An operator class with optional parameters can be specified for each column of an index.\n\t * The operator class identifies the operators to be used by the index for that column.\n\t * For example, a B-tree index on four-byte integers would use the int4_ops class;\n\t * this operator class includes comparison functions for four-byte integers.\n\t * In practice the default operator class for the column's data type is usually sufficient.\n\t * The main point of having operator classes is that for some data types, there could be more than one meaningful ordering.\n\t * For example, we might want to sort a complex-number data type either by absolute value or by real part.\n\t * We could do this by defining two operator classes for the data type and then selecting the proper class when creating an index.\n\t * More information about operator classes check:\n\t *\n\t * ### Useful links\n\t * https://www.postgresql.org/docs/current/sql-createindex.html\n\t *\n\t * https://www.postgresql.org/docs/current/indexes-opclass.html\n\t *\n\t * https://www.postgresql.org/docs/current/xindex.html\n\t *\n\t * ### Additional types\n\t * If you have the `pg_vector` extension installed in your database, you can use the\n\t * `vector_l2_ops`, `vector_ip_ops`, `vector_cosine_ops`, `vector_l1_ops`, `bit_hamming_ops`, `bit_jaccard_ops`, `halfvec_l2_ops`, `sparsevec_l2_ops` options, which are predefined types.\n\t *\n\t * **You can always specify any string you want in the operator class, in case Drizzle doesn't have it natively in its types**\n\t *\n\t * @param opClass\n\t * @returns\n\t */\n\top(opClass: PgIndexOpClass): Omit<this, 'op'> {\n\t\tthis.indexConfig.opClass = opClass;\n\t\treturn this;\n\t}\n}\n\nexport class IndexedColumn {\n\tstatic readonly [entityKind]: string = 'IndexedColumn';\n\tconstructor(\n\t\tname: string | undefined,\n\t\tkeyAsName: boolean,\n\t\ttype: string,\n\t\tindexConfig: IndexedExtraConfigType,\n\t) {\n\t\tthis.name = name;\n\t\tthis.keyAsName = keyAsName;\n\t\tthis.type = type;\n\t\tthis.indexConfig = indexConfig;\n\t}\n\n\tname: string | undefined;\n\tkeyAsName: boolean;\n\ttype: string;\n\tindexConfig: IndexedExtraConfigType;\n}\n\nexport type AnyPgColumn<TPartial extends Partial<ColumnBaseConfig<ColumnType>> = {}> = PgColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnType>, TPartial>>\n>;\n\nexport type PgArrayColumnBuilderBaseConfig = ColumnBuilderBaseConfig<'array basecolumn'> & {\n\tbaseBuilder: ColumnBuilderBaseConfig<ColumnType>;\n};\n\nexport class PgArrayBuilder<\n\tT extends PgArrayColumnBuilderBaseConfig,\n\tTBase extends ColumnBuilderBaseConfig<ColumnType> | PgArrayColumnBuilderBaseConfig,\n> extends PgColumnBuilder<\n\tT & {\n\t\tbaseBuilder: TBase extends PgArrayColumnBuilderBaseConfig ? PgArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: PgColumnBuilder<TBase, {}>;\n\t},\n\t{\n\t\tbaseBuilder: TBase extends PgArrayColumnBuilderBaseConfig ? PgArrayBuilder<\n\t\t\t\tTBase,\n\t\t\t\tTBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any> } ? TBaseBuilder\n\t\t\t\t\t: never\n\t\t\t>\n\t\t\t: PgColumnBuilder<TBase, {}>;\n\t\tlength: number | undefined;\n\t}\n> {\n\tstatic override readonly [entityKind] = 'PgArrayBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tbaseBuilder: PgArrayBuilder<T, TBase>['config']['baseBuilder'],\n\t\tlength: number | undefined,\n\t) {\n\t\tsuper(name, 'array basecolumn', 'PgArray');\n\t\tthis.config.baseBuilder = baseBuilder;\n\t\tthis.config.length = length;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable) {\n\t\tconst baseColumn: any = this.config.baseBuilder.build(table);\n\t\treturn new PgArray(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t\tbaseColumn,\n\t\t);\n\t}\n}\n\nexport class PgArray<\n\tT extends ColumnBaseConfig<'array basecolumn'> & {\n\t\tlength: number | undefined;\n\t\tbaseBuilder: ColumnBuilderBaseConfig<ColumnType>;\n\t},\n\tTBase extends ColumnBuilderBaseConfig<ColumnType>,\n> extends PgColumn<T, {}> {\n\tstatic override readonly [entityKind]: string = 'PgArray';\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgArrayBuilder<T, TBase>['config'],\n\t\treadonly baseColumn: PgColumn,\n\t\treadonly range?: [number | undefined, number | undefined],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `${this.baseColumn.getSQLType()}[${typeof this.length === 'number' ? this.length : ''}]`;\n\t}\n\n\toverride mapFromDriverValue(value: unknown[] | string): T['data'] {\n\t\tif (typeof value === 'string') {\n\t\t\t// Thank you node-postgres for not parsing enum arrays\n\t\t\tvalue = parsePgArray(value);\n\t\t}\n\t\treturn value.map((v) => this.baseColumn.mapFromDriverValue(v));\n\t}\n\n\t// Needed for arrays of custom types\n\tmapFromJsonValue(value: unknown[] | string): T['data'] {\n\t\tif (typeof value === 'string') {\n\t\t\t// Thank you node-postgres for not parsing enum arrays\n\t\t\tvalue = parsePgArray(value);\n\t\t}\n\n\t\tconst base = this.baseColumn;\n\n\t\treturn 'mapFromJsonValue' in base\n\t\t\t? value.map((v) => (<(value: unknown) => unknown> base.mapFromJsonValue)(v))\n\t\t\t: value.map((v) => base.mapFromDriverValue(v));\n\t}\n\n\toverride mapToDriverValue(value: unknown[], isNestedArray = false): unknown[] | string {\n\t\tconst a = value.map((v) =>\n\t\t\tv === null\n\t\t\t\t? null\n\t\t\t\t: is(this.baseColumn, PgArray)\n\t\t\t\t? this.baseColumn.mapToDriverValue(v as unknown[], true)\n\t\t\t\t: this.baseColumn.mapToDriverValue(v)\n\t\t);\n\t\tif (isNestedArray) return a;\n\t\treturn makePgArray(a);\n\t}\n}\n"],"mappings":"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","names":["ref","actions"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/pg-core/columns/custom.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport type { SQL, SQLGenerator } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type ConvertCustomConfig<TName extends string, T extends Partial<CustomTypeValues>> =\n\t& {\n\t\tname: TName;\n\t\tdataType: 'custom';\n\t\tcolumnType: 'PgCustomColumn';\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverData'];\n\t\tenumValues: undefined;\n\t}\n\t& (T['notNull'] extends true ? { notNull: true } : {})\n\t& (T['default'] extends true ? { hasDefault: true } : {});\n\nexport interface PgCustomColumnInnerConfig {\n\tcustomTypeValues: CustomTypeValues;\n}\n\nexport class PgCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom', 'PgCustomColumn'>>\n\textends PgColumnBuilder<\n\t\tT,\n\t\t{\n\t\t\tfieldConfig: CustomTypeValues['config'];\n\t\t\tcustomTypeParams: CustomTypeParams<any>;\n\t\t},\n\t\t{\n\t\t\tpgColumnBuilderBrand: 'PgCustomColumnBuilderBrand';\n\t\t}\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'PgCustomColumnBuilder';\n\n\tconstructor(\n\t\tname: T['name'],\n\t\tfieldConfig: CustomTypeValues['config'],\n\t\tcustomTypeParams: CustomTypeParams<any>,\n\t) {\n\t\tsuper(name, 'custom', 'PgCustomColumn');\n\t\tthis.config.fieldConfig = fieldConfig;\n\t\tthis.config.customTypeParams = customTypeParams;\n\t}\n\n\t/** @internal */\n\tbuild<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgCustomColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgCustomColumn<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class PgCustomColumn<T extends ColumnBaseConfig<'custom', 'PgCustomColumn'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgCustomColumn';\n\n\tprivate sqlName: string;\n\tprivate mapTo?: (value: T['data']) => T['driverParam'];\n\tprivate mapFrom?: (value: T['driverParam']) => T['data'];\n\tprivate mapJson?: (value: unknown) => T['data'];\n\tprivate forJsonSelect?: (identifier: SQL, sql: SQLGenerator, arrayDimensions?: number) => SQL;\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgCustomColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n\t\tthis.mapTo = config.customTypeParams.toDriver;\n\t\tthis.mapFrom = config.customTypeParams.fromDriver;\n\t\tthis.mapJson = config.customTypeParams.fromJson;\n\t\tthis.forJsonSelect = config.customTypeParams.forJsonSelect;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.sqlName;\n\t}\n\n\toverride mapFromDriverValue(value: T['driverParam']): T['data'] {\n\t\treturn typeof this.mapFrom === 'function' ? this.mapFrom(value) : value as T['data'];\n\t}\n\n\tmapFromJsonValue(value: unknown): T['data'] {\n\t\treturn typeof this.mapJson === 'function' ? this.mapJson(value) : this.mapFromDriverValue(value) as T['data'];\n\t}\n\n\tjsonSelectIdentifier(identifier: SQL, sql: SQLGenerator, arrayDimensions?: number): SQL {\n\t\tif (typeof this.forJsonSelect === 'function') return this.forJsonSelect(identifier, sql, arrayDimensions);\n\n\t\tconst rawType = this.getSQLType().toLowerCase();\n\t\tconst parenPos = rawType.indexOf('(');\n\t\tconst type = (parenPos + 1) ? rawType.slice(0, parenPos) : rawType;\n\n\t\tswitch (type) {\n\t\t\tcase 'bytea':\n\t\t\tcase 'geometry':\n\t\t\tcase 'timestamp':\n\t\t\tcase 'numeric':\n\t\t\tcase 'bigint': {\n\t\t\t\tconst arrVal = '[]'.repeat(arrayDimensions ?? 0);\n\n\t\t\t\treturn sql`${identifier}::text${sql.raw(arrVal).if(arrayDimensions)}`;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\treturn identifier;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride mapToDriverValue(value: T['data']): T['driverParam'] {\n\t\treturn typeof this.mapTo === 'function' ? this.mapTo(value) : value as T['data'];\n\t}\n}\n\nexport interface CustomTypeValues {\n\t/**\n\t * Required type for custom column, that will infer proper type model\n\t *\n\t * Examples:\n\t *\n\t * If you want your column to be `string` type after selecting/or on inserting - use `data: string`. Like `text`, `varchar`\n\t *\n\t * If you want your column to be `number` type after selecting/or on inserting - use `data: number`. Like `integer`\n\t */\n\tdata: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is accepting for specific database data type\n\t */\n\tdriverData?: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is returning for specific database data type\n\t *\n\t * Needed only in case driver's output and input for type differ\n\t *\n\t * Defaults to {@link driverData}\n\t */\n\tdriverOutput?: unknown;\n\n\t/**\n\t * Type helper, that represents what type field returns after being aggregated to JSON\n\t */\n\tjsonData?: unknown;\n\n\t/**\n\t * What config type should be used for {@link CustomTypeParams} `dataType` generation\n\t */\n\tconfig?: Record<string, any>;\n\n\t/**\n\t * Whether the config argument should be required or not\n\t * @default false\n\t */\n\tconfigRequired?: boolean;\n\n\t/**\n\t * If your custom data type should be notNull by default you can use `notNull: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tnotNull?: boolean;\n\n\t/**\n\t * If your custom data type has default you can use `default: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tdefault?: boolean;\n}\n\nexport interface CustomTypeParams<T extends CustomTypeValues> {\n\t/**\n\t * Database data type string representation, that is used for migrations\n\t * @example\n\t * ```\n\t * `jsonb`, `text`\n\t * ```\n\t *\n\t * If database data type needs additional params you can use them from `config` param\n\t * @example\n\t * ```\n\t * `varchar(256)`, `numeric(2,3)`\n\t * ```\n\t *\n\t * To make `config` be of specific type please use config generic in {@link CustomTypeValues}\n\t *\n\t * @example\n\t * Usage example\n\t * ```\n\t * dataType() {\n\t * return 'boolean';\n\t * },\n\t * ```\n\t * Or\n\t * ```\n\t * dataType(config) {\n\t * \t return typeof config.length !== 'undefined' ? `varchar(${config.length})` : `varchar`;\n\t * \t }\n\t * ```\n\t */\n\tdataType: (config: T['config'] | (Equal<T['configRequired'], true> extends true ? never : undefined)) => string;\n\n\t/**\n\t * Optional mapping function, that is used to transform inputs from desired to be used in code format to one suitable for driver\n\t * @example\n\t * For example, when using jsonb we need to map JS/TS object to string before writing to database\n\t * ```\n\t * toDriver(value: TData): string {\n\t * \t return JSON.stringify(value);\n\t * }\n\t * ```\n\t */\n\ttoDriver?: (value: T['data']) => T['driverData'] | SQL;\n\n\t/**\n\t * Optional mapping function, that is used for transforming data returned by driver to desired column's output format\n\t * @example\n\t * For example, when using timestamp we need to map string Date representation to JS Date\n\t * ```\n\t * fromDriver(value: string): Date {\n\t * \treturn new Date(value);\n\t * }\n\t * ```\n\t *\n\t * It'll cause the returned data to change from:\n\t * ```\n\t * {\n\t * \tcustomField: \"2025-04-07T03:25:16.635Z\";\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tcustomField: new Date(\"2025-04-07T03:25:16.635Z\");\n\t * }\n\t * ```\n\t */\n\tfromDriver?: (value: 'driverOutput' extends keyof T ? T['driverOutput'] : T['driverData']) => T['data'];\n\n\t/**\n\t * Optional mapping function, that is used for transforming data returned by transofmed to JSON in database data to desired format\n\t *\n\t * Used by [relational queries](https://orm.drizzle.team/docs/rqb-v2)\n\t *\n\t * Defaults to {@link fromDriver} function\n\t * @example\n\t * For example, when querying bigint column via [RQB](https://orm.drizzle.team/docs/rqb-v2) or [JSON functions](https://orm.drizzle.team/docs/json-functions), the result field will be returned as it's string representation, as opposed to bigint from regular query\n\t * To handle that, we need a separate function to handle such field's mapping:\n\t * ```\n\t * fromJson(value: string): bigint {\n\t * \treturn BigInt(value);\n\t * },\n\t * ```\n\t *\n\t * It'll cause the returned data to change from:\n\t * ```\n\t * {\n\t * \tcustomField: \"5044565289845416380\";\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tcustomField: 5044565289845416380n;\n\t * }\n\t * ```\n\t */\n\tfromJson?: (value: T['jsonData']) => T['data'];\n\n\t/**\n\t * Optional selection modifier function, that is used for modifying selection of column inside [JSON functions](https://orm.drizzle.team/docs/json-functions)\n\t *\n\t * Additional mapping that could be required for such scenarios can be handled using {@link fromJson} function\n\t *\n\t * Used by [relational queries](https://orm.drizzle.team/docs/rqb-v2)\n\t *\n\t * Following types are being casted to text by default: `bytea`, `geometry`, `timestamp`, `numeric`, `bigint`\n\t * @example\n\t * For example, when using bigint we need to cast field to text to preserve data integrity\n\t * ```\n\t * forJsonSelect(identifier: SQL, sql: SQLGenerator, arrayDimensions?: number): SQL {\n\t * \treturn sql`${identifier}::text`\n\t * },\n\t * ```\n\t *\n\t * This will change query from:\n\t * ```\n\t * SELECT\n\t * \trow_to_json(\"t\".*)\n\t * \tFROM\n\t * \t(\n\t * \t\tSELECT\n\t * \t\t\"table\".\"custom_bigint\" AS \"bigint\"\n\t * \t\tFROM\n\t * \t\t\"table\"\n\t * \t) AS \"t\"\n\t * ```\n\t * to:\n\t * ```\n\t * SELECT\n\t * \trow_to_json(\"t\".*)\n\t * \tFROM\n\t * \t(\n\t * \t\tSELECT\n\t * \t\t\"table\".\"custom_bigint\"::text AS \"bigint\"\n\t * \t\tFROM\n\t * \t\t\"table\"\n\t * \t) AS \"t\"\n\t * ```\n\t *\n\t * Returned by query object will change from:\n\t * ```\n\t * {\n\t * \tbigint: 5044565289845416000; // Partial data loss due to direct conversion to JSON format\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tbigint: \"5044565289845416380\"; // Data is preserved due to conversion of field to text before JSON-ification\n\t * }\n\t * ```\n\t */\n\tforJsonSelect?: (identifier: SQL, sql: SQLGenerator, arrayDimensions?: number) => SQL;\n}\n\n/**\n * Custom pg database data type generator\n */\nexport function customType<T extends CustomTypeValues = CustomTypeValues>(\n\tcustomTypeParams: CustomTypeParams<T>,\n): Equal<T['configRequired'], true> extends true ? {\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig: TConfig,\n\t\t): PgCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TName extends string>(\n\t\t\tdbName: TName,\n\t\t\tfieldConfig: T['config'],\n\t\t): PgCustomColumnBuilder<ConvertCustomConfig<TName, T>>;\n\t}\n\t: {\n\t\t(): PgCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig?: TConfig,\n\t\t): PgCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TName extends string>(\n\t\t\tdbName: TName,\n\t\t\tfieldConfig?: T['config'],\n\t\t): PgCustomColumnBuilder<ConvertCustomConfig<TName, T>>;\n\t}\n{\n\treturn <TName extends string>(\n\t\ta?: TName | T['config'],\n\t\tb?: T['config'],\n\t): PgCustomColumnBuilder<ConvertCustomConfig<TName, T>> => {\n\t\tconst { name, config } = getColumnNameAndConfig<T['config']>(a, b);\n\t\treturn new PgCustomColumnBuilder(name as ConvertCustomConfig<TName, T>['name'], config, customTypeParams);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,mBAAmD;AACnD,oBAA0C;AAkBnC,MAAM,8BACJ,8BAUT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,MACA,aACA,kBACC;AACD,UAAM,MAAM,UAAU,gBAAgB;AACtC,SAAK,OAAO,cAAc;AAC1B,SAAK,OAAO,mBAAmB;AAAA,EAChC;AAAA;AAAA,EAGA,MACC,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBAA+E,uBAAY;AAAA,EACvG,QAA0B,wBAAU,IAAY;AAAA,EAExC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,UAAU,OAAO,iBAAiB,SAAS,OAAO,WAAW;AAClE,SAAK,QAAQ,OAAO,iBAAiB;AACrC,SAAK,UAAU,OAAO,iBAAiB;AACvC,SAAK,UAAU,OAAO,iBAAiB;AACvC,SAAK,gBAAgB,OAAO,iBAAiB;AAAA,EAC9C;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK;AAAA,EACb;AAAA,EAES,mBAAmB,OAAoC;AAC/D,WAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,KAAK,IAAI;AAAA,EACnE;AAAA,EAEA,iBAAiB,OAA2B;AAC3C,WAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,KAAK,IAAI,KAAK,mBAAmB,KAAK;AAAA,EAChG;AAAA,EAEA,qBAAqB,YAAiB,KAAmB,iBAA+B;AACvF,QAAI,OAAO,KAAK,kBAAkB,WAAY,QAAO,KAAK,cAAc,YAAY,KAAK,eAAe;AAExG,UAAM,UAAU,KAAK,WAAW,EAAE,YAAY;AAC9C,UAAM,WAAW,QAAQ,QAAQ,GAAG;AACpC,UAAM,OAAQ,WAAW,IAAK,QAAQ,MAAM,GAAG,QAAQ,IAAI;AAE3D,YAAQ,MAAM;AAAA,MACb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,UAAU;AACd,cAAM,SAAS,KAAK,OAAO,mBAAmB,CAAC;AAE/C,eAAO,MAAM,UAAU,SAAS,IAAI,IAAI,MAAM,EAAE,GAAG,eAAe,CAAC;AAAA,MACpE;AAAA,MACA,SAAS;AACR,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAES,iBAAiB,OAAoC;AAC7D,WAAO,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,KAAK,IAAI;AAAA,EAC/D;AACD;AAoOO,SAAS,WACf,kBAoBD;AACC,SAAO,CACN,GACA,MAC0D;AAC1D,UAAM,EAAE,MAAM,OAAO,QAAI,qCAAoC,GAAG,CAAC;AACjE,WAAO,IAAI,sBAAsB,MAA+C,QAAQ,gBAAgB;AAAA,EACzG;AACD;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/pg-core/columns/custom.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport type { SQL, SQLGenerator } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type ConvertCustomConfig<T extends Partial<CustomTypeValues>> =\n\t& {\n\t\tname: string;\n\t\tdataType: 'custom';\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverData'];\n\t}\n\t& (T['notNull'] extends true ? { notNull: true } : {})\n\t& (T['default'] extends true ? { hasDefault: true } : {});\n\nexport interface PgCustomColumnInnerConfig {\n\tcustomTypeValues: CustomTypeValues;\n}\n\nexport class PgCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom'>> extends PgColumnBuilder<\n\tT,\n\t{\n\t\tfieldConfig: CustomTypeValues['config'];\n\t\tcustomTypeParams: CustomTypeParams<any>;\n\t}\n> {\n\tstatic override readonly [entityKind]: string = 'PgCustomColumnBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tfieldConfig: CustomTypeValues['config'],\n\t\tcustomTypeParams: CustomTypeParams<any>,\n\t) {\n\t\tsuper(name, 'custom', 'PgCustomColumn');\n\t\tthis.config.fieldConfig = fieldConfig;\n\t\tthis.config.customTypeParams = customTypeParams;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgCustomColumn(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgCustomColumn<T extends ColumnBaseConfig<'custom'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgCustomColumn';\n\n\tprivate sqlName: string;\n\tprivate mapTo?: (value: T['data']) => T['driverParam'];\n\tprivate mapFrom?: (value: T['driverParam']) => T['data'];\n\tprivate mapJson?: (value: unknown) => T['data'];\n\tprivate forJsonSelect?: (identifier: SQL, sql: SQLGenerator, arrayDimensions?: number) => SQL;\n\n\tconstructor(\n\t\ttable: PgTable<any>,\n\t\tconfig: PgCustomColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n\t\tthis.mapTo = config.customTypeParams.toDriver;\n\t\tthis.mapFrom = config.customTypeParams.fromDriver;\n\t\tthis.mapJson = config.customTypeParams.fromJson;\n\t\tthis.forJsonSelect = config.customTypeParams.forJsonSelect;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.sqlName;\n\t}\n\n\toverride mapFromDriverValue(value: T['driverParam']): T['data'] {\n\t\treturn typeof this.mapFrom === 'function' ? this.mapFrom(value) : value as T['data'];\n\t}\n\n\tmapFromJsonValue(value: unknown): T['data'] {\n\t\treturn typeof this.mapJson === 'function' ? this.mapJson(value) : this.mapFromDriverValue(value) as T['data'];\n\t}\n\n\tjsonSelectIdentifier(identifier: SQL, sql: SQLGenerator, arrayDimensions?: number): SQL {\n\t\tif (typeof this.forJsonSelect === 'function') return this.forJsonSelect(identifier, sql, arrayDimensions);\n\n\t\tconst rawType = this.getSQLType().toLowerCase();\n\t\tconst parenPos = rawType.indexOf('(');\n\t\tconst type = (parenPos + 1) ? rawType.slice(0, parenPos) : rawType;\n\n\t\tswitch (type) {\n\t\t\tcase 'bytea':\n\t\t\tcase 'geometry':\n\t\t\tcase 'timestamp':\n\t\t\tcase 'numeric':\n\t\t\tcase 'bigint': {\n\t\t\t\tconst arrVal = '[]'.repeat(arrayDimensions ?? 0);\n\n\t\t\t\treturn sql`${identifier}::text${sql.raw(arrVal).if(arrayDimensions)}`;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\treturn identifier;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride mapToDriverValue(value: T['data']): T['driverParam'] {\n\t\treturn typeof this.mapTo === 'function' ? this.mapTo(value) : value as T['data'];\n\t}\n}\n\nexport interface CustomTypeValues {\n\t/**\n\t * Required type for custom column, that will infer proper type model\n\t *\n\t * Examples:\n\t *\n\t * If you want your column to be `string` type after selecting/or on inserting - use `data: string`. Like `text`, `varchar`\n\t *\n\t * If you want your column to be `number` type after selecting/or on inserting - use `data: number`. Like `integer`\n\t */\n\tdata: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is accepting for specific database data type\n\t */\n\tdriverData?: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is returning for specific database data type\n\t *\n\t * Needed only in case driver's output and input for type differ\n\t *\n\t * Defaults to {@link driverData}\n\t */\n\tdriverOutput?: unknown;\n\n\t/**\n\t * Type helper, that represents what type field returns after being aggregated to JSON\n\t */\n\tjsonData?: unknown;\n\n\t/**\n\t * What config type should be used for {@link CustomTypeParams} `dataType` generation\n\t */\n\tconfig?: Record<string, any>;\n\n\t/**\n\t * Whether the config argument should be required or not\n\t * @default false\n\t */\n\tconfigRequired?: boolean;\n\n\t/**\n\t * If your custom data type should be notNull by default you can use `notNull: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tnotNull?: boolean;\n\n\t/**\n\t * If your custom data type has default you can use `default: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tdefault?: boolean;\n}\n\nexport interface CustomTypeParams<T extends CustomTypeValues> {\n\t/**\n\t * Database data type string representation, that is used for migrations\n\t * @example\n\t * ```\n\t * `jsonb`, `text`\n\t * ```\n\t *\n\t * If database data type needs additional params you can use them from `config` param\n\t * @example\n\t * ```\n\t * `varchar(256)`, `numeric(2,3)`\n\t * ```\n\t *\n\t * To make `config` be of specific type please use config generic in {@link CustomTypeValues}\n\t *\n\t * @example\n\t * Usage example\n\t * ```\n\t * dataType() {\n\t * return 'boolean';\n\t * },\n\t * ```\n\t * Or\n\t * ```\n\t * dataType(config) {\n\t * \t return typeof config.length !== 'undefined' ? `varchar(${config.length})` : `varchar`;\n\t * \t }\n\t * ```\n\t */\n\tdataType: (config: T['config'] | (Equal<T['configRequired'], true> extends true ? never : undefined)) => string;\n\n\t/**\n\t * Optional mapping function, that is used to transform inputs from desired to be used in code format to one suitable for driver\n\t * @example\n\t * For example, when using jsonb we need to map JS/TS object to string before writing to database\n\t * ```\n\t * toDriver(value: TData): string {\n\t * \t return JSON.stringify(value);\n\t * }\n\t * ```\n\t */\n\ttoDriver?: (value: T['data']) => T['driverData'] | SQL;\n\n\t/**\n\t * Optional mapping function, that is used for transforming data returned by driver to desired column's output format\n\t * @example\n\t * For example, when using timestamp we need to map string Date representation to JS Date\n\t * ```\n\t * fromDriver(value: string): Date {\n\t * \treturn new Date(value);\n\t * }\n\t * ```\n\t *\n\t * It'll cause the returned data to change from:\n\t * ```\n\t * {\n\t * \tcustomField: \"2025-04-07T03:25:16.635Z\";\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tcustomField: new Date(\"2025-04-07T03:25:16.635Z\");\n\t * }\n\t * ```\n\t */\n\tfromDriver?: (value: 'driverOutput' extends keyof T ? T['driverOutput'] : T['driverData']) => T['data'];\n\n\t/**\n\t * Optional mapping function, that is used for transforming data returned by transofmed to JSON in database data to desired format\n\t *\n\t * Used by [relational queries](https://orm.drizzle.team/docs/rqb-v2)\n\t *\n\t * Defaults to {@link fromDriver} function\n\t * @example\n\t * For example, when querying bigint column via [RQB](https://orm.drizzle.team/docs/rqb-v2) or [JSON functions](https://orm.drizzle.team/docs/json-functions), the result field will be returned as it's string representation, as opposed to bigint from regular query\n\t * To handle that, we need a separate function to handle such field's mapping:\n\t * ```\n\t * fromJson(value: string): bigint {\n\t * \treturn BigInt(value);\n\t * },\n\t * ```\n\t *\n\t * It'll cause the returned data to change from:\n\t * ```\n\t * {\n\t * \tcustomField: \"5044565289845416380\";\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tcustomField: 5044565289845416380n;\n\t * }\n\t * ```\n\t */\n\tfromJson?: (value: T['jsonData']) => T['data'];\n\n\t/**\n\t * Optional selection modifier function, that is used for modifying selection of column inside [JSON functions](https://orm.drizzle.team/docs/json-functions)\n\t *\n\t * Additional mapping that could be required for such scenarios can be handled using {@link fromJson} function\n\t *\n\t * Used by [relational queries](https://orm.drizzle.team/docs/rqb-v2)\n\t *\n\t * Following types are being casted to text by default: `bytea`, `geometry`, `timestamp`, `numeric`, `bigint`\n\t * @example\n\t * For example, when using bigint we need to cast field to text to preserve data integrity\n\t * ```\n\t * forJsonSelect(identifier: SQL, sql: SQLGenerator, arrayDimensions?: number): SQL {\n\t * \treturn sql`${identifier}::text`\n\t * },\n\t * ```\n\t *\n\t * This will change query from:\n\t * ```\n\t * SELECT\n\t * \trow_to_json(\"t\".*)\n\t * \tFROM\n\t * \t(\n\t * \t\tSELECT\n\t * \t\t\"table\".\"custom_bigint\" AS \"bigint\"\n\t * \t\tFROM\n\t * \t\t\"table\"\n\t * \t) AS \"t\"\n\t * ```\n\t * to:\n\t * ```\n\t * SELECT\n\t * \trow_to_json(\"t\".*)\n\t * \tFROM\n\t * \t(\n\t * \t\tSELECT\n\t * \t\t\"table\".\"custom_bigint\"::text AS \"bigint\"\n\t * \t\tFROM\n\t * \t\t\"table\"\n\t * \t) AS \"t\"\n\t * ```\n\t *\n\t * Returned by query object will change from:\n\t * ```\n\t * {\n\t * \tbigint: 5044565289845416000; // Partial data loss due to direct conversion to JSON format\n\t * }\n\t * ```\n\t * to:\n\t * ```\n\t * {\n\t * \tbigint: \"5044565289845416380\"; // Data is preserved due to conversion of field to text before JSON-ification\n\t * }\n\t * ```\n\t */\n\tforJsonSelect?: (identifier: SQL, sql: SQLGenerator, arrayDimensions?: number) => SQL;\n}\n\n/**\n * Custom pg database data type generator\n */\nexport function customType<T extends CustomTypeValues = CustomTypeValues>(\n\tcustomTypeParams: CustomTypeParams<T>,\n): Equal<T['configRequired'], true> extends true ? {\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig: TConfig,\n\t\t): PgCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t\t(\n\t\t\tdbName: string,\n\t\t\tfieldConfig: T['config'],\n\t\t): PgCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t}\n\t: {\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig?: TConfig,\n\t\t): PgCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t\t(\n\t\t\tdbName: string,\n\t\t\tfieldConfig?: T['config'],\n\t\t): PgCustomColumnBuilder<ConvertCustomConfig<T>>;\n\t}\n{\n\treturn (\n\t\ta?: string | T['config'],\n\t\tb?: T['config'],\n\t): PgCustomColumnBuilder<ConvertCustomConfig<T>> => {\n\t\tconst { name, config } = getColumnNameAndConfig<T['config']>(a, b);\n\t\treturn new PgCustomColumnBuilder(name as ConvertCustomConfig<T>['name'], config, customTypeParams);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,mBAAmD;AACnD,oBAA0C;AAgBnC,MAAM,8BAA2E,8BAMtF;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,MACA,aACA,kBACC;AACD,UAAM,MAAM,UAAU,gBAAgB;AACtC,SAAK,OAAO,cAAc;AAC1B,SAAK,OAAO,mBAAmB;AAAA,EAChC;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBAA6D,uBAAY;AAAA,EACrF,QAA0B,wBAAU,IAAY;AAAA,EAExC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,UAAU,OAAO,iBAAiB,SAAS,OAAO,WAAW;AAClE,SAAK,QAAQ,OAAO,iBAAiB;AACrC,SAAK,UAAU,OAAO,iBAAiB;AACvC,SAAK,UAAU,OAAO,iBAAiB;AACvC,SAAK,gBAAgB,OAAO,iBAAiB;AAAA,EAC9C;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK;AAAA,EACb;AAAA,EAES,mBAAmB,OAAoC;AAC/D,WAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,KAAK,IAAI;AAAA,EACnE;AAAA,EAEA,iBAAiB,OAA2B;AAC3C,WAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,KAAK,IAAI,KAAK,mBAAmB,KAAK;AAAA,EAChG;AAAA,EAEA,qBAAqB,YAAiB,KAAmB,iBAA+B;AACvF,QAAI,OAAO,KAAK,kBAAkB,WAAY,QAAO,KAAK,cAAc,YAAY,KAAK,eAAe;AAExG,UAAM,UAAU,KAAK,WAAW,EAAE,YAAY;AAC9C,UAAM,WAAW,QAAQ,QAAQ,GAAG;AACpC,UAAM,OAAQ,WAAW,IAAK,QAAQ,MAAM,GAAG,QAAQ,IAAI;AAE3D,YAAQ,MAAM;AAAA,MACb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,UAAU;AACd,cAAM,SAAS,KAAK,OAAO,mBAAmB,CAAC;AAE/C,eAAO,MAAM,UAAU,SAAS,IAAI,IAAI,MAAM,EAAE,GAAG,eAAe,CAAC;AAAA,MACpE;AAAA,MACA,SAAS;AACR,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAES,iBAAiB,OAAoC;AAC7D,WAAO,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,KAAK,IAAI;AAAA,EAC/D;AACD;AAoOO,SAAS,WACf,kBAmBD;AACC,SAAO,CACN,GACA,MACmD;AACnD,UAAM,EAAE,MAAM,OAAO,QAAI,qCAAoC,GAAG,CAAC;AACjE,WAAO,IAAI,sBAAsB,MAAwC,QAAQ,gBAAgB;AAAA,EAClG;AACD;","names":[]}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs";
|
|
2
2
|
import type { ColumnBaseConfig } from "../../column.cjs";
|
|
3
3
|
import { entityKind } from "../../entity.cjs";
|
|
4
|
-
import type {
|
|
4
|
+
import type { PgTable } from "../table.cjs";
|
|
5
5
|
import type { SQL, SQLGenerator } from "../../sql/sql.cjs";
|
|
6
6
|
import { type Equal } from "../../utils.cjs";
|
|
7
7
|
import { PgColumn, PgColumnBuilder } from "./common.cjs";
|
|
8
|
-
export type ConvertCustomConfig<
|
|
9
|
-
name:
|
|
8
|
+
export type ConvertCustomConfig<T extends Partial<CustomTypeValues>> = {
|
|
9
|
+
name: string;
|
|
10
10
|
dataType: 'custom';
|
|
11
|
-
columnType: 'PgCustomColumn';
|
|
12
11
|
data: T['data'];
|
|
13
12
|
driverParam: T['driverData'];
|
|
14
|
-
enumValues: undefined;
|
|
15
13
|
} & (T['notNull'] extends true ? {
|
|
16
14
|
notNull: true;
|
|
17
15
|
} : {}) & (T['default'] extends true ? {
|
|
@@ -20,25 +18,21 @@ export type ConvertCustomConfig<TName extends string, T extends Partial<CustomTy
|
|
|
20
18
|
export interface PgCustomColumnInnerConfig {
|
|
21
19
|
customTypeValues: CustomTypeValues;
|
|
22
20
|
}
|
|
23
|
-
export declare class PgCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom'
|
|
21
|
+
export declare class PgCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom'>> extends PgColumnBuilder<T, {
|
|
24
22
|
fieldConfig: CustomTypeValues['config'];
|
|
25
23
|
customTypeParams: CustomTypeParams<any>;
|
|
26
|
-
}, {
|
|
27
|
-
pgColumnBuilderBrand: 'PgCustomColumnBuilderBrand';
|
|
28
24
|
}> {
|
|
29
25
|
static readonly [entityKind]: string;
|
|
30
|
-
constructor(name:
|
|
26
|
+
constructor(name: string, fieldConfig: CustomTypeValues['config'], customTypeParams: CustomTypeParams<any>);
|
|
31
27
|
}
|
|
32
|
-
export declare class PgCustomColumn<T extends ColumnBaseConfig<'custom'
|
|
28
|
+
export declare class PgCustomColumn<T extends ColumnBaseConfig<'custom'>> extends PgColumn<T> {
|
|
33
29
|
static readonly [entityKind]: string;
|
|
34
30
|
private sqlName;
|
|
35
31
|
private mapTo?;
|
|
36
32
|
private mapFrom?;
|
|
37
33
|
private mapJson?;
|
|
38
34
|
private forJsonSelect?;
|
|
39
|
-
constructor(table:
|
|
40
|
-
name: T['tableName'];
|
|
41
|
-
}>, config: PgCustomColumnBuilder<T>['config']);
|
|
35
|
+
constructor(table: PgTable<any>, config: PgCustomColumnBuilder<T>['config']);
|
|
42
36
|
getSQLType(): string;
|
|
43
37
|
mapFromDriverValue(value: T['driverParam']): T['data'];
|
|
44
38
|
mapFromJsonValue(value: unknown): T['data'];
|
|
@@ -259,10 +253,9 @@ export interface CustomTypeParams<T extends CustomTypeValues> {
|
|
|
259
253
|
* Custom pg database data type generator
|
|
260
254
|
*/
|
|
261
255
|
export declare function customType<T extends CustomTypeValues = CustomTypeValues>(customTypeParams: CustomTypeParams<T>): Equal<T['configRequired'], true> extends true ? {
|
|
262
|
-
<TConfig extends Record<string, any> & T['config']>(fieldConfig: TConfig): PgCustomColumnBuilder<ConvertCustomConfig<
|
|
263
|
-
|
|
256
|
+
<TConfig extends Record<string, any> & T['config']>(fieldConfig: TConfig): PgCustomColumnBuilder<ConvertCustomConfig<T>>;
|
|
257
|
+
(dbName: string, fieldConfig: T['config']): PgCustomColumnBuilder<ConvertCustomConfig<T>>;
|
|
264
258
|
} : {
|
|
265
|
-
(): PgCustomColumnBuilder<ConvertCustomConfig<
|
|
266
|
-
|
|
267
|
-
<TName extends string>(dbName: TName, fieldConfig?: T['config']): PgCustomColumnBuilder<ConvertCustomConfig<TName, T>>;
|
|
259
|
+
<TConfig extends Record<string, any> & T['config']>(fieldConfig?: TConfig): PgCustomColumnBuilder<ConvertCustomConfig<T>>;
|
|
260
|
+
(dbName: string, fieldConfig?: T['config']): PgCustomColumnBuilder<ConvertCustomConfig<T>>;
|
|
268
261
|
};
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import type { ColumnBuilderBaseConfig } from "../../column-builder.js";
|
|
2
2
|
import type { ColumnBaseConfig } from "../../column.js";
|
|
3
3
|
import { entityKind } from "../../entity.js";
|
|
4
|
-
import type {
|
|
4
|
+
import type { PgTable } from "../table.js";
|
|
5
5
|
import type { SQL, SQLGenerator } from "../../sql/sql.js";
|
|
6
6
|
import { type Equal } from "../../utils.js";
|
|
7
7
|
import { PgColumn, PgColumnBuilder } from "./common.js";
|
|
8
|
-
export type ConvertCustomConfig<
|
|
9
|
-
name:
|
|
8
|
+
export type ConvertCustomConfig<T extends Partial<CustomTypeValues>> = {
|
|
9
|
+
name: string;
|
|
10
10
|
dataType: 'custom';
|
|
11
|
-
columnType: 'PgCustomColumn';
|
|
12
11
|
data: T['data'];
|
|
13
12
|
driverParam: T['driverData'];
|
|
14
|
-
enumValues: undefined;
|
|
15
13
|
} & (T['notNull'] extends true ? {
|
|
16
14
|
notNull: true;
|
|
17
15
|
} : {}) & (T['default'] extends true ? {
|
|
@@ -20,25 +18,21 @@ export type ConvertCustomConfig<TName extends string, T extends Partial<CustomTy
|
|
|
20
18
|
export interface PgCustomColumnInnerConfig {
|
|
21
19
|
customTypeValues: CustomTypeValues;
|
|
22
20
|
}
|
|
23
|
-
export declare class PgCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom'
|
|
21
|
+
export declare class PgCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom'>> extends PgColumnBuilder<T, {
|
|
24
22
|
fieldConfig: CustomTypeValues['config'];
|
|
25
23
|
customTypeParams: CustomTypeParams<any>;
|
|
26
|
-
}, {
|
|
27
|
-
pgColumnBuilderBrand: 'PgCustomColumnBuilderBrand';
|
|
28
24
|
}> {
|
|
29
25
|
static readonly [entityKind]: string;
|
|
30
|
-
constructor(name:
|
|
26
|
+
constructor(name: string, fieldConfig: CustomTypeValues['config'], customTypeParams: CustomTypeParams<any>);
|
|
31
27
|
}
|
|
32
|
-
export declare class PgCustomColumn<T extends ColumnBaseConfig<'custom'
|
|
28
|
+
export declare class PgCustomColumn<T extends ColumnBaseConfig<'custom'>> extends PgColumn<T> {
|
|
33
29
|
static readonly [entityKind]: string;
|
|
34
30
|
private sqlName;
|
|
35
31
|
private mapTo?;
|
|
36
32
|
private mapFrom?;
|
|
37
33
|
private mapJson?;
|
|
38
34
|
private forJsonSelect?;
|
|
39
|
-
constructor(table:
|
|
40
|
-
name: T['tableName'];
|
|
41
|
-
}>, config: PgCustomColumnBuilder<T>['config']);
|
|
35
|
+
constructor(table: PgTable<any>, config: PgCustomColumnBuilder<T>['config']);
|
|
42
36
|
getSQLType(): string;
|
|
43
37
|
mapFromDriverValue(value: T['driverParam']): T['data'];
|
|
44
38
|
mapFromJsonValue(value: unknown): T['data'];
|
|
@@ -259,10 +253,9 @@ export interface CustomTypeParams<T extends CustomTypeValues> {
|
|
|
259
253
|
* Custom pg database data type generator
|
|
260
254
|
*/
|
|
261
255
|
export declare function customType<T extends CustomTypeValues = CustomTypeValues>(customTypeParams: CustomTypeParams<T>): Equal<T['configRequired'], true> extends true ? {
|
|
262
|
-
<TConfig extends Record<string, any> & T['config']>(fieldConfig: TConfig): PgCustomColumnBuilder<ConvertCustomConfig<
|
|
263
|
-
|
|
256
|
+
<TConfig extends Record<string, any> & T['config']>(fieldConfig: TConfig): PgCustomColumnBuilder<ConvertCustomConfig<T>>;
|
|
257
|
+
(dbName: string, fieldConfig: T['config']): PgCustomColumnBuilder<ConvertCustomConfig<T>>;
|
|
264
258
|
} : {
|
|
265
|
-
(): PgCustomColumnBuilder<ConvertCustomConfig<
|
|
266
|
-
|
|
267
|
-
<TName extends string>(dbName: TName, fieldConfig?: T['config']): PgCustomColumnBuilder<ConvertCustomConfig<TName, T>>;
|
|
259
|
+
<TConfig extends Record<string, any> & T['config']>(fieldConfig?: TConfig): PgCustomColumnBuilder<ConvertCustomConfig<T>>;
|
|
260
|
+
(dbName: string, fieldConfig?: T['config']): PgCustomColumnBuilder<ConvertCustomConfig<T>>;
|
|
268
261
|
};
|