semola 0.5.1 → 0.5.3

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 (488) hide show
  1. package/README.md +144 -29
  2. package/dist/api/core/index.cjs +206 -0
  3. package/dist/api/core/index.d.cts +21 -0
  4. package/dist/api/core/index.d.cts.map +1 -0
  5. package/dist/api/core/index.d.mts +21 -0
  6. package/dist/api/core/index.d.mts.map +1 -0
  7. package/dist/api/core/index.mjs +208 -0
  8. package/dist/api/core/index.mjs.map +1 -0
  9. package/dist/api/core/types.d.cts +107 -0
  10. package/dist/api/core/types.d.cts.map +1 -0
  11. package/dist/api/core/types.d.mts +107 -0
  12. package/dist/api/core/types.d.mts.map +1 -0
  13. package/dist/api/middleware/index.cjs +8 -0
  14. package/dist/api/middleware/index.d.cts +11 -0
  15. package/dist/api/middleware/index.d.cts.map +1 -0
  16. package/dist/api/middleware/index.d.mts +11 -0
  17. package/dist/api/middleware/index.d.mts.map +1 -0
  18. package/dist/api/middleware/index.mjs +10 -0
  19. package/dist/api/middleware/index.mjs.map +1 -0
  20. package/dist/api/middleware/types.d.cts +16 -0
  21. package/dist/api/middleware/types.d.cts.map +1 -0
  22. package/dist/api/middleware/types.d.mts +16 -0
  23. package/dist/api/middleware/types.d.mts.map +1 -0
  24. package/dist/api/openapi/index.cjs +254 -0
  25. package/dist/api/openapi/index.mjs +256 -0
  26. package/dist/api/openapi/index.mjs.map +1 -0
  27. package/dist/api/openapi/types.d.cts +60 -0
  28. package/dist/api/openapi/types.d.cts.map +1 -0
  29. package/dist/api/openapi/types.d.mts +60 -0
  30. package/dist/api/openapi/types.d.mts.map +1 -0
  31. package/dist/api/validation/index.cjs +64 -0
  32. package/dist/api/validation/index.mjs +61 -0
  33. package/dist/api/validation/index.mjs.map +1 -0
  34. package/dist/cache/types.d.cts +17 -0
  35. package/dist/cache/types.d.cts.map +1 -0
  36. package/dist/cache/types.d.mts +17 -0
  37. package/dist/cache/types.d.mts.map +1 -0
  38. package/dist/cron/builder/index.cjs +166 -0
  39. package/dist/cron/builder/index.d.cts +28 -0
  40. package/dist/cron/builder/index.d.cts.map +1 -0
  41. package/dist/cron/builder/index.d.mts +28 -0
  42. package/dist/cron/builder/index.d.mts.map +1 -0
  43. package/dist/cron/builder/index.mjs +163 -0
  44. package/dist/cron/builder/index.mjs.map +1 -0
  45. package/dist/cron/builder/types.cjs +27 -0
  46. package/dist/cron/builder/types.d.cts +79 -0
  47. package/dist/cron/builder/types.d.cts.map +1 -0
  48. package/dist/cron/builder/types.d.mts +79 -0
  49. package/dist/cron/builder/types.d.mts.map +1 -0
  50. package/dist/cron/builder/types.mjs +28 -0
  51. package/dist/cron/builder/types.mjs.map +1 -0
  52. package/dist/cron/core/index.cjs +308 -0
  53. package/dist/cron/core/index.d.cts +39 -0
  54. package/dist/cron/core/index.d.cts.map +1 -0
  55. package/dist/cron/core/index.d.mts +39 -0
  56. package/dist/cron/core/index.d.mts.map +1 -0
  57. package/dist/cron/core/index.mjs +310 -0
  58. package/dist/cron/core/index.mjs.map +1 -0
  59. package/dist/cron/core/scanner.cjs +237 -0
  60. package/dist/cron/core/scanner.mjs +238 -0
  61. package/dist/cron/core/scanner.mjs.map +1 -0
  62. package/dist/cron/core/types.d.cts +11 -0
  63. package/dist/cron/core/types.d.cts.map +1 -0
  64. package/dist/cron/core/types.d.mts +11 -0
  65. package/dist/cron/core/types.d.mts.map +1 -0
  66. package/dist/errors/types.d.cts +5 -0
  67. package/dist/errors/types.d.cts.map +1 -0
  68. package/dist/errors/types.d.mts +5 -0
  69. package/dist/errors/types.d.mts.map +1 -0
  70. package/dist/i18n/types.d.cts +13 -0
  71. package/dist/i18n/types.d.cts.map +1 -0
  72. package/dist/i18n/types.d.mts +13 -0
  73. package/dist/i18n/types.d.mts.map +1 -0
  74. package/dist/lib/api/index.cjs +5 -0
  75. package/dist/lib/api/index.d.cts +5 -0
  76. package/dist/lib/api/index.d.mts +5 -0
  77. package/dist/lib/api/index.mjs +3 -0
  78. package/dist/lib/cache/index.cjs +74 -0
  79. package/dist/lib/cache/index.d.cts +36 -0
  80. package/dist/lib/cache/index.d.cts.map +1 -0
  81. package/dist/lib/cache/index.d.mts +36 -0
  82. package/dist/lib/cache/index.d.mts.map +1 -0
  83. package/dist/lib/cache/index.mjs +75 -0
  84. package/dist/lib/cache/index.mjs.map +1 -0
  85. package/dist/lib/cron/index.cjs +13 -0
  86. package/dist/lib/cron/index.d.cts +4 -0
  87. package/dist/lib/cron/index.d.mts +4 -0
  88. package/dist/lib/cron/index.mjs +4 -0
  89. package/dist/lib/errors/index.cjs +30 -0
  90. package/dist/lib/errors/index.d.cts +13 -0
  91. package/dist/lib/errors/index.d.cts.map +1 -0
  92. package/dist/lib/errors/index.d.mts +13 -0
  93. package/dist/lib/errors/index.d.mts.map +1 -0
  94. package/dist/lib/errors/index.mjs +28 -0
  95. package/dist/lib/errors/index.mjs.map +1 -0
  96. package/dist/lib/i18n/index.cjs +42 -0
  97. package/dist/lib/i18n/index.d.cts +20 -0
  98. package/dist/lib/i18n/index.d.cts.map +1 -0
  99. package/dist/lib/i18n/index.d.mts +20 -0
  100. package/dist/lib/i18n/index.d.mts.map +1 -0
  101. package/dist/lib/i18n/index.mjs +43 -0
  102. package/dist/lib/i18n/index.mjs.map +1 -0
  103. package/dist/lib/logging/index.cjs +18 -0
  104. package/dist/lib/logging/index.d.cts +7 -0
  105. package/dist/lib/logging/index.d.mts +7 -0
  106. package/dist/lib/logging/index.mjs +5 -0
  107. package/dist/lib/orm/index.cjs +20 -0
  108. package/dist/lib/orm/index.d.cts +7 -0
  109. package/dist/lib/orm/index.d.mts +7 -0
  110. package/dist/lib/orm/index.mjs +6 -0
  111. package/dist/lib/policy/index.cjs +99 -0
  112. package/dist/lib/policy/index.d.cts +21 -0
  113. package/dist/lib/policy/index.d.cts.map +1 -0
  114. package/dist/lib/policy/index.d.mts +21 -0
  115. package/dist/lib/policy/index.d.mts.map +1 -0
  116. package/dist/lib/policy/index.mjs +81 -0
  117. package/dist/lib/policy/index.mjs.map +1 -0
  118. package/dist/lib/prompts/index.cjs +409 -0
  119. package/dist/lib/prompts/index.d.cts +31 -0
  120. package/dist/lib/prompts/index.d.cts.map +1 -0
  121. package/dist/lib/prompts/index.d.mts +31 -0
  122. package/dist/lib/prompts/index.d.mts.map +1 -0
  123. package/dist/lib/prompts/index.mjs +405 -0
  124. package/dist/lib/prompts/index.mjs.map +1 -0
  125. package/dist/lib/pubsub/index.cjs +117 -0
  126. package/dist/lib/pubsub/index.d.cts +36 -0
  127. package/dist/lib/pubsub/index.d.cts.map +1 -0
  128. package/dist/lib/pubsub/index.d.mts +36 -0
  129. package/dist/lib/pubsub/index.d.mts.map +1 -0
  130. package/dist/lib/pubsub/index.mjs +118 -0
  131. package/dist/lib/pubsub/index.mjs.map +1 -0
  132. package/dist/lib/queue/index.cjs +182 -0
  133. package/dist/lib/queue/index.d.cts +32 -0
  134. package/dist/lib/queue/index.d.cts.map +1 -0
  135. package/dist/lib/queue/index.d.mts +32 -0
  136. package/dist/lib/queue/index.d.mts.map +1 -0
  137. package/dist/lib/queue/index.mjs +183 -0
  138. package/dist/lib/queue/index.mjs.map +1 -0
  139. package/dist/lib/workflow/index.cjs +534 -0
  140. package/dist/lib/workflow/index.d.cts +7 -0
  141. package/dist/lib/workflow/index.d.cts.map +1 -0
  142. package/dist/lib/workflow/index.d.mts +7 -0
  143. package/dist/lib/workflow/index.d.mts.map +1 -0
  144. package/dist/lib/workflow/index.mjs +535 -0
  145. package/dist/lib/workflow/index.mjs.map +1 -0
  146. package/dist/logging/core/index.cjs +99 -0
  147. package/dist/logging/core/index.d.cts +26 -0
  148. package/dist/logging/core/index.d.cts.map +1 -0
  149. package/dist/logging/core/index.d.mts +26 -0
  150. package/dist/logging/core/index.d.mts.map +1 -0
  151. package/dist/logging/core/index.mjs +99 -0
  152. package/dist/logging/core/index.mjs.map +1 -0
  153. package/dist/logging/core/types.cjs +10 -0
  154. package/dist/logging/core/types.d.cts +22 -0
  155. package/dist/logging/core/types.d.cts.map +1 -0
  156. package/dist/logging/core/types.d.mts +22 -0
  157. package/dist/logging/core/types.d.mts.map +1 -0
  158. package/dist/logging/core/types.mjs +12 -0
  159. package/dist/logging/core/types.mjs.map +1 -0
  160. package/dist/logging/formatter/index.cjs +119 -0
  161. package/dist/logging/formatter/index.d.cts +27 -0
  162. package/dist/logging/formatter/index.d.cts.map +1 -0
  163. package/dist/logging/formatter/index.d.mts +27 -0
  164. package/dist/logging/formatter/index.d.mts.map +1 -0
  165. package/dist/logging/formatter/index.mjs +115 -0
  166. package/dist/logging/formatter/index.mjs.map +1 -0
  167. package/dist/logging/formatter/types.d.cts +5 -0
  168. package/dist/logging/formatter/types.d.cts.map +1 -0
  169. package/dist/logging/formatter/types.d.mts +5 -0
  170. package/dist/logging/formatter/types.d.mts.map +1 -0
  171. package/dist/logging/provider/index.cjs +165 -0
  172. package/dist/logging/provider/index.d.cts +28 -0
  173. package/dist/logging/provider/index.d.cts.map +1 -0
  174. package/dist/logging/provider/index.d.mts +28 -0
  175. package/dist/logging/provider/index.d.mts.map +1 -0
  176. package/dist/logging/provider/index.mjs +165 -0
  177. package/dist/logging/provider/index.mjs.map +1 -0
  178. package/dist/logging/provider/types.d.cts +23 -0
  179. package/dist/logging/provider/types.d.cts.map +1 -0
  180. package/dist/logging/provider/types.d.mts +23 -0
  181. package/dist/logging/provider/types.d.mts.map +1 -0
  182. package/dist/node_modules/@standard-schema/spec/dist/index.d.cts +80 -0
  183. package/dist/node_modules/@standard-schema/spec/dist/index.d.cts.map +1 -0
  184. package/dist/node_modules/@standard-schema/spec/dist/index.d.mts +80 -0
  185. package/dist/node_modules/@standard-schema/spec/dist/index.d.mts.map +1 -0
  186. package/dist/orm/column.cjs +137 -0
  187. package/dist/orm/column.d.cts +121 -0
  188. package/dist/orm/column.d.cts.map +1 -0
  189. package/dist/orm/column.d.mts +121 -0
  190. package/dist/orm/column.d.mts.map +1 -0
  191. package/dist/orm/column.mjs +132 -0
  192. package/dist/orm/column.mjs.map +1 -0
  193. package/dist/orm/dialect/index.cjs +14 -0
  194. package/dist/orm/dialect/index.mjs +16 -0
  195. package/dist/orm/dialect/index.mjs.map +1 -0
  196. package/dist/orm/dialect/mysql.cjs +31 -0
  197. package/dist/orm/dialect/mysql.mjs +33 -0
  198. package/dist/orm/dialect/mysql.mjs.map +1 -0
  199. package/dist/orm/dialect/postgres.cjs +23 -0
  200. package/dist/orm/dialect/postgres.mjs +25 -0
  201. package/dist/orm/dialect/postgres.mjs.map +1 -0
  202. package/dist/orm/dialect/sqlite.cjs +31 -0
  203. package/dist/orm/dialect/sqlite.mjs +33 -0
  204. package/dist/orm/dialect/sqlite.mjs.map +1 -0
  205. package/dist/orm/dialect/utils.cjs +8 -0
  206. package/dist/orm/dialect/utils.mjs +10 -0
  207. package/dist/orm/dialect/utils.mjs.map +1 -0
  208. package/dist/orm/internal/table-columns.cjs +31 -0
  209. package/dist/orm/internal/table-columns.mjs +32 -0
  210. package/dist/orm/internal/table-columns.mjs.map +1 -0
  211. package/dist/orm/internal/table-lookup.cjs +35 -0
  212. package/dist/orm/internal/table-lookup.mjs +35 -0
  213. package/dist/orm/internal/table-lookup.mjs.map +1 -0
  214. package/dist/orm/internal/table-relations.cjs +28 -0
  215. package/dist/orm/internal/table-relations.mjs +29 -0
  216. package/dist/orm/internal/table-relations.mjs.map +1 -0
  217. package/dist/orm/migration/config.cjs +7 -0
  218. package/dist/orm/migration/config.d.cts +7 -0
  219. package/dist/orm/migration/config.d.cts.map +1 -0
  220. package/dist/orm/migration/config.d.mts +7 -0
  221. package/dist/orm/migration/config.d.mts.map +1 -0
  222. package/dist/orm/migration/config.mjs +8 -0
  223. package/dist/orm/migration/config.mjs.map +1 -0
  224. package/dist/orm/migration/types.d.cts +20 -0
  225. package/dist/orm/migration/types.d.cts.map +1 -0
  226. package/dist/orm/migration/types.d.mts +20 -0
  227. package/dist/orm/migration/types.d.mts.map +1 -0
  228. package/dist/orm/orm.cjs +41 -0
  229. package/dist/orm/orm.d.cts +18 -0
  230. package/dist/orm/orm.d.cts.map +1 -0
  231. package/dist/orm/orm.d.mts +18 -0
  232. package/dist/orm/orm.d.mts.map +1 -0
  233. package/dist/orm/orm.mjs +43 -0
  234. package/dist/orm/orm.mjs.map +1 -0
  235. package/dist/orm/relation.cjs +18 -0
  236. package/dist/orm/relation.d.cts +8 -0
  237. package/dist/orm/relation.d.cts.map +1 -0
  238. package/dist/orm/relation.d.mts +8 -0
  239. package/dist/orm/relation.d.mts.map +1 -0
  240. package/dist/orm/relation.mjs +19 -0
  241. package/dist/orm/relation.mjs.map +1 -0
  242. package/dist/orm/runtime/builders/mutations.cjs +29 -0
  243. package/dist/orm/runtime/builders/mutations.mjs +28 -0
  244. package/dist/orm/runtime/builders/mutations.mjs.map +1 -0
  245. package/dist/orm/runtime/builders/select.cjs +18 -0
  246. package/dist/orm/runtime/builders/select.mjs +19 -0
  247. package/dist/orm/runtime/builders/select.mjs.map +1 -0
  248. package/dist/orm/runtime/client.cjs +90 -0
  249. package/dist/orm/runtime/client.mjs +92 -0
  250. package/dist/orm/runtime/client.mjs.map +1 -0
  251. package/dist/orm/runtime/context.cjs +49 -0
  252. package/dist/orm/runtime/context.mjs +51 -0
  253. package/dist/orm/runtime/context.mjs.map +1 -0
  254. package/dist/orm/runtime/dialect/index.cjs +11 -0
  255. package/dist/orm/runtime/dialect/index.mjs +13 -0
  256. package/dist/orm/runtime/dialect/index.mjs.map +1 -0
  257. package/dist/orm/runtime/dialect/mysql.cjs +95 -0
  258. package/dist/orm/runtime/dialect/mysql.mjs +97 -0
  259. package/dist/orm/runtime/dialect/mysql.mjs.map +1 -0
  260. package/dist/orm/runtime/dialect/postgres.cjs +51 -0
  261. package/dist/orm/runtime/dialect/postgres.mjs +53 -0
  262. package/dist/orm/runtime/dialect/postgres.mjs.map +1 -0
  263. package/dist/orm/runtime/dialect/sqlite.cjs +4 -0
  264. package/dist/orm/runtime/dialect/sqlite.mjs +7 -0
  265. package/dist/orm/runtime/dialect/sqlite.mjs.map +1 -0
  266. package/dist/orm/runtime/errors.cjs +19 -0
  267. package/dist/orm/runtime/errors.mjs +21 -0
  268. package/dist/orm/runtime/errors.mjs.map +1 -0
  269. package/dist/orm/runtime/hydrate/many.cjs +46 -0
  270. package/dist/orm/runtime/hydrate/many.mjs +48 -0
  271. package/dist/orm/runtime/hydrate/many.mjs.map +1 -0
  272. package/dist/orm/runtime/hydrate/one.cjs +38 -0
  273. package/dist/orm/runtime/hydrate/one.mjs +40 -0
  274. package/dist/orm/runtime/hydrate/one.mjs.map +1 -0
  275. package/dist/orm/runtime/hydrate.cjs +49 -0
  276. package/dist/orm/runtime/hydrate.mjs +51 -0
  277. package/dist/orm/runtime/hydrate.mjs.map +1 -0
  278. package/dist/orm/runtime/rows.cjs +30 -0
  279. package/dist/orm/runtime/rows.mjs +31 -0
  280. package/dist/orm/runtime/rows.mjs.map +1 -0
  281. package/dist/orm/runtime/utils.cjs +27 -0
  282. package/dist/orm/runtime/utils.mjs +27 -0
  283. package/dist/orm/runtime/utils.mjs.map +1 -0
  284. package/dist/orm/sql/parse-array.cjs +64 -0
  285. package/dist/orm/sql/parse-array.mjs +66 -0
  286. package/dist/orm/sql/parse-array.mjs.map +1 -0
  287. package/dist/orm/sql/plan/select.cjs +36 -0
  288. package/dist/orm/sql/plan/select.mjs +38 -0
  289. package/dist/orm/sql/plan/select.mjs.map +1 -0
  290. package/dist/orm/sql/plan/where/operators.cjs +95 -0
  291. package/dist/orm/sql/plan/where/operators.mjs +97 -0
  292. package/dist/orm/sql/plan/where/operators.mjs.map +1 -0
  293. package/dist/orm/sql/plan/where.cjs +59 -0
  294. package/dist/orm/sql/plan/where.mjs +61 -0
  295. package/dist/orm/sql/plan/where.mjs.map +1 -0
  296. package/dist/orm/sql/serialize/clauses.cjs +36 -0
  297. package/dist/orm/sql/serialize/clauses.mjs +37 -0
  298. package/dist/orm/sql/serialize/clauses.mjs.map +1 -0
  299. package/dist/orm/sql/serialize/joins.cjs +31 -0
  300. package/dist/orm/sql/serialize/joins.mjs +33 -0
  301. package/dist/orm/sql/serialize/joins.mjs.map +1 -0
  302. package/dist/orm/sql/serialize/values.cjs +30 -0
  303. package/dist/orm/sql/serialize/values.mjs +32 -0
  304. package/dist/orm/sql/serialize/values.mjs.map +1 -0
  305. package/dist/orm/sql/serialize/where/predicate.cjs +73 -0
  306. package/dist/orm/sql/serialize/where/predicate.mjs +75 -0
  307. package/dist/orm/sql/serialize/where/predicate.mjs.map +1 -0
  308. package/dist/orm/sql/serialize/where/tree.cjs +26 -0
  309. package/dist/orm/sql/serialize/where/tree.mjs +28 -0
  310. package/dist/orm/sql/serialize/where/tree.mjs.map +1 -0
  311. package/dist/orm/sql/serialize/where.cjs +10 -0
  312. package/dist/orm/sql/serialize/where.mjs +12 -0
  313. package/dist/orm/sql/serialize/where.mjs.map +1 -0
  314. package/dist/orm/sql/serialize.cjs +24 -0
  315. package/dist/orm/sql/serialize.mjs +25 -0
  316. package/dist/orm/sql/serialize.mjs.map +1 -0
  317. package/dist/orm/table.cjs +12 -0
  318. package/dist/orm/table.d.cts +12 -0
  319. package/dist/orm/table.d.cts.map +1 -0
  320. package/dist/orm/table.d.mts +12 -0
  321. package/dist/orm/table.d.mts.map +1 -0
  322. package/dist/orm/table.mjs +14 -0
  323. package/dist/orm/table.mjs.map +1 -0
  324. package/dist/orm/types.d.cts +183 -0
  325. package/dist/orm/types.d.cts.map +1 -0
  326. package/dist/orm/types.d.mts +183 -0
  327. package/dist/orm/types.d.mts.map +1 -0
  328. package/dist/policy/helpers.cjs +206 -0
  329. package/dist/policy/helpers.d.cts +50 -0
  330. package/dist/policy/helpers.d.cts.map +1 -0
  331. package/dist/policy/helpers.d.mts +50 -0
  332. package/dist/policy/helpers.d.mts.map +1 -0
  333. package/dist/policy/helpers.mjs +190 -0
  334. package/dist/policy/helpers.mjs.map +1 -0
  335. package/dist/policy/types.d.cts +16 -0
  336. package/dist/policy/types.d.cts.map +1 -0
  337. package/dist/policy/types.d.mts +16 -0
  338. package/dist/policy/types.d.mts.map +1 -0
  339. package/dist/prompts/core/keys.cjs +165 -0
  340. package/dist/prompts/core/keys.mjs +167 -0
  341. package/dist/prompts/core/keys.mjs.map +1 -0
  342. package/dist/prompts/core/runtime.cjs +104 -0
  343. package/dist/prompts/core/runtime.mjs +106 -0
  344. package/dist/prompts/core/runtime.mjs.map +1 -0
  345. package/dist/prompts/core/session.cjs +98 -0
  346. package/dist/prompts/core/session.mjs +100 -0
  347. package/dist/prompts/core/session.mjs.map +1 -0
  348. package/dist/prompts/core/types.d.cts +21 -0
  349. package/dist/prompts/core/types.d.cts.map +1 -0
  350. package/dist/prompts/core/types.d.mts +21 -0
  351. package/dist/prompts/core/types.d.mts.map +1 -0
  352. package/dist/prompts/types.d.cts +52 -0
  353. package/dist/prompts/types.d.cts.map +1 -0
  354. package/dist/prompts/types.d.mts +52 -0
  355. package/dist/prompts/types.d.mts.map +1 -0
  356. package/dist/pubsub/types.d.cts +10 -0
  357. package/dist/pubsub/types.d.cts.map +1 -0
  358. package/dist/pubsub/types.d.mts +10 -0
  359. package/dist/pubsub/types.d.mts.map +1 -0
  360. package/dist/queue/types.d.cts +47 -0
  361. package/dist/queue/types.d.cts.map +1 -0
  362. package/dist/queue/types.d.mts +47 -0
  363. package/dist/queue/types.d.mts.map +1 -0
  364. package/dist/workflow/types.d.cts +83 -0
  365. package/dist/workflow/types.d.cts.map +1 -0
  366. package/dist/workflow/types.d.mts +83 -0
  367. package/dist/workflow/types.d.mts.map +1 -0
  368. package/package.json +112 -16
  369. package/dist/lib/api/core/index.d.ts +0 -15
  370. package/dist/lib/api/core/index.d.ts.map +0 -1
  371. package/dist/lib/api/core/index.js +0 -218
  372. package/dist/lib/api/core/index.js.map +0 -1
  373. package/dist/lib/api/core/index.test.d.ts +0 -2
  374. package/dist/lib/api/core/index.test.d.ts.map +0 -1
  375. package/dist/lib/api/core/index.test.js +0 -219
  376. package/dist/lib/api/core/index.test.js.map +0 -1
  377. package/dist/lib/api/core/types.d.ts +0 -109
  378. package/dist/lib/api/core/types.d.ts.map +0 -1
  379. package/dist/lib/api/core/types.js +0 -2
  380. package/dist/lib/api/core/types.js.map +0 -1
  381. package/dist/lib/api/index.d.ts +0 -5
  382. package/dist/lib/api/index.d.ts.map +0 -1
  383. package/dist/lib/api/index.js +0 -3
  384. package/dist/lib/api/index.js.map +0 -1
  385. package/dist/lib/api/middleware/index.d.ts +0 -7
  386. package/dist/lib/api/middleware/index.d.ts.map +0 -1
  387. package/dist/lib/api/middleware/index.js +0 -7
  388. package/dist/lib/api/middleware/index.js.map +0 -1
  389. package/dist/lib/api/middleware/index.test.d.ts +0 -2
  390. package/dist/lib/api/middleware/index.test.d.ts.map +0 -1
  391. package/dist/lib/api/middleware/index.test.js +0 -67
  392. package/dist/lib/api/middleware/index.test.js.map +0 -1
  393. package/dist/lib/api/middleware/types.d.ts +0 -12
  394. package/dist/lib/api/middleware/types.d.ts.map +0 -1
  395. package/dist/lib/api/middleware/types.js +0 -2
  396. package/dist/lib/api/middleware/types.js.map +0 -1
  397. package/dist/lib/api/openapi/index.d.ts +0 -31
  398. package/dist/lib/api/openapi/index.d.ts.map +0 -1
  399. package/dist/lib/api/openapi/index.js +0 -284
  400. package/dist/lib/api/openapi/index.js.map +0 -1
  401. package/dist/lib/api/openapi/index.test.d.ts +0 -2
  402. package/dist/lib/api/openapi/index.test.d.ts.map +0 -1
  403. package/dist/lib/api/openapi/index.test.js +0 -359
  404. package/dist/lib/api/openapi/index.test.js.map +0 -1
  405. package/dist/lib/api/openapi/types.d.ts +0 -57
  406. package/dist/lib/api/openapi/types.d.ts.map +0 -1
  407. package/dist/lib/api/openapi/types.js +0 -5
  408. package/dist/lib/api/openapi/types.js.map +0 -1
  409. package/dist/lib/api/validation/index.d.ts +0 -33
  410. package/dist/lib/api/validation/index.d.ts.map +0 -1
  411. package/dist/lib/api/validation/index.js +0 -92
  412. package/dist/lib/api/validation/index.js.map +0 -1
  413. package/dist/lib/api/validation/index.test.d.ts +0 -2
  414. package/dist/lib/api/validation/index.test.d.ts.map +0 -1
  415. package/dist/lib/api/validation/index.test.js +0 -135
  416. package/dist/lib/api/validation/index.test.js.map +0 -1
  417. package/dist/lib/cache/index.d.ts +0 -25
  418. package/dist/lib/cache/index.d.ts.map +0 -1
  419. package/dist/lib/cache/index.js +0 -62
  420. package/dist/lib/cache/index.js.map +0 -1
  421. package/dist/lib/cache/index.test.d.ts +0 -2
  422. package/dist/lib/cache/index.test.d.ts.map +0 -1
  423. package/dist/lib/cache/index.test.js +0 -314
  424. package/dist/lib/cache/index.test.js.map +0 -1
  425. package/dist/lib/cache/types.d.ts +0 -5
  426. package/dist/lib/cache/types.d.ts.map +0 -1
  427. package/dist/lib/cache/types.js +0 -2
  428. package/dist/lib/cache/types.js.map +0 -1
  429. package/dist/lib/errors/index.d.ts +0 -9
  430. package/dist/lib/errors/index.d.ts.map +0 -1
  431. package/dist/lib/errors/index.js +0 -25
  432. package/dist/lib/errors/index.js.map +0 -1
  433. package/dist/lib/errors/index.test.d.ts +0 -2
  434. package/dist/lib/errors/index.test.d.ts.map +0 -1
  435. package/dist/lib/errors/index.test.js +0 -197
  436. package/dist/lib/errors/index.test.js.map +0 -1
  437. package/dist/lib/errors/types.d.ts +0 -2
  438. package/dist/lib/errors/types.d.ts.map +0 -1
  439. package/dist/lib/errors/types.js +0 -2
  440. package/dist/lib/errors/types.js.map +0 -1
  441. package/dist/lib/i18n/index.d.ts +0 -18
  442. package/dist/lib/i18n/index.d.ts.map +0 -1
  443. package/dist/lib/i18n/index.js +0 -38
  444. package/dist/lib/i18n/index.js.map +0 -1
  445. package/dist/lib/i18n/index.test.d.ts +0 -2
  446. package/dist/lib/i18n/index.test.d.ts.map +0 -1
  447. package/dist/lib/i18n/index.test.js +0 -402
  448. package/dist/lib/i18n/index.test.js.map +0 -1
  449. package/dist/lib/i18n/types.d.ts +0 -15
  450. package/dist/lib/i18n/types.d.ts.map +0 -1
  451. package/dist/lib/i18n/types.js +0 -2
  452. package/dist/lib/i18n/types.js.map +0 -1
  453. package/dist/lib/policy/index.d.ts +0 -9
  454. package/dist/lib/policy/index.d.ts.map +0 -1
  455. package/dist/lib/policy/index.js +0 -51
  456. package/dist/lib/policy/index.js.map +0 -1
  457. package/dist/lib/policy/index.test.d.ts +0 -2
  458. package/dist/lib/policy/index.test.d.ts.map +0 -1
  459. package/dist/lib/policy/index.test.js +0 -328
  460. package/dist/lib/policy/index.test.js.map +0 -1
  461. package/dist/lib/policy/types.d.ts +0 -27
  462. package/dist/lib/policy/types.d.ts.map +0 -1
  463. package/dist/lib/policy/types.js +0 -2
  464. package/dist/lib/policy/types.js.map +0 -1
  465. package/dist/lib/pubsub/index.d.ts +0 -23
  466. package/dist/lib/pubsub/index.d.ts.map +0 -1
  467. package/dist/lib/pubsub/index.js +0 -55
  468. package/dist/lib/pubsub/index.js.map +0 -1
  469. package/dist/lib/pubsub/index.test.d.ts +0 -2
  470. package/dist/lib/pubsub/index.test.d.ts.map +0 -1
  471. package/dist/lib/pubsub/index.test.js +0 -550
  472. package/dist/lib/pubsub/index.test.js.map +0 -1
  473. package/dist/lib/pubsub/types.d.ts +0 -7
  474. package/dist/lib/pubsub/types.d.ts.map +0 -1
  475. package/dist/lib/pubsub/types.js +0 -2
  476. package/dist/lib/pubsub/types.js.map +0 -1
  477. package/dist/lib/queue/index.d.ts +0 -28
  478. package/dist/lib/queue/index.d.ts.map +0 -1
  479. package/dist/lib/queue/index.js +0 -211
  480. package/dist/lib/queue/index.js.map +0 -1
  481. package/dist/lib/queue/index.test.d.ts +0 -2
  482. package/dist/lib/queue/index.test.d.ts.map +0 -1
  483. package/dist/lib/queue/index.test.js +0 -740
  484. package/dist/lib/queue/index.test.js.map +0 -1
  485. package/dist/lib/queue/types.d.ts +0 -52
  486. package/dist/lib/queue/types.d.ts.map +0 -1
  487. package/dist/lib/queue/types.js +0 -2
  488. package/dist/lib/queue/types.js.map +0 -1
