@fragno-dev/db 0.3.0 → 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 (516) hide show
  1. package/.turbo/turbo-build.log +327 -160
  2. package/CHANGELOG.md +74 -0
  3. package/README.md +24 -0
  4. package/dist/adapters/adapters.d.ts +1 -1
  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/generic-sql-adapter.d.ts +0 -3
  8. package/dist/adapters/generic-sql/generic-sql-adapter.d.ts.map +1 -1
  9. package/dist/adapters/generic-sql/generic-sql-adapter.js +11 -12
  10. package/dist/adapters/generic-sql/generic-sql-adapter.js.map +1 -1
  11. package/dist/adapters/generic-sql/generic-sql-uow-executor.js +46 -6
  12. package/dist/adapters/generic-sql/generic-sql-uow-executor.js.map +1 -1
  13. package/dist/adapters/generic-sql/migration/cold-kysely.js.map +1 -1
  14. package/dist/adapters/generic-sql/migration/dialect/mysql.js +1 -1
  15. package/dist/adapters/generic-sql/migration/dialect/mysql.js.map +1 -1
  16. package/dist/adapters/generic-sql/migration/dialect/postgres.js +1 -1
  17. package/dist/adapters/generic-sql/migration/dialect/postgres.js.map +1 -1
  18. package/dist/adapters/generic-sql/migration/dialect/sqlite.js +185 -19
  19. package/dist/adapters/generic-sql/migration/dialect/sqlite.js.map +1 -1
  20. package/dist/adapters/generic-sql/migration/executor.d.ts.map +1 -1
  21. package/dist/adapters/generic-sql/migration/executor.js +30 -3
  22. package/dist/adapters/generic-sql/migration/executor.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 +3 -3
  25. package/dist/adapters/generic-sql/migration/prepared-migrations.js.map +1 -1
  26. package/dist/adapters/generic-sql/migration/sql-generator.js +1 -1
  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 +1 -1
  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.map +1 -1
  31. package/dist/adapters/generic-sql/query/db-now-sql.js +27 -0
  32. package/dist/adapters/generic-sql/query/db-now-sql.js.map +1 -0
  33. package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js +9 -6
  34. package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js.map +1 -1
  35. package/dist/adapters/generic-sql/query/select-builder.js.map +1 -1
  36. package/dist/adapters/generic-sql/query/sql-query-compiler.js +37 -9
  37. package/dist/adapters/generic-sql/query/sql-query-compiler.js.map +1 -1
  38. package/dist/adapters/generic-sql/query/where-builder.js +24 -20
  39. package/dist/adapters/generic-sql/query/where-builder.js.map +1 -1
  40. package/dist/adapters/generic-sql/uow-decoder.js +1 -1
  41. package/dist/adapters/generic-sql/uow-decoder.js.map +1 -1
  42. package/dist/adapters/generic-sql/uow-encoder.js +8 -9
  43. package/dist/adapters/generic-sql/uow-encoder.js.map +1 -1
  44. package/dist/adapters/in-memory/condition-evaluator.js +10 -6
  45. package/dist/adapters/in-memory/condition-evaluator.js.map +1 -1
  46. package/dist/adapters/in-memory/in-memory-adapter.d.ts.map +1 -1
  47. package/dist/adapters/in-memory/in-memory-adapter.js +45 -25
  48. package/dist/adapters/in-memory/in-memory-adapter.js.map +1 -1
  49. package/dist/adapters/in-memory/in-memory-uow.js +236 -13
  50. package/dist/adapters/in-memory/in-memory-uow.js.map +1 -1
  51. package/dist/adapters/in-memory/options.d.ts +2 -0
  52. package/dist/adapters/in-memory/options.d.ts.map +1 -1
  53. package/dist/adapters/in-memory/options.js +3 -2
  54. package/dist/adapters/in-memory/options.js.map +1 -1
  55. package/dist/adapters/in-memory/reference-resolution.js.map +1 -1
  56. package/dist/adapters/in-memory/store.js +1 -1
  57. package/dist/adapters/in-memory/store.js.map +1 -1
  58. package/dist/adapters/shared/from-unit-of-work-compiler.js +51 -24
  59. package/dist/adapters/shared/from-unit-of-work-compiler.js.map +1 -1
  60. package/dist/adapters/shared/uow-operation-compiler.js.map +1 -1
  61. package/dist/browser/adapters/adapters.d.ts +61 -0
  62. package/dist/browser/adapters/adapters.d.ts.map +1 -0
  63. package/dist/browser/adapters/generic-sql/migration/executor.d.ts +15 -0
  64. package/dist/browser/adapters/generic-sql/migration/executor.d.ts.map +1 -0
  65. package/dist/browser/adapters/generic-sql/migration/prepared-migrations.d.ts +66 -0
  66. package/dist/browser/adapters/generic-sql/migration/prepared-migrations.d.ts.map +1 -0
  67. package/dist/browser/adapters/generic-sql/sqlite-storage.d.ts +11 -0
  68. package/dist/browser/adapters/generic-sql/sqlite-storage.d.ts.map +1 -0
  69. package/dist/browser/adapters/in-memory/in-memory-adapter.d.ts +5 -0
  70. package/dist/browser/adapters/in-memory/index.d.ts +2 -0
  71. package/dist/browser/adapters/in-memory/options.d.ts +1 -0
  72. package/dist/browser/db-fragment-definition-builder.d.ts +237 -0
  73. package/dist/browser/db-fragment-definition-builder.d.ts.map +1 -0
  74. package/dist/browser/durable-hooks.d.ts +3 -0
  75. package/dist/browser/fragments/internal-fragment.d.ts +317 -0
  76. package/dist/browser/fragments/internal-fragment.d.ts.map +1 -0
  77. package/dist/browser/fragments/internal-fragment.schema.d.ts +1 -0
  78. package/dist/browser/hooks/durable-hooks-logger.d.ts +10 -0
  79. package/dist/browser/hooks/durable-hooks-logger.d.ts.map +1 -0
  80. package/dist/browser/hooks/hooks.d.ts +146 -0
  81. package/dist/browser/hooks/hooks.d.ts.map +1 -0
  82. package/dist/browser/id.js +1 -0
  83. package/dist/browser/internal/adapter-registry.d.ts +4 -0
  84. package/dist/browser/internal/outbox-state.d.ts +2 -0
  85. package/dist/browser/mod.d.ts +15 -0
  86. package/dist/browser/mod.d.ts.map +1 -0
  87. package/dist/browser/mod.js +17 -0
  88. package/dist/browser/mod.js.map +1 -0
  89. package/dist/browser/mod2.d.ts +48 -0
  90. package/dist/browser/mod2.d.ts.map +1 -0
  91. package/dist/browser/naming/sql-naming.d.ts +19 -0
  92. package/dist/browser/naming/sql-naming.d.ts.map +1 -0
  93. package/dist/browser/outbox/outbox.d.ts +21 -0
  94. package/dist/browser/outbox/outbox.d.ts.map +1 -0
  95. package/dist/browser/query/column-defaults.js +1 -0
  96. package/dist/browser/query/condition-builder.d.ts +44 -0
  97. package/dist/browser/query/condition-builder.d.ts.map +1 -0
  98. package/dist/browser/query/condition-builder.js +97 -0
  99. package/dist/browser/query/condition-builder.js.map +1 -0
  100. package/dist/browser/query/cursor.d.ts +105 -0
  101. package/dist/browser/query/cursor.d.ts.map +1 -0
  102. package/dist/browser/query/cursor.js +150 -0
  103. package/dist/browser/query/cursor.js.map +1 -0
  104. package/dist/browser/query/db-now.d.ts +22 -0
  105. package/dist/browser/query/db-now.d.ts.map +1 -0
  106. package/dist/browser/query/db-now.js +33 -0
  107. package/dist/browser/query/db-now.js.map +1 -0
  108. package/dist/browser/query/orm/orm.d.ts +18 -0
  109. package/dist/browser/query/orm/orm.d.ts.map +1 -0
  110. package/dist/browser/query/simple-query-interface.d.ts +108 -0
  111. package/dist/browser/query/simple-query-interface.d.ts.map +1 -0
  112. package/dist/browser/query/unit-of-work/execute-unit-of-work.d.ts +423 -0
  113. package/dist/browser/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -0
  114. package/dist/browser/query/unit-of-work/execute-unit-of-work.js +507 -0
  115. package/dist/browser/query/unit-of-work/execute-unit-of-work.js.map +1 -0
  116. package/dist/browser/query/unit-of-work/retry-policy.d.ts +23 -0
  117. package/dist/browser/query/unit-of-work/retry-policy.d.ts.map +1 -0
  118. package/dist/browser/query/unit-of-work/retry-policy.js +40 -0
  119. package/dist/browser/query/unit-of-work/retry-policy.js.map +1 -0
  120. package/dist/browser/query/unit-of-work/unit-of-work.d.ts +703 -0
  121. package/dist/browser/query/unit-of-work/unit-of-work.d.ts.map +1 -0
  122. package/dist/browser/query/unit-of-work/unit-of-work.js +1206 -0
  123. package/dist/browser/query/unit-of-work/unit-of-work.js.map +1 -0
  124. package/dist/browser/query/value-encoding.js +38 -0
  125. package/dist/browser/query/value-encoding.js.map +1 -0
  126. package/dist/browser/schema/create.d.ts +326 -0
  127. package/dist/browser/schema/create.d.ts.map +1 -0
  128. package/dist/browser/schema/create.js +89 -0
  129. package/dist/browser/schema/create.js.map +1 -0
  130. package/dist/browser/schema/generate-id.js +28 -0
  131. package/dist/browser/schema/generate-id.js.map +1 -0
  132. package/dist/browser/shared/providers.d.ts +6 -0
  133. package/dist/browser/shared/providers.d.ts.map +1 -0
  134. package/dist/browser/sql-driver/connection/connection-provider.d.ts +13 -0
  135. package/dist/browser/sql-driver/connection/connection-provider.d.ts.map +1 -0
  136. package/dist/browser/sql-driver/dialect-adapter/dialect-adapter.d.ts +7 -0
  137. package/dist/browser/sql-driver/dialect-adapter/dialect-adapter.d.ts.map +1 -0
  138. package/dist/browser/sql-driver/driver/runtime-driver.d.ts +23 -0
  139. package/dist/browser/sql-driver/driver/runtime-driver.d.ts.map +1 -0
  140. package/dist/browser/sql-driver/query-executor/plugin.d.ts +17 -0
  141. package/dist/browser/sql-driver/query-executor/plugin.d.ts.map +1 -0
  142. package/dist/browser/sql-driver/query-executor/query-executor.d.ts +36 -0
  143. package/dist/browser/sql-driver/query-executor/query-executor.d.ts.map +1 -0
  144. package/dist/browser/sql-driver/sql-driver-adapter.d.ts +29 -0
  145. package/dist/browser/sql-driver/sql-driver-adapter.d.ts.map +1 -0
  146. package/dist/browser/sql-driver/sql-driver.d.ts +38 -0
  147. package/dist/browser/sql-driver/sql-driver.d.ts.map +1 -0
  148. package/dist/browser/sync/commands.d.ts +15 -0
  149. package/dist/browser/sync/commands.d.ts.map +1 -0
  150. package/dist/browser/sync/commands.js +27 -0
  151. package/dist/browser/sync/commands.js.map +1 -0
  152. package/dist/browser/sync/types.d.ts +63 -0
  153. package/dist/browser/sync/types.d.ts.map +1 -0
  154. package/dist/browser/util/types.d.ts +8 -0
  155. package/dist/browser/util/types.d.ts.map +1 -0
  156. package/dist/browser/with-database.d.ts +29 -0
  157. package/dist/browser/with-database.d.ts.map +1 -0
  158. package/dist/client.d.ts +4 -0
  159. package/dist/client.js +5 -0
  160. package/dist/db-fragment-definition-builder.d.ts +85 -28
  161. package/dist/db-fragment-definition-builder.d.ts.map +1 -1
  162. package/dist/db-fragment-definition-builder.js +374 -46
  163. package/dist/db-fragment-definition-builder.js.map +1 -1
  164. package/dist/dispatchers/cloudflare-do/dispatcher.d.ts +20 -0
  165. package/dist/dispatchers/cloudflare-do/dispatcher.d.ts.map +1 -0
  166. package/dist/dispatchers/cloudflare-do/dispatcher.js +147 -0
  167. package/dist/dispatchers/cloudflare-do/dispatcher.js.map +1 -0
  168. package/dist/dispatchers/cloudflare-do/index.d.ts +5 -20
  169. package/dist/dispatchers/cloudflare-do/index.d.ts.map +1 -1
  170. package/dist/dispatchers/cloudflare-do/index.js +23 -55
  171. package/dist/dispatchers/cloudflare-do/index.js.map +1 -1
  172. package/dist/dispatchers/node/dispatcher.d.ts +14 -0
  173. package/dist/dispatchers/node/dispatcher.d.ts.map +1 -0
  174. package/dist/dispatchers/node/dispatcher.js +80 -0
  175. package/dist/dispatchers/node/dispatcher.js.map +1 -0
  176. package/dist/dispatchers/node/index.d.ts +5 -10
  177. package/dist/dispatchers/node/index.d.ts.map +1 -1
  178. package/dist/dispatchers/node/index.js +21 -53
  179. package/dist/dispatchers/node/index.js.map +1 -1
  180. package/dist/durable-hooks.d.ts +31 -0
  181. package/dist/durable-hooks.d.ts.map +1 -0
  182. package/dist/durable-hooks.js +23 -0
  183. package/dist/durable-hooks.js.map +1 -0
  184. package/dist/fragments/internal-fragment.d.ts +128 -27
  185. package/dist/fragments/internal-fragment.d.ts.map +1 -1
  186. package/dist/fragments/internal-fragment.js +125 -78
  187. package/dist/fragments/internal-fragment.js.map +1 -1
  188. package/dist/fragments/internal-fragment.routes.js +138 -3
  189. package/dist/fragments/internal-fragment.routes.js.map +1 -1
  190. package/dist/fragments/internal-fragment.schema.d.ts +7 -1
  191. package/dist/fragments/internal-fragment.schema.d.ts.map +1 -1
  192. package/dist/fragments/internal-fragment.schema.js +18 -1
  193. package/dist/fragments/internal-fragment.schema.js.map +1 -1
  194. package/dist/hooks/durable-hooks-logger.d.ts +10 -0
  195. package/dist/hooks/durable-hooks-logger.d.ts.map +1 -0
  196. package/dist/hooks/durable-hooks-logger.js +75 -0
  197. package/dist/hooks/durable-hooks-logger.js.map +1 -0
  198. package/dist/hooks/durable-hooks-processor.d.ts +1 -14
  199. package/dist/hooks/durable-hooks-processor.js +58 -10
  200. package/dist/hooks/durable-hooks-processor.js.map +1 -1
  201. package/dist/hooks/durable-hooks-runtime.js +44 -0
  202. package/dist/hooks/durable-hooks-runtime.js.map +1 -0
  203. package/dist/hooks/hooks.d.ts +60 -2
  204. package/dist/hooks/hooks.d.ts.map +1 -1
  205. package/dist/hooks/hooks.js +214 -53
  206. package/dist/hooks/hooks.js.map +1 -1
  207. package/dist/id.d.ts +2 -2
  208. package/dist/id.js +2 -2
  209. package/dist/internal/adapter-registry.d.ts +11 -0
  210. package/dist/internal/adapter-registry.d.ts.map +1 -0
  211. package/dist/internal/adapter-registry.js +135 -0
  212. package/dist/internal/adapter-registry.js.map +1 -0
  213. package/dist/internal/outbox-state.d.ts +2 -0
  214. package/dist/internal/outbox-state.js +26 -0
  215. package/dist/internal/outbox-state.js.map +1 -0
  216. package/dist/migration-engine/auto-from-schema.d.ts +33 -0
  217. package/dist/migration-engine/auto-from-schema.d.ts.map +1 -0
  218. package/dist/migration-engine/auto-from-schema.js +210 -27
  219. package/dist/migration-engine/auto-from-schema.js.map +1 -1
  220. package/dist/migration-engine/generation-engine.d.ts.map +1 -1
  221. package/dist/migration-engine/generation-engine.js +17 -5
  222. package/dist/migration-engine/generation-engine.js.map +1 -1
  223. package/dist/migration-engine/shared.d.ts +113 -0
  224. package/dist/migration-engine/shared.d.ts.map +1 -0
  225. package/dist/migration-engine/shared.js.map +1 -1
  226. package/dist/mod.d.ts +12 -11
  227. package/dist/mod.d.ts.map +1 -1
  228. package/dist/mod.js +10 -10
  229. package/dist/mod.js.map +1 -1
  230. package/dist/naming/sql-naming.d.ts.map +1 -1
  231. package/dist/naming/sql-naming.js.map +1 -1
  232. package/dist/outbox/outbox-builder.js.map +1 -1
  233. package/dist/outbox/outbox.d.ts +3 -1
  234. package/dist/outbox/outbox.d.ts.map +1 -1
  235. package/dist/outbox/outbox.js.map +1 -1
  236. package/dist/query/column-defaults.js.map +1 -1
  237. package/dist/query/condition-builder.d.ts +7 -1
  238. package/dist/query/condition-builder.d.ts.map +1 -1
  239. package/dist/query/condition-builder.js +5 -1
  240. package/dist/query/condition-builder.js.map +1 -1
  241. package/dist/query/cursor-client.d.ts +105 -0
  242. package/dist/query/cursor-client.d.ts.map +1 -0
  243. package/dist/query/cursor-client.js +165 -0
  244. package/dist/query/cursor-client.js.map +1 -0
  245. package/dist/query/cursor.d.ts.map +1 -1
  246. package/dist/query/cursor.js +7 -1
  247. package/dist/query/cursor.js.map +1 -1
  248. package/dist/query/db-now.d.ts +15 -1
  249. package/dist/query/db-now.d.ts.map +1 -1
  250. package/dist/query/db-now.js +30 -2
  251. package/dist/query/db-now.js.map +1 -1
  252. package/dist/query/orm/orm.js.map +1 -1
  253. package/dist/query/serialize/create-sql-serializer.js +2 -2
  254. package/dist/query/serialize/create-sql-serializer.js.map +1 -1
  255. package/dist/query/serialize/dialect/mysql-serializer.js.map +1 -1
  256. package/dist/query/serialize/dialect/postgres-serializer.js.map +1 -1
  257. package/dist/query/serialize/dialect/sqlite-serializer.js +6 -2
  258. package/dist/query/serialize/dialect/sqlite-serializer.js.map +1 -1
  259. package/dist/query/simple-query-interface.d.ts +7 -3
  260. package/dist/query/simple-query-interface.d.ts.map +1 -1
  261. package/dist/query/unit-of-work/execute-unit-of-work.d.ts +37 -2
  262. package/dist/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -1
  263. package/dist/query/unit-of-work/execute-unit-of-work.js +39 -18
  264. package/dist/query/unit-of-work/execute-unit-of-work.js.map +1 -1
  265. package/dist/query/unit-of-work/unit-of-work.d.ts +42 -16
  266. package/dist/query/unit-of-work/unit-of-work.d.ts.map +1 -1
  267. package/dist/query/unit-of-work/unit-of-work.js +50 -6
  268. package/dist/query/unit-of-work/unit-of-work.js.map +1 -1
  269. package/dist/query/value-decoding.js +8 -1
  270. package/dist/query/value-decoding.js.map +1 -1
  271. package/dist/query/value-encoding.js.map +1 -1
  272. package/dist/schema/create.d.ts +69 -25
  273. package/dist/schema/create.d.ts.map +1 -1
  274. package/dist/schema/create.js +91 -16
  275. package/dist/schema/create.js.map +1 -1
  276. package/dist/schema/type-conversion/create-sql-type-mapper.js +1 -1
  277. package/dist/schema/type-conversion/create-sql-type-mapper.js.map +1 -1
  278. package/dist/schema/type-conversion/dialect/sqlite.js.map +1 -1
  279. package/dist/schema/validator.d.ts.map +1 -1
  280. package/dist/schema/validator.js.map +1 -1
  281. package/dist/schema-output/drizzle.d.ts.map +1 -1
  282. package/dist/schema-output/drizzle.js +8 -6
  283. package/dist/schema-output/drizzle.js.map +1 -1
  284. package/dist/schema-output/prisma.d.ts.map +1 -1
  285. package/dist/schema-output/prisma.js +21 -10
  286. package/dist/schema-output/prisma.js.map +1 -1
  287. package/dist/sql-driver/dialects/durable-object-dialect.js +3 -9
  288. package/dist/sql-driver/dialects/durable-object-dialect.js.map +1 -1
  289. package/dist/sql-driver/query-executor/default-query-executor.js.map +1 -1
  290. package/dist/sql-driver/query-executor/query-executor-base.js.map +1 -1
  291. package/dist/sql-driver/sql-driver-adapter.js.map +1 -1
  292. package/dist/sql-driver/sql.js.map +1 -1
  293. package/dist/sync/commands.d.ts +15 -0
  294. package/dist/sync/commands.d.ts.map +1 -0
  295. package/dist/sync/commands.js +27 -0
  296. package/dist/sync/commands.js.map +1 -0
  297. package/dist/sync/index.d.ts +4 -0
  298. package/dist/sync/index.js +4 -0
  299. package/dist/sync/read-tracking.d.ts +25 -0
  300. package/dist/sync/read-tracking.d.ts.map +1 -0
  301. package/dist/sync/read-tracking.js +148 -0
  302. package/dist/sync/read-tracking.js.map +1 -0
  303. package/dist/sync/submit.js +213 -0
  304. package/dist/sync/submit.js.map +1 -0
  305. package/dist/sync/types.d.ts +63 -0
  306. package/dist/sync/types.d.ts.map +1 -0
  307. package/dist/util/default-database-adapter.js +6 -1
  308. package/dist/util/default-database-adapter.js.map +1 -1
  309. package/dist/with-database.d.ts +3 -6
  310. package/dist/with-database.d.ts.map +1 -1
  311. package/dist/with-database.js +7 -15
  312. package/dist/with-database.js.map +1 -1
  313. package/package.json +33 -41
  314. package/src/adapters/adapters.ts +5 -4
  315. package/src/adapters/drizzle/migrate-drizzle.test.ts +46 -9
  316. package/src/adapters/drizzle/migration-parity-drizzle-kit.test.ts +5 -3
  317. package/src/adapters/drizzle/test-utils.ts +2 -1
  318. package/src/adapters/generic-sql/generic-sql-adapter.test.ts +5 -3
  319. package/src/adapters/generic-sql/generic-sql-adapter.ts +21 -24
  320. package/src/adapters/generic-sql/generic-sql-uow-executor.test.ts +1 -0
  321. package/src/adapters/generic-sql/generic-sql-uow-executor.ts +81 -15
  322. package/src/adapters/generic-sql/migration/adapter-migration-parity.test.ts +4 -2
  323. package/src/adapters/generic-sql/migration/cold-kysely.ts +1 -0
  324. package/src/adapters/generic-sql/migration/dialect/mysql.test.ts +3 -2
  325. package/src/adapters/generic-sql/migration/dialect/mysql.ts +1 -0
  326. package/src/adapters/generic-sql/migration/dialect/postgres.test.ts +5 -4
  327. package/src/adapters/generic-sql/migration/dialect/postgres.ts +2 -1
  328. package/src/adapters/generic-sql/migration/dialect/sqlite.test.ts +795 -3
  329. package/src/adapters/generic-sql/migration/dialect/sqlite.ts +385 -57
  330. package/src/adapters/generic-sql/migration/executor.test.ts +52 -0
  331. package/src/adapters/generic-sql/migration/executor.ts +47 -4
  332. package/src/adapters/generic-sql/migration/prepared-migrations.test.ts +117 -14
  333. package/src/adapters/generic-sql/migration/prepared-migrations.ts +9 -8
  334. package/src/adapters/generic-sql/migration/sql-generator.ts +5 -3
  335. package/src/adapters/generic-sql/query/create-sql-query-compiler.ts +3 -3
  336. package/src/adapters/generic-sql/query/cursor-utils.test.ts +3 -2
  337. package/src/adapters/generic-sql/query/cursor-utils.ts +1 -1
  338. package/src/adapters/generic-sql/query/db-now-sql.ts +49 -0
  339. package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.test.ts +144 -8
  340. package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.ts +16 -17
  341. package/src/adapters/generic-sql/query/select-builder.test.ts +1 -0
  342. package/src/adapters/generic-sql/query/select-builder.ts +2 -2
  343. package/src/adapters/generic-sql/query/sql-query-compiler.test.ts +24 -5
  344. package/src/adapters/generic-sql/query/sql-query-compiler.ts +83 -13
  345. package/src/adapters/generic-sql/query/where-builder.test.ts +7 -5
  346. package/src/adapters/generic-sql/query/where-builder.ts +48 -29
  347. package/src/adapters/generic-sql/sql-adapter-pglite-migrations.test.ts +6 -15
  348. package/src/adapters/generic-sql/sql-adapter-pglite-pagination.test.ts +52 -7
  349. package/src/adapters/generic-sql/sql-adapter-pglite-queries.test.ts +9 -6
  350. package/src/adapters/generic-sql/sql-adapter-sqlite3-driver.test.ts +273 -5
  351. package/src/adapters/generic-sql/sql-adapter-sqlite3-uow.test.ts +123 -6
  352. package/src/adapters/generic-sql/sql-adapter-sqlocal.test.ts +4 -2
  353. package/src/adapters/generic-sql/uow-decoder.test.ts +4 -3
  354. package/src/adapters/generic-sql/uow-decoder.ts +3 -3
  355. package/src/adapters/generic-sql/uow-encoder.test.ts +4 -2
  356. package/src/adapters/generic-sql/uow-encoder.ts +14 -18
  357. package/src/adapters/in-memory/condition-evaluator.test.ts +2 -1
  358. package/src/adapters/in-memory/condition-evaluator.ts +9 -4
  359. package/src/adapters/in-memory/in-memory-adapter.ts +155 -44
  360. package/src/adapters/in-memory/in-memory-uow.mutations.test.ts +50 -2
  361. package/src/adapters/in-memory/in-memory-uow.retrieval.test.ts +158 -3
  362. package/src/adapters/in-memory/in-memory-uow.ts +402 -26
  363. package/src/adapters/in-memory/options.test.ts +1 -0
  364. package/src/adapters/in-memory/options.ts +5 -1
  365. package/src/adapters/in-memory/outbox.test.ts +361 -0
  366. package/src/adapters/in-memory/reference-resolution.test.ts +3 -2
  367. package/src/adapters/in-memory/reference-resolution.ts +2 -2
  368. package/src/adapters/in-memory/sorted-array-index.test.ts +1 -0
  369. package/src/adapters/in-memory/store.test.ts +1 -0
  370. package/src/adapters/in-memory/store.ts +3 -3
  371. package/src/adapters/in-memory/value-normalization.test.ts +1 -0
  372. package/src/adapters/prisma/prisma-adapter-sqlite3.test.ts +51 -7
  373. package/src/adapters/shared/from-unit-of-work-compiler.ts +156 -46
  374. package/src/adapters/shared/uow-operation-compiler.ts +3 -3
  375. package/src/browser/mod.ts +64 -0
  376. package/src/client.ts +19 -0
  377. package/src/db-fragment-definition-builder.test.ts +821 -47
  378. package/src/db-fragment-definition-builder.ts +857 -110
  379. package/src/db-fragment-instantiator.test.ts +114 -90
  380. package/src/db-fragment-integration.test.ts +9 -6
  381. package/src/dispatchers/cloudflare-do/dispatcher.ts +204 -0
  382. package/src/dispatchers/cloudflare-do/index.test.ts +145 -12
  383. package/src/dispatchers/cloudflare-do/index.ts +49 -90
  384. package/src/dispatchers/node/dispatcher.ts +112 -0
  385. package/src/dispatchers/node/index.test.ts +43 -14
  386. package/src/dispatchers/node/index.ts +38 -75
  387. package/src/durable-hooks.test.ts +80 -0
  388. package/src/durable-hooks.ts +67 -0
  389. package/src/fragments/internal-fragment.routes.test.ts +570 -0
  390. package/src/fragments/internal-fragment.routes.ts +297 -5
  391. package/src/fragments/internal-fragment.schema.ts +45 -1
  392. package/src/fragments/internal-fragment.test.ts +223 -251
  393. package/src/fragments/internal-fragment.ts +278 -154
  394. package/src/hooks/durable-hooks-logger.ts +126 -0
  395. package/src/hooks/durable-hooks-processor.pglite.test.ts +87 -0
  396. package/src/hooks/durable-hooks-processor.test.ts +179 -14
  397. package/src/hooks/durable-hooks-processor.ts +120 -14
  398. package/src/hooks/durable-hooks-runtime.test.ts +65 -0
  399. package/src/hooks/durable-hooks-runtime.ts +81 -0
  400. package/src/hooks/hooks.test.ts +314 -53
  401. package/src/hooks/hooks.ts +360 -81
  402. package/src/id.test.ts +34 -0
  403. package/src/id.ts +1 -3
  404. package/src/internal/adapter-registry.test.ts +93 -0
  405. package/src/internal/adapter-registry.ts +239 -0
  406. package/src/internal/outbox-state.ts +43 -0
  407. package/src/migration-engine/auto-from-schema.test.ts +93 -0
  408. package/src/migration-engine/auto-from-schema.ts +360 -42
  409. package/src/migration-engine/create.test.ts +2 -1
  410. package/src/migration-engine/create.ts +1 -1
  411. package/src/migration-engine/generation-engine.test.ts +66 -9
  412. package/src/migration-engine/generation-engine.ts +31 -10
  413. package/src/migration-engine/shared.ts +13 -0
  414. package/src/mod.ts +45 -27
  415. package/src/naming/sql-naming.ts +1 -0
  416. package/src/outbox/outbox-builder.ts +2 -2
  417. package/src/outbox/outbox.test.ts +216 -45
  418. package/src/outbox/outbox.ts +3 -1
  419. package/src/query/column-defaults.ts +1 -1
  420. package/src/query/condition-builder.test.ts +15 -0
  421. package/src/query/condition-builder.ts +7 -0
  422. package/src/query/cursor-client.test.ts +70 -0
  423. package/src/query/cursor-client.ts +263 -0
  424. package/src/query/cursor.test.ts +3 -2
  425. package/src/query/cursor.ts +15 -3
  426. package/src/query/db-now.ts +69 -2
  427. package/src/query/orm/orm.ts +2 -2
  428. package/src/query/query-type.test.ts +2 -1
  429. package/src/query/serialize/create-sql-serializer.ts +3 -3
  430. package/src/query/serialize/dialect/mysql-serializer.ts +1 -1
  431. package/src/query/serialize/dialect/postgres-serializer.ts +1 -1
  432. package/src/query/serialize/dialect/sqlite-serializer.test.ts +39 -2
  433. package/src/query/serialize/dialect/sqlite-serializer.ts +18 -5
  434. package/src/query/simple-query-interface.ts +10 -4
  435. package/src/query/unit-of-work/execute-unit-of-work.test.ts +347 -9
  436. package/src/query/unit-of-work/execute-unit-of-work.ts +63 -20
  437. package/src/query/unit-of-work/retry-policy.test.ts +1 -0
  438. package/src/query/unit-of-work/tx-builder.test.ts +73 -1
  439. package/src/query/unit-of-work/unit-of-work-coordinator.test.ts +5 -4
  440. package/src/query/unit-of-work/unit-of-work-types.test.ts +41 -11
  441. package/src/query/unit-of-work/unit-of-work.test.ts +28 -2
  442. package/src/query/unit-of-work/unit-of-work.ts +105 -19
  443. package/src/query/value-decoding.test.ts +50 -2
  444. package/src/query/value-decoding.ts +17 -4
  445. package/src/query/value-encoding.test.ts +1 -0
  446. package/src/query/value-encoding.ts +1 -1
  447. package/src/schema/create.test.ts +164 -5
  448. package/src/schema/create.ts +222 -24
  449. package/src/schema/generate-id.test.ts +1 -0
  450. package/src/schema/serialize.test.ts +4 -3
  451. package/src/schema/type-conversion/create-sql-type-mapper.ts +1 -1
  452. package/src/schema/type-conversion/dialect/sqlite.ts +2 -2
  453. package/src/schema/type-conversion/type-mapping.test.ts +2 -1
  454. package/src/schema/validator.test.ts +4 -2
  455. package/src/schema/validator.ts +1 -0
  456. package/src/schema-output/drizzle.test.ts +72 -19
  457. package/src/schema-output/drizzle.ts +24 -18
  458. package/src/schema-output/prisma.test.ts +172 -14
  459. package/src/schema-output/prisma.ts +34 -14
  460. package/src/sql-driver/better-sqlite3.test.ts +5 -3
  461. package/src/sql-driver/dialects/durable-object-dialect.ts +3 -8
  462. package/src/sql-driver/query-executor/default-query-executor.ts +1 -1
  463. package/src/sql-driver/query-executor/query-executor-base.ts +1 -1
  464. package/src/sql-driver/query-executor/query-executor.ts +1 -1
  465. package/src/sql-driver/sql-driver-adapter.ts +2 -2
  466. package/src/sql-driver/sql.ts +2 -1
  467. package/src/sql-driver/sqlocal.test.ts +4 -2
  468. package/src/sync/commands.test.ts +39 -0
  469. package/src/sync/commands.ts +51 -0
  470. package/src/sync/conflict-checker.test.ts +450 -0
  471. package/src/sync/conflict-checker.ts +248 -0
  472. package/src/sync/index.ts +14 -0
  473. package/src/sync/plan.ts +9 -0
  474. package/src/sync/read-tracking.test.ts +177 -0
  475. package/src/sync/read-tracking.ts +287 -0
  476. package/src/sync/submit.test.ts +205 -0
  477. package/src/sync/submit.ts +328 -0
  478. package/src/sync/types.ts +80 -0
  479. package/src/util/default-database-adapter.ts +15 -2
  480. package/src/with-database.ts +20 -50
  481. package/tsconfig.json +1 -1
  482. package/tsdown.config.ts +38 -26
  483. package/vitest.config.ts +1 -0
  484. package/dist/hooks/durable-hooks-processor.d.ts.map +0 -1
  485. package/dist/node_modules/.pnpm/rou3@0.7.12/node_modules/rou3/dist/index.js +0 -168
  486. package/dist/node_modules/.pnpm/rou3@0.7.12/node_modules/rou3/dist/index.js.map +0 -1
  487. package/dist/packages/fragno/dist/api/bind-services.js +0 -20
  488. package/dist/packages/fragno/dist/api/bind-services.js.map +0 -1
  489. package/dist/packages/fragno/dist/api/error.js +0 -48
  490. package/dist/packages/fragno/dist/api/error.js.map +0 -1
  491. package/dist/packages/fragno/dist/api/fragment-definition-builder.js +0 -321
  492. package/dist/packages/fragno/dist/api/fragment-definition-builder.js.map +0 -1
  493. package/dist/packages/fragno/dist/api/fragment-instantiator.js +0 -669
  494. package/dist/packages/fragno/dist/api/fragment-instantiator.js.map +0 -1
  495. package/dist/packages/fragno/dist/api/fragno-response.js +0 -73
  496. package/dist/packages/fragno/dist/api/fragno-response.js.map +0 -1
  497. package/dist/packages/fragno/dist/api/internal/response-stream.js +0 -81
  498. package/dist/packages/fragno/dist/api/internal/response-stream.js.map +0 -1
  499. package/dist/packages/fragno/dist/api/internal/route.js +0 -10
  500. package/dist/packages/fragno/dist/api/internal/route.js.map +0 -1
  501. package/dist/packages/fragno/dist/api/mutable-request-state.js +0 -97
  502. package/dist/packages/fragno/dist/api/mutable-request-state.js.map +0 -1
  503. package/dist/packages/fragno/dist/api/request-context-storage.js +0 -43
  504. package/dist/packages/fragno/dist/api/request-context-storage.js.map +0 -1
  505. package/dist/packages/fragno/dist/api/request-input-context.js +0 -185
  506. package/dist/packages/fragno/dist/api/request-input-context.js.map +0 -1
  507. package/dist/packages/fragno/dist/api/request-middleware.js +0 -83
  508. package/dist/packages/fragno/dist/api/request-middleware.js.map +0 -1
  509. package/dist/packages/fragno/dist/api/request-output-context.js +0 -119
  510. package/dist/packages/fragno/dist/api/request-output-context.js.map +0 -1
  511. package/dist/packages/fragno/dist/api/route.js +0 -30
  512. package/dist/packages/fragno/dist/api/route.js.map +0 -1
  513. package/dist/packages/fragno/dist/internal/symbols.js +0 -10
  514. package/dist/packages/fragno/dist/internal/symbols.js.map +0 -1
  515. package/dist/packages/fragno/dist/internal/trace-context.js +0 -12
  516. package/dist/packages/fragno/dist/internal/trace-context.js.map +0 -1
