@fragno-dev/db 0.2.1 → 0.3.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 (362) hide show
  1. package/.turbo/turbo-build.log +206 -140
  2. package/CHANGELOG.md +67 -0
  3. package/README.md +30 -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 +27 -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 +55 -16
  14. package/dist/adapters/generic-sql/generic-sql-adapter.js.map +1 -1
  15. package/dist/adapters/generic-sql/generic-sql-uow-executor.js +129 -3
  16. package/dist/adapters/generic-sql/generic-sql-uow-executor.js.map +1 -1
  17. package/dist/adapters/generic-sql/migration/dialect/mysql.js +24 -5
  18. package/dist/adapters/generic-sql/migration/dialect/mysql.js.map +1 -1
  19. package/dist/adapters/generic-sql/migration/dialect/postgres.js +6 -5
  20. package/dist/adapters/generic-sql/migration/dialect/postgres.js.map +1 -1
  21. package/dist/adapters/generic-sql/migration/dialect/sqlite.js +21 -10
  22. package/dist/adapters/generic-sql/migration/dialect/sqlite.js.map +1 -1
  23. package/dist/adapters/generic-sql/migration/prepared-migrations.d.ts.map +1 -1
  24. package/dist/adapters/generic-sql/migration/prepared-migrations.js +8 -8
  25. package/dist/adapters/generic-sql/migration/prepared-migrations.js.map +1 -1
  26. package/dist/adapters/generic-sql/migration/sql-generator.js +74 -51
  27. package/dist/adapters/generic-sql/migration/sql-generator.js.map +1 -1
  28. package/dist/adapters/generic-sql/query/create-sql-query-compiler.js +6 -5
  29. package/dist/adapters/generic-sql/query/create-sql-query-compiler.js.map +1 -1
  30. package/dist/adapters/generic-sql/query/cursor-utils.js +42 -4
  31. package/dist/adapters/generic-sql/query/cursor-utils.js.map +1 -1
  32. package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js +25 -17
  33. package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js.map +1 -1
  34. package/dist/adapters/generic-sql/query/select-builder.js +5 -3
  35. package/dist/adapters/generic-sql/query/select-builder.js.map +1 -1
  36. package/dist/adapters/generic-sql/query/sql-query-compiler.js +15 -12
  37. package/dist/adapters/generic-sql/query/sql-query-compiler.js.map +1 -1
  38. package/dist/adapters/generic-sql/query/where-builder.js +38 -28
  39. package/dist/adapters/generic-sql/query/where-builder.js.map +1 -1
  40. package/dist/adapters/generic-sql/sqlite-storage.d.ts +13 -0
  41. package/dist/adapters/generic-sql/sqlite-storage.d.ts.map +1 -0
  42. package/dist/adapters/generic-sql/sqlite-storage.js +15 -0
  43. package/dist/adapters/generic-sql/sqlite-storage.js.map +1 -0
  44. package/dist/adapters/generic-sql/uow-decoder.js +7 -3
  45. package/dist/adapters/generic-sql/uow-decoder.js.map +1 -1
  46. package/dist/adapters/generic-sql/uow-encoder.js +28 -8
  47. package/dist/adapters/generic-sql/uow-encoder.js.map +1 -1
  48. package/dist/adapters/in-memory/condition-evaluator.js +131 -0
  49. package/dist/adapters/in-memory/condition-evaluator.js.map +1 -0
  50. package/dist/adapters/in-memory/errors.d.ts +13 -0
  51. package/dist/adapters/in-memory/errors.d.ts.map +1 -0
  52. package/dist/adapters/in-memory/errors.js +23 -0
  53. package/dist/adapters/in-memory/errors.js.map +1 -0
  54. package/dist/adapters/in-memory/in-memory-adapter.d.ts +27 -0
  55. package/dist/adapters/in-memory/in-memory-adapter.d.ts.map +1 -0
  56. package/dist/adapters/in-memory/in-memory-adapter.js +176 -0
  57. package/dist/adapters/in-memory/in-memory-adapter.js.map +1 -0
  58. package/dist/adapters/in-memory/in-memory-uow.js +648 -0
  59. package/dist/adapters/in-memory/in-memory-uow.js.map +1 -0
  60. package/dist/adapters/in-memory/index.d.ts +4 -0
  61. package/dist/adapters/in-memory/index.js +4 -0
  62. package/dist/adapters/in-memory/options.d.ts +28 -0
  63. package/dist/adapters/in-memory/options.d.ts.map +1 -0
  64. package/dist/adapters/in-memory/options.js +61 -0
  65. package/dist/adapters/in-memory/options.js.map +1 -0
  66. package/dist/adapters/in-memory/reference-resolution.js +26 -0
  67. package/dist/adapters/in-memory/reference-resolution.js.map +1 -0
  68. package/dist/adapters/in-memory/sorted-array-index.js +129 -0
  69. package/dist/adapters/in-memory/sorted-array-index.js.map +1 -0
  70. package/dist/adapters/in-memory/store.js +71 -0
  71. package/dist/adapters/in-memory/store.js.map +1 -0
  72. package/dist/adapters/in-memory/value-comparison.js +28 -0
  73. package/dist/adapters/in-memory/value-comparison.js.map +1 -0
  74. package/dist/adapters/shared/from-unit-of-work-compiler.js.map +1 -1
  75. package/dist/adapters/shared/uow-operation-compiler.js +11 -11
  76. package/dist/adapters/shared/uow-operation-compiler.js.map +1 -1
  77. package/dist/adapters/sql/index.d.ts +5 -0
  78. package/dist/adapters/sql/index.js +4 -0
  79. package/dist/db-fragment-definition-builder.d.ts +45 -96
  80. package/dist/db-fragment-definition-builder.d.ts.map +1 -1
  81. package/dist/db-fragment-definition-builder.js +121 -99
  82. package/dist/db-fragment-definition-builder.js.map +1 -1
  83. package/dist/dispatchers/cloudflare-do/index.d.ts +26 -0
  84. package/dist/dispatchers/cloudflare-do/index.d.ts.map +1 -0
  85. package/dist/dispatchers/cloudflare-do/index.js +63 -0
  86. package/dist/dispatchers/cloudflare-do/index.js.map +1 -0
  87. package/dist/dispatchers/node/index.d.ts +17 -0
  88. package/dist/dispatchers/node/index.d.ts.map +1 -0
  89. package/dist/dispatchers/node/index.js +59 -0
  90. package/dist/dispatchers/node/index.js.map +1 -0
  91. package/dist/fragments/internal-fragment.d.ts +172 -9
  92. package/dist/fragments/internal-fragment.d.ts.map +1 -1
  93. package/dist/fragments/internal-fragment.js +193 -74
  94. package/dist/fragments/internal-fragment.js.map +1 -1
  95. package/dist/fragments/internal-fragment.routes.js +29 -0
  96. package/dist/fragments/internal-fragment.routes.js.map +1 -0
  97. package/dist/fragments/internal-fragment.schema.d.ts +9 -0
  98. package/dist/fragments/internal-fragment.schema.d.ts.map +1 -0
  99. package/dist/fragments/internal-fragment.schema.js +22 -0
  100. package/dist/fragments/internal-fragment.schema.js.map +1 -0
  101. package/dist/hooks/durable-hooks-processor.d.ts +14 -0
  102. package/dist/hooks/durable-hooks-processor.d.ts.map +1 -0
  103. package/dist/hooks/durable-hooks-processor.js +32 -0
  104. package/dist/hooks/durable-hooks-processor.js.map +1 -0
  105. package/dist/hooks/hooks.d.ts +47 -4
  106. package/dist/hooks/hooks.d.ts.map +1 -1
  107. package/dist/hooks/hooks.js +106 -39
  108. package/dist/hooks/hooks.js.map +1 -1
  109. package/dist/migration-engine/auto-from-schema.js +14 -11
  110. package/dist/migration-engine/auto-from-schema.js.map +1 -1
  111. package/dist/migration-engine/generation-engine.d.ts +16 -10
  112. package/dist/migration-engine/generation-engine.d.ts.map +1 -1
  113. package/dist/migration-engine/generation-engine.js +72 -33
  114. package/dist/migration-engine/generation-engine.js.map +1 -1
  115. package/dist/migration-engine/shared.js.map +1 -1
  116. package/dist/mod.d.ts +17 -10
  117. package/dist/mod.d.ts.map +1 -1
  118. package/dist/mod.js +14 -8
  119. package/dist/mod.js.map +1 -1
  120. package/dist/naming/sql-naming.d.ts +19 -0
  121. package/dist/naming/sql-naming.d.ts.map +1 -0
  122. package/dist/naming/sql-naming.js +116 -0
  123. package/dist/naming/sql-naming.js.map +1 -0
  124. package/dist/node_modules/.pnpm/{rou3@0.7.10 → rou3@0.7.12}/node_modules/rou3/dist/index.js +8 -5
  125. package/dist/node_modules/.pnpm/rou3@0.7.12/node_modules/rou3/dist/index.js.map +1 -0
  126. package/dist/outbox/outbox-builder.js +156 -0
  127. package/dist/outbox/outbox-builder.js.map +1 -0
  128. package/dist/outbox/outbox.d.ts +52 -0
  129. package/dist/outbox/outbox.d.ts.map +1 -0
  130. package/dist/outbox/outbox.js +37 -0
  131. package/dist/outbox/outbox.js.map +1 -0
  132. package/dist/packages/fragno/dist/api/fragment-definition-builder.js +3 -2
  133. package/dist/packages/fragno/dist/api/fragment-definition-builder.js.map +1 -1
  134. package/dist/packages/fragno/dist/api/fragment-instantiator.js +164 -20
  135. package/dist/packages/fragno/dist/api/fragment-instantiator.js.map +1 -1
  136. package/dist/packages/fragno/dist/api/request-input-context.js +67 -0
  137. package/dist/packages/fragno/dist/api/request-input-context.js.map +1 -1
  138. package/dist/packages/fragno/dist/api/route.js +14 -1
  139. package/dist/packages/fragno/dist/api/route.js.map +1 -1
  140. package/dist/packages/fragno/dist/internal/trace-context.js +12 -0
  141. package/dist/packages/fragno/dist/internal/trace-context.js.map +1 -0
  142. package/dist/query/column-defaults.js +20 -4
  143. package/dist/query/column-defaults.js.map +1 -1
  144. package/dist/query/cursor.d.ts +3 -1
  145. package/dist/query/cursor.d.ts.map +1 -1
  146. package/dist/query/cursor.js +45 -14
  147. package/dist/query/cursor.js.map +1 -1
  148. package/dist/query/db-now.d.ts +8 -0
  149. package/dist/query/db-now.d.ts.map +1 -0
  150. package/dist/query/db-now.js +7 -0
  151. package/dist/query/db-now.js.map +1 -0
  152. package/dist/query/serialize/create-sql-serializer.js +3 -2
  153. package/dist/query/serialize/create-sql-serializer.js.map +1 -1
  154. package/dist/query/serialize/dialect/mysql-serializer.js +12 -6
  155. package/dist/query/serialize/dialect/mysql-serializer.js.map +1 -1
  156. package/dist/query/serialize/dialect/postgres-serializer.js +25 -7
  157. package/dist/query/serialize/dialect/postgres-serializer.js.map +1 -1
  158. package/dist/query/serialize/dialect/sqlite-serializer.js +55 -11
  159. package/dist/query/serialize/dialect/sqlite-serializer.js.map +1 -1
  160. package/dist/query/serialize/sql-serializer.js +2 -2
  161. package/dist/query/serialize/sql-serializer.js.map +1 -1
  162. package/dist/query/simple-query-interface.d.ts +6 -1
  163. package/dist/query/simple-query-interface.d.ts.map +1 -1
  164. package/dist/query/unit-of-work/execute-unit-of-work.d.ts +351 -100
  165. package/dist/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -1
  166. package/dist/query/unit-of-work/execute-unit-of-work.js +440 -267
  167. package/dist/query/unit-of-work/execute-unit-of-work.js.map +1 -1
  168. package/dist/query/unit-of-work/unit-of-work.d.ts +67 -22
  169. package/dist/query/unit-of-work/unit-of-work.d.ts.map +1 -1
  170. package/dist/query/unit-of-work/unit-of-work.js +110 -13
  171. package/dist/query/unit-of-work/unit-of-work.js.map +1 -1
  172. package/dist/query/value-decoding.js +8 -5
  173. package/dist/query/value-decoding.js.map +1 -1
  174. package/dist/query/value-encoding.js +29 -9
  175. package/dist/query/value-encoding.js.map +1 -1
  176. package/dist/schema/create.d.ts +40 -14
  177. package/dist/schema/create.d.ts.map +1 -1
  178. package/dist/schema/create.js +82 -42
  179. package/dist/schema/create.js.map +1 -1
  180. package/dist/schema/generate-id.d.ts +20 -0
  181. package/dist/schema/generate-id.d.ts.map +1 -0
  182. package/dist/schema/generate-id.js +28 -0
  183. package/dist/schema/generate-id.js.map +1 -0
  184. package/dist/schema/type-conversion/create-sql-type-mapper.js +3 -2
  185. package/dist/schema/type-conversion/create-sql-type-mapper.js.map +1 -1
  186. package/dist/schema/type-conversion/dialect/sqlite.js +9 -0
  187. package/dist/schema/type-conversion/dialect/sqlite.js.map +1 -1
  188. package/dist/schema/validator.d.ts +10 -0
  189. package/dist/schema/validator.d.ts.map +1 -0
  190. package/dist/schema/validator.js +123 -0
  191. package/dist/schema/validator.js.map +1 -0
  192. package/dist/schema-output/drizzle.d.ts +30 -0
  193. package/dist/schema-output/drizzle.d.ts.map +1 -0
  194. package/dist/{adapters/drizzle/generate.js → schema-output/drizzle.js} +82 -56
  195. package/dist/schema-output/drizzle.js.map +1 -0
  196. package/dist/schema-output/prisma.d.ts +17 -0
  197. package/dist/schema-output/prisma.d.ts.map +1 -0
  198. package/dist/schema-output/prisma.js +296 -0
  199. package/dist/schema-output/prisma.js.map +1 -0
  200. package/dist/util/default-database-adapter.js +61 -0
  201. package/dist/util/default-database-adapter.js.map +1 -0
  202. package/dist/with-database.d.ts +1 -1
  203. package/dist/with-database.d.ts.map +1 -1
  204. package/dist/with-database.js +12 -3
  205. package/dist/with-database.js.map +1 -1
  206. package/package.json +43 -28
  207. package/src/adapters/adapters.ts +30 -24
  208. package/src/adapters/drizzle/migrate-drizzle.test.ts +54 -33
  209. package/src/adapters/drizzle/migration-parity-drizzle-kit.test.ts +599 -0
  210. package/src/adapters/drizzle/test-utils.ts +12 -8
  211. package/src/adapters/generic-sql/driver-config.ts +38 -0
  212. package/src/adapters/generic-sql/generic-sql-adapter.test.ts +5 -5
  213. package/src/adapters/generic-sql/generic-sql-adapter.ts +110 -24
  214. package/src/adapters/generic-sql/generic-sql-uow-executor.test.ts +54 -0
  215. package/src/adapters/generic-sql/generic-sql-uow-executor.ts +231 -3
  216. package/src/adapters/generic-sql/migration/adapter-migration-parity.test.ts +118 -0
  217. package/src/adapters/generic-sql/migration/dialect/mysql.test.ts +26 -8
  218. package/src/adapters/generic-sql/migration/dialect/mysql.ts +46 -8
  219. package/src/adapters/generic-sql/migration/dialect/postgres.test.ts +25 -7
  220. package/src/adapters/generic-sql/migration/dialect/postgres.ts +8 -4
  221. package/src/adapters/generic-sql/migration/dialect/sqlite.test.ts +47 -8
  222. package/src/adapters/generic-sql/migration/dialect/sqlite.ts +27 -12
  223. package/src/adapters/generic-sql/migration/prepared-migrations.test.ts +128 -39
  224. package/src/adapters/generic-sql/migration/prepared-migrations.ts +15 -8
  225. package/src/adapters/generic-sql/migration/sql-generator.ts +142 -65
  226. package/src/adapters/generic-sql/query/create-sql-query-compiler.ts +9 -6
  227. package/src/adapters/generic-sql/query/cursor-utils.test.ts +271 -0
  228. package/src/adapters/generic-sql/query/cursor-utils.ts +41 -6
  229. package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.test.ts +27 -27
  230. package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.ts +38 -24
  231. package/src/adapters/generic-sql/query/select-builder.test.ts +15 -11
  232. package/src/adapters/generic-sql/query/select-builder.ts +6 -2
  233. package/src/adapters/generic-sql/query/sql-query-compiler.test.ts +52 -2
  234. package/src/adapters/generic-sql/query/sql-query-compiler.ts +50 -15
  235. package/src/adapters/generic-sql/query/where-builder.test.ts +91 -17
  236. package/src/adapters/generic-sql/query/where-builder.ts +90 -38
  237. package/src/adapters/{kysely/kysely-adapter-pglite.test.ts → generic-sql/sql-adapter-pglite-migrations.test.ts} +6 -6
  238. package/src/adapters/generic-sql/sql-adapter-pglite-pagination.test.ts +806 -0
  239. package/src/adapters/{drizzle/drizzle-adapter-pglite.test.ts → generic-sql/sql-adapter-pglite-queries.test.ts} +11 -11
  240. package/src/adapters/generic-sql/{test/generic-drizzle-adapter-sqlite3.test.ts → sql-adapter-sqlite3-driver.test.ts} +49 -35
  241. package/src/adapters/{drizzle/drizzle-adapter-sqlite3.test.ts → generic-sql/sql-adapter-sqlite3-uow.test.ts} +48 -32
  242. package/src/adapters/{kysely/kysely-adapter-sqlocal.test.ts → generic-sql/sql-adapter-sqlocal.test.ts} +6 -6
  243. package/src/adapters/generic-sql/sqlite-storage.ts +20 -0
  244. package/src/adapters/generic-sql/uow-decoder.test.ts +1 -1
  245. package/src/adapters/generic-sql/uow-decoder.ts +21 -3
  246. package/src/adapters/generic-sql/uow-encoder.test.ts +33 -2
  247. package/src/adapters/generic-sql/uow-encoder.ts +50 -11
  248. package/src/adapters/in-memory/condition-evaluator.test.ts +193 -0
  249. package/src/adapters/in-memory/condition-evaluator.ts +275 -0
  250. package/src/adapters/in-memory/errors.ts +20 -0
  251. package/src/adapters/in-memory/in-memory-adapter.ts +277 -0
  252. package/src/adapters/in-memory/in-memory-uow.mutations.test.ts +296 -0
  253. package/src/adapters/in-memory/in-memory-uow.retrieval.test.ts +100 -0
  254. package/src/adapters/in-memory/in-memory-uow.ts +1348 -0
  255. package/src/adapters/in-memory/index.ts +3 -0
  256. package/src/adapters/in-memory/options.test.ts +41 -0
  257. package/src/adapters/in-memory/options.ts +87 -0
  258. package/src/adapters/in-memory/reference-resolution.test.ts +50 -0
  259. package/src/adapters/in-memory/reference-resolution.ts +67 -0
  260. package/src/adapters/in-memory/sorted-array-index.test.ts +123 -0
  261. package/src/adapters/in-memory/sorted-array-index.ts +228 -0
  262. package/src/adapters/in-memory/store.test.ts +68 -0
  263. package/src/adapters/in-memory/store.ts +145 -0
  264. package/src/adapters/in-memory/value-comparison.ts +53 -0
  265. package/src/adapters/in-memory/value-normalization.test.ts +57 -0
  266. package/src/adapters/prisma/prisma-adapter-sqlite3.test.ts +1163 -0
  267. package/src/adapters/shared/from-unit-of-work-compiler.ts +3 -1
  268. package/src/adapters/shared/uow-operation-compiler.ts +26 -16
  269. package/src/adapters/sql/index.ts +12 -0
  270. package/src/db-fragment-definition-builder.test.ts +88 -54
  271. package/src/db-fragment-definition-builder.ts +201 -322
  272. package/src/db-fragment-instantiator.test.ts +169 -101
  273. package/src/db-fragment-integration.test.ts +301 -149
  274. package/src/dispatchers/cloudflare-do/index.test.ts +73 -0
  275. package/src/dispatchers/cloudflare-do/index.ts +104 -0
  276. package/src/dispatchers/node/index.test.ts +91 -0
  277. package/src/dispatchers/node/index.ts +87 -0
  278. package/src/fragments/internal-fragment.routes.ts +42 -0
  279. package/src/fragments/internal-fragment.schema.ts +51 -0
  280. package/src/fragments/internal-fragment.test.ts +730 -274
  281. package/src/fragments/internal-fragment.ts +447 -154
  282. package/src/hooks/durable-hooks-processor.test.ts +117 -0
  283. package/src/hooks/durable-hooks-processor.ts +67 -0
  284. package/src/hooks/hooks.test.ts +411 -259
  285. package/src/hooks/hooks.ts +265 -66
  286. package/src/migration-engine/auto-from-schema.test.ts +14 -14
  287. package/src/migration-engine/auto-from-schema.ts +5 -2
  288. package/src/migration-engine/create.test.ts +2 -2
  289. package/src/migration-engine/generation-engine.test.ts +229 -104
  290. package/src/migration-engine/generation-engine.ts +94 -64
  291. package/src/migration-engine/shared.ts +1 -0
  292. package/src/mod.ts +78 -30
  293. package/src/naming/sql-naming.ts +180 -0
  294. package/src/outbox/outbox-builder.ts +241 -0
  295. package/src/outbox/outbox.test.ts +253 -0
  296. package/src/outbox/outbox.ts +137 -0
  297. package/src/query/column-defaults.ts +41 -3
  298. package/src/query/condition-builder.test.ts +3 -3
  299. package/src/query/cursor.test.ts +116 -18
  300. package/src/query/cursor.ts +75 -26
  301. package/src/query/db-now.ts +6 -0
  302. package/src/query/query-type.test.ts +2 -2
  303. package/src/query/serialize/create-sql-serializer.ts +7 -2
  304. package/src/query/serialize/dialect/mysql-serializer.ts +12 -4
  305. package/src/query/serialize/dialect/postgres-serializer.ts +34 -4
  306. package/src/query/serialize/dialect/sqlite-serializer.test.ts +51 -1
  307. package/src/query/serialize/dialect/sqlite-serializer.ts +92 -9
  308. package/src/query/serialize/sql-serializer.ts +4 -4
  309. package/src/query/simple-query-interface.ts +5 -0
  310. package/src/query/unit-of-work/execute-unit-of-work.test.ts +1512 -1458
  311. package/src/query/unit-of-work/execute-unit-of-work.ts +1708 -596
  312. package/src/query/unit-of-work/tx-builder.test.ts +1041 -0
  313. package/src/query/unit-of-work/unit-of-work-coordinator.test.ts +32 -32
  314. package/src/query/unit-of-work/unit-of-work-types.test.ts +1 -1
  315. package/src/query/unit-of-work/unit-of-work.test.ts +231 -36
  316. package/src/query/unit-of-work/unit-of-work.ts +229 -31
  317. package/src/query/value-decoding.test.ts +13 -2
  318. package/src/query/value-decoding.ts +17 -4
  319. package/src/query/value-encoding.test.ts +85 -2
  320. package/src/query/value-encoding.ts +56 -6
  321. package/src/schema/create.test.ts +129 -42
  322. package/src/schema/create.ts +187 -47
  323. package/src/schema/generate-id.test.ts +57 -0
  324. package/src/schema/generate-id.ts +38 -0
  325. package/src/schema/serialize.test.ts +14 -2
  326. package/src/schema/type-conversion/create-sql-type-mapper.ts +7 -2
  327. package/src/schema/type-conversion/dialect/sqlite.ts +18 -0
  328. package/src/schema/type-conversion/type-mapping.test.ts +25 -1
  329. package/src/schema/validator.test.ts +197 -0
  330. package/src/schema/validator.ts +231 -0
  331. package/src/{adapters/drizzle/generate.test.ts → schema-output/drizzle.test.ts} +179 -129
  332. package/src/{adapters/drizzle/generate.ts → schema-output/drizzle.ts} +143 -93
  333. package/src/schema-output/prisma.test.ts +536 -0
  334. package/src/schema-output/prisma.ts +573 -0
  335. package/src/util/default-database-adapter.ts +106 -0
  336. package/src/with-database.ts +22 -3
  337. package/tsdown.config.ts +6 -4
  338. package/dist/adapters/drizzle/drizzle-adapter.d.ts +0 -20
  339. package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +0 -1
  340. package/dist/adapters/drizzle/drizzle-adapter.js +0 -27
  341. package/dist/adapters/drizzle/drizzle-adapter.js.map +0 -1
  342. package/dist/adapters/drizzle/generate.d.ts +0 -30
  343. package/dist/adapters/drizzle/generate.d.ts.map +0 -1
  344. package/dist/adapters/drizzle/generate.js.map +0 -1
  345. package/dist/adapters/kysely/kysely-adapter.d.ts +0 -19
  346. package/dist/adapters/kysely/kysely-adapter.d.ts.map +0 -1
  347. package/dist/adapters/kysely/kysely-adapter.js +0 -17
  348. package/dist/adapters/kysely/kysely-adapter.js.map +0 -1
  349. package/dist/adapters/shared/table-name-mapper.d.ts +0 -12
  350. package/dist/adapters/shared/table-name-mapper.d.ts.map +0 -1
  351. package/dist/adapters/shared/table-name-mapper.js +0 -43
  352. package/dist/adapters/shared/table-name-mapper.js.map +0 -1
  353. package/dist/node_modules/.pnpm/rou3@0.7.10/node_modules/rou3/dist/index.js.map +0 -1
  354. package/dist/schema-generator/schema-generator.d.ts +0 -15
  355. package/dist/schema-generator/schema-generator.d.ts.map +0 -1
  356. package/src/adapters/drizzle/drizzle-adapter.ts +0 -39
  357. package/src/adapters/kysely/kysely-adapter.ts +0 -27
  358. package/src/adapters/shared/table-name-mapper.ts +0 -50
  359. package/src/schema-generator/schema-generator.ts +0 -12
  360. package/src/shared/config.ts +0 -10
  361. package/src/shared/connection-pool.ts +0 -24
  362. package/src/shared/prisma.ts +0 -45
