@fragno-dev/db 0.2.2 → 0.4.1

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 (587) hide show
  1. package/.turbo/turbo-build.log +404 -175
  2. package/CHANGELOG.md +109 -0
  3. package/README.md +54 -9
  4. package/dist/adapters/adapters.d.ts +23 -21
  5. package/dist/adapters/adapters.d.ts.map +1 -1
  6. package/dist/adapters/adapters.js.map +1 -1
  7. package/dist/adapters/generic-sql/driver-config.d.ts +16 -1
  8. package/dist/adapters/generic-sql/driver-config.d.ts.map +1 -1
  9. package/dist/adapters/generic-sql/driver-config.js +23 -1
  10. package/dist/adapters/generic-sql/driver-config.js.map +1 -1
  11. package/dist/adapters/generic-sql/generic-sql-adapter.d.ts +24 -9
  12. package/dist/adapters/generic-sql/generic-sql-adapter.d.ts.map +1 -1
  13. package/dist/adapters/generic-sql/generic-sql-adapter.js +60 -22
  14. package/dist/adapters/generic-sql/generic-sql-adapter.js.map +1 -1
  15. package/dist/adapters/generic-sql/generic-sql-uow-executor.js +169 -3
  16. package/dist/adapters/generic-sql/generic-sql-uow-executor.js.map +1 -1
  17. package/dist/adapters/generic-sql/migration/cold-kysely.js.map +1 -1
  18. package/dist/adapters/generic-sql/migration/dialect/mysql.js +25 -6
  19. package/dist/adapters/generic-sql/migration/dialect/mysql.js.map +1 -1
  20. package/dist/adapters/generic-sql/migration/dialect/postgres.js +7 -6
  21. package/dist/adapters/generic-sql/migration/dialect/postgres.js.map +1 -1
  22. package/dist/adapters/generic-sql/migration/dialect/sqlite.js +193 -16
  23. package/dist/adapters/generic-sql/migration/dialect/sqlite.js.map +1 -1
  24. package/dist/adapters/generic-sql/migration/executor.d.ts.map +1 -1
  25. package/dist/adapters/generic-sql/migration/executor.js +30 -3
  26. package/dist/adapters/generic-sql/migration/executor.js.map +1 -1
  27. package/dist/adapters/generic-sql/migration/prepared-migrations.d.ts.map +1 -1
  28. package/dist/adapters/generic-sql/migration/prepared-migrations.js +9 -9
  29. package/dist/adapters/generic-sql/migration/prepared-migrations.js.map +1 -1
  30. package/dist/adapters/generic-sql/migration/sql-generator.js +75 -52
  31. package/dist/adapters/generic-sql/migration/sql-generator.js.map +1 -1
  32. package/dist/adapters/generic-sql/query/create-sql-query-compiler.js +7 -6
  33. package/dist/adapters/generic-sql/query/create-sql-query-compiler.js.map +1 -1
  34. package/dist/adapters/generic-sql/query/cursor-utils.js +42 -4
  35. package/dist/adapters/generic-sql/query/cursor-utils.js.map +1 -1
  36. package/dist/adapters/generic-sql/query/db-now-sql.js +27 -0
  37. package/dist/adapters/generic-sql/query/db-now-sql.js.map +1 -0
  38. package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js +32 -21
  39. package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js.map +1 -1
  40. package/dist/adapters/generic-sql/query/select-builder.js +5 -3
  41. package/dist/adapters/generic-sql/query/select-builder.js.map +1 -1
  42. package/dist/adapters/generic-sql/query/sql-query-compiler.js +49 -18
  43. package/dist/adapters/generic-sql/query/sql-query-compiler.js.map +1 -1
  44. package/dist/adapters/generic-sql/query/where-builder.js +43 -29
  45. package/dist/adapters/generic-sql/query/where-builder.js.map +1 -1
  46. package/dist/adapters/generic-sql/sqlite-storage.d.ts +13 -0
  47. package/dist/adapters/generic-sql/sqlite-storage.d.ts.map +1 -0
  48. package/dist/adapters/generic-sql/sqlite-storage.js +15 -0
  49. package/dist/adapters/generic-sql/sqlite-storage.js.map +1 -0
  50. package/dist/adapters/generic-sql/uow-decoder.js +6 -2
  51. package/dist/adapters/generic-sql/uow-decoder.js.map +1 -1
  52. package/dist/adapters/generic-sql/uow-encoder.js +27 -8
  53. package/dist/adapters/generic-sql/uow-encoder.js.map +1 -1
  54. package/dist/adapters/in-memory/condition-evaluator.js +135 -0
  55. package/dist/adapters/in-memory/condition-evaluator.js.map +1 -0
  56. package/dist/adapters/in-memory/errors.d.ts +13 -0
  57. package/dist/adapters/in-memory/errors.d.ts.map +1 -0
  58. package/dist/adapters/in-memory/errors.js +23 -0
  59. package/dist/adapters/in-memory/errors.js.map +1 -0
  60. package/dist/adapters/in-memory/in-memory-adapter.d.ts +27 -0
  61. package/dist/adapters/in-memory/in-memory-adapter.d.ts.map +1 -0
  62. package/dist/adapters/in-memory/in-memory-adapter.js +196 -0
  63. package/dist/adapters/in-memory/in-memory-adapter.js.map +1 -0
  64. package/dist/adapters/in-memory/in-memory-uow.js +871 -0
  65. package/dist/adapters/in-memory/in-memory-uow.js.map +1 -0
  66. package/dist/adapters/in-memory/index.d.ts +4 -0
  67. package/dist/adapters/in-memory/index.js +4 -0
  68. package/dist/adapters/in-memory/options.d.ts +30 -0
  69. package/dist/adapters/in-memory/options.d.ts.map +1 -0
  70. package/dist/adapters/in-memory/options.js +62 -0
  71. package/dist/adapters/in-memory/options.js.map +1 -0
  72. package/dist/adapters/in-memory/reference-resolution.js +26 -0
  73. package/dist/adapters/in-memory/reference-resolution.js.map +1 -0
  74. package/dist/adapters/in-memory/sorted-array-index.js +129 -0
  75. package/dist/adapters/in-memory/sorted-array-index.js.map +1 -0
  76. package/dist/adapters/in-memory/store.js +71 -0
  77. package/dist/adapters/in-memory/store.js.map +1 -0
  78. package/dist/adapters/in-memory/value-comparison.js +28 -0
  79. package/dist/adapters/in-memory/value-comparison.js.map +1 -0
  80. package/dist/adapters/shared/from-unit-of-work-compiler.js +51 -24
  81. package/dist/adapters/shared/from-unit-of-work-compiler.js.map +1 -1
  82. package/dist/adapters/shared/uow-operation-compiler.js +11 -11
  83. package/dist/adapters/shared/uow-operation-compiler.js.map +1 -1
  84. package/dist/adapters/sql/index.d.ts +5 -0
  85. package/dist/adapters/sql/index.js +4 -0
  86. package/dist/browser/adapters/adapters.d.ts +61 -0
  87. package/dist/browser/adapters/adapters.d.ts.map +1 -0
  88. package/dist/browser/adapters/generic-sql/migration/executor.d.ts +15 -0
  89. package/dist/browser/adapters/generic-sql/migration/executor.d.ts.map +1 -0
  90. package/dist/browser/adapters/generic-sql/migration/prepared-migrations.d.ts +66 -0
  91. package/dist/browser/adapters/generic-sql/migration/prepared-migrations.d.ts.map +1 -0
  92. package/dist/browser/adapters/generic-sql/sqlite-storage.d.ts +11 -0
  93. package/dist/browser/adapters/generic-sql/sqlite-storage.d.ts.map +1 -0
  94. package/dist/browser/adapters/in-memory/in-memory-adapter.d.ts +5 -0
  95. package/dist/browser/adapters/in-memory/index.d.ts +2 -0
  96. package/dist/browser/adapters/in-memory/options.d.ts +1 -0
  97. package/dist/browser/db-fragment-definition-builder.d.ts +237 -0
  98. package/dist/browser/db-fragment-definition-builder.d.ts.map +1 -0
  99. package/dist/browser/durable-hooks.d.ts +3 -0
  100. package/dist/browser/fragments/internal-fragment.d.ts +317 -0
  101. package/dist/browser/fragments/internal-fragment.d.ts.map +1 -0
  102. package/dist/browser/fragments/internal-fragment.schema.d.ts +1 -0
  103. package/dist/browser/hooks/durable-hooks-logger.d.ts +10 -0
  104. package/dist/browser/hooks/durable-hooks-logger.d.ts.map +1 -0
  105. package/dist/browser/hooks/hooks.d.ts +146 -0
  106. package/dist/browser/hooks/hooks.d.ts.map +1 -0
  107. package/dist/browser/id.js +1 -0
  108. package/dist/browser/internal/adapter-registry.d.ts +4 -0
  109. package/dist/browser/internal/outbox-state.d.ts +2 -0
  110. package/dist/browser/mod.d.ts +15 -0
  111. package/dist/browser/mod.d.ts.map +1 -0
  112. package/dist/browser/mod.js +17 -0
  113. package/dist/browser/mod.js.map +1 -0
  114. package/dist/browser/mod2.d.ts +48 -0
  115. package/dist/browser/mod2.d.ts.map +1 -0
  116. package/dist/browser/naming/sql-naming.d.ts +19 -0
  117. package/dist/browser/naming/sql-naming.d.ts.map +1 -0
  118. package/dist/browser/outbox/outbox.d.ts +21 -0
  119. package/dist/browser/outbox/outbox.d.ts.map +1 -0
  120. package/dist/browser/query/column-defaults.js +1 -0
  121. package/dist/browser/query/condition-builder.d.ts +44 -0
  122. package/dist/browser/query/condition-builder.d.ts.map +1 -0
  123. package/dist/browser/query/condition-builder.js +97 -0
  124. package/dist/browser/query/condition-builder.js.map +1 -0
  125. package/dist/browser/query/cursor.d.ts +105 -0
  126. package/dist/browser/query/cursor.d.ts.map +1 -0
  127. package/dist/browser/query/cursor.js +150 -0
  128. package/dist/browser/query/cursor.js.map +1 -0
  129. package/dist/browser/query/db-now.d.ts +22 -0
  130. package/dist/browser/query/db-now.d.ts.map +1 -0
  131. package/dist/browser/query/db-now.js +33 -0
  132. package/dist/browser/query/db-now.js.map +1 -0
  133. package/dist/browser/query/orm/orm.d.ts +18 -0
  134. package/dist/browser/query/orm/orm.d.ts.map +1 -0
  135. package/dist/browser/query/simple-query-interface.d.ts +108 -0
  136. package/dist/browser/query/simple-query-interface.d.ts.map +1 -0
  137. package/dist/browser/query/unit-of-work/execute-unit-of-work.d.ts +423 -0
  138. package/dist/browser/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -0
  139. package/dist/browser/query/unit-of-work/execute-unit-of-work.js +507 -0
  140. package/dist/browser/query/unit-of-work/execute-unit-of-work.js.map +1 -0
  141. package/dist/browser/query/unit-of-work/retry-policy.d.ts +23 -0
  142. package/dist/browser/query/unit-of-work/retry-policy.d.ts.map +1 -0
  143. package/dist/browser/query/unit-of-work/retry-policy.js +40 -0
  144. package/dist/browser/query/unit-of-work/retry-policy.js.map +1 -0
  145. package/dist/browser/query/unit-of-work/unit-of-work.d.ts +703 -0
  146. package/dist/browser/query/unit-of-work/unit-of-work.d.ts.map +1 -0
  147. package/dist/browser/query/unit-of-work/unit-of-work.js +1206 -0
  148. package/dist/browser/query/unit-of-work/unit-of-work.js.map +1 -0
  149. package/dist/browser/query/value-encoding.js +38 -0
  150. package/dist/browser/query/value-encoding.js.map +1 -0
  151. package/dist/browser/schema/create.d.ts +326 -0
  152. package/dist/browser/schema/create.d.ts.map +1 -0
  153. package/dist/browser/schema/create.js +89 -0
  154. package/dist/browser/schema/create.js.map +1 -0
  155. package/dist/browser/schema/generate-id.js +28 -0
  156. package/dist/browser/schema/generate-id.js.map +1 -0
  157. package/dist/browser/shared/providers.d.ts +6 -0
  158. package/dist/browser/shared/providers.d.ts.map +1 -0
  159. package/dist/browser/sql-driver/connection/connection-provider.d.ts +13 -0
  160. package/dist/browser/sql-driver/connection/connection-provider.d.ts.map +1 -0
  161. package/dist/browser/sql-driver/dialect-adapter/dialect-adapter.d.ts +7 -0
  162. package/dist/browser/sql-driver/dialect-adapter/dialect-adapter.d.ts.map +1 -0
  163. package/dist/browser/sql-driver/driver/runtime-driver.d.ts +23 -0
  164. package/dist/browser/sql-driver/driver/runtime-driver.d.ts.map +1 -0
  165. package/dist/browser/sql-driver/query-executor/plugin.d.ts +17 -0
  166. package/dist/browser/sql-driver/query-executor/plugin.d.ts.map +1 -0
  167. package/dist/browser/sql-driver/query-executor/query-executor.d.ts +36 -0
  168. package/dist/browser/sql-driver/query-executor/query-executor.d.ts.map +1 -0
  169. package/dist/browser/sql-driver/sql-driver-adapter.d.ts +29 -0
  170. package/dist/browser/sql-driver/sql-driver-adapter.d.ts.map +1 -0
  171. package/dist/browser/sql-driver/sql-driver.d.ts +38 -0
  172. package/dist/browser/sql-driver/sql-driver.d.ts.map +1 -0
  173. package/dist/browser/sync/commands.d.ts +15 -0
  174. package/dist/browser/sync/commands.d.ts.map +1 -0
  175. package/dist/browser/sync/commands.js +27 -0
  176. package/dist/browser/sync/commands.js.map +1 -0
  177. package/dist/browser/sync/types.d.ts +63 -0
  178. package/dist/browser/sync/types.d.ts.map +1 -0
  179. package/dist/browser/util/types.d.ts +8 -0
  180. package/dist/browser/util/types.d.ts.map +1 -0
  181. package/dist/browser/with-database.d.ts +29 -0
  182. package/dist/browser/with-database.d.ts.map +1 -0
  183. package/dist/client.d.ts +4 -0
  184. package/dist/client.js +5 -0
  185. package/dist/db-fragment-definition-builder.d.ts +101 -33
  186. package/dist/db-fragment-definition-builder.d.ts.map +1 -1
  187. package/dist/db-fragment-definition-builder.js +450 -60
  188. package/dist/db-fragment-definition-builder.js.map +1 -1
  189. package/dist/dispatchers/cloudflare-do/dispatcher.d.ts +20 -0
  190. package/dist/dispatchers/cloudflare-do/dispatcher.d.ts.map +1 -0
  191. package/dist/dispatchers/cloudflare-do/dispatcher.js +147 -0
  192. package/dist/dispatchers/cloudflare-do/dispatcher.js.map +1 -0
  193. package/dist/dispatchers/cloudflare-do/index.d.ts +11 -0
  194. package/dist/dispatchers/cloudflare-do/index.d.ts.map +1 -0
  195. package/dist/dispatchers/cloudflare-do/index.js +31 -0
  196. package/dist/dispatchers/cloudflare-do/index.js.map +1 -0
  197. package/dist/dispatchers/node/dispatcher.d.ts +14 -0
  198. package/dist/dispatchers/node/dispatcher.d.ts.map +1 -0
  199. package/dist/dispatchers/node/dispatcher.js +80 -0
  200. package/dist/dispatchers/node/dispatcher.js.map +1 -0
  201. package/dist/dispatchers/node/index.d.ts +12 -0
  202. package/dist/dispatchers/node/index.d.ts.map +1 -0
  203. package/dist/dispatchers/node/index.js +27 -0
  204. package/dist/dispatchers/node/index.js.map +1 -0
  205. package/dist/durable-hooks.d.ts +31 -0
  206. package/dist/durable-hooks.d.ts.map +1 -0
  207. package/dist/durable-hooks.js +23 -0
  208. package/dist/durable-hooks.js.map +1 -0
  209. package/dist/fragments/internal-fragment.d.ts +186 -8
  210. package/dist/fragments/internal-fragment.d.ts.map +1 -1
  211. package/dist/fragments/internal-fragment.js +203 -38
  212. package/dist/fragments/internal-fragment.js.map +1 -1
  213. package/dist/fragments/internal-fragment.routes.js +164 -0
  214. package/dist/fragments/internal-fragment.routes.js.map +1 -0
  215. package/dist/fragments/internal-fragment.schema.d.ts +15 -0
  216. package/dist/fragments/internal-fragment.schema.d.ts.map +1 -0
  217. package/dist/fragments/internal-fragment.schema.js +39 -0
  218. package/dist/fragments/internal-fragment.schema.js.map +1 -0
  219. package/dist/hooks/durable-hooks-logger.d.ts +10 -0
  220. package/dist/hooks/durable-hooks-logger.d.ts.map +1 -0
  221. package/dist/hooks/durable-hooks-logger.js +75 -0
  222. package/dist/hooks/durable-hooks-logger.js.map +1 -0
  223. package/dist/hooks/durable-hooks-processor.d.ts +1 -0
  224. package/dist/hooks/durable-hooks-processor.js +80 -0
  225. package/dist/hooks/durable-hooks-processor.js.map +1 -0
  226. package/dist/hooks/durable-hooks-runtime.js +44 -0
  227. package/dist/hooks/durable-hooks-runtime.js.map +1 -0
  228. package/dist/hooks/hooks.d.ts +100 -1
  229. package/dist/hooks/hooks.d.ts.map +1 -1
  230. package/dist/hooks/hooks.js +254 -27
  231. package/dist/hooks/hooks.js.map +1 -1
  232. package/dist/id.d.ts +2 -2
  233. package/dist/id.js +2 -2
  234. package/dist/internal/adapter-registry.d.ts +11 -0
  235. package/dist/internal/adapter-registry.d.ts.map +1 -0
  236. package/dist/internal/adapter-registry.js +135 -0
  237. package/dist/internal/adapter-registry.js.map +1 -0
  238. package/dist/internal/outbox-state.d.ts +2 -0
  239. package/dist/internal/outbox-state.js +26 -0
  240. package/dist/internal/outbox-state.js.map +1 -0
  241. package/dist/migration-engine/auto-from-schema.d.ts +33 -0
  242. package/dist/migration-engine/auto-from-schema.d.ts.map +1 -0
  243. package/dist/migration-engine/auto-from-schema.js +223 -37
  244. package/dist/migration-engine/auto-from-schema.js.map +1 -1
  245. package/dist/migration-engine/generation-engine.d.ts +16 -10
  246. package/dist/migration-engine/generation-engine.d.ts.map +1 -1
  247. package/dist/migration-engine/generation-engine.js +86 -35
  248. package/dist/migration-engine/generation-engine.js.map +1 -1
  249. package/dist/migration-engine/shared.d.ts +113 -0
  250. package/dist/migration-engine/shared.d.ts.map +1 -0
  251. package/dist/migration-engine/shared.js.map +1 -1
  252. package/dist/mod.d.ts +20 -12
  253. package/dist/mod.d.ts.map +1 -1
  254. package/dist/mod.js +18 -12
  255. package/dist/mod.js.map +1 -1
  256. package/dist/naming/sql-naming.d.ts +19 -0
  257. package/dist/naming/sql-naming.d.ts.map +1 -0
  258. package/dist/naming/sql-naming.js +116 -0
  259. package/dist/naming/sql-naming.js.map +1 -0
  260. package/dist/outbox/outbox-builder.js +156 -0
  261. package/dist/outbox/outbox-builder.js.map +1 -0
  262. package/dist/outbox/outbox.d.ts +54 -0
  263. package/dist/outbox/outbox.d.ts.map +1 -0
  264. package/dist/outbox/outbox.js +37 -0
  265. package/dist/outbox/outbox.js.map +1 -0
  266. package/dist/query/column-defaults.js +20 -4
  267. package/dist/query/column-defaults.js.map +1 -1
  268. package/dist/query/condition-builder.d.ts +7 -1
  269. package/dist/query/condition-builder.d.ts.map +1 -1
  270. package/dist/query/condition-builder.js +5 -1
  271. package/dist/query/condition-builder.js.map +1 -1
  272. package/dist/query/cursor-client.d.ts +105 -0
  273. package/dist/query/cursor-client.d.ts.map +1 -0
  274. package/dist/query/cursor-client.js +165 -0
  275. package/dist/query/cursor-client.js.map +1 -0
  276. package/dist/query/cursor.d.ts +3 -1
  277. package/dist/query/cursor.d.ts.map +1 -1
  278. package/dist/query/cursor.js +51 -14
  279. package/dist/query/cursor.js.map +1 -1
  280. package/dist/query/db-now.d.ts +22 -0
  281. package/dist/query/db-now.d.ts.map +1 -0
  282. package/dist/query/db-now.js +35 -0
  283. package/dist/query/db-now.js.map +1 -0
  284. package/dist/query/orm/orm.js.map +1 -1
  285. package/dist/query/serialize/create-sql-serializer.js +5 -4
  286. package/dist/query/serialize/create-sql-serializer.js.map +1 -1
  287. package/dist/query/serialize/dialect/mysql-serializer.js +12 -6
  288. package/dist/query/serialize/dialect/mysql-serializer.js.map +1 -1
  289. package/dist/query/serialize/dialect/postgres-serializer.js +25 -7
  290. package/dist/query/serialize/dialect/postgres-serializer.js.map +1 -1
  291. package/dist/query/serialize/dialect/sqlite-serializer.js +60 -12
  292. package/dist/query/serialize/dialect/sqlite-serializer.js.map +1 -1
  293. package/dist/query/serialize/sql-serializer.js +2 -2
  294. package/dist/query/serialize/sql-serializer.js.map +1 -1
  295. package/dist/query/simple-query-interface.d.ts +13 -4
  296. package/dist/query/simple-query-interface.d.ts.map +1 -1
  297. package/dist/query/unit-of-work/execute-unit-of-work.d.ts +37 -2
  298. package/dist/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -1
  299. package/dist/query/unit-of-work/execute-unit-of-work.js +50 -24
  300. package/dist/query/unit-of-work/execute-unit-of-work.js.map +1 -1
  301. package/dist/query/unit-of-work/unit-of-work.d.ts +92 -30
  302. package/dist/query/unit-of-work/unit-of-work.d.ts.map +1 -1
  303. package/dist/query/unit-of-work/unit-of-work.js +136 -11
  304. package/dist/query/unit-of-work/unit-of-work.js.map +1 -1
  305. package/dist/query/value-decoding.js +16 -6
  306. package/dist/query/value-decoding.js.map +1 -1
  307. package/dist/query/value-encoding.js +29 -9
  308. package/dist/query/value-encoding.js.map +1 -1
  309. package/dist/schema/create.d.ts +103 -35
  310. package/dist/schema/create.d.ts.map +1 -1
  311. package/dist/schema/create.js +172 -58
  312. package/dist/schema/create.js.map +1 -1
  313. package/dist/schema/generate-id.js +2 -2
  314. package/dist/schema/generate-id.js.map +1 -1
  315. package/dist/schema/type-conversion/create-sql-type-mapper.js +4 -3
  316. package/dist/schema/type-conversion/create-sql-type-mapper.js.map +1 -1
  317. package/dist/schema/type-conversion/dialect/sqlite.js +9 -0
  318. package/dist/schema/type-conversion/dialect/sqlite.js.map +1 -1
  319. package/dist/schema/validator.d.ts +10 -0
  320. package/dist/schema/validator.d.ts.map +1 -0
  321. package/dist/schema/validator.js +123 -0
  322. package/dist/schema/validator.js.map +1 -0
  323. package/dist/schema-output/drizzle.d.ts +30 -0
  324. package/dist/schema-output/drizzle.d.ts.map +1 -0
  325. package/dist/{adapters/drizzle/generate.js → schema-output/drizzle.js} +88 -60
  326. package/dist/schema-output/drizzle.js.map +1 -0
  327. package/dist/schema-output/prisma.d.ts +17 -0
  328. package/dist/schema-output/prisma.d.ts.map +1 -0
  329. package/dist/schema-output/prisma.js +307 -0
  330. package/dist/schema-output/prisma.js.map +1 -0
  331. package/dist/sql-driver/dialects/durable-object-dialect.js +3 -9
  332. package/dist/sql-driver/dialects/durable-object-dialect.js.map +1 -1
  333. package/dist/sql-driver/query-executor/default-query-executor.js.map +1 -1
  334. package/dist/sql-driver/query-executor/query-executor-base.js.map +1 -1
  335. package/dist/sql-driver/sql-driver-adapter.js.map +1 -1
  336. package/dist/sql-driver/sql.js.map +1 -1
  337. package/dist/sync/commands.d.ts +15 -0
  338. package/dist/sync/commands.d.ts.map +1 -0
  339. package/dist/sync/commands.js +27 -0
  340. package/dist/sync/commands.js.map +1 -0
  341. package/dist/sync/index.d.ts +4 -0
  342. package/dist/sync/index.js +4 -0
  343. package/dist/sync/read-tracking.d.ts +25 -0
  344. package/dist/sync/read-tracking.d.ts.map +1 -0
  345. package/dist/sync/read-tracking.js +148 -0
  346. package/dist/sync/read-tracking.js.map +1 -0
  347. package/dist/sync/submit.js +213 -0
  348. package/dist/sync/submit.js.map +1 -0
  349. package/dist/sync/types.d.ts +63 -0
  350. package/dist/sync/types.d.ts.map +1 -0
  351. package/dist/util/default-database-adapter.js +66 -0
  352. package/dist/util/default-database-adapter.js.map +1 -0
  353. package/dist/with-database.d.ts +3 -6
  354. package/dist/with-database.d.ts.map +1 -1
  355. package/dist/with-database.js +8 -7
  356. package/dist/with-database.js.map +1 -1
  357. package/package.json +62 -55
  358. package/src/adapters/adapters.ts +33 -26
  359. package/src/adapters/drizzle/migrate-drizzle.test.ts +99 -41
  360. package/src/adapters/drizzle/migration-parity-drizzle-kit.test.ts +601 -0
  361. package/src/adapters/drizzle/test-utils.ts +13 -8
  362. package/src/adapters/generic-sql/driver-config.ts +38 -0
  363. package/src/adapters/generic-sql/generic-sql-adapter.test.ts +10 -8
  364. package/src/adapters/generic-sql/generic-sql-adapter.ts +117 -34
  365. package/src/adapters/generic-sql/generic-sql-uow-executor.test.ts +55 -0
  366. package/src/adapters/generic-sql/generic-sql-uow-executor.ts +297 -3
  367. package/src/adapters/generic-sql/migration/adapter-migration-parity.test.ts +120 -0
  368. package/src/adapters/generic-sql/migration/cold-kysely.ts +1 -0
  369. package/src/adapters/generic-sql/migration/dialect/mysql.test.ts +27 -8
  370. package/src/adapters/generic-sql/migration/dialect/mysql.ts +47 -8
  371. package/src/adapters/generic-sql/migration/dialect/postgres.test.ts +28 -9
  372. package/src/adapters/generic-sql/migration/dialect/postgres.ts +9 -4
  373. package/src/adapters/generic-sql/migration/dialect/sqlite.test.ts +839 -8
  374. package/src/adapters/generic-sql/migration/dialect/sqlite.ts +396 -53
  375. package/src/adapters/generic-sql/migration/executor.test.ts +52 -0
  376. package/src/adapters/generic-sql/migration/executor.ts +47 -4
  377. package/src/adapters/generic-sql/migration/prepared-migrations.test.ts +238 -46
  378. package/src/adapters/generic-sql/migration/prepared-migrations.ts +21 -13
  379. package/src/adapters/generic-sql/migration/sql-generator.ts +145 -66
  380. package/src/adapters/generic-sql/query/create-sql-query-compiler.ts +11 -8
  381. package/src/adapters/generic-sql/query/cursor-utils.test.ts +272 -0
  382. package/src/adapters/generic-sql/query/cursor-utils.ts +42 -7
  383. package/src/adapters/generic-sql/query/db-now-sql.ts +49 -0
  384. package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.test.ts +171 -35
  385. package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.ts +53 -40
  386. package/src/adapters/generic-sql/query/select-builder.test.ts +16 -11
  387. package/src/adapters/generic-sql/query/select-builder.ts +7 -3
  388. package/src/adapters/generic-sql/query/sql-query-compiler.test.ts +75 -6
  389. package/src/adapters/generic-sql/query/sql-query-compiler.ts +129 -24
  390. package/src/adapters/generic-sql/query/where-builder.test.ts +96 -20
  391. package/src/adapters/generic-sql/query/where-builder.ts +112 -41
  392. package/src/adapters/{kysely/kysely-adapter-pglite.test.ts → generic-sql/sql-adapter-pglite-migrations.test.ts} +11 -20
  393. package/src/adapters/generic-sql/sql-adapter-pglite-pagination.test.ts +851 -0
  394. package/src/adapters/{drizzle/drizzle-adapter-pglite.test.ts → generic-sql/sql-adapter-pglite-queries.test.ts} +18 -15
  395. package/src/adapters/generic-sql/{test/generic-drizzle-adapter-sqlite3.test.ts → sql-adapter-sqlite3-driver.test.ts} +282 -14
  396. package/src/adapters/{drizzle/drizzle-adapter-sqlite3.test.ts → generic-sql/sql-adapter-sqlite3-uow.test.ts} +129 -12
  397. package/src/adapters/{kysely/kysely-adapter-sqlocal.test.ts → generic-sql/sql-adapter-sqlocal.test.ts} +9 -7
  398. package/src/adapters/generic-sql/sqlite-storage.ts +20 -0
  399. package/src/adapters/generic-sql/uow-decoder.test.ts +5 -4
  400. package/src/adapters/generic-sql/uow-decoder.ts +23 -5
  401. package/src/adapters/generic-sql/uow-encoder.test.ts +36 -3
  402. package/src/adapters/generic-sql/uow-encoder.ts +48 -13
  403. package/src/adapters/in-memory/condition-evaluator.test.ts +194 -0
  404. package/src/adapters/in-memory/condition-evaluator.ts +280 -0
  405. package/src/adapters/in-memory/errors.ts +20 -0
  406. package/src/adapters/in-memory/in-memory-adapter.ts +388 -0
  407. package/src/adapters/in-memory/in-memory-uow.mutations.test.ts +344 -0
  408. package/src/adapters/in-memory/in-memory-uow.retrieval.test.ts +255 -0
  409. package/src/adapters/in-memory/in-memory-uow.ts +1724 -0
  410. package/src/adapters/in-memory/index.ts +3 -0
  411. package/src/adapters/in-memory/options.test.ts +42 -0
  412. package/src/adapters/in-memory/options.ts +91 -0
  413. package/src/adapters/in-memory/outbox.test.ts +361 -0
  414. package/src/adapters/in-memory/reference-resolution.test.ts +51 -0
  415. package/src/adapters/in-memory/reference-resolution.ts +67 -0
  416. package/src/adapters/in-memory/sorted-array-index.test.ts +124 -0
  417. package/src/adapters/in-memory/sorted-array-index.ts +228 -0
  418. package/src/adapters/in-memory/store.test.ts +69 -0
  419. package/src/adapters/in-memory/store.ts +145 -0
  420. package/src/adapters/in-memory/value-comparison.ts +53 -0
  421. package/src/adapters/in-memory/value-normalization.test.ts +58 -0
  422. package/src/adapters/prisma/prisma-adapter-sqlite3.test.ts +1207 -0
  423. package/src/adapters/shared/from-unit-of-work-compiler.ts +159 -47
  424. package/src/adapters/shared/uow-operation-compiler.ts +28 -18
  425. package/src/adapters/sql/index.ts +12 -0
  426. package/src/browser/mod.ts +64 -0
  427. package/src/client.ts +19 -0
  428. package/src/db-fragment-definition-builder.test.ts +845 -53
  429. package/src/db-fragment-definition-builder.ts +911 -95
  430. package/src/db-fragment-instantiator.test.ts +210 -94
  431. package/src/db-fragment-integration.test.ts +17 -12
  432. package/src/dispatchers/cloudflare-do/dispatcher.ts +204 -0
  433. package/src/dispatchers/cloudflare-do/index.test.ts +206 -0
  434. package/src/dispatchers/cloudflare-do/index.ts +63 -0
  435. package/src/dispatchers/node/dispatcher.ts +112 -0
  436. package/src/dispatchers/node/index.test.ts +120 -0
  437. package/src/dispatchers/node/index.ts +50 -0
  438. package/src/durable-hooks.test.ts +80 -0
  439. package/src/durable-hooks.ts +67 -0
  440. package/src/fragments/internal-fragment.routes.test.ts +570 -0
  441. package/src/fragments/internal-fragment.routes.ts +334 -0
  442. package/src/fragments/internal-fragment.schema.ts +95 -0
  443. package/src/fragments/internal-fragment.test.ts +505 -83
  444. package/src/fragments/internal-fragment.ts +453 -70
  445. package/src/hooks/durable-hooks-logger.ts +126 -0
  446. package/src/hooks/durable-hooks-processor.pglite.test.ts +87 -0
  447. package/src/hooks/durable-hooks-processor.test.ts +282 -0
  448. package/src/hooks/durable-hooks-processor.ts +173 -0
  449. package/src/hooks/durable-hooks-runtime.test.ts +65 -0
  450. package/src/hooks/durable-hooks-runtime.ts +81 -0
  451. package/src/hooks/hooks.test.ts +455 -34
  452. package/src/hooks/hooks.ts +501 -34
  453. package/src/id.test.ts +34 -0
  454. package/src/id.ts +1 -3
  455. package/src/internal/adapter-registry.test.ts +93 -0
  456. package/src/internal/adapter-registry.ts +239 -0
  457. package/src/internal/outbox-state.ts +43 -0
  458. package/src/migration-engine/auto-from-schema.test.ts +107 -14
  459. package/src/migration-engine/auto-from-schema.ts +365 -44
  460. package/src/migration-engine/create.test.ts +4 -3
  461. package/src/migration-engine/create.ts +1 -1
  462. package/src/migration-engine/generation-engine.test.ts +292 -110
  463. package/src/migration-engine/generation-engine.ts +117 -66
  464. package/src/migration-engine/shared.ts +14 -0
  465. package/src/mod.ts +95 -39
  466. package/src/naming/sql-naming.ts +181 -0
  467. package/src/outbox/outbox-builder.ts +241 -0
  468. package/src/outbox/outbox.test.ts +424 -0
  469. package/src/outbox/outbox.ts +139 -0
  470. package/src/query/column-defaults.ts +42 -4
  471. package/src/query/condition-builder.test.ts +18 -3
  472. package/src/query/condition-builder.ts +7 -0
  473. package/src/query/cursor-client.test.ts +70 -0
  474. package/src/query/cursor-client.ts +263 -0
  475. package/src/query/cursor.test.ts +119 -20
  476. package/src/query/cursor.ts +88 -27
  477. package/src/query/db-now.ts +73 -0
  478. package/src/query/orm/orm.ts +2 -2
  479. package/src/query/query-type.test.ts +4 -3
  480. package/src/query/serialize/create-sql-serializer.ts +10 -5
  481. package/src/query/serialize/dialect/mysql-serializer.ts +13 -5
  482. package/src/query/serialize/dialect/postgres-serializer.ts +35 -5
  483. package/src/query/serialize/dialect/sqlite-serializer.test.ts +90 -3
  484. package/src/query/serialize/dialect/sqlite-serializer.ts +108 -12
  485. package/src/query/serialize/sql-serializer.ts +4 -4
  486. package/src/query/simple-query-interface.ts +15 -4
  487. package/src/query/unit-of-work/execute-unit-of-work.test.ts +372 -10
  488. package/src/query/unit-of-work/execute-unit-of-work.ts +87 -27
  489. package/src/query/unit-of-work/retry-policy.test.ts +1 -0
  490. package/src/query/unit-of-work/tx-builder.test.ts +73 -1
  491. package/src/query/unit-of-work/unit-of-work-coordinator.test.ts +17 -16
  492. package/src/query/unit-of-work/unit-of-work-types.test.ts +42 -12
  493. package/src/query/unit-of-work/unit-of-work.test.ts +196 -39
  494. package/src/query/unit-of-work/unit-of-work.ts +309 -38
  495. package/src/query/value-decoding.test.ts +63 -4
  496. package/src/query/value-decoding.ts +32 -6
  497. package/src/query/value-encoding.test.ts +86 -2
  498. package/src/query/value-encoding.ts +56 -6
  499. package/src/schema/create.test.ts +293 -47
  500. package/src/schema/create.ts +406 -70
  501. package/src/schema/generate-id.test.ts +3 -2
  502. package/src/schema/generate-id.ts +2 -2
  503. package/src/schema/serialize.test.ts +18 -5
  504. package/src/schema/type-conversion/create-sql-type-mapper.ts +8 -3
  505. package/src/schema/type-conversion/dialect/sqlite.ts +18 -0
  506. package/src/schema/type-conversion/type-mapping.test.ts +26 -1
  507. package/src/schema/validator.test.ts +199 -0
  508. package/src/schema/validator.ts +232 -0
  509. package/src/{adapters/drizzle/generate.test.ts → schema-output/drizzle.test.ts} +232 -129
  510. package/src/{adapters/drizzle/generate.ts → schema-output/drizzle.ts} +155 -99
  511. package/src/schema-output/prisma.test.ts +694 -0
  512. package/src/schema-output/prisma.ts +593 -0
  513. package/src/sql-driver/better-sqlite3.test.ts +5 -3
  514. package/src/sql-driver/dialects/durable-object-dialect.ts +3 -8
  515. package/src/sql-driver/query-executor/default-query-executor.ts +1 -1
  516. package/src/sql-driver/query-executor/query-executor-base.ts +1 -1
  517. package/src/sql-driver/query-executor/query-executor.ts +1 -1
  518. package/src/sql-driver/sql-driver-adapter.ts +2 -2
  519. package/src/sql-driver/sql.ts +2 -1
  520. package/src/sql-driver/sqlocal.test.ts +4 -2
  521. package/src/sync/commands.test.ts +39 -0
  522. package/src/sync/commands.ts +51 -0
  523. package/src/sync/conflict-checker.test.ts +450 -0
  524. package/src/sync/conflict-checker.ts +248 -0
  525. package/src/sync/index.ts +14 -0
  526. package/src/sync/plan.ts +9 -0
  527. package/src/sync/read-tracking.test.ts +177 -0
  528. package/src/sync/read-tracking.ts +287 -0
  529. package/src/sync/submit.test.ts +205 -0
  530. package/src/sync/submit.ts +328 -0
  531. package/src/sync/types.ts +80 -0
  532. package/src/util/default-database-adapter.ts +119 -0
  533. package/src/with-database.ts +20 -31
  534. package/tsconfig.json +1 -1
  535. package/tsdown.config.ts +38 -24
  536. package/vitest.config.ts +1 -0
  537. package/dist/adapters/drizzle/drizzle-adapter.d.ts +0 -20
  538. package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +0 -1
  539. package/dist/adapters/drizzle/drizzle-adapter.js +0 -27
  540. package/dist/adapters/drizzle/drizzle-adapter.js.map +0 -1
  541. package/dist/adapters/drizzle/generate.d.ts +0 -30
  542. package/dist/adapters/drizzle/generate.d.ts.map +0 -1
  543. package/dist/adapters/drizzle/generate.js.map +0 -1
  544. package/dist/adapters/kysely/kysely-adapter.d.ts +0 -19
  545. package/dist/adapters/kysely/kysely-adapter.d.ts.map +0 -1
  546. package/dist/adapters/kysely/kysely-adapter.js +0 -17
  547. package/dist/adapters/kysely/kysely-adapter.js.map +0 -1
  548. package/dist/adapters/shared/table-name-mapper.d.ts +0 -12
  549. package/dist/adapters/shared/table-name-mapper.d.ts.map +0 -1
  550. package/dist/adapters/shared/table-name-mapper.js +0 -43
  551. package/dist/adapters/shared/table-name-mapper.js.map +0 -1
  552. package/dist/node_modules/.pnpm/rou3@0.7.10/node_modules/rou3/dist/index.js +0 -165
  553. package/dist/node_modules/.pnpm/rou3@0.7.10/node_modules/rou3/dist/index.js.map +0 -1
  554. package/dist/packages/fragno/dist/api/bind-services.js +0 -20
  555. package/dist/packages/fragno/dist/api/bind-services.js.map +0 -1
  556. package/dist/packages/fragno/dist/api/error.js +0 -48
  557. package/dist/packages/fragno/dist/api/error.js.map +0 -1
  558. package/dist/packages/fragno/dist/api/fragment-definition-builder.js +0 -320
  559. package/dist/packages/fragno/dist/api/fragment-definition-builder.js.map +0 -1
  560. package/dist/packages/fragno/dist/api/fragment-instantiator.js +0 -525
  561. package/dist/packages/fragno/dist/api/fragment-instantiator.js.map +0 -1
  562. package/dist/packages/fragno/dist/api/fragno-response.js +0 -73
  563. package/dist/packages/fragno/dist/api/fragno-response.js.map +0 -1
  564. package/dist/packages/fragno/dist/api/internal/response-stream.js +0 -81
  565. package/dist/packages/fragno/dist/api/internal/response-stream.js.map +0 -1
  566. package/dist/packages/fragno/dist/api/internal/route.js +0 -10
  567. package/dist/packages/fragno/dist/api/internal/route.js.map +0 -1
  568. package/dist/packages/fragno/dist/api/mutable-request-state.js +0 -97
  569. package/dist/packages/fragno/dist/api/mutable-request-state.js.map +0 -1
  570. package/dist/packages/fragno/dist/api/request-context-storage.js +0 -43
  571. package/dist/packages/fragno/dist/api/request-context-storage.js.map +0 -1
  572. package/dist/packages/fragno/dist/api/request-input-context.js +0 -118
  573. package/dist/packages/fragno/dist/api/request-input-context.js.map +0 -1
  574. package/dist/packages/fragno/dist/api/request-middleware.js +0 -83
  575. package/dist/packages/fragno/dist/api/request-middleware.js.map +0 -1
  576. package/dist/packages/fragno/dist/api/request-output-context.js +0 -119
  577. package/dist/packages/fragno/dist/api/request-output-context.js.map +0 -1
  578. package/dist/packages/fragno/dist/api/route.js +0 -17
  579. package/dist/packages/fragno/dist/api/route.js.map +0 -1
  580. package/dist/packages/fragno/dist/internal/symbols.js +0 -10
  581. package/dist/packages/fragno/dist/internal/symbols.js.map +0 -1
  582. package/dist/schema-generator/schema-generator.d.ts +0 -15
  583. package/dist/schema-generator/schema-generator.d.ts.map +0 -1
  584. package/src/adapters/drizzle/drizzle-adapter.ts +0 -39
  585. package/src/adapters/kysely/kysely-adapter.ts +0 -27
  586. package/src/adapters/shared/table-name-mapper.ts +0 -50
  587. package/src/schema-generator/schema-generator.ts +0 -12
