drizzle-orm 0.43.1-8eb999a → 0.43.1-a4825a4

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 (846) hide show
  1. package/aws-data-api/pg/driver.cjs +1 -5
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +0 -1
  4. package/aws-data-api/pg/driver.d.ts +0 -1
  5. package/aws-data-api/pg/driver.js +1 -5
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +4 -15
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +2 -13
  10. package/aws-data-api/pg/session.d.ts +2 -13
  11. package/aws-data-api/pg/session.js +4 -15
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs.map +1 -1
  14. package/better-sqlite3/driver.js.map +1 -1
  15. package/better-sqlite3/session.cjs +3 -9
  16. package/better-sqlite3/session.cjs.map +1 -1
  17. package/better-sqlite3/session.d.cts +2 -12
  18. package/better-sqlite3/session.d.ts +2 -12
  19. package/better-sqlite3/session.js +3 -9
  20. package/better-sqlite3/session.js.map +1 -1
  21. package/bun-sql/driver.cjs +1 -5
  22. package/bun-sql/driver.cjs.map +1 -1
  23. package/bun-sql/driver.js +1 -5
  24. package/bun-sql/driver.js.map +1 -1
  25. package/bun-sql/session.cjs +9 -21
  26. package/bun-sql/session.cjs.map +1 -1
  27. package/bun-sql/session.d.cts +2 -12
  28. package/bun-sql/session.d.ts +2 -12
  29. package/bun-sql/session.js +9 -21
  30. package/bun-sql/session.js.map +1 -1
  31. package/column-builder.cjs.map +1 -1
  32. package/column-builder.d.cts +6 -4
  33. package/column-builder.d.ts +6 -4
  34. package/column-builder.js.map +1 -1
  35. package/column.cjs +2 -0
  36. package/column.cjs.map +1 -1
  37. package/column.d.cts +1 -0
  38. package/column.d.ts +1 -0
  39. package/column.js +2 -0
  40. package/column.js.map +1 -1
  41. package/d1/driver.cjs +1 -5
  42. package/d1/driver.cjs.map +1 -1
  43. package/d1/driver.js +1 -5
  44. package/d1/driver.js.map +1 -1
  45. package/d1/session.cjs +9 -23
  46. package/d1/session.cjs.map +1 -1
  47. package/d1/session.d.cts +2 -12
  48. package/d1/session.d.ts +2 -12
  49. package/d1/session.js +9 -23
  50. package/d1/session.js.map +1 -1
  51. package/durable-sqlite/session.cjs +1 -1
  52. package/durable-sqlite/session.cjs.map +1 -1
  53. package/durable-sqlite/session.js +1 -1
  54. package/durable-sqlite/session.js.map +1 -1
  55. package/gel/driver.cjs +2 -9
  56. package/gel/driver.cjs.map +1 -1
  57. package/gel/driver.d.cts +0 -2
  58. package/gel/driver.d.ts +0 -2
  59. package/gel/driver.js +2 -9
  60. package/gel/driver.js.map +1 -1
  61. package/gel/session.cjs +10 -25
  62. package/gel/session.cjs.map +1 -1
  63. package/gel/session.d.cts +2 -12
  64. package/gel/session.d.ts +2 -12
  65. package/gel/session.js +10 -25
  66. package/gel/session.js.map +1 -1
  67. package/gel-core/db.cjs +0 -3
  68. package/gel-core/db.cjs.map +1 -1
  69. package/gel-core/db.d.cts +0 -4
  70. package/gel-core/db.d.ts +0 -4
  71. package/gel-core/db.js +0 -3
  72. package/gel-core/db.js.map +1 -1
  73. package/gel-core/query-builders/delete.cjs +1 -5
  74. package/gel-core/query-builders/delete.cjs.map +1 -1
  75. package/gel-core/query-builders/delete.js +1 -5
  76. package/gel-core/query-builders/delete.js.map +1 -1
  77. package/gel-core/query-builders/insert.cjs +1 -5
  78. package/gel-core/query-builders/insert.cjs.map +1 -1
  79. package/gel-core/query-builders/insert.js +1 -5
  80. package/gel-core/query-builders/insert.js.map +1 -1
  81. package/gel-core/query-builders/select.cjs +4 -29
  82. package/gel-core/query-builders/select.cjs.map +1 -1
  83. package/gel-core/query-builders/select.d.cts +0 -9
  84. package/gel-core/query-builders/select.d.ts +0 -9
  85. package/gel-core/query-builders/select.js +4 -29
  86. package/gel-core/query-builders/select.js.map +1 -1
  87. package/gel-core/query-builders/update.cjs +1 -5
  88. package/gel-core/query-builders/update.cjs.map +1 -1
  89. package/gel-core/query-builders/update.js +1 -5
  90. package/gel-core/query-builders/update.js.map +1 -1
  91. package/gel-core/session.cjs +1 -53
  92. package/gel-core/session.cjs.map +1 -1
  93. package/gel-core/session.d.cts +3 -14
  94. package/gel-core/session.d.ts +3 -14
  95. package/gel-core/session.js +2 -54
  96. package/gel-core/session.js.map +1 -1
  97. package/gel-core/utils.cjs +0 -16
  98. package/gel-core/utils.cjs.map +1 -1
  99. package/gel-core/utils.d.cts +4 -8
  100. package/gel-core/utils.d.ts +4 -8
  101. package/gel-core/utils.js +0 -15
  102. package/gel-core/utils.js.map +1 -1
  103. package/libsql/driver-core.cjs +1 -5
  104. package/libsql/driver-core.cjs.map +1 -1
  105. package/libsql/driver-core.js +1 -5
  106. package/libsql/driver-core.js.map +1 -1
  107. package/libsql/session.cjs +13 -27
  108. package/libsql/session.cjs.map +1 -1
  109. package/libsql/session.d.cts +2 -12
  110. package/libsql/session.d.ts +2 -12
  111. package/libsql/session.js +13 -27
  112. package/libsql/session.js.map +1 -1
  113. package/mssql-core/alias.cjs +32 -0
  114. package/mssql-core/alias.cjs.map +1 -0
  115. package/mssql-core/alias.d.cts +4 -0
  116. package/mssql-core/alias.d.ts +4 -0
  117. package/mssql-core/alias.js +8 -0
  118. package/mssql-core/alias.js.map +1 -0
  119. package/mssql-core/checks.cjs +58 -0
  120. package/mssql-core/checks.cjs.map +1 -0
  121. package/mssql-core/checks.d.cts +18 -0
  122. package/mssql-core/checks.d.ts +18 -0
  123. package/mssql-core/checks.js +32 -0
  124. package/mssql-core/checks.js.map +1 -0
  125. package/mssql-core/columns/all.cjs +72 -0
  126. package/mssql-core/columns/all.cjs.map +1 -0
  127. package/mssql-core/columns/all.d.cts +43 -0
  128. package/mssql-core/columns/all.d.ts +43 -0
  129. package/mssql-core/columns/all.js +48 -0
  130. package/mssql-core/columns/all.js.map +1 -0
  131. package/mssql-core/columns/bigint.cjs +67 -0
  132. package/mssql-core/columns/bigint.cjs.map +1 -0
  133. package/mssql-core/columns/bigint.d.cts +33 -0
  134. package/mssql-core/columns/bigint.d.ts +33 -0
  135. package/mssql-core/columns/bigint.js +41 -0
  136. package/mssql-core/columns/bigint.js.map +1 -0
  137. package/mssql-core/columns/binary.cjs +57 -0
  138. package/mssql-core/columns/binary.cjs.map +1 -0
  139. package/mssql-core/columns/binary.d.cts +28 -0
  140. package/mssql-core/columns/binary.d.ts +28 -0
  141. package/mssql-core/columns/binary.js +31 -0
  142. package/mssql-core/columns/binary.js.map +1 -0
  143. package/mssql-core/columns/bit.cjs +54 -0
  144. package/mssql-core/columns/bit.cjs.map +1 -0
  145. package/mssql-core/columns/bit.d.cts +24 -0
  146. package/mssql-core/columns/bit.d.ts +24 -0
  147. package/mssql-core/columns/bit.js +28 -0
  148. package/mssql-core/columns/bit.js.map +1 -0
  149. package/mssql-core/columns/char.cjs +74 -0
  150. package/mssql-core/columns/char.cjs.map +1 -0
  151. package/mssql-core/columns/char.d.cts +37 -0
  152. package/mssql-core/columns/char.d.ts +37 -0
  153. package/mssql-core/columns/char.js +47 -0
  154. package/mssql-core/columns/char.js.map +1 -0
  155. package/mssql-core/columns/common.cjs +110 -0
  156. package/mssql-core/columns/common.cjs.map +1 -0
  157. package/mssql-core/columns/common.d.cts +67 -0
  158. package/mssql-core/columns/common.d.ts +67 -0
  159. package/mssql-core/columns/common.js +83 -0
  160. package/mssql-core/columns/common.js.map +1 -0
  161. package/mssql-core/columns/custom.cjs +75 -0
  162. package/mssql-core/columns/custom.cjs.map +1 -0
  163. package/mssql-core/columns/custom.d.cts +149 -0
  164. package/mssql-core/columns/custom.d.ts +149 -0
  165. package/mssql-core/columns/custom.js +49 -0
  166. package/mssql-core/columns/custom.js.map +1 -0
  167. package/mssql-core/columns/date.cjs +94 -0
  168. package/mssql-core/columns/date.cjs.map +1 -0
  169. package/{cache/core/cache.cjs → mssql-core/columns/date.common.cjs} +12 -22
  170. package/mssql-core/columns/date.common.cjs.map +1 -0
  171. package/mssql-core/columns/date.common.d.cts +12 -0
  172. package/mssql-core/columns/date.common.d.ts +12 -0
  173. package/mssql-core/columns/date.common.js +13 -0
  174. package/mssql-core/columns/date.common.js.map +1 -0
  175. package/mssql-core/columns/date.d.cts +55 -0
  176. package/mssql-core/columns/date.d.ts +55 -0
  177. package/mssql-core/columns/date.js +66 -0
  178. package/mssql-core/columns/date.js.map +1 -0
  179. package/mssql-core/columns/datetime.cjs +94 -0
  180. package/mssql-core/columns/datetime.cjs.map +1 -0
  181. package/mssql-core/columns/datetime.d.cts +54 -0
  182. package/mssql-core/columns/datetime.d.ts +54 -0
  183. package/mssql-core/columns/datetime.js +66 -0
  184. package/mssql-core/columns/datetime.js.map +1 -0
  185. package/mssql-core/columns/datetime2.cjs +102 -0
  186. package/mssql-core/columns/datetime2.cjs.map +1 -0
  187. package/mssql-core/columns/datetime2.d.cts +54 -0
  188. package/mssql-core/columns/datetime2.d.ts +54 -0
  189. package/mssql-core/columns/datetime2.js +74 -0
  190. package/mssql-core/columns/datetime2.js.map +1 -0
  191. package/mssql-core/columns/datetimeoffset.cjs +102 -0
  192. package/mssql-core/columns/datetimeoffset.cjs.map +1 -0
  193. package/mssql-core/columns/datetimeoffset.d.cts +54 -0
  194. package/mssql-core/columns/datetimeoffset.d.ts +54 -0
  195. package/mssql-core/columns/datetimeoffset.js +74 -0
  196. package/mssql-core/columns/datetimeoffset.js.map +1 -0
  197. package/mssql-core/columns/decimal.cjs +68 -0
  198. package/mssql-core/columns/decimal.cjs.map +1 -0
  199. package/mssql-core/columns/decimal.d.cts +30 -0
  200. package/mssql-core/columns/decimal.d.ts +30 -0
  201. package/mssql-core/columns/decimal.js +42 -0
  202. package/mssql-core/columns/decimal.js.map +1 -0
  203. package/mssql-core/columns/float.cjs +58 -0
  204. package/mssql-core/columns/float.cjs.map +1 -0
  205. package/mssql-core/columns/float.d.cts +28 -0
  206. package/mssql-core/columns/float.d.ts +28 -0
  207. package/mssql-core/columns/float.js +32 -0
  208. package/mssql-core/columns/float.js.map +1 -0
  209. package/mssql-core/columns/index.cjs +63 -0
  210. package/mssql-core/columns/index.cjs.map +1 -0
  211. package/mssql-core/columns/index.d.cts +21 -0
  212. package/mssql-core/columns/index.d.ts +21 -0
  213. package/mssql-core/columns/index.js +22 -0
  214. package/mssql-core/columns/index.js.map +1 -0
  215. package/mssql-core/columns/int.cjs +53 -0
  216. package/mssql-core/columns/int.cjs.map +1 -0
  217. package/mssql-core/columns/int.d.cts +23 -0
  218. package/mssql-core/columns/int.d.ts +23 -0
  219. package/mssql-core/columns/int.js +27 -0
  220. package/mssql-core/columns/int.js.map +1 -0
  221. package/mssql-core/columns/numeric.cjs +68 -0
  222. package/mssql-core/columns/numeric.cjs.map +1 -0
  223. package/mssql-core/columns/numeric.d.cts +27 -0
  224. package/mssql-core/columns/numeric.d.ts +27 -0
  225. package/mssql-core/columns/numeric.js +42 -0
  226. package/mssql-core/columns/numeric.js.map +1 -0
  227. package/mssql-core/columns/real.cjs +53 -0
  228. package/mssql-core/columns/real.cjs.map +1 -0
  229. package/mssql-core/columns/real.d.cts +23 -0
  230. package/mssql-core/columns/real.d.ts +23 -0
  231. package/mssql-core/columns/real.js +27 -0
  232. package/mssql-core/columns/real.js.map +1 -0
  233. package/mssql-core/columns/smallint.cjs +62 -0
  234. package/mssql-core/columns/smallint.cjs.map +1 -0
  235. package/mssql-core/columns/smallint.d.cts +24 -0
  236. package/mssql-core/columns/smallint.d.ts +24 -0
  237. package/mssql-core/columns/smallint.js +36 -0
  238. package/mssql-core/columns/smallint.js.map +1 -0
  239. package/mssql-core/columns/text.cjs +68 -0
  240. package/mssql-core/columns/text.cjs.map +1 -0
  241. package/mssql-core/columns/text.d.cts +45 -0
  242. package/mssql-core/columns/text.d.ts +45 -0
  243. package/mssql-core/columns/text.js +41 -0
  244. package/mssql-core/columns/text.js.map +1 -0
  245. package/mssql-core/columns/time.cjs +90 -0
  246. package/mssql-core/columns/time.cjs.map +1 -0
  247. package/mssql-core/columns/time.d.cts +49 -0
  248. package/mssql-core/columns/time.d.ts +49 -0
  249. package/mssql-core/columns/time.js +62 -0
  250. package/mssql-core/columns/time.js.map +1 -0
  251. package/mssql-core/columns/tinyint.cjs +62 -0
  252. package/mssql-core/columns/tinyint.cjs.map +1 -0
  253. package/mssql-core/columns/tinyint.d.cts +24 -0
  254. package/mssql-core/columns/tinyint.d.ts +24 -0
  255. package/mssql-core/columns/tinyint.js +36 -0
  256. package/mssql-core/columns/tinyint.js.map +1 -0
  257. package/mssql-core/columns/varbinary.cjs +61 -0
  258. package/mssql-core/columns/varbinary.cjs.map +1 -0
  259. package/mssql-core/columns/varbinary.d.cts +27 -0
  260. package/mssql-core/columns/varbinary.d.ts +27 -0
  261. package/mssql-core/columns/varbinary.js +35 -0
  262. package/mssql-core/columns/varbinary.js.map +1 -0
  263. package/mssql-core/columns/varchar.cjs +117 -0
  264. package/mssql-core/columns/varchar.cjs.map +1 -0
  265. package/mssql-core/columns/varchar.d.cts +66 -0
  266. package/mssql-core/columns/varchar.d.ts +66 -0
  267. package/mssql-core/columns/varchar.js +88 -0
  268. package/mssql-core/columns/varchar.js.map +1 -0
  269. package/mssql-core/db.cjs +254 -0
  270. package/mssql-core/db.cjs.map +1 -0
  271. package/mssql-core/db.d.cts +228 -0
  272. package/mssql-core/db.d.ts +228 -0
  273. package/mssql-core/db.js +235 -0
  274. package/mssql-core/db.js.map +1 -0
  275. package/mssql-core/dialect.cjs +623 -0
  276. package/mssql-core/dialect.cjs.map +1 -0
  277. package/mssql-core/dialect.d.cts +58 -0
  278. package/mssql-core/dialect.d.ts +58 -0
  279. package/mssql-core/dialect.js +605 -0
  280. package/mssql-core/dialect.js.map +1 -0
  281. package/mssql-core/expressions.cjs +49 -0
  282. package/mssql-core/expressions.cjs.map +1 -0
  283. package/mssql-core/expressions.d.cts +8 -0
  284. package/mssql-core/expressions.d.ts +8 -0
  285. package/mssql-core/expressions.js +22 -0
  286. package/mssql-core/expressions.js.map +1 -0
  287. package/mssql-core/foreign-keys.cjs +91 -0
  288. package/mssql-core/foreign-keys.cjs.map +1 -0
  289. package/mssql-core/foreign-keys.d.cts +51 -0
  290. package/mssql-core/foreign-keys.d.ts +51 -0
  291. package/mssql-core/foreign-keys.js +65 -0
  292. package/mssql-core/foreign-keys.js.map +1 -0
  293. package/mssql-core/index.cjs +55 -0
  294. package/mssql-core/index.cjs.map +1 -0
  295. package/mssql-core/index.d.cts +17 -0
  296. package/mssql-core/index.d.ts +17 -0
  297. package/mssql-core/index.js +18 -0
  298. package/mssql-core/index.js.map +1 -0
  299. package/mssql-core/indexes.cjs +80 -0
  300. package/mssql-core/indexes.cjs.map +1 -0
  301. package/mssql-core/indexes.d.cts +49 -0
  302. package/mssql-core/indexes.d.ts +49 -0
  303. package/mssql-core/indexes.js +52 -0
  304. package/mssql-core/indexes.js.map +1 -0
  305. package/mssql-core/primary-keys.cjs +64 -0
  306. package/mssql-core/primary-keys.cjs.map +1 -0
  307. package/mssql-core/primary-keys.d.cts +23 -0
  308. package/mssql-core/primary-keys.d.ts +23 -0
  309. package/mssql-core/primary-keys.js +38 -0
  310. package/mssql-core/primary-keys.js.map +1 -0
  311. package/mssql-core/query-builders/delete.cjs +107 -0
  312. package/mssql-core/query-builders/delete.cjs.map +1 -0
  313. package/mssql-core/query-builders/delete.d.cts +98 -0
  314. package/mssql-core/query-builders/delete.d.ts +98 -0
  315. package/mssql-core/query-builders/delete.js +83 -0
  316. package/mssql-core/query-builders/delete.js.map +1 -0
  317. package/mssql-core/query-builders/index.cjs +33 -0
  318. package/mssql-core/query-builders/index.cjs.map +1 -0
  319. package/mssql-core/query-builders/index.d.cts +6 -0
  320. package/mssql-core/query-builders/index.d.ts +6 -0
  321. package/mssql-core/query-builders/index.js +7 -0
  322. package/mssql-core/query-builders/index.js.map +1 -0
  323. package/mssql-core/query-builders/insert.cjs +105 -0
  324. package/mssql-core/query-builders/insert.cjs.map +1 -0
  325. package/mssql-core/query-builders/insert.d.cts +78 -0
  326. package/mssql-core/query-builders/insert.d.ts +78 -0
  327. package/mssql-core/query-builders/insert.js +80 -0
  328. package/mssql-core/query-builders/insert.js.map +1 -0
  329. package/mssql-core/query-builders/query-builder.cjs +95 -0
  330. package/mssql-core/query-builders/query-builder.cjs.map +1 -0
  331. package/mssql-core/query-builders/query-builder.d.cts +32 -0
  332. package/mssql-core/query-builders/query-builder.d.ts +32 -0
  333. package/mssql-core/query-builders/query-builder.js +71 -0
  334. package/mssql-core/query-builders/query-builder.js.map +1 -0
  335. package/mssql-core/query-builders/query.cjs +126 -0
  336. package/mssql-core/query-builders/query.cjs.map +1 -0
  337. package/mssql-core/query-builders/query.d.cts +42 -0
  338. package/mssql-core/query-builders/query.d.ts +42 -0
  339. package/mssql-core/query-builders/query.js +103 -0
  340. package/mssql-core/query-builders/query.js.map +1 -0
  341. package/mssql-core/query-builders/select.cjs +679 -0
  342. package/mssql-core/query-builders/select.cjs.map +1 -0
  343. package/mssql-core/query-builders/select.d.cts +549 -0
  344. package/mssql-core/query-builders/select.d.ts +549 -0
  345. package/mssql-core/query-builders/select.js +649 -0
  346. package/mssql-core/query-builders/select.js.map +1 -0
  347. package/mssql-core/query-builders/select.types.cjs +17 -0
  348. package/mssql-core/query-builders/select.types.cjs.map +1 -0
  349. package/mssql-core/query-builders/select.types.d.cts +142 -0
  350. package/mssql-core/query-builders/select.types.d.ts +142 -0
  351. package/mssql-core/query-builders/select.types.js +1 -0
  352. package/mssql-core/query-builders/update.cjs +138 -0
  353. package/mssql-core/query-builders/update.cjs.map +1 -0
  354. package/mssql-core/query-builders/update.d.cts +141 -0
  355. package/mssql-core/query-builders/update.d.ts +141 -0
  356. package/mssql-core/query-builders/update.js +113 -0
  357. package/mssql-core/query-builders/update.js.map +1 -0
  358. package/mssql-core/schema.cjs +51 -0
  359. package/mssql-core/schema.cjs.map +1 -0
  360. package/mssql-core/schema.d.cts +22 -0
  361. package/mssql-core/schema.d.ts +22 -0
  362. package/mssql-core/schema.js +25 -0
  363. package/mssql-core/schema.js.map +1 -0
  364. package/mssql-core/session.cjs +74 -0
  365. package/mssql-core/session.cjs.map +1 -0
  366. package/mssql-core/session.d.cts +63 -0
  367. package/mssql-core/session.d.ts +63 -0
  368. package/mssql-core/session.js +48 -0
  369. package/mssql-core/session.js.map +1 -0
  370. package/{cache/core/types.cjs → mssql-core/subquery.cjs} +3 -3
  371. package/mssql-core/subquery.cjs.map +1 -0
  372. package/mssql-core/subquery.d.cts +18 -0
  373. package/mssql-core/subquery.d.ts +18 -0
  374. package/mssql-core/subquery.js +1 -0
  375. package/mssql-core/subquery.js.map +1 -0
  376. package/mssql-core/table.cjs +81 -0
  377. package/mssql-core/table.cjs.map +1 -0
  378. package/mssql-core/table.d.cts +43 -0
  379. package/mssql-core/table.d.ts +43 -0
  380. package/mssql-core/table.js +53 -0
  381. package/mssql-core/table.js.map +1 -0
  382. package/mssql-core/unique-constraint.cjs +76 -0
  383. package/mssql-core/unique-constraint.cjs.map +1 -0
  384. package/mssql-core/unique-constraint.d.cts +23 -0
  385. package/mssql-core/unique-constraint.d.ts +23 -0
  386. package/mssql-core/unique-constraint.js +49 -0
  387. package/mssql-core/unique-constraint.js.map +1 -0
  388. package/mssql-core/utils.cjs +85 -0
  389. package/mssql-core/utils.cjs.map +1 -0
  390. package/mssql-core/utils.d.cts +31 -0
  391. package/mssql-core/utils.d.ts +31 -0
  392. package/mssql-core/utils.js +60 -0
  393. package/mssql-core/utils.js.map +1 -0
  394. package/mssql-core/view-base.cjs +33 -0
  395. package/mssql-core/view-base.cjs.map +1 -0
  396. package/mssql-core/view-base.d.cts +9 -0
  397. package/mssql-core/view-base.d.ts +9 -0
  398. package/mssql-core/view-base.js +9 -0
  399. package/mssql-core/view-base.js.map +1 -0
  400. package/{cache/upstash/index.cjs → mssql-core/view-common.cjs} +12 -6
  401. package/mssql-core/view-common.cjs.map +1 -0
  402. package/mssql-core/view-common.d.cts +1 -0
  403. package/mssql-core/view-common.d.ts +1 -0
  404. package/mssql-core/view-common.js +5 -0
  405. package/mssql-core/view-common.js.map +1 -0
  406. package/mssql-core/view.cjs +154 -0
  407. package/mssql-core/view.cjs.map +1 -0
  408. package/mssql-core/view.d.cts +64 -0
  409. package/mssql-core/view.d.ts +64 -0
  410. package/mssql-core/view.js +125 -0
  411. package/mssql-core/view.js.map +1 -0
  412. package/mysql-core/db.cjs +0 -3
  413. package/mysql-core/db.cjs.map +1 -1
  414. package/mysql-core/db.d.cts +0 -4
  415. package/mysql-core/db.d.ts +0 -4
  416. package/mysql-core/db.js +0 -3
  417. package/mysql-core/db.js.map +1 -1
  418. package/mysql-core/query-builders/delete.cjs +1 -9
  419. package/mysql-core/query-builders/delete.cjs.map +1 -1
  420. package/mysql-core/query-builders/delete.js +1 -9
  421. package/mysql-core/query-builders/delete.js.map +1 -1
  422. package/mysql-core/query-builders/insert.cjs +1 -8
  423. package/mysql-core/query-builders/insert.cjs.map +1 -1
  424. package/mysql-core/query-builders/insert.d.cts +0 -2
  425. package/mysql-core/query-builders/insert.d.ts +0 -2
  426. package/mysql-core/query-builders/insert.js +1 -8
  427. package/mysql-core/query-builders/insert.js.map +1 -1
  428. package/mysql-core/query-builders/select.cjs +3 -27
  429. package/mysql-core/query-builders/select.cjs.map +1 -1
  430. package/mysql-core/query-builders/select.d.cts +0 -9
  431. package/mysql-core/query-builders/select.d.ts +0 -9
  432. package/mysql-core/query-builders/select.js +4 -28
  433. package/mysql-core/query-builders/select.js.map +1 -1
  434. package/mysql-core/query-builders/update.cjs +1 -11
  435. package/mysql-core/query-builders/update.cjs.map +1 -1
  436. package/mysql-core/query-builders/update.d.cts +0 -2
  437. package/mysql-core/query-builders/update.d.ts +0 -2
  438. package/mysql-core/query-builders/update.js +1 -11
  439. package/mysql-core/query-builders/update.js.map +1 -1
  440. package/mysql-core/session.cjs +0 -54
  441. package/mysql-core/session.cjs.map +1 -1
  442. package/mysql-core/session.d.cts +2 -15
  443. package/mysql-core/session.d.ts +2 -15
  444. package/mysql-core/session.js +1 -55
  445. package/mysql-core/session.js.map +1 -1
  446. package/mysql-core/utils.cjs +0 -16
  447. package/mysql-core/utils.cjs.map +1 -1
  448. package/mysql-core/utils.d.cts +2 -6
  449. package/mysql-core/utils.d.ts +2 -6
  450. package/mysql-core/utils.js +0 -15
  451. package/mysql-core/utils.js.map +1 -1
  452. package/mysql-proxy/session.cjs +5 -15
  453. package/mysql-proxy/session.cjs.map +1 -1
  454. package/mysql-proxy/session.d.cts +2 -12
  455. package/mysql-proxy/session.d.ts +2 -12
  456. package/mysql-proxy/session.js +5 -15
  457. package/mysql-proxy/session.js.map +1 -1
  458. package/mysql2/driver.cjs +2 -10
  459. package/mysql2/driver.cjs.map +1 -1
  460. package/mysql2/driver.d.cts +0 -2
  461. package/mysql2/driver.d.ts +0 -2
  462. package/mysql2/driver.js +2 -10
  463. package/mysql2/driver.js.map +1 -1
  464. package/mysql2/session.cjs +5 -15
  465. package/mysql2/session.cjs.map +1 -1
  466. package/mysql2/session.d.cts +2 -12
  467. package/mysql2/session.d.ts +2 -12
  468. package/mysql2/session.js +5 -15
  469. package/mysql2/session.js.map +1 -1
  470. package/neon-http/driver.cjs +2 -9
  471. package/neon-http/driver.cjs.map +1 -1
  472. package/neon-http/driver.d.cts +0 -2
  473. package/neon-http/driver.d.ts +0 -2
  474. package/neon-http/driver.js +2 -9
  475. package/neon-http/driver.js.map +1 -1
  476. package/neon-http/session.cjs +15 -25
  477. package/neon-http/session.cjs.map +1 -1
  478. package/neon-http/session.d.cts +2 -12
  479. package/neon-http/session.d.ts +2 -12
  480. package/neon-http/session.js +15 -25
  481. package/neon-http/session.js.map +1 -1
  482. package/neon-serverless/driver.cjs +2 -9
  483. package/neon-serverless/driver.cjs.map +1 -1
  484. package/neon-serverless/driver.d.cts +0 -2
  485. package/neon-serverless/driver.d.ts +0 -2
  486. package/neon-serverless/driver.js +2 -9
  487. package/neon-serverless/driver.js.map +1 -1
  488. package/neon-serverless/session.cjs +7 -21
  489. package/neon-serverless/session.cjs.map +1 -1
  490. package/neon-serverless/session.d.cts +2 -12
  491. package/neon-serverless/session.d.ts +2 -12
  492. package/neon-serverless/session.js +7 -21
  493. package/neon-serverless/session.js.map +1 -1
  494. package/node-mssql/driver.cjs +88 -0
  495. package/node-mssql/driver.cjs.map +1 -0
  496. package/node-mssql/driver.d.cts +34 -0
  497. package/node-mssql/driver.d.ts +34 -0
  498. package/node-mssql/driver.js +65 -0
  499. package/node-mssql/driver.js.map +1 -0
  500. package/{cache/core → node-mssql}/index.cjs +6 -4
  501. package/node-mssql/index.cjs.map +1 -0
  502. package/node-mssql/index.d.cts +2 -0
  503. package/node-mssql/index.d.ts +2 -0
  504. package/node-mssql/index.js +3 -0
  505. package/node-mssql/index.js.map +1 -0
  506. package/node-mssql/migrator.cjs +33 -0
  507. package/node-mssql/migrator.cjs.map +1 -0
  508. package/node-mssql/migrator.d.cts +3 -0
  509. package/node-mssql/migrator.d.ts +3 -0
  510. package/node-mssql/migrator.js +9 -0
  511. package/node-mssql/migrator.js.map +1 -0
  512. package/node-mssql/session.cjs +243 -0
  513. package/node-mssql/session.cjs.map +1 -0
  514. package/node-mssql/session.d.cts +47 -0
  515. package/node-mssql/session.d.ts +47 -0
  516. package/node-mssql/session.js +211 -0
  517. package/node-mssql/session.js.map +1 -0
  518. package/node-postgres/driver.cjs +2 -9
  519. package/node-postgres/driver.cjs.map +1 -1
  520. package/node-postgres/driver.d.cts +0 -2
  521. package/node-postgres/driver.d.ts +0 -2
  522. package/node-postgres/driver.js +2 -9
  523. package/node-postgres/driver.js.map +1 -1
  524. package/node-postgres/session.cjs +6 -19
  525. package/node-postgres/session.cjs.map +1 -1
  526. package/node-postgres/session.d.cts +2 -13
  527. package/node-postgres/session.d.ts +2 -13
  528. package/node-postgres/session.js +6 -19
  529. package/node-postgres/session.js.map +1 -1
  530. package/op-sqlite/driver.cjs +1 -5
  531. package/op-sqlite/driver.cjs.map +1 -1
  532. package/op-sqlite/driver.js +1 -5
  533. package/op-sqlite/driver.js.map +1 -1
  534. package/op-sqlite/session.cjs +9 -23
  535. package/op-sqlite/session.cjs.map +1 -1
  536. package/op-sqlite/session.d.cts +2 -12
  537. package/op-sqlite/session.d.ts +2 -12
  538. package/op-sqlite/session.js +9 -23
  539. package/op-sqlite/session.js.map +1 -1
  540. package/package.json +704 -117
  541. package/pg-core/columns/common.cjs +11 -10
  542. package/pg-core/columns/common.cjs.map +1 -1
  543. package/pg-core/columns/common.d.cts +3 -2
  544. package/pg-core/columns/common.d.ts +3 -2
  545. package/pg-core/columns/common.js +11 -10
  546. package/pg-core/columns/common.js.map +1 -1
  547. package/pg-core/db.cjs +0 -3
  548. package/pg-core/db.cjs.map +1 -1
  549. package/pg-core/db.d.cts +0 -4
  550. package/pg-core/db.d.ts +0 -4
  551. package/pg-core/db.js +0 -3
  552. package/pg-core/db.js.map +1 -1
  553. package/pg-core/foreign-keys.cjs +4 -0
  554. package/pg-core/foreign-keys.cjs.map +1 -1
  555. package/pg-core/foreign-keys.d.cts +2 -0
  556. package/pg-core/foreign-keys.d.ts +2 -0
  557. package/pg-core/foreign-keys.js +4 -0
  558. package/pg-core/foreign-keys.js.map +1 -1
  559. package/pg-core/primary-keys.cjs +3 -0
  560. package/pg-core/primary-keys.cjs.map +1 -1
  561. package/pg-core/primary-keys.d.cts +1 -0
  562. package/pg-core/primary-keys.d.ts +1 -0
  563. package/pg-core/primary-keys.js +3 -0
  564. package/pg-core/primary-keys.js.map +1 -1
  565. package/pg-core/query-builders/delete.cjs +1 -6
  566. package/pg-core/query-builders/delete.cjs.map +1 -1
  567. package/pg-core/query-builders/delete.d.cts +1 -3
  568. package/pg-core/query-builders/delete.d.ts +1 -3
  569. package/pg-core/query-builders/delete.js +1 -6
  570. package/pg-core/query-builders/delete.js.map +1 -1
  571. package/pg-core/query-builders/insert.cjs +1 -6
  572. package/pg-core/query-builders/insert.cjs.map +1 -1
  573. package/pg-core/query-builders/insert.d.cts +0 -2
  574. package/pg-core/query-builders/insert.d.ts +0 -2
  575. package/pg-core/query-builders/insert.js +1 -6
  576. package/pg-core/query-builders/insert.js.map +1 -1
  577. package/pg-core/query-builders/select.cjs +5 -31
  578. package/pg-core/query-builders/select.cjs.map +1 -1
  579. package/pg-core/query-builders/select.d.cts +6 -15
  580. package/pg-core/query-builders/select.d.ts +6 -15
  581. package/pg-core/query-builders/select.js +5 -31
  582. package/pg-core/query-builders/select.js.map +1 -1
  583. package/pg-core/query-builders/update.cjs +1 -6
  584. package/pg-core/query-builders/update.cjs.map +1 -1
  585. package/pg-core/query-builders/update.d.cts +2 -4
  586. package/pg-core/query-builders/update.d.ts +2 -4
  587. package/pg-core/query-builders/update.js +1 -6
  588. package/pg-core/query-builders/update.js.map +1 -1
  589. package/pg-core/session.cjs +1 -53
  590. package/pg-core/session.cjs.map +1 -1
  591. package/pg-core/session.d.cts +3 -14
  592. package/pg-core/session.d.ts +3 -14
  593. package/pg-core/session.js +2 -54
  594. package/pg-core/session.js.map +1 -1
  595. package/pg-core/unique-constraint.cjs +5 -0
  596. package/pg-core/unique-constraint.cjs.map +1 -1
  597. package/pg-core/unique-constraint.d.cts +2 -0
  598. package/pg-core/unique-constraint.d.ts +2 -0
  599. package/pg-core/unique-constraint.js +5 -0
  600. package/pg-core/unique-constraint.js.map +1 -1
  601. package/pg-core/utils.cjs +0 -16
  602. package/pg-core/utils.cjs.map +1 -1
  603. package/pg-core/utils.d.cts +4 -8
  604. package/pg-core/utils.d.ts +4 -8
  605. package/pg-core/utils.js +1 -16
  606. package/pg-core/utils.js.map +1 -1
  607. package/pg-proxy/driver.cjs +2 -7
  608. package/pg-proxy/driver.cjs.map +1 -1
  609. package/pg-proxy/driver.js +2 -7
  610. package/pg-proxy/driver.js.map +1 -1
  611. package/pg-proxy/session.cjs +5 -15
  612. package/pg-proxy/session.cjs.map +1 -1
  613. package/pg-proxy/session.d.cts +2 -12
  614. package/pg-proxy/session.d.ts +2 -12
  615. package/pg-proxy/session.js +5 -15
  616. package/pg-proxy/session.js.map +1 -1
  617. package/pglite/driver.cjs +2 -9
  618. package/pglite/driver.cjs.map +1 -1
  619. package/pglite/driver.d.cts +0 -2
  620. package/pglite/driver.d.ts +0 -2
  621. package/pglite/driver.js +2 -9
  622. package/pglite/driver.js.map +1 -1
  623. package/pglite/session.cjs +7 -19
  624. package/pglite/session.cjs.map +1 -1
  625. package/pglite/session.d.cts +2 -12
  626. package/pglite/session.d.ts +2 -12
  627. package/pglite/session.js +7 -19
  628. package/pglite/session.js.map +1 -1
  629. package/planetscale-serverless/driver.cjs +1 -5
  630. package/planetscale-serverless/driver.cjs.map +1 -1
  631. package/planetscale-serverless/driver.d.cts +0 -1
  632. package/planetscale-serverless/driver.d.ts +0 -1
  633. package/planetscale-serverless/driver.js +1 -5
  634. package/planetscale-serverless/driver.js.map +1 -1
  635. package/planetscale-serverless/session.cjs +5 -15
  636. package/planetscale-serverless/session.cjs.map +1 -1
  637. package/planetscale-serverless/session.d.cts +2 -12
  638. package/planetscale-serverless/session.d.ts +2 -12
  639. package/planetscale-serverless/session.js +5 -15
  640. package/planetscale-serverless/session.js.map +1 -1
  641. package/postgres-js/driver.cjs +1 -5
  642. package/postgres-js/driver.cjs.map +1 -1
  643. package/postgres-js/driver.js +1 -5
  644. package/postgres-js/driver.js.map +1 -1
  645. package/postgres-js/session.cjs +6 -18
  646. package/postgres-js/session.cjs.map +1 -1
  647. package/postgres-js/session.d.cts +2 -12
  648. package/postgres-js/session.d.ts +2 -12
  649. package/postgres-js/session.js +6 -18
  650. package/postgres-js/session.js.map +1 -1
  651. package/prisma/mysql/session.cjs +1 -1
  652. package/prisma/mysql/session.cjs.map +1 -1
  653. package/prisma/mysql/session.js +1 -1
  654. package/prisma/mysql/session.js.map +1 -1
  655. package/prisma/pg/session.cjs +1 -1
  656. package/prisma/pg/session.cjs.map +1 -1
  657. package/prisma/pg/session.js +1 -1
  658. package/prisma/pg/session.js.map +1 -1
  659. package/query-builders/query-builder.cjs.map +1 -1
  660. package/query-builders/query-builder.d.cts +1 -2
  661. package/query-builders/query-builder.d.ts +1 -2
  662. package/query-builders/query-builder.js.map +1 -1
  663. package/relations.cjs +48 -0
  664. package/relations.cjs.map +1 -1
  665. package/relations.d.cts +1 -0
  666. package/relations.d.ts +1 -0
  667. package/relations.js +47 -0
  668. package/relations.js.map +1 -1
  669. package/singlestore/driver.cjs +2 -12
  670. package/singlestore/driver.cjs.map +1 -1
  671. package/singlestore/driver.d.cts +0 -2
  672. package/singlestore/driver.d.ts +0 -2
  673. package/singlestore/driver.js +2 -12
  674. package/singlestore/driver.js.map +1 -1
  675. package/singlestore/session.cjs +5 -15
  676. package/singlestore/session.cjs.map +1 -1
  677. package/singlestore/session.d.cts +2 -12
  678. package/singlestore/session.d.ts +2 -12
  679. package/singlestore/session.js +5 -15
  680. package/singlestore/session.js.map +1 -1
  681. package/singlestore-core/db.cjs +0 -3
  682. package/singlestore-core/db.cjs.map +1 -1
  683. package/singlestore-core/db.d.cts +0 -4
  684. package/singlestore-core/db.d.ts +0 -4
  685. package/singlestore-core/db.js +0 -3
  686. package/singlestore-core/db.js.map +1 -1
  687. package/singlestore-core/query-builders/delete.cjs +1 -9
  688. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  689. package/singlestore-core/query-builders/delete.js +1 -9
  690. package/singlestore-core/query-builders/delete.js.map +1 -1
  691. package/singlestore-core/query-builders/insert.cjs +1 -6
  692. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  693. package/singlestore-core/query-builders/insert.js +1 -6
  694. package/singlestore-core/query-builders/insert.js.map +1 -1
  695. package/singlestore-core/query-builders/select.cjs +3 -28
  696. package/singlestore-core/query-builders/select.cjs.map +1 -1
  697. package/singlestore-core/query-builders/select.d.cts +0 -9
  698. package/singlestore-core/query-builders/select.d.ts +0 -9
  699. package/singlestore-core/query-builders/select.js +3 -28
  700. package/singlestore-core/query-builders/select.js.map +1 -1
  701. package/singlestore-core/query-builders/update.cjs +1 -9
  702. package/singlestore-core/query-builders/update.cjs.map +1 -1
  703. package/singlestore-core/query-builders/update.js +1 -9
  704. package/singlestore-core/query-builders/update.js.map +1 -1
  705. package/singlestore-core/session.cjs +0 -54
  706. package/singlestore-core/session.cjs.map +1 -1
  707. package/singlestore-core/session.d.cts +2 -14
  708. package/singlestore-core/session.d.ts +2 -14
  709. package/singlestore-core/session.js +1 -55
  710. package/singlestore-core/session.js.map +1 -1
  711. package/singlestore-core/utils.cjs +0 -16
  712. package/singlestore-core/utils.cjs.map +1 -1
  713. package/singlestore-core/utils.d.cts +0 -3
  714. package/singlestore-core/utils.d.ts +0 -3
  715. package/singlestore-core/utils.js +0 -15
  716. package/singlestore-core/utils.js.map +1 -1
  717. package/sql/sql.cjs +0 -10
  718. package/sql/sql.cjs.map +1 -1
  719. package/sql/sql.js +0 -10
  720. package/sql/sql.js.map +1 -1
  721. package/sqlite-core/db.cjs +0 -3
  722. package/sqlite-core/db.cjs.map +1 -1
  723. package/sqlite-core/db.d.cts +0 -4
  724. package/sqlite-core/db.d.ts +0 -4
  725. package/sqlite-core/db.js +0 -3
  726. package/sqlite-core/db.js.map +1 -1
  727. package/sqlite-core/query-builders/delete.cjs +1 -7
  728. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  729. package/sqlite-core/query-builders/delete.js +1 -7
  730. package/sqlite-core/query-builders/delete.js.map +1 -1
  731. package/sqlite-core/query-builders/insert.cjs +1 -7
  732. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  733. package/sqlite-core/query-builders/insert.js +1 -7
  734. package/sqlite-core/query-builders/insert.js.map +1 -1
  735. package/sqlite-core/query-builders/select.cjs +3 -31
  736. package/sqlite-core/query-builders/select.cjs.map +1 -1
  737. package/sqlite-core/query-builders/select.d.cts +0 -9
  738. package/sqlite-core/query-builders/select.d.ts +0 -9
  739. package/sqlite-core/query-builders/select.js +3 -31
  740. package/sqlite-core/query-builders/select.js.map +1 -1
  741. package/sqlite-core/query-builders/update.cjs +1 -7
  742. package/sqlite-core/query-builders/update.cjs.map +1 -1
  743. package/sqlite-core/query-builders/update.js +1 -7
  744. package/sqlite-core/query-builders/update.js.map +1 -1
  745. package/sqlite-core/session.cjs +3 -63
  746. package/sqlite-core/session.cjs.map +1 -1
  747. package/sqlite-core/session.d.cts +4 -18
  748. package/sqlite-core/session.d.ts +4 -18
  749. package/sqlite-core/session.js +4 -64
  750. package/sqlite-core/session.js.map +1 -1
  751. package/sqlite-core/utils.cjs +0 -16
  752. package/sqlite-core/utils.cjs.map +1 -1
  753. package/sqlite-core/utils.d.cts +2 -6
  754. package/sqlite-core/utils.d.ts +2 -6
  755. package/sqlite-core/utils.js +0 -15
  756. package/sqlite-core/utils.js.map +1 -1
  757. package/sqlite-proxy/driver.cjs +2 -9
  758. package/sqlite-proxy/driver.cjs.map +1 -1
  759. package/sqlite-proxy/driver.js +2 -9
  760. package/sqlite-proxy/driver.js.map +1 -1
  761. package/sqlite-proxy/session.cjs +8 -22
  762. package/sqlite-proxy/session.cjs.map +1 -1
  763. package/sqlite-proxy/session.d.cts +2 -12
  764. package/sqlite-proxy/session.d.ts +2 -12
  765. package/sqlite-proxy/session.js +8 -22
  766. package/sqlite-proxy/session.js.map +1 -1
  767. package/subquery.cjs +3 -4
  768. package/subquery.cjs.map +1 -1
  769. package/subquery.d.cts +1 -2
  770. package/subquery.d.ts +1 -2
  771. package/subquery.js +3 -4
  772. package/subquery.js.map +1 -1
  773. package/tidb-serverless/driver.cjs +1 -5
  774. package/tidb-serverless/driver.cjs.map +1 -1
  775. package/tidb-serverless/driver.d.cts +0 -1
  776. package/tidb-serverless/driver.d.ts +0 -1
  777. package/tidb-serverless/driver.js +1 -5
  778. package/tidb-serverless/driver.js.map +1 -1
  779. package/tidb-serverless/session.cjs +5 -15
  780. package/tidb-serverless/session.cjs.map +1 -1
  781. package/tidb-serverless/session.d.cts +2 -12
  782. package/tidb-serverless/session.d.ts +2 -12
  783. package/tidb-serverless/session.js +5 -15
  784. package/tidb-serverless/session.js.map +1 -1
  785. package/utils.cjs +0 -22
  786. package/utils.cjs.map +1 -1
  787. package/utils.d.cts +0 -3
  788. package/utils.d.ts +0 -3
  789. package/utils.js +0 -11
  790. package/utils.js.map +1 -1
  791. package/vercel-postgres/driver.cjs +2 -9
  792. package/vercel-postgres/driver.cjs.map +1 -1
  793. package/vercel-postgres/driver.d.cts +0 -2
  794. package/vercel-postgres/driver.d.ts +0 -2
  795. package/vercel-postgres/driver.js +2 -9
  796. package/vercel-postgres/driver.js.map +1 -1
  797. package/vercel-postgres/session.cjs +7 -21
  798. package/vercel-postgres/session.cjs.map +1 -1
  799. package/vercel-postgres/session.d.cts +2 -12
  800. package/vercel-postgres/session.d.ts +2 -12
  801. package/vercel-postgres/session.js +7 -21
  802. package/vercel-postgres/session.js.map +1 -1
  803. package/version.cjs +2 -2
  804. package/version.cjs.map +1 -1
  805. package/version.d.cts +2 -2
  806. package/version.d.ts +2 -2
  807. package/version.js +2 -2
  808. package/version.js.map +1 -1
  809. package/xata-http/driver.cjs +2 -7
  810. package/xata-http/driver.cjs.map +1 -1
  811. package/xata-http/driver.d.cts +0 -2
  812. package/xata-http/driver.d.ts +0 -2
  813. package/xata-http/driver.js +2 -7
  814. package/xata-http/driver.js.map +1 -1
  815. package/xata-http/session.cjs +7 -21
  816. package/xata-http/session.cjs.map +1 -1
  817. package/xata-http/session.d.cts +2 -12
  818. package/xata-http/session.d.ts +2 -12
  819. package/xata-http/session.js +7 -21
  820. package/xata-http/session.js.map +1 -1
  821. package/cache/core/cache.cjs.map +0 -1
  822. package/cache/core/cache.d.cts +0 -35
  823. package/cache/core/cache.d.ts +0 -35
  824. package/cache/core/cache.js +0 -22
  825. package/cache/core/cache.js.map +0 -1
  826. package/cache/core/index.cjs.map +0 -1
  827. package/cache/core/index.d.cts +0 -1
  828. package/cache/core/index.d.ts +0 -1
  829. package/cache/core/index.js +0 -2
  830. package/cache/core/index.js.map +0 -1
  831. package/cache/core/types.cjs.map +0 -1
  832. package/cache/core/types.d.cts +0 -33
  833. package/cache/core/types.d.ts +0 -33
  834. package/cache/core/types.js +0 -1
  835. package/cache/upstash/cache.cjs +0 -191
  836. package/cache/upstash/cache.cjs.map +0 -1
  837. package/cache/upstash/cache.d.cts +0 -59
  838. package/cache/upstash/cache.d.ts +0 -59
  839. package/cache/upstash/cache.js +0 -166
  840. package/cache/upstash/cache.js.map +0 -1
  841. package/cache/upstash/index.cjs.map +0 -1
  842. package/cache/upstash/index.d.cts +0 -1
  843. package/cache/upstash/index.d.ts +0 -1
  844. package/cache/upstash/index.js +0 -2
  845. package/cache/upstash/index.js.map +0 -1
  846. /package/{cache/core/types.js.map → mssql-core/query-builders/select.types.js.map} +0 -0