@@ -5,9 +5,14 @@ import { SQLiteSQLGenerator } from "./dialect/sqlite";
5
5
  import { PostgresSQLGenerator } from "./dialect/postgres";
6
6
  import { MySQLSQLGenerator } from "./dialect/mysql";
7
7
  import { createPreparedMigrations } from "./prepared-migrations";
8
- import { createTableNameMapper } from "../../shared/table-name-mapper";
9
-
10
- const testSchema = schema((s) => {
8
+ import {
9
+ createNamingResolver,
10
+ schemaNamingStrategy,
11
+ suffixNamingStrategy,
12
+ type SqlNamingStrategy,
13
+ } from "../../../naming/sql-naming";
14
+
15
+ const testSchema = schema("test", (s) => {
11
16
  return s
12
17
  .addTable("users", (t) => {
13
18
  return t.addColumn("id", idColumn()).addColumn("name", column("string"));
@@ -31,9 +36,12 @@ const testSchema = schema((s) => {
31
36
  });
32
37
  });
33
38
 
39
+ const resolver = createNamingResolver(testSchema, "test", suffixNamingStrategy);
40
+
34
41
  describe("PreparedMigrations - PostgreSQL", () => {
35
42
  const coldKysely = createColdKysely("postgresql");
36
43
  const generator = new PostgresSQLGenerator(coldKysely, "postgresql");
44
+ const resolver = createNamingResolver(testSchema, "test", suffixNamingStrategy);
37
45
 
38
46
  test("compile migration 0 -> 1 (create users table)", () => {
39
47
  const statements = generator.compile(
@@ -55,7 +63,7 @@ describe("PreparedMigrations - PostgreSQL", () => {
55
63
  ],
56
64
  },
57
65
  ],
58
- { toPhysical: (n) => `${n}_test`, toLogical: (n) => n.replace("_test", "") },
66
+ resolver,
59
67
  );
60
68
 
61
69
  expect(statements.length).toBe(1);
@@ -78,7 +86,7 @@ describe("PreparedMigrations - PostgreSQL", () => {
78
86
  ],
79
87
  },
80
88
  ],
81
- { toPhysical: (n) => `${n}_test`, toLogical: (n) => n.replace("_test", "") },
89
+ resolver,
82
90
  );
83
91
 
84
92
  expect(statements.length).toBe(1);
@@ -98,12 +106,12 @@ describe("PreparedMigrations - PostgreSQL", () => {
98
106
  unique: false,
99
107
  },
100
108
  ],
101
- { toPhysical: (n) => `${n}_test`, toLogical: (n) => n.replace("_test", "") },
109
+ resolver,
102
110
  );
103
111
 
104
112
  expect(statements.length).toBe(1);
105
113
  expect(statements[0].sql).toMatchInlineSnapshot(
106
- `"create index "name_idx_users_test" on "users_test" ("name")"`,
114
+ `"create index "idx_users_name_idx_test_92db5054" on "users_test" ("name")"`,
107
115
  );
108
116
  });
109
117
 
@@ -122,11 +130,92 @@ describe("PreparedMigrations - PostgreSQL", () => {
122
130
  `"update "fragno_db_settings" set "value" = '2' where "key" = 'test_namespace.schema_version'"`,
123
131
  );
124
132
  });
133
+
134
+ test("compile uses custom naming strategy for columns and constraints", () => {
135
+ const customStrategy: SqlNamingStrategy = {
136
+ namespaceScope: "suffix",
137
+ namespaceToSchema: (namespace) => namespace,
138
+ tableName: (logicalTable, namespace) =>
139
+ namespace ? `tbl_${logicalTable}_${namespace}` : `tbl_${logicalTable}`,
140
+ columnName: (logicalColumn) => `col_${logicalColumn}`,
141
+ indexName: (logicalIndex, _table, namespace) =>
142
+ namespace ? `idx_custom_${logicalIndex}_${namespace}` : `idx_custom_${logicalIndex}`,
143
+ uniqueIndexName: (logicalIndex, _table, namespace) =>
144
+ namespace ? `uidx_custom_${logicalIndex}_${namespace}` : `uidx_custom_${logicalIndex}`,
145
+ foreignKeyName: ({ referenceName, namespace }) =>
146
+ namespace ? `fk_custom_${referenceName}_${namespace}` : `fk_custom_${referenceName}`,
147
+ };
148
+ const customResolver = createNamingResolver(testSchema, "custom", customStrategy);
149
+
150
+ const statements = generator.compile(
151
+ [
152
+ {
153
+ type: "create-table",
154
+ name: "users",
155
+ columns: [
156
+ { name: "id", type: "string", isNullable: false, role: "external-id" },
157
+ { name: "name", type: "string", isNullable: false, role: "regular" },
158
+ ],
159
+ },
160
+ {
161
+ type: "create-table",
162
+ name: "posts",
163
+ columns: [
164
+ { name: "id", type: "string", isNullable: false, role: "external-id" },
165
+ { name: "authorId", type: "bigint", isNullable: false, role: "reference" },
166
+ ],
167
+ },
168
+ {
169
+ type: "add-index",
170
+ table: "users",
171
+ name: "name_idx",
172
+ columns: ["name"],
173
+ unique: false,
174
+ },
175
+ {
176
+ type: "add-foreign-key",
177
+ table: "posts",
178
+ value: {
179
+ name: "author",
180
+ columns: ["authorId"],
181
+ referencedTable: "users",
182
+ referencedColumns: ["_internalId"],
183
+ },
184
+ },
185
+ ],
186
+ customResolver,
187
+ );
188
+
189
+ const sql = statements.map((stmt) => stmt.sql).join("\\n");
190
+ expect(sql).toContain(`create table "tbl_users_custom"`);
191
+ expect(sql).toContain(`"col_name"`);
192
+ expect(sql).toContain(`create index "idx_custom_name_idx_custom"`);
193
+ expect(sql).toContain(`add constraint "fk_custom_author_custom"`);
194
+ });
195
+
196
+ test("compile uses schema naming strategy for schema-scoped namespaces", () => {
197
+ const schemaResolver = createNamingResolver(testSchema, "tenant", schemaNamingStrategy);
198
+ const statements = generator.compile(
199
+ [
200
+ {
201
+ type: "create-table",
202
+ name: "users",
203
+ columns: [{ name: "id", type: "string", isNullable: false, role: "external-id" }],
204
+ },
205
+ ],
206
+ schemaResolver,
207
+ );
208
+
209
+ const sql = statements.map((stmt) => stmt.sql).join("\\n");
210
+ expect(sql).toContain(`CREATE SCHEMA IF NOT EXISTS "tenant"`);
211
+ expect(sql).toContain(`create table "tenant"."users"`);
212
+ });
125
213
  });
