@bleedingdev/modern-js-ultramodern-create 3.9.0-ultramodern.2 → 3.9.0-ultramodern.21
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 +43 -74
- package/dist/cjs/cli/package-source.cjs +2 -2
- package/dist/cjs/cli/project-setup.cjs +2 -22
- package/dist/cjs/index.cjs +9 -1
- package/dist/cjs/locale/en.cjs +2 -1
- package/dist/cjs/locale/zh.cjs +2 -1
- package/dist/cjs/ultramodern-package-source.cjs +13 -9
- package/dist/cjs/ultramodern-release-cohort.cjs +6 -21
- package/dist/cjs/ultramodern-tooling/commands/cloudflare-output-verify.cjs +49 -56
- package/dist/cjs/ultramodern-tooling/commands/context.cjs +11 -29
- package/dist/cjs/ultramodern-tooling/commands/routes-generate-app.cjs +67 -0
- package/dist/cjs/ultramodern-tooling/commands/routes-generate.cjs +24 -53
- package/dist/cjs/ultramodern-tooling/commands/validate.cjs +5 -11
- package/dist/cjs/ultramodern-tooling/commands.cjs +15 -8
- package/dist/cjs/ultramodern-tooling/config/index.cjs +10 -24
- package/dist/cjs/ultramodern-tooling/config/load.cjs +12 -10
- package/dist/cjs/ultramodern-tooling/config/metadata.cjs +34 -32
- package/dist/cjs/ultramodern-tooling/config/normalize.cjs +165 -164
- package/dist/cjs/ultramodern-workspace/add-shell.cjs +118 -118
- package/dist/cjs/ultramodern-workspace/add-vertical/execute.cjs +121 -25
- package/dist/cjs/ultramodern-workspace/add-vertical/plan.cjs +14 -160
- package/dist/cjs/ultramodern-workspace/add-vertical/preflight.cjs +16 -48
- package/dist/cjs/ultramodern-workspace/add-vertical/preview.cjs +78 -0
- package/dist/cjs/ultramodern-workspace/add-vertical/shell-files.cjs +87 -24
- package/dist/cjs/ultramodern-workspace/add-vertical/topology.cjs +4 -1
- package/dist/cjs/ultramodern-workspace/add-vertical/transaction.cjs +378 -45
- package/dist/cjs/ultramodern-workspace/add-vertical/workspace-state.cjs +21 -44
- package/dist/cjs/ultramodern-workspace/add-vertical.cjs +0 -9
- package/dist/cjs/ultramodern-workspace/api/client.cjs +5 -5
- package/dist/cjs/ultramodern-workspace/api/contracts.cjs +2 -2
- package/dist/cjs/ultramodern-workspace/api/rpc.cjs +20 -18
- package/dist/cjs/ultramodern-workspace/api/service.cjs +49 -24
- package/dist/cjs/ultramodern-workspace/api/shared.cjs +28 -18
- package/dist/cjs/ultramodern-workspace/app-files.cjs +3 -23
- package/dist/cjs/ultramodern-workspace/backend-federation.cjs +27 -27
- package/dist/cjs/ultramodern-workspace/contracts.cjs +14 -183
- package/dist/cjs/ultramodern-workspace/delivery-unit-schema/surfaces.cjs +85 -0
- package/dist/cjs/ultramodern-workspace/delivery-unit-schema/types.cjs +8 -85
- package/dist/cjs/ultramodern-workspace/delivery-unit-stamp.cjs +16 -4
- package/dist/cjs/ultramodern-workspace/delivery-unit-sync.cjs +27 -17
- package/dist/cjs/ultramodern-workspace/delivery-unit.cjs +16 -10
- package/dist/cjs/ultramodern-workspace/demo-components.cjs +66 -433
- package/dist/cjs/ultramodern-workspace/descriptors.cjs +0 -4
- package/dist/cjs/ultramodern-workspace/fs-io.cjs +37 -2
- package/dist/cjs/ultramodern-workspace/generation-result.cjs +4 -4
- package/dist/cjs/ultramodern-workspace/index.cjs +2 -5
- package/dist/cjs/ultramodern-workspace/mf-validation/constants.cjs +0 -6
- package/dist/cjs/ultramodern-workspace/mf-validation/discovery.cjs +6 -6
- package/dist/cjs/{ultramodern-tooling/commands/migrate-strict-effect/generated-patches.cjs → ultramodern-workspace/mf-validation/exposes.cjs} +13 -17
- package/dist/cjs/ultramodern-workspace/mf-validation/inspect.cjs +26 -7
- package/dist/cjs/ultramodern-workspace/mf-validation/object-literal.cjs +21 -122
- package/dist/cjs/ultramodern-workspace/mf-validation/path-utils.cjs +37 -38
- package/dist/cjs/ultramodern-workspace/mf-validation/syntax.cjs +93 -153
- package/dist/cjs/ultramodern-workspace/mf-validation.cjs +4 -0
- package/dist/cjs/ultramodern-workspace/module-federation/config.cjs +24 -29
- package/dist/cjs/ultramodern-workspace/module-federation/reexport-module.cjs +39 -58
- package/dist/cjs/ultramodern-workspace/module-federation/remote-refs.cjs +1 -43
- package/dist/cjs/ultramodern-workspace/package-json.cjs +63 -37
- package/dist/cjs/ultramodern-workspace/patch-inventory.cjs +104 -0
- package/dist/cjs/ultramodern-workspace/policy.cjs +3 -577
- package/dist/cjs/ultramodern-workspace/public-surface.cjs +3 -3
- package/dist/cjs/ultramodern-workspace/routes.cjs +2 -11
- package/dist/cjs/ultramodern-workspace/shared-patches.cjs +12 -2
- package/dist/cjs/ultramodern-workspace/shells.cjs +0 -70
- package/dist/cjs/ultramodern-workspace/tooling-command-catalog.cjs +27 -41
- package/dist/cjs/ultramodern-workspace/tsconfigs.cjs +8 -2
- package/dist/cjs/ultramodern-workspace/validation/architecture.cjs +397 -0
- package/dist/cjs/ultramodern-workspace/validation/assertions.cjs +140 -0
- package/dist/cjs/ultramodern-workspace/validation/types.cjs +18 -0
- package/dist/cjs/ultramodern-workspace/validation/workspace.cjs +344 -0
- package/dist/cjs/ultramodern-workspace/versions.cjs +81 -45
- package/dist/cjs/ultramodern-workspace/workspace-artifact-ownership.cjs +183 -0
- package/dist/cjs/ultramodern-workspace/workspace-script-plan.cjs +36 -25
- package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +11 -200
- package/dist/cjs/ultramodern-workspace/workspace-validation-contract.cjs +62 -373
- package/dist/cjs/ultramodern-workspace/write-app.cjs +19 -11
- package/dist/cjs/ultramodern-workspace/write-workspace.cjs +20 -50
- package/dist/cjs/ultramodern-workspace/zerops.cjs +2 -0
- package/dist/esm/cli/package-source.js +3 -3
- package/dist/esm/cli/project-setup.js +2 -22
- package/dist/esm/index.js +10 -2
- package/dist/esm/locale/en.js +2 -1
- package/dist/esm/locale/zh.js +2 -1
- package/dist/esm/ultramodern-package-source.js +14 -4
- package/dist/esm/ultramodern-release-cohort.js +5 -14
- package/dist/esm/ultramodern-tooling/commands/cloudflare-output-verify.js +49 -56
- package/dist/esm/ultramodern-tooling/commands/context.js +10 -26
- package/dist/esm/ultramodern-tooling/commands/routes-generate-app.js +35 -0
- package/dist/esm/ultramodern-tooling/commands/routes-generate.js +25 -54
- package/dist/esm/ultramodern-tooling/commands/validate.js +6 -12
- package/dist/esm/ultramodern-tooling/commands.js +15 -9
- package/dist/esm/ultramodern-tooling/config/index.js +0 -2
- package/dist/esm/ultramodern-tooling/config/load.js +9 -9
- package/dist/esm/ultramodern-tooling/config/metadata.js +33 -28
- package/dist/esm/ultramodern-tooling/config/normalize.js +159 -156
- package/dist/esm/ultramodern-workspace/add-shell.js +124 -123
- package/dist/esm/ultramodern-workspace/add-vertical/execute.js +119 -27
- package/dist/esm/ultramodern-workspace/add-vertical/plan.js +16 -150
- package/dist/esm/ultramodern-workspace/add-vertical/preflight.js +15 -47
- package/dist/esm/ultramodern-workspace/add-vertical/preview.js +40 -0
- package/dist/esm/ultramodern-workspace/add-vertical/shell-files.js +87 -25
- package/dist/esm/ultramodern-workspace/add-vertical/topology.js +4 -1
- package/dist/esm/ultramodern-workspace/add-vertical/transaction.js +373 -46
- package/dist/esm/ultramodern-workspace/add-vertical/workspace-state.js +17 -34
- package/dist/esm/ultramodern-workspace/add-vertical.js +1 -1
- package/dist/esm/ultramodern-workspace/api/client.js +5 -5
- package/dist/esm/ultramodern-workspace/api/contracts.js +2 -2
- package/dist/esm/ultramodern-workspace/api/rpc.js +20 -18
- package/dist/esm/ultramodern-workspace/api/service.js +49 -24
- package/dist/esm/ultramodern-workspace/api/shared.js +28 -18
- package/dist/esm/ultramodern-workspace/app-files.js +3 -23
- package/dist/esm/ultramodern-workspace/backend-federation.js +5 -5
- package/dist/esm/ultramodern-workspace/contracts.js +14 -180
- package/dist/esm/ultramodern-workspace/delivery-unit-schema/surfaces.js +41 -0
- package/dist/esm/ultramodern-workspace/delivery-unit-schema/types.js +1 -75
- package/dist/esm/ultramodern-workspace/delivery-unit-stamp.js +16 -4
- package/dist/esm/ultramodern-workspace/delivery-unit-sync.js +28 -18
- package/dist/esm/ultramodern-workspace/delivery-unit.js +12 -6
- package/dist/esm/ultramodern-workspace/demo-components.js +67 -428
- package/dist/esm/ultramodern-workspace/descriptors.js +1 -2
- package/dist/esm/ultramodern-workspace/fs-io.js +37 -2
- package/dist/esm/ultramodern-workspace/generation-result.js +3 -3
- package/dist/esm/ultramodern-workspace/index.js +1 -1
- package/dist/esm/ultramodern-workspace/mf-validation/constants.js +1 -4
- package/dist/esm/ultramodern-workspace/mf-validation/discovery.js +7 -7
- package/dist/esm/ultramodern-workspace/mf-validation/exposes.js +14 -0
- package/dist/esm/ultramodern-workspace/mf-validation/inspect.js +27 -8
- package/dist/esm/ultramodern-workspace/mf-validation/object-literal.js +22 -123
- package/dist/esm/ultramodern-workspace/mf-validation/path-utils.js +36 -34
- package/dist/esm/ultramodern-workspace/mf-validation/syntax.js +83 -143
- package/dist/esm/ultramodern-workspace/mf-validation.js +1 -0
- package/dist/esm/ultramodern-workspace/module-federation/config.js +25 -30
- package/dist/esm/ultramodern-workspace/module-federation/reexport-module.js +39 -58
- package/dist/esm/ultramodern-workspace/module-federation/remote-refs.js +1 -43
- package/dist/esm/ultramodern-workspace/package-json.js +58 -32
- package/dist/esm/ultramodern-workspace/patch-inventory.js +66 -0
- package/dist/esm/ultramodern-workspace/policy.js +2 -564
- package/dist/esm/ultramodern-workspace/public-surface.js +3 -3
- package/dist/esm/ultramodern-workspace/routes.js +2 -11
- package/dist/esm/ultramodern-workspace/shared-patches.js +2 -2
- package/dist/esm/ultramodern-workspace/shells.js +3 -67
- package/dist/esm/ultramodern-workspace/tooling-command-catalog.js +22 -37
- package/dist/esm/ultramodern-workspace/tsconfigs.js +9 -3
- package/dist/esm/ultramodern-workspace/validation/architecture.js +348 -0
- package/dist/esm/ultramodern-workspace/validation/assertions.js +65 -0
- package/dist/esm/ultramodern-workspace/validation/types.js +0 -0
- package/dist/esm/ultramodern-workspace/validation/workspace.js +286 -0
- package/dist/esm/ultramodern-workspace/versions.js +74 -29
- package/dist/esm/ultramodern-workspace/workspace-artifact-ownership.js +128 -0
- package/dist/esm/ultramodern-workspace/workspace-script-plan.js +35 -27
- package/dist/esm/ultramodern-workspace/workspace-scripts.js +10 -190
- package/dist/esm/ultramodern-workspace/workspace-validation-contract.js +65 -376
- package/dist/esm/ultramodern-workspace/write-app.js +18 -10
- package/dist/esm/ultramodern-workspace/write-workspace.js +25 -52
- package/dist/esm/ultramodern-workspace/zerops.js +2 -0
- package/dist/esm-node/cli/package-source.js +3 -3
- package/dist/esm-node/cli/project-setup.js +2 -22
- package/dist/esm-node/index.js +10 -2
- package/dist/esm-node/locale/en.js +2 -1
- package/dist/esm-node/locale/zh.js +2 -1
- package/dist/esm-node/ultramodern-package-source.js +14 -4
- package/dist/esm-node/ultramodern-release-cohort.js +5 -14
- package/dist/esm-node/ultramodern-tooling/commands/cloudflare-output-verify.js +49 -56
- package/dist/esm-node/ultramodern-tooling/commands/context.js +10 -26
- package/dist/esm-node/ultramodern-tooling/commands/routes-generate-app.js +36 -0
- package/dist/esm-node/ultramodern-tooling/commands/routes-generate.js +25 -54
- package/dist/esm-node/ultramodern-tooling/commands/validate.js +6 -12
- package/dist/esm-node/ultramodern-tooling/commands.js +15 -9
- package/dist/esm-node/ultramodern-tooling/config/index.js +0 -2
- package/dist/esm-node/ultramodern-tooling/config/load.js +9 -9
- package/dist/esm-node/ultramodern-tooling/config/metadata.js +33 -28
- package/dist/esm-node/ultramodern-tooling/config/normalize.js +159 -156
- package/dist/esm-node/ultramodern-workspace/add-shell.js +124 -123
- package/dist/esm-node/ultramodern-workspace/add-vertical/execute.js +119 -27
- package/dist/esm-node/ultramodern-workspace/add-vertical/plan.js +16 -150
- package/dist/esm-node/ultramodern-workspace/add-vertical/preflight.js +15 -47
- package/dist/esm-node/ultramodern-workspace/add-vertical/preview.js +41 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical/shell-files.js +87 -25
- package/dist/esm-node/ultramodern-workspace/add-vertical/topology.js +4 -1
- package/dist/esm-node/ultramodern-workspace/add-vertical/transaction.js +373 -46
- package/dist/esm-node/ultramodern-workspace/add-vertical/workspace-state.js +17 -34
- package/dist/esm-node/ultramodern-workspace/add-vertical.js +1 -1
- package/dist/esm-node/ultramodern-workspace/api/client.js +5 -5
- package/dist/esm-node/ultramodern-workspace/api/contracts.js +2 -2
- package/dist/esm-node/ultramodern-workspace/api/rpc.js +20 -18
- package/dist/esm-node/ultramodern-workspace/api/service.js +49 -24
- package/dist/esm-node/ultramodern-workspace/api/shared.js +28 -18
- package/dist/esm-node/ultramodern-workspace/app-files.js +3 -23
- package/dist/esm-node/ultramodern-workspace/backend-federation.js +5 -5
- package/dist/esm-node/ultramodern-workspace/contracts.js +14 -180
- package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/surfaces.js +42 -0
- package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/types.js +1 -75
- package/dist/esm-node/ultramodern-workspace/delivery-unit-stamp.js +16 -4
- package/dist/esm-node/ultramodern-workspace/delivery-unit-sync.js +28 -18
- package/dist/esm-node/ultramodern-workspace/delivery-unit.js +12 -6
- package/dist/esm-node/ultramodern-workspace/demo-components.js +67 -428
- package/dist/esm-node/ultramodern-workspace/descriptors.js +1 -2
- package/dist/esm-node/ultramodern-workspace/fs-io.js +37 -2
- package/dist/esm-node/ultramodern-workspace/generation-result.js +3 -3
- package/dist/esm-node/ultramodern-workspace/index.js +1 -1
- package/dist/esm-node/ultramodern-workspace/mf-validation/constants.js +1 -4
- package/dist/esm-node/ultramodern-workspace/mf-validation/discovery.js +7 -7
- package/dist/esm-node/ultramodern-workspace/mf-validation/exposes.js +15 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation/inspect.js +27 -8
- package/dist/esm-node/ultramodern-workspace/mf-validation/object-literal.js +22 -123
- package/dist/esm-node/ultramodern-workspace/mf-validation/path-utils.js +36 -34
- package/dist/esm-node/ultramodern-workspace/mf-validation/syntax.js +83 -143
- package/dist/esm-node/ultramodern-workspace/mf-validation.js +1 -0
- package/dist/esm-node/ultramodern-workspace/module-federation/config.js +25 -30
- package/dist/esm-node/ultramodern-workspace/module-federation/reexport-module.js +39 -58
- package/dist/esm-node/ultramodern-workspace/module-federation/remote-refs.js +1 -43
- package/dist/esm-node/ultramodern-workspace/package-json.js +58 -32
- package/dist/esm-node/ultramodern-workspace/patch-inventory.js +67 -0
- package/dist/esm-node/ultramodern-workspace/policy.js +2 -564
- package/dist/esm-node/ultramodern-workspace/public-surface.js +3 -3
- package/dist/esm-node/ultramodern-workspace/routes.js +2 -11
- package/dist/esm-node/ultramodern-workspace/shared-patches.js +2 -2
- package/dist/esm-node/ultramodern-workspace/shells.js +3 -67
- package/dist/esm-node/ultramodern-workspace/tooling-command-catalog.js +22 -37
- package/dist/esm-node/ultramodern-workspace/tsconfigs.js +9 -3
- package/dist/esm-node/ultramodern-workspace/validation/architecture.js +349 -0
- package/dist/esm-node/ultramodern-workspace/validation/assertions.js +66 -0
- package/dist/esm-node/ultramodern-workspace/validation/types.js +1 -0
- package/dist/esm-node/ultramodern-workspace/validation/workspace.js +287 -0
- package/dist/esm-node/ultramodern-workspace/versions.js +74 -29
- package/dist/esm-node/ultramodern-workspace/workspace-artifact-ownership.js +129 -0
- package/dist/esm-node/ultramodern-workspace/workspace-script-plan.js +35 -27
- package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +10 -190
- package/dist/esm-node/ultramodern-workspace/workspace-validation-contract.js +65 -376
- package/dist/esm-node/ultramodern-workspace/write-app.js +18 -10
- package/dist/esm-node/ultramodern-workspace/write-workspace.js +25 -52
- package/dist/esm-node/ultramodern-workspace/zerops.js +2 -0
- package/dist/types/cli/project-setup.d.ts +1 -1
- package/dist/types/locale/en.d.ts +1 -0
- package/dist/types/locale/index.d.ts +2 -0
- package/dist/types/locale/zh.d.ts +1 -0
- package/dist/types/ultramodern-package-source.d.ts +2 -4
- package/dist/types/ultramodern-release-cohort.d.ts +1 -3
- package/dist/types/ultramodern-tooling/commands/cloudflare-output-verify.d.ts +2 -2
- package/dist/types/ultramodern-tooling/commands/context.d.ts +4 -1
- package/dist/types/ultramodern-tooling/commands/routes-generate-app.d.ts +1 -0
- package/dist/types/ultramodern-tooling/commands/routes-generate.d.ts +1 -1
- package/dist/types/ultramodern-tooling/commands/validate.d.ts +1 -1
- package/dist/types/ultramodern-tooling/config/index.d.ts +0 -2
- package/dist/types/ultramodern-tooling/config/load.d.ts +10 -2
- package/dist/types/ultramodern-tooling/config/metadata.d.ts +2 -2
- package/dist/types/ultramodern-tooling/config/normalize.d.ts +19 -19
- package/dist/types/ultramodern-tooling/config/types.d.ts +2 -9
- package/dist/types/ultramodern-workspace/add-shell.d.ts +1 -1
- package/dist/types/ultramodern-workspace/add-vertical/execute.d.ts +1 -0
- package/dist/types/ultramodern-workspace/add-vertical/preflight.d.ts +4 -3
- package/dist/types/ultramodern-workspace/add-vertical/preview.d.ts +4 -0
- package/dist/types/ultramodern-workspace/add-vertical/shell-files.d.ts +7 -2
- package/dist/types/ultramodern-workspace/add-vertical/transaction.d.ts +32 -6
- package/dist/types/ultramodern-workspace/add-vertical/workspace-state.d.ts +10 -7
- package/dist/types/ultramodern-workspace/add-vertical.d.ts +1 -1
- package/dist/types/ultramodern-workspace/api/client.d.ts +3 -1
- package/dist/types/ultramodern-workspace/api/rpc.d.ts +1 -1
- package/dist/types/ultramodern-workspace/api/service.d.ts +3 -1
- package/dist/types/ultramodern-workspace/api/shared.d.ts +2 -0
- package/dist/types/ultramodern-workspace/backend-federation.d.ts +1 -1
- package/dist/types/ultramodern-workspace/contracts.d.ts +1 -3
- package/dist/types/ultramodern-workspace/delivery-unit-schema/surfaces.d.ts +17 -0
- package/dist/types/ultramodern-workspace/delivery-unit-schema/types.d.ts +3 -68
- package/dist/types/ultramodern-workspace/delivery-unit-stamp.d.ts +2 -2
- package/dist/types/ultramodern-workspace/delivery-unit.d.ts +3 -3
- package/dist/types/ultramodern-workspace/demo-components.d.ts +0 -3
- package/dist/types/ultramodern-workspace/descriptors.d.ts +0 -1
- package/dist/types/ultramodern-workspace/fs-io.d.ts +1 -1
- package/dist/types/ultramodern-workspace/index.d.ts +1 -1
- package/dist/types/ultramodern-workspace/mf-validation/constants.d.ts +0 -1
- package/dist/types/ultramodern-workspace/mf-validation/exposes.d.ts +11 -0
- package/dist/types/ultramodern-workspace/mf-validation/path-utils.d.ts +2 -3
- package/dist/types/ultramodern-workspace/mf-validation/syntax.d.ts +4 -3
- package/dist/types/ultramodern-workspace/mf-validation/types.d.ts +1 -0
- package/dist/types/ultramodern-workspace/mf-validation.d.ts +1 -0
- package/dist/types/ultramodern-workspace/module-federation/config.d.ts +1 -1
- package/dist/types/ultramodern-workspace/module-federation/reexport-module.d.ts +2 -2
- package/dist/types/ultramodern-workspace/package-json.d.ts +1 -1
- package/dist/types/ultramodern-workspace/patch-inventory.d.ts +10 -0
- package/dist/types/ultramodern-workspace/policy.d.ts +31 -209
- package/dist/types/ultramodern-workspace/routes.d.ts +6 -1
- package/dist/types/ultramodern-workspace/shells.d.ts +2 -15
- package/dist/types/ultramodern-workspace/tooling-command-catalog.d.ts +8 -7
- package/dist/types/ultramodern-workspace/types.d.ts +9 -9
- package/dist/types/ultramodern-workspace/validation/architecture.d.ts +2 -0
- package/dist/types/ultramodern-workspace/validation/assertions.d.ts +14 -0
- package/dist/types/ultramodern-workspace/validation/types.d.ts +9 -0
- package/dist/types/ultramodern-workspace/validation/workspace.d.ts +6 -0
- package/dist/types/ultramodern-workspace/versions.d.ts +73 -28
- package/dist/types/ultramodern-workspace/workspace-artifact-ownership.d.ts +18 -0
- package/dist/types/ultramodern-workspace/workspace-script-plan.d.ts +4 -5
- package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +8 -13
- package/dist/types/ultramodern-workspace/workspace-validation-contract.d.ts +22 -188
- package/dist/types/ultramodern-workspace/write-workspace.d.ts +1 -3
- package/package.json +18 -11
- package/{template-workspace/.modernjs/release-cohort.json → release-cohort.json} +88 -40
- package/template-workspace/.codex/skills/rspack-tracing/scripts/analyze_trace.js +1 -1
- package/template-workspace/README.md.handlebars +20 -35
- package/template-workspace/oxfmt.config.ts +3 -0
- package/template-workspace/pnpm-workspace.yaml.handlebars +0 -24
- package/template-workspace/scripts/bootstrap-agent-skills.mjs +4 -4
- package/templates/packages/shared-contracts-index.ts +4 -332
- package/templates/workspace/apps/modern.config.shared-module-federation.ts.handlebars +10 -0
- package/templates/workspace/apps/modern.config.ts.handlebars +13 -27
- package/templates/workspace/apps/shared/src/routes/ultramodern-route-metadata.ts.handlebars +21 -11
- package/templates/workspace/apps/shell-super-app/src/routes/[lang]/page.tsx.handlebars +20 -20
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.helpers.tsx.handlebars +4 -6
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.imports.tsx.handlebars +2 -2
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.tsx.handlebars +11 -11
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.worker.helpers.tsx.handlebars +1 -1
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.worker.imports.tsx.handlebars +1 -1
- package/templates/workspace-scripts/generate-node-backend-federation.mjs +68 -77
- package/templates/workspace-scripts/generate-public-surface-assets.mjs +107 -207
- package/templates/workspace-scripts/materialize-zerops-runtime.mjs +12 -19
- package/templates/workspace-scripts/proof-cloudflare-version.mjs +53 -444
- package/templates/workspace-scripts/proof-node-backend-federation.mjs +212 -91
- package/templates/workspace-scripts/{proof-workerd-ssr.mts → proof-workerd-ssr.mjs} +434 -239
- package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +25 -7
- package/templates/workspace-scripts/ultramodern-performance-readiness.mjs +45 -147
- package/templates/workspace-scripts/ultramodern-typecheck.mjs +1 -1
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.cjs +0 -212
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.cjs +0 -47
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.cjs +0 -112
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.cjs +0 -55
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.cjs +0 -102
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.cjs +0 -195
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.cjs +0 -146
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxlint.cjs +0 -110
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.cjs +0 -67
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.cjs +0 -307
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.cjs +0 -58
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.cjs +0 -71
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.cjs +0 -151
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/help.cjs +0 -67
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/install.cjs +0 -52
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/io.cjs +0 -447
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.cjs +0 -323
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-source.cjs +0 -87
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.cjs +0 -612
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.cjs +0 -376
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.cjs +0 -73
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/react-router-retirement.cjs +0 -215
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.cjs +0 -135
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect.cjs +0 -454
- package/dist/cjs/ultramodern-tooling/config/constants.cjs +0 -48
- package/dist/cjs/ultramodern-tooling/config/synthesize.cjs +0 -157
- package/dist/cjs/ultramodern-workspace/delivery-unit-schema/up-projection.cjs +0 -188
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +0 -154
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +0 -9
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +0 -63
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +0 -7
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +0 -47
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +0 -146
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +0 -97
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxlint.js +0 -61
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +0 -16
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +0 -258
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +0 -10
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +0 -8
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +0 -15
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.js +0 -100
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/help.js +0 -29
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/install.js +0 -14
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/io.js +0 -385
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +0 -276
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +0 -49
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +0 -559
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +0 -329
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +0 -19
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/react-router-retirement.js +0 -148
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.js +0 -80
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect.js +0 -405
- package/dist/esm/ultramodern-tooling/config/constants.js +0 -4
- package/dist/esm/ultramodern-tooling/config/synthesize.js +0 -108
- package/dist/esm/ultramodern-workspace/delivery-unit-schema/up-projection.js +0 -129
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +0 -155
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +0 -10
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +0 -64
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +0 -8
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +0 -48
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +0 -147
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +0 -98
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxlint.js +0 -62
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +0 -17
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +0 -259
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +0 -11
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +0 -9
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +0 -16
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.js +0 -101
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/help.js +0 -30
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/install.js +0 -15
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/io.js +0 -386
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +0 -277
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +0 -50
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +0 -560
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +0 -330
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +0 -20
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/react-router-retirement.js +0 -149
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.js +0 -81
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect.js +0 -406
- package/dist/esm-node/ultramodern-tooling/config/constants.js +0 -5
- package/dist/esm-node/ultramodern-tooling/config/synthesize.js +0 -109
- package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/up-projection.js +0 -130
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.d.ts +0 -12
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.d.ts +0 -4
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.d.ts +0 -1
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.d.ts +0 -3
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.d.ts +0 -5
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.d.ts +0 -3
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.d.ts +0 -2
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxlint.d.ts +0 -2
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.d.ts +0 -4
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.d.ts +0 -3
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.d.ts +0 -3
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.d.ts +0 -8
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.d.ts +0 -3
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.d.ts +0 -3
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/help.d.ts +0 -1
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/install.d.ts +0 -2
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/io.d.ts +0 -26
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.d.ts +0 -25
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-source.d.ts +0 -3
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.d.ts +0 -26
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.d.ts +0 -26
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.d.ts +0 -6
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/react-router-retirement.d.ts +0 -37
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.d.ts +0 -4
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect.d.ts +0 -2
- package/dist/types/ultramodern-tooling/config/constants.d.ts +0 -3
- package/dist/types/ultramodern-tooling/config/synthesize.d.ts +0 -5
- package/dist/types/ultramodern-workspace/delivery-unit-schema/up-projection.d.ts +0 -189
- package/template-workspace/patches/@module-federation__bridge-react@2.9.0.patch +0 -47
- package/template-workspace/patches/@module-federation__dts-plugin@2.9.0.patch +0 -26
- package/template-workspace/patches/@module-federation__modern-js-v3@2.9.0.patch +0 -268
- package/template-workspace/patches/@module-federation__runtime-core@2.9.0.patch +0 -13
- package/template-workspace/patches/drizzle-orm-ts7-strict-declarations.patch +0 -471
- package/template-workspace/patches/msgpackr@2.1.0.patch +0 -30
- package/template-workspace/patches/zod@4.5.4.patch +0 -56
- package/templates/workspace-scripts/check-ultramodern-api-boundaries.mts +0 -779
- package/templates/workspace-scripts/check-ultramodern-i18n-boundaries.mts +0 -9
- package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +0 -4109
|
@@ -1,161 +1,101 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return
|
|
1
|
+
import { parse, parseExpression } from "@babel/parser";
|
|
2
|
+
function unwrapExpression(node) {
|
|
3
|
+
while('TSAsExpression' === node.type || 'TSSatisfiesExpression' === node.type || 'TSNonNullExpression' === node.type || 'TSTypeAssertion' === node.type || 'ParenthesizedExpression' === node.type)node = node.expression;
|
|
4
|
+
return node;
|
|
5
5
|
}
|
|
6
|
-
function
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return -1 === close ? source.length : close + 2;
|
|
17
|
-
}
|
|
18
|
-
function skipTemplateExpression(source, start) {
|
|
19
|
-
let depth = 1;
|
|
20
|
-
for(let index = start + 1; index < source.length; index += 1){
|
|
21
|
-
const char = source[index];
|
|
22
|
-
const next = source[index + 1];
|
|
23
|
-
if ("'" === char) {
|
|
24
|
-
index = skipQuoted(source, index, "'") - 1;
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
if ('"' === char) {
|
|
28
|
-
index = skipQuoted(source, index, '"') - 1;
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
if ('`' === char) {
|
|
32
|
-
index = skipTemplate(source, index) - 1;
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
if ('/' === char && '/' === next) {
|
|
36
|
-
index = skipLineComment(source, index) - 1;
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
if ('/' === char && '*' === next) {
|
|
40
|
-
index = skipBlockComment(source, index) - 1;
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
if ('{' === char) {
|
|
44
|
-
depth += 1;
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
if ('}' === char) {
|
|
48
|
-
depth -= 1;
|
|
49
|
-
if (0 === depth) return index + 1;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return source.length;
|
|
53
|
-
}
|
|
54
|
-
function skipTemplate(source, start) {
|
|
55
|
-
for(let index = start + 1; index < source.length; index += 1){
|
|
56
|
-
const char = source[index];
|
|
57
|
-
const next = source[index + 1];
|
|
58
|
-
if ('`' === char && !isEscaped(source, index)) return index + 1;
|
|
59
|
-
if ('$' === char && '{' === next && !isEscaped(source, index)) index = skipTemplateExpression(source, index + 1) - 1;
|
|
6
|
+
function parseStaticExpression(source) {
|
|
7
|
+
if (void 0 === source) return;
|
|
8
|
+
try {
|
|
9
|
+
return unwrapExpression(parseExpression(source, {
|
|
10
|
+
plugins: [
|
|
11
|
+
"typescript"
|
|
12
|
+
]
|
|
13
|
+
}));
|
|
14
|
+
} catch {
|
|
15
|
+
return;
|
|
60
16
|
}
|
|
61
|
-
return source.length;
|
|
62
17
|
}
|
|
63
|
-
function
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if ('/' === char && '*' === next) return skipBlockComment(source, index);
|
|
71
|
-
return index;
|
|
18
|
+
function parseConfigModule(source) {
|
|
19
|
+
return parse(source, {
|
|
20
|
+
sourceType: 'module',
|
|
21
|
+
plugins: [
|
|
22
|
+
"typescript"
|
|
23
|
+
]
|
|
24
|
+
});
|
|
72
25
|
}
|
|
73
|
-
function
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
26
|
+
function locateExportedConfig(source, factory) {
|
|
27
|
+
const module = parseConfigModule(source);
|
|
28
|
+
const constants = new Map();
|
|
29
|
+
const bindingStarts = new Map();
|
|
30
|
+
const resolvedBindings = new Set();
|
|
31
|
+
const allowedReferences = new Set();
|
|
32
|
+
const factories = new Set();
|
|
33
|
+
const namespaces = new Set();
|
|
34
|
+
const defaults = [];
|
|
35
|
+
for (const statement of module.program.body){
|
|
36
|
+
if ('ImportDeclaration' === statement.type && 'type' !== statement.importKind && '@module-federation/modern-js-v3' === statement.source.value) {
|
|
37
|
+
for (const specifier of statement.specifiers)if ('ImportNamespaceSpecifier' === specifier.type) namespaces.add(specifier.local.name);
|
|
38
|
+
else if ('ImportSpecifier' === specifier.type && 'type' !== specifier.importKind && ('Identifier' === specifier.imported.type ? specifier.imported.name : specifier.imported.value) === 'createModuleFederationConfig') factories.add(specifier.local.name);
|
|
80
39
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
40
|
+
const declaration = 'ExportNamedDeclaration' === statement.type ? statement.declaration : statement;
|
|
41
|
+
if (declaration?.type === 'VariableDeclaration' && 'const' === declaration.kind) {
|
|
42
|
+
for (const binding of declaration.declarations)if ('Identifier' === binding.id.type && binding.init) {
|
|
43
|
+
constants.set(binding.id.name, binding.init);
|
|
44
|
+
bindingStarts.set(binding.id.name, binding.id.start);
|
|
45
|
+
}
|
|
84
46
|
}
|
|
85
|
-
if (
|
|
86
|
-
|
|
87
|
-
if (
|
|
47
|
+
if ('ExportDefaultDeclaration' === statement.type) defaults.push(statement.declaration);
|
|
48
|
+
else if ('ExportNamedDeclaration' === statement.type && !statement.source && 'type' !== statement.exportKind) {
|
|
49
|
+
for (const specifier of statement.specifiers)if ('ExportSpecifier' === specifier.type && 'type' !== specifier.exportKind && ('Identifier' === specifier.exported.type ? specifier.exported.name : specifier.exported.value) === 'default') defaults.push(specifier.local);
|
|
88
50
|
}
|
|
89
51
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if ('/' === char && '/' === next) {
|
|
101
|
-
index = skipLineComment(source, index);
|
|
102
|
-
continue;
|
|
103
|
-
}
|
|
104
|
-
if ('/' === char && '*' === next) {
|
|
105
|
-
index = skipBlockComment(source, index);
|
|
106
|
-
continue;
|
|
52
|
+
const resolve = (node, seen = new Set())=>{
|
|
53
|
+
if (!node) return;
|
|
54
|
+
if ('Identifier' === node.type) {
|
|
55
|
+
if (seen.has(node.name)) return;
|
|
56
|
+
seen.add(node.name);
|
|
57
|
+
resolvedBindings.add(node.name);
|
|
58
|
+
if (null != node.start) allowedReferences.add(node.start);
|
|
59
|
+
const bindingStart = bindingStarts.get(node.name);
|
|
60
|
+
if (null != bindingStart) allowedReferences.add(bindingStart);
|
|
61
|
+
return resolve(constants.get(node.name), seen);
|
|
107
62
|
}
|
|
108
|
-
|
|
63
|
+
if ('TSAsExpression' === node.type || 'TSSatisfiesExpression' === node.type || 'TSNonNullExpression' === node.type || 'TSTypeAssertion' === node.type || 'ParenthesizedExpression' === node.type) return resolve(node.expression, seen);
|
|
64
|
+
return node;
|
|
65
|
+
};
|
|
66
|
+
if (1 !== defaults.length) return;
|
|
67
|
+
let node = resolve(defaults[0]);
|
|
68
|
+
if (factory) {
|
|
69
|
+
if (node?.type !== 'CallExpression' || 1 !== node.arguments.length) return;
|
|
70
|
+
const callee = node.callee;
|
|
71
|
+
const supported = 'Identifier' === callee.type && factories.has(callee.name) || 'MemberExpression' === callee.type && !callee.computed && 'Identifier' === callee.object.type && namespaces.has(callee.object.name) && 'Identifier' === callee.property.type && 'createModuleFederationConfig' === callee.property.name;
|
|
72
|
+
if (!supported) return;
|
|
73
|
+
const argument = node.arguments[0];
|
|
74
|
+
if (!argument || 'SpreadElement' === argument.type || 'ArgumentPlaceholder' === argument.type) return;
|
|
75
|
+
node = resolve(argument);
|
|
109
76
|
}
|
|
110
|
-
return
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
77
|
+
if (node?.type !== 'ObjectExpression' || null == node.start || null == node.end) return;
|
|
78
|
+
const hasOtherReference = (value)=>{
|
|
79
|
+
if (!value || 'object' != typeof value) return false;
|
|
80
|
+
if (Array.isArray(value)) return value.some(hasOtherReference);
|
|
81
|
+
const entry = value;
|
|
82
|
+
if ('Identifier' === entry.type && 'string' == typeof entry.name && resolvedBindings.has(entry.name) && ('number' != typeof entry.start || !allowedReferences.has(entry.start))) return true;
|
|
83
|
+
return Object.entries(entry).some(([key, child])=>'loc' !== key && 'comments' !== key && 'leadingComments' !== key && 'trailingComments' !== key && hasOtherReference(child));
|
|
84
|
+
};
|
|
85
|
+
if (hasOtherReference(module.program)) return;
|
|
86
|
+
return {
|
|
87
|
+
start: node.start,
|
|
88
|
+
end: node.end,
|
|
89
|
+
source: source.slice(node.start, node.end)
|
|
90
|
+
};
|
|
114
91
|
}
|
|
115
92
|
function locateCreateModuleFederationConfigObject(source) {
|
|
116
|
-
|
|
117
|
-
let offset = 0;
|
|
118
|
-
while(offset < source.length){
|
|
119
|
-
const index = source.indexOf(callee, offset);
|
|
120
|
-
if (-1 === index) break;
|
|
121
|
-
offset = index + callee.length;
|
|
122
|
-
if (!hasIdentifierBoundary(source, index, offset)) continue;
|
|
123
|
-
const parenIndex = skipWhitespaceAndComments(source, offset);
|
|
124
|
-
if ('(' !== source[parenIndex]) continue;
|
|
125
|
-
const argumentIndex = skipWhitespaceAndComments(source, parenIndex + 1);
|
|
126
|
-
if ('{' !== source[argumentIndex]) throw new Error('Module Federation config must pass a static object literal to createModuleFederationConfig.');
|
|
127
|
-
const closeIndex = findBalanced(source, argumentIndex, '{', '}');
|
|
128
|
-
if (void 0 === closeIndex) throw new Error('Module Federation config object literal is not closed.');
|
|
129
|
-
return {
|
|
130
|
-
end: closeIndex + 1,
|
|
131
|
-
source: source.slice(argumentIndex, closeIndex + 1),
|
|
132
|
-
start: argumentIndex
|
|
133
|
-
};
|
|
134
|
-
}
|
|
93
|
+
return locateExportedConfig(source, true);
|
|
135
94
|
}
|
|
136
95
|
function findCreateModuleFederationConfigObject(source) {
|
|
137
96
|
return locateCreateModuleFederationConfigObject(source)?.source;
|
|
138
97
|
}
|
|
139
98
|
function findExportDefaultObject(source) {
|
|
140
|
-
|
|
141
|
-
const index = source.indexOf(exportDefault);
|
|
142
|
-
if (-1 === index) return;
|
|
143
|
-
const objectStart = skipWhitespaceAndComments(source, index + exportDefault.length);
|
|
144
|
-
if ('{' !== source[objectStart]) return;
|
|
145
|
-
const objectEnd = findBalanced(source, objectStart, '{', '}');
|
|
146
|
-
if (void 0 === objectEnd) throw new Error('Module Federation export default object is not closed.');
|
|
147
|
-
return source.slice(objectStart, objectEnd + 1);
|
|
148
|
-
}
|
|
149
|
-
function getOuterBlock(source, open, close) {
|
|
150
|
-
const trimmed = source.trim();
|
|
151
|
-
if (trimmed[0] !== open) return;
|
|
152
|
-
const end = findBalanced(trimmed, 0, open, close);
|
|
153
|
-
if (void 0 === end) return;
|
|
154
|
-
const suffix = trimmed.slice(end + 1).trim();
|
|
155
|
-
if ('' !== suffix && !suffix.startsWith('as ') && !suffix.startsWith('satisfies ')) return;
|
|
156
|
-
return {
|
|
157
|
-
inner: trimmed.slice(1, end),
|
|
158
|
-
suffix
|
|
159
|
-
};
|
|
99
|
+
return locateExportedConfig(source, false)?.source;
|
|
160
100
|
}
|
|
161
|
-
export { findCreateModuleFederationConfigObject, findExportDefaultObject,
|
|
101
|
+
export { findCreateModuleFederationConfigObject, findExportDefaultObject, locateCreateModuleFederationConfigObject, parseConfigModule, parseStaticExpression };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { discoverModuleFederationConfigs } from "./mf-validation/discovery.js";
|
|
2
|
+
export { readModuleFederationExposePaths } from "./mf-validation/exposes.js";
|
|
2
3
|
export { inspectModuleFederationConfigSource } from "./mf-validation/inspect.js";
|
|
3
4
|
export { validateModuleFederationTypes } from "./mf-validation/validate.js";
|
|
@@ -2,20 +2,24 @@ import { createDispatchWorkerNameEnv, createWorkerBindingEnv, createWorkerBindin
|
|
|
2
2
|
import { createDeliveryUnitRecord } from "../delivery-unit.js";
|
|
3
3
|
import { appEmitsBrowserUi, appHasApi, createBackendFederationName, createCloudflarePublicUrlEnv, createCloudflareWorkerName, distributedSsrExposes, distributedSsrFragmentRoute, resolveApiPrefix, resolveApiProtocol, resolveRemoteRefs, shellApp } from "../descriptors.js";
|
|
4
4
|
import { renderFileTemplate } from "../fs-io.js";
|
|
5
|
-
import { createRspackChunkLoadingGlobal, createRspackUniqueName } from "../naming.js";
|
|
5
|
+
import { createRspackChunkLoadingGlobal, createRspackUniqueName, relativeRootFor } from "../naming.js";
|
|
6
6
|
import { createCloudflareSecurityContract, formatTsJsonValue } from "../policy.js";
|
|
7
7
|
import { sortJsonValue } from "../types.js";
|
|
8
8
|
import { CLOUDFLARE_COMPATIBILITY_DATE } from "../versions.js";
|
|
9
9
|
import { createModuleFederationRemoteUrlHelpers, createModuleFederationRemotesConfig } from "./remote-refs.js";
|
|
10
10
|
import { createSharedModuleFederationConfig, formatTsObjectLiteral } from "./shared-config.js";
|
|
11
|
-
function createAppModernConfig(scope, app, remotes = [], enableTailwind = true,
|
|
11
|
+
function createAppModernConfig(scope, app, remotes = [], enableTailwind = true, _configuredDevPorts) {
|
|
12
12
|
const deliveryUnit = createDeliveryUnitRecord(scope, app);
|
|
13
13
|
const emitsUi = appEmitsBrowserUi(app);
|
|
14
|
-
const bffImport = appHasApi(app) ? "import { bffPlugin } from '@modern-js/plugin-bff';\n" : '';
|
|
15
|
-
const uiImports = emitsUi ? `import {
|
|
14
|
+
const bffImport = appHasApi(app) ? "import { bffPlugin } from '@modern-js/plugin-bff-build-extensions';\n" : '';
|
|
15
|
+
const uiImports = emitsUi ? `import {
|
|
16
|
+
getBuildConfigEnvironment,
|
|
17
|
+
resolveDeployTarget,
|
|
18
|
+
} from '@modern-js/app-tools-extensions/config';
|
|
19
|
+
import { moduleFederationPlugin } from '@module-federation/modern-js-v3';
|
|
16
20
|
import { withZephyr as withZephyrRspack } from 'zephyr-rspack-plugin';
|
|
17
21
|
import { ultramodernLocalisedUrls } from './src/routes/ultramodern-route-metadata';
|
|
18
|
-
` : '';
|
|
22
|
+
` : "import {\n getBuildConfigEnvironment,\n resolveDeployTarget,\n} from '@modern-js/app-tools-extensions/config';\n";
|
|
19
23
|
const zephyrPluginSource = emitsUi ? `const zephyrRspackPlugin = () => ({
|
|
20
24
|
name: 'ultramodern-zephyr-rspack-plugin',
|
|
21
25
|
pre: ['@modern-js/plugin-module-federation-config'],
|
|
@@ -32,16 +36,19 @@ import { ultramodernLocalisedUrls } from './src/routes/ultramodern-route-metadat
|
|
|
32
36
|
// no account, and is never blocked. This is the framework's "works with or
|
|
33
37
|
// without Zephyr" contract. The plugin stays registered unconditionally
|
|
34
38
|
// (this gate keys on Zephyr's native deploy token, not any UltraModern
|
|
35
|
-
// opt-out).
|
|
36
|
-
// hard build failure.
|
|
39
|
+
// opt-out). The deploy environment sets ZE_FAIL_BUILD=true next to
|
|
40
|
+
// ZE_CI_TOKEN so an upload failure is a hard build failure.
|
|
37
41
|
const zephyrCiDeploy =
|
|
38
42
|
(getBuildConfigEnvironment('ZE_CI_TOKEN') ?? '').length > 0;
|
|
39
43
|
if (!zephyrCiDeploy) {
|
|
40
44
|
return;
|
|
41
45
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
if (getBuildConfigEnvironment('ZE_FAIL_BUILD') !== 'true') {
|
|
47
|
+
throw new Error(
|
|
48
|
+
'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.',
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
api.modifyRspackConfig(withZephyrRspack());
|
|
45
52
|
},
|
|
46
53
|
});
|
|
47
54
|
|
|
@@ -99,18 +106,7 @@ const defaultAssetPrefix = defaultRemoteAssetPrefix;`;
|
|
|
99
106
|
assetPrefix: '/',` : ` // Remote dev manifests must publish an absolute publicPath so host
|
|
100
107
|
// shells load remoteEntry.js and exposed chunks from this dev server.
|
|
101
108
|
assetPrefix,`;
|
|
102
|
-
const
|
|
103
|
-
...new Set((configuredDevPorts ?? [
|
|
104
|
-
shellApp.port,
|
|
105
|
-
app.port,
|
|
106
|
-
...remotes.map((remote)=>remote.port)
|
|
107
|
-
]).filter((port)=>'number' == typeof port && Number.isFinite(port)))
|
|
108
|
-
].toSorted((left, right)=>left - right);
|
|
109
|
-
const legacyCorsSource = `const moduleFederationDevServerOrigin =
|
|
110
|
-
envValue('ULTRAMODERN_MF_DEV_ORIGIN') || 'http://localhost:${shellApp.port}';`;
|
|
111
|
-
const configuredCorsSource = `const moduleFederationDevServerAllowedOrigins = [
|
|
112
|
-
${developmentPorts.map((port)=>` 'http://localhost:${port}',`).join('\n')}
|
|
113
|
-
];`;
|
|
109
|
+
const configuredCorsSource = "const moduleFederationDevServerAllowedOrigins = Object.values(developmentOverlay.ports).map(localPort => `http://localhost:${localPort}`);";
|
|
114
110
|
const configuredCorsDevServer = ` // MF assets are non-credentialed and only permit configured local app origins.
|
|
115
111
|
server: {
|
|
116
112
|
cors: {
|
|
@@ -118,8 +114,7 @@ ${developmentPorts.map((port)=>` 'http://localhost:${port}',`).join('\n')}
|
|
|
118
114
|
origin: moduleFederationDevServerAllowedOrigins,
|
|
119
115
|
},
|
|
120
116
|
},`;
|
|
121
|
-
const
|
|
122
|
-
const configuredCorsHeader = useConfiguredCorsAllowlist ? 1 === developmentPorts.length ? "'Access-Control-Allow-Origin': moduleFederationDevServerAllowedOrigins[0]," : '' : "'Access-Control-Allow-Origin': moduleFederationDevServerOrigin,";
|
|
117
|
+
const configuredCorsHeader = "...(moduleFederationDevServerAllowedOrigins.length === 1 ? { 'Access-Control-Allow-Origin': moduleFederationDevServerAllowedOrigins[0] } : {}),";
|
|
123
118
|
return renderFileTemplate('workspace/apps/modern.config.ts', {
|
|
124
119
|
value0: `${bffImport}${tailwindImport}`,
|
|
125
120
|
value1: app.id,
|
|
@@ -129,7 +124,6 @@ ${developmentPorts.map((port)=>` 'http://localhost:${port}',`).join('\n')}
|
|
|
129
124
|
value5: createCloudflarePublicUrlEnv(app),
|
|
130
125
|
value6: String(shellApp.port),
|
|
131
126
|
value7: defaultAssetPrefixSource,
|
|
132
|
-
value8: createCloudflarePublicUrlEnv(app),
|
|
133
127
|
value9: bffConfig,
|
|
134
128
|
value10: CLOUDFLARE_COMPATIBILITY_DATE,
|
|
135
129
|
value11: formatTsJsonValue(sortJsonValue(createCloudflareSecurityContract()), 16),
|
|
@@ -140,8 +134,8 @@ ${developmentPorts.map((port)=>` 'http://localhost:${port}',`).join('\n')}
|
|
|
140
134
|
value16: createRspackUniqueName(app),
|
|
141
135
|
value17: createRspackChunkLoadingGlobal(app),
|
|
142
136
|
value18: tailwindBuilderPluginsConfig,
|
|
143
|
-
value19:
|
|
144
|
-
value20:
|
|
137
|
+
value19: configuredCorsSource,
|
|
138
|
+
value20: configuredCorsDevServer,
|
|
145
139
|
value21: configuredCorsHeader,
|
|
146
140
|
value22: uiImports,
|
|
147
141
|
value23: zephyrPluginSource,
|
|
@@ -149,7 +143,8 @@ ${developmentPorts.map((port)=>` 'http://localhost:${port}',`).join('\n')}
|
|
|
149
143
|
value25: uiPluginEntries,
|
|
150
144
|
value26: deliveryUnit.unitId,
|
|
151
145
|
value27: deliveryUnit.buildMarker,
|
|
152
|
-
value28: deliveryUnit.version
|
|
146
|
+
value28: deliveryUnit.version,
|
|
147
|
+
value29: relativeRootFor(app.directory)
|
|
153
148
|
});
|
|
154
149
|
}
|
|
155
150
|
function createModuleFederationBridgeConfig(enableBridgeRouter) {
|
|
@@ -255,13 +250,13 @@ function createRemoteModuleFederationConfig(scope, app, remotes = [], enableBrid
|
|
|
255
250
|
const hostOnlyMarker = hasExposes ? '' : '\n// ultramodern-mf: no-exposes';
|
|
256
251
|
const appToolsConfigImports = [
|
|
257
252
|
...hasRemoteRefs ? [
|
|
258
|
-
'
|
|
253
|
+
'createRemoteManifestUrl'
|
|
259
254
|
] : [],
|
|
260
255
|
...hasExposes ? [
|
|
261
256
|
'resolveEffectTsgoCompiler'
|
|
262
257
|
] : []
|
|
263
258
|
];
|
|
264
|
-
const appToolsConfigImport = appToolsConfigImports.length > 0 ? `import { ${appToolsConfigImports.join(', ')} } from '@modern-js/app-tools/config';\n` : '';
|
|
259
|
+
const appToolsConfigImport = appToolsConfigImports.length > 0 ? `import { ${appToolsConfigImports.join(', ')} } from '@modern-js/app-tools-extensions/config';\n` : '';
|
|
265
260
|
const tsgoCompilerInstance = hasExposes ? `
|
|
266
261
|
const tsgoCompilerInstance =
|
|
267
262
|
resolveEffectTsgoCompiler({ from: import.meta.url });
|
|
@@ -1,67 +1,48 @@
|
|
|
1
|
-
import { createUltramodernBuildArtifact } from "@modern-js/
|
|
1
|
+
import { createUltramodernBuildArtifact } from "@modern-js/backend-federation-contracts";
|
|
2
2
|
import { createDeliveryUnitRecord } from "../delivery-unit.js";
|
|
3
|
-
|
|
4
|
-
return app.deliveryUnit ? app.deliveryUnit : createDeliveryUnitRecord(scope, app);
|
|
5
|
-
}
|
|
3
|
+
import { appEmitsBrowserUi, appHasApi } from "../descriptors.js";
|
|
6
4
|
function createUltramodernBuildArtifactJson(scope, app) {
|
|
7
|
-
const record =
|
|
8
|
-
|
|
5
|
+
const record = createDeliveryUnitRecord(scope, app);
|
|
6
|
+
const artifact = createUltramodernBuildArtifact(record);
|
|
7
|
+
return `${JSON.stringify({
|
|
8
|
+
...artifact,
|
|
9
|
+
deliveryUnit: {
|
|
10
|
+
...record,
|
|
11
|
+
...artifact.deliveryUnit
|
|
12
|
+
},
|
|
13
|
+
surfaces: {
|
|
14
|
+
api: {
|
|
15
|
+
...record,
|
|
16
|
+
...artifact.surfaces.api
|
|
17
|
+
},
|
|
18
|
+
ui: {
|
|
19
|
+
...record,
|
|
20
|
+
...artifact.surfaces.ui
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}, null, 2)}\n`;
|
|
9
24
|
}
|
|
10
|
-
function createUltramodernBuildModule(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
declare const ULTRAMODERN_SOURCE_REVISION: string;
|
|
25
|
+
function createUltramodernBuildModule(_scope, app, includeUiMarker = appEmitsBrowserUi(app)) {
|
|
26
|
+
return `import buildArtifact = require('./ultramodern-build.json');
|
|
27
|
+
import { resolveUltramodernBuildArtifact } from '@modern-js/runtime-extensions/build-identity';
|
|
14
28
|
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
typeof ULTRAMODERN_BUILD_MARKER === 'string'
|
|
18
|
-
? ULTRAMODERN_BUILD_MARKER
|
|
19
|
-
: ultramodernGeneratedBuildArtifact.deliveryUnit.buildMarker;
|
|
20
|
-
const ultramodernSourceRevision =
|
|
21
|
-
typeof ULTRAMODERN_SOURCE_REVISION === 'string'
|
|
22
|
-
? ULTRAMODERN_SOURCE_REVISION
|
|
23
|
-
: ultramodernGeneratedBuildArtifact.deliveryUnit.sourceRevision;
|
|
24
|
-
const ultramodernBuildArtifact = {
|
|
25
|
-
...ultramodernGeneratedBuildArtifact,
|
|
26
|
-
deliveryUnit: {
|
|
27
|
-
...ultramodernGeneratedBuildArtifact.deliveryUnit,
|
|
28
|
-
build: ultramodernBuildMarker,
|
|
29
|
-
buildMarker: ultramodernBuildMarker,
|
|
30
|
-
sourceRevision: ultramodernSourceRevision,
|
|
31
|
-
},
|
|
32
|
-
surfaces: {
|
|
33
|
-
api: {
|
|
34
|
-
...ultramodernGeneratedBuildArtifact.surfaces.api,
|
|
35
|
-
build: ultramodernBuildMarker,
|
|
36
|
-
buildMarker: ultramodernBuildMarker,
|
|
37
|
-
sourceRevision: ultramodernSourceRevision,
|
|
38
|
-
},
|
|
39
|
-
ui: {
|
|
40
|
-
...ultramodernGeneratedBuildArtifact.surfaces.ui,
|
|
41
|
-
build: ultramodernBuildMarker,
|
|
42
|
-
buildMarker: ultramodernBuildMarker,
|
|
43
|
-
sourceRevision: ultramodernSourceRevision,
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
} as const;
|
|
29
|
+
declare const ULTRAMODERN_BUILD_MARKER: string;
|
|
30
|
+
declare const ULTRAMODERN_SOURCE_REVISION: string;
|
|
47
31
|
|
|
48
|
-
|
|
32
|
+
const ultramodernBuildArtifact = resolveUltramodernBuildArtifact(buildArtifact, {
|
|
33
|
+
buildMarker: () => ULTRAMODERN_BUILD_MARKER,
|
|
34
|
+
sourceRevision: () => ULTRAMODERN_SOURCE_REVISION,
|
|
35
|
+
});
|
|
49
36
|
|
|
50
|
-
export const ultramodernDeliveryUnit =
|
|
51
|
-
|
|
52
|
-
export const ultramodernVerticalIdentity = ultramodernDeliveryUnit;
|
|
53
|
-
export const ultramodernUiMarker = ultramodernBuildArtifact.surfaces.ui;
|
|
54
|
-
export const ultramodernApiMarker = ultramodernBuildArtifact.surfaces.api;
|
|
55
|
-
`;
|
|
37
|
+
export const ultramodernDeliveryUnit = ultramodernBuildArtifact.deliveryUnit;
|
|
38
|
+
${includeUiMarker ? 'export const ultramodernUiMarker = ultramodernBuildArtifact.surfaces.ui;\n' : ''}${'shell' !== app.kind && appHasApi(app) ? 'export const ultramodernApiMarker = ultramodernBuildArtifact.surfaces.api;\n' : ''}`;
|
|
56
39
|
}
|
|
57
|
-
function createUltramodernBuildReexportModule() {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
} from '../shared/ultramodern-build';
|
|
65
|
-
`;
|
|
40
|
+
function createUltramodernBuildReexportModule(app, includeUiMarker = appEmitsBrowserUi(app)) {
|
|
41
|
+
const names = [
|
|
42
|
+
'ultramodernDeliveryUnit'
|
|
43
|
+
];
|
|
44
|
+
if (includeUiMarker) names.push('ultramodernUiMarker');
|
|
45
|
+
if ('shell' !== app.kind && appHasApi(app)) names.push('ultramodernApiMarker');
|
|
46
|
+
return `export { ${names.join(', ')} } from '../shared/ultramodern-build';\n`;
|
|
66
47
|
}
|
|
67
48
|
export { createUltramodernBuildArtifactJson, createUltramodernBuildModule, createUltramodernBuildReexportModule };
|
|
@@ -1,49 +1,7 @@
|
|
|
1
1
|
import { createCloudflarePublicUrlEnv, createCloudflareWorkerName, createRemoteManifestEnv, remoteDependencyAlias, resolveRemoteRefs } from "../descriptors.js";
|
|
2
2
|
function createModuleFederationRemoteUrlHelpers(app, remotes = [], includeAppToolsImport = true) {
|
|
3
3
|
if (0 === resolveRemoteRefs(app, remotes).length) return '';
|
|
4
|
-
|
|
5
|
-
return `${appToolsImport}const cloudflareDeployEnabled =
|
|
6
|
-
getBuildConfigEnvironment('MODERNJS_DEPLOY') === 'cloudflare';
|
|
7
|
-
const cloudflareWorkersDevSubdomain =
|
|
8
|
-
getBuildConfigEnvironment('ULTRAMODERN_CLOUDFLARE_WORKERS_DEV_SUBDOMAIN')?.trim();
|
|
9
|
-
const requireCloudflarePublicUrls =
|
|
10
|
-
getBuildConfigEnvironment('ULTRAMODERN_CLOUDFLARE_REQUIRE_PUBLIC_URLS') === 'true';
|
|
11
|
-
|
|
12
|
-
const createRemoteManifestUrl = (options: {
|
|
13
|
-
manifestEnv: string;
|
|
14
|
-
mfName: string;
|
|
15
|
-
port: number;
|
|
16
|
-
publicUrlEnv: string;
|
|
17
|
-
workerName: string;
|
|
18
|
-
}) => {
|
|
19
|
-
const configuredManifest = getBuildConfigEnvironment(options.manifestEnv)?.trim();
|
|
20
|
-
if (configuredManifest !== undefined && configuredManifest.length > 0) {
|
|
21
|
-
return configuredManifest;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const configuredPublicUrl = getBuildConfigEnvironment(options.publicUrlEnv)?.trim();
|
|
25
|
-
if (configuredPublicUrl !== undefined && configuredPublicUrl.length > 0) {
|
|
26
|
-
return \`\${options.mfName}@\${configuredPublicUrl.replace(/\\/+$/u, '')}/mf-manifest.json\`;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
cloudflareDeployEnabled &&
|
|
31
|
-
cloudflareWorkersDevSubdomain !== undefined &&
|
|
32
|
-
cloudflareWorkersDevSubdomain.length > 0
|
|
33
|
-
) {
|
|
34
|
-
return \`\${options.mfName}@https://\${options.workerName}.\${cloudflareWorkersDevSubdomain}.workers.dev/mf-manifest.json\`;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (cloudflareDeployEnabled && requireCloudflarePublicUrls) {
|
|
38
|
-
throw new Error(
|
|
39
|
-
\`Cloudflare deploy needs \${options.publicUrlEnv}, \${options.manifestEnv}, or ULTRAMODERN_CLOUDFLARE_WORKERS_DEV_SUBDOMAIN for remote \${options.mfName}.\`,
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return \`\${options.mfName}@http://localhost:\${options.port}/mf-manifest.json\`;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
`;
|
|
4
|
+
return includeAppToolsImport ? "import { createRemoteManifestUrl } from '@modern-js/app-tools-extensions/config';\n\n" : '';
|
|
47
5
|
}
|
|
48
6
|
function createModuleFederationRemotesConfig(scope, app, remotes = []) {
|
|
49
7
|
const remoteEntries = resolveRemoteRefs(app, remotes).toSorted((left, right)=>remoteDependencyAlias(left).localeCompare(remoteDependencyAlias(right))).map((remote)=>{
|