semola 0.5.3 → 0.5.4

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 (363) hide show
  1. package/dist/index-BhGNDjPq.d.mts +13 -0
  2. package/dist/index-DxSbeGP-.d.cts +13 -0
  3. package/dist/lib/api/index.cjs +522 -4
  4. package/dist/lib/api/index.d.cts +270 -4
  5. package/dist/lib/api/index.d.mts +270 -4
  6. package/dist/lib/api/index.mjs +520 -2
  7. package/dist/lib/cache/index.d.cts +16 -4
  8. package/dist/lib/cache/index.d.mts +16 -4
  9. package/dist/lib/cache/index.mjs +0 -2
  10. package/dist/lib/cron/index.cjs +734 -12
  11. package/dist/lib/cron/index.d.cts +145 -3
  12. package/dist/lib/cron/index.d.mts +145 -3
  13. package/dist/lib/cron/index.mjs +725 -3
  14. package/dist/lib/errors/index.d.cts +2 -13
  15. package/dist/lib/errors/index.d.mts +2 -13
  16. package/dist/lib/errors/index.mjs +0 -2
  17. package/dist/lib/i18n/index.d.cts +12 -4
  18. package/dist/lib/i18n/index.d.mts +12 -4
  19. package/dist/lib/i18n/index.mjs +0 -2
  20. package/dist/lib/logging/index.cjs +386 -17
  21. package/dist/lib/logging/index.d.cts +107 -6
  22. package/dist/lib/logging/index.d.mts +107 -6
  23. package/dist/lib/logging/index.mjs +373 -4
  24. package/dist/lib/policy/index.cjs +206 -20
  25. package/dist/lib/policy/index.d.cts +61 -5
  26. package/dist/lib/policy/index.d.mts +61 -5
  27. package/dist/lib/policy/index.mjs +187 -3
  28. package/dist/lib/prompts/index.cjs +374 -14
  29. package/dist/lib/prompts/index.d.cts +69 -4
  30. package/dist/lib/prompts/index.d.mts +69 -4
  31. package/dist/lib/prompts/index.mjs +362 -4
  32. package/dist/lib/pubsub/index.d.cts +9 -4
  33. package/dist/lib/pubsub/index.d.mts +9 -4
  34. package/dist/lib/pubsub/index.mjs +0 -2
  35. package/dist/lib/queue/index.d.cts +48 -6
  36. package/dist/lib/queue/index.d.mts +48 -6
  37. package/dist/lib/queue/index.mjs +0 -2
  38. package/dist/lib/workflow/index.d.cts +82 -4
  39. package/dist/lib/workflow/index.d.mts +82 -4
  40. package/dist/lib/workflow/index.mjs +0 -2
  41. package/package.json +1 -1
  42. package/dist/api/core/index.cjs +0 -206
  43. package/dist/api/core/index.d.cts +0 -21
  44. package/dist/api/core/index.d.cts.map +0 -1
  45. package/dist/api/core/index.d.mts +0 -21
  46. package/dist/api/core/index.d.mts.map +0 -1
  47. package/dist/api/core/index.mjs +0 -208
  48. package/dist/api/core/index.mjs.map +0 -1
  49. package/dist/api/core/types.d.cts +0 -107
  50. package/dist/api/core/types.d.cts.map +0 -1
  51. package/dist/api/core/types.d.mts +0 -107
  52. package/dist/api/core/types.d.mts.map +0 -1
  53. package/dist/api/middleware/index.cjs +0 -8
  54. package/dist/api/middleware/index.d.cts +0 -11
  55. package/dist/api/middleware/index.d.cts.map +0 -1
  56. package/dist/api/middleware/index.d.mts +0 -11
  57. package/dist/api/middleware/index.d.mts.map +0 -1
  58. package/dist/api/middleware/index.mjs +0 -10
  59. package/dist/api/middleware/index.mjs.map +0 -1
  60. package/dist/api/middleware/types.d.cts +0 -16
  61. package/dist/api/middleware/types.d.cts.map +0 -1
  62. package/dist/api/middleware/types.d.mts +0 -16
  63. package/dist/api/middleware/types.d.mts.map +0 -1
  64. package/dist/api/openapi/index.cjs +0 -254
  65. package/dist/api/openapi/index.mjs +0 -256
  66. package/dist/api/openapi/index.mjs.map +0 -1
  67. package/dist/api/openapi/types.d.cts +0 -60
  68. package/dist/api/openapi/types.d.cts.map +0 -1
  69. package/dist/api/openapi/types.d.mts +0 -60
  70. package/dist/api/openapi/types.d.mts.map +0 -1
  71. package/dist/api/validation/index.cjs +0 -64
  72. package/dist/api/validation/index.mjs +0 -61
  73. package/dist/api/validation/index.mjs.map +0 -1
  74. package/dist/cache/types.d.cts +0 -17
  75. package/dist/cache/types.d.cts.map +0 -1
  76. package/dist/cache/types.d.mts +0 -17
  77. package/dist/cache/types.d.mts.map +0 -1
  78. package/dist/cron/builder/index.cjs +0 -166
  79. package/dist/cron/builder/index.d.cts +0 -28
  80. package/dist/cron/builder/index.d.cts.map +0 -1
  81. package/dist/cron/builder/index.d.mts +0 -28
  82. package/dist/cron/builder/index.d.mts.map +0 -1
  83. package/dist/cron/builder/index.mjs +0 -163
  84. package/dist/cron/builder/index.mjs.map +0 -1
  85. package/dist/cron/builder/types.cjs +0 -27
  86. package/dist/cron/builder/types.d.cts +0 -79
  87. package/dist/cron/builder/types.d.cts.map +0 -1
  88. package/dist/cron/builder/types.d.mts +0 -79
  89. package/dist/cron/builder/types.d.mts.map +0 -1
  90. package/dist/cron/builder/types.mjs +0 -28
  91. package/dist/cron/builder/types.mjs.map +0 -1
  92. package/dist/cron/core/index.cjs +0 -308
  93. package/dist/cron/core/index.d.cts +0 -39
  94. package/dist/cron/core/index.d.cts.map +0 -1
  95. package/dist/cron/core/index.d.mts +0 -39
  96. package/dist/cron/core/index.d.mts.map +0 -1
  97. package/dist/cron/core/index.mjs +0 -310
  98. package/dist/cron/core/index.mjs.map +0 -1
  99. package/dist/cron/core/scanner.cjs +0 -237
  100. package/dist/cron/core/scanner.mjs +0 -238
  101. package/dist/cron/core/scanner.mjs.map +0 -1
  102. package/dist/cron/core/types.d.cts +0 -11
  103. package/dist/cron/core/types.d.cts.map +0 -1
  104. package/dist/cron/core/types.d.mts +0 -11
  105. package/dist/cron/core/types.d.mts.map +0 -1
  106. package/dist/errors/types.d.cts +0 -5
  107. package/dist/errors/types.d.cts.map +0 -1
  108. package/dist/errors/types.d.mts +0 -5
  109. package/dist/errors/types.d.mts.map +0 -1
  110. package/dist/i18n/types.d.cts +0 -13
  111. package/dist/i18n/types.d.cts.map +0 -1
  112. package/dist/i18n/types.d.mts +0 -13
  113. package/dist/i18n/types.d.mts.map +0 -1
  114. package/dist/lib/cache/index.d.cts.map +0 -1
  115. package/dist/lib/cache/index.d.mts.map +0 -1
  116. package/dist/lib/cache/index.mjs.map +0 -1
  117. package/dist/lib/errors/index.d.cts.map +0 -1
  118. package/dist/lib/errors/index.d.mts.map +0 -1
  119. package/dist/lib/errors/index.mjs.map +0 -1
  120. package/dist/lib/i18n/index.d.cts.map +0 -1
  121. package/dist/lib/i18n/index.d.mts.map +0 -1
  122. package/dist/lib/i18n/index.mjs.map +0 -1
  123. package/dist/lib/orm/index.cjs +0 -20
  124. package/dist/lib/orm/index.d.cts +0 -7
  125. package/dist/lib/orm/index.d.mts +0 -7
  126. package/dist/lib/orm/index.mjs +0 -6
  127. package/dist/lib/policy/index.d.cts.map +0 -1
  128. package/dist/lib/policy/index.d.mts.map +0 -1
  129. package/dist/lib/policy/index.mjs.map +0 -1
  130. package/dist/lib/prompts/index.d.cts.map +0 -1
  131. package/dist/lib/prompts/index.d.mts.map +0 -1
  132. package/dist/lib/prompts/index.mjs.map +0 -1
  133. package/dist/lib/pubsub/index.d.cts.map +0 -1
  134. package/dist/lib/pubsub/index.d.mts.map +0 -1
  135. package/dist/lib/pubsub/index.mjs.map +0 -1
  136. package/dist/lib/queue/index.d.cts.map +0 -1
  137. package/dist/lib/queue/index.d.mts.map +0 -1
  138. package/dist/lib/queue/index.mjs.map +0 -1
  139. package/dist/lib/workflow/index.d.cts.map +0 -1
  140. package/dist/lib/workflow/index.d.mts.map +0 -1
  141. package/dist/lib/workflow/index.mjs.map +0 -1
  142. package/dist/logging/core/index.cjs +0 -99
  143. package/dist/logging/core/index.d.cts +0 -26
  144. package/dist/logging/core/index.d.cts.map +0 -1
  145. package/dist/logging/core/index.d.mts +0 -26
  146. package/dist/logging/core/index.d.mts.map +0 -1
  147. package/dist/logging/core/index.mjs +0 -99
  148. package/dist/logging/core/index.mjs.map +0 -1
  149. package/dist/logging/core/types.cjs +0 -10
  150. package/dist/logging/core/types.d.cts +0 -22
  151. package/dist/logging/core/types.d.cts.map +0 -1
  152. package/dist/logging/core/types.d.mts +0 -22
  153. package/dist/logging/core/types.d.mts.map +0 -1
  154. package/dist/logging/core/types.mjs +0 -12
  155. package/dist/logging/core/types.mjs.map +0 -1
  156. package/dist/logging/formatter/index.cjs +0 -119
  157. package/dist/logging/formatter/index.d.cts +0 -27
  158. package/dist/logging/formatter/index.d.cts.map +0 -1
  159. package/dist/logging/formatter/index.d.mts +0 -27
  160. package/dist/logging/formatter/index.d.mts.map +0 -1
  161. package/dist/logging/formatter/index.mjs +0 -115
  162. package/dist/logging/formatter/index.mjs.map +0 -1
  163. package/dist/logging/formatter/types.d.cts +0 -5
  164. package/dist/logging/formatter/types.d.cts.map +0 -1
  165. package/dist/logging/formatter/types.d.mts +0 -5
  166. package/dist/logging/formatter/types.d.mts.map +0 -1
  167. package/dist/logging/provider/index.cjs +0 -165
  168. package/dist/logging/provider/index.d.cts +0 -28
  169. package/dist/logging/provider/index.d.cts.map +0 -1
  170. package/dist/logging/provider/index.d.mts +0 -28
  171. package/dist/logging/provider/index.d.mts.map +0 -1
  172. package/dist/logging/provider/index.mjs +0 -165
  173. package/dist/logging/provider/index.mjs.map +0 -1
  174. package/dist/logging/provider/types.d.cts +0 -23
  175. package/dist/logging/provider/types.d.cts.map +0 -1
  176. package/dist/logging/provider/types.d.mts +0 -23
  177. package/dist/logging/provider/types.d.mts.map +0 -1
  178. package/dist/node_modules/@standard-schema/spec/dist/index.d.cts +0 -80
  179. package/dist/node_modules/@standard-schema/spec/dist/index.d.cts.map +0 -1
  180. package/dist/node_modules/@standard-schema/spec/dist/index.d.mts +0 -80
  181. package/dist/node_modules/@standard-schema/spec/dist/index.d.mts.map +0 -1
  182. package/dist/orm/column.cjs +0 -137
  183. package/dist/orm/column.d.cts +0 -121
  184. package/dist/orm/column.d.cts.map +0 -1
  185. package/dist/orm/column.d.mts +0 -121
  186. package/dist/orm/column.d.mts.map +0 -1
  187. package/dist/orm/column.mjs +0 -132
  188. package/dist/orm/column.mjs.map +0 -1
  189. package/dist/orm/dialect/index.cjs +0 -14
  190. package/dist/orm/dialect/index.mjs +0 -16
  191. package/dist/orm/dialect/index.mjs.map +0 -1
  192. package/dist/orm/dialect/mysql.cjs +0 -31
  193. package/dist/orm/dialect/mysql.mjs +0 -33
  194. package/dist/orm/dialect/mysql.mjs.map +0 -1
  195. package/dist/orm/dialect/postgres.cjs +0 -23
  196. package/dist/orm/dialect/postgres.mjs +0 -25
  197. package/dist/orm/dialect/postgres.mjs.map +0 -1
  198. package/dist/orm/dialect/sqlite.cjs +0 -31
  199. package/dist/orm/dialect/sqlite.mjs +0 -33
  200. package/dist/orm/dialect/sqlite.mjs.map +0 -1
  201. package/dist/orm/dialect/utils.cjs +0 -8
  202. package/dist/orm/dialect/utils.mjs +0 -10
  203. package/dist/orm/dialect/utils.mjs.map +0 -1
  204. package/dist/orm/internal/table-columns.cjs +0 -31
  205. package/dist/orm/internal/table-columns.mjs +0 -32
  206. package/dist/orm/internal/table-columns.mjs.map +0 -1
  207. package/dist/orm/internal/table-lookup.cjs +0 -35
  208. package/dist/orm/internal/table-lookup.mjs +0 -35
  209. package/dist/orm/internal/table-lookup.mjs.map +0 -1
  210. package/dist/orm/internal/table-relations.cjs +0 -28
  211. package/dist/orm/internal/table-relations.mjs +0 -29
  212. package/dist/orm/internal/table-relations.mjs.map +0 -1
  213. package/dist/orm/migration/config.cjs +0 -7
  214. package/dist/orm/migration/config.d.cts +0 -7
  215. package/dist/orm/migration/config.d.cts.map +0 -1
  216. package/dist/orm/migration/config.d.mts +0 -7
  217. package/dist/orm/migration/config.d.mts.map +0 -1
  218. package/dist/orm/migration/config.mjs +0 -8
  219. package/dist/orm/migration/config.mjs.map +0 -1
  220. package/dist/orm/migration/types.d.cts +0 -20
  221. package/dist/orm/migration/types.d.cts.map +0 -1
  222. package/dist/orm/migration/types.d.mts +0 -20
  223. package/dist/orm/migration/types.d.mts.map +0 -1
  224. package/dist/orm/orm.cjs +0 -41
  225. package/dist/orm/orm.d.cts +0 -18
  226. package/dist/orm/orm.d.cts.map +0 -1
  227. package/dist/orm/orm.d.mts +0 -18
  228. package/dist/orm/orm.d.mts.map +0 -1
  229. package/dist/orm/orm.mjs +0 -43
  230. package/dist/orm/orm.mjs.map +0 -1
  231. package/dist/orm/relation.cjs +0 -18
  232. package/dist/orm/relation.d.cts +0 -8
  233. package/dist/orm/relation.d.cts.map +0 -1
  234. package/dist/orm/relation.d.mts +0 -8
  235. package/dist/orm/relation.d.mts.map +0 -1
  236. package/dist/orm/relation.mjs +0 -19
  237. package/dist/orm/relation.mjs.map +0 -1
  238. package/dist/orm/runtime/builders/mutations.cjs +0 -29
  239. package/dist/orm/runtime/builders/mutations.mjs +0 -28
  240. package/dist/orm/runtime/builders/mutations.mjs.map +0 -1
  241. package/dist/orm/runtime/builders/select.cjs +0 -18
  242. package/dist/orm/runtime/builders/select.mjs +0 -19
  243. package/dist/orm/runtime/builders/select.mjs.map +0 -1
  244. package/dist/orm/runtime/client.cjs +0 -90
  245. package/dist/orm/runtime/client.mjs +0 -92
  246. package/dist/orm/runtime/client.mjs.map +0 -1
  247. package/dist/orm/runtime/context.cjs +0 -49
  248. package/dist/orm/runtime/context.mjs +0 -51
  249. package/dist/orm/runtime/context.mjs.map +0 -1
  250. package/dist/orm/runtime/dialect/index.cjs +0 -11
  251. package/dist/orm/runtime/dialect/index.mjs +0 -13
  252. package/dist/orm/runtime/dialect/index.mjs.map +0 -1
  253. package/dist/orm/runtime/dialect/mysql.cjs +0 -95
  254. package/dist/orm/runtime/dialect/mysql.mjs +0 -97
  255. package/dist/orm/runtime/dialect/mysql.mjs.map +0 -1
  256. package/dist/orm/runtime/dialect/postgres.cjs +0 -51
  257. package/dist/orm/runtime/dialect/postgres.mjs +0 -53
  258. package/dist/orm/runtime/dialect/postgres.mjs.map +0 -1
  259. package/dist/orm/runtime/dialect/sqlite.cjs +0 -4
  260. package/dist/orm/runtime/dialect/sqlite.mjs +0 -7
  261. package/dist/orm/runtime/dialect/sqlite.mjs.map +0 -1
  262. package/dist/orm/runtime/errors.cjs +0 -19
  263. package/dist/orm/runtime/errors.mjs +0 -21
  264. package/dist/orm/runtime/errors.mjs.map +0 -1
  265. package/dist/orm/runtime/hydrate/many.cjs +0 -46
  266. package/dist/orm/runtime/hydrate/many.mjs +0 -48
  267. package/dist/orm/runtime/hydrate/many.mjs.map +0 -1
  268. package/dist/orm/runtime/hydrate/one.cjs +0 -38
  269. package/dist/orm/runtime/hydrate/one.mjs +0 -40
  270. package/dist/orm/runtime/hydrate/one.mjs.map +0 -1
  271. package/dist/orm/runtime/hydrate.cjs +0 -49
  272. package/dist/orm/runtime/hydrate.mjs +0 -51
  273. package/dist/orm/runtime/hydrate.mjs.map +0 -1
  274. package/dist/orm/runtime/rows.cjs +0 -30
  275. package/dist/orm/runtime/rows.mjs +0 -31
  276. package/dist/orm/runtime/rows.mjs.map +0 -1
  277. package/dist/orm/runtime/utils.cjs +0 -27
  278. package/dist/orm/runtime/utils.mjs +0 -27
  279. package/dist/orm/runtime/utils.mjs.map +0 -1
  280. package/dist/orm/sql/parse-array.cjs +0 -64
  281. package/dist/orm/sql/parse-array.mjs +0 -66
  282. package/dist/orm/sql/parse-array.mjs.map +0 -1
  283. package/dist/orm/sql/plan/select.cjs +0 -36
  284. package/dist/orm/sql/plan/select.mjs +0 -38
  285. package/dist/orm/sql/plan/select.mjs.map +0 -1
  286. package/dist/orm/sql/plan/where/operators.cjs +0 -95
  287. package/dist/orm/sql/plan/where/operators.mjs +0 -97
  288. package/dist/orm/sql/plan/where/operators.mjs.map +0 -1
  289. package/dist/orm/sql/plan/where.cjs +0 -59
  290. package/dist/orm/sql/plan/where.mjs +0 -61
  291. package/dist/orm/sql/plan/where.mjs.map +0 -1
  292. package/dist/orm/sql/serialize/clauses.cjs +0 -36
  293. package/dist/orm/sql/serialize/clauses.mjs +0 -37
  294. package/dist/orm/sql/serialize/clauses.mjs.map +0 -1
  295. package/dist/orm/sql/serialize/joins.cjs +0 -31
  296. package/dist/orm/sql/serialize/joins.mjs +0 -33
  297. package/dist/orm/sql/serialize/joins.mjs.map +0 -1
  298. package/dist/orm/sql/serialize/values.cjs +0 -30
  299. package/dist/orm/sql/serialize/values.mjs +0 -32
  300. package/dist/orm/sql/serialize/values.mjs.map +0 -1
  301. package/dist/orm/sql/serialize/where/predicate.cjs +0 -73
  302. package/dist/orm/sql/serialize/where/predicate.mjs +0 -75
  303. package/dist/orm/sql/serialize/where/predicate.mjs.map +0 -1
  304. package/dist/orm/sql/serialize/where/tree.cjs +0 -26
  305. package/dist/orm/sql/serialize/where/tree.mjs +0 -28
  306. package/dist/orm/sql/serialize/where/tree.mjs.map +0 -1
  307. package/dist/orm/sql/serialize/where.cjs +0 -10
  308. package/dist/orm/sql/serialize/where.mjs +0 -12
  309. package/dist/orm/sql/serialize/where.mjs.map +0 -1
  310. package/dist/orm/sql/serialize.cjs +0 -24
  311. package/dist/orm/sql/serialize.mjs +0 -25
  312. package/dist/orm/sql/serialize.mjs.map +0 -1
  313. package/dist/orm/table.cjs +0 -12
  314. package/dist/orm/table.d.cts +0 -12
  315. package/dist/orm/table.d.cts.map +0 -1
  316. package/dist/orm/table.d.mts +0 -12
  317. package/dist/orm/table.d.mts.map +0 -1
  318. package/dist/orm/table.mjs +0 -14
  319. package/dist/orm/table.mjs.map +0 -1
  320. package/dist/orm/types.d.cts +0 -183
  321. package/dist/orm/types.d.cts.map +0 -1
  322. package/dist/orm/types.d.mts +0 -183
  323. package/dist/orm/types.d.mts.map +0 -1
  324. package/dist/policy/helpers.cjs +0 -206
  325. package/dist/policy/helpers.d.cts +0 -50
  326. package/dist/policy/helpers.d.cts.map +0 -1
  327. package/dist/policy/helpers.d.mts +0 -50
  328. package/dist/policy/helpers.d.mts.map +0 -1
  329. package/dist/policy/helpers.mjs +0 -190
  330. package/dist/policy/helpers.mjs.map +0 -1
  331. package/dist/policy/types.d.cts +0 -16
  332. package/dist/policy/types.d.cts.map +0 -1
  333. package/dist/policy/types.d.mts +0 -16
  334. package/dist/policy/types.d.mts.map +0 -1
  335. package/dist/prompts/core/keys.cjs +0 -165
  336. package/dist/prompts/core/keys.mjs +0 -167
  337. package/dist/prompts/core/keys.mjs.map +0 -1
  338. package/dist/prompts/core/runtime.cjs +0 -104
  339. package/dist/prompts/core/runtime.mjs +0 -106
  340. package/dist/prompts/core/runtime.mjs.map +0 -1
  341. package/dist/prompts/core/session.cjs +0 -98
  342. package/dist/prompts/core/session.mjs +0 -100
  343. package/dist/prompts/core/session.mjs.map +0 -1
  344. package/dist/prompts/core/types.d.cts +0 -21
  345. package/dist/prompts/core/types.d.cts.map +0 -1
  346. package/dist/prompts/core/types.d.mts +0 -21
  347. package/dist/prompts/core/types.d.mts.map +0 -1
  348. package/dist/prompts/types.d.cts +0 -52
  349. package/dist/prompts/types.d.cts.map +0 -1
  350. package/dist/prompts/types.d.mts +0 -52
  351. package/dist/prompts/types.d.mts.map +0 -1
  352. package/dist/pubsub/types.d.cts +0 -10
  353. package/dist/pubsub/types.d.cts.map +0 -1
  354. package/dist/pubsub/types.d.mts +0 -10
  355. package/dist/pubsub/types.d.mts.map +0 -1
  356. package/dist/queue/types.d.cts +0 -47
  357. package/dist/queue/types.d.cts.map +0 -1
  358. package/dist/queue/types.d.mts +0 -47
  359. package/dist/queue/types.d.mts.map +0 -1
  360. package/dist/workflow/types.d.cts +0 -83
  361. package/dist/workflow/types.d.cts.map +0 -1
  362. package/dist/workflow/types.d.mts +0 -83
  363. package/dist/workflow/types.d.mts.map +0 -1
