@hot-updater/server 0.33.1 → 0.34.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 (198) 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/db/bundleRows.cjs +82 -0
  21. package/dist/db/bundleRows.d.cts +33 -0
  22. package/dist/db/bundleRows.d.mts +33 -0
  23. package/dist/db/bundleRows.mjs +79 -0
  24. package/dist/db/fixedMigrator.cjs +136 -0
  25. package/dist/db/fixedMigrator.mjs +135 -0
  26. package/dist/db/index.cjs +17 -15
  27. package/dist/db/index.d.cts +3 -3
  28. package/dist/db/index.d.mts +3 -3
  29. package/dist/db/index.mjs +17 -15
  30. package/dist/db/pluginCore.cjs +13 -5
  31. package/dist/db/pluginCore.mjs +13 -5
  32. package/dist/db/schema/mongodb.cjs +17 -0
  33. package/dist/db/schema/mongodb.mjs +17 -0
  34. package/dist/db/schema/registry.cjs +23 -0
  35. package/dist/db/schema/registry.mjs +18 -0
  36. package/dist/db/schema/sql.cjs +84 -0
  37. package/dist/db/schema/sql.mjs +78 -0
  38. package/dist/db/schema/sqlMigrations.cjs +74 -0
  39. package/dist/db/schema/sqlMigrations.mjs +73 -0
  40. package/dist/db/schema/sqlOperations.cjs +27 -0
  41. package/dist/db/schema/sqlOperations.mjs +26 -0
  42. package/dist/db/schemaEnhancements.cjs +1 -152
  43. package/dist/db/schemaEnhancements.mjs +1 -149
  44. package/dist/db/schemaGenerators.cjs +222 -0
  45. package/dist/db/schemaGenerators.mjs +220 -0
  46. package/dist/db/schemaReadiness.cjs +23 -0
  47. package/dist/db/schemaReadiness.d.cts +8 -0
  48. package/dist/db/schemaReadiness.d.mts +8 -0
  49. package/dist/db/schemaReadiness.mjs +22 -0
  50. package/dist/db/types.cjs +10 -2
  51. package/dist/db/types.d.cts +58 -14
  52. package/dist/db/types.d.mts +58 -14
  53. package/dist/db/types.mjs +9 -1
  54. package/dist/index.cjs +2 -2
  55. package/dist/index.d.cts +3 -2
  56. package/dist/index.d.mts +3 -2
  57. package/dist/index.mjs +2 -2
  58. package/dist/{packages/server/package.cjs → package.cjs} +1 -1
  59. package/dist/{packages/server/package.mjs → package.mjs} +1 -1
  60. package/dist/runtime.cjs +9 -2
  61. package/dist/runtime.mjs +9 -2
  62. package/dist/schema/dsl.cjs +86 -0
  63. package/dist/schema/dsl.mjs +73 -0
  64. package/dist/schema/index.cjs +13 -0
  65. package/dist/schema/index.mjs +13 -0
  66. package/dist/schema/settings.cjs +9 -0
  67. package/dist/schema/settings.mjs +9 -0
  68. package/dist/schema/types.cjs +6 -0
  69. package/dist/schema/types.mjs +5 -0
  70. package/dist/schema/v0_21_0.cjs +33 -18
  71. package/dist/schema/v0_21_0.mjs +32 -18
  72. package/dist/schema/v0_29_0.cjs +40 -20
  73. package/dist/schema/v0_29_0.mjs +39 -20
  74. package/dist/schema/v0_31_0.cjs +77 -43
  75. package/dist/schema/v0_31_0.mjs +75 -43
  76. package/dist/version.cjs +1 -1
  77. package/dist/version.mjs +1 -1
  78. package/package.json +30 -16
  79. package/src/adapters/drizzle.spec.ts +75 -0
  80. package/src/adapters/drizzle.ts +328 -12
  81. package/src/adapters/drizzleLazyDB.ts +151 -0
  82. package/src/adapters/kysely.spec.ts +107 -0
  83. package/src/adapters/kysely.ts +349 -14
  84. package/src/adapters/mongodb.ts +298 -15
  85. package/src/adapters/prisma.ts +337 -12
  86. package/src/db/bundleRows.ts +140 -0
  87. package/src/db/fixedMigrator.spec.ts +89 -0
  88. package/src/db/fixedMigrator.ts +288 -0
  89. package/src/db/hotUpdaterSchema.ts +6 -0
  90. package/src/db/index.spec.ts +976 -13
  91. package/src/db/index.ts +37 -36
  92. package/src/db/pluginCore.spec.ts +17 -11
  93. package/src/db/pluginCore.ts +15 -6
  94. package/src/db/schema/definitions.ts +1 -0
  95. package/src/db/schema/mongodb.ts +26 -0
  96. package/src/db/schema/registry.ts +55 -0
  97. package/src/db/schema/sql.ts +200 -0
  98. package/src/db/schema/sqlMigrations.ts +219 -0
  99. package/src/db/schema/sqlOperations.ts +62 -0
  100. package/src/db/schema/types.ts +1 -0
  101. package/src/db/schemaEnhancements.ts +0 -405
  102. package/src/db/schemaGenerators.ts +382 -0
  103. package/src/db/schemaReadiness.ts +33 -0
  104. package/src/db/types.ts +69 -25
  105. package/src/runtime.spec.ts +70 -0
  106. package/src/runtime.ts +14 -2
  107. package/src/schema/dsl-all-versions.spec.ts +26 -0
  108. package/src/schema/dsl.ts +148 -0
  109. package/src/schema/index.ts +16 -0
  110. package/src/schema/settings.ts +15 -0
  111. package/src/schema/types.ts +73 -0
  112. package/src/schema/v0_21_0.ts +48 -18
  113. package/src/schema/v0_29_0.ts +58 -22
  114. package/src/schema/v0_31_0.spec.ts +73 -0
  115. package/src/schema/v0_31_0.ts +116 -54
  116. package/dist/_virtual/_rolldown/runtime.mjs +0 -6
  117. package/dist/calculatePagination.cjs +0 -25
  118. package/dist/calculatePagination.mjs +0 -25
  119. package/dist/db/ormCore.cjs +0 -577
  120. package/dist/db/ormCore.d.cts +0 -110
  121. package/dist/db/ormCore.d.mts +0 -110
  122. package/dist/db/ormCore.mjs +0 -575
  123. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/_u64.cjs +0 -112
  124. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/_u64.mjs +0 -108
  125. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/cryptoNode.cjs +0 -22
  126. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/cryptoNode.mjs +0 -18
  127. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/sha3.cjs +0 -219
  128. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/sha3.mjs +0 -214
  129. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/utils.cjs +0 -275
  130. package/dist/node_modules/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/utils.mjs +0 -270
  131. package/dist/node_modules/.pnpm/@paralleldrive_cuid2@2.3.1/node_modules/@paralleldrive/cuid2/index.cjs +0 -17
  132. package/dist/node_modules/.pnpm/@paralleldrive_cuid2@2.3.1/node_modules/@paralleldrive/cuid2/index.mjs +0 -13
  133. package/dist/node_modules/.pnpm/@paralleldrive_cuid2@2.3.1/node_modules/@paralleldrive/cuid2/src/index.cjs +0 -69
  134. package/dist/node_modules/.pnpm/@paralleldrive_cuid2@2.3.1/node_modules/@paralleldrive/cuid2/src/index.mjs +0 -65
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. 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
  149. 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
  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/table.mjs +0 -59
  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/table.utils.cjs +0 -4
  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/table.utils.mjs +0 -4
  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/tracing.cjs +0 -6
  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/tracing.mjs +0 -6
  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/view-common.cjs +0 -4
  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/view-common.mjs +0 -4
  157. 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
  158. 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
  159. 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
  160. 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
  161. 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
  162. 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
  163. 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
  164. 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
  165. 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
  166. 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
  167. 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
  168. 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
  169. 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
  170. 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
  171. 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
  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/chunk-CHTIKPQU.mjs +0 -163
  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/chunk-GUE4GMNC.cjs +0 -14
  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/chunk-GUE4GMNC.mjs +0 -13
  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/chunk-LHHP6UVP.cjs +0 -24
  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/chunk-LHHP6UVP.mjs +0 -24
  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/chunk-LVCPMTAT.cjs +0 -1190
  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/chunk-LVCPMTAT.mjs +0 -1189
  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/chunk-PK2W2SQ7.cjs +0 -197
  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/chunk-PK2W2SQ7.mjs +0 -197
  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/chunk-ZEQMAIFI.cjs +0 -410
  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-ZEQMAIFI.mjs +0 -400
  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-ZOCGSAWS.cjs +0 -213
  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-ZOCGSAWS.mjs +0 -212
  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/create-tg0451Y_.d.cts +0 -285
  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/create-tg0451Y_.d.mts +0 -285
  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/index-CMqePMTF.d.cts +0 -45
  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/index-CMqePMTF.d.mts +0 -45
  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/index.cjs +0 -69
  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/index.d.cts +0 -49
  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/index.d.mts +0 -49
  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/index.mjs +0 -67
  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/query/index.d.cts +0 -156
  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/query/index.d.mts +0 -156
  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/schema/index.cjs +0 -1
  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/schema/index.mjs +0 -2
  197. package/src/db/ormCore.ts +0 -1059
  198. package/src/db/ormUpdateCheck.bench.ts +0 -262
