drizzle-orm 0.36.3 → 0.36.4-14e59f4

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 (574) hide show
  1. package/aws-data-api/pg/driver.cjs.map +1 -1
  2. package/aws-data-api/pg/driver.d.cts +3 -5
  3. package/aws-data-api/pg/driver.d.ts +3 -5
  4. package/aws-data-api/pg/driver.js.map +1 -1
  5. package/better-sqlite3/driver.cjs.map +1 -1
  6. package/better-sqlite3/driver.d.cts +3 -5
  7. package/better-sqlite3/driver.d.ts +3 -5
  8. package/better-sqlite3/driver.js.map +1 -1
  9. package/bun-sqlite/driver.cjs.map +1 -1
  10. package/bun-sqlite/driver.d.cts +3 -5
  11. package/bun-sqlite/driver.d.ts +3 -5
  12. package/bun-sqlite/driver.js.map +1 -1
  13. package/column-builder.cjs.map +1 -1
  14. package/column-builder.d.cts +14 -8
  15. package/column-builder.d.ts +14 -8
  16. package/column-builder.js.map +1 -1
  17. package/column.cjs.map +1 -1
  18. package/column.d.cts +1 -0
  19. package/column.d.ts +1 -0
  20. package/column.js.map +1 -1
  21. package/durable-sqlite/driver.cjs +64 -0
  22. package/durable-sqlite/driver.cjs.map +1 -0
  23. package/durable-sqlite/driver.d.cts +9 -0
  24. package/durable-sqlite/driver.d.ts +9 -0
  25. package/durable-sqlite/driver.js +42 -0
  26. package/durable-sqlite/driver.js.map +1 -0
  27. package/durable-sqlite/index.cjs +25 -0
  28. package/durable-sqlite/index.cjs.map +1 -0
  29. package/durable-sqlite/index.d.cts +2 -0
  30. package/durable-sqlite/index.d.ts +2 -0
  31. package/durable-sqlite/index.js +3 -0
  32. package/durable-sqlite/index.js.map +1 -0
  33. package/durable-sqlite/migrator.cjs +85 -0
  34. package/durable-sqlite/migrator.cjs.map +1 -0
  35. package/durable-sqlite/migrator.d.cts +14 -0
  36. package/durable-sqlite/migrator.d.ts +14 -0
  37. package/durable-sqlite/migrator.js +61 -0
  38. package/durable-sqlite/migrator.js.map +1 -0
  39. package/durable-sqlite/session.cjs +131 -0
  40. package/durable-sqlite/session.cjs.map +1 -0
  41. package/durable-sqlite/session.d.cts +46 -0
  42. package/durable-sqlite/session.d.ts +46 -0
  43. package/durable-sqlite/session.js +107 -0
  44. package/durable-sqlite/session.js.map +1 -0
  45. package/libsql/driver.cjs.map +1 -1
  46. package/libsql/driver.d.cts +3 -5
  47. package/libsql/driver.d.ts +3 -5
  48. package/libsql/driver.js.map +1 -1
  49. package/libsql/http/index.cjs.map +1 -1
  50. package/libsql/http/index.d.cts +3 -5
  51. package/libsql/http/index.d.ts +3 -5
  52. package/libsql/http/index.js.map +1 -1
  53. package/libsql/node/index.cjs.map +1 -1
  54. package/libsql/node/index.d.cts +3 -5
  55. package/libsql/node/index.d.ts +3 -5
  56. package/libsql/node/index.js.map +1 -1
  57. package/libsql/sqlite3/index.cjs.map +1 -1
  58. package/libsql/sqlite3/index.d.cts +3 -5
  59. package/libsql/sqlite3/index.d.ts +3 -5
  60. package/libsql/sqlite3/index.js.map +1 -1
  61. package/libsql/wasm/index.cjs.map +1 -1
  62. package/libsql/wasm/index.d.cts +3 -5
  63. package/libsql/wasm/index.d.ts +3 -5
  64. package/libsql/wasm/index.js.map +1 -1
  65. package/libsql/web/index.cjs.map +1 -1
  66. package/libsql/web/index.d.cts +3 -5
  67. package/libsql/web/index.d.ts +3 -5
  68. package/libsql/web/index.js.map +1 -1
  69. package/libsql/ws/index.cjs.map +1 -1
  70. package/libsql/ws/index.d.cts +3 -5
  71. package/libsql/ws/index.d.ts +3 -5
  72. package/libsql/ws/index.js.map +1 -1
  73. package/mysql2/driver.cjs.map +1 -1
  74. package/mysql2/driver.d.cts +3 -5
  75. package/mysql2/driver.d.ts +3 -5
  76. package/mysql2/driver.js.map +1 -1
  77. package/neon-http/driver.cjs +31 -0
  78. package/neon-http/driver.cjs.map +1 -1
  79. package/neon-http/driver.d.cts +5 -6
  80. package/neon-http/driver.d.ts +5 -6
  81. package/neon-http/driver.js +31 -0
  82. package/neon-http/driver.js.map +1 -1
  83. package/neon-http/session.cjs +32 -8
  84. package/neon-http/session.cjs.map +1 -1
  85. package/neon-http/session.d.cts +3 -3
  86. package/neon-http/session.d.ts +3 -3
  87. package/neon-http/session.js +32 -8
  88. package/neon-http/session.js.map +1 -1
  89. package/neon-serverless/driver.cjs.map +1 -1
  90. package/neon-serverless/driver.d.cts +3 -5
  91. package/neon-serverless/driver.d.ts +3 -5
  92. package/neon-serverless/driver.js.map +1 -1
  93. package/node-postgres/driver.cjs.map +1 -1
  94. package/node-postgres/driver.d.cts +3 -5
  95. package/node-postgres/driver.d.ts +3 -5
  96. package/node-postgres/driver.js.map +1 -1
  97. package/operations.cjs.map +1 -1
  98. package/operations.d.cts +3 -4
  99. package/operations.d.ts +3 -4
  100. package/package.json +798 -17
  101. package/pg-core/columns/common.cjs.map +1 -1
  102. package/pg-core/columns/common.d.cts +1 -2
  103. package/pg-core/columns/common.d.ts +1 -2
  104. package/pg-core/columns/common.js.map +1 -1
  105. package/pg-core/columns/int.common.cjs.map +1 -1
  106. package/pg-core/columns/int.common.d.cts +3 -3
  107. package/pg-core/columns/int.common.d.ts +3 -3
  108. package/pg-core/columns/int.common.js.map +1 -1
  109. package/pg-core/db.cjs +2 -1
  110. package/pg-core/db.cjs.map +1 -1
  111. package/pg-core/db.d.cts +2 -1
  112. package/pg-core/db.d.ts +2 -1
  113. package/pg-core/db.js +2 -1
  114. package/pg-core/db.js.map +1 -1
  115. package/pg-core/dialect.cjs +3 -2
  116. package/pg-core/dialect.cjs.map +1 -1
  117. package/pg-core/dialect.d.cts +1 -1
  118. package/pg-core/dialect.d.ts +1 -1
  119. package/pg-core/dialect.js +3 -2
  120. package/pg-core/dialect.js.map +1 -1
  121. package/pg-core/query-builders/count.cjs +7 -1
  122. package/pg-core/query-builders/count.cjs.map +1 -1
  123. package/pg-core/query-builders/count.d.cts +5 -1
  124. package/pg-core/query-builders/count.d.ts +5 -1
  125. package/pg-core/query-builders/count.js +7 -1
  126. package/pg-core/query-builders/count.js.map +1 -1
  127. package/pg-core/query-builders/delete.cjs +7 -1
  128. package/pg-core/query-builders/delete.cjs.map +1 -1
  129. package/pg-core/query-builders/delete.d.cts +1 -0
  130. package/pg-core/query-builders/delete.d.ts +1 -0
  131. package/pg-core/query-builders/delete.js +7 -1
  132. package/pg-core/query-builders/delete.js.map +1 -1
  133. package/pg-core/query-builders/insert.cjs +30 -5
  134. package/pg-core/query-builders/insert.cjs.map +1 -1
  135. package/pg-core/query-builders/insert.d.cts +20 -8
  136. package/pg-core/query-builders/insert.d.ts +20 -8
  137. package/pg-core/query-builders/insert.js +30 -5
  138. package/pg-core/query-builders/insert.js.map +1 -1
  139. package/pg-core/query-builders/query.cjs +7 -1
  140. package/pg-core/query-builders/query.cjs.map +1 -1
  141. package/pg-core/query-builders/query.d.cts +1 -0
  142. package/pg-core/query-builders/query.d.ts +1 -0
  143. package/pg-core/query-builders/query.js +7 -1
  144. package/pg-core/query-builders/query.js.map +1 -1
  145. package/pg-core/query-builders/refresh-materialized-view.cjs +7 -1
  146. package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  147. package/pg-core/query-builders/refresh-materialized-view.d.cts +1 -0
  148. package/pg-core/query-builders/refresh-materialized-view.d.ts +1 -0
  149. package/pg-core/query-builders/refresh-materialized-view.js +7 -1
  150. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  151. package/pg-core/query-builders/select.cjs +16 -4
  152. package/pg-core/query-builders/select.cjs.map +1 -1
  153. package/pg-core/query-builders/select.d.cts +2 -0
  154. package/pg-core/query-builders/select.d.ts +2 -0
  155. package/pg-core/query-builders/select.js +22 -5
  156. package/pg-core/query-builders/select.js.map +1 -1
  157. package/pg-core/query-builders/update.cjs +13 -2
  158. package/pg-core/query-builders/update.cjs.map +1 -1
  159. package/pg-core/query-builders/update.d.cts +4 -1
  160. package/pg-core/query-builders/update.d.ts +4 -1
  161. package/pg-core/query-builders/update.js +18 -3
  162. package/pg-core/query-builders/update.js.map +1 -1
  163. package/pg-core/session.cjs +12 -4
  164. package/pg-core/session.cjs.map +1 -1
  165. package/pg-core/session.d.cts +2 -0
  166. package/pg-core/session.d.ts +2 -0
  167. package/pg-core/session.js +12 -4
  168. package/pg-core/session.js.map +1 -1
  169. package/pglite/driver.cjs.map +1 -1
  170. package/pglite/driver.d.cts +3 -5
  171. package/pglite/driver.d.ts +3 -5
  172. package/pglite/driver.js.map +1 -1
  173. package/planetscale-serverless/driver.cjs.map +1 -1
  174. package/planetscale-serverless/driver.d.cts +3 -5
  175. package/planetscale-serverless/driver.d.ts +3 -5
  176. package/planetscale-serverless/driver.js.map +1 -1
  177. package/postgres-js/driver.cjs.map +1 -1
  178. package/postgres-js/driver.d.cts +3 -5
  179. package/postgres-js/driver.d.ts +3 -5
  180. package/postgres-js/driver.js.map +1 -1
  181. package/singlestore/driver.cjs +113 -0
  182. package/singlestore/driver.cjs.map +1 -0
  183. package/singlestore/driver.d.cts +52 -0
  184. package/singlestore/driver.d.ts +52 -0
  185. package/singlestore/driver.js +89 -0
  186. package/singlestore/driver.js.map +1 -0
  187. package/singlestore/index.cjs +25 -0
  188. package/singlestore/index.cjs.map +1 -0
  189. package/singlestore/index.d.cts +2 -0
  190. package/singlestore/index.d.ts +2 -0
  191. package/singlestore/index.js +3 -0
  192. package/singlestore/index.js.map +1 -0
  193. package/singlestore/migrator.cjs +33 -0
  194. package/singlestore/migrator.cjs.map +1 -0
  195. package/singlestore/migrator.d.cts +3 -0
  196. package/singlestore/migrator.d.ts +3 -0
  197. package/singlestore/migrator.js +9 -0
  198. package/singlestore/migrator.js.map +1 -0
  199. package/singlestore/session.cjs +258 -0
  200. package/singlestore/session.cjs.map +1 -0
  201. package/singlestore/session.d.cts +52 -0
  202. package/singlestore/session.d.ts +52 -0
  203. package/singlestore/session.js +236 -0
  204. package/singlestore/session.js.map +1 -0
  205. package/singlestore-core/alias.cjs +32 -0
  206. package/singlestore-core/alias.cjs.map +1 -0
  207. package/singlestore-core/alias.d.cts +4 -0
  208. package/singlestore-core/alias.d.ts +4 -0
  209. package/singlestore-core/alias.js +8 -0
  210. package/singlestore-core/alias.js.map +1 -0
  211. package/singlestore-core/columns/all.cjs +80 -0
  212. package/singlestore-core/columns/all.cjs.map +1 -0
  213. package/singlestore-core/columns/all.d.cts +51 -0
  214. package/singlestore-core/columns/all.d.ts +51 -0
  215. package/singlestore-core/columns/all.js +56 -0
  216. package/singlestore-core/columns/all.js.map +1 -0
  217. package/singlestore-core/columns/bigint.cjs +96 -0
  218. package/singlestore-core/columns/bigint.cjs.map +1 -0
  219. package/singlestore-core/columns/bigint.d.cts +54 -0
  220. package/singlestore-core/columns/bigint.d.ts +54 -0
  221. package/singlestore-core/columns/bigint.js +68 -0
  222. package/singlestore-core/columns/bigint.js.map +1 -0
  223. package/singlestore-core/columns/binary.cjs +60 -0
  224. package/singlestore-core/columns/binary.cjs.map +1 -0
  225. package/singlestore-core/columns/binary.d.cts +28 -0
  226. package/singlestore-core/columns/binary.d.ts +28 -0
  227. package/singlestore-core/columns/binary.js +34 -0
  228. package/singlestore-core/columns/binary.js.map +1 -0
  229. package/singlestore-core/columns/boolean.cjs +62 -0
  230. package/singlestore-core/columns/boolean.cjs.map +1 -0
  231. package/singlestore-core/columns/boolean.d.cts +24 -0
  232. package/singlestore-core/columns/boolean.d.ts +24 -0
  233. package/singlestore-core/columns/boolean.js +36 -0
  234. package/singlestore-core/columns/boolean.js.map +1 -0
  235. package/singlestore-core/columns/char.cjs +62 -0
  236. package/singlestore-core/columns/char.cjs.map +1 -0
  237. package/singlestore-core/columns/char.d.cts +31 -0
  238. package/singlestore-core/columns/char.d.ts +31 -0
  239. package/singlestore-core/columns/char.js +36 -0
  240. package/singlestore-core/columns/char.js.map +1 -0
  241. package/singlestore-core/columns/common.cjs +82 -0
  242. package/singlestore-core/columns/common.cjs.map +1 -0
  243. package/singlestore-core/columns/common.d.cts +42 -0
  244. package/singlestore-core/columns/common.d.ts +42 -0
  245. package/singlestore-core/columns/common.js +55 -0
  246. package/singlestore-core/columns/common.js.map +1 -0
  247. package/singlestore-core/columns/custom.cjs +77 -0
  248. package/singlestore-core/columns/custom.cjs.map +1 -0
  249. package/singlestore-core/columns/custom.d.cts +156 -0
  250. package/singlestore-core/columns/custom.d.ts +156 -0
  251. package/singlestore-core/columns/custom.js +51 -0
  252. package/singlestore-core/columns/custom.js.map +1 -0
  253. package/singlestore-core/columns/date.cjs +93 -0
  254. package/singlestore-core/columns/date.cjs.map +1 -0
  255. package/singlestore-core/columns/date.common.cjs +48 -0
  256. package/singlestore-core/columns/date.common.cjs.map +1 -0
  257. package/singlestore-core/columns/date.common.d.cts +16 -0
  258. package/singlestore-core/columns/date.common.d.ts +16 -0
  259. package/singlestore-core/columns/date.common.js +23 -0
  260. package/singlestore-core/columns/date.common.js.map +1 -0
  261. package/singlestore-core/columns/date.d.cts +53 -0
  262. package/singlestore-core/columns/date.d.ts +53 -0
  263. package/singlestore-core/columns/date.js +65 -0
  264. package/singlestore-core/columns/date.js.map +1 -0
  265. package/singlestore-core/columns/datetime.cjs +106 -0
  266. package/singlestore-core/columns/datetime.cjs.map +1 -0
  267. package/singlestore-core/columns/datetime.d.cts +54 -0
  268. package/singlestore-core/columns/datetime.d.ts +54 -0
  269. package/singlestore-core/columns/datetime.js +78 -0
  270. package/singlestore-core/columns/datetime.js.map +1 -0
  271. package/singlestore-core/columns/decimal.cjs +76 -0
  272. package/singlestore-core/columns/decimal.cjs.map +1 -0
  273. package/singlestore-core/columns/decimal.d.cts +32 -0
  274. package/singlestore-core/columns/decimal.d.ts +32 -0
  275. package/singlestore-core/columns/decimal.js +50 -0
  276. package/singlestore-core/columns/decimal.js.map +1 -0
  277. package/singlestore-core/columns/double.cjs +72 -0
  278. package/singlestore-core/columns/double.cjs.map +1 -0
  279. package/singlestore-core/columns/double.d.cts +32 -0
  280. package/singlestore-core/columns/double.d.ts +32 -0
  281. package/singlestore-core/columns/double.js +46 -0
  282. package/singlestore-core/columns/double.js.map +1 -0
  283. package/singlestore-core/columns/enum.cjs +67 -0
  284. package/singlestore-core/columns/enum.cjs.map +1 -0
  285. package/singlestore-core/columns/enum.d.cts +31 -0
  286. package/singlestore-core/columns/enum.d.ts +31 -0
  287. package/singlestore-core/columns/enum.js +41 -0
  288. package/singlestore-core/columns/enum.js.map +1 -0
  289. package/singlestore-core/columns/float.cjs +72 -0
  290. package/singlestore-core/columns/float.cjs.map +1 -0
  291. package/singlestore-core/columns/float.d.cts +32 -0
  292. package/singlestore-core/columns/float.d.ts +32 -0
  293. package/singlestore-core/columns/float.js +46 -0
  294. package/singlestore-core/columns/float.js.map +1 -0
  295. package/singlestore-core/columns/index.cjs +71 -0
  296. package/singlestore-core/columns/index.cjs.map +1 -0
  297. package/singlestore-core/columns/index.d.cts +25 -0
  298. package/singlestore-core/columns/index.d.ts +25 -0
  299. package/singlestore-core/columns/index.js +26 -0
  300. package/singlestore-core/columns/index.js.map +1 -0
  301. package/singlestore-core/columns/int.cjs +65 -0
  302. package/singlestore-core/columns/int.cjs.map +1 -0
  303. package/singlestore-core/columns/int.d.cts +28 -0
  304. package/singlestore-core/columns/int.d.ts +28 -0
  305. package/singlestore-core/columns/int.js +39 -0
  306. package/singlestore-core/columns/int.js.map +1 -0
  307. package/singlestore-core/columns/json.cjs +59 -0
  308. package/singlestore-core/columns/json.cjs.map +1 -0
  309. package/singlestore-core/columns/json.d.cts +24 -0
  310. package/singlestore-core/columns/json.d.ts +24 -0
  311. package/singlestore-core/columns/json.js +33 -0
  312. package/singlestore-core/columns/json.js.map +1 -0
  313. package/singlestore-core/columns/mediumint.cjs +65 -0
  314. package/singlestore-core/columns/mediumint.cjs.map +1 -0
  315. package/singlestore-core/columns/mediumint.d.cts +26 -0
  316. package/singlestore-core/columns/mediumint.d.ts +26 -0
  317. package/singlestore-core/columns/mediumint.js +39 -0
  318. package/singlestore-core/columns/mediumint.js.map +1 -0
  319. package/singlestore-core/columns/real.cjs +68 -0
  320. package/singlestore-core/columns/real.cjs.map +1 -0
  321. package/singlestore-core/columns/real.d.cts +30 -0
  322. package/singlestore-core/columns/real.d.ts +30 -0
  323. package/singlestore-core/columns/real.js +42 -0
  324. package/singlestore-core/columns/real.js.map +1 -0
  325. package/singlestore-core/columns/serial.cjs +64 -0
  326. package/singlestore-core/columns/serial.cjs.map +1 -0
  327. package/singlestore-core/columns/serial.d.cts +24 -0
  328. package/singlestore-core/columns/serial.d.ts +24 -0
  329. package/singlestore-core/columns/serial.js +38 -0
  330. package/singlestore-core/columns/serial.js.map +1 -0
  331. package/singlestore-core/columns/smallint.cjs +65 -0
  332. package/singlestore-core/columns/smallint.cjs.map +1 -0
  333. package/singlestore-core/columns/smallint.d.cts +26 -0
  334. package/singlestore-core/columns/smallint.d.ts +26 -0
  335. package/singlestore-core/columns/smallint.js +39 -0
  336. package/singlestore-core/columns/smallint.js.map +1 -0
  337. package/singlestore-core/columns/text.cjs +80 -0
  338. package/singlestore-core/columns/text.cjs.map +1 -0
  339. package/singlestore-core/columns/text.d.cts +46 -0
  340. package/singlestore-core/columns/text.d.ts +46 -0
  341. package/singlestore-core/columns/text.js +51 -0
  342. package/singlestore-core/columns/text.js.map +1 -0
  343. package/singlestore-core/columns/time.cjs +56 -0
  344. package/singlestore-core/columns/time.cjs.map +1 -0
  345. package/singlestore-core/columns/time.d.cts +23 -0
  346. package/singlestore-core/columns/time.d.ts +23 -0
  347. package/singlestore-core/columns/time.js +30 -0
  348. package/singlestore-core/columns/time.js.map +1 -0
  349. package/singlestore-core/columns/timestamp.cjs +97 -0
  350. package/singlestore-core/columns/timestamp.cjs.map +1 -0
  351. package/singlestore-core/columns/timestamp.d.cts +49 -0
  352. package/singlestore-core/columns/timestamp.d.ts +49 -0
  353. package/singlestore-core/columns/timestamp.js +69 -0
  354. package/singlestore-core/columns/timestamp.js.map +1 -0
  355. package/singlestore-core/columns/tinyint.cjs +65 -0
  356. package/singlestore-core/columns/tinyint.cjs.map +1 -0
  357. package/singlestore-core/columns/tinyint.d.cts +26 -0
  358. package/singlestore-core/columns/tinyint.d.ts +26 -0
  359. package/singlestore-core/columns/tinyint.js +39 -0
  360. package/singlestore-core/columns/tinyint.js.map +1 -0
  361. package/singlestore-core/columns/varbinary.cjs +61 -0
  362. package/singlestore-core/columns/varbinary.cjs.map +1 -0
  363. package/singlestore-core/columns/varbinary.d.cts +26 -0
  364. package/singlestore-core/columns/varbinary.d.ts +26 -0
  365. package/singlestore-core/columns/varbinary.js +35 -0
  366. package/singlestore-core/columns/varbinary.js.map +1 -0
  367. package/singlestore-core/columns/varchar.cjs +63 -0
  368. package/singlestore-core/columns/varchar.cjs.map +1 -0
  369. package/singlestore-core/columns/varchar.d.cts +29 -0
  370. package/singlestore-core/columns/varchar.d.ts +29 -0
  371. package/singlestore-core/columns/varchar.js +37 -0
  372. package/singlestore-core/columns/varchar.js.map +1 -0
  373. package/singlestore-core/columns/year.cjs +56 -0
  374. package/singlestore-core/columns/year.cjs.map +1 -0
  375. package/singlestore-core/columns/year.d.cts +23 -0
  376. package/singlestore-core/columns/year.d.ts +23 -0
  377. package/singlestore-core/columns/year.js +30 -0
  378. package/singlestore-core/columns/year.js.map +1 -0
  379. package/singlestore-core/db.cjs +261 -0
  380. package/singlestore-core/db.cjs.map +1 -0
  381. package/singlestore-core/db.d.cts +231 -0
  382. package/singlestore-core/db.d.ts +231 -0
  383. package/singlestore-core/db.js +242 -0
  384. package/singlestore-core/db.js.map +1 -0
  385. package/singlestore-core/dialect.cjs +607 -0
  386. package/singlestore-core/dialect.cjs.map +1 -0
  387. package/singlestore-core/dialect.d.cts +64 -0
  388. package/singlestore-core/dialect.d.ts +64 -0
  389. package/singlestore-core/dialect.js +589 -0
  390. package/singlestore-core/dialect.js.map +1 -0
  391. package/singlestore-core/expressions.cjs +49 -0
  392. package/singlestore-core/expressions.cjs.map +1 -0
  393. package/singlestore-core/expressions.d.cts +8 -0
  394. package/singlestore-core/expressions.d.ts +8 -0
  395. package/singlestore-core/expressions.js +22 -0
  396. package/singlestore-core/expressions.js.map +1 -0
  397. package/singlestore-core/index.cjs +47 -0
  398. package/singlestore-core/index.cjs.map +1 -0
  399. package/singlestore-core/index.d.cts +13 -0
  400. package/singlestore-core/index.d.ts +13 -0
  401. package/singlestore-core/index.js +14 -0
  402. package/singlestore-core/index.js.map +1 -0
  403. package/singlestore-core/indexes.cjs +88 -0
  404. package/singlestore-core/indexes.cjs.map +1 -0
  405. package/singlestore-core/indexes.d.cts +62 -0
  406. package/singlestore-core/indexes.d.ts +62 -0
  407. package/singlestore-core/indexes.js +60 -0
  408. package/singlestore-core/indexes.js.map +1 -0
  409. package/singlestore-core/primary-keys.cjs +68 -0
  410. package/singlestore-core/primary-keys.cjs.map +1 -0
  411. package/singlestore-core/primary-keys.d.cts +30 -0
  412. package/singlestore-core/primary-keys.d.ts +30 -0
  413. package/singlestore-core/primary-keys.js +42 -0
  414. package/singlestore-core/primary-keys.js.map +1 -0
  415. package/singlestore-core/query-builders/count.cjs +73 -0
  416. package/singlestore-core/query-builders/count.cjs.map +1 -0
  417. package/singlestore-core/query-builders/count.d.cts +25 -0
  418. package/singlestore-core/query-builders/count.d.ts +25 -0
  419. package/singlestore-core/query-builders/count.js +49 -0
  420. package/singlestore-core/query-builders/count.js.map +1 -0
  421. package/singlestore-core/query-builders/delete.cjs +123 -0
  422. package/singlestore-core/query-builders/delete.cjs.map +1 -0
  423. package/singlestore-core/query-builders/delete.d.cts +83 -0
  424. package/singlestore-core/query-builders/delete.d.ts +83 -0
  425. package/singlestore-core/query-builders/delete.js +99 -0
  426. package/singlestore-core/query-builders/delete.js.map +1 -0
  427. package/singlestore-core/query-builders/index.cjs +33 -0
  428. package/singlestore-core/query-builders/index.cjs.map +1 -0
  429. package/singlestore-core/query-builders/index.d.cts +6 -0
  430. package/singlestore-core/query-builders/index.d.ts +6 -0
  431. package/singlestore-core/query-builders/index.js +7 -0
  432. package/singlestore-core/query-builders/index.js.map +1 -0
  433. package/singlestore-core/query-builders/insert.cjs +146 -0
  434. package/singlestore-core/query-builders/insert.cjs.map +1 -0
  435. package/singlestore-core/query-builders/insert.d.cts +106 -0
  436. package/singlestore-core/query-builders/insert.d.ts +106 -0
  437. package/singlestore-core/query-builders/insert.js +121 -0
  438. package/singlestore-core/query-builders/insert.js.map +1 -0
  439. package/singlestore-core/query-builders/query-builder.cjs +99 -0
  440. package/singlestore-core/query-builders/query-builder.cjs.map +1 -0
  441. package/singlestore-core/query-builders/query-builder.d.cts +33 -0
  442. package/singlestore-core/query-builders/query-builder.d.ts +33 -0
  443. package/singlestore-core/query-builders/query-builder.js +75 -0
  444. package/singlestore-core/query-builders/query-builder.js.map +1 -0
  445. package/singlestore-core/query-builders/query.cjs +126 -0
  446. package/singlestore-core/query-builders/query.cjs.map +1 -0
  447. package/singlestore-core/query-builders/query.d.cts +42 -0
  448. package/singlestore-core/query-builders/query.d.ts +42 -0
  449. package/singlestore-core/query-builders/query.js +103 -0
  450. package/singlestore-core/query-builders/query.js.map +1 -0
  451. package/singlestore-core/query-builders/select.cjs +687 -0
  452. package/singlestore-core/query-builders/select.cjs.map +1 -0
  453. package/singlestore-core/query-builders/select.d.cts +585 -0
  454. package/singlestore-core/query-builders/select.d.ts +585 -0
  455. package/singlestore-core/query-builders/select.js +662 -0
  456. package/singlestore-core/query-builders/select.js.map +1 -0
  457. package/singlestore-core/query-builders/select.types.cjs +17 -0
  458. package/singlestore-core/query-builders/select.types.cjs.map +1 -0
  459. package/singlestore-core/query-builders/select.types.d.cts +137 -0
  460. package/singlestore-core/query-builders/select.types.d.ts +137 -0
  461. package/singlestore-core/query-builders/select.types.js +1 -0
  462. package/singlestore-core/query-builders/select.types.js.map +1 -0
  463. package/singlestore-core/query-builders/update.cjs +147 -0
  464. package/singlestore-core/query-builders/update.cjs.map +1 -0
  465. package/singlestore-core/query-builders/update.d.cts +102 -0
  466. package/singlestore-core/query-builders/update.d.ts +102 -0
  467. package/singlestore-core/query-builders/update.js +122 -0
  468. package/singlestore-core/query-builders/update.js.map +1 -0
  469. package/singlestore-core/schema.cjs +56 -0
  470. package/singlestore-core/schema.cjs.map +1 -0
  471. package/singlestore-core/schema.d.cts +22 -0
  472. package/singlestore-core/schema.d.ts +22 -0
  473. package/singlestore-core/schema.js +29 -0
  474. package/singlestore-core/schema.js.map +1 -0
  475. package/singlestore-core/session.cjs +87 -0
  476. package/singlestore-core/session.cjs.map +1 -0
  477. package/singlestore-core/session.d.cts +66 -0
  478. package/singlestore-core/session.d.ts +66 -0
  479. package/singlestore-core/session.js +61 -0
  480. package/singlestore-core/session.js.map +1 -0
  481. package/singlestore-core/subquery.cjs +17 -0
  482. package/singlestore-core/subquery.cjs.map +1 -0
  483. package/singlestore-core/subquery.d.cts +5 -0
  484. package/singlestore-core/subquery.d.ts +5 -0
  485. package/singlestore-core/subquery.js +1 -0
  486. package/singlestore-core/subquery.js.map +1 -0
  487. package/singlestore-core/table.cjs +73 -0
  488. package/singlestore-core/table.cjs.map +1 -0
  489. package/singlestore-core/table.d.cts +40 -0
  490. package/singlestore-core/table.d.ts +40 -0
  491. package/singlestore-core/table.js +46 -0
  492. package/singlestore-core/table.js.map +1 -0
  493. package/singlestore-core/unique-constraint.cjs +82 -0
  494. package/singlestore-core/unique-constraint.cjs.map +1 -0
  495. package/singlestore-core/unique-constraint.d.cts +24 -0
  496. package/singlestore-core/unique-constraint.d.ts +24 -0
  497. package/singlestore-core/unique-constraint.js +54 -0
  498. package/singlestore-core/unique-constraint.js.map +1 -0
  499. package/singlestore-core/utils.cjs +65 -0
  500. package/singlestore-core/utils.cjs.map +1 -0
  501. package/singlestore-core/utils.d.cts +13 -0
  502. package/singlestore-core/utils.d.ts +13 -0
  503. package/singlestore-core/utils.js +41 -0
  504. package/singlestore-core/utils.js.map +1 -0
  505. package/singlestore-core/view-base.cjs +33 -0
  506. package/singlestore-core/view-base.cjs.map +1 -0
  507. package/singlestore-core/view-base.d.cts +9 -0
  508. package/singlestore-core/view-base.d.ts +9 -0
  509. package/singlestore-core/view-base.js +9 -0
  510. package/singlestore-core/view-base.js.map +1 -0
  511. package/singlestore-core/view-common.cjs +29 -0
  512. package/singlestore-core/view-common.cjs.map +1 -0
  513. package/singlestore-core/view-common.d.cts +1 -0
  514. package/singlestore-core/view-common.d.ts +1 -0
  515. package/singlestore-core/view-common.js +5 -0
  516. package/singlestore-core/view-common.js.map +1 -0
  517. package/singlestore-core/view.cjs +146 -0
  518. package/singlestore-core/view.cjs.map +1 -0
  519. package/singlestore-core/view.d.cts +65 -0
  520. package/singlestore-core/view.d.ts +65 -0
  521. package/singlestore-core/view.js +119 -0
  522. package/singlestore-core/view.js.map +1 -0
  523. package/singlestore-proxy/driver.cjs +62 -0
  524. package/singlestore-proxy/driver.cjs.map +1 -0
  525. package/singlestore-proxy/driver.d.cts +13 -0
  526. package/singlestore-proxy/driver.d.ts +13 -0
  527. package/singlestore-proxy/driver.js +42 -0
  528. package/singlestore-proxy/driver.js.map +1 -0
  529. package/singlestore-proxy/index.cjs +25 -0
  530. package/singlestore-proxy/index.cjs.map +1 -0
  531. package/singlestore-proxy/index.d.cts +2 -0
  532. package/singlestore-proxy/index.d.ts +2 -0
  533. package/singlestore-proxy/index.js +3 -0
  534. package/singlestore-proxy/index.js.map +1 -0
  535. package/singlestore-proxy/migrator.cjs +60 -0
  536. package/singlestore-proxy/migrator.cjs.map +1 -0
  537. package/singlestore-proxy/migrator.d.cts +4 -0
  538. package/singlestore-proxy/migrator.d.ts +4 -0
  539. package/singlestore-proxy/migrator.js +36 -0
  540. package/singlestore-proxy/migrator.js.map +1 -0
  541. package/singlestore-proxy/session.cjs +127 -0
  542. package/singlestore-proxy/session.cjs.map +1 -0
  543. package/singlestore-proxy/session.d.cts +50 -0
  544. package/singlestore-proxy/session.d.ts +50 -0
  545. package/singlestore-proxy/session.js +101 -0
  546. package/singlestore-proxy/session.js.map +1 -0
  547. package/sqlite-core/columns/blob.cjs +16 -2
  548. package/sqlite-core/columns/blob.cjs.map +1 -1
  549. package/sqlite-core/columns/blob.d.cts +2 -2
  550. package/sqlite-core/columns/blob.d.ts +2 -2
  551. package/sqlite-core/columns/blob.js +16 -2
  552. package/sqlite-core/columns/blob.js.map +1 -1
  553. package/supabase/rls.d.cts +11 -0
  554. package/supabase/rls.d.ts +11 -0
  555. package/table.cjs.map +1 -1
  556. package/table.d.cts +5 -1
  557. package/table.d.ts +5 -1
  558. package/table.js.map +1 -1
  559. package/tidb-serverless/driver.cjs.map +1 -1
  560. package/tidb-serverless/driver.d.cts +3 -5
  561. package/tidb-serverless/driver.d.ts +3 -5
  562. package/tidb-serverless/driver.js.map +1 -1
  563. package/utils.cjs.map +1 -1
  564. package/utils.d.cts +1 -0
  565. package/utils.d.ts +1 -0
  566. package/utils.js.map +1 -1
  567. package/vercel-postgres/driver.cjs.map +1 -1
  568. package/vercel-postgres/driver.d.cts +4 -7
  569. package/vercel-postgres/driver.d.ts +4 -7
  570. package/vercel-postgres/driver.js.map +1 -1
  571. package/version.cjs +1 -1
  572. package/version.d.cts +1 -1
  573. package/version.d.ts +1 -1
  574. package/version.js +1 -1