@@ -1,13 +1,19 @@
1
1
  import { describe, expect, test } from "vitest";
2
+
3
+ import {
4
+ createNamingResolver,
5
+ schemaNamingStrategy,
6
+ suffixNamingStrategy,
7
+ type SqlNamingStrategy,
8
+ } from "../../../naming/sql-naming";
2
9
  import { column, idColumn, referenceColumn, schema } from "../../../schema/create";
3
10
  import { createColdKysely } from "./cold-kysely";
4
- import { SQLiteSQLGenerator } from "./dialect/sqlite";
5
- import { PostgresSQLGenerator } from "./dialect/postgres";
6
11
  import { MySQLSQLGenerator } from "./dialect/mysql";
12
+ import { PostgresSQLGenerator } from "./dialect/postgres";
13
+ import { SQLiteSQLGenerator } from "./dialect/sqlite";
7
14
  import { createPreparedMigrations } from "./prepared-migrations";
8
- import { createTableNameMapper } from "../../shared/table-name-mapper";
9
15
 
10
- const testSchema = schema((s) => {
16
+ const testSchema = schema("test", (s) => {
11
17
  return s
12
18
  .addTable("users", (t) => {
13
19
  return t.addColumn("id", idColumn()).addColumn("name", column("string"));
@@ -31,9 +37,42 @@ const testSchema = schema((s) => {
31
37
  });
32
38
  });
33
39
 
40
+ const nullableSchema = schema("nullable", (s) => {
41
+ return s
42
+ .addTable("users", (t) => {
43
+ return t.addColumn("id", idColumn()).addColumn("name", column("string"));
44
+ })
45
+ .alterTable("users", (t) => {
46
+ return t.alterColumn("name").nullable();
47
+ });
48
+ });
49
+
50
+ const resolver = createNamingResolver(testSchema, "test", suffixNamingStrategy);
51
+ const nullableResolver = createNamingResolver(nullableSchema, "nullable", suffixNamingStrategy);
52
+ const fkLaterSchema = schema("fk_later", (s) => {
53
+ return s
54
+ .addTable("users", (t) => {
55
+ return t.addColumn("id", idColumn()).addColumn("name", column("string"));
56
+ })
57
+ .addTable("posts", (t) => {
58
+ return t
59
+ .addColumn("id", idColumn())
60
+ .addColumn("title", column("string"))
61
+ .addColumn("authorId", referenceColumn());
62
+ })
63
+ .addReference("author", {
64
+ type: "one",
65
+ from: { table: "posts", column: "authorId" },
66
+ to: { table: "users", column: "id" },
67
+ });
68
+ });
69
+
70
+ const fkLaterResolver = createNamingResolver(fkLaterSchema, "fk_later", suffixNamingStrategy);
71
+
34
72
  describe("PreparedMigrations - PostgreSQL", () => {
35
73
  const coldKysely = createColdKysely("postgresql");
36
74
  const generator = new PostgresSQLGenerator(coldKysely, "postgresql");
75
+ const resolver = createNamingResolver(testSchema, "test", suffixNamingStrategy);
37
76
 
38
77
  test("compile migration 0 -> 1 (create users table)", () => {
39
78
  const statements = generator.compile(
@@ -55,7 +94,7 @@ describe("PreparedMigrations - PostgreSQL", () => {
55
94
  ],
56
95
  },
57
96
  ],
58
- { toPhysical: (n) => `${n}_test`, toLogical: (n) => n.replace("_test", "") },
97
+ resolver,
59
98
  );
60
99
 
61
100
  expect(statements.length).toBe(1);
@@ -78,7 +117,7 @@ describe("PreparedMigrations - PostgreSQL", () => {
78
117
  ],
79
118
  },
80
119
  ],
81
- { toPhysical: (n) => `${n}_test`, toLogical: (n) => n.replace("_test", "") },
120
+ resolver,
82
121
  );
83
122
 
84
123
  expect(statements.length).toBe(1);
@@ -98,12 +137,12 @@ describe("PreparedMigrations - PostgreSQL", () => {
98
137
  unique: false,
99
138
  },
100
139
  ],
101
- { toPhysical: (n) => `${n}_test`, toLogical: (n) => n.replace("_test", "") },
140
+ resolver,
102
141
  );
103
142
 
104
143
  expect(statements.length).toBe(1);
105
144
  expect(statements[0].sql).toMatchInlineSnapshot(
106
- `"create index "name_idx_users_test" on "users_test" ("name")"`,
145
+ `"create index "idx_users_name_idx_test_92db5054" on "users_test" ("name")"`,
107
146
  );
108
147
  });
109
148
 
@@ -122,11 +161,92 @@ describe("PreparedMigrations - PostgreSQL", () => {
122
161
  `"update "fragno_db_settings" set "value" = '2' where "key" = 'test_namespace.schema_version'"`,
123
162
  );
124
163
  });
164
+
165
+ test("compile uses custom naming strategy for columns and constraints", () => {
166
+ const customStrategy: SqlNamingStrategy = {
167
+ namespaceScope: "suffix",
168
+ namespaceToSchema: (namespace) => namespace,
169
+ tableName: (logicalTable, namespace) =>
170
+ namespace ? `tbl_${logicalTable}_${namespace}` : `tbl_${logicalTable}`,
171
+ columnName: (logicalColumn) => `col_${logicalColumn}`,
172
+ indexName: (logicalIndex, _table, namespace) =>
173
+ namespace ? `idx_custom_${logicalIndex}_${namespace}` : `idx_custom_${logicalIndex}`,
174
+ uniqueIndexName: (logicalIndex, _table, namespace) =>
175
+ namespace ? `uidx_custom_${logicalIndex}_${namespace}` : `uidx_custom_${logicalIndex}`,
176
+ foreignKeyName: ({ referenceName, namespace }) =>
177
+ namespace ? `fk_custom_${referenceName}_${namespace}` : `fk_custom_${referenceName}`,
178
+ };
179
+ const customResolver = createNamingResolver(testSchema, "custom", customStrategy);
180
+
181
+ const statements = generator.compile(
182
+ [
183
+ {
184
+ type: "create-table",
185
+ name: "users",
186
+ columns: [
187
+ { name: "id", type: "string", isNullable: false, role: "external-id" },
188
+ { name: "name", type: "string", isNullable: false, role: "regular" },
189
+ ],
190
+ },
191
+ {
192
+ type: "create-table",
193
+ name: "posts",
194
+ columns: [
195
+ { name: "id", type: "string", isNullable: false, role: "external-id" },
196
+ { name: "authorId", type: "bigint", isNullable: false, role: "reference" },
197
+ ],
198
+ },
199
+ {
200
+ type: "add-index",
201
+ table: "users",
202
+ name: "name_idx",
203
+ columns: ["name"],
204
+ unique: false,
205
+ },
206
+ {
207
+ type: "add-foreign-key",
208
+ table: "posts",
209
+ value: {
210
+ name: "author",
211
+ columns: ["authorId"],
212
+ referencedTable: "users",
213
+ referencedColumns: ["_internalId"],
214
+ },
215
+ },
216
+ ],
217
+ customResolver,
218
+ );
219
+
220
+ const sql = statements.map((stmt) => stmt.sql).join("\\n");
221
+ expect(sql).toContain(`create table "tbl_users_custom"`);
222
+ expect(sql).toContain(`"col_name"`);
223
+ expect(sql).toContain(`create index "idx_custom_name_idx_custom"`);
224
+ expect(sql).toContain(`add constraint "fk_custom_author_custom"`);
225
+ });
226
+
227
+ test("compile uses schema naming strategy for schema-scoped namespaces", () => {
228
+ const schemaResolver = createNamingResolver(testSchema, "tenant", schemaNamingStrategy);
229
+ const statements = generator.compile(
230
+ [
231
+ {
232
+ type: "create-table",
233
+ name: "users",
234
+ columns: [{ name: "id", type: "string", isNullable: false, role: "external-id" }],
235
+ },
236
+ ],
237
+ schemaResolver,
238
+ );
239
+
240
+ const sql = statements.map((stmt) => stmt.sql).join("\\n");
241
+ expect(sql).toContain(`CREATE SCHEMA IF NOT EXISTS "tenant"`);
242
+ expect(sql).toContain(`create table "tenant"."users"`);
243
+ });
125
244
  });
