@bleedingdev/modern-js-create 3.5.0-ultramodern.4 → 3.5.0-ultramodern.40

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 (499) hide show
  1. package/README.md +28 -28
  2. package/dist/cjs/cli/flags.cjs +295 -0
  3. package/dist/cjs/cli/help.cjs +105 -0
  4. package/dist/cjs/cli/package-source.cjs +183 -0
  5. package/dist/cjs/cli/project-setup.cjs +138 -0
  6. package/dist/cjs/cli/prompts.cjs +100 -0
  7. package/dist/cjs/index.cjs +22 -584
  8. package/dist/cjs/locale/en.cjs +2 -6
  9. package/dist/cjs/locale/zh.cjs +2 -6
  10. package/dist/cjs/ultramodern-package-source.cjs +0 -32
  11. package/dist/cjs/ultramodern-tooling/commands/cloudflare-output-verify.cjs +132 -0
  12. package/dist/cjs/ultramodern-tooling/commands/context.cjs +131 -0
  13. package/dist/cjs/ultramodern-tooling/commands/mf-types.cjs +55 -0
  14. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.cjs +158 -0
  15. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.cjs +50 -0
  16. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.cjs +87 -0
  17. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.cjs +58 -0
  18. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.cjs +62 -0
  19. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.cjs +60 -0
  20. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.cjs +132 -0
  21. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.cjs +67 -0
  22. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.cjs +93 -0
  23. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.cjs +60 -0
  24. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.cjs +67 -0
  25. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.cjs +67 -0
  26. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/help.cjs +54 -0
  27. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/install.cjs +52 -0
  28. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/io.cjs +133 -0
  29. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.cjs +245 -0
  30. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-source.cjs +76 -0
  31. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.cjs +142 -0
  32. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.cjs +155 -0
  33. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.cjs +155 -0
  34. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect.cjs +149 -0
  35. package/dist/cjs/ultramodern-tooling/commands/options.cjs +59 -0
  36. package/dist/cjs/ultramodern-tooling/commands/routes-generate.cjs +122 -0
  37. package/dist/cjs/ultramodern-tooling/commands/skills.cjs +49 -0
  38. package/dist/cjs/ultramodern-tooling/commands/sync-delivery-unit.cjs +40 -0
  39. package/dist/cjs/ultramodern-tooling/commands/validate.cjs +49 -0
  40. package/dist/cjs/ultramodern-tooling/commands.cjs +27 -485
  41. package/dist/cjs/ultramodern-tooling/config/constants.cjs +48 -0
  42. package/dist/cjs/ultramodern-tooling/config/index.cjs +104 -0
  43. package/dist/cjs/ultramodern-tooling/config/json.cjs +61 -0
  44. package/dist/cjs/ultramodern-tooling/config/load.cjs +62 -0
  45. package/dist/cjs/ultramodern-tooling/config/metadata.cjs +92 -0
  46. package/dist/cjs/ultramodern-tooling/config/normalize.cjs +160 -0
  47. package/dist/cjs/ultramodern-tooling/config/synthesize.cjs +157 -0
  48. package/dist/cjs/ultramodern-tooling/config/types.cjs +18 -0
  49. package/dist/cjs/ultramodern-tooling/config.cjs +23 -133
  50. package/dist/cjs/ultramodern-workspace/add-vertical/constants.cjs +52 -0
  51. package/dist/cjs/ultramodern-workspace/add-vertical/execute.cjs +156 -0
  52. package/dist/cjs/ultramodern-workspace/add-vertical/plan.cjs +234 -0
  53. package/dist/cjs/ultramodern-workspace/add-vertical/preflight.cjs +174 -0
  54. package/dist/cjs/ultramodern-workspace/add-vertical/shell-files.cjs +116 -0
  55. package/dist/cjs/ultramodern-workspace/add-vertical/topology.cjs +135 -0
  56. package/dist/cjs/ultramodern-workspace/add-vertical/workspace-state.cjs +107 -0
  57. package/dist/cjs/ultramodern-workspace/add-vertical.cjs +22 -571
  58. package/dist/cjs/ultramodern-workspace/api/checkout-cart.cjs +145 -0
  59. package/dist/cjs/ultramodern-workspace/api/client.cjs +218 -0
  60. package/dist/cjs/ultramodern-workspace/api/contracts.cjs +222 -0
  61. package/dist/cjs/ultramodern-workspace/api/names.cjs +98 -0
  62. package/dist/cjs/ultramodern-workspace/api/service.cjs +220 -0
  63. package/dist/cjs/ultramodern-workspace/api/shared.cjs +252 -0
  64. package/dist/cjs/ultramodern-workspace/api.cjs +29 -1004
  65. package/dist/cjs/ultramodern-workspace/app-files.cjs +12 -51
  66. package/dist/cjs/ultramodern-workspace/backend-federation.cjs +296 -0
  67. package/dist/cjs/ultramodern-workspace/bridge-config/cli.cjs +71 -0
  68. package/dist/cjs/ultramodern-workspace/bridge-config/defaults.cjs +43 -0
  69. package/dist/cjs/ultramodern-workspace/bridge-config/gates.cjs +93 -0
  70. package/dist/cjs/ultramodern-workspace/bridge-config/index.cjs +60 -0
  71. package/dist/cjs/ultramodern-workspace/bridge-config/normalize.cjs +68 -0
  72. package/dist/cjs/ultramodern-workspace/bridge-config/schema.cjs +78 -0
  73. package/dist/cjs/ultramodern-workspace/bridge-config/shared.cjs +110 -0
  74. package/dist/cjs/ultramodern-workspace/bridge-config/validation.cjs +68 -0
  75. package/dist/cjs/ultramodern-workspace/bridge-config/workspace-packages.cjs +108 -0
  76. package/dist/cjs/ultramodern-workspace/bridge-config.cjs +32 -297
  77. package/dist/cjs/ultramodern-workspace/contracts.cjs +40 -15
  78. package/dist/cjs/ultramodern-workspace/delivery-unit-sync.cjs +159 -0
  79. package/dist/cjs/ultramodern-workspace/delivery-unit.cjs +75 -0
  80. package/dist/cjs/ultramodern-workspace/demo-components.cjs +47 -192
  81. package/dist/cjs/ultramodern-workspace/descriptors.cjs +36 -1
  82. package/dist/cjs/ultramodern-workspace/effect-diagnostics.cjs +114 -0
  83. package/dist/cjs/ultramodern-workspace/fs-io.cjs +24 -35
  84. package/dist/cjs/ultramodern-workspace/index.cjs +4 -0
  85. package/dist/cjs/ultramodern-workspace/locales.cjs +1 -14
  86. package/dist/cjs/ultramodern-workspace/mf-validation/constants.cjs +69 -0
  87. package/dist/cjs/ultramodern-workspace/mf-validation/discovery.cjs +77 -0
  88. package/dist/cjs/ultramodern-workspace/mf-validation/inspect.cjs +84 -0
  89. package/dist/cjs/ultramodern-workspace/mf-validation/object-literal.cjs +188 -0
  90. package/dist/cjs/ultramodern-workspace/mf-validation/path-utils.cjs +165 -0
  91. package/dist/cjs/ultramodern-workspace/mf-validation/syntax.cjs +201 -0
  92. package/dist/cjs/ultramodern-workspace/mf-validation/types.cjs +18 -0
  93. package/dist/cjs/ultramodern-workspace/mf-validation/validate.cjs +112 -0
  94. package/dist/cjs/ultramodern-workspace/mf-validation.cjs +6 -529
  95. package/dist/cjs/ultramodern-workspace/module-federation/config.cjs +262 -0
  96. package/dist/cjs/ultramodern-workspace/module-federation/index.cjs +73 -0
  97. package/dist/cjs/ultramodern-workspace/module-federation/reexport-module.cjs +74 -0
  98. package/dist/cjs/ultramodern-workspace/module-federation/remote-refs.cjs +105 -0
  99. package/dist/cjs/ultramodern-workspace/module-federation/shared-config.cjs +53 -0
  100. package/dist/cjs/ultramodern-workspace/module-federation.cjs +18 -477
  101. package/dist/cjs/ultramodern-workspace/naming.cjs +0 -6
  102. package/dist/cjs/ultramodern-workspace/package-json.cjs +27 -269
  103. package/dist/cjs/ultramodern-workspace/policy.cjs +0 -21
  104. package/dist/cjs/ultramodern-workspace/public-surface.cjs +0 -21
  105. package/dist/cjs/ultramodern-workspace/routes.cjs +8 -157
  106. package/dist/cjs/ultramodern-workspace/shared-patches.cjs +45 -0
  107. package/dist/cjs/ultramodern-workspace/tooling-command-catalog.cjs +147 -0
  108. package/dist/cjs/ultramodern-workspace/tsconfigs.cjs +199 -0
  109. package/dist/cjs/ultramodern-workspace/versions.cjs +31 -38
  110. package/dist/cjs/ultramodern-workspace/workspace-script-plan.cjs +163 -0
  111. package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +96 -73
  112. package/dist/cjs/ultramodern-workspace/workspace-validation-contract.cjs +97 -0
  113. package/dist/cjs/ultramodern-workspace/write-app.cjs +125 -0
  114. package/dist/cjs/ultramodern-workspace/write-workspace.cjs +13 -63
  115. package/dist/cjs/ultramodern-workspace/zerops.cjs +103 -0
  116. package/dist/esm/cli/flags.js +218 -0
  117. package/dist/esm/cli/help.js +64 -0
  118. package/dist/esm/cli/package-source.js +119 -0
  119. package/dist/esm/cli/project-setup.js +81 -0
  120. package/dist/esm/cli/prompts.js +51 -0
  121. package/dist/esm/index.js +6 -564
  122. package/dist/esm/locale/en.js +2 -6
  123. package/dist/esm/locale/zh.js +2 -6
  124. package/dist/esm/ultramodern-package-source.js +1 -24
  125. package/dist/esm/ultramodern-tooling/commands/cloudflare-output-verify.js +84 -0
  126. package/dist/esm/ultramodern-tooling/commands/context.js +66 -0
  127. package/dist/esm/ultramodern-tooling/commands/mf-types.js +17 -0
  128. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +106 -0
  129. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +12 -0
  130. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +38 -0
  131. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +10 -0
  132. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +14 -0
  133. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +12 -0
  134. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +83 -0
  135. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +16 -0
  136. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +44 -0
  137. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +12 -0
  138. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +7 -0
  139. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +15 -0
  140. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/help.js +16 -0
  141. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/install.js +14 -0
  142. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/io.js +69 -0
  143. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +201 -0
  144. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +38 -0
  145. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +87 -0
  146. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +105 -0
  147. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +71 -0
  148. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect.js +100 -0
  149. package/dist/esm/ultramodern-tooling/commands/options.js +18 -0
  150. package/dist/esm/ultramodern-tooling/commands/routes-generate.js +74 -0
  151. package/dist/esm/ultramodern-tooling/commands/skills.js +11 -0
  152. package/dist/esm/ultramodern-tooling/commands/sync-delivery-unit.js +1 -0
  153. package/dist/esm/ultramodern-tooling/commands/validate.js +11 -0
  154. package/dist/esm/ultramodern-tooling/commands.js +22 -475
  155. package/dist/esm/ultramodern-tooling/config/constants.js +4 -0
  156. package/dist/esm/ultramodern-tooling/config/index.js +7 -0
  157. package/dist/esm/ultramodern-tooling/config/json.js +10 -0
  158. package/dist/esm/ultramodern-tooling/config/load.js +13 -0
  159. package/dist/esm/ultramodern-tooling/config/metadata.js +37 -0
  160. package/dist/esm/ultramodern-tooling/config/normalize.js +106 -0
  161. package/dist/esm/ultramodern-tooling/config/synthesize.js +108 -0
  162. package/dist/esm/ultramodern-tooling/config/types.js +0 -0
  163. package/dist/esm/ultramodern-tooling/config.js +1 -120
  164. package/dist/esm/ultramodern-workspace/add-vertical/constants.js +5 -0
  165. package/dist/esm/ultramodern-workspace/add-vertical/execute.js +108 -0
  166. package/dist/esm/ultramodern-workspace/add-vertical/plan.js +184 -0
  167. package/dist/esm/ultramodern-workspace/add-vertical/preflight.js +122 -0
  168. package/dist/esm/ultramodern-workspace/add-vertical/shell-files.js +59 -0
  169. package/dist/esm/ultramodern-workspace/add-vertical/topology.js +91 -0
  170. package/dist/esm/ultramodern-workspace/add-vertical/workspace-state.js +43 -0
  171. package/dist/esm/ultramodern-workspace/add-vertical.js +6 -544
  172. package/dist/esm/ultramodern-workspace/api/checkout-cart.js +86 -0
  173. package/dist/esm/ultramodern-workspace/api/client.js +177 -0
  174. package/dist/esm/ultramodern-workspace/api/contracts.js +172 -0
  175. package/dist/esm/ultramodern-workspace/api/names.js +33 -0
  176. package/dist/esm/ultramodern-workspace/api/service.js +179 -0
  177. package/dist/esm/ultramodern-workspace/api/shared.js +208 -0
  178. package/dist/esm/ultramodern-workspace/api.js +5 -984
  179. package/dist/esm/ultramodern-workspace/app-files.js +11 -32
  180. package/dist/esm/ultramodern-workspace/backend-federation.js +231 -0
  181. package/dist/esm/ultramodern-workspace/bridge-config/cli.js +30 -0
  182. package/dist/esm/ultramodern-workspace/bridge-config/defaults.js +5 -0
  183. package/dist/esm/ultramodern-workspace/bridge-config/gates.js +52 -0
  184. package/dist/esm/ultramodern-workspace/bridge-config/index.js +3 -0
  185. package/dist/esm/ultramodern-workspace/bridge-config/normalize.js +30 -0
  186. package/dist/esm/ultramodern-workspace/bridge-config/schema.js +31 -0
  187. package/dist/esm/ultramodern-workspace/bridge-config/shared.js +51 -0
  188. package/dist/esm/ultramodern-workspace/bridge-config/validation.js +27 -0
  189. package/dist/esm/ultramodern-workspace/bridge-config/workspace-packages.js +67 -0
  190. package/dist/esm/ultramodern-workspace/bridge-config.js +1 -270
  191. package/dist/esm/ultramodern-workspace/contracts.js +40 -15
  192. package/dist/esm/ultramodern-workspace/delivery-unit-sync.js +110 -0
  193. package/dist/esm/ultramodern-workspace/delivery-unit.js +21 -0
  194. package/dist/esm/ultramodern-workspace/demo-components.js +48 -190
  195. package/dist/esm/ultramodern-workspace/descriptors.js +25 -2
  196. package/dist/esm/ultramodern-workspace/effect-diagnostics.js +76 -0
  197. package/dist/esm/ultramodern-workspace/fs-io.js +25 -17
  198. package/dist/esm/ultramodern-workspace/index.js +1 -0
  199. package/dist/esm/ultramodern-workspace/locales.js +1 -1
  200. package/dist/esm/ultramodern-workspace/mf-validation/constants.js +19 -0
  201. package/dist/esm/ultramodern-workspace/mf-validation/discovery.js +28 -0
  202. package/dist/esm/ultramodern-workspace/mf-validation/inspect.js +46 -0
  203. package/dist/esm/ultramodern-workspace/mf-validation/object-literal.js +144 -0
  204. package/dist/esm/ultramodern-workspace/mf-validation/path-utils.js +89 -0
  205. package/dist/esm/ultramodern-workspace/mf-validation/syntax.js +154 -0
  206. package/dist/esm/ultramodern-workspace/mf-validation/types.js +0 -0
  207. package/dist/esm/ultramodern-workspace/mf-validation/validate.js +57 -0
  208. package/dist/esm/ultramodern-workspace/mf-validation.js +3 -516
  209. package/dist/esm/ultramodern-workspace/module-federation/config.js +215 -0
  210. package/dist/esm/ultramodern-workspace/module-federation/index.js +4 -0
  211. package/dist/esm/ultramodern-workspace/module-federation/reexport-module.js +30 -0
  212. package/dist/esm/ultramodern-workspace/module-federation/remote-refs.js +64 -0
  213. package/dist/esm/ultramodern-workspace/module-federation/shared-config.js +12 -0
  214. package/dist/esm/ultramodern-workspace/module-federation.js +2 -458
  215. package/dist/esm/ultramodern-workspace/naming.js +1 -1
  216. package/dist/esm/ultramodern-workspace/package-json.js +22 -252
  217. package/dist/esm/ultramodern-workspace/policy.js +1 -7
  218. package/dist/esm/ultramodern-workspace/public-surface.js +1 -1
  219. package/dist/esm/ultramodern-workspace/routes.js +9 -143
  220. package/dist/esm/ultramodern-workspace/shared-patches.js +7 -0
  221. package/dist/esm/ultramodern-workspace/tooling-command-catalog.js +100 -0
  222. package/dist/esm/ultramodern-workspace/tsconfigs.js +136 -0
  223. package/dist/esm/ultramodern-workspace/versions.js +23 -24
  224. package/dist/esm/ultramodern-workspace/workspace-script-plan.js +116 -0
  225. package/dist/esm/ultramodern-workspace/workspace-scripts.js +92 -69
  226. package/dist/esm/ultramodern-workspace/workspace-validation-contract.js +59 -0
  227. package/dist/esm/ultramodern-workspace/write-app.js +87 -0
  228. package/dist/esm/ultramodern-workspace/write-workspace.js +14 -61
  229. package/dist/esm/ultramodern-workspace/zerops.js +65 -0
  230. package/dist/esm-node/cli/flags.js +219 -0
  231. package/dist/esm-node/cli/help.js +65 -0
  232. package/dist/esm-node/cli/package-source.js +120 -0
  233. package/dist/esm-node/cli/project-setup.js +82 -0
  234. package/dist/esm-node/cli/prompts.js +52 -0
  235. package/dist/esm-node/index.js +6 -564
  236. package/dist/esm-node/locale/en.js +2 -6
  237. package/dist/esm-node/locale/zh.js +2 -6
  238. package/dist/esm-node/ultramodern-package-source.js +1 -24
  239. package/dist/esm-node/ultramodern-tooling/commands/cloudflare-output-verify.js +85 -0
  240. package/dist/esm-node/ultramodern-tooling/commands/context.js +67 -0
  241. package/dist/esm-node/ultramodern-tooling/commands/mf-types.js +18 -0
  242. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +107 -0
  243. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +13 -0
  244. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +39 -0
  245. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +11 -0
  246. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +15 -0
  247. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +13 -0
  248. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +84 -0
  249. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +17 -0
  250. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +45 -0
  251. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +13 -0
  252. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +8 -0
  253. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +16 -0
  254. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/help.js +17 -0
  255. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/install.js +15 -0
  256. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/io.js +70 -0
  257. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +202 -0
  258. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +39 -0
  259. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +88 -0
  260. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +106 -0
  261. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +72 -0
  262. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect.js +101 -0
  263. package/dist/esm-node/ultramodern-tooling/commands/options.js +19 -0
  264. package/dist/esm-node/ultramodern-tooling/commands/routes-generate.js +75 -0
  265. package/dist/esm-node/ultramodern-tooling/commands/skills.js +12 -0
  266. package/dist/esm-node/ultramodern-tooling/commands/sync-delivery-unit.js +2 -0
  267. package/dist/esm-node/ultramodern-tooling/commands/validate.js +12 -0
  268. package/dist/esm-node/ultramodern-tooling/commands.js +22 -475
  269. package/dist/esm-node/ultramodern-tooling/config/constants.js +5 -0
  270. package/dist/esm-node/ultramodern-tooling/config/index.js +8 -0
  271. package/dist/esm-node/ultramodern-tooling/config/json.js +11 -0
  272. package/dist/esm-node/ultramodern-tooling/config/load.js +14 -0
  273. package/dist/esm-node/ultramodern-tooling/config/metadata.js +38 -0
  274. package/dist/esm-node/ultramodern-tooling/config/normalize.js +107 -0
  275. package/dist/esm-node/ultramodern-tooling/config/synthesize.js +109 -0
  276. package/dist/esm-node/ultramodern-tooling/config/types.js +1 -0
  277. package/dist/esm-node/ultramodern-tooling/config.js +1 -120
  278. package/dist/esm-node/ultramodern-workspace/add-vertical/constants.js +6 -0
  279. package/dist/esm-node/ultramodern-workspace/add-vertical/execute.js +109 -0
  280. package/dist/esm-node/ultramodern-workspace/add-vertical/plan.js +185 -0
  281. package/dist/esm-node/ultramodern-workspace/add-vertical/preflight.js +123 -0
  282. package/dist/esm-node/ultramodern-workspace/add-vertical/shell-files.js +60 -0
  283. package/dist/esm-node/ultramodern-workspace/add-vertical/topology.js +92 -0
  284. package/dist/esm-node/ultramodern-workspace/add-vertical/workspace-state.js +44 -0
  285. package/dist/esm-node/ultramodern-workspace/add-vertical.js +6 -544
  286. package/dist/esm-node/ultramodern-workspace/api/checkout-cart.js +87 -0
  287. package/dist/esm-node/ultramodern-workspace/api/client.js +178 -0
  288. package/dist/esm-node/ultramodern-workspace/api/contracts.js +173 -0
  289. package/dist/esm-node/ultramodern-workspace/api/names.js +34 -0
  290. package/dist/esm-node/ultramodern-workspace/api/service.js +180 -0
  291. package/dist/esm-node/ultramodern-workspace/api/shared.js +209 -0
  292. package/dist/esm-node/ultramodern-workspace/api.js +5 -984
  293. package/dist/esm-node/ultramodern-workspace/app-files.js +11 -32
  294. package/dist/esm-node/ultramodern-workspace/backend-federation.js +232 -0
  295. package/dist/esm-node/ultramodern-workspace/bridge-config/cli.js +31 -0
  296. package/dist/esm-node/ultramodern-workspace/bridge-config/defaults.js +6 -0
  297. package/dist/esm-node/ultramodern-workspace/bridge-config/gates.js +53 -0
  298. package/dist/esm-node/ultramodern-workspace/bridge-config/index.js +4 -0
  299. package/dist/esm-node/ultramodern-workspace/bridge-config/normalize.js +31 -0
  300. package/dist/esm-node/ultramodern-workspace/bridge-config/schema.js +32 -0
  301. package/dist/esm-node/ultramodern-workspace/bridge-config/shared.js +52 -0
  302. package/dist/esm-node/ultramodern-workspace/bridge-config/validation.js +28 -0
  303. package/dist/esm-node/ultramodern-workspace/bridge-config/workspace-packages.js +68 -0
  304. package/dist/esm-node/ultramodern-workspace/bridge-config.js +1 -270
  305. package/dist/esm-node/ultramodern-workspace/contracts.js +40 -15
  306. package/dist/esm-node/ultramodern-workspace/delivery-unit-sync.js +111 -0
  307. package/dist/esm-node/ultramodern-workspace/delivery-unit.js +22 -0
  308. package/dist/esm-node/ultramodern-workspace/demo-components.js +48 -190
  309. package/dist/esm-node/ultramodern-workspace/descriptors.js +25 -2
  310. package/dist/esm-node/ultramodern-workspace/effect-diagnostics.js +77 -0
  311. package/dist/esm-node/ultramodern-workspace/fs-io.js +25 -17
  312. package/dist/esm-node/ultramodern-workspace/index.js +1 -0
  313. package/dist/esm-node/ultramodern-workspace/locales.js +1 -1
  314. package/dist/esm-node/ultramodern-workspace/mf-validation/constants.js +20 -0
  315. package/dist/esm-node/ultramodern-workspace/mf-validation/discovery.js +29 -0
  316. package/dist/esm-node/ultramodern-workspace/mf-validation/inspect.js +47 -0
  317. package/dist/esm-node/ultramodern-workspace/mf-validation/object-literal.js +145 -0
  318. package/dist/esm-node/ultramodern-workspace/mf-validation/path-utils.js +90 -0
  319. package/dist/esm-node/ultramodern-workspace/mf-validation/syntax.js +155 -0
  320. package/dist/esm-node/ultramodern-workspace/mf-validation/types.js +1 -0
  321. package/dist/esm-node/ultramodern-workspace/mf-validation/validate.js +58 -0
  322. package/dist/esm-node/ultramodern-workspace/mf-validation.js +3 -516
  323. package/dist/esm-node/ultramodern-workspace/module-federation/config.js +216 -0
  324. package/dist/esm-node/ultramodern-workspace/module-federation/index.js +5 -0
  325. package/dist/esm-node/ultramodern-workspace/module-federation/reexport-module.js +31 -0
  326. package/dist/esm-node/ultramodern-workspace/module-federation/remote-refs.js +65 -0
  327. package/dist/esm-node/ultramodern-workspace/module-federation/shared-config.js +13 -0
  328. package/dist/esm-node/ultramodern-workspace/module-federation.js +2 -458
  329. package/dist/esm-node/ultramodern-workspace/naming.js +1 -1
  330. package/dist/esm-node/ultramodern-workspace/package-json.js +22 -252
  331. package/dist/esm-node/ultramodern-workspace/policy.js +1 -7
  332. package/dist/esm-node/ultramodern-workspace/public-surface.js +1 -1
  333. package/dist/esm-node/ultramodern-workspace/routes.js +9 -143
  334. package/dist/esm-node/ultramodern-workspace/shared-patches.js +8 -0
  335. package/dist/esm-node/ultramodern-workspace/tooling-command-catalog.js +101 -0
  336. package/dist/esm-node/ultramodern-workspace/tsconfigs.js +137 -0
  337. package/dist/esm-node/ultramodern-workspace/versions.js +23 -24
  338. package/dist/esm-node/ultramodern-workspace/workspace-script-plan.js +117 -0
  339. package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +92 -69
  340. package/dist/esm-node/ultramodern-workspace/workspace-validation-contract.js +60 -0
  341. package/dist/esm-node/ultramodern-workspace/write-app.js +88 -0
  342. package/dist/esm-node/ultramodern-workspace/write-workspace.js +14 -61
  343. package/dist/esm-node/ultramodern-workspace/zerops.js +66 -0
  344. package/dist/types/cli/flags.d.ts +25 -0
  345. package/dist/types/cli/help.d.ts +2 -0
  346. package/dist/types/cli/package-source.d.ts +15 -0
  347. package/dist/types/cli/project-setup.d.ts +8 -0
  348. package/dist/types/cli/prompts.d.ts +4 -0
  349. package/dist/types/locale/en.d.ts +0 -4
  350. package/dist/types/locale/index.d.ts +0 -8
  351. package/dist/types/locale/zh.d.ts +0 -4
  352. package/dist/types/ultramodern-package-source.d.ts +0 -11
  353. package/dist/types/ultramodern-tooling/commands/cloudflare-output-verify.d.ts +2 -0
  354. package/dist/types/ultramodern-tooling/commands/context.d.ts +11 -0
  355. package/dist/types/ultramodern-tooling/commands/mf-types.d.ts +2 -0
  356. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.d.ts +4 -0
  357. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.d.ts +4 -0
  358. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.d.ts +1 -0
  359. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.d.ts +3 -0
  360. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.d.ts +3 -0
  361. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.d.ts +3 -0
  362. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.d.ts +2 -0
  363. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.d.ts +4 -0
  364. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.d.ts +3 -0
  365. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.d.ts +3 -0
  366. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.d.ts +7 -0
  367. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.d.ts +3 -0
  368. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/help.d.ts +1 -0
  369. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/install.d.ts +2 -0
  370. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/io.d.ts +14 -0
  371. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.d.ts +9 -0
  372. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-source.d.ts +3 -0
  373. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.d.ts +4 -0
  374. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.d.ts +20 -0
  375. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.d.ts +13 -0
  376. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect.d.ts +2 -0
  377. package/dist/types/ultramodern-tooling/commands/options.d.ts +2 -0
  378. package/dist/types/ultramodern-tooling/commands/routes-generate.d.ts +2 -0
  379. package/dist/types/ultramodern-tooling/commands/skills.d.ts +2 -0
  380. package/dist/types/ultramodern-tooling/commands/sync-delivery-unit.d.ts +1 -0
  381. package/dist/types/ultramodern-tooling/commands/validate.d.ts +2 -0
  382. package/dist/types/ultramodern-tooling/commands.d.ts +1 -1
  383. package/dist/types/ultramodern-tooling/config/constants.d.ts +3 -0
  384. package/dist/types/ultramodern-tooling/config/index.d.ts +7 -0
  385. package/dist/types/ultramodern-tooling/config/json.d.ts +2 -0
  386. package/dist/types/ultramodern-tooling/config/load.d.ts +2 -0
  387. package/dist/types/ultramodern-tooling/config/metadata.d.ts +4 -0
  388. package/dist/types/ultramodern-tooling/config/normalize.d.ts +5 -0
  389. package/dist/types/ultramodern-tooling/config/synthesize.d.ts +5 -0
  390. package/dist/types/ultramodern-tooling/config/types.d.ts +41 -0
  391. package/dist/types/ultramodern-tooling/config.d.ts +1 -43
  392. package/dist/types/ultramodern-workspace/add-vertical/constants.d.ts +4 -0
  393. package/dist/types/ultramodern-workspace/add-vertical/execute.d.ts +2 -0
  394. package/dist/types/ultramodern-workspace/add-vertical/plan.d.ts +2 -0
  395. package/dist/types/ultramodern-workspace/add-vertical/preflight.d.ts +20 -0
  396. package/dist/types/ultramodern-workspace/add-vertical/shell-files.d.ts +6 -0
  397. package/dist/types/ultramodern-workspace/add-vertical/topology.d.ts +9 -0
  398. package/dist/types/ultramodern-workspace/add-vertical/workspace-state.d.ts +8 -0
  399. package/dist/types/ultramodern-workspace/add-vertical.d.ts +7 -39
  400. package/dist/types/ultramodern-workspace/api/checkout-cart.d.ts +33 -0
  401. package/dist/types/ultramodern-workspace/api/client.d.ts +6 -0
  402. package/dist/types/ultramodern-workspace/api/contracts.d.ts +15 -0
  403. package/dist/types/ultramodern-workspace/api/names.d.ts +41 -0
  404. package/dist/types/ultramodern-workspace/api/service.d.ts +6 -0
  405. package/dist/types/ultramodern-workspace/api/shared.d.ts +10 -0
  406. package/dist/types/ultramodern-workspace/api.d.ts +5 -73
  407. package/dist/types/ultramodern-workspace/app-files.d.ts +1 -7
  408. package/dist/types/ultramodern-workspace/backend-federation.d.ts +11 -0
  409. package/dist/types/ultramodern-workspace/bridge-config/cli.d.ts +3 -0
  410. package/dist/types/ultramodern-workspace/bridge-config/defaults.d.ts +1 -0
  411. package/dist/types/ultramodern-workspace/bridge-config/gates.d.ts +3 -0
  412. package/dist/types/ultramodern-workspace/bridge-config/index.d.ts +4 -0
  413. package/dist/types/ultramodern-workspace/bridge-config/normalize.d.ts +2 -0
  414. package/dist/types/ultramodern-workspace/bridge-config/schema.d.ts +61 -0
  415. package/dist/types/ultramodern-workspace/bridge-config/shared.d.ts +12 -0
  416. package/dist/types/ultramodern-workspace/bridge-config/validation.d.ts +3 -0
  417. package/dist/types/ultramodern-workspace/bridge-config/workspace-packages.d.ts +3 -0
  418. package/dist/types/ultramodern-workspace/bridge-config.d.ts +1 -64
  419. package/dist/types/ultramodern-workspace/codesmith.d.ts +5 -5
  420. package/dist/types/ultramodern-workspace/contracts.d.ts +1 -1
  421. package/dist/types/ultramodern-workspace/delivery-unit-sync.d.ts +6 -0
  422. package/dist/types/ultramodern-workspace/delivery-unit.d.ts +8 -0
  423. package/dist/types/ultramodern-workspace/demo-components.d.ts +0 -1
  424. package/dist/types/ultramodern-workspace/descriptors.d.ts +4 -0
  425. package/dist/types/ultramodern-workspace/effect-diagnostics.d.ts +1 -0
  426. package/dist/types/ultramodern-workspace/fs-io.d.ts +1 -7
  427. package/dist/types/ultramodern-workspace/generation-result.d.ts +2 -1
  428. package/dist/types/ultramodern-workspace/index.d.ts +1 -0
  429. package/dist/types/ultramodern-workspace/locales.d.ts +0 -181
  430. package/dist/types/ultramodern-workspace/mf-validation/constants.d.ts +5 -0
  431. package/dist/types/ultramodern-workspace/mf-validation/discovery.d.ts +2 -0
  432. package/dist/types/ultramodern-workspace/mf-validation/inspect.d.ts +2 -0
  433. package/dist/types/ultramodern-workspace/mf-validation/object-literal.d.ts +4 -0
  434. package/dist/types/ultramodern-workspace/mf-validation/path-utils.d.ts +11 -0
  435. package/dist/types/ultramodern-workspace/mf-validation/syntax.d.ts +5 -0
  436. package/dist/types/ultramodern-workspace/mf-validation/types.d.ts +33 -0
  437. package/dist/types/ultramodern-workspace/mf-validation/validate.d.ts +4 -0
  438. package/dist/types/ultramodern-workspace/mf-validation.d.ts +4 -27
  439. package/dist/types/ultramodern-workspace/module-federation/config.d.ts +5 -0
  440. package/dist/types/ultramodern-workspace/module-federation/index.d.ts +4 -0
  441. package/dist/types/ultramodern-workspace/module-federation/reexport-module.d.ts +4 -0
  442. package/dist/types/ultramodern-workspace/module-federation/remote-refs.d.ts +3 -0
  443. package/dist/types/ultramodern-workspace/module-federation/shared-config.d.ts +2 -0
  444. package/dist/types/ultramodern-workspace/module-federation.d.ts +2 -17
  445. package/dist/types/ultramodern-workspace/naming.d.ts +0 -2
  446. package/dist/types/ultramodern-workspace/package-json.d.ts +1 -16
  447. package/dist/types/ultramodern-workspace/policy.d.ts +0 -47
  448. package/dist/types/ultramodern-workspace/public-surface.d.ts +5 -15
  449. package/dist/types/ultramodern-workspace/routes.d.ts +0 -9
  450. package/dist/types/ultramodern-workspace/shared-patches.d.ts +1 -0
  451. package/dist/types/ultramodern-workspace/tooling-command-catalog.d.ts +18 -0
  452. package/dist/types/ultramodern-workspace/tsconfigs.d.ts +13 -0
  453. package/dist/types/ultramodern-workspace/types.d.ts +3 -2
  454. package/dist/types/ultramodern-workspace/versions.d.ts +23 -24
  455. package/dist/types/ultramodern-workspace/workspace-script-plan.d.ts +58 -0
  456. package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +12 -4
  457. package/dist/types/ultramodern-workspace/workspace-validation-contract.d.ts +41 -0
  458. package/dist/types/ultramodern-workspace/write-app.d.ts +3 -0
  459. package/dist/types/ultramodern-workspace/write-workspace.d.ts +2 -2
  460. package/dist/types/ultramodern-workspace/zerops.d.ts +2 -0
  461. package/package.json +14 -11
  462. package/template-workspace/.gitignore.handlebars +4 -0
  463. package/template-workspace/AGENTS.md.handlebars +2 -2
  464. package/template-workspace/README.md.handlebars +21 -20
  465. package/template-workspace/patches/@module-federation__bridge-react@2.7.0.patch +140 -0
  466. package/template-workspace/patches/@module-federation__dts-plugin@2.7.0.patch +37 -0
  467. package/template-workspace/patches/@module-federation__modern-js-v3@2.7.0.patch +57 -0
  468. package/template-workspace/patches/@tanstack__router-core@1.171.14.patch +123 -0
  469. package/template-workspace/patches/drizzle-orm-ts7-strict-declarations.patch +452 -0
  470. package/template-workspace/patches/effect-schema-error-type-id.patch +18 -0
  471. package/template-workspace/pnpm-workspace.yaml.handlebars +80 -2
  472. package/template-workspace/scripts/bootstrap-agent-skills.mjs +11 -3
  473. package/templates/workspace/apps/modern.config.shared-module-federation.ts.handlebars +37 -0
  474. package/templates/workspace/apps/modern.config.ts.handlebars +252 -0
  475. package/templates/workspace/apps/shared/src/routes/ultramodern-jsonld.ts.handlebars +119 -0
  476. package/templates/workspace/apps/shared/src/routes/ultramodern-route-metadata.ts.handlebars +21 -0
  477. package/templates/workspace/apps/shell-super-app/src/routes/[lang]/page.tsx.handlebars +49 -0
  478. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.helpers.tsx.handlebars +79 -0
  479. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.imports.tsx.handlebars +11 -0
  480. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.tsx.handlebars +46 -0
  481. package/templates/workspace/packages/shared-design-tokens/tokens.css.handlebars +7 -0
  482. package/templates/workspace/tailwind.config.ts.handlebars +3 -0
  483. package/templates/workspace/verticals/server/checkout-cart-handlers.ts.handlebars +49 -0
  484. package/templates/workspace/verticals/server/checkout-cart-state.ts.handlebars +23 -0
  485. package/templates/workspace/verticals/shared/api.checkout-cart-contract-fields.ts.handlebars +1 -0
  486. package/templates/workspace/verticals/shared/api.checkout-cart-endpoints.ts.handlebars +23 -0
  487. package/templates/workspace/verticals/shared/api.checkout-cart-operation-contexts.ts.handlebars +25 -0
  488. package/templates/workspace/verticals/shared/api.checkout-cart-schemas.ts.handlebars +48 -0
  489. package/templates/workspace/verticals/src/api/checkout-cart-client-exports.ts.handlebars +70 -0
  490. package/templates/workspace-scripts/assert-mf-types.mjs.handlebars +4 -4
  491. package/templates/workspace-scripts/check-ultramodern-api-boundaries.mts +40 -2
  492. package/templates/workspace-scripts/generate-node-backend-federation.mjs +299 -0
  493. package/templates/workspace-scripts/materialize-zerops-runtime.mjs +448 -0
  494. package/templates/workspace-scripts/proof-cloudflare-version.mjs +237 -9
  495. package/templates/workspace-scripts/proof-node-backend-federation.mjs +760 -0
  496. package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +188 -2
  497. package/templates/workspace-scripts/ultramodern-typecheck.mjs +1 -1
  498. package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +479 -31
  499. package/template-workspace/patches/@tanstack__router-core@1.171.13.patch +0 -51
