drizzle-orm 1.0.0-beta.22-eaa25cd → 1.0.0-beta.22-46020ee

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 (431) hide show
  1. package/aws-data-api/common/index.d.cts +1 -1
  2. package/aws-data-api/common/index.d.ts +1 -1
  3. package/aws-data-api/pg/codecs.cjs +162 -0
  4. package/aws-data-api/pg/codecs.cjs.map +1 -0
  5. package/aws-data-api/pg/codecs.d.cts +9 -0
  6. package/aws-data-api/pg/codecs.d.ts +9 -0
  7. package/aws-data-api/pg/codecs.js +160 -0
  8. package/aws-data-api/pg/codecs.js.map +1 -0
  9. package/aws-data-api/pg/driver.cjs +4 -157
  10. package/aws-data-api/pg/driver.cjs.map +1 -1
  11. package/aws-data-api/pg/driver.d.cts +1 -5
  12. package/aws-data-api/pg/driver.d.ts +1 -5
  13. package/aws-data-api/pg/driver.js +4 -156
  14. package/aws-data-api/pg/driver.js.map +1 -1
  15. package/aws-data-api/pg/index.cjs +2 -1
  16. package/aws-data-api/pg/index.d.cts +2 -1
  17. package/aws-data-api/pg/index.d.ts +2 -1
  18. package/aws-data-api/pg/index.js +2 -1
  19. package/better-sqlite3/driver.cjs +2 -1
  20. package/better-sqlite3/driver.cjs.map +1 -1
  21. package/better-sqlite3/driver.js +2 -1
  22. package/better-sqlite3/driver.js.map +1 -1
  23. package/better-sqlite3/session.cjs +8 -8
  24. package/better-sqlite3/session.cjs.map +1 -1
  25. package/better-sqlite3/session.d.cts +3 -3
  26. package/better-sqlite3/session.d.ts +3 -3
  27. package/better-sqlite3/session.js +8 -8
  28. package/better-sqlite3/session.js.map +1 -1
  29. package/bun-sql/mysql/driver.cjs +2 -1
  30. package/bun-sql/mysql/driver.cjs.map +1 -1
  31. package/bun-sql/mysql/driver.js +2 -1
  32. package/bun-sql/mysql/driver.js.map +1 -1
  33. package/bun-sql/mysql/session.cjs +8 -8
  34. package/bun-sql/mysql/session.cjs.map +1 -1
  35. package/bun-sql/mysql/session.d.cts +3 -3
  36. package/bun-sql/mysql/session.d.ts +3 -3
  37. package/bun-sql/mysql/session.js +8 -8
  38. package/bun-sql/mysql/session.js.map +1 -1
  39. package/bun-sql/postgres/codecs.cjs +176 -0
  40. package/bun-sql/postgres/codecs.cjs.map +1 -0
  41. package/bun-sql/postgres/codecs.d.cts +9 -0
  42. package/bun-sql/postgres/codecs.d.ts +9 -0
  43. package/bun-sql/postgres/codecs.js +174 -0
  44. package/bun-sql/postgres/codecs.js.map +1 -0
  45. package/bun-sql/postgres/driver.cjs +4 -171
  46. package/bun-sql/postgres/driver.cjs.map +1 -1
  47. package/bun-sql/postgres/driver.d.cts +1 -5
  48. package/bun-sql/postgres/driver.d.ts +1 -5
  49. package/bun-sql/postgres/driver.js +4 -170
  50. package/bun-sql/postgres/driver.js.map +1 -1
  51. package/bun-sql/postgres/index.cjs +2 -1
  52. package/bun-sql/postgres/index.d.cts +2 -1
  53. package/bun-sql/postgres/index.d.ts +2 -1
  54. package/bun-sql/postgres/index.js +2 -1
  55. package/bun-sql/sqlite/driver.cjs +2 -1
  56. package/bun-sql/sqlite/driver.cjs.map +1 -1
  57. package/bun-sql/sqlite/driver.js +2 -1
  58. package/bun-sql/sqlite/driver.js.map +1 -1
  59. package/bun-sql/sqlite/session.cjs +8 -8
  60. package/bun-sql/sqlite/session.cjs.map +1 -1
  61. package/bun-sql/sqlite/session.d.cts +3 -3
  62. package/bun-sql/sqlite/session.d.ts +3 -3
  63. package/bun-sql/sqlite/session.js +8 -8
  64. package/bun-sql/sqlite/session.js.map +1 -1
  65. package/bun-sqlite/driver.cjs +2 -1
  66. package/bun-sqlite/driver.cjs.map +1 -1
  67. package/bun-sqlite/driver.js +2 -1
  68. package/bun-sqlite/driver.js.map +1 -1
  69. package/bun-sqlite/session.cjs +8 -8
  70. package/bun-sqlite/session.cjs.map +1 -1
  71. package/bun-sqlite/session.d.cts +3 -3
  72. package/bun-sqlite/session.d.ts +3 -3
  73. package/bun-sqlite/session.js +8 -8
  74. package/bun-sqlite/session.js.map +1 -1
  75. package/cockroach/driver.cjs +3 -2
  76. package/cockroach/driver.cjs.map +1 -1
  77. package/cockroach/driver.d.cts +1 -1
  78. package/cockroach/driver.d.ts +1 -1
  79. package/cockroach/driver.js +3 -2
  80. package/cockroach/driver.js.map +1 -1
  81. package/cockroach/session.cjs +4 -4
  82. package/cockroach/session.cjs.map +1 -1
  83. package/cockroach/session.d.cts +3 -3
  84. package/cockroach/session.d.ts +3 -3
  85. package/cockroach/session.js +4 -4
  86. package/cockroach/session.js.map +1 -1
  87. package/durable-sqlite/driver.cjs +2 -1
  88. package/durable-sqlite/driver.cjs.map +1 -1
  89. package/durable-sqlite/driver.js +2 -1
  90. package/durable-sqlite/driver.js.map +1 -1
  91. package/durable-sqlite/session.cjs +8 -8
  92. package/durable-sqlite/session.cjs.map +1 -1
  93. package/durable-sqlite/session.d.cts +3 -3
  94. package/durable-sqlite/session.d.ts +3 -3
  95. package/durable-sqlite/session.js +8 -8
  96. package/durable-sqlite/session.js.map +1 -1
  97. package/effect-postgres/codecs.cjs +175 -0
  98. package/effect-postgres/codecs.cjs.map +1 -0
  99. package/effect-postgres/codecs.d.cts +9 -0
  100. package/effect-postgres/codecs.d.ts +9 -0
  101. package/effect-postgres/codecs.js +173 -0
  102. package/effect-postgres/codecs.js.map +1 -0
  103. package/effect-postgres/driver.cjs +5 -171
  104. package/effect-postgres/driver.cjs.map +1 -1
  105. package/effect-postgres/driver.d.cts +3 -7
  106. package/effect-postgres/driver.d.ts +3 -7
  107. package/effect-postgres/driver.js +5 -170
  108. package/effect-postgres/driver.js.map +1 -1
  109. package/effect-postgres/index.cjs +2 -1
  110. package/effect-postgres/index.d.cts +2 -1
  111. package/effect-postgres/index.d.ts +2 -1
  112. package/effect-postgres/index.js +2 -1
  113. package/effect-postgres/migrator.d.cts +1 -1
  114. package/effect-postgres/migrator.d.ts +1 -1
  115. package/effect-postgres/session.cjs.map +1 -1
  116. package/effect-postgres/session.d.cts +1 -1
  117. package/effect-postgres/session.d.ts +1 -1
  118. package/effect-postgres/session.js.map +1 -1
  119. package/expo-sqlite/driver.cjs +2 -1
  120. package/expo-sqlite/driver.cjs.map +1 -1
  121. package/expo-sqlite/driver.js +2 -1
  122. package/expo-sqlite/driver.js.map +1 -1
  123. package/expo-sqlite/session.cjs +8 -8
  124. package/expo-sqlite/session.cjs.map +1 -1
  125. package/expo-sqlite/session.d.cts +3 -3
  126. package/expo-sqlite/session.d.ts +3 -3
  127. package/expo-sqlite/session.js +8 -8
  128. package/expo-sqlite/session.js.map +1 -1
  129. package/index.cjs +1 -0
  130. package/index.js +2 -2
  131. package/libsql/driver-core.cjs +2 -1
  132. package/libsql/driver-core.cjs.map +1 -1
  133. package/libsql/driver-core.js +2 -1
  134. package/libsql/driver-core.js.map +1 -1
  135. package/libsql/session.cjs +8 -8
  136. package/libsql/session.cjs.map +1 -1
  137. package/libsql/session.d.cts +3 -3
  138. package/libsql/session.d.ts +3 -3
  139. package/libsql/session.js +8 -8
  140. package/libsql/session.js.map +1 -1
  141. package/mysql-proxy/driver.cjs +2 -1
  142. package/mysql-proxy/driver.cjs.map +1 -1
  143. package/mysql-proxy/driver.js +2 -1
  144. package/mysql-proxy/driver.js.map +1 -1
  145. package/mysql-proxy/session.cjs +6 -6
  146. package/mysql-proxy/session.cjs.map +1 -1
  147. package/mysql-proxy/session.d.cts +3 -3
  148. package/mysql-proxy/session.d.ts +3 -3
  149. package/mysql-proxy/session.js +6 -6
  150. package/mysql-proxy/session.js.map +1 -1
  151. package/mysql2/driver.cjs +2 -1
  152. package/mysql2/driver.cjs.map +1 -1
  153. package/mysql2/driver.d.cts +1 -1
  154. package/mysql2/driver.d.ts +1 -1
  155. package/mysql2/driver.js +2 -1
  156. package/mysql2/driver.js.map +1 -1
  157. package/mysql2/session.cjs +7 -7
  158. package/mysql2/session.cjs.map +1 -1
  159. package/mysql2/session.d.cts +3 -3
  160. package/mysql2/session.d.ts +3 -3
  161. package/mysql2/session.js +7 -7
  162. package/mysql2/session.js.map +1 -1
  163. package/neon-http/codecs.cjs +66 -0
  164. package/neon-http/codecs.cjs.map +1 -0
  165. package/neon-http/codecs.d.cts +9 -0
  166. package/neon-http/codecs.d.ts +9 -0
  167. package/neon-http/codecs.js +64 -0
  168. package/neon-http/codecs.js.map +1 -0
  169. package/neon-http/driver.cjs +4 -61
  170. package/neon-http/driver.cjs.map +1 -1
  171. package/neon-http/driver.d.cts +1 -5
  172. package/neon-http/driver.d.ts +1 -5
  173. package/neon-http/driver.js +4 -60
  174. package/neon-http/driver.js.map +1 -1
  175. package/neon-http/index.cjs +2 -1
  176. package/neon-http/index.d.cts +2 -1
  177. package/neon-http/index.d.ts +2 -1
  178. package/neon-http/index.js +2 -1
  179. package/neon-serverless/codecs.cjs +65 -0
  180. package/neon-serverless/codecs.cjs.map +1 -0
  181. package/neon-serverless/codecs.d.cts +9 -0
  182. package/neon-serverless/codecs.d.ts +9 -0
  183. package/neon-serverless/codecs.js +63 -0
  184. package/neon-serverless/codecs.js.map +1 -0
  185. package/neon-serverless/driver.cjs +4 -60
  186. package/neon-serverless/driver.cjs.map +1 -1
  187. package/neon-serverless/driver.d.cts +2 -6
  188. package/neon-serverless/driver.d.ts +2 -6
  189. package/neon-serverless/driver.js +4 -59
  190. package/neon-serverless/driver.js.map +1 -1
  191. package/neon-serverless/index.cjs +2 -1
  192. package/neon-serverless/index.d.cts +2 -1
  193. package/neon-serverless/index.d.ts +2 -1
  194. package/neon-serverless/index.js +2 -1
  195. package/netlify-db/codecs.cjs +122 -0
  196. package/netlify-db/codecs.cjs.map +1 -0
  197. package/netlify-db/codecs.d.cts +10 -0
  198. package/netlify-db/codecs.d.ts +10 -0
  199. package/netlify-db/codecs.js +119 -0
  200. package/netlify-db/codecs.js.map +1 -0
  201. package/netlify-db/driver.cjs +4 -118
  202. package/netlify-db/driver.cjs.map +1 -1
  203. package/netlify-db/driver.d.cts +1 -6
  204. package/netlify-db/driver.d.ts +1 -6
  205. package/netlify-db/driver.js +4 -116
  206. package/netlify-db/driver.js.map +1 -1
  207. package/netlify-db/index.cjs +3 -2
  208. package/netlify-db/index.d.cts +2 -1
  209. package/netlify-db/index.d.ts +2 -1
  210. package/netlify-db/index.js +2 -1
  211. package/netlify-db/session.d.ts +1 -1
  212. package/node-mssql/driver.cjs +3 -2
  213. package/node-mssql/driver.cjs.map +1 -1
  214. package/node-mssql/driver.d.cts +1 -1
  215. package/node-mssql/driver.d.ts +1 -1
  216. package/node-mssql/driver.js +3 -2
  217. package/node-mssql/driver.js.map +1 -1
  218. package/node-mssql/session.cjs +5 -5
  219. package/node-mssql/session.cjs.map +1 -1
  220. package/node-mssql/session.d.cts +3 -3
  221. package/node-mssql/session.d.ts +3 -3
  222. package/node-mssql/session.js +5 -5
  223. package/node-mssql/session.js.map +1 -1
  224. package/node-postgres/codecs.cjs +65 -0
  225. package/node-postgres/codecs.cjs.map +1 -0
  226. package/node-postgres/codecs.d.cts +9 -0
  227. package/node-postgres/codecs.d.ts +9 -0
  228. package/node-postgres/codecs.js +63 -0
  229. package/node-postgres/codecs.js.map +1 -0
  230. package/node-postgres/driver.cjs +4 -60
  231. package/node-postgres/driver.cjs.map +1 -1
  232. package/node-postgres/driver.d.cts +1 -5
  233. package/node-postgres/driver.d.ts +1 -5
  234. package/node-postgres/driver.js +4 -59
  235. package/node-postgres/driver.js.map +1 -1
  236. package/node-postgres/index.cjs +2 -1
  237. package/node-postgres/index.d.cts +2 -1
  238. package/node-postgres/index.d.ts +2 -1
  239. package/node-postgres/index.js +2 -1
  240. package/node-sqlite/driver.cjs +5 -1
  241. package/node-sqlite/driver.cjs.map +1 -1
  242. package/node-sqlite/driver.js +5 -1
  243. package/node-sqlite/driver.js.map +1 -1
  244. package/node-sqlite/session.cjs +14 -8
  245. package/node-sqlite/session.cjs.map +1 -1
  246. package/node-sqlite/session.d.cts +8 -3
  247. package/node-sqlite/session.d.ts +8 -3
  248. package/node-sqlite/session.js +15 -9
  249. package/node-sqlite/session.js.map +1 -1
  250. package/op-sqlite/driver.cjs +2 -1
  251. package/op-sqlite/driver.cjs.map +1 -1
  252. package/op-sqlite/driver.js +2 -1
  253. package/op-sqlite/driver.js.map +1 -1
  254. package/op-sqlite/session.cjs +8 -8
  255. package/op-sqlite/session.cjs.map +1 -1
  256. package/op-sqlite/session.d.cts +3 -3
  257. package/op-sqlite/session.d.ts +3 -3
  258. package/op-sqlite/session.js +8 -8
  259. package/op-sqlite/session.js.map +1 -1
  260. package/package.json +133 -1
  261. package/pg-core/effect/session.d.cts +1 -1
  262. package/pg-core/effect/session.d.ts +1 -1
  263. package/pg-proxy/driver.cjs +4 -4
  264. package/pg-proxy/driver.cjs.map +1 -1
  265. package/pg-proxy/driver.d.ts +1 -1
  266. package/pg-proxy/driver.js +4 -4
  267. package/pg-proxy/driver.js.map +1 -1
  268. package/pg-proxy/session.cjs.map +1 -1
  269. package/pg-proxy/session.d.cts +0 -1
  270. package/pg-proxy/session.d.ts +0 -1
  271. package/pg-proxy/session.js.map +1 -1
  272. package/pglite/codecs.cjs +92 -0
  273. package/pglite/codecs.cjs.map +1 -0
  274. package/pglite/codecs.d.cts +9 -0
  275. package/pglite/codecs.d.ts +9 -0
  276. package/pglite/codecs.js +90 -0
  277. package/pglite/codecs.js.map +1 -0
  278. package/pglite/driver.cjs +3 -86
  279. package/pglite/driver.cjs.map +1 -1
  280. package/pglite/driver.d.cts +1 -5
  281. package/pglite/driver.d.ts +1 -5
  282. package/pglite/driver.js +4 -86
  283. package/pglite/driver.js.map +1 -1
  284. package/pglite/index.cjs +2 -1
  285. package/pglite/index.d.cts +2 -1
  286. package/pglite/index.d.ts +2 -1
  287. package/pglite/index.js +2 -1
  288. package/planetscale-serverless/driver.cjs +2 -1
  289. package/planetscale-serverless/driver.cjs.map +1 -1
  290. package/planetscale-serverless/driver.d.cts +1 -1
  291. package/planetscale-serverless/driver.d.ts +1 -1
  292. package/planetscale-serverless/driver.js +2 -1
  293. package/planetscale-serverless/driver.js.map +1 -1
  294. package/planetscale-serverless/session.cjs +6 -6
  295. package/planetscale-serverless/session.cjs.map +1 -1
  296. package/planetscale-serverless/session.d.cts +3 -3
  297. package/planetscale-serverless/session.d.ts +3 -3
  298. package/planetscale-serverless/session.js +6 -6
  299. package/planetscale-serverless/session.js.map +1 -1
  300. package/postgres-js/codecs.cjs +147 -0
  301. package/postgres-js/codecs.cjs.map +1 -0
  302. package/postgres-js/codecs.d.cts +9 -0
  303. package/postgres-js/codecs.d.ts +9 -0
  304. package/postgres-js/codecs.js +145 -0
  305. package/postgres-js/codecs.js.map +1 -0
  306. package/postgres-js/driver.cjs +4 -142
  307. package/postgres-js/driver.cjs.map +1 -1
  308. package/postgres-js/driver.d.cts +1 -5
  309. package/postgres-js/driver.d.ts +1 -5
  310. package/postgres-js/driver.js +4 -141
  311. package/postgres-js/driver.js.map +1 -1
  312. package/postgres-js/index.cjs +2 -1
  313. package/postgres-js/index.d.cts +2 -1
  314. package/postgres-js/index.d.ts +2 -1
  315. package/postgres-js/index.js +2 -1
  316. package/singlestore/driver.cjs +3 -2
  317. package/singlestore/driver.cjs.map +1 -1
  318. package/singlestore/driver.d.cts +1 -1
  319. package/singlestore/driver.d.ts +1 -1
  320. package/singlestore/driver.js +3 -2
  321. package/singlestore/driver.js.map +1 -1
  322. package/singlestore/session.cjs +7 -7
  323. package/singlestore/session.cjs.map +1 -1
  324. package/singlestore/session.d.cts +3 -3
  325. package/singlestore/session.d.ts +3 -3
  326. package/singlestore/session.js +7 -7
  327. package/singlestore/session.js.map +1 -1
  328. package/singlestore-proxy/driver.cjs +2 -1
  329. package/singlestore-proxy/driver.cjs.map +1 -1
  330. package/singlestore-proxy/driver.js +2 -1
  331. package/singlestore-proxy/driver.js.map +1 -1
  332. package/singlestore-proxy/session.cjs +6 -6
  333. package/singlestore-proxy/session.cjs.map +1 -1
  334. package/singlestore-proxy/session.d.cts +3 -3
  335. package/singlestore-proxy/session.d.ts +3 -3
  336. package/singlestore-proxy/session.js +6 -6
  337. package/singlestore-proxy/session.js.map +1 -1
  338. package/sql-js/driver.cjs +2 -1
  339. package/sql-js/driver.cjs.map +1 -1
  340. package/sql-js/driver.js +2 -1
  341. package/sql-js/driver.js.map +1 -1
  342. package/sql-js/session.cjs +8 -8
  343. package/sql-js/session.cjs.map +1 -1
  344. package/sql-js/session.d.cts +3 -3
  345. package/sql-js/session.d.ts +3 -3
  346. package/sql-js/session.js +8 -8
  347. package/sql-js/session.js.map +1 -1
  348. package/sqlite-cloud/driver.cjs +2 -1
  349. package/sqlite-cloud/driver.cjs.map +1 -1
  350. package/sqlite-cloud/driver.js +2 -1
  351. package/sqlite-cloud/driver.js.map +1 -1
  352. package/sqlite-cloud/session.cjs +8 -8
  353. package/sqlite-cloud/session.cjs.map +1 -1
  354. package/sqlite-cloud/session.d.cts +3 -3
  355. package/sqlite-cloud/session.d.ts +3 -3
  356. package/sqlite-cloud/session.js +8 -8
  357. package/sqlite-cloud/session.js.map +1 -1
  358. package/sqlite-proxy/driver.cjs +2 -1
  359. package/sqlite-proxy/driver.cjs.map +1 -1
  360. package/sqlite-proxy/driver.js +2 -1
  361. package/sqlite-proxy/driver.js.map +1 -1
  362. package/sqlite-proxy/session.cjs +8 -8
  363. package/sqlite-proxy/session.cjs.map +1 -1
  364. package/sqlite-proxy/session.d.cts +3 -3
  365. package/sqlite-proxy/session.d.ts +3 -3
  366. package/sqlite-proxy/session.js +8 -8
  367. package/sqlite-proxy/session.js.map +1 -1
  368. package/tidb-serverless/driver.cjs +2 -1
  369. package/tidb-serverless/driver.cjs.map +1 -1
  370. package/tidb-serverless/driver.d.cts +1 -1
  371. package/tidb-serverless/driver.d.ts +1 -1
  372. package/tidb-serverless/driver.js +2 -1
  373. package/tidb-serverless/driver.js.map +1 -1
  374. package/tidb-serverless/session.cjs +6 -6
  375. package/tidb-serverless/session.cjs.map +1 -1
  376. package/tidb-serverless/session.d.cts +3 -3
  377. package/tidb-serverless/session.d.ts +3 -3
  378. package/tidb-serverless/session.js +6 -6
  379. package/tidb-serverless/session.js.map +1 -1
  380. package/tursodatabase/driver-core.cjs +2 -1
  381. package/tursodatabase/driver-core.cjs.map +1 -1
  382. package/tursodatabase/driver-core.js +2 -1
  383. package/tursodatabase/driver-core.js.map +1 -1
  384. package/tursodatabase/session.cjs +8 -8
  385. package/tursodatabase/session.cjs.map +1 -1
  386. package/tursodatabase/session.d.cts +3 -3
  387. package/tursodatabase/session.d.ts +3 -3
  388. package/tursodatabase/session.js +8 -8
  389. package/tursodatabase/session.js.map +1 -1
  390. package/utils.cjs +17 -0
  391. package/utils.cjs.map +1 -1
  392. package/utils.js +17 -1
  393. package/utils.js.map +1 -1
  394. package/vercel-postgres/codecs.cjs +65 -0
  395. package/vercel-postgres/codecs.cjs.map +1 -0
  396. package/vercel-postgres/codecs.d.cts +9 -0
  397. package/vercel-postgres/codecs.d.ts +9 -0
  398. package/vercel-postgres/codecs.js +63 -0
  399. package/vercel-postgres/codecs.js.map +1 -0
  400. package/vercel-postgres/driver.cjs +3 -60
  401. package/vercel-postgres/driver.cjs.map +1 -1
  402. package/vercel-postgres/driver.d.cts +1 -5
  403. package/vercel-postgres/driver.d.ts +1 -5
  404. package/vercel-postgres/driver.js +4 -60
  405. package/vercel-postgres/driver.js.map +1 -1
  406. package/vercel-postgres/index.cjs +2 -1
  407. package/vercel-postgres/index.d.cts +2 -1
  408. package/vercel-postgres/index.d.ts +2 -1
  409. package/vercel-postgres/index.js +2 -1
  410. package/version.cjs +1 -1
  411. package/version.cjs.map +1 -1
  412. package/version.d.cts +1 -1
  413. package/version.d.ts +1 -1
  414. package/version.js +1 -1
  415. package/version.js.map +1 -1
  416. package/xata-http/codecs.cjs +168 -0
  417. package/xata-http/codecs.cjs.map +1 -0
  418. package/xata-http/codecs.d.cts +9 -0
  419. package/xata-http/codecs.d.ts +9 -0
  420. package/xata-http/codecs.js +166 -0
  421. package/xata-http/codecs.js.map +1 -0
  422. package/xata-http/driver.cjs +4 -163
  423. package/xata-http/driver.cjs.map +1 -1
  424. package/xata-http/driver.d.cts +1 -5
  425. package/xata-http/driver.d.ts +1 -5
  426. package/xata-http/driver.js +4 -162
  427. package/xata-http/driver.js.map +1 -1
  428. package/xata-http/index.cjs +2 -1
  429. package/xata-http/index.d.cts +2 -1
  430. package/xata-http/index.d.ts +2 -1
  431. package/xata-http/index.js +2 -1
