typhex 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/LICENSE +21 -0
  3. package/README.md +417 -0
  4. package/SECURITY.md +32 -0
  5. package/dist/arrow/aggregates.d.ts +12 -0
  6. package/dist/arrow/aggregates.d.ts.map +1 -0
  7. package/dist/arrow/aggregates.js +32 -0
  8. package/dist/arrow/aggregates.js.map +1 -0
  9. package/dist/arrow/constants.d.ts +15 -0
  10. package/dist/arrow/constants.d.ts.map +1 -0
  11. package/dist/arrow/constants.js +42 -0
  12. package/dist/arrow/constants.js.map +1 -0
  13. package/dist/arrow/index.d.ts +7 -0
  14. package/dist/arrow/index.d.ts.map +1 -0
  15. package/dist/arrow/index.js +7 -0
  16. package/dist/arrow/index.js.map +1 -0
  17. package/dist/config/index.d.ts +6 -0
  18. package/dist/config/index.d.ts.map +1 -0
  19. package/dist/config/index.js +4 -0
  20. package/dist/config/index.js.map +1 -0
  21. package/dist/config/load-config.d.ts +19 -0
  22. package/dist/config/load-config.d.ts.map +1 -0
  23. package/dist/config/load-config.js +84 -0
  24. package/dist/config/load-config.js.map +1 -0
  25. package/dist/config/load-env.d.ts +7 -0
  26. package/dist/config/load-env.d.ts.map +1 -0
  27. package/dist/config/load-env.js +62 -0
  28. package/dist/config/load-env.js.map +1 -0
  29. package/dist/config/types.d.ts +20 -0
  30. package/dist/config/types.d.ts.map +1 -0
  31. package/dist/config/types.js +10 -0
  32. package/dist/config/types.js.map +1 -0
  33. package/dist/dbs/base-migrator.d.ts +20 -0
  34. package/dist/dbs/base-migrator.d.ts.map +1 -0
  35. package/dist/dbs/base-migrator.js +112 -0
  36. package/dist/dbs/base-migrator.js.map +1 -0
  37. package/dist/dbs/index.d.ts +9 -0
  38. package/dist/dbs/index.d.ts.map +1 -0
  39. package/dist/dbs/index.js +17 -0
  40. package/dist/dbs/index.js.map +1 -0
  41. package/dist/dbs/postgres/dialect.d.ts +8 -0
  42. package/dist/dbs/postgres/dialect.d.ts.map +1 -0
  43. package/dist/dbs/postgres/dialect.js +17 -0
  44. package/dist/dbs/postgres/dialect.js.map +1 -0
  45. package/dist/dbs/postgres/driver.d.ts +42 -0
  46. package/dist/dbs/postgres/driver.d.ts.map +1 -0
  47. package/dist/dbs/postgres/driver.js +111 -0
  48. package/dist/dbs/postgres/driver.js.map +1 -0
  49. package/dist/dbs/postgres/index.d.ts +6 -0
  50. package/dist/dbs/postgres/index.d.ts.map +1 -0
  51. package/dist/dbs/postgres/index.js +5 -0
  52. package/dist/dbs/postgres/index.js.map +1 -0
  53. package/dist/dbs/postgres/migrator.d.ts +13 -0
  54. package/dist/dbs/postgres/migrator.d.ts.map +1 -0
  55. package/dist/dbs/postgres/migrator.js +22 -0
  56. package/dist/dbs/postgres/migrator.js.map +1 -0
  57. package/dist/dbs/postgres/query-compiler.d.ts +22 -0
  58. package/dist/dbs/postgres/query-compiler.d.ts.map +1 -0
  59. package/dist/dbs/postgres/query-compiler.js +140 -0
  60. package/dist/dbs/postgres/query-compiler.js.map +1 -0
  61. package/dist/dbs/postgres/trx.d.ts +16 -0
  62. package/dist/dbs/postgres/trx.d.ts.map +1 -0
  63. package/dist/dbs/postgres/trx.js +68 -0
  64. package/dist/dbs/postgres/trx.js.map +1 -0
  65. package/dist/dbs/query-compiler.d.ts +135 -0
  66. package/dist/dbs/query-compiler.d.ts.map +1 -0
  67. package/dist/dbs/query-compiler.js +775 -0
  68. package/dist/dbs/query-compiler.js.map +1 -0
  69. package/dist/dbs/sqlite/dialect.d.ts +8 -0
  70. package/dist/dbs/sqlite/dialect.d.ts.map +1 -0
  71. package/dist/dbs/sqlite/dialect.js +17 -0
  72. package/dist/dbs/sqlite/dialect.js.map +1 -0
  73. package/dist/dbs/sqlite/driver.d.ts +9 -0
  74. package/dist/dbs/sqlite/driver.d.ts.map +1 -0
  75. package/dist/dbs/sqlite/driver.js +66 -0
  76. package/dist/dbs/sqlite/driver.js.map +1 -0
  77. package/dist/dbs/sqlite/index.d.ts +6 -0
  78. package/dist/dbs/sqlite/index.d.ts.map +1 -0
  79. package/dist/dbs/sqlite/index.js +5 -0
  80. package/dist/dbs/sqlite/index.js.map +1 -0
  81. package/dist/dbs/sqlite/migrator.d.ts +13 -0
  82. package/dist/dbs/sqlite/migrator.d.ts.map +1 -0
  83. package/dist/dbs/sqlite/migrator.js +22 -0
  84. package/dist/dbs/sqlite/migrator.js.map +1 -0
  85. package/dist/dbs/sqlite/query-compiler.d.ts +26 -0
  86. package/dist/dbs/sqlite/query-compiler.d.ts.map +1 -0
  87. package/dist/dbs/sqlite/query-compiler.js +80 -0
  88. package/dist/dbs/sqlite/query-compiler.js.map +1 -0
  89. package/dist/dbs/sqlite/trx.d.ts +13 -0
  90. package/dist/dbs/sqlite/trx.d.ts.map +1 -0
  91. package/dist/dbs/sqlite/trx.js +69 -0
  92. package/dist/dbs/sqlite/trx.js.map +1 -0
  93. package/dist/dbs/types.d.ts +92 -0
  94. package/dist/dbs/types.d.ts.map +1 -0
  95. package/dist/dbs/types.js +26 -0
  96. package/dist/dbs/types.js.map +1 -0
  97. package/dist/dialect.d.ts +3 -0
  98. package/dist/dialect.d.ts.map +1 -0
  99. package/dist/dialect.js +2 -0
  100. package/dist/dialect.js.map +1 -0
  101. package/dist/driver/factory.d.ts +19 -0
  102. package/dist/driver/factory.d.ts.map +1 -0
  103. package/dist/driver/factory.js +24 -0
  104. package/dist/driver/factory.js.map +1 -0
  105. package/dist/driver/index.d.ts +6 -0
  106. package/dist/driver/index.d.ts.map +1 -0
  107. package/dist/driver/index.js +3 -0
  108. package/dist/driver/index.js.map +1 -0
  109. package/dist/driver/sqlite.d.ts +15 -0
  110. package/dist/driver/sqlite.d.ts.map +1 -0
  111. package/dist/driver/sqlite.js +74 -0
  112. package/dist/driver/sqlite.js.map +1 -0
  113. package/dist/driver/types.d.ts +75 -0
  114. package/dist/driver/types.d.ts.map +1 -0
  115. package/dist/driver/types.js +2 -0
  116. package/dist/driver/types.js.map +1 -0
  117. package/dist/entity/entity.d.ts +67 -0
  118. package/dist/entity/entity.d.ts.map +1 -0
  119. package/dist/entity/entity.js +139 -0
  120. package/dist/entity/entity.js.map +1 -0
  121. package/dist/entity/global-driver.d.ts +38 -0
  122. package/dist/entity/global-driver.d.ts.map +1 -0
  123. package/dist/entity/global-driver.js +109 -0
  124. package/dist/entity/global-driver.js.map +1 -0
  125. package/dist/entity/index.d.ts +8 -0
  126. package/dist/entity/index.d.ts.map +1 -0
  127. package/dist/entity/index.js +3 -0
  128. package/dist/entity/index.js.map +1 -0
  129. package/dist/entity/pk-columns.d.ts +5 -0
  130. package/dist/entity/pk-columns.d.ts.map +1 -0
  131. package/dist/entity/pk-columns.js +14 -0
  132. package/dist/entity/pk-columns.js.map +1 -0
  133. package/dist/entity/relations.d.ts +134 -0
  134. package/dist/entity/relations.d.ts.map +1 -0
  135. package/dist/entity/relations.js +23 -0
  136. package/dist/entity/relations.js.map +1 -0
  137. package/dist/entity/schema-inference.d.ts +77 -0
  138. package/dist/entity/schema-inference.d.ts.map +1 -0
  139. package/dist/entity/schema-inference.js +6 -0
  140. package/dist/entity/schema-inference.js.map +1 -0
  141. package/dist/entity/types.d.ts +30 -0
  142. package/dist/entity/types.d.ts.map +1 -0
  143. package/dist/entity/types.js +5 -0
  144. package/dist/entity/types.js.map +1 -0
  145. package/dist/index.d.ts +25 -0
  146. package/dist/index.d.ts.map +1 -0
  147. package/dist/index.js +12 -0
  148. package/dist/index.js.map +1 -0
  149. package/dist/ir/index.d.ts +2 -0
  150. package/dist/ir/index.d.ts.map +1 -0
  151. package/dist/ir/index.js +2 -0
  152. package/dist/ir/index.js.map +1 -0
  153. package/dist/ir/types.d.ts +148 -0
  154. package/dist/ir/types.d.ts.map +1 -0
  155. package/dist/ir/types.js +97 -0
  156. package/dist/ir/types.js.map +1 -0
  157. package/dist/migration/cli.d.ts +18 -0
  158. package/dist/migration/cli.d.ts.map +1 -0
  159. package/dist/migration/cli.js +236 -0
  160. package/dist/migration/cli.js.map +1 -0
  161. package/dist/migration/diff.d.ts +10 -0
  162. package/dist/migration/diff.d.ts.map +1 -0
  163. package/dist/migration/diff.js +10 -0
  164. package/dist/migration/diff.js.map +1 -0
  165. package/dist/migration/generator.d.ts +12 -0
  166. package/dist/migration/generator.d.ts.map +1 -0
  167. package/dist/migration/generator.js +98 -0
  168. package/dist/migration/generator.js.map +1 -0
  169. package/dist/migration/index.d.ts +7 -0
  170. package/dist/migration/index.d.ts.map +1 -0
  171. package/dist/migration/index.js +5 -0
  172. package/dist/migration/index.js.map +1 -0
  173. package/dist/migration/runner.d.ts +32 -0
  174. package/dist/migration/runner.d.ts.map +1 -0
  175. package/dist/migration/runner.js +279 -0
  176. package/dist/migration/runner.js.map +1 -0
  177. package/dist/migration/topo-sort.d.ts +12 -0
  178. package/dist/migration/topo-sort.d.ts.map +1 -0
  179. package/dist/migration/topo-sort.js +42 -0
  180. package/dist/migration/topo-sort.js.map +1 -0
  181. package/dist/migration/types.d.ts +45 -0
  182. package/dist/migration/types.d.ts.map +1 -0
  183. package/dist/migration/types.js +2 -0
  184. package/dist/migration/types.js.map +1 -0
  185. package/dist/orm/aggregates.d.ts +19 -0
  186. package/dist/orm/aggregates.d.ts.map +1 -0
  187. package/dist/orm/aggregates.js +32 -0
  188. package/dist/orm/aggregates.js.map +1 -0
  189. package/dist/orm/db.d.ts +105 -0
  190. package/dist/orm/db.d.ts.map +1 -0
  191. package/dist/orm/db.js +172 -0
  192. package/dist/orm/db.js.map +1 -0
  193. package/dist/orm/expr.d.ts +125 -0
  194. package/dist/orm/expr.d.ts.map +1 -0
  195. package/dist/orm/expr.js +10 -0
  196. package/dist/orm/expr.js.map +1 -0
  197. package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts +9 -0
  198. package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts.map +1 -0
  199. package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.js +44 -0
  200. package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.js.map +1 -0
  201. package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts +13 -0
  202. package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts.map +1 -0
  203. package/dist/orm/helpers/insert-graph/insert-graph-executor.js +42 -0
  204. package/dist/orm/helpers/insert-graph/insert-graph-executor.js.map +1 -0
  205. package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts +46 -0
  206. package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts.map +1 -0
  207. package/dist/orm/helpers/insert-graph/insert-graph-planner.js +258 -0
  208. package/dist/orm/helpers/insert-graph/insert-graph-planner.js.map +1 -0
  209. package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts +7 -0
  210. package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts.map +1 -0
  211. package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.js +8 -0
  212. package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.js.map +1 -0
  213. package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts +15 -0
  214. package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts.map +1 -0
  215. package/dist/orm/helpers/insert-graph/sequence-id-assigner.js +48 -0
  216. package/dist/orm/helpers/insert-graph/sequence-id-assigner.js.map +1 -0
  217. package/dist/orm/helpers/query-plan/expr-builder.d.ts +155 -0
  218. package/dist/orm/helpers/query-plan/expr-builder.d.ts.map +1 -0
  219. package/dist/orm/helpers/query-plan/expr-builder.js +297 -0
  220. package/dist/orm/helpers/query-plan/expr-builder.js.map +1 -0
  221. package/dist/orm/helpers/query-plan/query-ir-analyzer.d.ts +48 -0
  222. package/dist/orm/helpers/query-plan/query-ir-analyzer.d.ts.map +1 -0
  223. package/dist/orm/helpers/query-plan/query-ir-analyzer.js +262 -0
  224. package/dist/orm/helpers/query-plan/query-ir-analyzer.js.map +1 -0
  225. package/dist/orm/helpers/query-plan/query-plan.d.ts +164 -0
  226. package/dist/orm/helpers/query-plan/query-plan.d.ts.map +1 -0
  227. package/dist/orm/helpers/query-plan/query-plan.js +549 -0
  228. package/dist/orm/helpers/query-plan/query-plan.js.map +1 -0
  229. package/dist/orm/helpers/query-plan/select-classifier.d.ts +161 -0
  230. package/dist/orm/helpers/query-plan/select-classifier.d.ts.map +1 -0
  231. package/dist/orm/helpers/query-plan/select-classifier.js +359 -0
  232. package/dist/orm/helpers/query-plan/select-classifier.js.map +1 -0
  233. package/dist/orm/helpers/relations/relation-assembler.d.ts +21 -0
  234. package/dist/orm/helpers/relations/relation-assembler.d.ts.map +1 -0
  235. package/dist/orm/helpers/relations/relation-assembler.js +60 -0
  236. package/dist/orm/helpers/relations/relation-assembler.js.map +1 -0
  237. package/dist/orm/helpers/relations/relation-fetcher.d.ts +30 -0
  238. package/dist/orm/helpers/relations/relation-fetcher.d.ts.map +1 -0
  239. package/dist/orm/helpers/relations/relation-fetcher.js +128 -0
  240. package/dist/orm/helpers/relations/relation-fetcher.js.map +1 -0
  241. package/dist/orm/helpers/relations/relation-joins.d.ts +74 -0
  242. package/dist/orm/helpers/relations/relation-joins.d.ts.map +1 -0
  243. package/dist/orm/helpers/relations/relation-joins.js +138 -0
  244. package/dist/orm/helpers/relations/relation-joins.js.map +1 -0
  245. package/dist/orm/helpers/relations/relation-resolver.d.ts +14 -0
  246. package/dist/orm/helpers/relations/relation-resolver.d.ts.map +1 -0
  247. package/dist/orm/helpers/relations/relation-resolver.js +25 -0
  248. package/dist/orm/helpers/relations/relation-resolver.js.map +1 -0
  249. package/dist/orm/index.d.ts +7 -0
  250. package/dist/orm/index.d.ts.map +1 -0
  251. package/dist/orm/index.js +5 -0
  252. package/dist/orm/index.js.map +1 -0
  253. package/dist/orm/query-builder.d.ts +136 -0
  254. package/dist/orm/query-builder.d.ts.map +1 -0
  255. package/dist/orm/query-builder.js +433 -0
  256. package/dist/orm/query-builder.js.map +1 -0
  257. package/dist/orm/query-helpers.d.ts +35 -0
  258. package/dist/orm/query-helpers.d.ts.map +1 -0
  259. package/dist/orm/query-helpers.js +83 -0
  260. package/dist/orm/query-helpers.js.map +1 -0
  261. package/dist/orm/query-state.d.ts +56 -0
  262. package/dist/orm/query-state.d.ts.map +1 -0
  263. package/dist/orm/query-state.js +112 -0
  264. package/dist/orm/query-state.js.map +1 -0
  265. package/dist/orm/single-row-query-builder.d.ts +18 -0
  266. package/dist/orm/single-row-query-builder.d.ts.map +1 -0
  267. package/dist/orm/single-row-query-builder.js +90 -0
  268. package/dist/orm/single-row-query-builder.js.map +1 -0
  269. package/dist/orm/trx.d.ts +40 -0
  270. package/dist/orm/trx.d.ts.map +1 -0
  271. package/dist/orm/trx.js +118 -0
  272. package/dist/orm/trx.js.map +1 -0
  273. package/dist/parser/acorn-helpers.d.ts +43 -0
  274. package/dist/parser/acorn-helpers.d.ts.map +1 -0
  275. package/dist/parser/acorn-helpers.js +104 -0
  276. package/dist/parser/acorn-helpers.js.map +1 -0
  277. package/dist/parser/acorn-member.d.ts +16 -0
  278. package/dist/parser/acorn-member.d.ts.map +1 -0
  279. package/dist/parser/acorn-member.js +31 -0
  280. package/dist/parser/acorn-member.js.map +1 -0
  281. package/dist/parser/acorn-types.d.ts +14 -0
  282. package/dist/parser/acorn-types.d.ts.map +1 -0
  283. package/dist/parser/acorn-types.js +6 -0
  284. package/dist/parser/acorn-types.js.map +1 -0
  285. package/dist/parser/arrow-source.d.ts +23 -0
  286. package/dist/parser/arrow-source.d.ts.map +1 -0
  287. package/dist/parser/arrow-source.js +70 -0
  288. package/dist/parser/arrow-source.js.map +1 -0
  289. package/dist/parser/group-by.d.ts +17 -0
  290. package/dist/parser/group-by.d.ts.map +1 -0
  291. package/dist/parser/group-by.js +62 -0
  292. package/dist/parser/group-by.js.map +1 -0
  293. package/dist/parser/index.d.ts +5 -0
  294. package/dist/parser/index.d.ts.map +1 -0
  295. package/dist/parser/index.js +3 -0
  296. package/dist/parser/index.js.map +1 -0
  297. package/dist/parser/parse-arrow.d.ts +10 -0
  298. package/dist/parser/parse-arrow.d.ts.map +1 -0
  299. package/dist/parser/parse-arrow.js +9 -0
  300. package/dist/parser/parse-arrow.js.map +1 -0
  301. package/dist/parser/predicate-walk.d.ts +24 -0
  302. package/dist/parser/predicate-walk.d.ts.map +1 -0
  303. package/dist/parser/predicate-walk.js +247 -0
  304. package/dist/parser/predicate-walk.js.map +1 -0
  305. package/dist/parser/resolve.d.ts +25 -0
  306. package/dist/parser/resolve.d.ts.map +1 -0
  307. package/dist/parser/resolve.js +134 -0
  308. package/dist/parser/resolve.js.map +1 -0
  309. package/dist/parser/select.d.ts +7 -0
  310. package/dist/parser/select.d.ts.map +1 -0
  311. package/dist/parser/select.js +333 -0
  312. package/dist/parser/select.js.map +1 -0
  313. package/dist/parser/update.d.ts +7 -0
  314. package/dist/parser/update.d.ts.map +1 -0
  315. package/dist/parser/update.js +51 -0
  316. package/dist/parser/update.js.map +1 -0
  317. package/dist/postgres/aggregates.d.ts +12 -0
  318. package/dist/postgres/aggregates.d.ts.map +1 -0
  319. package/dist/postgres/aggregates.js +19 -0
  320. package/dist/postgres/aggregates.js.map +1 -0
  321. package/dist/postgres.d.ts +6 -0
  322. package/dist/postgres.d.ts.map +1 -0
  323. package/dist/postgres.js +6 -0
  324. package/dist/postgres.js.map +1 -0
  325. package/dist/schema/index.d.ts +2 -0
  326. package/dist/schema/index.d.ts.map +1 -0
  327. package/dist/schema/index.js +2 -0
  328. package/dist/schema/index.js.map +1 -0
  329. package/dist/schema/types.d.ts +16 -0
  330. package/dist/schema/types.d.ts.map +1 -0
  331. package/dist/schema/types.js +40 -0
  332. package/dist/schema/types.js.map +1 -0
  333. package/dist/sqlite/aggregates.d.ts +8 -0
  334. package/dist/sqlite/aggregates.d.ts.map +1 -0
  335. package/dist/sqlite/aggregates.js +11 -0
  336. package/dist/sqlite/aggregates.js.map +1 -0
  337. package/dist/sqlite.d.ts +6 -0
  338. package/dist/sqlite.d.ts.map +1 -0
  339. package/dist/sqlite.js +6 -0
  340. package/dist/sqlite.js.map +1 -0
  341. package/dist/transformer/bindings.d.ts +18 -0
  342. package/dist/transformer/bindings.d.ts.map +1 -0
  343. package/dist/transformer/bindings.js +52 -0
  344. package/dist/transformer/bindings.js.map +1 -0
  345. package/dist/transformer/index.d.ts +17 -0
  346. package/dist/transformer/index.d.ts.map +1 -0
  347. package/dist/transformer/index.js +75 -0
  348. package/dist/transformer/index.js.map +1 -0
  349. package/dist/transformer/ir-emit.d.ts +12 -0
  350. package/dist/transformer/ir-emit.d.ts.map +1 -0
  351. package/dist/transformer/ir-emit.js +144 -0
  352. package/dist/transformer/ir-emit.js.map +1 -0
  353. package/dist/transformer/join-transformer.d.ts +12 -0
  354. package/dist/transformer/join-transformer.d.ts.map +1 -0
  355. package/dist/transformer/join-transformer.js +102 -0
  356. package/dist/transformer/join-transformer.js.map +1 -0
  357. package/dist/transformer/orderby-transformer.d.ts +13 -0
  358. package/dist/transformer/orderby-transformer.d.ts.map +1 -0
  359. package/dist/transformer/orderby-transformer.js +84 -0
  360. package/dist/transformer/orderby-transformer.js.map +1 -0
  361. package/dist/transformer/select-transformer.d.ts +9 -0
  362. package/dist/transformer/select-transformer.d.ts.map +1 -0
  363. package/dist/transformer/select-transformer.js +222 -0
  364. package/dist/transformer/select-transformer.js.map +1 -0
  365. package/dist/transformer/shared.d.ts +12 -0
  366. package/dist/transformer/shared.d.ts.map +1 -0
  367. package/dist/transformer/shared.js +12 -0
  368. package/dist/transformer/shared.js.map +1 -0
  369. package/dist/transformer/subquery-transformer.d.ts +15 -0
  370. package/dist/transformer/subquery-transformer.d.ts.map +1 -0
  371. package/dist/transformer/subquery-transformer.js +43 -0
  372. package/dist/transformer/subquery-transformer.js.map +1 -0
  373. package/dist/transformer/ts-aggregates.d.ts +13 -0
  374. package/dist/transformer/ts-aggregates.d.ts.map +1 -0
  375. package/dist/transformer/ts-aggregates.js +83 -0
  376. package/dist/transformer/ts-aggregates.js.map +1 -0
  377. package/dist/transformer/ts-binary.d.ts +8 -0
  378. package/dist/transformer/ts-binary.d.ts.map +1 -0
  379. package/dist/transformer/ts-binary.js +32 -0
  380. package/dist/transformer/ts-binary.js.map +1 -0
  381. package/dist/transformer/ts-member.d.ts +12 -0
  382. package/dist/transformer/ts-member.d.ts.map +1 -0
  383. package/dist/transformer/ts-member.js +22 -0
  384. package/dist/transformer/ts-member.js.map +1 -0
  385. package/dist/transformer/ts-utils.d.ts +10 -0
  386. package/dist/transformer/ts-utils.d.ts.map +1 -0
  387. package/dist/transformer/ts-utils.js +38 -0
  388. package/dist/transformer/ts-utils.js.map +1 -0
  389. package/dist/transformer/typhex-type.d.ts +8 -0
  390. package/dist/transformer/typhex-type.d.ts.map +1 -0
  391. package/dist/transformer/typhex-type.js +52 -0
  392. package/dist/transformer/typhex-type.js.map +1 -0
  393. package/dist/transformer/where-transformer.d.ts +33 -0
  394. package/dist/transformer/where-transformer.d.ts.map +1 -0
  395. package/dist/transformer/where-transformer.js +400 -0
  396. package/dist/transformer/where-transformer.js.map +1 -0
  397. package/dist/utils.d.ts +5 -0
  398. package/dist/utils.d.ts.map +1 -0
  399. package/dist/utils.js +30 -0
  400. package/dist/utils.js.map +1 -0
  401. package/docs/drivers/postgres.md +54 -0
  402. package/docs/drivers/sqlite.md +33 -0
  403. package/docs/guide/aggregations.md +272 -0
  404. package/docs/guide/bulk-operations.md +204 -0
  405. package/docs/guide/cte-and-unions.md +270 -0
  406. package/docs/guide/entities-relations.md +208 -0
  407. package/docs/guide/expressions.md +98 -0
  408. package/docs/guide/filtering-by-relations.md +166 -0
  409. package/docs/guide/getting-started.md +277 -0
  410. package/docs/guide/querying-relations.md +133 -0
  411. package/docs/guide/subqueries.md +152 -0
  412. package/docs/guide/transactions.md +146 -0
  413. package/docs/guide/typescript-transformer.md +138 -0
  414. package/docs/index.md +33 -0
  415. package/docs/migrations/overview.md +143 -0
  416. package/docs/public-api.md +133 -0
  417. package/docs/reference/api.md +665 -0
  418. package/docs/reference/architecture.md +83 -0
  419. package/docs/release-checklist.md +55 -0
  420. package/etc/typhex.api.md +774 -0
  421. package/package.json +137 -0