@@ -23,7 +23,6 @@ __export(session_exports, {
23
23
  LibSQLTransaction: () => LibSQLTransaction
24
24
  });
25
25
  module.exports = __toCommonJS(session_exports);
26
- var import_core = require("../cache/core/index.cjs");
27
26
  var import_entity = require("../entity.cjs");
28
27
  var import_logger = require("../logger.cjs");
29
28
  var import_sql = require("../sql/sql.cjs");
@@ -38,19 +37,14 @@ class LibSQLSession extends import_session.SQLiteSession {
38
37
  this.options = options;
39
38
  this.tx = tx;
40
39
  this.logger = options.logger ?? new import_logger.NoopLogger();
41
- this.cache = options.cache ?? new import_core.NoopCache();
42
40
  }
43
41
  static [import_entity.entityKind] = "LibSQLSession";
44
42
  logger;
45
- cache;
46
- prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
43
+ prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {
47
44
  return new LibSQLPreparedQuery(
48
45
  this.client,
49
46
  query,
50
47
  this.logger,
51
- this.cache,
52
- queryMetadata,
53
- cacheConfig,
54
48
  fields,
55
49
  this.tx,
56
50
  executeMethod,
@@ -128,8 +122,8 @@ class LibSQLTransaction extends import_sqlite_core.SQLiteTransaction {
128
122
  }
129
123
  }
130
124
  class LibSQLPreparedQuery extends import_session.SQLitePreparedQuery {
131
- constructor(client, query, logger, cache, queryMetadata, cacheConfig, fields, tx, executeMethod, _isResponseInArrayMode, customResultMapper) {
132
- super("async", executeMethod, query, cache, queryMetadata, cacheConfig);
125
+ constructor(client, query, logger, fields, tx, executeMethod, _isResponseInArrayMode, customResultMapper) {
126
+ super("async", executeMethod, query);
133
127
  this.client = client;
134
128
  this.logger = logger;
135
129
  this.fields = fields;
@@ -140,23 +134,19 @@ class LibSQLPreparedQuery extends import_session.SQLitePreparedQuery {
140
134
  this.fields = fields;
141
135
  }
142
136
  static [import_entity.entityKind] = "LibSQLPreparedQuery";
143
- async run(placeholderValues) {
137
+ run(placeholderValues) {
144
138
  const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
145
139
  this.logger.logQuery(this.query.sql, params);
146
- return await this.queryWithCache(this.query.sql, params, async () => {
147
- const stmt = { sql: this.query.sql, args: params };
148
- return this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);
149
- });
140
+ const stmt = { sql: this.query.sql, args: params };
141
+ return this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);
150
142
  }
151
143
  async all(placeholderValues) {
152
144
  const { fields, logger, query, tx, client, customResultMapper } = this;
153
145
  if (!fields && !customResultMapper) {
154
146
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
155
147
  logger.logQuery(query.sql, params);
156
- return await this.queryWithCache(query.sql, params, async () => {
157
- const stmt = { sql: query.sql, args: params };
158
- return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapAllResult(rows2));
159
- });
148
+ const stmt = { sql: query.sql, args: params };
149
+ return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapAllResult(rows2));
160
150
  }
161
151
  const rows = await this.values(placeholderValues);
162
152
  return this.mapAllResult(rows);
@@ -184,10 +174,8 @@ class LibSQLPreparedQuery extends import_session.SQLitePreparedQuery {
184
174
  if (!fields && !customResultMapper) {
185
175
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
186
176
  logger.logQuery(query.sql, params);
187
- return await this.queryWithCache(query.sql, params, async () => {
188
- const stmt = { sql: query.sql, args: params };
189
- return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapGetResult(rows2));
190
- });
177
+ const stmt = { sql: query.sql, args: params };
178
+ return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapGetResult(rows2));
191
179
  }
192
180
  const rows = await this.values(placeholderValues);
193
181
  return this.mapGetResult(rows);
@@ -212,13 +200,11 @@ class LibSQLPreparedQuery extends import_session.SQLitePreparedQuery {
212
200
  this.joinsNotNullableMap
213
201
  );
214
202
  }