126
245
 
127
246
  describe("PreparedMigrations - SQLite FK Merging", () => {
128
247
  const coldKysely = createColdKysely("sqlite");
129
248
  const generator = new SQLiteSQLGenerator(coldKysely, "sqlite");
249
+ const resolver = createNamingResolver(testSchema, "test", suffixNamingStrategy);
130
250
 
131
251
  test("preprocess merges FK into create-table", () => {
132
252
  const operations = generator.preprocess([
@@ -191,7 +311,7 @@ describe("PreparedMigrations - SQLite FK Merging", () => {
191
311
  },
192
312
  },
193
313
  ],
194
- { toPhysical: (n) => `${n}_test`, toLogical: (n) => n.replace("_test", "") },
314
+ resolver,
195
315
  );
196
316
 
197
317
  expect(statements.length).toBe(3);
@@ -200,7 +320,7 @@ describe("PreparedMigrations - SQLite FK Merging", () => {
200
320
  `"create table "users_test" ("id" text not null unique)"`,
201
321
  );
202
322
  expect(statements[2].sql).toMatchInlineSnapshot(
203
- `"create table "posts_test" ("id" text not null unique, "authorId" integer not null, constraint "posts_users_author_fk" foreign key ("authorId") references "users_test" ("_internalId") on delete restrict on update restrict)"`,
323
+ `"create table "posts_test" ("id" text not null unique, "authorId" integer not null, foreign key ("authorId") references "users_test" ("_internalId") on delete restrict on update restrict)"`,
204
324
  );
205
325
  });
206
326
 
@@ -286,7 +406,7 @@ describe("PreparedMigrations - MySQL", () => {
286
406
  expect(statements.length).toBe(3);
287
407
  expect(statements[0].sql).toMatchInlineSnapshot(`"SET FOREIGN_KEY_CHECKS = 0"`);
288
408
  expect(statements[1].sql).toMatchInlineSnapshot(
289
- `"create table \`users\` (\`_internalId\` bigint not null primary key auto_increment)"`,
409
+ `"create table \`users\` (\`_internalId\` bigint not null auto_increment, constraint \`users__internalId\` primary key (\`_internalId\`))"`,
290
410
  );
291
411
  expect(statements[2].sql).toMatchInlineSnapshot(`"SET FOREIGN_KEY_CHECKS = 1"`);
292
412
  });
@@ -335,7 +455,7 @@ describe("PreparedMigrations - Integration", () => {
335
455
  schema: testSchema,
336
456
  namespace: "test",
337
457
  database: "postgresql",
338
- mapper: createTableNameMapper("test"),
458
+ resolver,
339
459
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
340
460
  driver: mockDriver as any,
341
461
  });
@@ -345,7 +465,7 @@ describe("PreparedMigrations - Integration", () => {
345
465
  expect(transactionStarted).toBe(true);
346
466
  expect(executedStatements.length).toBe(2);
347
467
  expect(executedStatements[0]).toMatchInlineSnapshot(
348
- `"create table "users_test" ("id" varchar(30) not null unique, "name" text not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null)"`,
468
+ `"create table "users_test" ("id" varchar(128) not null unique, "name" text not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null)"`,
349
469
  );
350
470
  expect(executedStatements[1]).toMatchInlineSnapshot(
351
471
  `"insert into "fragno_db_settings" ("id", "key", "value") values ('BflimUWc1NbCMMDD9SM3gQ', 'test.schema_version', '1')"`,
@@ -379,7 +499,7 @@ describe("PreparedMigrations - Integration", () => {
379
499
  schema: testSchema,
380
500
  namespace: "test",
381
501
  database: "postgresql",
382
- mapper: createTableNameMapper("test"),
502
+ resolver,
383
503
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
384
504
  driver: mockDriver as any,
385
505
  });
@@ -404,7 +524,7 @@ describe("PreparedMigrations - Integration", () => {
404
524
  schema: testSchema,
405
525
  namespace: "test",
406
526
  database: "postgresql",
407
- mapper: createTableNameMapper("test"),
527
+ resolver,
408
528
  });
409
529
 
410
530
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -426,7 +546,7 @@ describe("PreparedMigrations - Integration", () => {
426
546
  schema: testSchema,
427
547
  namespace: "test",
428
548
  database: "postgresql",
429
- mapper: createTableNameMapper("test"),
549
+ resolver,
430
550
  });
431
551
 
432
552
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -462,7 +582,7 @@ describe("PreparedMigrations - Integration", () => {
462
582
  schema: testSchema,
463
583
  namespace: "test",
464
584
  database: "postgresql",
465
- mapper: createTableNameMapper("test"),
585
+ resolver,
466
586
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
467
587
  driver: mockDriver as any,
468
588
  });
@@ -478,7 +598,7 @@ describe("PreparedMigrations - Integration", () => {
478
598
  schema: testSchema,
479
599
  namespace: "test",
480
600
  database: "postgresql",
481
- mapper: createTableNameMapper("test"),
601
+ resolver,
482
602
  // No driver provided
483
603
  });
484
604
 
@@ -494,18 +614,18 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
494
614
  schema: testSchema,
495
615
  namespace: "test",
496
616
  database: "postgresql",
497
- mapper: createTableNameMapper("test"),
617
+ resolver,
498
618
  });
499
619
 
500
620
  const sql = prepared.getSQL(0, 2, { updateVersionInMigration: true });
501
621
  expect(sql).toMatchInlineSnapshot(`
502
- "create table "users_test" ("id" varchar(30) not null unique, "name" text not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null);
622
+ "create table "users_test" ("id" varchar(128) not null unique, "name" text not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null);
503
623
 
504
624
  alter table "users_test" add column "age" integer;
505
625
 
506
- create index "name_idx_users_test" on "users_test" ("name");
626
+ create index "idx_users_name_idx_test_92db5054" on "users_test" ("name");
507
627
 
508
- create index "age_idx_users_test" on "users_test" ("age");
628
+ create index "idx_users_age_idx_test_1c69311d" on "users_test" ("age");
509
629
 
510
630
  insert into "fragno_db_settings" ("id", "key", "value") values ('BflimUWc1NbCMMDD9SM3gQ', 'test.schema_version', '2');"
511
631
  `);
@@ -516,22 +636,22 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
516
636
  schema: testSchema,
517
637
  namespace: "test",
518
638
  database: "postgresql",
519
- mapper: createTableNameMapper("test"),
639
+ resolver,
520
640
  });
521
641
 
522
642
  const sql = prepared.getSQL(0, 4, { updateVersionInMigration: true });
523
643
  expect(sql).toMatchInlineSnapshot(`
524
- "create table "users_test" ("id" varchar(30) not null unique, "name" text not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null);
644
+ "create table "users_test" ("id" varchar(128) not null unique, "name" text not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null);
525
645
 
526
646
  alter table "users_test" add column "age" integer;
527
647
 
528
- create index "name_idx_users_test" on "users_test" ("name");
648
+ create index "idx_users_name_idx_test_92db5054" on "users_test" ("name");
529
649
 
530
- create index "age_idx_users_test" on "users_test" ("age");
650
+ create index "idx_users_age_idx_test_1c69311d" on "users_test" ("age");
531
651
 
532
- create table "posts_test" ("id" varchar(30) not null unique, "title" text not null, "authorId" bigint not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null);
652
+ create table "posts_test" ("id" varchar(128) not null unique, "title" text not null, "authorId" bigint not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null);
533
653
 
534
- alter table "posts_test" add constraint "posts_users_author_fk" foreign key ("authorId") references "users_test" ("_internalId") on delete restrict on update restrict;
654
+ alter table "posts_test" add constraint "fk_posts_users_author_test_8d48035c" foreign key ("authorId") references "users_test" ("_internalId") on delete restrict on update restrict;
535
655
 
536
656
  insert into "fragno_db_settings" ("id", "key", "value") values ('BflimUWc1NbCMMDD9SM3gQ', 'test.schema_version', '4');"
537
657
  `);
@@ -542,16 +662,16 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
542
662
  schema: testSchema,
543
663
  namespace: "test",
544
664
  database: "postgresql",
545
- mapper: createTableNameMapper("test"),
665
+ resolver,
546
666
  });