@@ -0,0 +1,13 @@
1
+ /**
2
+ * PostgreSQL schema migrator: diff and introspection.
3
+ */
4
+ import type { DbColumnInfo } from "../types.js";
5
+ import type { ResolvedDriver } from "../../driver/types.js";
6
+ import { BaseMigrator } from "../base-migrator.js";
7
+ export declare class PostgresMigrator extends BaseMigrator {
8
+ constructor();
9
+ getDbTables(driver: ResolvedDriver): Promise<string[]>;
10
+ getDbColumns(driver: ResolvedDriver, table: string): Promise<DbColumnInfo[]>;
11
+ }
12
+ export declare const postgresMigrator: PostgresMigrator;
13
+ //# sourceMappingURL=migrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../../src/dbs/postgres/migrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,qBAAa,gBAAiB,SAAQ,YAAY;;IAK1C,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMtD,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAKnF;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * PostgreSQL schema migrator: diff and introspection.
3
+ */
4
+ import { BaseMigrator } from "../base-migrator.js";
5
+ import { postgresQueryCompiler } from "./query-compiler.js";
6
+ export class PostgresMigrator extends BaseMigrator {
7
+ constructor() {
8
+ super("postgres", postgresQueryCompiler);
9
+ }
10
+ async getDbTables(driver) {
11
+ const compiled = this.queryCompiler.compileListTables();
12
+ const rows = await driver.execute(compiled.sql, compiled.params).then((r) => r.rows);
13
+ return rows.map((r) => r.table_name);
14
+ }
15
+ async getDbColumns(driver, table) {
16
+ const compiled = this.queryCompiler.compileListColumns(table);
17
+ const rows = await driver.execute(compiled.sql, compiled.params).then((r) => r.rows);
18
+ return rows;
19
+ }
20
+ }
21
+ export const postgresMigrator = new PostgresMigrator();
22
+ //# sourceMappingURL=migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/dbs/postgres/migrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD;QACE,KAAK,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAsB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrF,OAAQ,IAAsC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAsB,EAAE,KAAa;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrF,OAAO,IAAsB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { BaseQueryCompiler } from "../query-compiler.js";
2
+ import type { CompileResult, DiffAction, ExpandPlaceholdersResult, CompiledCteBody } from "../types.js";
3
+ import type { ExprAggregate, JoinSpec } from "../../orm/expr.js";
4
+ type AlterColumnAction = Extract<DiffAction, {
5
+ kind: "alter_column";
6
+ }>;
7
+ export declare class PostgresQueryCompiler extends BaseQueryCompiler {
8
+ protected readonly dialect: "postgres";
9
+ compileNextSequenceValues(): CompileResult;
10
+ compileTrackingTable(): CompileResult;
11
+ compileListTables(): CompileResult;
12
+ compileListColumns(table: string): CompileResult;
13
+ protected expandPlaceholders(sql: string, resolvedParams: unknown[], startIdx?: number): ExpandPlaceholdersResult;
14
+ protected compileWithClause(coreSql: string, coreParams: unknown[], bodies: CompiledCteBody[], paramStartIndex: number): CompileResult;
15
+ private shiftPlaceholders;
16
+ compileAggregate(agg: ExprAggregate, params?: unknown[]): string;
17
+ protected buildJoinClause(join: JoinSpec, mainAlias: string, onSql?: string): string;
18
+ protected compileAlterColumn(action: AlterColumnAction, reverse: boolean): string;
19
+ }
20
+ export declare const postgresQueryCompiler: PostgresQueryCompiler;
21
+ export {};
22
+ //# sourceMappingURL=query-compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../../src/dbs/postgres/query-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,wBAAwB,EACxB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEjE,KAAK,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAAC;AAEvE,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAG,UAAU,CAAU;IAEjD,yBAAyB,IAAI,aAAa;IAI1C,oBAAoB,IAAI,aAAa;IAWrC,iBAAiB,IAAI,aAAa;IAalC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa;IAwBhD,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,OAAO,EAAE,EACzB,QAAQ,SAAI,GACX,wBAAwB;IAgB3B,SAAS,CAAC,iBAAiB,CACzB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,EAAE,EACrB,MAAM,EAAE,eAAe,EAAE,EACzB,eAAe,EAAE,MAAM,GACtB,aAAa;IAiBhB,OAAO,CAAC,iBAAiB;IAKzB,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,MAAM;IAapE,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAiBpF,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;CA8BlF;AAED,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
@@ -0,0 +1,140 @@
1
+ import { BaseQueryCompiler } from "../query-compiler.js";
2
+ export class PostgresQueryCompiler extends BaseQueryCompiler {
3
+ dialect = "postgres";
4
+ compileNextSequenceValues() {
5
+ throw new Error("Postgres sequence allocation is not configured for this dialect yet");
6
+ }
7
+ compileTrackingTable() {
8
+ return {
9
+ sql: `CREATE TABLE IF NOT EXISTS ${this.escapeIdentifier("_typhex_migrations")} (
10
+ ${this.escapeIdentifier("id")} SERIAL PRIMARY KEY,
11
+ ${this.escapeIdentifier("name")} TEXT NOT NULL UNIQUE,
12
+ ${this.escapeIdentifier("applied_at")} TIMESTAMP NOT NULL DEFAULT NOW()
13
+ )`,
14
+ params: [],
15
+ };
16
+ }
17
+ compileListTables() {
18
+ return {
19
+ sql: `
20
+ SELECT table_name
21
+ FROM information_schema.tables
22
+ WHERE table_schema = 'public'
23
+ AND table_type = 'BASE TABLE'
24
+ AND table_name != '_typhex_migrations'
25
+ `,
26
+ params: [],
27
+ };
28
+ }
29
+ compileListColumns(table) {
30
+ return {
31
+ sql: `
32
+ SELECT column_name as name, data_type as type,
33
+ CASE WHEN is_nullable = 'NO' THEN 1 ELSE 0 END as notnull,
34
+ column_default as dflt_value,
35
+ CASE WHEN column_name IN (
36
+ SELECT kcu.column_name
37
+ FROM information_schema.table_constraints tc
38
+ JOIN information_schema.key_column_usage kcu
39
+ ON tc.constraint_name = kcu.constraint_name
40
+ AND tc.table_schema = kcu.table_schema
41
+ WHERE tc.table_schema = 'public'
42
+ AND tc.table_name = $1
43
+ AND tc.constraint_type = 'PRIMARY KEY'
44
+ ) THEN 1 ELSE 0 END as pk
45
+ FROM information_schema.columns
46
+ WHERE table_schema = 'public' AND table_name = $1
47
+ ORDER BY ordinal_position
48
+ `,
49
+ params: [table],
50
+ };
51
+ }
52
+ expandPlaceholders(sql, resolvedParams, startIdx = 1) {
53
+ let idx = 0;
54
+ const newParams = [];
55
+ let paramIndex = startIdx;
56
+ const newSql = sql.replaceAll(/\$(\d+)/g, () => {
57
+ const v = resolvedParams[idx++];
58
+ if (Array.isArray(v)) {
59
+ v.forEach((x) => newParams.push(x));
60
+ return v.map(() => `$${paramIndex++}`).join(", ");
61
+ }
62
+ newParams.push(v);
63
+ return `$${paramIndex++}`;
64
+ });
65
+ return { sql: newSql, params: newParams };
66
+ }
67
+ compileWithClause(coreSql, coreParams, bodies, paramStartIndex) {
68
+ let offset = paramStartIndex - 1;
69
+ const merged = [];
70
+ const parts = [];
71
+ for (const body of bodies) {
72
+ parts.push(`${this.escapeIdentifier(body.name)} AS (${this.shiftPlaceholders(body.bodySql, offset)})`);
73
+ merged.push(...body.bodyParams);
74
+ offset += body.bodyParams.length;
75
+ }
76
+ const outer = this.shiftPlaceholders(coreSql, offset);
77
+ merged.push(...coreParams);
78
+ const keyword = bodies.some((b) => b.recursive) ? "WITH RECURSIVE" : "WITH";
79
+ return { sql: `${keyword} ${parts.join(", ")} ${outer}`, params: merged };
80
+ }
81
+ shiftPlaceholders(sql, delta) {
82
+ if (delta === 0)
83
+ return sql;
84
+ return sql.replace(/\$(\d+)/g, (_, n) => `$${Number(n) + delta}`);
85
+ }
86
+ compileAggregate(agg, params = []) {
87
+ switch (agg.func) {
88
+ case "GROUP_CONCAT":
89
+ case "STRING_AGG":
90
+ return this.compileConcatAggregate("STRING_AGG", agg, "','", params);
91
+ case "ARRAY_AGG":
92
+ case "JSON_AGG":
93
+ return this.compileStandardAggregate(agg.func, agg, params);
94
+ default:
95
+ return super.compileAggregate(agg, params);
96
+ }
97
+ }
98
+ buildJoinClause(join, mainAlias, onSql) {
99
+ const kw = join.joinType === "cross"
100
+ ? "INNER JOIN"
101
+ : (BaseQueryCompiler.JOIN_SQL_KEYWORDS[join.joinType] ?? "LEFT JOIN");
102
+ if (join.on) {
103
+ return ` ${kw} ${this.escapeIdentifier(join.targetTable)} AS ${this.escapeIdentifier(join.alias)} ON ${onSql}`;
104
+ }
105
+ const on = join.foreignKeys
106
+ .map((fk, i) => `${this.escapeIdentifier(mainAlias)}.${this.escapeIdentifier(fk)} = ${this.escapeIdentifier(join.alias)}.${this.escapeIdentifier(join.targetPkColumns[i] ?? join.targetPkColumns[0])}`)
107
+ .join(" AND ");
108
+ return ` ${kw} ${this.escapeIdentifier(join.targetTable)} AS ${this.escapeIdentifier(join.alias)} ON ${on}`;
109
+ }
110
+ compileAlterColumn(action, reverse) {
111
+ const table = this.escapeIdentifier(action.table);
112
+ const column = this.escapeIdentifier(action.column);
113
+ return action.changes
114
+ .map((change) => {
115
+ switch (change.kind) {
116
+ case "type": {
117
+ const type = reverse ? change.from : change.to;
118
+ return `ALTER TABLE ${table} ALTER COLUMN ${column} TYPE ${type};`;
119
+ }
120
+ case "not_null":
121
+ case "nullable": {
122
+ const notNull = reverse ? change.from : change.to;
123
+ const operation = notNull ? "SET NOT NULL" : "DROP NOT NULL";
124
+ return `ALTER TABLE ${table} ALTER COLUMN ${column} ${operation};`;
125
+ }
126
+ case "default": {
127
+ const value = reverse ? change.from : change.to;
128
+ const operation = value == null ? "DROP DEFAULT" : `SET DEFAULT ${value}`;
129
+ return `ALTER TABLE ${table} ALTER COLUMN ${column} ${operation};`;
130
+ }
131
+ case "primary_key":
132
+ throw new Error(`Primary key change on ${action.table}.${action.column} requires a manual migration; ` +
133
+ `Postgres ALTER TABLE cannot add or drop a PK in isolation.`);
134
+ }
135
+ })
136
+ .join("\n");
137
+ }
138
+ }
139
+ export const postgresQueryCompiler = new PostgresQueryCompiler();
140
+ //# sourceMappingURL=query-compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-compiler.js","sourceRoot":"","sources":["../../../src/dbs/postgres/query-compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * PostgreSQL transaction scope: BEGIN [ISOLATION LEVEL ...], SAVEPOINT nesting.
3
+ */
4
+ import { Trx } from "../../orm/trx.js";
5
+ export declare class PostgresTrx extends Trx {
6
+ /** PostgreSQL default: READ COMMITTED (Postgres's own default isolation level). */
7
+ static readonly defaultOptions: {
8
+ isolationLevel: "READ_COMMITTED";
9
+ };
10
+ protected validateOptions(): void;
11
+ private compileBeginStatement;
12
+ begin(): Promise<void>;
13
+ commit(): Promise<void>;
14
+ rollback(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=trx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trx.d.ts","sourceRoot":"","sources":["../../../src/dbs/postgres/trx.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,qBAAa,WAAY,SAAQ,GAAG;IAClC,mFAAmF;IACnF,gBAAyB,cAAc;;MAAiD;IAExF,SAAS,CAAC,eAAe,IAAI,IAAI;IAmBjC,OAAO,CAAC,qBAAqB;IASvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IASvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAYhC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * PostgreSQL transaction scope: BEGIN [ISOLATION LEVEL ...], SAVEPOINT nesting.
3
+ */
4
+ import { Trx } from "../../orm/trx.js";
5
+ export class PostgresTrx extends Trx {
6
+ /** PostgreSQL default: READ COMMITTED (Postgres's own default isolation level). */
7
+ static defaultOptions = { isolationLevel: "READ_COMMITTED" };
8
+ validateOptions() {
9
+ // sqliteMode must never appear — check user options (it can't come from our Postgres defaults).
10
+ if (this._options?.sqliteMode !== undefined) {
11
+ throw new Error("TransactionOptions.sqliteMode is not supported by PostgreSQL. Use isolationLevel, readOnly, or deferrable instead.");
12
+ }
13
+ // Deferrable preconditions apply to the effective options (user may have omitted isolationLevel,
14
+ // relying on the default READ_COMMITTED — which is not valid for DEFERRABLE).
15
+ if (this._options.deferrable) {
16
+ if (this._options.isolationLevel !== "SERIALIZABLE") {
17
+ throw new Error('TransactionOptions.deferrable requires isolationLevel: "SERIALIZABLE".');
18
+ }
19
+ if (!this._options.readOnly) {
20
+ throw new Error("TransactionOptions.deferrable requires readOnly: true.");
21
+ }
22
+ }
23
+ }
24
+ compileBeginStatement() {
25
+ const parts = ["BEGIN"];
26
+ const iso = this._options.isolationLevel?.replaceAll("_", " ");
27
+ if (iso)
28
+ parts.push(`ISOLATION LEVEL ${iso}`);
29
+ if (this._options.readOnly)
30
+ parts.push("READ ONLY");
31
+ if (this._options.deferrable)
32
+ parts.push("DEFERRABLE");
33
+ return parts.join(" ");
34
+ }
35
+ async begin() {
36
+ if (this._isNested) {
37
+ await this._conn.execute(`SAVEPOINT ${this._savepointName}`, []);
38
+ }
39
+ else {
40
+ await this._conn.execute(this.compileBeginStatement(), []);
41
+ this._depth = 1;
42
+ }
43
+ }
44
+ async commit() {
45
+ if (this._savepointName) {
46
+ await this._conn.execute(`RELEASE SAVEPOINT ${this._savepointName}`, []);
47
+ }
48
+ else {
49
+ await this._conn.execute("COMMIT", []);
50
+ await this._cleanup?.();
51
+ }
52
+ }
53
+ async rollback() {
54
+ if (this._savepointName) {
55
+ await this._conn.execute(`ROLLBACK TO SAVEPOINT ${this._savepointName}`, []);
56
+ }
57
+ else {
58
+ try {
59
+ await this._conn.execute("ROLLBACK", []);
60
+ }
61
+ catch {
62
+ /* ignore */
63
+ }
64
+ await this._cleanup?.();
65
+ }
66
+ }
67
+ }
68
+ //# sourceMappingURL=trx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trx.js","sourceRoot":"","sources":["../../../src/dbs/postgres/trx.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,OAAO,WAAY,SAAQ,GAAG;IAClC,mFAAmF;IACnF,MAAM,CAAmB,cAAc,GAAG,EAAE,cAAc,EAAE,gBAAyB,EAAE,CAAC;IAE9E,eAAe;QACvB,gGAAgG;QAChG,IAAI,IAAI,CAAC,QAAQ,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,oHAAoH,CACrH,CAAC;QACJ,CAAC;QACD,iGAAiG;QACjG,8EAA8E;QAC9E,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,MAAM,KAAK,GAAa,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,yBAAyB,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Shared SQL query compiler.
3
+ *
4
+ * The public surface compiles complete query/migration operations. Dialect
5
+ * subclasses override protected pieces where SQL differs.
6
+ */
7
+ import type { ColumnDef, CompileQueryOpts, CompileResult, CompileSelectOpts, DiffAction, ExpandPlaceholdersResult, OnConflictClause, QueryCompiler, CompiledCteBody } from "./types.js";
8
+ import type { Expr, ExprAggregate, ExprCase, ExprColumn, BinaryOp, GroupByItem, JoinSpec } from "../orm/expr.js";
9
+ import type { QueryPlan } from "../orm/helpers/query-plan/query-plan.js";
10
+ import type { FromSource } from "../orm/query-state.js";
11
+ import type { DialectName, WithClause } from "./types.js";
12
+ import type { JoinType } from "../ir/types.js";
13
+ type AlterColumnAction = Extract<DiffAction, {
14
+ kind: "alter_column";
15
+ }>;
16
+ type PreparedReadPlan = {
17
+ compiledCteBodies: CompiledCteBody[];
18
+ fromResolved: {
19
+ fromClause: string;
20
+ fromParams: unknown[];
21
+ };
22
+ joinsSql: string;
23
+ joinParams: unknown[];
24
+ expand: (compiled: {
25
+ sql: string;
26
+ params: unknown[];
27
+ }, paramValues: Record<string, unknown>) => ExpandPlaceholdersResult;
28
+ paramStartIndex: number;
29
+ };
30
+ export declare abstract class BaseQueryCompiler implements QueryCompiler {
31
+ protected static readonly JOIN_SQL_KEYWORDS: Record<JoinType, string>;
32
+ protected abstract readonly dialect: DialectName;
33
+ protected renderColumn(col: ExprColumn): string;
34
+ protected compileUnarySql(op: "!" | "~", operandSql: string): string;
35
+ protected compileXorSql(left: string, right: string): string;
36
+ protected compileBinarySql(op: BinaryOp, left: string, right: string): string;
37
+ protected compileInlineExpr(arg: Expr | null, params: unknown[]): string;
38
+ protected inlineConstLiteral(value: unknown): string;
39
+ protected compileInlineBinary(node: Expr & {
40
+ kind: "binary";
41
+ }, params: unknown[]): string;
42
+ protected compileInlineCase(node: ExprCase, params: unknown[]): string;
43
+ protected isNullEquality(node: Expr & {
44
+ kind: "binary";
45
+ }): boolean;
46
+ protected compileStandardAggregate(funcName: string, agg: ExprAggregate, params: unknown[]): string;
47
+ protected compileConcatAggregate(funcName: string, agg: ExprAggregate, defaultSep: string | undefined, params: unknown[]): string;
48
+ compileGroupBy(items: GroupByItem[]): string;
49
+ compilePlan(plan: QueryPlan, options?: CompileQueryOpts): CompileResult;
50
+ compileResultSize(plan: QueryPlan): CompileResult;
51
+ protected compileCteBodies(ctes: WithClause[] | undefined, allowedCteNames?: string[]): CompiledCteBody[];
52
+ protected resolvePlanFromClause(plan: {
53
+ tableName: string;
54
+ tableAlias: string;
55
+ fromSource?: FromSource;
56
+ }, allowedCteNames: string[], paramStartIndex: number, compileOptions?: CompileQueryOpts): {
57
+ fromClause: string;
58
+ fromParams: unknown[];
59
+ };
60
+ protected prepareReadPlan(plan: QueryPlan, options: CompileQueryOpts): PreparedReadPlan;
61
+ private compileJoinsSql;
62
+ protected abstract compileWithClause(coreSql: string, coreParams: unknown[], bodies: CompiledCteBody[], paramStartIndex: number): CompileResult;
63
+ protected attachCteBodies(core: CompileResult, bodies: CompiledCteBody[], paramStartIndex: number): CompileResult;
64
+ compileMigrationUp(action: DiffAction): string;
65
+ compileMigrationDown(action: DiffAction): string;
66
+ compileCreateTableIfNotExists(table: string, schema: Record<string, ColumnDef>): string;
67
+ compileAppliedMigrations(): CompileResult;
68
+ compileRecordMigration(name: string): CompileResult;
69
+ compileDeleteMigration(name: string): CompileResult;
70
+ compileNextSequenceValues(_tableName: string, _pkColumn: string, _count: number): CompileResult;
71
+ abstract compileTrackingTable(): CompileResult;
72
+ abstract compileListTables(): CompileResult;
73
+ abstract compileListColumns(table: string): CompileResult;
74
+ protected escapeIdentifier(name: string): string;
75
+ protected placeholder(index: number): string;
76
+ protected abstract expandPlaceholders(sql: string, resolvedParams: unknown[], startIdx?: number): ExpandPlaceholdersResult;
77
+ protected toColumnDef(def: ColumnDef): string;
78
+ protected compileSelectPlan(plan: QueryPlan, options: CompileQueryOpts): CompileResult;
79
+ protected compileUpdatePlan(plan: QueryPlan): CompileResult;
80
+ protected compileDeletePlan(plan: QueryPlan): CompileResult;
81
+ protected compileSelect(opts: CompileSelectOpts): CompileResult;
82
+ protected compileInsert(table: string, columns: string[], values: unknown[], pk?: string[], onConflict?: OnConflictClause): CompileResult;
83
+ protected compileInsertMany(table: string, columns: string[], rows: unknown[][], pk?: string[], onConflict?: OnConflictClause): CompileResult;
84
+ protected compileUpdate(table: string, updateSet: Record<string, Expr>, columns: string[], whereSql: string, whereParams: unknown[], options?: {
85
+ returning?: boolean;
86
+ fromCtes?: string[];
87
+ tableAlias?: string;
88
+ registeredCteNames?: Set<string>;
89
+ }): CompileResult;
90
+ protected compileDelete(table: string, whereSql: string, whereParams: unknown[], options?: {
91
+ returning?: boolean;
92
+ fromCtes?: string[];
93
+ tableAlias?: string;
94
+ }): CompileResult;
95
+ protected compileNode(node: Expr, params: unknown[]): string;
96
+ protected compileSubqueryPlan(plan: QueryPlan, outerParams: unknown[]): string;
97
+ protected compileInNode(node: Expr & {
98
+ kind: "in";
99
+ }, params: unknown[]): string;
100
+ protected compileExistsNode(node: Expr & {
101
+ kind: "exists";
102
+ }, params: unknown[]): string;
103
+ protected compileExists(targetTable: string, alias: string, fkColumns: string[], mainAlias: string, mainPk: string[], innerSql: string): string;
104
+ protected compileLike(receiver: string, arg: string, mode: "startsWith" | "endsWith" | "includes"): string;
105
+ compileAggregate(agg: ExprAggregate, params?: unknown[]): string;
106
+ protected buildJoinClause(join: JoinSpec, mainAlias: string, onSql?: string): string;
107
+ protected appendOnConflict(baseSql: string, onConflict: OnConflictClause, insertColumns: string[]): string;
108
+ protected excludedTableName(): string;
109
+ protected singleInsertReturnsRows(hasPk: boolean): boolean;
110
+ protected renderInsertManyValue(value: unknown, paramIndex: number): {
111
+ sql: string;
112
+ params: unknown[];
113
+ };
114
+ protected renumberUpdateWhereParams(whereSql: string, offset: number): string;
115
+ protected registeredCteNames(plan: QueryPlan): Set<string>;
116
+ protected fixMutationWhereAlias(table: string, whereSql: string, alias?: string, keepAlias?: boolean): string;
117
+ protected compileCreateTable(table: string, schema: Record<string, ColumnDef>, ifNotExists: boolean): string;
118
+ protected compileRecreateDroppedTable(table: string, columnInfos: Array<{
119
+ name: string;
120
+ type: string;
121
+ notnull: number;
122
+ dflt_value: string | null;
123
+ pk: number;
124
+ }>): string;
125
+ protected compileAlterColumn(action: AlterColumnAction, reverse: boolean): string;
126
+ protected reconstructColDef(col: {
127
+ type: string;
128
+ notnull: number;
129
+ dflt_value: string | null;
130
+ pk: number;
131
+ }): string;
132
+ private createExpander;
133
+ }
134
+ export {};
135
+ //# sourceMappingURL=query-compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../src/dbs/query-compiler.ts"],"names":[],"mappings":"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"}