drizzle-orm 0.41.0 → 0.42.0-da9af74

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.
Files changed (562) hide show
  1. package/aws-data-api/pg/driver.cjs +5 -1
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +1 -0
  4. package/aws-data-api/pg/driver.d.ts +1 -0
  5. package/aws-data-api/pg/driver.js +5 -1
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +15 -4
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +13 -2
  10. package/aws-data-api/pg/session.d.ts +13 -2
  11. package/aws-data-api/pg/session.js +15 -4
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs.map +1 -1
  14. package/better-sqlite3/driver.js.map +1 -1
  15. package/better-sqlite3/session.cjs +9 -3
  16. package/better-sqlite3/session.cjs.map +1 -1
  17. package/better-sqlite3/session.d.cts +12 -2
  18. package/better-sqlite3/session.d.ts +12 -2
  19. package/better-sqlite3/session.js +9 -3
  20. package/better-sqlite3/session.js.map +1 -1
  21. package/bun-sql/driver.cjs +5 -1
  22. package/bun-sql/driver.cjs.map +1 -1
  23. package/bun-sql/driver.js +5 -1
  24. package/bun-sql/driver.js.map +1 -1
  25. package/bun-sql/session.cjs +21 -9
  26. package/bun-sql/session.cjs.map +1 -1
  27. package/bun-sql/session.d.cts +12 -2
  28. package/bun-sql/session.d.ts +12 -2
  29. package/bun-sql/session.js +21 -9
  30. package/bun-sql/session.js.map +1 -1
  31. package/cache/core/cache.cjs +47 -0
  32. package/cache/core/cache.cjs.map +1 -0
  33. package/cache/core/cache.d.cts +35 -0
  34. package/cache/core/cache.d.ts +35 -0
  35. package/cache/core/cache.js +22 -0
  36. package/cache/core/cache.js.map +1 -0
  37. package/{expressions.cjs → cache/core/index.cjs} +5 -5
  38. package/cache/core/index.cjs.map +1 -0
  39. package/cache/core/index.d.cts +1 -0
  40. package/cache/core/index.d.ts +1 -0
  41. package/cache/core/index.js +2 -0
  42. package/cache/core/index.js.map +1 -0
  43. package/cache/core/types.cjs +17 -0
  44. package/cache/core/types.cjs.map +1 -0
  45. package/cache/core/types.d.cts +33 -0
  46. package/cache/core/types.d.ts +33 -0
  47. package/cache/core/types.js +1 -0
  48. package/cache/core/types.js.map +1 -0
  49. package/cache/upstash/cache.cjs +148 -0
  50. package/cache/upstash/cache.cjs.map +1 -0
  51. package/cache/upstash/cache.d.cts +29 -0
  52. package/cache/upstash/cache.d.ts +29 -0
  53. package/cache/upstash/cache.js +123 -0
  54. package/cache/upstash/cache.js.map +1 -0
  55. package/cache/upstash/index.cjs +23 -0
  56. package/cache/upstash/index.cjs.map +1 -0
  57. package/cache/upstash/index.d.cts +1 -0
  58. package/cache/upstash/index.d.ts +1 -0
  59. package/cache/upstash/index.js +2 -0
  60. package/cache/upstash/index.js.map +1 -0
  61. package/d1/driver.cjs +5 -1
  62. package/d1/driver.cjs.map +1 -1
  63. package/d1/driver.js +5 -1
  64. package/d1/driver.js.map +1 -1
  65. package/d1/session.cjs +23 -9
  66. package/d1/session.cjs.map +1 -1
  67. package/d1/session.d.cts +12 -2
  68. package/d1/session.d.ts +12 -2
  69. package/d1/session.js +23 -9
  70. package/d1/session.js.map +1 -1
  71. package/durable-sqlite/session.cjs +1 -1
  72. package/durable-sqlite/session.cjs.map +1 -1
  73. package/durable-sqlite/session.js +1 -1
  74. package/durable-sqlite/session.js.map +1 -1
  75. package/gel/driver.cjs +9 -2
  76. package/gel/driver.cjs.map +1 -1
  77. package/gel/driver.d.cts +2 -0
  78. package/gel/driver.d.ts +2 -0
  79. package/gel/driver.js +9 -2
  80. package/gel/driver.js.map +1 -1
  81. package/gel/session.cjs +25 -10
  82. package/gel/session.cjs.map +1 -1
  83. package/gel/session.d.cts +12 -2
  84. package/gel/session.d.ts +12 -2
  85. package/gel/session.js +25 -10
  86. package/gel/session.js.map +1 -1
  87. package/gel-core/db.cjs +1 -0
  88. package/gel-core/db.cjs.map +1 -1
  89. package/gel-core/db.d.cts +4 -0
  90. package/gel-core/db.d.ts +4 -0
  91. package/gel-core/db.js +1 -0
  92. package/gel-core/db.js.map +1 -1
  93. package/gel-core/expressions.cjs +3 -3
  94. package/gel-core/expressions.cjs.map +1 -1
  95. package/gel-core/expressions.d.cts +1 -1
  96. package/gel-core/expressions.d.ts +1 -1
  97. package/gel-core/expressions.js +2 -2
  98. package/gel-core/expressions.js.map +1 -1
  99. package/gel-core/query-builders/delete.cjs +5 -1
  100. package/gel-core/query-builders/delete.cjs.map +1 -1
  101. package/gel-core/query-builders/delete.js +5 -1
  102. package/gel-core/query-builders/delete.js.map +1 -1
  103. package/gel-core/query-builders/insert.cjs +5 -1
  104. package/gel-core/query-builders/insert.cjs.map +1 -1
  105. package/gel-core/query-builders/insert.js +5 -1
  106. package/gel-core/query-builders/insert.js.map +1 -1
  107. package/gel-core/query-builders/select.cjs +29 -4
  108. package/gel-core/query-builders/select.cjs.map +1 -1
  109. package/gel-core/query-builders/select.d.cts +9 -0
  110. package/gel-core/query-builders/select.d.ts +9 -0
  111. package/gel-core/query-builders/select.js +29 -4
  112. package/gel-core/query-builders/select.js.map +1 -1
  113. package/gel-core/query-builders/update.cjs +5 -1
  114. package/gel-core/query-builders/update.cjs.map +1 -1
  115. package/gel-core/query-builders/update.js +5 -1
  116. package/gel-core/query-builders/update.js.map +1 -1
  117. package/gel-core/session.cjs +52 -1
  118. package/gel-core/session.cjs.map +1 -1
  119. package/gel-core/session.d.cts +14 -3
  120. package/gel-core/session.d.ts +14 -3
  121. package/gel-core/session.js +53 -2
  122. package/gel-core/session.js.map +1 -1
  123. package/gel-core/utils.cjs +16 -0
  124. package/gel-core/utils.cjs.map +1 -1
  125. package/gel-core/utils.d.cts +8 -4
  126. package/gel-core/utils.d.ts +8 -4
  127. package/gel-core/utils.js +15 -0
  128. package/gel-core/utils.js.map +1 -1
  129. package/index.cjs +0 -2
  130. package/index.cjs.map +1 -1
  131. package/index.d.cts +0 -1
  132. package/index.d.ts +0 -1
  133. package/index.js +0 -1
  134. package/index.js.map +1 -1
  135. package/libsql/driver-core.cjs +5 -1
  136. package/libsql/driver-core.cjs.map +1 -1
  137. package/libsql/driver-core.js +5 -1
  138. package/libsql/driver-core.js.map +1 -1
  139. package/libsql/session.cjs +27 -13
  140. package/libsql/session.cjs.map +1 -1
  141. package/libsql/session.d.cts +12 -2
  142. package/libsql/session.d.ts +12 -2
  143. package/libsql/session.js +27 -13
  144. package/libsql/session.js.map +1 -1
  145. package/mysql-core/columns/enum.cjs +40 -5
  146. package/mysql-core/columns/enum.cjs.map +1 -1
  147. package/mysql-core/columns/enum.d.cts +25 -2
  148. package/mysql-core/columns/enum.d.ts +25 -2
  149. package/mysql-core/columns/enum.js +38 -5
  150. package/mysql-core/columns/enum.js.map +1 -1
  151. package/mysql-core/db.cjs +1 -0
  152. package/mysql-core/db.cjs.map +1 -1
  153. package/mysql-core/db.d.cts +4 -0
  154. package/mysql-core/db.d.ts +4 -0
  155. package/mysql-core/db.js +1 -0
  156. package/mysql-core/db.js.map +1 -1
  157. package/mysql-core/dialect.cjs +1 -1
  158. package/mysql-core/dialect.cjs.map +1 -1
  159. package/mysql-core/dialect.js +1 -1
  160. package/mysql-core/dialect.js.map +1 -1
  161. package/mysql-core/expressions.cjs +3 -3
  162. package/mysql-core/expressions.cjs.map +1 -1
  163. package/mysql-core/expressions.d.cts +1 -1
  164. package/mysql-core/expressions.d.ts +1 -1
  165. package/mysql-core/expressions.js +2 -2
  166. package/mysql-core/expressions.js.map +1 -1
  167. package/mysql-core/query-builders/delete.cjs +9 -1
  168. package/mysql-core/query-builders/delete.cjs.map +1 -1
  169. package/mysql-core/query-builders/delete.js +9 -1
  170. package/mysql-core/query-builders/delete.js.map +1 -1
  171. package/mysql-core/query-builders/insert.cjs +8 -1
  172. package/mysql-core/query-builders/insert.cjs.map +1 -1
  173. package/mysql-core/query-builders/insert.d.cts +2 -0
  174. package/mysql-core/query-builders/insert.d.ts +2 -0
  175. package/mysql-core/query-builders/insert.js +8 -1
  176. package/mysql-core/query-builders/insert.js.map +1 -1
  177. package/mysql-core/query-builders/select.cjs +27 -3
  178. package/mysql-core/query-builders/select.cjs.map +1 -1
  179. package/mysql-core/query-builders/select.d.cts +9 -0
  180. package/mysql-core/query-builders/select.d.ts +9 -0
  181. package/mysql-core/query-builders/select.js +28 -4
  182. package/mysql-core/query-builders/select.js.map +1 -1
  183. package/mysql-core/query-builders/update.cjs +11 -1
  184. package/mysql-core/query-builders/update.cjs.map +1 -1
  185. package/mysql-core/query-builders/update.d.cts +2 -0
  186. package/mysql-core/query-builders/update.d.ts +2 -0
  187. package/mysql-core/query-builders/update.js +11 -1
  188. package/mysql-core/query-builders/update.js.map +1 -1
  189. package/mysql-core/session.cjs +53 -0
  190. package/mysql-core/session.cjs.map +1 -1
  191. package/mysql-core/session.d.cts +15 -2
  192. package/mysql-core/session.d.ts +15 -2
  193. package/mysql-core/session.js +54 -1
  194. package/mysql-core/session.js.map +1 -1
  195. package/mysql-core/utils.cjs +16 -0
  196. package/mysql-core/utils.cjs.map +1 -1
  197. package/mysql-core/utils.d.cts +6 -2
  198. package/mysql-core/utils.d.ts +6 -2
  199. package/mysql-core/utils.js +15 -0
  200. package/mysql-core/utils.js.map +1 -1
  201. package/mysql-proxy/session.cjs +15 -5
  202. package/mysql-proxy/session.cjs.map +1 -1
  203. package/mysql-proxy/session.d.cts +12 -2
  204. package/mysql-proxy/session.d.ts +12 -2
  205. package/mysql-proxy/session.js +15 -5
  206. package/mysql-proxy/session.js.map +1 -1
  207. package/mysql2/driver.cjs +10 -2
  208. package/mysql2/driver.cjs.map +1 -1
  209. package/mysql2/driver.d.cts +2 -0
  210. package/mysql2/driver.d.ts +2 -0
  211. package/mysql2/driver.js +10 -2
  212. package/mysql2/driver.js.map +1 -1
  213. package/mysql2/session.cjs +15 -5
  214. package/mysql2/session.cjs.map +1 -1
  215. package/mysql2/session.d.cts +12 -2
  216. package/mysql2/session.d.ts +12 -2
  217. package/mysql2/session.js +15 -5
  218. package/mysql2/session.js.map +1 -1
  219. package/neon-http/driver.cjs +9 -2
  220. package/neon-http/driver.cjs.map +1 -1
  221. package/neon-http/driver.d.cts +2 -0
  222. package/neon-http/driver.d.ts +2 -0
  223. package/neon-http/driver.js +9 -2
  224. package/neon-http/driver.js.map +1 -1
  225. package/neon-http/session.cjs +25 -15
  226. package/neon-http/session.cjs.map +1 -1
  227. package/neon-http/session.d.cts +12 -2
  228. package/neon-http/session.d.ts +12 -2
  229. package/neon-http/session.js +25 -15
  230. package/neon-http/session.js.map +1 -1
  231. package/neon-serverless/driver.cjs +9 -2
  232. package/neon-serverless/driver.cjs.map +1 -1
  233. package/neon-serverless/driver.d.cts +2 -0
  234. package/neon-serverless/driver.d.ts +2 -0
  235. package/neon-serverless/driver.js +9 -2
  236. package/neon-serverless/driver.js.map +1 -1
  237. package/neon-serverless/session.cjs +21 -7
  238. package/neon-serverless/session.cjs.map +1 -1
  239. package/neon-serverless/session.d.cts +12 -2
  240. package/neon-serverless/session.d.ts +12 -2
  241. package/neon-serverless/session.js +21 -7
  242. package/neon-serverless/session.js.map +1 -1
  243. package/node-postgres/driver.cjs +9 -2
  244. package/node-postgres/driver.cjs.map +1 -1
  245. package/node-postgres/driver.d.cts +2 -0
  246. package/node-postgres/driver.d.ts +2 -0
  247. package/node-postgres/driver.js +9 -2
  248. package/node-postgres/driver.js.map +1 -1
  249. package/node-postgres/session.cjs +19 -6
  250. package/node-postgres/session.cjs.map +1 -1
  251. package/node-postgres/session.d.cts +13 -2
  252. package/node-postgres/session.d.ts +13 -2
  253. package/node-postgres/session.js +19 -6
  254. package/node-postgres/session.js.map +1 -1
  255. package/op-sqlite/driver.cjs +5 -1
  256. package/op-sqlite/driver.cjs.map +1 -1
  257. package/op-sqlite/driver.js +5 -1
  258. package/op-sqlite/driver.js.map +1 -1
  259. package/op-sqlite/session.cjs +23 -9
  260. package/op-sqlite/session.cjs.map +1 -1
  261. package/op-sqlite/session.d.cts +12 -2
  262. package/op-sqlite/session.d.ts +12 -2
  263. package/op-sqlite/session.js +23 -9
  264. package/op-sqlite/session.js.map +1 -1
  265. package/package.json +120 -65
  266. package/pg-core/columns/enum.cjs +46 -2
  267. package/pg-core/columns/enum.cjs.map +1 -1
  268. package/pg-core/columns/enum.d.cts +39 -1
  269. package/pg-core/columns/enum.d.ts +39 -1
  270. package/pg-core/columns/enum.js +43 -2
  271. package/pg-core/columns/enum.js.map +1 -1
  272. package/pg-core/db.cjs +1 -0
  273. package/pg-core/db.cjs.map +1 -1
  274. package/pg-core/db.d.cts +4 -0
  275. package/pg-core/db.d.ts +4 -0
  276. package/pg-core/db.js +1 -0
  277. package/pg-core/db.js.map +1 -1
  278. package/pg-core/expressions.cjs +3 -3
  279. package/pg-core/expressions.cjs.map +1 -1
  280. package/pg-core/expressions.d.cts +1 -1
  281. package/pg-core/expressions.d.ts +1 -1
  282. package/pg-core/expressions.js +2 -2
  283. package/pg-core/expressions.js.map +1 -1
  284. package/pg-core/query-builders/delete.cjs +6 -1
  285. package/pg-core/query-builders/delete.cjs.map +1 -1
  286. package/pg-core/query-builders/delete.d.cts +3 -1
  287. package/pg-core/query-builders/delete.d.ts +3 -1
  288. package/pg-core/query-builders/delete.js +6 -1
  289. package/pg-core/query-builders/delete.js.map +1 -1
  290. package/pg-core/query-builders/insert.cjs +6 -1
  291. package/pg-core/query-builders/insert.cjs.map +1 -1
  292. package/pg-core/query-builders/insert.d.cts +2 -0
  293. package/pg-core/query-builders/insert.d.ts +2 -0
  294. package/pg-core/query-builders/insert.js +6 -1
  295. package/pg-core/query-builders/insert.js.map +1 -1
  296. package/pg-core/query-builders/select.cjs +31 -5
  297. package/pg-core/query-builders/select.cjs.map +1 -1
  298. package/pg-core/query-builders/select.d.cts +10 -1
  299. package/pg-core/query-builders/select.d.ts +10 -1
  300. package/pg-core/query-builders/select.js +31 -5
  301. package/pg-core/query-builders/select.js.map +1 -1
  302. package/pg-core/query-builders/update.cjs +6 -1
  303. package/pg-core/query-builders/update.cjs.map +1 -1
  304. package/pg-core/query-builders/update.d.cts +4 -2
  305. package/pg-core/query-builders/update.d.ts +4 -2
  306. package/pg-core/query-builders/update.js +6 -1
  307. package/pg-core/query-builders/update.js.map +1 -1
  308. package/pg-core/schema.cjs +6 -2
  309. package/pg-core/schema.cjs.map +1 -1
  310. package/pg-core/schema.d.cts +1 -2
  311. package/pg-core/schema.d.ts +1 -2
  312. package/pg-core/schema.js +7 -3
  313. package/pg-core/schema.js.map +1 -1
  314. package/pg-core/session.cjs +52 -1
  315. package/pg-core/session.cjs.map +1 -1
  316. package/pg-core/session.d.cts +14 -3
  317. package/pg-core/session.d.ts +14 -3
  318. package/pg-core/session.js +53 -2
  319. package/pg-core/session.js.map +1 -1
  320. package/pg-core/utils.cjs +16 -0
  321. package/pg-core/utils.cjs.map +1 -1
  322. package/pg-core/utils.d.cts +8 -4
  323. package/pg-core/utils.d.ts +8 -4
  324. package/pg-core/utils.js +16 -1
  325. package/pg-core/utils.js.map +1 -1
  326. package/pg-proxy/driver.cjs +7 -2
  327. package/pg-proxy/driver.cjs.map +1 -1
  328. package/pg-proxy/driver.js +7 -2
  329. package/pg-proxy/driver.js.map +1 -1
  330. package/pg-proxy/session.cjs +15 -5
  331. package/pg-proxy/session.cjs.map +1 -1
  332. package/pg-proxy/session.d.cts +12 -2
  333. package/pg-proxy/session.d.ts +12 -2
  334. package/pg-proxy/session.js +15 -5
  335. package/pg-proxy/session.js.map +1 -1
  336. package/pglite/driver.cjs +9 -2
  337. package/pglite/driver.cjs.map +1 -1
  338. package/pglite/driver.d.cts +2 -0
  339. package/pglite/driver.d.ts +2 -0
  340. package/pglite/driver.js +9 -2
  341. package/pglite/driver.js.map +1 -1
  342. package/pglite/session.cjs +19 -7
  343. package/pglite/session.cjs.map +1 -1
  344. package/pglite/session.d.cts +12 -2
  345. package/pglite/session.d.ts +12 -2
  346. package/pglite/session.js +19 -7
  347. package/pglite/session.js.map +1 -1
  348. package/planetscale-serverless/driver.cjs +5 -1
  349. package/planetscale-serverless/driver.cjs.map +1 -1
  350. package/planetscale-serverless/driver.d.cts +1 -0
  351. package/planetscale-serverless/driver.d.ts +1 -0
  352. package/planetscale-serverless/driver.js +5 -1
  353. package/planetscale-serverless/driver.js.map +1 -1
  354. package/planetscale-serverless/session.cjs +15 -5
  355. package/planetscale-serverless/session.cjs.map +1 -1
  356. package/planetscale-serverless/session.d.cts +12 -2
  357. package/planetscale-serverless/session.d.ts +12 -2
  358. package/planetscale-serverless/session.js +15 -5
  359. package/planetscale-serverless/session.js.map +1 -1
  360. package/postgres-js/driver.cjs +5 -1
  361. package/postgres-js/driver.cjs.map +1 -1
  362. package/postgres-js/driver.js +5 -1
  363. package/postgres-js/driver.js.map +1 -1
  364. package/postgres-js/session.cjs +18 -6
  365. package/postgres-js/session.cjs.map +1 -1
  366. package/postgres-js/session.d.cts +12 -2
  367. package/postgres-js/session.d.ts +12 -2
  368. package/postgres-js/session.js +18 -6
  369. package/postgres-js/session.js.map +1 -1
  370. package/prisma/mysql/session.cjs +1 -1
  371. package/prisma/mysql/session.cjs.map +1 -1
  372. package/prisma/mysql/session.js +1 -1
  373. package/prisma/mysql/session.js.map +1 -1
  374. package/prisma/pg/session.cjs +1 -1
  375. package/prisma/pg/session.cjs.map +1 -1
  376. package/prisma/pg/session.js +1 -1
  377. package/prisma/pg/session.js.map +1 -1
  378. package/query-builders/query-builder.cjs.map +1 -1
  379. package/query-builders/query-builder.d.cts +2 -1
  380. package/query-builders/query-builder.d.ts +2 -1
  381. package/query-builders/query-builder.js.map +1 -1
  382. package/relations.d.cts +6 -6
  383. package/relations.d.ts +6 -6
  384. package/singlestore/driver.cjs +12 -2
  385. package/singlestore/driver.cjs.map +1 -1
  386. package/singlestore/driver.d.cts +2 -0
  387. package/singlestore/driver.d.ts +2 -0
  388. package/singlestore/driver.js +12 -2
  389. package/singlestore/driver.js.map +1 -1
  390. package/singlestore/session.cjs +15 -5
  391. package/singlestore/session.cjs.map +1 -1
  392. package/singlestore/session.d.cts +12 -2
  393. package/singlestore/session.d.ts +12 -2
  394. package/singlestore/session.js +15 -5
  395. package/singlestore/session.js.map +1 -1
  396. package/singlestore-core/db.cjs +1 -0
  397. package/singlestore-core/db.cjs.map +1 -1
  398. package/singlestore-core/db.d.cts +4 -0
  399. package/singlestore-core/db.d.ts +4 -0
  400. package/singlestore-core/db.js +1 -0
  401. package/singlestore-core/db.js.map +1 -1
  402. package/singlestore-core/dialect.cjs +1 -1
  403. package/singlestore-core/dialect.cjs.map +1 -1
  404. package/singlestore-core/dialect.js +1 -1
  405. package/singlestore-core/dialect.js.map +1 -1
  406. package/singlestore-core/expressions.cjs +3 -3
  407. package/singlestore-core/expressions.cjs.map +1 -1
  408. package/singlestore-core/expressions.d.cts +1 -1
  409. package/singlestore-core/expressions.d.ts +1 -1
  410. package/singlestore-core/expressions.js +2 -2
  411. package/singlestore-core/expressions.js.map +1 -1
  412. package/singlestore-core/query-builders/delete.cjs +9 -1
  413. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  414. package/singlestore-core/query-builders/delete.js +9 -1
  415. package/singlestore-core/query-builders/delete.js.map +1 -1
  416. package/singlestore-core/query-builders/insert.cjs +6 -1
  417. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  418. package/singlestore-core/query-builders/insert.js +6 -1
  419. package/singlestore-core/query-builders/insert.js.map +1 -1
  420. package/singlestore-core/query-builders/select.cjs +28 -3
  421. package/singlestore-core/query-builders/select.cjs.map +1 -1
  422. package/singlestore-core/query-builders/select.d.cts +9 -0
  423. package/singlestore-core/query-builders/select.d.ts +9 -0
  424. package/singlestore-core/query-builders/select.js +28 -3
  425. package/singlestore-core/query-builders/select.js.map +1 -1
  426. package/singlestore-core/query-builders/update.cjs +9 -1
  427. package/singlestore-core/query-builders/update.cjs.map +1 -1
  428. package/singlestore-core/query-builders/update.js +9 -1
  429. package/singlestore-core/query-builders/update.js.map +1 -1
  430. package/singlestore-core/session.cjs +53 -0
  431. package/singlestore-core/session.cjs.map +1 -1
  432. package/singlestore-core/session.d.cts +14 -2
  433. package/singlestore-core/session.d.ts +14 -2
  434. package/singlestore-core/session.js +54 -1
  435. package/singlestore-core/session.js.map +1 -1
  436. package/singlestore-core/utils.cjs +16 -0
  437. package/singlestore-core/utils.cjs.map +1 -1
  438. package/singlestore-core/utils.d.cts +3 -0
  439. package/singlestore-core/utils.d.ts +3 -0
  440. package/singlestore-core/utils.js +15 -0
  441. package/singlestore-core/utils.js.map +1 -1
  442. package/sql/expressions/conditions.cjs.map +1 -1
  443. package/sql/expressions/conditions.d.cts +2 -2
  444. package/sql/expressions/conditions.d.ts +2 -2
  445. package/sql/expressions/conditions.js.map +1 -1
  446. package/sql/sql.cjs +10 -0
  447. package/sql/sql.cjs.map +1 -1
  448. package/sql/sql.js +10 -0
  449. package/sql/sql.js.map +1 -1
  450. package/sqlite-core/db.cjs +1 -0
  451. package/sqlite-core/db.cjs.map +1 -1
  452. package/sqlite-core/db.d.cts +4 -0
  453. package/sqlite-core/db.d.ts +4 -0
  454. package/sqlite-core/db.js +1 -0
  455. package/sqlite-core/db.js.map +1 -1
  456. package/sqlite-core/expressions.cjs +3 -3
  457. package/sqlite-core/expressions.cjs.map +1 -1
  458. package/sqlite-core/expressions.d.cts +1 -1
  459. package/sqlite-core/expressions.d.ts +1 -1
  460. package/sqlite-core/expressions.js +2 -2
  461. package/sqlite-core/expressions.js.map +1 -1
  462. package/sqlite-core/query-builders/delete.cjs +7 -1
  463. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  464. package/sqlite-core/query-builders/delete.js +7 -1
  465. package/sqlite-core/query-builders/delete.js.map +1 -1
  466. package/sqlite-core/query-builders/insert.cjs +7 -1
  467. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  468. package/sqlite-core/query-builders/insert.js +7 -1
  469. package/sqlite-core/query-builders/insert.js.map +1 -1
  470. package/sqlite-core/query-builders/select.cjs +31 -3
  471. package/sqlite-core/query-builders/select.cjs.map +1 -1
  472. package/sqlite-core/query-builders/select.d.cts +9 -0
  473. package/sqlite-core/query-builders/select.d.ts +9 -0
  474. package/sqlite-core/query-builders/select.js +31 -3
  475. package/sqlite-core/query-builders/select.js.map +1 -1
  476. package/sqlite-core/query-builders/update.cjs +7 -1
  477. package/sqlite-core/query-builders/update.cjs.map +1 -1
  478. package/sqlite-core/query-builders/update.js +7 -1
  479. package/sqlite-core/query-builders/update.js.map +1 -1
  480. package/sqlite-core/session.cjs +62 -3
  481. package/sqlite-core/session.cjs.map +1 -1
  482. package/sqlite-core/session.d.cts +18 -4
  483. package/sqlite-core/session.d.ts +18 -4
  484. package/sqlite-core/session.js +63 -4
  485. package/sqlite-core/session.js.map +1 -1
  486. package/sqlite-core/utils.cjs +16 -0
  487. package/sqlite-core/utils.cjs.map +1 -1
  488. package/sqlite-core/utils.d.cts +6 -2
  489. package/sqlite-core/utils.d.ts +6 -2
  490. package/sqlite-core/utils.js +15 -0
  491. package/sqlite-core/utils.js.map +1 -1
  492. package/sqlite-proxy/driver.cjs +9 -2
  493. package/sqlite-proxy/driver.cjs.map +1 -1
  494. package/sqlite-proxy/driver.js +9 -2
  495. package/sqlite-proxy/driver.js.map +1 -1
  496. package/sqlite-proxy/session.cjs +22 -8
  497. package/sqlite-proxy/session.cjs.map +1 -1
  498. package/sqlite-proxy/session.d.cts +12 -2
  499. package/sqlite-proxy/session.d.ts +12 -2
  500. package/sqlite-proxy/session.js +22 -8
  501. package/sqlite-proxy/session.js.map +1 -1
  502. package/subquery.cjs +4 -3
  503. package/subquery.cjs.map +1 -1
  504. package/subquery.d.cts +2 -1
  505. package/subquery.d.ts +2 -1
  506. package/subquery.js +4 -3
  507. package/subquery.js.map +1 -1
  508. package/table.cjs.map +1 -1
  509. package/table.d.cts +3 -0
  510. package/table.d.ts +3 -0
  511. package/table.js.map +1 -1
  512. package/tidb-serverless/driver.cjs +5 -1
  513. package/tidb-serverless/driver.cjs.map +1 -1
  514. package/tidb-serverless/driver.d.cts +1 -0
  515. package/tidb-serverless/driver.d.ts +1 -0
  516. package/tidb-serverless/driver.js +5 -1
  517. package/tidb-serverless/driver.js.map +1 -1
  518. package/tidb-serverless/session.cjs +15 -5
  519. package/tidb-serverless/session.cjs.map +1 -1
  520. package/tidb-serverless/session.d.cts +12 -2
  521. package/tidb-serverless/session.d.ts +12 -2
  522. package/tidb-serverless/session.js +15 -5
  523. package/tidb-serverless/session.js.map +1 -1
  524. package/utils.cjs +22 -0
  525. package/utils.cjs.map +1 -1
  526. package/utils.d.cts +4 -0
  527. package/utils.d.ts +4 -0
  528. package/utils.js +11 -0
  529. package/utils.js.map +1 -1
  530. package/vercel-postgres/driver.cjs +9 -2
  531. package/vercel-postgres/driver.cjs.map +1 -1
  532. package/vercel-postgres/driver.d.cts +2 -0
  533. package/vercel-postgres/driver.d.ts +2 -0
  534. package/vercel-postgres/driver.js +9 -2
  535. package/vercel-postgres/driver.js.map +1 -1
  536. package/vercel-postgres/session.cjs +21 -7
  537. package/vercel-postgres/session.cjs.map +1 -1
  538. package/vercel-postgres/session.d.cts +12 -2
  539. package/vercel-postgres/session.d.ts +12 -2
  540. package/vercel-postgres/session.js +21 -7
  541. package/vercel-postgres/session.js.map +1 -1
  542. package/version.cjs +1 -1
  543. package/version.d.cts +1 -1
  544. package/version.d.ts +1 -1
  545. package/version.js +1 -1
  546. package/xata-http/driver.cjs +7 -2
  547. package/xata-http/driver.cjs.map +1 -1
  548. package/xata-http/driver.d.cts +2 -0
  549. package/xata-http/driver.d.ts +2 -0
  550. package/xata-http/driver.js +7 -2
  551. package/xata-http/driver.js.map +1 -1
  552. package/xata-http/session.cjs +21 -7
  553. package/xata-http/session.cjs.map +1 -1
  554. package/xata-http/session.d.cts +12 -2
  555. package/xata-http/session.d.ts +12 -2
  556. package/xata-http/session.js +21 -7
  557. package/xata-http/session.js.map +1 -1
  558. package/expressions.cjs.map +0 -1
  559. package/expressions.d.cts +0 -1
  560. package/expressions.d.ts +0 -1
  561. package/expressions.js +0 -2
  562. package/expressions.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "0.41.0",