547
667
 
548
668
  const sql = prepared.getSQL(1, 2, { updateVersionInMigration: true });
549
669
  expect(sql).toMatchInlineSnapshot(`
550
670
  "alter table "users_test" add column "age" integer;
551
671
 
552
- create index "name_idx_users_test" on "users_test" ("name");
672
+ create index "idx_users_name_idx_test_92db5054" on "users_test" ("name");
553
673
 
554
- create index "age_idx_users_test" on "users_test" ("age");
674
+ create index "idx_users_age_idx_test_1c69311d" on "users_test" ("age");
555
675
 
556
676
  update "fragno_db_settings" set "value" = '2' where "key" = 'test.schema_version';"
557
677
  `);
@@ -562,12 +682,12 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
562
682
  schema: testSchema,
563
683
  namespace: "test",
564
684
  database: "postgresql",
565
- mapper: createTableNameMapper("test"),
685
+ resolver,
566
686
  });
567
687
 
568
688
  const sql = prepared.getSQL(2, 3, { updateVersionInMigration: true });
569
689
  expect(sql).toMatchInlineSnapshot(`
570
- "create table "posts_test" ("id" varchar(30) not null unique, "title" text not null, "authorId" bigint not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null);
690
+ "create table "posts_test" ("id" varchar(128) not null unique, "title" text not null, "authorId" bigint not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null);
571
691
 
572
692
  update "fragno_db_settings" set "value" = '3' where "key" = 'test.schema_version';"
573
693
  `);
