@bleedingdev/modern-js-create 3.5.0-ultramodern.3 → 3.5.0-ultramodern.31

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 (461) hide show
  1. package/README.md +21 -17
  2. package/dist/cjs/cli/flags.cjs +326 -0
  3. package/dist/cjs/cli/help.cjs +106 -0
  4. package/dist/cjs/cli/package-source.cjs +186 -0
  5. package/dist/cjs/cli/project-setup.cjs +138 -0
  6. package/dist/cjs/cli/prompts.cjs +118 -0
  7. package/dist/cjs/index.cjs +24 -581
  8. package/dist/cjs/ultramodern-tooling/commands/cloudflare-output-verify.cjs +132 -0
  9. package/dist/cjs/ultramodern-tooling/commands/context.cjs +131 -0
  10. package/dist/cjs/ultramodern-tooling/commands/mf-types.cjs +55 -0
  11. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.cjs +158 -0
  12. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.cjs +49 -0
  13. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.cjs +87 -0
  14. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.cjs +58 -0
  15. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.cjs +62 -0
  16. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.cjs +60 -0
  17. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.cjs +132 -0
  18. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.cjs +67 -0
  19. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.cjs +93 -0
  20. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.cjs +60 -0
  21. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.cjs +67 -0
  22. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.cjs +67 -0
  23. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/help.cjs +54 -0
  24. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/install.cjs +52 -0
  25. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/io.cjs +133 -0
  26. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.cjs +219 -0
  27. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-source.cjs +76 -0
  28. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.cjs +131 -0
  29. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.cjs +161 -0
  30. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.cjs +88 -0
  31. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect.cjs +149 -0
  32. package/dist/cjs/ultramodern-tooling/commands/options.cjs +59 -0
  33. package/dist/cjs/ultramodern-tooling/commands/routes-generate.cjs +122 -0
  34. package/dist/cjs/ultramodern-tooling/commands/skills.cjs +49 -0
  35. package/dist/cjs/ultramodern-tooling/commands/sync-delivery-unit.cjs +40 -0
  36. package/dist/cjs/ultramodern-tooling/commands/validate.cjs +49 -0
  37. package/dist/cjs/ultramodern-tooling/commands.cjs +27 -478
  38. package/dist/cjs/ultramodern-tooling/config/constants.cjs +48 -0
  39. package/dist/cjs/ultramodern-tooling/config/index.cjs +104 -0
  40. package/dist/cjs/ultramodern-tooling/config/json.cjs +61 -0
  41. package/dist/cjs/ultramodern-tooling/config/load.cjs +62 -0
  42. package/dist/cjs/ultramodern-tooling/config/metadata.cjs +92 -0
  43. package/dist/cjs/ultramodern-tooling/config/normalize.cjs +160 -0
  44. package/dist/cjs/ultramodern-tooling/config/synthesize.cjs +157 -0
  45. package/dist/cjs/ultramodern-tooling/config/types.cjs +18 -0
  46. package/dist/cjs/ultramodern-tooling/config.cjs +23 -133
  47. package/dist/cjs/ultramodern-workspace/add-vertical/constants.cjs +52 -0
  48. package/dist/cjs/ultramodern-workspace/add-vertical/execute.cjs +156 -0
  49. package/dist/cjs/ultramodern-workspace/add-vertical/plan.cjs +246 -0
  50. package/dist/cjs/ultramodern-workspace/add-vertical/preflight.cjs +198 -0
  51. package/dist/cjs/ultramodern-workspace/add-vertical/shell-files.cjs +116 -0
  52. package/dist/cjs/ultramodern-workspace/add-vertical/topology.cjs +133 -0
  53. package/dist/cjs/ultramodern-workspace/add-vertical/workspace-state.cjs +107 -0
  54. package/dist/cjs/ultramodern-workspace/add-vertical.cjs +22 -571
  55. package/dist/cjs/ultramodern-workspace/api/checkout-cart.cjs +145 -0
  56. package/dist/cjs/ultramodern-workspace/api/client.cjs +218 -0
  57. package/dist/cjs/ultramodern-workspace/api/contracts.cjs +222 -0
  58. package/dist/cjs/ultramodern-workspace/api/names.cjs +98 -0
  59. package/dist/cjs/ultramodern-workspace/api/service.cjs +220 -0
  60. package/dist/cjs/ultramodern-workspace/api/shared.cjs +252 -0
  61. package/dist/cjs/ultramodern-workspace/api.cjs +29 -1004
  62. package/dist/cjs/ultramodern-workspace/app-files.cjs +11 -29
  63. package/dist/cjs/ultramodern-workspace/backend-federation.cjs +296 -0
  64. package/dist/cjs/ultramodern-workspace/bridge-config/cli.cjs +71 -0
  65. package/dist/cjs/ultramodern-workspace/bridge-config/defaults.cjs +43 -0
  66. package/dist/cjs/ultramodern-workspace/bridge-config/gates.cjs +93 -0
  67. package/dist/cjs/ultramodern-workspace/bridge-config/index.cjs +60 -0
  68. package/dist/cjs/ultramodern-workspace/bridge-config/normalize.cjs +68 -0
  69. package/dist/cjs/ultramodern-workspace/bridge-config/schema.cjs +78 -0
  70. package/dist/cjs/ultramodern-workspace/bridge-config/shared.cjs +110 -0
  71. package/dist/cjs/ultramodern-workspace/bridge-config/validation.cjs +68 -0
  72. package/dist/cjs/ultramodern-workspace/bridge-config/workspace-packages.cjs +108 -0
  73. package/dist/cjs/ultramodern-workspace/bridge-config.cjs +32 -297
  74. package/dist/cjs/ultramodern-workspace/contracts.cjs +24 -8
  75. package/dist/cjs/ultramodern-workspace/delivery-unit-sync.cjs +159 -0
  76. package/dist/cjs/ultramodern-workspace/delivery-unit.cjs +75 -0
  77. package/dist/cjs/ultramodern-workspace/demo-components.cjs +47 -189
  78. package/dist/cjs/ultramodern-workspace/descriptors.cjs +36 -1
  79. package/dist/cjs/ultramodern-workspace/effect-diagnostics.cjs +114 -0
  80. package/dist/cjs/ultramodern-workspace/fs-io.cjs +24 -2
  81. package/dist/cjs/ultramodern-workspace/index.cjs +4 -0
  82. package/dist/cjs/ultramodern-workspace/mf-validation/constants.cjs +69 -0
  83. package/dist/cjs/ultramodern-workspace/mf-validation/discovery.cjs +77 -0
  84. package/dist/cjs/ultramodern-workspace/mf-validation/inspect.cjs +92 -0
  85. package/dist/cjs/ultramodern-workspace/mf-validation/object-literal.cjs +203 -0
  86. package/dist/cjs/ultramodern-workspace/mf-validation/path-utils.cjs +171 -0
  87. package/dist/cjs/ultramodern-workspace/mf-validation/syntax.cjs +228 -0
  88. package/dist/cjs/ultramodern-workspace/mf-validation/types.cjs +18 -0
  89. package/dist/cjs/ultramodern-workspace/mf-validation/validate.cjs +112 -0
  90. package/dist/cjs/ultramodern-workspace/mf-validation.cjs +6 -529
  91. package/dist/cjs/ultramodern-workspace/module-federation/config.cjs +251 -0
  92. package/dist/cjs/ultramodern-workspace/module-federation/index.cjs +73 -0
  93. package/dist/cjs/ultramodern-workspace/module-federation/reexport-module.cjs +73 -0
  94. package/dist/cjs/ultramodern-workspace/module-federation/remote-refs.cjs +105 -0
  95. package/dist/cjs/ultramodern-workspace/module-federation/shared-config.cjs +53 -0
  96. package/dist/cjs/ultramodern-workspace/module-federation.cjs +18 -477
  97. package/dist/cjs/ultramodern-workspace/package-json.cjs +25 -258
  98. package/dist/cjs/ultramodern-workspace/pnpm-workspace-policy-plan.cjs +166 -0
  99. package/dist/cjs/ultramodern-workspace/routes.cjs +8 -142
  100. package/dist/cjs/ultramodern-workspace/shared-patches.cjs +44 -0
  101. package/dist/cjs/ultramodern-workspace/tooling-command-catalog.cjs +153 -0
  102. package/dist/cjs/ultramodern-workspace/tsconfigs.cjs +199 -0
  103. package/dist/cjs/ultramodern-workspace/versions.cjs +8 -3
  104. package/dist/cjs/ultramodern-workspace/workspace-script-plan.cjs +175 -0
  105. package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +104 -63
  106. package/dist/cjs/ultramodern-workspace/workspace-validation-contract.cjs +97 -0
  107. package/dist/cjs/ultramodern-workspace/write-app.cjs +128 -0
  108. package/dist/cjs/ultramodern-workspace/write-workspace.cjs +10 -59
  109. package/dist/cjs/ultramodern-workspace/zerops.cjs +103 -0
  110. package/dist/esm/cli/flags.js +228 -0
  111. package/dist/esm/cli/help.js +65 -0
  112. package/dist/esm/cli/package-source.js +119 -0
  113. package/dist/esm/cli/project-setup.js +81 -0
  114. package/dist/esm/cli/prompts.js +63 -0
  115. package/dist/esm/index.js +6 -559
  116. package/dist/esm/ultramodern-tooling/commands/cloudflare-output-verify.js +84 -0
  117. package/dist/esm/ultramodern-tooling/commands/context.js +66 -0
  118. package/dist/esm/ultramodern-tooling/commands/mf-types.js +17 -0
  119. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +106 -0
  120. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +11 -0
  121. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +38 -0
  122. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +10 -0
  123. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +14 -0
  124. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +12 -0
  125. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +83 -0
  126. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +16 -0
  127. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +44 -0
  128. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +12 -0
  129. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +7 -0
  130. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +15 -0
  131. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/help.js +16 -0
  132. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/install.js +14 -0
  133. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/io.js +69 -0
  134. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +175 -0
  135. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +38 -0
  136. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +76 -0
  137. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +105 -0
  138. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +16 -0
  139. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect.js +100 -0
  140. package/dist/esm/ultramodern-tooling/commands/options.js +18 -0
  141. package/dist/esm/ultramodern-tooling/commands/routes-generate.js +74 -0
  142. package/dist/esm/ultramodern-tooling/commands/skills.js +11 -0
  143. package/dist/esm/ultramodern-tooling/commands/sync-delivery-unit.js +1 -0
  144. package/dist/esm/ultramodern-tooling/commands/validate.js +11 -0
  145. package/dist/esm/ultramodern-tooling/commands.js +22 -468
  146. package/dist/esm/ultramodern-tooling/config/constants.js +4 -0
  147. package/dist/esm/ultramodern-tooling/config/index.js +7 -0
  148. package/dist/esm/ultramodern-tooling/config/json.js +10 -0
  149. package/dist/esm/ultramodern-tooling/config/load.js +13 -0
  150. package/dist/esm/ultramodern-tooling/config/metadata.js +37 -0
  151. package/dist/esm/ultramodern-tooling/config/normalize.js +106 -0
  152. package/dist/esm/ultramodern-tooling/config/synthesize.js +108 -0
  153. package/dist/esm/ultramodern-tooling/config/types.js +0 -0
  154. package/dist/esm/ultramodern-tooling/config.js +1 -120
  155. package/dist/esm/ultramodern-workspace/add-vertical/constants.js +5 -0
  156. package/dist/esm/ultramodern-workspace/add-vertical/execute.js +108 -0
  157. package/dist/esm/ultramodern-workspace/add-vertical/plan.js +184 -0
  158. package/dist/esm/ultramodern-workspace/add-vertical/preflight.js +122 -0
  159. package/dist/esm/ultramodern-workspace/add-vertical/shell-files.js +59 -0
  160. package/dist/esm/ultramodern-workspace/add-vertical/topology.js +89 -0
  161. package/dist/esm/ultramodern-workspace/add-vertical/workspace-state.js +43 -0
  162. package/dist/esm/ultramodern-workspace/add-vertical.js +6 -544
  163. package/dist/esm/ultramodern-workspace/api/checkout-cart.js +86 -0
  164. package/dist/esm/ultramodern-workspace/api/client.js +177 -0
  165. package/dist/esm/ultramodern-workspace/api/contracts.js +172 -0
  166. package/dist/esm/ultramodern-workspace/api/names.js +33 -0
  167. package/dist/esm/ultramodern-workspace/api/service.js +179 -0
  168. package/dist/esm/ultramodern-workspace/api/shared.js +208 -0
  169. package/dist/esm/ultramodern-workspace/api.js +5 -984
  170. package/dist/esm/ultramodern-workspace/app-files.js +11 -29
  171. package/dist/esm/ultramodern-workspace/backend-federation.js +231 -0
  172. package/dist/esm/ultramodern-workspace/bridge-config/cli.js +30 -0
  173. package/dist/esm/ultramodern-workspace/bridge-config/defaults.js +5 -0
  174. package/dist/esm/ultramodern-workspace/bridge-config/gates.js +52 -0
  175. package/dist/esm/ultramodern-workspace/bridge-config/index.js +3 -0
  176. package/dist/esm/ultramodern-workspace/bridge-config/normalize.js +30 -0
  177. package/dist/esm/ultramodern-workspace/bridge-config/schema.js +31 -0
  178. package/dist/esm/ultramodern-workspace/bridge-config/shared.js +51 -0
  179. package/dist/esm/ultramodern-workspace/bridge-config/validation.js +27 -0
  180. package/dist/esm/ultramodern-workspace/bridge-config/workspace-packages.js +67 -0
  181. package/dist/esm/ultramodern-workspace/bridge-config.js +1 -270
  182. package/dist/esm/ultramodern-workspace/contracts.js +24 -8
  183. package/dist/esm/ultramodern-workspace/delivery-unit-sync.js +110 -0
  184. package/dist/esm/ultramodern-workspace/delivery-unit.js +21 -0
  185. package/dist/esm/ultramodern-workspace/demo-components.js +47 -189
  186. package/dist/esm/ultramodern-workspace/descriptors.js +25 -2
  187. package/dist/esm/ultramodern-workspace/effect-diagnostics.js +76 -0
  188. package/dist/esm/ultramodern-workspace/fs-io.js +24 -2
  189. package/dist/esm/ultramodern-workspace/index.js +1 -0
  190. package/dist/esm/ultramodern-workspace/mf-validation/constants.js +19 -0
  191. package/dist/esm/ultramodern-workspace/mf-validation/discovery.js +28 -0
  192. package/dist/esm/ultramodern-workspace/mf-validation/inspect.js +45 -0
  193. package/dist/esm/ultramodern-workspace/mf-validation/object-literal.js +144 -0
  194. package/dist/esm/ultramodern-workspace/mf-validation/path-utils.js +89 -0
  195. package/dist/esm/ultramodern-workspace/mf-validation/syntax.js +154 -0
  196. package/dist/esm/ultramodern-workspace/mf-validation/types.js +0 -0
  197. package/dist/esm/ultramodern-workspace/mf-validation/validate.js +57 -0
  198. package/dist/esm/ultramodern-workspace/mf-validation.js +3 -516
  199. package/dist/esm/ultramodern-workspace/module-federation/config.js +204 -0
  200. package/dist/esm/ultramodern-workspace/module-federation/index.js +4 -0
  201. package/dist/esm/ultramodern-workspace/module-federation/reexport-module.js +29 -0
  202. package/dist/esm/ultramodern-workspace/module-federation/remote-refs.js +64 -0
  203. package/dist/esm/ultramodern-workspace/module-federation/shared-config.js +12 -0
  204. package/dist/esm/ultramodern-workspace/module-federation.js +2 -458
  205. package/dist/esm/ultramodern-workspace/package-json.js +18 -245
  206. package/dist/esm/ultramodern-workspace/pnpm-workspace-policy-plan.js +113 -0
  207. package/dist/esm/ultramodern-workspace/routes.js +8 -142
  208. package/dist/esm/ultramodern-workspace/shared-patches.js +6 -0
  209. package/dist/esm/ultramodern-workspace/tooling-command-catalog.js +100 -0
  210. package/dist/esm/ultramodern-workspace/tsconfigs.js +136 -0
  211. package/dist/esm/ultramodern-workspace/versions.js +6 -4
  212. package/dist/esm/ultramodern-workspace/workspace-script-plan.js +110 -0
  213. package/dist/esm/ultramodern-workspace/workspace-scripts.js +88 -65
  214. package/dist/esm/ultramodern-workspace/workspace-validation-contract.js +59 -0
  215. package/dist/esm/ultramodern-workspace/write-app.js +90 -0
  216. package/dist/esm/ultramodern-workspace/write-workspace.js +11 -60
  217. package/dist/esm/ultramodern-workspace/zerops.js +65 -0
  218. package/dist/esm-node/cli/flags.js +229 -0
  219. package/dist/esm-node/cli/help.js +66 -0
  220. package/dist/esm-node/cli/package-source.js +120 -0
  221. package/dist/esm-node/cli/project-setup.js +82 -0
  222. package/dist/esm-node/cli/prompts.js +64 -0
  223. package/dist/esm-node/index.js +6 -559
  224. package/dist/esm-node/ultramodern-tooling/commands/cloudflare-output-verify.js +85 -0
  225. package/dist/esm-node/ultramodern-tooling/commands/context.js +67 -0
  226. package/dist/esm-node/ultramodern-tooling/commands/mf-types.js +18 -0
  227. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +107 -0
  228. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +12 -0
  229. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +39 -0
  230. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +11 -0
  231. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +15 -0
  232. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +13 -0
  233. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +84 -0
  234. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +17 -0
  235. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +45 -0
  236. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +13 -0
  237. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +8 -0
  238. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +16 -0
  239. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/help.js +17 -0
  240. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/install.js +15 -0
  241. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/io.js +70 -0
  242. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +176 -0
  243. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +39 -0
  244. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +77 -0
  245. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +106 -0
  246. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +17 -0
  247. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect.js +101 -0
  248. package/dist/esm-node/ultramodern-tooling/commands/options.js +19 -0
  249. package/dist/esm-node/ultramodern-tooling/commands/routes-generate.js +75 -0
  250. package/dist/esm-node/ultramodern-tooling/commands/skills.js +12 -0
  251. package/dist/esm-node/ultramodern-tooling/commands/sync-delivery-unit.js +2 -0
  252. package/dist/esm-node/ultramodern-tooling/commands/validate.js +12 -0
  253. package/dist/esm-node/ultramodern-tooling/commands.js +22 -468
  254. package/dist/esm-node/ultramodern-tooling/config/constants.js +5 -0
  255. package/dist/esm-node/ultramodern-tooling/config/index.js +8 -0
  256. package/dist/esm-node/ultramodern-tooling/config/json.js +11 -0
  257. package/dist/esm-node/ultramodern-tooling/config/load.js +14 -0
  258. package/dist/esm-node/ultramodern-tooling/config/metadata.js +38 -0
  259. package/dist/esm-node/ultramodern-tooling/config/normalize.js +107 -0
  260. package/dist/esm-node/ultramodern-tooling/config/synthesize.js +109 -0
  261. package/dist/esm-node/ultramodern-tooling/config/types.js +1 -0
  262. package/dist/esm-node/ultramodern-tooling/config.js +1 -120
  263. package/dist/esm-node/ultramodern-workspace/add-vertical/constants.js +6 -0
  264. package/dist/esm-node/ultramodern-workspace/add-vertical/execute.js +109 -0
  265. package/dist/esm-node/ultramodern-workspace/add-vertical/plan.js +185 -0
  266. package/dist/esm-node/ultramodern-workspace/add-vertical/preflight.js +123 -0
  267. package/dist/esm-node/ultramodern-workspace/add-vertical/shell-files.js +60 -0
  268. package/dist/esm-node/ultramodern-workspace/add-vertical/topology.js +90 -0
  269. package/dist/esm-node/ultramodern-workspace/add-vertical/workspace-state.js +44 -0
  270. package/dist/esm-node/ultramodern-workspace/add-vertical.js +6 -544
  271. package/dist/esm-node/ultramodern-workspace/api/checkout-cart.js +87 -0
  272. package/dist/esm-node/ultramodern-workspace/api/client.js +178 -0
  273. package/dist/esm-node/ultramodern-workspace/api/contracts.js +173 -0
  274. package/dist/esm-node/ultramodern-workspace/api/names.js +34 -0
  275. package/dist/esm-node/ultramodern-workspace/api/service.js +180 -0
  276. package/dist/esm-node/ultramodern-workspace/api/shared.js +209 -0
  277. package/dist/esm-node/ultramodern-workspace/api.js +5 -984
  278. package/dist/esm-node/ultramodern-workspace/app-files.js +11 -29
  279. package/dist/esm-node/ultramodern-workspace/backend-federation.js +232 -0
  280. package/dist/esm-node/ultramodern-workspace/bridge-config/cli.js +31 -0
  281. package/dist/esm-node/ultramodern-workspace/bridge-config/defaults.js +6 -0
  282. package/dist/esm-node/ultramodern-workspace/bridge-config/gates.js +53 -0
  283. package/dist/esm-node/ultramodern-workspace/bridge-config/index.js +4 -0
  284. package/dist/esm-node/ultramodern-workspace/bridge-config/normalize.js +31 -0
  285. package/dist/esm-node/ultramodern-workspace/bridge-config/schema.js +32 -0
  286. package/dist/esm-node/ultramodern-workspace/bridge-config/shared.js +52 -0
  287. package/dist/esm-node/ultramodern-workspace/bridge-config/validation.js +28 -0
  288. package/dist/esm-node/ultramodern-workspace/bridge-config/workspace-packages.js +68 -0
  289. package/dist/esm-node/ultramodern-workspace/bridge-config.js +1 -270
  290. package/dist/esm-node/ultramodern-workspace/contracts.js +24 -8
  291. package/dist/esm-node/ultramodern-workspace/delivery-unit-sync.js +111 -0
  292. package/dist/esm-node/ultramodern-workspace/delivery-unit.js +22 -0
  293. package/dist/esm-node/ultramodern-workspace/demo-components.js +47 -189
  294. package/dist/esm-node/ultramodern-workspace/descriptors.js +25 -2
  295. package/dist/esm-node/ultramodern-workspace/effect-diagnostics.js +77 -0
  296. package/dist/esm-node/ultramodern-workspace/fs-io.js +24 -2
  297. package/dist/esm-node/ultramodern-workspace/index.js +1 -0
  298. package/dist/esm-node/ultramodern-workspace/mf-validation/constants.js +20 -0
  299. package/dist/esm-node/ultramodern-workspace/mf-validation/discovery.js +29 -0
  300. package/dist/esm-node/ultramodern-workspace/mf-validation/inspect.js +46 -0
  301. package/dist/esm-node/ultramodern-workspace/mf-validation/object-literal.js +145 -0
  302. package/dist/esm-node/ultramodern-workspace/mf-validation/path-utils.js +90 -0
  303. package/dist/esm-node/ultramodern-workspace/mf-validation/syntax.js +155 -0
  304. package/dist/esm-node/ultramodern-workspace/mf-validation/types.js +1 -0
  305. package/dist/esm-node/ultramodern-workspace/mf-validation/validate.js +58 -0
  306. package/dist/esm-node/ultramodern-workspace/mf-validation.js +3 -516
  307. package/dist/esm-node/ultramodern-workspace/module-federation/config.js +205 -0
  308. package/dist/esm-node/ultramodern-workspace/module-federation/index.js +5 -0
  309. package/dist/esm-node/ultramodern-workspace/module-federation/reexport-module.js +30 -0
  310. package/dist/esm-node/ultramodern-workspace/module-federation/remote-refs.js +65 -0
  311. package/dist/esm-node/ultramodern-workspace/module-federation/shared-config.js +13 -0
  312. package/dist/esm-node/ultramodern-workspace/module-federation.js +2 -458
  313. package/dist/esm-node/ultramodern-workspace/package-json.js +18 -245
  314. package/dist/esm-node/ultramodern-workspace/pnpm-workspace-policy-plan.js +114 -0
  315. package/dist/esm-node/ultramodern-workspace/routes.js +8 -142
  316. package/dist/esm-node/ultramodern-workspace/shared-patches.js +7 -0
  317. package/dist/esm-node/ultramodern-workspace/tooling-command-catalog.js +101 -0
  318. package/dist/esm-node/ultramodern-workspace/tsconfigs.js +137 -0
  319. package/dist/esm-node/ultramodern-workspace/versions.js +6 -4
  320. package/dist/esm-node/ultramodern-workspace/workspace-script-plan.js +111 -0
  321. package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +88 -65
  322. package/dist/esm-node/ultramodern-workspace/workspace-validation-contract.js +60 -0
  323. package/dist/esm-node/ultramodern-workspace/write-app.js +91 -0
  324. package/dist/esm-node/ultramodern-workspace/write-workspace.js +11 -60
  325. package/dist/esm-node/ultramodern-workspace/zerops.js +66 -0
  326. package/dist/types/cli/flags.d.ts +30 -0
  327. package/dist/types/cli/help.d.ts +2 -0
  328. package/dist/types/cli/package-source.d.ts +15 -0
  329. package/dist/types/cli/project-setup.d.ts +8 -0
  330. package/dist/types/cli/prompts.d.ts +6 -0
  331. package/dist/types/ultramodern-tooling/commands/cloudflare-output-verify.d.ts +2 -0
  332. package/dist/types/ultramodern-tooling/commands/context.d.ts +11 -0
  333. package/dist/types/ultramodern-tooling/commands/mf-types.d.ts +2 -0
  334. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.d.ts +4 -0
  335. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.d.ts +4 -0
  336. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.d.ts +1 -0
  337. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.d.ts +3 -0
  338. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.d.ts +3 -0
  339. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.d.ts +3 -0
  340. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.d.ts +2 -0
  341. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.d.ts +4 -0
  342. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.d.ts +3 -0
  343. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.d.ts +3 -0
  344. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.d.ts +7 -0
  345. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.d.ts +3 -0
  346. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/help.d.ts +1 -0
  347. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/install.d.ts +2 -0
  348. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/io.d.ts +14 -0
  349. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.d.ts +9 -0
  350. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-source.d.ts +3 -0
  351. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.d.ts +4 -0
  352. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.d.ts +25 -0
  353. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.d.ts +9 -0
  354. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect.d.ts +2 -0
  355. package/dist/types/ultramodern-tooling/commands/options.d.ts +2 -0
  356. package/dist/types/ultramodern-tooling/commands/routes-generate.d.ts +2 -0
  357. package/dist/types/ultramodern-tooling/commands/skills.d.ts +2 -0
  358. package/dist/types/ultramodern-tooling/commands/sync-delivery-unit.d.ts +1 -0
  359. package/dist/types/ultramodern-tooling/commands/validate.d.ts +2 -0
  360. package/dist/types/ultramodern-tooling/config/constants.d.ts +3 -0
  361. package/dist/types/ultramodern-tooling/config/index.d.ts +7 -0
  362. package/dist/types/ultramodern-tooling/config/json.d.ts +2 -0
  363. package/dist/types/ultramodern-tooling/config/load.d.ts +2 -0
  364. package/dist/types/ultramodern-tooling/config/metadata.d.ts +4 -0
  365. package/dist/types/ultramodern-tooling/config/normalize.d.ts +5 -0
  366. package/dist/types/ultramodern-tooling/config/synthesize.d.ts +5 -0
  367. package/dist/types/ultramodern-tooling/config/types.d.ts +41 -0
  368. package/dist/types/ultramodern-tooling/config.d.ts +1 -43
  369. package/dist/types/ultramodern-workspace/add-vertical/constants.d.ts +4 -0
  370. package/dist/types/ultramodern-workspace/add-vertical/execute.d.ts +2 -0
  371. package/dist/types/ultramodern-workspace/add-vertical/plan.d.ts +7 -0
  372. package/dist/types/ultramodern-workspace/add-vertical/preflight.d.ts +28 -0
  373. package/dist/types/ultramodern-workspace/add-vertical/shell-files.d.ts +6 -0
  374. package/dist/types/ultramodern-workspace/add-vertical/topology.d.ts +9 -0
  375. package/dist/types/ultramodern-workspace/add-vertical/workspace-state.d.ts +8 -0
  376. package/dist/types/ultramodern-workspace/add-vertical.d.ts +7 -39
  377. package/dist/types/ultramodern-workspace/api/checkout-cart.d.ts +33 -0
  378. package/dist/types/ultramodern-workspace/api/client.d.ts +6 -0
  379. package/dist/types/ultramodern-workspace/api/contracts.d.ts +15 -0
  380. package/dist/types/ultramodern-workspace/api/names.d.ts +41 -0
  381. package/dist/types/ultramodern-workspace/api/service.d.ts +6 -0
  382. package/dist/types/ultramodern-workspace/api/shared.d.ts +10 -0
  383. package/dist/types/ultramodern-workspace/api.d.ts +5 -73
  384. package/dist/types/ultramodern-workspace/backend-federation.d.ts +11 -0
  385. package/dist/types/ultramodern-workspace/bridge-config/cli.d.ts +3 -0
  386. package/dist/types/ultramodern-workspace/bridge-config/defaults.d.ts +1 -0
  387. package/dist/types/ultramodern-workspace/bridge-config/gates.d.ts +3 -0
  388. package/dist/types/ultramodern-workspace/bridge-config/index.d.ts +4 -0
  389. package/dist/types/ultramodern-workspace/bridge-config/normalize.d.ts +2 -0
  390. package/dist/types/ultramodern-workspace/bridge-config/schema.d.ts +61 -0
  391. package/dist/types/ultramodern-workspace/bridge-config/shared.d.ts +12 -0
  392. package/dist/types/ultramodern-workspace/bridge-config/validation.d.ts +3 -0
  393. package/dist/types/ultramodern-workspace/bridge-config/workspace-packages.d.ts +3 -0
  394. package/dist/types/ultramodern-workspace/bridge-config.d.ts +1 -64
  395. package/dist/types/ultramodern-workspace/contracts.d.ts +1 -1
  396. package/dist/types/ultramodern-workspace/delivery-unit-sync.d.ts +6 -0
  397. package/dist/types/ultramodern-workspace/delivery-unit.d.ts +8 -0
  398. package/dist/types/ultramodern-workspace/descriptors.d.ts +4 -0
  399. package/dist/types/ultramodern-workspace/effect-diagnostics.d.ts +1 -0
  400. package/dist/types/ultramodern-workspace/index.d.ts +1 -0
  401. package/dist/types/ultramodern-workspace/mf-validation/constants.d.ts +5 -0
  402. package/dist/types/ultramodern-workspace/mf-validation/discovery.d.ts +2 -0
  403. package/dist/types/ultramodern-workspace/mf-validation/inspect.d.ts +5 -0
  404. package/dist/types/ultramodern-workspace/mf-validation/object-literal.d.ts +9 -0
  405. package/dist/types/ultramodern-workspace/mf-validation/path-utils.d.ts +13 -0
  406. package/dist/types/ultramodern-workspace/mf-validation/syntax.d.ts +14 -0
  407. package/dist/types/ultramodern-workspace/mf-validation/types.d.ts +33 -0
  408. package/dist/types/ultramodern-workspace/mf-validation/validate.d.ts +4 -0
  409. package/dist/types/ultramodern-workspace/mf-validation.d.ts +4 -27
  410. package/dist/types/ultramodern-workspace/module-federation/config.d.ts +5 -0
  411. package/dist/types/ultramodern-workspace/module-federation/index.d.ts +4 -0
  412. package/dist/types/ultramodern-workspace/module-federation/reexport-module.d.ts +4 -0
  413. package/dist/types/ultramodern-workspace/module-federation/remote-refs.d.ts +3 -0
  414. package/dist/types/ultramodern-workspace/module-federation/shared-config.d.ts +2 -0
  415. package/dist/types/ultramodern-workspace/module-federation.d.ts +2 -17
  416. package/dist/types/ultramodern-workspace/package-json.d.ts +1 -14
  417. package/dist/types/ultramodern-workspace/pnpm-workspace-policy-plan.d.ts +39 -0
  418. package/dist/types/ultramodern-workspace/shared-patches.d.ts +2 -0
  419. package/dist/types/ultramodern-workspace/tooling-command-catalog.d.ts +18 -0
  420. package/dist/types/ultramodern-workspace/tsconfigs.d.ts +13 -0
  421. package/dist/types/ultramodern-workspace/versions.d.ts +5 -3
  422. package/dist/types/ultramodern-workspace/workspace-script-plan.d.ts +72 -0
  423. package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +13 -0
  424. package/dist/types/ultramodern-workspace/workspace-validation-contract.d.ts +42 -0
  425. package/dist/types/ultramodern-workspace/write-app.d.ts +3 -0
  426. package/dist/types/ultramodern-workspace/write-workspace.d.ts +2 -1
  427. package/dist/types/ultramodern-workspace/zerops.d.ts +2 -0
  428. package/package.json +4 -3
  429. package/template-workspace/.gitignore.handlebars +4 -0
  430. package/template-workspace/README.md.handlebars +18 -15
  431. package/template-workspace/patches/@module-federation__bridge-react@2.6.0.patch +140 -0
  432. package/template-workspace/patches/@module-federation__modern-js-v3@2.6.0.patch +57 -0
  433. package/template-workspace/patches/drizzle-orm-ts7-strict-declarations.patch +452 -0
  434. package/template-workspace/patches/effect-schema-error-type-id.patch +18 -0
  435. package/template-workspace/pnpm-workspace.yaml.handlebars +8 -0
  436. package/template-workspace/scripts/bootstrap-agent-skills.mjs +11 -3
  437. package/templates/workspace/apps/modern.config.shared-module-federation.ts.handlebars +37 -0
  438. package/templates/workspace/apps/modern.config.ts.handlebars +252 -0
  439. package/templates/workspace/apps/shared/src/routes/ultramodern-jsonld.ts.handlebars +119 -0
  440. package/templates/workspace/apps/shared/src/routes/ultramodern-route-metadata.ts.handlebars +21 -0
  441. package/templates/workspace/apps/shell-super-app/src/routes/[lang]/page.tsx.handlebars +49 -0
  442. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.helpers.tsx.handlebars +79 -0
  443. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.imports.tsx.handlebars +11 -0
  444. package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.tsx.handlebars +46 -0
  445. package/templates/workspace/packages/shared-design-tokens/tokens.css.handlebars +7 -0
  446. package/templates/workspace/postcss.config.mjs.handlebars +5 -0
  447. package/templates/workspace/tailwind.config.ts.handlebars +3 -0
  448. package/templates/workspace/verticals/server/checkout-cart-handlers.ts.handlebars +49 -0
  449. package/templates/workspace/verticals/server/checkout-cart-state.ts.handlebars +23 -0
  450. package/templates/workspace/verticals/shared/api.checkout-cart-contract-fields.ts.handlebars +1 -0
  451. package/templates/workspace/verticals/shared/api.checkout-cart-endpoints.ts.handlebars +23 -0
  452. package/templates/workspace/verticals/shared/api.checkout-cart-operation-contexts.ts.handlebars +25 -0
  453. package/templates/workspace/verticals/shared/api.checkout-cart-schemas.ts.handlebars +48 -0
  454. package/templates/workspace/verticals/src/api/checkout-cart-client-exports.ts.handlebars +70 -0
  455. package/templates/workspace-scripts/check-ultramodern-api-boundaries.mts +40 -2
  456. package/templates/workspace-scripts/generate-node-backend-federation.mjs +299 -0
  457. package/templates/workspace-scripts/materialize-zerops-runtime.mjs +448 -0
  458. package/templates/workspace-scripts/proof-cloudflare-version.mjs +237 -9
  459. package/templates/workspace-scripts/proof-node-backend-federation.mjs +760 -0
  460. package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +188 -2
  461. package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +476 -26
