@fragno-dev/db 0.1.15 → 0.2.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 (407) hide show
  1. package/.turbo/turbo-build.log +242 -179
  2. package/CHANGELOG.md +23 -0
  3. package/README.md +123 -8
  4. package/dist/adapters/adapters.d.ts +5 -5
  5. package/dist/adapters/adapters.d.ts.map +1 -1
  6. package/dist/adapters/adapters.js.map +1 -1
  7. package/dist/adapters/drizzle/drizzle-adapter.d.ts +6 -21
  8. package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -1
  9. package/dist/adapters/drizzle/drizzle-adapter.js +7 -54
  10. package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -1
  11. package/dist/adapters/drizzle/generate.d.ts +3 -0
  12. package/dist/adapters/drizzle/generate.d.ts.map +1 -1
  13. package/dist/adapters/drizzle/generate.js +36 -28
  14. package/dist/adapters/drizzle/generate.js.map +1 -1
  15. package/dist/adapters/generic-sql/driver-config.d.ts +74 -0
  16. package/dist/adapters/generic-sql/driver-config.d.ts.map +1 -0
  17. package/dist/adapters/generic-sql/driver-config.js +94 -0
  18. package/dist/adapters/generic-sql/driver-config.js.map +1 -0
  19. package/dist/adapters/generic-sql/generic-sql-adapter.d.ts +43 -0
  20. package/dist/adapters/generic-sql/generic-sql-adapter.d.ts.map +1 -0
  21. package/dist/adapters/generic-sql/generic-sql-adapter.js +87 -0
  22. package/dist/adapters/generic-sql/generic-sql-adapter.js.map +1 -0
  23. package/dist/adapters/generic-sql/generic-sql-uow-executor.js +67 -0
  24. package/dist/adapters/generic-sql/generic-sql-uow-executor.js.map +1 -0
  25. package/dist/adapters/generic-sql/migration/cold-kysely.js +33 -0
  26. package/dist/adapters/generic-sql/migration/cold-kysely.js.map +1 -0
  27. package/dist/adapters/generic-sql/migration/dialect/mysql.js +60 -0
  28. package/dist/adapters/generic-sql/migration/dialect/mysql.js.map +1 -0
  29. package/dist/adapters/generic-sql/migration/dialect/postgres.js +59 -0
  30. package/dist/adapters/generic-sql/migration/dialect/postgres.js.map +1 -0
  31. package/dist/adapters/generic-sql/migration/dialect/sqlite.js +96 -0
  32. package/dist/adapters/generic-sql/migration/dialect/sqlite.js.map +1 -0
  33. package/dist/adapters/generic-sql/migration/executor.d.ts +15 -0
  34. package/dist/adapters/generic-sql/migration/executor.d.ts.map +1 -0
  35. package/dist/adapters/generic-sql/migration/executor.js +18 -0
  36. package/dist/adapters/generic-sql/migration/executor.js.map +1 -0
  37. package/dist/adapters/generic-sql/migration/prepared-migrations.d.ts +66 -0
  38. package/dist/adapters/generic-sql/migration/prepared-migrations.d.ts.map +1 -0
  39. package/dist/adapters/generic-sql/migration/prepared-migrations.js +68 -0
  40. package/dist/adapters/generic-sql/migration/prepared-migrations.js.map +1 -0
  41. package/dist/adapters/generic-sql/migration/sql-generator.js +212 -0
  42. package/dist/adapters/generic-sql/migration/sql-generator.js.map +1 -0
  43. package/dist/adapters/generic-sql/query/create-sql-query-compiler.js +32 -0
  44. package/dist/adapters/generic-sql/query/create-sql-query-compiler.js.map +1 -0
  45. package/dist/adapters/generic-sql/query/cursor-utils.js +37 -0
  46. package/dist/adapters/generic-sql/query/cursor-utils.js.map +1 -0
  47. package/dist/adapters/generic-sql/query/dialect/mysql.js +33 -0
  48. package/dist/adapters/generic-sql/query/dialect/mysql.js.map +1 -0
  49. package/dist/adapters/generic-sql/query/dialect/postgres.js +32 -0
  50. package/dist/adapters/generic-sql/query/dialect/postgres.js.map +1 -0
  51. package/dist/adapters/generic-sql/query/dialect/sqlite.js +32 -0
  52. package/dist/adapters/generic-sql/query/dialect/sqlite.js.map +1 -0
  53. package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js +152 -0
  54. package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js.map +1 -0
  55. package/dist/adapters/generic-sql/query/select-builder.js +69 -0
  56. package/dist/adapters/generic-sql/query/select-builder.js.map +1 -0
  57. package/dist/adapters/generic-sql/query/sql-query-compiler.js +145 -0
  58. package/dist/adapters/generic-sql/query/sql-query-compiler.js.map +1 -0
  59. package/dist/adapters/generic-sql/query/where-builder.js +129 -0
  60. package/dist/adapters/generic-sql/query/where-builder.js.map +1 -0
  61. package/dist/adapters/generic-sql/result-interpreter.js +74 -0
  62. package/dist/adapters/generic-sql/result-interpreter.js.map +1 -0
  63. package/dist/adapters/generic-sql/uow-decoder.js +105 -0
  64. package/dist/adapters/generic-sql/uow-decoder.js.map +1 -0
  65. package/dist/adapters/generic-sql/uow-encoder.js +93 -0
  66. package/dist/adapters/generic-sql/uow-encoder.js.map +1 -0
  67. package/dist/adapters/kysely/kysely-adapter.d.ts +5 -18
  68. package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -1
  69. package/dist/adapters/kysely/kysely-adapter.js +6 -165
  70. package/dist/adapters/kysely/kysely-adapter.js.map +1 -1
  71. package/dist/adapters/{drizzle/drizzle-query.js → shared/from-unit-of-work-compiler.js} +47 -61
  72. package/dist/adapters/shared/from-unit-of-work-compiler.js.map +1 -0
  73. package/dist/adapters/{drizzle/shared.d.ts → shared/table-name-mapper.d.ts} +2 -4
  74. package/dist/adapters/shared/table-name-mapper.d.ts.map +1 -0
  75. package/dist/adapters/shared/table-name-mapper.js +43 -0
  76. package/dist/adapters/shared/table-name-mapper.js.map +1 -0
  77. package/dist/adapters/shared/uow-operation-compiler.js +105 -0
  78. package/dist/adapters/shared/uow-operation-compiler.js.map +1 -0
  79. package/dist/db-fragment-definition-builder.d.ts +53 -19
  80. package/dist/db-fragment-definition-builder.d.ts.map +1 -1
  81. package/dist/db-fragment-definition-builder.js +89 -19
  82. package/dist/db-fragment-definition-builder.js.map +1 -1
  83. package/dist/fragments/internal-fragment.d.ts +39 -5
  84. package/dist/fragments/internal-fragment.d.ts.map +1 -1
  85. package/dist/fragments/internal-fragment.js +82 -10
  86. package/dist/fragments/internal-fragment.js.map +1 -1
  87. package/dist/hooks/hooks.d.ts +51 -0
  88. package/dist/hooks/hooks.d.ts.map +1 -0
  89. package/dist/hooks/hooks.js +88 -0
  90. package/dist/hooks/hooks.js.map +1 -0
  91. package/dist/migration-engine/generation-engine.d.ts +0 -2
  92. package/dist/migration-engine/generation-engine.d.ts.map +1 -1
  93. package/dist/migration-engine/generation-engine.js +23 -61
  94. package/dist/migration-engine/generation-engine.js.map +1 -1
  95. package/dist/mod.d.ts +34 -10
  96. package/dist/mod.d.ts.map +1 -1
  97. package/dist/mod.js +47 -16
  98. package/dist/mod.js.map +1 -1
  99. package/dist/node_modules/.pnpm/{rou3@0.7.8 → rou3@0.7.10}/node_modules/rou3/dist/index.js +1 -1
  100. package/dist/node_modules/.pnpm/rou3@0.7.10/node_modules/rou3/dist/index.js.map +1 -0
  101. package/dist/packages/fragno/dist/api/fragment-instantiator.js +69 -31
  102. package/dist/packages/fragno/dist/api/fragment-instantiator.js.map +1 -1
  103. package/dist/query/column-defaults.js +27 -0
  104. package/dist/query/column-defaults.js.map +1 -0
  105. package/dist/query/cursor.d.ts +4 -4
  106. package/dist/query/cursor.d.ts.map +1 -1
  107. package/dist/query/cursor.js +8 -6
  108. package/dist/query/cursor.js.map +1 -1
  109. package/dist/query/orm/orm.d.ts +1 -1
  110. package/dist/query/orm/orm.js.map +1 -1
  111. package/dist/query/serialize/create-sql-serializer.js +30 -0
  112. package/dist/query/serialize/create-sql-serializer.js.map +1 -0
  113. package/dist/query/serialize/dialect/mysql-serializer.js +87 -0
  114. package/dist/query/serialize/dialect/mysql-serializer.js.map +1 -0
  115. package/dist/query/serialize/dialect/postgres-serializer.js +80 -0
  116. package/dist/query/serialize/dialect/postgres-serializer.js.map +1 -0
  117. package/dist/query/serialize/dialect/sqlite-serializer.js +93 -0
  118. package/dist/query/serialize/dialect/sqlite-serializer.js.map +1 -0
  119. package/dist/query/serialize/sql-serializer.js +67 -0
  120. package/dist/query/serialize/sql-serializer.js.map +1 -0
  121. package/dist/query/{query.d.ts → simple-query-interface.d.ts} +5 -5
  122. package/dist/query/simple-query-interface.d.ts.map +1 -0
  123. package/dist/query/{execute-unit-of-work.d.ts → unit-of-work/execute-unit-of-work.d.ts} +13 -3
  124. package/dist/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -0
  125. package/dist/query/{execute-unit-of-work.js → unit-of-work/execute-unit-of-work.js} +17 -4
  126. package/dist/query/unit-of-work/execute-unit-of-work.js.map +1 -0
  127. package/dist/query/{retry-policy.d.ts → unit-of-work/retry-policy.d.ts} +1 -1
  128. package/dist/query/unit-of-work/retry-policy.d.ts.map +1 -0
  129. package/dist/query/{retry-policy.js → unit-of-work/retry-policy.js} +1 -1
  130. package/dist/query/unit-of-work/retry-policy.js.map +1 -0
  131. package/dist/query/{unit-of-work.d.ts → unit-of-work/unit-of-work.d.ts} +51 -18
  132. package/dist/query/unit-of-work/unit-of-work.d.ts.map +1 -0
  133. package/dist/query/{unit-of-work.js → unit-of-work/unit-of-work.js} +58 -11
  134. package/dist/query/unit-of-work/unit-of-work.js.map +1 -0
  135. package/dist/query/value-decoding.js +71 -0
  136. package/dist/query/value-decoding.js.map +1 -0
  137. package/dist/query/value-encoding.js +124 -0
  138. package/dist/query/value-encoding.js.map +1 -0
  139. package/dist/schema/create.d.ts +3 -0
  140. package/dist/schema/create.d.ts.map +1 -1
  141. package/dist/schema/create.js +4 -0
  142. package/dist/schema/create.js.map +1 -1
  143. package/dist/schema/type-conversion/create-sql-type-mapper.js +29 -0
  144. package/dist/schema/type-conversion/create-sql-type-mapper.js.map +1 -0
  145. package/dist/schema/type-conversion/dialect/mysql.js +57 -0
  146. package/dist/schema/type-conversion/dialect/mysql.js.map +1 -0
  147. package/dist/schema/type-conversion/dialect/postgres.js +56 -0
  148. package/dist/schema/type-conversion/dialect/postgres.js.map +1 -0
  149. package/dist/schema/type-conversion/dialect/sqlite.js +52 -0
  150. package/dist/schema/type-conversion/dialect/sqlite.js.map +1 -0
  151. package/dist/schema/type-conversion/type-mapping.js +63 -0
  152. package/dist/schema/type-conversion/type-mapping.js.map +1 -0
  153. package/dist/sql-driver/connection/connection-provider.d.ts +13 -0
  154. package/dist/sql-driver/connection/connection-provider.d.ts.map +1 -0
  155. package/dist/sql-driver/connection/connection-provider.js +19 -0
  156. package/dist/sql-driver/connection/connection-provider.js.map +1 -0
  157. package/dist/sql-driver/connection/single-connection-provider.js +23 -0
  158. package/dist/sql-driver/connection/single-connection-provider.js.map +1 -0
  159. package/dist/sql-driver/dialect-adapter/dialect-adapter.d.ts +7 -0
  160. package/dist/sql-driver/dialect-adapter/dialect-adapter.d.ts.map +1 -0
  161. package/dist/sql-driver/dialects/dialects.d.ts +2 -0
  162. package/dist/sql-driver/dialects/dialects.js +3 -0
  163. package/dist/sql-driver/dialects/durable-object-dialect.d.ts +72 -0
  164. package/dist/sql-driver/dialects/durable-object-dialect.d.ts.map +1 -0
  165. package/dist/sql-driver/dialects/durable-object-dialect.js +130 -0
  166. package/dist/sql-driver/dialects/durable-object-dialect.js.map +1 -0
  167. package/dist/sql-driver/driver/runtime-driver.d.ts +23 -0
  168. package/dist/sql-driver/driver/runtime-driver.d.ts.map +1 -0
  169. package/dist/sql-driver/driver/runtime-driver.js +56 -0
  170. package/dist/sql-driver/driver/runtime-driver.js.map +1 -0
  171. package/dist/sql-driver/query-executor/default-query-executor.js +26 -0
  172. package/dist/sql-driver/query-executor/default-query-executor.js.map +1 -0
  173. package/dist/sql-driver/query-executor/plugin.d.ts +17 -0
  174. package/dist/sql-driver/query-executor/plugin.d.ts.map +1 -0
  175. package/dist/sql-driver/query-executor/query-executor-base.js +25 -0
  176. package/dist/sql-driver/query-executor/query-executor-base.js.map +1 -0
  177. package/dist/sql-driver/query-executor/query-executor.d.ts +36 -0
  178. package/dist/sql-driver/query-executor/query-executor.d.ts.map +1 -0
  179. package/dist/sql-driver/sql-driver-adapter.d.ts +29 -0
  180. package/dist/sql-driver/sql-driver-adapter.d.ts.map +1 -0
  181. package/dist/sql-driver/sql-driver-adapter.js +68 -0
  182. package/dist/sql-driver/sql-driver-adapter.js.map +1 -0
  183. package/dist/sql-driver/sql-driver.d.ts +38 -0
  184. package/dist/sql-driver/sql-driver.d.ts.map +1 -0
  185. package/dist/sql-driver/sql-driver.js +1 -0
  186. package/dist/sql-driver/sql.js +50 -0
  187. package/dist/sql-driver/sql.js.map +1 -0
  188. package/dist/with-database.d.ts +6 -2
  189. package/dist/with-database.d.ts.map +1 -1
  190. package/dist/with-database.js +1 -1
  191. package/dist/with-database.js.map +1 -1
  192. package/package.json +37 -10
  193. package/src/adapters/adapters.ts +8 -5
  194. package/src/adapters/drizzle/drizzle-adapter-pglite.test.ts +60 -169
  195. package/src/adapters/drizzle/{drizzle-adapter-sqlite.test.ts → drizzle-adapter-sqlite3.test.ts} +31 -55
  196. package/src/adapters/drizzle/drizzle-adapter.ts +15 -107
  197. package/src/adapters/drizzle/generate.test.ts +2 -2
  198. package/src/adapters/drizzle/generate.ts +78 -34
  199. package/src/adapters/drizzle/migrate-drizzle.test.ts +19 -0
  200. package/src/adapters/drizzle/shared.ts +0 -34
  201. package/src/adapters/drizzle/test-utils.ts +3 -3
  202. package/src/adapters/generic-sql/README.md +14 -0
  203. package/src/adapters/generic-sql/driver-config.ts +144 -0
  204. package/src/adapters/generic-sql/generic-sql-adapter.test.ts +50 -0
  205. package/src/adapters/generic-sql/generic-sql-adapter.ts +146 -0
  206. package/src/adapters/generic-sql/generic-sql-uow-executor.ts +130 -0
  207. package/src/adapters/generic-sql/migration/cold-kysely.ts +55 -0
  208. package/src/adapters/{kysely/migration/execute-mysql.test.ts → generic-sql/migration/dialect/mysql.test.ts} +342 -484
  209. package/src/adapters/generic-sql/migration/dialect/mysql.ts +104 -0
  210. package/src/adapters/generic-sql/migration/dialect/postgres.test.ts +1008 -0
  211. package/src/adapters/generic-sql/migration/dialect/postgres.ts +113 -0
  212. package/src/adapters/{kysely/migration/execute-sqlite.test.ts → generic-sql/migration/dialect/sqlite.test.ts} +307 -510
  213. package/src/adapters/generic-sql/migration/dialect/sqlite.ts +189 -0
  214. package/src/adapters/generic-sql/migration/executor.ts +33 -0
  215. package/src/adapters/generic-sql/migration/prepared-migrations.test.ts +661 -0
  216. package/src/adapters/generic-sql/migration/prepared-migrations.ts +214 -0
  217. package/src/adapters/generic-sql/migration/sql-generator.ts +413 -0
  218. package/src/adapters/generic-sql/query/create-sql-query-compiler.ts +36 -0
  219. package/src/adapters/generic-sql/query/cursor-utils.ts +56 -0
  220. package/src/adapters/generic-sql/query/dialect/mysql.ts +34 -0
  221. package/src/adapters/generic-sql/query/dialect/postgres.ts +32 -0
  222. package/src/adapters/generic-sql/query/dialect/sqlite.ts +32 -0
  223. package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.test.ts +1568 -0
  224. package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.ts +314 -0
  225. package/src/adapters/generic-sql/query/select-builder.test.ts +256 -0
  226. package/src/adapters/generic-sql/query/select-builder.ts +137 -0
  227. package/src/adapters/generic-sql/query/sql-query-compiler.test.ts +195 -0
  228. package/src/adapters/generic-sql/query/sql-query-compiler.ts +367 -0
  229. package/src/adapters/generic-sql/query/where-builder.test.ts +744 -0
  230. package/src/adapters/generic-sql/query/where-builder.ts +211 -0
  231. package/src/adapters/generic-sql/result-interpreter.ts +102 -0
  232. package/src/adapters/generic-sql/test/generic-drizzle-adapter-sqlite3.test.ts +899 -0
  233. package/src/adapters/generic-sql/uow-decoder.test.ts +399 -0
  234. package/src/adapters/generic-sql/uow-decoder.ts +152 -0
  235. package/src/adapters/generic-sql/uow-encoder.test.ts +183 -0
  236. package/src/adapters/generic-sql/uow-encoder.ts +131 -0
  237. package/src/adapters/kysely/kysely-adapter-pglite.test.ts +26 -76
  238. package/src/adapters/kysely/{kysely-adapter-sqlite.test.ts → kysely-adapter-sqlocal.test.ts} +76 -17
  239. package/src/adapters/kysely/kysely-adapter.ts +10 -250
  240. package/src/adapters/{drizzle/drizzle-query.ts → shared/from-unit-of-work-compiler.ts} +110 -104
  241. package/src/adapters/shared/table-name-mapper.ts +50 -0
  242. package/src/adapters/shared/uow-operation-compiler.ts +211 -0
  243. package/src/db-fragment-definition-builder.test.ts +2 -2
  244. package/src/db-fragment-definition-builder.ts +281 -50
  245. package/src/db-fragment-instantiator.test.ts +78 -2
  246. package/src/db-fragment-integration.test.ts +14 -16
  247. package/src/fragments/internal-fragment.test.ts +434 -45
  248. package/src/fragments/internal-fragment.ts +184 -20
  249. package/src/hooks/hooks.test.ts +575 -0
  250. package/src/hooks/hooks.ts +179 -0
  251. package/src/migration-engine/generation-engine.test.ts +44 -54
  252. package/src/migration-engine/generation-engine.ts +48 -94
  253. package/src/mod.ts +117 -29
  254. package/src/query/column-defaults.ts +49 -0
  255. package/src/query/cursor.test.ts +31 -6
  256. package/src/query/cursor.ts +11 -7
  257. package/src/query/orm/orm.ts +1 -1
  258. package/src/query/query-type.test.ts +9 -9
  259. package/src/query/serialize/create-sql-serializer.ts +34 -0
  260. package/src/query/serialize/dialect/mysql-serializer.ts +142 -0
  261. package/src/query/serialize/dialect/postgres-serializer.ts +129 -0
  262. package/src/query/serialize/dialect/sqlite-serializer.test.ts +251 -0
  263. package/src/query/serialize/dialect/sqlite-serializer.ts +156 -0
  264. package/src/query/serialize/sql-serializer.ts +143 -0
  265. package/src/query/{query.ts → simple-query-interface.ts} +2 -2
  266. package/src/query/{execute-unit-of-work.test.ts → unit-of-work/execute-unit-of-work.test.ts} +16 -16
  267. package/src/query/{execute-unit-of-work.ts → unit-of-work/execute-unit-of-work.ts} +49 -8
  268. package/src/query/{unit-of-work-coordinator.test.ts → unit-of-work/unit-of-work-coordinator.test.ts} +41 -43
  269. package/src/query/{unit-of-work-types.test.ts → unit-of-work/unit-of-work-types.test.ts} +5 -3
  270. package/src/query/{unit-of-work.test.ts → unit-of-work/unit-of-work.test.ts} +100 -9
  271. package/src/query/{unit-of-work.ts → unit-of-work/unit-of-work.ts} +135 -32
  272. package/src/query/{result-transform.test.ts → value-decoding.test.ts} +45 -427
  273. package/src/query/value-decoding.ts +113 -0
  274. package/src/query/value-encoding.test.ts +390 -0
  275. package/src/query/value-encoding.ts +168 -0
  276. package/src/schema/create.test.ts +5 -1
  277. package/src/schema/create.ts +5 -0
  278. package/src/schema/serialize.test.ts +165 -407
  279. package/src/schema/type-conversion/create-sql-type-mapper.ts +28 -0
  280. package/src/schema/type-conversion/dialect/mysql.ts +64 -0
  281. package/src/schema/type-conversion/dialect/postgres.ts +62 -0
  282. package/src/schema/type-conversion/dialect/sqlite.ts +63 -0
  283. package/src/schema/type-conversion/type-mapping.test.ts +137 -0
  284. package/src/schema/type-conversion/type-mapping.ts +153 -0
  285. package/src/shared/connection-pool.ts +5 -5
  286. package/src/sql-driver/better-sqlite3.test.ts +126 -0
  287. package/src/sql-driver/connection/connection-provider.ts +27 -0
  288. package/src/sql-driver/connection/single-connection-provider.ts +42 -0
  289. package/src/sql-driver/dialect-adapter/dialect-adapter.ts +9 -0
  290. package/src/sql-driver/dialect-adapter/sqlite-dialect-adapter.ts +7 -0
  291. package/src/sql-driver/dialects/dialects.ts +1 -0
  292. package/src/sql-driver/dialects/durable-object-dialect.ts +260 -0
  293. package/src/sql-driver/driver/runtime-driver.ts +91 -0
  294. package/src/sql-driver/query-executor/default-query-executor.ts +38 -0
  295. package/src/sql-driver/query-executor/plugin.ts +22 -0
  296. package/src/sql-driver/query-executor/query-executor-base.ts +53 -0
  297. package/src/sql-driver/query-executor/query-executor.ts +44 -0
  298. package/src/sql-driver/sql-driver-adapter.ts +96 -0
  299. package/src/sql-driver/sql-driver.ts +53 -0
  300. package/src/sql-driver/sql.ts +57 -0
  301. package/src/sql-driver/sqlocal.test.ts +117 -0
  302. package/src/with-database.ts +35 -23
  303. package/tsdown.config.ts +7 -2
  304. package/dist/adapters/drizzle/drizzle-connection-pool.js +0 -40
  305. package/dist/adapters/drizzle/drizzle-connection-pool.js.map +0 -1
  306. package/dist/adapters/drizzle/drizzle-query.d.ts +0 -23
  307. package/dist/adapters/drizzle/drizzle-query.d.ts.map +0 -1
  308. package/dist/adapters/drizzle/drizzle-query.js.map +0 -1
  309. package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts +0 -10
  310. package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts.map +0 -1
  311. package/dist/adapters/drizzle/drizzle-uow-compiler.js +0 -334
  312. package/dist/adapters/drizzle/drizzle-uow-compiler.js.map +0 -1
  313. package/dist/adapters/drizzle/drizzle-uow-decoder.js +0 -123
  314. package/dist/adapters/drizzle/drizzle-uow-decoder.js.map +0 -1
  315. package/dist/adapters/drizzle/drizzle-uow-executor.js +0 -160
  316. package/dist/adapters/drizzle/drizzle-uow-executor.js.map +0 -1
  317. package/dist/adapters/drizzle/join-column-utils.js +0 -28
  318. package/dist/adapters/drizzle/join-column-utils.js.map +0 -1
  319. package/dist/adapters/drizzle/shared.d.ts.map +0 -1
  320. package/dist/adapters/drizzle/shared.js +0 -35
  321. package/dist/adapters/drizzle/shared.js.map +0 -1
  322. package/dist/adapters/kysely/kysely-connection-pool.js +0 -41
  323. package/dist/adapters/kysely/kysely-connection-pool.js.map +0 -1
  324. package/dist/adapters/kysely/kysely-query-builder.js +0 -321
  325. package/dist/adapters/kysely/kysely-query-builder.js.map +0 -1
  326. package/dist/adapters/kysely/kysely-query-compiler.js +0 -67
  327. package/dist/adapters/kysely/kysely-query-compiler.js.map +0 -1
  328. package/dist/adapters/kysely/kysely-query.d.ts +0 -23
  329. package/dist/adapters/kysely/kysely-query.d.ts.map +0 -1
  330. package/dist/adapters/kysely/kysely-query.js +0 -230
  331. package/dist/adapters/kysely/kysely-query.js.map +0 -1
  332. package/dist/adapters/kysely/kysely-shared.d.ts +0 -14
  333. package/dist/adapters/kysely/kysely-shared.d.ts.map +0 -1
  334. package/dist/adapters/kysely/kysely-shared.js +0 -33
  335. package/dist/adapters/kysely/kysely-shared.js.map +0 -1
  336. package/dist/adapters/kysely/kysely-uow-compiler.js +0 -193
  337. package/dist/adapters/kysely/kysely-uow-compiler.js.map +0 -1
  338. package/dist/adapters/kysely/kysely-uow-executor.js +0 -93
  339. package/dist/adapters/kysely/kysely-uow-executor.js.map +0 -1
  340. package/dist/adapters/kysely/migration/execute-base.js +0 -128
  341. package/dist/adapters/kysely/migration/execute-base.js.map +0 -1
  342. package/dist/adapters/kysely/migration/execute-factory.js +0 -34
  343. package/dist/adapters/kysely/migration/execute-factory.js.map +0 -1
  344. package/dist/adapters/kysely/migration/execute-mssql.js +0 -112
  345. package/dist/adapters/kysely/migration/execute-mssql.js.map +0 -1
  346. package/dist/adapters/kysely/migration/execute-mysql.js +0 -93
  347. package/dist/adapters/kysely/migration/execute-mysql.js.map +0 -1
  348. package/dist/adapters/kysely/migration/execute-postgres.js +0 -104
  349. package/dist/adapters/kysely/migration/execute-postgres.js.map +0 -1
  350. package/dist/adapters/kysely/migration/execute-sqlite.js +0 -123
  351. package/dist/adapters/kysely/migration/execute-sqlite.js.map +0 -1
  352. package/dist/adapters/kysely/migration/execute.js +0 -34
  353. package/dist/adapters/kysely/migration/execute.js.map +0 -1
  354. package/dist/migration-engine/create.d.ts +0 -37
  355. package/dist/migration-engine/create.d.ts.map +0 -1
  356. package/dist/migration-engine/create.js +0 -58
  357. package/dist/migration-engine/create.js.map +0 -1
  358. package/dist/migration-engine/shared.d.ts +0 -112
  359. package/dist/migration-engine/shared.d.ts.map +0 -1
  360. package/dist/node_modules/.pnpm/rou3@0.7.8/node_modules/rou3/dist/index.js.map +0 -1
  361. package/dist/query/execute-unit-of-work.d.ts.map +0 -1
  362. package/dist/query/execute-unit-of-work.js.map +0 -1
  363. package/dist/query/query.d.ts.map +0 -1
  364. package/dist/query/result-transform.js +0 -170
  365. package/dist/query/result-transform.js.map +0 -1
  366. package/dist/query/retry-policy.d.ts.map +0 -1
  367. package/dist/query/retry-policy.js.map +0 -1
  368. package/dist/query/unit-of-work.d.ts.map +0 -1
  369. package/dist/query/unit-of-work.js.map +0 -1
  370. package/dist/schema/serialize.js +0 -111
  371. package/dist/schema/serialize.js.map +0 -1
  372. package/src/adapters/drizzle/drizzle-adapter.test.ts +0 -122
  373. package/src/adapters/drizzle/drizzle-connection-pool.ts +0 -66
  374. package/src/adapters/drizzle/drizzle-query.test.ts +0 -499
  375. package/src/adapters/drizzle/drizzle-uow-compiler-mysql.test.ts +0 -1442
  376. package/src/adapters/drizzle/drizzle-uow-compiler-sqlite.test.ts +0 -1414
  377. package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +0 -1400
  378. package/src/adapters/drizzle/drizzle-uow-compiler.ts +0 -677
  379. package/src/adapters/drizzle/drizzle-uow-decoder.ts +0 -228
  380. package/src/adapters/drizzle/drizzle-uow-executor.ts +0 -309
  381. package/src/adapters/drizzle/join-column-utils.test.ts +0 -79
  382. package/src/adapters/drizzle/join-column-utils.ts +0 -39
  383. package/src/adapters/kysely/kysely-connection-pool.ts +0 -70
  384. package/src/adapters/kysely/kysely-query-builder.test.ts +0 -1344
  385. package/src/adapters/kysely/kysely-query-builder.ts +0 -666
  386. package/src/adapters/kysely/kysely-query-compiler.ts +0 -127
  387. package/src/adapters/kysely/kysely-query.test.ts +0 -498
  388. package/src/adapters/kysely/kysely-query.ts +0 -399
  389. package/src/adapters/kysely/kysely-shared.ts +0 -57
  390. package/src/adapters/kysely/kysely-uow-compiler.test.ts +0 -986
  391. package/src/adapters/kysely/kysely-uow-compiler.ts +0 -350
  392. package/src/adapters/kysely/kysely-uow-executor.ts +0 -164
  393. package/src/adapters/kysely/kysely-uow-joins.test.ts +0 -794
  394. package/src/adapters/kysely/migration/execute-base.ts +0 -256
  395. package/src/adapters/kysely/migration/execute-factory.ts +0 -53
  396. package/src/adapters/kysely/migration/execute-mssql.ts +0 -250
  397. package/src/adapters/kysely/migration/execute-mysql.ts +0 -211
  398. package/src/adapters/kysely/migration/execute-postgres.test.ts +0 -2657
  399. package/src/adapters/kysely/migration/execute-postgres.ts +0 -234
  400. package/src/adapters/kysely/migration/execute-sqlite.ts +0 -247
  401. package/src/adapters/kysely/migration/execute.ts +0 -50
  402. package/src/adapters/kysely/migration/kysely-migrator.test.ts +0 -261
  403. package/src/query/result-transform.ts +0 -274
  404. package/src/schema/serialize.ts +0 -407
  405. /package/dist/query/{query.js → simple-query-interface.js} +0 -0
  406. /package/src/query/{retry-policy.test.ts → unit-of-work/retry-policy.test.ts} +0 -0
  407. /package/src/query/{retry-policy.ts → unit-of-work/retry-policy.ts} +0 -0