@@ -578,7 +698,7 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
578
698
  schema: testSchema,
579
699
  namespace: "test",
580
700
  database: "sqlite",
581
- mapper: createTableNameMapper("test"),
701
+ resolver,
582
702
  });
583
703
 
584
704
  const sql = prepared.getSQL(0, 4, { updateVersionInMigration: true });
@@ -589,39 +709,53 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
589
709
 
590
710
  alter table "users_test" add column "age" integer;
591
711
 
592
- create index "name_idx_users_test" on "users_test" ("name");
712
+ create index "idx_users_name_idx_test_92db5054" on "users_test" ("name");
593
713
 
594
- create index "age_idx_users_test" on "users_test" ("age");
714
+ create index "idx_users_age_idx_test_1c69311d" on "users_test" ("age");
595
715
 
596
- create table "posts_test" ("id" text not null unique, "title" text not null, "authorId" integer not null, "_internalId" integer not null primary key autoincrement, "_version" integer default 0 not null, constraint "posts_users_author_fk" foreign key ("authorId") references "users_test" ("_internalId") on delete restrict on update restrict);
716
+ create table "posts_test" ("id" text not null unique, "title" text not null, "authorId" integer not null, "_internalId" integer not null primary key autoincrement, "_version" integer default 0 not null, foreign key ("authorId") references "users_test" ("_internalId") on delete restrict on update restrict);
597
717
 