126
214
 
127
215
  describe("PreparedMigrations - SQLite FK Merging", () => {
128
216
  const coldKysely = createColdKysely("sqlite");
129
217
  const generator = new SQLiteSQLGenerator(coldKysely, "sqlite");
218
+ const resolver = createNamingResolver(testSchema, "test", suffixNamingStrategy);
130
219
 
131
220
  test("preprocess merges FK into create-table", () => {
132
221
  const operations = generator.preprocess([
@@ -191,7 +280,7 @@ describe("PreparedMigrations - SQLite FK Merging", () => {
191
280
  },
192
281
  },
193
282
  ],
194
- { toPhysical: (n) => `${n}_test`, toLogical: (n) => n.replace("_test", "") },
283
+ resolver,
195
284
  );
196
285
 
197
286
  expect(statements.length).toBe(3);
@@ -200,7 +289,7 @@ describe("PreparedMigrations - SQLite FK Merging", () => {
200
289
  `"create table "users_test" ("id" text not null unique)"`,
201
290
  );
202
291
  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)"`,
292
+ `"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
293
  );
205
294
  });
206
295
 
@@ -286,7 +375,7 @@ describe("PreparedMigrations - MySQL", () => {
286
375
  expect(statements.length).toBe(3);
287
376
  expect(statements[0].sql).toMatchInlineSnapshot(`"SET FOREIGN_KEY_CHECKS = 0"`);
288
377
  expect(statements[1].sql).toMatchInlineSnapshot(
289
- `"create table \`users\` (\`_internalId\` bigint not null primary key auto_increment)"`,
378
+ `"create table \`users\` (\`_internalId\` bigint not null auto_increment, constraint \`users__internalId\` primary key (\`_internalId\`))"`,
290
379
  );
291
380
  expect(statements[2].sql).toMatchInlineSnapshot(`"SET FOREIGN_KEY_CHECKS = 1"`);
292
381
  });
@@ -335,7 +424,7 @@ describe("PreparedMigrations - Integration", () => {
335
424
  schema: testSchema,
336
425
  namespace: "test",
337
426
  database: "postgresql",
338
- mapper: createTableNameMapper("test"),
427
+ resolver,
339
428
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
340
429
  driver: mockDriver as any,
341
430
  });
@@ -379,7 +468,7 @@ describe("PreparedMigrations - Integration", () => {
379
468
  schema: testSchema,
380
469
  namespace: "test",
381
470
  database: "postgresql",
382
- mapper: createTableNameMapper("test"),
471
+ resolver,
383
472
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
384
473
  driver: mockDriver as any,
385
474
  });
@@ -404,7 +493,7 @@ describe("PreparedMigrations - Integration", () => {
404
493
  schema: testSchema,
405
494
  namespace: "test",
406
495
  database: "postgresql",
407
- mapper: createTableNameMapper("test"),
496
+ resolver,
408
497
  });
409
498
 
410
499
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -426,7 +515,7 @@ describe("PreparedMigrations - Integration", () => {
426
515
  schema: testSchema,
427
516
  namespace: "test",
428
517
  database: "postgresql",
429
- mapper: createTableNameMapper("test"),
518
+ resolver,
430
519
  });
431
520
 
432
521
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -462,7 +551,7 @@ describe("PreparedMigrations - Integration", () => {
462
551
  schema: testSchema,
463
552
  namespace: "test",
464
553
  database: "postgresql",
465
- mapper: createTableNameMapper("test"),
554
+ resolver,
466
555
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
467
556
  driver: mockDriver as any,
468
557
  });
@@ -478,7 +567,7 @@ describe("PreparedMigrations - Integration", () => {
478
567
  schema: testSchema,
479
568
  namespace: "test",
480
569
  database: "postgresql",
481
- mapper: createTableNameMapper("test"),
570
+ resolver,
482
571
  // No driver provided
483
572
  });
484
573
 
@@ -494,7 +583,7 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
494
583
  schema: testSchema,
495
584
  namespace: "test",
496
585
  database: "postgresql",
497
- mapper: createTableNameMapper("test"),
586
+ resolver,
498
587
  });
499
588
 
500
589
  const sql = prepared.getSQL(0, 2, { updateVersionInMigration: true });
@@ -503,9 +592,9 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
503
592
 
504
593
  alter table "users_test" add column "age" integer;
505
594
 
506
- create index "name_idx_users_test" on "users_test" ("name");
595
+ create index "idx_users_name_idx_test_92db5054" on "users_test" ("name");
507
596
 
508
- create index "age_idx_users_test" on "users_test" ("age");
597
+ create index "idx_users_age_idx_test_1c69311d" on "users_test" ("age");
509
598
 
510
599
  insert into "fragno_db_settings" ("id", "key", "value") values ('BflimUWc1NbCMMDD9SM3gQ', 'test.schema_version', '2');"
511
600
  `);
@@ -516,7 +605,7 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
516
605
  schema: testSchema,
517
606
  namespace: "test",
518
607
  database: "postgresql",
519
- mapper: createTableNameMapper("test"),
608
+ resolver,
520
609
  });
521
610
 
522
611
  const sql = prepared.getSQL(0, 4, { updateVersionInMigration: true });
@@ -525,13 +614,13 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
525
614
 
526
615
  alter table "users_test" add column "age" integer;
527
616
 
528
- create index "name_idx_users_test" on "users_test" ("name");
617
+ create index "idx_users_name_idx_test_92db5054" on "users_test" ("name");
529
618
 
530
- create index "age_idx_users_test" on "users_test" ("age");
619
+ create index "idx_users_age_idx_test_1c69311d" on "users_test" ("age");
531
620
 
532
621
  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);