@@ -1,73 +0,0 @@
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;
@@ -1,75 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,26 +0,0 @@
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;
@@ -1,28 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,10 +0,0 @@
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;
@@ -1,12 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,24 +0,0 @@
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;
@@ -1,25 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,12 +0,0 @@
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;
@@ -1,12 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,12 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,14 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,183 +0,0 @@
1
- import { Table } from "./table.cjs";
2
- import { ColumnDef } from "./column.cjs";
3
-
4
- //#region src/lib/orm/types.d.ts
5
- type ColumnKind = "uuid" | "string" | "number" | "boolean" | "date" | "json" | "jsonb" | "enum";
6
- type Dialect = "postgres" | "mysql" | "sqlite";
7
- type KindToType<K extends ColumnKind> = K extends "uuid" | "string" ? string : K extends "number" ? number : K extends "boolean" ? boolean : K extends "date" ? Date : unknown;
8
- type ColDefs = Record<string, ColumnDef<ColumnKind, ColumnMetaBase, unknown>>;
9
- type ColumnMetaBase = {
10
- sqlName: string;
11
- isSqlArray: boolean;
12
- isPrimaryKey: boolean;
13
- isNotNull: boolean;
14
- isUnique: boolean;
15
- isEnum: boolean;
16
- enumValues: string[] | null;
17
- enumName: string | null;
18
- hasDefault: boolean;
19
- defaultKind: "value" | "fn" | null;
20
- defaultValue: unknown;
21
- defaultFn: (() => unknown) | null;
22
- references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
23
- onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
24
- };
25
- type Prettify<T> = { [K in keyof T]: T[K] };
26
- type TableRow<T extends ColDefs> = Prettify<{ [K in keyof T]: T[K] extends ColumnDef<ColumnKind, ColumnMetaBase, infer V> ? T[K]["meta"]["isNotNull"] extends true ? V : V | null : never }>;
27
- type InsertData<T extends ColDefs> = Prettify<{ [K in keyof T as IsUserProvided<T[K]> extends true ? IsRequired<T[K]> extends true ? K : never : never]: InsertValue<T[K]> } & { [K in keyof T as IsUserProvided<T[K]> extends true ? IsRequired<T[K]> extends true ? never : K : never]?: InsertValue<T[K]> }>;
28
- type InsertValue<C> = C extends ColumnDef<ColumnKind, infer Meta, infer V> ? Meta["isNotNull"] extends true ? V : V | null : never;
29
- type IsUserProvided<C> = C extends ColumnDef<"uuid", infer M> ? M["isPrimaryKey"] extends true ? M["hasDefault"] extends true ? true : false : true : true;
30
- type IsRequired<C> = C extends ColumnDef<ColumnKind, infer M, unknown> ? M["isNotNull"] extends true ? M["hasDefault"] extends true ? false : true : false : false;
31
- type WhereInput<T extends ColDefs> = {
32
- and?: WhereInput<T>[];
33
- or?: WhereInput<T>[];
34
- } & { [K in keyof T]?: (T[K] extends ColumnDef<ColumnKind, ColumnMetaBase, infer V> ? V : never) | WhereFilter<T[K] extends ColumnDef<ColumnKind, ColumnMetaBase, infer V> ? V : never> };
35
- type UniqueWhereInput<T extends ColDefs> = { [K in keyof T as T[K]["meta"]["isPrimaryKey"] extends true ? K : T[K]["meta"]["isUnique"] extends true ? K : never]?: T[K] extends ColumnDef<ColumnKind, ColumnMetaBase, infer V> ? V : never };
36
- type WhereFilter<V> = {
37
- equals?: V;
38
- not?: V;
39
- in?: V[];
40
- notIn?: V[];
41
- isNull?: boolean;
42
- endsWith?: string;
43
- startsWith?: string;
44
- contains?: string;
45
- gt?: V;
46
- lt?: V;
47
- gte?: V;
48
- lte?: V;
49
- };
50
- type ManyRelation<TTable> = {
51
- kind: "many";
52
- table: () => TTable;
53
- foreignKey?: string;
54
- };
55
- type OneRelation<TTable> = {
56
- kind: "one";
57
- foreignKey: string;
58
- table: () => TTable;
59
- };
60
- type RelationDef<TTable> = ManyRelation<TTable> | OneRelation<TTable>;
61
- type RelationDefs = Record<string, RelationDef<Table<ColDefs>>>;
62
- type FindManyInput<T extends ColDefs, TRels> = {
63
- where?: WhereInput<T>;
64
- include?: { [K in keyof TRels]?: true };
65
- orderBy?: Partial<Record<keyof T, OrderDirection>>;
66
- take?: number;
67
- skip?: number;
68
- };
69
- type FindFirstInput<T extends ColDefs, TRels> = FindManyInput<T, TRels>;
70
- type FindUniqueInput<T extends ColDefs> = {
71
- where: UniqueWhereInput<T>;
72
- };
73
- type CreateInput<T extends ColDefs> = {
74
- data: InsertData<T>;
75
- };
76
- type CreateManyInput<T extends ColDefs> = {
77
- data: InsertData<T>[];
78
- };
79
- type UpdateInput<T extends ColDefs> = {
80
- where: WhereInput<T>;
81
- data: Partial<InsertData<T>>;
82
- };
83
- type UpdateManyInput<T extends ColDefs> = {
84
- where: WhereInput<T>;
85
- data: Partial<InsertData<T>>;
86
- };
87
- type DeleteInput<T extends ColDefs> = {
88
- where: WhereInput<T>;
89
- };
90
- type DeleteManyInput<T extends ColDefs> = {
91
- where: WhereInput<T>;
92
- };
93
- type OrderDirection = "asc" | "desc";
94
- type SelectInput<T extends ColDefs, TRels> = {
95
- where?: WhereInput<T>;
96
- include?: { [K in keyof TRels]?: true };
97
- orderBy?: Partial<Record<keyof T, OrderDirection>>;
98
- limit?: number;
99
- offset?: number;
100
- };
101
- type InsertInput<T extends ColDefs> = {
102
- data: InsertData<T>;
103
- returning?: boolean;
104
- };
105
- type UpdateBuilderInput<T extends ColDefs> = {
106
- where: WhereInput<T>;
107
- data: Partial<InsertData<T>>;
108
- returning?: boolean;
109
- };
110
- type DeleteBuilderInput<T extends ColDefs> = {
111
- where: WhereInput<T>;
112
- returning?: boolean;
113
- };
114
- type ClauseOperator = "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "like" | "in" | "not_in" | "is_null" | "is_not_null";
115
- type WherePredicate<T extends ColDefs> = {
116
- kind: "predicate";
117
- key: keyof T & string;
118
- op: ClauseOperator;
119
- value?: unknown;
120
- };
121
- type WhereNode<T extends ColDefs> = WherePredicate<T> | {
122
- kind: "and";
123
- nodes: WhereNode<T>[];
124
- } | {
125
- kind: "or";
126
- nodes: WhereNode<T>[];
127
- };
128
- type JoinKind = "inner" | "left";
129
- type JoinNode = {
130
- relationKey: string;
131
- kind: JoinKind;
132
- };
133
- type LimitOffsetNode = {
134
- limit?: number;
135
- offset?: number;
136
- };
137
- type SelectPlan<T extends ColDefs> = {
138
- where?: WhereNode<T>;
139
- joins: JoinNode[];
140
- orderBy: Array<{
141
- key: keyof T & string;
142
- direction: OrderDirection;
143
- }>;
144
- page: LimitOffsetNode;
145
- };
146
- type DialectAdapter = {
147
- dialect: Dialect;
148
- likeKeyword: "LIKE" | "ILIKE";
149
- quoteIdentifier: (identifier: string) => string;
150
- serializeValue: (kind: ColumnKind, value: unknown) => string | number | boolean | null | unknown;
151
- renderLikePattern: (mode: "startsWith" | "endsWith" | "contains", value: string) => string;
152
- };
153
- type TinyTableClient<T extends ColDefs, TRels> = {
154
- select: (input?: SelectInput<T, TRels>) => SQL.Query<TableRow<T>[]>;
155
- findMany: (input?: FindManyInput<T, TRels>) => Promise<TableRow<T>[]>;
156
- findFirst: (input?: FindFirstInput<T, TRels>) => Promise<TableRow<T> | null>;
157
- findUnique: (input: FindUniqueInput<T>) => Promise<TableRow<T> | null>;
158
- insert: <TReturning extends boolean>(input: InsertInput<T> & {
159
- returning?: TReturning;
160
- }) => SQL.Query<TReturning extends true ? TableRow<T>[] : unknown>;
161
- create: (input: CreateInput<T>) => Promise<TableRow<T>>;
162
- createMany: (input: CreateManyInput<T>) => Promise<{
163
- count: number;
164
- rows: TableRow<T>[];
165
- }>;
166
- update: <TReturning extends boolean>(input: UpdateBuilderInput<T> & {
167
- returning?: TReturning;
168
- }) => SQL.Query<TReturning extends true ? TableRow<T>[] : unknown>;
169
- updateMany: (input: UpdateManyInput<T>) => Promise<{
170
- count: number;
171
- rows: TableRow<T>[];
172
- }>;
173
- delete: <TReturning extends boolean>(input: DeleteBuilderInput<T> & {
174
- returning?: TReturning;
175
- }) => SQL.Query<TReturning extends true ? TableRow<T>[] : unknown>;
176
- deleteMany: (input: DeleteManyInput<T>) => Promise<{
177
- count: number;
178
- rows: TableRow<T>[];
179
- }>;
180
- };
181
- //#endregion
182
- export { ColDefs, ColumnKind, ColumnMetaBase, CreateInput, CreateManyInput, DeleteBuilderInput, DeleteInput, DeleteManyInput, Dialect, DialectAdapter, FindFirstInput, FindManyInput, FindUniqueInput, InsertInput, JoinNode, KindToType, ManyRelation, OneRelation, OrderDirection, RelationDefs, SelectInput, SelectPlan, TableRow, TinyTableClient, UpdateBuilderInput, UpdateInput, UpdateManyInput, WhereNode };
183
- //# sourceMappingURL=types.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.cts","names":[],"sources":["../../src/lib/orm/types.ts"],"mappings":"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"}