598
718
  insert into "fragno_db_settings" ("id", "key", "value") values ('BflimUWc1NbCMMDD9SM3gQ', 'test.schema_version', '4');"
599
719
  `);
600
720
  });
601
721
 
722
+ test("SQLite: adding FK after table creation throws", () => {
723
+ const prepared = createPreparedMigrations({
724
+ schema: fkLaterSchema,
725
+ namespace: "fk_later",
726
+ database: "sqlite",
727
+ resolver: fkLaterResolver,
728
+ });
729
+
730
+ const previousVersion = fkLaterSchema.version - 1;
731
+ expect(() =>
732
+ prepared.getSQL(previousVersion, fkLaterSchema.version, { updateVersionInMigration: false }),
733
+ ).toThrow("SQLite doesn't support modifying foreign keys");
734
+ });
735
+
602
736
  test("MySQL: migration 0 -> 4 with FK checks disabled", () => {
603
737
  const prepared = createPreparedMigrations({
604
738
  schema: testSchema,
605
739
  namespace: "test",
606
740
  database: "mysql",
607
- mapper: createTableNameMapper("test"),
741
+ resolver,
608
742
  });
609
743
 
610
744
  const sql = prepared.getSQL(0, 4, { updateVersionInMigration: true });
611
745
  expect(sql).toMatchInlineSnapshot(`