533
622
 
534
- alter table "posts_test" add constraint "posts_users_author_fk" foreign key ("authorId") references "users_test" ("_internalId") on delete restrict on update restrict;
623
+ 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
624
 
536
625
  insert into "fragno_db_settings" ("id", "key", "value") values ('BflimUWc1NbCMMDD9SM3gQ', 'test.schema_version', '4');"
537
626
  `);
@@ -542,16 +631,16 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
542
631
  schema: testSchema,
543
632
  namespace: "test",
544
633
  database: "postgresql",
545
- mapper: createTableNameMapper("test"),
634
+ resolver,
546
635
  });
547
636
 
548
637
  const sql = prepared.getSQL(1, 2, { updateVersionInMigration: true });
549
638
  expect(sql).toMatchInlineSnapshot(`
550
639
  "alter table "users_test" add column "age" integer;
551
640
 
552
- create index "name_idx_users_test" on "users_test" ("name");
641
+ create index "idx_users_name_idx_test_92db5054" on "users_test" ("name");
553
642
 
554
- create index "age_idx_users_test" on "users_test" ("age");
643
+ create index "idx_users_age_idx_test_1c69311d" on "users_test" ("age");
555
644
 
556
645
  update "fragno_db_settings" set "value" = '2' where "key" = 'test.schema_version';"
