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,774 @@
1
+ ## API Report File for "typhex"
2
+
3
+ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
+
5
+ ```ts
6
+
7
+ import pg from 'pg';
8
+
9
+ // @public
10
+ export interface AnyEntityClass {
11
+ query<C extends AnyEntityClass>(this: C, executor?: QueryExecutor): QueryBuilder<C, EntityInstance<C>>;
12
+ table: TableDef<Record<string, string>, RelationsMap>;
13
+ transaction<T>(fn: (trx: Trx) => Promise<T>): Promise<T>;
14
+ }
15
+
16
+ // @public (undocumented)
17
+ export function appliedMigrations(driver: Driver): Promise<MigrationRecord[]>;
18
+
19
+ // @public
20
+ export function avg(_field: number): number;
21
+
22
+ // @public
23
+ export type ColumnChange = {
24
+ kind: "type";
25
+ from: string;
26
+ to: string;
27
+ } | {
28
+ kind: "not_null" | "nullable";
29
+ from: boolean;
30
+ to: boolean;
31
+ } | {
32
+ kind: "default";
33
+ from: string | null;
34
+ to: string | null;
35
+ } | {
36
+ kind: "primary_key";
37
+ from: boolean;
38
+ to: boolean;
39
+ };
40
+
41
+ // @public
42
+ export type ColumnDef = string | {
43
+ [K in DialectName]?: string;
44
+ };
45
+
46
+ // @public
47
+ export interface CompiledCteBody {
48
+ // (undocumented)
49
+ bodyParams: unknown[];
50
+ // (undocumented)
51
+ bodySql: string;
52
+ // (undocumented)
53
+ name: string;
54
+ // (undocumented)
55
+ recursive?: boolean;
56
+ }
57
+
58
+ // @public
59
+ export interface Connection<TDialect extends DialectInfo = DialectInfo> {
60
+ readonly dialect: TDialect;
61
+ execute(sql: string, params?: unknown[]): Promise<ExecuteResult>;
62
+ release(): Promise<void>;
63
+ }
64
+
65
+ // @public
66
+ export function count(_field?: unknown): number;
67
+
68
+ // @public
69
+ export function createDriver(options: CreateDriverOptions): Driver;
70
+
71
+ // @public
72
+ export type CreateDriverOptions = ({
73
+ dialect: "sqlite";
74
+ } & SqliteDriverOptions) | ({
75
+ dialect: "postgres";
76
+ } & PostgresDriverOptions);
77
+
78
+ // @public
79
+ export function createPostgresDriver(options: PostgresDriverOptions): Driver;
80
+
81
+ // @public
82
+ export function createSqliteDriver(options: SqliteDriverOptions): Driver;
83
+
84
+ // @public
85
+ export class Db implements QueryExecutor {
86
+ constructor(options: DbOptions | Driver);
87
+ appliedMigrations(): Promise<MigrationRecord[]>;
88
+ beginTrx(options?: TransactionOptions): Promise<Trx>;
89
+ close(): Promise<void>;
90
+ get dialect(): DialectInfo;
91
+ downMigration(name: string, dir?: string): Promise<void>;
92
+ get driver(): Driver;
93
+ dryRunMigrations(dir?: string): Promise<{
94
+ applied: MigrationRecord[];
95
+ pending: PendingMigration[];
96
+ skipped: string[];
97
+ }>;
98
+ static fromConfig(options?: {
99
+ configPath?: string;
100
+ cwd?: string;
101
+ }): Promise<Db>;
102
+ generateMigrations(dir?: string): Promise<MigrationFile[]>;
103
+ migrate(): Promise<void>;
104
+ migrationStatus(dir?: string): Promise<{
105
+ applied: MigrationRecord[];
106
+ pending: string[];
107
+ }>;
108
+ pendingMigrations(dir?: string): Promise<PendingMigration[]>;
109
+ query(sql: string, params?: unknown[]): Promise<unknown[]>;
110
+ run(sql: string, params?: unknown[]): Promise<{
111
+ lastID?: number;
112
+ changes: number;
113
+ }>;
114
+ runMigrations(dir?: string): Promise<MigrationResult>;
115
+ transaction<T>(fn: (trx: Trx) => Promise<T>, options?: TransactionOptions): Promise<T>;
116
+ upMigration(name: string, dir?: string): Promise<void>;
117
+ validate(): Promise<void>;
118
+ }
119
+
120
+ // @public (undocumented)
121
+ export interface DbColumnInfo {
122
+ // (undocumented)
123
+ dflt_value: string | null;
124
+ // (undocumented)
125
+ name: string;
126
+ // (undocumented)
127
+ notnull: number;
128
+ // (undocumented)
129
+ pk: number;
130
+ // (undocumented)
131
+ type: string;
132
+ }
133
+
134
+ // @public
135
+ export type DbOptions = {
136
+ driver: Driver;
137
+ migrationsFolder?: string;
138
+ } | {
139
+ dialect: DialectName;
140
+ database?: string;
141
+ url?: string;
142
+ migrationsFolder?: string;
143
+ };
144
+
145
+ // @public
146
+ export interface DialectInfo {
147
+ // (undocumented)
148
+ readonly name: DialectName;
149
+ }
150
+
151
+ // @public
152
+ export type DialectName = "sqlite" | "postgres";
153
+
154
+ // @public (undocumented)
155
+ export type DiffAction = {
156
+ kind: "add_table";
157
+ table: string;
158
+ schema: Record<string, ColumnDef>;
159
+ } | {
160
+ kind: "drop_table";
161
+ table: string;
162
+ columnInfos: DbColumnInfo[];
163
+ } | {
164
+ kind: "add_column";
165
+ table: string;
166
+ column: string;
167
+ definition: ColumnDef;
168
+ } | {
169
+ kind: "drop_column";
170
+ table: string;
171
+ column: string;
172
+ columnInfo: DbColumnInfo;
173
+ } | {
174
+ kind: "alter_column";
175
+ table: string;
176
+ column: string;
177
+ oldDef: string;
178
+ newDef: ColumnDef;
179
+ columnInfo: DbColumnInfo;
180
+ changes: ColumnChange[];
181
+ };
182
+
183
+ // @public
184
+ export function diffSchema(driver: Driver, entities: readonly RegisteredEntity[]): Promise<DiffAction[]>;
185
+
186
+ // @public
187
+ export function distinct<T>(_field: T): T;
188
+
189
+ // @public (undocumented)
190
+ export function downMigration(driver: Driver, dir: string, name: string): Promise<void>;
191
+
192
+ // @public
193
+ export interface Driver<TDialect extends DialectInfo = DialectInfo> {
194
+ close(): Promise<void>;
195
+ connect(): Promise<Connection<TDialect>>;
196
+ createTrx(conn: Connection<TDialect>, options?: TransactionOptions): Trx;
197
+ readonly dialect: TDialect;
198
+ execute(sql: string, params?: unknown[]): Promise<ExecuteResult>;
199
+ }
200
+
201
+ // @public (undocumented)
202
+ export function dryRunMigrations(driver: Driver, dir: string): Promise<{
203
+ applied: MigrationRecord[];
204
+ pending: PendingMigration[];
205
+ skipped: string[];
206
+ }>;
207
+
208
+ // @public
209
+ export function Entity<TTable extends string, const TSchema extends Record<string, string>, const TRels extends RelationsMap = {}>(tableName: TTable, schema: TSchema, relations?: TRels): EntityClass<TTable, TSchema, TRels>;
210
+
211
+ // @public
212
+ export interface EntityBase {
213
+ _dirty: ReadonlySet<string>;
214
+ _isNew: boolean;
215
+ query(trx?: Trx): SingleRowQueryBuilder<this>;
216
+ }
217
+
218
+ // @public
219
+ export interface EntityClass<_TTable extends string, TSchema extends Record<string, string>, TRels extends RelationsMap = {}> extends AnyEntityClass {
220
+ new (data?: Partial<InferTable<TSchema>>): Row<Materialized<TSchema>, TRels>;
221
+ table: TableDef<TSchema, TRels>;
222
+ }
223
+
224
+ // @public
225
+ export type EntityClassOf<T> = T extends EntityInstance<infer E> ? E : T extends AnyEntityClass ? T : never;
226
+
227
+ // @public
228
+ export type EntityFields<E extends AnyEntityClass> = Materialized<EntitySchema<E>>;
229
+
230
+ // Warning: (ae-forgotten-export) The symbol "EntityInstanceFromTable" needs to be exported by the entry point index.d.ts
231
+ //
232
+ // @public
233
+ export type EntityInstance<E extends AnyEntityClass> = E extends new (...args: any[]) => infer R ? R extends EntityBase ? R : EntityInstanceFromTable<E> : EntityInstanceFromTable<E>;
234
+
235
+ // @public
236
+ export type EntityRelationProps<E extends AnyEntityClass> = {
237
+ [K in keyof EntityRelations<E>]: RelationQueryable<EntityRelations<E>[K]>;
238
+ };
239
+
240
+ // @public
241
+ export type EntityRelationPropsLoaded<E extends AnyEntityClass> = {
242
+ [K in keyof EntityRelations<E>]: RelationLoadedValue<EntityRelations<E>[K]>;
243
+ };
244
+
245
+ // @public
246
+ export type EntityRelations<E extends AnyEntityClass> = E["table"] extends TableDef<any, infer R> ? R : never;
247
+
248
+ // @public
249
+ export type EntityRow<E> = E extends AnyEntityClass ? EntityInstance<E> : never;
250
+
251
+ // @public
252
+ export type EntitySchema<E extends AnyEntityClass> = E["table"] extends TableDef<infer S, any> ? S : never;
253
+
254
+ // @public
255
+ export interface ExecuteResult {
256
+ changes: number;
257
+ lastID?: number;
258
+ rows: unknown[];
259
+ }
260
+
261
+ // @public
262
+ export type ExtractSQLBase<S extends string> = StripParens<S> extends `${infer Base} ${string}` ? Lowercase<Base> : Lowercase<StripParens<S>>;
263
+
264
+ // @public
265
+ export type Flatten<T> = {
266
+ [K in keyof T]: T[K];
267
+ } & {};
268
+
269
+ // @public
270
+ export function generateMigrationFiles(driver: Driver, entities: readonly RegisteredEntity[]): Promise<MigrationFile[]>;
271
+
272
+ // @public
273
+ export function getPkColumnsFromSchema(schema: Record<string, string>): string[];
274
+
275
+ // @public
276
+ export type HasDefault<S extends string> = Lowercase<S> extends `${string}default${string}` ? true : false;
277
+
278
+ // @public
279
+ export type InferColumnType<S extends string> = IsNotNull<S> extends true ? SQLToTS<S> : SQLToTS<S> | null;
280
+
281
+ // @public
282
+ export type InferInsert<T extends Record<string, string>> = Flatten<{
283
+ -readonly [K in keyof T as OptionalOnInsert<T[K]> extends true ? K : never]?: InferColumnType<T[K]>;
284
+ } & {
285
+ -readonly [K in keyof T as OptionalOnInsert<T[K]> extends true ? never : K]: InferColumnType<T[K]>;
286
+ }>;
287
+
288
+ // @public
289
+ export type InferTable<T extends Record<string, string>> = Flatten<{
290
+ -readonly [K in keyof T]: InferColumnType<T[K]>;
291
+ }>;
292
+
293
+ // @public
294
+ export class InsertBuilder<C extends AnyEntityClass, R> extends QueryBuilder<C> implements PromiseLike<R> {
295
+ doNothing(): Promise<R>;
296
+ doUpdate(updateColumns?: string[]): Promise<R>;
297
+ onConflict(columns: string[]): this;
298
+ then<T1 = R, T2 = never>(res?: ((v: R) => T1 | PromiseLike<T1>) | null, rej?: ((e: unknown) => T2 | PromiseLike<T2>) | null): PromiseLike<T1 | T2>;
299
+ }
300
+
301
+ // @public
302
+ export type IsGenerated<S extends string> = Lowercase<S> extends `${string}autoincrement${string}` ? true : Lowercase<S> extends `${string}auto_increment${string}` ? true : Lowercase<S> extends `${string}generated${string}` ? true : Lowercase<ExtractSQLBase<S>> extends "serial" | "bigserial" ? true : false;
303
+
304
+ // @public
305
+ export type IsNotNull<S extends string> = Lowercase<S> extends `${string}not null${string}` ? true : Lowercase<S> extends `${string}primary key${string}` ? true : false;
306
+
307
+ // @public
308
+ export interface JunctionOptions {
309
+ foreignKey: string | string[];
310
+ junction: string;
311
+ referenceKey: string | string[];
312
+ }
313
+
314
+ // @public
315
+ export function loadConfig(options?: LoadConfigOptions): Promise<TyphexConfig>;
316
+
317
+ // @public
318
+ export interface LoadConfigOptions {
319
+ configPath?: string;
320
+ cwd?: string;
321
+ overrides?: Partial<TyphexConfig>;
322
+ }
323
+
324
+ // @public
325
+ export type ManyRelation<E extends EntityBase> = RelationQueryBuilder<E> & E[];
326
+
327
+ // @public
328
+ export type ManyToMany<E extends AnyEntityClass | EntityBase> = E extends EntityBase ? ManyRelation<E> : RelatedEntityInstance<EntityClassOf<E>, "many">;
329
+
330
+ // @public
331
+ export function manyToMany<E extends AnyEntityClass>(target: () => E, options: JunctionOptions): RelationDef<E, "many-to-many">;
332
+
333
+ // @public
334
+ export function manyToMany<TTarget>(target: () => {
335
+ _selectType: TTarget;
336
+ }, options: JunctionOptions): RelationDef<TTarget, "many-to-many">;
337
+
338
+ // @public
339
+ export function manyToMany<E extends AnyEntityClass>(target: () => unknown, options: JunctionOptions): RelationDef<E, "many-to-many">;
340
+
341
+ // @public
342
+ export type ManyToManyDef<E> = RelationDef<E, "many-to-many">;
343
+
344
+ // @public
345
+ export type ManyToOne<E extends AnyEntityClass | EntityBase> = SingleRelation<ToEntityInstance<E>>;
346
+
347
+ // @public
348
+ export function manyToOne<E extends AnyEntityClass>(target: () => E, options: RelationOptions): RelationDef<E, "many-to-one">;
349
+
350
+ // @public
351
+ export function manyToOne<TTarget>(target: () => {
352
+ _selectType: TTarget;
353
+ }, options: RelationOptions): RelationDef<TTarget, "many-to-one">;
354
+
355
+ // @public
356
+ export function manyToOne<E extends AnyEntityClass>(target: () => unknown, options: RelationOptions): RelationDef<E, "many-to-one">;
357
+
358
+ // @public
359
+ export type ManyToOneDef<E> = RelationDef<E, "many-to-one">;
360
+
361
+ // @public
362
+ export type Materialized<T extends Record<string, string>> = Mutable<{
363
+ readonly [K in keyof T]: InferColumnType<T[K]>;
364
+ }>;
365
+
366
+ // @public
367
+ export type MaterializeShape<T extends Record<string, unknown>> = T extends Record<string, string> ? Materialized<T> : Mutable<T>;
368
+
369
+ // @public
370
+ export function max<T>(_field: T): T;
371
+
372
+ // @public
373
+ export interface MigrationDb {
374
+ // (undocumented)
375
+ run(sql: string, params?: unknown[]): Promise<void>;
376
+ }
377
+
378
+ // @public (undocumented)
379
+ export interface MigrationDryRun {
380
+ // (undocumented)
381
+ applied: MigrationRecord[];
382
+ // (undocumented)
383
+ pending: PendingMigration[];
384
+ // (undocumented)
385
+ skipped: string[];
386
+ }
387
+
388
+ // @public
389
+ export interface MigrationFile {
390
+ content: string;
391
+ downSql: string;
392
+ name: string;
393
+ upSql: string;
394
+ }
395
+
396
+ // @public
397
+ export interface MigrationRecord {
398
+ applied_at: string;
399
+ id: number;
400
+ name: string;
401
+ }
402
+
403
+ // @public
404
+ export interface MigrationResult {
405
+ applied: string[];
406
+ skipped: string[];
407
+ }
408
+
409
+ // @public
410
+ export function migrationStatus(driver: Driver, dir: string): Promise<{
411
+ applied: MigrationRecord[];
412
+ pending: string[];
413
+ }>;
414
+
415
+ // @public
416
+ export function min<T>(_field: T): T;
417
+
418
+ // @public
419
+ export type Mutable<T> = {
420
+ -readonly [K in keyof T]: T[K];
421
+ };
422
+
423
+ // @public
424
+ export type OneToMany<E extends AnyEntityClass | EntityBase> = E extends EntityBase ? ManyRelation<E> : RelatedEntityInstance<EntityClassOf<E>, "many">;
425
+
426
+ // @public
427
+ export function oneToMany<E extends AnyEntityClass>(target: () => E, options: {
428
+ foreignKey: string | string[];
429
+ }): RelationDef<E, "one-to-many">;
430
+
431
+ // @public
432
+ export function oneToMany<TTarget>(target: () => {
433
+ _selectType: TTarget;
434
+ }, options: {
435
+ foreignKey: string | string[];
436
+ }): RelationDef<TTarget, "one-to-many">;
437
+
438
+ // @public
439
+ export function oneToMany<E extends AnyEntityClass>(target: () => unknown, options: {
440
+ foreignKey: string | string[];
441
+ }): RelationDef<E, "one-to-many">;
442
+
443
+ // @public
444
+ export type OneToManyDef<E> = RelationDef<E, "one-to-many">;
445
+
446
+ // @public
447
+ export type OneToOne<E extends AnyEntityClass | EntityBase> = SingleRelation<ToEntityInstance<E>>;
448
+
449
+ // @public
450
+ export function oneToOne<E extends AnyEntityClass>(target: () => E, options: RelationOptions): RelationDef<E, "one-to-one">;
451
+
452
+ // @public
453
+ export function oneToOne<TTarget>(target: () => {
454
+ _selectType: TTarget;
455
+ }, options: RelationOptions): RelationDef<TTarget, "one-to-one">;
456
+
457
+ // @public
458
+ export function oneToOne<E extends AnyEntityClass>(target: () => unknown, options: RelationOptions): RelationDef<E, "one-to-one">;
459
+
460
+ // @public
461
+ export type OneToOneDef<E> = RelationDef<E, "one-to-one">;
462
+
463
+ // @public
464
+ export type OptionalOnInsert<S extends string> = IsGenerated<S> extends true ? true : IsNotNull<S> extends false ? true : HasDefault<S> extends true ? true : false;
465
+
466
+ // @public
467
+ export type OrderDirection = "asc" | "desc";
468
+
469
+ // @public (undocumented)
470
+ export interface PendingMigration {
471
+ // (undocumented)
472
+ downSql: string;
473
+ // (undocumented)
474
+ downStatements: string[];
475
+ // (undocumented)
476
+ file: string;
477
+ // (undocumented)
478
+ name: string;
479
+ // (undocumented)
480
+ statements: string[];
481
+ // (undocumented)
482
+ upSql: string;
483
+ }
484
+
485
+ // @public (undocumented)
486
+ export function pendingMigrations(driver: Driver, dir: string): Promise<PendingMigration[]>;
487
+
488
+ // @public
489
+ export interface PostgresDriverOptions {
490
+ connectionString?: string;
491
+ connectionTimeoutMs?: number;
492
+ database?: string;
493
+ host?: string;
494
+ idleTimeoutMs?: number;
495
+ logger?: {
496
+ error: (msg: string, err: Error) => void;
497
+ };
498
+ password?: string;
499
+ poolMax?: number;
500
+ poolMin?: number;
501
+ port?: number;
502
+ ssl?: pg.ConnectionConfig["ssl"];
503
+ statementTimeoutMs?: number;
504
+ url?: string;
505
+ user?: string;
506
+ }
507
+
508
+ // Warning: (ae-forgotten-export) The symbol "NoCtes" needs to be exported by the entry point index.d.ts
509
+ // Warning: (ae-forgotten-export) The symbol "QueryFromKind" needs to be exported by the entry point index.d.ts
510
+ //
511
+ // @public
512
+ export class QueryBuilder<C extends AnyEntityClass = AnyEntityClass, T = EntityInstance<C>, Ctes extends Record<string, unknown> = NoCtes, FromKind extends QueryFromKind = "table"> {
513
+ clone(): QueryBuilder<C, T, Ctes, FromKind>;
514
+ count(): Promise<number>;
515
+ crossJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
516
+ delete(): Promise<number>;
517
+ deleteReturning(): Promise<EntityInstance<C>[]>;
518
+ findById(id: unknown): Promise<EntityInstance<C> | null>;
519
+ first(): Promise<EntityInstance<C> | undefined>;
520
+ from<N extends keyof Ctes & string>(name: N): QueryBuilder<C, Ctes[N], Ctes, "cte">;
521
+ // (undocumented)
522
+ from<Row = EntityInstance<C>>(name: string): QueryBuilder<C, Row, Ctes, "cte">;
523
+ // (undocumented)
524
+ from<Row>(source: QueryBuilder<any, Row>): QueryBuilder<C, Row, Ctes, "table">;
525
+ // (undocumented)
526
+ from(): QueryBuilder<C, EntityInstance<C>, Ctes, "table">;
527
+ fullJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
528
+ // (undocumented)
529
+ fullJoin<E extends AnyEntityClass>(entity: E, on: (joined: EntityInstance<E>, row: T) => boolean): this;
530
+ groupBy(columnOrFn: string | string[] | number | number[] | ((row: EntityInstance<C>) => unknown), ...rest: (string | number)[]): this;
531
+ having(predicate: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => boolean : (row: EntityInstance<C>) => boolean, params?: Record<string, unknown>): this;
532
+ innerJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
533
+ // (undocumented)
534
+ innerJoin<E extends AnyEntityClass>(entity: E, on: (joined: EntityInstance<E>, row: T) => boolean): this;
535
+ insert(row: Record<string, unknown>): InsertBuilder<C, EntityInstance<C> | undefined>;
536
+ insertGraph(graph: Record<string, unknown>): Promise<EntityInstance<C>>;
537
+ insertGraph(graphs: Record<string, unknown>[]): Promise<EntityInstance<C>[]>;
538
+ insertMany(rows: Record<string, unknown>[]): InsertBuilder<C, EntityInstance<C>[]>;
539
+ leftJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
540
+ // (undocumented)
541
+ leftJoin<E extends AnyEntityClass>(entity: E, on: (joined: EntityInstance<E>, row: T) => boolean): this;
542
+ limit(n: number): this;
543
+ offset(n: number): this;
544
+ orderBy(col: string | ((row: T) => unknown), direction?: OrderDirection): this;
545
+ patch(set: Record<string, unknown>): Promise<EntityInstance<C> | null>;
546
+ // (undocumented)
547
+ protected requirePkColumns(context: string): string[];
548
+ rightJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
549
+ // (undocumented)
550
+ rightJoin<E extends AnyEntityClass>(entity: E, on: (joined: EntityInstance<E>, row: T) => boolean): this;
551
+ select<U>(fn: (row: SelectRow<C>) => U): QueryBuilder<C, U, Ctes>;
552
+ select(columns: string[]): QueryBuilder<C, T, Ctes>;
553
+ toArray(): Promise<EntityInstance<C>[]>;
554
+ unionAll<OC extends AnyEntityClass, OT>(other: QueryBuilder<OC, OT, any, any>): QueryBuilder<C, T, Ctes, FromKind>;
555
+ update(set: Record<string, unknown>): Promise<number>;
556
+ // (undocumented)
557
+ update(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>): Promise<number>;
558
+ updateReturning(set: Record<string, unknown>): Promise<EntityInstance<C>[]>;
559
+ // (undocumented)
560
+ updateReturning(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>): Promise<EntityInstance<C>[]>;
561
+ // Warning: (ae-forgotten-export) The symbol "HasRegisteredCtes" needs to be exported by the entry point index.d.ts
562
+ // Warning: (ae-forgotten-export) The symbol "TableRow" needs to be exported by the entry point index.d.ts
563
+ // Warning: (ae-forgotten-export) The symbol "RegisteredCtes" needs to be exported by the entry point index.d.ts
564
+ where(predicate: FromKind extends "cte" ? (row: T) => boolean : HasRegisteredCtes<Ctes> extends true ? (row: TableRow<C, T, FromKind>, ctes: RegisteredCtes<Ctes>) => boolean : (row: TableRow<C, T, FromKind>) => boolean, params?: Record<string, unknown>): this;
565
+ // (undocumented)
566
+ withCte<const N extends string, IC extends AnyEntityClass, IT>(name: N, subquery: QueryBuilder<IC, IT, any, any>): QueryBuilder<C, T, Ctes & Record<N, IT>, FromKind>;
567
+ // (undocumented)
568
+ withCte<const N extends string, IC extends AnyEntityClass, IT>(name: N, build: (ctes: RegisteredCtes<Ctes>) => QueryBuilder<IC, IT, any, any>): QueryBuilder<C, T, Ctes & Record<N, IT>, FromKind>;
569
+ withRecursiveCte<const N extends string, IC extends AnyEntityClass, IT>(name: N, subquery: QueryBuilder<IC, IT, any, any>): QueryBuilder<C, T, Ctes & Record<N, IT>, FromKind>;
570
+ }
571
+
572
+ // @public
573
+ export interface QueryExecutor {
574
+ readonly dialect: DialectInfo;
575
+ query(sql: string, params?: unknown[]): Promise<unknown[]>;
576
+ run(sql: string, params?: unknown[]): Promise<{
577
+ lastID?: number;
578
+ changes: number;
579
+ }>;
580
+ }
581
+
582
+ // @public
583
+ export interface RegisteredEntity {
584
+ _registerJunctions?: () => void;
585
+ table: {
586
+ _table: string;
587
+ _schema: Record<string, string>;
588
+ };
589
+ }
590
+
591
+ // @public
592
+ export const rel: {
593
+ oneToOne: typeof oneToOne;
594
+ manyToOne: typeof manyToOne;
595
+ oneToMany: typeof oneToMany;
596
+ manyToMany: typeof manyToMany;
597
+ };
598
+
599
+ // @public
600
+ export type RelatedEntityInstance<E extends AnyEntityClass, Kind extends "one" | "many"> = Kind extends "many" ? RelationQueryBuilder<SelectRow<E>> & EntityInstance<E>[] : SingleRelation<EntityInstance<E>>;
601
+
602
+ // @public
603
+ export interface RelationDef<_E = unknown, TType extends RelationType = RelationType> {
604
+ readonly _options: RelationOptions | JunctionOptions;
605
+ readonly _relType: TType;
606
+ readonly _target: () => unknown;
607
+ }
608
+
609
+ // @public
610
+ export type RelationKind<TType extends RelationType> = TType extends "one-to-many" | "many-to-many" ? "many" : "one";
611
+
612
+ // @public
613
+ export type RelationLoadedValue<R> = R extends RelationDef<infer E, infer TType> ? E extends AnyEntityClass ? unknown extends E ? TType extends "one-to-many" | "many-to-many" ? RelationQueryBuilder<any> & EntityBase[] : EntityBase : TType extends "one-to-many" | "many-to-many" ? ManyRelation<EntityInstance<E>> : EntityInstance<E> : TType extends "one-to-many" | "many-to-many" ? RelationQueryBuilder<any> & EntityBase[] : EntityBase : never;
614
+
615
+ // @public
616
+ export interface RelationOptions {
617
+ foreignKey: string | string[];
618
+ references?: string | string[];
619
+ }
620
+
621
+ // @public
622
+ export type RelationQueryable<R> = R extends RelationDef<infer E, infer TType> ? E extends AnyEntityClass ? RelatedEntityInstance<E, RelationKind<TType>> : TType extends "one-to-many" | "many-to-many" ? RelationQueryBuilder<E> & E[] : RelationQueryBuilder<E> & E : never;
623
+
624
+ // @public
625
+ export interface RelationQueryBuilder<T> {
626
+ count(): Promise<number>;
627
+ first(): Promise<T | undefined>;
628
+ limit(n: number): RelationQueryBuilder<T>;
629
+ offset(n: number): RelationQueryBuilder<T>;
630
+ orderBy(col: string, dir?: string): RelationQueryBuilder<T>;
631
+ query(): RelationQueryBuilder<T>;
632
+ select<U>(fn: (row: T) => U): RelationQueryBuilder<U>;
633
+ toArray(): Promise<T[]>;
634
+ where(fn: (row: T) => boolean): RelationQueryBuilder<T>;
635
+ }
636
+
637
+ // @public
638
+ export type RelationsMap = Record<string, RelationDef<any, RelationType>>;
639
+
640
+ // @public
641
+ export type RelationTarget<R> = R extends RelationDef<infer E, any> ? (E extends AnyEntityClass ? EntityInstance<E> : E) : never;
642
+
643
+ // @public
644
+ export type RelationType = "one-to-one" | "many-to-one" | "one-to-many" | "many-to-many";
645
+
646
+ // @public
647
+ export type Row<TShape extends Record<string, unknown>, TRels extends RelationsMap = {}> = Flatten<MaterializeShape<TShape> & {
648
+ [K in keyof TRels]: RelationLoadedValue<TRels[K]>;
649
+ }> & EntityBase;
650
+
651
+ // @public
652
+ export function runMigrations(driver: Driver, dir: string): Promise<MigrationResult>;
653
+
654
+ // Warning: (ae-forgotten-export) The symbol "SelectRowFromTable" needs to be exported by the entry point index.d.ts
655
+ //
656
+ // @public
657
+ export type SelectRow<E extends AnyEntityClass> = E extends new (...args: any[]) => infer R ? R extends EntityBase ? R : SelectRowFromTable<E> : SelectRowFromTable<E>;
658
+
659
+ // @public
660
+ export type SingleRelation<E extends EntityBase> = E;
661
+
662
+ // @public
663
+ export class SingleRowQueryBuilder<T = unknown> {
664
+ delete(): Promise<void>;
665
+ patch(set: Record<string, unknown>): Promise<void>;
666
+ save(): Promise<void>;
667
+ }
668
+
669
+ // @public
670
+ export interface SqliteDriverOptions {
671
+ database?: string;
672
+ path?: string;
673
+ }
674
+
675
+ // @public
676
+ export type SQLToTS<S extends string> = ExtractSQLBase<S> extends keyof SQLTypeMap ? SQLTypeMap[ExtractSQLBase<S>] : unknown;
677
+
678
+ // @public
679
+ export type SQLTypeMap = {
680
+ integer: number;
681
+ int: number;
682
+ serial: number;
683
+ smallint: number;
684
+ tinyint: number;
685
+ real: number;
686
+ float: number;
687
+ double: number;
688
+ numeric: number;
689
+ decimal: number;
690
+ text: string;
691
+ varchar: string;
692
+ char: string;
693
+ nvarchar: string;
694
+ uuid: string;
695
+ boolean: boolean;
696
+ bool: boolean;
697
+ date: Date;
698
+ datetime: Date;
699
+ timestamp: Date;
700
+ blob: Uint8Array;
701
+ json: unknown;
702
+ jsonb: unknown;
703
+ bigint: bigint;
704
+ bigserial: bigint;
705
+ };
706
+
707
+ // @public
708
+ export type StripParens<S extends string> = S extends `${infer Base}(${string})${infer Rest}` ? `${Base}${Rest}` : S;
709
+
710
+ // @public
711
+ export function sum(_field: number): number;
712
+
713
+ // @public
714
+ export interface TableDef<TSchema extends Record<string, string>, TRelations extends RelationsMap = Record<string, never>> {
715
+ readonly _insertType: InferInsert<TSchema>;
716
+ readonly _relations: TRelations;
717
+ readonly _schema: TSchema;
718
+ readonly _selectType: InferTable<TSchema>;
719
+ readonly _table: string;
720
+ }
721
+
722
+ // @public
723
+ export type ToEntityInstance<E> = E extends EntityBase ? E : EntityInstance<EntityClassOf<E>>;
724
+
725
+ // @public
726
+ export interface TransactionOptions {
727
+ deferrable?: boolean;
728
+ isolationLevel?: "READ_UNCOMMITTED" | "READ_COMMITTED" | "REPEATABLE_READ" | "SERIALIZABLE";
729
+ readOnly?: boolean;
730
+ sqliteMode?: "deferred" | "immediate" | "exclusive";
731
+ }
732
+
733
+ // @public
734
+ export abstract class Trx {
735
+ protected abstract begin(): Promise<void>;
736
+ beginTrx(): Promise<Trx>;
737
+ abstract commit(): Promise<void>;
738
+ static readonly defaultOptions: TransactionOptions;
739
+ get dialect(): DialectInfo;
740
+ query(sql: string, params?: unknown[]): Promise<unknown[]>;
741
+ abstract rollback(): Promise<void>;
742
+ run(sql: string, params?: unknown[]): Promise<{
743
+ lastID?: number;
744
+ changes: number;
745
+ }>;
746
+ transaction<T>(fn: (trx: Trx) => Promise<T>): Promise<T>;
747
+ protected validateOptions(): void;
748
+ }
749
+
750
+ // @public
751
+ export interface TyphexConfig {
752
+ database?: string;
753
+ dialect: DialectName;
754
+ entities?: string;
755
+ migrationsFolder?: string;
756
+ url?: string;
757
+ }
758
+
759
+ // @public (undocumented)
760
+ export function upMigration(driver: Driver, dir: string, name: string): Promise<void>;
761
+
762
+ // @public
763
+ export interface WithClause {
764
+ // (undocumented)
765
+ inner: unknown;
766
+ // (undocumented)
767
+ kind: "simple" | "recursive";
768
+ // (undocumented)
769
+ name: string;
770
+ }
771
+
772
+ // (No @packageDocumentation comment for this package)
773
+
774
+ ```