@bleedingdev/modern-js-create 3.4.0-ultramodern.11 → 3.4.0-ultramodern.13
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 +13 -11
- package/dist/cjs/index.cjs +36 -3
- package/dist/cjs/locale/en.cjs +10 -0
- package/dist/cjs/locale/zh.cjs +10 -0
- package/dist/cjs/ultramodern-tooling/commands.cjs +185 -0
- package/dist/cjs/ultramodern-tooling/config.cjs +248 -0
- package/dist/cjs/ultramodern-workspace/add-vertical.cjs +39 -18
- 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 +119 -653
- package/dist/cjs/ultramodern-workspace/descriptors.cjs +4 -0
- package/dist/cjs/ultramodern-workspace/generation-result.cjs +1 -1
- package/dist/cjs/ultramodern-workspace/index.cjs +4 -0
- package/dist/cjs/ultramodern-workspace/mf-validation.cjs +572 -0
- package/dist/cjs/ultramodern-workspace/module-federation.cjs +14 -0
- package/dist/cjs/ultramodern-workspace/package-json.cjs +26 -12
- package/dist/cjs/ultramodern-workspace/public-api.cjs +4 -0
- package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +74 -44
- package/dist/cjs/ultramodern-workspace/write-workspace.cjs +37 -8
- package/dist/esm/index.js +36 -3
- package/dist/esm/locale/en.js +10 -0
- package/dist/esm/locale/zh.js +10 -0
- package/dist/esm/ultramodern-tooling/commands.js +132 -0
- package/dist/esm/ultramodern-tooling/config.js +196 -0
- package/dist/esm/ultramodern-workspace/add-vertical.js +39 -21
- 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 +122 -608
- package/dist/esm/ultramodern-workspace/descriptors.js +2 -1
- package/dist/esm/ultramodern-workspace/generation-result.js +2 -2
- package/dist/esm/ultramodern-workspace/index.js +1 -0
- package/dist/esm/ultramodern-workspace/mf-validation.js +517 -0
- package/dist/esm/ultramodern-workspace/module-federation.js +14 -0
- package/dist/esm/ultramodern-workspace/package-json.js +26 -12
- package/dist/esm/ultramodern-workspace/public-api.js +1 -0
- package/dist/esm/ultramodern-workspace/workspace-scripts.js +75 -27
- package/dist/esm/ultramodern-workspace/write-workspace.js +38 -12
- package/dist/esm-node/index.js +36 -3
- package/dist/esm-node/locale/en.js +10 -0
- package/dist/esm-node/locale/zh.js +10 -0
- package/dist/esm-node/ultramodern-tooling/commands.js +133 -0
- package/dist/esm-node/ultramodern-tooling/config.js +197 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical.js +39 -21
- 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 +122 -608
- package/dist/esm-node/ultramodern-workspace/descriptors.js +2 -1
- package/dist/esm-node/ultramodern-workspace/generation-result.js +2 -2
- package/dist/esm-node/ultramodern-workspace/index.js +1 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation.js +518 -0
- package/dist/esm-node/ultramodern-workspace/module-federation.js +14 -0
- package/dist/esm-node/ultramodern-workspace/package-json.js +26 -12
- package/dist/esm-node/ultramodern-workspace/public-api.js +1 -0
- package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +75 -27
- package/dist/esm-node/ultramodern-workspace/write-workspace.js +38 -12
- 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/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 +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 +4 -3
- package/dist/types/ultramodern-workspace/public-api.d.ts +2 -0
- package/dist/types/ultramodern-workspace/types.d.ts +2 -0
- package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +1 -7
- package/dist/types/ultramodern-workspace/write-workspace.d.ts +4 -2
- package/package.json +3 -3
- package/template-workspace/{.agents → .codex}/skills-lock.json +12 -12
- 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/scripts/bootstrap-agent-skills.mjs +77 -67
- package/templates/workspace-scripts/assert-mf-types.mjs.handlebars +56 -3
- package/templates/workspace-scripts/generate-public-surface-assets.mjs +239 -4
- package/templates/workspace-scripts/proof-cloudflare-version.mjs +282 -4
- package/templates/workspace-scripts/ultramodern-performance-readiness.mjs +172 -1
- package/templates/workspace-scripts/ultramodern-typecheck.mjs +4 -2
- package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +783 -26
- /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
|
@@ -42,6 +42,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
42
42
|
addUltramodernVertical: ()=>addUltramodernVertical,
|
|
43
43
|
assertCanCreate: ()=>assertCanCreate,
|
|
44
44
|
assertValidVerticalName: ()=>assertValidVerticalName,
|
|
45
|
+
existingBridgeConfig: ()=>existingBridgeConfig,
|
|
45
46
|
existingPackageSource: ()=>existingPackageSource,
|
|
46
47
|
existingTailwindEnabled: ()=>existingTailwindEnabled,
|
|
47
48
|
nextAvailablePort: ()=>nextAvailablePort,
|
|
@@ -60,8 +61,8 @@ var external_node_os_default = /*#__PURE__*/ __webpack_require__.n(external_node
|
|
|
60
61
|
const external_node_path_namespaceObject = require("node:path");
|
|
61
62
|
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
62
63
|
const external_ultramodern_package_source_cjs_namespaceObject = require("../ultramodern-package-source.cjs");
|
|
64
|
+
const config_cjs_namespaceObject = require("../ultramodern-tooling/config.cjs");
|
|
63
65
|
const external_app_files_cjs_namespaceObject = require("./app-files.cjs");
|
|
64
|
-
const external_contracts_cjs_namespaceObject = require("./contracts.cjs");
|
|
65
66
|
const external_demo_components_cjs_namespaceObject = require("./demo-components.cjs");
|
|
66
67
|
const external_descriptors_cjs_namespaceObject = require("./descriptors.cjs");
|
|
67
68
|
const external_effect_api_cjs_namespaceObject = require("./effect-api.cjs");
|
|
@@ -90,7 +91,12 @@ function existingPackageSource(workspaceRoot, modernVersion, packageSource) {
|
|
|
90
91
|
modernVersion,
|
|
91
92
|
packageSource
|
|
92
93
|
});
|
|
93
|
-
const
|
|
94
|
+
const compactPath = external_node_path_default().join(workspaceRoot, external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH);
|
|
95
|
+
if (external_node_fs_default().existsSync(compactPath)) {
|
|
96
|
+
const compactConfig = (0, config_cjs_namespaceObject.readUltramodernConfig)(workspaceRoot);
|
|
97
|
+
if (compactConfig.packageSource) return compactConfig.packageSource;
|
|
98
|
+
}
|
|
99
|
+
const metadataPath = external_node_path_default().join(workspaceRoot, PACKAGE_SOURCE_METADATA_PATH);
|
|
94
100
|
if (!external_node_fs_default().existsSync(metadataPath)) return (0, external_package_source_cjs_namespaceObject.resolvePackageSource)({
|
|
95
101
|
targetDir: workspaceRoot,
|
|
96
102
|
packageName: external_node_path_default().basename(workspaceRoot),
|
|
@@ -113,6 +119,8 @@ function existingPackageSource(workspaceRoot, modernVersion, packageSource) {
|
|
|
113
119
|
};
|
|
114
120
|
}
|
|
115
121
|
function existingTailwindEnabled(workspaceRoot) {
|
|
122
|
+
const compactPath = external_node_path_default().join(workspaceRoot, external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH);
|
|
123
|
+
if (external_node_fs_default().existsSync(compactPath)) return (0, config_cjs_namespaceObject.readUltramodernConfig)(workspaceRoot).features.tailwind;
|
|
116
124
|
const contractPath = external_node_path_default().join(workspaceRoot, external_descriptors_cjs_namespaceObject.GENERATED_CONTRACT_PATH);
|
|
117
125
|
if (!external_node_fs_default().existsSync(contractPath)) return true;
|
|
118
126
|
const contract = (0, external_fs_io_cjs_namespaceObject.readJsonFile)(contractPath);
|
|
@@ -120,6 +128,10 @@ function existingTailwindEnabled(workspaceRoot) {
|
|
|
120
128
|
const shell = apps.find((app)=>(0, external_types_cjs_namespaceObject.isRecord)(app) && app.id === external_descriptors_cjs_namespaceObject.shellApp.id);
|
|
121
129
|
return shell?.styling && (0, external_types_cjs_namespaceObject.isRecord)(shell.styling) ? false !== shell.styling.tailwind : true;
|
|
122
130
|
}
|
|
131
|
+
function existingBridgeConfig(workspaceRoot) {
|
|
132
|
+
const compactPath = external_node_path_default().join(workspaceRoot, external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH);
|
|
133
|
+
return external_node_fs_default().existsSync(compactPath) ? (0, config_cjs_namespaceObject.readUltramodernConfig)(workspaceRoot).bridge : void 0;
|
|
134
|
+
}
|
|
123
135
|
function assertValidVerticalName(name) {
|
|
124
136
|
const normalized = (0, external_naming_cjs_namespaceObject.toKebabCase)(name);
|
|
125
137
|
if (!normalized || normalized !== name) throw new Error(`Invalid Vertical name "${name}". Use lowercase kebab-case.`);
|
|
@@ -132,17 +144,17 @@ function nextAvailablePort(ports) {
|
|
|
132
144
|
function assertCanCreate(workspaceRoot, relativePath) {
|
|
133
145
|
if (external_node_fs_default().existsSync(external_node_path_default().join(workspaceRoot, relativePath))) throw new Error(`Refusing to overwrite existing path: ${relativePath}`);
|
|
134
146
|
}
|
|
135
|
-
function updateRootWorkspaceScripts(workspaceRoot, scope, packageSource, remotes) {
|
|
147
|
+
function updateRootWorkspaceScripts(workspaceRoot, scope, packageSource, remotes, bridge) {
|
|
136
148
|
const packagePath = external_node_path_default().join(workspaceRoot, 'package.json');
|
|
137
149
|
const rootPackage = (0, external_fs_io_cjs_namespaceObject.readJsonFile)(packagePath);
|
|
138
|
-
const generatedRootPackage = (0, external_package_json_cjs_namespaceObject.createRootPackageJson)(scope, packageSource, remotes);
|
|
150
|
+
const generatedRootPackage = (0, external_package_json_cjs_namespaceObject.createRootPackageJson)(scope, packageSource, remotes, bridge);
|
|
139
151
|
rootPackage.scripts = generatedRootPackage.scripts;
|
|
140
152
|
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(packagePath, rootPackage);
|
|
141
153
|
}
|
|
142
|
-
function rewriteShellAppFiles(workspaceRoot, scope, packageSource, enableTailwind, remotes) {
|
|
154
|
+
function rewriteShellAppFiles(workspaceRoot, scope, packageSource, enableTailwind, remotes, bridge) {
|
|
143
155
|
const shellHost = (0, external_descriptors_cjs_namespaceObject.createShellHost)(remotes);
|
|
144
156
|
const publicWeb = (0, external_public_surface_cjs_namespaceObject.createPublicWebAppArtifacts)(shellHost);
|
|
145
|
-
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(external_node_path_default().join(workspaceRoot, `${external_descriptors_cjs_namespaceObject.shellApp.directory}/package.json`), (0, external_package_json_cjs_namespaceObject.createAppPackage)(scope, shellHost, packageSource, enableTailwind, remotes));
|
|
157
|
+
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(external_node_path_default().join(workspaceRoot, `${external_descriptors_cjs_namespaceObject.shellApp.directory}/package.json`), (0, external_package_json_cjs_namespaceObject.createAppPackage)(scope, shellHost, packageSource, enableTailwind, remotes, bridge));
|
|
146
158
|
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(external_node_path_default().join(workspaceRoot, `${external_descriptors_cjs_namespaceObject.shellApp.directory}/tsconfig.json`), (0, external_package_json_cjs_namespaceObject.createAppTsConfig)(shellHost, remotes));
|
|
147
159
|
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(external_node_path_default().join(workspaceRoot, `${external_descriptors_cjs_namespaceObject.shellApp.directory}/tsconfig.mf-types.json`), (0, external_package_json_cjs_namespaceObject.createAppMfTypesTsConfig)(shellHost));
|
|
148
160
|
(0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(workspaceRoot, `${external_descriptors_cjs_namespaceObject.shellApp.directory}/src/modern-app-env.d.ts`, (0, external_app_files_cjs_namespaceObject.createAppEnvDts)(shellHost, remotes));
|
|
@@ -261,8 +273,7 @@ function prepareAddUltramodernVertical(options) {
|
|
|
261
273
|
const topology = readRequiredJsonObject(topologyPath);
|
|
262
274
|
const ownership = readRequiredJsonObject(ownershipPath);
|
|
263
275
|
const overlay = readRequiredJsonObject(overlayPath);
|
|
264
|
-
|
|
265
|
-
readRequiredJsonObject(external_node_path_default().join(options.workspaceRoot, PACKAGE_SOURCE_METADATA_PATH));
|
|
276
|
+
readRequiredWorkspaceConfig(options.workspaceRoot);
|
|
266
277
|
assertOptionalJsonObject(topology.shell, 'topology.shell', topologyPath);
|
|
267
278
|
assertOptionalJsonArray(topology.verticals, 'topology.verticals', topologyPath);
|
|
268
279
|
assertOptionalJsonArray(ownership.owners, 'ownership.owners', ownershipPath);
|
|
@@ -273,6 +284,7 @@ function prepareAddUltramodernVertical(options) {
|
|
|
273
284
|
const scope = (0, external_naming_cjs_namespaceObject.toPackageScope)(String(rootPackage.name ?? external_node_path_default().basename(options.workspaceRoot)));
|
|
274
285
|
const packageSource = existingPackageSource(options.workspaceRoot, options.modernVersion, options.packageSource);
|
|
275
286
|
const enableTailwind = options.enableTailwind ?? existingTailwindEnabled(options.workspaceRoot);
|
|
287
|
+
const bridge = existingBridgeConfig(options.workspaceRoot);
|
|
276
288
|
const existingVerticals = verticalsFromTopology(topology, overlay.ports);
|
|
277
289
|
const port = nextAvailablePort(overlay.ports);
|
|
278
290
|
const vertical = (0, external_descriptors_cjs_namespaceObject.createVerticalDescriptor)(name, port);
|
|
@@ -300,6 +312,7 @@ function prepareAddUltramodernVertical(options) {
|
|
|
300
312
|
overlay,
|
|
301
313
|
packageSource,
|
|
302
314
|
enableTailwind,
|
|
315
|
+
bridge,
|
|
303
316
|
vertical,
|
|
304
317
|
updatedVerticals
|
|
305
318
|
};
|
|
@@ -310,6 +323,12 @@ function readRequiredJsonObject(filePath) {
|
|
|
310
323
|
if (!(0, external_types_cjs_namespaceObject.isRecord)(value)) throw new Error(`UltraModern workspace file must contain a JSON object: ${filePath}`);
|
|
311
324
|
return value;
|
|
312
325
|
}
|
|
326
|
+
function readRequiredWorkspaceConfig(workspaceRoot) {
|
|
327
|
+
const compactPath = external_node_path_default().join(workspaceRoot, external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH);
|
|
328
|
+
if (external_node_fs_default().existsSync(compactPath)) return void readRequiredJsonObject(compactPath);
|
|
329
|
+
readRequiredJsonObject(external_node_path_default().join(workspaceRoot, external_descriptors_cjs_namespaceObject.GENERATED_CONTRACT_PATH));
|
|
330
|
+
readRequiredJsonObject(external_node_path_default().join(workspaceRoot, PACKAGE_SOURCE_METADATA_PATH));
|
|
331
|
+
}
|
|
313
332
|
function assertOptionalJsonObject(value, label, filePath) {
|
|
314
333
|
if (void 0 !== value && !(0, external_types_cjs_namespaceObject.isRecord)(value)) throw new Error(`${label} in ${filePath} must be a JSON object`);
|
|
315
334
|
}
|
|
@@ -414,7 +433,7 @@ function createVerticalPlan(preflight, result) {
|
|
|
414
433
|
shellDependencyChanges: createShellDependencyChanges(scope, vertical),
|
|
415
434
|
generatedContractChanges: [
|
|
416
435
|
{
|
|
417
|
-
path: external_descriptors_cjs_namespaceObject.
|
|
436
|
+
path: external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH,
|
|
418
437
|
addedAppIds: [
|
|
419
438
|
vertical.id
|
|
420
439
|
],
|
|
@@ -501,9 +520,9 @@ function createDryRunJsonMutations(preflight, manifestUrl) {
|
|
|
501
520
|
description: 'Keep shell Module Federation DTS compilation scoped'
|
|
502
521
|
},
|
|
503
522
|
{
|
|
504
|
-
path: external_descriptors_cjs_namespaceObject.
|
|
505
|
-
pointer: '/apps',
|
|
506
|
-
description: `Regenerate
|
|
523
|
+
path: external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH,
|
|
524
|
+
pointer: '/topology/apps',
|
|
525
|
+
description: `Regenerate compact config with ${vertical.id}`
|
|
507
526
|
}
|
|
508
527
|
];
|
|
509
528
|
}
|
|
@@ -527,8 +546,8 @@ function createShellDependencyChanges(scope, vertical) {
|
|
|
527
546
|
}
|
|
528
547
|
function addUltramodernVertical(options) {
|
|
529
548
|
const beforeFiles = (0, external_generation_result_cjs_namespaceObject.createFileSnapshot)(options.workspaceRoot);
|
|
530
|
-
const { scope, topologyPath, ownershipPath, overlayPath, topology, ownership, overlay, packageSource, enableTailwind, vertical, updatedVerticals } = prepareAddUltramodernVertical(options);
|
|
531
|
-
(0, external_write_workspace_cjs_namespaceObject.writeApp)(options.workspaceRoot, scope, vertical, packageSource, enableTailwind);
|
|
549
|
+
const { scope, topologyPath, ownershipPath, overlayPath, topology, ownership, overlay, packageSource, enableTailwind, bridge, vertical, updatedVerticals } = prepareAddUltramodernVertical(options);
|
|
550
|
+
(0, external_write_workspace_cjs_namespaceObject.writeApp)(options.workspaceRoot, scope, vertical, packageSource, enableTailwind, updatedVerticals, bridge);
|
|
532
551
|
topology.shell ??= {};
|
|
533
552
|
topology.shell.verticalRefs ??= [];
|
|
534
553
|
topology.shell.verticalRefs.push(vertical.id);
|
|
@@ -551,18 +570,18 @@ function addUltramodernVertical(options) {
|
|
|
551
570
|
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(topologyPath, topology);
|
|
552
571
|
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(ownershipPath, ownership);
|
|
553
572
|
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(overlayPath, overlay);
|
|
554
|
-
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(external_node_path_default().join(options.workspaceRoot, external_descriptors_cjs_namespaceObject.
|
|
573
|
+
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(external_node_path_default().join(options.workspaceRoot, external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH), (0, external_write_workspace_cjs_namespaceObject.createCompactUltramodernConfig)(scope, options.modernVersion, packageSource, [
|
|
555
574
|
{
|
|
556
575
|
...external_descriptors_cjs_namespaceObject.shellApp,
|
|
557
576
|
verticalRefs: updatedVerticals.map((vertical)=>vertical.id)
|
|
558
577
|
},
|
|
559
578
|
...updatedVerticals
|
|
560
|
-
], enableTailwind));
|
|
561
|
-
rewriteShellAppFiles(options.workspaceRoot, scope, packageSource, enableTailwind, updatedVerticals);
|
|
579
|
+
], enableTailwind, bridge));
|
|
580
|
+
rewriteShellAppFiles(options.workspaceRoot, scope, packageSource, enableTailwind, updatedVerticals, bridge);
|
|
562
581
|
(0, external_workspace_scripts_cjs_namespaceObject.writeGeneratedWorkspaceScripts)(options.workspaceRoot, scope, enableTailwind, updatedVerticals);
|
|
563
582
|
addShellZephyrDependency(options.workspaceRoot, scope, vertical);
|
|
564
583
|
addShellWorkspaceDependency(options.workspaceRoot, scope, vertical);
|
|
565
|
-
updateRootWorkspaceScripts(options.workspaceRoot, scope, packageSource, updatedVerticals);
|
|
584
|
+
updateRootWorkspaceScripts(options.workspaceRoot, scope, packageSource, updatedVerticals, bridge);
|
|
566
585
|
(0, external_fs_io_cjs_namespaceObject.writeJsonFile)(external_node_path_default().join(options.workspaceRoot, 'tsconfig.json'), (0, external_package_json_cjs_namespaceObject.createRootTsConfig)([
|
|
567
586
|
{
|
|
568
587
|
...external_descriptors_cjs_namespaceObject.shellApp,
|
|
@@ -595,6 +614,7 @@ exports.addShellZephyrDependency = __webpack_exports__.addShellZephyrDependency;
|
|
|
595
614
|
exports.addUltramodernVertical = __webpack_exports__.addUltramodernVertical;
|
|
596
615
|
exports.assertCanCreate = __webpack_exports__.assertCanCreate;
|
|
597
616
|
exports.assertValidVerticalName = __webpack_exports__.assertValidVerticalName;
|
|
617
|
+
exports.existingBridgeConfig = __webpack_exports__.existingBridgeConfig;
|
|
598
618
|
exports.existingPackageSource = __webpack_exports__.existingPackageSource;
|
|
599
619
|
exports.existingTailwindEnabled = __webpack_exports__.existingTailwindEnabled;
|
|
600
620
|
exports.nextAvailablePort = __webpack_exports__.nextAvailablePort;
|
|
@@ -611,6 +631,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
611
631
|
"addUltramodernVertical",
|
|
612
632
|
"assertCanCreate",
|
|
613
633
|
"assertValidVerticalName",
|
|
634
|
+
"existingBridgeConfig",
|
|
614
635
|
"existingPackageSource",
|
|
615
636
|
"existingTailwindEnabled",
|
|
616
637
|
"nextAvailablePort",
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
})();
|
|
18
|
+
(()=>{
|
|
19
|
+
__webpack_require__.r = (exports1)=>{
|
|
20
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
+
value: 'Module'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: true
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
var __webpack_exports__ = {};
|
|
29
|
+
__webpack_require__.r(__webpack_exports__);
|
|
30
|
+
const ultramodernBridgeCliFlags = {
|
|
31
|
+
enabled: '--bridge',
|
|
32
|
+
parentRoot: '--bridge-parent-root',
|
|
33
|
+
workspacePackage: '--bridge-workspace-package',
|
|
34
|
+
workspacePackageName: '--bridge-workspace-package-name',
|
|
35
|
+
testAlias: '--bridge-test-alias',
|
|
36
|
+
dependency: '--bridge-dependency',
|
|
37
|
+
lockfilePolicy: '--bridge-lockfile-policy',
|
|
38
|
+
gate: '--bridge-gate',
|
|
39
|
+
gateCwd: '--bridge-gate-cwd',
|
|
40
|
+
reactSingleton: '--bridge-react-singleton'
|
|
41
|
+
};
|
|
42
|
+
const ultramodernBridgeCliValueFlags = [
|
|
43
|
+
ultramodernBridgeCliFlags.parentRoot,
|
|
44
|
+
ultramodernBridgeCliFlags.workspacePackage,
|
|
45
|
+
ultramodernBridgeCliFlags.workspacePackageName,
|
|
46
|
+
ultramodernBridgeCliFlags.testAlias,
|
|
47
|
+
ultramodernBridgeCliFlags.dependency,
|
|
48
|
+
ultramodernBridgeCliFlags.lockfilePolicy,
|
|
49
|
+
ultramodernBridgeCliFlags.gate,
|
|
50
|
+
ultramodernBridgeCliFlags.gateCwd,
|
|
51
|
+
ultramodernBridgeCliFlags.reactSingleton
|
|
52
|
+
];
|
|
53
|
+
const ultramodernBridgeCliBooleanFlags = [
|
|
54
|
+
ultramodernBridgeCliFlags.enabled
|
|
55
|
+
];
|
|
56
|
+
const ultramodernBridgeLockfilePolicies = [
|
|
57
|
+
'nested',
|
|
58
|
+
'parent'
|
|
59
|
+
];
|
|
60
|
+
const defaultReactSingletons = [
|
|
61
|
+
'react',
|
|
62
|
+
'react-dom'
|
|
63
|
+
];
|
|
64
|
+
function hasUltramodernBridgeCliOptions(args) {
|
|
65
|
+
return args.some((arg)=>[
|
|
66
|
+
...ultramodernBridgeCliBooleanFlags,
|
|
67
|
+
...ultramodernBridgeCliValueFlags
|
|
68
|
+
].some((flag)=>arg === flag || arg.startsWith(`${flag}=`)));
|
|
69
|
+
}
|
|
70
|
+
function parseUltramodernBridgeCliOptions(args) {
|
|
71
|
+
rejectBooleanFlagValues(args);
|
|
72
|
+
if (!hasUltramodernBridgeCliOptions(args)) return;
|
|
73
|
+
const parentRoot = readSingleValue(args, ultramodernBridgeCliFlags.parentRoot);
|
|
74
|
+
const lockfilePolicy = readSingleValue(args, ultramodernBridgeCliFlags.lockfilePolicy) ?? 'nested';
|
|
75
|
+
const workspacePackages = readWorkspacePackages(args);
|
|
76
|
+
const gates = readBridgeGates(args);
|
|
77
|
+
const reactSingletons = readCsvOptionValues(args, ultramodernBridgeCliFlags.reactSingleton);
|
|
78
|
+
return normalizeUltramodernBridgeConfig({
|
|
79
|
+
enabled: true,
|
|
80
|
+
parentRoot: requireNonEmptyValue(parentRoot, ultramodernBridgeCliFlags.parentRoot),
|
|
81
|
+
workspacePackages,
|
|
82
|
+
dependencies: readCsvOptionValues(args, ultramodernBridgeCliFlags.dependency),
|
|
83
|
+
lockfilePolicy: parseLockfilePolicy(lockfilePolicy),
|
|
84
|
+
gates,
|
|
85
|
+
reactSingletons: reactSingletons.length > 0 ? reactSingletons : void 0
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function normalizeUltramodernBridgeConfig(bridge) {
|
|
89
|
+
if (!bridge || false === bridge.enabled) return;
|
|
90
|
+
const parentRoot = requireNonEmptyValue(bridge.parentRoot, 'bridge.parentRoot');
|
|
91
|
+
const workspacePackages = normalizeWorkspacePackages(bridge.workspacePackages);
|
|
92
|
+
const dependencies = uniqueNonEmptyValues(bridge.dependencies, 'bridge.dependencies');
|
|
93
|
+
const gates = normalizeBridgeGates(bridge.gates);
|
|
94
|
+
const reactSingletons = bridge.reactSingletons && bridge.reactSingletons.length > 0 ? uniqueNonEmptyValues(bridge.reactSingletons, 'bridge.reactSingletons') : [
|
|
95
|
+
...defaultReactSingletons
|
|
96
|
+
];
|
|
97
|
+
if (0 === workspacePackages.length) throw new Error('Bridge mode requires at least one bridge.workspacePackages entry.');
|
|
98
|
+
if (0 === dependencies.length) throw new Error('Bridge mode requires at least one explicit bridge.dependencies package name.');
|
|
99
|
+
if (0 === gates.length) throw new Error('Bridge mode requires at least one bridge.gates delegated parent command.');
|
|
100
|
+
validateParentPackageCoverage(workspacePackages, dependencies);
|
|
101
|
+
validateReactSingletons(reactSingletons);
|
|
102
|
+
return {
|
|
103
|
+
enabled: true,
|
|
104
|
+
parentRoot,
|
|
105
|
+
workspacePackages,
|
|
106
|
+
dependencies,
|
|
107
|
+
lockfilePolicy: parseLockfilePolicy(bridge.lockfilePolicy ?? 'nested'),
|
|
108
|
+
gates,
|
|
109
|
+
reactSingletons
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function rejectBooleanFlagValues(args) {
|
|
113
|
+
for (const flag of ultramodernBridgeCliBooleanFlags)if (args.some((arg)=>arg.startsWith(`${flag}=`))) throw new Error(`${flag} does not accept a value.`);
|
|
114
|
+
}
|
|
115
|
+
function readRepeatedOptionValues(args, flag) {
|
|
116
|
+
const values = [];
|
|
117
|
+
for(let index = 0; index < args.length; index++){
|
|
118
|
+
const arg = args[index];
|
|
119
|
+
if (arg === flag) {
|
|
120
|
+
const value = args[index + 1];
|
|
121
|
+
if (!value || value.startsWith('-')) throw new Error(`${flag} requires a value.`);
|
|
122
|
+
values.push(value);
|
|
123
|
+
index += 1;
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
if (arg.startsWith(`${flag}=`)) values.push(arg.slice(flag.length + 1));
|
|
127
|
+
}
|
|
128
|
+
return values;
|
|
129
|
+
}
|
|
130
|
+
function readSingleValue(args, flag) {
|
|
131
|
+
const values = readRepeatedOptionValues(args, flag);
|
|
132
|
+
if (values.length > 1) throw new Error(`${flag} can be provided only once.`);
|
|
133
|
+
return values[0];
|
|
134
|
+
}
|
|
135
|
+
function readCsvOptionValues(args, flag) {
|
|
136
|
+
return readRepeatedOptionValues(args, flag).flatMap((value)=>value.split(',').map((entry)=>entry.trim()).filter(Boolean));
|
|
137
|
+
}
|
|
138
|
+
function requireNonEmptyValue(value, label) {
|
|
139
|
+
if ('string' != typeof value || 0 === value.trim().length) throw new Error(`${label} must be a non-empty string.`);
|
|
140
|
+
return value.trim();
|
|
141
|
+
}
|
|
142
|
+
function parseLockfilePolicy(value) {
|
|
143
|
+
if (!ultramodernBridgeLockfilePolicies.includes(value)) throw new Error(`${ultramodernBridgeCliFlags.lockfilePolicy} must be "nested" or "parent".`);
|
|
144
|
+
return value;
|
|
145
|
+
}
|
|
146
|
+
function readWorkspacePackages(args) {
|
|
147
|
+
const drafts = new Map();
|
|
148
|
+
const getDraft = (pattern)=>{
|
|
149
|
+
const normalizedPattern = requireNonEmptyValue(pattern, ultramodernBridgeCliFlags.workspacePackage);
|
|
150
|
+
const existing = drafts.get(normalizedPattern);
|
|
151
|
+
if (existing) return existing;
|
|
152
|
+
const draft = {
|
|
153
|
+
pattern: normalizedPattern,
|
|
154
|
+
packageNames: [],
|
|
155
|
+
testAliases: []
|
|
156
|
+
};
|
|
157
|
+
drafts.set(normalizedPattern, draft);
|
|
158
|
+
return draft;
|
|
159
|
+
};
|
|
160
|
+
for (const pattern of readRepeatedOptionValues(args, ultramodernBridgeCliFlags.workspacePackage))getDraft(pattern);
|
|
161
|
+
for (const value of readRepeatedOptionValues(args, ultramodernBridgeCliFlags.workspacePackageName)){
|
|
162
|
+
const { left: pattern, right: packageNames } = splitAssignment(value, ultramodernBridgeCliFlags.workspacePackageName, '<pattern>=<package-name>[,<package-name>]');
|
|
163
|
+
getDraft(pattern).packageNames.push(...packageNames.split(',').map((packageName)=>packageName.trim()).filter(Boolean));
|
|
164
|
+
}
|
|
165
|
+
for (const value of readRepeatedOptionValues(args, ultramodernBridgeCliFlags.testAlias)){
|
|
166
|
+
const separator = value.indexOf(':');
|
|
167
|
+
if (-1 === separator) throw new Error(`${ultramodernBridgeCliFlags.testAlias} must use <pattern>:<alias>=<target>.`);
|
|
168
|
+
const pattern = value.slice(0, separator);
|
|
169
|
+
const aliasDefinition = value.slice(separator + 1);
|
|
170
|
+
const { left: alias, right: target } = splitAssignment(aliasDefinition, ultramodernBridgeCliFlags.testAlias, '<pattern>:<alias>=<target>');
|
|
171
|
+
getDraft(pattern).testAliases.push({
|
|
172
|
+
alias: requireNonEmptyValue(alias, `${ultramodernBridgeCliFlags.testAlias} alias`),
|
|
173
|
+
target: requireNonEmptyValue(target, `${ultramodernBridgeCliFlags.testAlias} target`)
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
return normalizeWorkspacePackages([
|
|
177
|
+
...drafts.values()
|
|
178
|
+
]);
|
|
179
|
+
}
|
|
180
|
+
function readBridgeGates(args) {
|
|
181
|
+
const gates = new Map();
|
|
182
|
+
const getGate = (name)=>{
|
|
183
|
+
const normalizedName = requireNonEmptyValue(name, `${ultramodernBridgeCliFlags.gate} name`);
|
|
184
|
+
const existing = gates.get(normalizedName);
|
|
185
|
+
if (existing) return existing;
|
|
186
|
+
const draft = {
|
|
187
|
+
name: normalizedName
|
|
188
|
+
};
|
|
189
|
+
gates.set(normalizedName, draft);
|
|
190
|
+
return draft;
|
|
191
|
+
};
|
|
192
|
+
for (const value of readRepeatedOptionValues(args, ultramodernBridgeCliFlags.gate)){
|
|
193
|
+
const { left: name, right: command } = splitAssignment(value, ultramodernBridgeCliFlags.gate, '<name>=<command>');
|
|
194
|
+
getGate(name).command = requireNonEmptyValue(command, `${ultramodernBridgeCliFlags.gate} command`);
|
|
195
|
+
}
|
|
196
|
+
for (const value of readRepeatedOptionValues(args, ultramodernBridgeCliFlags.gateCwd)){
|
|
197
|
+
const { left: name, right: cwd } = splitAssignment(value, ultramodernBridgeCliFlags.gateCwd, '<name>=<cwd>');
|
|
198
|
+
getGate(name).cwd = requireNonEmptyValue(cwd, `${ultramodernBridgeCliFlags.gateCwd} cwd`);
|
|
199
|
+
}
|
|
200
|
+
const missingCommand = [
|
|
201
|
+
...gates.values()
|
|
202
|
+
].find((gate)=>!gate.command);
|
|
203
|
+
if (missingCommand) throw new Error(`${ultramodernBridgeCliFlags.gateCwd} references "${missingCommand.name}" without a matching ${ultramodernBridgeCliFlags.gate}.`);
|
|
204
|
+
return normalizeBridgeGates([
|
|
205
|
+
...gates.values()
|
|
206
|
+
].map((gate)=>({
|
|
207
|
+
name: gate.name,
|
|
208
|
+
command: gate.command,
|
|
209
|
+
cwd: gate.cwd
|
|
210
|
+
})));
|
|
211
|
+
}
|
|
212
|
+
function splitAssignment(value, flag, usage) {
|
|
213
|
+
const separator = value.indexOf('=');
|
|
214
|
+
if (-1 === separator) throw new Error(`${flag} must use ${usage}.`);
|
|
215
|
+
return {
|
|
216
|
+
left: value.slice(0, separator),
|
|
217
|
+
right: value.slice(separator + 1)
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
function normalizeWorkspacePackages(workspacePackages) {
|
|
221
|
+
return workspacePackages.map((entry, index)=>{
|
|
222
|
+
const label = `bridge.workspacePackages[${index}]`;
|
|
223
|
+
const packageNames = entry.packageNames && entry.packageNames.length > 0 ? uniqueNonEmptyValues(entry.packageNames, `${label}.packageNames`) : void 0;
|
|
224
|
+
const testAliases = entry.testAliases && entry.testAliases.length > 0 ? normalizeTestAliases(entry.testAliases, label) : void 0;
|
|
225
|
+
return {
|
|
226
|
+
pattern: requireNonEmptyValue(entry.pattern, `${label}.pattern`),
|
|
227
|
+
...packageNames ? {
|
|
228
|
+
packageNames
|
|
229
|
+
} : {},
|
|
230
|
+
...testAliases ? {
|
|
231
|
+
testAliases
|
|
232
|
+
} : {}
|
|
233
|
+
};
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
function validateParentPackageCoverage(workspacePackages, dependencies) {
|
|
237
|
+
const declaredPackages = new Set();
|
|
238
|
+
for (const [index, entry] of workspacePackages.entries()){
|
|
239
|
+
const label = `bridge.workspacePackages[${index}]`;
|
|
240
|
+
const packageNames = entry.packageNames ?? [];
|
|
241
|
+
if (0 === packageNames.length && (entry.testAliases ?? []).length > 0) throw new Error(`${label}.packageNames must declare the parent package names covered by "${entry.pattern}" before testAliases can be checked.`);
|
|
242
|
+
for (const packageName of packageNames)declaredPackages.add(packageName);
|
|
243
|
+
for (const alias of entry.testAliases ?? []){
|
|
244
|
+
if (!packageNames.some((packageName)=>aliasMatchesPackage(alias.alias, packageName))) throw new Error(`${label}.testAliases entry "${alias.alias}" must match one of ${label}.packageNames.`);
|
|
245
|
+
if (pointsAtBuildOutput(alias.target)) throw new Error(`${label}.testAliases target "${alias.target}" must point at source files, not dist output.`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
const missingDependencies = dependencies.filter((dependency)=>!declaredPackages.has(dependency));
|
|
249
|
+
if (declaredPackages.size > 0 && missingDependencies.length > 0) throw new Error(`Bridge mode dependencies must be declared by bridge.workspacePackages[].packageNames: ${missingDependencies.join(', ')}.`);
|
|
250
|
+
}
|
|
251
|
+
function aliasMatchesPackage(alias, packageName) {
|
|
252
|
+
return alias === packageName || alias.startsWith(`${packageName}/`);
|
|
253
|
+
}
|
|
254
|
+
function pointsAtBuildOutput(target) {
|
|
255
|
+
return target.split(/[\\/]/u).includes('dist');
|
|
256
|
+
}
|
|
257
|
+
function validateReactSingletons(reactSingletons) {
|
|
258
|
+
const missing = defaultReactSingletons.filter((packageName)=>!reactSingletons.includes(packageName));
|
|
259
|
+
if (missing.length > 0) throw new Error(`Bridge mode React singleton/dedupe declarations must include ${defaultReactSingletons.join(' and ')}. Missing: ${missing.join(', ')}.`);
|
|
260
|
+
}
|
|
261
|
+
function normalizeTestAliases(testAliases, parentLabel) {
|
|
262
|
+
const aliases = new Map();
|
|
263
|
+
for (const [index, alias] of testAliases.entries()){
|
|
264
|
+
const label = `${parentLabel}.testAliases[${index}]`;
|
|
265
|
+
const normalizedAlias = requireNonEmptyValue(alias.alias, `${label}.alias`);
|
|
266
|
+
aliases.set(normalizedAlias, {
|
|
267
|
+
alias: normalizedAlias,
|
|
268
|
+
target: requireNonEmptyValue(alias.target, `${label}.target`)
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
return [
|
|
272
|
+
...aliases.values()
|
|
273
|
+
];
|
|
274
|
+
}
|
|
275
|
+
function normalizeBridgeGates(gates) {
|
|
276
|
+
const normalized = new Map();
|
|
277
|
+
for (const [index, gate] of gates.entries()){
|
|
278
|
+
const label = `bridge.gates[${index}]`;
|
|
279
|
+
const name = requireNonEmptyValue(gate.name, `${label}.name`);
|
|
280
|
+
normalized.set(name, {
|
|
281
|
+
name,
|
|
282
|
+
command: requireNonEmptyValue(gate.command, `${label}.command`),
|
|
283
|
+
...gate.cwd ? {
|
|
284
|
+
cwd: requireNonEmptyValue(gate.cwd, `${label}.cwd`)
|
|
285
|
+
} : {}
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
return [
|
|
289
|
+
...normalized.values()
|
|
290
|
+
];
|
|
291
|
+
}
|
|
292
|
+
function uniqueNonEmptyValues(values, label) {
|
|
293
|
+
const unique = new Set();
|
|
294
|
+
for (const [index, value] of values.entries())unique.add(requireNonEmptyValue(value, `${label}[${index}]`));
|
|
295
|
+
return [
|
|
296
|
+
...unique
|
|
297
|
+
];
|
|
298
|
+
}
|
|
299
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
300
|
+
hasUltramodernBridgeCliOptions: ()=>hasUltramodernBridgeCliOptions,
|
|
301
|
+
normalizeUltramodernBridgeConfig: ()=>normalizeUltramodernBridgeConfig,
|
|
302
|
+
parseUltramodernBridgeCliOptions: ()=>parseUltramodernBridgeCliOptions
|
|
303
|
+
}, {
|
|
304
|
+
ultramodernBridgeCliBooleanFlags: ultramodernBridgeCliBooleanFlags,
|
|
305
|
+
ultramodernBridgeCliFlags: ultramodernBridgeCliFlags,
|
|
306
|
+
ultramodernBridgeCliValueFlags: ultramodernBridgeCliValueFlags,
|
|
307
|
+
ultramodernBridgeLockfilePolicies: ultramodernBridgeLockfilePolicies
|
|
308
|
+
});
|
|
309
|
+
exports.hasUltramodernBridgeCliOptions = __webpack_exports__.hasUltramodernBridgeCliOptions;
|
|
310
|
+
exports.normalizeUltramodernBridgeConfig = __webpack_exports__.normalizeUltramodernBridgeConfig;
|
|
311
|
+
exports.parseUltramodernBridgeCliOptions = __webpack_exports__.parseUltramodernBridgeCliOptions;
|
|
312
|
+
exports.ultramodernBridgeCliBooleanFlags = __webpack_exports__.ultramodernBridgeCliBooleanFlags;
|
|
313
|
+
exports.ultramodernBridgeCliFlags = __webpack_exports__.ultramodernBridgeCliFlags;
|
|
314
|
+
exports.ultramodernBridgeCliValueFlags = __webpack_exports__.ultramodernBridgeCliValueFlags;
|
|
315
|
+
exports.ultramodernBridgeLockfilePolicies = __webpack_exports__.ultramodernBridgeLockfilePolicies;
|
|
316
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
317
|
+
"hasUltramodernBridgeCliOptions",
|
|
318
|
+
"normalizeUltramodernBridgeConfig",
|
|
319
|
+
"parseUltramodernBridgeCliOptions",
|
|
320
|
+
"ultramodernBridgeCliBooleanFlags",
|
|
321
|
+
"ultramodernBridgeCliFlags",
|
|
322
|
+
"ultramodernBridgeCliValueFlags",
|
|
323
|
+
"ultramodernBridgeLockfilePolicies"
|
|
324
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
325
|
+
Object.defineProperty(exports, '__esModule', {
|
|
326
|
+
value: true
|
|
327
|
+
});
|