@@ -1,12 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
+ const require_netlify_db_codecs = require('./codecs.cjs');
3
4
  const require_netlify_db_session = require('./session.cjs');
4
5
  let __entity_ts = require("../entity.cjs");
5
6
  let __utils_ts = require("../utils.cjs");
6
7
  let __logger_ts = require("../logger.cjs");
7
- let __pg_core_array_ts = require("../pg-core/array.cjs");
8
8
  let __pg_core_async_db_ts = require("../pg-core/async/db.cjs");
9
- let __pg_core_codecs_ts = require("../pg-core/codecs.cjs");
10
9
  let __pg_core_dialect_ts = require("../pg-core/dialect.cjs");
11
10
  let _neondatabase_serverless = require("@neondatabase/serverless");
12
11
  let __node_postgres_driver_ts = require("../node-postgres/driver.cjs");
@@ -25,121 +24,10 @@ var NetlifyDbDatabase = class NetlifyDbDatabase extends __pg_core_async_db_ts.Pg
25
24
  return this.session.batch(batch);
26
25
  }
27
26
  };
28
- const netlifyDbCodecs = (0, __pg_core_codecs_ts.refineGenericPgCodecs)({
29
- bigint: {
30
- normalize: BigInt,
31
- normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(BigInt)
32
- },
33
- bigserial: {
34
- normalize: BigInt,
35
- normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(BigInt)
36
- },
37
- bit: { normalizeArray: __pg_core_array_ts.parsePgArray },
38
- bytea: { normalizeParam: String },
39
- date: {
40
- castArray: __pg_core_codecs_ts.castToTextArr,
41
- normalize: __pg_core_codecs_ts.textToDate,
42
- normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(__pg_core_codecs_ts.textToDate)
43
- },
44
- "date:string": { castArray: __pg_core_codecs_ts.castToTextArr },
45
- timestamp: {
46
- castArray: __pg_core_codecs_ts.castToTextArr,
47
- normalize: __pg_core_codecs_ts.textToDateWithTz,
48
- normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(__pg_core_codecs_ts.textToDateWithTz)
49
- },
50
- timestamptz: {
51
- castArray: __pg_core_codecs_ts.castToTextArr,
52
- normalize: __pg_core_codecs_ts.textToDate,
53
- normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(__pg_core_codecs_ts.textToDate)
54
- },
55
- "timestamp:string": { castArray: __pg_core_codecs_ts.castToTextArr },
56
- "timestamptz:string": { castArray: __pg_core_codecs_ts.castToTextArr },
57
- geometry: { normalizeArray: (0, __pg_core_codecs_ts.parsePgArrayAndNormalize)(__pg_core_codecs_ts.parseGeometryXY) },
58
- "geometry:tuple": { normalizeArray: (0, __pg_core_codecs_ts.parsePgArrayAndNormalize)(__pg_core_codecs_ts.parseGeometryTuple) },
59
- interval: { castArray: __pg_core_codecs_ts.castToTextArr },
60
- json: { normalizeParam: (v) => JSON.stringify(v) },
61
- jsonb: { normalizeParam: (v) => JSON.stringify(v) },
62
- line: {
63
- cast: __pg_core_codecs_ts.castToText,
64
- castArray: __pg_core_codecs_ts.castToTextArr
65
- },
66
- "line:tuple": {
67
- cast: __pg_core_codecs_ts.castToText,
68
- castArray: __pg_core_codecs_ts.castToTextArr
69
- },
70
- macaddr8: {
71
- castArrayInJson: __pg_core_codecs_ts.castToTextArr,
72
- castArray: __pg_core_codecs_ts.castToTextArr
73
- },
74
- point: {
75
- cast: __pg_core_codecs_ts.castToText,
76
- castArray: __pg_core_codecs_ts.castToTextArr
77
- },
78
- "point:tuple": {
79
- cast: __pg_core_codecs_ts.castToText,
80
- castArray: __pg_core_codecs_ts.castToTextArr
81
- },
82
- sparsevec: { normalizeArray: __pg_core_array_ts.parsePgArray }
83
- });
84
- const netlifyDbTransactionCodecs = (0, __pg_core_codecs_ts.refineGenericPgCodecs)({
85
- bigint: {
86
- normalize: BigInt,
87
- normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(BigInt)
88
- },
89
- bigserial: {
90
- normalize: BigInt,
91
- normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(BigInt)
92
- },
93
- bit: { normalizeArray: __pg_core_array_ts.parsePgArray },
94
- date: {
95
- castArray: __pg_core_codecs_ts.castToTextArr,
96
- normalize: __pg_core_codecs_ts.textToDate,
97
- normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(__pg_core_codecs_ts.textToDate)
98
- },
99
- "date:string": { castArray: __pg_core_codecs_ts.castToTextArr },
100
- timestamp: {
101
- castArray: __pg_core_codecs_ts.castToTextArr,
102
- normalize: __pg_core_codecs_ts.textToDateWithTz,
103
- normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(__pg_core_codecs_ts.textToDateWithTz)
104
- },
105
- timestamptz: {
106
- castArray: __pg_core_codecs_ts.castToTextArr,
107
- normalize: __pg_core_codecs_ts.textToDate,
108
- normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(__pg_core_codecs_ts.textToDate)
109
- },
110
- "timestamp:string": { castArray: __pg_core_codecs_ts.castToTextArr },
111
- "timestamptz:string": { castArray: __pg_core_codecs_ts.castToTextArr },
112
- geometry: { normalizeArray: (0, __pg_core_codecs_ts.parsePgArrayAndNormalize)(__pg_core_codecs_ts.parseGeometryXY) },
113
- "geometry:tuple": { normalizeArray: (0, __pg_core_codecs_ts.parsePgArrayAndNormalize)(__pg_core_codecs_ts.parseGeometryTuple) },
114
- interval: { castArray: __pg_core_codecs_ts.castToTextArr },
115
- json: { normalizeParam: (v) => typeof v === "object" && !Array.isArray(v) ? v : JSON.stringify(v) },
116
- jsonb: { normalizeParam: (v) => typeof v === "object" && !Array.isArray(v) ? v : JSON.stringify(v) },
117
- line: {
118
- cast: __pg_core_codecs_ts.castToText,
119
- castArray: __pg_core_codecs_ts.castToTextArr
120
- },
121
- "line:tuple": {
122
- cast: __pg_core_codecs_ts.castToText,
123
- castArray: __pg_core_codecs_ts.castToTextArr
124
- },
125
- macaddr8: {
126
- castArrayInJson: __pg_core_codecs_ts.castToTextArr,
127
- castArray: __pg_core_codecs_ts.castToTextArr
128
- },
129
- point: {
130
- cast: __pg_core_codecs_ts.castToText,
131
- castArray: __pg_core_codecs_ts.castToTextArr
132
- },
133
- "point:tuple": {
134
- cast: __pg_core_codecs_ts.castToText,
135
- castArray: __pg_core_codecs_ts.castToTextArr
136
- },
137
- sparsevec: { normalizeArray: __pg_core_array_ts.parsePgArray }
138
- });
139
27
  function construct(httpClient, pool, config = {}) {
140
28
  const dialect = new __pg_core_dialect_ts.PgDialect({
141
- codecs: config.codecs ?? netlifyDbCodecs,
142
- useJitMappers: config.useJitMappers
29
+ codecs: config.codecs ?? require_netlify_db_codecs.netlifyDbCodecs,
30
+ useJitMappers: (0, __utils_ts.jitCompatCheck)(config.useJitMappers)
143
31
  });
144
32
  let logger;
145
33
  if (config.logger === true) logger = new __logger_ts.DefaultLogger();
@@ -148,7 +36,7 @@ function construct(httpClient, pool, config = {}) {
148
36
  const session = new require_netlify_db_session.NetlifyDbSession(httpClient, pool, dialect, relations ?? {}, {
149
37
  logger,
150
38
  cache: config.cache,
151
- transactionCodecs: config.transactionCodecs ?? netlifyDbTransactionCodecs
39
+ transactionCodecs: config.transactionCodecs ?? require_netlify_db_codecs.netlifyDbTransactionCodecs
152
40
  });
153
41
  _neondatabase_serverless.types.setTypeParser(_neondatabase_serverless.types.builtins.TIMESTAMPTZ, (val) => val);
154
42
  _neondatabase_serverless.types.setTypeParser(_neondatabase_serverless.types.builtins.TIMESTAMP, (val) => val);
@@ -215,6 +103,4 @@ Object.defineProperty(exports, 'drizzle', {
215
103
  return drizzle;
216
104
  }
217
105
  });
218
- exports.netlifyDbCodecs = netlifyDbCodecs;
219
- exports.netlifyDbTransactionCodecs = netlifyDbTransactionCodecs;
220
106
  //# sourceMappingURL=driver.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.cjs","names":["PgAsyncDatabase","entityKind","NetlifyDbSession","parsePgArray","castToTextArr","textToDate","textToDateWithTz","parseGeometryXY","parseGeometryTuple","castToText","PgDialect","DefaultLogger","types","Pool"],"sources":["../../src/netlify-db/driver.ts"],"sourcesContent":["import { type HTTPQueryOptions, neon, Pool, types } from '@neondatabase/serverless';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { NeonHttpClient, NeonHttpQueryResultHKT } from '~/neon-http/session.ts';\nimport { drizzle as drizzleNodePg, type NodePgDatabase } from '~/node-postgres/driver.ts';\nimport type { NodePgClient } from '~/node-postgres/session.ts';\nimport { parsePgArray } from '~/pg-core/array.ts';\nimport { PgAsyncDatabase } from '~/pg-core/async/db.ts';\nimport {\n\tarrayCompatNormalize,\n\tcastToText,\n\tcastToTextArr,\n\tparseGeometryTuple,\n\tparseGeometryXY,\n\tparsePgArrayAndNormalize,\n\ttype PgCodecs,\n\trefineGenericPgCodecs,\n\ttextToDate,\n\ttextToDateWithTz,\n} from '~/pg-core/codecs.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { DrizzlePgConfig } from '~/pg-core/utils.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { isConfig } from '~/utils.ts';\nimport { type NetlifyDbClient, NetlifyDbSession } from './session.ts';\n\nexport interface ServerlessDrizzleClient {\n\tdriver: 'serverless';\n\thttpClient: NeonHttpClient;\n\tpool: Pool;\n\tconnectionString: string;\n}\n\nexport interface ServerDrizzleClient {\n\tdriver: 'server';\n\tpool: NodePgClient;\n\tconnectionString: string;\n}\n\nexport type DrizzleClient = ServerlessDrizzleClient | ServerDrizzleClient;\n\nexport interface DrizzleNetlifyConfig<TRelations extends AnyRelations = EmptyRelations>\n\textends DrizzlePgConfig<TRelations>\n{\n\t/** Netlify utilizes different driver for transactions, thus requiring separate set of codecs */\n\ttransactionCodecs?: PgCodecs | undefined;\n}\n\nexport class NetlifyDbDatabase<\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgAsyncDatabase<NeonHttpQueryResultHKT, TRelations> {\n\tstatic override readonly [entityKind]: string = 'NetlifyDbDatabase';\n\n\tdeclare session: NetlifyDbSession<TRelations>;\n\n\t$withAuth(\n\t\ttoken: Exclude<HTTPQueryOptions<true, true>['authToken'], undefined>,\n\t): Omit<this, '$withAuth'> {\n\t\tconst session = new NetlifyDbSession(this.session.httpClient, this.session.pool, this.dialect, this._.relations, {\n\t\t\t...this.session.options,\n\t\t\tauthToken: token,\n\t\t});\n\n\t\treturn new NetlifyDbDatabase(this.dialect, session, this._.relations) as any;\n\t}\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(\n\t\t\tbatch,\n\t\t) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport const netlifyDbCodecs = refineGenericPgCodecs({\n\tbigint: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbigserial: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbit: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n\tbytea: {\n\t\tnormalizeParam: String,\n\t},\n\tdate: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'date:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\ttimestamp: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDateWithTz,\n\t\tnormalizeArray: arrayCompatNormalize(textToDateWithTz),\n\t},\n\ttimestamptz: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'timestamp:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\t'timestamptz:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\tgeometry: {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryXY),\n\t},\n\t'geometry:tuple': {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryTuple),\n\t},\n\tinterval: {\n\t\tcastArray: castToTextArr,\n\t},\n\tjson: {\n\t\tnormalizeParam: (v) => JSON.stringify(v),\n\t},\n\tjsonb: {\n\t\tnormalizeParam: (v) => JSON.stringify(v),\n\t},\n\tline: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'line:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tmacaddr8: {\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr,\n\t},\n\tpoint: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'point:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tsparsevec: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n});\n\nexport const netlifyDbTransactionCodecs = refineGenericPgCodecs({\n\tbigint: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbigserial: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbit: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n\tdate: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'date:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\ttimestamp: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDateWithTz,\n\t\tnormalizeArray: arrayCompatNormalize(textToDateWithTz),\n\t},\n\ttimestamptz: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'timestamp:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\t'timestamptz:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\tgeometry: {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryXY),\n\t},\n\t'geometry:tuple': {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryTuple),\n\t},\n\tinterval: {\n\t\tcastArray: castToTextArr,\n\t},\n\t// driver handles objects, other types need to be stringified\n\tjson: {\n\t\tnormalizeParam: (v) => typeof v === 'object' && !Array.isArray(v) ? v : JSON.stringify(v),\n\t},\n\tjsonb: {\n\t\tnormalizeParam: (v) => typeof v === 'object' && !Array.isArray(v) ? v : JSON.stringify(v),\n\t},\n\tline: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'line:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tmacaddr8: {\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr,\n\t},\n\tpoint: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'point:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tsparsevec: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n});\n\nfunction construct<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\thttpClient: NeonHttpClient,\n\tpool: Pool,\n\tconfig: DrizzleNetlifyConfig<TRelations> = {},\n): NetlifyDbDatabase<TRelations> & {\n\t$client: NetlifyDbClient;\n} {\n\tconst dialect = new PgDialect({\n\t\tcodecs: config.codecs ?? netlifyDbCodecs,\n\t\tuseJitMappers: config.useJitMappers,\n\t});\n\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\tconst relations = config.relations ?? {} as TRelations;\n\n\tconst session = new NetlifyDbSession(httpClient, pool, dialect, relations ?? {}, {\n\t\tlogger: logger,\n\t\tcache: config.cache,\n\t\ttransactionCodecs: config.transactionCodecs ?? netlifyDbTransactionCodecs,\n\t});\n\n\ttypes.setTypeParser(types.builtins.TIMESTAMPTZ, (val) => val);\n\ttypes.setTypeParser(types.builtins.TIMESTAMP, (val) => val);\n\ttypes.setTypeParser(types.builtins.DATE, (val) => val);\n\ttypes.setTypeParser(types.builtins.INTERVAL, (val) => val);\n\ttypes.setTypeParser(1231, (val) => val);\n\ttypes.setTypeParser(1115, (val) => val);\n\ttypes.setTypeParser(1185, (val) => val);\n\ttypes.setTypeParser(1187, (val) => val);\n\ttypes.setTypeParser(1182, (val) => val);\n\n\tconst db = new NetlifyDbDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t);\n\t(<any> db).$client = { http: httpClient, pool } satisfies NetlifyDbClient;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>():\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations>,\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: ServerlessDrizzleClient },\n): NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient };\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: ServerDrizzleClient },\n): NodePgDatabase<TRelations> & { $client: NodePgClient };\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: DrizzleClient },\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleNetlifyConfig<TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | { connectionString: string };\n\t\t\t} | {\n\t\t\t\tclient: NetlifyDbClient | DrizzleClient;\n\t\t\t})\n\t\t),\n\t]\n): NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient };\n\nexport function drizzle<TRelations extends AnyRelations = EmptyRelations>(\n\t...params: [] | [\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleNetlifyConfig<TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | { connectionString: string };\n\t\t\t} | {\n\t\t\t\tclient: NetlifyDbClient | DrizzleClient;\n\t\t\t})\n\t\t),\n\t]\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient })\n{\n\t// Zero-config: read env vars\n\tif (\n\t\tparams.length === 0\n\t\t|| (params.length === 1 && isConfig(params[0]) && !('connection' in (params[0] as any))\n\t\t\t&& !('client' in (params[0] as any)))\n\t) {\n\t\tconst drizzleConfig = (params[0] ?? {}) as DrizzleNetlifyConfig<TRelations>;\n\t\tconst connectionString = process.env['NETLIFY_DB_URL'];\n\n\t\tif (!connectionString) {\n\t\t\tthrow new Error(\n\t\t\t\t'NETLIFY_DB_URL environment variable is not set. '\n\t\t\t\t\t+ 'Provide a connection string or client to drizzle().',\n\t\t\t);\n\t\t}\n\n\t\tconst driver = process.env['NETLIFY_DB_DRIVER'];\n\n\t\tif (driver === 'server') {\n\t\t\treturn drizzleNodePg({ connection: connectionString, ...drizzleConfig }) as any;\n\t\t}\n\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\t\treturn construct(httpClient, pool, drizzleConfig) as any;\n\t}\n\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0];\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\t\treturn construct(httpClient, pool, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: { connectionString: string } | string;\n\t\t\tclient?: NetlifyDbClient | DrizzleClient;\n\t\t} & DrizzleNetlifyConfig<TRelations>;\n\n\t\tif (client) {\n\t\t\tif ('driver' in client) {\n\t\t\t\tif (client.driver === 'serverless') {\n\t\t\t\t\treturn construct(client.httpClient, client.pool, drizzleConfig);\n\t\t\t\t}\n\t\t\t\treturn drizzleNodePg({ client: client.pool, ...drizzleConfig }) as any;\n\t\t\t}\n\t\t\treturn construct(client.http, client.pool, drizzleConfig);\n\t\t}\n\n\t\tconst connectionString = typeof connection === 'string' ? connection : connection!.connectionString;\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\n\t\treturn construct(httpClient, pool, drizzleConfig) as any;\n\t}\n\n\tthrow new Error('Invalid arguments. Expected a connection string or a config object.');\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleNetlifyConfig<TRelations>,\n\t): NetlifyDbDatabase<TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, {} as any, config) as any;\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"driver.cjs","names":["PgAsyncDatabase","entityKind","NetlifyDbSession","PgDialect","netlifyDbCodecs","DefaultLogger","netlifyDbTransactionCodecs","types","Pool"],"sources":["../../src/netlify-db/driver.ts"],"sourcesContent":["import { type HTTPQueryOptions, neon, Pool, types } from '@neondatabase/serverless';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { NeonHttpClient, NeonHttpQueryResultHKT } from '~/neon-http/session.ts';\nimport { drizzle as drizzleNodePg, type NodePgDatabase } from '~/node-postgres/driver.ts';\nimport type { NodePgClient } from '~/node-postgres/session.ts';\nimport { PgAsyncDatabase } from '~/pg-core/async/db.ts';\nimport type { PgCodecs } from '~/pg-core/codecs.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { DrizzlePgConfig } from '~/pg-core/utils.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { isConfig, jitCompatCheck } from '~/utils.ts';\nimport { netlifyDbCodecs, netlifyDbTransactionCodecs } from './codecs.ts';\nimport { type NetlifyDbClient, NetlifyDbSession } from './session.ts';\n\nexport interface ServerlessDrizzleClient {\n\tdriver: 'serverless';\n\thttpClient: NeonHttpClient;\n\tpool: Pool;\n\tconnectionString: string;\n}\n\nexport interface ServerDrizzleClient {\n\tdriver: 'server';\n\tpool: NodePgClient;\n\tconnectionString: string;\n}\n\nexport type DrizzleClient = ServerlessDrizzleClient | ServerDrizzleClient;\n\nexport interface DrizzleNetlifyConfig<TRelations extends AnyRelations = EmptyRelations>\n\textends DrizzlePgConfig<TRelations>\n{\n\t/** Netlify utilizes different driver for transactions, thus requiring separate set of codecs */\n\ttransactionCodecs?: PgCodecs | undefined;\n}\n\nexport class NetlifyDbDatabase<\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgAsyncDatabase<NeonHttpQueryResultHKT, TRelations> {\n\tstatic override readonly [entityKind]: string = 'NetlifyDbDatabase';\n\n\tdeclare session: NetlifyDbSession<TRelations>;\n\n\t$withAuth(\n\t\ttoken: Exclude<HTTPQueryOptions<true, true>['authToken'], undefined>,\n\t): Omit<this, '$withAuth'> {\n\t\tconst session = new NetlifyDbSession(this.session.httpClient, this.session.pool, this.dialect, this._.relations, {\n\t\t\t...this.session.options,\n\t\t\tauthToken: token,\n\t\t});\n\n\t\treturn new NetlifyDbDatabase(this.dialect, session, this._.relations) as any;\n\t}\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(\n\t\t\tbatch,\n\t\t) as Promise<BatchResponse<T>>;\n\t}\n}\n\nfunction construct<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\thttpClient: NeonHttpClient,\n\tpool: Pool,\n\tconfig: DrizzleNetlifyConfig<TRelations> = {},\n): NetlifyDbDatabase<TRelations> & {\n\t$client: NetlifyDbClient;\n} {\n\tconst dialect = new PgDialect({\n\t\tcodecs: config.codecs ?? netlifyDbCodecs,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\tconst relations = config.relations ?? {} as TRelations;\n\n\tconst session = new NetlifyDbSession(httpClient, pool, dialect, relations ?? {}, {\n\t\tlogger: logger,\n\t\tcache: config.cache,\n\t\ttransactionCodecs: config.transactionCodecs ?? netlifyDbTransactionCodecs,\n\t});\n\n\ttypes.setTypeParser(types.builtins.TIMESTAMPTZ, (val) => val);\n\ttypes.setTypeParser(types.builtins.TIMESTAMP, (val) => val);\n\ttypes.setTypeParser(types.builtins.DATE, (val) => val);\n\ttypes.setTypeParser(types.builtins.INTERVAL, (val) => val);\n\ttypes.setTypeParser(1231, (val) => val);\n\ttypes.setTypeParser(1115, (val) => val);\n\ttypes.setTypeParser(1185, (val) => val);\n\ttypes.setTypeParser(1187, (val) => val);\n\ttypes.setTypeParser(1182, (val) => val);\n\n\tconst db = new NetlifyDbDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t);\n\t(<any> db).$client = { http: httpClient, pool } satisfies NetlifyDbClient;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>():\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations>,\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: ServerlessDrizzleClient },\n): NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient };\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: ServerDrizzleClient },\n): NodePgDatabase<TRelations> & { $client: NodePgClient };\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: DrizzleClient },\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleNetlifyConfig<TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | { connectionString: string };\n\t\t\t} | {\n\t\t\t\tclient: NetlifyDbClient | DrizzleClient;\n\t\t\t})\n\t\t),\n\t]\n): NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient };\n\nexport function drizzle<TRelations extends AnyRelations = EmptyRelations>(\n\t...params: [] | [\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleNetlifyConfig<TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | { connectionString: string };\n\t\t\t} | {\n\t\t\t\tclient: NetlifyDbClient | DrizzleClient;\n\t\t\t})\n\t\t),\n\t]\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient })\n{\n\t// Zero-config: read env vars\n\tif (\n\t\tparams.length === 0\n\t\t|| (params.length === 1 && isConfig(params[0]) && !('connection' in (params[0] as any))\n\t\t\t&& !('client' in (params[0] as any)))\n\t) {\n\t\tconst drizzleConfig = (params[0] ?? {}) as DrizzleNetlifyConfig<TRelations>;\n\t\tconst connectionString = process.env['NETLIFY_DB_URL'];\n\n\t\tif (!connectionString) {\n\t\t\tthrow new Error(\n\t\t\t\t'NETLIFY_DB_URL environment variable is not set. '\n\t\t\t\t\t+ 'Provide a connection string or client to drizzle().',\n\t\t\t);\n\t\t}\n\n\t\tconst driver = process.env['NETLIFY_DB_DRIVER'];\n\n\t\tif (driver === 'server') {\n\t\t\treturn drizzleNodePg({ connection: connectionString, ...drizzleConfig }) as any;\n\t\t}\n\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\t\treturn construct(httpClient, pool, drizzleConfig) as any;\n\t}\n\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0];\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\t\treturn construct(httpClient, pool, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: { connectionString: string } | string;\n\t\t\tclient?: NetlifyDbClient | DrizzleClient;\n\t\t} & DrizzleNetlifyConfig<TRelations>;\n\n\t\tif (client) {\n\t\t\tif ('driver' in client) {\n\t\t\t\tif (client.driver === 'serverless') {\n\t\t\t\t\treturn construct(client.httpClient, client.pool, drizzleConfig);\n\t\t\t\t}\n\t\t\t\treturn drizzleNodePg({ client: client.pool, ...drizzleConfig }) as any;\n\t\t\t}\n\t\t\treturn construct(client.http, client.pool, drizzleConfig);\n\t\t}\n\n\t\tconst connectionString = typeof connection === 'string' ? connection : connection!.connectionString;\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\n\t\treturn construct(httpClient, pool, drizzleConfig) as any;\n\t}\n\n\tthrow new Error('Invalid arguments. Expected a connection string or a config object.');\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleNetlifyConfig<TRelations>,\n\t): NetlifyDbDatabase<TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, {} as any, config) as any;\n\t}\n}\n"],"mappings":"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"}
@@ -1,9 +1,6 @@
1
- import { Codec } from "../codecs.cjs";
2
1
  import { NetlifyDbClient, NetlifyDbSession } from "./session.cjs";
3
2
  import { entityKind } from "../entity.cjs";
4
- import * as __utils_ts0 from "../utils.cjs";
5
3
  import { AnyRelations, EmptyRelations } from "../relations.cjs";
6
- import * as __pg_core_codecs_ts0 from "../pg-core/codecs.cjs";
7
4
  import { PgCodecs } from "../pg-core/codecs.cjs";
8
5
  import { PgAsyncDatabase } from "../pg-core/async/db.cjs";
9
6
  import { DrizzlePgConfig } from "../pg-core/utils.cjs";
@@ -36,8 +33,6 @@ declare class NetlifyDbDatabase<TRelations extends AnyRelations = EmptyRelations
36
33
  $withAuth(token: Exclude<HTTPQueryOptions<true, true>['authToken'], undefined>): Omit<this, '$withAuth'>;
37
34
  batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<T>>;
38
35
  }
