@hot-updater/server 0.33.2 → 0.35.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 (216) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +0 -2
  2. package/dist/adapters/drizzle.cjs +195 -2
  3. package/dist/adapters/drizzle.d.cts +7 -4
  4. package/dist/adapters/drizzle.d.mts +7 -4
  5. package/dist/adapters/drizzle.mjs +194 -2
  6. package/dist/adapters/drizzleLazyDB.cjs +53 -0
  7. package/dist/adapters/drizzleLazyDB.mjs +53 -0
  8. package/dist/adapters/kysely.cjs +154 -3
  9. package/dist/adapters/kysely.d.cts +18 -10
  10. package/dist/adapters/kysely.d.mts +18 -10
  11. package/dist/adapters/kysely.mjs +153 -3
  12. package/dist/adapters/mongodb.cjs +183 -2
  13. package/dist/adapters/mongodb.d.cts +5 -4
  14. package/dist/adapters/mongodb.d.mts +5 -4
  15. package/dist/adapters/mongodb.mjs +183 -2
  16. package/dist/adapters/prisma.cjs +200 -2
  17. package/dist/adapters/prisma.d.cts +9 -4
  18. package/dist/adapters/prisma.d.mts +9 -4
  19. package/dist/adapters/prisma.mjs +199 -2
  20. package/dist/{runtime.cjs → createHotUpdaterCore.cjs} +34 -12
  21. package/dist/createHotUpdaterCore.d.cts +25 -0
  22. package/dist/createHotUpdaterCore.d.mts +25 -0
  23. package/dist/{runtime.mjs → createHotUpdaterCore.mjs} +34 -10
  24. package/dist/db/bundleRows.cjs +82 -0
  25. package/dist/db/bundleRows.d.cts +33 -0
  26. package/dist/db/bundleRows.d.mts +33 -0
  27. package/dist/db/bundleRows.mjs +79 -0
  28. package/dist/db/createBundleDiff.cjs +1 -1
  29. package/dist/db/createBundleDiff.mjs +1 -1
  30. package/dist/db/fixedMigrator.cjs +136 -0
  31. package/dist/db/fixedMigrator.mjs +135 -0
  32. package/dist/db/index.cjs +24 -42
  33. package/dist/db/index.d.cts +7 -26
  34. package/dist/db/index.d.mts +7 -26
  35. package/dist/db/index.mjs +19 -41
  36. package/dist/db/pluginCore.cjs +13 -5
  37. package/dist/db/pluginCore.mjs +13 -5
  38. package/dist/db/schema/mongodb.cjs +17 -0
  39. package/dist/db/schema/mongodb.mjs +17 -0
  40. package/dist/db/schema/registry.cjs +23 -0
  41. package/dist/db/schema/registry.mjs +18 -0
  42. package/dist/db/schema/sql.cjs +84 -0
  43. package/dist/db/schema/sql.mjs +78 -0
  44. package/dist/db/schema/sqlMigrations.cjs +74 -0
  45. package/dist/db/schema/sqlMigrations.mjs +73 -0
  46. package/dist/db/schema/sqlOperations.cjs +27 -0
  47. package/dist/db/schema/sqlOperations.mjs +26 -0
  48. package/dist/db/schemaEnhancements.cjs +1 -152
  49. package/dist/db/schemaEnhancements.mjs +1 -149
  50. package/dist/db/schemaGenerators.cjs +222 -0
  51. package/dist/db/schemaGenerators.mjs +220 -0
  52. package/dist/db/schemaReadiness.cjs +23 -0
  53. package/dist/db/schemaReadiness.d.cts +8 -0
  54. package/dist/db/schemaReadiness.d.mts +8 -0
  55. package/dist/db/schemaReadiness.mjs +22 -0
  56. package/dist/db/types.cjs +10 -2
  57. package/dist/db/types.d.cts +58 -14
  58. package/dist/db/types.d.mts +58 -14
  59. package/dist/db/types.mjs +9 -1
  60. package/dist/index.cjs +2 -6
  61. package/dist/index.d.cts +3 -5
  62. package/dist/index.d.mts +3 -5
  63. package/dist/index.mjs +2 -4
  64. package/dist/node.cjs +2 -0
  65. package/dist/node.d.cts +7 -3
  66. package/dist/node.d.mts +7 -3
  67. package/dist/node.mjs +2 -1
  68. package/dist/{packages/server/package.cjs → package.cjs} +1 -1
  69. package/dist/{packages/server/package.mjs → package.mjs} +1 -1
  70. package/dist/schema/dsl.cjs +86 -0
  71. package/dist/schema/dsl.mjs +73 -0
  72. package/dist/schema/index.cjs +13 -0
  73. package/dist/schema/index.mjs +13 -0
  74. package/dist/schema/settings.cjs +9 -0
  75. package/dist/schema/settings.mjs +9 -0
  76. package/dist/schema/types.cjs +6 -0
  77. package/dist/schema/types.mjs +5 -0
  78. package/dist/schema/v0_21_0.cjs +33 -18
  79. package/dist/schema/v0_21_0.mjs +32 -18
  80. package/dist/schema/v0_29_0.cjs +40 -20
  81. package/dist/schema/v0_29_0.mjs +39 -20
  82. package/dist/schema/v0_31_0.cjs +77 -43
  83. package/dist/schema/v0_31_0.mjs +75 -43
  84. package/dist/types/index.d.cts +1 -1
  85. package/dist/types/index.d.mts +1 -1
  86. package/dist/version.cjs +1 -1
  87. package/dist/version.mjs +1 -1
  88. package/package.json +34 -20
  89. package/src/adapters/drizzle.spec.ts +76 -0
  90. package/src/adapters/drizzle.ts +328 -12
  91. package/src/adapters/drizzleLazyDB.ts +151 -0
  92. package/src/adapters/kysely.spec.ts +107 -0
  93. package/src/adapters/kysely.ts +349 -14
  94. package/src/adapters/mongodb.ts +298 -15
  95. package/src/adapters/prisma.ts +337 -12
  96. package/src/createHotUpdaterCore.ts +168 -0
  97. package/src/db/bundleRows.ts +140 -0
  98. package/src/db/fixedMigrator.spec.ts +89 -0
  99. package/src/db/fixedMigrator.ts +288 -0
  100. package/src/db/hotUpdaterSchema.ts +6 -0
  101. package/src/db/index.spec.ts +983 -19
  102. package/src/db/index.ts +37 -108
  103. package/src/db/pluginCore.spec.ts +17 -11
  104. package/src/db/pluginCore.ts +15 -6
  105. package/src/db/schema/definitions.ts +1 -0
  106. package/src/db/schema/mongodb.ts +26 -0
  107. package/src/db/schema/registry.ts +55 -0
  108. package/src/db/schema/sql.ts +200 -0
  109. package/src/db/schema/sqlMigrations.ts +219 -0
  110. package/src/db/schema/sqlOperations.ts +62 -0
  111. package/src/db/schema/types.ts +1 -0
  112. package/src/db/schemaEnhancements.ts +0 -405
  113. package/src/db/schemaGenerators.ts +382 -0
  114. package/src/db/schemaReadiness.ts +33 -0
  115. package/src/db/types.ts +69 -25
  116. package/src/handler-standalone.integration.spec.ts +3 -2
  117. package/src/index.ts +9 -3
  118. package/src/node.spec.ts +50 -0
  119. package/src/node.ts +7 -3
  120. package/src/runtime.spec.ts +132 -1
  121. package/src/schema/dsl-all-versions.spec.ts +26 -0
  122. package/src/schema/dsl.ts +148 -0
  123. package/src/schema/index.ts +16 -0
  124. package/src/schema/settings.ts +15 -0
  125. package/src/schema/types.ts +73 -0
  126. package/src/schema/v0_21_0.ts +48 -18
  127. package/src/schema/v0_29_0.ts +58 -22
  128. package/src/schema/v0_31_0.spec.ts +73 -0
  129. package/src/schema/v0_31_0.ts +116 -54
  130. package/src/types/index.ts +1 -1
  131. package/dist/_virtual/_rolldown/runtime.mjs +0 -6
  132. package/dist/calculatePagination.cjs +0 -25
  133. package/dist/calculatePagination.mjs +0 -25
  134. package/dist/db/ormCore.cjs +0 -577
  135. package/dist/db/ormCore.d.cts +0 -110
  136. package/dist/db/ormCore.d.mts +0 -110
  137. package/dist/db/ormCore.mjs +0 -575
  138. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/_u64.cjs +0 -112
  139. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/_u64.mjs +0 -108
  140. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/cryptoNode.cjs +0 -22
  141. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/cryptoNode.mjs +0 -18
  142. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/sha3.cjs +0 -219
  143. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/sha3.mjs +0 -214
  144. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/utils.cjs +0 -275
  145. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/utils.mjs +0 -270
  146. package/dist/node_modules/.pnpm/@paralleldrive_cuid2@2.3.1/node_modules/@paralleldrive/cuid2/index.cjs +0 -17
  147. package/dist/node_modules/.pnpm/@paralleldrive_cuid2@2.3.1/node_modules/@paralleldrive/cuid2/index.mjs +0 -13
  148. package/dist/node_modules/.pnpm/@paralleldrive_cuid2@2.3.1/node_modules/@paralleldrive/cuid2/src/index.cjs +0 -69
  149. package/dist/node_modules/.pnpm/@paralleldrive_cuid2@2.3.1/node_modules/@paralleldrive/cuid2/src/index.mjs +0 -65
  150. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/column.cjs +0 -52
  151. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/column.mjs +0 -52
  152. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/entity.cjs +0 -16
  153. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/entity.mjs +0 -15
  154. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/pg-core/columns/enum.cjs +0 -7
  155. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/pg-core/columns/enum.mjs +0 -7
  156. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/sql/expressions/conditions.cjs +0 -92
  157. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/sql/expressions/conditions.mjs +0 -78
  158. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/sql/expressions/select.cjs +0 -11
  159. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/sql/expressions/select.mjs +0 -10
  160. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/sql/sql.cjs +0 -383
  161. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/sql/sql.mjs +0 -366
  162. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/subquery.cjs +0 -17
  163. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/subquery.mjs +0 -17
  164. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/table.cjs +0 -60
  165. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/table.mjs +0 -59
  166. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/table.utils.cjs +0 -4
  167. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/table.utils.mjs +0 -4
  168. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/tracing.cjs +0 -6
  169. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/tracing.mjs +0 -6
  170. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/view-common.cjs +0 -4
  171. package/dist/node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare_workers-types@4.20260611.1_@electric-sql_pglite@0.4.1_@l_601a3995dfc55b0b7fac93cbe1e76579/node_modules/drizzle-orm/view-common.mjs +0 -4
  172. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/adapters/drizzle/index.cjs +0 -383
  173. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/adapters/drizzle/index.d.cts +0 -12
  174. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/adapters/drizzle/index.d.mts +0 -12
  175. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/adapters/drizzle/index.mjs +0 -383
  176. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/adapters/kysely/index.cjs +0 -4
  177. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/adapters/kysely/index.mjs +0 -5
  178. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/adapters/prisma/index.cjs +0 -339
  179. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/adapters/prisma/index.d.cts +0 -70
  180. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/adapters/prisma/index.d.mts +0 -70
  181. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/adapters/prisma/index.mjs +0 -339
  182. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-7PZK4ONR.cjs +0 -57
  183. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-7PZK4ONR.mjs +0 -56
  184. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-C6OTUURW.cjs +0 -330
  185. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-C6OTUURW.mjs +0 -326
  186. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-CHTIKPQU.cjs +0 -166
  187. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-CHTIKPQU.mjs +0 -163
  188. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-GUE4GMNC.cjs +0 -14
  189. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-GUE4GMNC.mjs +0 -13
  190. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-LHHP6UVP.cjs +0 -24
  191. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-LHHP6UVP.mjs +0 -24
  192. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-LVCPMTAT.cjs +0 -1190
  193. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-LVCPMTAT.mjs +0 -1189
  194. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-PK2W2SQ7.cjs +0 -197
  195. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-PK2W2SQ7.mjs +0 -197
  196. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-ZEQMAIFI.cjs +0 -410
  197. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-ZEQMAIFI.mjs +0 -400
  198. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-ZOCGSAWS.cjs +0 -213
  199. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/chunk-ZOCGSAWS.mjs +0 -212
  200. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/create-tg0451Y_.d.cts +0 -285
  201. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/create-tg0451Y_.d.mts +0 -285
  202. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/index-CMqePMTF.d.cts +0 -45
  203. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/index-CMqePMTF.d.mts +0 -45
  204. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/index.cjs +0 -69
  205. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/index.d.cts +0 -49
  206. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/index.d.mts +0 -49
  207. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/index.mjs +0 -67
  208. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/query/index.d.cts +0 -156
  209. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/query/index.d.mts +0 -156
  210. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/schema/index.cjs +0 -1
  211. package/dist/node_modules/.pnpm/fumadb@0.2.2_mongodb@6.20.0_@aws-sdk_credential-providers@3.1066.0_socks@2.8.9__prisma@_ee79457f0e32f18f0beb5c2db02e4f73/node_modules/fumadb/dist/schema/index.mjs +0 -2
  212. package/dist/runtime.d.cts +0 -22
  213. package/dist/runtime.d.mts +0 -22
  214. package/src/db/ormCore.ts +0 -1059
  215. package/src/db/ormUpdateCheck.bench.ts +0 -262
  216. package/src/runtime.ts +0 -106