215
- async values(placeholderValues) {
203
+ values(placeholderValues) {
216
204
  const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
217
205
  this.logger.logQuery(this.query.sql, params);
218
- return await this.queryWithCache(this.query.sql, params, async () => {
219
- const stmt = { sql: this.query.sql, args: params };
220
- return (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows);
221
- });
206
+ const stmt = { sql: this.query.sql, args: params };
207
+ return (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows);
222
208
  }
223
209
  /** @internal */
224
210
  isResponseInArrayMode() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/libsql/session.ts"],"sourcesContent":["import type { Client, InArgs, InStatement, ResultSet, Transaction } from '@libsql/client';\nimport type { BatchItem as BatchItem } from '~/batch.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface LibSQLSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class LibSQLSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: LibSQLSessionOptions,\n\t\tprivate tx: Transaction | undefined,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): LibSQLPreparedQuery<T> {\n\t\treturn new LibSQLPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.tx,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: InStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.batch(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\tasync migrate<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: InStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.migrate(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (db: LibSQLTransaction<TFullSchema, TSchema>) => T | Promise<T>,\n\t\t_config?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\t// TODO: support transaction behavior\n\t\tconst libsqlTx = await this.client.transaction();\n\t\tconst session = new LibSQLSession<TFullSchema, TSchema>(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t\tlibsqlTx,\n\t\t);\n\t\tconst tx = new LibSQLTransaction<TFullSchema, TSchema>('async', this.dialect, session, this.schema);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait libsqlTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait libsqlTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n}\n\nexport class LibSQLTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLTransaction';\n\n\toverride async transaction<T>(transaction: (tx: LibSQLTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new LibSQLTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class LibSQLPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: ResultSet; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'LibSQLPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\t/** @internal */ public fields: SelectedFieldsOrdered | undefined,\n\t\tprivate tx: Transaction | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\t/** @internal */ public customResultMapper?: (\n\t\t\trows: unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query, cache, queryMetadata, cacheConfig);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t}\n\n\tasync run(placeholderValues?: Record<string, unknown>): Promise<ResultSet> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\t\treturn this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, logger, query, tx, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapAllResult(rows));\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as ResultSet).rows;\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn (rows as unknown[]).map((row) => normalizeRow(row));\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['all'];\n\t\t}\n\n\t\treturn (rows as unknown[]).map((row) => {\n\t\t\treturn mapResultRow(\n\t\t\t\tthis.fields!,\n\t\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\t\tthis.joinsNotNullableMap,\n\t\t\t);\n\t\t});\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, logger, query, tx, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapGetResult(rows));\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn this.mapGetResult(rows);\n\t}\n\n\toverride mapGetResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as ResultSet).rows;\n\t\t}\n\n\t\tconst row = (rows as unknown[])[0];\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn normalizeRow(row);\n\t\t}\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(\n\t\t\tthis.fields!,\n\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\tthis.joinsNotNullableMap,\n\t\t);\n\t}\n\n\tasync values(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\t\treturn (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows) as Promise<\n\t\t\t\tT['values']\n\t\t\t>;\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nfunction normalizeRow(obj: any) {\n\t// The libSQL node-sqlite3 compatibility wrapper returns rows\n\t// that can be accessed both as objects and arrays. Let's\n\t// turn them into objects what's what other SQLite drivers\n\t// do.\n\treturn Object.keys(obj).reduce((acc: Record<string, any>, key) => {\n\t\tif (Object.prototype.propertyIsEnumerable.call(obj, key)) {\n\t\t\tacc[key] = obj[key];\n\t\t}\n\t\treturn acc;\n\t}, {});\n}\n\nfunction normalizeFieldValue(value: unknown) {\n\tif (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { // eslint-disable-line no-instanceof/no-instanceof\n\t\tif (typeof Buffer !== 'undefined') {\n\t\t\tif (!(value instanceof Buffer)) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\treturn Buffer.from(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(value);\n\t\t}\n\t\tthrow new Error('TextDecoder is not available. Please provide either Buffer or TextDecoder polyfill.');\n\t}\n\treturn value;\n}\n"],"mappings":"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","names":["rows"]}
1
+ {"version":3,"sources":["../../src/libsql/session.ts"],"sourcesContent":["import type { Client, InArgs, InStatement, ResultSet, Transaction } from '@libsql/client';\nimport type { BatchItem as BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface LibSQLSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class LibSQLSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: LibSQLSessionOptions,\n\t\tprivate tx: Transaction | undefined,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): LibSQLPreparedQuery<T> {\n\t\treturn new LibSQLPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tthis.tx,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: InStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.batch(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\tasync migrate<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: InStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.migrate(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (db: LibSQLTransaction<TFullSchema, TSchema>) => T | Promise<T>,\n\t\t_config?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\t// TODO: support transaction behavior\n\t\tconst libsqlTx = await this.client.transaction();\n\t\tconst session = new LibSQLSession<TFullSchema, TSchema>(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t\tlibsqlTx,\n\t\t);\n\t\tconst tx = new LibSQLTransaction<TFullSchema, TSchema>('async', this.dialect, session, this.schema);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait libsqlTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait libsqlTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n}\n\nexport class LibSQLTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLTransaction';\n\n\toverride async transaction<T>(transaction: (tx: LibSQLTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new LibSQLTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class LibSQLPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: ResultSet; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'LibSQLPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\t/** @internal */ public fields: SelectedFieldsOrdered | undefined,\n\t\tprivate tx: Transaction | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\t/** @internal */ public customResultMapper?: (\n\t\t\trows: unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<ResultSet> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\treturn this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, logger, query, tx, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapAllResult(rows));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as ResultSet).rows;\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn (rows as unknown[]).map((row) => normalizeRow(row));\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['all'];\n\t\t}\n\n\t\treturn (rows as unknown[]).map((row) => {\n\t\t\treturn mapResultRow(\n\t\t\t\tthis.fields!,\n\t\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\t\tthis.joinsNotNullableMap,\n\t\t\t);\n\t\t});\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, logger, query, tx, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapGetResult(rows));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn this.mapGetResult(rows);\n\t}\n\n\toverride mapGetResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as ResultSet).rows;\n\t\t}\n\n\t\tconst row = (rows as unknown[])[0];\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn normalizeRow(row);\n\t\t}\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(\n\t\t\tthis.fields!,\n\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\tthis.joinsNotNullableMap,\n\t\t);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\treturn (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows) as Promise<\n\t\t\tT['values']\n\t\t>;\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nfunction normalizeRow(obj: any) {\n\t// The libSQL node-sqlite3 compatibility wrapper returns rows\n\t// that can be accessed both as objects and arrays. Let's\n\t// turn them into objects what's what other SQLite drivers\n\t// do.\n\treturn Object.keys(obj).reduce((acc: Record<string, any>, key) => {\n\t\tif (Object.prototype.propertyIsEnumerable.call(obj, key)) {\n\t\t\tacc[key] = obj[key];\n\t\t}\n\t\treturn acc;\n\t}, {});\n}\n\nfunction normalizeFieldValue(value: unknown) {\n\tif (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { // eslint-disable-line no-instanceof/no-instanceof\n\t\tif (typeof Buffer !== 'undefined') {\n\t\t\tif (!(value instanceof Buffer)) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\treturn Buffer.from(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(value);\n\t\t}\n\t\tthrow new Error('TextDecoder is not available. Please provide either Buffer or TextDecoder polyfill.');\n\t}\n\treturn value;\n}\n"],"mappings":"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","names":["rows"]}
@@ -1,7 +1,5 @@
1
1
  import type { Client, ResultSet, Transaction } from '@libsql/client';
2
2
  import type { BatchItem as BatchItem } from "../batch.cjs";
3
- import { type Cache } from "../cache/core/index.cjs";
4
- import type { WithCacheConfig } from "../cache/core/types.cjs";
5
3
  import { entityKind } from "../entity.cjs";
6
4
  import type { Logger } from "../logger.cjs";
7
5
  import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
@@ -13,7 +11,6 @@ import type { PreparedQueryConfig as PreparedQueryConfigBase, SQLiteExecuteMetho
13
11
  import { SQLitePreparedQuery, SQLiteSession } from "../sqlite-core/session.cjs";
14
12
  export interface LibSQLSessionOptions {
15
13
  logger?: Logger;
16
- cache?: Cache;
17
14
  }
18
15
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
19
16
  export declare class LibSQLSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', ResultSet, TFullSchema, TSchema> {
@@ -23,12 +20,8 @@ export declare class LibSQLSession<TFullSchema extends Record<string, unknown>,
23
20
  private tx;
24
21
  static readonly [entityKind]: string;
25
22
  private logger;
26
- private cache;
27
23
  constructor(client: Client, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options: LibSQLSessionOptions, tx: Transaction | undefined);
28
- prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown, queryMetadata?: {
29
- type: 'select' | 'update' | 'delete' | 'insert';
30
- tables: string[];
31
- }, cacheConfig?: WithCacheConfig): LibSQLPreparedQuery<T>;
24
+ prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): LibSQLPreparedQuery<T>;
32
25
  batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T): Promise<unknown[]>;
33
26
  migrate<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T): Promise<unknown[]>;