39
- declare const netlifyDbCodecs: __utils_ts0.PartialWithUndefined<Record<__pg_core_codecs_ts0.PostgresType, Codec>>;
40
- declare const netlifyDbTransactionCodecs: __utils_ts0.PartialWithUndefined<Record<__pg_core_codecs_ts0.PostgresType, Codec>>;
41
36
  declare function drizzle<TRelations extends AnyRelations = EmptyRelations>(): (NetlifyDbDatabase<TRelations> & {
42
37
  $client: NetlifyDbClient;
43
38
  }) | (NodePgDatabase<TRelations> & {
@@ -80,5 +75,5 @@ declare namespace drizzle {
80
75
  };
81
76
  }
82
77
  //#endregion
83
- export { DrizzleClient, DrizzleNetlifyConfig, NetlifyDbDatabase, ServerDrizzleClient, ServerlessDrizzleClient, drizzle, netlifyDbCodecs, netlifyDbTransactionCodecs };
78
+ export { DrizzleClient, DrizzleNetlifyConfig, NetlifyDbDatabase, ServerDrizzleClient, ServerlessDrizzleClient, drizzle };
84
79
  //# sourceMappingURL=driver.d.cts.map
@@ -1,9 +1,6 @@
1
- import { Codec } from "../codecs.js";
2
1
  import { NetlifyDbClient, NetlifyDbSession } from "./session.js";
3
2
  import { entityKind } from "../entity.js";
4
- import * as __utils_ts0 from "../utils.js";
5
3
  import { PgAsyncDatabase } from "../pg-core/async/db.js";
6
- import * as __pg_core_codecs_ts0 from "../pg-core/codecs.js";
7
4
  import { PgCodecs } from "../pg-core/codecs.js";
8
5
  import { AnyRelations, EmptyRelations } from "../relations.js";
9
6
  import { HTTPQueryOptions, Pool } from "@neondatabase/serverless";
@@ -36,8 +33,6 @@ declare class NetlifyDbDatabase<TRelations extends AnyRelations = EmptyRelations
36
33
  $withAuth(token: Exclude<HTTPQueryOptions<true, true>['authToken'], undefined>): Omit<this, '$withAuth'>;
37
34
  batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<T>>;
38
35
  }