@@ -0,0 +1,89 @@
1
+ import { PGlite } from "@electric-sql/pglite";
2
+ import { Kysely } from "kysely";
3
+ import { PGliteDialect } from "kysely-pglite-dialect";
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+
6
+ import { createKyselyMigrator } from "./fixedMigrator";
7
+
8
+ interface SettingsDatabase {
9
+ readonly private_hot_updater_settings: {
10
+ readonly key: string;
11
+ readonly value: string;
12
+ };
13
+ }
14
+
15
+ describe("createKyselyMigrator", () => {
16
+ const databases: PGlite[] = [];
17
+ const kyselyInstances: Kysely<SettingsDatabase>[] = [];
18
+
19
+ afterEach(async () => {
20
+ for (const kysely of kyselyInstances.splice(0)) {
21
+ await kysely.destroy();
22
+ }
23
+ for (const db of databases.splice(0)) {
24
+ await db.close();
25
+ }
26
+ });
27
+
28
+ it("includes the schema version row in fresh standalone SQL", async () => {
29
+ const db = new PGlite();
30
+ databases.push(db);
31
+ const kysely = new Kysely<SettingsDatabase>({
32
+ dialect: new PGliteDialect(db),
33
+ });
34
+ kyselyInstances.push(kysely);
35
+ const migrator = createKyselyMigrator({
36
+ db: kysely,
37
+ provider: "postgresql",
38
+ });
39
+
40
+ const migration = await migrator.migrateToLatest({
41
+ mode: "from-schema",
42
+ updateSettings: false,
43
+ });
44
+
45
+ expect(migration.getSQL?.()).toContain(
46
+ "insert into private_hot_updater_settings (key, value) values ('version', '0.31.0')",
47
+ );
48
+ expect(migration.operations).not.toContainEqual(
49
+ expect.objectContaining({
50
+ sql: expect.stringContaining(
51
+ "insert into private_hot_updater_settings",
52
+ ),
53
+ }),
54
+ );
55
+ });
56
+
57
+ it("rejects unknown schema versions before writing settings", async () => {
58
+ const db = new PGlite();
59
+ databases.push(db);
60
+ const kysely = new Kysely<SettingsDatabase>({
61
+ dialect: new PGliteDialect(db),
62
+ });
63
+ kyselyInstances.push(kysely);
64
+ await db.exec(`
65
+ create table private_hot_updater_settings (
66
+ key text primary key,
67
+ value text not null
68
+ );
69
+ insert into private_hot_updater_settings (key, value)
70
+ values ('version', '0.20.0');
71
+ `);
72
+ const migrator = createKyselyMigrator({
73
+ db: kysely,
74
+ provider: "postgresql",
75
+ });
76
+
77
+ await expect(
78
+ migrator.migrateToLatest({
79
+ mode: "from-schema",
80
+ updateSettings: true,
81
+ }),
82
+ ).rejects.toThrow("Unsupported Hot Updater schema version: 0.20.0");
83
+
84
+ const version = await db.query<{ value: string }>(
85
+ "select value from private_hot_updater_settings where key = 'version'",
86
+ );
87
+ expect(version.rows[0]?.value).toBe("0.20.0");
88
+ });
89
+ });
@@ -0,0 +1,288 @@
1
+ import type { Kysely } from "kysely";
2
+ import type { MongoClient } from "mongodb";
3
+
4
+ import {
5
+ HOT_UPDATER_SCHEMA_VERSION,
6
+ HOT_UPDATER_SETTINGS_TABLE,
7
+ } from "../schema/types";
8
+ import { createMongoMigrationOperations } from "./schema/mongodb";
9
+ import {
10
+ hotUpdaterSchema,
11
+ schemaIndexAppliesToProvider,
12
+ } from "./schema/registry";
13
+ import { createTableSql } from "./schema/sql";
14
+ import { createV029AlterSql, createV031AlterSql } from "./schema/sqlMigrations";
15
+ import {
16
+ createSqlCreateOperations,
17
+ getSettingsInsertSql,
18
+ } from "./schema/sqlOperations";
19
+ import type {
20
+ MigrateOptions,
21
+ MigrationOperation,
22
+ MigrationResult,
23
+ Migrator,
24
+ ORMSQLProvider,
25
+ RelationMode,
26
+ } from "./types";
27
+
28
+ interface SettingsDatabase {
29
+ readonly private_hot_updater_settings: {
30
+ readonly key: string;
31
+ readonly value: string;
32
+ };
33
+ }
34
+
35
+ const getEmptyResult = (): MigrationResult => ({
36
+ operations: [],
37
+ execute: async () => {},
38
+ getSQL: () => "",
39
+ });
40
+
41
+ const assertSupportedMigrationMode = (options: MigrateOptions): void => {
42
+ if (options.mode === "from-database") {
43
+ throw new Error("Hot Updater migrations support only mode: 'from-schema'.");
44
+ }
45
+ };
46
+
47
+ const isMissingSettingsTableError = (error: unknown): boolean => {
48
+ if (!(error instanceof Error)) return false;
49
+ const message = error.message.toLowerCase();
50
+ return (
51
+ message.includes("private_hot_updater_settings") &&
52
+ (message.includes("does not exist") ||
53
+ message.includes("no such table") ||
54
+ message.includes("doesn't exist") ||
55
+ message.includes("not found"))
56
+ );
57
+ };
58
+
59
+ const isMongoNamespaceExistsError = (error: unknown): boolean => {
60
+ if (!(error instanceof Error)) return false;
61
+ const mongoError = error as { code?: unknown; codeName?: unknown };
62
+ return mongoError.code === 48 || mongoError.codeName === "NamespaceExists";
63
+ };
64
+
65
+ const ignoreExistingCollection = (error: unknown): undefined => {
66
+ if (isMongoNamespaceExistsError(error)) {
67
+ return undefined;
68
+ }
69
+ throw error;
70
+ };
71
+
72
+ const toCustomOperations = (
73
+ statements: readonly string[],
74
+ settingsOperation?: MigrationOperation,
75
+ ): MigrationOperation[] => [
76
+ ...statements.map(
77
+ (statement): MigrationOperation => ({
78
+ type: "custom",
79
+ sql: statement,
80
+ }),
81
+ ),
82
+ ...(settingsOperation ? [settingsOperation] : []),
83
+ ];
84
+
85
+ const assertSupportedSchemaVersion = (
86
+ currentVersion: string | undefined,
87
+ ): void => {
88
+ if (
89
+ currentVersion !== undefined &&
90
+ currentVersion !== "0.21.0" &&
91
+ currentVersion !== "0.29.0"
92
+ ) {
93
+ throw new Error(
94
+ `Unsupported Hot Updater schema version: ${currentVersion}`,
95
+ );
96
+ }
97
+ };
98
+
99
+ export const createKyselyMigrator = ({
100
+ db,
101
+ provider,
102
+ relationMode = "foreign-keys",
103
+ }: {
104
+ db: Kysely<SettingsDatabase>;
105
+ provider: ORMSQLProvider;
106
+ relationMode?: RelationMode;
107
+ }): Migrator => {
108
+ const getVersion = async (): Promise<string | undefined> => {
109
+ try {
110
+ const row = await db
111
+ .selectFrom(HOT_UPDATER_SETTINGS_TABLE)
112
+ .select("value")
113
+ .where("key", "=", "version")
114
+ .executeTakeFirst();
115
+ return typeof row?.value === "string" ? row.value : undefined;
116
+ } catch (error) {
117
+ if (!isMissingSettingsTableError(error)) throw error;
118
+ return undefined;
119
+ }
120
+ };
121
+
122
+ const makeResult = async (
123
+ options: MigrateOptions = {},
124
+ ): Promise<MigrationResult> => {
125
+ assertSupportedMigrationMode(options);
126
+
127
+ const currentVersion = await getVersion();
128
+ if (currentVersion === HOT_UPDATER_SCHEMA_VERSION) {
129
+ return getEmptyResult();
130
+ }
131
+ assertSupportedSchemaVersion(currentVersion);
132
+
133
+ const settingsStatement = getSettingsInsertSql(provider);
134
+ const settingsOperation =
135
+ options.updateSettings === false
136
+ ? undefined
137
+ : ({
138
+ type: "custom",
139
+ sql: settingsStatement,
140
+ } satisfies MigrationOperation);
141
+ const executableSettingsStatements =
142
+ options.updateSettings === false ? [] : [settingsStatement];
143
+ const statements =
144
+ currentVersion === undefined
145
+ ? [...createTableSql(provider, relationMode), settingsStatement]
146
+ : [
147
+ ...(currentVersion === "0.21.0"
148
+ ? createV029AlterSql(provider)
149
+ : []),
150
+ ...(currentVersion === "0.21.0" || currentVersion === "0.29.0"
151
+ ? createV031AlterSql(provider, relationMode)
152
+ : []),
153
+ ...executableSettingsStatements,
154
+ ];
155
+ const operations =
156
+ currentVersion === undefined
157
+ ? createSqlCreateOperations(provider, relationMode, settingsOperation)
158
+ : toCustomOperations(
159
+ [
160
+ ...(currentVersion === "0.21.0"
161
+ ? createV029AlterSql(provider)
162
+ : []),
163
+ ...(currentVersion === "0.21.0" || currentVersion === "0.29.0"
164
+ ? createV031AlterSql(provider, relationMode)
165
+ : []),
166
+ ],
167
+ settingsOperation,
168
+ );
169
+
170
+ return {
171
+ operations,
172
+ getSQL: () => statements.map((statement) => `${statement};`).join("\n\n"),
173
+ execute: async () => {
174
+ const { sql } = await import("kysely");
175
+ for (const statement of statements) {
176
+ await sql.raw(statement).execute(db);
177
+ }
178
+ },
179
+ };
180
+ };
181
+
182
+ return {
183
+ getVersion,
184
+ getNameVariants: async () => undefined,
185
+ next: async () =>
186
+ (await getVersion()) === HOT_UPDATER_SCHEMA_VERSION
187
+ ? undefined
188
+ : { version: HOT_UPDATER_SCHEMA_VERSION },
189
+ previous: async () => undefined,
190
+ up: makeResult,
191
+ down: async () => {
192
+ throw new Error("No previous schema to migrate to.");
193
+ },
194
+ migrateTo: async (version, options) => {
195
+ if (version !== HOT_UPDATER_SCHEMA_VERSION) {
196
+ throw new Error(`Invalid version ${version}`);
197
+ }
198
+ return makeResult(options);
199
+ },
200
+ migrateToLatest: makeResult,
201
+ };
202
+ };
203
+
204
+ export const createMongoMigrator = (client: MongoClient): Migrator => {
205
+ const settings = client
206
+ .db()
207
+ .collection<{ key: string; value: unknown }>(HOT_UPDATER_SETTINGS_TABLE);
208
+ const getVersion = async (): Promise<string | undefined> => {
209
+ const row = await settings.findOne({ key: "version" });
210
+ return typeof row?.value === "string" ? row.value : undefined;
211
+ };
212
+ const makeResult = async (
213
+ options: MigrateOptions = {},
214
+ ): Promise<MigrationResult> => {
215
+ assertSupportedMigrationMode(options);
216
+
217
+ if ((await getVersion()) === HOT_UPDATER_SCHEMA_VERSION) {
218
+ return getEmptyResult();
219
+ }
220
+ const settingsOperation =
221
+ options.updateSettings === false
222
+ ? undefined
223
+ : ({
224
+ type: "custom",
225
+ key: "version",
226
+ value: HOT_UPDATER_SCHEMA_VERSION,
227
+ } satisfies MigrationOperation);
228
+ return {
229
+ operations: createMongoMigrationOperations(settingsOperation),
230
+ execute: async () => {
231
+ const db = client.db();
232
+ for (const table of hotUpdaterSchema.tables) {
233
+ if (table.internal) continue;
234
+ await db
235
+ .createCollection(table.ormName)
236
+ .catch(ignoreExistingCollection);
237
+ }
238
+ await db.collection("bundles").createIndex(
239
+ { id: 1 },
240
+ {
241
+ name: "bundles_id_idx",
242
+ },
243
+ );
244
+ for (const table of hotUpdaterSchema.tables) {
245
+ if (table.internal) continue;
246
+ for (const index of (table.indexes ?? []).filter((item) =>
247
+ schemaIndexAppliesToProvider(item, "mongodb"),
248
+ )) {
249
+ await db
250
+ .collection(table.ormName)
251
+ .createIndex(
252
+ Object.fromEntries(index.columns.map((column) => [column, 1])),
253
+ { name: index.name },
254
+ );
255
+ }
256
+ }
257
+ if (options.updateSettings !== false) {
258
+ await settings.updateOne(
259
+ { key: "version" },
260
+ { $set: { value: HOT_UPDATER_SCHEMA_VERSION } },
261
+ { upsert: true },
262
+ );
263
+ }
264
+ },
265
+ };
266
+ };
267
+
268
+ return {
269
+ getVersion,
270
+ getNameVariants: async () => undefined,
271
+ next: async () =>
272
+ (await getVersion()) === HOT_UPDATER_SCHEMA_VERSION
273
+ ? undefined
274
+ : { version: HOT_UPDATER_SCHEMA_VERSION },
275
+ previous: async () => undefined,
276
+ up: makeResult,
277
+ down: async () => {
278
+ throw new Error("No previous schema to migrate to.");
279
+ },
280
+ migrateTo: async (version, options) => {
281
+ if (version !== HOT_UPDATER_SCHEMA_VERSION) {
282
+ throw new Error(`Invalid version ${version}`);
283
+ }
284
+ return makeResult(options);
285
+ },
286
+ migrateToLatest: makeResult,
287
+ };
288
+ };
@@ -0,0 +1,6 @@
1
+ export * from "../schema";
2
+ export * from "./schema/mongodb";
3
+ export * from "./schema/registry";
4
+ export * from "./schema/sql";
5
+ export * from "./schema/sqlMigrations";
6
+ export * from "./schema/sqlOperations";