@@ -1,6 +1,13 @@
1
- import type { AnySchema, AnyTable, Index, IdColumn, AnyColumn, Relation } from "../schema/create";
2
- import { FragnoId } from "../schema/create";
3
- import type { Condition, ConditionBuilder } from "./condition-builder";
1
+ import type {
2
+ AnySchema,
3
+ AnyTable,
4
+ Index,
5
+ IdColumn,
6
+ AnyColumn,
7
+ Relation,
8
+ } from "../../schema/create";
9
+ import { FragnoId } from "../../schema/create";
10
+ import type { Condition, ConditionBuilder } from "../condition-builder";
4
11
  import type {
5
12
  SelectClause,
6
13
  TableToInsertValues,
@@ -8,12 +15,13 @@ import type {
8
15
  SelectResult,
9
16
  ExtractSelect,
10
17
  ExtractJoinOut,
11
- } from "./query";
12
- import { buildCondition } from "./condition-builder";
13
- import type { CompiledJoin } from "./orm/orm";
14
- import type { CursorResult } from "./cursor";
15
- import { Cursor } from "./cursor";
16
- import type { Prettify } from "../util/types";
18
+ } from "../simple-query-interface";
19
+ import { buildCondition } from "../condition-builder";
20
+ import type { CompiledJoin } from "../orm/orm";
21
+ import type { CursorResult } from "../cursor";
22
+ import { Cursor } from "../cursor";
23
+ import type { Prettify } from "../../util/types";
24
+ import type { TriggeredHook, TriggerHookOptions, HooksMap, HookPayload } from "../../hooks/hooks";
17
25
 