34
27
  transaction<T>(transaction: (db: LibSQLTransaction<TFullSchema, TSchema>) => T | Promise<T>, _config?: SQLiteTransactionConfig): Promise<T>;
@@ -53,10 +46,7 @@ export declare class LibSQLPreparedQuery<T extends PreparedQueryConfig = Prepare
53
46
  private tx;
54
47
  private _isResponseInArrayMode;
55
48
  static readonly [entityKind]: string;
56
- constructor(client: Client, query: Query, logger: Logger, cache: Cache, queryMetadata: {
57
- type: 'select' | 'update' | 'delete' | 'insert';
58
- tables: string[];
59
- } | undefined, cacheConfig: WithCacheConfig | undefined,
49
+ constructor(client: Client, query: Query, logger: Logger,
60
50
  /** @internal */ fields: SelectedFieldsOrdered | undefined, tx: Transaction | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean,
61
51
  /** @internal */ customResultMapper?: ((rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown) | undefined);
62
52
  run(placeholderValues?: Record<string, unknown>): Promise<ResultSet>;
@@ -1,7 +1,5 @@
1
1
  import type { Client, ResultSet, Transaction } from '@libsql/client';
2
2
  import type { BatchItem as BatchItem } from "../batch.js";
3
- import { type Cache } from "../cache/core/index.js";
4
- import type { WithCacheConfig } from "../cache/core/types.js";
5
3
  import { entityKind } from "../entity.js";
6
4
  import type { Logger } from "../logger.js";
7
5
  import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
@@ -13,7 +11,6 @@ import type { PreparedQueryConfig as PreparedQueryConfigBase, SQLiteExecuteMetho
13
11
  import { SQLitePreparedQuery, SQLiteSession } from "../sqlite-core/session.js";
14
12
  export interface LibSQLSessionOptions {
15
13
  logger?: Logger;
16
- cache?: Cache;
17
14
  }
18
15
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
19
16
  export declare class LibSQLSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', ResultSet, TFullSchema, TSchema> {
@@ -23,12 +20,8 @@ export declare class LibSQLSession<TFullSchema extends Record<string, unknown>,
23
20
  private tx;
24
21
  static readonly [entityKind]: string;
25
22
  private logger;
26
- private cache;
27
23
  constructor(client: Client, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options: LibSQLSessionOptions, tx: Transaction | undefined);
28
- prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown, queryMetadata?: {
29
- type: 'select' | 'update' | 'delete' | 'insert';
30
- tables: string[];
31
- }, cacheConfig?: WithCacheConfig): LibSQLPreparedQuery<T>;
24
+ prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): LibSQLPreparedQuery<T>;
32
25
  batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T): Promise<unknown[]>;
