@bleedingdev/modern-js-create 3.5.0-ultramodern.36 → 3.5.0-ultramodern.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +11 -14
  2. package/dist/cjs/cli/flags.cjs +0 -31
  3. package/dist/cjs/cli/help.cjs +0 -1
  4. package/dist/cjs/cli/package-source.cjs +0 -3
  5. package/dist/cjs/cli/prompts.cjs +2 -20
  6. package/dist/cjs/index.cjs +0 -5
  7. package/dist/cjs/locale/en.cjs +2 -6
  8. package/dist/cjs/locale/zh.cjs +2 -6
  9. package/dist/cjs/ultramodern-package-source.cjs +0 -32
  10. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.cjs +1 -0
  11. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.cjs +1 -1
  12. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.cjs +1 -1
  13. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.cjs +5 -3
  14. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.cjs +3 -0
  15. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.cjs +2 -8
  16. package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.cjs +8 -0
  17. package/dist/cjs/ultramodern-workspace/add-vertical/plan.cjs +0 -12
  18. package/dist/cjs/ultramodern-workspace/add-vertical/preflight.cjs +2 -26
  19. package/dist/cjs/ultramodern-workspace/add-vertical/shell-files.cjs +1 -1
  20. package/dist/cjs/ultramodern-workspace/add-vertical/topology.cjs +6 -4
  21. package/dist/cjs/ultramodern-workspace/app-files.cjs +2 -23
  22. package/dist/cjs/ultramodern-workspace/contracts.cjs +25 -16
  23. package/dist/cjs/ultramodern-workspace/delivery-unit-sync.cjs +1 -1
  24. package/dist/cjs/ultramodern-workspace/demo-components.cjs +0 -3
  25. package/dist/cjs/ultramodern-workspace/fs-io.cjs +0 -33
  26. package/dist/cjs/ultramodern-workspace/locales.cjs +1 -14
  27. package/dist/cjs/ultramodern-workspace/mf-validation/inspect.cjs +2 -10
  28. package/dist/cjs/ultramodern-workspace/mf-validation/object-literal.cjs +2 -17
  29. package/dist/cjs/ultramodern-workspace/mf-validation/path-utils.cjs +0 -6
  30. package/dist/cjs/ultramodern-workspace/mf-validation/syntax.cjs +2 -29
  31. package/dist/cjs/ultramodern-workspace/mf-validation/validate.cjs +1 -1
  32. package/dist/cjs/ultramodern-workspace/module-federation/config.cjs +19 -8
  33. package/dist/cjs/ultramodern-workspace/module-federation/reexport-module.cjs +3 -2
  34. package/dist/cjs/ultramodern-workspace/naming.cjs +0 -6
  35. package/dist/cjs/ultramodern-workspace/package-json.cjs +5 -14
  36. package/dist/cjs/ultramodern-workspace/policy.cjs +0 -21
  37. package/dist/cjs/ultramodern-workspace/public-surface.cjs +0 -21
  38. package/dist/cjs/ultramodern-workspace/routes.cjs +0 -15
  39. package/dist/cjs/ultramodern-workspace/shared-patches.cjs +4 -3
  40. package/dist/cjs/ultramodern-workspace/tooling-command-catalog.cjs +2 -8
  41. package/dist/cjs/ultramodern-workspace/versions.cjs +25 -37
  42. package/dist/cjs/ultramodern-workspace/workspace-script-plan.cjs +2 -20
  43. package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +0 -21
  44. package/dist/cjs/ultramodern-workspace/write-app.cjs +3 -6
  45. package/dist/cjs/ultramodern-workspace/write-workspace.cjs +3 -5
  46. package/dist/esm/cli/flags.js +1 -11
  47. package/dist/esm/cli/help.js +0 -1
  48. package/dist/esm/cli/package-source.js +1 -1
  49. package/dist/esm/cli/prompts.js +2 -14
  50. package/dist/esm/index.js +2 -7
  51. package/dist/esm/locale/en.js +2 -6
  52. package/dist/esm/locale/zh.js +2 -6
  53. package/dist/esm/ultramodern-package-source.js +1 -24
  54. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +2 -1
  55. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +1 -1
  56. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +1 -1
  57. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +6 -4
  58. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +4 -1
  59. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +1 -1
  60. package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +3 -1
  61. package/dist/esm/ultramodern-workspace/add-vertical/plan.js +1 -1
  62. package/dist/esm/ultramodern-workspace/add-vertical/preflight.js +1 -1
  63. package/dist/esm/ultramodern-workspace/add-vertical/shell-files.js +1 -1
  64. package/dist/esm/ultramodern-workspace/add-vertical/topology.js +6 -4
  65. package/dist/esm/ultramodern-workspace/app-files.js +1 -4
  66. package/dist/esm/ultramodern-workspace/contracts.js +25 -16
  67. package/dist/esm/ultramodern-workspace/delivery-unit-sync.js +1 -1
  68. package/dist/esm/ultramodern-workspace/demo-components.js +1 -1
  69. package/dist/esm/ultramodern-workspace/fs-io.js +1 -15
  70. package/dist/esm/ultramodern-workspace/locales.js +1 -1
  71. package/dist/esm/ultramodern-workspace/mf-validation/inspect.js +3 -2
  72. package/dist/esm/ultramodern-workspace/mf-validation/object-literal.js +1 -1
  73. package/dist/esm/ultramodern-workspace/mf-validation/path-utils.js +1 -1
  74. package/dist/esm/ultramodern-workspace/mf-validation/syntax.js +1 -1
  75. package/dist/esm/ultramodern-workspace/mf-validation/validate.js +1 -1
  76. package/dist/esm/ultramodern-workspace/module-federation/config.js +19 -8
  77. package/dist/esm/ultramodern-workspace/module-federation/reexport-module.js +4 -3
  78. package/dist/esm/ultramodern-workspace/naming.js +1 -1
  79. package/dist/esm/ultramodern-workspace/package-json.js +5 -8
  80. package/dist/esm/ultramodern-workspace/policy.js +1 -7
  81. package/dist/esm/ultramodern-workspace/public-surface.js +1 -1
  82. package/dist/esm/ultramodern-workspace/routes.js +1 -1
  83. package/dist/esm/ultramodern-workspace/shared-patches.js +4 -3
  84. package/dist/esm/ultramodern-workspace/tooling-command-catalog.js +1 -1
  85. package/dist/esm/ultramodern-workspace/versions.js +20 -23
  86. package/dist/esm/ultramodern-workspace/workspace-script-plan.js +1 -1
  87. package/dist/esm/ultramodern-workspace/workspace-scripts.js +6 -9
  88. package/dist/esm/ultramodern-workspace/write-app.js +4 -7
  89. package/dist/esm/ultramodern-workspace/write-workspace.js +3 -2
  90. package/dist/esm-node/cli/flags.js +1 -11
  91. package/dist/esm-node/cli/help.js +0 -1
  92. package/dist/esm-node/cli/package-source.js +1 -1
  93. package/dist/esm-node/cli/prompts.js +2 -14
  94. package/dist/esm-node/index.js +2 -7
  95. package/dist/esm-node/locale/en.js +2 -6
  96. package/dist/esm-node/locale/zh.js +2 -6
  97. package/dist/esm-node/ultramodern-package-source.js +1 -24
  98. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +2 -1
  99. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +1 -1
  100. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +1 -1
  101. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +6 -4
  102. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +4 -1
  103. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +1 -1
  104. package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +3 -1
  105. package/dist/esm-node/ultramodern-workspace/add-vertical/plan.js +1 -1
  106. package/dist/esm-node/ultramodern-workspace/add-vertical/preflight.js +1 -1
  107. package/dist/esm-node/ultramodern-workspace/add-vertical/shell-files.js +1 -1
  108. package/dist/esm-node/ultramodern-workspace/add-vertical/topology.js +6 -4
  109. package/dist/esm-node/ultramodern-workspace/app-files.js +1 -4
  110. package/dist/esm-node/ultramodern-workspace/contracts.js +25 -16
  111. package/dist/esm-node/ultramodern-workspace/delivery-unit-sync.js +1 -1
  112. package/dist/esm-node/ultramodern-workspace/demo-components.js +1 -1
  113. package/dist/esm-node/ultramodern-workspace/fs-io.js +1 -15
  114. package/dist/esm-node/ultramodern-workspace/locales.js +1 -1
  115. package/dist/esm-node/ultramodern-workspace/mf-validation/inspect.js +3 -2
  116. package/dist/esm-node/ultramodern-workspace/mf-validation/object-literal.js +1 -1
  117. package/dist/esm-node/ultramodern-workspace/mf-validation/path-utils.js +1 -1
  118. package/dist/esm-node/ultramodern-workspace/mf-validation/syntax.js +1 -1
  119. package/dist/esm-node/ultramodern-workspace/mf-validation/validate.js +1 -1
  120. package/dist/esm-node/ultramodern-workspace/module-federation/config.js +19 -8
  121. package/dist/esm-node/ultramodern-workspace/module-federation/reexport-module.js +4 -3
  122. package/dist/esm-node/ultramodern-workspace/naming.js +1 -1
  123. package/dist/esm-node/ultramodern-workspace/package-json.js +5 -8
  124. package/dist/esm-node/ultramodern-workspace/policy.js +1 -7
  125. package/dist/esm-node/ultramodern-workspace/public-surface.js +1 -1
  126. package/dist/esm-node/ultramodern-workspace/routes.js +1 -1
  127. package/dist/esm-node/ultramodern-workspace/shared-patches.js +4 -3
  128. package/dist/esm-node/ultramodern-workspace/tooling-command-catalog.js +1 -1
  129. package/dist/esm-node/ultramodern-workspace/versions.js +20 -23
  130. package/dist/esm-node/ultramodern-workspace/workspace-script-plan.js +1 -1
  131. package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +6 -9
  132. package/dist/esm-node/ultramodern-workspace/write-app.js +4 -7
  133. package/dist/esm-node/ultramodern-workspace/write-workspace.js +3 -2
  134. package/dist/types/cli/flags.d.ts +4 -9
  135. package/dist/types/cli/package-source.d.ts +3 -3
  136. package/dist/types/cli/project-setup.d.ts +1 -1
  137. package/dist/types/cli/prompts.d.ts +0 -2
  138. package/dist/types/locale/en.d.ts +0 -4
  139. package/dist/types/locale/index.d.ts +0 -8
  140. package/dist/types/locale/zh.d.ts +0 -4
  141. package/dist/types/ultramodern-package-source.d.ts +0 -11
  142. package/dist/types/ultramodern-tooling/commands/cloudflare-output-verify.d.ts +1 -1
  143. package/dist/types/ultramodern-tooling/commands/context.d.ts +3 -3
  144. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/install.d.ts +1 -1
  145. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.d.ts +0 -5
  146. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.d.ts +8 -6
  147. package/dist/types/ultramodern-tooling/commands/migrate-strict-effect.d.ts +1 -1
  148. package/dist/types/ultramodern-tooling/commands/routes-generate.d.ts +1 -1
  149. package/dist/types/ultramodern-tooling/commands/skills.d.ts +1 -1
  150. package/dist/types/ultramodern-tooling/commands/validate.d.ts +1 -1
  151. package/dist/types/ultramodern-tooling/commands.d.ts +1 -1
  152. package/dist/types/ultramodern-tooling/config/load.d.ts +1 -1
  153. package/dist/types/ultramodern-workspace/add-vertical/plan.d.ts +1 -6
  154. package/dist/types/ultramodern-workspace/add-vertical/preflight.d.ts +1 -9
  155. package/dist/types/ultramodern-workspace/app-files.d.ts +1 -7
  156. package/dist/types/ultramodern-workspace/codesmith.d.ts +5 -5
  157. package/dist/types/ultramodern-workspace/delivery-unit.d.ts +1 -1
  158. package/dist/types/ultramodern-workspace/demo-components.d.ts +0 -1
  159. package/dist/types/ultramodern-workspace/fs-io.d.ts +1 -7
  160. package/dist/types/ultramodern-workspace/generation-result.d.ts +2 -1
  161. package/dist/types/ultramodern-workspace/locales.d.ts +0 -181
  162. package/dist/types/ultramodern-workspace/mf-validation/inspect.d.ts +0 -3
  163. package/dist/types/ultramodern-workspace/mf-validation/object-literal.d.ts +0 -5
  164. package/dist/types/ultramodern-workspace/mf-validation/path-utils.d.ts +0 -2
  165. package/dist/types/ultramodern-workspace/mf-validation/syntax.d.ts +0 -9
  166. package/dist/types/ultramodern-workspace/module-federation/config.d.ts +1 -1
  167. package/dist/types/ultramodern-workspace/module-federation/reexport-module.d.ts +1 -1
  168. package/dist/types/ultramodern-workspace/naming.d.ts +0 -2
  169. package/dist/types/ultramodern-workspace/package-json.d.ts +0 -2
  170. package/dist/types/ultramodern-workspace/policy.d.ts +0 -47
  171. package/dist/types/ultramodern-workspace/public-surface.d.ts +5 -15
  172. package/dist/types/ultramodern-workspace/routes.d.ts +0 -9
  173. package/dist/types/ultramodern-workspace/shared-patches.d.ts +1 -2
  174. package/dist/types/ultramodern-workspace/tooling-command-catalog.d.ts +4 -4
  175. package/dist/types/ultramodern-workspace/types.d.ts +3 -2
  176. package/dist/types/ultramodern-workspace/versions.d.ts +20 -23
  177. package/dist/types/ultramodern-workspace/workspace-script-plan.d.ts +7 -21
  178. package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +2 -9
  179. package/dist/types/ultramodern-workspace/workspace-validation-contract.d.ts +0 -1
  180. package/dist/types/ultramodern-workspace/write-workspace.d.ts +0 -1
  181. package/package.json +14 -12
  182. package/template-workspace/AGENTS.md.handlebars +2 -2
  183. package/template-workspace/README.md.handlebars +3 -4
  184. package/template-workspace/patches/{@module-federation__bridge-react@2.6.0.patch → @module-federation__bridge-react@2.7.0.patch} +22 -22
  185. package/template-workspace/patches/@module-federation__dts-plugin@2.7.0.patch +37 -0
  186. package/template-workspace/patches/{@module-federation__modern-js-v3@2.6.0.patch → @module-federation__modern-js-v3@2.7.0.patch} +22 -22
  187. package/template-workspace/patches/@tanstack__router-core@1.171.14.patch +123 -0
  188. package/template-workspace/pnpm-workspace.yaml.handlebars +24 -2
  189. package/templates/workspace/apps/modern.config.ts.handlebars +1 -1
  190. package/templates/workspace-scripts/assert-mf-types.mjs.handlebars +4 -4
  191. package/templates/workspace-scripts/ultramodern-typecheck.mjs +1 -1
  192. package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +3 -5
  193. package/dist/cjs/ultramodern-workspace/pnpm-workspace-policy-plan.cjs +0 -166
  194. package/dist/esm/ultramodern-workspace/pnpm-workspace-policy-plan.js +0 -113
  195. package/dist/esm-node/ultramodern-workspace/pnpm-workspace-policy-plan.js +0 -114
  196. package/dist/types/ultramodern-workspace/pnpm-workspace-policy-plan.d.ts +0 -39
  197. package/template-workspace/patches/@tanstack__router-core@1.171.13.patch +0 -51
  198. package/templates/workspace/postcss.config.mjs.handlebars +0 -5