@@ -22,6 +22,20 @@ type TableSubOperation = {
22
22
  name: string;
23
23
  columns: string[];
24
24
  unique: boolean;
25
+ } | {
26
+ type: "rename-column";
27
+ from: string;
28
+ to: string;
29
+ } | {
30
+ type: "drop-column";
31
+ name: string;
32
+ } | {
33
+ type: "update-column";
34
+ columnName: string;
35
+ column: AnyColumn;
36
+ updateNullable: boolean;
37
+ updateDefault: boolean;
38
+ updateDataType: boolean;
25
39
  } | {
26
40
  type: "add-foreign-key";
27
41
  name: string;
@@ -55,6 +69,7 @@ type SchemaOperation = {
55
69
  table: string;
56
70
  column: string;
57
71
  };
72
+ foreignKey?: boolean;
58
73
  };
59
74
  };
60
75
  interface ForeignKey {
@@ -69,7 +84,10 @@ declare class RelationInit<TRelationType extends RelationType, TTables extends R
69
84
  referencedTable: TTables[TTableName];
70
85
  referencer: AnyTable;
71
86
  on: [string, string][];
72
- constructor(type: TRelationType, referencedTable: TTables[TTableName], referencer: AnyTable);
87
+ foreignKey: boolean;
88
+ constructor(type: TRelationType, referencedTable: TTables[TTableName], referencer: AnyTable, options?: {
89
+ foreignKey?: boolean;
90
+ });
73
91
  }