@@ -0,0 +1,252 @@
1
+ // @effect-diagnostics processEnv:off
2
+ import { setTimeout as delay } from 'node:timers/promises';
3
+ import {
4
+ appTools,
5
+ defineConfig,
6
+ presetUltramodern,
7
+ } from '@modern-js/app-tools';
8
+ {{value0}}import { i18nPlugin } from '@modern-js/plugin-i18n';
9
+ import { tanstackRouterPlugin } from '@modern-js/plugin-tanstack';
10
+ import { moduleFederationPlugin } from '@module-federation/modern-js-v3';
11
+ import { withZephyr as withZephyrRspack } from 'zephyr-rspack-plugin';
12
+ import { ultramodernLocalisedUrls } from './src/routes/ultramodern-route-metadata';
13
+
14
+ type ZephyrRspackConfig = Parameters<ReturnType<typeof withZephyrRspack>>[0];
15
+
16
+ const zephyrEnabled = process.env['ULTRAMODERN_ZEPHYR'] !== 'false';
17
+ const cloudflareDeployEnabled =
18
+ process.env['MODERNJS_DEPLOY'] === 'cloudflare';
19
+
20
+ const parsedZephyrTimeoutMs = Number.parseInt(
21
+ process.env['ULTRAMODERN_ZEPHYR_TIMEOUT_MS'] ?? '',
22
+ 10,
23
+ );
24
+ const zephyrTimeoutMs =
25
+ Number.isFinite(parsedZephyrTimeoutMs) && parsedZephyrTimeoutMs > 0
26
+ ? parsedZephyrTimeoutMs
27
+ : 45_000;
28
+
29
+ const zephyrWarn = (error: unknown) => {
30
+ const message = error instanceof Error ? error.message : String(error);
31
+ console.warn(
32
+ `[ultramodern] zephyr-rspack-plugin failed; continuing without Zephyr (set ULTRAMODERN_ZEPHYR=false to disable it): ${message}`,
33
+ );
34
+ };
35
+
36
+ const zephyrRspackPlugin = () => ({
37
+ name: 'ultramodern-zephyr-rspack-plugin',
38
+ pre: ['@modern-js/plugin-module-federation-config'],
39
+ setup(api: {
40
+ modifyRspackConfig: (
41
+ handler: (
42
+ config: ZephyrRspackConfig,
43
+ ) => ZephyrRspackConfig | Promise<ZephyrRspackConfig>,
44
+ ) => void;
45
+ }) {
46
+ if (!zephyrEnabled) {
47
+ return;
48
+ }
49
+ api.modifyRspackConfig(async config => {
50
+ try {
51
+ // Zephyr can not only throw/reject but also hang on a stalled network
52
+ // call, wedging the whole build. Race it against a watchdog so a hang
53
+ // degrades to an unmodified config instead of blocking indefinitely.
54
+ const zephyrConfig = (async () => {
55
+ try {
56
+ return await withZephyrRspack()(config);
57
+ } catch (error) {
58
+ zephyrWarn(error);
59
+ return config;
60
+ }
61
+ })();
62
+ const watchdog = async () => {
63
+ await delay(zephyrTimeoutMs, undefined, { ref: false });
64
+ zephyrWarn(
65
+ `timed out after ${zephyrTimeoutMs}ms (override with ULTRAMODERN_ZEPHYR_TIMEOUT_MS)`,
66
+ );
67
+ return config;
68
+ };
69
+ return await Promise.race([zephyrConfig, watchdog()]);
70
+ } catch (error) {
71
+ zephyrWarn(error);
72
+ return config;
73
+ }
74
+ });
75
+ },
76
+ });
77
+
78
+ const appId = '{{value1}}';
79
+ const cloudflareWorkerName = '{{value2}}';
80
+ const port = Number(process.env['{{value3}}'] ?? {{value4}});
81
+ const envValue = (name: string) => {
82
+ const value = process.env[name]?.trim();
83
+ return value !== undefined && value.length > 0 ? value : undefined;
84
+ };
85
+ const configuredSiteUrl = envValue('MODERN_PUBLIC_SITE_URL');
86
+ const configuredCloudflareUrl = envValue('{{value5}}');
87
+ const configuredUltramodernAssetPrefix = envValue('ULTRAMODERN_ASSET_PREFIX');
88
+ const configuredModernAssetPrefix = envValue('MODERN_ASSET_PREFIX');
89
+ const moduleFederationDevServerOrigin =
90
+ envValue('ULTRAMODERN_MF_DEV_ORIGIN') || 'http://localhost:{{value6}}';
91
+ const cloudflareWorkersDevSubdomain = envValue(
92
+ 'ULTRAMODERN_CLOUDFLARE_WORKERS_DEV_SUBDOMAIN',
93
+ );
94
+ const inferredCloudflareUrl =
95
+ cloudflareDeployEnabled && cloudflareWorkersDevSubdomain !== undefined
96
+ ? `https://${cloudflareWorkerName}.${cloudflareWorkersDevSubdomain}.workers.dev`
97
+ : undefined;
98
+ // Site origin (SEO: canonical/hreflang URLs) prefers the site-wide public URL;
99
+ // the per-app deployment URL only fills in when no site origin is configured.
100
+ const siteUrl =
101
+ configuredSiteUrl ||
102
+ configuredCloudflareUrl ||
103
+ inferredCloudflareUrl ||
104
+ `http://localhost:${port}`;
105
+ {{value7}}
106
+ // Asset loading is intentionally independent from the canonical site URL.
107
+ // Module Federation remotes must publish an absolute publicPath so browsers
108
+ // load remoteEntry.js and exposed chunks from the remote origin, not the host.
109
+ const assetPrefix =
110
+ configuredModernAssetPrefix || configuredUltramodernAssetPrefix || defaultAssetPrefix;
111
+ const buildTarget = cloudflareDeployEnabled ? 'cloudflare' : 'web';
112
+ const buildOutputRoot = cloudflareDeployEnabled ? 'dist-cloudflare' : 'dist';
113
+ const buildTempDirectory = `node_modules/.modern-js-${appId}-${buildTarget}`;
114
+ const buildCacheDirectory = `node_modules/.cache/rspack-${appId}-${buildTarget}`;
115
+
116
+ if (
117
+ cloudflareDeployEnabled &&
118
+ process.env['ULTRAMODERN_CLOUDFLARE_REQUIRE_PUBLIC_URLS'] === 'true' &&
119
+ configuredCloudflareUrl === undefined &&
120
+ configuredSiteUrl === undefined &&
121
+ inferredCloudflareUrl === undefined
122
+ ) {
123
+ throw new Error(
124
+ `Cloudflare deploy for ${appId} needs {{value8}}, MODERN_PUBLIC_SITE_URL, or ULTRAMODERN_CLOUDFLARE_WORKERS_DEV_SUBDOMAIN.`,
125
+ );
126
+ }
127
+
128
+ export default defineConfig(
129
+ presetUltramodern(
130
+ {
131
+ {{value9}}{{value18}} ...(cloudflareDeployEnabled
132
+ ? {
133
+ deploy: {
134
+ worker: {
135
+ compatibilityDate: '{{value10}}',
136
+ name: cloudflareWorkerName,
137
+ security: {{value11}},
138
+ {{value12}} ssr: true,
139
+ },
140
+ },
141
+ }
142
+ : {}),
143
+ dev: {
144
+ {{value13}}
145
+ },
146
+ html: {
147
+ outputStructure: 'flat',
148
+ },
149
+ output: {
150
+ assetPrefix,
151
+ disableTsChecker: false,
152
+ distPath: {
153
+ html: './',
154
+ root: buildOutputRoot,
155
+ },
156
+ polyfill: 'off',
157
+ splitRouteChunks: true,
158
+ tempDir: buildTempDirectory,
159
+ },
160
+ performance: {
161
+ buildCache: {
162
+ cacheDigest: [appId, buildTarget],
163
+ cacheDirectory: buildCacheDirectory,
164
+ },
165
+ rsdoctor: {
166
+ disableClientServer: true,
167
+ enabled: process.env['ULTRAMODERN_RSDOCTOR'] === 'true',
168
+ },
169
+ },
170
+ plugins: [
171
+ appTools(),
172
+ tanstackRouterPlugin(),
173
+ i18nPlugin({
174
+ backend: {
175
+ enabled: true,
176
+ loadPath: '/locales/{{lng}}/{{ns}}.json',
177
+ },
178
+ localeDetection: {
179
+ fallbackLanguage: 'en',
180
+ ignoreRedirectRoutes: [
181
+ '/@mf-types',
182
+ '/assets',
183
+ '/bundles',
184
+ '{{value14}}',
185
+ '/locales',
186
+ '/mf-manifest.json',
187
+ '/mf-stats.json',
188
+ '/remoteEntry.js',
189
+ '/robots.txt',
190
+ '/site.webmanifest',
191
+ '/sitemap.xml',
192
+ '/static',
193
+ '/zephyr-manifest.json',
194
+ ],
195
+ languages: ['en', 'cs'],
196
+ localePathRedirect: true,
197
+ localisedUrls: ultramodernLocalisedUrls as Record<string, Record<string, string>>,
198
+ },
199
+ reactI18next: false,
200
+ }),
201
+ {{value15}} moduleFederationPlugin(),
202
+ zephyrRspackPlugin(),
203
+ ],
204
+ server: {
205
+ port,
206
+ publicDir: ['./locales', './assets'],
207
+ ssr: {
208
+ mode: 'string',
209
+ moduleFederationAppSSR: true,
210
+ },
211
+ },
212
+ source: {
213
+ alias: {
214
+ '@modern-js/plugin-i18n/runtime':
215
+ '@modern-js/plugin-i18n/runtime/no-react-i18next',
216
+ },
217
+ globalVars: {
218
+ ULTRAMODERN_SITE_URL: siteUrl,
219
+ },
220
+ mainEntryName: 'index',
221
+ },
222
+ splitChunks: {
223
+ chunks: 'async',
224
+ },
225
+ tools: {
226
+ autoprefixer: {
227
+ overrideBrowserslist: ['defaults'],
228
+ },
229
+ bundlerChain: chain => {
230
+ chain.output
231
+ .uniqueName('{{value16}}')
232
+ .chunkLoadingGlobal('{{value17}}');
233
+ },
234
+ devServer: {
235
+ headers: {
236
+ 'Access-Control-Allow-Headers':
237
+ 'Accept, Authorization, Content-Type, X-Requested-With',
238
+ 'Access-Control-Allow-Methods': 'GET, HEAD, OPTIONS',
239
+ 'Access-Control-Allow-Origin': moduleFederationDevServerOrigin,
240
+ },
241
+ },
242
+ },
243
+ },
244
+ {
245
+ appId,
246
+ enableBffRequestId: true,
247
+ enableModuleFederationSSR: true,
248
+ enableTelemetryExporters: true,
249
+ telemetryFailLoudStartup: false,
250
+ },
251
+ ),
252
+ );
@@ -0,0 +1,119 @@
1
+ export type JsonLdPrimitive = string | number | boolean | null;
2
+ export type JsonLdValue =
3
+ | JsonLdPrimitive
4
+ | readonly JsonLdValue[]
5
+ | { readonly [key: string]: JsonLdValue };
6
+ export type JsonLdObject = Readonly<Record<string, JsonLdValue>>;
7
+ export type RouteJsonLd = JsonLdObject | readonly JsonLdObject[];
8
+
9
+ const schemaContext = 'https://schema.org' as const;
10
+
11
+ type SchemaObject<TType extends string> = JsonLdObject & {
12
+ readonly '@context': typeof schemaContext;
13
+ readonly '@type': TType;
14
+ };
15
+
16
+ type ThingReference =
17
+ | string
18
+ | {
19
+ readonly '@id'?: string;
20
+ readonly '@type'?: string;
21
+ readonly name?: string;
22
+ readonly url?: string;
23
+ };
24
+
25
+ const withSchemaContext = <TType extends string, TInput extends object>(
26
+ type: TType,
27
+ input: TInput,
28
+ ): SchemaObject<TType> & TInput => ({
29
+ '@context': schemaContext,
30
+ '@type': type,
31
+ ...input,
32
+ });
33
+
34
+ export const defineRouteJsonLd = <TJsonLd extends RouteJsonLd>(
35
+ jsonLd: TJsonLd,
36
+ ): TJsonLd => jsonLd;
37
+
38
+ export interface WebPageJsonLdInput {
39
+ readonly name: string;
40
+ readonly url: string;
41
+ readonly description?: string;
42
+ readonly inLanguage?: string | readonly string[];
43
+ readonly isPartOf?: ThingReference;
44
+ }
45
+
46
+ export const webPageJsonLd = (input: WebPageJsonLdInput) =>
47
+ withSchemaContext('WebPage', input);
48
+
49
+ export interface WebApplicationJsonLdInput {
50
+ readonly name: string;
51
+ readonly url: string;
52
+ readonly applicationCategory?: string;
53
+ readonly browserRequirements?: string;
54
+ readonly description?: string;
55
+ readonly operatingSystem?: string;
56
+ }
57
+
58
+ export const webApplicationJsonLd = (input: WebApplicationJsonLdInput) =>
59
+ withSchemaContext('WebApplication', input);
60
+
61
+ export interface SoftwareApplicationJsonLdInput {
62
+ readonly name: string;
63
+ readonly url: string;
64
+ readonly applicationCategory?: string;
65
+ readonly applicationSubCategory?: string;
66
+ readonly description?: string;
67
+ readonly offers?: ThingReference;
68
+ readonly operatingSystem?: string;
69
+ }
70
+
71
+ export const softwareApplicationJsonLd = (
72
+ input: SoftwareApplicationJsonLdInput,
73
+ ) => withSchemaContext('SoftwareApplication', input);
74
+
75
+ export interface OrganizationJsonLdInput {
76
+ readonly name: string;
77
+ readonly url?: string;
78
+ readonly logo?: string;
79
+ readonly sameAs?: readonly string[];
80
+ }
81
+
82
+ export const organizationJsonLd = (input: OrganizationJsonLdInput) =>
83
+ withSchemaContext('Organization', input);
84
+
85
+ export interface BreadcrumbListItemInput {
86
+ readonly name: string;
87
+ readonly item: string;
88
+ }
89
+
90
+ export const breadcrumbListJsonLd = (
91
+ items: readonly BreadcrumbListItemInput[],
92
+ ) =>
93
+ withSchemaContext('BreadcrumbList', {
94
+ itemListElement: items.map((entry, index) => ({
95
+ '@type': 'ListItem',
96
+ item: entry.item,
97
+ name: entry.name,
98
+ position: index + 1,
99
+ })),
100
+ });
101
+
102
+ export interface FAQPageQuestionInput {
103
+ readonly name: string;
104
+ readonly acceptedAnswer: {
105
+ readonly text: string;
106
+ };
107
+ }
108
+
109
+ export const faqPageJsonLd = (questions: readonly FAQPageQuestionInput[]) =>
110
+ withSchemaContext('FAQPage', {
111
+ mainEntity: questions.map(question => ({
112
+ '@type': 'Question',
113
+ acceptedAnswer: {
114
+ '@type': 'Answer',
115
+ text: question.acceptedAnswer.text,
116
+ },
117
+ name: question.name,
118
+ })),
119
+ });
@@ -0,0 +1,21 @@
1
+ // @generated by @modern-js/create.
2
+ // Author route metadata in colocated src/routes/**/route.meta.ts files.
3
+ // This compatibility manifest is regenerated from route-owned metadata.
4
+
5
+ export const ultramodernRouteNamespace = '{{value0}}' as const;
6
+
7
+ export const ultramodernRouteMetadata = {{value1}} as const;
8
+
9
+ export const ultramodernLocalisedUrls = {{value2}} as const;
10
+
11
+ export const ultramodernPublicRoutes = {{value3}} as const;
12
+
13
+ export const ultramodernRouteConfig = {
14
+ authoring: 'colocated-route-meta',
15
+ generatedManifest: true,
16
+ localisedUrls: ultramodernLocalisedUrls,
17
+ namespace: ultramodernRouteNamespace,
18
+ publicRoutes: ultramodernPublicRoutes,
19
+ routes: ultramodernRouteMetadata,
20
+ source: 'route-owned',
21
+ } as const;
@@ -0,0 +1,49 @@
1
+ import { Link, useModernI18n } from '@modern-js/plugin-i18n/runtime';
2
+ import ShellFrame from '../shell-frame';
3
+ import { UltramodernRouteHead } from '../ultramodern-route-head';
4
+ import { VerticalShowcase } from '../vertical-components';
5
+ import { ultramodernUiMarker } from '../../ultramodern-build';
6
+
7
+ export default function ShellHome() {
8
+ const { t } = useModernI18n();
9
+
10
+ return (
11
+ <ShellFrame>
12
+ <UltramodernRouteHead />
13
+ <section className="{{value0}}">
14
+ <div className="{{value1}}">
15
+ <p className="{{value2}}">{t('shell.hero.eyebrow')}</p>
16
+ <h1 className="{{value3}}">{t('shell.title')}</h1>
17
+ <p className="{{value4}}">{t('shell.hero.lede')}</p>
18
+ <div className="{{value5}}">
19
+ <Link className="{{value6}}" to="/">
20
+ {t('shell.hero.primary')}
21
+ </Link>
22
+ <span className="{{value7}}">
23
+ {t('shell.hero.secondary')}
24
+ </span>
25
+ </div>
26
+ </div>
27
+ <div className="{{value8}}">
28
+ <div className="{{value9}}">
29
+ <article className="{{value10}}">
30
+ <span className="{{value11}}">{t('shell.hero.cardOneKicker')}</span>
31
+ <strong className="{{value12}}">{{value13}}</strong>
32
+ <p className="{{value14}}">{t('shell.hero.cardOne')}</p>
33
+ </article>
34
+ <article className="{{value15}}">
35
+ <span className="{{value16}}">{t('shell.hero.cardTwoKicker')}</span>
36
+ <strong className="{{value17}}">SSR</strong>
37
+ <p className="{{value18}}">{t('shell.hero.cardTwo')}</p>
38
+ </article>
39
+ </div>
40
+ </div>
41
+ </section>
42
+ <VerticalShowcase />
43
+ <p className="{{value19}}" data-testid="ultramodern-preset">presetUltramodern workspace</p>
44
+ <p className="{{value20}}" data-build-marker={ultramodernUiMarker.build} data-testid="ultramodern-ui-marker">
45
+ {ultramodernUiMarker.appId}:{ultramodernUiMarker.version}
46
+ </p>
47
+ </ShellFrame>
48
+ );
49
+ }
@@ -0,0 +1,79 @@
1
+ interface RemoteComponentModule {
2
+ default: ComponentType;
3
+ }
4
+
5
+ const loadRemoteComponent = (specifier: string) =>
6
+ loadRemote<RemoteComponentModule>(specifier) as Promise<RemoteComponentModule>;
7
+
8
+ const createRemoteFallback = (specifier: string) =>
9
+ ({ error }: { error: Error }) => {
10
+ const { t } = useModernI18n();
11
+ const classification = classifyModuleFederationFallback(error);
12
+ const telemetryEntry =
13
+ typeof window === 'undefined' ? undefined : window.location.href;
14
+ const telemetry = createModuleFederationFallbackTelemetry({
15
+ appName: '{{value0}}',
16
+ classification,
17
+ ...(telemetryEntry === undefined ? {} : { entry: telemetryEntry }),
18
+ error,
19
+ eventName: 'mf.client.remote.fallback',
20
+ exportName: 'default',
21
+ phase: 'load',
22
+ remote: specifier,
23
+ status: 'degraded',
24
+ });
25
+
26
+ useEffect(() => {
27
+ void emitModuleFederationFallbackTelemetry({
28
+ appName: telemetry.appName,
29
+ classification,
30
+ ...(telemetry.entry === undefined ? {} : { entry: telemetry.entry }),
31
+ error,
32
+ eventName: telemetry.eventName,
33
+ exportName: 'default',
34
+ metadata: telemetry.metadata,
35
+ phase: telemetry.phase,
36
+ remote: specifier,
37
+ status: 'degraded',
38
+ });
39
+ }, [classification, error, telemetry]);
40
+
41
+ return <div className="{{value1}}" data-remote-error={error.name} {...toModuleFederationFallbackAttributes(telemetry)}>{t('shell.remoteUnavailable')}</div>;
42
+ };
43
+
44
+ const createHydratedRemote =
45
+ (ServerComponent: ComponentType, specifier: string) =>
46
+ function HydratedRemote() {
47
+ const [hydrated, setHydrated] = useState(false);
48
+
49
+ useEffect(() => {
50
+ setHydrated(true);
51
+ }, []);
52
+
53
+ const FederatedComponent = useMemo(() => {
54
+ if (!hydrated) {
55
+ return null;
56
+ }
57
+ const instance = getInstance();
58
+ if (instance === null || instance === undefined) {
59
+ return null;
60
+ }
61
+ return createLazyComponent({
62
+ export: 'default',
63
+ fallback: createRemoteFallback(specifier),
64
+ instance,
65
+ loader: () => loadRemoteComponent(specifier),
66
+ loading: <ServerComponent />,
67
+ });
68
+ }, [hydrated]);
69
+
70
+ if (FederatedComponent === null) {
71
+ return <ServerComponent />;
72
+ }
73
+
74
+ return (
75
+ <Suspense fallback={<ServerComponent />}>
76
+ <FederatedComponent />
77
+ </Suspense>
78
+ );
79
+ };
@@ -0,0 +1,11 @@
1
+ import {
2
+ classifyModuleFederationFallback,
3
+ createModuleFederationFallbackTelemetry,
4
+ emitModuleFederationFallbackTelemetry,
5
+ toModuleFederationFallbackAttributes,
6
+ } from '@modern-js/runtime/module-federation';
7
+ import { createLazyComponent } from '@module-federation/bridge-react';
8
+ import { getInstance, loadRemote } from '@module-federation/modern-js-v3/runtime';
9
+ import { Suspense, useEffect, useMemo, useState } from 'react';
10
+ import type { ComponentType } from 'react';
11
+ {{value0}}
@@ -0,0 +1,46 @@
1
+ {{value0}}import { Link, useModernI18n } from '@modern-js/plugin-i18n/runtime';
2
+
3
+ const widgetCount = Number('{{value1}}');
4
+
5
+ {{value2}}
6
+ {{value3}}
7
+
8
+ export const Header = () => {
9
+ const { t } = useModernI18n();
10
+
11
+ return (
12
+ <header className="{{value4}}" data-modern-boundary-id="{{value5}}" data-modern-mf-expose="shell/Header">
13
+ <Link className="{{value6}}" to="/">{t('shell.title')}</Link>
14
+ </header>
15
+ );
16
+ };
17
+
18
+ export const StatusBadge = () => {
19
+ const { t } = useModernI18n();
20
+
21
+ return (
22
+ <span className="{{value7}}">
23
+ {widgetCount} {t('shell.hero.cardOneKicker')}
24
+ </span>
25
+ );
26
+ };
27
+
28
+ export const VerticalShowcase = () => {
29
+ const { t } = useModernI18n();
30
+
31
+ if (widgetCount === 0) {
32
+ return (
33
+ <section className="{{value8}}">
34
+ <p className="{{value9}}">{t('shell.hero.empty')}</p>
35
+ </section>
36
+ );
37
+ }
38
+
39
+ return (
40
+ <section className="{{value10}}" data-modern-boundary-id="{{value11}}">
41
+ <div className="{{value12}}">
42
+ {{value13}}
43
+ </div>
44
+ </section>
45
+ );
46
+ };
@@ -0,0 +1,7 @@
1
+ @theme {
2
+ --color-um-accent: #2f8f68;
3
+ --color-um-canvas: #f1eadc;
4
+ --color-um-foreground: #133225;
5
+ --color-um-link: #166b4b;
6
+ --color-um-surface: #f6fbf7;
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { Config } from 'tailwindcss';
2
+
3
+ export default {} satisfies Config;
@@ -0,0 +1,49 @@
1
+
2
+ .handle('getCart', () =>
3
+ Effect.sync(() => createCheckoutCartSnapshot()).pipe(
4
+ Effect.withSpan('ultramodern.api.{{value0}}.checkout.getCart', {
5
+ attributes: operationAttributes({{value1}}OperationContexts.getCart),
6
+ kind: 'server',
7
+ }),
8
+ ),
9
+ )
10
+ .handle('addCartItem', ({ payload }) =>
11
+ Effect.sync(() => {
12
+ const existingLine = checkoutCartLines.get(payload.sku);
13
+ checkoutCartLines.set(payload.sku, {
14
+ sku: payload.sku,
15
+ name: payload.name ?? existingLine?.name ?? payload.sku,
16
+ quantity: (existingLine?.quantity ?? 0) + payload.quantity,
17
+ unitPriceCents:
18
+ payload.unitPriceCents ?? existingLine?.unitPriceCents ?? 0,
19
+ });
20
+ return createCheckoutCartSnapshot();
21
+ }).pipe(
22
+ Effect.withSpan('ultramodern.api.{{value2}}.checkout.addCartItem', {
23
+ attributes: operationAttributes({{value3}}OperationContexts.addCartItem),
24
+ kind: 'server',
25
+ }),
26
+ ),
27
+ )
28
+ .handle('removeCartItem', ({ payload }) =>
29
+ Effect.sync(() => {
30
+ checkoutCartLines.delete(payload.sku);
31
+ return createCheckoutCartSnapshot();
32
+ }).pipe(
33
+ Effect.withSpan('ultramodern.api.{{value4}}.checkout.removeCartItem', {
34
+ attributes: operationAttributes({{value5}}OperationContexts.removeCartItem),
35
+ kind: 'server',
36
+ }),
37
+ ),
38
+ )
39
+ .handle('clearCart', () =>
40
+ Effect.sync(() => {
41
+ checkoutCartLines.clear();
42
+ return createCheckoutCartSnapshot();
43
+ }).pipe(
44
+ Effect.withSpan('ultramodern.api.{{value6}}.checkout.clearCart', {
45
+ attributes: operationAttributes({{value7}}OperationContexts.clearCart),
46
+ kind: 'server',
47
+ }),
48
+ ),
49
+ )
@@ -0,0 +1,23 @@
1
+
2
+ type CheckoutCartLine = {
3
+ sku: string;
4
+ name: string;
5
+ quantity: number;
6
+ unitPriceCents: number;
7
+ };
8
+
9
+ const checkoutCartLines = new Map<string, CheckoutCartLine>();
10
+
11
+ const createCheckoutCartSnapshot = () => {
12
+ const lines = [...checkoutCartLines.values()].sort((left, right) =>
13
+ left.sku.localeCompare(right.sku),
14
+ );
15
+ return {
16
+ lines,
17
+ subtotalCents: lines.reduce(
18
+ (total, line) => total + line.quantity * line.unitPriceCents,
19
+ 0,
20
+ ),
21
+ totalQuantity: lines.reduce((total, line) => total + line.quantity, 0),
22
+ };
23
+ };
@@ -0,0 +1 @@
1
+ checkoutCartPath: '{{value0}}/checkout/cart',