612
746
  "SET FOREIGN_KEY_CHECKS = 0;
613
747
 
614
- create table \`users_test\` (\`id\` varchar(30) not null unique, \`name\` text not null, \`_internalId\` bigint not null primary key auto_increment, \`_version\` integer default 0 not null);
748
+ create table \`users_test\` (\`id\` varchar(128) not null unique, \`name\` text not null, \`_internalId\` bigint not null auto_increment, \`_version\` integer default 0 not null, constraint \`users_test__internalId\` primary key (\`_internalId\`));
615
749
 
616
750
  alter table \`users_test\` add column \`age\` integer;
617
751
 
618
- create index \`name_idx_users_test\` on \`users_test\` (\`name\`);
752
+ create index \`idx_users_name_idx_test_92db5054\` on \`users_test\` (\`name\`);
619
753
 
620
- create index \`age_idx_users_test\` on \`users_test\` (\`age\`);
754
+ create index \`idx_users_age_idx_test_1c69311d\` on \`users_test\` (\`age\`);
621
755
 
622
- create table \`posts_test\` (\`id\` varchar(30) not null unique, \`title\` text not null, \`authorId\` bigint not null, \`_internalId\` bigint not null primary key auto_increment, \`_version\` integer default 0 not null);
756
+ create table \`posts_test\` (\`id\` varchar(128) not null unique, \`title\` text not null, \`authorId\` bigint not null, \`_internalId\` bigint not null auto_increment, \`_version\` integer default 0 not null, constraint \`posts_test__internalId\` primary key (\`_internalId\`));
623
757
 
624
- alter table \`posts_test\` add constraint \`posts_users_author_fk\` foreign key (\`authorId\`) references \`users_test\` (\`_internalId\`) on delete restrict on update restrict;
758
+ alter table \`posts_test\` add constraint \`fk_posts_users_author_test_8d48035c\` foreign key (\`authorId\`) references \`users_test\` (\`_internalId\`) on delete restrict on update restrict;
625
759
 
626
760
  SET FOREIGN_KEY_CHECKS = 1;
627
761
 
@@ -629,12 +763,70 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
629
763
  `);