@@ -1,330 +0,0 @@
1
- require("../../../../../../_virtual/_rolldown/runtime.cjs");
2
- const require_chunk_7PZK4ONR = require("./chunk-7PZK4ONR.cjs");
3
- const require_chunk_ZEQMAIFI = require("./chunk-ZEQMAIFI.cjs");
4
- let semver = require("semver");
5
- //#region ../../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.js
6
- function isUpdated(op) {
7
- return op.updateDataType || op.updateDefault || op.updateNullable;
8
- }
9
- function generateMigrationFromSchema(old, schema2, options) {
10
- const { provider, relationMode = provider === "mssql" || provider === "mongodb" ? "fumadb" : "foreign-keys", dropUnusedTables = true, dropUnusedColumns = true } = options;
11
- function getName(names) {
12
- return provider === "mongodb" ? names.mongodb : names.sql;
13
- }
14
- function columnActionToOperation(tableName, actions) {
15
- if (actions.length === 0) return [];
16
- if (provider === "mysql" || provider === "postgresql" || provider === "mongodb") return [{
17
- type: "update-table",
18
- name: tableName,
19
- value: actions
20
- }];
21
- return actions.map((action) => ({
22
- type: "update-table",
23
- name: tableName,
24
- value: [action]
25
- }));
26
- }
27
- function onUniqueConstraintCheck(prev, next) {
28
- const operations = [];
29
- const newConstraints = next.getUniqueConstraints();
30
- const oldConstraints = prev.getUniqueConstraints();
31
- for (const con of newConstraints) {
32
- const oldCon = oldConstraints.find((item) => item.name === con.name);
33
- const columnNames = con.columns.map((col) => getName(col.names));
34
- if (!oldCon) {
35
- operations.push({
36
- type: "add-unique-constraint",
37
- name: con.name,
38
- table: getName(next.names),
39
- columns: columnNames
40
- });
41
- continue;
42
- }
43
- if (require_chunk_ZEQMAIFI.deepEqual(columnNames, oldCon.columns.map((col) => getName(col.names)))) continue;
44
- operations.push({
45
- type: "drop-unique-constraint",
46
- table: getName(next.names),
47
- name: con.name
48
- }, {
49
- type: "add-unique-constraint",
50
- table: getName(next.names),
51
- name: con.name,
52
- columns: columnNames
53
- });
54
- }
55
- for (const con of oldConstraints) if (newConstraints.every((item) => item.name !== con.name)) operations.push({
56
- type: "drop-unique-constraint",
57
- table: getName(next.names),
58
- name: con.name
59
- });
60
- return operations;
61
- }
62
- function onTableRenameCheck(oldTable, newTable) {
63
- const operations = [];
64
- if (getName(newTable.names) !== getName(oldTable.names)) operations.push({
65
- type: "rename-table",
66
- from: getName(oldTable.names),
67
- to: getName(newTable.names),
68
- enforce: "pre"
69
- });
70
- return operations;
71
- }
72
- function onTableColumnsCheck(oldTable, newTable) {
73
- const colActions = [];
74
- for (const column of Object.values(newTable.columns)) {
75
- let hashDefaultValue2 = function(col) {
76
- if (!col.default || "runtime" in col.default) return;
77
- if (col.type === "string" && provider === "mysql") return;
78
- return col.default.value;
79
- };
80
- const oldColumn = oldTable.columns[column.ormName];
81
- if (!oldColumn) {
82
- colActions.push({
83
- type: "create-column",
84
- value: column
85
- });
86
- continue;
87
- }
88
- if (getName(column.names) !== getName(oldColumn.names)) colActions.push({
89
- type: "rename-column",
90
- from: getName(oldColumn.names),
91
- to: getName(column.names)
92
- });
93
- const action = {
94
- type: "update-column",
95
- name: getName(column.names),
96
- updateDataType: column.type !== oldColumn.type,
97
- updateDefault: !require_chunk_ZEQMAIFI.deepEqual(hashDefaultValue2(column), hashDefaultValue2(oldColumn)),
98
- updateNullable: column.isNullable !== oldColumn.isNullable,
99
- value: column
100
- };
101
- if (isUpdated(action)) colActions.push(action);
102
- }
103
- return columnActionToOperation(getName(newTable.names), colActions);
104
- }
105
- function onTableForeignKeyCheck(oldTable, newTable) {
106
- const tableName = getName(newTable.names);
107
- const operations = [];
108
- if (relationMode === "fumadb") return operations;
109
- for (const foreignKey of newTable.foreignKeys) {
110
- const compiled = require_chunk_ZEQMAIFI.compileForeignKey(foreignKey, "sql");
111
- const oldKey = oldTable.foreignKeys.find((key) => key.name === foreignKey.name);
112
- if (!oldKey) {
113
- operations.push({
114
- type: "add-foreign-key",
115
- table: tableName,
116
- value: compiled,
117
- enforce: "post"
118
- });
119
- continue;
120
- }
121
- if (!require_chunk_ZEQMAIFI.deepEqual(compiled, require_chunk_ZEQMAIFI.compileForeignKey(oldKey, "sql"))) operations.push({
122
- type: "drop-foreign-key",
123
- name: oldKey.name,
124
- table: tableName,
125
- enforce: "post"
126
- }, {
127
- type: "add-foreign-key",
128
- table: tableName,
129
- value: compiled,
130
- enforce: "post"
131
- });
132
- }
133
- return operations;
134
- }
135
- function onTableUnusedForeignKeyCheck(oldTable, newTable) {
136
- const operations = [];
137
- for (const oldKey of oldTable.foreignKeys) {
138
- if (!newTable.foreignKeys.every((key) => key.name !== oldKey.name)) continue;
139
- operations.push({
140
- type: "drop-foreign-key",
141
- name: oldKey.name,
142
- table: getName(oldTable.names),
143
- enforce: "pre"
144
- });
145
- }
146
- return operations;
147
- }
148
- function onTableUnusedColumnsCheck(oldTable, newTable) {
149
- const constraints = newTable.getUniqueConstraints();
150
- const operations = [];
151
- for (const oldColumn of Object.values(oldTable.columns)) {
152
- const isUnused = !newTable.columns[oldColumn.ormName];
153
- const isRequired = !oldColumn.isNullable && !oldColumn.default;
154
- if (!(isUnused && (dropUnusedColumns || isRequired))) continue;
155
- if (provider === "mssql" && oldColumn.isUnique) for (const con of constraints) {
156
- if (con.columns.every((col) => col.ormName !== oldColumn.ormName)) continue;
157
- operations.push({
158
- type: "drop-unique-constraint",
159
- name: con.name,
160
- table: getName(newTable.names)
161
- });
162
- }
163
- operations.push({
164
- type: "update-table",
165
- name: getName(newTable.names),
166
- value: [{
167
- type: "drop-column",
168
- name: getName(oldColumn.names)
169
- }],
170
- enforce: "post"
171
- });
172
- }
173
- return operations;
174
- }
175
- function reorder(operations) {
176
- const out = [];
177
- for (const item of operations) if (item.enforce === "pre") out.push(item);
178
- for (const item of operations) if (!item.enforce) out.push(item);
179
- for (const item of operations) if (item.enforce === "post") out.push(item);
180
- return out;
181
- }
182
- function generate() {
183
- const operations = [];
184
- for (const table of Object.values(schema2.tables)) {
185
- const oldTable = old.tables[table.ormName];
186
- if (!oldTable) {
187
- operations.push({
188
- type: "create-table",
189
- value: table
190
- });
191
- continue;
192
- }
193
- operations.push(...onTableUnusedForeignKeyCheck(oldTable, table), ...onTableRenameCheck(oldTable, table), ...onTableColumnsCheck(oldTable, table), ...onUniqueConstraintCheck(oldTable, table), ...onTableForeignKeyCheck(oldTable, table), ...onTableUnusedColumnsCheck(oldTable, table));
194
- }
195
- for (const oldTable of Object.values(old.tables)) if (!schema2.tables[oldTable.ormName] && dropUnusedTables) operations.push({
196
- type: "drop-table",
197
- name: getName(oldTable.names),
198
- enforce: "post"
199
- });
200
- return reorder(operations);
201
- }
202
- return generate();
203
- }
204
- function createMigrator({ settings, generateMigrationFromDatabase, generateMigrationFromSchema: generateMigrationFromSchema2 = generateMigrationFromSchema, libConfig: { schemas, initialVersion = "0.0.0" }, userConfig, executor, sql: sqlConfig, transformers = [] }) {
205
- const indexedSchemas = /* @__PURE__ */ new Map();
206
- indexedSchemas.set(initialVersion, require_chunk_ZEQMAIFI.schema({
207
- version: initialVersion,
208
- tables: {}
209
- }));
210
- for (const schema2 of schemas) {
211
- if (indexedSchemas.has(schema2.version)) throw new Error(`Duplicated version: ${schema2.version}`);
212
- indexedSchemas.set(schema2.version, schema2);
213
- }
214
- function getSchemaByVersion(version) {
215
- const schema2 = indexedSchemas.get(version);
216
- if (!schema2) throw new Error(`Invalid version ${version}`);
217
- return schema2;
218
- }
219
- async function getCurrentSchema() {
220
- const version = await settings.getVersion() ?? initialVersion;
221
- const nameVariants = await settings.getNameVariants();
222
- let schema2 = getSchemaByVersion(version);
223
- if (nameVariants) schema2 = require_chunk_7PZK4ONR.applyNameVariants(schema2, nameVariants);
224
- return schema2;
225
- }
226
- function getSchemasOfVariant(variant) {
227
- return schemas.filter((schema2) => require_chunk_ZEQMAIFI.deepEqual((0, semver.parse)(schema2.version).prerelease, variant));
228
- }
229
- return {
230
- getVersion() {
231
- return settings.getVersion();
232
- },
233
- getNameVariants() {
234
- return settings.getNameVariants();
235
- },
236
- async next() {
237
- const version = await settings.getVersion() ?? initialVersion;
238
- const list = getSchemasOfVariant((0, semver.parse)(version).prerelease);
239
- return list[list.findIndex((schema2) => schema2.version === version) + 1];
240
- },
241
- async previous() {
242
- const version = await settings.getVersion();
243
- if (!version) return;
244
- const list = getSchemasOfVariant((0, semver.parse)(version).prerelease);
245
- return list[list.findIndex((schema2) => schema2.version === version) - 1];
246
- },
247
- async up(options = {}) {
248
- const next = await this.next();
249
- if (!next) throw new Error("Already up to date.");
250
- return this.migrateTo(next.version, options);
251
- },
252
- async down(options = {}) {
253
- const prev = await this.previous();
254
- if (!prev) throw new Error("No previous schema to migrate to.");
255
- return this.migrateTo(prev.version, options);
256
- },
257
- async migrateTo(version, options = {}) {
258
- const { updateSettings: updateVersion = true, unsafe = false, mode = "from-schema" } = options;
259
- const targetSchema = getSchemaByVersion(version);
260
- const currentSchema = await getCurrentSchema();
261
- let run;
262
- const prevVariant = (0, semver.parse)(targetSchema.version).prerelease;
263
- const variant = (0, semver.parse)(currentSchema.version).prerelease;
264
- if (require_chunk_ZEQMAIFI.deepEqual(prevVariant, variant)) {
265
- const list = getSchemasOfVariant(variant);
266
- const targetIdx = list.indexOf(targetSchema);
267
- switch (currentSchema.version) {
268
- case list[targetIdx - 1]?.version:
269
- run = targetSchema.up;
270
- break;
271
- case list[targetIdx + 1]?.version:
272
- run = targetSchema.down;
273
- break;
274
- }
275
- }
276
- run ??= (context2) => context2.auto();
277
- let operations = await run({ async auto() {
278
- let generated;
279
- if (mode === "from-schema") generated = generateMigrationFromSchema2(currentSchema, targetSchema, userConfig);
280
- else {
281
- if (!generateMigrationFromDatabase) throw new Error(`${mode} is not supported for this adapter.`);
282
- generated = await generateMigrationFromDatabase({
283
- target: targetSchema,
284
- dropUnusedColumns: unsafe
285
- });
286
- }
287
- for (const transformer of transformers) {
288
- if (!transformer.afterAuto) continue;
289
- generated = transformer.afterAuto(generated, {
290
- prev: currentSchema,
291
- next: targetSchema,
292
- options
293
- });
294
- }
295
- return generated;
296
- } });
297
- if (updateVersion) operations.push(...await settings.updateSettingsInMigration(targetSchema));
298
- for (const transformer of transformers) {
299
- if (!transformer.afterAll) continue;
300
- operations = transformer.afterAll(operations, {
301
- prev: currentSchema,
302
- next: targetSchema
303
- });
304
- }
305
- return {
306
- operations,
307
- getSQL: sqlConfig ? () => sqlConfig.toSql(operations) : void 0,
308
- execute: () => executor(operations)
309
- };
310
- },
311
- async migrateToLatest(options) {
312
- const last = getSchemasOfVariant((0, semver.parse)(await settings.getVersion() ?? initialVersion).prerelease).at(-1);
313
- if (!last) throw new Error(`Cannot find other schemas`);
314
- return this.migrateTo(last.version, options);
315
- }
316
- };
317
- }
318
- function exportNameVariants(schema2) {
319
- const out = {};
320
- for (const table of Object.values(schema2.tables)) {
321
- out[table.ormName] = table.names;
322
- for (const col of Object.values(table.columns)) out[`${table.ormName}.${col.ormName}`] = col.names;
323
- }
324
- return out;
325
- }
326
- //#endregion
327
- exports.createMigrator = createMigrator;
328
- exports.exportNameVariants = exportNameVariants;
329
- exports.generateMigrationFromSchema = generateMigrationFromSchema;
330
- exports.isUpdated = isUpdated;
@@ -1,326 +0,0 @@
1
- import { applyNameVariants } from "./chunk-7PZK4ONR.mjs";
2
- import { compileForeignKey, deepEqual, schema } from "./chunk-ZEQMAIFI.mjs";
3
- import { parse } from "semver";
4
- //#region ../../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.js
5
- function isUpdated(op) {
6
- return op.updateDataType || op.updateDefault || op.updateNullable;
7
- }
8
- function generateMigrationFromSchema(old, schema2, options) {
9
- const { provider, relationMode = provider === "mssql" || provider === "mongodb" ? "fumadb" : "foreign-keys", dropUnusedTables = true, dropUnusedColumns = true } = options;
10
- function getName(names) {
11
- return provider === "mongodb" ? names.mongodb : names.sql;
12
- }
13
- function columnActionToOperation(tableName, actions) {
14
- if (actions.length === 0) return [];
15
- if (provider === "mysql" || provider === "postgresql" || provider === "mongodb") return [{
16
- type: "update-table",
17
- name: tableName,
18
- value: actions
19
- }];
20
- return actions.map((action) => ({
21
- type: "update-table",
22
- name: tableName,
23
- value: [action]
24
- }));
25
- }
26
- function onUniqueConstraintCheck(prev, next) {
27
- const operations = [];
28
- const newConstraints = next.getUniqueConstraints();
29
- const oldConstraints = prev.getUniqueConstraints();
30
- for (const con of newConstraints) {
31
- const oldCon = oldConstraints.find((item) => item.name === con.name);
32
- const columnNames = con.columns.map((col) => getName(col.names));
33
- if (!oldCon) {
34
- operations.push({
35
- type: "add-unique-constraint",
36
- name: con.name,
37
- table: getName(next.names),
38
- columns: columnNames
39
- });
40
- continue;
41
- }
42
- if (deepEqual(columnNames, oldCon.columns.map((col) => getName(col.names)))) continue;
43
- operations.push({
44
- type: "drop-unique-constraint",
45
- table: getName(next.names),
46
- name: con.name
47
- }, {
48
- type: "add-unique-constraint",
49
- table: getName(next.names),
50
- name: con.name,
51
- columns: columnNames
52
- });
53
- }
54
- for (const con of oldConstraints) if (newConstraints.every((item) => item.name !== con.name)) operations.push({
55
- type: "drop-unique-constraint",
56
- table: getName(next.names),
57
- name: con.name
58
- });
59
- return operations;
60
- }
61
- function onTableRenameCheck(oldTable, newTable) {
62
- const operations = [];
63
- if (getName(newTable.names) !== getName(oldTable.names)) operations.push({
64
- type: "rename-table",
65
- from: getName(oldTable.names),
66
- to: getName(newTable.names),
67
- enforce: "pre"
68
- });
69
- return operations;
70
- }
71
- function onTableColumnsCheck(oldTable, newTable) {
72
- const colActions = [];
73
- for (const column of Object.values(newTable.columns)) {
74
- let hashDefaultValue2 = function(col) {
75
- if (!col.default || "runtime" in col.default) return;
76
- if (col.type === "string" && provider === "mysql") return;
77
- return col.default.value;
78
- };
79
- const oldColumn = oldTable.columns[column.ormName];
80
- if (!oldColumn) {
81
- colActions.push({
82
- type: "create-column",
83
- value: column
84
- });
85
- continue;
86
- }
87
- if (getName(column.names) !== getName(oldColumn.names)) colActions.push({
88
- type: "rename-column",
89
- from: getName(oldColumn.names),
90
- to: getName(column.names)
91
- });
92
- const action = {
93
- type: "update-column",
94
- name: getName(column.names),
95
- updateDataType: column.type !== oldColumn.type,
96
- updateDefault: !deepEqual(hashDefaultValue2(column), hashDefaultValue2(oldColumn)),
97
- updateNullable: column.isNullable !== oldColumn.isNullable,
98
- value: column
99
- };
100
- if (isUpdated(action)) colActions.push(action);
101
- }
102
- return columnActionToOperation(getName(newTable.names), colActions);
103
- }
104
- function onTableForeignKeyCheck(oldTable, newTable) {
105
- const tableName = getName(newTable.names);
106
- const operations = [];
107
- if (relationMode === "fumadb") return operations;
108
- for (const foreignKey of newTable.foreignKeys) {
109
- const compiled = compileForeignKey(foreignKey, "sql");
110
- const oldKey = oldTable.foreignKeys.find((key) => key.name === foreignKey.name);
111
- if (!oldKey) {
112
- operations.push({
113
- type: "add-foreign-key",
114
- table: tableName,
115
- value: compiled,
116
- enforce: "post"
117
- });
118
- continue;
119
- }
120
- if (!deepEqual(compiled, compileForeignKey(oldKey, "sql"))) operations.push({
121
- type: "drop-foreign-key",
122
- name: oldKey.name,
123
- table: tableName,
124
- enforce: "post"
125
- }, {
126
- type: "add-foreign-key",
127
- table: tableName,
128
- value: compiled,
129
- enforce: "post"
130
- });
131
- }
132
- return operations;
133
- }
134
- function onTableUnusedForeignKeyCheck(oldTable, newTable) {
135
- const operations = [];
136
- for (const oldKey of oldTable.foreignKeys) {
137
- if (!newTable.foreignKeys.every((key) => key.name !== oldKey.name)) continue;
138
- operations.push({
139
- type: "drop-foreign-key",
140
- name: oldKey.name,
141
- table: getName(oldTable.names),
142
- enforce: "pre"
143
- });
144
- }
145
- return operations;
146
- }
147
- function onTableUnusedColumnsCheck(oldTable, newTable) {
148
- const constraints = newTable.getUniqueConstraints();
149
- const operations = [];
150
- for (const oldColumn of Object.values(oldTable.columns)) {
151
- const isUnused = !newTable.columns[oldColumn.ormName];
152
- const isRequired = !oldColumn.isNullable && !oldColumn.default;
153
- if (!(isUnused && (dropUnusedColumns || isRequired))) continue;
154
- if (provider === "mssql" && oldColumn.isUnique) for (const con of constraints) {
155
- if (con.columns.every((col) => col.ormName !== oldColumn.ormName)) continue;
156
- operations.push({
157
- type: "drop-unique-constraint",
158
- name: con.name,
159
- table: getName(newTable.names)
160
- });
161
- }
162
- operations.push({
163
- type: "update-table",
164
- name: getName(newTable.names),
165
- value: [{
166
- type: "drop-column",
167
- name: getName(oldColumn.names)
168
- }],
169
- enforce: "post"
170
- });
171
- }
172
- return operations;
173
- }
174
- function reorder(operations) {
175
- const out = [];
176
- for (const item of operations) if (item.enforce === "pre") out.push(item);
177
- for (const item of operations) if (!item.enforce) out.push(item);
178
- for (const item of operations) if (item.enforce === "post") out.push(item);
179
- return out;
180
- }
181
- function generate() {
182
- const operations = [];
183
- for (const table of Object.values(schema2.tables)) {
184
- const oldTable = old.tables[table.ormName];
185
- if (!oldTable) {
186
- operations.push({
187
- type: "create-table",
188
- value: table
189
- });
190
- continue;
191
- }
192
- operations.push(...onTableUnusedForeignKeyCheck(oldTable, table), ...onTableRenameCheck(oldTable, table), ...onTableColumnsCheck(oldTable, table), ...onUniqueConstraintCheck(oldTable, table), ...onTableForeignKeyCheck(oldTable, table), ...onTableUnusedColumnsCheck(oldTable, table));
193
- }
194
- for (const oldTable of Object.values(old.tables)) if (!schema2.tables[oldTable.ormName] && dropUnusedTables) operations.push({
195
- type: "drop-table",
196
- name: getName(oldTable.names),
197
- enforce: "post"
198
- });
199
- return reorder(operations);
200
- }
201
- return generate();
202
- }
203
- function createMigrator({ settings, generateMigrationFromDatabase, generateMigrationFromSchema: generateMigrationFromSchema2 = generateMigrationFromSchema, libConfig: { schemas, initialVersion = "0.0.0" }, userConfig, executor, sql: sqlConfig, transformers = [] }) {
204
- const indexedSchemas = /* @__PURE__ */ new Map();
205
- indexedSchemas.set(initialVersion, schema({
206
- version: initialVersion,
207
- tables: {}
208
- }));
209
- for (const schema2 of schemas) {
210
- if (indexedSchemas.has(schema2.version)) throw new Error(`Duplicated version: ${schema2.version}`);
211
- indexedSchemas.set(schema2.version, schema2);
212
- }
213
- function getSchemaByVersion(version) {
214
- const schema2 = indexedSchemas.get(version);
215
- if (!schema2) throw new Error(`Invalid version ${version}`);
216
- return schema2;
217
- }
218
- async function getCurrentSchema() {
219
- const version = await settings.getVersion() ?? initialVersion;
220
- const nameVariants = await settings.getNameVariants();
221
- let schema2 = getSchemaByVersion(version);
222
- if (nameVariants) schema2 = applyNameVariants(schema2, nameVariants);
223
- return schema2;
224
- }
225
- function getSchemasOfVariant(variant) {
226
- return schemas.filter((schema2) => deepEqual(parse(schema2.version).prerelease, variant));
227
- }
228
- return {
229
- getVersion() {
230
- return settings.getVersion();
231
- },
232
- getNameVariants() {
233
- return settings.getNameVariants();
234
- },
235
- async next() {
236
- const version = await settings.getVersion() ?? initialVersion;
237
- const list = getSchemasOfVariant(parse(version).prerelease);
238
- return list[list.findIndex((schema2) => schema2.version === version) + 1];
239
- },
240
- async previous() {
241
- const version = await settings.getVersion();
242
- if (!version) return;
243
- const list = getSchemasOfVariant(parse(version).prerelease);
244
- return list[list.findIndex((schema2) => schema2.version === version) - 1];
245
- },
246
- async up(options = {}) {
247
- const next = await this.next();
248
- if (!next) throw new Error("Already up to date.");
249
- return this.migrateTo(next.version, options);
250
- },
251
- async down(options = {}) {
252
- const prev = await this.previous();
253
- if (!prev) throw new Error("No previous schema to migrate to.");
254
- return this.migrateTo(prev.version, options);
255
- },
256
- async migrateTo(version, options = {}) {
257
- const { updateSettings: updateVersion = true, unsafe = false, mode = "from-schema" } = options;
258
- const targetSchema = getSchemaByVersion(version);
259
- const currentSchema = await getCurrentSchema();
260
- let run;
261
- const prevVariant = parse(targetSchema.version).prerelease;
262
- const variant = parse(currentSchema.version).prerelease;
263
- if (deepEqual(prevVariant, variant)) {
264
- const list = getSchemasOfVariant(variant);
265
- const targetIdx = list.indexOf(targetSchema);
266
- switch (currentSchema.version) {
267
- case list[targetIdx - 1]?.version:
268
- run = targetSchema.up;
269
- break;
270
- case list[targetIdx + 1]?.version:
271
- run = targetSchema.down;
272
- break;
273
- }
274
- }
275
- run ??= (context2) => context2.auto();
276
- let operations = await run({ async auto() {
277
- let generated;
278
- if (mode === "from-schema") generated = generateMigrationFromSchema2(currentSchema, targetSchema, userConfig);
279
- else {
280
- if (!generateMigrationFromDatabase) throw new Error(`${mode} is not supported for this adapter.`);
281
- generated = await generateMigrationFromDatabase({
282
- target: targetSchema,
283
- dropUnusedColumns: unsafe
284
- });
285
- }
286
- for (const transformer of transformers) {
287
- if (!transformer.afterAuto) continue;
288
- generated = transformer.afterAuto(generated, {
289
- prev: currentSchema,
290
- next: targetSchema,
291
- options
292
- });
293
- }
294
- return generated;
295
- } });
296
- if (updateVersion) operations.push(...await settings.updateSettingsInMigration(targetSchema));
297
- for (const transformer of transformers) {
298
- if (!transformer.afterAll) continue;
299
- operations = transformer.afterAll(operations, {
300
- prev: currentSchema,
301
- next: targetSchema
302
- });
303
- }
304
- return {
305
- operations,
306
- getSQL: sqlConfig ? () => sqlConfig.toSql(operations) : void 0,
307
- execute: () => executor(operations)
308
- };
309
- },
310
- async migrateToLatest(options) {
311
- const last = getSchemasOfVariant(parse(await settings.getVersion() ?? initialVersion).prerelease).at(-1);
312
- if (!last) throw new Error(`Cannot find other schemas`);
313
- return this.migrateTo(last.version, options);
314
- }
315
- };
316
- }
317
- function exportNameVariants(schema2) {
318
- const out = {};
319
- for (const table of Object.values(schema2.tables)) {
320
- out[table.ormName] = table.names;
321
- for (const col of Object.values(table.columns)) out[`${table.ormName}.${col.ormName}`] = col.names;
322
- }
323
- return out;
324
- }
325
- //#endregion
326
- export { createMigrator, exportNameVariants, generateMigrationFromSchema, isUpdated };