39
- declare const netlifyDbCodecs: __utils_ts0.PartialWithUndefined<Record<__pg_core_codecs_ts0.PostgresType, Codec>>;
40
- declare const netlifyDbTransactionCodecs: __utils_ts0.PartialWithUndefined<Record<__pg_core_codecs_ts0.PostgresType, Codec>>;
41
36
  declare function drizzle<TRelations extends AnyRelations = EmptyRelations>(): (NetlifyDbDatabase<TRelations> & {
42
37
  $client: NetlifyDbClient;
43
38
  }) | (NodePgDatabase<TRelations> & {
@@ -80,5 +75,5 @@ declare namespace drizzle {
80
75
  };
81
76
  }
82
77
  //#endregion
83
- export { DrizzleClient, DrizzleNetlifyConfig, NetlifyDbDatabase, ServerDrizzleClient, ServerlessDrizzleClient, drizzle, netlifyDbCodecs, netlifyDbTransactionCodecs };
78
+ export { DrizzleClient, DrizzleNetlifyConfig, NetlifyDbDatabase, ServerDrizzleClient, ServerlessDrizzleClient, drizzle };
84
79
  //# sourceMappingURL=driver.d.ts.map
@@ -1,10 +1,9 @@
1
+ import { netlifyDbCodecs, netlifyDbTransactionCodecs } from "./codecs.js";
1
2
  import { NetlifyDbSession } from "./session.js";
2
3
  import { entityKind } from "../entity.js";
3
- import { isConfig } from "../utils.js";
4
+ import { isConfig, jitCompatCheck } from "../utils.js";
4
5
  import { DefaultLogger } from "../logger.js";
5
- import { parsePgArray } from "../pg-core/array.js";
6
6
  import { PgAsyncDatabase } from "../pg-core/async/db.js";
7
- import { arrayCompatNormalize, castToText, castToTextArr, parseGeometryTuple, parseGeometryXY, parsePgArrayAndNormalize, refineGenericPgCodecs, textToDate, textToDateWithTz } from "../pg-core/codecs.js";
8
7
  import { PgDialect } from "../pg-core/dialect.js";
9
8
  import { Pool, neon, types } from "@neondatabase/serverless";
10
9
  import { drizzle as drizzle$1 } from "../node-postgres/driver.js";
@@ -23,121 +22,10 @@ var NetlifyDbDatabase = class NetlifyDbDatabase extends PgAsyncDatabase {
23
22
  return this.session.batch(batch);
24
23
  }
25
24
  };