630
764
  });
631
765
 
766
+ test("PostgreSQL: migration 1 -> 2 (make column nullable)", () => {
767
+ const prepared = createPreparedMigrations({
768
+ schema: nullableSchema,
769
+ namespace: "nullable",
770
+ database: "postgresql",
771
+ resolver: nullableResolver,
772
+ });
773
+
774
+ const sql = prepared.getSQL(1, 2, { updateVersionInMigration: false });
775
+ expect(sql).toMatchInlineSnapshot(
776
+ `"alter table "users_nullable" alter column "name" drop not null;"`,
777
+ );
778
+ });
779
+
780
+ test("MySQL: migration 1 -> 2 (make column nullable)", () => {
781
+ const prepared = createPreparedMigrations({
782
+ schema: nullableSchema,
783
+ namespace: "nullable",
784
+ database: "mysql",
785
+ resolver: nullableResolver,
786
+ });
787
+
788
+ const sql = prepared.getSQL(1, 2, { updateVersionInMigration: false });
789
+ expect(sql).toMatchInlineSnapshot(`
790
+ "SET FOREIGN_KEY_CHECKS = 0;
791
+
792
+ alter table \`users_nullable\` modify column \`name\` text;
793
+
794
+ SET FOREIGN_KEY_CHECKS = 1;"
795
+ `);
796
+ });
797
+
798
+ test("SQLite: migration 1 -> 2 (make column nullable)", () => {
799
+ const prepared = createPreparedMigrations({
800
+ schema: nullableSchema,
801
+ namespace: "nullable",
802
+ database: "sqlite",
803
+ resolver: nullableResolver,
804
+ });
805
+
806
+ const sql = prepared.getSQL(1, 2, { updateVersionInMigration: false });
807
+ expect(sql).toMatchInlineSnapshot(`
808
+ "PRAGMA defer_foreign_keys = ON;
809
+
810
+ PRAGMA foreign_keys = OFF;
811
+
812
+ create table "users_nullable__fragno_tmp_414fdd" ("id" text not null unique, "name" text, "_internalId" integer not null primary key autoincrement, "_version" integer default 0 not null);
813
+
814
+ insert into "users_nullable__fragno_tmp_414fdd" ("id", "name", "_internalId", "_version") select "id", "name", "_internalId", "_version" from "users_nullable";
815
+
816
+ drop table "users_nullable";
817
+
818
+ alter table "users_nullable__fragno_tmp_414fdd" rename to "users_nullable";
819
+
820
+ PRAGMA foreign_keys = ON;"
821
+ `);
822
+ });
823
+
632
824
  test("compile returns CompiledMigration with statements array", () => {
633
825
  const prepared = createPreparedMigrations({
634
826
  schema: testSchema,
635
827
  namespace: "test",
636
828
  database: "postgresql",
637
- mapper: createTableNameMapper("test"),
829
+ resolver,
638
830
  });
639
831
 
640
832
  const compiled = prepared.compile(0, 2, { updateVersionInMigration: true });
@@ -649,13 +841,13 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
649
841
  schema: testSchema,
650
842
  namespace: "test",
651
843
  database: "postgresql",
652
- mapper: createTableNameMapper("test"),
844
+ resolver,
653
845
  });
654
846
 
655
847
  const sql = prepared.getSQL(0, 1, { updateVersionInMigration: false });
656
848
  expect(sql).not.toContain("fragno_db_settings");
657
849
  expect(sql).toMatchInlineSnapshot(
658
- `"create table "users_test" ("id" varchar(30) not null unique, "name" text not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null);"`,
850
+ `"create table "users_test" ("id" varchar(128) not null unique, "name" text not null, "_internalId" bigserial not null primary key, "_version" integer default 0 not null);"`,
659
851
  );
660
852
  });
661
853
  });
@@ -1,15 +1,17 @@
1
+ import type { Kysely } from "kysely";
2
+
3
+ import { generateMigrationFromSchema } from "../../../migration-engine/auto-from-schema";
4
+ import type { NamingResolver } from "../../../naming/sql-naming";
1
5
  import type { AnySchema } from "../../../schema/create";
2
6
  import type { SqlDriverAdapter } from "../../../sql-driver/sql-driver-adapter";
3
- import type { TableNameMapper } from "../../shared/table-name-mapper";
4
- import { generateMigrationFromSchema } from "../../../migration-engine/auto-from-schema";
7
+ import type { DriverConfig, SupportedDatabase } from "../driver-config";
8
+ import type { SQLiteStorageMode } from "../sqlite-storage";
5
9
  import { createColdKysely } from "./cold-kysely";
6
- import { type SQLGenerator } from "./sql-generator";
7
- import { SQLiteSQLGenerator } from "./dialect/sqlite";
8
- import { PostgresSQLGenerator } from "./dialect/postgres";
9
10
  import { MySQLSQLGenerator } from "./dialect/mysql";
11
+ import { PostgresSQLGenerator } from "./dialect/postgres";
12
+ import { SQLiteSQLGenerator } from "./dialect/sqlite";
10
13
  import { executeMigration, type CompiledMigration } from "./executor";
11
- import type { SupportedDatabase } from "../driver-config";
12
- import type { Kysely } from "kysely";
14
+ import { type SQLGenerator } from "./sql-generator";
13
15
  /**
14
16
  * Options for executing a migration.
15
17
  */
@@ -85,7 +87,9 @@ export interface PreparedMigrationsConfig {
85
87
  schema: AnySchema;
86
88
  namespace: string;
87
89
  database: SupportedDatabase;
88
- mapper?: TableNameMapper;
90
+ driverConfig?: DriverConfig;
91
+ sqliteStorageMode?: SQLiteStorageMode;
92
+ resolver?: NamingResolver;
89
93
  driver?: SqlDriverAdapter;
90
94
  /**
91
95
  * Whether to automatically update the schema version in the database after migration.
@@ -102,6 +106,8 @@ export function createPreparedMigrations(config: PreparedMigrationsConfig): Prep
102
106
  schema,
103
107
  namespace,
104
108
  database,
109
+ driverConfig,
110
+ sqliteStorageMode,
105
111
  driver,
106
112
  updateVersionInMigration: defaultUpdateVersion = true,
107
113
  } = config;
@@ -110,7 +116,7 @@ export function createPreparedMigrations(config: PreparedMigrationsConfig): Prep
110
116
  const coldKysely = createColdKysely(database);
111
117
 
112
118
  // Create the appropriate SQL generator for the database
113
- const generator = createSQLGenerator(database, coldKysely);
119
+ const generator = createSQLGenerator(database, coldKysely, driverConfig, sqliteStorageMode);
114
120
 
115
121
  /**
116
122
  * Internal method to compile a migration for a given version range.
@@ -140,7 +146,7 @@ export function createPreparedMigrations(config: PreparedMigrationsConfig): Prep
140
146
  const operations = generateMigrationFromSchema(schema, fromVersion, toVersion);
141
147
 
142
148
  // Phase 2: Compile operations to SQL
143
- const statements = generator.compile(operations, config.mapper);
149
+ const statements = generator.compile(operations, config.resolver);
144
150
 
145
151
  // Add version update SQL if requested
146
152
  if (updateVersionInMigration && toVersion !== fromVersion) {
@@ -202,13 +208,15 @@ function createSQLGenerator(
202
208
  database: SupportedDatabase,
203
209
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
204
210
  coldKysely: Kysely<any>,
211
+ driverConfig?: DriverConfig,
212
+ sqliteStorageMode?: SQLiteStorageMode,
205
213
  ): SQLGenerator {
206
214
  switch (database) {
207
215
  case "sqlite":
208
- return new SQLiteSQLGenerator(coldKysely, database);
216
+ return new SQLiteSQLGenerator(coldKysely, database, driverConfig, sqliteStorageMode);
209
217
  case "postgresql":
210
- return new PostgresSQLGenerator(coldKysely, database);
218
+ return new PostgresSQLGenerator(coldKysely, database, driverConfig, sqliteStorageMode);
211
219
  case "mysql":
212
- return new MySQLSQLGenerator(coldKysely, database);
220
+ return new MySQLSQLGenerator(coldKysely, database, driverConfig, sqliteStorageMode);
213
221
  }
214
222
  }