@@ -0,0 +1,50 @@
1
+ import type { FieldPacket, ResultSetHeader } from 'mysql2/promise';
2
+ import { entityKind } from "../entity.cjs";
3
+ import type { Logger } from "../logger.cjs";
4
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
5
+ import type { SingleStoreDialect } from "../singlestore-core/dialect.cjs";
6
+ import { SingleStoreTransaction } from "../singlestore-core/index.cjs";
7
+ import type { SelectedFieldsOrdered } from "../singlestore-core/query-builders/select.types.cjs";
8
+ import type { PreparedQueryKind, SingleStorePreparedQueryConfig, SingleStorePreparedQueryHKT, SingleStoreQueryResultHKT, SingleStoreTransactionConfig } from "../singlestore-core/session.cjs";
9
+ import { SingleStorePreparedQuery as PreparedQueryBase, SingleStoreSession } from "../singlestore-core/session.cjs";
10
+ import type { Query, SQL } from "../sql/sql.cjs";
11
+ import { type Assume } from "../utils.cjs";
12
+ import type { RemoteCallback } from "./driver.cjs";
13
+ export type SingleStoreRawQueryResult = [ResultSetHeader, FieldPacket[]];
14
+ export interface SingleStoreRemoteSessionOptions {
15
+ logger?: Logger;
16
+ }
17
+ export declare class SingleStoreRemoteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SingleStoreSession<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TFullSchema, TSchema> {
18
+ private client;
19
+ private schema;
20
+ static readonly [entityKind]: string;
21
+ private logger;
22
+ constructor(client: RemoteCallback, dialect: SingleStoreDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options: SingleStoreRemoteSessionOptions);
23
+ prepareQuery<T extends SingleStorePreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute'], generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered): PreparedQueryKind<SingleStoreRemotePreparedQueryHKT, T>;
24
+ all<T = unknown>(query: SQL): Promise<T[]>;
25
+ transaction<T>(_transaction: (tx: SingleStoreProxyTransaction<TFullSchema, TSchema>) => Promise<T>, _config?: SingleStoreTransactionConfig): Promise<T>;
26
+ }
27
+ export declare class SingleStoreProxyTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SingleStoreTransaction<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TFullSchema, TSchema> {
28
+ static readonly [entityKind]: string;
29
+ transaction<T>(_transaction: (tx: SingleStoreProxyTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
30
+ }
31
+ export declare class PreparedQuery<T extends SingleStorePreparedQueryConfig> extends PreparedQueryBase<T> {
32
+ private client;
33
+ private queryString;
34
+ private params;
35
+ private logger;
36
+ private fields;
37
+ private customResultMapper?;
38
+ private generatedIds?;
39
+ private returningIds?;
40
+ static readonly [entityKind]: string;
41
+ constructor(client: RemoteCallback, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined);
42
+ execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
43
+ iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;
44
+ }
45
+ export interface SingleStoreRemoteQueryResultHKT extends SingleStoreQueryResultHKT {
46
+ type: SingleStoreRawQueryResult;
47
+ }
48
+ export interface SingleStoreRemotePreparedQueryHKT extends SingleStorePreparedQueryHKT {
49
+ type: PreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;
50
+ }
@@ -0,0 +1,50 @@
1
+ import type { FieldPacket, ResultSetHeader } from 'mysql2/promise';
2
+ import { entityKind } from "../entity.js";
3
+ import type { Logger } from "../logger.js";
4
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
5
+ import type { SingleStoreDialect } from "../singlestore-core/dialect.js";
6
+ import { SingleStoreTransaction } from "../singlestore-core/index.js";
7
+ import type { SelectedFieldsOrdered } from "../singlestore-core/query-builders/select.types.js";
8
+ import type { PreparedQueryKind, SingleStorePreparedQueryConfig, SingleStorePreparedQueryHKT, SingleStoreQueryResultHKT, SingleStoreTransactionConfig } from "../singlestore-core/session.js";
9
+ import { SingleStorePreparedQuery as PreparedQueryBase, SingleStoreSession } from "../singlestore-core/session.js";
10
+ import type { Query, SQL } from "../sql/sql.js";
11
+ import { type Assume } from "../utils.js";
12
+ import type { RemoteCallback } from "./driver.js";
13
+ export type SingleStoreRawQueryResult = [ResultSetHeader, FieldPacket[]];
14
+ export interface SingleStoreRemoteSessionOptions {
15
+ logger?: Logger;
16
+ }
17
+ export declare class SingleStoreRemoteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SingleStoreSession<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TFullSchema, TSchema> {
18
+ private client;
19
+ private schema;
20
+ static readonly [entityKind]: string;
21
+ private logger;
22
+ constructor(client: RemoteCallback, dialect: SingleStoreDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options: SingleStoreRemoteSessionOptions);
23
+ prepareQuery<T extends SingleStorePreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute'], generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered): PreparedQueryKind<SingleStoreRemotePreparedQueryHKT, T>;
24
+ all<T = unknown>(query: SQL): Promise<T[]>;
25
+ transaction<T>(_transaction: (tx: SingleStoreProxyTransaction<TFullSchema, TSchema>) => Promise<T>, _config?: SingleStoreTransactionConfig): Promise<T>;
26
+ }
27
+ export declare class SingleStoreProxyTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SingleStoreTransaction<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TFullSchema, TSchema> {
28
+ static readonly [entityKind]: string;
29
+ transaction<T>(_transaction: (tx: SingleStoreProxyTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
30
+ }
31
+ export declare class PreparedQuery<T extends SingleStorePreparedQueryConfig> extends PreparedQueryBase<T> {
32
+ private client;
33
+ private queryString;
34
+ private params;
35
+ private logger;
36
+ private fields;
37
+ private customResultMapper?;
38
+ private generatedIds?;
39
+ private returningIds?;
40
+ static readonly [entityKind]: string;
41
+ constructor(client: RemoteCallback, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined);
42
+ execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
43
+ iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;
44
+ }
45
+ export interface SingleStoreRemoteQueryResultHKT extends SingleStoreQueryResultHKT {
46
+ type: SingleStoreRawQueryResult;
47
+ }
48
+ export interface SingleStoreRemotePreparedQueryHKT extends SingleStorePreparedQueryHKT {
49
+ type: PreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;
50
+ }
@@ -0,0 +1,101 @@
1
+ import { Column } from "../column.js";
2
+ import { entityKind, is } from "../entity.js";
3
+ import { NoopLogger } from "../logger.js";
4
+ import { SingleStoreTransaction } from "../singlestore-core/index.js";
5
+ import { SingleStorePreparedQuery as PreparedQueryBase, SingleStoreSession } from "../singlestore-core/session.js";
6
+ import { fillPlaceholders } from "../sql/sql.js";
7
+ import { mapResultRow } from "../utils.js";
8
+ class SingleStoreRemoteSession extends SingleStoreSession {
9
+ constructor(client, dialect, schema, options) {
10
+ super(dialect);
11
+ this.client = client;
12
+ this.schema = schema;
13
+ this.logger = options.logger ?? new NoopLogger();
14
+ }
15
+ static [entityKind] = "SingleStoreRemoteSession";
16
+ logger;
17
+ prepareQuery(query, fields, customResultMapper, generatedIds, returningIds) {
18
+ return new PreparedQuery(
19
+ this.client,
20
+ query.sql,
21
+ query.params,
22
+ this.logger,
23
+ fields,
24
+ customResultMapper,
25
+ generatedIds,
26
+ returningIds
27
+ );
28
+ }
29
+ all(query) {
30
+ const querySql = this.dialect.sqlToQuery(query);
31
+ this.logger.logQuery(querySql.sql, querySql.params);
32
+ return this.client(querySql.sql, querySql.params, "all").then(({ rows }) => rows);
33
+ }
34
+ async transaction(_transaction, _config) {
35
+ throw new Error("Transactions are not supported by the SingleStore Proxy driver");
36
+ }
37
+ }
38
+ class SingleStoreProxyTransaction extends SingleStoreTransaction {
39
+ static [entityKind] = "SingleStoreProxyTransaction";
40
+ async transaction(_transaction) {
41
+ throw new Error("Transactions are not supported by the SingleStore Proxy driver");
42
+ }
43
+ }
44
+ class PreparedQuery extends PreparedQueryBase {
45
+ constructor(client, queryString, params, logger, fields, customResultMapper, generatedIds, returningIds) {
46
+ super();
47
+ this.client = client;
48
+ this.queryString = queryString;
49
+ this.params = params;
50
+ this.logger = logger;
51
+ this.fields = fields;
52
+ this.customResultMapper = customResultMapper;
53
+ this.generatedIds = generatedIds;
54
+ this.returningIds = returningIds;
55
+ }
56
+ static [entityKind] = "SingleStoreProxyPreparedQuery";
57
+ async execute(placeholderValues = {}) {
58
+ const params = fillPlaceholders(this.params, placeholderValues);
59
+ const { fields, client, queryString, logger, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } = this;
60
+ logger.logQuery(queryString, params);
61
+ if (!fields && !customResultMapper) {
62
+ const { rows: data } = await client(queryString, params, "execute");
63
+ const insertId = data[0].insertId;
64
+ const affectedRows = data[0].affectedRows;
65
+ if (returningIds) {
66
+ const returningResponse = [];
67
+ let j = 0;
68
+ for (let i = insertId; i < insertId + affectedRows; i++) {
69
+ for (const column of returningIds) {
70
+ const key = returningIds[0].path[0];
71
+ if (is(column.field, Column)) {
72
+ if (column.field.primary && column.field.autoIncrement) {
73
+ returningResponse.push({ [key]: i });
74
+ }
75
+ if (column.field.defaultFn && generatedIds) {
76
+ returningResponse.push({ [key]: generatedIds[j][key] });
77
+ }
78
+ }
79
+ }
80
+ j++;
81
+ }
82
+ return returningResponse;
83
+ }
84
+ return data;
85
+ }
86
+ const { rows } = await client(queryString, params, "all");
87
+ if (customResultMapper) {
88
+ return customResultMapper(rows);
89
+ }
90
+ return rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
91
+ }
92
+ iterator(_placeholderValues = {}) {
93
+ throw new Error("Streaming is not supported by the SingleStore Proxy driver");
94
+ }
95
+ }
96
+ export {
97
+ PreparedQuery,
98
+ SingleStoreProxyTransaction,
99
+ SingleStoreRemoteSession
100
+ };
101
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/singlestore-proxy/session.ts"],"sourcesContent":["import type { FieldPacket, ResultSetHeader } from 'mysql2/promise';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { SingleStoreTransaction } from '~/singlestore-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/singlestore-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStorePreparedQueryHKT,\n\tSingleStoreQueryResultHKT,\n\tSingleStoreTransactionConfig,\n} from '~/singlestore-core/session.ts';\nimport { SingleStorePreparedQuery as PreparedQueryBase, SingleStoreSession } from '~/singlestore-core/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\nimport type { RemoteCallback } from './driver.ts';\n\nexport type SingleStoreRawQueryResult = [ResultSetHeader, FieldPacket[]];\n\nexport interface SingleStoreRemoteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class SingleStoreRemoteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SingleStoreSession<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRemoteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tdialect: SingleStoreDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SingleStoreRemoteSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<SingleStoreRemotePreparedQueryHKT, T> {\n\t\treturn new PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<SingleStoreRemotePreparedQueryHKT, T>;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client(querySql.sql, querySql.params, 'all').then(({ rows }) => rows) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: SingleStoreProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\t_config?: SingleStoreTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Transactions are not supported by the SingleStore Proxy driver');\n\t}\n}\n\nexport class SingleStoreProxyTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SingleStoreTransaction<\n\tSingleStoreRemoteQueryResultHKT,\n\tSingleStoreRemotePreparedQueryHKT,\n\tTFullSchema,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreProxyTransaction';\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: SingleStoreProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tthrow new Error('Transactions are not supported by the SingleStore Proxy driver');\n\t}\n}\n\nexport class PreparedQuery<T extends SingleStorePreparedQueryConfig> extends PreparedQueryBase<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreProxyPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t) {\n\t\tsuper();\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tconst { fields, client, queryString, logger, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\n\t\tlogger.logQuery(queryString, params);\n\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst { rows: data } = await client(queryString, params, 'execute');\n\n\t\t\tconst insertId = data[0].insertId as number;\n\t\t\tconst affectedRows = data[0].affectedRows;\n\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\tconst { rows } = await client(queryString, params, 'all');\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\toverride iterator(\n\t\t_placeholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the SingleStore Proxy driver');\n\t}\n}\n\nexport interface SingleStoreRemoteQueryResultHKT extends SingleStoreQueryResultHKT {\n\ttype: SingleStoreRawQueryResult;\n}\n\nexport interface SingleStoreRemotePreparedQueryHKT extends SingleStorePreparedQueryHKT {\n\ttype: PreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":"AACA,SAAS,cAAc;AACvB,SAAS,YAAY,UAAU;AAE/B,SAAS,kBAAkB;AAG3B,SAAS,8BAA8B;AASvC,SAAS,4BAA4B,mBAAmB,0BAA0B;AAElF,SAAS,wBAAwB;AACjC,SAAsB,oBAAoB;AASnC,MAAM,iCAGH,mBAA6G;AAAA,EAKtH,YACS,QACR,SACQ,QACR,SACC;AACD,UAAM,OAAO;AALL;AAEA;AAIR,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;AAAA,EAChD;AAAA,EAZA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EAYR,aACC,OACA,QACA,oBACA,cACA,cAC0D;AAC1D,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAES,IAAiB,OAA0B;AACnD,UAAM,WAAW,KAAK,QAAQ,WAAW,KAAK;AAC9C,SAAK,OAAO,SAAS,SAAS,KAAK,SAAS,MAAM;AAClD,WAAO,KAAK,OAAO,SAAS,KAAK,SAAS,QAAQ,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,MAAM,IAAI;AAAA,EACjF;AAAA,EAEA,MAAe,YACd,cACA,SACa;AACb,UAAM,IAAI,MAAM,gEAAgE;AAAA,EACjF;AACD;AAEO,MAAM,oCAGH,uBAKR;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,MAAe,YACd,cACa;AACb,UAAM,IAAI,MAAM,gEAAgE;AAAA,EACjF;AACD;AAEO,MAAM,sBAAgE,kBAAqB;AAAA,EAGjG,YACS,QACA,aACA,QACA,QACA,QACA,oBAEA,cAEA,cACP;AACD,UAAM;AAXE;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA,EAGT;AAAA,EAfA,QAA0B,UAAU,IAAY;AAAA,EAiBhD,MAAM,QAAQ,oBAAyD,CAAC,GAA0B;AACjG,UAAM,SAAS,iBAAiB,KAAK,QAAQ,iBAAiB;AAE9D,UAAM,EAAE,QAAQ,QAAQ,aAAa,QAAQ,qBAAqB,oBAAoB,cAAc,aAAa,IAChH;AAED,WAAO,SAAS,aAAa,MAAM;AAEnC,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,YAAM,EAAE,MAAM,KAAK,IAAI,MAAM,OAAO,aAAa,QAAQ,SAAS;AAElE,YAAM,WAAW,KAAK,CAAC,EAAE;AACzB,YAAM,eAAe,KAAK,CAAC,EAAE;AAE7B,UAAI,cAAc;AACjB,cAAM,oBAAoB,CAAC;AAC3B,YAAI,IAAI;AACR,iBAAS,IAAI,UAAU,IAAI,WAAW,cAAc,KAAK;AACxD,qBAAW,UAAU,cAAc;AAClC,kBAAM,MAAM,aAAa,CAAC,EAAG,KAAK,CAAC;AACnC,gBAAI,GAAG,OAAO,OAAO,MAAM,GAAG;AAE7B,kBAAI,OAAO,MAAM,WAAW,OAAO,MAAM,eAAe;AACvD,kCAAkB,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;AAAA,cACpC;AACA,kBAAI,OAAO,MAAM,aAAa,cAAc;AAE3C,kCAAkB,KAAK,EAAE,CAAC,GAAG,GAAG,aAAa,CAAC,EAAG,GAAG,EAAE,CAAC;AAAA,cACxD;AAAA,YACD;AAAA,UACD;AACA;AAAA,QACD;AAEA,eAAO;AAAA,MACR;AAEA,aAAO;AAAA,IACR;AAEA,UAAM,EAAE,KAAK,IAAI,MAAM,OAAO,aAAa,QAAQ,KAAK;AAExD,QAAI,oBAAoB;AACvB,aAAO,mBAAmB,IAAI;AAAA,IAC/B;AAEA,WAAO,KAAK,IAAI,CAAC,QAAQ,aAA2B,QAAS,KAAK,mBAAmB,CAAC;AAAA,EACvF;AAAA,EAES,SACR,qBAA8C,CAAC,GACf;AAChC,UAAM,IAAI,MAAM,4DAA4D;AAAA,EAC7E;AACD;","names":[]}
@@ -46,7 +46,14 @@ class SQLiteBigInt extends import_common.SQLiteColumn {
46
46
  return "blob";
47
47
  }
48
48
  mapFromDriverValue(value) {
49
- return BigInt(Buffer.isBuffer(value) ? value.toString() : String.fromCodePoint(...value));
49
+ if (Buffer.isBuffer(value)) {
50
+ return BigInt(value.toString());
51
+ }
52
+ if (value instanceof ArrayBuffer) {
53
+ const decoder = new TextDecoder();
54
+ return BigInt(decoder.decode(value));
55
+ }
56
+ return BigInt(String.fromCodePoint(...value));
50
57
  }
51
58
  mapToDriverValue(value) {
52
59
  return Buffer.from(value.toString());
@@ -71,7 +78,14 @@ class SQLiteBlobJson extends import_common.SQLiteColumn {
71
78
  return "blob";
72
79
  }
73
80
  mapFromDriverValue(value) {
74
- return JSON.parse(Buffer.isBuffer(value) ? value.toString() : String.fromCodePoint(...value));
81
+ if (Buffer.isBuffer(value)) {
82
+ return JSON.parse(value.toString());
83
+ }
84
+ if (value instanceof ArrayBuffer) {
85
+ const decoder = new TextDecoder();
86
+ return JSON.parse(decoder.decode(value));
87
+ }
88
+ return JSON.parse(String.fromCodePoint(...value));
75
89
  }
76
90
  mapToDriverValue(value) {
77
91
  return Buffer.from(JSON.stringify(value));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/columns/blob.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\ntype BlobMode = 'buffer' | 'json' | 'bigint';\n\nexport type SQLiteBigIntBuilderInitial<TName extends string> = SQLiteBigIntBuilder<{\n\tname: TName;\n\tdataType: 'bigint';\n\tcolumnType: 'SQLiteBigInt';\n\tdata: bigint;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'SQLiteBigInt'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBigIntBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'bigint', 'SQLiteBigInt');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBigInt<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBigInt<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any>);\n\t}\n}\n\nexport class SQLiteBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteBigInt'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBigInt';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n\n\toverride mapFromDriverValue(value: Buffer | Uint8Array): bigint {\n\t\treturn BigInt(Buffer.isBuffer(value) ? value.toString() : String.fromCodePoint(...value));\n\t}\n\n\toverride mapToDriverValue(value: bigint): Buffer {\n\t\treturn Buffer.from(value.toString());\n\t}\n}\n\nexport type SQLiteBlobJsonBuilderInitial<TName extends string> = SQLiteBlobJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteBlobJson';\n\tdata: unknown;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBlobJsonBuilder<T extends ColumnBuilderBaseConfig<'json', 'SQLiteBlobJson'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteBlobJson');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBlobJson<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBlobJson<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteBlobJson<T extends ColumnBaseConfig<'json', 'SQLiteBlobJson'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobJson';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n\n\toverride mapFromDriverValue(value: Buffer | Uint8Array): T['data'] {\n\t\treturn JSON.parse(Buffer.isBuffer(value) ? value.toString() : String.fromCodePoint(...value));\n\t}\n\n\toverride mapToDriverValue(value: T['data']): Buffer {\n\t\treturn Buffer.from(JSON.stringify(value));\n\t}\n}\n\nexport type SQLiteBlobBufferBuilderInitial<TName extends string> = SQLiteBlobBufferBuilder<{\n\tname: TName;\n\tdataType: 'buffer';\n\tcolumnType: 'SQLiteBlobBuffer';\n\tdata: Buffer;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBlobBufferBuilder<T extends ColumnBuilderBaseConfig<'buffer', 'SQLiteBlobBuffer'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobBufferBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'buffer', 'SQLiteBlobBuffer');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBlobBuffer<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBlobBuffer<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any>);\n\t}\n}\n\nexport class SQLiteBlobBuffer<T extends ColumnBaseConfig<'buffer', 'SQLiteBlobBuffer'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobBuffer';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n}\n\nexport interface BlobConfig<TMode extends BlobMode = BlobMode> {\n\tmode: TMode;\n}\n\n/**\n * It's recommended to use `text('...', { mode: 'json' })` instead of `blob` in JSON mode, because it supports JSON functions:\n * >All JSON functions currently throw an error if any of their arguments are BLOBs because BLOBs are reserved for a future enhancement in which BLOBs will store the binary encoding for JSON.\n *\n * https://www.sqlite.org/json1.html\n */\nexport function blob(): SQLiteBlobJsonBuilderInitial<''>;\nexport function blob<TMode extends BlobMode = BlobMode>(\n\tconfig?: BlobConfig<TMode>,\n): Equal<TMode, 'bigint'> extends true ? SQLiteBigIntBuilderInitial<''>\n\t: Equal<TMode, 'buffer'> extends true ? SQLiteBlobBufferBuilderInitial<''>\n\t: SQLiteBlobJsonBuilderInitial<''>;\nexport function blob<TName extends string, TMode extends BlobMode = BlobMode>(\n\tname: TName,\n\tconfig?: BlobConfig<TMode>,\n): Equal<TMode, 'bigint'> extends true ? SQLiteBigIntBuilderInitial<TName>\n\t: Equal<TMode, 'buffer'> extends true ? SQLiteBlobBufferBuilderInitial<TName>\n\t: SQLiteBlobJsonBuilderInitial<TName>;\nexport function blob(a?: string | BlobConfig, b?: BlobConfig) {\n\tconst { name, config } = getColumnNameAndConfig<BlobConfig | undefined>(a, b);\n\tif (config?.mode === 'json') {\n\t\treturn new SQLiteBlobJsonBuilder(name);\n\t}\n\tif (config?.mode === 'bigint') {\n\t\treturn new SQLiteBigIntBuilder(name);\n\t}\n\treturn new SQLiteBlobBufferBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAkD;AAa3C,MAAM,4BACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,cAAc;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI,aAA8C,OAAO,KAAK,MAAyC;AAAA,EAC/G;AACD;AAEO,MAAM,qBAA2E,2BAAgB;AAAA,EACvG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAoC;AAC/D,WAAO,OAAO,OAAO,SAAS,KAAK,IAAI,MAAM,SAAS,IAAI,OAAO,cAAc,GAAG,KAAK,CAAC;AAAA,EACzF;AAAA,EAES,iBAAiB,OAAuB;AAChD,WAAO,OAAO,KAAK,MAAM,SAAS,CAAC;AAAA,EACpC;AACD;AAWO,MAAM,8BACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,gBAAgB;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBAA6E,2BAAgB;AAAA,EACzG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAuC;AAClE,WAAO,KAAK,MAAM,OAAO,SAAS,KAAK,IAAI,MAAM,SAAS,IAAI,OAAO,cAAc,GAAG,KAAK,CAAC;AAAA,EAC7F;AAAA,EAES,iBAAiB,OAA0B;AACnD,WAAO,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACzC;AACD;AAWO,MAAM,gCACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,kBAAkB;AAAA,EACzC;AAAA;AAAA,EAGS,MACR,OACoD;AACpD,WAAO,IAAI,iBAAkD,OAAO,KAAK,MAAyC;AAAA,EACnH;AACD;AAEO,MAAM,yBAAmF,2BAAgB;AAAA,EAC/G,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAwBO,SAAS,KAAK,GAAyB,GAAgB;AAC7D,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA+C,GAAG,CAAC;AAC5E,MAAI,QAAQ,SAAS,QAAQ;AAC5B,WAAO,IAAI,sBAAsB,IAAI;AAAA,EACtC;AACA,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,oBAAoB,IAAI;AAAA,EACpC;AACA,SAAO,IAAI,wBAAwB,IAAI;AACxC;","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/columns/blob.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\ntype BlobMode = 'buffer' | 'json' | 'bigint';\n\nexport type SQLiteBigIntBuilderInitial<TName extends string> = SQLiteBigIntBuilder<{\n\tname: TName;\n\tdataType: 'bigint';\n\tcolumnType: 'SQLiteBigInt';\n\tdata: bigint;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'SQLiteBigInt'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBigIntBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'bigint', 'SQLiteBigInt');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBigInt<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBigInt<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any>);\n\t}\n}\n\nexport class SQLiteBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteBigInt'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBigInt';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n\n\toverride mapFromDriverValue(value: Buffer | Uint8Array | ArrayBuffer): bigint {\n\t\tif (Buffer.isBuffer(value)) {\n\t\t\treturn BigInt(value.toString());\n\t\t}\n\n\t\t// for sqlite durable objects\n\t\t// eslint-disable-next-line no-instanceof/no-instanceof\n\t\tif (value instanceof ArrayBuffer) {\n\t\t\tconst decoder = new TextDecoder();\n\t\t\treturn BigInt(decoder.decode(value));\n\t\t}\n\n\t\treturn BigInt(String.fromCodePoint(...value));\n\t}\n\n\toverride mapToDriverValue(value: bigint): Buffer {\n\t\treturn Buffer.from(value.toString());\n\t}\n}\n\nexport type SQLiteBlobJsonBuilderInitial<TName extends string> = SQLiteBlobJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteBlobJson';\n\tdata: unknown;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBlobJsonBuilder<T extends ColumnBuilderBaseConfig<'json', 'SQLiteBlobJson'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteBlobJson');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBlobJson<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBlobJson<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteBlobJson<T extends ColumnBaseConfig<'json', 'SQLiteBlobJson'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobJson';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n\n\toverride mapFromDriverValue(value: Buffer | Uint8Array | ArrayBuffer): T['data'] {\n\t\tif (Buffer.isBuffer(value)) {\n\t\t\treturn JSON.parse(value.toString());\n\t\t}\n\n\t\t// for sqlite durable objects\n\t\t// eslint-disable-next-line no-instanceof/no-instanceof\n\t\tif (value instanceof ArrayBuffer) {\n\t\t\tconst decoder = new TextDecoder();\n\t\t\treturn JSON.parse(decoder.decode(value));\n\t\t}\n\n\t\treturn JSON.parse(String.fromCodePoint(...value));\n\t}\n\n\toverride mapToDriverValue(value: T['data']): Buffer {\n\t\treturn Buffer.from(JSON.stringify(value));\n\t}\n}\n\nexport type SQLiteBlobBufferBuilderInitial<TName extends string> = SQLiteBlobBufferBuilder<{\n\tname: TName;\n\tdataType: 'buffer';\n\tcolumnType: 'SQLiteBlobBuffer';\n\tdata: Buffer;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBlobBufferBuilder<T extends ColumnBuilderBaseConfig<'buffer', 'SQLiteBlobBuffer'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobBufferBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'buffer', 'SQLiteBlobBuffer');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBlobBuffer<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBlobBuffer<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any>);\n\t}\n}\n\nexport class SQLiteBlobBuffer<T extends ColumnBaseConfig<'buffer', 'SQLiteBlobBuffer'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobBuffer';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n}\n\nexport interface BlobConfig<TMode extends BlobMode = BlobMode> {\n\tmode: TMode;\n}\n\n/**\n * It's recommended to use `text('...', { mode: 'json' })` instead of `blob` in JSON mode, because it supports JSON functions:\n * >All JSON functions currently throw an error if any of their arguments are BLOBs because BLOBs are reserved for a future enhancement in which BLOBs will store the binary encoding for JSON.\n *\n * https://www.sqlite.org/json1.html\n */\nexport function blob(): SQLiteBlobJsonBuilderInitial<''>;\nexport function blob<TMode extends BlobMode = BlobMode>(\n\tconfig?: BlobConfig<TMode>,\n): Equal<TMode, 'bigint'> extends true ? SQLiteBigIntBuilderInitial<''>\n\t: Equal<TMode, 'buffer'> extends true ? SQLiteBlobBufferBuilderInitial<''>\n\t: SQLiteBlobJsonBuilderInitial<''>;\nexport function blob<TName extends string, TMode extends BlobMode = BlobMode>(\n\tname: TName,\n\tconfig?: BlobConfig<TMode>,\n): Equal<TMode, 'bigint'> extends true ? SQLiteBigIntBuilderInitial<TName>\n\t: Equal<TMode, 'buffer'> extends true ? SQLiteBlobBufferBuilderInitial<TName>\n\t: SQLiteBlobJsonBuilderInitial<TName>;\nexport function blob(a?: string | BlobConfig, b?: BlobConfig) {\n\tconst { name, config } = getColumnNameAndConfig<BlobConfig | undefined>(a, b);\n\tif (config?.mode === 'json') {\n\t\treturn new SQLiteBlobJsonBuilder(name);\n\t}\n\tif (config?.mode === 'bigint') {\n\t\treturn new SQLiteBigIntBuilder(name);\n\t}\n\treturn new SQLiteBlobBufferBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAkD;AAa3C,MAAM,4BACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,cAAc;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI,aAA8C,OAAO,KAAK,MAAyC;AAAA,EAC/G;AACD;AAEO,MAAM,qBAA2E,2BAAgB;AAAA,EACvG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAkD;AAC7E,QAAI,OAAO,SAAS,KAAK,GAAG;AAC3B,aAAO,OAAO,MAAM,SAAS,CAAC;AAAA,IAC/B;AAIA,QAAI,iBAAiB,aAAa;AACjC,YAAM,UAAU,IAAI,YAAY;AAChC,aAAO,OAAO,QAAQ,OAAO,KAAK,CAAC;AAAA,IACpC;AAEA,WAAO,OAAO,OAAO,cAAc,GAAG,KAAK,CAAC;AAAA,EAC7C;AAAA,EAES,iBAAiB,OAAuB;AAChD,WAAO,OAAO,KAAK,MAAM,SAAS,CAAC;AAAA,EACpC;AACD;AAWO,MAAM,8BACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,gBAAgB;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBAA6E,2BAAgB;AAAA,EACzG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqD;AAChF,QAAI,OAAO,SAAS,KAAK,GAAG;AAC3B,aAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAAA,IACnC;AAIA,QAAI,iBAAiB,aAAa;AACjC,YAAM,UAAU,IAAI,YAAY;AAChC,aAAO,KAAK,MAAM,QAAQ,OAAO,KAAK,CAAC;AAAA,IACxC;AAEA,WAAO,KAAK,MAAM,OAAO,cAAc,GAAG,KAAK,CAAC;AAAA,EACjD;AAAA,EAES,iBAAiB,OAA0B;AACnD,WAAO,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACzC;AACD;AAWO,MAAM,gCACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,kBAAkB;AAAA,EACzC;AAAA;AAAA,EAGS,MACR,OACoD;AACpD,WAAO,IAAI,iBAAkD,OAAO,KAAK,MAAyC;AAAA,EACnH;AACD;AAEO,MAAM,yBAAmF,2BAAgB;AAAA,EAC/G,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAwBO,SAAS,KAAK,GAAyB,GAAgB;AAC7D,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA+C,GAAG,CAAC;AAC5E,MAAI,QAAQ,SAAS,QAAQ;AAC5B,WAAO,IAAI,sBAAsB,IAAI;AAAA,EACtC;AACA,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,oBAAoB,IAAI;AAAA,EACpC;AACA,SAAO,IAAI,wBAAwB,IAAI;AACxC;","names":[]}
@@ -19,7 +19,7 @@ export declare class SQLiteBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigi
19
19
  export declare class SQLiteBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteBigInt'>> extends SQLiteColumn<T> {
20
20
  static readonly [entityKind]: string;
21
21
  getSQLType(): string;
22
- mapFromDriverValue(value: Buffer | Uint8Array): bigint;
22
+ mapFromDriverValue(value: Buffer | Uint8Array | ArrayBuffer): bigint;
23
23
  mapToDriverValue(value: bigint): Buffer;
24
24
  }