26
- const netlifyDbCodecs = refineGenericPgCodecs({
27
- bigint: {
28
- normalize: BigInt,
29
- normalizeArray: arrayCompatNormalize(BigInt)
30
- },
31
- bigserial: {
32
- normalize: BigInt,
33
- normalizeArray: arrayCompatNormalize(BigInt)
34
- },
35
- bit: { normalizeArray: parsePgArray },
36
- bytea: { normalizeParam: String },
37
- date: {
38
- castArray: castToTextArr,
39
- normalize: textToDate,
40
- normalizeArray: arrayCompatNormalize(textToDate)
41
- },
42
- "date:string": { castArray: castToTextArr },
43
- timestamp: {
44
- castArray: castToTextArr,
45
- normalize: textToDateWithTz,
46
- normalizeArray: arrayCompatNormalize(textToDateWithTz)
47
- },
48
- timestamptz: {
49
- castArray: castToTextArr,
50
- normalize: textToDate,
51
- normalizeArray: arrayCompatNormalize(textToDate)
52
- },
53
- "timestamp:string": { castArray: castToTextArr },
54
- "timestamptz:string": { castArray: castToTextArr },
55
- geometry: { normalizeArray: parsePgArrayAndNormalize(parseGeometryXY) },
56
- "geometry:tuple": { normalizeArray: parsePgArrayAndNormalize(parseGeometryTuple) },
57
- interval: { castArray: castToTextArr },
58
- json: { normalizeParam: (v) => JSON.stringify(v) },
59
- jsonb: { normalizeParam: (v) => JSON.stringify(v) },
60
- line: {
61
- cast: castToText,
62
- castArray: castToTextArr
63
- },
64
- "line:tuple": {
65
- cast: castToText,
66
- castArray: castToTextArr
67
- },
68
- macaddr8: {
69
- castArrayInJson: castToTextArr,
70
- castArray: castToTextArr
71
- },
72
- point: {
73
- cast: castToText,
74
- castArray: castToTextArr
75
- },
76
- "point:tuple": {
77
- cast: castToText,
78
- castArray: castToTextArr
79
- },
80
- sparsevec: { normalizeArray: parsePgArray }
81
- });
82
- const netlifyDbTransactionCodecs = refineGenericPgCodecs({
83
- bigint: {
84
- normalize: BigInt,
85
- normalizeArray: arrayCompatNormalize(BigInt)
86
- },
87
- bigserial: {
88
- normalize: BigInt,
89
- normalizeArray: arrayCompatNormalize(BigInt)
90
- },
91
- bit: { normalizeArray: parsePgArray },
92
- date: {
93
- castArray: castToTextArr,
94
- normalize: textToDate,
95
- normalizeArray: arrayCompatNormalize(textToDate)
96
- },
97
- "date:string": { castArray: castToTextArr },
98
- timestamp: {
99
- castArray: castToTextArr,
100
- normalize: textToDateWithTz,
101
- normalizeArray: arrayCompatNormalize(textToDateWithTz)
102
- },
103
- timestamptz: {
104
- castArray: castToTextArr,
105
- normalize: textToDate,
106
- normalizeArray: arrayCompatNormalize(textToDate)
107
- },
108
- "timestamp:string": { castArray: castToTextArr },
109
- "timestamptz:string": { castArray: castToTextArr },
110
- geometry: { normalizeArray: parsePgArrayAndNormalize(parseGeometryXY) },
111
- "geometry:tuple": { normalizeArray: parsePgArrayAndNormalize(parseGeometryTuple) },
112
- interval: { castArray: castToTextArr },
113
- json: { normalizeParam: (v) => typeof v === "object" && !Array.isArray(v) ? v : JSON.stringify(v) },
114
- jsonb: { normalizeParam: (v) => typeof v === "object" && !Array.isArray(v) ? v : JSON.stringify(v) },
115
- line: {
116
- cast: castToText,
117
- castArray: castToTextArr
118
- },
119
- "line:tuple": {
120
- cast: castToText,
121
- castArray: castToTextArr
122
- },
123
- macaddr8: {
124
- castArrayInJson: castToTextArr,
125
- castArray: castToTextArr
126
- },
127
- point: {
128
- cast: castToText,
129
- castArray: castToTextArr
130
- },
131
- "point:tuple": {
132
- cast: castToText,
133
- castArray: castToTextArr
134
- },
135
- sparsevec: { normalizeArray: parsePgArray }
136
- });
137
25
  function construct(httpClient, pool, config = {}) {
138
26
  const dialect = new PgDialect({
139
27
  codecs: config.codecs ?? netlifyDbCodecs,
140
- useJitMappers: config.useJitMappers
28
+ useJitMappers: jitCompatCheck(config.useJitMappers)
141
29
  });
142
30
  let logger;
143
31
  if (config.logger === true) logger = new DefaultLogger();
@@ -206,5 +94,5 @@ function drizzle(...params) {
206
94
  })(drizzle || (drizzle = {}));