3
+ "version": "0.42.0-da9af74",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -53,7 +53,7 @@
53
53
  "@neondatabase/serverless": ">=0.10.0",
54
54
  "@op-engineering/op-sqlite": ">=2",
55
55
  "@opentelemetry/api": "^1.4.1",
56
- "@planetscale/database": ">=1",
56
+ "@planetscale/database": ">=1.13",
57
57
  "@prisma/client": "*",
58
58
  "@tidbcloud/serverless": "*",
59
59
  "@types/better-sqlite3": "*",
@@ -71,7 +71,8 @@
71
71
  "postgres": ">=3",
72
72
  "sql.js": ">=1",
73
73
  "sqlite3": ">=5",
74
- "gel": ">=2"
74
+ "gel": ">=2",
75
+ "@upstash/redis": ">=1.34.7"
75
76
  },
76
77
  "peerDependenciesMeta": {
77
78
  "mysql2": {
@@ -157,6 +158,9 @@
157
158
  },
158
159
  "@prisma/client": {
159
160
  "optional": true
161
+ },
162
+ "@upstash/redis": {
163
+ "optional": true
160
164
  }
161
165
  },
162
166
  "devDependencies": {
@@ -173,18 +177,20 @@
173
177
  "@planetscale/database": "^1.16.0",
174
178
  "@prisma/client": "5.14.0",
175
179
  "@tidbcloud/serverless": "^0.1.1",
176
- "@types/better-sqlite3": "^7.6.4",
180
+ "@types/better-sqlite3": "^7.6.12",
177
181
  "@types/node": "^20.2.5",
178
182
  "@types/pg": "^8.10.1",
179
183
  "@types/react": "^18.2.45",
180
184
  "@types/sql.js": "^1.4.4",
185
+ "@upstash/redis": "^1.34.3",
181
186
  "@vercel/postgres": "^0.8.0",
182
187
  "@xata.io/client": "^0.29.3",
183
- "better-sqlite3": "^8.4.0",
188
+ "better-sqlite3": "^11.9.1",
184
189
  "bun-types": "^1.2.0",
185
190
  "cpy": "^10.1.0",
186
191
  "expo-sqlite": "^14.0.0",
187
192
  "gel": "^2.0.0",
193
+ "glob": "^11.0.1",
188
194
  "knex": "^2.4.2",
189
195
  "kysely": "^0.25.0",
190
196
  "mysql2": "^3.3.3",
@@ -194,6 +200,7 @@
194
200
  "react": "^18.2.0",
195
201
  "sql.js": "^1.8.0",
196
202
  "sqlite3": "^5.1.2",
203
+ "ts-morph": "^25.0.1",
197
204
  "tslib": "^2.5.2",
198
205
  "tsx": "^3.12.7",
199
206
  "vite-tsconfig-paths": "^4.3.2",
@@ -286,18 +293,6 @@
286
293
  "types": "./errors.d.ts",
287
294
  "default": "./errors.js"
288
295
  },