25
25
  export type SQLiteBlobJsonBuilderInitial<TName extends string> = SQLiteBlobJsonBuilder<{
@@ -37,7 +37,7 @@ export declare class SQLiteBlobJsonBuilder<T extends ColumnBuilderBaseConfig<'js
37
37
  export declare class SQLiteBlobJson<T extends ColumnBaseConfig<'json', 'SQLiteBlobJson'>> extends SQLiteColumn<T> {
38
38
  static readonly [entityKind]: string;
39
39
  getSQLType(): string;
40
- mapFromDriverValue(value: Buffer | Uint8Array): T['data'];
40
+ mapFromDriverValue(value: Buffer | Uint8Array | ArrayBuffer): T['data'];
41
41
  mapToDriverValue(value: T['data']): Buffer;
42
42
  }
43
43
  export type SQLiteBlobBufferBuilderInitial<TName extends string> = SQLiteBlobBufferBuilder<{
@@ -19,7 +19,7 @@ export declare class SQLiteBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigi
19
19
  export declare class SQLiteBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteBigInt'>> extends SQLiteColumn<T> {
20
20
  static readonly [entityKind]: string;
21
21
  getSQLType(): string;
22
- mapFromDriverValue(value: Buffer | Uint8Array): bigint;
22
+ mapFromDriverValue(value: Buffer | Uint8Array | ArrayBuffer): bigint;
23
23
  mapToDriverValue(value: bigint): Buffer;
24
24
  }
25
25
  export type SQLiteBlobJsonBuilderInitial<TName extends string> = SQLiteBlobJsonBuilder<{
@@ -37,7 +37,7 @@ export declare class SQLiteBlobJsonBuilder<T extends ColumnBuilderBaseConfig<'js
37
37
  export declare class SQLiteBlobJson<T extends ColumnBaseConfig<'json', 'SQLiteBlobJson'>> extends SQLiteColumn<T> {
38
38
  static readonly [entityKind]: string;
39
39
  getSQLType(): string;
40
- mapFromDriverValue(value: Buffer | Uint8Array): T['data'];
40
+ mapFromDriverValue(value: Buffer | Uint8Array | ArrayBuffer): T['data'];
41
41
  mapToDriverValue(value: T['data']): Buffer;
42
42
  }
43
43
  export type SQLiteBlobBufferBuilderInitial<TName extends string> = SQLiteBlobBufferBuilder<{
@@ -17,7 +17,14 @@ class SQLiteBigInt extends SQLiteColumn {
17
17
  return "blob";
18
18
  }
19
19
  mapFromDriverValue(value) {
20
- return BigInt(Buffer.isBuffer(value) ? value.toString() : String.fromCodePoint(...value));
20
+ if (Buffer.isBuffer(value)) {
21
+ return BigInt(value.toString());
22
+ }
23
+ if (value instanceof ArrayBuffer) {
24
+ const decoder = new TextDecoder();
25
+ return BigInt(decoder.decode(value));
26
+ }
27
+ return BigInt(String.fromCodePoint(...value));
21
28
  }
22
29
  mapToDriverValue(value) {
23
30
  return Buffer.from(value.toString());
@@ -42,7 +49,14 @@ class SQLiteBlobJson extends SQLiteColumn {
42
49
  return "blob";
43
50
  }
44
51
  mapFromDriverValue(value) {
45
- return JSON.parse(Buffer.isBuffer(value) ? value.toString() : String.fromCodePoint(...value));
52
+ if (Buffer.isBuffer(value)) {
53
+ return JSON.parse(value.toString());
54
+ }
55
+ if (value instanceof ArrayBuffer) {
56
+ const decoder = new TextDecoder();
57
+ return JSON.parse(decoder.decode(value));
58
+ }
59
+ return JSON.parse(String.fromCodePoint(...value));
46
60
  }
47
61
  mapToDriverValue(value) {
48
62
  return Buffer.from(JSON.stringify(value));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/columns/blob.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\ntype BlobMode = 'buffer' | 'json' | 'bigint';\n\nexport type SQLiteBigIntBuilderInitial<TName extends string> = SQLiteBigIntBuilder<{\n\tname: TName;\n\tdataType: 'bigint';\n\tcolumnType: 'SQLiteBigInt';\n\tdata: bigint;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'SQLiteBigInt'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBigIntBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'bigint', 'SQLiteBigInt');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBigInt<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBigInt<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any>);\n\t}\n}\n\nexport class SQLiteBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteBigInt'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBigInt';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n\n\toverride mapFromDriverValue(value: Buffer | Uint8Array): bigint {\n\t\treturn BigInt(Buffer.isBuffer(value) ? value.toString() : String.fromCodePoint(...value));\n\t}\n\n\toverride mapToDriverValue(value: bigint): Buffer {\n\t\treturn Buffer.from(value.toString());\n\t}\n}\n\nexport type SQLiteBlobJsonBuilderInitial<TName extends string> = SQLiteBlobJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteBlobJson';\n\tdata: unknown;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBlobJsonBuilder<T extends ColumnBuilderBaseConfig<'json', 'SQLiteBlobJson'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteBlobJson');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBlobJson<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBlobJson<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteBlobJson<T extends ColumnBaseConfig<'json', 'SQLiteBlobJson'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobJson';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n\n\toverride mapFromDriverValue(value: Buffer | Uint8Array): T['data'] {\n\t\treturn JSON.parse(Buffer.isBuffer(value) ? value.toString() : String.fromCodePoint(...value));\n\t}\n\n\toverride mapToDriverValue(value: T['data']): Buffer {\n\t\treturn Buffer.from(JSON.stringify(value));\n\t}\n}\n\nexport type SQLiteBlobBufferBuilderInitial<TName extends string> = SQLiteBlobBufferBuilder<{\n\tname: TName;\n\tdataType: 'buffer';\n\tcolumnType: 'SQLiteBlobBuffer';\n\tdata: Buffer;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBlobBufferBuilder<T extends ColumnBuilderBaseConfig<'buffer', 'SQLiteBlobBuffer'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobBufferBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'buffer', 'SQLiteBlobBuffer');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBlobBuffer<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBlobBuffer<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any>);\n\t}\n}\n\nexport class SQLiteBlobBuffer<T extends ColumnBaseConfig<'buffer', 'SQLiteBlobBuffer'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobBuffer';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n}\n\nexport interface BlobConfig<TMode extends BlobMode = BlobMode> {\n\tmode: TMode;\n}\n\n/**\n * It's recommended to use `text('...', { mode: 'json' })` instead of `blob` in JSON mode, because it supports JSON functions:\n * >All JSON functions currently throw an error if any of their arguments are BLOBs because BLOBs are reserved for a future enhancement in which BLOBs will store the binary encoding for JSON.\n *\n * https://www.sqlite.org/json1.html\n */\nexport function blob(): SQLiteBlobJsonBuilderInitial<''>;\nexport function blob<TMode extends BlobMode = BlobMode>(\n\tconfig?: BlobConfig<TMode>,\n): Equal<TMode, 'bigint'> extends true ? SQLiteBigIntBuilderInitial<''>\n\t: Equal<TMode, 'buffer'> extends true ? SQLiteBlobBufferBuilderInitial<''>\n\t: SQLiteBlobJsonBuilderInitial<''>;\nexport function blob<TName extends string, TMode extends BlobMode = BlobMode>(\n\tname: TName,\n\tconfig?: BlobConfig<TMode>,\n): Equal<TMode, 'bigint'> extends true ? SQLiteBigIntBuilderInitial<TName>\n\t: Equal<TMode, 'buffer'> extends true ? SQLiteBlobBufferBuilderInitial<TName>\n\t: SQLiteBlobJsonBuilderInitial<TName>;\nexport function blob(a?: string | BlobConfig, b?: BlobConfig) {\n\tconst { name, config } = getColumnNameAndConfig<BlobConfig | undefined>(a, b);\n\tif (config?.mode === 'json') {\n\t\treturn new SQLiteBlobJsonBuilder(name);\n\t}\n\tif (config?.mode === 'bigint') {\n\t\treturn new SQLiteBigIntBuilder(name);\n\t}\n\treturn new SQLiteBlobBufferBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,cAAc,2BAA2B;AAa3C,MAAM,4BACJ,oBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,cAAc;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI,aAA8C,OAAO,KAAK,MAAyC;AAAA,EAC/G;AACD;AAEO,MAAM,qBAA2E,aAAgB;AAAA,EACvG,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAoC;AAC/D,WAAO,OAAO,OAAO,SAAS,KAAK,IAAI,MAAM,SAAS,IAAI,OAAO,cAAc,GAAG,KAAK,CAAC;AAAA,EACzF;AAAA,EAES,iBAAiB,OAAuB;AAChD,WAAO,OAAO,KAAK,MAAM,SAAS,CAAC;AAAA,EACpC;AACD;AAWO,MAAM,8BACJ,oBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,gBAAgB;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBAA6E,aAAgB;AAAA,EACzG,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAuC;AAClE,WAAO,KAAK,MAAM,OAAO,SAAS,KAAK,IAAI,MAAM,SAAS,IAAI,OAAO,cAAc,GAAG,KAAK,CAAC;AAAA,EAC7F;AAAA,EAES,iBAAiB,OAA0B;AACnD,WAAO,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACzC;AACD;AAWO,MAAM,gCACJ,oBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,kBAAkB;AAAA,EACzC;AAAA;AAAA,EAGS,MACR,OACoD;AACpD,WAAO,IAAI,iBAAkD,OAAO,KAAK,MAAyC;AAAA,EACnH;AACD;AAEO,MAAM,yBAAmF,aAAgB;AAAA,EAC/G,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAwBO,SAAS,KAAK,GAAyB,GAAgB;AAC7D,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA+C,GAAG,CAAC;AAC5E,MAAI,QAAQ,SAAS,QAAQ;AAC5B,WAAO,IAAI,sBAAsB,IAAI;AAAA,EACtC;AACA,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,oBAAoB,IAAI;AAAA,EACpC;AACA,SAAO,IAAI,wBAAwB,IAAI;AACxC;","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/columns/blob.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\ntype BlobMode = 'buffer' | 'json' | 'bigint';\n\nexport type SQLiteBigIntBuilderInitial<TName extends string> = SQLiteBigIntBuilder<{\n\tname: TName;\n\tdataType: 'bigint';\n\tcolumnType: 'SQLiteBigInt';\n\tdata: bigint;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'SQLiteBigInt'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBigIntBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'bigint', 'SQLiteBigInt');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBigInt<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBigInt<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any>);\n\t}\n}\n\nexport class SQLiteBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteBigInt'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBigInt';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n\n\toverride mapFromDriverValue(value: Buffer | Uint8Array | ArrayBuffer): bigint {\n\t\tif (Buffer.isBuffer(value)) {\n\t\t\treturn BigInt(value.toString());\n\t\t}\n\n\t\t// for sqlite durable objects\n\t\t// eslint-disable-next-line no-instanceof/no-instanceof\n\t\tif (value instanceof ArrayBuffer) {\n\t\t\tconst decoder = new TextDecoder();\n\t\t\treturn BigInt(decoder.decode(value));\n\t\t}\n\n\t\treturn BigInt(String.fromCodePoint(...value));\n\t}\n\n\toverride mapToDriverValue(value: bigint): Buffer {\n\t\treturn Buffer.from(value.toString());\n\t}\n}\n\nexport type SQLiteBlobJsonBuilderInitial<TName extends string> = SQLiteBlobJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteBlobJson';\n\tdata: unknown;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBlobJsonBuilder<T extends ColumnBuilderBaseConfig<'json', 'SQLiteBlobJson'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteBlobJson');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBlobJson<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBlobJson<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteBlobJson<T extends ColumnBaseConfig<'json', 'SQLiteBlobJson'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobJson';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n\n\toverride mapFromDriverValue(value: Buffer | Uint8Array | ArrayBuffer): T['data'] {\n\t\tif (Buffer.isBuffer(value)) {\n\t\t\treturn JSON.parse(value.toString());\n\t\t}\n\n\t\t// for sqlite durable objects\n\t\t// eslint-disable-next-line no-instanceof/no-instanceof\n\t\tif (value instanceof ArrayBuffer) {\n\t\t\tconst decoder = new TextDecoder();\n\t\t\treturn JSON.parse(decoder.decode(value));\n\t\t}\n\n\t\treturn JSON.parse(String.fromCodePoint(...value));\n\t}\n\n\toverride mapToDriverValue(value: T['data']): Buffer {\n\t\treturn Buffer.from(JSON.stringify(value));\n\t}\n}\n\nexport type SQLiteBlobBufferBuilderInitial<TName extends string> = SQLiteBlobBufferBuilder<{\n\tname: TName;\n\tdataType: 'buffer';\n\tcolumnType: 'SQLiteBlobBuffer';\n\tdata: Buffer;\n\tdriverParam: Buffer;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBlobBufferBuilder<T extends ColumnBuilderBaseConfig<'buffer', 'SQLiteBlobBuffer'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobBufferBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'buffer', 'SQLiteBlobBuffer');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBlobBuffer<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteBlobBuffer<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any>);\n\t}\n}\n\nexport class SQLiteBlobBuffer<T extends ColumnBaseConfig<'buffer', 'SQLiteBlobBuffer'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBlobBuffer';\n\n\tgetSQLType(): string {\n\t\treturn 'blob';\n\t}\n}\n\nexport interface BlobConfig<TMode extends BlobMode = BlobMode> {\n\tmode: TMode;\n}\n\n/**\n * It's recommended to use `text('...', { mode: 'json' })` instead of `blob` in JSON mode, because it supports JSON functions:\n * >All JSON functions currently throw an error if any of their arguments are BLOBs because BLOBs are reserved for a future enhancement in which BLOBs will store the binary encoding for JSON.\n *\n * https://www.sqlite.org/json1.html\n */\nexport function blob(): SQLiteBlobJsonBuilderInitial<''>;\nexport function blob<TMode extends BlobMode = BlobMode>(\n\tconfig?: BlobConfig<TMode>,\n): Equal<TMode, 'bigint'> extends true ? SQLiteBigIntBuilderInitial<''>\n\t: Equal<TMode, 'buffer'> extends true ? SQLiteBlobBufferBuilderInitial<''>\n\t: SQLiteBlobJsonBuilderInitial<''>;\nexport function blob<TName extends string, TMode extends BlobMode = BlobMode>(\n\tname: TName,\n\tconfig?: BlobConfig<TMode>,\n): Equal<TMode, 'bigint'> extends true ? SQLiteBigIntBuilderInitial<TName>\n\t: Equal<TMode, 'buffer'> extends true ? SQLiteBlobBufferBuilderInitial<TName>\n\t: SQLiteBlobJsonBuilderInitial<TName>;\nexport function blob(a?: string | BlobConfig, b?: BlobConfig) {\n\tconst { name, config } = getColumnNameAndConfig<BlobConfig | undefined>(a, b);\n\tif (config?.mode === 'json') {\n\t\treturn new SQLiteBlobJsonBuilder(name);\n\t}\n\tif (config?.mode === 'bigint') {\n\t\treturn new SQLiteBigIntBuilder(name);\n\t}\n\treturn new SQLiteBlobBufferBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,cAAc,2BAA2B;AAa3C,MAAM,4BACJ,oBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,cAAc;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI,aAA8C,OAAO,KAAK,MAAyC;AAAA,EAC/G;AACD;AAEO,MAAM,qBAA2E,aAAgB;AAAA,EACvG,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAkD;AAC7E,QAAI,OAAO,SAAS,KAAK,GAAG;AAC3B,aAAO,OAAO,MAAM,SAAS,CAAC;AAAA,IAC/B;AAIA,QAAI,iBAAiB,aAAa;AACjC,YAAM,UAAU,IAAI,YAAY;AAChC,aAAO,OAAO,QAAQ,OAAO,KAAK,CAAC;AAAA,IACpC;AAEA,WAAO,OAAO,OAAO,cAAc,GAAG,KAAK,CAAC;AAAA,EAC7C;AAAA,EAES,iBAAiB,OAAuB;AAChD,WAAO,OAAO,KAAK,MAAM,SAAS,CAAC;AAAA,EACpC;AACD;AAWO,MAAM,8BACJ,oBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,gBAAgB;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBAA6E,aAAgB;AAAA,EACzG,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqD;AAChF,QAAI,OAAO,SAAS,KAAK,GAAG;AAC3B,aAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAAA,IACnC;AAIA,QAAI,iBAAiB,aAAa;AACjC,YAAM,UAAU,IAAI,YAAY;AAChC,aAAO,KAAK,MAAM,QAAQ,OAAO,KAAK,CAAC;AAAA,IACxC;AAEA,WAAO,KAAK,MAAM,OAAO,cAAc,GAAG,KAAK,CAAC;AAAA,EACjD;AAAA,EAES,iBAAiB,OAA0B;AACnD,WAAO,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACzC;AACD;AAWO,MAAM,gCACJ,oBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,kBAAkB;AAAA,EACzC;AAAA;AAAA,EAGS,MACR,OACoD;AACpD,WAAO,IAAI,iBAAkD,OAAO,KAAK,MAAyC;AAAA,EACnH;AACD;AAEO,MAAM,yBAAmF,aAAgB;AAAA,EAC/G,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAwBO,SAAS,KAAK,GAAyB,GAAgB;AAC7D,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA+C,GAAG,CAAC;AAC5E,MAAI,QAAQ,SAAS,QAAQ;AAC5B,WAAO,IAAI,sBAAsB,IAAI;AAAA,EACtC;AACA,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,oBAAoB,IAAI;AAAA,EACpC;AACA,SAAO,IAAI,wBAAwB,IAAI;AACxC;","names":[]}
@@ -21,6 +21,7 @@ export declare const authUsers: import("../pg-core/index.ts").PgTableWithColumns
21
21
  hasRuntimeDefault: false;
22
22
  enumValues: undefined;
23
23
  baseColumn: never;
24
+ identity: undefined;
24
25
  generated: undefined;
25
26
  }, {}, {}>;