207
95
 
208
96
  //#endregion
209
- export { NetlifyDbDatabase, drizzle, netlifyDbCodecs, netlifyDbTransactionCodecs };
97
+ export { NetlifyDbDatabase, drizzle };
210
98
  //# sourceMappingURL=driver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","names":["drizzleNodePg"],"sources":["../../src/netlify-db/driver.ts"],"sourcesContent":["import { type HTTPQueryOptions, neon, Pool, types } from '@neondatabase/serverless';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { NeonHttpClient, NeonHttpQueryResultHKT } from '~/neon-http/session.ts';\nimport { drizzle as drizzleNodePg, type NodePgDatabase } from '~/node-postgres/driver.ts';\nimport type { NodePgClient } from '~/node-postgres/session.ts';\nimport { parsePgArray } from '~/pg-core/array.ts';\nimport { PgAsyncDatabase } from '~/pg-core/async/db.ts';\nimport {\n\tarrayCompatNormalize,\n\tcastToText,\n\tcastToTextArr,\n\tparseGeometryTuple,\n\tparseGeometryXY,\n\tparsePgArrayAndNormalize,\n\ttype PgCodecs,\n\trefineGenericPgCodecs,\n\ttextToDate,\n\ttextToDateWithTz,\n} from '~/pg-core/codecs.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { DrizzlePgConfig } from '~/pg-core/utils.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { isConfig } from '~/utils.ts';\nimport { type NetlifyDbClient, NetlifyDbSession } from './session.ts';\n\nexport interface ServerlessDrizzleClient {\n\tdriver: 'serverless';\n\thttpClient: NeonHttpClient;\n\tpool: Pool;\n\tconnectionString: string;\n}\n\nexport interface ServerDrizzleClient {\n\tdriver: 'server';\n\tpool: NodePgClient;\n\tconnectionString: string;\n}\n\nexport type DrizzleClient = ServerlessDrizzleClient | ServerDrizzleClient;\n\nexport interface DrizzleNetlifyConfig<TRelations extends AnyRelations = EmptyRelations>\n\textends DrizzlePgConfig<TRelations>\n{\n\t/** Netlify utilizes different driver for transactions, thus requiring separate set of codecs */\n\ttransactionCodecs?: PgCodecs | undefined;\n}\n\nexport class NetlifyDbDatabase<\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgAsyncDatabase<NeonHttpQueryResultHKT, TRelations> {\n\tstatic override readonly [entityKind]: string = 'NetlifyDbDatabase';\n\n\tdeclare session: NetlifyDbSession<TRelations>;\n\n\t$withAuth(\n\t\ttoken: Exclude<HTTPQueryOptions<true, true>['authToken'], undefined>,\n\t): Omit<this, '$withAuth'> {\n\t\tconst session = new NetlifyDbSession(this.session.httpClient, this.session.pool, this.dialect, this._.relations, {\n\t\t\t...this.session.options,\n\t\t\tauthToken: token,\n\t\t});\n\n\t\treturn new NetlifyDbDatabase(this.dialect, session, this._.relations) as any;\n\t}\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(\n\t\t\tbatch,\n\t\t) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport const netlifyDbCodecs = refineGenericPgCodecs({\n\tbigint: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbigserial: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbit: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n\tbytea: {\n\t\tnormalizeParam: String,\n\t},\n\tdate: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'date:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\ttimestamp: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDateWithTz,\n\t\tnormalizeArray: arrayCompatNormalize(textToDateWithTz),\n\t},\n\ttimestamptz: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'timestamp:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\t'timestamptz:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\tgeometry: {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryXY),\n\t},\n\t'geometry:tuple': {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryTuple),\n\t},\n\tinterval: {\n\t\tcastArray: castToTextArr,\n\t},\n\tjson: {\n\t\tnormalizeParam: (v) => JSON.stringify(v),\n\t},\n\tjsonb: {\n\t\tnormalizeParam: (v) => JSON.stringify(v),\n\t},\n\tline: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'line:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tmacaddr8: {\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr,\n\t},\n\tpoint: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'point:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tsparsevec: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n});\n\nexport const netlifyDbTransactionCodecs = refineGenericPgCodecs({\n\tbigint: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbigserial: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbit: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n\tdate: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'date:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\ttimestamp: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDateWithTz,\n\t\tnormalizeArray: arrayCompatNormalize(textToDateWithTz),\n\t},\n\ttimestamptz: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'timestamp:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\t'timestamptz:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\tgeometry: {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryXY),\n\t},\n\t'geometry:tuple': {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryTuple),\n\t},\n\tinterval: {\n\t\tcastArray: castToTextArr,\n\t},\n\t// driver handles objects, other types need to be stringified\n\tjson: {\n\t\tnormalizeParam: (v) => typeof v === 'object' && !Array.isArray(v) ? v : JSON.stringify(v),\n\t},\n\tjsonb: {\n\t\tnormalizeParam: (v) => typeof v === 'object' && !Array.isArray(v) ? v : JSON.stringify(v),\n\t},\n\tline: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'line:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tmacaddr8: {\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr,\n\t},\n\tpoint: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'point:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tsparsevec: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n});\n\nfunction construct<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\thttpClient: NeonHttpClient,\n\tpool: Pool,\n\tconfig: DrizzleNetlifyConfig<TRelations> = {},\n): NetlifyDbDatabase<TRelations> & {\n\t$client: NetlifyDbClient;\n} {\n\tconst dialect = new PgDialect({\n\t\tcodecs: config.codecs ?? netlifyDbCodecs,\n\t\tuseJitMappers: config.useJitMappers,\n\t});\n\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\tconst relations = config.relations ?? {} as TRelations;\n\n\tconst session = new NetlifyDbSession(httpClient, pool, dialect, relations ?? {}, {\n\t\tlogger: logger,\n\t\tcache: config.cache,\n\t\ttransactionCodecs: config.transactionCodecs ?? netlifyDbTransactionCodecs,\n\t});\n\n\ttypes.setTypeParser(types.builtins.TIMESTAMPTZ, (val) => val);\n\ttypes.setTypeParser(types.builtins.TIMESTAMP, (val) => val);\n\ttypes.setTypeParser(types.builtins.DATE, (val) => val);\n\ttypes.setTypeParser(types.builtins.INTERVAL, (val) => val);\n\ttypes.setTypeParser(1231, (val) => val);\n\ttypes.setTypeParser(1115, (val) => val);\n\ttypes.setTypeParser(1185, (val) => val);\n\ttypes.setTypeParser(1187, (val) => val);\n\ttypes.setTypeParser(1182, (val) => val);\n\n\tconst db = new NetlifyDbDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t);\n\t(<any> db).$client = { http: httpClient, pool } satisfies NetlifyDbClient;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>():\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations>,\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: ServerlessDrizzleClient },\n): NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient };\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: ServerDrizzleClient },\n): NodePgDatabase<TRelations> & { $client: NodePgClient };\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: DrizzleClient },\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleNetlifyConfig<TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | { connectionString: string };\n\t\t\t} | {\n\t\t\t\tclient: NetlifyDbClient | DrizzleClient;\n\t\t\t})\n\t\t),\n\t]\n): NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient };\n\nexport function drizzle<TRelations extends AnyRelations = EmptyRelations>(\n\t...params: [] | [\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleNetlifyConfig<TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | { connectionString: string };\n\t\t\t} | {\n\t\t\t\tclient: NetlifyDbClient | DrizzleClient;\n\t\t\t})\n\t\t),\n\t]\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient })\n{\n\t// Zero-config: read env vars\n\tif (\n\t\tparams.length === 0\n\t\t|| (params.length === 1 && isConfig(params[0]) && !('connection' in (params[0] as any))\n\t\t\t&& !('client' in (params[0] as any)))\n\t) {\n\t\tconst drizzleConfig = (params[0] ?? {}) as DrizzleNetlifyConfig<TRelations>;\n\t\tconst connectionString = process.env['NETLIFY_DB_URL'];\n\n\t\tif (!connectionString) {\n\t\t\tthrow new Error(\n\t\t\t\t'NETLIFY_DB_URL environment variable is not set. '\n\t\t\t\t\t+ 'Provide a connection string or client to drizzle().',\n\t\t\t);\n\t\t}\n\n\t\tconst driver = process.env['NETLIFY_DB_DRIVER'];\n\n\t\tif (driver === 'server') {\n\t\t\treturn drizzleNodePg({ connection: connectionString, ...drizzleConfig }) as any;\n\t\t}\n\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\t\treturn construct(httpClient, pool, drizzleConfig) as any;\n\t}\n\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0];\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\t\treturn construct(httpClient, pool, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: { connectionString: string } | string;\n\t\t\tclient?: NetlifyDbClient | DrizzleClient;\n\t\t} & DrizzleNetlifyConfig<TRelations>;\n\n\t\tif (client) {\n\t\t\tif ('driver' in client) {\n\t\t\t\tif (client.driver === 'serverless') {\n\t\t\t\t\treturn construct(client.httpClient, client.pool, drizzleConfig);\n\t\t\t\t}\n\t\t\t\treturn drizzleNodePg({ client: client.pool, ...drizzleConfig }) as any;\n\t\t\t}\n\t\t\treturn construct(client.http, client.pool, drizzleConfig);\n\t\t}\n\n\t\tconst connectionString = typeof connection === 'string' ? connection : connection!.connectionString;\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\n\t\treturn construct(httpClient, pool, drizzleConfig) as any;\n\t}\n\n\tthrow new Error('Invalid arguments. Expected a connection string or a config object.');\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleNetlifyConfig<TRelations>,\n\t): NetlifyDbDatabase<TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, {} as any, config) as any;\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","names":["drizzleNodePg"],"sources":["../../src/netlify-db/driver.ts"],"sourcesContent":["import { type HTTPQueryOptions, neon, Pool, types } from '@neondatabase/serverless';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { NeonHttpClient, NeonHttpQueryResultHKT } from '~/neon-http/session.ts';\nimport { drizzle as drizzleNodePg, type NodePgDatabase } from '~/node-postgres/driver.ts';\nimport type { NodePgClient } from '~/node-postgres/session.ts';\nimport { PgAsyncDatabase } from '~/pg-core/async/db.ts';\nimport type { PgCodecs } from '~/pg-core/codecs.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { DrizzlePgConfig } from '~/pg-core/utils.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { isConfig, jitCompatCheck } from '~/utils.ts';\nimport { netlifyDbCodecs, netlifyDbTransactionCodecs } from './codecs.ts';\nimport { type NetlifyDbClient, NetlifyDbSession } from './session.ts';\n\nexport interface ServerlessDrizzleClient {\n\tdriver: 'serverless';\n\thttpClient: NeonHttpClient;\n\tpool: Pool;\n\tconnectionString: string;\n}\n\nexport interface ServerDrizzleClient {\n\tdriver: 'server';\n\tpool: NodePgClient;\n\tconnectionString: string;\n}\n\nexport type DrizzleClient = ServerlessDrizzleClient | ServerDrizzleClient;\n\nexport interface DrizzleNetlifyConfig<TRelations extends AnyRelations = EmptyRelations>\n\textends DrizzlePgConfig<TRelations>\n{\n\t/** Netlify utilizes different driver for transactions, thus requiring separate set of codecs */\n\ttransactionCodecs?: PgCodecs | undefined;\n}\n\nexport class NetlifyDbDatabase<\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgAsyncDatabase<NeonHttpQueryResultHKT, TRelations> {\n\tstatic override readonly [entityKind]: string = 'NetlifyDbDatabase';\n\n\tdeclare session: NetlifyDbSession<TRelations>;\n\n\t$withAuth(\n\t\ttoken: Exclude<HTTPQueryOptions<true, true>['authToken'], undefined>,\n\t): Omit<this, '$withAuth'> {\n\t\tconst session = new NetlifyDbSession(this.session.httpClient, this.session.pool, this.dialect, this._.relations, {\n\t\t\t...this.session.options,\n\t\t\tauthToken: token,\n\t\t});\n\n\t\treturn new NetlifyDbDatabase(this.dialect, session, this._.relations) as any;\n\t}\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(\n\t\t\tbatch,\n\t\t) as Promise<BatchResponse<T>>;\n\t}\n}\n\nfunction construct<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\thttpClient: NeonHttpClient,\n\tpool: Pool,\n\tconfig: DrizzleNetlifyConfig<TRelations> = {},\n): NetlifyDbDatabase<TRelations> & {\n\t$client: NetlifyDbClient;\n} {\n\tconst dialect = new PgDialect({\n\t\tcodecs: config.codecs ?? netlifyDbCodecs,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\tconst relations = config.relations ?? {} as TRelations;\n\n\tconst session = new NetlifyDbSession(httpClient, pool, dialect, relations ?? {}, {\n\t\tlogger: logger,\n\t\tcache: config.cache,\n\t\ttransactionCodecs: config.transactionCodecs ?? netlifyDbTransactionCodecs,\n\t});\n\n\ttypes.setTypeParser(types.builtins.TIMESTAMPTZ, (val) => val);\n\ttypes.setTypeParser(types.builtins.TIMESTAMP, (val) => val);\n\ttypes.setTypeParser(types.builtins.DATE, (val) => val);\n\ttypes.setTypeParser(types.builtins.INTERVAL, (val) => val);\n\ttypes.setTypeParser(1231, (val) => val);\n\ttypes.setTypeParser(1115, (val) => val);\n\ttypes.setTypeParser(1185, (val) => val);\n\ttypes.setTypeParser(1187, (val) => val);\n\ttypes.setTypeParser(1182, (val) => val);\n\n\tconst db = new NetlifyDbDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t);\n\t(<any> db).$client = { http: httpClient, pool } satisfies NetlifyDbClient;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>():\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations>,\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: ServerlessDrizzleClient },\n): NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient };\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: ServerDrizzleClient },\n): NodePgDatabase<TRelations> & { $client: NodePgClient };\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tconfig: DrizzleNetlifyConfig<TRelations> & { client: DrizzleClient },\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient });\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleNetlifyConfig<TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | { connectionString: string };\n\t\t\t} | {\n\t\t\t\tclient: NetlifyDbClient | DrizzleClient;\n\t\t\t})\n\t\t),\n\t]\n): NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient };\n\nexport function drizzle<TRelations extends AnyRelations = EmptyRelations>(\n\t...params: [] | [\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleNetlifyConfig<TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleNetlifyConfig<TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | { connectionString: string };\n\t\t\t} | {\n\t\t\t\tclient: NetlifyDbClient | DrizzleClient;\n\t\t\t})\n\t\t),\n\t]\n):\n\t| (NetlifyDbDatabase<TRelations> & { $client: NetlifyDbClient })\n\t| (NodePgDatabase<TRelations> & { $client: NodePgClient })\n{\n\t// Zero-config: read env vars\n\tif (\n\t\tparams.length === 0\n\t\t|| (params.length === 1 && isConfig(params[0]) && !('connection' in (params[0] as any))\n\t\t\t&& !('client' in (params[0] as any)))\n\t) {\n\t\tconst drizzleConfig = (params[0] ?? {}) as DrizzleNetlifyConfig<TRelations>;\n\t\tconst connectionString = process.env['NETLIFY_DB_URL'];\n\n\t\tif (!connectionString) {\n\t\t\tthrow new Error(\n\t\t\t\t'NETLIFY_DB_URL environment variable is not set. '\n\t\t\t\t\t+ 'Provide a connection string or client to drizzle().',\n\t\t\t);\n\t\t}\n\n\t\tconst driver = process.env['NETLIFY_DB_DRIVER'];\n\n\t\tif (driver === 'server') {\n\t\t\treturn drizzleNodePg({ connection: connectionString, ...drizzleConfig }) as any;\n\t\t}\n\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\t\treturn construct(httpClient, pool, drizzleConfig) as any;\n\t}\n\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0];\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\t\treturn construct(httpClient, pool, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: { connectionString: string } | string;\n\t\t\tclient?: NetlifyDbClient | DrizzleClient;\n\t\t} & DrizzleNetlifyConfig<TRelations>;\n\n\t\tif (client) {\n\t\t\tif ('driver' in client) {\n\t\t\t\tif (client.driver === 'serverless') {\n\t\t\t\t\treturn construct(client.httpClient, client.pool, drizzleConfig);\n\t\t\t\t}\n\t\t\t\treturn drizzleNodePg({ client: client.pool, ...drizzleConfig }) as any;\n\t\t\t}\n\t\t\treturn construct(client.http, client.pool, drizzleConfig);\n\t\t}\n\n\t\tconst connectionString = typeof connection === 'string' ? connection : connection!.connectionString;\n\t\tconst httpClient = neon(connectionString);\n\t\tconst pool = new Pool({ connectionString });\n\n\t\treturn construct(httpClient, pool, drizzleConfig) as any;\n\t}\n\n\tthrow new Error('Invalid arguments. Expected a connection string or a config object.');\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleNetlifyConfig<TRelations>,\n\t): NetlifyDbDatabase<TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, {} as any, config) as any;\n\t}\n}\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_netlify_db_codecs = require('./codecs.cjs');