18
26
  /**
19
27
  * Builder for updateMany operations that supports both whereIndex and set chaining
@@ -213,12 +221,16 @@ export type MutationOperation<
213
221
  */
214
222
  export interface CompiledMutation<TOutput> {
215
223
  query: TOutput;
224
+ /**
225
+ * The type of mutation operation (create, update, delete, or check).
226
+ */
227
+ op: "create" | "update" | "delete" | "check";
216
228
  /**
217
229
  * Number of rows this operation must affect for the transaction to succeed.
218
230
  * If actual affected rows doesn't match, it indicates a version conflict.
219
231
  * null means don't check affected rows (e.g., for create operations).
220
232
  */
221
- expectedAffectedRows: number | null;
233
+ expectedAffectedRows: bigint | null;
222
234
  /**
223
235
  * Number of rows this SELECT query must return for the transaction to succeed.
224
236
  * Used for check operations to verify version without modifying data.
@@ -277,7 +289,7 @@ export interface UOWDecoder<TRawInput = unknown> {
277
289
  * @param operations - Array of retrieval operations that produced these results
278
290
  * @returns Decoded results in application format
279
291
  */
280
- (rawResults: TRawInput[], operations: RetrievalOperation<AnySchema>[]): unknown[];
292
+ decode(rawResults: TRawInput[], operations: RetrievalOperation<AnySchema>[]): unknown[];
281
293
  }
