drizzle-orm 0.36.4-ddb97ec → 0.37.0

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 (413) hide show
  1. package/column-builder.cjs.map +1 -1
  2. package/column-builder.d.cts +4 -3
  3. package/column-builder.d.ts +4 -3
  4. package/column-builder.js.map +1 -1
  5. package/durable-sqlite/driver.cjs +64 -0
  6. package/durable-sqlite/driver.cjs.map +1 -0
  7. package/durable-sqlite/driver.d.cts +9 -0
  8. package/durable-sqlite/driver.d.ts +9 -0
  9. package/durable-sqlite/driver.js +42 -0
  10. package/durable-sqlite/driver.js.map +1 -0
  11. package/durable-sqlite/index.cjs +25 -0
  12. package/durable-sqlite/index.cjs.map +1 -0
  13. package/durable-sqlite/index.d.cts +2 -0
  14. package/durable-sqlite/index.d.ts +2 -0
  15. package/durable-sqlite/index.js +3 -0
  16. package/durable-sqlite/index.js.map +1 -0
  17. package/durable-sqlite/migrator.cjs +85 -0
  18. package/durable-sqlite/migrator.cjs.map +1 -0
  19. package/durable-sqlite/migrator.d.cts +14 -0
  20. package/durable-sqlite/migrator.d.ts +14 -0
  21. package/durable-sqlite/migrator.js +61 -0
  22. package/durable-sqlite/migrator.js.map +1 -0
  23. package/durable-sqlite/session.cjs +131 -0
  24. package/durable-sqlite/session.cjs.map +1 -0
  25. package/durable-sqlite/session.d.cts +46 -0
  26. package/durable-sqlite/session.d.ts +46 -0
  27. package/durable-sqlite/session.js +107 -0
  28. package/durable-sqlite/session.js.map +1 -0
  29. package/neon-http/driver.cjs.map +1 -1
  30. package/neon-http/driver.d.cts +3 -3
  31. package/neon-http/driver.d.ts +3 -3
  32. package/neon-http/driver.js.map +1 -1
  33. package/package.json +784 -3
  34. package/pg-core/db.cjs +4 -2
  35. package/pg-core/db.cjs.map +1 -1
  36. package/pg-core/db.js +4 -2
  37. package/pg-core/db.js.map +1 -1
  38. package/singlestore/driver.cjs +113 -0
  39. package/singlestore/driver.cjs.map +1 -0
  40. package/singlestore/driver.d.cts +52 -0
  41. package/singlestore/driver.d.ts +52 -0
  42. package/singlestore/driver.js +89 -0
  43. package/singlestore/driver.js.map +1 -0
  44. package/singlestore/index.cjs +25 -0
  45. package/singlestore/index.cjs.map +1 -0
  46. package/singlestore/index.d.cts +2 -0
  47. package/singlestore/index.d.ts +2 -0
  48. package/singlestore/index.js +3 -0
  49. package/singlestore/index.js.map +1 -0
  50. package/singlestore/migrator.cjs +33 -0
  51. package/singlestore/migrator.cjs.map +1 -0
  52. package/singlestore/migrator.d.cts +3 -0
  53. package/singlestore/migrator.d.ts +3 -0
  54. package/singlestore/migrator.js +9 -0
  55. package/singlestore/migrator.js.map +1 -0
  56. package/singlestore/session.cjs +258 -0
  57. package/singlestore/session.cjs.map +1 -0
  58. package/singlestore/session.d.cts +52 -0
  59. package/singlestore/session.d.ts +52 -0
  60. package/singlestore/session.js +236 -0
  61. package/singlestore/session.js.map +1 -0
  62. package/singlestore-core/alias.cjs +32 -0
  63. package/singlestore-core/alias.cjs.map +1 -0
  64. package/singlestore-core/alias.d.cts +4 -0
  65. package/singlestore-core/alias.d.ts +4 -0
  66. package/singlestore-core/alias.js +8 -0
  67. package/singlestore-core/alias.js.map +1 -0
  68. package/singlestore-core/columns/all.cjs +80 -0
  69. package/singlestore-core/columns/all.cjs.map +1 -0
  70. package/singlestore-core/columns/all.d.cts +51 -0
  71. package/singlestore-core/columns/all.d.ts +51 -0
  72. package/singlestore-core/columns/all.js +56 -0
  73. package/singlestore-core/columns/all.js.map +1 -0
  74. package/singlestore-core/columns/bigint.cjs +96 -0
  75. package/singlestore-core/columns/bigint.cjs.map +1 -0
  76. package/singlestore-core/columns/bigint.d.cts +54 -0
  77. package/singlestore-core/columns/bigint.d.ts +54 -0
  78. package/singlestore-core/columns/bigint.js +68 -0
  79. package/singlestore-core/columns/bigint.js.map +1 -0
  80. package/singlestore-core/columns/binary.cjs +60 -0
  81. package/singlestore-core/columns/binary.cjs.map +1 -0
  82. package/singlestore-core/columns/binary.d.cts +28 -0
  83. package/singlestore-core/columns/binary.d.ts +28 -0
  84. package/singlestore-core/columns/binary.js +34 -0
  85. package/singlestore-core/columns/binary.js.map +1 -0
  86. package/singlestore-core/columns/boolean.cjs +62 -0
  87. package/singlestore-core/columns/boolean.cjs.map +1 -0
  88. package/singlestore-core/columns/boolean.d.cts +24 -0
  89. package/singlestore-core/columns/boolean.d.ts +24 -0
  90. package/singlestore-core/columns/boolean.js +36 -0
  91. package/singlestore-core/columns/boolean.js.map +1 -0
  92. package/singlestore-core/columns/char.cjs +62 -0
  93. package/singlestore-core/columns/char.cjs.map +1 -0
  94. package/singlestore-core/columns/char.d.cts +31 -0
  95. package/singlestore-core/columns/char.d.ts +31 -0
  96. package/singlestore-core/columns/char.js +36 -0
  97. package/singlestore-core/columns/char.js.map +1 -0
  98. package/singlestore-core/columns/common.cjs +82 -0
  99. package/singlestore-core/columns/common.cjs.map +1 -0
  100. package/singlestore-core/columns/common.d.cts +42 -0
  101. package/singlestore-core/columns/common.d.ts +42 -0
  102. package/singlestore-core/columns/common.js +55 -0
  103. package/singlestore-core/columns/common.js.map +1 -0
  104. package/singlestore-core/columns/custom.cjs +77 -0
  105. package/singlestore-core/columns/custom.cjs.map +1 -0
  106. package/singlestore-core/columns/custom.d.cts +156 -0
  107. package/singlestore-core/columns/custom.d.ts +156 -0
  108. package/singlestore-core/columns/custom.js +51 -0
  109. package/singlestore-core/columns/custom.js.map +1 -0
  110. package/singlestore-core/columns/date.cjs +93 -0
  111. package/singlestore-core/columns/date.cjs.map +1 -0
  112. package/singlestore-core/columns/date.common.cjs +48 -0
  113. package/singlestore-core/columns/date.common.cjs.map +1 -0
  114. package/singlestore-core/columns/date.common.d.cts +16 -0
  115. package/singlestore-core/columns/date.common.d.ts +16 -0
  116. package/singlestore-core/columns/date.common.js +23 -0
  117. package/singlestore-core/columns/date.common.js.map +1 -0
  118. package/singlestore-core/columns/date.d.cts +53 -0
  119. package/singlestore-core/columns/date.d.ts +53 -0
  120. package/singlestore-core/columns/date.js +65 -0
  121. package/singlestore-core/columns/date.js.map +1 -0
  122. package/singlestore-core/columns/datetime.cjs +106 -0
  123. package/singlestore-core/columns/datetime.cjs.map +1 -0
  124. package/singlestore-core/columns/datetime.d.cts +54 -0
  125. package/singlestore-core/columns/datetime.d.ts +54 -0
  126. package/singlestore-core/columns/datetime.js +78 -0
  127. package/singlestore-core/columns/datetime.js.map +1 -0
  128. package/singlestore-core/columns/decimal.cjs +76 -0
  129. package/singlestore-core/columns/decimal.cjs.map +1 -0
  130. package/singlestore-core/columns/decimal.d.cts +32 -0
  131. package/singlestore-core/columns/decimal.d.ts +32 -0
  132. package/singlestore-core/columns/decimal.js +50 -0
  133. package/singlestore-core/columns/decimal.js.map +1 -0
  134. package/singlestore-core/columns/double.cjs +72 -0
  135. package/singlestore-core/columns/double.cjs.map +1 -0
  136. package/singlestore-core/columns/double.d.cts +32 -0
  137. package/singlestore-core/columns/double.d.ts +32 -0
  138. package/singlestore-core/columns/double.js +46 -0
  139. package/singlestore-core/columns/double.js.map +1 -0
  140. package/singlestore-core/columns/enum.cjs +67 -0
  141. package/singlestore-core/columns/enum.cjs.map +1 -0
  142. package/singlestore-core/columns/enum.d.cts +31 -0
  143. package/singlestore-core/columns/enum.d.ts +31 -0
  144. package/singlestore-core/columns/enum.js +41 -0
  145. package/singlestore-core/columns/enum.js.map +1 -0
  146. package/singlestore-core/columns/float.cjs +72 -0
  147. package/singlestore-core/columns/float.cjs.map +1 -0
  148. package/singlestore-core/columns/float.d.cts +32 -0
  149. package/singlestore-core/columns/float.d.ts +32 -0
  150. package/singlestore-core/columns/float.js +46 -0
  151. package/singlestore-core/columns/float.js.map +1 -0
  152. package/singlestore-core/columns/index.cjs +71 -0
  153. package/singlestore-core/columns/index.cjs.map +1 -0
  154. package/singlestore-core/columns/index.d.cts +25 -0
  155. package/singlestore-core/columns/index.d.ts +25 -0
  156. package/singlestore-core/columns/index.js +26 -0
  157. package/singlestore-core/columns/index.js.map +1 -0
  158. package/singlestore-core/columns/int.cjs +65 -0
  159. package/singlestore-core/columns/int.cjs.map +1 -0
  160. package/singlestore-core/columns/int.d.cts +28 -0
  161. package/singlestore-core/columns/int.d.ts +28 -0
  162. package/singlestore-core/columns/int.js +39 -0
  163. package/singlestore-core/columns/int.js.map +1 -0
  164. package/singlestore-core/columns/json.cjs +59 -0
  165. package/singlestore-core/columns/json.cjs.map +1 -0
  166. package/singlestore-core/columns/json.d.cts +24 -0
  167. package/singlestore-core/columns/json.d.ts +24 -0
  168. package/singlestore-core/columns/json.js +33 -0
  169. package/singlestore-core/columns/json.js.map +1 -0
  170. package/singlestore-core/columns/mediumint.cjs +65 -0
  171. package/singlestore-core/columns/mediumint.cjs.map +1 -0
  172. package/singlestore-core/columns/mediumint.d.cts +26 -0
  173. package/singlestore-core/columns/mediumint.d.ts +26 -0
  174. package/singlestore-core/columns/mediumint.js +39 -0
  175. package/singlestore-core/columns/mediumint.js.map +1 -0
  176. package/singlestore-core/columns/real.cjs +68 -0
  177. package/singlestore-core/columns/real.cjs.map +1 -0
  178. package/singlestore-core/columns/real.d.cts +30 -0
  179. package/singlestore-core/columns/real.d.ts +30 -0
  180. package/singlestore-core/columns/real.js +42 -0
  181. package/singlestore-core/columns/real.js.map +1 -0
  182. package/singlestore-core/columns/serial.cjs +64 -0
  183. package/singlestore-core/columns/serial.cjs.map +1 -0
  184. package/singlestore-core/columns/serial.d.cts +24 -0
  185. package/singlestore-core/columns/serial.d.ts +24 -0
  186. package/singlestore-core/columns/serial.js +38 -0
  187. package/singlestore-core/columns/serial.js.map +1 -0
  188. package/singlestore-core/columns/smallint.cjs +65 -0
  189. package/singlestore-core/columns/smallint.cjs.map +1 -0
  190. package/singlestore-core/columns/smallint.d.cts +26 -0
  191. package/singlestore-core/columns/smallint.d.ts +26 -0
  192. package/singlestore-core/columns/smallint.js +39 -0
  193. package/singlestore-core/columns/smallint.js.map +1 -0
  194. package/singlestore-core/columns/text.cjs +80 -0
  195. package/singlestore-core/columns/text.cjs.map +1 -0
  196. package/singlestore-core/columns/text.d.cts +46 -0
  197. package/singlestore-core/columns/text.d.ts +46 -0
  198. package/singlestore-core/columns/text.js +51 -0
  199. package/singlestore-core/columns/text.js.map +1 -0
  200. package/singlestore-core/columns/time.cjs +56 -0
  201. package/singlestore-core/columns/time.cjs.map +1 -0
  202. package/singlestore-core/columns/time.d.cts +23 -0
  203. package/singlestore-core/columns/time.d.ts +23 -0
  204. package/singlestore-core/columns/time.js +30 -0
  205. package/singlestore-core/columns/time.js.map +1 -0
  206. package/singlestore-core/columns/timestamp.cjs +97 -0
  207. package/singlestore-core/columns/timestamp.cjs.map +1 -0
  208. package/singlestore-core/columns/timestamp.d.cts +49 -0
  209. package/singlestore-core/columns/timestamp.d.ts +49 -0
  210. package/singlestore-core/columns/timestamp.js +69 -0
  211. package/singlestore-core/columns/timestamp.js.map +1 -0
  212. package/singlestore-core/columns/tinyint.cjs +65 -0
  213. package/singlestore-core/columns/tinyint.cjs.map +1 -0
  214. package/singlestore-core/columns/tinyint.d.cts +26 -0
  215. package/singlestore-core/columns/tinyint.d.ts +26 -0
  216. package/singlestore-core/columns/tinyint.js +39 -0
  217. package/singlestore-core/columns/tinyint.js.map +1 -0
  218. package/singlestore-core/columns/varbinary.cjs +61 -0
  219. package/singlestore-core/columns/varbinary.cjs.map +1 -0
  220. package/singlestore-core/columns/varbinary.d.cts +26 -0
  221. package/singlestore-core/columns/varbinary.d.ts +26 -0
  222. package/singlestore-core/columns/varbinary.js +35 -0
  223. package/singlestore-core/columns/varbinary.js.map +1 -0
  224. package/singlestore-core/columns/varchar.cjs +63 -0
  225. package/singlestore-core/columns/varchar.cjs.map +1 -0
  226. package/singlestore-core/columns/varchar.d.cts +29 -0
  227. package/singlestore-core/columns/varchar.d.ts +29 -0
  228. package/singlestore-core/columns/varchar.js +37 -0
  229. package/singlestore-core/columns/varchar.js.map +1 -0
  230. package/singlestore-core/columns/year.cjs +56 -0
  231. package/singlestore-core/columns/year.cjs.map +1 -0
  232. package/singlestore-core/columns/year.d.cts +23 -0
  233. package/singlestore-core/columns/year.d.ts +23 -0
  234. package/singlestore-core/columns/year.js +30 -0
  235. package/singlestore-core/columns/year.js.map +1 -0
  236. package/singlestore-core/db.cjs +261 -0
  237. package/singlestore-core/db.cjs.map +1 -0
  238. package/singlestore-core/db.d.cts +231 -0
  239. package/singlestore-core/db.d.ts +231 -0
  240. package/singlestore-core/db.js +242 -0
  241. package/singlestore-core/db.js.map +1 -0
  242. package/singlestore-core/dialect.cjs +607 -0
  243. package/singlestore-core/dialect.cjs.map +1 -0
  244. package/singlestore-core/dialect.d.cts +64 -0
  245. package/singlestore-core/dialect.d.ts +64 -0
  246. package/singlestore-core/dialect.js +589 -0
  247. package/singlestore-core/dialect.js.map +1 -0
  248. package/singlestore-core/expressions.cjs +49 -0
  249. package/singlestore-core/expressions.cjs.map +1 -0
  250. package/singlestore-core/expressions.d.cts +8 -0
  251. package/singlestore-core/expressions.d.ts +8 -0
  252. package/singlestore-core/expressions.js +22 -0
  253. package/singlestore-core/expressions.js.map +1 -0
  254. package/singlestore-core/index.cjs +47 -0
  255. package/singlestore-core/index.cjs.map +1 -0
  256. package/singlestore-core/index.d.cts +13 -0
  257. package/singlestore-core/index.d.ts +13 -0
  258. package/singlestore-core/index.js +14 -0
  259. package/singlestore-core/index.js.map +1 -0
  260. package/singlestore-core/indexes.cjs +88 -0
  261. package/singlestore-core/indexes.cjs.map +1 -0
  262. package/singlestore-core/indexes.d.cts +62 -0
  263. package/singlestore-core/indexes.d.ts +62 -0
  264. package/singlestore-core/indexes.js +60 -0
  265. package/singlestore-core/indexes.js.map +1 -0
  266. package/singlestore-core/primary-keys.cjs +68 -0
  267. package/singlestore-core/primary-keys.cjs.map +1 -0
  268. package/singlestore-core/primary-keys.d.cts +30 -0
  269. package/singlestore-core/primary-keys.d.ts +30 -0
  270. package/singlestore-core/primary-keys.js +42 -0
  271. package/singlestore-core/primary-keys.js.map +1 -0
  272. package/singlestore-core/query-builders/count.cjs +73 -0
  273. package/singlestore-core/query-builders/count.cjs.map +1 -0
  274. package/singlestore-core/query-builders/count.d.cts +25 -0
  275. package/singlestore-core/query-builders/count.d.ts +25 -0
  276. package/singlestore-core/query-builders/count.js +49 -0
  277. package/singlestore-core/query-builders/count.js.map +1 -0
  278. package/singlestore-core/query-builders/delete.cjs +123 -0
  279. package/singlestore-core/query-builders/delete.cjs.map +1 -0
  280. package/singlestore-core/query-builders/delete.d.cts +83 -0
  281. package/singlestore-core/query-builders/delete.d.ts +83 -0
  282. package/singlestore-core/query-builders/delete.js +99 -0
  283. package/singlestore-core/query-builders/delete.js.map +1 -0
  284. package/singlestore-core/query-builders/index.cjs +33 -0
  285. package/singlestore-core/query-builders/index.cjs.map +1 -0
  286. package/singlestore-core/query-builders/index.d.cts +6 -0
  287. package/singlestore-core/query-builders/index.d.ts +6 -0
  288. package/singlestore-core/query-builders/index.js +7 -0
  289. package/singlestore-core/query-builders/index.js.map +1 -0
  290. package/singlestore-core/query-builders/insert.cjs +146 -0
  291. package/singlestore-core/query-builders/insert.cjs.map +1 -0
  292. package/singlestore-core/query-builders/insert.d.cts +106 -0
  293. package/singlestore-core/query-builders/insert.d.ts +106 -0
  294. package/singlestore-core/query-builders/insert.js +121 -0
  295. package/singlestore-core/query-builders/insert.js.map +1 -0
  296. package/singlestore-core/query-builders/query-builder.cjs +99 -0
  297. package/singlestore-core/query-builders/query-builder.cjs.map +1 -0
  298. package/singlestore-core/query-builders/query-builder.d.cts +33 -0
  299. package/singlestore-core/query-builders/query-builder.d.ts +33 -0
  300. package/singlestore-core/query-builders/query-builder.js +75 -0
  301. package/singlestore-core/query-builders/query-builder.js.map +1 -0
  302. package/singlestore-core/query-builders/query.cjs +126 -0
  303. package/singlestore-core/query-builders/query.cjs.map +1 -0
  304. package/singlestore-core/query-builders/query.d.cts +42 -0
  305. package/singlestore-core/query-builders/query.d.ts +42 -0
  306. package/singlestore-core/query-builders/query.js +103 -0
  307. package/singlestore-core/query-builders/query.js.map +1 -0
  308. package/singlestore-core/query-builders/select.cjs +687 -0
  309. package/singlestore-core/query-builders/select.cjs.map +1 -0
  310. package/singlestore-core/query-builders/select.d.cts +585 -0
  311. package/singlestore-core/query-builders/select.d.ts +585 -0
  312. package/singlestore-core/query-builders/select.js +662 -0
  313. package/singlestore-core/query-builders/select.js.map +1 -0
  314. package/singlestore-core/query-builders/select.types.cjs +17 -0
  315. package/singlestore-core/query-builders/select.types.cjs.map +1 -0
  316. package/singlestore-core/query-builders/select.types.d.cts +137 -0
  317. package/singlestore-core/query-builders/select.types.d.ts +137 -0
  318. package/singlestore-core/query-builders/select.types.js +1 -0
  319. package/singlestore-core/query-builders/select.types.js.map +1 -0
  320. package/singlestore-core/query-builders/update.cjs +147 -0
  321. package/singlestore-core/query-builders/update.cjs.map +1 -0
  322. package/singlestore-core/query-builders/update.d.cts +102 -0
  323. package/singlestore-core/query-builders/update.d.ts +102 -0
  324. package/singlestore-core/query-builders/update.js +122 -0
  325. package/singlestore-core/query-builders/update.js.map +1 -0
  326. package/singlestore-core/schema.cjs +56 -0
  327. package/singlestore-core/schema.cjs.map +1 -0
  328. package/singlestore-core/schema.d.cts +22 -0
  329. package/singlestore-core/schema.d.ts +22 -0
  330. package/singlestore-core/schema.js +29 -0
  331. package/singlestore-core/schema.js.map +1 -0
  332. package/singlestore-core/session.cjs +87 -0
  333. package/singlestore-core/session.cjs.map +1 -0
  334. package/singlestore-core/session.d.cts +66 -0
  335. package/singlestore-core/session.d.ts +66 -0
  336. package/singlestore-core/session.js +61 -0
  337. package/singlestore-core/session.js.map +1 -0
  338. package/singlestore-core/subquery.cjs +17 -0
  339. package/singlestore-core/subquery.cjs.map +1 -0
  340. package/singlestore-core/subquery.d.cts +5 -0
  341. package/singlestore-core/subquery.d.ts +5 -0
  342. package/singlestore-core/subquery.js +1 -0
  343. package/singlestore-core/subquery.js.map +1 -0
  344. package/singlestore-core/table.cjs +73 -0
  345. package/singlestore-core/table.cjs.map +1 -0
  346. package/singlestore-core/table.d.cts +40 -0
  347. package/singlestore-core/table.d.ts +40 -0
  348. package/singlestore-core/table.js +46 -0
  349. package/singlestore-core/table.js.map +1 -0
  350. package/singlestore-core/unique-constraint.cjs +82 -0
  351. package/singlestore-core/unique-constraint.cjs.map +1 -0
  352. package/singlestore-core/unique-constraint.d.cts +24 -0
  353. package/singlestore-core/unique-constraint.d.ts +24 -0
  354. package/singlestore-core/unique-constraint.js +54 -0
  355. package/singlestore-core/unique-constraint.js.map +1 -0
  356. package/singlestore-core/utils.cjs +65 -0
  357. package/singlestore-core/utils.cjs.map +1 -0
  358. package/singlestore-core/utils.d.cts +13 -0
  359. package/singlestore-core/utils.d.ts +13 -0
  360. package/singlestore-core/utils.js +41 -0
  361. package/singlestore-core/utils.js.map +1 -0
  362. package/singlestore-core/view-base.cjs +33 -0
  363. package/singlestore-core/view-base.cjs.map +1 -0
  364. package/singlestore-core/view-base.d.cts +9 -0
  365. package/singlestore-core/view-base.d.ts +9 -0
  366. package/singlestore-core/view-base.js +9 -0
  367. package/singlestore-core/view-base.js.map +1 -0
  368. package/singlestore-core/view-common.cjs +29 -0
  369. package/singlestore-core/view-common.cjs.map +1 -0
  370. package/singlestore-core/view-common.d.cts +1 -0
  371. package/singlestore-core/view-common.d.ts +1 -0
  372. package/singlestore-core/view-common.js +5 -0
  373. package/singlestore-core/view-common.js.map +1 -0
  374. package/singlestore-core/view.cjs +146 -0
  375. package/singlestore-core/view.cjs.map +1 -0
  376. package/singlestore-core/view.d.cts +65 -0
  377. package/singlestore-core/view.d.ts +65 -0
  378. package/singlestore-core/view.js +119 -0
  379. package/singlestore-core/view.js.map +1 -0
  380. package/singlestore-proxy/driver.cjs +62 -0
  381. package/singlestore-proxy/driver.cjs.map +1 -0
  382. package/singlestore-proxy/driver.d.cts +13 -0
  383. package/singlestore-proxy/driver.d.ts +13 -0
  384. package/singlestore-proxy/driver.js +42 -0
  385. package/singlestore-proxy/driver.js.map +1 -0
  386. package/singlestore-proxy/index.cjs +25 -0
  387. package/singlestore-proxy/index.cjs.map +1 -0
  388. package/singlestore-proxy/index.d.cts +2 -0
  389. package/singlestore-proxy/index.d.ts +2 -0
  390. package/singlestore-proxy/index.js +3 -0
  391. package/singlestore-proxy/index.js.map +1 -0
  392. package/singlestore-proxy/migrator.cjs +60 -0
  393. package/singlestore-proxy/migrator.cjs.map +1 -0
  394. package/singlestore-proxy/migrator.d.cts +4 -0
  395. package/singlestore-proxy/migrator.d.ts +4 -0
  396. package/singlestore-proxy/migrator.js +36 -0
  397. package/singlestore-proxy/migrator.js.map +1 -0
  398. package/singlestore-proxy/session.cjs +127 -0
  399. package/singlestore-proxy/session.cjs.map +1 -0
  400. package/singlestore-proxy/session.d.cts +50 -0
  401. package/singlestore-proxy/session.d.ts +50 -0
  402. package/singlestore-proxy/session.js +101 -0
  403. package/singlestore-proxy/session.js.map +1 -0
  404. package/sqlite-core/columns/blob.cjs +16 -2
  405. package/sqlite-core/columns/blob.cjs.map +1 -1
  406. package/sqlite-core/columns/blob.d.cts +2 -2
  407. package/sqlite-core/columns/blob.d.ts +2 -2
  408. package/sqlite-core/columns/blob.js +16 -2
  409. package/sqlite-core/columns/blob.js.map +1 -1
  410. package/version.cjs +1 -1
  411. package/version.d.cts +1 -1
  412. package/version.d.ts +1 -1
  413. 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":[]}
package/version.cjs CHANGED
@@ -26,7 +26,7 @@ __export(version_exports, {
26
26
  module.exports = __toCommonJS(version_exports);
27
27
 
28
28
  // package.json
29
- var version = "0.36.4-ddb97ec";
29
+ var version = "0.37.0";
30
30
 
31
31
  // src/version.ts
32
32
  var compatibilityVersion = 10;
package/version.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "0.36.4-ddb97ec";
1
+ var version = "0.37.0";
2
2
 
3
3
  declare const compatibilityVersion = 10;
4
4
 
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "0.36.4-ddb97ec";
1
+ var version = "0.37.0";
2
2
 
3
3
  declare const compatibilityVersion = 10;
4
4
 
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "0.36.4-ddb97ec";
2
+ var version = "0.37.0";
3
3
 
4
4
  // src/version.ts
5
5
  var compatibilityVersion = 10;