@@ -7,8 +7,9 @@ import { sortJsonValue } from "../types.js";
7
7
  import { CLOUDFLARE_COMPATIBILITY_DATE } from "../versions.js";
8
8
  import { createModuleFederationRemoteUrlHelpers, createModuleFederationRemotesConfig } from "./remote-refs.js";
9
9
  import { createSharedModuleFederationConfig, formatTsObjectLiteral } from "./shared-config.js";
10
- function createAppModernConfig(scope, app, remotes = []) {
10
+ function createAppModernConfig(scope, app, remotes = [], enableTailwind = true) {
11
11
  const bffImport = appHasApi(app) ? "import { bffPlugin } from '@modern-js/plugin-bff';\n" : '';
12
+ const tailwindImport = enableTailwind ? "import { pluginTailwindcss } from '@rsbuild/plugin-tailwindcss';\n" : '';
12
13
  const bffConfig = appHasApi(app) ? ` bff: {
13
14
  effect: {
14
15
  entry: './api/index',
@@ -21,6 +22,7 @@ function createAppModernConfig(scope, app, remotes = []) {
21
22
  runtimeFramework: 'effect',
22
23
  },
23
24
  ` : '';
25
+ const tailwindBuilderPluginsConfig = enableTailwind ? ' builderPlugins: [pluginTailwindcss()],\n' : '';
24
26
  const bffPluginEntry = appHasApi(app) ? ' bffPlugin(),\n' : '';
25
27
  const serviceBindings = 'shell' === app.kind ? remotes.filter(appHasApi) : [];
26
28
  const serviceBindingsConfig = serviceBindings.length > 0 ? ` services: [
@@ -47,13 +49,13 @@ const defaultAssetPrefix = defaultRemoteAssetPrefix;`;
47
49
  // shells load remoteEntry.js and exposed chunks from this dev server.
48
50
  assetPrefix,`;
49
51
  return renderFileTemplate('workspace/apps/modern.config.ts', {
50
- value0: bffImport,
52
+ value0: `${bffImport}${tailwindImport}`,
51
53
  value1: app.id,
52
54
  value2: createCloudflareWorkerName(scope, app),
53
55
  value3: app.portEnv,
54
- value4: app.port,
56
+ value4: String(app.port),
55
57
  value5: createCloudflarePublicUrlEnv(app),
56
- value6: shellApp.port,
58
+ value6: String(shellApp.port),
57
59
  value7: defaultAssetPrefixSource,
58
60
  value8: createCloudflarePublicUrlEnv(app),
59
61
  value9: bffConfig,
@@ -64,14 +66,15 @@ const defaultAssetPrefix = defaultRemoteAssetPrefix;`;
64
66
  value14: resolveApiPrefix(app),
65
67
  value15: bffPluginEntry,
66
68
  value16: createRspackUniqueName(app),
67
- value17: createRspackChunkLoadingGlobal(app)
69
+ value17: createRspackChunkLoadingGlobal(app),
70
+ value18: tailwindBuilderPluginsConfig
68
71
  });