282
294
 
283
295
  /**
@@ -419,8 +431,12 @@ export class FindBuilder<
419
431
 
420
432
  /**
421
433
  * Set the number of results per page
434
+ * @throws {RangeError} If size is not a positive integer
422
435
  */
423
436
  pageSize(size: number): this {
437
+ if (!Number.isInteger(size) || size <= 0) {
438
+ throw new RangeError(`pageSize must be a positive integer, received: ${size}`);
439
+ }
424
440
  this.#pageSizeValue = size;
425
441
  return this;
426
442
  }
@@ -719,8 +735,12 @@ export class JoinFindBuilder<
719
735
 
720
736
  /**
721
737
  * Set the number of results to return
738
+ * @throws {RangeError} If size is not a positive integer
722
739
  */
723
740
  pageSize(size: number): this {
741
+ if (!Number.isInteger(size) || size <= 0) {
742
+ throw new RangeError(`pageSize must be a positive integer, received: ${size}`);
743
+ }
724
744
  this.#pageSizeValue = size;
725
745
  return this;
726
746
  }
@@ -903,10 +923,21 @@ export interface IUnitOfWork {
903
923
  reset(): void;
904
924
 
905
925
  // Schema-specific view (for cross-schema operations)
906
- forSchema<TOtherSchema extends AnySchema>(
926
+ // The optional hooks parameter is for type inference only - pass your hooks map
927
+ // to get proper typing for triggerHook. The value is not used at runtime.
928
+ forSchema<TOtherSchema extends AnySchema, TOtherHooks extends HooksMap = {}>(
907
929
  schema: TOtherSchema,
930
+ hooks?: TOtherHooks,
908
931
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
909
- ): TypedUnitOfWork<TOtherSchema, [], any>;
932
+ ): TypedUnitOfWork<TOtherSchema, [], any, TOtherHooks>;
933
+
934
+ // Schema registration (for cross-fragment operations like hooks)
935
+ registerSchema(schema: AnySchema, namespace: string): void;
936
+
937
+ // Hook triggering (schema-agnostic, string-based hook names)
938
+ triggerHook(hookName: string, payload: unknown, options?: TriggerHookOptions): void;
939
+
940
+ getTriggeredHooks(): readonly TriggeredHook[];
910
941
  }