26
27
  email: import("../pg-core/index.ts").PgColumn<{
@@ -37,6 +38,7 @@ export declare const authUsers: import("../pg-core/index.ts").PgTableWithColumns
37
38
  hasRuntimeDefault: false;
38
39
  enumValues: [string, ...string[]];
39
40
  baseColumn: never;
41
+ identity: undefined;
40
42
  generated: undefined;
41
43
  }, {}, {}>;
42
44
  phone: import("../pg-core/index.ts").PgColumn<{
@@ -53,6 +55,7 @@ export declare const authUsers: import("../pg-core/index.ts").PgTableWithColumns
53
55
  hasRuntimeDefault: false;
54
56
  enumValues: [string, ...string[]];
55
57
  baseColumn: never;
58
+ identity: undefined;
56
59
  generated: undefined;
57
60
  }, {}, {}>;
58
61
  emailConfirmedAt: import("../pg-core/index.ts").PgColumn<{
@@ -69,6 +72,7 @@ export declare const authUsers: import("../pg-core/index.ts").PgTableWithColumns
69
72
  hasRuntimeDefault: false;
70
73
  enumValues: undefined;
71
74
  baseColumn: never;
75
+ identity: undefined;
72
76
  generated: undefined;
73
77
  }, {}, {}>;
74
78
  phoneConfirmedAt: import("../pg-core/index.ts").PgColumn<{
@@ -85,6 +89,7 @@ export declare const authUsers: import("../pg-core/index.ts").PgTableWithColumns
85
89
  hasRuntimeDefault: false;
86
90
  enumValues: undefined;
87
91
  baseColumn: never;
92
+ identity: undefined;
88
93
  generated: undefined;
89
94
  }, {}, {}>;
