@bleedingdev/modern-js-create 3.4.0-ultramodern.8 → 3.5.0-ultramodern.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +25 -23
  2. package/dist/cjs/index.cjs +37 -4
  3. package/dist/cjs/locale/en.cjs +12 -2
  4. package/dist/cjs/locale/zh.cjs +12 -2
  5. package/dist/cjs/ultramodern-tooling/commands.cjs +185 -0
  6. package/dist/cjs/ultramodern-tooling/config.cjs +172 -0
  7. package/dist/cjs/ultramodern-workspace/add-vertical.cjs +87 -75
  8. package/dist/cjs/ultramodern-workspace/{effect-api.cjs → api.cjs} +207 -208
  9. package/dist/cjs/ultramodern-workspace/bridge-config.cjs +327 -0
  10. package/dist/cjs/ultramodern-workspace/codesmith.cjs +1 -0
  11. package/dist/cjs/ultramodern-workspace/contracts.cjs +127 -657
  12. package/dist/cjs/ultramodern-workspace/demo-components.cjs +12 -12
  13. package/dist/cjs/ultramodern-workspace/descriptors.cjs +25 -25
  14. package/dist/cjs/ultramodern-workspace/fs-io.cjs +117 -0
  15. package/dist/cjs/ultramodern-workspace/generation-result.cjs +5 -5
  16. package/dist/cjs/ultramodern-workspace/index.cjs +4 -0
  17. package/dist/cjs/ultramodern-workspace/mf-validation.cjs +571 -0
  18. package/dist/cjs/ultramodern-workspace/module-federation.cjs +33 -18
  19. package/dist/cjs/ultramodern-workspace/overlays.cjs +2 -2
  20. package/dist/cjs/ultramodern-workspace/package-json.cjs +57 -41
  21. package/dist/cjs/ultramodern-workspace/policy.cjs +4 -4
  22. package/dist/cjs/ultramodern-workspace/public-api.cjs +4 -0
  23. package/dist/cjs/ultramodern-workspace/public-surface.cjs +2 -2
  24. package/dist/cjs/ultramodern-workspace/versions.cjs +5 -0
  25. package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +119 -50
  26. package/dist/cjs/ultramodern-workspace/write-workspace.cjs +62 -21
  27. package/dist/esm/index.js +37 -4
  28. package/dist/esm/locale/en.js +12 -2
  29. package/dist/esm/locale/zh.js +12 -2
  30. package/dist/esm/ultramodern-tooling/commands.js +132 -0
  31. package/dist/esm/ultramodern-tooling/config.js +120 -0
  32. package/dist/esm/ultramodern-workspace/add-vertical.js +88 -79
  33. package/dist/esm/ultramodern-workspace/{effect-api.js → api.js} +146 -147
  34. package/dist/esm/ultramodern-workspace/bridge-config.js +270 -0
  35. package/dist/esm/ultramodern-workspace/codesmith.js +1 -0
  36. package/dist/esm/ultramodern-workspace/contracts.js +129 -611
  37. package/dist/esm/ultramodern-workspace/demo-components.js +13 -13
  38. package/dist/esm/ultramodern-workspace/descriptors.js +11 -11
  39. package/dist/esm/ultramodern-workspace/fs-io.js +116 -2
  40. package/dist/esm/ultramodern-workspace/generation-result.js +6 -6
  41. package/dist/esm/ultramodern-workspace/index.js +1 -0
  42. package/dist/esm/ultramodern-workspace/mf-validation.js +516 -0
  43. package/dist/esm/ultramodern-workspace/module-federation.js +34 -19
  44. package/dist/esm/ultramodern-workspace/overlays.js +2 -2
  45. package/dist/esm/ultramodern-workspace/package-json.js +56 -40
  46. package/dist/esm/ultramodern-workspace/policy.js +5 -5
  47. package/dist/esm/ultramodern-workspace/public-api.js +1 -0
  48. package/dist/esm/ultramodern-workspace/public-surface.js +2 -2
  49. package/dist/esm/ultramodern-workspace/versions.js +3 -1
  50. package/dist/esm/ultramodern-workspace/workspace-scripts.js +107 -34
  51. package/dist/esm/ultramodern-workspace/write-workspace.js +64 -26
  52. package/dist/esm-node/index.js +37 -4
  53. package/dist/esm-node/locale/en.js +12 -2
  54. package/dist/esm-node/locale/zh.js +12 -2
  55. package/dist/esm-node/ultramodern-tooling/commands.js +133 -0
  56. package/dist/esm-node/ultramodern-tooling/config.js +121 -0
  57. package/dist/esm-node/ultramodern-workspace/add-vertical.js +88 -79
  58. package/dist/esm-node/ultramodern-workspace/{effect-api.js → api.js} +146 -147
  59. package/dist/esm-node/ultramodern-workspace/bridge-config.js +271 -0
  60. package/dist/esm-node/ultramodern-workspace/codesmith.js +1 -0
  61. package/dist/esm-node/ultramodern-workspace/contracts.js +129 -611
  62. package/dist/esm-node/ultramodern-workspace/demo-components.js +13 -13
  63. package/dist/esm-node/ultramodern-workspace/descriptors.js +11 -11
  64. package/dist/esm-node/ultramodern-workspace/fs-io.js +116 -2
  65. package/dist/esm-node/ultramodern-workspace/generation-result.js +6 -6
  66. package/dist/esm-node/ultramodern-workspace/index.js +1 -0
  67. package/dist/esm-node/ultramodern-workspace/mf-validation.js +517 -0
  68. package/dist/esm-node/ultramodern-workspace/module-federation.js +34 -19
  69. package/dist/esm-node/ultramodern-workspace/overlays.js +2 -2
  70. package/dist/esm-node/ultramodern-workspace/package-json.js +56 -40
  71. package/dist/esm-node/ultramodern-workspace/policy.js +5 -5
  72. package/dist/esm-node/ultramodern-workspace/public-api.js +1 -0
  73. package/dist/esm-node/ultramodern-workspace/public-surface.js +2 -2
  74. package/dist/esm-node/ultramodern-workspace/versions.js +3 -1
  75. package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +107 -34
  76. package/dist/esm-node/ultramodern-workspace/write-workspace.js +64 -26
  77. package/dist/types/locale/en.d.ts +10 -0
  78. package/dist/types/locale/index.d.ts +20 -0
  79. package/dist/types/locale/zh.d.ts +10 -0
  80. package/dist/types/ultramodern-tooling/commands.d.ts +1 -0
  81. package/dist/types/ultramodern-tooling/config.d.ts +43 -0
  82. package/dist/types/ultramodern-workspace/add-vertical.d.ts +5 -2
  83. package/dist/types/ultramodern-workspace/api.d.ts +73 -0
  84. package/dist/types/ultramodern-workspace/bridge-config.d.ts +64 -0
  85. package/dist/types/ultramodern-workspace/codesmith.d.ts +1 -0
  86. package/dist/types/ultramodern-workspace/contracts.d.ts +2 -17
  87. package/dist/types/ultramodern-workspace/descriptors.d.ts +10 -10
  88. package/dist/types/ultramodern-workspace/fs-io.d.ts +1 -0
  89. package/dist/types/ultramodern-workspace/index.d.ts +2 -0
  90. package/dist/types/ultramodern-workspace/mf-validation.d.ts +27 -0
  91. package/dist/types/ultramodern-workspace/package-json.d.ts +5 -4
  92. package/dist/types/ultramodern-workspace/public-api.d.ts +2 -0
  93. package/dist/types/ultramodern-workspace/types.d.ts +9 -7
  94. package/dist/types/ultramodern-workspace/versions.d.ts +2 -0
  95. package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +2 -7
  96. package/dist/types/ultramodern-workspace/write-workspace.d.ts +4 -2
  97. package/package.json +5 -3
  98. package/template-workspace/{.agents → .codex}/skills-lock.json +12 -12
  99. package/template-workspace/.github/workflows/ultramodern-workspace-gates.yml.handlebars +2 -0
  100. package/template-workspace/.gitignore.handlebars +3 -0
  101. package/template-workspace/AGENTS.md.handlebars +11 -5
  102. package/template-workspace/README.md.handlebars +15 -12
  103. package/template-workspace/oxfmt.config.ts +1 -0
  104. package/template-workspace/oxlint.config.ts +1 -0
  105. package/template-workspace/patches/@tanstack__router-core@1.171.13.patch +51 -0
  106. package/template-workspace/pnpm-workspace.yaml.handlebars +4 -0
  107. package/template-workspace/scripts/bootstrap-agent-skills.mjs +77 -67
  108. package/templates/workspace-scripts/assert-mf-types.mjs.handlebars +51 -8
  109. package/templates/workspace-scripts/check-ultramodern-api-boundaries.mts +344 -0
  110. package/templates/workspace-scripts/{check-ultramodern-i18n-boundaries.mjs → check-ultramodern-i18n-boundaries.mts} +1 -1
  111. package/templates/workspace-scripts/generate-public-surface-assets.mjs +246 -9
  112. package/templates/workspace-scripts/proof-cloudflare-version.mjs +277 -9
  113. package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +35 -10
  114. package/templates/workspace-scripts/ultramodern-performance-readiness.mjs +165 -2
  115. package/templates/workspace-scripts/ultramodern-typecheck.mjs +4 -2
  116. package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +840 -84
  117. package/dist/types/ultramodern-workspace/effect-api.d.ts +0 -73
  118. /package/template-workspace/{.agents → .codex}/rstackjs-agent-skills-LICENSE +0 -0
  119. /package/template-workspace/{.agents → .codex}/skills/rsbuild-best-practices/SKILL.md +0 -0
  120. /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/SKILL.md +0 -0
  121. /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/command-map.md +0 -0
  122. /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/common-analysis-patterns.md +0 -0
  123. /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/install-rsdoctor-common.md +0 -0
  124. /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/install-rsdoctor-rspack.md +0 -0
  125. /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/install-rsdoctor-webpack.md +0 -0
  126. /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/install-rsdoctor.md +0 -0
  127. /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/rsdoctor-data-types.md +0 -0
  128. /package/template-workspace/{.agents → .codex}/skills/rslib-best-practices/SKILL.md +0 -0
  129. /package/template-workspace/{.agents → .codex}/skills/rslib-modern-package/SKILL.md +0 -0
  130. /package/template-workspace/{.agents → .codex}/skills/rspack-best-practices/SKILL.md +0 -0
  131. /package/template-workspace/{.agents → .codex}/skills/rspack-tracing/SKILL.md +0 -0
  132. /package/template-workspace/{.agents → .codex}/skills/rspack-tracing/references/bottlenecks.md +0 -0
  133. /package/template-workspace/{.agents → .codex}/skills/rspack-tracing/references/tracing-guide.md +0 -0
  134. /package/template-workspace/{.agents → .codex}/skills/rspack-tracing/scripts/analyze_trace.js +0 -0
  135. /package/template-workspace/{.agents → .codex}/skills/rstest-best-practices/SKILL.md +0 -0