2
3
  const require_netlify_db_session = require('./session.cjs');
3
4
  const require_netlify_db_driver = require('./driver.cjs');
4
5
 
@@ -12,5 +13,5 @@ Object.defineProperty(exports, 'drizzle', {
12
13
  return require_netlify_db_driver.drizzle;
13
14
  }
14
15
  });
15
- exports.netlifyDbCodecs = require_netlify_db_driver.netlifyDbCodecs;
16
- exports.netlifyDbTransactionCodecs = require_netlify_db_driver.netlifyDbTransactionCodecs;
16
+ exports.netlifyDbCodecs = require_netlify_db_codecs.netlifyDbCodecs;
17
+ exports.netlifyDbTransactionCodecs = require_netlify_db_codecs.netlifyDbTransactionCodecs;
@@ -1,3 +1,4 @@
1
+ import { netlifyDbCodecs, netlifyDbTransactionCodecs } from "./codecs.cjs";
1
2
  import { NetlifyDbClient, NetlifyDbSession, NetlifyDbSessionOptions, NetlifyDbTransaction, NetlifyDbWsSession } from "./session.cjs";
2
- import { DrizzleClient, DrizzleNetlifyConfig, NetlifyDbDatabase, ServerDrizzleClient, ServerlessDrizzleClient, drizzle, netlifyDbCodecs, netlifyDbTransactionCodecs } from "./driver.cjs";
3
+ import { DrizzleClient, DrizzleNetlifyConfig, NetlifyDbDatabase, ServerDrizzleClient, ServerlessDrizzleClient, drizzle } from "./driver.cjs";
3
4
  export { DrizzleClient, DrizzleNetlifyConfig, NetlifyDbClient, NetlifyDbDatabase, NetlifyDbSession, NetlifyDbSessionOptions, NetlifyDbTransaction, NetlifyDbWsSession, ServerDrizzleClient, ServerlessDrizzleClient, drizzle, netlifyDbCodecs, netlifyDbTransactionCodecs };
@@ -1,3 +1,4 @@
1
+ import { netlifyDbCodecs, netlifyDbTransactionCodecs } from "./codecs.js";
1
2
  import { NetlifyDbClient, NetlifyDbSession, NetlifyDbSessionOptions, NetlifyDbTransaction, NetlifyDbWsSession } from "./session.js";
2
- import { DrizzleClient, DrizzleNetlifyConfig, NetlifyDbDatabase, ServerDrizzleClient, ServerlessDrizzleClient, drizzle, netlifyDbCodecs, netlifyDbTransactionCodecs } from "./driver.js";
3
+ import { DrizzleClient, DrizzleNetlifyConfig, NetlifyDbDatabase, ServerDrizzleClient, ServerlessDrizzleClient, drizzle } from "./driver.js";
3
4
  export { DrizzleClient, DrizzleNetlifyConfig, NetlifyDbClient, NetlifyDbDatabase, NetlifyDbSession, NetlifyDbSessionOptions, NetlifyDbTransaction, NetlifyDbWsSession, ServerDrizzleClient, ServerlessDrizzleClient, drizzle, netlifyDbCodecs, netlifyDbTransactionCodecs };
@@ -1,4 +1,5 @@
1
+ import { netlifyDbCodecs, netlifyDbTransactionCodecs } from "./codecs.js";
1
2
  import { NetlifyDbSession, NetlifyDbTransaction, NetlifyDbWsSession } from "./session.js";
2
- import { NetlifyDbDatabase, drizzle, netlifyDbCodecs, netlifyDbTransactionCodecs } from "./driver.js";
3
+ import { NetlifyDbDatabase, drizzle } from "./driver.js";
3
4
 
4
5
  export { NetlifyDbDatabase, NetlifyDbSession, NetlifyDbTransaction, NetlifyDbWsSession, drizzle, netlifyDbCodecs, netlifyDbTransactionCodecs };
@@ -1,7 +1,7 @@
1
1
  import { entityKind } from "../entity.js";
2
2
  import { Query } from "../sql/sql.js";
3
- import { PgCodecs } from "../pg-core/codecs.js";
4
3
  import { PgDialect } from "../pg-core/dialect.js";
4
+ import { PgCodecs } from "../pg-core/codecs.js";
5
5
  import { PgAsyncPreparedQuery, PgAsyncSession, PgAsyncTransaction } from "../pg-core/async/session.js";
6
6
  import { AnyRelations } from "../relations.js";
7
7
  import { FullQueryResults, Pool, PoolClient } from "@neondatabase/serverless";
@@ -3,6 +3,7 @@ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
3
  const require_node_mssql_pool = require('./pool.cjs');
4
4
  const require_node_mssql_session = require('./session.cjs');
5
5
  let __entity_ts = require("../entity.cjs");
6
+ let __utils_ts = require("../utils.cjs");
6
7
  let __logger_ts = require("../logger.cjs");
7
8
  let ___relations_ts = require("../_relations.cjs");
8
9
  ___relations_ts = require_runtime.__toESM(___relations_ts);
@@ -20,7 +21,7 @@ var NodeMsSqlDriver = class {
20
21
  createSession(schema) {
21
22
  return new require_node_mssql_session.NodeMsSqlSession(this.client, this.dialect, schema, {
22
23
  logger: this.options.logger,
23
- useJitMapper: this.options.useJitMapper
24
+ useJitMappers: this.options.useJitMappers
24
25
  });
25
26
  }
26
27
  };
@@ -41,7 +42,7 @@ function construct(client, config = {}) {
41
42
  }
42
43
  const db = new __mssql_core_db_ts.MsSqlDatabase(dialect, new NodeMsSqlDriver(client, dialect, {
43
44
  logger,
44
- useJitMapper: config.useJitMappers
45
+ useJitMappers: (0, __utils_ts.jitCompatCheck)(config.useJitMappers)
45
46
  }).createSession(schema), schema);
46
47
  db.$client = client;