@@ -1,86 +1,10 @@
1
1
  import "node:module";
2
2
  import { WORKSPACE_PACKAGE_VERSION, modernPackageSpecifier } from "../ultramodern-package-source.js";
3
- import { appHasApi, remoteDependencyAlias, resolveRemoteRefs, sharedPackages, shellApp, verticalApiApps, zephyrRemoteDependency } from "./descriptors.js";
3
+ import { appHasApi, remoteDependencyAlias, resolveRemoteRefs, shellApp, verticalApiApps, zephyrRemoteDependency } from "./descriptors.js";
4
4
  import { readFileTemplate } from "./fs-io.js";
5
5
  import { packageName, relativeRootFor } from "./naming.js";
6
- import { createPublicSurfaceGenerationCommand } from "./public-surface.js";
7
6
  import { EFFECT_TSGO_VERSION, I18NEXT_VERSION, LEFTHOOK_VERSION, MODULE_FEDERATION_VERSION, NODE_FETCH_VERSION, OXFMT_VERSION, OXLINT_VERSION, PNPM_VERSION, POSTCSS_VERSION, REACT_DOM_VERSION, REACT_ROUTER_VERSION, REACT_VERSION, TAILWIND_POSTCSS_VERSION, TAILWIND_VERSION, TANSTACK_ROUTER_VERSION, TYPESCRIPT_NATIVE_PREVIEW_VERSION, TYPESCRIPT_VERSION, TYPES_REACT_DOM_VERSION, TYPES_REACT_VERSION, ULTRACITE_VERSION, WRANGLER_VERSION, ZEPHYR_AGENT_VERSION, ZEPHYR_RSPACK_PLUGIN_VERSION } from "./versions.js";