557
646
  `);
@@ -562,7 +651,7 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
562
651
  schema: testSchema,
563
652
  namespace: "test",
564
653
  database: "postgresql",
565
- mapper: createTableNameMapper("test"),
654
+ resolver,
566
655
  });
567
656
 
568
657
  const sql = prepared.getSQL(2, 3, { updateVersionInMigration: true });
@@ -578,7 +667,7 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
578
667
  schema: testSchema,
579
668
  namespace: "test",
580
669
  database: "sqlite",
581
- mapper: createTableNameMapper("test"),
670
+ resolver,
582
671
  });
583
672
 
584
673
  const sql = prepared.getSQL(0, 4, { updateVersionInMigration: true });
@@ -589,11 +678,11 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
589
678
 
590
679
  alter table "users_test" add column "age" integer;
591
680
 
592
- create index "name_idx_users_test" on "users_test" ("name");
681
+ create index "idx_users_name_idx_test_92db5054" on "users_test" ("name");
593
682
 
594
- create index "age_idx_users_test" on "users_test" ("age");
683
+ create index "idx_users_age_idx_test_1c69311d" on "users_test" ("age");
595
684
 
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);
685
+ 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
686
 
598
687
  insert into "fragno_db_settings" ("id", "key", "value") values ('BflimUWc1NbCMMDD9SM3gQ', 'test.schema_version', '4');"
599
688
  `);