33
26
  migrate<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T): Promise<unknown[]>;
34
27
  transaction<T>(transaction: (db: LibSQLTransaction<TFullSchema, TSchema>) => T | Promise<T>, _config?: SQLiteTransactionConfig): Promise<T>;
@@ -53,10 +46,7 @@ export declare class LibSQLPreparedQuery<T extends PreparedQueryConfig = Prepare
53
46
  private tx;
54
47
  private _isResponseInArrayMode;
55
48
  static readonly [entityKind]: string;
56
- constructor(client: Client, query: Query, logger: Logger, cache: Cache, queryMetadata: {
57
- type: 'select' | 'update' | 'delete' | 'insert';
58
- tables: string[];
59
- } | undefined, cacheConfig: WithCacheConfig | undefined,
49
+ constructor(client: Client, query: Query, logger: Logger,
60
50
  /** @internal */ fields: SelectedFieldsOrdered | undefined, tx: Transaction | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean,
61
51
  /** @internal */ customResultMapper?: ((rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown) | undefined);
62
52
  run(placeholderValues?: Record<string, unknown>): Promise<ResultSet>;
package/libsql/session.js CHANGED
@@ -1,4 +1,3 @@
1
- import { NoopCache } from "../cache/core/index.js";
2
1
  import { entityKind } from "../entity.js";
3
2
  import { NoopLogger } from "../logger.js";
4
3
  import { fillPlaceholders, sql } from "../sql/sql.js";
@@ -13,19 +12,14 @@ class LibSQLSession extends SQLiteSession {
13
12
  this.options = options;
14
13
  this.tx = tx;
15
14
  this.logger = options.logger ?? new NoopLogger();
16
- this.cache = options.cache ?? new NoopCache();
17
15
  }
18
16
  static [entityKind] = "LibSQLSession";
19
17
  logger;
20
- cache;
21
- prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
18
+ prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {
22
19
  return new LibSQLPreparedQuery(
23
20
  this.client,
24
21
  query,
25
22
  this.logger,
26
- this.cache,
27
- queryMetadata,
28
- cacheConfig,
29
23
  fields,
30
24
  this.tx,
31
25
  executeMethod,
@@ -103,8 +97,8 @@ class LibSQLTransaction extends SQLiteTransaction {
103
97
  }
104
98
  }
105
99
  class LibSQLPreparedQuery extends SQLitePreparedQuery {
106
- constructor(client, query, logger, cache, queryMetadata, cacheConfig, fields, tx, executeMethod, _isResponseInArrayMode, customResultMapper) {
107
- super("async", executeMethod, query, cache, queryMetadata, cacheConfig);
100
+ constructor(client, query, logger, fields, tx, executeMethod, _isResponseInArrayMode, customResultMapper) {
101
+ super("async", executeMethod, query);
108
102
  this.client = client;
109
103
  this.logger = logger;
110
104
  this.fields = fields;
@@ -115,23 +109,19 @@ class LibSQLPreparedQuery extends SQLitePreparedQuery {
115
109
  this.fields = fields;
116
110
  }
117
111
  static [entityKind] = "LibSQLPreparedQuery";
118
- async run(placeholderValues) {
112
+ run(placeholderValues) {
119
113
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
120
114
  this.logger.logQuery(this.query.sql, params);
121
- return await this.queryWithCache(this.query.sql, params, async () => {
122
- const stmt = { sql: this.query.sql, args: params };
123
- return this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);
124
- });
115
+ const stmt = { sql: this.query.sql, args: params };
116
+ return this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);
125
117
  }
126
118
  async all(placeholderValues) {
127
119
  const { fields, logger, query, tx, client, customResultMapper } = this;
128
120
  if (!fields && !customResultMapper) {
129
121
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
130
122
  logger.logQuery(query.sql, params);
131
- return await this.queryWithCache(query.sql, params, async () => {
132
- const stmt = { sql: query.sql, args: params };
133
- return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapAllResult(rows2));
134
- });
123
+ const stmt = { sql: query.sql, args: params };
124
+ return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapAllResult(rows2));
135
125
  }
136
126
  const rows = await this.values(placeholderValues);
137
127
  return this.mapAllResult(rows);
@@ -159,10 +149,8 @@ class LibSQLPreparedQuery extends SQLitePreparedQuery {
159
149
  if (!fields && !customResultMapper) {
160
150
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
161
151
  logger.logQuery(query.sql, params);
162
- return await this.queryWithCache(query.sql, params, async () => {
163
- const stmt = { sql: query.sql, args: params };
164
- return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapGetResult(rows2));
165
- });
152
+ const stmt = { sql: query.sql, args: params };
153
+ return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapGetResult(rows2));
166
154
  }
167
155
  const rows = await this.values(placeholderValues);
168
156
  return this.mapGetResult(rows);
@@ -187,13 +175,11 @@ class LibSQLPreparedQuery extends SQLitePreparedQuery {
187
175
  this.joinsNotNullableMap
188
176
  );
189
177
  }
190
- async values(placeholderValues) {
178
+ values(placeholderValues) {
191
179
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
192
180
  this.logger.logQuery(this.query.sql, params);
193
- return await this.queryWithCache(this.query.sql, params, async () => {
194
- const stmt = { sql: this.query.sql, args: params };
195
- return (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows);
196
- });
181
+ const stmt = { sql: this.query.sql, args: params };
182
+ return (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows);
197
183
  }
198
184
  /** @internal */
199
185
  isResponseInArrayMode() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/libsql/session.ts"],"sourcesContent":["import type { Client, InArgs, InStatement, ResultSet, Transaction } from '@libsql/client';\nimport type { BatchItem as BatchItem } from '~/batch.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface LibSQLSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class LibSQLSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: LibSQLSessionOptions,\n\t\tprivate tx: Transaction | undefined,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): LibSQLPreparedQuery<T> {\n\t\treturn new LibSQLPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.tx,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: InStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.batch(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\tasync migrate<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: InStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.migrate(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (db: LibSQLTransaction<TFullSchema, TSchema>) => T | Promise<T>,\n\t\t_config?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\t// TODO: support transaction behavior\n\t\tconst libsqlTx = await this.client.transaction();\n\t\tconst session = new LibSQLSession<TFullSchema, TSchema>(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t\tlibsqlTx,\n\t\t);\n\t\tconst tx = new LibSQLTransaction<TFullSchema, TSchema>('async', this.dialect, session, this.schema);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait libsqlTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait libsqlTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n}\n\nexport class LibSQLTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLTransaction';\n\n\toverride async transaction<T>(transaction: (tx: LibSQLTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new LibSQLTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class LibSQLPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: ResultSet; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'LibSQLPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\t/** @internal */ public fields: SelectedFieldsOrdered | undefined,\n\t\tprivate tx: Transaction | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\t/** @internal */ public customResultMapper?: (\n\t\t\trows: unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query, cache, queryMetadata, cacheConfig);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t}\n\n\tasync run(placeholderValues?: Record<string, unknown>): Promise<ResultSet> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\t\treturn this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, logger, query, tx, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapAllResult(rows));\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as ResultSet).rows;\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn (rows as unknown[]).map((row) => normalizeRow(row));\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['all'];\n\t\t}\n\n\t\treturn (rows as unknown[]).map((row) => {\n\t\t\treturn mapResultRow(\n\t\t\t\tthis.fields!,\n\t\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\t\tthis.joinsNotNullableMap,\n\t\t\t);\n\t\t});\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, logger, query, tx, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapGetResult(rows));\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn this.mapGetResult(rows);\n\t}\n\n\toverride mapGetResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as ResultSet).rows;\n\t\t}\n\n\t\tconst row = (rows as unknown[])[0];\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn normalizeRow(row);\n\t\t}\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(\n\t\t\tthis.fields!,\n\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\tthis.joinsNotNullableMap,\n\t\t);\n\t}\n\n\tasync values(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\t\treturn (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows) as Promise<\n\t\t\t\tT['values']\n\t\t\t>;\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nfunction normalizeRow(obj: any) {\n\t// The libSQL node-sqlite3 compatibility wrapper returns rows\n\t// that can be accessed both as objects and arrays. Let's\n\t// turn them into objects what's what other SQLite drivers\n\t// do.\n\treturn Object.keys(obj).reduce((acc: Record<string, any>, key) => {\n\t\tif (Object.prototype.propertyIsEnumerable.call(obj, key)) {\n\t\t\tacc[key] = obj[key];\n\t\t}\n\t\treturn acc;\n\t}, {});\n}\n\nfunction normalizeFieldValue(value: unknown) {\n\tif (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { // eslint-disable-line no-instanceof/no-instanceof\n\t\tif (typeof Buffer !== 'undefined') {\n\t\t\tif (!(value instanceof Buffer)) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\treturn Buffer.from(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(value);\n\t\t}\n\t\tthrow new Error('TextDecoder is not available. Please provide either Buffer or TextDecoder polyfill.');\n\t}\n\treturn value;\n}\n"],"mappings":"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","names":["rows"]}
1
+ {"version":3,"sources":["../../src/libsql/session.ts"],"sourcesContent":["import type { Client, InArgs, InStatement, ResultSet, Transaction } from '@libsql/client';\nimport type { BatchItem as BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface LibSQLSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class LibSQLSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: LibSQLSessionOptions,\n\t\tprivate tx: Transaction | undefined,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): LibSQLPreparedQuery<T> {\n\t\treturn new LibSQLPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tthis.tx,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: InStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.batch(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\tasync migrate<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: InStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.migrate(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (db: LibSQLTransaction<TFullSchema, TSchema>) => T | Promise<T>,\n\t\t_config?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\t// TODO: support transaction behavior\n\t\tconst libsqlTx = await this.client.transaction();\n\t\tconst session = new LibSQLSession<TFullSchema, TSchema>(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t\tlibsqlTx,\n\t\t);\n\t\tconst tx = new LibSQLTransaction<TFullSchema, TSchema>('async', this.dialect, session, this.schema);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait libsqlTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait libsqlTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n}\n\nexport class LibSQLTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLTransaction';\n\n\toverride async transaction<T>(transaction: (tx: LibSQLTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new LibSQLTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class LibSQLPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: ResultSet; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'LibSQLPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\t/** @internal */ public fields: SelectedFieldsOrdered | undefined,\n\t\tprivate tx: Transaction | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\t/** @internal */ public customResultMapper?: (\n\t\t\trows: unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<ResultSet> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\treturn this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, logger, query, tx, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapAllResult(rows));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as ResultSet).rows;\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn (rows as unknown[]).map((row) => normalizeRow(row));\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['all'];\n\t\t}\n\n\t\treturn (rows as unknown[]).map((row) => {\n\t\t\treturn mapResultRow(\n\t\t\t\tthis.fields!,\n\t\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\t\tthis.joinsNotNullableMap,\n\t\t\t);\n\t\t});\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, logger, query, tx, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapGetResult(rows));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn this.mapGetResult(rows);\n\t}\n\n\toverride mapGetResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as ResultSet).rows;\n\t\t}\n\n\t\tconst row = (rows as unknown[])[0];\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn normalizeRow(row);\n\t\t}\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(\n\t\t\tthis.fields!,\n\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\tthis.joinsNotNullableMap,\n\t\t);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\treturn (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows) as Promise<\n\t\t\tT['values']\n\t\t>;\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nfunction normalizeRow(obj: any) {\n\t// The libSQL node-sqlite3 compatibility wrapper returns rows\n\t// that can be accessed both as objects and arrays. Let's\n\t// turn them into objects what's what other SQLite drivers\n\t// do.\n\treturn Object.keys(obj).reduce((acc: Record<string, any>, key) => {\n\t\tif (Object.prototype.propertyIsEnumerable.call(obj, key)) {\n\t\t\tacc[key] = obj[key];\n\t\t}\n\t\treturn acc;\n\t}, {});\n}\n\nfunction normalizeFieldValue(value: unknown) {\n\tif (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { // eslint-disable-line no-instanceof/no-instanceof\n\t\tif (typeof Buffer !== 'undefined') {\n\t\t\tif (!(value instanceof Buffer)) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\treturn Buffer.from(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(value);\n\t\t}\n\t\tthrow new Error('TextDecoder is not available. Please provide either Buffer or TextDecoder polyfill.');\n\t}\n\treturn value;\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAG3B,SAAS,kBAA8B,WAAW;AAElD,SAAS,yBAAyB;AAOlC,SAAS,qBAAqB,qBAAqB;AACnD,SAAS,oBAAoB;AAQtB,MAAM,sBAGH,cAAwD;AAAA,EAKjE,YACS,QACR,SACQ,QACA,SACA,IACP;AACD,UAAM,OAAO;AANL;AAEA;AACA;AACA;AAGR,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;AAAA,EAChD;AAAA,EAbA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EAaR,aACC,OACA,QACA,eACA,uBACA,oBACyB;AACzB,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,MAAwE,SAAY;AACzF,UAAM,kBAAmC,CAAC;AAC1C,UAAM,eAA8B,CAAC;AAErC,eAAW,SAAS,SAAS;AAC5B,YAAM,gBAAgB,MAAM,SAAS;AACrC,YAAM,aAAa,cAAc,SAAS;AAC1C,sBAAgB,KAAK,aAAa;AAClC,mBAAa,KAAK,EAAE,KAAK,WAAW,KAAK,MAAM,WAAW,OAAiB,CAAC;AAAA,IAC7E;AAEA,UAAM,eAAe,MAAM,KAAK,OAAO,MAAM,YAAY;AACzD,WAAO,aAAa,IAAI,CAAC,QAAQ,MAAM,gBAAgB,CAAC,EAAG,UAAU,QAAQ,IAAI,CAAC;AAAA,EACnF;AAAA,EAEA,MAAM,QAA0E,SAAY;AAC3F,UAAM,kBAAmC,CAAC;AAC1C,UAAM,eAA8B,CAAC;AAErC,eAAW,SAAS,SAAS;AAC5B,YAAM,gBAAgB,MAAM,SAAS;AACrC,YAAM,aAAa,cAAc,SAAS;AAC1C,sBAAgB,KAAK,aAAa;AAClC,mBAAa,KAAK,EAAE,KAAK,WAAW,KAAK,MAAM,WAAW,OAAiB,CAAC;AAAA,IAC7E;AAEA,UAAM,eAAe,MAAM,KAAK,OAAO,QAAQ,YAAY;AAC3D,WAAO,aAAa,IAAI,CAAC,QAAQ,MAAM,gBAAgB,CAAC,EAAG,UAAU,QAAQ,IAAI,CAAC;AAAA,EACnF;AAAA,EAEA,MAAe,YACd,aACA,SACa;AAEb,UAAM,WAAW,MAAM,KAAK,OAAO,YAAY;AAC/C,UAAM,UAAU,IAAI;AAAA,MACnB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,IACD;AACA,UAAM,KAAK,IAAI,kBAAwC,SAAS,KAAK,SAAS,SAAS,KAAK,MAAM;AAClG,QAAI;AACH,YAAM,SAAS,MAAM,YAAY,EAAE;AACnC,YAAM,SAAS,OAAO;AACtB,aAAO;AAAA,IACR,SAAS,KAAK;AACb,YAAM,SAAS,SAAS;AACxB,YAAM;AAAA,IACP;AAAA,EACD;AAAA,EAES,kCAAkC,QAA0B;AACpE,WAAQ,OAAqB;AAAA,EAC9B;AAAA,EAES,kCAAkC,QAA0B;AACpE,WAAQ,OAAqB,KAAK,CAAC;AAAA,EACpC;AAAA,EAES,qCAAqC,QAA0B;AACvE,WAAQ,OAAqB;AAAA,EAC9B;AACD;AAEO,MAAM,0BAGH,kBAA4D;AAAA,EACrE,QAA0B,UAAU,IAAY;AAAA,EAEhD,MAAe,YAAe,aAAsF;AACnH,UAAM,gBAAgB,KAAK,KAAK,WAAW;AAC3C,UAAM,KAAK,IAAI,kBAAkB,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,KAAK,cAAc,CAAC;AACvG,UAAM,KAAK,QAAQ,IAAI,IAAI,IAAI,aAAa,aAAa,EAAE,CAAC;AAC5D,QAAI;AACH,YAAM,SAAS,MAAM,YAAY,EAAE;AACnC,YAAM,KAAK,QAAQ,IAAI,IAAI,IAAI,qBAAqB,aAAa,EAAE,CAAC;AACpE,aAAO;AAAA,IACR,SAAS,KAAK;AACb,YAAM,KAAK,QAAQ,IAAI,IAAI,IAAI,yBAAyB,aAAa,EAAE,CAAC;AACxE,YAAM;AAAA,IACP;AAAA,EACD;AACD;AAEO,MAAM,4BAAiF,oBAE5F;AAAA,EAGD,YACS,QACR,OACQ,QACgB,QAChB,IACR,eACQ,wBACgB,oBAIvB;AACD,UAAM,SAAS,eAAe,KAAK;AAZ3B;AAEA;AACgB;AAChB;AAEA;AACgB;AAMxB,SAAK,qBAAqB;AAC1B,SAAK,SAAS;AAAA,EACf;AAAA,EAlBA,QAA0B,UAAU,IAAY;AAAA,EAoBhD,IAAI,mBAAiE;AACpE,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,UAAM,OAAoB,EAAE,KAAK,KAAK,MAAM,KAAK,MAAM,OAAiB;AACxE,WAAO,KAAK,KAAK,KAAK,GAAG,QAAQ,IAAI,IAAI,KAAK,OAAO,QAAQ,IAAI;AAAA,EAClE;AAAA,EAEA,MAAM,IAAI,mBAAgE;AACzE,UAAM,EAAE,QAAQ,QAAQ,OAAO,IAAI,QAAQ,mBAAmB,IAAI;AAClE,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,YAAM,SAAS,iBAAiB,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AACrE,aAAO,SAAS,MAAM,KAAK,MAAM;AACjC,YAAM,OAAoB,EAAE,KAAK,MAAM,KAAK,MAAM,OAAiB;AACnE,cAAQ,KAAK,GAAG,QAAQ,IAAI,IAAI,OAAO,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE,MAAAA,MAAK,MAAM,KAAK,aAAaA,KAAI,CAAC;AAAA,IACjG;AAEA,UAAM,OAAO,MAAM,KAAK,OAAO,iBAAiB;AAEhD,WAAO,KAAK,aAAa,IAAI;AAAA,EAC9B;AAAA,EAES,aAAa,MAAe,aAAgC;AACpE,QAAI,aAAa;AAChB,aAAQ,KAAmB;AAAA,IAC5B;AAEA,QAAI,CAAC,KAAK,UAAU,CAAC,KAAK,oBAAoB;AAC7C,aAAQ,KAAmB,IAAI,CAAC,QAAQ,aAAa,GAAG,CAAC;AAAA,IAC1D;AAEA,QAAI,KAAK,oBAAoB;AAC5B,aAAO,KAAK,mBAAmB,MAAqB,mBAAmB;AAAA,IACxE;AAEA,WAAQ,KAAmB,IAAI,CAAC,QAAQ;AACvC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM,UAAU,MAAM,KAAK,GAAG,EAAE,IAAI,CAAC,MAAM,oBAAoB,CAAC,CAAC;AAAA,QACjE,KAAK;AAAA,MACN;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,IAAI,mBAAgE;AACzE,UAAM,EAAE,QAAQ,QAAQ,OAAO,IAAI,QAAQ,mBAAmB,IAAI;AAClE,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,YAAM,SAAS,iBAAiB,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AACrE,aAAO,SAAS,MAAM,KAAK,MAAM;AACjC,YAAM,OAAoB,EAAE,KAAK,MAAM,KAAK,MAAM,OAAiB;AACnE,cAAQ,KAAK,GAAG,QAAQ,IAAI,IAAI,OAAO,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE,MAAAA,MAAK,MAAM,KAAK,aAAaA,KAAI,CAAC;AAAA,IACjG;AAEA,UAAM,OAAO,MAAM,KAAK,OAAO,iBAAiB;AAEhD,WAAO,KAAK,aAAa,IAAI;AAAA,EAC9B;AAAA,EAES,aAAa,MAAe,aAAgC;AACpE,QAAI,aAAa;AAChB,aAAQ,KAAmB;AAAA,IAC5B;AAEA,UAAM,MAAO,KAAmB,CAAC;AAEjC,QAAI,CAAC,KAAK,UAAU,CAAC,KAAK,oBAAoB;AAC7C,aAAO,aAAa,GAAG;AAAA,IACxB;AAEA,QAAI,CAAC,KAAK;AACT,aAAO;AAAA,IACR;AAEA,QAAI,KAAK,oBAAoB;AAC5B,aAAO,KAAK,mBAAmB,MAAqB,mBAAmB;AAAA,IACxE;AAEA,WAAO;AAAA,MACN,KAAK;AAAA,MACL,MAAM,UAAU,MAAM,KAAK,GAAG,EAAE,IAAI,CAAC,MAAM,oBAAoB,CAAC,CAAC;AAAA,MACjE,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAEA,OAAO,mBAAmE;AACzE,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,UAAM,OAAoB,EAAE,KAAK,KAAK,MAAM,KAAK,MAAM,OAAiB;AACxE,YAAQ,KAAK,KAAK,KAAK,GAAG,QAAQ,IAAI,IAAI,KAAK,OAAO,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE,KAAK,MAAM,IAAI;AAAA,EAG7F;AAAA;AAAA,EAGA,wBAAiC;AAChC,WAAO,KAAK;AAAA,EACb;AACD;AAEA,SAAS,aAAa,KAAU;AAK/B,SAAO,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,KAA0B,QAAQ;AACjE,QAAI,OAAO,UAAU,qBAAqB,KAAK,KAAK,GAAG,GAAG;AACzD,UAAI,GAAG,IAAI,IAAI,GAAG;AAAA,IACnB;AACA,WAAO;AAAA,EACR,GAAG,CAAC,CAAC;AACN;AAEA,SAAS,oBAAoB,OAAgB;AAC5C,MAAI,OAAO,gBAAgB,eAAe,iBAAiB,aAAa;AACvE,QAAI,OAAO,WAAW,aAAa;AAClC,UAAI,EAAE,iBAAiB,SAAS;AAC/B,eAAO,OAAO,KAAK,KAAK;AAAA,MACzB;AACA,aAAO;AAAA,IACR;AACA,QAAI,OAAO,gBAAgB,aAAa;AACvC,aAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AAAA,IACtC;AACA,UAAM,IAAI,MAAM,qFAAqF;AAAA,EACtG;AACA,SAAO;AACR;","names":["rows"]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var alias_exports = {};
20
+ __export(alias_exports, {
21
+ alias: () => alias
22
+ });
23
+ module.exports = __toCommonJS(alias_exports);
24
+ var import_alias = require("../alias.cjs");
25
+ function alias(table, alias2) {
26
+ return new Proxy(table, new import_alias.TableAliasProxyHandler(alias2, false));
27
+ }
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ alias
31
+ });
32
+ //# sourceMappingURL=alias.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mssql-core/alias.ts"],"sourcesContent":["import { TableAliasProxyHandler } from '~/alias.ts';\nimport type { BuildAliasTable } from './query-builders/select.types.ts';\nimport type { MsSqlTable } from './table.ts';\nimport type { MsSqlViewBase } from './view-base.ts';\n\nexport function alias<TTable extends MsSqlTable | MsSqlViewBase, TAlias extends string>(\n\ttable: TTable,\n\talias: TAlias,\n): BuildAliasTable<TTable, TAlias> {\n\treturn new Proxy(table, new TableAliasProxyHandler(alias, false)) as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuC;AAKhC,SAAS,MACf,OACAA,QACkC;AAClC,SAAO,IAAI,MAAM,OAAO,IAAI,oCAAuBA,QAAO,KAAK,CAAC;AACjE;","names":["alias"]}
@@ -0,0 +1,4 @@
1
+ import type { BuildAliasTable } from "./query-builders/select.types.cjs";
2
+ import type { MsSqlTable } from "./table.cjs";
3
+ import type { MsSqlViewBase } from "./view-base.cjs";
4
+ export declare function alias<TTable extends MsSqlTable | MsSqlViewBase, TAlias extends string>(table: TTable, alias: TAlias): BuildAliasTable<TTable, TAlias>;
@@ -0,0 +1,4 @@
1
+ import type { BuildAliasTable } from "./query-builders/select.types.js";
2
+ import type { MsSqlTable } from "./table.js";
3
+ import type { MsSqlViewBase } from "./view-base.js";
4
+ export declare function alias<TTable extends MsSqlTable | MsSqlViewBase, TAlias extends string>(table: TTable, alias: TAlias): BuildAliasTable<TTable, TAlias>;
@@ -0,0 +1,8 @@
1
+ import { TableAliasProxyHandler } from "../alias.js";
2
+ function alias(table, alias2) {
3
+ return new Proxy(table, new TableAliasProxyHandler(alias2, false));
4
+ }
5
+ export {
6
+ alias
7
+ };
8
+ //# sourceMappingURL=alias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mssql-core/alias.ts"],"sourcesContent":["import { TableAliasProxyHandler } from '~/alias.ts';\nimport type { BuildAliasTable } from './query-builders/select.types.ts';\nimport type { MsSqlTable } from './table.ts';\nimport type { MsSqlViewBase } from './view-base.ts';\n\nexport function alias<TTable extends MsSqlTable | MsSqlViewBase, TAlias extends string>(\n\ttable: TTable,\n\talias: TAlias,\n): BuildAliasTable<TTable, TAlias> {\n\treturn new Proxy(table, new TableAliasProxyHandler(alias, false)) as any;\n}\n"],"mappings":"AAAA,SAAS,8BAA8B;AAKhC,SAAS,MACf,OACAA,QACkC;AAClC,SAAO,IAAI,MAAM,OAAO,IAAI,uBAAuBA,QAAO,KAAK,CAAC;AACjE;","names":["alias"]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var checks_exports = {};
20
+ __export(checks_exports, {
21
+ Check: () => Check,
22
+ CheckBuilder: () => CheckBuilder,
23
+ check: () => check
24
+ });
25
+ module.exports = __toCommonJS(checks_exports);
26
+ var import_entity = require("../entity.cjs");
27
+ class CheckBuilder {
28
+ constructor(name, value) {
29
+ this.name = name;
30
+ this.value = value;
31
+ }
32
+ static [import_entity.entityKind] = "MsSqlCheckBuilder";
33
+ brand;
34
+ /** @internal */
35
+ build(table) {
36
+ return new Check(table, this);
37
+ }
38
+ }
39
+ class Check {
40
+ constructor(table, builder) {
41
+ this.table = table;
42
+ this.name = builder.name;
43
+ this.value = builder.value;
44
+ }
45
+ static [import_entity.entityKind] = "MsSqlCheck";
46
+ name;
47
+ value;
48
+ }
49
+ function check(name, value) {
50
+ return new CheckBuilder(name, value);
51
+ }
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ Check,
55
+ CheckBuilder,
56
+ check
57
+ });
58
+ //# sourceMappingURL=checks.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mssql-core/checks.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { MsSqlTable } from './table.ts';\n\nexport class CheckBuilder {\n\tstatic readonly [entityKind]: string = 'MsSqlCheckBuilder';\n\n\tprotected brand!: 'MsSqlConstraintBuilder';\n\n\tconstructor(public name: string, public value: SQL) {}\n\n\t/** @internal */\n\tbuild(table: MsSqlTable): Check {\n\t\treturn new Check(table, this);\n\t}\n}\n\nexport class Check {\n\tstatic readonly [entityKind]: string = 'MsSqlCheck';\n\n\treadonly name: string;\n\treadonly value: SQL;\n\n\tconstructor(public table: MsSqlTable, builder: CheckBuilder) {\n\t\tthis.name = builder.name;\n\t\tthis.value = builder.value;\n\t}\n}\n\nexport function check(name: string, value: SQL): CheckBuilder {\n\treturn new CheckBuilder(name, value);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAIpB,MAAM,aAAa;AAAA,EAKzB,YAAmB,MAAqB,OAAY;AAAjC;AAAqB;AAAA,EAAa;AAAA,EAJrD,QAAiB,wBAAU,IAAY;AAAA,EAE7B;AAAA;AAAA,EAKV,MAAM,OAA0B;AAC/B,WAAO,IAAI,MAAM,OAAO,IAAI;AAAA,EAC7B;AACD;AAEO,MAAM,MAAM;AAAA,EAMlB,YAAmB,OAAmB,SAAuB;AAA1C;AAClB,SAAK,OAAO,QAAQ;AACpB,SAAK,QAAQ,QAAQ;AAAA,EACtB;AAAA,EARA,QAAiB,wBAAU,IAAY;AAAA,EAE9B;AAAA,EACA;AAMV;AAEO,SAAS,MAAM,MAAc,OAA0B;AAC7D,SAAO,IAAI,aAAa,MAAM,KAAK;AACpC;","names":[]}
@@ -0,0 +1,18 @@
1
+ import { entityKind } from "../entity.cjs";
2
+ import type { SQL } from "../sql/sql.cjs";
3
+ import type { MsSqlTable } from "./table.cjs";
4
+ export declare class CheckBuilder {
5
+ name: string;
6
+ value: SQL;
7
+ static readonly [entityKind]: string;
8
+ protected brand: 'MsSqlConstraintBuilder';
9
+ constructor(name: string, value: SQL);
10
+ }
11
+ export declare class Check {
12
+ table: MsSqlTable;
13
+ static readonly [entityKind]: string;
14
+ readonly name: string;
15
+ readonly value: SQL;
16
+ constructor(table: MsSqlTable, builder: CheckBuilder);
17
+ }
18
+ export declare function check(name: string, value: SQL): CheckBuilder;
@@ -0,0 +1,18 @@
1
+ import { entityKind } from "../entity.js";
2
+ import type { SQL } from "../sql/sql.js";
3
+ import type { MsSqlTable } from "./table.js";
4
+ export declare class CheckBuilder {
5
+ name: string;
6
+ value: SQL;
7
+ static readonly [entityKind]: string;
8
+ protected brand: 'MsSqlConstraintBuilder';
9
+ constructor(name: string, value: SQL);
10
+ }
11
+ export declare class Check {
12
+ table: MsSqlTable;
13
+ static readonly [entityKind]: string;
14
+ readonly name: string;
15
+ readonly value: SQL;
16
+ constructor(table: MsSqlTable, builder: CheckBuilder);
17
+ }
18
+ export declare function check(name: string, value: SQL): CheckBuilder;