69
72
  }
70
73
  function createModuleFederationDtsConfig(hasExposes) {
71
74
  return hasExposes ? ` dts: {
72
75
  displayErrorInTerminal: true,
73
76
  generateTypes: {
74
- compilerInstance: 'tsgo',
77
+ compilerInstance: tsgoCompilerInstance,
75
78
  },
76
79
  tsConfigPath: './tsconfig.mf-types.json',
77
80
  },` : ` dts: {
@@ -168,8 +171,16 @@ function createRemoteModuleFederationConfig(scope, app, remotes = []) {
168
171
  const exposes = formatTsObjectLiteral(app.exposes ?? {});
169
172
  const hasExposes = Object.keys(app.exposes ?? {}).length > 0;
170
173
  const hostOnlyMarker = hasExposes ? '' : '\n// ultramodern-mf: no-exposes';
174
+ const tsgoCompilerImport = hasExposes ? "import { execFileSync } from 'node:child_process';\n" : '';
175
+ const tsgoCompilerInstance = hasExposes ? `
176
+ const tsgoCompilerInstance =
177
+ process.env.EFFECT_TSGO_BIN?.trim() ||
178
+ execFileSync('npx', ['effect-tsgo', 'get-exe-path'], {
179
+ encoding: 'utf8',
180
+ }).trim();
181
+ ` : '';
171
182
  return `// @effect-diagnostics nodeBuiltinImport:off${hostOnlyMarker}
172
- import { createRequire } from 'node:module';
183
+ ${tsgoCompilerImport}import { createRequire } from 'node:module';
173
184
  import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
174
185
  import { dependencies } from './package.json';
175
186
 
@@ -179,7 +190,7 @@ const pluginTanstackVersion = (require('@modern-js/plugin-tanstack/package.json'
179
190
  const runtimeVersion = (require('@modern-js/runtime/package.json') as { version: string }).version;
180
191
  const reactVersion = (require('react/package.json') as { version: string }).version;
181
192
  const reactDomVersion = (require('react-dom/package.json') as { version: string }).version;
182
-
193
+ ${tsgoCompilerInstance}
183
194
  ${createModuleFederationRemoteUrlHelpers(app, remotes)}
184
195
  const moduleFederationConfig: Parameters<
185
196
  typeof createModuleFederationConfig
@@ -1,11 +1,12 @@
1
- import { ULTRAMODERN_BUILD_ARTIFACT_FILE, createUltramodernBuildArtifact } from "@modern-js/utils/universal";
1
+ import { createUltramodernBuildArtifact } from "@modern-js/utils/universal";
2
2
  import { createDeliveryUnitRecord } from "../delivery-unit.js";
3
3
  function createUltramodernBuildArtifactJson(scope, app) {
4
4
  const record = createDeliveryUnitRecord(scope, app);
5
5
  return `${JSON.stringify(createUltramodernBuildArtifact(record), null, 2)}\n`;
6
6
  }
7
- function createUltramodernBuildModule() {
8
- return `import ultramodernBuildArtifact from './${ULTRAMODERN_BUILD_ARTIFACT_FILE}' with { type: 'json' };
7
+ function createUltramodernBuildModule(scope, app) {
8
+ const record = createDeliveryUnitRecord(scope, app);
9
+ return `const ultramodernBuildArtifact = ${JSON.stringify(createUltramodernBuildArtifact(record), null, 2)} as const;
9
10
 
10
11
  export { ultramodernBuildArtifact };
11
12
 
@@ -68,4 +68,4 @@ function createTw(prefix) {
68
68
  function toPascalCase(value) {
69
69
  return value.split(/[-_]+/).filter(Boolean).map((part)=>`${part.charAt(0).toUpperCase()}${part.slice(1)}`).join('');
70
70
  }
71
- export { TAILWIND_PREFIX_DIGIT_WORDS, assertUniqueTailwindPrefixes, createRspackChunkLoadingGlobal, createRspackUniqueName, createTailwindPrefix, createTw, naming_packageName as packageName, normalizePath, relativeRootFor, tailwindPrefixForApp, toCamelCase, toEnvSegment, toKebabCase, toPackageScope, toPascalCase };
71
+ export { assertUniqueTailwindPrefixes, createRspackChunkLoadingGlobal, createRspackUniqueName, createTw, naming_packageName as packageName, normalizePath, relativeRootFor, tailwindPrefixForApp, toCamelCase, toEnvSegment, toKebabCase, toPackageScope, toPascalCase };
@@ -2,7 +2,7 @@ import { WORKSPACE_PACKAGE_VERSION, modernPackageSpecifier } from "../ultramoder
2
2
  import { appHasApi, remoteDependencyAlias, resolveRemoteRefs, shellApp, verticalApiApps, zephyrRemoteDependency } from "./descriptors.js";
3
3
  import { readFileTemplate } from "./fs-io.js";
4
4
  import { packageName, relativeRootFor } from "./naming.js";
5
- 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";
5
+ import { EFFECT_TSGO_VERSION, I18NEXT_VERSION, LEFTHOOK_VERSION, MODULE_FEDERATION_VERSION, NODE_FETCH_VERSION, OXFMT_VERSION, OXLINT_VERSION, PNPM_VERSION, REACT_DOM_VERSION, REACT_ROUTER_VERSION, REACT_VERSION, RSBUILD_PLUGIN_TAILWINDCSS_VERSION, TAILWIND_VERSION, TANSTACK_ROUTER_VERSION, TYPESCRIPT_COMPILER_API_VERSION, TYPESCRIPT_VERSION, TYPES_REACT_DOM_VERSION, TYPES_REACT_VERSION, ULTRACITE_VERSION, WRANGLER_VERSION, ZEPHYR_AGENT_VERSION, ZEPHYR_RSPACK_PLUGIN_VERSION } from "./versions.js";
6
6
  import { createStrictTsgoTypecheckCommand, createWorkspaceAppPackageScripts, createWorkspaceRootPackageScripts } from "./workspace-script-plan.js";
7
7
  function appDependencies(scope, packageSource, app, remotes = [], bridge) {
8
8
  const dependencies = {
@@ -38,11 +38,9 @@ function appDevDependencies(packageSource, enableTailwind) {
38
38
  '@modern-js/app-tools': modernPackageSpecifier('@modern-js/app-tools', packageSource),
39
39
  '@effect/tsgo': EFFECT_TSGO_VERSION,
40
40
  ...enableTailwind ? {
41
- '@tailwindcss/postcss': `^${TAILWIND_POSTCSS_VERSION}`,
42
- postcss: `^${POSTCSS_VERSION}`,
41
+ '@rsbuild/plugin-tailwindcss': `^${RSBUILD_PLUGIN_TAILWINDCSS_VERSION}`,
43
42
  tailwindcss: `^${TAILWIND_VERSION}`
44
43
  } : {},
45
- "@typescript/native-preview": TYPESCRIPT_NATIVE_PREVIEW_VERSION,
46
44
  '@types/node': '^20',
47
45
  '@types/react': TYPES_REACT_VERSION,
48
46
  '@types/react-dom': TYPES_REACT_DOM_VERSION,
@@ -123,7 +121,7 @@ function createRootPackageJson(scope, packageSource, remotes = [], bridge) {
123
121
  '@modern-js/code-tools': modernPackageSpecifier('@modern-js/code-tools', packageSource),
124
122
  '@modern-js/create': modernPackageSpecifier('@modern-js/create', packageSource),
125
123
  '@modern-js/plugin-bff': modernPackageSpecifier('@modern-js/plugin-bff', packageSource),
126
- "@typescript/native-preview": TYPESCRIPT_NATIVE_PREVIEW_VERSION,
124
+ "@typescript/typescript6": TYPESCRIPT_COMPILER_API_VERSION,
127
125
  lefthook: LEFTHOOK_VERSION,
128
126
  oxlint: OXLINT_VERSION,
129
127
  oxfmt: OXFMT_VERSION,
@@ -187,8 +185,7 @@ function createSharedPackage(scope, id, description) {
187
185
  typecheck: createStrictTsgoTypecheckCommand(`packages/${id}`)
188
186
  },
189
187
  devDependencies: {
190
- '@effect/tsgo': EFFECT_TSGO_VERSION,
191
- "@typescript/native-preview": TYPESCRIPT_NATIVE_PREVIEW_VERSION
188
+ '@effect/tsgo': EFFECT_TSGO_VERSION
192
189
  }
193
190
  };
194
191
  if ('shared-design-tokens' === id) packageJson.exports = {
@@ -201,4 +198,4 @@ function createSharedContractsIndex() {
201
198
  return readFileTemplate('packages/shared-contracts-index.ts');
202
199
  }
203
200
  export { createAppMfTypesTsConfig, createAppTsConfig, createPackageTsConfig, createRootTsConfig, createSharedPackageTsConfig, createTsConfigBase } from "./tsconfigs.js";
204
- export { appDependencies, appDevDependencies, createAppPackage, createRootPackageJson, createSharedContractsIndex, createSharedPackage, createZephyrDependencies };
201
+ export { appDependencies, createAppPackage, createRootPackageJson, createSharedContractsIndex, createSharedPackage };
@@ -145,15 +145,9 @@ const PUBLIC_WEBSITE_POLICY = {
145
145
  function formatTsJsonValue(value, indent) {
146
146
  return JSON.stringify(value, null, 2).replaceAll('\n', `\n${' '.repeat(indent)}`);
147
147
  }
148
- function formatIntegerCodeLiteral(value) {
149
- return String(value).replace(/\B(?=(\d{3})+(?!\d))/gu, '_');
150
- }
151
148
  function createPublicWebsiteQualityGateContract() {
152
149
  return PUBLIC_WEBSITE_POLICY.qualityGates;
153
150
  }
154
- function createPublicWebsiteBudgetFallback(budgetName) {
155
- return formatIntegerCodeLiteral(PUBLIC_WEBSITE_POLICY.qualityGates.budgets[budgetName]);
156
- }
157
151
  function createPublicHeadRobotsPolicy() {
158
152
  return PUBLIC_WEBSITE_POLICY.publicHead;
159
153
  }
@@ -180,4 +174,4 @@ function createCloudflareDeployContract(scope, app) {
180
174
  }
181
175
  };
182
176
  }
183
- export { PUBLIC_WEBSITE_POLICY, createCloudflareDeployContract, createCloudflareProofRoute, createCloudflareSecurityContract, createPublicHeadRobotsPolicy, createPublicSurfaceContentExpansionPolicy, createPublicWebsiteBudgetFallback, createPublicWebsiteQualityGateContract, formatIntegerCodeLiteral, formatTsJsonValue };
177
+ export { createCloudflareDeployContract, createCloudflareSecurityContract, createPublicHeadRobotsPolicy, createPublicSurfaceContentExpansionPolicy, formatTsJsonValue };
@@ -180,4 +180,4 @@ function createPublicWebAppArtifacts(app) {
180
180
  publicSurface: createPublicSurfaceContract(app)
181
181
  };
182
182
  }
183
- export { createLocalisedPublicPath, createPublicHeadContract, createPublicSurfaceContract, createPublicSurfaceGenerationCommand, createPublicSurfaceOutputFiles, createPublicSurfaceRouteEntries, createPublicSurfaceUrlPaths, createPublicWebAppArtifacts, publicSurfaceBaseOutputFiles, publicSurfaceManagedSourceAssetPaths, publicSurfacePublicRouteOutputFiles, rewriteWorkspaceAssetsForApp, uniqueSorted };
183
+ export { createLocalisedPublicPath, createPublicSurfaceGenerationCommand, createPublicWebAppArtifacts, publicSurfaceManagedSourceAssetPaths, rewriteWorkspaceAssetsForApp, uniqueSorted };
@@ -143,4 +143,4 @@ function createRouteAliasPage(canonicalPath) {
143
143
  return `export { default } from '${rootPageImport}';
144
144
  `;
145
145
  }
146
- export { createJsonLdHelperModule, createLocalisedUrlsMap, createLocalisedUrlsMapFromRoutes, createPublicRouteMetadata, createPublicRouteMetadataFromRoutes, createRouteAliasPage, createRouteMetaFilePath, createRouteMetaModule, createRouteMetadataModule, createRouteOwnedI18nPaths, createRoutePageFilePath, isConcretePublicPath, isDynamicPublicPathSegment, isPublicIndexableRoute, normalisePublicPath, privateAppRoutePublicness, routePathDirectorySegments, routePathParamName, routeSegmentToDirectory, splitPublicPathSegments };
146
+ export { createJsonLdHelperModule, createLocalisedUrlsMap, createPublicRouteMetadata, createPublicRouteMetadataFromRoutes, createRouteAliasPage, createRouteMetaFilePath, createRouteMetaModule, createRouteMetadataModule, createRouteOwnedI18nPaths, createRoutePageFilePath, isConcretePublicPath, normalisePublicPath, routePathParamName, routeSegmentToDirectory, splitPublicPathSegments };
@@ -1,6 +1,7 @@
1
1
  const SHARED_ULTRAMODERN_WORKSPACE_PATCH_FILES = [
2
- '@module-federation__bridge-react@2.6.0.patch',
3
- '@module-federation__modern-js-v3@2.6.0.patch',
4
- '@tanstack__router-core@1.171.13.patch'
2
+ '@module-federation__bridge-react@2.7.0.patch',
3
+ '@module-federation__dts-plugin@2.7.0.patch',
4
+ '@module-federation__modern-js-v3@2.7.0.patch',
5
+ '@tanstack__router-core@1.171.14.patch'
5
6
  ];
6
7
  export { SHARED_ULTRAMODERN_WORKSPACE_PATCH_FILES };
@@ -97,4 +97,4 @@ const createToolingWrapperContract = ()=>Object.fromEntries(generatedToolingComm
97
97
  command.wrapperPath
98
98
  ]));
99
99
  const createGeneratedToolingWrapperMap = createToolingWrapperContract;
100
- export { GENERATED_TOOLING_COMMANDS, createGeneratedToolingWrapperMap, createToolingWrapperContract, generatedToolingCommandList, generatedToolingCommands, toolingCommandById };
100
+ export { GENERATED_TOOLING_COMMANDS, createGeneratedToolingWrapperMap, generatedToolingCommandList, generatedToolingCommands };
@@ -1,35 +1,32 @@
1
- const TANSTACK_ROUTER_VERSION = '1.170.16';
2
- const TANSTACK_ROUTER_CORE_VERSION = '1.171.13';
3
- const MODULE_FEDERATION_VERSION = '2.6.0';
1
+ const TANSTACK_ROUTER_VERSION = '1.170.17';
2
+ const TANSTACK_ROUTER_CORE_VERSION = '1.171.14';
3
+ const MODULE_FEDERATION_VERSION = '2.7.0';
4
4
  const ZEPHYR_RSPACK_PLUGIN_VERSION = '1.1.1';
5
5
  const ZEPHYR_AGENT_VERSION = '1.1.1';
6
- const WRANGLER_VERSION = '4.102.0';
6
+ const WRANGLER_VERSION = '4.109.0';
7
7
  const CLOUDFLARE_COMPATIBILITY_DATE = '2026-06-02';
8
- const TAILWIND_VERSION = '4.3.1';
9
- const TAILWIND_POSTCSS_VERSION = '4.3.1';
10
- const POSTCSS_VERSION = '8.5.15';
11
- const EFFECT_VERSION = '4.0.0-beta.92';
12
- const EFFECT_VITEST_VERSION = '4.0.0-beta.92';
13
- const EFFECT_TSGO_VERSION = '0.14.6';
8
+ const TAILWIND_VERSION = '4.3.2';
9
+ const RSBUILD_PLUGIN_TAILWINDCSS_VERSION = '2.0.3';
10
+ const EFFECT_VERSION = '4.0.0-beta.94';
11
+ const EFFECT_VITEST_VERSION = '4.0.0-beta.94';
12
+ const EFFECT_TSGO_VERSION = '0.16.3';
14
13
  const DRIZZLE_ORM_VERSION = '1.0.0-rc.4';
15
- const TYPESCRIPT_STABLE_VERSION = '6.0.3';
16
- const TYPESCRIPT_NATIVE_PREVIEW_VERSION = '7.0.0-dev.20260628.1';
14
+ const TYPESCRIPT_STABLE_VERSION = '7.0.2';
17
15
  const TYPESCRIPT_VERSION = TYPESCRIPT_STABLE_VERSION;
18
- const OXLINT_VERSION = '1.71.0';
19
- const OXFMT_VERSION = '0.56.0';
20
- const ULTRACITE_VERSION = '7.8.3';
21
- const LEFTHOOK_VERSION = '^2.1.9';
22
- const I18NEXT_VERSION = '26.3.1';
16
+ const TYPESCRIPT_COMPILER_API_VERSION = '6.0.2';
17
+ const OXLINT_VERSION = '1.73.0';
18
+ const OXFMT_VERSION = '0.58.0';
19
+ const ULTRACITE_VERSION = '7.9.3';
20
+ const LEFTHOOK_VERSION = '^2.1.10';
21
+ const I18NEXT_VERSION = '26.3.6';
23
22
  const NODE_FETCH_VERSION = '^3.3.2';
24
23
  const REACT_VERSION = '^19.2.7';
25
24
  const REACT_DOM_VERSION = '^19.2.7';
26
25
  const REACT_ROUTER_VERSION = '7.18.1';
27
26
  const TYPES_REACT_VERSION = '^19.2.17';
28
27
  const TYPES_REACT_DOM_VERSION = '^19.2.3';
29
- const NODE_VERSION = '26.3.0';
30
- const PNPM_VERSION = '11.9.0';
31
- const RSTACK_AGENT_SKILLS_COMMIT = '61c948b42512e223bad44b83af4080eba48b2677';
32
- const MODULE_FEDERATION_AGENT_SKILLS_COMMIT = '07bb5b6c43ad457609e00c081b72d4c42508ec76';
28
+ const NODE_VERSION = '26.5.0';
29
+ const PNPM_VERSION = '11.10.0';
33
30
  const ultramodernWorkspaceVersions = {
34
31
  tanstackRouter: TANSTACK_ROUTER_VERSION,
35
32
  tanstackRouterCore: TANSTACK_ROUTER_CORE_VERSION,
@@ -38,6 +35,6 @@ const ultramodernWorkspaceVersions = {
38
35
  effectVitest: EFFECT_VITEST_VERSION,
39
36
  drizzleOrm: DRIZZLE_ORM_VERSION,
40
37
  tailwind: TAILWIND_VERSION,
41
- tailwindPostcss: TAILWIND_POSTCSS_VERSION
38
+ rsbuildPluginTailwindcss: RSBUILD_PLUGIN_TAILWINDCSS_VERSION
42
39
  };
43
- export { CLOUDFLARE_COMPATIBILITY_DATE, DRIZZLE_ORM_VERSION, EFFECT_TSGO_VERSION, EFFECT_VERSION, EFFECT_VITEST_VERSION, I18NEXT_VERSION, LEFTHOOK_VERSION, MODULE_FEDERATION_AGENT_SKILLS_COMMIT, MODULE_FEDERATION_VERSION, NODE_FETCH_VERSION, NODE_VERSION, OXFMT_VERSION, OXLINT_VERSION, PNPM_VERSION, POSTCSS_VERSION, REACT_DOM_VERSION, REACT_ROUTER_VERSION, REACT_VERSION, RSTACK_AGENT_SKILLS_COMMIT, TAILWIND_POSTCSS_VERSION, TAILWIND_VERSION, TANSTACK_ROUTER_CORE_VERSION, TANSTACK_ROUTER_VERSION, TYPESCRIPT_NATIVE_PREVIEW_VERSION, TYPESCRIPT_STABLE_VERSION, TYPESCRIPT_VERSION, TYPES_REACT_DOM_VERSION, TYPES_REACT_VERSION, ULTRACITE_VERSION, WRANGLER_VERSION, ZEPHYR_AGENT_VERSION, ZEPHYR_RSPACK_PLUGIN_VERSION, ultramodernWorkspaceVersions };
40
+ export { CLOUDFLARE_COMPATIBILITY_DATE, DRIZZLE_ORM_VERSION, EFFECT_TSGO_VERSION, EFFECT_VERSION, EFFECT_VITEST_VERSION, I18NEXT_VERSION, LEFTHOOK_VERSION, MODULE_FEDERATION_VERSION, NODE_FETCH_VERSION, NODE_VERSION, OXFMT_VERSION, OXLINT_VERSION, PNPM_VERSION, REACT_DOM_VERSION, REACT_ROUTER_VERSION, REACT_VERSION, RSBUILD_PLUGIN_TAILWINDCSS_VERSION, TAILWIND_VERSION, TANSTACK_ROUTER_CORE_VERSION, TANSTACK_ROUTER_VERSION, TYPESCRIPT_COMPILER_API_VERSION, TYPESCRIPT_STABLE_VERSION, TYPESCRIPT_VERSION, TYPES_REACT_DOM_VERSION, TYPES_REACT_VERSION, ULTRACITE_VERSION, WRANGLER_VERSION, ZEPHYR_AGENT_VERSION, ZEPHYR_RSPACK_PLUGIN_VERSION, ultramodernWorkspaceVersions };
@@ -113,4 +113,4 @@ function createWorkspaceRootPackageScripts(remotes = [], options = {}) {
113
113
  plan[planKey]
114
114
  ]));
115
115
  }
116
- export { createStrictTsgoTypecheckCommand, createWorkspaceAppPackageScripts, createWorkspaceAppScriptPlan, createWorkspaceRootPackageScripts, createWorkspaceRootScriptPlan, packageToolingWrapperCommand, rootToolingScriptName, rootToolingWrapperCommand, workspaceAppPackageScriptNames, workspaceRootPackageScriptNames };
116
+ export { createStrictTsgoTypecheckCommand, createWorkspaceAppPackageScripts, createWorkspaceRootPackageScripts, createWorkspaceRootScriptPlan };
@@ -1,6 +1,6 @@
1
1
  import node_fs from "node:fs";
2
2
  import node_path from "node:path";
3
- import { readFileTemplate, renderFileTemplate, workspaceTemplateDir, writeFileReplacing } from "./fs-io.js";
3
+ import { readFileTemplate as external_fs_io_js_readFileTemplate, renderFileTemplate, workspaceTemplateDir, writeFileReplacing } from "./fs-io.js";
4
4
  import { GENERATED_TOOLING_COMMANDS, generatedToolingCommands } from "./tooling-command-catalog.js";
5
5
  import { createWorkspaceValidationContract } from "./workspace-validation-contract.js";
6
6
  const singleQuoted = (value)=>`'${value.replace(/'/gu, "\\'")}'`;
@@ -119,19 +119,16 @@ function createWorkspaceValidationScript(scope, enableTailwind, remotes = []) {
119
119
  });
120
120
  }
121
121
  function createWorkspaceI18nBoundaryValidationScript() {
122
- return readFileTemplate("workspace-scripts/check-ultramodern-i18n-boundaries.mts");
122
+ return external_fs_io_js_readFileTemplate("workspace-scripts/check-ultramodern-i18n-boundaries.mts");
123
123
  }
124
124
  function createWorkspaceApiBoundaryValidationScript() {
125
- return readFileTemplate("workspace-scripts/check-ultramodern-api-boundaries.mts");
125
+ return external_fs_io_js_readFileTemplate("workspace-scripts/check-ultramodern-api-boundaries.mts");
126
126
  }
127
127
  function createPerformanceReadinessConfigScript() {
128
- return readFileTemplate("workspace-scripts/ultramodern-performance-readiness.config.mjs");
129
- }
130
- function createNodeBackendFederationProofScript() {
131
- return readFileTemplate("workspace-scripts/proof-node-backend-federation.mjs");
128
+ return external_fs_io_js_readFileTemplate("workspace-scripts/ultramodern-performance-readiness.config.mjs");
132
129
  }
133
130
  function createZeropsRuntimeMaterializationScript() {
134
- return readFileTemplate("workspace-scripts/materialize-zerops-runtime.mjs");
131
+ return external_fs_io_js_readFileTemplate("workspace-scripts/materialize-zerops-runtime.mjs");
135
132
  }
136
133
  function writeGeneratedWorkspaceScripts(targetDir, _scope, _enableTailwind, remotes = []) {
137
134
  const shellOnly = 0 === remotes.length;
@@ -193,4 +190,4 @@ const migratedWorkspaceScriptBasenames = [
193
190
  'setup-agent-reference-repos',
194
191
  ...generatedToolingCommands.map((command)=>command.wrapperName)
195
192
  ];
196
- export { createAgentReferenceReposSetupScript, createNodeBackendFederationProofScript, createPerformanceReadinessConfigScript, createWorkspaceApiBoundaryValidationScript, createWorkspaceI18nBoundaryValidationScript, createWorkspaceValidationScript, createZeropsRuntimeMaterializationScript, migratedWorkspaceScriptArtifacts, migratedWorkspaceScriptBasenames, writeGeneratedToolWrapperScripts, writeGeneratedWorkspaceScripts };
193
+ export { createWorkspaceValidationScript, createZeropsRuntimeMaterializationScript, migratedWorkspaceScriptArtifacts, migratedWorkspaceScriptBasenames, writeGeneratedWorkspaceScripts };
@@ -1,5 +1,5 @@
1
1
  import { createApiClient, createApiServiceEntry, createBackendEffectApiExpose, createSharedApi, createShellApiClient } from "./api.js";
2
- import { createAppEnvDts, createAppRuntimeConfig, createAppStyles, createPostcssConfig, createShellFrameComponent, createTailwindConfig } from "./app-files.js";
2
+ import { createAppEnvDts, createAppRuntimeConfig, createAppStyles, createShellFrameComponent, createTailwindConfig } from "./app-files.js";
3
3
  import { createBackendFederationContractFile } from "./backend-federation.js";
4
4
  import { createLayout, createRemoteEntry, createRemoteExposeComponent, createRemotePage, createShellPage, createShellRemoteComponents, remoteComponentOutputPath } from "./demo-components.js";
5
5
  import { appHasApi, appI18nNamespace, createShellHost } from "./descriptors.js";
@@ -37,12 +37,12 @@ function writeAppConfigFiles({ targetDir, scope, resolvedApp, packageSource, ena
37
37
  writeJson(targetDir, `${resolvedApp.directory}/tsconfig.mf-types.json`, createAppMfTypesTsConfig(resolvedApp));
38
38
  writeFile(targetDir, `${resolvedApp.directory}/src/modern-app-env.d.ts`, createAppEnvDts(resolvedApp, remotes));
39
39
  writeFile(targetDir, `${resolvedApp.directory}/src/ultramodern-build.ts`, createUltramodernBuildReexportModule());
40
- writeFile(targetDir, `${resolvedApp.directory}/shared/ultramodern-build.ts`, createUltramodernBuildModule());
40
+ writeFile(targetDir, `${resolvedApp.directory}/shared/ultramodern-build.ts`, createUltramodernBuildModule(scope, resolvedApp));
41
41
  writeFile(targetDir, `${resolvedApp.directory}/shared/ultramodern-build.json`, createUltramodernBuildArtifactJson(scope, resolvedApp));
42
42
  writeFile(targetDir, publicWeb.jsonLdHelperFile.path, publicWeb.jsonLdHelperFile.content);
43
43
  writeFile(targetDir, publicWeb.routeMetadataFile.path, publicWeb.routeMetadataFile.content);
44
44
  writeFile(targetDir, publicWeb.routeHeadFile.path, publicWeb.routeHeadFile.content);
45
- writeFile(targetDir, `${resolvedApp.directory}/modern.config.ts`, createAppModernConfig(scope, resolvedApp, remotes));
45
+ writeFile(targetDir, `${resolvedApp.directory}/modern.config.ts`, createAppModernConfig(scope, resolvedApp, remotes, enableTailwind));
46
46
  writeFile(targetDir, `${resolvedApp.directory}/src/modern.runtime.ts`, createAppRuntimeConfig(resolvedApp, scope, remotes));
47
47
  }
48
48
  function writeAppLocaleAndStyleFiles({ targetDir, scope, resolvedApp, enableTailwind, remotes }) {
@@ -51,10 +51,7 @@ function writeAppLocaleAndStyleFiles({ targetDir, scope, resolvedApp, enableTail
51
51
  writeJson(targetDir, `${resolvedApp.directory}/locales/cs/translation.json`, createAppPublicLocaleMessages(resolvedApp, 'cs', remotes));
52
52
  writeJson(targetDir, `${resolvedApp.directory}/locales/cs/${appI18nNamespace(resolvedApp)}.json`, createAppPublicLocaleMessages(resolvedApp, 'cs', remotes));
53
53
  writeFile(targetDir, `${resolvedApp.directory}/src/routes/index.css`, createAppStyles(enableTailwind, scope, resolvedApp));
54
- if (enableTailwind) {
55
- writeFile(targetDir, `${resolvedApp.directory}/postcss.config.mjs`, createPostcssConfig());
56
- writeFile(targetDir, `${resolvedApp.directory}/tailwind.config.ts`, createTailwindConfig());
57
- }
54
+ if (enableTailwind) writeFile(targetDir, `${resolvedApp.directory}/tailwind.config.ts`, createTailwindConfig());
58
55
  }
59
56
  function writeAppFederationConfigFiles({ targetDir, scope, resolvedApp, remotes }) {
60
57
  writeFile(targetDir, `${resolvedApp.directory}/module-federation.config.ts`, 'shell' === resolvedApp.kind ? createShellModuleFederationConfig(scope, remotes) : createRemoteModuleFederationConfig(scope, resolvedApp, remotes));
@@ -9,7 +9,7 @@ import { assertUniqueTailwindPrefixes, toPackageScope } from "./naming.js";
9
9
  import { runCodeSmithOverlays } from "./overlays.js";
10
10
  import { createRootPackageJson, createRootTsConfig, createSharedContractsIndex, createSharedPackage, createSharedPackageTsConfig, createTsConfigBase } from "./package-json.js";
11
11
  import { resolvePackageSource } from "./package-source.js";
12
- import { DRIZZLE_ORM_VERSION, EFFECT_VERSION, EFFECT_VITEST_VERSION, MODULE_FEDERATION_VERSION, NODE_FETCH_VERSION, NODE_VERSION, PNPM_VERSION, TANSTACK_ROUTER_CORE_VERSION, TANSTACK_ROUTER_VERSION, TYPESCRIPT_VERSION } from "./versions.js";
12
+ import { DRIZZLE_ORM_VERSION, EFFECT_VERSION, EFFECT_VITEST_VERSION, MODULE_FEDERATION_VERSION, NODE_FETCH_VERSION, NODE_VERSION, PNPM_VERSION, TANSTACK_ROUTER_CORE_VERSION, TANSTACK_ROUTER_VERSION, TYPESCRIPT_COMPILER_API_VERSION, TYPESCRIPT_VERSION } from "./versions.js";
13
13
  import { writeGeneratedWorkspaceScripts } from "./workspace-scripts.js";
14
14
  import { writeApp } from "./write-app.js";
15
15
  import { createZeropsYaml } from "./zerops.js";
@@ -84,6 +84,7 @@ function generateUltramodernWorkspace(options) {
84
84
  moduleFederationVersion: MODULE_FEDERATION_VERSION,
85
85
  tanstackRouterCoreVersion: TANSTACK_ROUTER_CORE_VERSION,
86
86
  tanstackRouterVersion: TANSTACK_ROUTER_VERSION,
87
+ typescriptCompilerApiVersion: TYPESCRIPT_COMPILER_API_VERSION,
87
88
  typescriptVersion: TYPESCRIPT_VERSION,
88
89
  tailwindEnabled: String(enableTailwind)
89
90
  });
@@ -129,4 +130,4 @@ function generateUltramodernWorkspace(options) {
129
130
  rewrittenPaths
130
131
  });
131
132
  }
132
- export { createCompactUltramodernConfig, generateUltramodernWorkspace, writeApp, writeSharedPackages };
133
+ export { createCompactUltramodernConfig, generateUltramodernWorkspace, writeApp };
@@ -1,8 +1,6 @@
1
1
  import "node:module";
2
2
  import { i18n, localeKeys } from "../locale/index.js";
3
3
  import { parseUltramodernBridgeCliOptions, ultramodernBridgeCliBooleanFlags, ultramodernBridgeCliValueFlags } from "../ultramodern-workspace/bridge-config.js";
4
- const LEGACY_MODERN_JS_FLAG = '--legacy-modern-js';
5
- const LEGACY_MODERN_JS_CONFIRMATION = 'USE LEGACY MODERN.JS';
6
4
  const WORKSPACE_PROTOCOL_FLAG = '--workspace';
7
5
  const DRY_RUN_FLAG = '--dry-run';
8
6
  const VERTICAL_FLAG = '--vertical';
@@ -30,13 +28,6 @@ const detectLanguage = ()=>{
30
28
  if ('zh' === lang) return 'zh';
31
29
  return 'en';
32
30
  };
33
- function detectLegacyModernJsFlag(args) {
34
- if (args.some((arg)=>arg.startsWith(`${LEGACY_MODERN_JS_FLAG}=`))) {
35
- console.error(`${LEGACY_MODERN_JS_FLAG} does not accept a value.`);
36
- process.exit(1);
37
- }
38
- return args.includes(LEGACY_MODERN_JS_FLAG);
39
- }
40
31
  function detectBffRuntime(args) {
41
32
  if (args.some((arg)=>arg.startsWith(`${BFF_FLAG}=`))) {
42
33
  console.error(`${BFF_FLAG} does not accept a value. Use: ${BFF_RUNTIME_OPTION} <runtime>`);
@@ -91,7 +82,6 @@ function collectPositionalArgs(args) {
91
82
  WORKSPACE_PROTOCOL_FLAG,
92
83
  DRY_RUN_FLAG,
93
84
  VERTICAL_FLAG,
94
- LEGACY_MODERN_JS_FLAG,
95
85
  ...ultramodernBridgeCliBooleanFlags
96
86
  ]);
97
87
  const positionalArgs = [];
@@ -226,4 +216,4 @@ function readBridgeCliOptions(args) {
226
216
  process.exit(1);
227
217
  }
228
218
  }
229
- export { BFF_FLAG, BFF_RUNTIME_OPTION, CODESMITH_OVERLAY_FLAG, DRY_RUN_FLAG, LEGACY_MODERN_JS_CONFIRMATION, LEGACY_MODERN_JS_FLAG, SUPPORTED_BFF_RUNTIMES, VERTICAL_FLAG, VERTICAL_NAME_FLAG, WORKSPACE_PROTOCOL_FLAG, collectPositionalArgs, detectBffRuntime, detectCodeSmithOverlays, detectDryRunFlag, detectExplicitTailwindFlag, detectLanguage, detectLegacyModernJsFlag, detectTailwindFlag, getOptionValue, readBridgeCliOptions, resolveVerticalCliInput };
219
+ export { CODESMITH_OVERLAY_FLAG, DRY_RUN_FLAG, VERTICAL_FLAG, WORKSPACE_PROTOCOL_FLAG, collectPositionalArgs, detectBffRuntime, detectCodeSmithOverlays, detectDryRunFlag, detectExplicitTailwindFlag, detectLanguage, detectTailwindFlag, getOptionValue, readBridgeCliOptions, resolveVerticalCliInput };
@@ -45,7 +45,6 @@ function showHelp() {
45
45
  console.log(i18n.t(localeKeys.help.optionVerticalName));
46
46
  console.log(i18n.t(localeKeys.help.optionDryRun));
47
47
  console.log(i18n.t(localeKeys.help.optionCodeSmithOverlay));
48
- console.log(i18n.t(localeKeys.help.optionLegacyModernJs));
49
48
  console.log('');
50
49
  console.log(i18n.t(localeKeys.help.examples));
51
50
  console.log(i18n.t(localeKeys.help.example1));
@@ -117,4 +117,4 @@ function resolveWorkspacePackageSource(args, createPackage, packageSource) {
117
117
  };
118
118
  return resolveInstallBackedPackageSource(args, createPackage, packageSource);
119
119
  }
120
- export { detectUltramodernPackageSource, getBleedingDevFrameworkVersion, isBleedingDevCreatePackage, readCreatePackageJson, resolveInstallBackedPackageSource, resolveWorkspacePackageSource };
120
+ export { detectUltramodernPackageSource, getBleedingDevFrameworkVersion, isBleedingDevCreatePackage, readCreatePackageJson, resolveWorkspacePackageSource };
@@ -2,7 +2,7 @@ import "node:module";
2
2
  import node_path from "node:path";
3
3
  import node_readline from "node:readline";
4
4
  import { i18n, localeKeys } from "../locale/index.js";
5
- import { LEGACY_MODERN_JS_CONFIRMATION, collectPositionalArgs } from "./flags.js";
5
+ import { collectPositionalArgs } from "./flags.js";
6
6
  import { isDirectoryEmpty } from "./project-setup.js";
7
7
  function promptInput(question) {
8
8
  const rl = node_readline.createInterface({
@@ -16,18 +16,6 @@ function promptInput(question) {
16
16
  });
17
17
  });
18
18
  }
19
- async function confirmLegacyModernJsSetup() {
20
- console.error('');
21
- console.error(i18n.t(localeKeys.message.legacyModernJsWarning));
22
- console.error('');
23
- const answer = await promptInput(i18n.t(localeKeys.prompt.legacyModernJsConfirmation, {
24
- confirmation: LEGACY_MODERN_JS_CONFIRMATION
25
- }));
26
- if (answer !== LEGACY_MODERN_JS_CONFIRMATION) {
27
- console.error(i18n.t(localeKeys.error.legacyModernJsNotConfirmed));
28
- process.exit(1);
29
- }
30
- }
31
19
  async function getProjectName() {
32
20
  const args = process.argv.slice(2);
33
21
  const positionalArgs = collectPositionalArgs(args);
@@ -61,4 +49,4 @@ async function getProjectName() {
61
49
  useCurrentDir: false
62
50
  };
63
51
  }
64
- export { confirmLegacyModernJsSetup, getProjectName, promptInput };
52
+ export { getProjectName };
@@ -1,11 +1,11 @@
1
1
  import "node:module";
2
2
  import node_fs from "node:fs";
3
3
  import node_path from "node:path";
4
- import { DRY_RUN_FLAG, VERTICAL_FLAG, detectBffRuntime, detectCodeSmithOverlays, detectDryRunFlag, detectExplicitTailwindFlag, detectLanguage, detectLegacyModernJsFlag, detectTailwindFlag, readBridgeCliOptions, resolveVerticalCliInput } from "./cli/flags.js";
4
+ import { DRY_RUN_FLAG, VERTICAL_FLAG, detectBffRuntime, detectCodeSmithOverlays, detectDryRunFlag, detectExplicitTailwindFlag, detectLanguage, detectTailwindFlag, readBridgeCliOptions, resolveVerticalCliInput } from "./cli/flags.js";
5
5
  import { showHelp, showVersion } from "./cli/help.js";
6
6
  import { detectUltramodernPackageSource, getBleedingDevFrameworkVersion, isBleedingDevCreatePackage, readCreatePackageJson, resolveWorkspacePackageSource } from "./cli/package-source.js";
7
7
  import { initializeGeneratedGitRepository } from "./cli/project-setup.js";
8
- import { confirmLegacyModernJsSetup, getProjectName } from "./cli/prompts.js";
8
+ import { getProjectName } from "./cli/prompts.js";
9
9
  import { i18n, localeKeys } from "./locale/index.js";
10
10
  import { runUltramodernToolingCli } from "./ultramodern-tooling/commands.js";
11
11
  import { addUltramodernVertical, generateUltramodernWorkspace, planUltramodernVertical } from "./ultramodern-workspace/index.js";
@@ -21,11 +21,6 @@ async function main() {
21
21
  }
22
22
  if (args.includes('--help') || args.includes('-h')) return void showHelp();
23
23
  if (args.includes('--version') || args.includes('-v')) return void showVersion();
24
- if (detectLegacyModernJsFlag(args)) {
25
- await confirmLegacyModernJsSetup();
26
- delegateLegacyModernJsSetup(args);
27
- return;
28
- }
29
24
  detectBffRuntime(args);
30
25
  const dryRun = detectDryRunFlag(args);
31
26
  const verticalInput = resolveVerticalCliInput(args);
@@ -1,15 +1,13 @@
1
1
  import "node:module";
2
2
  const EN_LOCALE = {
3
3
  prompt: {
4
- projectName: 'Please enter project name: ',
5
- legacyModernJsConfirmation: 'Type "{confirmation}" to continue with the original Modern.js setup: '
4
+ projectName: 'Please enter project name: '
6
5
  },
7
6
  error: {
8
7
  projectNameEmpty: 'Error: Project name cannot be empty',
9
8
  directoryExists: 'Error: Directory "{projectName}" already exists and is not empty',
10
9
  verticalNameMissing: 'Error: Missing MicroVertical name. Use <name> --vertical, --vertical=<name>, or --vertical-name <name>.',
11
10
  verticalNameAmbiguous: 'Error: Ambiguous MicroVertical name: "{firstName}" from {firstSource} does not match "{secondName}" from {secondSource}.',
12
- legacyModernJsNotConfirmed: 'Aborted. UltraModern.js remains the default unattended setup.',
13
11
  createFailed: 'Error creating project:'
14
12
  },
15
13
  message: {
@@ -18,8 +16,7 @@ const EN_LOCALE = {
18
16
  nextSteps: '📋 Next steps:',
19
17
  step1: 'cd {projectName}',
20
18
  step2: 'pnpm install',
21
- step3: 'pnpm dev',
22
- legacyModernJsWarning: "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\nBRUTAL WARNING: YOU ARE OPTING OUT OF ULTRAMODERN.JS DEFAULTS.\nThe unattended default is the best UltraModern.js configuration:\na structured SuperApp workspace, presetUltramodern, TanStack Router,\na strict Effect API runtime, Tailwind CSS v4, and the BleedingDev package cohort.\nThe original Modern.js setup is a dangerous opt-in path.\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
19
+ step3: 'pnpm dev'
23
20
  },
24
21
  help: {
25
22
  title: '🚀 UltraModern.js Project Creator',
@@ -53,7 +50,6 @@ const EN_LOCALE = {
53
50
  optionVerticalName: ' --vertical-name <name> Explicit MicroVertical name for automation-friendly workspace mutation',
54
51
  optionDryRun: ' --dry-run Preview a MicroVertical mutation plan without writing files (supported with --vertical)',
55
52
  optionCodeSmithOverlay: ' --codesmith-overlay <package-or-path> Run an explicit CodeSmith overlay after generation',
56
- optionLegacyModernJs: ' --legacy-modern-js Opt into the original Modern.js setup after a large warning and typed confirmation',
57
53
  examples: '💡 Examples:',
58
54
  example1: ' pnpm dlx @bleedingdev/modern-js-create my-workspace',
59
55
  example2: ' pnpm dlx @bleedingdev/modern-js-create my-workspace --lang zh',
@@ -1,15 +1,13 @@
1
1
  import "node:module";
2
2
  const ZH_LOCALE = {
3
3
  prompt: {
4
- projectName: '请输入项目名称: ',
5
- legacyModernJsConfirmation: '输入 "{confirmation}" 以继续使用原始 Modern.js 初始化: '
4
+ projectName: '请输入项目名称: '
6
5
  },
7
6
  error: {
8
7
  projectNameEmpty: '错误: 项目名称不能为空',
9
8
  directoryExists: '错误: 目录 "{projectName}" 已存在且不为空',
10
9
  verticalNameMissing: '错误: 缺少 MicroVertical 名称。请使用 <名称> --vertical、--vertical=<名称> 或 --vertical-name <名称>。',
11
10
  verticalNameAmbiguous: '错误: MicroVertical 名称不明确:{firstSource} 的 "{firstName}" 与 {secondSource} 的 "{secondName}" 不一致。',
12
- legacyModernJsNotConfirmed: '已中止。UltraModern.js 仍是默认的免交互初始化方案。',
13
11
  createFailed: '创建项目时出错:'
14
12
  },
15
13
  message: {
@@ -18,8 +16,7 @@ const ZH_LOCALE = {
18
16
  nextSteps: '📋 下一步:',
19
17
  step1: 'cd {projectName}',
20
18
  step2: 'pnpm install',
21
- step3: 'pnpm dev',
22
- legacyModernJsWarning: "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n严重警告:你正在退出 ULTRAMODERN.JS 默认配置。\n免交互默认值是最佳 UltraModern.js 配置:\n结构化 SuperApp 工作区、presetUltramodern、TanStack Router、\n严格 Effect API 运行时、Tailwind CSS v4,以及 BleedingDev 包版本队列。\n原始 Modern.js 初始化是危险的显式选择路径。\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
19
+ step3: 'pnpm dev'
23
20
  },
24
21
  help: {
25
22
  title: '🚀 UltraModern.js 项目创建工具',
@@ -53,7 +50,6 @@ const ZH_LOCALE = {
53
50
  optionVerticalName: ' --vertical-name <名称> 为自动化工作流显式指定 MicroVertical 名称',
54
51
  optionDryRun: ' --dry-run 预览 MicroVertical 修改计划但不写入文件(与 --vertical 一起使用)',
55
52
  optionCodeSmithOverlay: ' --codesmith-overlay <包或路径> 生成完成后运行显式配置的 CodeSmith overlay',
56
- optionLegacyModernJs: ' --legacy-modern-js 在大型警告和输入确认后,选择原始 Modern.js 初始化',
57
53
  examples: '💡 示例:',
58
54
  example1: ' pnpm dlx @bleedingdev/modern-js-create my-workspace',
59
55
  example2: ' pnpm dlx @bleedingdev/modern-js-create my-workspace --lang zh',
@@ -38,27 +38,4 @@ function modernPackageSpecifier(packageName, packageSource) {
38
38
  if (!packageSource.aliasScope) return packageSource.modernPackageVersion;
39
39
  return `npm:${modernAliasPackageName(packageName, packageSource)}@${packageSource.modernPackageVersion}`;
40
40
  }
41
- function modernPackageAliases(packageNames, packageSource) {
42
- if (!packageSource.aliasScope) return;
43
- return Object.fromEntries(packageNames.map((packageName)=>[
44
- packageName,
45
- modernAliasPackageName(packageName, packageSource)
46
- ]));
47
- }
48
- function createModernPackagesMetadata(packageNames, packageSource, options = {}) {
49
- const includeAliases = options.includeAliases ?? Boolean(packageSource.aliasScope);
50
- const aliases = includeAliases ? modernPackageAliases(packageNames, packageSource) : void 0;
51
- return {
52
- packages: [
53
- ...packageNames
54
- ],
55
- specifier: modernPackageVersion(packageSource),
56
- ...packageSource.registry ? {
57
- registry: packageSource.registry
58
- } : {},
59
- ...aliases ? {
60
- aliases
61
- } : {}
62
- };
63
- }
64
- export { BLEEDINGDEV_CREATE_PACKAGE, BLEEDINGDEV_FRAMEWORK_VERSION_ENV, BLEEDINGDEV_PACKAGE_NAME_PREFIX, BLEEDINGDEV_PACKAGE_SCOPE, ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES, ULTRAMODERN_WORKSPACE_MODERN_PACKAGES, WORKSPACE_PACKAGE_VERSION, createModernPackagesMetadata, modernAliasPackageName, modernPackageAliases, modernPackageSpecifier, modernPackageVersion };
41
+ export { BLEEDINGDEV_CREATE_PACKAGE, BLEEDINGDEV_FRAMEWORK_VERSION_ENV, BLEEDINGDEV_PACKAGE_NAME_PREFIX, BLEEDINGDEV_PACKAGE_SCOPE, ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES, ULTRAMODERN_WORKSPACE_MODERN_PACKAGES, WORKSPACE_PACKAGE_VERSION, modernPackageSpecifier, modernPackageVersion };
@@ -1,9 +1,10 @@
1
1
  import "node:module";
2
2
  import { ensureGeneratedPatchFile, removeGeneratedPatchFileIfUnchanged } from "./generated-patches.js";
3
- import { drizzleOrmDeclarationPatchPath, drizzleOrmDeclarationPatchSourcePath, effectDeclarationPatchPath, effectDeclarationPatchSourcePath, moduleFederationBridgeReactPatchPath, moduleFederationBridgeReactPatchSourcePath, moduleFederationModernJsPatchPath, moduleFederationModernJsPatchSourcePath } from "./policy-constants.js";
3
+ import { drizzleOrmDeclarationPatchPath, drizzleOrmDeclarationPatchSourcePath, effectDeclarationPatchPath, effectDeclarationPatchSourcePath, moduleFederationBridgeReactPatchPath, moduleFederationBridgeReactPatchSourcePath, moduleFederationDtsPluginPatchPath, moduleFederationDtsPluginPatchSourcePath, moduleFederationModernJsPatchPath, moduleFederationModernJsPatchSourcePath } from "./policy-constants.js";
4
4
  function ensureGeneratedDeclarationPatches(io, options) {
5
5
  let changed = false;
6
6
  changed = ensureGeneratedPatchFile(io, moduleFederationModernJsPatchPath, moduleFederationModernJsPatchSourcePath) || changed;
7
+ changed = ensureGeneratedPatchFile(io, moduleFederationDtsPluginPatchPath, moduleFederationDtsPluginPatchSourcePath) || changed;
7
8
  changed = ensureGeneratedPatchFile(io, moduleFederationBridgeReactPatchPath, moduleFederationBridgeReactPatchSourcePath) || changed;
8
9
  changed = ensureGeneratedPatchFile(io, effectDeclarationPatchPath, effectDeclarationPatchSourcePath) || changed;
9
10
  changed = options.includeDrizzleOrmPatch ? ensureGeneratedPatchFile(io, drizzleOrmDeclarationPatchPath, drizzleOrmDeclarationPatchSourcePath) || changed : removeGeneratedPatchFileIfUnchanged(io, drizzleOrmDeclarationPatchPath, drizzleOrmDeclarationPatchSourcePath) || changed;