90
95
  lastSignInAt: import("../pg-core/index.ts").PgColumn<{
@@ -101,6 +106,7 @@ export declare const authUsers: import("../pg-core/index.ts").PgTableWithColumns
101
106
  hasRuntimeDefault: false;
102
107
  enumValues: undefined;
103
108
  baseColumn: never;
109
+ identity: undefined;
104
110
  generated: undefined;
105
111
  }, {}, {}>;
106
112
  createdAt: import("../pg-core/index.ts").PgColumn<{
@@ -117,6 +123,7 @@ export declare const authUsers: import("../pg-core/index.ts").PgTableWithColumns
117
123
  hasRuntimeDefault: false;
118
124
  enumValues: undefined;
119
125
  baseColumn: never;
126
+ identity: undefined;
120
127
  generated: undefined;
121
128
  }, {}, {}>;
122
129
  updatedAt: import("../pg-core/index.ts").PgColumn<{
@@ -133,6 +140,7 @@ export declare const authUsers: import("../pg-core/index.ts").PgTableWithColumns
133
140
  hasRuntimeDefault: false;
134
141
  enumValues: undefined;
135
142
  baseColumn: never;
143
+ identity: undefined;
136
144
  generated: undefined;
137
145
  }, {}, {}>;
138
146
  };
