@bleedingdev/modern-js-ultramodern-create 3.9.0-ultramodern.16 → 3.9.0-ultramodern.18
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 +14 -7
- package/dist/cjs/ultramodern-tooling/commands/routes-generate-app.cjs +13 -6
- package/dist/cjs/ultramodern-tooling/commands/routes-generate.cjs +12 -5
- package/dist/cjs/ultramodern-workspace/add-vertical/shell-files.cjs +1 -1
- package/dist/cjs/ultramodern-workspace/add-vertical/workspace-state.cjs +2 -2
- package/dist/cjs/ultramodern-workspace/demo-components.cjs +2 -4
- package/dist/cjs/ultramodern-workspace/fs-io.cjs +2 -1
- package/dist/cjs/ultramodern-workspace/module-federation/config.cjs +9 -6
- package/dist/cjs/ultramodern-workspace/package-json.cjs +10 -9
- package/dist/cjs/ultramodern-workspace/patch-inventory.cjs +3 -12
- package/dist/cjs/ultramodern-workspace/policy.cjs +1 -55
- package/dist/cjs/ultramodern-workspace/public-surface.cjs +1 -1
- package/dist/cjs/ultramodern-workspace/routes.cjs +2 -15
- package/dist/cjs/ultramodern-workspace/validation/workspace.cjs +2 -1
- package/dist/cjs/ultramodern-workspace/versions.cjs +58 -0
- package/dist/cjs/ultramodern-workspace/workspace-script-plan.cjs +10 -5
- package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +0 -4
- package/dist/cjs/ultramodern-workspace/write-workspace.cjs +9 -2
- package/dist/cjs/ultramodern-workspace/zerops.cjs +2 -0
- package/dist/esm/ultramodern-tooling/commands/routes-generate-app.js +13 -6
- package/dist/esm/ultramodern-tooling/commands/routes-generate.js +12 -5
- package/dist/esm/ultramodern-workspace/add-vertical/shell-files.js +1 -1
- package/dist/esm/ultramodern-workspace/add-vertical/workspace-state.js +2 -2
- package/dist/esm/ultramodern-workspace/demo-components.js +2 -4
- package/dist/esm/ultramodern-workspace/fs-io.js +2 -1
- package/dist/esm/ultramodern-workspace/module-federation/config.js +9 -6
- package/dist/esm/ultramodern-workspace/package-json.js +3 -2
- package/dist/esm/ultramodern-workspace/patch-inventory.js +3 -12
- package/dist/esm/ultramodern-workspace/policy.js +2 -53
- package/dist/esm/ultramodern-workspace/public-surface.js +1 -1
- package/dist/esm/ultramodern-workspace/routes.js +2 -15
- package/dist/esm/ultramodern-workspace/validation/workspace.js +2 -1
- package/dist/esm/ultramodern-workspace/versions.js +53 -1
- package/dist/esm/ultramodern-workspace/workspace-script-plan.js +11 -6
- package/dist/esm/ultramodern-workspace/workspace-scripts.js +0 -4
- package/dist/esm/ultramodern-workspace/write-workspace.js +10 -3
- package/dist/esm/ultramodern-workspace/zerops.js +2 -0
- package/dist/esm-node/ultramodern-tooling/commands/routes-generate-app.js +13 -6
- package/dist/esm-node/ultramodern-tooling/commands/routes-generate.js +12 -5
- package/dist/esm-node/ultramodern-workspace/add-vertical/shell-files.js +1 -1
- package/dist/esm-node/ultramodern-workspace/add-vertical/workspace-state.js +2 -2
- package/dist/esm-node/ultramodern-workspace/demo-components.js +2 -4
- package/dist/esm-node/ultramodern-workspace/fs-io.js +2 -1
- package/dist/esm-node/ultramodern-workspace/module-federation/config.js +9 -6
- package/dist/esm-node/ultramodern-workspace/package-json.js +3 -2
- package/dist/esm-node/ultramodern-workspace/patch-inventory.js +3 -12
- package/dist/esm-node/ultramodern-workspace/policy.js +2 -53
- package/dist/esm-node/ultramodern-workspace/public-surface.js +1 -1
- package/dist/esm-node/ultramodern-workspace/routes.js +2 -15
- package/dist/esm-node/ultramodern-workspace/validation/workspace.js +2 -1
- package/dist/esm-node/ultramodern-workspace/versions.js +53 -1
- package/dist/esm-node/ultramodern-workspace/workspace-script-plan.js +11 -6
- package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +0 -4
- package/dist/esm-node/ultramodern-workspace/write-workspace.js +10 -3
- package/dist/esm-node/ultramodern-workspace/zerops.js +2 -0
- package/dist/types/ultramodern-workspace/add-vertical/shell-files.d.ts +1 -1
- package/dist/types/ultramodern-workspace/add-vertical/workspace-state.d.ts +2 -2
- package/dist/types/ultramodern-workspace/policy.d.ts +1 -52
- package/dist/types/ultramodern-workspace/routes.d.ts +6 -1
- package/dist/types/ultramodern-workspace/versions.d.ts +52 -0
- package/package.json +10 -11
- package/release-cohort.json +48 -48
- package/template-workspace/.codex/skills/rspack-tracing/scripts/analyze_trace.js +1 -1
- package/template-workspace/README.md.handlebars +4 -3
- package/template-workspace/oxfmt.config.ts +1 -0
- package/templates/workspace/apps/modern.config.shared-module-federation.ts.handlebars +10 -0
- package/templates/workspace/apps/shared/src/routes/ultramodern-route-metadata.ts.handlebars +30 -7
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.helpers.tsx.handlebars +3 -5
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.imports.tsx.handlebars +1 -1
- package/templates/workspace-scripts/generate-node-backend-federation.mjs +28 -27
- package/templates/workspace-scripts/generate-public-surface-assets.mjs +6 -39
- package/templates/workspace-scripts/proof-node-backend-federation.mjs +1 -1
- package/templates/workspace-scripts/check-ultramodern-i18n-boundaries.mts +0 -9
package/README.md
CHANGED
|
@@ -195,9 +195,15 @@ for local monorepo development. After installation, run `pnpm contract:check`,
|
|
|
195
195
|
which invokes the installed CLI directly. The installed generator owns its
|
|
196
196
|
release-integrity metadata.
|
|
197
197
|
|
|
198
|
-
Normal installs retain the generated release-age and trust
|
|
199
|
-
|
|
200
|
-
|
|
198
|
+
Normal installs retain the generated strict 24-hour release-age and trust
|
|
199
|
+
policy. The one exception is `minimumReleaseAgeExclude`: it lists the exact
|
|
200
|
+
`package@version` of every package in the cohort the create package ships, so a
|
|
201
|
+
workspace created on the day that cohort is published can install it. Every
|
|
202
|
+
other dependency still waits 24 hours, including a cohort selected with
|
|
203
|
+
`--ultramodern-package-version` that differs from the create package's own; to
|
|
204
|
+
install a fresh cohort on publish day, run that release's create package.
|
|
205
|
+
Release acceptance adds exact, temporary exceptions for the sidecars under test
|
|
206
|
+
on the command line.
|
|
201
207
|
|
|
202
208
|
## CodeSmith Adapter And Overlays
|
|
203
209
|
|
|
@@ -300,10 +306,11 @@ Federation manifests and vertical APIs through generated Effect clients
|
|
|
300
306
|
exported by the vertical packages.
|
|
301
307
|
|
|
302
308
|
Route metadata is route-owned and colocated in
|
|
303
|
-
`src/routes/**/route.meta.ts
|
|
304
|
-
`
|
|
305
|
-
|
|
306
|
-
|
|
309
|
+
`src/routes/**/route.meta.ts`; each file exports `routeMeta`.
|
|
310
|
+
`ultramodern-create ultramodern routes-generate` (run before every app `dev`
|
|
311
|
+
and `build`) regenerates `src/routes/ultramodern-route-metadata.ts` as a
|
|
312
|
+
formatted route manifest for Modern.js config, i18n, public head, and public
|
|
313
|
+
surface contracts; authors should not hand-maintain it. Locale JSON is served from
|
|
307
314
|
`/locales/{{lng}}/{{ns}}.json`; Czech and English routes are generated from the
|
|
308
315
|
route owner, not from shell rewrites.
|
|
309
316
|
|
|
@@ -30,16 +30,23 @@ const external_node_path_namespaceObject = require("node:path");
|
|
|
30
30
|
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
31
31
|
const external_node_url_namespaceObject = require("node:url");
|
|
32
32
|
async function main() {
|
|
33
|
-
const [appDirectory, label] = process.argv.slice(2);
|
|
33
|
+
const [appDirectory, label, mode] = process.argv.slice(2);
|
|
34
34
|
try {
|
|
35
35
|
if (!appDirectory || !label) throw new Error('Route generation requires an app directory and label.');
|
|
36
36
|
const appRequire = (0, external_node_module_namespaceObject.createRequire)(external_node_path_default().join(appDirectory, 'package.json'));
|
|
37
37
|
const pluginUrl = (0, external_node_url_namespaceObject.pathToFileURL)(appRequire.resolve('@modern-js/plugin-tanstack')).href;
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
const plugin = await import(pluginUrl);
|
|
39
|
+
if ('manifest' === mode) {
|
|
40
|
+
await plugin.writeRouteMetadataManifest({
|
|
41
|
+
appDirectory
|
|
42
|
+
});
|
|
43
|
+
console.log(`[ultramodern] Route metadata manifest generated: ${label}`);
|
|
44
|
+
} else {
|
|
45
|
+
await plugin.generateTanstackRouteArtifacts({
|
|
46
|
+
appDirectory
|
|
47
|
+
});
|
|
48
|
+
console.log(`[ultramodern] TanStack route artifacts generated: ${label}`);
|
|
49
|
+
}
|
|
43
50
|
} catch (error) {
|
|
44
51
|
process.exitCode = 1;
|
|
45
52
|
console.error(`[ultramodern] TanStack route generation failed: ${label}`);
|
|
@@ -56,20 +56,27 @@ const resolveRoutesGenerateTargets = (args, context)=>{
|
|
|
56
56
|
function runRoutesGenerate(args, context) {
|
|
57
57
|
if (args.includes('--help') || args.includes('-h')) {
|
|
58
58
|
process.stdout.write(`Usage:
|
|
59
|
-
ultramodern-create ultramodern routes-generate [--app <id>]
|
|
59
|
+
ultramodern-create ultramodern routes-generate [--app <id>] [--manifest-only]
|
|
60
60
|
|
|
61
|
-
Regenerates
|
|
62
|
-
|
|
63
|
-
generated
|
|
61
|
+
Regenerates src/routes/ultramodern-route-metadata.ts from the app's
|
|
62
|
+
route.meta.ts files and the TanStack route artifacts (router.gen.ts,
|
|
63
|
+
register.gen.d.ts) for generated UltraModern apps without running dev or build.
|
|
64
|
+
Without --app, every generated workspace app is regenerated.
|
|
65
|
+
|
|
66
|
+
--manifest-only writes only the route metadata manifest. It never loads the
|
|
67
|
+
app config, so app dev and build scripts run it before \`modern dev\` and
|
|
68
|
+
\`modern build\`, which regenerate the router artifacts themselves.
|
|
64
69
|
`);
|
|
65
70
|
return 0;
|
|
66
71
|
}
|
|
67
72
|
const targets = resolveRoutesGenerateTargets(args, context);
|
|
73
|
+
const mode = args.includes('--manifest-only') ? 'manifest' : 'all';
|
|
68
74
|
let failed = false;
|
|
69
75
|
for (const target of targets){
|
|
70
76
|
const status = (0, external_context_cjs_namespaceObject.spawnNodeScript)('dist/esm-node/ultramodern-tooling/commands/routes-generate-app.js', [
|
|
71
77
|
target.appDirectory,
|
|
72
|
-
target.label
|
|
78
|
+
target.label,
|
|
79
|
+
mode
|
|
73
80
|
], context, {
|
|
74
81
|
cwd: target.appDirectory
|
|
75
82
|
});
|
|
@@ -54,7 +54,7 @@ const external_module_federation_cjs_namespaceObject = require("../module-federa
|
|
|
54
54
|
const external_package_json_cjs_namespaceObject = require("../package-json.cjs");
|
|
55
55
|
const external_public_surface_cjs_namespaceObject = require("../public-surface.cjs");
|
|
56
56
|
const external_workspace_artifact_ownership_cjs_namespaceObject = require("../workspace-artifact-ownership.cjs");
|
|
57
|
-
function updateRootWorkspaceScripts(workspaceRoot, scope, packageSource, remotes, bridge, additionalShells = [], previousRemotes = remotes,
|
|
57
|
+
function updateRootWorkspaceScripts(workspaceRoot, scope, packageSource, remotes, bridge, additionalShells = [], previousRemotes = remotes, _primaryShell = external_descriptors_cjs_namespaceObject.shellApp, previousAdditionalShells = additionalShells) {
|
|
58
58
|
const packagePath = external_node_path_default().join(workspaceRoot, 'package.json');
|
|
59
59
|
const rootPackage = (0, external_fs_io_cjs_namespaceObject.readJsonFile)(packagePath);
|
|
60
60
|
const generatedRootPackage = (0, external_package_json_cjs_namespaceObject.createRootPackageJson)(scope, packageSource, remotes, bridge, additionalShells);
|
|
@@ -70,14 +70,14 @@ function assertValidVerticalName(name) {
|
|
|
70
70
|
if (!normalized || normalized !== name) throw new Error(`Invalid Vertical name "${name}". Use lowercase kebab-case.`);
|
|
71
71
|
return normalized;
|
|
72
72
|
}
|
|
73
|
-
function configuredDevelopmentPorts(ports,
|
|
73
|
+
function configuredDevelopmentPorts(ports, _additionalShells = []) {
|
|
74
74
|
return [
|
|
75
75
|
...new Set([
|
|
76
76
|
...Object.values(ports)
|
|
77
77
|
].filter((value)=>'number' == typeof value && Number.isFinite(value)))
|
|
78
78
|
];
|
|
79
79
|
}
|
|
80
|
-
function assertGlobalPortUniqueness(ports,
|
|
80
|
+
function assertGlobalPortUniqueness(ports, _additionalShells = []) {
|
|
81
81
|
const owners = new Map();
|
|
82
82
|
for (const [id, value] of Object.entries(ports)){
|
|
83
83
|
if ('number' != typeof value || !Number.isFinite(value)) continue;
|
|
@@ -152,19 +152,17 @@ function createFederatedComponentsRegistry(scope, host, remotes, worker = false)
|
|
|
152
152
|
{null}
|
|
153
153
|
</DistributedSsrBoundary>
|
|
154
154
|
),` : ` ${entry.exportName}: createDistributedSsrComponent<${entry.exportName}Props>({
|
|
155
|
-
createComponent:
|
|
155
|
+
createComponent: options =>
|
|
156
156
|
createLazyComponent<
|
|
157
157
|
RemoteComponentModule<${entry.exportName}Props>,
|
|
158
158
|
'default'
|
|
159
159
|
>({
|
|
160
|
-
|
|
161
|
-
fallback,
|
|
160
|
+
...options,
|
|
162
161
|
instance: getInstance(),
|
|
163
162
|
loader: () =>
|
|
164
163
|
import('${entry.remoteAlias}') as Promise<
|
|
165
164
|
RemoteComponentModule<${entry.exportName}Props>
|
|
166
165
|
>,
|
|
167
|
-
loading: null,
|
|
168
166
|
}),
|
|
169
167
|
expose: '${entry.expose}',
|
|
170
168
|
fallback,
|
|
@@ -47,7 +47,7 @@ function createAppModernConfig(scope, app, remotes = [], enableTailwind = true,
|
|
|
47
47
|
const deliveryUnit = (0, external_delivery_unit_cjs_namespaceObject.createDeliveryUnitRecord)(scope, app);
|
|
48
48
|
const emitsUi = (0, external_descriptors_cjs_namespaceObject.appEmitsBrowserUi)(app);
|
|
49
49
|
const bffImport = (0, external_descriptors_cjs_namespaceObject.appHasApi)(app) ? "import { bffPlugin } from '@modern-js/plugin-bff-build-extensions';\n" : '';
|
|
50
|
-
const uiImports = emitsUi ? `import { getBuildConfigEnvironment
|
|
50
|
+
const uiImports = emitsUi ? `import { getBuildConfigEnvironment } from '@modern-js/app-tools-extensions/config';
|
|
51
51
|
import { moduleFederationPlugin } from '@module-federation/modern-js-v3';
|
|
52
52
|
import { withZephyr as withZephyrRspack } from 'zephyr-rspack-plugin';
|
|
53
53
|
import { ultramodernLocalisedUrls } from './src/routes/ultramodern-route-metadata';
|
|
@@ -68,16 +68,19 @@ import { ultramodernLocalisedUrls } from './src/routes/ultramodern-route-metadat
|
|
|
68
68
|
// no account, and is never blocked. This is the framework's "works with or
|
|
69
69
|
// without Zephyr" contract. The plugin stays registered unconditionally
|
|
70
70
|
// (this gate keys on Zephyr's native deploy token, not any UltraModern
|
|
71
|
-
// opt-out).
|
|
72
|
-
// hard build failure.
|
|
71
|
+
// opt-out). The deploy environment sets ZE_FAIL_BUILD=true next to
|
|
72
|
+
// ZE_CI_TOKEN so an upload failure is a hard build failure.
|
|
73
73
|
const zephyrCiDeploy =
|
|
74
74
|
(getBuildConfigEnvironment('ZE_CI_TOKEN') ?? '').length > 0;
|
|
75
75
|
if (!zephyrCiDeploy) {
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
if (getBuildConfigEnvironment('ZE_FAIL_BUILD') !== 'true') {
|
|
79
|
+
throw new Error(
|
|
80
|
+
'ZE_CI_TOKEN is set but ZE_FAIL_BUILD is not "true", so a failed Zephyr upload would not fail the deploy. Set ZE_FAIL_BUILD=true in the deploy environment next to ZE_CI_TOKEN.',
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
api.modifyRspackConfig(withZephyrRspack());
|
|
81
84
|
},
|
|
82
85
|
});
|
|
83
86
|
|
|
@@ -45,6 +45,7 @@ const external_descriptors_cjs_namespaceObject = require("./descriptors.cjs");
|
|
|
45
45
|
const external_fs_io_cjs_namespaceObject = require("./fs-io.cjs");
|
|
46
46
|
const external_naming_cjs_namespaceObject = require("./naming.cjs");
|
|
47
47
|
const external_policy_cjs_namespaceObject = require("./policy.cjs");
|
|
48
|
+
const external_versions_cjs_namespaceObject = require("./versions.cjs");
|
|
48
49
|
const external_workspace_script_plan_cjs_namespaceObject = require("./workspace-script-plan.cjs");
|
|
49
50
|
const external_tsconfigs_cjs_namespaceObject = require("./tsconfigs.cjs");
|
|
50
51
|
const frameworkRequest = (packageSource)=>'install' === packageSource.strategy ? 'catalog:ultramodern' : 'workspace:*';
|
|
@@ -57,7 +58,7 @@ function appDependencies(scope, packageSource, app, remotes = [], bridge) {
|
|
|
57
58
|
'@modern-js/runtime-renderer-extensions': frameworkRequest(packageSource),
|
|
58
59
|
'@modern-js/runtime-extensions': frameworkRequest(packageSource),
|
|
59
60
|
'@modern-js/runtime': frameworkRequest(packageSource),
|
|
60
|
-
...
|
|
61
|
+
...external_versions_cjs_namespaceObject.ULTRAMODERN_PACKAGE_PINS.appDependencies,
|
|
61
62
|
[(0, external_naming_cjs_namespaceObject.packageName)(scope, 'shared-contracts')]: external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION,
|
|
62
63
|
[(0, external_naming_cjs_namespaceObject.packageName)(scope, 'shared-design-tokens')]: external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION
|
|
63
64
|
};
|
|
@@ -70,19 +71,19 @@ function appDependencies(scope, packageSource, app, remotes = [], bridge) {
|
|
|
70
71
|
if ('shell' === app.kind) {
|
|
71
72
|
dependencies['@modern-js/boundary-debugger'] = frameworkRequest(packageSource);
|
|
72
73
|
dependencies['@modern-js/plugin-bff'] = frameworkRequest(packageSource);
|
|
73
|
-
Object.assign(dependencies,
|
|
74
|
+
Object.assign(dependencies, external_versions_cjs_namespaceObject.ULTRAMODERN_PACKAGE_PINS.bffEffectDependencies);
|
|
74
75
|
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;
|
|
75
76
|
}
|
|
76
77
|
for (const remote of appRemotes)dependencies[(0, external_naming_cjs_namespaceObject.packageName)(scope, remote.packageSuffix)] = external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION;
|
|
77
78
|
if ((0, external_descriptors_cjs_namespaceObject.appHasApi)(app)) {
|
|
78
79
|
dependencies['@modern-js/plugin-bff'] = frameworkRequest(packageSource);
|
|
79
80
|
dependencies['@modern-js/bff-effect'] = frameworkRequest(packageSource);
|
|
80
|
-
Object.assign(dependencies,
|
|
81
|
+
Object.assign(dependencies, external_versions_cjs_namespaceObject.ULTRAMODERN_PACKAGE_PINS.bffEffectDependencies);
|
|
81
82
|
}
|
|
82
83
|
return dependencies;
|
|
83
84
|
}
|
|
84
85
|
function appDevDependencies(packageSource, enableTailwind, app) {
|
|
85
|
-
const { '@rsbuild/plugin-tailwindcss': tailwindPluginVersion, tailwindcss: tailwindVersion, ...always } =
|
|
86
|
+
const { '@rsbuild/plugin-tailwindcss': tailwindPluginVersion, tailwindcss: tailwindVersion, ...always } = external_versions_cjs_namespaceObject.ULTRAMODERN_PACKAGE_PINS.appDevDependencies;
|
|
86
87
|
return {
|
|
87
88
|
...(0, external_descriptors_cjs_namespaceObject.appHasApi)(app) || 'shell' === app.kind ? {
|
|
88
89
|
'@modern-js/plugin-bff-build-extensions': frameworkRequest(packageSource)
|
|
@@ -156,7 +157,7 @@ function createRootPackageJson(scope, packageSource, remotes = [], bridge, addit
|
|
|
156
157
|
'agents:refs:check': "node ./scripts/setup-agent-reference-repos.mts --check",
|
|
157
158
|
'api:check': 'modern-api-check',
|
|
158
159
|
'api:check:files': 'modern-api-check-files',
|
|
159
|
-
'i18n:boundaries':
|
|
160
|
+
'i18n:boundaries': 'modern-i18n-check',
|
|
160
161
|
...bridgeScripts,
|
|
161
162
|
postinstall: external_workspace_script_plan_cjs_namespaceObject.GENERATED_POSTINSTALL_SCRIPT
|
|
162
163
|
},
|
|
@@ -172,7 +173,7 @@ function createRootPackageJson(scope, packageSource, remotes = [], bridge, addit
|
|
|
172
173
|
ownership: './topology/ownership.json'
|
|
173
174
|
},
|
|
174
175
|
devDependencies: {
|
|
175
|
-
...
|
|
176
|
+
...external_versions_cjs_namespaceObject.ULTRAMODERN_PACKAGE_PINS.rootDevDependencies,
|
|
176
177
|
'@modern-js/app-tools': frameworkRequest(packageSource),
|
|
177
178
|
'@modern-js/plugin-bff-extensions': frameworkRequest(packageSource),
|
|
178
179
|
'@modern-js/plugin-bff-build-extensions': frameworkRequest(packageSource),
|
|
@@ -183,7 +184,7 @@ function createRootPackageJson(scope, packageSource, remotes = [], bridge, addit
|
|
|
183
184
|
'@modern-js/code-tools': frameworkRequest(packageSource),
|
|
184
185
|
[external_ultramodern_package_source_cjs_namespaceObject.ULTRAMODERN_CREATE_PACKAGE]: frameworkRequest(packageSource),
|
|
185
186
|
'@modern-js/plugin-bff': frameworkRequest(packageSource),
|
|
186
|
-
...
|
|
187
|
+
...external_versions_cjs_namespaceObject.ULTRAMODERN_PACKAGE_PINS.bffEffectDependencies
|
|
187
188
|
}
|
|
188
189
|
};
|
|
189
190
|
}
|
|
@@ -247,11 +248,11 @@ function createSharedPackage(scope, id, description, packageSource) {
|
|
|
247
248
|
typecheck: (0, external_workspace_script_plan_cjs_namespaceObject.createStrictTsgoTypecheckCommand)(`packages/${id}`)
|
|
248
249
|
},
|
|
249
250
|
devDependencies: {
|
|
250
|
-
'@effect/tsgo':
|
|
251
|
+
'@effect/tsgo': external_versions_cjs_namespaceObject.ULTRAMODERN_PACKAGE_PINS.appDevDependencies["@effect/tsgo"]
|
|
251
252
|
}
|
|
252
253
|
};
|
|
253
254
|
if ('shared-contracts' === id) packageJson.dependencies = {
|
|
254
|
-
...
|
|
255
|
+
...external_versions_cjs_namespaceObject.ULTRAMODERN_PACKAGE_PINS.bffEffectDependencies,
|
|
255
256
|
'@modern-js/bff-effect': packageSource ? frameworkRequest(packageSource) : external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION,
|
|
256
257
|
'@modern-js/runtime-extensions': packageSource ? frameworkRequest(packageSource) : external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION,
|
|
257
258
|
'@modern-js/plugin-bff': packageSource ? frameworkRequest(packageSource) : external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION
|
|
@@ -44,7 +44,7 @@ const __rspack_default_export = [
|
|
|
44
44
|
sha256: 'c52b86d551da354492cf255cfb8c0e56e51cb6b4452319b47295ac969704819d',
|
|
45
45
|
repository: true,
|
|
46
46
|
workspace: null,
|
|
47
|
-
reason: '
|
|
47
|
+
reason: 'Bind the type server before publishing its port (upstream PR pending); execute absolute compilerInstance paths without a shell ([#5131](https://github.com/module-federation/core/pull/5131)); preserve declaration rootDir ([#4947](https://github.com/module-federation/core/pull/4947)).'
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
packageName: '@module-federation/manifest',
|
|
@@ -59,10 +59,10 @@ const __rspack_default_export = [
|
|
|
59
59
|
packageName: '@module-federation/modern-js-v3',
|
|
60
60
|
version: '2.9.1',
|
|
61
61
|
path: 'patches/@module-federation__modern-js-v3@2.9.1.patch',
|
|
62
|
-
sha256: '
|
|
62
|
+
sha256: '3d000f33015d32b14dcf9e46672e7d6867317ad9f43e95b2c392c3d5a7c052ab',
|
|
63
63
|
repository: true,
|
|
64
64
|
workspace: null,
|
|
65
|
-
reason:
|
|
65
|
+
reason: "Preserve lazy compilation, framework CSS ownership, SSR manifest recovery, valid async splitting and native ESM CLI package resolution; keep the SSR dev reload script out of client renders ([#5158](https://github.com/module-federation/core/pull/5158))."
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
packageName: '@module-federation/rspack',
|
|
@@ -82,15 +82,6 @@ const __rspack_default_export = [
|
|
|
82
82
|
workspace: null,
|
|
83
83
|
reason: 'Import ResourceLoadContext used by public remote hooks.'
|
|
84
84
|
},
|
|
85
|
-
{
|
|
86
|
-
packageName: 'drizzle-orm',
|
|
87
|
-
version: '1.0.0-rc.4',
|
|
88
|
-
path: 'patches/drizzle-orm-ts7-strict-declarations.patch',
|
|
89
|
-
sha256: '5c37f228e3916f32a502dbb0a5075acdd60751047f72778d789a2362b6cdfbc6',
|
|
90
|
-
repository: false,
|
|
91
|
-
workspace: null,
|
|
92
|
-
reason: 'Strict TypeScript declarations for generated database applications.'
|
|
93
|
-
},
|
|
94
85
|
{
|
|
95
86
|
packageName: 'effect',
|
|
96
87
|
version: '4.0.0-rc.117',
|
|
@@ -28,7 +28,6 @@ var __webpack_require__ = {};
|
|
|
28
28
|
var __webpack_exports__ = {};
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
-
ULTRAMODERN_PACKAGE_PINS: ()=>ULTRAMODERN_PACKAGE_PINS,
|
|
32
31
|
ULTRAMODERN_WORKSPACE_POLICY: ()=>ULTRAMODERN_WORKSPACE_POLICY,
|
|
33
32
|
createCloudflareDeployContract: ()=>createCloudflareDeployContract,
|
|
34
33
|
createCloudflareSecurityContract: ()=>createCloudflareSecurityContract,
|
|
@@ -251,60 +250,9 @@ function createCloudflareDeployContract(scope, app) {
|
|
|
251
250
|
} : {}
|
|
252
251
|
};
|
|
253
252
|
}
|
|
254
|
-
const ULTRAMODERN_PACKAGE_PINS = {
|
|
255
|
-
appDependencies: {
|
|
256
|
-
'@module-federation/bridge-react': `npm:@bleedingdev/mf-bridge-react@${external_versions_cjs_namespaceObject.MODULE_FEDERATION_VERSION}`,
|
|
257
|
-
'@module-federation/modern-js-v3': `npm:@bleedingdev/mf-modern-js-v3@${external_versions_cjs_namespaceObject.MODULE_FEDERATION_VERSION}`,
|
|
258
|
-
'@module-federation/runtime': `npm:@bleedingdev/mf-runtime@${external_versions_cjs_namespaceObject.MODULE_FEDERATION_VERSION}`,
|
|
259
|
-
'@tanstack/react-router': external_versions_cjs_namespaceObject.TANSTACK_ROUTER_VERSION,
|
|
260
|
-
i18next: external_versions_cjs_namespaceObject.I18NEXT_VERSION,
|
|
261
|
-
'node-fetch': external_versions_cjs_namespaceObject.NODE_FETCH_VERSION,
|
|
262
|
-
react: external_versions_cjs_namespaceObject.REACT_VERSION,
|
|
263
|
-
'react-dom': external_versions_cjs_namespaceObject.REACT_DOM_VERSION
|
|
264
|
-
},
|
|
265
|
-
bffEffectDependencies: {
|
|
266
|
-
'@effect/opentelemetry': external_versions_cjs_namespaceObject.EFFECT_VERSION,
|
|
267
|
-
effect: `npm:@bleedingdev/effect@${external_versions_cjs_namespaceObject.EFFECT_VERSION}`
|
|
268
|
-
},
|
|
269
|
-
appDevDependencies: {
|
|
270
|
-
'@effect/tsgo': external_versions_cjs_namespaceObject.EFFECT_TSGO_VERSION,
|
|
271
|
-
'@rsbuild/plugin-tailwindcss': `^${external_versions_cjs_namespaceObject.RSBUILD_PLUGIN_TAILWINDCSS_VERSION}`,
|
|
272
|
-
"@typescript/native": `npm:typescript@${external_versions_cjs_namespaceObject.TYPESCRIPT_VERSION}`,
|
|
273
|
-
'@types/node': external_versions_cjs_namespaceObject.TYPES_NODE_VERSION,
|
|
274
|
-
'@types/react': external_versions_cjs_namespaceObject.TYPES_REACT_VERSION,
|
|
275
|
-
'@types/react-dom': external_versions_cjs_namespaceObject.TYPES_REACT_DOM_VERSION,
|
|
276
|
-
'cross-env': external_versions_cjs_namespaceObject.CROSS_ENV_VERSION,
|
|
277
|
-
tailwindcss: `^${external_versions_cjs_namespaceObject.TAILWIND_VERSION}`,
|
|
278
|
-
typescript: external_versions_cjs_namespaceObject.TYPESCRIPT_VERSION,
|
|
279
|
-
wrangler: external_versions_cjs_namespaceObject.WRANGLER_VERSION,
|
|
280
|
-
'zephyr-rspack-plugin': external_versions_cjs_namespaceObject.ZEPHYR_RSPACK_PLUGIN_VERSION
|
|
281
|
-
},
|
|
282
|
-
rootDevDependencies: {
|
|
283
|
-
'@effect/tsgo': external_versions_cjs_namespaceObject.EFFECT_TSGO_VERSION,
|
|
284
|
-
"@typescript/native": `npm:typescript@${external_versions_cjs_namespaceObject.TYPESCRIPT_VERSION}`,
|
|
285
|
-
'@types/node': external_versions_cjs_namespaceObject.TYPES_NODE_VERSION,
|
|
286
|
-
'cross-env': external_versions_cjs_namespaceObject.CROSS_ENV_VERSION,
|
|
287
|
-
lefthook: external_versions_cjs_namespaceObject.LEFTHOOK_VERSION,
|
|
288
|
-
miniflare: external_versions_cjs_namespaceObject.MINIFLARE_VERSION,
|
|
289
|
-
oxlint: external_versions_cjs_namespaceObject.OXLINT_VERSION,
|
|
290
|
-
oxfmt: external_versions_cjs_namespaceObject.OXFMT_VERSION,
|
|
291
|
-
ultracite: external_versions_cjs_namespaceObject.ULTRACITE_VERSION,
|
|
292
|
-
wrangler: external_versions_cjs_namespaceObject.WRANGLER_VERSION,
|
|
293
|
-
'zephyr-agent': external_versions_cjs_namespaceObject.ZEPHYR_AGENT_VERSION
|
|
294
|
-
},
|
|
295
|
-
transitiveDependencies: {
|
|
296
|
-
'@cloudflare/workers-types': external_versions_cjs_namespaceObject.CLOUDFLARE_WORKERS_TYPES_VERSION,
|
|
297
|
-
'@module-federation/node': external_versions_cjs_namespaceObject.MODULE_FEDERATION_NODE_VERSION,
|
|
298
|
-
'@tanstack/history': external_versions_cjs_namespaceObject.TANSTACK_HISTORY_VERSION,
|
|
299
|
-
'@tanstack/router-core': external_versions_cjs_namespaceObject.TANSTACK_ROUTER_CORE_VERSION,
|
|
300
|
-
"@typescript/native-preview": external_versions_cjs_namespaceObject.TYPESCRIPT_NATIVE_PREVIEW_VERSION,
|
|
301
|
-
miniflare: external_versions_cjs_namespaceObject.MINIFLARE_VERSION,
|
|
302
|
-
workerd: external_versions_cjs_namespaceObject.WORKERD_VERSION
|
|
303
|
-
}
|
|
304
|
-
};
|
|
305
253
|
const ULTRAMODERN_WORKSPACE_POLICY = {
|
|
306
254
|
schemaVersion: 1,
|
|
307
|
-
dependencies: ULTRAMODERN_PACKAGE_PINS,
|
|
255
|
+
dependencies: external_versions_cjs_namespaceObject.ULTRAMODERN_PACKAGE_PINS,
|
|
308
256
|
toolchain: {
|
|
309
257
|
node: {
|
|
310
258
|
version: external_versions_cjs_namespaceObject.NODE_VERSION,
|
|
@@ -344,7 +292,6 @@ const ULTRAMODERN_WORKSPACE_POLICY = {
|
|
|
344
292
|
}
|
|
345
293
|
}
|
|
346
294
|
};
|
|
347
|
-
exports.ULTRAMODERN_PACKAGE_PINS = __webpack_exports__.ULTRAMODERN_PACKAGE_PINS;
|
|
348
295
|
exports.ULTRAMODERN_WORKSPACE_POLICY = __webpack_exports__.ULTRAMODERN_WORKSPACE_POLICY;
|
|
349
296
|
exports.createCloudflareDeployContract = __webpack_exports__.createCloudflareDeployContract;
|
|
350
297
|
exports.createCloudflareSecurityContract = __webpack_exports__.createCloudflareSecurityContract;
|
|
@@ -352,7 +299,6 @@ exports.createPublicHeadRobotsPolicy = __webpack_exports__.createPublicHeadRobot
|
|
|
352
299
|
exports.createPublicSurfaceContentExpansionPolicy = __webpack_exports__.createPublicSurfaceContentExpansionPolicy;
|
|
353
300
|
exports.formatTsJsonValue = __webpack_exports__.formatTsJsonValue;
|
|
354
301
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
355
|
-
"ULTRAMODERN_PACKAGE_PINS",
|
|
356
302
|
"ULTRAMODERN_WORKSPACE_POLICY",
|
|
357
303
|
"createCloudflareDeployContract",
|
|
358
304
|
"createCloudflareSecurityContract",
|
|
@@ -210,7 +210,7 @@ function createPublicWebAppArtifacts(app) {
|
|
|
210
210
|
},
|
|
211
211
|
routeMetadataFile: {
|
|
212
212
|
path: `${app.directory}/src/routes/ultramodern-route-metadata.ts`,
|
|
213
|
-
content: (0, external_routes_cjs_namespaceObject.createRouteMetadataModule)(
|
|
213
|
+
content: (0, external_routes_cjs_namespaceObject.createRouteMetadataModule)()
|
|
214
214
|
},
|
|
215
215
|
routeHeadFile: {
|
|
216
216
|
path: `${app.directory}/src/routes/ultramodern-route-head.tsx`,
|
|
@@ -120,21 +120,8 @@ function createPublicRouteMetadata(app) {
|
|
|
120
120
|
function createJsonLdHelperModule() {
|
|
121
121
|
return (0, external_fs_io_cjs_namespaceObject.renderFileTemplate)('workspace/apps/shared/src/routes/ultramodern-jsonld.ts', {});
|
|
122
122
|
}
|
|
123
|
-
function createRouteMetadataModule(
|
|
124
|
-
|
|
125
|
-
file: createRouteMetaFilePath(app, route.canonicalPath)
|
|
126
|
-
})).sort((left, right)=>left.file < right.file ? -1 : left.file > right.file ? 1 : 0);
|
|
127
|
-
const routesRoot = `${app.directory}/src/routes/`;
|
|
128
|
-
const imports = routes.map(({ file }, index)=>{
|
|
129
|
-
const relative = file.slice(routesRoot.length).replace(/\.ts$/u, '');
|
|
130
|
-
return `import { routeMeta as route${index} } from ${JSON.stringify(`./${relative}`)};`;
|
|
131
|
-
});
|
|
132
|
-
const namespace = (0, external_descriptors_cjs_namespaceObject.appI18nNamespace)(app);
|
|
133
|
-
return (0, external_fs_io_cjs_namespaceObject.renderFileTemplate)('workspace/apps/shared/src/routes/ultramodern-route-metadata.ts', {
|
|
134
|
-
value0: imports.join('\n'),
|
|
135
|
-
value1: JSON.stringify(namespace),
|
|
136
|
-
value2: routes.map((_, index)=>`route${index}`).join(', ')
|
|
137
|
-
});
|
|
123
|
+
function createRouteMetadataModule() {
|
|
124
|
+
return (0, external_fs_io_cjs_namespaceObject.renderFileTemplate)('workspace/apps/shared/src/routes/ultramodern-route-metadata.ts', {});
|
|
138
125
|
}
|
|
139
126
|
function createRouteMetaModule(route) {
|
|
140
127
|
return `const routeMeta = ${JSON.stringify((0, external_types_cjs_namespaceObject.sortJsonValue)(route), null, 2)} as const;
|
|
@@ -274,8 +274,8 @@ function validateWorkspace(root, expected) {
|
|
|
274
274
|
for (const owner of owners)assert(ids.has(owner.id) || shared.some((pkg)=>pkg.id === owner.id), `Ownership names unknown package ${owner.id}`);
|
|
275
275
|
const catalogs = record(workspace.catalogs ?? {}, 'workspace catalogs');
|
|
276
276
|
const catalog = record(catalogs.ultramodern ?? {}, 'ultramodern catalog');
|
|
277
|
-
assert((0, external_ultramodern_release_cohort_cjs_namespaceObject.hasCreateReleaseCohort)() || (0, external_ultramodern_release_cohort_cjs_namespaceObject.isCreatePackageSourceCheckout)(), 'Installed ultramodern-create package is missing release-cohort.json');
|
|
278
277
|
const producer = (0, external_ultramodern_release_cohort_cjs_namespaceObject.hasCreateReleaseCohort)() ? (0, external_ultramodern_release_cohort_cjs_namespaceObject.readCreateReleaseCohort)() : void 0;
|
|
278
|
+
const sourceCheckout = (0, external_ultramodern_release_cohort_cjs_namespaceObject.isCreatePackageSourceCheckout)();
|
|
279
279
|
const cohort = new Map(producer?.packages.map((pkg)=>[
|
|
280
280
|
pkg.sourceName,
|
|
281
281
|
pkg
|
|
@@ -299,6 +299,7 @@ function validateWorkspace(root, expected) {
|
|
|
299
299
|
const effective = catalogRequest ?? request;
|
|
300
300
|
assert('string' == typeof effective && effective.length > 0, `${member} ${name} has no catalog entry`);
|
|
301
301
|
if ('workspace:*' !== request) assert('catalog:ultramodern' === request, `${member} ${name} must use the ultramodern catalog`);
|
|
302
|
+
assert(producer || sourceCheckout || 'workspace:*' === request, `${member} ${name} uses the ultramodern catalog, but the installed ultramodern-create package is missing release-cohort.json. Install a published ultramodern-create release, or generate with --ultramodern-package-source workspace.`);
|
|
302
303
|
if (producer && 'workspace:*' !== request) {
|
|
303
304
|
const release = cohort.get(name);
|
|
304
305
|
assert(release, `${member} ${name} is absent from the installed release cohort`);
|
|
@@ -31,6 +31,7 @@ const TANSTACK_ROUTER_VERSION = '1.170.39';
|
|
|
31
31
|
const TANSTACK_ROUTER_CORE_VERSION = '1.171.32';
|
|
32
32
|
const TANSTACK_HISTORY_VERSION = '1.162.4';
|
|
33
33
|
const MODULE_FEDERATION_VERSION = '2.9.1';
|
|
34
|
+
const MODULE_FEDERATION_MODERN_JS_V3_FORK_VERSION = '2.9.2';
|
|
34
35
|
const ZEPHYR_RSPACK_PLUGIN_VERSION = '1.4.0';
|
|
35
36
|
const ZEPHYR_AGENT_VERSION = '1.4.0';
|
|
36
37
|
const WRANGLER_VERSION = '4.137.0';
|
|
@@ -60,6 +61,57 @@ const TYPES_REACT_VERSION = '^19.3.0';
|
|
|
60
61
|
const TYPES_REACT_DOM_VERSION = '^19.3.0';
|
|
61
62
|
const NODE_VERSION = '26.7.0';
|
|
62
63
|
const PNPM_VERSION = '11.27.1';
|
|
64
|
+
const ULTRAMODERN_PACKAGE_PINS = {
|
|
65
|
+
appDependencies: {
|
|
66
|
+
'@module-federation/bridge-react': `npm:@bleedingdev/mf-bridge-react@${MODULE_FEDERATION_VERSION}`,
|
|
67
|
+
'@module-federation/modern-js-v3': `npm:@bleedingdev/mf-modern-js-v3@${MODULE_FEDERATION_MODERN_JS_V3_FORK_VERSION}`,
|
|
68
|
+
'@module-federation/runtime': `npm:@bleedingdev/mf-runtime@${MODULE_FEDERATION_VERSION}`,
|
|
69
|
+
'@tanstack/react-router': TANSTACK_ROUTER_VERSION,
|
|
70
|
+
i18next: I18NEXT_VERSION,
|
|
71
|
+
'node-fetch': NODE_FETCH_VERSION,
|
|
72
|
+
react: REACT_VERSION,
|
|
73
|
+
'react-dom': REACT_DOM_VERSION
|
|
74
|
+
},
|
|
75
|
+
bffEffectDependencies: {
|
|
76
|
+
'@effect/opentelemetry': EFFECT_VERSION,
|
|
77
|
+
effect: `npm:@bleedingdev/effect@${EFFECT_VERSION}`
|
|
78
|
+
},
|
|
79
|
+
appDevDependencies: {
|
|
80
|
+
'@effect/tsgo': EFFECT_TSGO_VERSION,
|
|
81
|
+
'@rsbuild/plugin-tailwindcss': `^${RSBUILD_PLUGIN_TAILWINDCSS_VERSION}`,
|
|
82
|
+
"@typescript/native": `npm:typescript@${TYPESCRIPT_VERSION}`,
|
|
83
|
+
'@types/node': TYPES_NODE_VERSION,
|
|
84
|
+
'@types/react': TYPES_REACT_VERSION,
|
|
85
|
+
'@types/react-dom': TYPES_REACT_DOM_VERSION,
|
|
86
|
+
'cross-env': CROSS_ENV_VERSION,
|
|
87
|
+
tailwindcss: `^${TAILWIND_VERSION}`,
|
|
88
|
+
typescript: TYPESCRIPT_VERSION,
|
|
89
|
+
wrangler: WRANGLER_VERSION,
|
|
90
|
+
'zephyr-rspack-plugin': ZEPHYR_RSPACK_PLUGIN_VERSION
|
|
91
|
+
},
|
|
92
|
+
rootDevDependencies: {
|
|
93
|
+
'@effect/tsgo': EFFECT_TSGO_VERSION,
|
|
94
|
+
"@typescript/native": `npm:typescript@${TYPESCRIPT_VERSION}`,
|
|
95
|
+
'@types/node': TYPES_NODE_VERSION,
|
|
96
|
+
'cross-env': CROSS_ENV_VERSION,
|
|
97
|
+
lefthook: LEFTHOOK_VERSION,
|
|
98
|
+
miniflare: MINIFLARE_VERSION,
|
|
99
|
+
oxlint: OXLINT_VERSION,
|
|
100
|
+
oxfmt: OXFMT_VERSION,
|
|
101
|
+
ultracite: ULTRACITE_VERSION,
|
|
102
|
+
wrangler: WRANGLER_VERSION,
|
|
103
|
+
'zephyr-agent': ZEPHYR_AGENT_VERSION
|
|
104
|
+
},
|
|
105
|
+
transitiveDependencies: {
|
|
106
|
+
'@cloudflare/workers-types': CLOUDFLARE_WORKERS_TYPES_VERSION,
|
|
107
|
+
'@module-federation/node': MODULE_FEDERATION_NODE_VERSION,
|
|
108
|
+
'@tanstack/history': TANSTACK_HISTORY_VERSION,
|
|
109
|
+
'@tanstack/router-core': TANSTACK_ROUTER_CORE_VERSION,
|
|
110
|
+
"@typescript/native-preview": TYPESCRIPT_NATIVE_PREVIEW_VERSION,
|
|
111
|
+
miniflare: MINIFLARE_VERSION,
|
|
112
|
+
workerd: WORKERD_VERSION
|
|
113
|
+
}
|
|
114
|
+
};
|
|
63
115
|
__webpack_require__.d(__webpack_exports__, {}, {
|
|
64
116
|
CLOUDFLARE_COMPATIBILITY_DATE: CLOUDFLARE_COMPATIBILITY_DATE,
|
|
65
117
|
CLOUDFLARE_WORKERS_TYPES_VERSION: CLOUDFLARE_WORKERS_TYPES_VERSION,
|
|
@@ -69,6 +121,7 @@ __webpack_require__.d(__webpack_exports__, {}, {
|
|
|
69
121
|
I18NEXT_VERSION: I18NEXT_VERSION,
|
|
70
122
|
LEFTHOOK_VERSION: LEFTHOOK_VERSION,
|
|
71
123
|
MINIFLARE_VERSION: MINIFLARE_VERSION,
|
|
124
|
+
MODULE_FEDERATION_MODERN_JS_V3_FORK_VERSION: MODULE_FEDERATION_MODERN_JS_V3_FORK_VERSION,
|
|
72
125
|
MODULE_FEDERATION_NODE_VERSION: MODULE_FEDERATION_NODE_VERSION,
|
|
73
126
|
MODULE_FEDERATION_VERSION: MODULE_FEDERATION_VERSION,
|
|
74
127
|
NODE_FETCH_VERSION: NODE_FETCH_VERSION,
|
|
@@ -90,6 +143,7 @@ __webpack_require__.d(__webpack_exports__, {}, {
|
|
|
90
143
|
TYPES_REACT_DOM_VERSION: TYPES_REACT_DOM_VERSION,
|
|
91
144
|
TYPES_REACT_VERSION: TYPES_REACT_VERSION,
|
|
92
145
|
ULTRACITE_VERSION: ULTRACITE_VERSION,
|
|
146
|
+
ULTRAMODERN_PACKAGE_PINS: ULTRAMODERN_PACKAGE_PINS,
|
|
93
147
|
WORKERD_VERSION: WORKERD_VERSION,
|
|
94
148
|
WRANGLER_VERSION: WRANGLER_VERSION,
|
|
95
149
|
ZEPHYR_AGENT_VERSION: ZEPHYR_AGENT_VERSION,
|
|
@@ -103,6 +157,7 @@ exports.EFFECT_VERSION = __webpack_exports__.EFFECT_VERSION;
|
|
|
103
157
|
exports.I18NEXT_VERSION = __webpack_exports__.I18NEXT_VERSION;
|
|
104
158
|
exports.LEFTHOOK_VERSION = __webpack_exports__.LEFTHOOK_VERSION;
|
|
105
159
|
exports.MINIFLARE_VERSION = __webpack_exports__.MINIFLARE_VERSION;
|
|
160
|
+
exports.MODULE_FEDERATION_MODERN_JS_V3_FORK_VERSION = __webpack_exports__.MODULE_FEDERATION_MODERN_JS_V3_FORK_VERSION;
|
|
106
161
|
exports.MODULE_FEDERATION_NODE_VERSION = __webpack_exports__.MODULE_FEDERATION_NODE_VERSION;
|
|
107
162
|
exports.MODULE_FEDERATION_VERSION = __webpack_exports__.MODULE_FEDERATION_VERSION;
|
|
108
163
|
exports.NODE_FETCH_VERSION = __webpack_exports__.NODE_FETCH_VERSION;
|
|
@@ -124,6 +179,7 @@ exports.TYPES_NODE_VERSION = __webpack_exports__.TYPES_NODE_VERSION;
|
|
|
124
179
|
exports.TYPES_REACT_DOM_VERSION = __webpack_exports__.TYPES_REACT_DOM_VERSION;
|
|
125
180
|
exports.TYPES_REACT_VERSION = __webpack_exports__.TYPES_REACT_VERSION;
|
|
126
181
|
exports.ULTRACITE_VERSION = __webpack_exports__.ULTRACITE_VERSION;
|
|
182
|
+
exports.ULTRAMODERN_PACKAGE_PINS = __webpack_exports__.ULTRAMODERN_PACKAGE_PINS;
|
|
127
183
|
exports.WORKERD_VERSION = __webpack_exports__.WORKERD_VERSION;
|
|
128
184
|
exports.WRANGLER_VERSION = __webpack_exports__.WRANGLER_VERSION;
|
|
129
185
|
exports.ZEPHYR_AGENT_VERSION = __webpack_exports__.ZEPHYR_AGENT_VERSION;
|
|
@@ -137,6 +193,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
137
193
|
"I18NEXT_VERSION",
|
|
138
194
|
"LEFTHOOK_VERSION",
|
|
139
195
|
"MINIFLARE_VERSION",
|
|
196
|
+
"MODULE_FEDERATION_MODERN_JS_V3_FORK_VERSION",
|
|
140
197
|
"MODULE_FEDERATION_NODE_VERSION",
|
|
141
198
|
"MODULE_FEDERATION_VERSION",
|
|
142
199
|
"NODE_FETCH_VERSION",
|
|
@@ -158,6 +215,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
158
215
|
"TYPES_REACT_DOM_VERSION",
|
|
159
216
|
"TYPES_REACT_VERSION",
|
|
160
217
|
"ULTRACITE_VERSION",
|
|
218
|
+
"ULTRAMODERN_PACKAGE_PINS",
|
|
161
219
|
"WORKERD_VERSION",
|
|
162
220
|
"WRANGLER_VERSION",
|
|
163
221
|
"ZEPHYR_AGENT_VERSION",
|
|
@@ -36,6 +36,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
36
36
|
createWorkspaceRootScriptPlan: ()=>createWorkspaceRootScriptPlan
|
|
37
37
|
});
|
|
38
38
|
const external_descriptors_cjs_namespaceObject = require("./descriptors.cjs");
|
|
39
|
+
const external_naming_cjs_namespaceObject = require("./naming.cjs");
|
|
39
40
|
const external_public_surface_cjs_namespaceObject = require("./public-surface.cjs");
|
|
40
41
|
const external_tooling_command_catalog_cjs_namespaceObject = require("./tooling-command-catalog.cjs");
|
|
41
42
|
const GENERATED_POSTINSTALL_SCRIPT = 'ultramodern-create ultramodern skills install --postinstall';
|
|
@@ -83,25 +84,30 @@ const workspaceAppPackageScriptNames = {
|
|
|
83
84
|
typecheck: 'typecheck'
|
|
84
85
|
};
|
|
85
86
|
const createStrictTsgoTypecheckCommand = (packageDir)=>`${packageToolingWrapperCommand(packageDir, 'typecheck')} --project tsconfig.json`;
|
|
87
|
+
const createRoutesGenerateCommand = (app)=>(0, external_descriptors_cjs_namespaceObject.appEmitsBrowserUi)(app) ? `pnpm --dir ${(0, external_naming_cjs_namespaceObject.relativeRootFor)(app.directory)} exec ${toolingCommand('routesGenerate')} --app ${app.id} --manifest-only` : void 0;
|
|
86
88
|
function createWorkspaceAppScriptPlan(app) {
|
|
89
|
+
const routesGenerate = createRoutesGenerateCommand(app);
|
|
87
90
|
const buildSteps = [
|
|
88
|
-
|
|
91
|
+
routesGenerate,
|
|
89
92
|
'modern build',
|
|
90
93
|
(0, external_public_surface_cjs_namespaceObject.createPublicSurfaceGenerationCommand)(app, 'dist'),
|
|
91
94
|
'cross-env MODERNJS_DEPLOY=node modern deploy --skip-build'
|
|
92
95
|
].filter((step)=>Boolean(step));
|
|
93
96
|
const cloudflareBuildSteps = [
|
|
94
|
-
|
|
97
|
+
routesGenerate,
|
|
95
98
|
'cross-env MODERNJS_DEPLOY=cloudflare modern build',
|
|
96
99
|
(0, external_public_surface_cjs_namespaceObject.createPublicSurfaceGenerationCommand)(app, 'cloudflare-dist'),
|
|
97
100
|
'cross-env MODERNJS_DEPLOY=cloudflare modern deploy --skip-build',
|
|
98
101
|
`${packageToolingWrapperCommand(app.directory, 'cloudflareOutputVerify')} --app ${app.id}`
|
|
99
102
|
].filter((step)=>Boolean(step));
|
|
100
103
|
return {
|
|
101
|
-
dev:
|
|
104
|
+
dev: [
|
|
105
|
+
routesGenerate,
|
|
106
|
+
'modern dev'
|
|
107
|
+
].filter((step)=>Boolean(step)).join(' && '),
|
|
102
108
|
build: buildSteps.join(' && '),
|
|
103
109
|
cloudflareBuild: cloudflareBuildSteps.join(' && '),
|
|
104
|
-
cloudflareDeploy: 'cross-env ULTRAMODERN_CLOUDFLARE_REQUIRE_PUBLIC_URLS=true pnpm run cloudflare:build && wrangler deploy --config .output/wrangler.json',
|
|
110
|
+
cloudflareDeploy: 'cross-env ULTRAMODERN_CLOUDFLARE_REQUIRE_PUBLIC_URLS=true ZE_FAIL_BUILD=true pnpm run cloudflare:build && wrangler deploy --config .output/wrangler.json',
|
|
105
111
|
cloudflarePreview: 'pnpm run cloudflare:build && wrangler dev --config .output/wrangler.json',
|
|
106
112
|
cloudflareProof: `${packageToolingWrapperCommand(app.directory, 'cloudflareProof')} --app ${app.id}`,
|
|
107
113
|
serve: 'modern serve',
|
|
@@ -140,7 +146,6 @@ function createReferencedRemoteDeclarationBuilds(remotes) {
|
|
|
140
146
|
}
|
|
141
147
|
function createWorkspaceRootScriptPlan(remotes = [], options = {}) {
|
|
142
148
|
const hasRemotes = remotes.length > 0;
|
|
143
|
-
remotes.some(external_descriptors_cjs_namespaceObject.appHasApi);
|
|
144
149
|
const shells = options.shells && options.shells.length > 0 ? options.shells : [
|
|
145
150
|
external_descriptors_cjs_namespaceObject.shellApp
|
|
146
151
|
];
|