74
92
  interface Index<TColumns extends AnyColumn[] = AnyColumn[], TColumnNames extends readonly string[] = readonly string[]> {
75
93
  name: string;
@@ -84,6 +102,7 @@ interface Relation<TRelationType extends RelationType = RelationType, TTable ext
84
102
  id: string;
85
103
  name: string;
86
104
  type: TRelationType;
105
+ foreignKey?: boolean;
87
106
  table: TTable;
88
107
  referencer: AnyTable;
89
108
  on: [string, string][];
@@ -166,23 +185,23 @@ type TypeMap = {
166
185
  date: Date;
167
186
  timestamp: Date;
168
187
  } & Record<`varchar(${number})`, string>;
169
- declare class Column<TType extends keyof TypeMap, TIn = unknown, TOut = unknown> {
170
- type: TType;
188
+ declare class Column<TType$1 extends keyof TypeMap, TIn$1 = unknown, TOut$1 = unknown> {
189
+ type: TType$1;
171
190
  name: string;
172
191
  isNullable: boolean;
173
192
  role: "external-id" | "internal-id" | "version" | "reference" | "regular";
174
193
  isHidden: boolean;
175
194
  default?: {
176
- value: TypeMap[TType];
195
+ value: TypeMap[TType$1];
177
196
  } | {
178
197
  dbSpecial: "now";
179
198
  } | {
180
- runtime: "cuid" | "now" | (() => TypeMap[TType]);
199
+ runtime: "cuid" | "now" | (() => TypeMap[TType$1]);
181
200
  };
182
201
  tableName: string;
183
- constructor(type: TType);
184
- nullable<TNullable extends boolean = true>(nullable?: TNullable): Column<TType, TNullable extends true ? TIn | null : Exclude<TIn, null>, TNullable extends true ? TOut | null : Exclude<TOut, null>>;
185
- hidden<THidden extends boolean = true>(hidden?: THidden): Column<TType, null, null>;
202
+ constructor(type: TType$1);
203
+ nullable<TNullable extends boolean = true>(nullable?: TNullable): Column<TType$1, TNullable extends true ? TIn$1 | null : Exclude<TIn$1, null>, TNullable extends true ? TOut$1 | null : Exclude<TOut$1, null>>;
204
+ hidden<THidden extends boolean = true>(hidden?: THidden): Column<TType$1, null, null>;
186
205
  /**
187
206
  * Generate default value at runtime in application code (not in the database).
188
207
  *
@@ -205,7 +224,7 @@ declare class Column<TType extends keyof TypeMap, TIn = unknown, TOut = unknown>
205
224
  * column("integer").defaultTo$((b) => Math.floor(Math.random() * 100)) // Custom function
206
225
  * ```
207
226
  */
208
- defaultTo$(value: TypeMap[TType] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType])): Column<TType, TIn | null, TOut>;
227
+ defaultTo$(value: TypeMap[TType$1] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType$1])): Column<TType$1, TIn$1 | null, TOut$1>;
209
228
  /**
210
229
  * Set a database-level default value (generated by the database, not application code).
211
230
  *
@@ -228,34 +247,34 @@ declare class Column<TType extends keyof TypeMap, TIn = unknown, TOut = unknown>
228
247
  * column("timestamp").defaultTo((b) => b.now())
229
248
  * ```
230
249
  */
