@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
package/README.md
CHANGED
|
@@ -36,8 +36,8 @@ domains to delete. It generates:
|
|
|
36
36
|
- `verticals/*` empty until a real domain is added with `--vertical`.
|
|
37
37
|
- `packages/shared-*` placeholders for shared contracts, tokens, and Effect
|
|
38
38
|
API support.
|
|
39
|
-
-
|
|
40
|
-
|
|
39
|
+
- `catalogs.ultramodern` in `pnpm-workspace.yaml` for published framework
|
|
40
|
+
dependency versions, referenced by application manifests.
|
|
41
41
|
- `topology/*` as app-owned topology, ownership, and local development overlay
|
|
42
42
|
JSON.
|
|
43
43
|
|
|
@@ -51,15 +51,15 @@ pnpm check
|
|
|
51
51
|
pnpm build
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
The generated toolchain pins Node `26.7.0`, pnpm `11.
|
|
55
|
-
`@types/node@^26.
|
|
54
|
+
The generated toolchain pins Node `26.7.0`, pnpm `11.27.1`, and
|
|
55
|
+
`@types/node@^26.6.2`; its engine baseline remains Node `>=26` with pnpm `11+`.
|
|
56
56
|
`packageManager`, `.mise.toml`, generated validation, and CI should all agree
|
|
57
57
|
on those values; do not reintroduce Corepack or older pnpm aliases.
|
|
58
58
|
|
|
59
|
-
The current generated dependency cohort also pins `@effect/tsgo@0.
|
|
60
|
-
`@tanstack/react-router@1.170.
|
|
61
|
-
`@tanstack/history@1.162.
|
|
62
|
-
cohort, `@module-federation/node@2.7.
|
|
59
|
+
The current generated dependency cohort also pins `@effect/tsgo@0.45.0`,
|
|
60
|
+
`@tanstack/react-router@1.170.39`, `@tanstack/router-core@1.171.32`,
|
|
61
|
+
`@tanstack/history@1.162.4`, and the Module Federation integration `2.9.2`
|
|
62
|
+
cohort, `@module-federation/node@2.7.52`. Move these only through the
|
|
63
63
|
generator-owned version policy so templates, validation, and the published
|
|
64
64
|
workspace contract stay aligned.
|
|
65
65
|
|
|
@@ -169,72 +169,41 @@ contract so automation can stop safely:
|
|
|
169
169
|
| --- | --- | --- |
|
|
170
170
|
| Fresh input | Invalid or missing vertical name | Use `<name> --vertical`, `--vertical=<name>`, or `--vertical-name <name>` |
|
|
171
171
|
| Existing topology | Duplicate app ID, package suffix, path, Module Federation name, port, API prefix, or manifest key | Choose a new vertical name or repair the existing topology/local overlay first |
|
|
172
|
-
| Workspace files | Missing or
|
|
172
|
+
| Workspace files | Missing or invalid topology, ownership, local overlay or app manifest | Repair the named authoritative file |
|
|
173
173
|
| Tailwind prefix | Existing app already owns the generated CSS prefix | Rename the vertical before generation |
|
|
174
174
|
| Output path | A generated path already exists | Treat it as an existing vertical and do not overwrite it |
|
|
175
175
|
|
|
176
|
-
Package source is
|
|
176
|
+
Package source is selected by the installed generator dependency and native pnpm catalog.
|
|
177
|
+
Application manifests own package identity; the development overlay owns local ports.
|
|
177
178
|
|
|
178
179
|
| Strategy | Use when | CLI |
|
|
179
180
|
| --- | --- | --- |
|
|
180
181
|
| `install` | Published BleedingDev package cohort or release proof | Default for the BleedingDev create package; optional `--ultramodern-package-version`, `--ultramodern-package-registry` (serves the cohort scope only; release-age metadata for every other dependency is validated against npmjs), `--ultramodern-package-scope`, and `--ultramodern-package-name-prefix` |
|
|
181
182
|
| `workspace` | Local monorepo testing against unreleased packages | `--workspace` or `--ultramodern-package-source=workspace` |
|
|
182
183
|
|
|
183
|
-
##
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
pnpm contract:check
|
|
207
|
-
pnpm check
|
|
208
|
-
pnpm build
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
The command updates `.modernjs/ultramodern.json`, root `modernjs.packageSource`,
|
|
212
|
-
generated Modern package aliases, framework-owned toolchain pins, old direct
|
|
213
|
-
topology metadata, strict Effect pnpm overrides/trust policy, and the pnpm
|
|
214
|
-
lockfile. It does not invent compatibility shims or move business code behind
|
|
215
|
-
your back. If `pnpm api:check` still fails, migrate the source to
|
|
216
|
-
`shared/api.ts`, `api/index.ts`, and `src/api/*-client.ts` and delete
|
|
217
|
-
`api/effect`, `api/lambda`, `shared/effect`, and `src/effect` paths.
|
|
218
|
-
|
|
219
|
-
Generated strict Effect workspaces pin the compatible Effect cohort through
|
|
220
|
-
`pnpm-workspace.yaml` overrides: `effect@4.0.0-rc.112`,
|
|
221
|
-
`@effect/opentelemetry@4.0.0-rc.112`, and
|
|
222
|
-
`@effect/vitest@4.0.0-rc.112` (requiring `vitest >=4.1.0 <5`). The strict
|
|
223
|
-
24-hour release-age gate applies to the installed cohort; the current policy carries no Effect age exemption, and
|
|
224
|
-
the override-only `@effect/vitest` entry is not an installed approval target.
|
|
225
|
-
Separately, exact
|
|
226
|
-
`trustPolicyExclude` entries for `effect` and `@effect/opentelemetry` cover the
|
|
227
|
-
trusted-publisher to provenance transition. Trust exclusions are not
|
|
228
|
-
release-age approvals. Do not override the cohort in app packages; update the
|
|
229
|
-
framework cohort when the runtime moves.
|
|
230
|
-
|
|
231
|
-
Use `--ultramodern-package-source=install` for published cohort proof and pin a
|
|
232
|
-
specific release with `--ultramodern-package-version` when CI must prove an
|
|
233
|
-
exact framework version. Keep `--workspace` only for local monorepo testing
|
|
234
|
-
against unpublished packages. After install, run the generated
|
|
235
|
-
`scripts/validate-ultramodern-workspace.mts` contract check and fix ownership
|
|
236
|
-
conflicts in the owning JSON/config files instead of editing generated metadata
|
|
237
|
-
by hand.
|
|
184
|
+
## Framework dependencies
|
|
185
|
+
|
|
186
|
+
Published framework versions live in `catalogs.ultramodern` in
|
|
187
|
+
`pnpm-workspace.yaml`. Application manifests reference `catalog:ultramodern`;
|
|
188
|
+
the lockfile records resolved packages. Corrected third-party dependencies ship
|
|
189
|
+
as published packages. Applications do not install framework patches or carry
|
|
190
|
+
a copied release manifest.
|
|
191
|
+
|
|
192
|
+
Use `--ultramodern-package-source=install` for published package acceptance and
|
|
193
|
+
`--ultramodern-package-version` to select an exact release. Use `--workspace`
|
|
194
|
+
for local monorepo development. After installation, run `pnpm contract:check`,
|
|
195
|
+
which invokes the installed CLI directly. The installed generator owns its
|
|
196
|
+
release-integrity metadata.
|
|
197
|
+
|
|
198
|
+
Normal installs retain the generated strict 24-hour release-age and trust
|
|
199
|
+
policy. The one exception is `minimumReleaseAgeExclude`: it lists the exact
|
|
200
|
+
`package@version` of every package in the cohort the create package ships, so a
|
|
201
|
+
workspace created on the day that cohort is published can install it. Every
|
|
202
|
+
other dependency still waits 24 hours, including a cohort selected with
|
|
203
|
+
`--ultramodern-package-version` that differs from the create package's own; to
|
|
204
|
+
install a fresh cohort on publish day, run that release's create package.
|
|
205
|
+
Release acceptance adds exact, temporary exceptions for the sidecars under test
|
|
206
|
+
on the command line.
|
|
238
207
|
|
|
239
208
|
## CodeSmith Adapter And Overlays
|
|
240
209
|
|
|
@@ -337,10 +306,11 @@ Federation manifests and vertical APIs through generated Effect clients
|
|
|
337
306
|
exported by the vertical packages.
|
|
338
307
|
|
|
339
308
|
Route metadata is route-owned and colocated in
|
|
340
|
-
`src/routes/**/route.meta.ts
|
|
341
|
-
`
|
|
342
|
-
|
|
343
|
-
|
|
309
|
+
`src/routes/**/route.meta.ts`; each file exports `routeMeta`.
|
|
310
|
+
`ultramodern-create ultramodern routes-generate` (run before every app `dev`
|
|
311
|
+
and `build`) regenerates `src/routes/ultramodern-route-metadata.ts` as a
|
|
312
|
+
formatted route manifest for Modern.js config, i18n, public head, and public
|
|
313
|
+
surface contracts; authors should not hand-maintain it. Locale JSON is served from
|
|
344
314
|
`/locales/{{lng}}/{{ns}}.json`; Czech and English routes are generated from the
|
|
345
315
|
route owner, not from shell rewrites.
|
|
346
316
|
|
|
@@ -413,13 +383,12 @@ Each generated workspace app has:
|
|
|
413
383
|
|
|
414
384
|
- `cloudflare:build`, `cloudflare:deploy`, `cloudflare:preview`, and
|
|
415
385
|
`cloudflare:proof` scripts.
|
|
416
|
-
- Cloudflare Worker deploy config from Modern config
|
|
417
|
-
`.modernjs/ultramodern.json`.
|
|
386
|
+
- Cloudflare Worker deploy config emitted from native Modern config.
|
|
418
387
|
- `zephyr:dependencies` for any consumed verticals.
|
|
419
388
|
- `zephyr-rspack-plugin` wired through the generated Modern.js Rspack bridge.
|
|
420
389
|
|
|
421
390
|
Deploy first, then pass each deployed app's generated public URL env key into
|
|
422
|
-
the proof step. The proof
|
|
391
|
+
the proof step. The installed proof command reads topology and deployment contracts and checks the
|
|
423
392
|
Cloudflare Worker surface, including public-route sitemap/robots consistency,
|
|
424
393
|
preview noindex behavior, unknown-route status, asset headers, byte budgets,
|
|
425
394
|
and public sourcemap exposure. Shell-only workspaces only need the shell URL;
|
|
@@ -441,10 +410,10 @@ proven.
|
|
|
441
410
|
|
|
442
411
|
| Symptom | Current check | Owner |
|
|
443
412
|
| --- | --- | --- |
|
|
444
|
-
| Package
|
|
413
|
+
| Package version mismatch | Align the native framework catalog and regenerate the lockfile with `pnpm install`. | Workspace dependency manifests |
|
|
445
414
|
| Install failure | Check the active Node/pnpm from `mise install`; rerun `pnpm install` after the shell sees the pinned versions. | Toolchain setup |
|
|
446
415
|
| Build failure | Run the matching primitive gate (`pnpm lint`, `pnpm typecheck`, `pnpm i18n:boundaries`, `pnpm contract:check`) before `pnpm build`; fix the owning failure first. | Owning package or generated contract |
|
|
447
|
-
| Missing public URL | Set the app public URL env key
|
|
416
|
+
| Missing public URL | Set the app public URL env key declared in topology, for example `ULTRAMODERN_PUBLIC_URL_SHELL_SUPER_APP`. | Deployment operator |
|
|
448
417
|
| Cloudflare credentials | Confirm Wrangler credentials before `pnpm cloudflare:deploy`; local checks do not prove live Worker access. | Deployment operator |
|
|
449
418
|
| Asset or CSS 404 | Rebuild with `pnpm build` or `pnpm cloudflare:deploy` and inspect emitted Modern/Rspack asset paths instead of hardcoding CSS URLs. | Framework/runtime asset pipeline |
|
|
450
419
|
| Federation manifest failure | Run the shell and vertical build scripts, then check each deployed `/mf-manifest.json` URL used by the shell. | Module Federation owner |
|
|
@@ -65,7 +65,7 @@ function readCreatePackageJson() {
|
|
|
65
65
|
return JSON.parse(external_node_fs_default().readFileSync(createPackageJson, 'utf-8'));
|
|
66
66
|
}
|
|
67
67
|
function isBleedingDevCreatePackage(createPackage) {
|
|
68
|
-
return createPackage.name === external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_CREATE_PACKAGE
|
|
68
|
+
return createPackage.name === external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_CREATE_PACKAGE;
|
|
69
69
|
}
|
|
70
70
|
function getBleedingDevFrameworkVersion(createPackage, fallbackVersion) {
|
|
71
71
|
const frameworkVersion = createPackage.ultramodern?.frameworkVersion;
|
|
@@ -106,7 +106,7 @@ function hasExplicitUltramodernPackageSource(args, value) {
|
|
|
106
106
|
return value ? configuredValue === value : void 0 !== configuredValue;
|
|
107
107
|
}
|
|
108
108
|
function readBleedingDevFrameworkVersionFromRegistry(fallbackVersion) {
|
|
109
|
-
const envVersion =
|
|
109
|
+
const envVersion = process.env[external_ultramodern_package_source_cjs_namespaceObject.ULTRAMODERN_FRAMEWORK_VERSION_ENV]?.trim();
|
|
110
110
|
if (envVersion) {
|
|
111
111
|
if (!semverPattern.test(envVersion)) {
|
|
112
112
|
console.error(`${external_ultramodern_package_source_cjs_namespaceObject.ULTRAMODERN_FRAMEWORK_VERSION_ENV} must be a valid semver version`);
|
|
@@ -87,7 +87,7 @@ function isInsideGitWorkTree(targetDir) {
|
|
|
87
87
|
}
|
|
88
88
|
function initializeGeneratedGitRepository(targetDir) {
|
|
89
89
|
assertGitAvailableForGeneratedProject();
|
|
90
|
-
if (isInsideGitWorkTree(targetDir)) return;
|
|
90
|
+
if (isInsideGitWorkTree(targetDir)) return false;
|
|
91
91
|
try {
|
|
92
92
|
runSetupCommand('git', [
|
|
93
93
|
'init',
|
|
@@ -113,27 +113,7 @@ function initializeGeneratedGitRepository(targetDir) {
|
|
|
113
113
|
stdio: 'inherit'
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
|
-
|
|
117
|
-
'add',
|
|
118
|
-
'-A'
|
|
119
|
-
], {
|
|
120
|
-
cwd: targetDir,
|
|
121
|
-
stdio: 'inherit'
|
|
122
|
-
});
|
|
123
|
-
runSetupCommand('git', [
|
|
124
|
-
'-c',
|
|
125
|
-
'user.name=UltraModern',
|
|
126
|
-
'-c',
|
|
127
|
-
'user.email=ultramodern@bleedingdev.dev',
|
|
128
|
-
'-c',
|
|
129
|
-
'commit.gpgsign=false',
|
|
130
|
-
'commit',
|
|
131
|
-
'-m',
|
|
132
|
-
'chore: initial UltraModern scaffold'
|
|
133
|
-
], {
|
|
134
|
-
cwd: targetDir,
|
|
135
|
-
stdio: 'inherit'
|
|
136
|
-
});
|
|
116
|
+
return true;
|
|
137
117
|
}
|
|
138
118
|
function isDirectoryEmpty(dirPath) {
|
|
139
119
|
if (!external_node_fs_default().existsSync(dirPath)) return false;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -42,6 +42,7 @@ const prompts_cjs_namespaceObject = require("./cli/prompts.cjs");
|
|
|
42
42
|
const index_cjs_namespaceObject = require("./locale/index.cjs");
|
|
43
43
|
const commands_cjs_namespaceObject = require("./ultramodern-tooling/commands.cjs");
|
|
44
44
|
const external_ultramodern_workspace_index_cjs_namespaceObject = require("./ultramodern-workspace/index.cjs");
|
|
45
|
+
const transaction_cjs_namespaceObject = require("./ultramodern-workspace/add-vertical/transaction.cjs");
|
|
45
46
|
const bridge_config_cjs_namespaceObject = require("./ultramodern-workspace/bridge-config.cjs");
|
|
46
47
|
const src_dirname = external_node_path_default().dirname((0, external_node_url_namespaceObject.fileURLToPath)(__rslib_import_meta_url__));
|
|
47
48
|
const templateDir = [
|
|
@@ -122,9 +123,11 @@ async function main() {
|
|
|
122
123
|
console.log(`${dim} pnpm check${reset}\n`);
|
|
123
124
|
return;
|
|
124
125
|
}
|
|
126
|
+
if (0 === (0, flags_cjs_namespaceObject.collectPositionalArgs)(args).length) (0, transaction_cjs_namespaceObject.recoverFreshWorkspaceTransactions)(process.cwd());
|
|
125
127
|
const { name: projectName, useCurrentDir } = await (0, prompts_cjs_namespaceObject.getProjectName)();
|
|
126
128
|
const targetDir = useCurrentDir ? process.cwd() : external_node_path_default().isAbsolute(projectName) ? projectName : external_node_path_default().resolve(process.cwd(), projectName);
|
|
127
129
|
const generatedPackageName = useCurrentDir || external_node_path_default().isAbsolute(projectName) ? external_node_path_default().basename(targetDir) : projectName;
|
|
130
|
+
(0, transaction_cjs_namespaceObject.recoverFreshWorkspaceTransactions)(targetDir);
|
|
128
131
|
if (external_node_fs_default().existsSync(targetDir)) {
|
|
129
132
|
const files = external_node_fs_default().readdirSync(targetDir);
|
|
130
133
|
if (files.length > 0) {
|
|
@@ -146,7 +149,7 @@ async function main() {
|
|
|
146
149
|
packageSource,
|
|
147
150
|
generateAgentFiles
|
|
148
151
|
});
|
|
149
|
-
(0, project_setup_cjs_namespaceObject.initializeGeneratedGitRepository)(targetDir);
|
|
152
|
+
const initializedGitRepository = (0, project_setup_cjs_namespaceObject.initializeGeneratedGitRepository)(targetDir);
|
|
150
153
|
const dim = '\x1b[2m\x1b[3m';
|
|
151
154
|
const reset = '\x1b[0m';
|
|
152
155
|
console.log(`${index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.success)}\n`);
|
|
@@ -157,6 +160,11 @@ async function main() {
|
|
|
157
160
|
})}${reset}`);
|
|
158
161
|
console.log(`${dim} ${index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.step2)}${reset}`);
|
|
159
162
|
console.log(`${dim} pnpm check${reset}`);
|
|
163
|
+
if (initializedGitRepository) {
|
|
164
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.initialCommit));
|
|
165
|
+
console.log(`${dim} git add .${reset}`);
|
|
166
|
+
console.log(`${dim} git commit -m "chore: initial UltraModern scaffold"${reset}`);
|
|
167
|
+
}
|
|
160
168
|
console.log(`${dim} ${index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.step3)}${reset}\n`);
|
|
161
169
|
}
|
|
162
170
|
main().catch((error)=>{
|
package/dist/cjs/locale/en.cjs
CHANGED
|
@@ -46,7 +46,8 @@ const EN_LOCALE = {
|
|
|
46
46
|
nextSteps: '📋 Next steps:',
|
|
47
47
|
step1: 'cd {projectName}',
|
|
48
48
|
step2: 'pnpm install',
|
|
49
|
-
step3: 'pnpm dev'
|
|
49
|
+
step3: 'pnpm dev',
|
|
50
|
+
initialCommit: 'Commit the checked scaffold before starting development or CI builds. Git uses your configured identity and hooks.'
|
|
50
51
|
},
|
|
51
52
|
agentsCmd: {
|
|
52
53
|
created: '✔ Created {file}',
|
package/dist/cjs/locale/zh.cjs
CHANGED
|
@@ -30,11 +30,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30
30
|
const WORKSPACE_PACKAGE_VERSION = 'workspace:*';
|
|
31
31
|
const ULTRAMODERN_CREATE_PACKAGE = '@modern-js/ultramodern-create';
|
|
32
32
|
const BLEEDINGDEV_CREATE_PACKAGE = '@bleedingdev/modern-js-ultramodern-create';
|
|
33
|
-
const LEGACY_BLEEDINGDEV_CREATE_PACKAGE = '@bleedingdev/modern-js-create';
|
|
34
33
|
const BLEEDINGDEV_PACKAGE_SCOPE = 'bleedingdev';
|
|
35
34
|
const BLEEDINGDEV_PACKAGE_NAME_PREFIX = 'modern-js-';
|
|
36
35
|
const ULTRAMODERN_FRAMEWORK_VERSION_ENV = 'ULTRAMODERN_CREATE_FRAMEWORK_VERSION';
|
|
37
|
-
const BLEEDINGDEV_FRAMEWORK_VERSION_ENV = 'MODERN_CREATE_ULTRAMODERN_FRAMEWORK_VERSION';
|
|
38
36
|
const ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES = [
|
|
39
37
|
ULTRAMODERN_CREATE_PACKAGE,
|
|
40
38
|
'@modern-js/code-tools',
|
|
@@ -44,16 +42,28 @@ const ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES = [
|
|
|
44
42
|
'@modern-js/plugin-i18n',
|
|
45
43
|
'@modern-js/plugin-tanstack',
|
|
46
44
|
'@modern-js/plugin-bff',
|
|
45
|
+
'@modern-js/plugin-bff-build-extensions',
|
|
46
|
+
'@modern-js/plugin-bff-extensions',
|
|
47
47
|
'@modern-js/adapter-rstest'
|
|
48
48
|
];
|
|
49
49
|
const ULTRAMODERN_WORKSPACE_MODERN_PACKAGES = [
|
|
50
|
+
'@modern-js/bff-effect',
|
|
51
|
+
'@modern-js/boundary-debugger',
|
|
50
52
|
ULTRAMODERN_CREATE_PACKAGE,
|
|
51
53
|
'@modern-js/code-tools',
|
|
52
54
|
'@modern-js/app-tools',
|
|
53
55
|
'@modern-js/plugin-bff',
|
|
56
|
+
'@modern-js/plugin-bff-build-extensions',
|
|
57
|
+
'@modern-js/plugin-bff-extensions',
|
|
54
58
|
'@modern-js/plugin-i18n',
|
|
59
|
+
'@modern-js/i18n-integration',
|
|
55
60
|
'@modern-js/plugin-tanstack',
|
|
56
|
-
'@modern-js/runtime'
|
|
61
|
+
'@modern-js/runtime',
|
|
62
|
+
'@modern-js/runtime-extensions',
|
|
63
|
+
'@modern-js/runtime-renderer-extensions',
|
|
64
|
+
'@modern-js/federation-runtime',
|
|
65
|
+
'@modern-js/app-tools-extensions',
|
|
66
|
+
'@modern-js/ultramodern-app-tools'
|
|
57
67
|
];
|
|
58
68
|
function modernPackageVersion(packageSource) {
|
|
59
69
|
return 'install' === packageSource.strategy ? packageSource.modernPackageVersion : WORKSPACE_PACKAGE_VERSION;
|
|
@@ -74,10 +84,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
74
84
|
modernPackageVersion: ()=>modernPackageVersion
|
|
75
85
|
}, {
|
|
76
86
|
BLEEDINGDEV_CREATE_PACKAGE: BLEEDINGDEV_CREATE_PACKAGE,
|
|
77
|
-
BLEEDINGDEV_FRAMEWORK_VERSION_ENV: BLEEDINGDEV_FRAMEWORK_VERSION_ENV,
|
|
78
87
|
BLEEDINGDEV_PACKAGE_NAME_PREFIX: BLEEDINGDEV_PACKAGE_NAME_PREFIX,
|
|
79
88
|
BLEEDINGDEV_PACKAGE_SCOPE: BLEEDINGDEV_PACKAGE_SCOPE,
|
|
80
|
-
LEGACY_BLEEDINGDEV_CREATE_PACKAGE: LEGACY_BLEEDINGDEV_CREATE_PACKAGE,
|
|
81
89
|
ULTRAMODERN_CREATE_PACKAGE: ULTRAMODERN_CREATE_PACKAGE,
|
|
82
90
|
ULTRAMODERN_FRAMEWORK_VERSION_ENV: ULTRAMODERN_FRAMEWORK_VERSION_ENV,
|
|
83
91
|
ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES: ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES,
|
|
@@ -85,10 +93,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
85
93
|
WORKSPACE_PACKAGE_VERSION: WORKSPACE_PACKAGE_VERSION
|
|
86
94
|
});
|
|
87
95
|
exports.BLEEDINGDEV_CREATE_PACKAGE = __webpack_exports__.BLEEDINGDEV_CREATE_PACKAGE;
|
|
88
|
-
exports.BLEEDINGDEV_FRAMEWORK_VERSION_ENV = __webpack_exports__.BLEEDINGDEV_FRAMEWORK_VERSION_ENV;
|
|
89
96
|
exports.BLEEDINGDEV_PACKAGE_NAME_PREFIX = __webpack_exports__.BLEEDINGDEV_PACKAGE_NAME_PREFIX;
|
|
90
97
|
exports.BLEEDINGDEV_PACKAGE_SCOPE = __webpack_exports__.BLEEDINGDEV_PACKAGE_SCOPE;
|
|
91
|
-
exports.LEGACY_BLEEDINGDEV_CREATE_PACKAGE = __webpack_exports__.LEGACY_BLEEDINGDEV_CREATE_PACKAGE;
|
|
92
98
|
exports.ULTRAMODERN_CREATE_PACKAGE = __webpack_exports__.ULTRAMODERN_CREATE_PACKAGE;
|
|
93
99
|
exports.ULTRAMODERN_FRAMEWORK_VERSION_ENV = __webpack_exports__.ULTRAMODERN_FRAMEWORK_VERSION_ENV;
|
|
94
100
|
exports.ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES = __webpack_exports__.ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES;
|
|
@@ -98,10 +104,8 @@ exports.modernPackageSpecifier = __webpack_exports__.modernPackageSpecifier;
|
|
|
98
104
|
exports.modernPackageVersion = __webpack_exports__.modernPackageVersion;
|
|
99
105
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
100
106
|
"BLEEDINGDEV_CREATE_PACKAGE",
|
|
101
|
-
"BLEEDINGDEV_FRAMEWORK_VERSION_ENV",
|
|
102
107
|
"BLEEDINGDEV_PACKAGE_NAME_PREFIX",
|
|
103
108
|
"BLEEDINGDEV_PACKAGE_SCOPE",
|
|
104
|
-
"LEGACY_BLEEDINGDEV_CREATE_PACKAGE",
|
|
105
109
|
"ULTRAMODERN_CREATE_PACKAGE",
|
|
106
110
|
"ULTRAMODERN_FRAMEWORK_VERSION_ENV",
|
|
107
111
|
"ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES",
|
|
@@ -37,14 +37,12 @@ var __webpack_require__ = {};
|
|
|
37
37
|
var __webpack_exports__ = {};
|
|
38
38
|
__webpack_require__.r(__webpack_exports__);
|
|
39
39
|
__webpack_require__.d(__webpack_exports__, {
|
|
40
|
-
|
|
40
|
+
RELEASE_COHORT_PATH: ()=>RELEASE_COHORT_PATH,
|
|
41
41
|
assertReleaseCohortPackageSource: ()=>assertReleaseCohortPackageSource,
|
|
42
|
-
copyCreateReleaseCohort: ()=>copyCreateReleaseCohort,
|
|
43
42
|
hasCreateReleaseCohort: ()=>hasCreateReleaseCohort,
|
|
44
43
|
isCreatePackageSourceCheckout: ()=>isCreatePackageSourceCheckout,
|
|
45
44
|
parseUltramodernReleaseCohort: ()=>parseUltramodernReleaseCohort,
|
|
46
45
|
readCreateReleaseCohort: ()=>readCreateReleaseCohort,
|
|
47
|
-
readWorkspaceReleaseCohort: ()=>readWorkspaceReleaseCohort,
|
|
48
46
|
releaseCohortSelectors: ()=>releaseCohortSelectors
|
|
49
47
|
});
|
|
50
48
|
const external_node_fs_namespaceObject = require("node:fs");
|
|
@@ -52,7 +50,7 @@ var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node
|
|
|
52
50
|
const external_node_path_namespaceObject = require("node:path");
|
|
53
51
|
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
54
52
|
const fs_io_cjs_namespaceObject = require("./ultramodern-workspace/fs-io.cjs");
|
|
55
|
-
const
|
|
53
|
+
const RELEASE_COHORT_PATH = 'release-cohort.json';
|
|
56
54
|
const RELEASE_COHORT_PROJECTION_SCHEMA = 'bleedingdev.ultramodern.release-cohort';
|
|
57
55
|
const RELEASE_COHORT_PROJECTION_SCHEMA_VERSION = 1;
|
|
58
56
|
function assert(condition, message) {
|
|
@@ -149,23 +147,14 @@ function readCohortFile(filePath) {
|
|
|
149
147
|
return parseUltramodernReleaseCohort(value);
|
|
150
148
|
}
|
|
151
149
|
function readCreateReleaseCohort() {
|
|
152
|
-
return readCohortFile(external_node_path_default().join(fs_io_cjs_namespaceObject.createPackageRoot,
|
|
150
|
+
return readCohortFile(external_node_path_default().join(fs_io_cjs_namespaceObject.createPackageRoot, RELEASE_COHORT_PATH));
|
|
153
151
|
}
|
|
154
152
|
function hasCreateReleaseCohort() {
|
|
155
|
-
return external_node_fs_default().existsSync(external_node_path_default().join(fs_io_cjs_namespaceObject.createPackageRoot,
|
|
153
|
+
return external_node_fs_default().existsSync(external_node_path_default().join(fs_io_cjs_namespaceObject.createPackageRoot, RELEASE_COHORT_PATH));
|
|
156
154
|
}
|
|
157
155
|
function isCreatePackageSourceCheckout() {
|
|
158
156
|
return external_node_fs_default().existsSync(external_node_path_default().join(fs_io_cjs_namespaceObject.createPackageRoot, 'src'));
|
|
159
157
|
}
|
|
160
|
-
function readWorkspaceReleaseCohort(workspaceRoot) {
|
|
161
|
-
return readCohortFile(external_node_path_default().join(workspaceRoot, RELEASE_COHORT_PROJECTION_PATH));
|
|
162
|
-
}
|
|
163
|
-
function copyCreateReleaseCohort(workspaceRoot) {
|
|
164
|
-
const sourcePath = external_node_path_default().join(fs_io_cjs_namespaceObject.createPackageRoot, 'template-workspace', RELEASE_COHORT_PROJECTION_PATH);
|
|
165
|
-
const cohort = readCohortFile(sourcePath);
|
|
166
|
-
(0, fs_io_cjs_namespaceObject.writeFile)(workspaceRoot, RELEASE_COHORT_PROJECTION_PATH, external_node_fs_default().readFileSync(sourcePath, 'utf8'));
|
|
167
|
-
return cohort;
|
|
168
|
-
}
|
|
169
158
|
function assertReleaseCohortPackageSource(cohort, packageSource) {
|
|
170
159
|
if ('install' !== packageSource.strategy) return;
|
|
171
160
|
assert(packageSource.modernPackageVersion === cohort.release.version, `Package source release ${packageSource.modernPackageVersion} does not match authenticated release cohort ${cohort.release.version}.`);
|
|
@@ -181,24 +170,20 @@ function assertReleaseCohortPackageSource(cohort, packageSource) {
|
|
|
181
170
|
function releaseCohortSelectors(cohort) {
|
|
182
171
|
return cohort.packages.map((item)=>`${item.targetName}@${item.version}`).sort();
|
|
183
172
|
}
|
|
184
|
-
exports.
|
|
173
|
+
exports.RELEASE_COHORT_PATH = __webpack_exports__.RELEASE_COHORT_PATH;
|
|
185
174
|
exports.assertReleaseCohortPackageSource = __webpack_exports__.assertReleaseCohortPackageSource;
|
|
186
|
-
exports.copyCreateReleaseCohort = __webpack_exports__.copyCreateReleaseCohort;
|
|
187
175
|
exports.hasCreateReleaseCohort = __webpack_exports__.hasCreateReleaseCohort;
|
|
188
176
|
exports.isCreatePackageSourceCheckout = __webpack_exports__.isCreatePackageSourceCheckout;
|
|
189
177
|
exports.parseUltramodernReleaseCohort = __webpack_exports__.parseUltramodernReleaseCohort;
|
|
190
178
|
exports.readCreateReleaseCohort = __webpack_exports__.readCreateReleaseCohort;
|
|
191
|
-
exports.readWorkspaceReleaseCohort = __webpack_exports__.readWorkspaceReleaseCohort;
|
|
192
179
|
exports.releaseCohortSelectors = __webpack_exports__.releaseCohortSelectors;
|
|
193
180
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
194
|
-
"
|
|
181
|
+
"RELEASE_COHORT_PATH",
|
|
195
182
|
"assertReleaseCohortPackageSource",
|
|
196
|
-
"copyCreateReleaseCohort",
|
|
197
183
|
"hasCreateReleaseCohort",
|
|
198
184
|
"isCreatePackageSourceCheckout",
|
|
199
185
|
"parseUltramodernReleaseCohort",
|
|
200
186
|
"readCreateReleaseCohort",
|
|
201
|
-
"readWorkspaceReleaseCohort",
|
|
202
187
|
"releaseCohortSelectors"
|
|
203
188
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
204
189
|
Object.defineProperty(exports, '__esModule', {
|
|
@@ -39,11 +39,22 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
39
39
|
__webpack_require__.d(__webpack_exports__, {
|
|
40
40
|
runCloudflareOutputVerify: ()=>runCloudflareOutputVerify
|
|
41
41
|
});
|
|
42
|
+
const external_node_module_namespaceObject = require("node:module");
|
|
42
43
|
const external_node_path_namespaceObject = require("node:path");
|
|
43
44
|
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
45
|
+
const descriptors_cjs_namespaceObject = require("../../ultramodern-workspace/descriptors.cjs");
|
|
44
46
|
const external_config_cjs_namespaceObject = require("../config.cjs");
|
|
45
|
-
const external_context_cjs_namespaceObject = require("./context.cjs");
|
|
46
47
|
const external_options_cjs_namespaceObject = require("./options.cjs");
|
|
48
|
+
const REQUIRE_PUBLIC_URLS_FLAG = '--require-public-urls';
|
|
49
|
+
const missingPublicUrl = ({ label, publicUrlEnv })=>{
|
|
50
|
+
if (!publicUrlEnv) return `${REQUIRE_PUBLIC_URLS_FLAG} needs --app, not --output (${label}).`;
|
|
51
|
+
const names = [
|
|
52
|
+
publicUrlEnv,
|
|
53
|
+
'MODERN_PUBLIC_SITE_URL',
|
|
54
|
+
'ULTRAMODERN_CLOUDFLARE_WORKERS_DEV_SUBDOMAIN'
|
|
55
|
+
];
|
|
56
|
+
return names.some((name)=>process.env[name]?.trim()) ? void 0 : `Cloudflare deploy for ${label} needs ${names.join(', ')}.`;
|
|
57
|
+
};
|
|
47
58
|
const resolveCloudflareOutputVerifyTargets = (args, context)=>{
|
|
48
59
|
const outputDirectory = (0, external_options_cjs_namespaceObject.readOption)(args, '--output');
|
|
49
60
|
const appId = (0, external_options_cjs_namespaceObject.readOption)(args, '--app');
|
|
@@ -53,75 +64,57 @@ const resolveCloudflareOutputVerifyTargets = (args, context)=>{
|
|
|
53
64
|
label: outputDirectory,
|
|
54
65
|
outputDirectory: external_node_path_default().resolve(context.invocationCwd, outputDirectory)
|
|
55
66
|
}
|
|
56
|
-
] : (0, external_config_cjs_namespaceObject.workspaceAppsFromToolingConfig)((0, external_config_cjs_namespaceObject.readUltramodernConfig)(context.workspaceRoot)).filter((app)=>!appId || app.id === appId).map((app)=>({
|
|
67
|
+
] : (0, external_config_cjs_namespaceObject.workspaceAppsFromToolingConfig)((0, external_config_cjs_namespaceObject.readUltramodernConfig)(context.workspaceRoot), context.workspaceRoot).filter((app)=>!appId || app.id === appId).map((app)=>({
|
|
57
68
|
label: app.id,
|
|
58
|
-
outputDirectory: external_node_path_default().join(context.workspaceRoot, app.directory, '.output')
|
|
69
|
+
outputDirectory: external_node_path_default().join(context.workspaceRoot, app.directory, '.output'),
|
|
70
|
+
publicUrlEnv: (0, descriptors_cjs_namespaceObject.createCloudflarePublicUrlEnv)(app)
|
|
59
71
|
}));
|
|
60
72
|
if (0 === targets.length) throw new Error(`No generated UltraModern app matched ${appId}.`);
|
|
61
73
|
return targets;
|
|
62
74
|
};
|
|
63
|
-
|
|
64
|
-
import { createRequire } from 'node:module';
|
|
65
|
-
import path from 'node:path';
|
|
66
|
-
|
|
67
|
-
const workspaceRoot = ${JSON.stringify(workspaceRoot)};
|
|
68
|
-
const targets = ${JSON.stringify(targets, null, 2)};
|
|
69
|
-
const scanRoots = [workspaceRoot];
|
|
70
|
-
const excludePaths = ${JSON.stringify(excludePaths)};
|
|
71
|
-
const verifierRequire = createRequire(path.join(workspaceRoot, 'package.json'));
|
|
72
|
-
const {
|
|
73
|
-
verifyCloudflareOutput,
|
|
74
|
-
verifyCloudflareOutputMutationPolicy,
|
|
75
|
-
} = verifierRequire('@modern-js/app-tools/cloudflare-output-verifier');
|
|
76
|
-
|
|
77
|
-
let failed = false;
|
|
78
|
-
for (const target of targets) {
|
|
79
|
-
const result = await verifyCloudflareOutput({
|
|
80
|
-
outputDirectory: target.outputDirectory,
|
|
81
|
-
importWorker: true,
|
|
82
|
-
});
|
|
83
|
-
if (result.ok) {
|
|
84
|
-
console.log(\`[ultramodern] Cloudflare output verified: \${target.label}\`);
|
|
85
|
-
} else {
|
|
86
|
-
failed = true;
|
|
87
|
-
console.error(\`[ultramodern] Cloudflare output failed: \${target.label}\`);
|
|
88
|
-
for (const issue of result.issues) {
|
|
89
|
-
console.error(\`- \${issue.code}: \${issue.message}\${issue.path ? \` (\${issue.path})\` : ''}\`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
if (scanRoots.length > 0) {
|
|
95
|
-
const policyResult = await verifyCloudflareOutputMutationPolicy({ scanRoots, excludePaths });
|
|
96
|
-
if (!policyResult.ok) {
|
|
97
|
-
failed = true;
|
|
98
|
-
console.error('[ultramodern] generated-output mutation policy failed');
|
|
99
|
-
for (const issue of policyResult.issues) {
|
|
100
|
-
console.error(\`- \${issue.code}: \${issue.message}\${issue.path ? \` (\${issue.path})\` : ''}\`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
process.exit(failed ? 1 : 0);
|
|
106
|
-
`;
|
|
107
|
-
function runCloudflareOutputVerify(args, context) {
|
|
75
|
+
async function runCloudflareOutputVerify(args, context) {
|
|
108
76
|
if (args.includes('--help') || args.includes('-h')) {
|
|
109
77
|
process.stdout.write(`Usage:
|
|
110
|
-
ultramodern-create ultramodern cloudflare-output-verify [--app <id> | --output <dir>]
|
|
78
|
+
ultramodern-create ultramodern cloudflare-output-verify [--app <id> | --output <dir>] [--require-public-urls]
|
|
111
79
|
|
|
112
80
|
Verifies generated Cloudflare output against the UltraModern worker contract.
|
|
113
81
|
Without --app or --output, every generated workspace app is verified.
|
|
82
|
+
--require-public-urls also fails an app that has no public URL to deploy to.
|
|
114
83
|
`);
|
|
115
84
|
return 0;
|
|
116
85
|
}
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
targets
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
86
|
+
const targets = resolveCloudflareOutputVerifyTargets(args, context);
|
|
87
|
+
if (args.includes(REQUIRE_PUBLIC_URLS_FLAG)) {
|
|
88
|
+
const missing = targets.map(missingPublicUrl).filter((message)=>Boolean(message));
|
|
89
|
+
if (missing.length > 0) throw new Error(missing.join('\n'));
|
|
90
|
+
}
|
|
91
|
+
const verifierRequire = (0, external_node_module_namespaceObject.createRequire)(external_node_path_default().join(context.workspaceRoot, 'package.json'));
|
|
92
|
+
const { verifyCloudflareOutput, verifyCloudflareOutputMutationPolicy } = verifierRequire('@modern-js/app-tools-extensions/cloudflare-output-verifier');
|
|
93
|
+
let failed = false;
|
|
94
|
+
for (const target of targets){
|
|
95
|
+
const result = await verifyCloudflareOutput({
|
|
96
|
+
outputDirectory: target.outputDirectory,
|
|
97
|
+
importWorker: true
|
|
98
|
+
});
|
|
99
|
+
if (result.ok) console.log(`[ultramodern] Cloudflare output verified: ${target.label}`);
|
|
100
|
+
else {
|
|
101
|
+
failed = true;
|
|
102
|
+
console.error(`[ultramodern] Cloudflare output failed: ${target.label}`);
|
|
103
|
+
for (const issue of result.issues)console.error(`- ${issue.code}: ${issue.message}${issue.path ? ` (${issue.path})` : ''}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const policyResult = await verifyCloudflareOutputMutationPolicy({
|
|
107
|
+
scanRoots: [
|
|
108
|
+
context.workspaceRoot
|
|
109
|
+
],
|
|
110
|
+
excludePaths: []
|
|
123
111
|
});
|
|
124
|
-
|
|
112
|
+
if (!policyResult.ok) {
|
|
113
|
+
failed = true;
|
|
114
|
+
console.error('[ultramodern] generated-output mutation policy failed');
|
|
115
|
+
for (const issue of policyResult.issues)console.error(`- ${issue.code}: ${issue.message}${issue.path ? ` (${issue.path})` : ''}`);
|
|
116
|
+
}
|
|
117
|
+
return failed ? 1 : 0;
|
|
125
118
|
}
|
|
126
119
|
exports.runCloudflareOutputVerify = __webpack_exports__.runCloudflareOutputVerify;
|
|
127
120
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|