47
48
  return db;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.cjs","names":["entityKind","NodeMsSqlSession","MsSqlDialect","DefaultLogger","V1","MsSqlDatabase","AutoPool"],"sources":["../../src/node-mssql/driver.ts"],"sourcesContent":["import type mssql from 'mssql';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MsSqlDatabase } from '~/mssql-core/db.ts';\nimport { MsSqlDialect } from '~/mssql-core/dialect.ts';\nimport type { DrizzleConfig, Equal } from '~/utils.ts';\nimport { AutoPool } from './pool.ts';\nimport type { NodeMsSqlClient, NodeMsSqlPreparedQueryHKT, NodeMsSqlQueryResultHKT } from './session.ts';\nimport { NodeMsSqlSession } from './session.ts';\n\nexport interface MsSqlDriverOptions {\n\tlogger?: Logger;\n\tuseJitMapper?: boolean;\n}\n\nexport class NodeMsSqlDriver {\n\tstatic readonly [entityKind]: string = 'NodeMsSqlDriver';\n\n\tconstructor(\n\t\tprivate client: NodeMsSqlClient,\n\t\tprivate dialect: MsSqlDialect,\n\t\tprivate options: MsSqlDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): NodeMsSqlSession<Record<string, unknown>, V1.TablesRelationalConfig> {\n\t\treturn new NodeMsSqlSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tuseJitMapper: this.options.useJitMapper,\n\t\t});\n\t}\n}\n\nexport { MsSqlDatabase } from '~/mssql-core/db.ts';\n\nexport type NodeMsSqlDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = MsSqlDatabase<NodeMsSqlQueryResultHKT, NodeMsSqlPreparedQueryHKT, TSchema>;\n\nexport type NodeMsSqlDrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeMsSqlClient = NodeMsSqlClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NodeMsSqlDatabase<TSchema> & {\n\t$client: Equal<TClient, NodeMsSqlClient> extends true ? AutoPool : TClient;\n} {\n\tconst dialect = new MsSqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\tif (isCallbackClient(client)) {\n\t\tclient = client.promise() as any;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new NodeMsSqlDriver(client as NodeMsSqlClient, dialect, {\n\t\tlogger,\n\t\tuseJitMapper: config.useJitMappers,\n\t});\n\tconst session = driver.createSession(schema);\n\tconst db = new MsSqlDatabase(dialect, session, schema) as NodeMsSqlDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function getMsSqlConnectionParams(connectionString: string): mssql.config | string {\n\ttry {\n\t\tconst url = new URL(connectionString);\n\t\treturn {\n\t\t\tuser: url.username,\n\t\t\tpassword: url.password,\n\t\t\tserver: url.hostname,\n\t\t\tport: Number.parseInt(url.port, 10),\n\t\t\tdatabase: url.pathname.replace(/^\\//, ''),\n\t\t\toptions: {\n\t\t\t\tencrypt: url.searchParams.get('encrypt') === 'true',\n\t\t\t\ttrustServerCertificate: url.searchParams.get('trustServerCertificate') === 'true',\n\t\t\t},\n\t\t};\n\t} catch {\n\t\treturn connectionString;\n\t}\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeMsSqlClient = AutoPool,\n>(\n\t...params:\n\t\t| [\n\t\t\tstring,\n\t\t]\n\t\t| [\n\t\t\tstring,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodeMsSqlDatabase<TSchema> & {\n\t$client: Equal<TClient, NodeMsSqlClient> extends true ? AutoPool : TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new AutoPool(getMsSqlConnectionParams(params[0]));\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t& ({ connection?: mssql.config | string; client?: TClient })\n\t\t& DrizzleConfig<TSchema>\n\t);\n\n\tif (client) return construct(client, drizzleConfig);\n\n\tconst instance = typeof connection === 'string'\n\t\t? new AutoPool(getMsSqlConnectionParams(connection))\n\t\t: new AutoPool(connection!);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\ninterface CallbackClient {\n\tpromise(): NodeMsSqlClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): NodeMsSqlDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,IAAa,kBAAb,MAA6B;CAC5B,QAAiBA,0BAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAA8B,EAAE,EACvC;EAHO;EACA;EACA;;CAIT,cACC,QACuE;AACvE,SAAO,IAAIC,4CAAiB,KAAK,QAAQ,KAAK,SAAS,QAAQ;GAC9D,QAAQ,KAAK,QAAQ;GACrB,cAAc,KAAK,QAAQ;GAC3B,CAAC;;;AAcJ,SAAS,UAIR,QACA,SAAiC,EAAE,EAGlC;CACD,MAAM,UAAU,IAAIC,sCAAc;CAClC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;AAEjB,KAAI,iBAAiB,OAAO,CAC3B,UAAS,OAAO,SAAS;CAG1B,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAQF,MAAM,KAAK,IAAIC,iCAAc,SALd,IAAI,gBAAgB,QAA2B,SAAS;EACtE;EACA,cAAc,OAAO;EACrB,CAAC,CACqB,cAAc,OAAO,EACG,OAAO;AACtD,CAAO,GAAI,UAAU;AAErB,QAAO;;AAGR,SAAgB,yBAAyB,kBAAiD;AACzF,KAAI;EACH,MAAM,MAAM,IAAI,IAAI,iBAAiB;AACrC,SAAO;GACN,MAAM,IAAI;GACV,UAAU,IAAI;GACd,QAAQ,IAAI;GACZ,MAAM,OAAO,SAAS,IAAI,MAAM,GAAG;GACnC,UAAU,IAAI,SAAS,QAAQ,OAAO,GAAG;GACzC,SAAS;IACR,SAAS,IAAI,aAAa,IAAI,UAAU,KAAK;IAC7C,wBAAwB,IAAI,aAAa,IAAI,yBAAyB,KAAK;IAC3E;GACD;SACM;AACP,SAAO;;;AAIT,SAAgB,QAIf,GAAG,QAoBF;AACD,KAAI,OAAO,OAAO,OAAO,SAGxB,QAAO,UAFU,IAAIC,iCAAS,yBAAyB,OAAO,GAAG,CAAC,EAEvC,OAAO,GAAyC;CAG5E,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAKxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAMnD,QAAO,UAJU,OAAO,eAAe,WACpC,IAAIA,iCAAS,yBAAyB,WAAW,CAAC,GAClD,IAAIA,iCAAS,WAAY,EAED,cAAc;;AAO1C,SAAS,iBAAiB,QAAuC;AAChE,QAAO,OAAO,OAAO,YAAY;;;CAI1B,SAAS,KACf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
1
+ {"version":3,"file":"driver.cjs","names":["entityKind","NodeMsSqlSession","MsSqlDialect","DefaultLogger","V1","MsSqlDatabase","AutoPool"],"sources":["../../src/node-mssql/driver.ts"],"sourcesContent":["import type mssql from 'mssql';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MsSqlDatabase } from '~/mssql-core/db.ts';\nimport { MsSqlDialect } from '~/mssql-core/dialect.ts';\nimport { type DrizzleConfig, type Equal, jitCompatCheck } from '~/utils.ts';\nimport { AutoPool } from './pool.ts';\nimport type { NodeMsSqlClient, NodeMsSqlPreparedQueryHKT, NodeMsSqlQueryResultHKT } from './session.ts';\nimport { NodeMsSqlSession } from './session.ts';\n\nexport interface MsSqlDriverOptions {\n\tlogger?: Logger;\n\tuseJitMappers?: boolean;\n}\n\nexport class NodeMsSqlDriver {\n\tstatic readonly [entityKind]: string = 'NodeMsSqlDriver';\n\n\tconstructor(\n\t\tprivate client: NodeMsSqlClient,\n\t\tprivate dialect: MsSqlDialect,\n\t\tprivate options: MsSqlDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): NodeMsSqlSession<Record<string, unknown>, V1.TablesRelationalConfig> {\n\t\treturn new NodeMsSqlSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tuseJitMappers: this.options.useJitMappers,\n\t\t});\n\t}\n}\n\nexport { MsSqlDatabase } from '~/mssql-core/db.ts';\n\nexport type NodeMsSqlDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = MsSqlDatabase<NodeMsSqlQueryResultHKT, NodeMsSqlPreparedQueryHKT, TSchema>;\n\nexport type NodeMsSqlDrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeMsSqlClient = NodeMsSqlClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NodeMsSqlDatabase<TSchema> & {\n\t$client: Equal<TClient, NodeMsSqlClient> extends true ? AutoPool : TClient;\n} {\n\tconst dialect = new MsSqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\tif (isCallbackClient(client)) {\n\t\tclient = client.promise() as any;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new NodeMsSqlDriver(client as NodeMsSqlClient, dialect, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\tconst session = driver.createSession(schema);\n\tconst db = new MsSqlDatabase(dialect, session, schema) as NodeMsSqlDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function getMsSqlConnectionParams(connectionString: string): mssql.config | string {\n\ttry {\n\t\tconst url = new URL(connectionString);\n\t\treturn {\n\t\t\tuser: url.username,\n\t\t\tpassword: url.password,\n\t\t\tserver: url.hostname,\n\t\t\tport: Number.parseInt(url.port, 10),\n\t\t\tdatabase: url.pathname.replace(/^\\//, ''),\n\t\t\toptions: {\n\t\t\t\tencrypt: url.searchParams.get('encrypt') === 'true',\n\t\t\t\ttrustServerCertificate: url.searchParams.get('trustServerCertificate') === 'true',\n\t\t\t},\n\t\t};\n\t} catch {\n\t\treturn connectionString;\n\t}\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeMsSqlClient = AutoPool,\n>(\n\t...params:\n\t\t| [\n\t\t\tstring,\n\t\t]\n\t\t| [\n\t\t\tstring,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodeMsSqlDatabase<TSchema> & {\n\t$client: Equal<TClient, NodeMsSqlClient> extends true ? AutoPool : TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new AutoPool(getMsSqlConnectionParams(params[0]));\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t& ({ connection?: mssql.config | string; client?: TClient })\n\t\t& DrizzleConfig<TSchema>\n\t);\n\n\tif (client) return construct(client, drizzleConfig);\n\n\tconst instance = typeof connection === 'string'\n\t\t? new AutoPool(getMsSqlConnectionParams(connection))\n\t\t: new AutoPool(connection!);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\ninterface CallbackClient {\n\tpromise(): NodeMsSqlClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): NodeMsSqlDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAiBA,IAAa,kBAAb,MAA6B;CAC5B,QAAiBA,0BAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAA8B,EAAE,EACvC;EAHO;EACA;EACA;;CAIT,cACC,QACuE;AACvE,SAAO,IAAIC,4CAAiB,KAAK,QAAQ,KAAK,SAAS,QAAQ;GAC9D,QAAQ,KAAK,QAAQ;GACrB,eAAe,KAAK,QAAQ;GAC5B,CAAC;;;AAcJ,SAAS,UAIR,QACA,SAAiC,EAAE,EAGlC;CACD,MAAM,UAAU,IAAIC,sCAAc;CAClC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;AAEjB,KAAI,iBAAiB,OAAO,CAC3B,UAAS,OAAO,SAAS;CAG1B,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAQF,MAAM,KAAK,IAAIC,iCAAc,SALd,IAAI,gBAAgB,QAA2B,SAAS;EACtE;EACA,8CAA8B,OAAO,cAAc;EACnD,CAAC,CACqB,cAAc,OAAO,EACG,OAAO;AACtD,CAAO,GAAI,UAAU;AAErB,QAAO;;AAGR,SAAgB,yBAAyB,kBAAiD;AACzF,KAAI;EACH,MAAM,MAAM,IAAI,IAAI,iBAAiB;AACrC,SAAO;GACN,MAAM,IAAI;GACV,UAAU,IAAI;GACd,QAAQ,IAAI;GACZ,MAAM,OAAO,SAAS,IAAI,MAAM,GAAG;GACnC,UAAU,IAAI,SAAS,QAAQ,OAAO,GAAG;GACzC,SAAS;IACR,SAAS,IAAI,aAAa,IAAI,UAAU,KAAK;IAC7C,wBAAwB,IAAI,aAAa,IAAI,yBAAyB,KAAK;IAC3E;GACD;SACM;AACP,SAAO;;;AAIT,SAAgB,QAIf,GAAG,QAoBF;AACD,KAAI,OAAO,OAAO,OAAO,SAGxB,QAAO,UAFU,IAAIC,iCAAS,yBAAyB,OAAO,GAAG,CAAC,EAEvC,OAAO,GAAyC;CAG5E,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAKxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAMnD,QAAO,UAJU,OAAO,eAAe,WACpC,IAAIA,iCAAS,yBAAyB,WAAW,CAAC,GAClD,IAAIA,iCAAS,WAAY,EAED,cAAc;;AAO1C,SAAS,iBAAiB,QAAuC;AAChE,QAAO,OAAO,OAAO,YAAY;;;CAI1B,SAAS,KACf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
@@ -11,7 +11,7 @@ import { MsSqlDatabase, MsSqlDatabase as MsSqlDatabase$1 } from "../mssql-core/d
11
11
  //#region src/node-mssql/driver.d.ts
12
12
  interface MsSqlDriverOptions {
13
13
  logger?: Logger;
14
- useJitMapper?: boolean;
14
+ useJitMappers?: boolean;
15
15
  }
16
16
  declare class NodeMsSqlDriver {
17
17
  private client;
@@ -11,7 +11,7 @@ import mssql from "mssql";
11
11
  //#region src/node-mssql/driver.d.ts
12
12
  interface MsSqlDriverOptions {
13
13
  logger?: Logger;
14
- useJitMapper?: boolean;
14
+ useJitMappers?: boolean;
15
15
  }
16
16
  declare class NodeMsSqlDriver {
17
17
  private client;