911
942
 
912
943
  /**
@@ -1175,7 +1206,7 @@ export class UnitOfWork<const TRawInput = unknown> implements IUnitOfWork {
1175
1206
  #compiler: UOWCompiler<unknown>;
1176
1207
  #executor: UOWExecutor<unknown, TRawInput>;
1177
1208
  #decoder: UOWDecoder<TRawInput>;
1178
- #schemaNamespaceMap?: WeakMap<AnySchema, string>;
1209
+ #schemaNamespaceMap: WeakMap<AnySchema, string>;
1179
1210
 
1180
1211
  #retrievalResults?: unknown[];
1181
1212
  #createdInternalIds: (bigint | null)[] = [];
@@ -1191,6 +1222,9 @@ export class UnitOfWork<const TRawInput = unknown> implements IUnitOfWork {
1191
1222
  // Child coordination
1192
1223
  #coordinator: UOWChildCoordinator<TRawInput> = new UOWChildCoordinator();
1193
1224
 
1225
+ // Hook triggers
1226
+ #triggeredHooks: TriggeredHook[] = [];
1227
+
1194
1228
  constructor(
1195
1229
  compiler: UOWCompiler<unknown>,
1196
1230
  executor: UOWExecutor<unknown, TRawInput>,
@@ -1202,24 +1236,39 @@ export class UnitOfWork<const TRawInput = unknown> implements IUnitOfWork {
1202
1236
  this.#compiler = compiler;
1203
1237
  this.#executor = executor;
1204
1238
  this.#decoder = decoder;
1205
- this.#schemaNamespaceMap = schemaNamespaceMap;
1239
+ this.#schemaNamespaceMap = schemaNamespaceMap ?? new WeakMap();
1206
1240
  this.#name = name;
1207
1241
  this.#config = config;
1208
1242
  this.#nonce = config?.nonce ?? crypto.randomUUID();
1209
1243
  }
1210
1244
 
1245
+ /**
1246
+ * Register a schema with its namespace for cross-fragment operations.
1247
+ * This is used for internal fragments like hooks that need to create
1248
+ * records in a different schema during the same transaction.
1249
+ */
1250
+ registerSchema(schema: AnySchema, namespace: string): void {
1251
+ this.#schemaNamespaceMap.set(schema, namespace);
1252
+ }
1253
+
1211
1254
  /**
1212
1255
  * Get a schema-specific typed view of this UOW for type-safe operations.
1213
1256
  * Returns a wrapper that provides typed operations for the given schema.
1214
1257
  * The namespace is automatically resolved from the schema-namespace map.
1258
+ * The optional hooks parameter is for type inference only - pass your hooks map
1259
+ * to get proper typing for triggerHook. The value is not used at runtime.
1215
1260
  */
