@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.
- package/README.md +25 -23
- package/dist/cjs/index.cjs +37 -4
- package/dist/cjs/locale/en.cjs +12 -2
- package/dist/cjs/locale/zh.cjs +12 -2
- package/dist/cjs/ultramodern-tooling/commands.cjs +185 -0
- package/dist/cjs/ultramodern-tooling/config.cjs +172 -0
- package/dist/cjs/ultramodern-workspace/add-vertical.cjs +87 -75
- package/dist/cjs/ultramodern-workspace/{effect-api.cjs → api.cjs} +207 -208
- package/dist/cjs/ultramodern-workspace/bridge-config.cjs +327 -0
- package/dist/cjs/ultramodern-workspace/codesmith.cjs +1 -0
- package/dist/cjs/ultramodern-workspace/contracts.cjs +127 -657
- package/dist/cjs/ultramodern-workspace/demo-components.cjs +12 -12
- package/dist/cjs/ultramodern-workspace/descriptors.cjs +25 -25
- package/dist/cjs/ultramodern-workspace/fs-io.cjs +117 -0
- package/dist/cjs/ultramodern-workspace/generation-result.cjs +5 -5
- package/dist/cjs/ultramodern-workspace/index.cjs +4 -0
- package/dist/cjs/ultramodern-workspace/mf-validation.cjs +571 -0
- package/dist/cjs/ultramodern-workspace/module-federation.cjs +33 -18
- package/dist/cjs/ultramodern-workspace/overlays.cjs +2 -2
- package/dist/cjs/ultramodern-workspace/package-json.cjs +57 -41
- package/dist/cjs/ultramodern-workspace/policy.cjs +4 -4
- package/dist/cjs/ultramodern-workspace/public-api.cjs +4 -0
- package/dist/cjs/ultramodern-workspace/public-surface.cjs +2 -2
- package/dist/cjs/ultramodern-workspace/versions.cjs +5 -0
- package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +119 -50
- package/dist/cjs/ultramodern-workspace/write-workspace.cjs +62 -21
- package/dist/esm/index.js +37 -4
- package/dist/esm/locale/en.js +12 -2
- package/dist/esm/locale/zh.js +12 -2
- package/dist/esm/ultramodern-tooling/commands.js +132 -0
- package/dist/esm/ultramodern-tooling/config.js +120 -0
- package/dist/esm/ultramodern-workspace/add-vertical.js +88 -79
- package/dist/esm/ultramodern-workspace/{effect-api.js → api.js} +146 -147
- package/dist/esm/ultramodern-workspace/bridge-config.js +270 -0
- package/dist/esm/ultramodern-workspace/codesmith.js +1 -0
- package/dist/esm/ultramodern-workspace/contracts.js +129 -611
- package/dist/esm/ultramodern-workspace/demo-components.js +13 -13
- package/dist/esm/ultramodern-workspace/descriptors.js +11 -11
- package/dist/esm/ultramodern-workspace/fs-io.js +116 -2
- package/dist/esm/ultramodern-workspace/generation-result.js +6 -6
- package/dist/esm/ultramodern-workspace/index.js +1 -0
- package/dist/esm/ultramodern-workspace/mf-validation.js +516 -0
- package/dist/esm/ultramodern-workspace/module-federation.js +34 -19
- package/dist/esm/ultramodern-workspace/overlays.js +2 -2
- package/dist/esm/ultramodern-workspace/package-json.js +56 -40
- package/dist/esm/ultramodern-workspace/policy.js +5 -5
- package/dist/esm/ultramodern-workspace/public-api.js +1 -0
- package/dist/esm/ultramodern-workspace/public-surface.js +2 -2
- package/dist/esm/ultramodern-workspace/versions.js +3 -1
- package/dist/esm/ultramodern-workspace/workspace-scripts.js +107 -34
- package/dist/esm/ultramodern-workspace/write-workspace.js +64 -26
- package/dist/esm-node/index.js +37 -4
- package/dist/esm-node/locale/en.js +12 -2
- package/dist/esm-node/locale/zh.js +12 -2
- package/dist/esm-node/ultramodern-tooling/commands.js +133 -0
- package/dist/esm-node/ultramodern-tooling/config.js +121 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical.js +88 -79
- package/dist/esm-node/ultramodern-workspace/{effect-api.js → api.js} +146 -147
- package/dist/esm-node/ultramodern-workspace/bridge-config.js +271 -0
- package/dist/esm-node/ultramodern-workspace/codesmith.js +1 -0
- package/dist/esm-node/ultramodern-workspace/contracts.js +129 -611
- package/dist/esm-node/ultramodern-workspace/demo-components.js +13 -13
- package/dist/esm-node/ultramodern-workspace/descriptors.js +11 -11
- package/dist/esm-node/ultramodern-workspace/fs-io.js +116 -2
- package/dist/esm-node/ultramodern-workspace/generation-result.js +6 -6
- package/dist/esm-node/ultramodern-workspace/index.js +1 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation.js +517 -0
- package/dist/esm-node/ultramodern-workspace/module-federation.js +34 -19
- package/dist/esm-node/ultramodern-workspace/overlays.js +2 -2
- package/dist/esm-node/ultramodern-workspace/package-json.js +56 -40
- package/dist/esm-node/ultramodern-workspace/policy.js +5 -5
- package/dist/esm-node/ultramodern-workspace/public-api.js +1 -0
- package/dist/esm-node/ultramodern-workspace/public-surface.js +2 -2
- package/dist/esm-node/ultramodern-workspace/versions.js +3 -1
- package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +107 -34
- package/dist/esm-node/ultramodern-workspace/write-workspace.js +64 -26
- package/dist/types/locale/en.d.ts +10 -0
- package/dist/types/locale/index.d.ts +20 -0
- package/dist/types/locale/zh.d.ts +10 -0
- package/dist/types/ultramodern-tooling/commands.d.ts +1 -0
- package/dist/types/ultramodern-tooling/config.d.ts +43 -0
- package/dist/types/ultramodern-workspace/add-vertical.d.ts +5 -2
- package/dist/types/ultramodern-workspace/api.d.ts +73 -0
- package/dist/types/ultramodern-workspace/bridge-config.d.ts +64 -0
- package/dist/types/ultramodern-workspace/codesmith.d.ts +1 -0
- package/dist/types/ultramodern-workspace/contracts.d.ts +2 -17
- package/dist/types/ultramodern-workspace/descriptors.d.ts +10 -10
- package/dist/types/ultramodern-workspace/fs-io.d.ts +1 -0
- package/dist/types/ultramodern-workspace/index.d.ts +2 -0
- package/dist/types/ultramodern-workspace/mf-validation.d.ts +27 -0
- package/dist/types/ultramodern-workspace/package-json.d.ts +5 -4
- package/dist/types/ultramodern-workspace/public-api.d.ts +2 -0
- package/dist/types/ultramodern-workspace/types.d.ts +9 -7
- package/dist/types/ultramodern-workspace/versions.d.ts +2 -0
- package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +2 -7
- package/dist/types/ultramodern-workspace/write-workspace.d.ts +4 -2
- package/package.json +5 -3
- package/template-workspace/{.agents → .codex}/skills-lock.json +12 -12
- package/template-workspace/.github/workflows/ultramodern-workspace-gates.yml.handlebars +2 -0
- package/template-workspace/.gitignore.handlebars +3 -0
- package/template-workspace/AGENTS.md.handlebars +11 -5
- package/template-workspace/README.md.handlebars +15 -12
- package/template-workspace/oxfmt.config.ts +1 -0
- package/template-workspace/oxlint.config.ts +1 -0
- package/template-workspace/patches/@tanstack__router-core@1.171.13.patch +51 -0
- package/template-workspace/pnpm-workspace.yaml.handlebars +4 -0
- package/template-workspace/scripts/bootstrap-agent-skills.mjs +77 -67
- package/templates/workspace-scripts/assert-mf-types.mjs.handlebars +51 -8
- package/templates/workspace-scripts/check-ultramodern-api-boundaries.mts +344 -0
- package/templates/workspace-scripts/{check-ultramodern-i18n-boundaries.mjs → check-ultramodern-i18n-boundaries.mts} +1 -1
- package/templates/workspace-scripts/generate-public-surface-assets.mjs +246 -9
- package/templates/workspace-scripts/proof-cloudflare-version.mjs +277 -9
- package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +35 -10
- package/templates/workspace-scripts/ultramodern-performance-readiness.mjs +165 -2
- package/templates/workspace-scripts/ultramodern-typecheck.mjs +4 -2
- package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +840 -84
- package/dist/types/ultramodern-workspace/effect-api.d.ts +0 -73
- /package/template-workspace/{.agents → .codex}/rstackjs-agent-skills-LICENSE +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rsbuild-best-practices/SKILL.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/SKILL.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/command-map.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/common-analysis-patterns.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/install-rsdoctor-common.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/install-rsdoctor-rspack.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/install-rsdoctor-webpack.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/install-rsdoctor.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rsdoctor-analysis/references/rsdoctor-data-types.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rslib-best-practices/SKILL.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rslib-modern-package/SKILL.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rspack-best-practices/SKILL.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rspack-tracing/SKILL.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rspack-tracing/references/bottlenecks.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rspack-tracing/references/tracing-guide.md +0 -0
- /package/template-workspace/{.agents → .codex}/skills/rspack-tracing/scripts/analyze_trace.js +0 -0
- /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
|
-
|
|
109
|
-
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
203
|
-
'skills:install': "node ./scripts/bootstrap-agent-skills.
|
|
204
|
-
'skills:check': "node ./scripts/bootstrap-agent-skills.
|
|
205
|
-
'agents:refs:install': "node ./scripts/setup-agent-reference-repos.
|
|
206
|
-
'agents:refs:check': "node ./scripts/setup-agent-reference-repos.
|
|
207
|
-
'mf:types': "node ./scripts/assert-mf-types.
|
|
208
|
-
'performance:readiness': "node ./scripts/ultramodern-performance-readiness.
|
|
209
|
-
'contract:check': "node ./scripts/validate-ultramodern-workspace.
|
|
210
|
-
'
|
|
211
|
-
|
|
212
|
-
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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:
|
|
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.
|
|
416
|
-
apiRuntime: 'effect
|
|
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.
|
|
424
|
-
'./
|
|
425
|
-
'./
|
|
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
|
-
'./
|
|
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:
|
|
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.
|
|
60
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
|
52
|
-
|
|
53
|
-
|
|
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.
|
|
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.
|
|
61
|
-
group: (0,
|
|
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.
|
|
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.
|
|
195
|
+
return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/check-ultramodern-i18n-boundaries.mts");
|
|
107
196
|
}
|
|
108
|
-
function
|
|
109
|
-
return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)("workspace-scripts/
|
|
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
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
-
(
|
|
135
|
-
(
|
|
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.
|
|
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
|
-
"
|
|
153
|
-
"createPublicSurfaceAssetsScript",
|
|
154
|
-
"createUltramodernTypecheckScript",
|
|
223
|
+
"createWorkspaceApiBoundaryValidationScript",
|
|
155
224
|
"createWorkspaceI18nBoundaryValidationScript",
|
|
156
225
|
"createWorkspaceValidationScript",
|
|
157
226
|
"writeGeneratedWorkspaceScripts"
|