@@ -604,24 +693,24 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
604
693
  schema: testSchema,
605
694
  namespace: "test",
606
695
  database: "mysql",
607
- mapper: createTableNameMapper("test"),
696
+ resolver,
608
697
  });
609
698
 
610
699
  const sql = prepared.getSQL(0, 4, { updateVersionInMigration: true });
611
700
  expect(sql).toMatchInlineSnapshot(`
612
701
  "SET FOREIGN_KEY_CHECKS = 0;
613
702
 
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);
703
+ create table \`users_test\` (\`id\` varchar(30) 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
704
 
616
705
  alter table \`users_test\` add column \`age\` integer;
617
706
 
618
- create index \`name_idx_users_test\` on \`users_test\` (\`name\`);
707
+ create index \`idx_users_name_idx_test_92db5054\` on \`users_test\` (\`name\`);
619
708
 
620
- create index \`age_idx_users_test\` on \`users_test\` (\`age\`);
709
+ create index \`idx_users_age_idx_test_1c69311d\` on \`users_test\` (\`age\`);
621
710
 
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);
711
+ create table \`posts_test\` (\`id\` varchar(30) 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
712
 
624
- alter table \`posts_test\` add constraint \`posts_users_author_fk\` foreign key (\`authorId\`) references \`users_test\` (\`_internalId\`) on delete restrict on update restrict;
713
+ 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
714
 
626
715
  SET FOREIGN_KEY_CHECKS = 1;
627
716
 
@@ -634,7 +723,7 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
634
723
  schema: testSchema,
635
724
  namespace: "test",
636
725
  database: "postgresql",
637
- mapper: createTableNameMapper("test"),
726
+ resolver,
638
727
  });
639
728
 
640
729
  const compiled = prepared.compile(0, 2, { updateVersionInMigration: true });
@@ -649,7 +738,7 @@ describe("PreparedMigrations - Multi-step Migration Scenarios", () => {
649
738
  schema: testSchema,
650
739
  namespace: "test",
651
740
  database: "postgresql",
652
- mapper: createTableNameMapper("test"),
741
+ resolver,
653
742
  });
654
743
 
655
744
  const sql = prepared.getSQL(0, 1, { updateVersionInMigration: false });
@@ -1,6 +1,6 @@
1
1
  import type { AnySchema } from "../../../schema/create";
2
2
  import type { SqlDriverAdapter } from "../../../sql-driver/sql-driver-adapter";
3
- import type { TableNameMapper } from "../../shared/table-name-mapper";
3
+ import type { NamingResolver } from "../../../naming/sql-naming";
4
4
  import { generateMigrationFromSchema } from "../../../migration-engine/auto-from-schema";
5
5
  import { createColdKysely } from "./cold-kysely";
6
6
  import { type SQLGenerator } from "./sql-generator";
@@ -8,8 +8,9 @@ import { SQLiteSQLGenerator } from "./dialect/sqlite";
8
8
  import { PostgresSQLGenerator } from "./dialect/postgres";
9
9
  import { MySQLSQLGenerator } from "./dialect/mysql";
10
10
  import { executeMigration, type CompiledMigration } from "./executor";
11
- import type { SupportedDatabase } from "../driver-config";
11
+ import type { DriverConfig, SupportedDatabase } from "../driver-config";
12
12
  import type { Kysely } from "kysely";
13
+ import type { SQLiteStorageMode } from "../sqlite-storage";
13
14
  /**
14
15
  * Options for executing a migration.
15
16
  */
@@ -85,7 +86,9 @@ export interface PreparedMigrationsConfig {
85
86
  schema: AnySchema;
86
87
  namespace: string;
87
88
  database: SupportedDatabase;
88
- mapper?: TableNameMapper;
89
+ driverConfig?: DriverConfig;
90
+ sqliteStorageMode?: SQLiteStorageMode;
91
+ resolver?: NamingResolver;
89
92
  driver?: SqlDriverAdapter;
90
93
  /**
91
94
  * Whether to automatically update the schema version in the database after migration.
@@ -102,6 +105,8 @@ export function createPreparedMigrations(config: PreparedMigrationsConfig): Prep
102
105
  schema,
103
106
  namespace,
104
107
  database,
108
+ driverConfig,
109
+ sqliteStorageMode,
105
110
  driver,
106
111
  updateVersionInMigration: defaultUpdateVersion = true,
107
112
  } = config;
@@ -110,7 +115,7 @@ export function createPreparedMigrations(config: PreparedMigrationsConfig): Prep
110
115
  const coldKysely = createColdKysely(database);
111
116
 
112
117
  // Create the appropriate SQL generator for the database
113
- const generator = createSQLGenerator(database, coldKysely);
118
+ const generator = createSQLGenerator(database, coldKysely, driverConfig, sqliteStorageMode);
114
119
 
115
120
  /**
116
121
  * Internal method to compile a migration for a given version range.
@@ -140,7 +145,7 @@ export function createPreparedMigrations(config: PreparedMigrationsConfig): Prep
140
145
  const operations = generateMigrationFromSchema(schema, fromVersion, toVersion);
141
146
 
142
147
  // Phase 2: Compile operations to SQL
143
- const statements = generator.compile(operations, config.mapper);
148
+ const statements = generator.compile(operations, config.resolver);
144
149
 
145
150
  // Add version update SQL if requested
146
151
  if (updateVersionInMigration && toVersion !== fromVersion) {
@@ -202,13 +207,15 @@ function createSQLGenerator(
202
207
  database: SupportedDatabase,
203
208
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
204
209
  coldKysely: Kysely<any>,
210
+ driverConfig?: DriverConfig,
211
+ sqliteStorageMode?: SQLiteStorageMode,
205
212
  ): SQLGenerator {
206
213
  switch (database) {
207
214
  case "sqlite":
208
- return new SQLiteSQLGenerator(coldKysely, database);
215
+ return new SQLiteSQLGenerator(coldKysely, database, driverConfig, sqliteStorageMode);
209
216
  case "postgresql":
210
- return new PostgresSQLGenerator(coldKysely, database);
217
+ return new PostgresSQLGenerator(coldKysely, database, driverConfig, sqliteStorageMode);
211
218
  case "mysql":
212
- return new MySQLSQLGenerator(coldKysely, database);
219
+ return new MySQLSQLGenerator(coldKysely, database, driverConfig, sqliteStorageMode);
213
220
  }
214
221
  }