@@ -156,6 +164,7 @@ export declare const realtimeMessages: import("../pg-core/index.ts").PgTableWith
156
164
  hasRuntimeDefault: false;
157
165
  enumValues: undefined;
158
166
  baseColumn: never;
167
+ identity: undefined;
159
168
  generated: undefined;
160
169
  }, {}, {}>;
161
170
  topic: import("../pg-core/index.ts").PgColumn<{
@@ -172,6 +181,7 @@ export declare const realtimeMessages: import("../pg-core/index.ts").PgTableWith
172
181
  hasRuntimeDefault: false;
173
182
  enumValues: [string, ...string[]];
174
183
  baseColumn: never;
184
+ identity: undefined;
175
185
  generated: undefined;
176
186
  }, {}, {}>;
177
187
  extension: import("../pg-core/index.ts").PgColumn<{
@@ -188,6 +198,7 @@ export declare const realtimeMessages: import("../pg-core/index.ts").PgTableWith
188
198
  hasRuntimeDefault: false;
189
199
  enumValues: ["presence", "broadcast", "postgres_changes"];
190
200
  baseColumn: never;
201
+ identity: undefined;
191
202
  generated: undefined;
192
203
  }, {}, {}>;
193
204
  };
package/supabase/rls.d.ts CHANGED
@@ -21,6 +21,7 @@ export declare const authUsers: import("../pg-core/index.js").PgTableWithColumns
21
21
  hasRuntimeDefault: false;