8
- const createStrictTsgoTypecheckCommand = (packageDir)=>`node ${relativeRootFor(packageDir)}/scripts/ultramodern-typecheck.mts --project tsconfig.json`;
9
- const effectDiagnostics = [
10
- 'anyUnknownInErrorContext',
11
- 'classSelfMismatch',
12
- 'duplicatePackage',
13
- 'effectFnImplicitAny',
14
- 'floatingEffect',
15
- 'genericEffectServices',
16
- 'missingEffectContext',
17
- 'missingEffectError',
18
- 'missingLayerContext',
19
- 'missingReturnYieldStar',
20
- 'missingStarInYieldEffectGen',
21
- 'nonObjectEffectServiceType',
22
- 'outdatedApi',
23
- 'overriddenSchemaConstructor',
24
- 'catchUnfailableEffect',
25
- 'effectFnIife',
26
- 'effectGenUsesAdapter',
27
- 'effectInFailure',
28
- 'effectInVoidSuccess',
29
- 'globalErrorInEffectCatch',
30
- 'globalErrorInEffectFailure',
31
- 'layerMergeAllWithDependencies',
32
- 'lazyPromiseInEffectSync',
33
- 'leakingRequirements',
34
- 'multipleEffectProvide',
35
- 'returnEffectInGen',
36
- 'runEffectInsideEffect',
37
- 'schemaSyncInEffect',
38
- 'scopeInLayerEffect',
39
- 'strictEffectProvide',
40
- 'tryCatchInEffectGen',
41
- 'unknownInEffectCatch',
42
- 'asyncFunction',
43
- 'cryptoRandomUUID',
44
- 'cryptoRandomUUIDInEffect',
45
- 'extendsNativeError',
46
- 'globalConsole',
47
- 'globalConsoleInEffect',
48
- 'globalDate',
49
- 'globalDateInEffect',
50
- 'globalFetch',
51
- 'globalFetchInEffect',
52
- 'globalRandom',
53
- 'globalRandomInEffect',
54
- 'globalTimers',
55
- 'globalTimersInEffect',
56
- 'instanceOfSchema',
57
- 'newPromise',
58
- 'nodeBuiltinImport',
59
- 'preferSchemaOverJson',
60
- 'processEnv',
61
- 'processEnvInEffect',
62
- 'unsafeEffectTypeAssertion',
63
- 'catchAllToMapError',
64
- 'deterministicKeys',
65
- 'effectDoNotation',
66
- 'effectFnOpportunity',
67
- 'effectMapFlatten',
68
- 'effectMapVoid',
69
- 'effectSucceedWithVoid',
70
- 'missedPipeableOpportunity',
71
- 'missingEffectServiceDependency',
72
- 'nestedEffectGenYield',
73
- 'redundantSchemaTagIdentifier',
74
- 'schemaStructWithTag',
75
- 'schemaUnionOfLiterals',
76
- 'serviceNotAsClass',
77
- 'strictBooleanExpressions',
78
- 'unnecessaryArrowBlock',
79
- 'unnecessaryEffectGen',
80
- 'unnecessaryFailYieldableError',
81
- 'unnecessaryPipe',
82
- 'unnecessaryPipeChain'
83
- ];
7
+ import { createStrictTsgoTypecheckCommand, createWorkspaceAppPackageScripts, createWorkspaceRootPackageScripts } from "./workspace-script-plan.js";
84
8
  function appDependencies(scope, packageSource, app, remotes = [], bridge) {
85
9
  const dependencies = {
86
10
  '@modern-js/plugin-tanstack': modernPackageSpecifier('@modern-js/plugin-tanstack', packageSource),
@@ -96,10 +20,12 @@ function appDependencies(scope, packageSource, app, remotes = [], bridge) {
96
20
  [packageName(scope, 'shared-design-tokens')]: WORKSPACE_PACKAGE_VERSION,
97
21
  react: REACT_VERSION,
98
22
  'react-dom': REACT_DOM_VERSION,
99
- 'react-router': REACT_ROUTER_VERSION,
100
- 'react-router-dom': REACT_ROUTER_VERSION
23
+ 'react-router': REACT_ROUTER_VERSION
101
24
  };
102
- for (const dependency of bridge?.dependencies ?? [])dependencies[dependency] = WORKSPACE_PACKAGE_VERSION;
25
+ for (const dependency of bridge?.dependencies ?? []){
26
+ if (Object.hasOwn(dependencies, dependency)) throw new Error(`Bridge mode dependency "${dependency}" conflicts with generated app dependency.`);
27
+ dependencies[dependency] = WORKSPACE_PACKAGE_VERSION;
28
+ }
103
29
  if ('shell' === app.kind) {
104
30
  dependencies['@modern-js/plugin-bff'] = modernPackageSpecifier('@modern-js/plugin-bff', packageSource);
105
31
  for (const remote of verticalApiApps(remotes))dependencies[packageName(scope, remote.packageSuffix)] = WORKSPACE_PACKAGE_VERSION;
@@ -129,11 +55,6 @@ function appDevDependencies(packageSource, enableTailwind) {
129
55
  function createRootPackageJson(scope, packageSource, remotes = [], bridge) {
130
56
  const shellFilter = `--filter ${packageName(scope, shellApp.packageSuffix)}`;
131
57
  const remoteFilters = remotes.map((remote)=>`--filter ${packageName(scope, remote.packageSuffix)}`);
132
- const remoteBuildPrefix = remotes.length > 0 ? 'ULTRAMODERN_ZEPHYR=false pnpm -r --filter "./verticals/*" run build && ' : '';
133
- const remoteCloudflareBuildPrefix = remotes.length > 0 ? 'pnpm -r --filter "./verticals/*" run cloudflare:build && ' : '';
134
- const remoteCloudflareDeployPrefix = remotes.length > 0 ? 'pnpm -r --filter "./verticals/*" run cloudflare:deploy && ' : '';
135
- const generatedPackageTypecheck = 'pnpm -r --filter "./apps/*" --filter "./verticals/*" --filter "./packages/*" run typecheck';
136
- const typecheck = bridge ? generatedPackageTypecheck : "node ./scripts/ultramodern-typecheck.mts --build tsconfig.json";
137
58
  const bridgeScripts = bridge ? {
138
59
  ...Object.fromEntries(bridge.gates.map((gate)=>[
139
60
  `bridge:${gate.name}`,
@@ -142,6 +63,11 @@ function createRootPackageJson(scope, packageSource, remotes = [], bridge) {
142
63
  'bridge:check': bridge.gates.map((gate)=>`pnpm run bridge:${gate.name}`).join(' && ')
143
64
  } : {};
144
65
  const bridgeCheck = bridge ? ' && pnpm bridge:check' : '';
66
+ const bridgeTypecheck = bridge ? 'pnpm -r --filter "./apps/*" --filter "./verticals/*" --filter "./packages/*" run typecheck' : void 0;
67
+ const rootPackageScripts = createWorkspaceRootPackageScripts(remotes, {
68
+ bridgeCheck,
69
+ typecheck: bridgeTypecheck
70
+ });
145
71
  const workspacePackages = [
146
72
  'apps/*',
147
73
  'verticals/*',
@@ -164,28 +90,19 @@ function createRootPackageJson(scope, packageSource, remotes = [], bridge) {
164
90
  `dev:${remote.packageSuffix}`,
165
91
  `pnpm --filter ${packageName(scope, remote.packageSuffix)} dev`
166
92
  ])),
167
- build: `${remoteBuildPrefix}ULTRAMODERN_ZEPHYR=false pnpm --filter "./apps/shell-super-app" run build && pnpm mf:types && pnpm performance:readiness`,
93
+ ...rootPackageScripts,
168
94
  format: "oxfmt . '!repos/**'",
169
95
  'format:check': "oxfmt --check . '!repos/**'",
170
96
  lint: 'oxlint apps verticals packages',
171
97
  'lint:fix': 'oxlint apps verticals packages --fix',
172
- typecheck,
173
- 'cloudflare:build': `${remoteCloudflareBuildPrefix}pnpm --filter "./apps/shell-super-app" run cloudflare:build && pnpm mf:types`,
174
- 'cloudflare:deploy': `${remoteCloudflareDeployPrefix}pnpm --filter "./apps/shell-super-app" run cloudflare:deploy`,
175
- 'cloudflare:proof': "node ./scripts/proof-cloudflare-version.mts --out .codex/reports/cloudflare-version-proof/public-url-proof.json",
176
98
  'skills:install': "node ./scripts/bootstrap-agent-skills.mts",
177
99
  'skills:check': "node ./scripts/bootstrap-agent-skills.mts --check",
178
100
  'agents:refs:install': "node ./scripts/setup-agent-reference-repos.mts",
179
101
  'agents:refs:check': "node ./scripts/setup-agent-reference-repos.mts --check",
180
- 'mf:types': "node ./scripts/assert-mf-types.mts",
181
- 'performance:readiness': "node ./scripts/ultramodern-performance-readiness.mts",
182
- 'migrate:strict-effect': "node ./scripts/migrate-strict-effect.mts",
183
- 'contract:check': "node ./scripts/validate-ultramodern-workspace.mts",
184
102
  'api:check': "node ./scripts/check-ultramodern-api-boundaries.mts",
185
103
  'i18n:boundaries': "node ./scripts/check-ultramodern-i18n-boundaries.mts",
186
104
  ...bridgeScripts,
187
- postinstall: "oxfmt . '!repos/**' && node ./scripts/bootstrap-agent-skills.mts --postinstall",
188
- check: `pnpm format:check && pnpm lint && pnpm typecheck && pnpm skills:check && pnpm i18n:boundaries && pnpm api:check && pnpm contract:check && pnpm performance:readiness${bridgeCheck}`
105
+ postinstall: "oxfmt . '!repos/**' && node ./scripts/bootstrap-agent-skills.mts --postinstall"
189
106
  },
190
107
  engines: {
191
108
  node: '>=26',
@@ -206,6 +123,7 @@ function createRootPackageJson(scope, packageSource, remotes = [], bridge) {
206
123
  '@effect/tsgo': EFFECT_TSGO_VERSION,
207
124
  '@modern-js/code-tools': modernPackageSpecifier('@modern-js/code-tools', packageSource),
208
125
  '@modern-js/create': modernPackageSpecifier('@modern-js/create', packageSource),
126
+ '@modern-js/plugin-bff': modernPackageSpecifier('@modern-js/plugin-bff', packageSource),
209
127
  "@typescript/native-preview": TYPESCRIPT_NATIVE_PREVIEW_VERSION,
210
128
  lefthook: LEFTHOOK_VERSION,
211
129
  oxlint: OXLINT_VERSION,
@@ -223,144 +141,7 @@ function createZephyrDependencies(scope, app, remotes = []) {
223
141
  zephyrRemoteDependency(scope, remote)
224
142
  ]));
225
143
  }
226
- function createTsConfigBase() {
227
- return {
228
- compilerOptions: {
229
- target: 'ESNext',
230
- lib: [
231
- 'ESNext',
232
- 'DOM',
233
- 'DOM.Iterable'
234
- ],
235
- module: 'preserve',
236
- moduleResolution: 'Bundler',
237
- moduleDetection: 'force',
238
- jsx: 'preserve',
239
- isolatedModules: true,
240
- verbatimModuleSyntax: true,
241
- strict: true,
242
- noEmit: true,
243
- allowImportingTsExtensions: true,
244
- allowJs: true,
245
- esModuleInterop: true,
246
- noUncheckedIndexedAccess: true,
247
- exactOptionalPropertyTypes: true,
248
- noImplicitOverride: true,
249
- noFallthroughCasesInSwitch: true,
250
- noPropertyAccessFromIndexSignature: true,
251
- noImplicitReturns: true,
252
- skipLibCheck: true,
253
- resolveJsonModule: true,
254
- plugins: [
255
- {
256
- name: '@effect/language-service',
257
- diagnostics: true,
258
- includeSuggestionsInTsc: true,
259
- ignoreEffectSuggestionsInTscExitCode: false,
260
- ignoreEffectWarningsInTscExitCode: false,
261
- ignoreEffectErrorsInTscExitCode: false,
262
- skipDisabledOptimization: true,
263
- diagnosticSeverity: Object.fromEntries(effectDiagnostics.map((name)=>[
264
- name,
265
- 'error'
266
- ]))
267
- }
268
- ]
269
- }
270
- };
271
- }
272
- function createTsBuildInfoFile(packageDir) {
273
- const cacheKey = packageDir.replace(/[^a-zA-Z0-9._-]+/gu, '__');
274
- return `${relativeRootFor(packageDir)}/node_modules/.cache/tsgo/${cacheKey}.tsbuildinfo`;
275
- }
276
- function createTsDeclarationOutDir(packageDir) {
277
- const cacheKey = packageDir.replace(/[^a-zA-Z0-9._-]+/gu, '__');
278
- return `${relativeRootFor(packageDir)}/node_modules/.cache/tsgo/declarations/${cacheKey}`;
279
- }
280
- function createReferences(packageDir, references) {
281
- return [
282
- ...new Set(references)
283
- ].filter((reference)=>reference !== packageDir).map((reference)=>({
284
- path: `${relativeRootFor(packageDir)}/${reference}`
285
- }));
286
- }
287
- function createPackageTsConfig(packageDir, options = {}) {
288
- const resolvedOptions = 'boolean' == typeof options ? {
289
- includeApi: options
290
- } : options;
291
- const include = resolvedOptions.include ?? [
292
- 'src',
293
- 'locales/**/*.json',
294
- 'modern.config.ts',
295
- 'module-federation.config.ts',
296
- 'package.json',
297
- 'shared'
298
- ];
299
- if (resolvedOptions.includeApi) include.push('api');
300
- const references = createReferences(packageDir, resolvedOptions.references ?? []);
301
- const tsconfig = {
302
- extends: `${relativeRootFor(packageDir)}/tsconfig.base.json`,
303
- compilerOptions: {
304
- composite: true,
305
- declaration: true,
306
- declarationMap: false,
307
- emitDeclarationOnly: true,
308
- incremental: true,
309
- noEmit: false,
310
- outDir: createTsDeclarationOutDir(packageDir),
311
- tsBuildInfoFile: createTsBuildInfoFile(packageDir)
312
- },
313
- include
314
- };
315
- if (references.length > 0) tsconfig.references = references;
316
- return tsconfig;
317
- }
318
- function createAppTsConfig(app, remotes = []) {
319
- const references = [
320
- ...sharedPackages.map((sharedPackage)=>sharedPackage.directory),
321
- ...'shell' === app.kind ? verticalApiApps(remotes).map((remote)=>remote.directory) : resolveRemoteRefs(app, remotes).map((remote)=>remote.directory)
322
- ];
323
- return createPackageTsConfig(app.directory, {
324
- includeApi: appHasApi(app),
325
- references
326
- });
327
- }
328
- function createAppMfTypesTsConfig(app) {
329
- const exposedFiles = Object.values(app.exposes ?? {}).map((exposePath)=>exposePath.replace(/^\.\//u, ''));
330
- return {
331
- extends: './tsconfig.json',
332
- include: [
333
- ...new Set([
334
- ...exposedFiles,
335
- 'src/modern-app-env.d.ts'
336
- ])
337
- ]
338
- };
339
- }
340
- function createSharedPackageTsConfig(packageDir) {
341
- return createPackageTsConfig(packageDir, {
342
- include: [
343
- 'src'
344
- ]
345
- });
346
- }
347
- function createRootTsConfig(apps = []) {
348
- return {
349
- files: [],
350
- references: [
351
- ...sharedPackages.map((sharedPackage)=>({
352
- path: sharedPackage.directory
353
- })),
354
- ...apps.map((app)=>({
355
- path: app.directory
356
- }))
357
- ]
358
- };
359
- }
360
144
  function createAppPackage(scope, app, packageSource, enableTailwind, remotes = [], bridge) {
361
- const publicSurfaceBuildCommand = createPublicSurfaceGenerationCommand(app, 'dist');
362
- const publicSurfaceCloudflareBuildCommand = createPublicSurfaceGenerationCommand(app, 'dist');
363
- const publicSurfaceCloudflareOutputCommand = createPublicSurfaceGenerationCommand(app, 'cloudflare');
364
145
  const packageExports = Object.fromEntries(Object.entries(app.exposes ?? {}).map(([expose, source])=>[
365
146
  expose,
366
147
  source
@@ -369,16 +150,7 @@ function createAppPackage(scope, app, packageSource, enableTailwind, remotes = [
369
150
  private: true,
370
151
  name: packageName(scope, app.packageSuffix),
371
152
  version: '0.1.0',
372
- scripts: {
373
- dev: 'modern dev',
374
- build: app.exposes ? `ULTRAMODERN_ZEPHYR=false modern build && ${publicSurfaceBuildCommand} && node ${relativeRootFor(app.directory)}/scripts/assert-mf-types.mts` : `ULTRAMODERN_ZEPHYR=false modern build && ${publicSurfaceBuildCommand}`,
375
- 'cloudflare:build': `ULTRAMODERN_ZEPHYR=false MODERNJS_DEPLOY=cloudflare modern build && ${publicSurfaceCloudflareBuildCommand} && ULTRAMODERN_ZEPHYR=false MODERNJS_DEPLOY=cloudflare modern deploy && ${publicSurfaceCloudflareOutputCommand}`,
376
- 'cloudflare:deploy': 'ULTRAMODERN_CLOUDFLARE_REQUIRE_PUBLIC_URLS=true pnpm run cloudflare:build && wrangler deploy --config .output/wrangler.json',
377
- 'cloudflare:preview': 'pnpm run cloudflare:build && wrangler dev --config .output/wrangler.json',
378
- 'cloudflare:proof': `node ${relativeRootFor(app.directory)}/scripts/proof-cloudflare-version.mts --app ${app.id}`,
379
- serve: 'modern serve',
380
- typecheck: createStrictTsgoTypecheckCommand(app.directory)
381
- },
153
+ scripts: createWorkspaceAppPackageScripts(app),
382
154
  modernjs: {
383
155
  preset: 'presetUltramodern',
384
156
  role: 'shell' === app.kind ? 'shell' : 'module-federation-remote',
@@ -429,4 +201,5 @@ function createSharedPackage(scope, id, description) {
429
201
  function createSharedContractsIndex() {
430
202
  return readFileTemplate('packages/shared-contracts-index.ts');
431
203
  }
432
- export { appDependencies, appDevDependencies, createAppMfTypesTsConfig, createAppPackage, createAppTsConfig, createPackageTsConfig, createRootPackageJson, createRootTsConfig, createSharedContractsIndex, createSharedPackage, createSharedPackageTsConfig, createStrictTsgoTypecheckCommand, createTsConfigBase, createZephyrDependencies, effectDiagnostics };
204
+ export { createAppMfTypesTsConfig, createAppTsConfig, createPackageTsConfig, createRootTsConfig, createSharedPackageTsConfig, createTsConfigBase } from "./tsconfigs.js";
205
+ export { appDependencies, appDevDependencies, createAppPackage, createRootPackageJson, createSharedContractsIndex, createSharedPackage, createZephyrDependencies };
@@ -0,0 +1,114 @@
1
+ import "node:module";
2
+ import { DRIZZLE_ORM_VERSION, EFFECT_VERSION, EFFECT_VITEST_VERSION, MODULE_FEDERATION_VERSION } from "./versions.js";
3
+ const strictEffectPackageVersionPolicyExclusions = [
4
+ `effect@${EFFECT_VERSION}`,
5
+ `@effect/opentelemetry@${EFFECT_VERSION}`
6
+ ];
7
+ const moduleFederationModernJsPatchPath = `patches/@module-federation__modern-js-v3@${MODULE_FEDERATION_VERSION}.patch`;
8
+ const moduleFederationBridgeReactPatchPath = `patches/@module-federation__bridge-react@${MODULE_FEDERATION_VERSION}.patch`;
9
+ const effectDeclarationPatchPath = 'patches/effect-schema-error-type-id.patch';
10
+ const drizzleOrmDeclarationPatchPath = 'patches/drizzle-orm-ts7-strict-declarations.patch';
11
+ function createPnpmWorkspacePolicyPlan(options) {
12
+ return {
13
+ yamlActions: [
14
+ {
15
+ kind: 'replace-line',
16
+ pattern: /^ {4}'@effect\/vitest>effect': .+$/mu,
17
+ replacement: ` '@effect/vitest>effect': '${EFFECT_VERSION}'`
18
+ },
19
+ {
20
+ kind: 'ensure-scalar-map-entry',
21
+ key: 'overrides',
22
+ entryKey: "'@effect/opentelemetry'",
23
+ value: EFFECT_VERSION
24
+ },
25
+ {
26
+ kind: 'ensure-scalar-map-entry',
27
+ key: 'overrides',
28
+ entryKey: "'@effect/vitest'",
29
+ value: EFFECT_VITEST_VERSION
30
+ },
31
+ {
32
+ kind: 'ensure-scalar-map-entry',
33
+ key: 'overrides',
34
+ entryKey: 'effect',
35
+ value: EFFECT_VERSION
36
+ },
37
+ {
38
+ kind: 'ensure-scalar-map-entry',
39
+ key: 'allowBuilds',
40
+ entryKey: "'@parcel/watcher'",
41
+ value: 'true'
42
+ },
43
+ ...strictEffectPackageVersionPolicyExclusions.flatMap((item)=>createStrictEffectPackageVersionPolicyActions(item)),
44
+ {
45
+ kind: 'ensure-map-entry',
46
+ key: 'patchedDependencies',
47
+ entryKey: `effect@${EFFECT_VERSION}`,
48
+ value: effectDeclarationPatchPath
49
+ },
50
+ {
51
+ kind: 'ensure-map-entry',
52
+ key: 'patchedDependencies',
53
+ entryKey: `@module-federation/modern-js-v3@${MODULE_FEDERATION_VERSION}`,
54
+ value: moduleFederationModernJsPatchPath
55
+ },
56
+ {
57
+ kind: 'ensure-map-entry',
58
+ key: 'patchedDependencies',
59
+ entryKey: `@module-federation/bridge-react@${MODULE_FEDERATION_VERSION}`,
60
+ value: moduleFederationBridgeReactPatchPath
61
+ },
62
+ options.usesDrizzleOrm ? {
63
+ kind: 'ensure-map-entry',
64
+ key: 'patchedDependencies',
65
+ entryKey: `drizzle-orm@${DRIZZLE_ORM_VERSION}`,
66
+ value: drizzleOrmDeclarationPatchPath
67
+ } : {
68
+ kind: 'remove-map-entry',
69
+ entryKey: `drizzle-orm@${DRIZZLE_ORM_VERSION}`
70
+ }
71
+ ],
72
+ declarationPatchActions: [
73
+ {
74
+ kind: 'ensure',
75
+ relativePatchPath: moduleFederationModernJsPatchPath
76
+ },
77
+ {
78
+ kind: 'ensure',
79
+ relativePatchPath: moduleFederationBridgeReactPatchPath
80
+ },
81
+ {
82
+ kind: 'ensure',
83
+ relativePatchPath: effectDeclarationPatchPath
84
+ },
85
+ {
86
+ kind: options.usesDrizzleOrm ? 'ensure' : 'remove-if-unchanged',
87
+ relativePatchPath: drizzleOrmDeclarationPatchPath
88
+ }
89
+ ],
90
+ requiresInstallOnChange: true
91
+ };
92
+ }
93
+ function createStrictEffectPackageVersionPolicyActions(item) {
94
+ const packageName = item.slice(0, item.lastIndexOf('@'));
95
+ const escapedPackageName = packageName.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
96
+ return [
97
+ {
98
+ kind: 'replace-line',
99
+ pattern: new RegExp(`^ {2}- '${escapedPackageName}@[^']+'$`, 'gmu'),
100
+ replacement: ` - '${item}'`
101
+ },
102
+ {
103
+ kind: 'ensure-list-item',
104
+ key: 'minimumReleaseAgeExclude',
105
+ item
106
+ },
107
+ {
108
+ kind: 'ensure-list-item',
109
+ key: 'trustPolicyExclude',
110
+ item
111
+ }
112
+ ];
113
+ }
114
+ export { createPnpmWorkspacePolicyPlan, drizzleOrmDeclarationPatchPath, effectDeclarationPatchPath, moduleFederationBridgeReactPatchPath, moduleFederationModernJsPatchPath, strictEffectPackageVersionPolicyExclusions };
@@ -1,5 +1,6 @@
1
1
  import "node:module";
2
2
  import { appI18nNamespace } from "./descriptors.js";
3
+ import { renderFileTemplate } from "./fs-io.js";
3
4
  import { sortJsonValue } from "./types.js";
4
5
  const privateAppRoutePublicness = {
5
6
  indexable: false,
@@ -77,154 +78,19 @@ function createPublicRouteMetadata(app) {
77
78
  return createPublicRouteMetadataFromRoutes(createRouteOwnedI18nPaths(app));
78
79
  }
79
80
  function createJsonLdHelperModule() {
80
- return `export type JsonLdPrimitive = string | number | boolean | null;
81
- export type JsonLdValue =
82
- | JsonLdPrimitive
83
- | readonly JsonLdValue[]
84
- | { readonly [key: string]: JsonLdValue };
85
- export type JsonLdObject = Readonly<Record<string, JsonLdValue>>;
86
- export type RouteJsonLd = JsonLdObject | readonly JsonLdObject[];
87
-
88
- const schemaContext = 'https://schema.org' as const;
89
-
90
- type SchemaObject<TType extends string> = JsonLdObject & {
91
- readonly '@context': typeof schemaContext;
92
- readonly '@type': TType;
93
- };
94
-
95
- type ThingReference =
96
- | string
97
- | {
98
- readonly '@id'?: string;
99
- readonly '@type'?: string;
100
- readonly name?: string;
101
- readonly url?: string;
102
- };
103
-
104
- const withSchemaContext = <TType extends string, TInput extends object>(
105
- type: TType,
106
- input: TInput,
107
- ): SchemaObject<TType> & TInput => ({
108
- '@context': schemaContext,
109
- '@type': type,
110
- ...input,
111
- });
112
-
113
- export const defineRouteJsonLd = <TJsonLd extends RouteJsonLd>(
114
- jsonLd: TJsonLd,
115
- ): TJsonLd => jsonLd;
116
-
117
- export interface WebPageJsonLdInput {
118
- readonly name: string;
119
- readonly url: string;
120
- readonly description?: string;
121
- readonly inLanguage?: string | readonly string[];
122
- readonly isPartOf?: ThingReference;
123
- }
124
-
125
- export const webPageJsonLd = (input: WebPageJsonLdInput) =>
126
- withSchemaContext('WebPage', input);
127
-
128
- export interface WebApplicationJsonLdInput {
129
- readonly name: string;
130
- readonly url: string;
131
- readonly applicationCategory?: string;
132
- readonly browserRequirements?: string;
133
- readonly description?: string;
134
- readonly operatingSystem?: string;
135
- }
136
-
137
- export const webApplicationJsonLd = (input: WebApplicationJsonLdInput) =>
138
- withSchemaContext('WebApplication', input);
139
-
140
- export interface SoftwareApplicationJsonLdInput {
141
- readonly name: string;
142
- readonly url: string;
143
- readonly applicationCategory?: string;
144
- readonly applicationSubCategory?: string;
145
- readonly description?: string;
146
- readonly offers?: ThingReference;
147
- readonly operatingSystem?: string;
148
- }
149
-
150
- export const softwareApplicationJsonLd = (
151
- input: SoftwareApplicationJsonLdInput,
152
- ) => withSchemaContext('SoftwareApplication', input);
153
-
154
- export interface OrganizationJsonLdInput {
155
- readonly name: string;
156
- readonly url?: string;
157
- readonly logo?: string;
158
- readonly sameAs?: readonly string[];
159
- }
160
-
161
- export const organizationJsonLd = (input: OrganizationJsonLdInput) =>
162
- withSchemaContext('Organization', input);
163
-
164
- export interface BreadcrumbListItemInput {
165
- readonly name: string;
166
- readonly item: string;
167
- }
168
-
169
- export const breadcrumbListJsonLd = (
170
- items: readonly BreadcrumbListItemInput[],
171
- ) =>
172
- withSchemaContext('BreadcrumbList', {
173
- itemListElement: items.map((entry, index) => ({
174
- '@type': 'ListItem',
175
- item: entry.item,
176
- name: entry.name,
177
- position: index + 1,
178
- })),
179
- });
180
-
181
- export interface FAQPageQuestionInput {
182
- readonly name: string;
183
- readonly acceptedAnswer: {
184
- readonly text: string;
185
- };
186
- }
187
-
188
- export const faqPageJsonLd = (questions: readonly FAQPageQuestionInput[]) =>
189
- withSchemaContext('FAQPage', {
190
- mainEntity: questions.map(question => ({
191
- '@type': 'Question',
192
- acceptedAnswer: {
193
- '@type': 'Answer',
194
- text: question.acceptedAnswer.text,
195
- },
196
- name: question.name,
197
- })),
198
- });
199
- `;
81
+ return renderFileTemplate('workspace/apps/shared/src/routes/ultramodern-jsonld.ts', {});
200
82
  }
201
83
  function createRouteMetadataModule(app) {
202
84
  const routes = sortJsonValue(createRouteOwnedI18nPaths(app));
203
85
  const localisedUrls = sortJsonValue(createLocalisedUrlsMap(app));
204
86
  const publicRoutes = sortJsonValue(createPublicRouteMetadata(app));
205
87
  const namespace = appI18nNamespace(app);
206
- return `// @generated by @modern-js/create.
207
- // Author route metadata in colocated src/routes/**/route.meta.ts files.
208
- // This compatibility manifest is regenerated from route-owned metadata.
209
-
210
- export const ultramodernRouteNamespace = '${namespace}' as const;
211
-
212
- export const ultramodernRouteMetadata = ${JSON.stringify(routes, null, 2)} as const;
213
-
214
- export const ultramodernLocalisedUrls = ${JSON.stringify(localisedUrls, null, 2)} as const;
215
-
216
- export const ultramodernPublicRoutes = ${JSON.stringify(publicRoutes, null, 2)} as const;
217
-
218
- export const ultramodernRouteConfig = {
219
- authoring: 'colocated-route-meta',
220
- generatedManifest: true,
221
- localisedUrls: ultramodernLocalisedUrls,
222
- namespace: ultramodernRouteNamespace,
223
- publicRoutes: ultramodernPublicRoutes,
224
- routes: ultramodernRouteMetadata,
225
- source: 'route-owned',
226
- } as const;
227
- `;
88
+ return renderFileTemplate('workspace/apps/shared/src/routes/ultramodern-route-metadata.ts', {
89
+ value0: namespace,
90
+ value1: JSON.stringify(routes, null, 2),
91
+ value2: JSON.stringify(localisedUrls, null, 2),
92
+ value3: JSON.stringify(publicRoutes, null, 2)
93
+ });
228
94
  }
229
95
  function createRouteMetaModule(route) {
230
96
  return `const routeMeta = ${JSON.stringify(sortJsonValue(route), null, 2)} as const;
@@ -0,0 +1,7 @@
1
+ import "node:module";
2
+ const SHARED_ULTRAMODERN_WORKSPACE_PATCH_FILES = [
3
+ '@module-federation__bridge-react@2.6.0.patch',
4
+ '@module-federation__modern-js-v3@2.6.0.patch',
5
+ '@tanstack__router-core@1.171.13.patch'
6
+ ];
7
+ export { SHARED_ULTRAMODERN_WORKSPACE_PATCH_FILES };