231
- defaultTo(value: TypeMap[TType] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType])): Column<TType, TIn | null, TOut>;
250
+ defaultTo(value: TypeMap[TType$1] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType$1])): Column<TType$1, TIn$1 | null, TOut$1>;
232
251
  /**
233
252
  * Generate default value for the column at runtime.
234
253
  * Used for both runtime defaults (defaultTo$) and fallback generation for
235
254
  * database defaults (defaultTo) when the database doesn't support them.
236
255
  */
237
- generateDefaultValue(): TypeMap[TType] | undefined;
256
+ generateDefaultValue(): TypeMap[TType$1] | undefined;
238
257
  /**
239
258
  * @description This is used for type inference only. Runtime value will be undefined.
240
259
  * @internal
241
260
  */
242
- get $in(): TIn;
261
+ get $in(): TIn$1;
243
262
  /**
244
263
  * @description This is used for type inference only. Runtime value will be undefined.
245
264
  * @internal
246
265
  */
247
- get $out(): TOut;
266
+ get $out(): TOut$1;
248
267
  }
249
- declare class IdColumn<TType extends IdColumnType = IdColumnType, TIn = unknown, TOut = unknown> extends Column<TType, TIn, TOut> {
268
+ declare class IdColumn<TType$1 extends IdColumnType = IdColumnType, TIn$1 = unknown, TOut$1 = unknown> extends Column<TType$1, TIn$1, TOut$1> {
250
269
  id: boolean;
251
- defaultTo$(value: TypeMap[TType] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType])): IdColumn<TType, TIn | null, TOut>;
252
- defaultTo(value: TypeMap[TType] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType])): IdColumn<TType, TIn | null, TOut>;
270
+ defaultTo$(value: TypeMap[TType$1] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType$1])): IdColumn<TType$1, TIn$1 | null, TOut$1>;
271
+ defaultTo(value: TypeMap[TType$1] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType$1])): IdColumn<TType$1, TIn$1 | null, TOut$1>;
253
272
  }