22
22
  enumValues: undefined;
23
23
  baseColumn: never;
24
+ identity: undefined;
24
25
  generated: undefined;
25
26
  }, {}, {}>;
26
27
  email: import("../pg-core/index.js").PgColumn<{
@@ -37,6 +38,7 @@ export declare const authUsers: import("../pg-core/index.js").PgTableWithColumns
37
38
  hasRuntimeDefault: false;
38
39
  enumValues: [string, ...string[]];
39
40
  baseColumn: never;
41
+ identity: undefined;
40
42
  generated: undefined;
41
43
  }, {}, {}>;
42
44
  phone: import("../pg-core/index.js").PgColumn<{
@@ -53,6 +55,7 @@ export declare const authUsers: import("../pg-core/index.js").PgTableWithColumns
53
55
  hasRuntimeDefault: false;
54
56
  enumValues: [string, ...string[]];
55
57
  baseColumn: never;
58
+ identity: undefined;
56
59
  generated: undefined;
57
60
  }, {}, {}>;
58
61
  emailConfirmedAt: import("../pg-core/index.js").PgColumn<{
@@ -69,6 +72,7 @@ export declare const authUsers: import("../pg-core/index.js").PgTableWithColumns
69
72
  hasRuntimeDefault: false;
70
73
  enumValues: undefined;
71
74
  baseColumn: never;
75
+ identity: undefined;
72
76
  generated: undefined;
73
77
  }, {}, {}>;
74
78
  phoneConfirmedAt: import("../pg-core/index.js").PgColumn<{
@@ -85,6 +89,7 @@ export declare const authUsers: import("../pg-core/index.js").PgTableWithColumns
85
89
  hasRuntimeDefault: false;
86
90
  enumValues: undefined;
87
91
  baseColumn: never;
92
+ identity: undefined;
88
93
  generated: undefined;
89
94
  }, {}, {}>;
90
95
  lastSignInAt: import("../pg-core/index.js").PgColumn<{
@@ -101,6 +106,7 @@ export declare const authUsers: import("../pg-core/index.js").PgTableWithColumns
101
106
  hasRuntimeDefault: false;
102
107
  enumValues: undefined;
103
108
  baseColumn: never;
109
+ identity: undefined;
104
110
  generated: undefined;
105
111
  }, {}, {}>;
106
112
  createdAt: import("../pg-core/index.js").PgColumn<{
@@ -117,6 +123,7 @@ export declare const authUsers: import("../pg-core/index.js").PgTableWithColumns
117
123
  hasRuntimeDefault: false;
118
124
  enumValues: undefined;
119
125
  baseColumn: never;
126
+ identity: undefined;
120
127
  generated: undefined;
121
128
  }, {}, {}>;
122
129
  updatedAt: import("../pg-core/index.js").PgColumn<{
@@ -133,6 +140,7 @@ export declare const authUsers: import("../pg-core/index.js").PgTableWithColumns
133
140
  hasRuntimeDefault: false;
134
141
  enumValues: undefined;
135
142
  baseColumn: never;
143
+ identity: undefined;
136
144
  generated: undefined;
137
145
  }, {}, {}>;
138
146
  };
@@ -156,6 +164,7 @@ export declare const realtimeMessages: import("../pg-core/index.js").PgTableWith
156
164
  hasRuntimeDefault: false;
157
165
  enumValues: undefined;
158
166
  baseColumn: never;
167
+ identity: undefined;
159
168
  generated: undefined;
160
169
  }, {}, {}>;
161
170
  topic: import("../pg-core/index.js").PgColumn<{
@@ -172,6 +181,7 @@ export declare const realtimeMessages: import("../pg-core/index.js").PgTableWith
172
181
  hasRuntimeDefault: false;
173
182
  enumValues: [string, ...string[]];
174
183
  baseColumn: never;
184
+ identity: undefined;
175
185
  generated: undefined;
176
186
  }, {}, {}>;
177
187
  extension: import("../pg-core/index.js").PgColumn<{
@@ -188,6 +198,7 @@ export declare const realtimeMessages: import("../pg-core/index.js").PgTableWith
188
198
  hasRuntimeDefault: false;
189
199
  enumValues: ["presence", "broadcast", "postgres_changes"];
190
200
  baseColumn: never;
201
+ identity: undefined;
191
202
  generated: undefined;
192
203
  }, {}, {}>;
193
204
  };