@@ -105,8 +105,8 @@ function createOverlayRuntimeConfig(workspaceRoot, result) {
105
105
  assignedPorts: result.assignedPorts,
106
106
  moduleFederationName: generatedApp ? result.moduleFederationNames[generatedApp.id] : void 0,
107
107
  moduleFederationNames: result.moduleFederationNames,
108
- effectApiPrefix: generatedApp ? result.effectApiPrefixes[generatedApp.id] : void 0,
109
- effectApiPrefixes: result.effectApiPrefixes,
108
+ apiPrefix: generatedApp ? result.apiPrefixes[generatedApp.id] : void 0,
109
+ apiPrefixes: result.apiPrefixes,
110
110
  packageSource: result.packageSource,
111
111
  generationResult: result
112
112
  };
@@ -33,13 +33,13 @@ __webpack_require__.d(__webpack_exports__, {
33
33
  createAppMfTypesTsConfig: ()=>createAppMfTypesTsConfig,
34
34
  createAppPackage: ()=>createAppPackage,
35
35
  createAppTsConfig: ()=>createAppTsConfig,
36
- createEffectTsgoTypecheckCommand: ()=>createEffectTsgoTypecheckCommand,
37
36
  createPackageTsConfig: ()=>createPackageTsConfig,
38
37
  createRootPackageJson: ()=>createRootPackageJson,
39
38
  createRootTsConfig: ()=>createRootTsConfig,
40
39
  createSharedContractsIndex: ()=>createSharedContractsIndex,
41
40
  createSharedPackage: ()=>createSharedPackage,
42
41
  createSharedPackageTsConfig: ()=>createSharedPackageTsConfig,
42
+ createStrictTsgoTypecheckCommand: ()=>createStrictTsgoTypecheckCommand,
43
43
  createTsConfigBase: ()=>createTsConfigBase,
44
44
  createZephyrDependencies: ()=>createZephyrDependencies,
45
45
  effectDiagnostics: ()=>effectDiagnostics
@@ -50,7 +50,7 @@ const external_fs_io_cjs_namespaceObject = require("./fs-io.cjs");
50
50
  const external_naming_cjs_namespaceObject = require("./naming.cjs");
51
51
  const external_public_surface_cjs_namespaceObject = require("./public-surface.cjs");
52
52
  const external_versions_cjs_namespaceObject = require("./versions.cjs");
53
- const createEffectTsgoTypecheckCommand = (packageDir)=>`node ${(0, external_naming_cjs_namespaceObject.relativeRootFor)(packageDir)}/scripts/ultramodern-typecheck.mjs --project tsconfig.json`;
53
+ const createStrictTsgoTypecheckCommand = (packageDir)=>`node ${(0, external_naming_cjs_namespaceObject.relativeRootFor)(packageDir)}/scripts/ultramodern-typecheck.mts --project tsconfig.json`;
54
54
  const effectDiagnostics = [
55
55
  'anyUnknownInErrorContext',
56
56
  'classSelfMismatch',
@@ -126,7 +126,7 @@ const effectDiagnostics = [
126
126
  'unnecessaryPipe',
127
127
  'unnecessaryPipeChain'
128
128
  ];
129
- function appDependencies(scope, packageSource, app, remotes = []) {
129
+ function appDependencies(scope, packageSource, app, remotes = [], bridge) {
130
130
  const dependencies = {
131
131
  '@modern-js/plugin-tanstack': (0, external_ultramodern_package_source_cjs_namespaceObject.modernPackageSpecifier)('@modern-js/plugin-tanstack', packageSource),
132
132
  '@modern-js/plugin-i18n': (0, external_ultramodern_package_source_cjs_namespaceObject.modernPackageSpecifier)('@modern-js/plugin-i18n', packageSource),
@@ -141,14 +141,16 @@ function appDependencies(scope, packageSource, app, remotes = []) {
141
141
  [(0, external_naming_cjs_namespaceObject.packageName)(scope, 'shared-design-tokens')]: external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION,
142
142
  react: external_versions_cjs_namespaceObject.REACT_VERSION,
143
143
  'react-dom': external_versions_cjs_namespaceObject.REACT_DOM_VERSION,
144
- 'react-router': external_versions_cjs_namespaceObject.REACT_ROUTER_VERSION
144
+ 'react-router': external_versions_cjs_namespaceObject.REACT_ROUTER_VERSION,
145
+ 'react-router-dom': external_versions_cjs_namespaceObject.REACT_ROUTER_VERSION
145
146
  };
147
+ for (const dependency of bridge?.dependencies ?? [])dependencies[dependency] = external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION;
146
148
  if ('shell' === app.kind) {
147
149
  dependencies['@modern-js/plugin-bff'] = (0, external_ultramodern_package_source_cjs_namespaceObject.modernPackageSpecifier)('@modern-js/plugin-bff', packageSource);
148
- for (const remote of (0, external_descriptors_cjs_namespaceObject.verticalEffectApps)(remotes))dependencies[(0, external_naming_cjs_namespaceObject.packageName)(scope, remote.packageSuffix)] = external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION;
150
+ for (const remote of (0, external_descriptors_cjs_namespaceObject.verticalApiApps)(remotes))dependencies[(0, external_naming_cjs_namespaceObject.packageName)(scope, remote.packageSuffix)] = external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION;
149
151
  }
150
152
  for (const remote of (0, external_descriptors_cjs_namespaceObject.resolveRemoteRefs)(app, remotes))dependencies[(0, external_naming_cjs_namespaceObject.packageName)(scope, remote.packageSuffix)] = external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION;
151
- if ((0, external_descriptors_cjs_namespaceObject.appHasEffectApi)(app)) dependencies['@modern-js/plugin-bff'] = (0, external_ultramodern_package_source_cjs_namespaceObject.modernPackageSpecifier)('@modern-js/plugin-bff', packageSource);
153
+ if ((0, external_descriptors_cjs_namespaceObject.appHasApi)(app)) dependencies['@modern-js/plugin-bff'] = (0, external_ultramodern_package_source_cjs_namespaceObject.modernPackageSpecifier)('@modern-js/plugin-bff', packageSource);
152
154
  return dependencies;
153
155
  }
154
156
  function appDevDependencies(packageSource, enableTailwind) {
@@ -169,12 +171,28 @@ function appDevDependencies(packageSource, enableTailwind) {
169
171
  wrangler: external_versions_cjs_namespaceObject.WRANGLER_VERSION
170
172
  };
171
173
  }
172
- function createRootPackageJson(scope, packageSource, remotes = []) {
174
+ function createRootPackageJson(scope, packageSource, remotes = [], bridge) {
173
175
  const shellFilter = `--filter ${(0, external_naming_cjs_namespaceObject.packageName)(scope, external_descriptors_cjs_namespaceObject.shellApp.packageSuffix)}`;
174
176
  const remoteFilters = remotes.map((remote)=>`--filter ${(0, external_naming_cjs_namespaceObject.packageName)(scope, remote.packageSuffix)}`);
175
177
  const remoteBuildPrefix = remotes.length > 0 ? 'ULTRAMODERN_ZEPHYR=false pnpm -r --filter "./verticals/*" run build && ' : '';
176
178
  const remoteCloudflareBuildPrefix = remotes.length > 0 ? 'pnpm -r --filter "./verticals/*" run cloudflare:build && ' : '';
177
179
  const remoteCloudflareDeployPrefix = remotes.length > 0 ? 'pnpm -r --filter "./verticals/*" run cloudflare:deploy && ' : '';
180
+ const generatedPackageTypecheck = 'pnpm -r --filter "./apps/*" --filter "./verticals/*" --filter "./packages/*" run typecheck';
181
+ const typecheck = bridge ? generatedPackageTypecheck : "node ./scripts/ultramodern-typecheck.mts --build tsconfig.json";
182
+ const bridgeScripts = bridge ? {
183
+ ...Object.fromEntries(bridge.gates.map((gate)=>[
184
+ `bridge:${gate.name}`,
185
+ `${gate.cwd ? `cd ${gate.cwd} && ` : ''}${gate.command}`
186
+ ])),
187
+ 'bridge:check': bridge.gates.map((gate)=>`pnpm run bridge:${gate.name}`).join(' && ')
188
+ } : {};
189
+ const bridgeCheck = bridge ? ' && pnpm bridge:check' : '';
190
+ const workspacePackages = [
191
+ 'apps/*',
192
+ 'verticals/*',
193
+ 'packages/*',
194
+ ...bridge?.workspacePackages.map((entry)=>entry.pattern) ?? []
195
+ ];
178
196
  return {
179
197
  private: true,
180
198
  name: scope,
@@ -196,30 +214,28 @@ function createRootPackageJson(scope, packageSource, remotes = []) {
196
214
  'format:check': "oxfmt --check . '!repos/**'",
197
215
  lint: 'oxlint apps verticals packages',
198
216
  'lint:fix': 'oxlint apps verticals packages --fix',
199
- typecheck: "node ./scripts/ultramodern-typecheck.mjs --build tsconfig.json",
217
+ typecheck,
200
218
  'cloudflare:build': `${remoteCloudflareBuildPrefix}pnpm --filter "./apps/shell-super-app" run cloudflare:build && pnpm mf:types`,
201
219
  'cloudflare:deploy': `${remoteCloudflareDeployPrefix}pnpm --filter "./apps/shell-super-app" run cloudflare:deploy`,
202
- 'cloudflare:proof': "node ./scripts/proof-cloudflare-version.mjs --out .codex/reports/cloudflare-version-proof/public-url-proof.json",
203
- 'skills:install': "node ./scripts/bootstrap-agent-skills.mjs",
204
- 'skills:check': "node ./scripts/bootstrap-agent-skills.mjs --check",
205
- 'agents:refs:install': "node ./scripts/setup-agent-reference-repos.mjs",
206
- 'agents:refs:check': "node ./scripts/setup-agent-reference-repos.mjs --check",
207
- 'mf:types': "node ./scripts/assert-mf-types.mjs",
208
- 'performance:readiness': "node ./scripts/ultramodern-performance-readiness.mjs",
209
- 'contract:check': "node ./scripts/validate-ultramodern-workspace.mjs",
210
- 'i18n:boundaries': "node ./scripts/check-ultramodern-i18n-boundaries.mjs",
211
- postinstall: "oxfmt . '!repos/**' && node ./scripts/bootstrap-agent-skills.mjs --postinstall",
212
- check: 'pnpm format:check && pnpm lint && pnpm typecheck && pnpm skills:check && pnpm i18n:boundaries && pnpm contract:check && pnpm performance:readiness'
220
+ 'cloudflare:proof': "node ./scripts/proof-cloudflare-version.mts --out .codex/reports/cloudflare-version-proof/public-url-proof.json",
221
+ 'skills:install': "node ./scripts/bootstrap-agent-skills.mts",
222
+ 'skills:check': "node ./scripts/bootstrap-agent-skills.mts --check",
223
+ 'agents:refs:install': "node ./scripts/setup-agent-reference-repos.mts",
224
+ 'agents:refs:check': "node ./scripts/setup-agent-reference-repos.mts --check",
225
+ 'mf:types': "node ./scripts/assert-mf-types.mts",
226
+ 'performance:readiness': "node ./scripts/ultramodern-performance-readiness.mts",
227
+ 'contract:check': "node ./scripts/validate-ultramodern-workspace.mts",
228
+ 'api:check': "node ./scripts/check-ultramodern-api-boundaries.mts",
229
+ 'i18n:boundaries': "node ./scripts/check-ultramodern-i18n-boundaries.mts",
230
+ ...bridgeScripts,
231
+ postinstall: "oxfmt . '!repos/**' && node ./scripts/bootstrap-agent-skills.mts --postinstall",
232
+ check: `pnpm format:check && pnpm lint && pnpm typecheck && pnpm skills:check && pnpm i18n:boundaries && pnpm api:check && pnpm contract:check && pnpm performance:readiness${bridgeCheck}`
213
233
  },
214
234
  engines: {
215
235
  node: '>=26',
216
236
  pnpm: '>=11'
217
237
  },
218
- workspaces: [
219
- 'apps/*',
220
- 'verticals/*',
221
- 'packages/*'
222
- ],
238
+ workspaces: workspacePackages,
223
239
  modernjs: {
224
240
  preset: 'presetUltramodern',
225
241
  workspace: 'ultramodern-superapp',
@@ -227,7 +243,7 @@ function createRootPackageJson(scope, packageSource, remotes = []) {
227
243
  ownership: './topology/ownership.json',
228
244
  packageSource: {
229
245
  strategy: packageSource.strategy,
230
- config: './.modernjs/ultramodern-package-source.json'
246
+ config: './.modernjs/ultramodern.json'
231
247
  }
232
248
  },
233
249
  devDependencies: {
@@ -346,10 +362,10 @@ function createPackageTsConfig(packageDir, options = {}) {
346
362
  function createAppTsConfig(app, remotes = []) {
347
363
  const references = [
348
364
  ...external_descriptors_cjs_namespaceObject.sharedPackages.map((sharedPackage)=>sharedPackage.directory),
349
- ...'shell' === app.kind ? (0, external_descriptors_cjs_namespaceObject.verticalEffectApps)(remotes).map((remote)=>remote.directory) : (0, external_descriptors_cjs_namespaceObject.resolveRemoteRefs)(app, remotes).map((remote)=>remote.directory)
365
+ ...'shell' === app.kind ? (0, external_descriptors_cjs_namespaceObject.verticalApiApps)(remotes).map((remote)=>remote.directory) : (0, external_descriptors_cjs_namespaceObject.resolveRemoteRefs)(app, remotes).map((remote)=>remote.directory)
350
366
  ];
351
367
  return createPackageTsConfig(app.directory, {
352
- includeApi: (0, external_descriptors_cjs_namespaceObject.appHasEffectApi)(app),
368
+ includeApi: (0, external_descriptors_cjs_namespaceObject.appHasApi)(app),
353
369
  references
354
370
  });
355
371
  }
@@ -385,7 +401,7 @@ function createRootTsConfig(apps = []) {
385
401
  ]
386
402
  };
387
403
  }
388
- function createAppPackage(scope, app, packageSource, enableTailwind, remotes = []) {
404
+ function createAppPackage(scope, app, packageSource, enableTailwind, remotes = [], bridge) {
389
405
  const publicSurfaceBuildCommand = (0, external_public_surface_cjs_namespaceObject.createPublicSurfaceGenerationCommand)(app, 'dist');
390
406
  const publicSurfaceCloudflareBuildCommand = (0, external_public_surface_cjs_namespaceObject.createPublicSurfaceGenerationCommand)(app, 'dist');
391
407
  const publicSurfaceCloudflareOutputCommand = (0, external_public_surface_cjs_namespaceObject.createPublicSurfaceGenerationCommand)(app, 'cloudflare');
@@ -399,33 +415,33 @@ function createAppPackage(scope, app, packageSource, enableTailwind, remotes = [
399
415
  version: '0.1.0',
400
416
  scripts: {
401
417
  dev: 'modern dev',
402
- build: app.exposes ? `ULTRAMODERN_ZEPHYR=false modern build && ${publicSurfaceBuildCommand} && node ${(0, external_naming_cjs_namespaceObject.relativeRootFor)(app.directory)}/scripts/assert-mf-types.mjs` : `ULTRAMODERN_ZEPHYR=false modern build && ${publicSurfaceBuildCommand}`,
418
+ build: app.exposes ? `ULTRAMODERN_ZEPHYR=false modern build && ${publicSurfaceBuildCommand} && node ${(0, external_naming_cjs_namespaceObject.relativeRootFor)(app.directory)}/scripts/assert-mf-types.mts` : `ULTRAMODERN_ZEPHYR=false modern build && ${publicSurfaceBuildCommand}`,
403
419
  'cloudflare:build': `ULTRAMODERN_ZEPHYR=false MODERNJS_DEPLOY=cloudflare modern build && ${publicSurfaceCloudflareBuildCommand} && ULTRAMODERN_ZEPHYR=false MODERNJS_DEPLOY=cloudflare modern deploy && ${publicSurfaceCloudflareOutputCommand}`,
404
420
  'cloudflare:deploy': 'ULTRAMODERN_CLOUDFLARE_REQUIRE_PUBLIC_URLS=true pnpm run cloudflare:build && wrangler deploy --config .output/wrangler.json',
405
421
  'cloudflare:preview': 'pnpm run cloudflare:build && wrangler dev --config .output/wrangler.json',
406
- 'cloudflare:proof': `node ${(0, external_naming_cjs_namespaceObject.relativeRootFor)(app.directory)}/scripts/proof-cloudflare-version.mjs --app ${app.id}`,
422
+ 'cloudflare:proof': `node ${(0, external_naming_cjs_namespaceObject.relativeRootFor)(app.directory)}/scripts/proof-cloudflare-version.mts --app ${app.id}`,
407
423
  serve: 'modern serve',
408
- typecheck: createEffectTsgoTypecheckCommand(app.directory)
424
+ typecheck: createStrictTsgoTypecheckCommand(app.directory)
409
425
  },
410
426
  modernjs: {
411
427
  preset: 'presetUltramodern',
412
428
  role: 'shell' === app.kind ? 'shell' : 'module-federation-remote',
413
429
  appId: app.id,
414
430
  topology: `${(0, external_naming_cjs_namespaceObject.relativeRootFor)(app.directory)}/topology/reference-topology.json`,
415
- ...(0, external_descriptors_cjs_namespaceObject.appHasEffectApi)(app) ? {
416
- apiRuntime: 'effect-bff'
431
+ ...(0, external_descriptors_cjs_namespaceObject.appHasApi)(app) ? {
432
+ apiRuntime: 'effect'
417
433
  } : {}
418
434
  },
419
435
  'zephyr:dependencies': createZephyrDependencies(scope, app, remotes),
420
- dependencies: appDependencies(scope, packageSource, app, remotes),
436
+ dependencies: appDependencies(scope, packageSource, app, remotes, bridge),
421
437
  devDependencies: appDevDependencies(packageSource, enableTailwind)
422
438
  };
423
- if ((0, external_descriptors_cjs_namespaceObject.appHasEffectApi)(app)) Object.assign(packageExports, {
424
- './effect/client': `./src/effect/${app.effectApi.stem}-client.ts`,
425
- './shared/effect/api': './shared/effect/api.ts'
439
+ if ((0, external_descriptors_cjs_namespaceObject.appHasApi)(app)) Object.assign(packageExports, {
440
+ './api': './shared/api.ts',
441
+ './api/client': `./src/api/${app.api.stem}-client.ts`
426
442
  });
427
443
  else if ('shell' === app.kind) Object.assign(packageExports, {
428
- './effect/clients': './src/effect/vertical-clients.ts'
444
+ './api/clients': './src/api/vertical-clients.ts'
429
445
  });
430
446
  if (Object.keys(packageExports).length > 0) packageJson.exports = packageExports;
431
447
  return packageJson;
@@ -441,7 +457,7 @@ function createSharedPackage(scope, id, description) {
441
457
  '.': './src/index.ts'
442
458
  },
443
459
  scripts: {
444
- typecheck: createEffectTsgoTypecheckCommand(`packages/${id}`)
460
+ typecheck: createStrictTsgoTypecheckCommand(`packages/${id}`)
445
461
  },
446
462
  devDependencies: {
447
463
  '@effect/tsgo': external_versions_cjs_namespaceObject.EFFECT_TSGO_VERSION,
@@ -462,13 +478,13 @@ exports.appDevDependencies = __webpack_exports__.appDevDependencies;
462
478
  exports.createAppMfTypesTsConfig = __webpack_exports__.createAppMfTypesTsConfig;
463
479
  exports.createAppPackage = __webpack_exports__.createAppPackage;
464
480
  exports.createAppTsConfig = __webpack_exports__.createAppTsConfig;
465
- exports.createEffectTsgoTypecheckCommand = __webpack_exports__.createEffectTsgoTypecheckCommand;
466
481
  exports.createPackageTsConfig = __webpack_exports__.createPackageTsConfig;
467
482
  exports.createRootPackageJson = __webpack_exports__.createRootPackageJson;
468
483
  exports.createRootTsConfig = __webpack_exports__.createRootTsConfig;
469
484
  exports.createSharedContractsIndex = __webpack_exports__.createSharedContractsIndex;
470
485
  exports.createSharedPackage = __webpack_exports__.createSharedPackage;
471
486
  exports.createSharedPackageTsConfig = __webpack_exports__.createSharedPackageTsConfig;
487
+ exports.createStrictTsgoTypecheckCommand = __webpack_exports__.createStrictTsgoTypecheckCommand;
472
488
  exports.createTsConfigBase = __webpack_exports__.createTsConfigBase;
473
489
  exports.createZephyrDependencies = __webpack_exports__.createZephyrDependencies;
474
490
  exports.effectDiagnostics = __webpack_exports__.effectDiagnostics;
@@ -478,13 +494,13 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
478
494
  "createAppMfTypesTsConfig",
479
495
  "createAppPackage",
480
496
  "createAppTsConfig",
481
- "createEffectTsgoTypecheckCommand",
482
497
  "createPackageTsConfig",
483
498
  "createRootPackageJson",
484
499
  "createRootTsConfig",
485
500
  "createSharedContractsIndex",
486
501
  "createSharedPackage",
487
502
  "createSharedPackageTsConfig",
503
+ "createStrictTsgoTypecheckCommand",
488
504
  "createTsConfigBase",
489
505
  "createZephyrDependencies",
490
506
  "effectDiagnostics"
@@ -56,8 +56,8 @@ function createCloudflareProofRoute(app) {
56
56
  ssr: localizedPath ?? '/en',
57
57
  mfManifest: '/mf-manifest.json',
58
58
  locale: `/locales/en/${(0, external_descriptors_cjs_namespaceObject.appI18nNamespace)(app)}.json`,
59
- ...(0, external_descriptors_cjs_namespaceObject.appHasEffectApi)(app) ? {
60
- effectReadiness: `${(0, external_descriptors_cjs_namespaceObject.effectApiPrefix)(app)}/effect/${(0, external_descriptors_cjs_namespaceObject.effectApiStem)(app)}/readiness`
59
+ ...(0, external_descriptors_cjs_namespaceObject.appHasApi)(app) ? {
60
+ apiReadiness: `${(0, external_descriptors_cjs_namespaceObject.resolveApiPrefix)(app)}/${(0, external_descriptors_cjs_namespaceObject.resolveApiStem)(app)}/readiness`
61
61
  } : {}
62
62
  };
63
63
  }
@@ -148,7 +148,7 @@ const PUBLIC_WEBSITE_POLICY = {
148
148
  requireWebManifestWhenPresent: true
149
149
  },
150
150
  statusCodes: {
151
- notFoundRoute: '/__ultramodern-smoke-missing',
151
+ notFoundRoute: '/__ultramodern-smoke-missing/nope',
152
152
  unknownRouteStatus: 404
153
153
  },
154
154
  indexing: {
@@ -216,7 +216,7 @@ function createCloudflareDeployContract(scope, app) {
216
216
  security: createCloudflareSecurityContract(),
217
217
  qualityGates: createPublicWebsiteQualityGateContract(),
218
218
  evidence: {
219
- proofScript: "scripts/proof-cloudflare-version.mjs",
219
+ proofScript: "scripts/proof-cloudflare-version.mts",
220
220
  reportDefault: '.codex/reports/cloudflare-version-proof/public-url-proof.json'
221
221
  }
222
222
  };
@@ -30,16 +30,20 @@ __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
31
  addUltramodernVertical: ()=>external_add_vertical_cjs_namespaceObject.addUltramodernVertical,
32
32
  generateUltramodernWorkspace: ()=>external_write_workspace_cjs_namespaceObject.generateUltramodernWorkspace,
33
+ normalizeUltramodernBridgeConfig: ()=>external_bridge_config_cjs_namespaceObject.normalizeUltramodernBridgeConfig,
33
34
  planUltramodernVertical: ()=>external_add_vertical_cjs_namespaceObject.planUltramodernVertical
34
35
  });
35
36
  const external_add_vertical_cjs_namespaceObject = require("./add-vertical.cjs");
37
+ const external_bridge_config_cjs_namespaceObject = require("./bridge-config.cjs");
36
38
  const external_write_workspace_cjs_namespaceObject = require("./write-workspace.cjs");
37
39
  exports.addUltramodernVertical = __webpack_exports__.addUltramodernVertical;
38
40
  exports.generateUltramodernWorkspace = __webpack_exports__.generateUltramodernWorkspace;
41
+ exports.normalizeUltramodernBridgeConfig = __webpack_exports__.normalizeUltramodernBridgeConfig;
39
42
  exports.planUltramodernVertical = __webpack_exports__.planUltramodernVertical;
40
43
  for(var __rspack_i in __webpack_exports__)if (-1 === [
41
44
  "addUltramodernVertical",
42
45
  "generateUltramodernWorkspace",
46
+ "normalizeUltramodernBridgeConfig",
43
47
  "planUltramodernVertical"
44
48
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
45
49
  Object.defineProperty(exports, '__esModule', {
@@ -103,7 +103,7 @@ function createPublicSurfaceOutputFiles(app) {
103
103
  ];
104
104
  }
105
105
  function createPublicSurfaceGenerationCommand(app, target, requirePublicOrigin = false) {
106
- return `node ${(0, external_naming_cjs_namespaceObject.relativeRootFor)(app.directory)}/scripts/generate-public-surface-assets.mjs --app ${app.id} --target ${target}${requirePublicOrigin ? ' --require-public-origin' : ''}`;
106
+ return `node ${(0, external_naming_cjs_namespaceObject.relativeRootFor)(app.directory)}/scripts/generate-public-surface-assets.mts --app ${app.id} --target ${target}${requirePublicOrigin ? ' --require-public-origin' : ''}`;
107
107
  }
108
108
  function rewriteWorkspaceAssetsForApp(workspaceRoot, app) {
109
109
  for (const relativePath of publicSurfaceManagedSourceAssetPaths)external_node_fs_default().rmSync(external_node_path_default().join(workspaceRoot, app.directory, relativePath), {
@@ -119,7 +119,7 @@ function createPublicSurfaceContract(app) {
119
119
  generatedManifest: './src/routes/ultramodern-route-metadata',
120
120
  source: 'route-owned-public-routes',
121
121
  metadataExport: './src/routes/ultramodern-route-metadata',
122
- generator: "scripts/generate-public-surface-assets.mjs",
122
+ generator: "scripts/generate-public-surface-assets.mts",
123
123
  outputRoot: 'dist/public',
124
124
  cloudflareOutputRoot: '.output/public',
125
125
  privateRoutePolicy: 'omit-from-generated-public-surface',
@@ -28,6 +28,7 @@ var __webpack_require__ = {};
28
28
  var __webpack_exports__ = {};
29
29
  __webpack_require__.r(__webpack_exports__);
30
30
  const TANSTACK_ROUTER_VERSION = '1.170.16';
31
+ const TANSTACK_ROUTER_CORE_VERSION = '1.171.13';
31
32
  const MODULE_FEDERATION_VERSION = '2.6.0';
32
33
  const ZEPHYR_RSPACK_PLUGIN_VERSION = '1.1.1';
33
34
  const ZEPHYR_AGENT_VERSION = '1.1.1';
@@ -57,6 +58,7 @@ const RSTACK_AGENT_SKILLS_COMMIT = '61c948b42512e223bad44b83af4080eba48b2677';
57
58
  const MODULE_FEDERATION_AGENT_SKILLS_COMMIT = '07bb5b6c43ad457609e00c081b72d4c42508ec76';
58
59
  const ultramodernWorkspaceVersions = {
59
60
  tanstackRouter: TANSTACK_ROUTER_VERSION,
61
+ tanstackRouterCore: TANSTACK_ROUTER_CORE_VERSION,
60
62
  moduleFederation: MODULE_FEDERATION_VERSION,
61
63
  tailwind: TAILWIND_VERSION,
62
64
  tailwindPostcss: TAILWIND_POSTCSS_VERSION
@@ -80,6 +82,7 @@ __webpack_require__.d(__webpack_exports__, {}, {
80
82
  RSTACK_AGENT_SKILLS_COMMIT: RSTACK_AGENT_SKILLS_COMMIT,
81
83
  TAILWIND_POSTCSS_VERSION: TAILWIND_POSTCSS_VERSION,
82
84
  TAILWIND_VERSION: TAILWIND_VERSION,
85
+ TANSTACK_ROUTER_CORE_VERSION: TANSTACK_ROUTER_CORE_VERSION,
83
86
  TANSTACK_ROUTER_VERSION: TANSTACK_ROUTER_VERSION,
84
87
  TYPESCRIPT_NATIVE_PREVIEW_VERSION: TYPESCRIPT_NATIVE_PREVIEW_VERSION,
85
88
  TYPESCRIPT_STABLE_VERSION: TYPESCRIPT_STABLE_VERSION,
@@ -110,6 +113,7 @@ exports.REACT_VERSION = __webpack_exports__.REACT_VERSION;
110
113
  exports.RSTACK_AGENT_SKILLS_COMMIT = __webpack_exports__.RSTACK_AGENT_SKILLS_COMMIT;
111
114
  exports.TAILWIND_POSTCSS_VERSION = __webpack_exports__.TAILWIND_POSTCSS_VERSION;
112
115
  exports.TAILWIND_VERSION = __webpack_exports__.TAILWIND_VERSION;
116
+ exports.TANSTACK_ROUTER_CORE_VERSION = __webpack_exports__.TANSTACK_ROUTER_CORE_VERSION;
113
117
  exports.TANSTACK_ROUTER_VERSION = __webpack_exports__.TANSTACK_ROUTER_VERSION;
114
118
  exports.TYPESCRIPT_NATIVE_PREVIEW_VERSION = __webpack_exports__.TYPESCRIPT_NATIVE_PREVIEW_VERSION;
115
119
  exports.TYPESCRIPT_STABLE_VERSION = __webpack_exports__.TYPESCRIPT_STABLE_VERSION;
@@ -140,6 +144,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
140
144
  "RSTACK_AGENT_SKILLS_COMMIT",
141
145
  "TAILWIND_POSTCSS_VERSION",
142
146
  "TAILWIND_VERSION",
147
+ "TANSTACK_ROUTER_CORE_VERSION",
143
148
  "TANSTACK_ROUTER_VERSION",
144
149
  "TYPESCRIPT_NATIVE_PREVIEW_VERSION",
145
150
  "TYPESCRIPT_STABLE_VERSION",
@@ -1,5 +1,14 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
3
12
  (()=>{
4
13
  __webpack_require__.d = (exports1, getters, values)=>{
5
14
  var define = (defs, kind)=>{
@@ -28,41 +37,121 @@ var __webpack_require__ = {};
28
37
  var __webpack_exports__ = {};
29
38
  __webpack_require__.r(__webpack_exports__);
30
39
  __webpack_require__.d(__webpack_exports__, {
31
- createAssertMfTypesScript: ()=>createAssertMfTypesScript,
32
- createCloudflareProofHelperScript: ()=>createCloudflareProofHelperScript,
33
- createCloudflareVersionProofScript: ()=>createCloudflareVersionProofScript,
34
40
  createPerformanceReadinessConfigScript: ()=>createPerformanceReadinessConfigScript,
35
- createPerformanceReadinessScript: ()=>createPerformanceReadinessScript,
36
- createPublicSurfaceAssetsScript: ()=>createPublicSurfaceAssetsScript,
37
- createUltramodernTypecheckScript: ()=>createUltramodernTypecheckScript,
41
+ createWorkspaceApiBoundaryValidationScript: ()=>createWorkspaceApiBoundaryValidationScript,
38
42
  createWorkspaceI18nBoundaryValidationScript: ()=>createWorkspaceI18nBoundaryValidationScript,
39
43
  createWorkspaceValidationScript: ()=>createWorkspaceValidationScript,
40
44
  writeGeneratedWorkspaceScripts: ()=>writeGeneratedWorkspaceScripts
41
45
  });
46
+ const external_node_fs_namespaceObject = require("node:fs");
47
+ var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
48
+ const external_node_path_namespaceObject = require("node:path");
49
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
50
+ const external_api_cjs_namespaceObject = require("./api.cjs");
42
51
  const external_demo_components_cjs_namespaceObject = require("./demo-components.cjs");
43
52
  const external_descriptors_cjs_namespaceObject = require("./descriptors.cjs");
44
- const external_effect_api_cjs_namespaceObject = require("./effect-api.cjs");
45
53
  const external_fs_io_cjs_namespaceObject = require("./fs-io.cjs");
46
54
  const external_naming_cjs_namespaceObject = require("./naming.cjs");
47
55
  const external_policy_cjs_namespaceObject = require("./policy.cjs");
48
56
  const external_public_surface_cjs_namespaceObject = require("./public-surface.cjs");
49
57
  const external_routes_cjs_namespaceObject = require("./routes.cjs");
50
58
  const external_versions_cjs_namespaceObject = require("./versions.cjs");
51
- function createAssertMfTypesScript(remotes = []) {
52
- return (0, external_fs_io_cjs_namespaceObject.renderFileTemplate)("workspace-scripts/assert-mf-types.mjs", {
53
- defaultAppDirsJson: JSON.stringify(remotes.map((remote)=>remote.directory), null, 2)
59
+ function createToolWrapperScript(command, extraArgs = []) {
60
+ const commandJson = JSON.stringify(command);
61
+ const extraArgsJson = JSON.stringify(extraArgs);
62
+ return `#!/usr/bin/env node
63
+ import { spawnSync } from 'node:child_process';
64
+ import path from 'node:path';
65
+ import { fileURLToPath } from 'node:url';
66
+
67
+ const createBin = process.env.ULTRAMODERN_CREATE_BIN;
68
+ const forwardedArgs = process.argv.slice(2);
69
+ const workspaceRoot =
70
+ process.env.ULTRAMODERN_WORKSPACE_ROOT ??
71
+ path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
72
+ const ultramodernArgs = ['ultramodern', ${commandJson}, ...${extraArgsJson}, ...forwardedArgs];
73
+ const result = createBin
74
+ ? spawnSync(process.execPath, [createBin, ...ultramodernArgs], {
75
+ env: { ...process.env, ULTRAMODERN_WORKSPACE_ROOT: workspaceRoot },
76
+ stdio: 'inherit',
77
+ })
78
+ : spawnSync('modern-js-create', ultramodernArgs, {
79
+ env: { ...process.env, ULTRAMODERN_WORKSPACE_ROOT: workspaceRoot },
80
+ shell: process.platform === 'win32',
81
+ stdio: 'inherit',
54
82
  });
83
+
84
+ if (result.error) {
85
+ console.error(result.error.message);
86
+ process.exit(1);
87
+ }
88
+
89
+ process.exit(result.status ?? 1);
90
+ `;
91
+ }
92
+ function createSkillsToolWrapperScript() {
93
+ return `#!/usr/bin/env node
94
+ import { spawnSync } from 'node:child_process';
95
+ import path from 'node:path';
96
+ import { fileURLToPath } from 'node:url';
97
+
98
+ const createBin = process.env.ULTRAMODERN_CREATE_BIN;
99
+ const forwardedArgs = process.argv.slice(2);
100
+ const workspaceRoot =
101
+ process.env.ULTRAMODERN_WORKSPACE_ROOT ??
102
+ path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
103
+ const checkOnly = forwardedArgs.includes('--check');
104
+ const skillArgs = checkOnly
105
+ ? ['skills', 'check', ...forwardedArgs.filter(arg => arg !== '--check')]
106
+ : ['skills', 'install', ...forwardedArgs];
107
+ const ultramodernArgs = ['ultramodern', ...skillArgs];
108
+ const result = createBin
109
+ ? spawnSync(process.execPath, [createBin, ...ultramodernArgs], {
110
+ env: { ...process.env, ULTRAMODERN_WORKSPACE_ROOT: workspaceRoot },
111
+ stdio: 'inherit',
112
+ })
113
+ : spawnSync('modern-js-create', ultramodernArgs, {
114
+ env: { ...process.env, ULTRAMODERN_WORKSPACE_ROOT: workspaceRoot },
115
+ shell: process.platform === 'win32',
116
+ stdio: 'inherit',
117
+ });
118
+
119
+ if (result.error) {
120
+ console.error(result.error.message);
121
+ process.exit(1);
122
+ }
123
+
124
+ process.exit(result.status ?? 1);
125
+ `;
126
+ }
127
+ function removeLegacyWorkspaceScript(targetDir, relativePath) {
128
+ external_node_fs_default().rmSync(external_node_path_default().join(targetDir, relativePath), {
129
+ force: true
130
+ });
131
+ }
132
+ function writeWorkspaceOwnedMtsScript(targetDir, name, content) {
133
+ (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, `scripts/${name}.mts`, content);
134
+ removeLegacyWorkspaceScript(targetDir, `scripts/${name}.mjs`);
135
+ }
136
+ function migrateCopiedWorkspaceScriptToMts(targetDir, name) {
137
+ const legacyPath = external_node_path_default().join(targetDir, `scripts/${name}.mjs`);
138
+ const migratedPath = external_node_path_default().join(targetDir, `scripts/${name}.mts`);
139
+ if (!external_node_fs_default().existsSync(legacyPath)) return;
140
+ if (external_node_fs_default().existsSync(migratedPath)) return void external_node_fs_default().rmSync(legacyPath, {
141
+ force: true
142
+ });
143
+ external_node_fs_default().renameSync(legacyPath, migratedPath);
55
144
  }
56
145
  function createWorkspaceValidationScript(scope, enableTailwind, remotes = []) {
57
- const verticals = remotes.filter(external_descriptors_cjs_namespaceObject.appHasEffectApi).map((remote)=>({
146
+ const verticals = remotes.filter(external_descriptors_cjs_namespaceObject.appHasApi).map((remote)=>({
58
147
  id: remote.id,
59
148
  domain: remote.domain,
60
- stem: remote.effectApi.stem,
61
- group: (0, external_effect_api_cjs_namespaceObject.verticalEffectGroupName)(remote),
149
+ stem: remote.api.stem,
150
+ group: (0, external_api_cjs_namespaceObject.verticalApiGroupName)(remote),
62
151
  path: remote.directory,
63
152
  port: remote.port,
64
153
  mfName: remote.mfName,
65
- apiPrefix: remote.effectApi.prefix,
154
+ apiPrefix: remote.api.prefix,
66
155
  tailwindPrefix: (0, external_naming_cjs_namespaceObject.tailwindPrefixForApp)(remote),
67
156
  zephyrAlias: (0, external_descriptors_cjs_namespaceObject.remoteDependencyAlias)(remote),
68
157
  packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, remote.packageSuffix),
@@ -103,55 +192,35 @@ function createWorkspaceValidationScript(scope, enableTailwind, remotes = []) {
103
192
  });
104
193
  }
105
194
  function createWorkspaceI18nBoundaryValidationScript() {
106
- return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/check-ultramodern-i18n-boundaries.mjs");
195
+ return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/check-ultramodern-i18n-boundaries.mts");
107
196
  }
108
- function createPublicSurfaceAssetsScript() {
109
- return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/generate-public-surface-assets.mjs");
110
- }
111
- function createCloudflareProofHelperScript() {
112
- return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/ultramodern-cloudflare-proof.mjs");
113
- }
114
- function createCloudflareVersionProofScript() {
115
- return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/proof-cloudflare-version.mjs");
197
+ function createWorkspaceApiBoundaryValidationScript() {
198
+ return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/check-ultramodern-api-boundaries.mts");
116
199
  }
117
200
  function createPerformanceReadinessConfigScript() {
118
201
  return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/ultramodern-performance-readiness.config.mjs");
119
202
  }
120
- function createPerformanceReadinessScript() {
121
- return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/ultramodern-performance-readiness.mjs");
122
- }
123
- function createUltramodernTypecheckScript() {
124
- return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/ultramodern-typecheck.mjs");
125
- }
126
- function writeGeneratedWorkspaceScripts(targetDir, scope, enableTailwind, remotes = []) {
127
- (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, "scripts/assert-mf-types.mjs", createAssertMfTypesScript(remotes));
128
- (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, "scripts/validate-ultramodern-workspace.mjs", createWorkspaceValidationScript(scope, enableTailwind, remotes));
129
- (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, "scripts/check-ultramodern-i18n-boundaries.mjs", createWorkspaceI18nBoundaryValidationScript());
130
- (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, "scripts/generate-public-surface-assets.mjs", createPublicSurfaceAssetsScript());
131
- (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, "scripts/ultramodern-cloudflare-proof.mjs", createCloudflareProofHelperScript());
132
- (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, "scripts/proof-cloudflare-version.mjs", createCloudflareVersionProofScript());
203
+ function writeGeneratedWorkspaceScripts(targetDir, _scope, _enableTailwind, _remotes = []) {
204
+ writeWorkspaceOwnedMtsScript(targetDir, 'assert-mf-types', createToolWrapperScript('mf-types'));
205
+ writeWorkspaceOwnedMtsScript(targetDir, 'validate-ultramodern-workspace', createToolWrapperScript('validate'));
206
+ writeWorkspaceOwnedMtsScript(targetDir, 'check-ultramodern-i18n-boundaries', createWorkspaceI18nBoundaryValidationScript());
207
+ writeWorkspaceOwnedMtsScript(targetDir, 'check-ultramodern-api-boundaries', createWorkspaceApiBoundaryValidationScript());
208
+ writeWorkspaceOwnedMtsScript(targetDir, 'generate-public-surface-assets', createToolWrapperScript('public-surface'));
209
+ writeWorkspaceOwnedMtsScript(targetDir, 'proof-cloudflare-version', createToolWrapperScript('cloudflare-proof'));
133
210
  (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, "scripts/ultramodern-performance-readiness.config.mjs", createPerformanceReadinessConfigScript());
134
- (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, "scripts/ultramodern-performance-readiness.mjs", createPerformanceReadinessScript());
135
- (0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, "scripts/ultramodern-typecheck.mjs", createUltramodernTypecheckScript());
211
+ writeWorkspaceOwnedMtsScript(targetDir, 'ultramodern-performance-readiness', createToolWrapperScript('performance-readiness'));
212
+ writeWorkspaceOwnedMtsScript(targetDir, 'ultramodern-typecheck', createToolWrapperScript('typecheck'));
213
+ writeWorkspaceOwnedMtsScript(targetDir, 'bootstrap-agent-skills', createSkillsToolWrapperScript());
214
+ migrateCopiedWorkspaceScriptToMts(targetDir, 'setup-agent-reference-repos');
136
215
  }
137
- exports.createAssertMfTypesScript = __webpack_exports__.createAssertMfTypesScript;
138
- exports.createCloudflareProofHelperScript = __webpack_exports__.createCloudflareProofHelperScript;
139
- exports.createCloudflareVersionProofScript = __webpack_exports__.createCloudflareVersionProofScript;
140
216
  exports.createPerformanceReadinessConfigScript = __webpack_exports__.createPerformanceReadinessConfigScript;
141
- exports.createPerformanceReadinessScript = __webpack_exports__.createPerformanceReadinessScript;
142
- exports.createPublicSurfaceAssetsScript = __webpack_exports__.createPublicSurfaceAssetsScript;
143
- exports.createUltramodernTypecheckScript = __webpack_exports__.createUltramodernTypecheckScript;
217
+ exports.createWorkspaceApiBoundaryValidationScript = __webpack_exports__.createWorkspaceApiBoundaryValidationScript;
144
218
  exports.createWorkspaceI18nBoundaryValidationScript = __webpack_exports__.createWorkspaceI18nBoundaryValidationScript;
145
219
  exports.createWorkspaceValidationScript = __webpack_exports__.createWorkspaceValidationScript;
146
220
  exports.writeGeneratedWorkspaceScripts = __webpack_exports__.writeGeneratedWorkspaceScripts;
147
221
  for(var __rspack_i in __webpack_exports__)if (-1 === [
148
- "createAssertMfTypesScript",
149
- "createCloudflareProofHelperScript",
150
- "createCloudflareVersionProofScript",
151
222
  "createPerformanceReadinessConfigScript",
152
- "createPerformanceReadinessScript",
153
- "createPublicSurfaceAssetsScript",
154
- "createUltramodernTypecheckScript",
223
+ "createWorkspaceApiBoundaryValidationScript",
155
224
  "createWorkspaceI18nBoundaryValidationScript",
156
225
  "createWorkspaceValidationScript",
157
226
  "writeGeneratedWorkspaceScripts"