1216
- forSchema<TOtherSchema extends AnySchema, TRawInput>(
1261
+ forSchema<TOtherSchema extends AnySchema, TOtherHooks extends HooksMap = {}>(
1217
1262
  schema: TOtherSchema,
1218
- ): TypedUnitOfWork<TOtherSchema, [], TRawInput> {
1219
- // Look up namespace from map
1220
- const resolvedNamespace = this.#schemaNamespaceMap?.get(schema);
1221
-
1222
- return new TypedUnitOfWork(schema, resolvedNamespace, this as unknown as UnitOfWork<TRawInput>);
1263
+ _hooks?: TOtherHooks,
1264
+ ): TypedUnitOfWork<TOtherSchema, [], TRawInput, TOtherHooks> {
1265
+ const resolvedNamespace = this.#schemaNamespaceMap.get(schema);
1266
+
1267
+ return new TypedUnitOfWork<TOtherSchema, [], TRawInput, TOtherHooks>(
1268
+ schema,
1269
+ resolvedNamespace,
1270
+ this,
1271
+ );
1223
1272
  }
1224
1273
 
1225
1274
  /**
@@ -1248,6 +1297,7 @@ export class UnitOfWork<const TRawInput = unknown> implements IUnitOfWork {
1248
1297
  child.#mutationPhaseDeferred = this.#mutationPhaseDeferred;
1249
1298
  child.#retrievalError = this.#retrievalError;
1250
1299
  child.#mutationError = this.#mutationError;
1300
+ child.#triggeredHooks = this.#triggeredHooks;
1251
1301
 
1252
1302
  this.#coordinator.addChild(child);
1253
1303
 
@@ -1301,6 +1351,27 @@ export class UnitOfWork<const TRawInput = unknown> implements IUnitOfWork {
1301
1351
 
1302
1352
  // Reset child coordination
1303
1353
  this.#coordinator.reset();
1354
+
1355
+ // Reset hooks
1356
+ this.#triggeredHooks = [];
1357
+ }
1358
+
1359
+ /**
1360
+ * Trigger a hook to be executed after the transaction commits.
1361
+ */
1362
+ triggerHook(hookName: string, payload: unknown, options?: TriggerHookOptions): void {
1363
+ this.#triggeredHooks.push({
1364
+ hookName,
1365
+ payload,
1366
+ options,
1367
+ });
1368
+ }
1369
+
1370
+ /**
1371
+ * Get all triggered hooks for this UOW.
1372
+ */
1373
+ getTriggeredHooks(): ReadonlyArray<TriggeredHook> {
1374
+ return this.#triggeredHooks;
1304
1375
  }