@@ -0,0 +1,36 @@
1
+ //#region src/lib/orm/sql/serialize/clauses.ts
2
+ function buildLimitClause(sql, limit, offset, dialect) {
3
+ if (limit != null && offset != null) return sql`LIMIT ${limit} OFFSET ${offset}`;
4
+ if (limit != null) return sql`LIMIT ${limit}`;
5
+ if (offset != null) {
6
+ if (dialect === "mysql") return sql`LIMIT 18446744073709551615 OFFSET ${offset}`;
7
+ if (dialect === "sqlite") return sql`LIMIT -1 OFFSET ${offset}`;
8
+ return sql`OFFSET ${offset}`;
9
+ }
10
+ return sql``;
11
+ }
12
+ function buildOrderByClause(sql, table, plan) {
13
+ if (plan.orderBy.length === 0) return sql``;
14
+ const fragments = [];
15
+ for (const { key, direction } of plan.orderBy) {
16
+ const col = table.columns[key];
17
+ if (!col) continue;
18
+ if (direction === "desc") {
19
+ fragments.push(sql`${sql(col.meta.sqlName)} DESC`);
20
+ continue;
21
+ }
22
+ fragments.push(sql`${sql(col.meta.sqlName)} ASC`);
23
+ }
24
+ const firstOrderBy = fragments[0];
25
+ if (!firstOrderBy) return sql``;
26
+ let joined = firstOrderBy;
27
+ for (let index = 1; index < fragments.length; index++) {
28
+ const fragment = fragments[index];
29
+ if (!fragment) continue;
30
+ joined = sql`${joined}, ${fragment}`;
31
+ }
32
+ return sql`ORDER BY ${joined}`;
33
+ }
34
+ //#endregion
35
+ exports.buildLimitClause = buildLimitClause;
36
+ exports.buildOrderByClause = buildOrderByClause;
@@ -0,0 +1,37 @@
1
+ //#region src/lib/orm/sql/serialize/clauses.ts
2
+ function buildLimitClause(sql, limit, offset, dialect) {
3
+ if (limit != null && offset != null) return sql`LIMIT ${limit} OFFSET ${offset}`;
4
+ if (limit != null) return sql`LIMIT ${limit}`;
5
+ if (offset != null) {
6
+ if (dialect === "mysql") return sql`LIMIT 18446744073709551615 OFFSET ${offset}`;
7
+ if (dialect === "sqlite") return sql`LIMIT -1 OFFSET ${offset}`;
8
+ return sql`OFFSET ${offset}`;
9
+ }
10
+ return sql``;
11
+ }
12
+ function buildOrderByClause(sql, table, plan) {
13
+ if (plan.orderBy.length === 0) return sql``;
14
+ const fragments = [];
15
+ for (const { key, direction } of plan.orderBy) {
16
+ const col = table.columns[key];
17
+ if (!col) continue;
18
+ if (direction === "desc") {
19
+ fragments.push(sql`${sql(col.meta.sqlName)} DESC`);
20
+ continue;
21
+ }
22
+ fragments.push(sql`${sql(col.meta.sqlName)} ASC`);
23
+ }
24
+ const firstOrderBy = fragments[0];
25
+ if (!firstOrderBy) return sql``;
26
+ let joined = firstOrderBy;
27
+ for (let index = 1; index < fragments.length; index++) {
28
+ const fragment = fragments[index];
29
+ if (!fragment) continue;
30
+ joined = sql`${joined}, ${fragment}`;
31
+ }
32
+ return sql`ORDER BY ${joined}`;
33
+ }
34
+ //#endregion
35
+ export { buildLimitClause, buildOrderByClause };
36
+
37
+ //# sourceMappingURL=clauses.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clauses.mjs","names":[],"sources":["../../../../src/lib/orm/sql/serialize/clauses.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport type { Table } from \"../../table.js\";\nimport type { ColDefs, Dialect, SelectPlan } from \"../../types.js\";\n\nexport function buildLimitClause(\n sql: SQL | TransactionSQL,\n limit?: number,\n offset?: number,\n dialect?: Dialect,\n) {\n if (limit != null && offset != null) {\n return sql`LIMIT ${limit} OFFSET ${offset}`;\n }\n\n if (limit != null) {\n return sql`LIMIT ${limit}`;\n }\n\n if (offset != null) {\n if (dialect === \"mysql\") {\n return sql`LIMIT 18446744073709551615 OFFSET ${offset}`;\n }\n\n if (dialect === \"sqlite\") {\n return sql`LIMIT -1 OFFSET ${offset}`;\n }\n\n return sql`OFFSET ${offset}`;\n }\n\n return sql``;\n}\n\nexport function buildOrderByClause<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n plan: SelectPlan<T>,\n) {\n if (plan.orderBy.length === 0) {\n return sql``;\n }\n\n const fragments: SQL.Query<unknown>[] = [];\n\n for (const { key, direction } of plan.orderBy) {\n const col = table.columns[key];\n\n if (!col) {\n continue;\n }\n\n if (direction === \"desc\") {\n fragments.push(sql`${sql(col.meta.sqlName)} DESC`);\n continue;\n }\n\n fragments.push(sql`${sql(col.meta.sqlName)} ASC`);\n }\n\n const firstOrderBy = fragments[0];\n\n if (!firstOrderBy) {\n return sql``;\n }\n\n let joined = firstOrderBy;\n\n for (let index = 1; index < fragments.length; index++) {\n const fragment = fragments[index];\n\n if (!fragment) {\n continue;\n }\n\n joined = sql`${joined}, ${fragment}`;\n }\n\n return sql`ORDER BY ${joined}`;\n}\n"],"mappings":";AAIA,SAAgB,iBACd,KACA,OACA,QACA,SACA;AACA,KAAI,SAAS,QAAQ,UAAU,KAC7B,QAAO,GAAG,SAAS,MAAM,UAAU;AAGrC,KAAI,SAAS,KACX,QAAO,GAAG,SAAS;AAGrB,KAAI,UAAU,MAAM;AAClB,MAAI,YAAY,QACd,QAAO,GAAG,qCAAqC;AAGjD,MAAI,YAAY,SACd,QAAO,GAAG,mBAAmB;AAG/B,SAAO,GAAG,UAAU;;AAGtB,QAAO,GAAG;;AAGZ,SAAgB,mBACd,KACA,OACA,MACA;AACA,KAAI,KAAK,QAAQ,WAAW,EAC1B,QAAO,GAAG;CAGZ,MAAM,YAAkC,EAAE;AAE1C,MAAK,MAAM,EAAE,KAAK,eAAe,KAAK,SAAS;EAC7C,MAAM,MAAM,MAAM,QAAQ;AAE1B,MAAI,CAAC,IACH;AAGF,MAAI,cAAc,QAAQ;AACxB,aAAU,KAAK,GAAG,GAAG,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO;AAClD;;AAGF,YAAU,KAAK,GAAG,GAAG,IAAI,IAAI,KAAK,QAAQ,CAAC,MAAM;;CAGnD,MAAM,eAAe,UAAU;AAE/B,KAAI,CAAC,aACH,QAAO,GAAG;CAGZ,IAAI,SAAS;AAEb,MAAK,IAAI,QAAQ,GAAG,QAAQ,UAAU,QAAQ,SAAS;EACrD,MAAM,WAAW,UAAU;AAE3B,MAAI,CAAC,SACH;AAGF,WAAS,GAAG,GAAG,OAAO,IAAI;;AAG5B,QAAO,GAAG,YAAY"}
@@ -0,0 +1,31 @@
1
+ const require_table_lookup = require("../../internal/table-lookup.cjs");
2
+ const require_table_relations = require("../../internal/table-relations.cjs");
3
+ //#region src/lib/orm/sql/serialize/joins.ts
4
+ function buildJoinClauses(sql, table, relations, plan) {
5
+ if (plan.joins.length === 0) return sql``;
6
+ let joinClause = sql``;
7
+ const basePk = require_table_lookup.getPrimaryKeyColumn(table);
8
+ if (!basePk) return joinClause;
9
+ for (const [joinIndex, join] of plan.joins.entries()) {
10
+ const rel = relations[join.relationKey];
11
+ if (!rel) continue;
12
+ const target = rel.table();
13
+ const targetPk = require_table_lookup.getPrimaryKeyColumn(target);
14
+ if (!targetPk) continue;
15
+ const targetAlias = `${join.relationKey}_${joinIndex}`;
16
+ if (rel.kind === "one") {
17
+ joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(table.tableName)}.${sql(rel.foreignKey)} = ${sql(targetAlias)}.${sql(targetPk.col.meta.sqlName)}`;
18
+ continue;
19
+ }
20
+ let foreignSqlName = rel.foreignKey;
21
+ if (!foreignSqlName) {
22
+ const inferredForeignSqlName = require_table_relations.findManyForeignKeyByReference(target, basePk.col);
23
+ if (inferredForeignSqlName) foreignSqlName = inferredForeignSqlName;
24
+ }
25
+ if (!foreignSqlName) continue;
26
+ joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(targetAlias)}.${sql(foreignSqlName)} = ${sql(table.tableName)}.${sql(basePk.col.meta.sqlName)}`;
27
+ }
28
+ return joinClause;
29
+ }
30
+ //#endregion
31
+ exports.buildJoinClauses = buildJoinClauses;
@@ -0,0 +1,33 @@
1
+ import { getPrimaryKeyColumn } from "../../internal/table-lookup.mjs";
2
+ import { findManyForeignKeyByReference } from "../../internal/table-relations.mjs";
3
+ //#region src/lib/orm/sql/serialize/joins.ts
4
+ function buildJoinClauses(sql, table, relations, plan) {
5
+ if (plan.joins.length === 0) return sql``;
6
+ let joinClause = sql``;
7
+ const basePk = getPrimaryKeyColumn(table);
8
+ if (!basePk) return joinClause;
9
+ for (const [joinIndex, join] of plan.joins.entries()) {
10
+ const rel = relations[join.relationKey];
11
+ if (!rel) continue;
12
+ const target = rel.table();
13
+ const targetPk = getPrimaryKeyColumn(target);
14
+ if (!targetPk) continue;
15
+ const targetAlias = `${join.relationKey}_${joinIndex}`;
16
+ if (rel.kind === "one") {
17
+ joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(table.tableName)}.${sql(rel.foreignKey)} = ${sql(targetAlias)}.${sql(targetPk.col.meta.sqlName)}`;
18
+ continue;
19
+ }
20
+ let foreignSqlName = rel.foreignKey;
21
+ if (!foreignSqlName) {
22
+ const inferredForeignSqlName = findManyForeignKeyByReference(target, basePk.col);
23
+ if (inferredForeignSqlName) foreignSqlName = inferredForeignSqlName;
24
+ }
25
+ if (!foreignSqlName) continue;
26
+ joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(targetAlias)}.${sql(foreignSqlName)} = ${sql(table.tableName)}.${sql(basePk.col.meta.sqlName)}`;
27
+ }
28
+ return joinClause;
29
+ }
30
+ //#endregion
31
+ export { buildJoinClauses };
32
+
33
+ //# sourceMappingURL=joins.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joins.mjs","names":[],"sources":["../../../../src/lib/orm/sql/serialize/joins.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport {\n findManyForeignKeyByReference,\n getPrimaryKeyColumn,\n} from \"../../internal/table.js\";\nimport type { Table } from \"../../table.js\";\nimport type { ColDefs, RelationDefs, SelectPlan } from \"../../types.js\";\n\nexport function buildJoinClauses<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n relations: RelationDefs,\n plan: SelectPlan<T>,\n) {\n if (plan.joins.length === 0) {\n return sql``;\n }\n\n let joinClause = sql``;\n const basePk = getPrimaryKeyColumn(table);\n\n if (!basePk) {\n return joinClause;\n }\n\n for (const [joinIndex, join] of plan.joins.entries()) {\n const rel = relations[join.relationKey];\n\n if (!rel) {\n continue;\n }\n\n const target = rel.table();\n const targetPk = getPrimaryKeyColumn(target);\n\n if (!targetPk) {\n continue;\n }\n\n const targetAlias = `${join.relationKey}_${joinIndex}`;\n\n if (rel.kind === \"one\") {\n joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(table.tableName)}.${sql(rel.foreignKey)} = ${sql(targetAlias)}.${sql(targetPk.col.meta.sqlName)}`;\n continue;\n }\n\n let foreignSqlName = rel.foreignKey;\n\n if (!foreignSqlName) {\n const inferredForeignSqlName = findManyForeignKeyByReference(\n target,\n basePk.col,\n );\n\n if (inferredForeignSqlName) {\n foreignSqlName = inferredForeignSqlName;\n }\n }\n\n if (!foreignSqlName) {\n continue;\n }\n\n joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(targetAlias)}.${sql(foreignSqlName)} = ${sql(table.tableName)}.${sql(basePk.col.meta.sqlName)}`;\n }\n\n return joinClause;\n}\n"],"mappings":";;;AAQA,SAAgB,iBACd,KACA,OACA,WACA,MACA;AACA,KAAI,KAAK,MAAM,WAAW,EACxB,QAAO,GAAG;CAGZ,IAAI,aAAa,GAAG;CACpB,MAAM,SAAS,oBAAoB,MAAM;AAEzC,KAAI,CAAC,OACH,QAAO;AAGT,MAAK,MAAM,CAAC,WAAW,SAAS,KAAK,MAAM,SAAS,EAAE;EACpD,MAAM,MAAM,UAAU,KAAK;AAE3B,MAAI,CAAC,IACH;EAGF,MAAM,SAAS,IAAI,OAAO;EAC1B,MAAM,WAAW,oBAAoB,OAAO;AAE5C,MAAI,CAAC,SACH;EAGF,MAAM,cAAc,GAAG,KAAK,YAAY,GAAG;AAE3C,MAAI,IAAI,SAAS,OAAO;AACtB,gBAAa,GAAG,GAAG,WAAW,aAAa,IAAI,OAAO,UAAU,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,IAAI,MAAM,UAAU,CAAC,GAAG,IAAI,IAAI,WAAW,CAAC,KAAK,IAAI,YAAY,CAAC,GAAG,IAAI,SAAS,IAAI,KAAK,QAAQ;AACjM;;EAGF,IAAI,iBAAiB,IAAI;AAEzB,MAAI,CAAC,gBAAgB;GACnB,MAAM,yBAAyB,8BAC7B,QACA,OAAO,IACR;AAED,OAAI,uBACF,kBAAiB;;AAIrB,MAAI,CAAC,eACH;AAGF,eAAa,GAAG,GAAG,WAAW,aAAa,IAAI,OAAO,UAAU,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,IAAI,eAAe,CAAC,KAAK,IAAI,MAAM,UAAU,CAAC,GAAG,IAAI,OAAO,IAAI,KAAK,QAAQ;;AAGjM,QAAO"}
@@ -0,0 +1,30 @@
1
+ //#region src/lib/orm/sql/serialize/values.ts
2
+ function escapePostgresArrayString(value) {
3
+ return value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"");
4
+ }
5
+ function toPostgresArrayLiteral(value) {
6
+ if (value.length === 0) return "{}";
7
+ return `{${value.map((item) => {
8
+ if (item === null || item === void 0) return "NULL";
9
+ if (typeof item === "number") return String(item);
10
+ if (typeof item === "boolean") return item ? "TRUE" : "FALSE";
11
+ if (item instanceof Date) return `"${escapePostgresArrayString(item.toISOString())}"`;
12
+ return `"${escapePostgresArrayString(String(item))}"`;
13
+ }).join(",")}}`;
14
+ }
15
+ function mapDataToSqlRow(table, data, dialectAdapter) {
16
+ const row = {};
17
+ for (const jsKey in data) {
18
+ const value = data[jsKey];
19
+ const col = table.columns[jsKey];
20
+ if (!col) continue;
21
+ if (dialectAdapter.dialect === "postgres" && col.meta.isSqlArray && Array.isArray(value)) {
22
+ row[col.meta.sqlName] = toPostgresArrayLiteral(value);
23
+ continue;
24
+ }
25
+ row[col.meta.sqlName] = dialectAdapter.serializeValue(col.kind, value);
26
+ }
27
+ return row;
28
+ }
29
+ //#endregion
30
+ exports.mapDataToSqlRow = mapDataToSqlRow;
@@ -0,0 +1,32 @@
1
+ //#region src/lib/orm/sql/serialize/values.ts
2
+ function escapePostgresArrayString(value) {
3
+ return value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"");
4
+ }
5
+ function toPostgresArrayLiteral(value) {
6
+ if (value.length === 0) return "{}";
7
+ return `{${value.map((item) => {
8
+ if (item === null || item === void 0) return "NULL";
9
+ if (typeof item === "number") return String(item);
10
+ if (typeof item === "boolean") return item ? "TRUE" : "FALSE";
11
+ if (item instanceof Date) return `"${escapePostgresArrayString(item.toISOString())}"`;
12
+ return `"${escapePostgresArrayString(String(item))}"`;
13
+ }).join(",")}}`;
14
+ }
15
+ function mapDataToSqlRow(table, data, dialectAdapter) {
16
+ const row = {};
17
+ for (const jsKey in data) {
18
+ const value = data[jsKey];
19
+ const col = table.columns[jsKey];
20
+ if (!col) continue;
21
+ if (dialectAdapter.dialect === "postgres" && col.meta.isSqlArray && Array.isArray(value)) {
22
+ row[col.meta.sqlName] = toPostgresArrayLiteral(value);
23
+ continue;
24
+ }
25
+ row[col.meta.sqlName] = dialectAdapter.serializeValue(col.kind, value);
26
+ }
27
+ return row;
28
+ }
29
+ //#endregion
30
+ export { mapDataToSqlRow };
31
+
32
+ //# sourceMappingURL=values.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.mjs","names":[],"sources":["../../../../src/lib/orm/sql/serialize/values.ts"],"sourcesContent":["import type { Table } from \"../../table.js\";\nimport type { ColDefs, DialectAdapter } from \"../../types.js\";\n\nfunction escapePostgresArrayString(value: string) {\n return value.replaceAll(\"\\\\\", \"\\\\\\\\\").replaceAll('\"', '\\\\\"');\n}\n\nfunction toPostgresArrayLiteral(value: unknown[]) {\n if (value.length === 0) {\n return \"{}\";\n }\n\n const items = value.map((item) => {\n if (item === null || item === undefined) {\n return \"NULL\";\n }\n\n if (typeof item === \"number\") {\n return String(item);\n }\n\n if (typeof item === \"boolean\") {\n return item ? \"TRUE\" : \"FALSE\";\n }\n\n if (item instanceof Date) {\n return `\"${escapePostgresArrayString(item.toISOString())}\"`;\n }\n\n return `\"${escapePostgresArrayString(String(item))}\"`;\n });\n\n return `{${items.join(\",\")}}`;\n}\n\nexport function mapDataToSqlRow<T extends ColDefs>(\n table: Table<T>,\n data: Record<string, unknown>,\n dialectAdapter: DialectAdapter,\n) {\n const row: Record<string, unknown> = {};\n\n for (const jsKey in data) {\n const value = data[jsKey];\n\n const col = table.columns[jsKey];\n\n if (!col) {\n continue;\n }\n\n if (\n dialectAdapter.dialect === \"postgres\" &&\n col.meta.isSqlArray &&\n Array.isArray(value)\n ) {\n row[col.meta.sqlName] = toPostgresArrayLiteral(value);\n continue;\n }\n\n row[col.meta.sqlName] = dialectAdapter.serializeValue(col.kind, value);\n }\n\n return row;\n}\n"],"mappings":";AAGA,SAAS,0BAA0B,OAAe;AAChD,QAAO,MAAM,WAAW,MAAM,OAAO,CAAC,WAAW,MAAK,OAAM;;AAG9D,SAAS,uBAAuB,OAAkB;AAChD,KAAI,MAAM,WAAW,EACnB,QAAO;AAuBT,QAAO,IApBO,MAAM,KAAK,SAAS;AAChC,MAAI,SAAS,QAAQ,SAAS,KAAA,EAC5B,QAAO;AAGT,MAAI,OAAO,SAAS,SAClB,QAAO,OAAO,KAAK;AAGrB,MAAI,OAAO,SAAS,UAClB,QAAO,OAAO,SAAS;AAGzB,MAAI,gBAAgB,KAClB,QAAO,IAAI,0BAA0B,KAAK,aAAa,CAAC,CAAC;AAG3D,SAAO,IAAI,0BAA0B,OAAO,KAAK,CAAC,CAAC;GACnD,CAEe,KAAK,IAAI,CAAC;;AAG7B,SAAgB,gBACd,OACA,MACA,gBACA;CACA,MAAM,MAA+B,EAAE;AAEvC,MAAK,MAAM,SAAS,MAAM;EACxB,MAAM,QAAQ,KAAK;EAEnB,MAAM,MAAM,MAAM,QAAQ;AAE1B,MAAI,CAAC,IACH;AAGF,MACE,eAAe,YAAY,cAC3B,IAAI,KAAK,cACT,MAAM,QAAQ,MAAM,EACpB;AACA,OAAI,IAAI,KAAK,WAAW,uBAAuB,MAAM;AACrD;;AAGF,MAAI,IAAI,KAAK,WAAW,eAAe,eAAe,IAAI,MAAM,MAAM;;AAGxE,QAAO"}
@@ -0,0 +1,73 @@
1
+ //#region src/lib/orm/sql/serialize/where/predicate.ts
2
+ function toColumnValue(table, key, value, dialectAdapter) {
3
+ const col = table.columns[key];
4
+ if (!col) return {
5
+ exists: false,
6
+ kind: null,
7
+ serialized: value,
8
+ sqlName: key
9
+ };
10
+ return {
11
+ exists: true,
12
+ kind: col.kind,
13
+ serialized: dialectAdapter.serializeValue(col.kind, value),
14
+ sqlName: col.meta.sqlName
15
+ };
16
+ }
17
+ function serializeWherePredicate(sql, table, predicate, dialectAdapter) {
18
+ const { exists, kind, serialized, sqlName } = toColumnValue(table, predicate.key, predicate.value, dialectAdapter);
19
+ if (!exists) return null;
20
+ const column = sql(sqlName);
21
+ switch (predicate.op) {
22
+ case "eq": return sql`${column} = ${serialized}`;
23
+ case "neq": return sql`${column} != ${serialized}`;
24
+ case "gt": return sql`${column} > ${serialized}`;
25
+ case "gte": return sql`${column} >= ${serialized}`;
26
+ case "lt": return sql`${column} < ${serialized}`;
27
+ case "lte": return sql`${column} <= ${serialized}`;
28
+ case "like": {
29
+ const likeValue = predicate.value;
30
+ if (typeof likeValue !== "object" || likeValue === null) return null;
31
+ const mode = Reflect.get(likeValue, "mode");
32
+ const val = Reflect.get(likeValue, "value");
33
+ if (mode !== "startsWith" && mode !== "endsWith" && mode !== "contains") return null;
34
+ if (typeof val !== "string") return null;
35
+ const pattern = dialectAdapter.renderLikePattern(mode, val);
36
+ if (dialectAdapter.likeKeyword === "ILIKE") return sql`${column} ILIKE ${pattern}`;
37
+ return sql`${column} LIKE ${pattern}`;
38
+ }
39
+ case "in": {
40
+ if (!Array.isArray(predicate.value)) return null;
41
+ if (predicate.value.length === 0) return null;
42
+ const values = new Array(predicate.value.length);
43
+ for (let index = 0; index < predicate.value.length; index++) {
44
+ const item = predicate.value[index];
45
+ if (!kind) {
46
+ values[index] = item;
47
+ continue;
48
+ }
49
+ values[index] = dialectAdapter.serializeValue(kind, item);
50
+ }
51
+ return sql`${column} IN ${sql(values)}`;
52
+ }
53
+ case "not_in": {
54
+ if (!Array.isArray(predicate.value)) return null;
55
+ if (predicate.value.length === 0) return null;
56
+ const values = new Array(predicate.value.length);
57
+ for (let index = 0; index < predicate.value.length; index++) {
58
+ const item = predicate.value[index];
59
+ if (!kind) {
60
+ values[index] = item;
61
+ continue;
62
+ }
63
+ values[index] = dialectAdapter.serializeValue(kind, item);
64
+ }
65
+ return sql`${column} NOT IN ${sql(values)}`;
66
+ }
67
+ case "is_null": return sql`${column} IS NULL`;
68
+ case "is_not_null": return sql`${column} IS NOT NULL`;
69
+ default: return null;
70
+ }
71
+ }
72
+ //#endregion
73
+ exports.serializeWherePredicate = serializeWherePredicate;
@@ -0,0 +1,75 @@
1
+ //#region src/lib/orm/sql/serialize/where/predicate.ts
2
+ function toColumnValue(table, key, value, dialectAdapter) {
3
+ const col = table.columns[key];
4
+ if (!col) return {
5
+ exists: false,
6
+ kind: null,
7
+ serialized: value,
8
+ sqlName: key
9
+ };
10
+ return {
11
+ exists: true,
12
+ kind: col.kind,
13
+ serialized: dialectAdapter.serializeValue(col.kind, value),
14
+ sqlName: col.meta.sqlName
15
+ };
16
+ }
17
+ function serializeWherePredicate(sql, table, predicate, dialectAdapter) {
18
+ const { exists, kind, serialized, sqlName } = toColumnValue(table, predicate.key, predicate.value, dialectAdapter);
19
+ if (!exists) return null;
20
+ const column = sql(sqlName);
21
+ switch (predicate.op) {
22
+ case "eq": return sql`${column} = ${serialized}`;
23
+ case "neq": return sql`${column} != ${serialized}`;
24
+ case "gt": return sql`${column} > ${serialized}`;
25
+ case "gte": return sql`${column} >= ${serialized}`;
26
+ case "lt": return sql`${column} < ${serialized}`;
27
+ case "lte": return sql`${column} <= ${serialized}`;
28
+ case "like": {
29
+ const likeValue = predicate.value;
30
+ if (typeof likeValue !== "object" || likeValue === null) return null;
31
+ const mode = Reflect.get(likeValue, "mode");
32
+ const val = Reflect.get(likeValue, "value");
33
+ if (mode !== "startsWith" && mode !== "endsWith" && mode !== "contains") return null;
34
+ if (typeof val !== "string") return null;
35
+ const pattern = dialectAdapter.renderLikePattern(mode, val);
36
+ if (dialectAdapter.likeKeyword === "ILIKE") return sql`${column} ILIKE ${pattern}`;
37
+ return sql`${column} LIKE ${pattern}`;
38
+ }
39
+ case "in": {
40
+ if (!Array.isArray(predicate.value)) return null;
41
+ if (predicate.value.length === 0) return null;
42
+ const values = new Array(predicate.value.length);
43
+ for (let index = 0; index < predicate.value.length; index++) {
44
+ const item = predicate.value[index];
45
+ if (!kind) {
46
+ values[index] = item;
47
+ continue;
48
+ }
49
+ values[index] = dialectAdapter.serializeValue(kind, item);
50
+ }
51
+ return sql`${column} IN ${sql(values)}`;
52
+ }
53
+ case "not_in": {
54
+ if (!Array.isArray(predicate.value)) return null;
55
+ if (predicate.value.length === 0) return null;
56
+ const values = new Array(predicate.value.length);
57
+ for (let index = 0; index < predicate.value.length; index++) {
58
+ const item = predicate.value[index];
59
+ if (!kind) {
60
+ values[index] = item;
61
+ continue;
62
+ }
63
+ values[index] = dialectAdapter.serializeValue(kind, item);
64
+ }
65
+ return sql`${column} NOT IN ${sql(values)}`;
66
+ }
67
+ case "is_null": return sql`${column} IS NULL`;
68
+ case "is_not_null": return sql`${column} IS NOT NULL`;
69
+ default: return null;
70
+ }
71
+ }
72
+ //#endregion
73
+ export { serializeWherePredicate };
74
+
75
+ //# sourceMappingURL=predicate.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate.mjs","names":[],"sources":["../../../../../src/lib/orm/sql/serialize/where/predicate.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport type { Table } from \"../../../table.js\";\nimport type {\n ColDefs,\n DialectAdapter,\n WherePredicate,\n} from \"../../../types.js\";\n\nfunction toColumnValue(\n table: Table<ColDefs>,\n key: string,\n value: unknown,\n dialectAdapter: DialectAdapter,\n) {\n const col = table.columns[key];\n\n if (!col) {\n return {\n exists: false,\n kind: null,\n serialized: value,\n sqlName: key,\n };\n }\n\n return {\n exists: true,\n kind: col.kind,\n serialized: dialectAdapter.serializeValue(col.kind, value),\n sqlName: col.meta.sqlName,\n };\n}\n\nexport function serializeWherePredicate<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n predicate: WherePredicate<T>,\n dialectAdapter: DialectAdapter,\n) {\n const { exists, kind, serialized, sqlName } = toColumnValue(\n table,\n predicate.key,\n predicate.value,\n dialectAdapter,\n );\n\n if (!exists) {\n return null;\n }\n\n const column = sql(sqlName);\n\n switch (predicate.op) {\n case \"eq\":\n return sql`${column} = ${serialized}`;\n\n case \"neq\":\n return sql`${column} != ${serialized}`;\n\n case \"gt\":\n return sql`${column} > ${serialized}`;\n\n case \"gte\":\n return sql`${column} >= ${serialized}`;\n\n case \"lt\":\n return sql`${column} < ${serialized}`;\n\n case \"lte\":\n return sql`${column} <= ${serialized}`;\n\n case \"like\": {\n const likeValue = predicate.value;\n\n if (typeof likeValue !== \"object\" || likeValue === null) {\n return null;\n }\n\n const mode = Reflect.get(likeValue, \"mode\");\n const val = Reflect.get(likeValue, \"value\");\n\n if (mode !== \"startsWith\" && mode !== \"endsWith\" && mode !== \"contains\") {\n return null;\n }\n\n if (typeof val !== \"string\") {\n return null;\n }\n\n const pattern = dialectAdapter.renderLikePattern(mode, val);\n\n if (dialectAdapter.likeKeyword === \"ILIKE\") {\n return sql`${column} ILIKE ${pattern}`;\n }\n\n return sql`${column} LIKE ${pattern}`;\n }\n\n case \"in\": {\n if (!Array.isArray(predicate.value)) {\n return null;\n }\n\n if (predicate.value.length === 0) {\n return null;\n }\n\n const values: unknown[] = new Array(predicate.value.length);\n\n for (let index = 0; index < predicate.value.length; index++) {\n const item = predicate.value[index];\n\n if (!kind) {\n values[index] = item;\n continue;\n }\n\n values[index] = dialectAdapter.serializeValue(kind, item);\n }\n\n return sql`${column} IN ${sql(values)}`;\n }\n\n case \"not_in\": {\n if (!Array.isArray(predicate.value)) {\n return null;\n }\n\n if (predicate.value.length === 0) {\n return null;\n }\n\n const values: unknown[] = new Array(predicate.value.length);\n\n for (let index = 0; index < predicate.value.length; index++) {\n const item = predicate.value[index];\n\n if (!kind) {\n values[index] = item;\n continue;\n }\n\n values[index] = dialectAdapter.serializeValue(kind, item);\n }\n\n return sql`${column} NOT IN ${sql(values)}`;\n }\n\n case \"is_null\":\n return sql`${column} IS NULL`;\n\n case \"is_not_null\":\n return sql`${column} IS NOT NULL`;\n\n default:\n return null;\n }\n}\n"],"mappings":";AAQA,SAAS,cACP,OACA,KACA,OACA,gBACA;CACA,MAAM,MAAM,MAAM,QAAQ;AAE1B,KAAI,CAAC,IACH,QAAO;EACL,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,SAAS;EACV;AAGH,QAAO;EACL,QAAQ;EACR,MAAM,IAAI;EACV,YAAY,eAAe,eAAe,IAAI,MAAM,MAAM;EAC1D,SAAS,IAAI,KAAK;EACnB;;AAGH,SAAgB,wBACd,KACA,OACA,WACA,gBACA;CACA,MAAM,EAAE,QAAQ,MAAM,YAAY,YAAY,cAC5C,OACA,UAAU,KACV,UAAU,OACV,eACD;AAED,KAAI,CAAC,OACH,QAAO;CAGT,MAAM,SAAS,IAAI,QAAQ;AAE3B,SAAQ,UAAU,IAAlB;EACE,KAAK,KACH,QAAO,GAAG,GAAG,OAAO,KAAK;EAE3B,KAAK,MACH,QAAO,GAAG,GAAG,OAAO,MAAM;EAE5B,KAAK,KACH,QAAO,GAAG,GAAG,OAAO,KAAK;EAE3B,KAAK,MACH,QAAO,GAAG,GAAG,OAAO,MAAM;EAE5B,KAAK,KACH,QAAO,GAAG,GAAG,OAAO,KAAK;EAE3B,KAAK,MACH,QAAO,GAAG,GAAG,OAAO,MAAM;EAE5B,KAAK,QAAQ;GACX,MAAM,YAAY,UAAU;AAE5B,OAAI,OAAO,cAAc,YAAY,cAAc,KACjD,QAAO;GAGT,MAAM,OAAO,QAAQ,IAAI,WAAW,OAAO;GAC3C,MAAM,MAAM,QAAQ,IAAI,WAAW,QAAQ;AAE3C,OAAI,SAAS,gBAAgB,SAAS,cAAc,SAAS,WAC3D,QAAO;AAGT,OAAI,OAAO,QAAQ,SACjB,QAAO;GAGT,MAAM,UAAU,eAAe,kBAAkB,MAAM,IAAI;AAE3D,OAAI,eAAe,gBAAgB,QACjC,QAAO,GAAG,GAAG,OAAO,SAAS;AAG/B,UAAO,GAAG,GAAG,OAAO,QAAQ;;EAG9B,KAAK,MAAM;AACT,OAAI,CAAC,MAAM,QAAQ,UAAU,MAAM,CACjC,QAAO;AAGT,OAAI,UAAU,MAAM,WAAW,EAC7B,QAAO;GAGT,MAAM,SAAoB,IAAI,MAAM,UAAU,MAAM,OAAO;AAE3D,QAAK,IAAI,QAAQ,GAAG,QAAQ,UAAU,MAAM,QAAQ,SAAS;IAC3D,MAAM,OAAO,UAAU,MAAM;AAE7B,QAAI,CAAC,MAAM;AACT,YAAO,SAAS;AAChB;;AAGF,WAAO,SAAS,eAAe,eAAe,MAAM,KAAK;;AAG3D,UAAO,GAAG,GAAG,OAAO,MAAM,IAAI,OAAO;;EAGvC,KAAK,UAAU;AACb,OAAI,CAAC,MAAM,QAAQ,UAAU,MAAM,CACjC,QAAO;AAGT,OAAI,UAAU,MAAM,WAAW,EAC7B,QAAO;GAGT,MAAM,SAAoB,IAAI,MAAM,UAAU,MAAM,OAAO;AAE3D,QAAK,IAAI,QAAQ,GAAG,QAAQ,UAAU,MAAM,QAAQ,SAAS;IAC3D,MAAM,OAAO,UAAU,MAAM;AAE7B,QAAI,CAAC,MAAM;AACT,YAAO,SAAS;AAChB;;AAGF,WAAO,SAAS,eAAe,eAAe,MAAM,KAAK;;AAG3D,UAAO,GAAG,GAAG,OAAO,UAAU,IAAI,OAAO;;EAG3C,KAAK,UACH,QAAO,GAAG,GAAG,OAAO;EAEtB,KAAK,cACH,QAAO,GAAG,GAAG,OAAO;EAEtB,QACE,QAAO"}
@@ -0,0 +1,26 @@
1
+ const require_predicate = require("./predicate.cjs");
2
+ //#region src/lib/orm/sql/serialize/where/tree.ts
3
+ function serializeWhereNode(sql, table, node, dialectAdapter) {
4
+ if (node.kind === "predicate") return require_predicate.serializeWherePredicate(sql, table, node, dialectAdapter);
5
+ const fragments = [];
6
+ for (const child of node.nodes) {
7
+ const fragment = serializeWhereNode(sql, table, child, dialectAdapter);
8
+ if (!fragment) continue;
9
+ fragments.push(fragment);
10
+ }
11
+ const firstNode = fragments[0];
12
+ if (!firstNode) return null;
13
+ let joined = firstNode;
14
+ for (let index = 1; index < fragments.length; index++) {
15
+ const fragment = fragments[index];
16
+ if (!fragment) continue;
17
+ if (node.kind === "or") {
18
+ joined = sql`${joined} OR ${fragment}`;
19
+ continue;
20
+ }
21
+ joined = sql`${joined} AND ${fragment}`;
22
+ }
23
+ return sql`(${joined})`;
24
+ }
25
+ //#endregion
26
+ exports.serializeWhereNode = serializeWhereNode;
@@ -0,0 +1,28 @@
1
+ import { serializeWherePredicate } from "./predicate.mjs";
2
+ //#region src/lib/orm/sql/serialize/where/tree.ts
3
+ function serializeWhereNode(sql, table, node, dialectAdapter) {
4
+ if (node.kind === "predicate") return serializeWherePredicate(sql, table, node, dialectAdapter);
5
+ const fragments = [];
6
+ for (const child of node.nodes) {
7
+ const fragment = serializeWhereNode(sql, table, child, dialectAdapter);
8
+ if (!fragment) continue;
9
+ fragments.push(fragment);
10
+ }
11
+ const firstNode = fragments[0];
12
+ if (!firstNode) return null;
13
+ let joined = firstNode;
14
+ for (let index = 1; index < fragments.length; index++) {
15
+ const fragment = fragments[index];
16
+ if (!fragment) continue;
17
+ if (node.kind === "or") {
18
+ joined = sql`${joined} OR ${fragment}`;
19
+ continue;
20
+ }
21
+ joined = sql`${joined} AND ${fragment}`;
22
+ }
23
+ return sql`(${joined})`;
24
+ }
25
+ //#endregion
26
+ export { serializeWhereNode };
27
+
28
+ //# sourceMappingURL=tree.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.mjs","names":[],"sources":["../../../../../src/lib/orm/sql/serialize/where/tree.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport type { Table } from \"../../../table.js\";\nimport type { ColDefs, DialectAdapter, WhereNode } from \"../../../types.js\";\nimport { serializeWherePredicate } from \"./predicate.js\";\n\nexport function serializeWhereNode<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n node: WhereNode<T>,\n dialectAdapter: DialectAdapter,\n): SQL.Query<unknown> | null {\n if (node.kind === \"predicate\") {\n return serializeWherePredicate(sql, table, node, dialectAdapter);\n }\n\n const fragments: SQL.Query<unknown>[] = [];\n\n for (const child of node.nodes) {\n const fragment = serializeWhereNode(sql, table, child, dialectAdapter);\n\n if (!fragment) {\n continue;\n }\n\n fragments.push(fragment);\n }\n\n const firstNode = fragments[0];\n\n if (!firstNode) {\n return null;\n }\n\n let joined = firstNode;\n\n for (let index = 1; index < fragments.length; index++) {\n const fragment = fragments[index];\n\n if (!fragment) {\n continue;\n }\n\n if (node.kind === \"or\") {\n joined = sql`${joined} OR ${fragment}`;\n continue;\n }\n\n joined = sql`${joined} AND ${fragment}`;\n }\n\n return sql`(${joined})`;\n}\n"],"mappings":";;AAKA,SAAgB,mBACd,KACA,OACA,MACA,gBAC2B;AAC3B,KAAI,KAAK,SAAS,YAChB,QAAO,wBAAwB,KAAK,OAAO,MAAM,eAAe;CAGlE,MAAM,YAAkC,EAAE;AAE1C,MAAK,MAAM,SAAS,KAAK,OAAO;EAC9B,MAAM,WAAW,mBAAmB,KAAK,OAAO,OAAO,eAAe;AAEtE,MAAI,CAAC,SACH;AAGF,YAAU,KAAK,SAAS;;CAG1B,MAAM,YAAY,UAAU;AAE5B,KAAI,CAAC,UACH,QAAO;CAGT,IAAI,SAAS;AAEb,MAAK,IAAI,QAAQ,GAAG,QAAQ,UAAU,QAAQ,SAAS;EACrD,MAAM,WAAW,UAAU;AAE3B,MAAI,CAAC,SACH;AAGF,MAAI,KAAK,SAAS,MAAM;AACtB,YAAS,GAAG,GAAG,OAAO,MAAM;AAC5B;;AAGF,WAAS,GAAG,GAAG,OAAO,OAAO;;AAG/B,QAAO,GAAG,IAAI,OAAO"}
@@ -0,0 +1,10 @@
1
+ const require_tree = require("./where/tree.cjs");
2
+ //#region src/lib/orm/sql/serialize/where.ts
3
+ function buildWhereFragment(sql, table, node, dialectAdapter) {
4
+ if (!node) return sql``;
5
+ const fragment = require_tree.serializeWhereNode(sql, table, node, dialectAdapter);
6
+ if (!fragment) return sql``;
7
+ return sql`WHERE ${fragment}`;
8
+ }
9
+ //#endregion
10
+ exports.buildWhereFragment = buildWhereFragment;
@@ -0,0 +1,12 @@
1
+ import { serializeWhereNode } from "./where/tree.mjs";
2
+ //#region src/lib/orm/sql/serialize/where.ts
3
+ function buildWhereFragment(sql, table, node, dialectAdapter) {
4
+ if (!node) return sql``;
5
+ const fragment = serializeWhereNode(sql, table, node, dialectAdapter);
6
+ if (!fragment) return sql``;
7
+ return sql`WHERE ${fragment}`;
8
+ }
9
+ //#endregion
10
+ export { buildWhereFragment };
11
+
12
+ //# sourceMappingURL=where.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"where.mjs","names":[],"sources":["../../../../src/lib/orm/sql/serialize/where.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport type { Table } from \"../../table.js\";\nimport type { ColDefs, DialectAdapter, WhereNode } from \"../../types.js\";\nimport { serializeWhereNode } from \"./where/tree.js\";\n\nexport function buildWhereFragment<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n node: WhereNode<T> | undefined,\n dialectAdapter: DialectAdapter,\n) {\n if (!node) {\n return sql``;\n }\n\n const fragment = serializeWhereNode(sql, table, node, dialectAdapter);\n\n if (!fragment) {\n return sql``;\n }\n\n return sql`WHERE ${fragment}`;\n}\n"],"mappings":";;AAKA,SAAgB,mBACd,KACA,OACA,MACA,gBACA;AACA,KAAI,CAAC,KACH,QAAO,GAAG;CAGZ,MAAM,WAAW,mBAAmB,KAAK,OAAO,MAAM,eAAe;AAErE,KAAI,CAAC,SACH,QAAO,GAAG;AAGZ,QAAO,GAAG,SAAS"}
@@ -0,0 +1,24 @@
1
+ const require_table_columns = require("../internal/table-columns.cjs");
2
+ const require_where = require("./plan/where.cjs");
3
+ const require_select = require("./plan/select.cjs");
4
+ const require_clauses = require("./serialize/clauses.cjs");
5
+ const require_joins = require("./serialize/joins.cjs");
6
+ const require_where$1 = require("./serialize/where.cjs");
7
+ require("./serialize/values.cjs");
8
+ //#region src/lib/orm/sql/serialize.ts
9
+ function serializeSelectPlan(sql, table, relations, plan, dialectAdapter) {
10
+ const joins = require_joins.buildJoinClauses(sql, table, relations, plan);
11
+ const where = require_where$1.buildWhereFragment(sql, table, plan.where, dialectAdapter);
12
+ const orderBy = require_clauses.buildOrderByClause(sql, table, plan);
13
+ const limitOffset = require_clauses.buildLimitClause(sql, plan.page.limit, plan.page.offset, dialectAdapter.dialect);
14
+ return sql`SELECT ${require_table_columns.buildSelectColumns(sql, table)} FROM ${sql(table.tableName)} ${joins} ${where} ${orderBy} ${limitOffset}`;
15
+ }
16
+ function serializeWhereInput(sql, table, where, dialectAdapter) {
17
+ return require_where$1.buildWhereFragment(sql, table, require_where.buildWhereNode(where), dialectAdapter);
18
+ }
19
+ function serializeSelectInput(sql, table, relations, input, dialectAdapter) {
20
+ return serializeSelectPlan(sql, table, relations, require_select.buildSelectPlan(input), dialectAdapter);
21
+ }
22
+ //#endregion
23
+ exports.serializeSelectInput = serializeSelectInput;
24
+ exports.serializeWhereInput = serializeWhereInput;
@@ -0,0 +1,25 @@
1
+ import { buildSelectColumns } from "../internal/table-columns.mjs";
2
+ import { buildWhereNode } from "./plan/where.mjs";
3
+ import { buildSelectPlan } from "./plan/select.mjs";
4
+ import { buildLimitClause, buildOrderByClause } from "./serialize/clauses.mjs";
5
+ import { buildJoinClauses } from "./serialize/joins.mjs";
6
+ import { buildWhereFragment } from "./serialize/where.mjs";
7
+ import "./serialize/values.mjs";
8
+ //#region src/lib/orm/sql/serialize.ts
9
+ function serializeSelectPlan(sql, table, relations, plan, dialectAdapter) {
10
+ const joins = buildJoinClauses(sql, table, relations, plan);
11
+ const where = buildWhereFragment(sql, table, plan.where, dialectAdapter);
12
+ const orderBy = buildOrderByClause(sql, table, plan);
13
+ const limitOffset = buildLimitClause(sql, plan.page.limit, plan.page.offset, dialectAdapter.dialect);
14
+ return sql`SELECT ${buildSelectColumns(sql, table)} FROM ${sql(table.tableName)} ${joins} ${where} ${orderBy} ${limitOffset}`;
15
+ }
16
+ function serializeWhereInput(sql, table, where, dialectAdapter) {
17
+ return buildWhereFragment(sql, table, buildWhereNode(where), dialectAdapter);
18
+ }
19
+ function serializeSelectInput(sql, table, relations, input, dialectAdapter) {
20
+ return serializeSelectPlan(sql, table, relations, buildSelectPlan(input), dialectAdapter);
21
+ }
22
+ //#endregion
23
+ export { serializeSelectInput, serializeWhereInput };
24
+
25
+ //# sourceMappingURL=serialize.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.mjs","names":[],"sources":["../../../src/lib/orm/sql/serialize.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport { buildSelectColumns } from \"../internal/table.js\";\nimport type { Table } from \"../table.js\";\nimport type {\n ColDefs,\n DialectAdapter,\n RelationDefs,\n SelectInput,\n SelectPlan,\n WhereInput,\n} from \"../types.js\";\nimport { buildSelectPlan, buildWhereNode } from \"./plan.js\";\nimport { buildLimitClause, buildOrderByClause } from \"./serialize/clauses.js\";\nimport { buildJoinClauses } from \"./serialize/joins.js\";\nimport { buildWhereFragment } from \"./serialize/where.js\";\n\nexport { mapDataToSqlRow } from \"./serialize/values.js\";\n\nexport function serializeWherePlan<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n plan: SelectPlan<T>,\n dialectAdapter: DialectAdapter,\n) {\n return buildWhereFragment(sql, table, plan.where, dialectAdapter);\n}\n\nexport function serializeSelectPlan<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n relations: RelationDefs,\n plan: SelectPlan<T>,\n dialectAdapter: DialectAdapter,\n) {\n const joins = buildJoinClauses(sql, table, relations, plan);\n const where = buildWhereFragment(sql, table, plan.where, dialectAdapter);\n const orderBy = buildOrderByClause(sql, table, plan);\n const limitOffset = buildLimitClause(\n sql,\n plan.page.limit,\n plan.page.offset,\n dialectAdapter.dialect,\n );\n const columns = buildSelectColumns(sql, table);\n\n return sql`SELECT ${columns} FROM ${sql(table.tableName)} ${joins} ${where} ${orderBy} ${limitOffset}`;\n}\n\nexport function serializeWhereInput<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n where: WhereInput<T> | undefined,\n dialectAdapter: DialectAdapter,\n) {\n return buildWhereFragment(sql, table, buildWhereNode(where), dialectAdapter);\n}\n\nexport function serializeSelectInput<T extends ColDefs, TRels>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n relations: RelationDefs,\n input: SelectInput<T, TRels>,\n dialectAdapter: DialectAdapter,\n) {\n return serializeSelectPlan(\n sql,\n table,\n relations,\n buildSelectPlan(input),\n dialectAdapter,\n );\n}\n"],"mappings":";;;;;;;;AA2BA,SAAgB,oBACd,KACA,OACA,WACA,MACA,gBACA;CACA,MAAM,QAAQ,iBAAiB,KAAK,OAAO,WAAW,KAAK;CAC3D,MAAM,QAAQ,mBAAmB,KAAK,OAAO,KAAK,OAAO,eAAe;CACxE,MAAM,UAAU,mBAAmB,KAAK,OAAO,KAAK;CACpD,MAAM,cAAc,iBAClB,KACA,KAAK,KAAK,OACV,KAAK,KAAK,QACV,eAAe,QAChB;AAGD,QAAO,GAAG,UAFM,mBAAmB,KAAK,MAAM,CAElB,QAAQ,IAAI,MAAM,UAAU,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG;;AAG3F,SAAgB,oBACd,KACA,OACA,OACA,gBACA;AACA,QAAO,mBAAmB,KAAK,OAAO,eAAe,MAAM,EAAE,eAAe;;AAG9E,SAAgB,qBACd,KACA,OACA,WACA,OACA,gBACA;AACA,QAAO,oBACL,KACA,OACA,WACA,gBAAgB,MAAM,EACtB,eACD"}
@@ -0,0 +1,12 @@
1
+ //#region src/lib/orm/table.ts
2
+ var Table = class {
3
+ constructor(tableName, columns) {
4
+ this.tableName = tableName;
5
+ this.columns = columns;
6
+ }
7
+ };
8
+ function createTable(tableName, columns) {
9
+ return new Table(tableName, columns);
10
+ }
11
+ //#endregion
12
+ exports.createTable = createTable;
@@ -0,0 +1,12 @@
1
+ import { ColDefs } from "./types.cjs";
2
+
3
+ //#region src/lib/orm/table.d.ts
4
+ declare class Table<T extends ColDefs> {
5
+ readonly tableName: string;
6
+ readonly columns: T;
7
+ constructor(tableName: string, columns: T);
8
+ }
9
+ declare function createTable<T extends ColDefs>(tableName: string, columns: T): Table<T>;
10
+ //#endregion
11
+ export { Table, createTable };
12
+ //# sourceMappingURL=table.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.cts","names":[],"sources":["../../src/lib/orm/table.ts"],"mappings":";;;cAEa,KAAA,WAAgB,OAAA;EAAA,SAET,SAAA;EAAA,SACA,OAAA,EAAS,CAAA;cADT,SAAA,UACA,OAAA,EAAS,CAAA;AAAA;AAAA,iBAIb,WAAA,WAAsB,OAAA,CAAA,CAAS,SAAA,UAAmB,OAAA,EAAS,CAAA,GAAC,KAAA,CAAA,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { ColDefs } from "./types.mjs";
2
+
3
+ //#region src/lib/orm/table.d.ts
4
+ declare class Table<T extends ColDefs> {
5
+ readonly tableName: string;
6
+ readonly columns: T;
7
+ constructor(tableName: string, columns: T);
8
+ }
9
+ declare function createTable<T extends ColDefs>(tableName: string, columns: T): Table<T>;
10
+ //#endregion
11
+ export { Table, createTable };
12
+ //# sourceMappingURL=table.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.mts","names":[],"sources":["../../src/lib/orm/table.ts"],"mappings":";;;cAEa,KAAA,WAAgB,OAAA;EAAA,SAET,SAAA;EAAA,SACA,OAAA,EAAS,CAAA;cADT,SAAA,UACA,OAAA,EAAS,CAAA;AAAA;AAAA,iBAIb,WAAA,WAAsB,OAAA,CAAA,CAAS,SAAA,UAAmB,OAAA,EAAS,CAAA,GAAC,KAAA,CAAA,CAAA"}
@@ -0,0 +1,14 @@
1
+ //#region src/lib/orm/table.ts
2
+ var Table = class {
3
+ constructor(tableName, columns) {
4
+ this.tableName = tableName;
5
+ this.columns = columns;
6
+ }
7
+ };
8
+ function createTable(tableName, columns) {
9
+ return new Table(tableName, columns);
10
+ }
11
+ //#endregion
12
+ export { createTable };
13
+
14
+ //# sourceMappingURL=table.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.mjs","names":[],"sources":["../../src/lib/orm/table.ts"],"sourcesContent":["import type { ColDefs } from \"./types.js\";\n\nexport class Table<T extends ColDefs> {\n public constructor(\n public readonly tableName: string,\n public readonly columns: T,\n ) {}\n}\n\nexport function createTable<T extends ColDefs>(tableName: string, columns: T) {\n return new Table(tableName, columns);\n}\n"],"mappings":";AAEA,IAAa,QAAb,MAAsC;CACpC,YACE,WACA,SACA;AAFgB,OAAA,YAAA;AACA,OAAA,UAAA;;;AAIpB,SAAgB,YAA+B,WAAmB,SAAY;AAC5E,QAAO,IAAI,MAAM,WAAW,QAAQ"}