254
273
  /**
255
274
  * Internal ID column - used for database-native joins and foreign keys.
256
275
  * Hidden from user API by default.
257
276
  */
258
- declare class InternalIdColumn<TIn = unknown, TOut = unknown> extends Column<"bigint", TIn, TOut> {
277
+ declare class InternalIdColumn<TIn$1 = unknown, TOut$1 = unknown> extends Column<"bigint", TIn$1, TOut$1> {
259
278
  role: "internal-id";
260
279
  constructor();
261
280
  }
@@ -263,12 +282,12 @@ declare class InternalIdColumn<TIn = unknown, TOut = unknown> extends Column<"bi
263
282
  * Version column - used for optimistic concurrency control.
264
283
  * Automatically incremented on each update.
265
284
  */
266
- declare class VersionColumn<TIn = unknown, TOut = unknown> extends Column<"integer", TIn, TOut> {
285
+ declare class VersionColumn<TIn$1 = unknown, TOut$1 = unknown> extends Column<"integer", TIn$1, TOut$1> {
267
286
  role: "version";
268
287
  constructor();
269
288
  }
270
- type ColumnInput<TType extends keyof TypeMap> = TypeMap[TType] | (TType extends "timestamp" | "date" ? DbNow : never);
271
- declare function column<TType extends keyof TypeMap>(type: TType): Column<TType, ColumnInput<TType>, TypeMap[TType]>;
289
+ type ColumnInput<TType$1 extends keyof TypeMap> = TypeMap[TType$1] | (TType$1 extends "timestamp" | "date" ? DbNow : never);
290
+ declare function column<TType$1 extends keyof TypeMap>(type: TType$1): Column<TType$1, ColumnInput<TType$1>, TypeMap[TType$1]>;
272
291
  /**
273
292
  * Create a reference column that points to another table's internal ID.
274
293
  * This is used for foreign key relationships.
@@ -280,7 +299,7 @@ declare function referenceColumn(): Column<"bigint", string | bigint | FragnoId
280
299
  * This is a CUID string that can be auto-generated or user-provided.
281
300
  * Input accepts string | FragnoId | null, output returns FragnoId.
282
301
  */
283
- declare function idColumn(): IdColumn<"varchar(30)", string | FragnoId | null, FragnoId>;
302
+ declare function idColumn(): IdColumn<"varchar(128)", string | FragnoId | null, FragnoId>;
284
303
  /**
285
304
  * Create an internal ID column (database-native, hidden from user API).
286
305
  * Used for joins and foreign keys.
@@ -366,7 +385,11 @@ declare class TableBuilder<TColumns extends Record<string, AnyColumn> = Record<s
366
385
  /**
367
386
  * Add a column to the table with simplified syntax.
368
387
  */
369
- addColumn<TColumnName extends string, TType extends keyof TypeMap>(name: TColumnName, type: TType): TableBuilder<TColumns & Record<TColumnName, Column<TType, ColumnInput<TType>, TypeMap[TType]>>, TRelations, TIndexes>;
388
+ addColumn<TColumnName extends string, TType$1 extends keyof TypeMap>(name: TColumnName, type: TType$1): TableBuilder<TColumns & Record<TColumnName, Column<TType$1, ColumnInput<TType$1>, TypeMap[TType$1]>>, TRelations, TIndexes>;
389
+ /**
390
+ * Alter an existing column.
391
+ */
392
+ alterColumn<TColumnName extends NonIdColumnName<TColumns>>(name: TColumnName): ColumnAlterer<TColumns, TRelations, TIndexes, TColumnName>;
370
393
  /**
371
394
  * Create an index on the specified columns.
372
395
  */
@@ -409,6 +432,12 @@ type UpdateTable<TTables extends Record<string, AnyTable>, TTableName extends ke
409
432
  * Map an array of column names to a tuple of their actual column types
410
433
  */
411
434
  type ColumnsToTuple<TColumns extends Record<string, AnyColumn>, TColumnNames extends readonly (keyof TColumns)[]> = { [K in keyof TColumnNames]: TColumnNames[K] extends keyof TColumns ? TColumns[TColumnNames[K]] : never } & AnyColumn[];
435
+ type UpdateColumn<TColumns extends Record<string, AnyColumn>, TColumnName extends keyof TColumns, TUpdatedColumn extends AnyColumn> = Prettify<Omit<TColumns, TColumnName> & Record<TColumnName, TUpdatedColumn>>;
436
+ type NonIdColumnName<TColumns extends Record<string, AnyColumn>> = { [K in keyof TColumns]: TColumns[K] extends IdColumn<IdColumnType, unknown, unknown> | InternalIdColumn<unknown, unknown> | VersionColumn<unknown, unknown> ? never : K }[keyof TColumns];
437
+ type NullableColumn<TColumn extends AnyColumn, TNullable extends boolean> = TColumn extends Column<infer TType, infer TIn, infer TOut> ? Column<TType, TNullable extends true ? TIn | null : Exclude<TIn, null>, TNullable extends true ? TOut | null : Exclude<TOut, null>> : TColumn;
438
+ type ColumnAlterer<TColumns extends Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation>, TIndexes extends Record<string, Index>, TColumnName extends keyof TColumns> = {
439
+ nullable<TNullable extends boolean = true>(nullable?: TNullable): TableBuilder<UpdateColumn<TColumns, TColumnName, NullableColumn<TColumns[TColumnName], TNullable>>, TRelations, TIndexes>;
440
+ };
412
441
  declare class SchemaBuilder<TTables extends Record<string, AnyTable> = {}> {
413
442
  #private;
414
443
  constructor(name: string, existingSchema?: Schema<TTables>);
@@ -428,7 +457,7 @@ declare class SchemaBuilder<TTables extends Record<string, AnyTable> = {}> {
428
457
  /**
429
458
  * Add a table to the schema. Increments the version counter.
430
459
  */
431
- addTable<TTableName extends string, TColumns extends Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation>, TIndexes extends Record<string, Index> = Record<string, Index>>(name: TTableName, callback: (builder: TableBuilder<Record<string, AnyColumn>, Record<string, AnyRelation>, Record<string, Index>>) => TableBuilder<TColumns, TRelations, TIndexes>): SchemaBuilder<TTables & Record<TTableName, Table<TColumns, TRelations, TIndexes>>>;
460
+ addTable<TTableName extends string, TColumns extends Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation>, TIndexes extends Record<string, Index> = Record<string, Index>>(name: TTableName, callback: (builder: TableBuilder<{}, Record<string, AnyRelation>, Record<string, Index>>) => TableBuilder<TColumns, TRelations, TIndexes>): SchemaBuilder<TTables & Record<TTableName, Table<TColumns, TRelations, TIndexes>>>;
432
461
  /**
433
462
  * Add a relation between two tables.
434
463
  *
@@ -463,6 +492,14 @@ declare class SchemaBuilder<TTables extends Record<string, AnyTable> = {}> {
463
492
  * from: { table: "users", column: "invitedBy" },
464
493
  * to: { table: "users", column: "id" },
465
494
  * })
495
+ *
496
+ * // Join-only relation (no foreign key)
497
+ * .addReference("invitedUser", {
498
+ * type: "one",
499
+ * from: { table: "invitations", column: "email" },
500
+ * to: { table: "users", column: "email" },
501
+ * foreignKey: false,
502
+ * })
466
503
  * ```
467
504
  */
468
505
  addReference<TFromTableName extends string & keyof TTables, TToTableName extends string & keyof TTables, TReferenceName extends string, TRelationType extends RelationType>(referenceName: TReferenceName, config: {
@@ -475,10 +512,16 @@ declare class SchemaBuilder<TTables extends Record<string, AnyTable> = {}> {
475
512
  table: TToTableName;
476
513
  column: keyof TTables[TToTableName]["columns"];
477
514
  };
515
+ /**
516
+ * When false, defines a join-only relation without foreign key migrations.
517
+ * References to external-id columns still coerce to `_internalId`
518
+ * (including left-side external IDs for join-only).
519
+ */
520
+ foreignKey?: boolean;
478
521
  }): SchemaBuilder<UpdateTableRelations<TTables, TFromTableName, TReferenceName, TToTableName, TRelationType>>;
479
522
  /**
480
- * Alter an existing table by adding columns or indexes.
481
- * This is used for append-only schema modifications.
523
+ * Alter an existing table by adding columns, altering columns, or adding indexes.
524
+ * This is used for forward-only schema modifications.
482
525
  *
483
526
  * @param tableName - The name of the table to modify
484
527
  * @param callback - A callback that receives a table builder for adding columns/indexes
@@ -491,6 +534,7 @@ declare class SchemaBuilder<TTables extends Record<string, AnyTable> = {}> {
491
534
  * .addColumn("id", idColumn())
492
535
  * .addColumn("name", column("string")))
493
536
  * .alterTable("users", t => t
537
+ * .alterColumn("name").nullable()
494
538
  * .addColumn("email", column("string"))
495
539
  * .addColumn("age", column("integer").nullable())
496
540
  * .createIndex("idx_email", ["email"]))
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","names":[],"sources":["../../src/schema/create.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"create.d.ts","names":[],"sources":["../../src/schema/create.ts"],"sourcesContent":[],"mappings":"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"}
@@ -8,10 +8,12 @@ var RelationInit = class {
8
8
  referencedTable;
9
9
  referencer;
10
10
  on = [];
11
- constructor(type, referencedTable, referencer) {
11
+ foreignKey;
12
+ constructor(type, referencedTable, referencer, options) {
12
13
  this.type = type;
13
14
  this.referencedTable = referencedTable;
14
15
  this.referencer = referencer;
16
+ this.foreignKey = options?.foreignKey ?? true;
15
17
  }
16
18
  };
17
19
  var ExplicitRelationInit = class extends RelationInit {
@@ -22,7 +24,8 @@ var ExplicitRelationInit = class extends RelationInit {
22
24
  name,
23
25
  referencer: this.referencer,
24
26
  table: this.referencedTable,
25
- type: this.type
27
+ type: this.type,
28
+ foreignKey: this.foreignKey
26
29
  };
27
30
  }
28
31
  };
@@ -178,6 +181,20 @@ var VersionColumn = class extends Column {
178
181
  this.defaultTo(0).hidden();
179
182
  }
180
183
  };
184
+ function cloneColumn(col) {
185
+ let clonedCol;
186
+ if (col instanceof InternalIdColumn) clonedCol = new InternalIdColumn();
187
+ else if (col instanceof VersionColumn) clonedCol = new VersionColumn();
188
+ else if (col instanceof IdColumn) clonedCol = new IdColumn(col.type);
189
+ else clonedCol = new Column(col.type);
190
+ clonedCol.name = col.name;
191
+ clonedCol.isNullable = col.isNullable;
192
+ clonedCol.role = col.role;
193
+ clonedCol.isHidden = col.isHidden;
194
+ clonedCol.default = col.default;
195
+ clonedCol.tableName = col.tableName;
196
+ return clonedCol;
197
+ }
181
198
  function column(type) {
182
199
  return new Column(type);
183
200
  }
@@ -197,7 +214,7 @@ function referenceColumn() {
197
214
  * Input accepts string | FragnoId | null, output returns FragnoId.
198
215
  */
199
216
  function idColumn() {
200
- const col = new IdColumn("varchar(30)");
217
+ const col = new IdColumn("varchar(128)");
201
218
  col.role = "external-id";
202
219
  col.defaultTo$((b) => b.cuid());
203
220
  return col;
@@ -343,6 +360,18 @@ var TableBuilder = class {
343
360
  return this;
344
361
  }
345
362
  /**
363
+ * Alter an existing column.
364
+ */
365
+ alterColumn(name) {
366
+ return { nullable: (nullable) => {
367
+ const column$1 = this.#columns[name];
368
+ if (!column$1) throw new Error(`Unknown column name ${String(name)}`);
369
+ const updated = cloneColumn(column$1).nullable(nullable ?? true);
370
+ this.#columns[name] = updated;
371
+ return this;
372
+ } };
373
+ }
374
+ /**
346
375
  * Create an index on the specified columns.
347
376
  */
348
377
  createIndex(name, columns, options) {
@@ -438,6 +467,18 @@ var SchemaBuilder = class SchemaBuilder {
438
467
  if (this.#indexNames.has(name)) throw new Error(`Duplicate index name "${name}" in schema "${this.#name}". Index names must be unique across tables (conflict on "${tableName}").`);
439
468
  this.#indexNames.add(name);
440
469
  }
470
+ #rebindRelations(tableName, newTable) {
471
+ for (const table of Object.values(this.#tables)) for (const relation of Object.values(table.relations)) {
472
+ if (relation.table.name === tableName) relation.table = newTable;
473
+ if (relation.referencer.name === tableName) relation.referencer = newTable;
474
+ }
475
+ }
476
+ #isJoinColumnIndexed(table, columnName) {
477
+ const idColumnName = table.getIdColumn().name;
478
+ const internalIdColumnName = table.getInternalIdColumn().name;
479
+ if (columnName === idColumnName || columnName === internalIdColumnName) return true;
480
+ return Object.values(table.indexes).some((index) => index.columnNames.some((name) => name === columnName));
481
+ }
441
482
  /**
442
483
  * Add an existing schema to this builder.
443
484
  * Merges tables and operations from the provided schema.
@@ -484,18 +525,18 @@ var SchemaBuilder = class SchemaBuilder {
484
525
  subOperations.push({
485
526
  type: "add-column",
486
527
  columnName: colName,
487
- column: col
528
+ column: cloneColumn(col)
488
529
  });
489
530
  }
490
531
  if (builtTable.columns["_internalId"]) subOperations.push({
491
532
  type: "add-column",
492
533
  columnName: "_internalId",
493
- column: builtTable.columns["_internalId"]
534
+ column: cloneColumn(builtTable.columns["_internalId"])
494
535
  });
495
536
  if (builtTable.columns["_version"]) subOperations.push({
496
537
  type: "add-column",
497
538
  columnName: "_version",
498
- column: builtTable.columns["_version"]
539
+ column: cloneColumn(builtTable.columns["_version"])
499
540
  });
500
541
  for (const idx of result.getIndexes()) subOperations.push({
501
542
  type: "add-index",
@@ -550,6 +591,14 @@ var SchemaBuilder = class SchemaBuilder {
550
591
  * from: { table: "users", column: "invitedBy" },
551
592
  * to: { table: "users", column: "id" },
552
593
  * })
594
+ *
595
+ * // Join-only relation (no foreign key)
596
+ * .addReference("invitedUser", {
597
+ * type: "one",
598
+ * from: { table: "invitations", column: "email" },
599
+ * to: { table: "users", column: "email" },
600
+ * foreignKey: false,
601
+ * })
553
602
  * ```
554
603
  */
555
604
  addReference(referenceName, config) {
@@ -561,15 +610,24 @@ var SchemaBuilder = class SchemaBuilder {
561
610
  if (!referencedTable) throw new Error(`Referenced table ${config.to.table} not found in schema`);
562
611
  const columnName = config.from.column;
563
612
  const targetColumnName = config.to.column;
564
- const actualTargetColumnName = targetColumnName === "id" ? "_internalId" : targetColumnName;
613
+ const foreignKey = config.foreignKey !== false;
565
614
  const column$1 = table.columns[columnName];
566
- const referencedColumn = referencedTable.columns[actualTargetColumnName];
615
+ const targetColumn = referencedTable.columns[targetColumnName];
567
616
  if (!column$1) throw new Error(`Column ${columnName} not found in table ${config.from.table}`);
568
- if (!referencedColumn) throw new Error(`Column ${actualTargetColumnName} not found in table ${config.to.table}`);
617
+ if (!targetColumn) throw new Error(`Column ${targetColumnName} not found in table ${config.to.table}`);
618
+ const actualTargetColumnName = targetColumn.role === "external-id" ? referencedTable.getInternalIdColumn().name : targetColumnName;
619
+ if (!referencedTable.columns[actualTargetColumnName]) throw new Error(`Column ${actualTargetColumnName} not found in table ${config.to.table}`);
569
620
  if (table.relations[referenceName]) throw new Error(`Reference ${referenceName} already exists on table ${config.from.table}`);
570
621
  if (column$1.role === "reference" && column$1.type !== "bigint") throw new Error(`Reference column ${columnName} must be of type bigint to match internal ID type`);
571
- const init = new ExplicitRelationInit(config.type, referencedTable, table);
572
- init.on.push([columnName, targetColumnName]);
622
+ if (!foreignKey) {
623
+ const missingIndexes = [];
624
+ if (!this.#isJoinColumnIndexed(table, columnName)) missingIndexes.push(`${table.name}.${columnName}`);
625
+ if (!this.#isJoinColumnIndexed(referencedTable, actualTargetColumnName)) missingIndexes.push(`${referencedTable.name}.${actualTargetColumnName}`);
626
+ if (missingIndexes.length > 0) throw new Error(`Join-only relation "${referenceName}" requires indexed join columns: ${missingIndexes.join(", ")}.`);
627
+ }
628
+ const actualFromColumnName = !foreignKey && column$1.role === "external-id" ? table.getInternalIdColumn().name : columnName;
629
+ const init = new ExplicitRelationInit(config.type, referencedTable, table, { foreignKey });
630
+ init.on.push([actualFromColumnName, targetColumnName]);
573
631
  const relation = init.init(referenceName);
574
632
  table.relations[referenceName] = relation;
575
633
  this.#operations.push({
@@ -580,19 +638,20 @@ var SchemaBuilder = class SchemaBuilder {
580
638
  type: config.type,
581
639
  from: {
582
640
  table: config.from.table,
583
- column: columnName
641
+ column: actualFromColumnName
584
642
  },
585
643
  to: {
586
644
  table: config.to.table,
587
645
  column: actualTargetColumnName
588
- }
646
+ },
647
+ foreignKey
589
648
  }
590
649
  });
591
650
  return this;
592
651
  }
593
652
  /**
594
- * Alter an existing table by adding columns or indexes.
595
- * This is used for append-only schema modifications.
653
+ * Alter an existing table by adding columns, altering columns, or adding indexes.
654
+ * This is used for forward-only schema modifications.
596
655
  *
597
656
  * @param tableName - The name of the table to modify
598
657
  * @param callback - A callback that receives a table builder for adding columns/indexes
@@ -605,6 +664,7 @@ var SchemaBuilder = class SchemaBuilder {
605
664
  * .addColumn("id", idColumn())
606
665
  * .addColumn("name", column("string")))
607
666
  * .alterTable("users", t => t
667
+ * .alterColumn("name").nullable()
608
668
  * .addColumn("email", column("string"))
609
669
  * .addColumn("age", column("integer").nullable())
610
670
  * .createIndex("idx_email", ["email"]))
@@ -620,6 +680,8 @@ var SchemaBuilder = class SchemaBuilder {
620
680
  tableBuilder.setIndexes(table.indexes);
621
681
  const existingColumns = new Set(Object.keys(table.columns));
622
682
  const existingIndexes = new Set(Object.keys(table.indexes));
683
+ const existingColumnState = /* @__PURE__ */ new Map();
684
+ for (const [colName, col] of Object.entries(table.columns)) existingColumnState.set(colName, { isNullable: col.isNullable });
623
685
  const resultBuilder = callback(tableBuilder);
624
686
  const newTable = resultBuilder.build();
625
687
  const subOperations = [];
@@ -627,8 +689,20 @@ var SchemaBuilder = class SchemaBuilder {
627
689
  for (const colName of columnOrder) if (!existingColumns.has(colName)) subOperations.push({
628
690
  type: "add-column",
629
691
  columnName: colName,
630
- column: newTable.columns[colName]
692
+ column: cloneColumn(newTable.columns[colName])
631
693
  });
694
+ for (const [colName, previousState] of existingColumnState.entries()) {
695
+ const updatedColumn = newTable.columns[colName];
696
+ if (!updatedColumn) continue;
697
+ if (previousState.isNullable !== updatedColumn.isNullable) subOperations.push({
698
+ type: "update-column",
699
+ columnName: colName,
700
+ column: cloneColumn(updatedColumn),
701
+ updateNullable: true,
702
+ updateDefault: false,
703
+ updateDataType: false
704
+ });
705
+ }
632
706
  for (const idx of resultBuilder.getIndexes()) if (!existingIndexes.has(idx.name)) {
633
707
  if (this.#indexNames.has(idx.name)) throw new Error(`Duplicate index name "${idx.name}" in schema "${this.#name}". Index names must be unique across tables (conflict on "${tableName}").`);
634
708
  subOperations.push({
@@ -647,6 +721,7 @@ var SchemaBuilder = class SchemaBuilder {
647
721
  });
648
722
  }
649
723
  this.#tables[tableName] = newTable;
724
+ this.#rebindRelations(tableName, newTable);
650
725
  for (const idx of resultBuilder.getIndexes()) if (!existingIndexes.has(idx.name)) this.#indexNames.add(idx.name);
651
726
  for (const col of Object.values(newTable.columns)) col.tableName = newTable.name;
652
727
  return this;