289
- "./expressions": {
290
- "import": {
291
- "types": "./expressions.d.ts",
292
- "default": "./expressions.js"
293
- },
294
- "require": {
295
- "types": "./expressions.d.cts",
296
- "default": "./expressions.cjs"
297
- },
298
- "types": "./expressions.d.ts",
299
- "default": "./expressions.js"
300
- },
301
296
  ".": {
302
297
  "import": {
303
298
  "types": "./index.d.ts",
@@ -514,54 +509,6 @@
514
509
  "types": "./view-common.d.ts",
515
510
  "default": "./view-common.js"
516
511
  },
517
- "./bun-sql/driver": {
518
- "import": {
519
- "types": "./bun-sql/driver.d.ts",
520
- "default": "./bun-sql/driver.js"
521
- },
522
- "require": {
523
- "types": "./bun-sql/driver.d.cts",
524
- "default": "./bun-sql/driver.cjs"
525
- },
526
- "types": "./bun-sql/driver.d.ts",
527
- "default": "./bun-sql/driver.js"
528
- },
529
- "./bun-sql": {
530
- "import": {
531
- "types": "./bun-sql/index.d.ts",
532
- "default": "./bun-sql/index.js"
533
- },
534
- "require": {
535
- "types": "./bun-sql/index.d.cts",
536
- "default": "./bun-sql/index.cjs"
537
- },
538
- "types": "./bun-sql/index.d.ts",
539
- "default": "./bun-sql/index.js"
540
- },
541
- "./bun-sql/migrator": {
542
- "import": {
543
- "types": "./bun-sql/migrator.d.ts",
544
- "default": "./bun-sql/migrator.js"
545
- },
546
- "require": {
547
- "types": "./bun-sql/migrator.d.cts",
548
- "default": "./bun-sql/migrator.cjs"
549
- },
550
- "types": "./bun-sql/migrator.d.ts",
551
- "default": "./bun-sql/migrator.js"
552
- },
553
- "./bun-sql/session": {
554
- "import": {
555
- "types": "./bun-sql/session.d.ts",
556
- "default": "./bun-sql/session.js"
557
- },
558
- "require": {
559
- "types": "./bun-sql/session.d.cts",
560
- "default": "./bun-sql/session.cjs"
561
- },
562
- "types": "./bun-sql/session.d.ts",
563
- "default": "./bun-sql/session.js"
564
- },
565
512
  "./better-sqlite3/driver": {
566
513
  "import": {
567
514
  "types": "./better-sqlite3/driver.d.ts",
@@ -610,6 +557,54 @@
610
557
  "types": "./better-sqlite3/session.d.ts",
611
558
  "default": "./better-sqlite3/session.js"
612
559
  },
560
+ "./bun-sql/driver": {
561
+ "import": {
562
+ "types": "./bun-sql/driver.d.ts",
563
+ "default": "./bun-sql/driver.js"
564
+ },
565
+ "require": {
566
+ "types": "./bun-sql/driver.d.cts",
567
+ "default": "./bun-sql/driver.cjs"
568
+ },
569
+ "types": "./bun-sql/driver.d.ts",
570
+ "default": "./bun-sql/driver.js"
571
+ },
572
+ "./bun-sql": {
573
+ "import": {
574
+ "types": "./bun-sql/index.d.ts",
575
+ "default": "./bun-sql/index.js"
576
+ },
577
+ "require": {
578
+ "types": "./bun-sql/index.d.cts",
579
+ "default": "./bun-sql/index.cjs"
580
+ },
581
+ "types": "./bun-sql/index.d.ts",
582
+ "default": "./bun-sql/index.js"
583
+ },
584
+ "./bun-sql/migrator": {
585
+ "import": {
586
+ "types": "./bun-sql/migrator.d.ts",
587
+ "default": "./bun-sql/migrator.js"
588
+ },
589
+ "require": {
590
+ "types": "./bun-sql/migrator.d.cts",
591
+ "default": "./bun-sql/migrator.cjs"
592
+ },
593
+ "types": "./bun-sql/migrator.d.ts",
594
+ "default": "./bun-sql/migrator.js"
595
+ },
596
+ "./bun-sql/session": {
597
+ "import": {
598
+ "types": "./bun-sql/session.d.ts",
599
+ "default": "./bun-sql/session.js"
600
+ },
601
+ "require": {
602
+ "types": "./bun-sql/session.d.cts",
603
+ "default": "./bun-sql/session.cjs"
604
+ },
605
+ "types": "./bun-sql/session.d.ts",
606
+ "default": "./bun-sql/session.js"
607
+ },
613
608
  "./bun-sqlite/driver": {
614
609
  "import": {
615
610
  "types": "./bun-sqlite/driver.d.ts",
@@ -3046,6 +3041,66 @@
3046
3041
  "types": "./aws-data-api/pg/session.d.ts",
3047
3042
  "default": "./aws-data-api/pg/session.js"
3048
3043
  },
3044
+ "./cache/core/cache": {
3045
+ "import": {
3046
+ "types": "./cache/core/cache.d.ts",
3047
+ "default": "./cache/core/cache.js"
3048
+ },
3049
+ "require": {
3050
+ "types": "./cache/core/cache.d.cts",
3051
+ "default": "./cache/core/cache.cjs"
3052
+ },
3053
+ "types": "./cache/core/cache.d.ts",
3054
+ "default": "./cache/core/cache.js"
3055
+ },
3056
+ "./cache/core": {
3057
+ "import": {
3058
+ "types": "./cache/core/index.d.ts",
3059
+ "default": "./cache/core/index.js"
3060
+ },
3061
+ "require": {
3062
+ "types": "./cache/core/index.d.cts",
3063
+ "default": "./cache/core/index.cjs"
3064
+ },
3065
+ "types": "./cache/core/index.d.ts",
3066
+ "default": "./cache/core/index.js"
3067
+ },
3068
+ "./cache/core/types": {
3069
+ "import": {
3070
+ "types": "./cache/core/types.d.ts",
3071
+ "default": "./cache/core/types.js"
3072
+ },
3073
+ "require": {
3074
+ "types": "./cache/core/types.d.cts",
3075
+ "default": "./cache/core/types.cjs"
3076
+ },
3077
+ "types": "./cache/core/types.d.ts",
3078
+ "default": "./cache/core/types.js"
3079
+ },
3080
+ "./cache/upstash/cache": {
3081
+ "import": {
3082
+ "types": "./cache/upstash/cache.d.ts",
3083
+ "default": "./cache/upstash/cache.js"
3084
+ },
3085
+ "require": {
3086
+ "types": "./cache/upstash/cache.d.cts",
3087
+ "default": "./cache/upstash/cache.cjs"
3088
+ },
3089
+ "types": "./cache/upstash/cache.d.ts",
3090
+ "default": "./cache/upstash/cache.js"
3091
+ },
3092
+ "./cache/upstash": {
3093
+ "import": {
3094
+ "types": "./cache/upstash/index.d.ts",
3095
+ "default": "./cache/upstash/index.js"
3096
+ },
3097
+ "require": {
3098
+ "types": "./cache/upstash/index.d.cts",
3099
+ "default": "./cache/upstash/index.cjs"
3100
+ },
3101
+ "types": "./cache/upstash/index.d.ts",
3102
+ "default": "./cache/upstash/index.js"
3103
+ },
3049
3104
  "./gel-core/columns/all": {
3050
3105
  "import": {
3051
3106
  "types": "./gel-core/columns/all.d.ts",
@@ -20,13 +20,42 @@ var enum_exports = {};
20
20
  __export(enum_exports, {
21
21
  PgEnumColumn: () => PgEnumColumn,
22
22
  PgEnumColumnBuilder: () => PgEnumColumnBuilder,
23
+ PgEnumObjectColumn: () => PgEnumObjectColumn,
24
+ PgEnumObjectColumnBuilder: () => PgEnumObjectColumnBuilder,
23
25
  isPgEnum: () => isPgEnum,
24
26
  pgEnum: () => pgEnum,
27
+ pgEnumObjectWithSchema: () => pgEnumObjectWithSchema,
25
28
  pgEnumWithSchema: () => pgEnumWithSchema
26
29
  });
27
30
  module.exports = __toCommonJS(enum_exports);
28
31
  var import_entity = require("../../entity.cjs");
29
32
  var import_common = require("./common.cjs");
33
+ class PgEnumObjectColumnBuilder extends import_common.PgColumnBuilder {
34
+ static [import_entity.entityKind] = "PgEnumObjectColumnBuilder";
35
+ constructor(name, enumInstance) {
36
+ super(name, "string", "PgEnumObjectColumn");
37
+ this.config.enum = enumInstance;
38
+ }
39
+ /** @internal */
40
+ build(table) {
41
+ return new PgEnumObjectColumn(
42
+ table,
43
+ this.config
44
+ );
45
+ }
46
+ }
47
+ class PgEnumObjectColumn extends import_common.PgColumn {
48
+ static [import_entity.entityKind] = "PgEnumObjectColumn";
49
+ enum;
50
+ enumValues = this.config.enum.enumValues;
51
+ constructor(table, config) {
52
+ super(table, config);
53
+ this.enum = config.enum;
54
+ }
55
+ getSQLType() {
56
+ return this.enum.enumName;
57
+ }
58
+ }
30
59
  const isPgEnumSym = Symbol.for("drizzle:isPgEnum");
31
60
  function isPgEnum(obj) {
32
61
  return !!obj && typeof obj === "function" && isPgEnumSym in obj && obj[isPgEnumSym] === true;
@@ -57,8 +86,8 @@ class PgEnumColumn extends import_common.PgColumn {
57
86
  return this.enum.enumName;
58
87
  }
59
88
  }
60
- function pgEnum(enumName, values) {
61
- return pgEnumWithSchema(enumName, values, void 0);
89
+ function pgEnum(enumName, input) {
90
+ return Array.isArray(input) ? pgEnumWithSchema(enumName, [...input], void 0) : pgEnumObjectWithSchema(enumName, input, void 0);
62
91
  }
63
92
  function pgEnumWithSchema(enumName, values, schema) {
64
93
  const enumInstance = Object.assign(
@@ -72,12 +101,27 @@ function pgEnumWithSchema(enumName, values, schema) {
72
101
  );
73
102
  return enumInstance;
74
103
  }
104
+ function pgEnumObjectWithSchema(enumName, values, schema) {
105
+ const enumInstance = Object.assign(
106
+ (name) => new PgEnumObjectColumnBuilder(name ?? "", enumInstance),
107
+ {
108
+ enumName,
109
+ enumValues: Object.values(values),
110
+ schema,
111
+ [isPgEnumSym]: true
112
+ }
113
+ );
114
+ return enumInstance;
115
+ }
75
116
  // Annotate the CommonJS export names for ESM import in node:
76
117
  0 && (module.exports = {
77
118
  PgEnumColumn,
78
119
  PgEnumColumnBuilder,
120
+ PgEnumObjectColumn,
121
+ PgEnumObjectColumnBuilder,
79
122
  isPgEnum,
80
123
  pgEnum,
124
+ pgEnumObjectWithSchema,
81
125
  pgEnumWithSchema
82
126
  });
83
127
  //# sourceMappingURL=enum.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/columns/enum.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 { Writable } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type PgEnumColumnBuilderInitial<TName extends string, TValues extends [string, ...string[]]> =\n\tPgEnumColumnBuilder<{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'PgEnumColumn';\n\t\tdata: TValues[number];\n\t\tenumValues: TValues;\n\t\tdriverParam: string;\n\t}>;\n\nconst isPgEnumSym = Symbol.for('drizzle:isPgEnum');\nexport interface PgEnum<TValues extends [string, ...string[]]> {\n\t(): PgEnumColumnBuilderInitial<'', TValues>;\n\t<TName extends string>(name: TName): PgEnumColumnBuilderInitial<TName, TValues>;\n\t<TName extends string>(name?: TName): PgEnumColumnBuilderInitial<TName, TValues>;\n\n\treadonly enumName: string;\n\treadonly enumValues: TValues;\n\treadonly schema: string | undefined;\n\t/** @internal */\n\t[isPgEnumSym]: true;\n}\n\nexport function isPgEnum(obj: unknown): obj is PgEnum<[string, ...string[]]> {\n\treturn !!obj && typeof obj === 'function' && isPgEnumSym in obj && obj[isPgEnumSym] === true;\n}\n\nexport class PgEnumColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'PgEnumColumn'> & { enumValues: [string, ...string[]] },\n> extends PgColumnBuilder<T, { enum: PgEnum<T['enumValues']> }> {\n\tstatic override readonly [entityKind]: string = 'PgEnumColumnBuilder';\n\n\tconstructor(name: T['name'], enumInstance: PgEnum<T['enumValues']>) {\n\t\tsuper(name, 'string', 'PgEnumColumn');\n\t\tthis.config.enum = enumInstance;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgEnumColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgEnumColumn<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 PgEnumColumn<T extends ColumnBaseConfig<'string', 'PgEnumColumn'> & { enumValues: [string, ...string[]] }>\n\textends PgColumn<T, { enum: PgEnum<T['enumValues']> }>\n{\n\tstatic override readonly [entityKind]: string = 'PgEnumColumn';\n\n\treadonly enum = this.config.enum;\n\toverride readonly enumValues = this.config.enum.enumValues;\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgEnumColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.enum = config.enum;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.enum.enumName;\n\t}\n}\n\n// Gratitude to zod for the enum function types\nexport function pgEnum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tenumName: string,\n\tvalues: T | Writable<T>,\n): PgEnum<Writable<T>> {\n\treturn pgEnumWithSchema(enumName, values, undefined);\n}\n\n/** @internal */\nexport function pgEnumWithSchema<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tenumName: string,\n\tvalues: T | Writable<T>,\n\tschema?: string,\n): PgEnum<Writable<T>> {\n\tconst enumInstance: PgEnum<Writable<T>> = Object.assign(\n\t\t<TName extends string>(name?: TName): PgEnumColumnBuilderInitial<TName, Writable<T>> =>\n\t\t\tnew PgEnumColumnBuilder(name ?? '' as TName, enumInstance),\n\t\t{\n\t\t\tenumName,\n\t\t\tenumValues: values,\n\t\t\tschema,\n\t\t\t[isPgEnumSym]: true,\n\t\t} as const,\n\t);\n\n\treturn enumInstance;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,oBAA0C;AAY1C,MAAM,cAAc,OAAO,IAAI,kBAAkB;AAa1C,SAAS,SAAS,KAAoD;AAC5E,SAAO,CAAC,CAAC,OAAO,OAAO,QAAQ,cAAc,eAAe,OAAO,IAAI,WAAW,MAAM;AACzF;AAEO,MAAM,4BAEH,8BAAsD;AAAA,EAC/D,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,cAAuC;AACnE,UAAM,MAAM,UAAU,cAAc;AACpC,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,uBACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEvC,OAAO,KAAK,OAAO;AAAA,EACV,aAAa,KAAK,OAAO,KAAK;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK,KAAK;AAAA,EAClB;AACD;AAGO,SAAS,OACf,UACA,QACsB;AACtB,SAAO,iBAAiB,UAAU,QAAQ,MAAS;AACpD;AAGO,SAAS,iBACf,UACA,QACA,QACsB;AACtB,QAAM,eAAoC,OAAO;AAAA,IAChD,CAAuB,SACtB,IAAI,oBAAoB,QAAQ,IAAa,YAAY;AAAA,IAC1D;AAAA,MACC;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA,CAAC,WAAW,GAAG;AAAA,IAChB;AAAA,EACD;AAEA,SAAO;AACR;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/columns/enum.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 { NonArray, Writable } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\n// Enum as ts enum\n\nexport type PgEnumObjectColumnBuilderInitial<TName extends string, TValues extends object> = PgEnumObjectColumnBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgEnumObjectColumn';\n\tdata: TValues[keyof TValues];\n\tenumValues: string[];\n\tdriverParam: string;\n}>;\n\nexport interface PgEnumObject<TValues extends object> {\n\t(): PgEnumObjectColumnBuilderInitial<'', TValues>;\n\t<TName extends string>(name: TName): PgEnumObjectColumnBuilderInitial<TName, TValues>;\n\t<TName extends string>(name?: TName): PgEnumObjectColumnBuilderInitial<TName, TValues>;\n\n\treadonly enumName: string;\n\treadonly enumValues: string[];\n\treadonly schema: string | undefined;\n\t/** @internal */\n\t[isPgEnumSym]: true;\n}\n\nexport class PgEnumObjectColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'PgEnumObjectColumn'> & { enumValues: string[] },\n> extends PgColumnBuilder<T, { enum: PgEnumObject<any> }> {\n\tstatic override readonly [entityKind]: string = 'PgEnumObjectColumnBuilder';\n\n\tconstructor(name: T['name'], enumInstance: PgEnumObject<any>) {\n\t\tsuper(name, 'string', 'PgEnumObjectColumn');\n\t\tthis.config.enum = enumInstance;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgEnumObjectColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgEnumObjectColumn<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 PgEnumObjectColumn<T extends ColumnBaseConfig<'string', 'PgEnumObjectColumn'> & { enumValues: object }>\n\textends PgColumn<T, { enum: PgEnumObject<object> }>\n{\n\tstatic override readonly [entityKind]: string = 'PgEnumObjectColumn';\n\n\treadonly enum;\n\toverride readonly enumValues = this.config.enum.enumValues;\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgEnumObjectColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.enum = config.enum;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.enum.enumName;\n\t}\n}\n\n// Enum as string union\n\nexport type PgEnumColumnBuilderInitial<TName extends string, TValues extends [string, ...string[]]> =\n\tPgEnumColumnBuilder<{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'PgEnumColumn';\n\t\tdata: TValues[number];\n\t\tenumValues: TValues;\n\t\tdriverParam: string;\n\t}>;\n\nconst isPgEnumSym = Symbol.for('drizzle:isPgEnum');\nexport interface PgEnum<TValues extends [string, ...string[]]> {\n\t(): PgEnumColumnBuilderInitial<'', TValues>;\n\t<TName extends string>(name: TName): PgEnumColumnBuilderInitial<TName, TValues>;\n\t<TName extends string>(name?: TName): PgEnumColumnBuilderInitial<TName, TValues>;\n\n\treadonly enumName: string;\n\treadonly enumValues: TValues;\n\treadonly schema: string | undefined;\n\t/** @internal */\n\t[isPgEnumSym]: true;\n}\n\nexport function isPgEnum(obj: unknown): obj is PgEnum<[string, ...string[]]> {\n\treturn !!obj && typeof obj === 'function' && isPgEnumSym in obj && obj[isPgEnumSym] === true;\n}\n\nexport class PgEnumColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'PgEnumColumn'> & { enumValues: [string, ...string[]] },\n> extends PgColumnBuilder<T, { enum: PgEnum<T['enumValues']> }> {\n\tstatic override readonly [entityKind]: string = 'PgEnumColumnBuilder';\n\n\tconstructor(name: T['name'], enumInstance: PgEnum<T['enumValues']>) {\n\t\tsuper(name, 'string', 'PgEnumColumn');\n\t\tthis.config.enum = enumInstance;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgEnumColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgEnumColumn<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 PgEnumColumn<T extends ColumnBaseConfig<'string', 'PgEnumColumn'> & { enumValues: [string, ...string[]] }>\n\textends PgColumn<T, { enum: PgEnum<T['enumValues']> }>\n{\n\tstatic override readonly [entityKind]: string = 'PgEnumColumn';\n\n\treadonly enum = this.config.enum;\n\toverride readonly enumValues = this.config.enum.enumValues;\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgEnumColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.enum = config.enum;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.enum.enumName;\n\t}\n}\n\nexport function pgEnum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tenumName: string,\n\tvalues: T | Writable<T>,\n): PgEnum<Writable<T>>;\n\nexport function pgEnum<E extends Record<string, string>>(\n\tenumName: string,\n\tenumObj: NonArray<E>,\n): PgEnumObject<E>;\n\nexport function pgEnum(\n\tenumName: any,\n\tinput: any,\n): any {\n\treturn Array.isArray(input)\n\t\t? pgEnumWithSchema(enumName, [...input] as [string, ...string[]], undefined)\n\t\t: pgEnumObjectWithSchema(enumName, input, undefined);\n}\n\n/** @internal */\nexport function pgEnumWithSchema<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tenumName: string,\n\tvalues: T | Writable<T>,\n\tschema?: string,\n): PgEnum<Writable<T>> {\n\tconst enumInstance: PgEnum<Writable<T>> = Object.assign(\n\t\t<TName extends string>(name?: TName): PgEnumColumnBuilderInitial<TName, Writable<T>> =>\n\t\t\tnew PgEnumColumnBuilder(name ?? '' as TName, enumInstance),\n\t\t{\n\t\t\tenumName,\n\t\t\tenumValues: values,\n\t\t\tschema,\n\t\t\t[isPgEnumSym]: true,\n\t\t} as const,\n\t);\n\n\treturn enumInstance;\n}\n\n/** @internal */\nexport function pgEnumObjectWithSchema<T extends object>(\n\tenumName: string,\n\tvalues: T,\n\tschema?: string,\n): PgEnumObject<T> {\n\tconst enumInstance: PgEnumObject<T> = Object.assign(\n\t\t<TName extends string>(name?: TName): PgEnumObjectColumnBuilderInitial<TName, T> =>\n\t\t\tnew PgEnumObjectColumnBuilder(name ?? '' as TName, enumInstance),\n\t\t{\n\t\t\tenumName,\n\t\t\tenumValues: Object.values(values),\n\t\t\tschema,\n\t\t\t[isPgEnumSym]: true,\n\t\t} as const,\n\t);\n\n\treturn enumInstance;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,oBAA0C;AAyBnC,MAAM,kCAEH,8BAAgD;AAAA,EACzD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,cAAiC;AAC7D,UAAM,MAAM,UAAU,oBAAoB;AAC1C,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA;AAAA,EAGS,MACR,OACsD;AACtD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,2BACJ,uBACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EACS,aAAa,KAAK,OAAO,KAAK;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK,KAAK;AAAA,EAClB;AACD;AAcA,MAAM,cAAc,OAAO,IAAI,kBAAkB;AAa1C,SAAS,SAAS,KAAoD;AAC5E,SAAO,CAAC,CAAC,OAAO,OAAO,QAAQ,cAAc,eAAe,OAAO,IAAI,WAAW,MAAM;AACzF;AAEO,MAAM,4BAEH,8BAAsD;AAAA,EAC/D,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,cAAuC;AACnE,UAAM,MAAM,UAAU,cAAc;AACpC,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,uBACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEvC,OAAO,KAAK,OAAO;AAAA,EACV,aAAa,KAAK,OAAO,KAAK;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK,KAAK;AAAA,EAClB;AACD;AAYO,SAAS,OACf,UACA,OACM;AACN,SAAO,MAAM,QAAQ,KAAK,IACvB,iBAAiB,UAAU,CAAC,GAAG,KAAK,GAA4B,MAAS,IACzE,uBAAuB,UAAU,OAAO,MAAS;AACrD;AAGO,SAAS,iBACf,UACA,QACA,QACsB;AACtB,QAAM,eAAoC,OAAO;AAAA,IAChD,CAAuB,SACtB,IAAI,oBAAoB,QAAQ,IAAa,YAAY;AAAA,IAC1D;AAAA,MACC;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA,CAAC,WAAW,GAAG;AAAA,IAChB;AAAA,EACD;AAEA,SAAO;AACR;AAGO,SAAS,uBACf,UACA,QACA,QACkB;AAClB,QAAM,eAAgC,OAAO;AAAA,IAC5C,CAAuB,SACtB,IAAI,0BAA0B,QAAQ,IAAa,YAAY;AAAA,IAChE;AAAA,MACC;AAAA,MACA,YAAY,OAAO,OAAO,MAAM;AAAA,MAChC;AAAA,MACA,CAAC,WAAW,GAAG;AAAA,IAChB;AAAA,EACD;AAEA,SAAO;AACR;","names":[]}
@@ -2,8 +2,45 @@ import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs";
2
2
  import type { ColumnBaseConfig } from "../../column.cjs";
3
3
  import { entityKind } from "../../entity.cjs";
4
4
  import type { AnyPgTable } from "../table.cjs";
5
- import type { Writable } from "../../utils.cjs";
5
+ import type { NonArray, Writable } from "../../utils.cjs";
6
6
  import { PgColumn, PgColumnBuilder } from "./common.cjs";
7
+ export type PgEnumObjectColumnBuilderInitial<TName extends string, TValues extends object> = PgEnumObjectColumnBuilder<{
8
+ name: TName;
9
+ dataType: 'string';
10
+ columnType: 'PgEnumObjectColumn';
11
+ data: TValues[keyof TValues];
12
+ enumValues: string[];
13
+ driverParam: string;
14
+ }>;
15
+ export interface PgEnumObject<TValues extends object> {
16
+ (): PgEnumObjectColumnBuilderInitial<'', TValues>;
17
+ <TName extends string>(name: TName): PgEnumObjectColumnBuilderInitial<TName, TValues>;
18
+ <TName extends string>(name?: TName): PgEnumObjectColumnBuilderInitial<TName, TValues>;
19
+ readonly enumName: string;
20
+ readonly enumValues: string[];
21
+ readonly schema: string | undefined;
22
+ }
23
+ export declare class PgEnumObjectColumnBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgEnumObjectColumn'> & {
24
+ enumValues: string[];
25
+ }> extends PgColumnBuilder<T, {
26
+ enum: PgEnumObject<any>;
27
+ }> {
28
+ static readonly [entityKind]: string;
29
+ constructor(name: T['name'], enumInstance: PgEnumObject<any>);
30
+ }
31
+ export declare class PgEnumObjectColumn<T extends ColumnBaseConfig<'string', 'PgEnumObjectColumn'> & {
32
+ enumValues: object;
33
+ }> extends PgColumn<T, {
34
+ enum: PgEnumObject<object>;
35
+ }> {
36
+ static readonly [entityKind]: string;
37
+ readonly enum: PgEnumObject<any>;
38
+ readonly enumValues: string[];
39
+ constructor(table: AnyPgTable<{
40
+ name: T['tableName'];
41
+ }>, config: PgEnumObjectColumnBuilder<T>['config']);
42
+ getSQLType(): string;
43
+ }
7
44
  export type PgEnumColumnBuilderInitial<TName extends string, TValues extends [string, ...string[]]> = PgEnumColumnBuilder<{
8
45
  name: TName;
9
46
  dataType: 'string';
@@ -43,3 +80,4 @@ export declare class PgEnumColumn<T extends ColumnBaseConfig<'string', 'PgEnumCo
43
80
  getSQLType(): string;
44
81
  }
45
82
  export declare function pgEnum<U extends string, T extends Readonly<[U, ...U[]]>>(enumName: string, values: T | Writable<T>): PgEnum<Writable<T>>;
83
+ export declare function pgEnum<E extends Record<string, string>>(enumName: string, enumObj: NonArray<E>): PgEnumObject<E>;
@@ -2,8 +2,45 @@ import type { ColumnBuilderBaseConfig } from "../../column-builder.js";
2
2
  import type { ColumnBaseConfig } from "../../column.js";
3
3
  import { entityKind } from "../../entity.js";
4
4
  import type { AnyPgTable } from "../table.js";
5
- import type { Writable } from "../../utils.js";
5
+ import type { NonArray, Writable } from "../../utils.js";
6
6
  import { PgColumn, PgColumnBuilder } from "./common.js";
7
+ export type PgEnumObjectColumnBuilderInitial<TName extends string, TValues extends object> = PgEnumObjectColumnBuilder<{
8
+ name: TName;
9
+ dataType: 'string';
10
+ columnType: 'PgEnumObjectColumn';
11
+ data: TValues[keyof TValues];
12
+ enumValues: string[];
13
+ driverParam: string;
14
+ }>;
15
+ export interface PgEnumObject<TValues extends object> {
16
+ (): PgEnumObjectColumnBuilderInitial<'', TValues>;
17
+ <TName extends string>(name: TName): PgEnumObjectColumnBuilderInitial<TName, TValues>;
18
+ <TName extends string>(name?: TName): PgEnumObjectColumnBuilderInitial<TName, TValues>;
19
+ readonly enumName: string;
20
+ readonly enumValues: string[];
21
+ readonly schema: string | undefined;
22
+ }
23
+ export declare class PgEnumObjectColumnBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgEnumObjectColumn'> & {
24
+ enumValues: string[];
25
+ }> extends PgColumnBuilder<T, {
26
+ enum: PgEnumObject<any>;
27
+ }> {
28
+ static readonly [entityKind]: string;
29
+ constructor(name: T['name'], enumInstance: PgEnumObject<any>);
30
+ }
31
+ export declare class PgEnumObjectColumn<T extends ColumnBaseConfig<'string', 'PgEnumObjectColumn'> & {
32
+ enumValues: object;
33
+ }> extends PgColumn<T, {
34
+ enum: PgEnumObject<object>;
35
+ }> {
36
+ static readonly [entityKind]: string;
37
+ readonly enum: PgEnumObject<any>;
38
+ readonly enumValues: string[];
39
+ constructor(table: AnyPgTable<{
40
+ name: T['tableName'];
41
+ }>, config: PgEnumObjectColumnBuilder<T>['config']);
42
+ getSQLType(): string;
43
+ }
7
44
  export type PgEnumColumnBuilderInitial<TName extends string, TValues extends [string, ...string[]]> = PgEnumColumnBuilder<{
8
45
  name: TName;
9
46
  dataType: 'string';
@@ -43,3 +80,4 @@ export declare class PgEnumColumn<T extends ColumnBaseConfig<'string', 'PgEnumCo
43
80
  getSQLType(): string;
44
81
  }
45
82
  export declare function pgEnum<U extends string, T extends Readonly<[U, ...U[]]>>(enumName: string, values: T | Writable<T>): PgEnum<Writable<T>>;
83
+ export declare function pgEnum<E extends Record<string, string>>(enumName: string, enumObj: NonArray<E>): PgEnumObject<E>;
@@ -1,5 +1,31 @@
1
1
  import { entityKind } from "../../entity.js";
2
2
  import { PgColumn, PgColumnBuilder } from "./common.js";
3
+ class PgEnumObjectColumnBuilder extends PgColumnBuilder {
4
+ static [entityKind] = "PgEnumObjectColumnBuilder";
5
+ constructor(name, enumInstance) {
6
+ super(name, "string", "PgEnumObjectColumn");
7
+ this.config.enum = enumInstance;
8
+ }
9
+ /** @internal */
10
+ build(table) {
11
+ return new PgEnumObjectColumn(
12
+ table,
13
+ this.config
14
+ );
15
+ }
16
+ }
17
+ class PgEnumObjectColumn extends PgColumn {
18
+ static [entityKind] = "PgEnumObjectColumn";
19
+ enum;
20
+ enumValues = this.config.enum.enumValues;
21
+ constructor(table, config) {
22
+ super(table, config);
23
+ this.enum = config.enum;
24
+ }
25
+ getSQLType() {
26
+ return this.enum.enumName;
27
+ }
28
+ }
3
29
  const isPgEnumSym = Symbol.for("drizzle:isPgEnum");
4
30
  function isPgEnum(obj) {
5
31
  return !!obj && typeof obj === "function" && isPgEnumSym in obj && obj[isPgEnumSym] === true;
@@ -30,8 +56,8 @@ class PgEnumColumn extends PgColumn {
30
56
  return this.enum.enumName;
31
57
  }
32
58
  }
33
- function pgEnum(enumName, values) {
34
- return pgEnumWithSchema(enumName, values, void 0);
59
+ function pgEnum(enumName, input) {
60
+ return Array.isArray(input) ? pgEnumWithSchema(enumName, [...input], void 0) : pgEnumObjectWithSchema(enumName, input, void 0);
35
61
  }
36
62
  function pgEnumWithSchema(enumName, values, schema) {
37
63
  const enumInstance = Object.assign(
@@ -45,11 +71,26 @@ function pgEnumWithSchema(enumName, values, schema) {
45
71
  );
46
72
  return enumInstance;
47
73
  }
74
+ function pgEnumObjectWithSchema(enumName, values, schema) {
75
+ const enumInstance = Object.assign(
76
+ (name) => new PgEnumObjectColumnBuilder(name ?? "", enumInstance),
77
+ {
78
+ enumName,
79
+ enumValues: Object.values(values),
80
+ schema,
81
+ [isPgEnumSym]: true
82
+ }
83
+ );
84
+ return enumInstance;
85
+ }
48
86
  export {
49
87
  PgEnumColumn,
50
88
  PgEnumColumnBuilder,
89
+ PgEnumObjectColumn,
90
+ PgEnumObjectColumnBuilder,
51
91
  isPgEnum,
52
92
  pgEnum,
93
+ pgEnumObjectWithSchema,
53
94
  pgEnumWithSchema
54
95
  };
55
96
  //# sourceMappingURL=enum.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/columns/enum.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 { Writable } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type PgEnumColumnBuilderInitial<TName extends string, TValues extends [string, ...string[]]> =\n\tPgEnumColumnBuilder<{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'PgEnumColumn';\n\t\tdata: TValues[number];\n\t\tenumValues: TValues;\n\t\tdriverParam: string;\n\t}>;\n\nconst isPgEnumSym = Symbol.for('drizzle:isPgEnum');\nexport interface PgEnum<TValues extends [string, ...string[]]> {\n\t(): PgEnumColumnBuilderInitial<'', TValues>;\n\t<TName extends string>(name: TName): PgEnumColumnBuilderInitial<TName, TValues>;\n\t<TName extends string>(name?: TName): PgEnumColumnBuilderInitial<TName, TValues>;\n\n\treadonly enumName: string;\n\treadonly enumValues: TValues;\n\treadonly schema: string | undefined;\n\t/** @internal */\n\t[isPgEnumSym]: true;\n}\n\nexport function isPgEnum(obj: unknown): obj is PgEnum<[string, ...string[]]> {\n\treturn !!obj && typeof obj === 'function' && isPgEnumSym in obj && obj[isPgEnumSym] === true;\n}\n\nexport class PgEnumColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'PgEnumColumn'> & { enumValues: [string, ...string[]] },\n> extends PgColumnBuilder<T, { enum: PgEnum<T['enumValues']> }> {\n\tstatic override readonly [entityKind]: string = 'PgEnumColumnBuilder';\n\n\tconstructor(name: T['name'], enumInstance: PgEnum<T['enumValues']>) {\n\t\tsuper(name, 'string', 'PgEnumColumn');\n\t\tthis.config.enum = enumInstance;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgEnumColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgEnumColumn<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 PgEnumColumn<T extends ColumnBaseConfig<'string', 'PgEnumColumn'> & { enumValues: [string, ...string[]] }>\n\textends PgColumn<T, { enum: PgEnum<T['enumValues']> }>\n{\n\tstatic override readonly [entityKind]: string = 'PgEnumColumn';\n\n\treadonly enum = this.config.enum;\n\toverride readonly enumValues = this.config.enum.enumValues;\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgEnumColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.enum = config.enum;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.enum.enumName;\n\t}\n}\n\n// Gratitude to zod for the enum function types\nexport function pgEnum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tenumName: string,\n\tvalues: T | Writable<T>,\n): PgEnum<Writable<T>> {\n\treturn pgEnumWithSchema(enumName, values, undefined);\n}\n\n/** @internal */\nexport function pgEnumWithSchema<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tenumName: string,\n\tvalues: T | Writable<T>,\n\tschema?: string,\n): PgEnum<Writable<T>> {\n\tconst enumInstance: PgEnum<Writable<T>> = Object.assign(\n\t\t<TName extends string>(name?: TName): PgEnumColumnBuilderInitial<TName, Writable<T>> =>\n\t\t\tnew PgEnumColumnBuilder(name ?? '' as TName, enumInstance),\n\t\t{\n\t\t\tenumName,\n\t\t\tenumValues: values,\n\t\t\tschema,\n\t\t\t[isPgEnumSym]: true,\n\t\t} as const,\n\t);\n\n\treturn enumInstance;\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAG3B,SAAS,UAAU,uBAAuB;AAY1C,MAAM,cAAc,OAAO,IAAI,kBAAkB;AAa1C,SAAS,SAAS,KAAoD;AAC5E,SAAO,CAAC,CAAC,OAAO,OAAO,QAAQ,cAAc,eAAe,OAAO,IAAI,WAAW,MAAM;AACzF;AAEO,MAAM,4BAEH,gBAAsD;AAAA,EAC/D,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,cAAuC;AACnE,UAAM,MAAM,UAAU,cAAc;AACpC,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,SACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC,OAAO,KAAK,OAAO;AAAA,EACV,aAAa,KAAK,OAAO,KAAK;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK,KAAK;AAAA,EAClB;AACD;AAGO,SAAS,OACf,UACA,QACsB;AACtB,SAAO,iBAAiB,UAAU,QAAQ,MAAS;AACpD;AAGO,SAAS,iBACf,UACA,QACA,QACsB;AACtB,QAAM,eAAoC,OAAO;AAAA,IAChD,CAAuB,SACtB,IAAI,oBAAoB,QAAQ,IAAa,YAAY;AAAA,IAC1D;AAAA,MACC;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA,CAAC,WAAW,GAAG;AAAA,IAChB;AAAA,EACD;AAEA,SAAO;AACR;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/columns/enum.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 { NonArray, Writable } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\n// Enum as ts enum\n\nexport type PgEnumObjectColumnBuilderInitial<TName extends string, TValues extends object> = PgEnumObjectColumnBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgEnumObjectColumn';\n\tdata: TValues[keyof TValues];\n\tenumValues: string[];\n\tdriverParam: string;\n}>;\n\nexport interface PgEnumObject<TValues extends object> {\n\t(): PgEnumObjectColumnBuilderInitial<'', TValues>;\n\t<TName extends string>(name: TName): PgEnumObjectColumnBuilderInitial<TName, TValues>;\n\t<TName extends string>(name?: TName): PgEnumObjectColumnBuilderInitial<TName, TValues>;\n\n\treadonly enumName: string;\n\treadonly enumValues: string[];\n\treadonly schema: string | undefined;\n\t/** @internal */\n\t[isPgEnumSym]: true;\n}\n\nexport class PgEnumObjectColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'PgEnumObjectColumn'> & { enumValues: string[] },\n> extends PgColumnBuilder<T, { enum: PgEnumObject<any> }> {\n\tstatic override readonly [entityKind]: string = 'PgEnumObjectColumnBuilder';\n\n\tconstructor(name: T['name'], enumInstance: PgEnumObject<any>) {\n\t\tsuper(name, 'string', 'PgEnumObjectColumn');\n\t\tthis.config.enum = enumInstance;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgEnumObjectColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgEnumObjectColumn<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 PgEnumObjectColumn<T extends ColumnBaseConfig<'string', 'PgEnumObjectColumn'> & { enumValues: object }>\n\textends PgColumn<T, { enum: PgEnumObject<object> }>\n{\n\tstatic override readonly [entityKind]: string = 'PgEnumObjectColumn';\n\n\treadonly enum;\n\toverride readonly enumValues = this.config.enum.enumValues;\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgEnumObjectColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.enum = config.enum;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.enum.enumName;\n\t}\n}\n\n// Enum as string union\n\nexport type PgEnumColumnBuilderInitial<TName extends string, TValues extends [string, ...string[]]> =\n\tPgEnumColumnBuilder<{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'PgEnumColumn';\n\t\tdata: TValues[number];\n\t\tenumValues: TValues;\n\t\tdriverParam: string;\n\t}>;\n\nconst isPgEnumSym = Symbol.for('drizzle:isPgEnum');\nexport interface PgEnum<TValues extends [string, ...string[]]> {\n\t(): PgEnumColumnBuilderInitial<'', TValues>;\n\t<TName extends string>(name: TName): PgEnumColumnBuilderInitial<TName, TValues>;\n\t<TName extends string>(name?: TName): PgEnumColumnBuilderInitial<TName, TValues>;\n\n\treadonly enumName: string;\n\treadonly enumValues: TValues;\n\treadonly schema: string | undefined;\n\t/** @internal */\n\t[isPgEnumSym]: true;\n}\n\nexport function isPgEnum(obj: unknown): obj is PgEnum<[string, ...string[]]> {\n\treturn !!obj && typeof obj === 'function' && isPgEnumSym in obj && obj[isPgEnumSym] === true;\n}\n\nexport class PgEnumColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'PgEnumColumn'> & { enumValues: [string, ...string[]] },\n> extends PgColumnBuilder<T, { enum: PgEnum<T['enumValues']> }> {\n\tstatic override readonly [entityKind]: string = 'PgEnumColumnBuilder';\n\n\tconstructor(name: T['name'], enumInstance: PgEnum<T['enumValues']>) {\n\t\tsuper(name, 'string', 'PgEnumColumn');\n\t\tthis.config.enum = enumInstance;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgEnumColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgEnumColumn<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 PgEnumColumn<T extends ColumnBaseConfig<'string', 'PgEnumColumn'> & { enumValues: [string, ...string[]] }>\n\textends PgColumn<T, { enum: PgEnum<T['enumValues']> }>\n{\n\tstatic override readonly [entityKind]: string = 'PgEnumColumn';\n\n\treadonly enum = this.config.enum;\n\toverride readonly enumValues = this.config.enum.enumValues;\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgEnumColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.enum = config.enum;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.enum.enumName;\n\t}\n}\n\nexport function pgEnum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tenumName: string,\n\tvalues: T | Writable<T>,\n): PgEnum<Writable<T>>;\n\nexport function pgEnum<E extends Record<string, string>>(\n\tenumName: string,\n\tenumObj: NonArray<E>,\n): PgEnumObject<E>;\n\nexport function pgEnum(\n\tenumName: any,\n\tinput: any,\n): any {\n\treturn Array.isArray(input)\n\t\t? pgEnumWithSchema(enumName, [...input] as [string, ...string[]], undefined)\n\t\t: pgEnumObjectWithSchema(enumName, input, undefined);\n}\n\n/** @internal */\nexport function pgEnumWithSchema<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tenumName: string,\n\tvalues: T | Writable<T>,\n\tschema?: string,\n): PgEnum<Writable<T>> {\n\tconst enumInstance: PgEnum<Writable<T>> = Object.assign(\n\t\t<TName extends string>(name?: TName): PgEnumColumnBuilderInitial<TName, Writable<T>> =>\n\t\t\tnew PgEnumColumnBuilder(name ?? '' as TName, enumInstance),\n\t\t{\n\t\t\tenumName,\n\t\t\tenumValues: values,\n\t\t\tschema,\n\t\t\t[isPgEnumSym]: true,\n\t\t} as const,\n\t);\n\n\treturn enumInstance;\n}\n\n/** @internal */\nexport function pgEnumObjectWithSchema<T extends object>(\n\tenumName: string,\n\tvalues: T,\n\tschema?: string,\n): PgEnumObject<T> {\n\tconst enumInstance: PgEnumObject<T> = Object.assign(\n\t\t<TName extends string>(name?: TName): PgEnumObjectColumnBuilderInitial<TName, T> =>\n\t\t\tnew PgEnumObjectColumnBuilder(name ?? '' as TName, enumInstance),\n\t\t{\n\t\t\tenumName,\n\t\t\tenumValues: Object.values(values),\n\t\t\tschema,\n\t\t\t[isPgEnumSym]: true,\n\t\t} as const,\n\t);\n\n\treturn enumInstance;\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAG3B,SAAS,UAAU,uBAAuB;AAyBnC,MAAM,kCAEH,gBAAgD;AAAA,EACzD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,cAAiC;AAC7D,UAAM,MAAM,UAAU,oBAAoB;AAC1C,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA;AAAA,EAGS,MACR,OACsD;AACtD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,2BACJ,SACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EACS,aAAa,KAAK,OAAO,KAAK;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK,KAAK;AAAA,EAClB;AACD;AAcA,MAAM,cAAc,OAAO,IAAI,kBAAkB;AAa1C,SAAS,SAAS,KAAoD;AAC5E,SAAO,CAAC,CAAC,OAAO,OAAO,QAAQ,cAAc,eAAe,OAAO,IAAI,WAAW,MAAM;AACzF;AAEO,MAAM,4BAEH,gBAAsD;AAAA,EAC/D,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,cAAuC;AACnE,UAAM,MAAM,UAAU,cAAc;AACpC,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,SACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC,OAAO,KAAK,OAAO;AAAA,EACV,aAAa,KAAK,OAAO,KAAK;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,OAAO,OAAO;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK,KAAK;AAAA,EAClB;AACD;AAYO,SAAS,OACf,UACA,OACM;AACN,SAAO,MAAM,QAAQ,KAAK,IACvB,iBAAiB,UAAU,CAAC,GAAG,KAAK,GAA4B,MAAS,IACzE,uBAAuB,UAAU,OAAO,MAAS;AACrD;AAGO,SAAS,iBACf,UACA,QACA,QACsB;AACtB,QAAM,eAAoC,OAAO;AAAA,IAChD,CAAuB,SACtB,IAAI,oBAAoB,QAAQ,IAAa,YAAY;AAAA,IAC1D;AAAA,MACC;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA,CAAC,WAAW,GAAG;AAAA,IAChB;AAAA,EACD;AAEA,SAAO;AACR;AAGO,SAAS,uBACf,UACA,QACA,QACkB;AAClB,QAAM,eAAgC,OAAO;AAAA,IAC5C,CAAuB,SACtB,IAAI,0BAA0B,QAAQ,IAAa,YAAY;AAAA,IAChE;AAAA,MACC;AAAA,MACA,YAAY,OAAO,OAAO,MAAM;AAAA,MAChC;AAAA,MACA,CAAC,WAAW,GAAG;AAAA,IAChB;AAAA,EACD;AAEA,SAAO;AACR;","names":[]}
package/pg-core/db.cjs CHANGED
@@ -116,6 +116,7 @@ class PgDatabase {
116
116
  $count(source, filters) {
117
117
  return new import_count.PgCountBuilder({ source, filters, session: this.session });
118
118
  }
119
+ $cache;
119
120
  /**
120
121
  * Incorporates a previously defined CTE (using `$with`) into the main query.
121
122
  *