package/table.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/table.ts"],"sourcesContent":["import type { Column, GetColumnData } from './column.ts';\nimport { entityKind } from './entity.ts';\nimport type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';\nimport type { ExtraConfigColumn } from './pg-core/index.ts';\nimport type { SQLWrapper } from './sql/sql.ts';\nimport { TableName } from './table.utils.ts';\nimport type { Simplify, Update } from './utils.ts';\n\nexport interface TableConfig<TColumn extends Column = Column<any>> {\n\tname: string;\n\tschema: string | undefined;\n\tcolumns: Record<string, TColumn>;\n\tdialect: string;\n}\n\nexport type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<\n\tUpdate<T, TUpdate>\n>;\n\n/** @internal */\nexport const Schema = Symbol.for('drizzle:Schema');\n\n/** @internal */\nexport const Columns = Symbol.for('drizzle:Columns');\n\n/** @internal */\nexport const ExtraConfigColumns = Symbol.for('drizzle:ExtraConfigColumns');\n\n/** @internal */\nexport const OriginalName = Symbol.for('drizzle:OriginalName');\n\n/** @internal */\nexport const BaseName = Symbol.for('drizzle:BaseName');\n\n/** @internal */\nexport const IsAlias = Symbol.for('drizzle:IsAlias');\n\n/** @internal */\nexport const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');\n\nconst IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');\n\nexport interface Table<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends TableConfig = TableConfig,\n> extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n\nexport class Table<T extends TableConfig = TableConfig> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Table';\n\n\tdeclare readonly _: {\n\t\treadonly brand: 'Table';\n\t\treadonly config: T;\n\t\treadonly name: T['name'];\n\t\treadonly schema: T['schema'];\n\t\treadonly columns: T['columns'];\n\t\treadonly inferSelect: InferSelectModel<Table<T>>;\n\t\treadonly inferInsert: InferInsertModel<Table<T>>;\n\t};\n\n\tdeclare readonly $inferSelect: InferSelectModel<Table<T>>;\n\tdeclare readonly $inferInsert: InferInsertModel<Table<T>>;\n\n\t/** @internal */\n\tstatic readonly Symbol = {\n\t\tName: TableName as typeof TableName,\n\t\tSchema: Schema as typeof Schema,\n\t\tOriginalName: OriginalName as typeof OriginalName,\n\t\tColumns: Columns as typeof Columns,\n\t\tExtraConfigColumns: ExtraConfigColumns as typeof ExtraConfigColumns,\n\t\tBaseName: BaseName as typeof BaseName,\n\t\tIsAlias: IsAlias as typeof IsAlias,\n\t\tExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,\n\t};\n\n\t/**\n\t * @internal\n\t * Can be changed if the table is aliased.\n\t */\n\t[TableName]: string;\n\n\t/**\n\t * @internal\n\t * Used to store the original name of the table, before any aliasing.\n\t */\n\t[OriginalName]: string;\n\n\t/** @internal */\n\t[Schema]: string | undefined;\n\n\t/** @internal */\n\t[Columns]!: T['columns'];\n\n\t/** @internal */\n\t[ExtraConfigColumns]!: Record<string, ExtraConfigColumn>;\n\n\t/**\n\t * @internal\n\t * Used to store the table name before the transformation via the `tableCreator` functions.\n\t */\n\t[BaseName]: string;\n\n\t/** @internal */\n\t[IsAlias] = false;\n\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\n\t/** @internal */\n\t[ExtraConfigBuilder]: ((self: any) => Record<string, unknown> | unknown[]) | undefined = undefined;\n\n\tconstructor(name: string, schema: string | undefined, baseName: string) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[Schema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n}\n\nexport function isTable(table: unknown): table is Table {\n\treturn typeof table === 'object' && table !== null && IsDrizzleTable in table;\n}\n\n/**\n * Any table with a specified boundary.\n *\n * @example\n\t```ts\n\t// Any table with a specific name\n\ttype AnyUsersTable = AnyTable<{ name: 'users' }>;\n\t```\n *\n * To describe any table with any config, simply use `Table` without any type arguments, like this:\n *\n\t```ts\n\tfunction needsTable(table: Table) {\n\t\t...\n\t}\n\t```\n */\nexport type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport function getTableName<T extends Table>(table: T): T['_']['name'] {\n\treturn table[TableName];\n}\n\nexport function getTableUniqueName<T extends Table>(table: T): `${T['_']['schema']}.${T['_']['name']}` {\n\treturn `${table[Schema] ?? 'public'}.${table[TableName]}`;\n}\n\nexport type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> =\n\tTDBColumNames extends true ? TColumn['_']['name']\n\t\t: TName;\n\nexport type InferModelFromColumns<\n\tTColumns extends Record<string, Column>,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = Simplify<\n\tTInferMode extends 'insert' ?\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as RequiredKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as OptionalKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]?: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t: {\n\t\t\t[\n\t\t\t\tKey in keyof TColumns & string as MapColumnName<\n\t\t\t\t\tKey,\n\t\t\t\t\tTColumns[Key],\n\t\t\t\t\tTConfig['dbColumnNames']\n\t\t\t\t>\n\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t}\n>;\n\n/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`\n */\nexport type InferModel<\n\tTTable extends Table,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], TInferMode, TConfig>;\n\nexport type InferSelectModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'select', TConfig>;\n\nexport type InferInsertModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'insert', TConfig>;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAI3B,yBAA0B;AAenB,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAG1C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAGlE,MAAM,eAAe,OAAO,IAAI,sBAAsB;AAGtD,MAAM,WAAW,OAAO,IAAI,kBAAkB;AAG9C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAEzE,MAAM,iBAAiB,OAAO,IAAI,wBAAwB;AASnD,MAAM,MAAiE;AAAA,EAC7E,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAgBvC,OAAgB,SAAS;AAAA,IACxB,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,CAAC,4BAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,CAAC,YAAY;AAAA;AAAA,EAGb,CAAC,MAAM;AAAA;AAAA,EAGP,CAAC,OAAO;AAAA;AAAA,EAGR,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnB,CAAC,QAAQ;AAAA;AAAA,EAGT,CAAC,OAAO,IAAI;AAAA;AAAA,EAGZ,CAAC,cAAc,IAAI;AAAA;AAAA,EAGnB,CAAC,kBAAkB,IAAsE;AAAA,EAEzF,YAAY,MAAc,QAA4B,UAAkB;AACvE,SAAK,4BAAS,IAAI,KAAK,YAAY,IAAI;AACvC,SAAK,MAAM,IAAI;AACf,SAAK,QAAQ,IAAI;AAAA,EAClB;AACD;AAEO,SAAS,QAAQ,OAAgC;AACvD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,kBAAkB;AACzE;AAqBO,SAAS,aAA8B,OAA0B;AACvE,SAAO,MAAM,4BAAS;AACvB;AAEO,SAAS,mBAAoC,OAAmD;AACtG,SAAO,GAAG,MAAM,MAAM,KAAK,QAAQ,IAAI,MAAM,4BAAS,CAAC;AACxD;","names":[]}
1
+ {"version":3,"sources":["../src/table.ts"],"sourcesContent":["import type { Column, GetColumnData } from './column.ts';\nimport { entityKind } from './entity.ts';\nimport type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';\nimport type { ExtraConfigColumn } from './pg-core/index.ts';\nimport type { SQLWrapper } from './sql/sql.ts';\nimport { TableName } from './table.utils.ts';\nimport type { Simplify, Update } from './utils.ts';\n\nexport interface TableConfig<TColumn extends Column = Column<any>> {\n\tname: string;\n\tschema: string | undefined;\n\tcolumns: Record<string, TColumn>;\n\tdialect: string;\n}\n\nexport type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<\n\tUpdate<T, TUpdate>\n>;\n\n/** @internal */\nexport const Schema = Symbol.for('drizzle:Schema');\n\n/** @internal */\nexport const Columns = Symbol.for('drizzle:Columns');\n\n/** @internal */\nexport const ExtraConfigColumns = Symbol.for('drizzle:ExtraConfigColumns');\n\n/** @internal */\nexport const OriginalName = Symbol.for('drizzle:OriginalName');\n\n/** @internal */\nexport const BaseName = Symbol.for('drizzle:BaseName');\n\n/** @internal */\nexport const IsAlias = Symbol.for('drizzle:IsAlias');\n\n/** @internal */\nexport const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');\n\nconst IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');\n\nexport interface Table<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends TableConfig = TableConfig,\n> extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n\nexport class Table<T extends TableConfig = TableConfig> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Table';\n\n\tdeclare readonly _: {\n\t\treadonly brand: 'Table';\n\t\treadonly config: T;\n\t\treadonly name: T['name'];\n\t\treadonly schema: T['schema'];\n\t\treadonly columns: T['columns'];\n\t\treadonly inferSelect: InferSelectModel<Table<T>>;\n\t\treadonly inferInsert: InferInsertModel<Table<T>>;\n\t};\n\n\tdeclare readonly $inferSelect: InferSelectModel<Table<T>>;\n\tdeclare readonly $inferInsert: InferInsertModel<Table<T>>;\n\n\t/** @internal */\n\tstatic readonly Symbol = {\n\t\tName: TableName as typeof TableName,\n\t\tSchema: Schema as typeof Schema,\n\t\tOriginalName: OriginalName as typeof OriginalName,\n\t\tColumns: Columns as typeof Columns,\n\t\tExtraConfigColumns: ExtraConfigColumns as typeof ExtraConfigColumns,\n\t\tBaseName: BaseName as typeof BaseName,\n\t\tIsAlias: IsAlias as typeof IsAlias,\n\t\tExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,\n\t};\n\n\t/**\n\t * @internal\n\t * Can be changed if the table is aliased.\n\t */\n\t[TableName]: string;\n\n\t/**\n\t * @internal\n\t * Used to store the original name of the table, before any aliasing.\n\t */\n\t[OriginalName]: string;\n\n\t/** @internal */\n\t[Schema]: string | undefined;\n\n\t/** @internal */\n\t[Columns]!: T['columns'];\n\n\t/** @internal */\n\t[ExtraConfigColumns]!: Record<string, ExtraConfigColumn>;\n\n\t/**\n\t * @internal\n\t * Used to store the table name before the transformation via the `tableCreator` functions.\n\t */\n\t[BaseName]: string;\n\n\t/** @internal */\n\t[IsAlias] = false;\n\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\n\t/** @internal */\n\t[ExtraConfigBuilder]: ((self: any) => Record<string, unknown> | unknown[]) | undefined = undefined;\n\n\tconstructor(name: string, schema: string | undefined, baseName: string) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[Schema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n}\n\nexport function isTable(table: unknown): table is Table {\n\treturn typeof table === 'object' && table !== null && IsDrizzleTable in table;\n}\n\n/**\n * Any table with a specified boundary.\n *\n * @example\n\t```ts\n\t// Any table with a specific name\n\ttype AnyUsersTable = AnyTable<{ name: 'users' }>;\n\t```\n *\n * To describe any table with any config, simply use `Table` without any type arguments, like this:\n *\n\t```ts\n\tfunction needsTable(table: Table) {\n\t\t...\n\t}\n\t```\n */\nexport type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport function getTableName<T extends Table>(table: T): T['_']['name'] {\n\treturn table[TableName];\n}\n\nexport function getTableUniqueName<T extends Table>(table: T): `${T['_']['schema']}.${T['_']['name']}` {\n\treturn `${table[Schema] ?? 'public'}.${table[TableName]}`;\n}\n\nexport type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> =\n\tTDBColumNames extends true ? TColumn['_']['name']\n\t\t: TName;\n\nexport type InferModelFromColumns<\n\tTColumns extends Record<string, Column>,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean; override?: boolean } = { dbColumnNames: false; override: false },\n> = Simplify<\n\tTInferMode extends 'insert' ?\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as RequiredKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as OptionalKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key],\n\t\t\t\t\t\tTConfig['override']\n\t\t\t\t\t>\n\t\t\t\t]?: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t: {\n\t\t\t[\n\t\t\t\tKey in keyof TColumns & string as MapColumnName<\n\t\t\t\t\tKey,\n\t\t\t\t\tTColumns[Key],\n\t\t\t\t\tTConfig['dbColumnNames']\n\t\t\t\t>\n\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t}\n>;\n\n/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`\n */\nexport type InferModel<\n\tTTable extends Table,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], TInferMode, TConfig>;\n\nexport type InferSelectModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'select', TConfig>;\n\nexport type InferInsertModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean; override?: boolean } = { dbColumnNames: false; override: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'insert', TConfig>;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAI3B,yBAA0B;AAenB,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAG1C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAGlE,MAAM,eAAe,OAAO,IAAI,sBAAsB;AAGtD,MAAM,WAAW,OAAO,IAAI,kBAAkB;AAG9C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAEzE,MAAM,iBAAiB,OAAO,IAAI,wBAAwB;AASnD,MAAM,MAAiE;AAAA,EAC7E,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAgBvC,OAAgB,SAAS;AAAA,IACxB,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,CAAC,4BAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,CAAC,YAAY;AAAA;AAAA,EAGb,CAAC,MAAM;AAAA;AAAA,EAGP,CAAC,OAAO;AAAA;AAAA,EAGR,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnB,CAAC,QAAQ;AAAA;AAAA,EAGT,CAAC,OAAO,IAAI;AAAA;AAAA,EAGZ,CAAC,cAAc,IAAI;AAAA;AAAA,EAGnB,CAAC,kBAAkB,IAAsE;AAAA,EAEzF,YAAY,MAAc,QAA4B,UAAkB;AACvE,SAAK,4BAAS,IAAI,KAAK,YAAY,IAAI;AACvC,SAAK,MAAM,IAAI;AACf,SAAK,QAAQ,IAAI;AAAA,EAClB;AACD;AAEO,SAAS,QAAQ,OAAgC;AACvD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,kBAAkB;AACzE;AAqBO,SAAS,aAA8B,OAA0B;AACvE,SAAO,MAAM,4BAAS;AACvB;AAEO,SAAS,mBAAoC,OAAmD;AACtG,SAAO,GAAG,MAAM,MAAM,KAAK,QAAQ,IAAI,MAAM,4BAAS,CAAC;AACxD;","names":[]}