1305
1376
 
1306
1377
  get state(): UOWState {
@@ -1376,7 +1447,7 @@ export class UnitOfWork<const TRawInput = unknown> implements IUnitOfWork {
1376
1447
 
1377
1448
  const rawResults = await this.#executor.executeRetrievalPhase(retrievalBatch);
1378
1449
 
1379
- const results = this.#decoder(rawResults, this.#retrievalOps);
1450
+ const results = this.#decoder.decode(rawResults, this.#retrievalOps);
1380
1451
 
1381
1452
  // Store results and transition to mutation phase
1382
1453
  this.#retrievalResults = results;
@@ -1562,6 +1633,7 @@ export class TypedUnitOfWork<
1562
1633
  const TSchema extends AnySchema,
1563
1634
  const TRetrievalResults extends unknown[] = [],
1564
1635
  const TRawInput = unknown,
1636
+ const THooks extends HooksMap = {},
1565
1637
  > implements IUnitOfWork
1566
1638
  {
1567
1639
  #schema: TSchema;
@@ -1648,10 +1720,15 @@ export class TypedUnitOfWork<
1648
1720
  return this.#uow.reset();
1649
1721
  }
1650
1722
 
1651
- forSchema<TOtherSchema extends AnySchema>(
1723
+ forSchema<TOtherSchema extends AnySchema, TOtherHooks extends HooksMap = {}>(
1652
1724
  schema: TOtherSchema,
1653
- ): TypedUnitOfWork<TOtherSchema, [], TRawInput> {
1654
- return this.#uow.forSchema(schema);
1725
+ hooks?: TOtherHooks,
1726
+ ): TypedUnitOfWork<TOtherSchema, [], TRawInput, TOtherHooks> {
1727
+ return this.#uow.forSchema<TOtherSchema, TOtherHooks>(schema, hooks);
1728
+ }
1729
+
1730
+ registerSchema(schema: AnySchema, namespace: string): void {
1731
+ this.#uow.registerSchema(schema, namespace);
1655
1732
  }
1656
1733
 
1657
1734
  compile<TOutput>(compiler: UOWCompiler<TOutput>): {
@@ -1677,14 +1754,16 @@ export class TypedUnitOfWork<
1677
1754
  Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>
1678
1755
  >[],
1679
1756
  ],
1680
- TRawInput
1757
+ TRawInput,
1758
+ THooks
1681
1759
  >;
1682
1760
  find<TTableName extends keyof TSchema["tables"] & string>(
1683
1761
  tableName: TTableName,
1684
1762
  ): TypedUnitOfWork<
1685
1763
  TSchema,
1686
1764
  [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], {}, true>[]],
1687
- TRawInput
1765
+ TRawInput,
1766
+ THooks
1688
1767
  >;
1689
1768
  find<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(
1690
1769
  tableName: TTableName,
@@ -1701,7 +1780,8 @@ export class TypedUnitOfWork<
1701
1780
  Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>
1702
1781
  >[],
1703
1782
  ],
1704
- TRawInput
1783
+ TRawInput,
1784
+ THooks
1705
1785
  > {
1706
1786
  const table = this.#schema.tables[tableName];
1707
1787
  if (!table) {
@@ -1749,14 +1829,16 @@ export class TypedUnitOfWork<
1749
1829
  Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>
1750
1830
  > | null,
1751
1831
  ],
1752
- TRawInput
1832
+ TRawInput,
1833
+ THooks
1753
1834
  >;
1754
1835
  findFirst<TTableName extends keyof TSchema["tables"] & string>(
1755
1836
  tableName: TTableName,
1756
1837
  ): TypedUnitOfWork<
1757
1838
  TSchema,
1758
1839
  [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], {}, true> | null],
1759
- TRawInput
1840
+ TRawInput,
1841
+ THooks
1760
1842
  >;
1761
1843
  findFirst<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(
1762
1844
  tableName: TTableName,
@@ -1773,7 +1855,8 @@ export class TypedUnitOfWork<
1773
1855
  Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>
1774
1856
  > | null,
1775
1857
  ],
1776
- TRawInput
1858
+ TRawInput,
1859
+ THooks
1777
1860
  > {
1778
1861
  const table = this.#schema.tables[tableName];
1779
1862
  if (!table) {
@@ -1826,7 +1909,8 @@ export class TypedUnitOfWork<
1826
1909
  >
1827
1910
  >,
1828
1911
  ],
1829
- TRawInput
1912
+ TRawInput,
1913
+ THooks
1830
1914
  > {
1831
1915
  const table = this.#schema.tables[tableName];
1832
1916
  if (!table) {
@@ -1981,4 +2065,23 @@ export class TypedUnitOfWork<
1981
2065
  id,
1982
2066
  });
1983
2067
  }
2068
+
2069
+ get $hooks(): THooks {
2070
+ throw new Error("type only");
2071
+ }
2072
+
2073
+ /**
2074
+ * Trigger a hook to be executed after the transaction commits.
2075
+ */
2076
+ triggerHook<K extends keyof THooks & string>(
2077
+ hookName: K,
2078
+ payload: HookPayload<THooks[K]>,
2079
+ options?: TriggerHookOptions,
2080
+ ): void {
2081
+ this.#uow.triggerHook(hookName, payload, options);
2082
+ }
2083
+
2084
+ getTriggeredHooks(): ReadonlyArray<TriggeredHook> {
2085
+ return this.#uow.getTriggeredHooks();
2086
+ }
1984
2087
  }