@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
|
@@ -37,12 +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
|
-
createCompactUltramodernConfig: ()=>createCompactUltramodernConfig,
|
|
41
40
|
generateUltramodernWorkspace: ()=>generateUltramodernWorkspace,
|
|
42
41
|
writeApp: ()=>external_write_app_cjs_namespaceObject.writeApp
|
|
43
42
|
});
|
|
44
43
|
const external_node_fs_namespaceObject = require("node:fs");
|
|
45
44
|
var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
|
|
45
|
+
const external_ultramodern_package_source_cjs_namespaceObject = require("../ultramodern-package-source.cjs");
|
|
46
46
|
const external_ultramodern_release_cohort_cjs_namespaceObject = require("../ultramodern-release-cohort.cjs");
|
|
47
47
|
const transaction_cjs_namespaceObject = require("./add-vertical/transaction.cjs");
|
|
48
48
|
const external_app_files_cjs_namespaceObject = require("./app-files.cjs");
|
|
@@ -55,7 +55,6 @@ const external_naming_cjs_namespaceObject = require("./naming.cjs");
|
|
|
55
55
|
const external_overlays_cjs_namespaceObject = require("./overlays.cjs");
|
|
56
56
|
const external_package_json_cjs_namespaceObject = require("./package-json.cjs");
|
|
57
57
|
const external_package_source_cjs_namespaceObject = require("./package-source.cjs");
|
|
58
|
-
const external_policy_cjs_namespaceObject = require("./policy.cjs");
|
|
59
58
|
const external_versions_cjs_namespaceObject = require("./versions.cjs");
|
|
60
59
|
const external_workspace_scripts_cjs_namespaceObject = require("./workspace-scripts.cjs");
|
|
61
60
|
const external_write_app_cjs_namespaceObject = require("./write-app.cjs");
|
|
@@ -63,9 +62,9 @@ const external_zerops_cjs_namespaceObject = require("./zerops.cjs");
|
|
|
63
62
|
function hasExplicitInstallRequest(options) {
|
|
64
63
|
return void 0 !== options.packageSource && 'workspace' !== options.packageSource.strategy;
|
|
65
64
|
}
|
|
66
|
-
function writeSharedPackages(targetDir, scope) {
|
|
65
|
+
function writeSharedPackages(targetDir, scope, packageSource) {
|
|
67
66
|
for (const sharedPackage of external_descriptors_cjs_namespaceObject.sharedPackages){
|
|
68
|
-
(0, external_fs_io_cjs_namespaceObject.writeJson)(targetDir, `${sharedPackage.directory}/package.json`, (0, external_package_json_cjs_namespaceObject.createSharedPackage)(scope, sharedPackage.id, sharedPackage.description));
|
|
67
|
+
(0, external_fs_io_cjs_namespaceObject.writeJson)(targetDir, `${sharedPackage.directory}/package.json`, (0, external_package_json_cjs_namespaceObject.createSharedPackage)(scope, sharedPackage.id, sharedPackage.description, packageSource));
|
|
69
68
|
(0, external_fs_io_cjs_namespaceObject.writeJson)(targetDir, `${sharedPackage.directory}/tsconfig.json`, (0, external_package_json_cjs_namespaceObject.createSharedPackageTsConfig)(sharedPackage.directory));
|
|
70
69
|
}
|
|
71
70
|
(0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, 'packages/shared-contracts/src/index.ts', (0, external_package_json_cjs_namespaceObject.createSharedContractsIndex)());
|
|
@@ -79,30 +78,25 @@ function writeSharedPackages(targetDir, scope) {
|
|
|
79
78
|
`);
|
|
80
79
|
(0, external_fs_io_cjs_namespaceObject.writeFile)(targetDir, 'packages/shared-design-tokens/src/tokens.css', (0, external_app_files_cjs_namespaceObject.createSharedDesignTokensCss)());
|
|
81
80
|
}
|
|
82
|
-
function
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
function renderCatalogPolicy(packageSource) {
|
|
82
|
+
if ('install' !== packageSource.strategy) return '';
|
|
83
|
+
const catalog = external_ultramodern_package_source_cjs_namespaceObject.ULTRAMODERN_WORKSPACE_MODERN_PACKAGES.map((name)=>` ${JSON.stringify(name)}: ${JSON.stringify((0, external_ultramodern_package_source_cjs_namespaceObject.modernPackageSpecifier)(name, packageSource))}`).join('\n');
|
|
84
|
+
const cohort = (0, external_ultramodern_release_cohort_cjs_namespaceObject.hasCreateReleaseCohort)() ? (0, external_ultramodern_release_cohort_cjs_namespaceObject.readCreateReleaseCohort)() : void 0;
|
|
85
|
+
const pinsShippedCohort = cohort?.packages.every((item)=>(0, external_ultramodern_package_source_cjs_namespaceObject.modernPackageSpecifier)(item.sourceName, packageSource) === `npm:${item.targetName}@${item.version}`);
|
|
86
|
+
const exclude = cohort && pinsShippedCohort ? `minimumReleaseAgeExclude:\n${(0, external_ultramodern_release_cohort_cjs_namespaceObject.releaseCohortSelectors)(cohort).map((selector)=>` - ${JSON.stringify(selector)}`).join('\n')}\n\n` : '';
|
|
87
|
+
return `catalogs:\n ultramodern:\n${catalog}\n\n${exclude}`;
|
|
86
88
|
}
|
|
87
|
-
function
|
|
88
|
-
(0, external_descriptors_cjs_namespaceObject.createShellHost)()
|
|
89
|
-
], enableTailwind = true, bridge, additionalShells = [], primaryShell) {
|
|
90
|
-
const config = (0, external_contracts_cjs_namespaceObject.createUltramodernConfig)(scope, modernVersion, packageSource, apps, enableTailwind, bridge, additionalShells, primaryShell);
|
|
91
|
-
if (config.packageSource && 'object' == typeof config.packageSource && !Array.isArray(config.packageSource)) delete config.packageSource.metadata;
|
|
92
|
-
return config;
|
|
93
|
-
}
|
|
94
|
-
function writePnpmWorkspacePackages(targetDir, bridge) {
|
|
95
|
-
if (!bridge) return;
|
|
89
|
+
function writePnpmWorkspacePackages(targetDir, bridge, packageSource) {
|
|
96
90
|
const pnpmWorkspacePath = `${targetDir}/pnpm-workspace.yaml`;
|
|
97
91
|
const pnpmWorkspace = external_node_fs_default().readFileSync(pnpmWorkspacePath, 'utf-8');
|
|
98
92
|
const packages = [
|
|
99
93
|
'apps/*',
|
|
100
94
|
'verticals/*',
|
|
101
95
|
'packages/*',
|
|
102
|
-
...bridge
|
|
96
|
+
...bridge?.workspacePackages.map((entry)=>entry.pattern) ?? []
|
|
103
97
|
];
|
|
104
98
|
const renderedPackages = packages.map((pattern)=>` - ${pattern}`).join('\n');
|
|
105
|
-
(0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, 'pnpm-workspace.yaml', pnpmWorkspace.replace(/^packages:\r?\n(?: {2}- .+\r?\n)+/u, `packages:\n${renderedPackages}\n`));
|
|
99
|
+
(0, external_fs_io_cjs_namespaceObject.writeFileReplacing)(targetDir, 'pnpm-workspace.yaml', `${renderCatalogPolicy(packageSource)}${pnpmWorkspace.replace(/^packages:\r?\n(?: {2}- .+\r?\n)+/u, `packages:\n${renderedPackages}\n`)}`);
|
|
106
100
|
}
|
|
107
101
|
function generateUltramodernWorkspace(options) {
|
|
108
102
|
const result = (0, transaction_cjs_namespaceObject.runFreshWorkspaceTransaction)(options.targetDir, (stagingRoot)=>generateUltramodernWorkspaceInPlace({
|
|
@@ -115,19 +109,15 @@ function generateUltramodernWorkspaceInPlace(options, logicalWorkspaceRoot = opt
|
|
|
115
109
|
const beforeFiles = (0, external_generation_result_cjs_namespaceObject.createFileSnapshot)(options.targetDir);
|
|
116
110
|
const scope = (0, external_naming_cjs_namespaceObject.toPackageScope)(options.packageName);
|
|
117
111
|
let packageSource;
|
|
118
|
-
let releaseCohort;
|
|
119
112
|
if ((0, external_ultramodern_release_cohort_cjs_namespaceObject.isCreatePackageSourceCheckout)()) {
|
|
120
|
-
if (hasExplicitInstallRequest(options)) throw new Error('A local @modern-js/ultramodern-create source checkout cannot satisfy an explicit install package source. Use workspace mode locally or run the packed published package
|
|
113
|
+
if (hasExplicitInstallRequest(options)) throw new Error('A local @modern-js/ultramodern-create source checkout cannot satisfy an explicit install package source. Use workspace mode locally or run the packed published package.');
|
|
121
114
|
packageSource = (0, external_package_source_cjs_namespaceObject.resolvePackageSource)({
|
|
122
115
|
...options,
|
|
123
116
|
packageSource: {
|
|
124
117
|
strategy: 'workspace'
|
|
125
118
|
}
|
|
126
119
|
});
|
|
127
|
-
} else
|
|
128
|
-
packageSource = (0, external_package_source_cjs_namespaceObject.resolvePackageSource)(options);
|
|
129
|
-
if ('install' === packageSource.strategy) releaseCohort = (0, external_ultramodern_release_cohort_cjs_namespaceObject.readCreateReleaseCohort)();
|
|
130
|
-
}
|
|
120
|
+
} else packageSource = (0, external_package_source_cjs_namespaceObject.resolvePackageSource)(options);
|
|
131
121
|
const bridge = (0, external_bridge_config_cjs_namespaceObject.normalizeUltramodernBridgeConfig)(options.bridge);
|
|
132
122
|
const enableTailwind = false !== options.enableTailwind;
|
|
133
123
|
const initialVerticals = [];
|
|
@@ -142,13 +132,9 @@ function generateUltramodernWorkspaceInPlace(options, logicalWorkspaceRoot = opt
|
|
|
142
132
|
external_node_fs_default().mkdirSync(options.targetDir, {
|
|
143
133
|
recursive: true
|
|
144
134
|
});
|
|
145
|
-
const minimumReleaseAgeExclude = (0, external_policy_cjs_namespaceObject.renderMinimumReleaseAgeExclude)({
|
|
146
|
-
packageSource,
|
|
147
|
-
releaseCohort
|
|
148
|
-
});
|
|
149
135
|
const workspacePackageLinkingPolicy = (0, external_package_source_cjs_namespaceObject.resolveWorkspacePackageLinkingPolicy)(packageSource);
|
|
150
136
|
const excludedRootTemplates = new Set([
|
|
151
|
-
|
|
137
|
+
"scripts/setup-agent-reference-repos.mjs"
|
|
152
138
|
]);
|
|
153
139
|
if (false === options.generateAgentFiles) {
|
|
154
140
|
excludedRootTemplates.add('AGENTS.md.handlebars');
|
|
@@ -159,37 +145,23 @@ function generateUltramodernWorkspaceInPlace(options, logicalWorkspaceRoot = opt
|
|
|
159
145
|
packageScope: scope,
|
|
160
146
|
nodeVersion: external_versions_cjs_namespaceObject.NODE_VERSION,
|
|
161
147
|
pnpmVersion: external_versions_cjs_namespaceObject.PNPM_VERSION,
|
|
162
|
-
nodeFetchVersion: external_versions_cjs_namespaceObject.NODE_FETCH_VERSION,
|
|
163
|
-
drizzleOrmVersion: external_versions_cjs_namespaceObject.DRIZZLE_ORM_VERSION,
|
|
164
148
|
effectVersion: external_versions_cjs_namespaceObject.EFFECT_VERSION,
|
|
165
|
-
effectVitestVersion: external_versions_cjs_namespaceObject.EFFECT_VITEST_VERSION,
|
|
166
149
|
i18nextVersion: external_versions_cjs_namespaceObject.I18NEXT_VERSION,
|
|
167
|
-
moduleFederationVersion: external_versions_cjs_namespaceObject.MODULE_FEDERATION_VERSION,
|
|
168
|
-
msgpackrVersion: external_versions_cjs_namespaceObject.MSGPACKR_VERSION,
|
|
169
|
-
zodVersion: external_versions_cjs_namespaceObject.ZOD_VERSION,
|
|
170
|
-
tanstackHistoryVersion: external_versions_cjs_namespaceObject.TANSTACK_HISTORY_VERSION,
|
|
171
|
-
tanstackRouterCoreVersion: external_versions_cjs_namespaceObject.TANSTACK_ROUTER_CORE_VERSION,
|
|
172
|
-
tanstackRouterVersion: external_versions_cjs_namespaceObject.TANSTACK_ROUTER_VERSION,
|
|
173
|
-
typescriptVersion: external_versions_cjs_namespaceObject.TYPESCRIPT_VERSION,
|
|
174
|
-
wranglerVersion: external_versions_cjs_namespaceObject.WRANGLER_VERSION,
|
|
175
|
-
minimumReleaseAgeExcludeYaml: 0 === minimumReleaseAgeExclude.length ? ' []' : `\n${minimumReleaseAgeExclude.map((selector)=>` - '${selector}'`).join('\n')}`,
|
|
176
150
|
workspacePackageLinkingYaml: Object.entries(workspacePackageLinkingPolicy).map(([key, value])=>`${key}: ${String(value)}\n`).join(''),
|
|
177
151
|
tailwindEnabled: String(enableTailwind)
|
|
178
152
|
}, excludedRootTemplates);
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
(0, external_fs_io_cjs_namespaceObject.writeJson)(options.targetDir, 'package.json', createCompactRootPackageJson(scope, packageSource, initialVerticals, bridge));
|
|
153
|
+
writePnpmWorkspacePackages(options.targetDir, bridge, packageSource);
|
|
154
|
+
(0, external_fs_io_cjs_namespaceObject.writeJson)(options.targetDir, 'package.json', (0, external_package_json_cjs_namespaceObject.createRootPackageJson)(scope, packageSource, initialVerticals, bridge));
|
|
182
155
|
if (initialVerticals.length > 0) (0, external_fs_io_cjs_namespaceObject.writeFile)(options.targetDir, 'zerops.yaml', `${(0, external_zerops_cjs_namespaceObject.createZeropsYaml)(scope, createdApps)}\n`);
|
|
183
156
|
(0, external_fs_io_cjs_namespaceObject.writeJson)(options.targetDir, 'tsconfig.base.json', (0, external_package_json_cjs_namespaceObject.createTsConfigBase)());
|
|
184
157
|
(0, external_fs_io_cjs_namespaceObject.writeJson)(options.targetDir, 'tsconfig.json', (0, external_package_json_cjs_namespaceObject.createRootTsConfig)(createdApps));
|
|
185
158
|
(0, external_fs_io_cjs_namespaceObject.writeJson)(options.targetDir, 'topology/reference-topology.json', (0, external_contracts_cjs_namespaceObject.createTopology)(scope, initialVerticals));
|
|
186
159
|
(0, external_fs_io_cjs_namespaceObject.writeJson)(options.targetDir, 'topology/ownership.json', (0, external_contracts_cjs_namespaceObject.createOwnership)(scope, initialVerticals));
|
|
187
160
|
(0, external_fs_io_cjs_namespaceObject.writeJson)(options.targetDir, 'topology/local-overlays/development.json', (0, external_contracts_cjs_namespaceObject.createDevelopmentOverlay)(scope, initialVerticals));
|
|
188
|
-
(0, external_fs_io_cjs_namespaceObject.writeJson)(options.targetDir, external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH, createCompactUltramodernConfig(scope, options.modernVersion, packageSource, createdApps, enableTailwind, bridge));
|
|
189
161
|
(0, external_write_app_cjs_namespaceObject.writeApp)(options.targetDir, scope, external_descriptors_cjs_namespaceObject.shellApp, packageSource, enableTailwind, initialVerticals, bridge);
|
|
190
162
|
for (const remote of initialVerticals)(0, external_write_app_cjs_namespaceObject.writeApp)(options.targetDir, scope, remote, packageSource, enableTailwind, initialVerticals, bridge);
|
|
191
|
-
writeSharedPackages(options.targetDir, scope);
|
|
192
|
-
(0, external_workspace_scripts_cjs_namespaceObject.writeGeneratedWorkspaceScripts)(options.targetDir
|
|
163
|
+
writeSharedPackages(options.targetDir, scope, packageSource);
|
|
164
|
+
(0, external_workspace_scripts_cjs_namespaceObject.writeGeneratedWorkspaceScripts)(options.targetDir);
|
|
193
165
|
const preliminaryAfterFiles = (0, external_generation_result_cjs_namespaceObject.createFileSnapshot)(options.targetDir);
|
|
194
166
|
const preliminaryDiff = (0, external_generation_result_cjs_namespaceObject.diffFileSnapshots)(beforeFiles, preliminaryAfterFiles);
|
|
195
167
|
const preliminaryResult = (0, external_generation_result_cjs_namespaceObject.createGenerationResult)({
|
|
@@ -219,11 +191,9 @@ function generateUltramodernWorkspaceInPlace(options, logicalWorkspaceRoot = opt
|
|
|
219
191
|
rewrittenPaths
|
|
220
192
|
});
|
|
221
193
|
}
|
|
222
|
-
exports.createCompactUltramodernConfig = __webpack_exports__.createCompactUltramodernConfig;
|
|
223
194
|
exports.generateUltramodernWorkspace = __webpack_exports__.generateUltramodernWorkspace;
|
|
224
195
|
exports.writeApp = __webpack_exports__.writeApp;
|
|
225
196
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
226
|
-
"createCompactUltramodernConfig",
|
|
227
197
|
"generateUltramodernWorkspace",
|
|
228
198
|
"writeApp"
|
|
229
199
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
@@ -63,6 +63,8 @@ function createZeropsService(scope, app) {
|
|
|
63
63
|
` - setup: ${quoteYamlString(app.id)}`,
|
|
64
64
|
' build:',
|
|
65
65
|
` base: ${quoteYamlString(zeropsNodeRuntime)}`,
|
|
66
|
+
' envVariables:',
|
|
67
|
+
` ZE_FAIL_BUILD: ${quoteYamlString('true')}`,
|
|
66
68
|
' buildCommands:',
|
|
67
69
|
' - |',
|
|
68
70
|
...commands.map((command)=>` ${command}`),
|
|
@@ -2,7 +2,7 @@ import node_fs from "node:fs";
|
|
|
2
2
|
import node_path from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { resolveCreatePackageRoot } from "../create-package-root.js";
|
|
5
|
-
import { BLEEDINGDEV_CREATE_PACKAGE,
|
|
5
|
+
import { BLEEDINGDEV_CREATE_PACKAGE, BLEEDINGDEV_PACKAGE_NAME_PREFIX, BLEEDINGDEV_PACKAGE_SCOPE, ULTRAMODERN_FRAMEWORK_VERSION_ENV, WORKSPACE_PACKAGE_VERSION } from "../ultramodern-package-source.js";
|
|
6
6
|
import { isCreatePackageSourceCheckout } from "../ultramodern-release-cohort.js";
|
|
7
7
|
import { WORKSPACE_PROTOCOL_FLAG, getOptionValue } from "./flags.js";
|
|
8
8
|
import { runSetupCommand } from "./project-setup.js";
|
|
@@ -15,7 +15,7 @@ function readCreatePackageJson() {
|
|
|
15
15
|
return JSON.parse(node_fs.readFileSync(createPackageJson, 'utf-8'));
|
|
16
16
|
}
|
|
17
17
|
function isBleedingDevCreatePackage(createPackage) {
|
|
18
|
-
return createPackage.name === BLEEDINGDEV_CREATE_PACKAGE
|
|
18
|
+
return createPackage.name === BLEEDINGDEV_CREATE_PACKAGE;
|
|
19
19
|
}
|
|
20
20
|
function getBleedingDevFrameworkVersion(createPackage, fallbackVersion) {
|
|
21
21
|
const frameworkVersion = createPackage.ultramodern?.frameworkVersion;
|
|
@@ -56,7 +56,7 @@ function hasExplicitUltramodernPackageSource(args, value) {
|
|
|
56
56
|
return value ? configuredValue === value : void 0 !== configuredValue;
|
|
57
57
|
}
|
|
58
58
|
function readBleedingDevFrameworkVersionFromRegistry(fallbackVersion) {
|
|
59
|
-
const envVersion =
|
|
59
|
+
const envVersion = process.env[ULTRAMODERN_FRAMEWORK_VERSION_ENV]?.trim();
|
|
60
60
|
if (envVersion) {
|
|
61
61
|
if (!semverPattern.test(envVersion)) {
|
|
62
62
|
console.error(`${ULTRAMODERN_FRAMEWORK_VERSION_ENV} must be a valid semver version`);
|
|
@@ -42,7 +42,7 @@ function isInsideGitWorkTree(targetDir) {
|
|
|
42
42
|
}
|
|
43
43
|
function initializeGeneratedGitRepository(targetDir) {
|
|
44
44
|
assertGitAvailableForGeneratedProject();
|
|
45
|
-
if (isInsideGitWorkTree(targetDir)) return;
|
|
45
|
+
if (isInsideGitWorkTree(targetDir)) return false;
|
|
46
46
|
try {
|
|
47
47
|
runSetupCommand('git', [
|
|
48
48
|
'init',
|
|
@@ -68,27 +68,7 @@ function initializeGeneratedGitRepository(targetDir) {
|
|
|
68
68
|
stdio: 'inherit'
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
|
-
|
|
72
|
-
'add',
|
|
73
|
-
'-A'
|
|
74
|
-
], {
|
|
75
|
-
cwd: targetDir,
|
|
76
|
-
stdio: 'inherit'
|
|
77
|
-
});
|
|
78
|
-
runSetupCommand('git', [
|
|
79
|
-
'-c',
|
|
80
|
-
'user.name=UltraModern',
|
|
81
|
-
'-c',
|
|
82
|
-
'user.email=ultramodern@bleedingdev.dev',
|
|
83
|
-
'-c',
|
|
84
|
-
'commit.gpgsign=false',
|
|
85
|
-
'commit',
|
|
86
|
-
'-m',
|
|
87
|
-
'chore: initial UltraModern scaffold'
|
|
88
|
-
], {
|
|
89
|
-
cwd: targetDir,
|
|
90
|
-
stdio: 'inherit'
|
|
91
|
-
});
|
|
71
|
+
return true;
|
|
92
72
|
}
|
|
93
73
|
function isDirectoryEmpty(dirPath) {
|
|
94
74
|
if (!node_fs.existsSync(dirPath)) return false;
|
package/dist/esm/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import node_fs from "node:fs";
|
|
|
2
2
|
import node_path from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { runAgentsMd } from "./agents-md.js";
|
|
5
|
-
import { DRY_RUN_FLAG, VERTICAL_FLAG, detectApiProtocolFlag, detectBffRuntime, detectCodeSmithOverlays, detectDryRunFlag, detectExplicitTailwindFlag, detectHorizontalRemoteFlag, detectLanguage, detectPresetFlag, detectTailwindFlag, readBridgeCliOptions, resolveVerticalCliInput } from "./cli/flags.js";
|
|
5
|
+
import { DRY_RUN_FLAG, VERTICAL_FLAG, collectPositionalArgs, detectApiProtocolFlag, detectBffRuntime, detectCodeSmithOverlays, detectDryRunFlag, detectExplicitTailwindFlag, detectHorizontalRemoteFlag, detectLanguage, detectPresetFlag, detectTailwindFlag, readBridgeCliOptions, resolveVerticalCliInput } from "./cli/flags.js";
|
|
6
6
|
import { showHelp, showVersion } from "./cli/help.js";
|
|
7
7
|
import { detectUltramodernPackageSource, getBleedingDevFrameworkVersion, isBleedingDevCreatePackage, readCreatePackageJson, resolveWorkspacePackageSource } from "./cli/package-source.js";
|
|
8
8
|
import { initializeGeneratedGitRepository } from "./cli/project-setup.js";
|
|
@@ -10,6 +10,7 @@ import { getProjectName } from "./cli/prompts.js";
|
|
|
10
10
|
import { i18n, localeKeys } from "./locale/index.js";
|
|
11
11
|
import { runUltramodernToolingCli } from "./ultramodern-tooling/commands.js";
|
|
12
12
|
import { addUltramodernVertical, generateUltramodernWorkspace, planUltramodernVertical } from "./ultramodern-workspace/index.js";
|
|
13
|
+
import { recoverFreshWorkspaceTransactions } from "./ultramodern-workspace/add-vertical/transaction.js";
|
|
13
14
|
import { hasUltramodernBridgeCliOptions } from "./ultramodern-workspace/bridge-config.js";
|
|
14
15
|
const src_dirname = node_path.dirname(fileURLToPath(import.meta.url));
|
|
15
16
|
const templateDir = [
|
|
@@ -90,9 +91,11 @@ async function main() {
|
|
|
90
91
|
console.log(`${dim} pnpm check${reset}\n`);
|
|
91
92
|
return;
|
|
92
93
|
}
|
|
94
|
+
if (0 === collectPositionalArgs(args).length) recoverFreshWorkspaceTransactions(process.cwd());
|
|
93
95
|
const { name: projectName, useCurrentDir } = await getProjectName();
|
|
94
96
|
const targetDir = useCurrentDir ? process.cwd() : node_path.isAbsolute(projectName) ? projectName : node_path.resolve(process.cwd(), projectName);
|
|
95
97
|
const generatedPackageName = useCurrentDir || node_path.isAbsolute(projectName) ? node_path.basename(targetDir) : projectName;
|
|
98
|
+
recoverFreshWorkspaceTransactions(targetDir);
|
|
96
99
|
if (node_fs.existsSync(targetDir)) {
|
|
97
100
|
const files = node_fs.readdirSync(targetDir);
|
|
98
101
|
if (files.length > 0) {
|
|
@@ -114,7 +117,7 @@ async function main() {
|
|
|
114
117
|
packageSource,
|
|
115
118
|
generateAgentFiles
|
|
116
119
|
});
|
|
117
|
-
initializeGeneratedGitRepository(targetDir);
|
|
120
|
+
const initializedGitRepository = initializeGeneratedGitRepository(targetDir);
|
|
118
121
|
const dim = '\x1b[2m\x1b[3m';
|
|
119
122
|
const reset = '\x1b[0m';
|
|
120
123
|
console.log(`${i18n.t(localeKeys.message.success)}\n`);
|
|
@@ -125,6 +128,11 @@ async function main() {
|
|
|
125
128
|
})}${reset}`);
|
|
126
129
|
console.log(`${dim} ${i18n.t(localeKeys.message.step2)}${reset}`);
|
|
127
130
|
console.log(`${dim} pnpm check${reset}`);
|
|
131
|
+
if (initializedGitRepository) {
|
|
132
|
+
console.log(i18n.t(localeKeys.message.initialCommit));
|
|
133
|
+
console.log(`${dim} git add .${reset}`);
|
|
134
|
+
console.log(`${dim} git commit -m "chore: initial UltraModern scaffold"${reset}`);
|
|
135
|
+
}
|
|
128
136
|
console.log(`${dim} ${i18n.t(localeKeys.message.step3)}${reset}\n`);
|
|
129
137
|
}
|
|
130
138
|
main().catch((error)=>{
|
package/dist/esm/locale/en.js
CHANGED
|
@@ -17,7 +17,8 @@ const EN_LOCALE = {
|
|
|
17
17
|
nextSteps: '📋 Next steps:',
|
|
18
18
|
step1: 'cd {projectName}',
|
|
19
19
|
step2: 'pnpm install',
|
|
20
|
-
step3: 'pnpm dev'
|
|
20
|
+
step3: 'pnpm dev',
|
|
21
|
+
initialCommit: 'Commit the checked scaffold before starting development or CI builds. Git uses your configured identity and hooks.'
|
|
21
22
|
},
|
|
22
23
|
agentsCmd: {
|
|
23
24
|
created: '✔ Created {file}',
|
package/dist/esm/locale/zh.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
const WORKSPACE_PACKAGE_VERSION = 'workspace:*';
|
|
2
2
|
const ULTRAMODERN_CREATE_PACKAGE = '@modern-js/ultramodern-create';
|
|
3
3
|
const BLEEDINGDEV_CREATE_PACKAGE = '@bleedingdev/modern-js-ultramodern-create';
|
|
4
|
-
const LEGACY_BLEEDINGDEV_CREATE_PACKAGE = '@bleedingdev/modern-js-create';
|
|
5
4
|
const BLEEDINGDEV_PACKAGE_SCOPE = 'bleedingdev';
|
|
6
5
|
const BLEEDINGDEV_PACKAGE_NAME_PREFIX = 'modern-js-';
|
|
7
6
|
const ULTRAMODERN_FRAMEWORK_VERSION_ENV = 'ULTRAMODERN_CREATE_FRAMEWORK_VERSION';
|
|
8
|
-
const BLEEDINGDEV_FRAMEWORK_VERSION_ENV = 'MODERN_CREATE_ULTRAMODERN_FRAMEWORK_VERSION';
|
|
9
7
|
const ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES = [
|
|
10
8
|
ULTRAMODERN_CREATE_PACKAGE,
|
|
11
9
|
'@modern-js/code-tools',
|
|
@@ -15,16 +13,28 @@ const ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES = [
|
|
|
15
13
|
'@modern-js/plugin-i18n',
|
|
16
14
|
'@modern-js/plugin-tanstack',
|
|
17
15
|
'@modern-js/plugin-bff',
|
|
16
|
+
'@modern-js/plugin-bff-build-extensions',
|
|
17
|
+
'@modern-js/plugin-bff-extensions',
|
|
18
18
|
'@modern-js/adapter-rstest'
|
|
19
19
|
];
|
|
20
20
|
const ULTRAMODERN_WORKSPACE_MODERN_PACKAGES = [
|
|
21
|
+
'@modern-js/bff-effect',
|
|
22
|
+
'@modern-js/boundary-debugger',
|
|
21
23
|
ULTRAMODERN_CREATE_PACKAGE,
|
|
22
24
|
'@modern-js/code-tools',
|
|
23
25
|
'@modern-js/app-tools',
|
|
24
26
|
'@modern-js/plugin-bff',
|
|
27
|
+
'@modern-js/plugin-bff-build-extensions',
|
|
28
|
+
'@modern-js/plugin-bff-extensions',
|
|
25
29
|
'@modern-js/plugin-i18n',
|
|
30
|
+
'@modern-js/i18n-integration',
|
|
26
31
|
'@modern-js/plugin-tanstack',
|
|
27
|
-
'@modern-js/runtime'
|
|
32
|
+
'@modern-js/runtime',
|
|
33
|
+
'@modern-js/runtime-extensions',
|
|
34
|
+
'@modern-js/runtime-renderer-extensions',
|
|
35
|
+
'@modern-js/federation-runtime',
|
|
36
|
+
'@modern-js/app-tools-extensions',
|
|
37
|
+
'@modern-js/ultramodern-app-tools'
|
|
28
38
|
];
|
|
29
39
|
function modernPackageVersion(packageSource) {
|
|
30
40
|
return 'install' === packageSource.strategy ? packageSource.modernPackageVersion : WORKSPACE_PACKAGE_VERSION;
|
|
@@ -40,4 +50,4 @@ function modernPackageSpecifier(packageName, packageSource) {
|
|
|
40
50
|
if (!packageSource.aliasScope) return packageSource.modernPackageVersion;
|
|
41
51
|
return `npm:${modernAliasPackageName(packageName, packageSource)}@${packageSource.modernPackageVersion}`;
|
|
42
52
|
}
|
|
43
|
-
export { BLEEDINGDEV_CREATE_PACKAGE,
|
|
53
|
+
export { BLEEDINGDEV_CREATE_PACKAGE, BLEEDINGDEV_PACKAGE_NAME_PREFIX, BLEEDINGDEV_PACKAGE_SCOPE, ULTRAMODERN_CREATE_PACKAGE, ULTRAMODERN_FRAMEWORK_VERSION_ENV, ULTRAMODERN_SINGLE_APP_MODERN_PACKAGES, ULTRAMODERN_WORKSPACE_MODERN_PACKAGES, WORKSPACE_PACKAGE_VERSION, modernPackageSpecifier, modernPackageVersion };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import node_fs from "node:fs";
|
|
2
2
|
import node_path from "node:path";
|
|
3
|
-
import { createPackageRoot
|
|
4
|
-
const
|
|
3
|
+
import { createPackageRoot } from "./ultramodern-workspace/fs-io.js";
|
|
4
|
+
const RELEASE_COHORT_PATH = 'release-cohort.json';
|
|
5
5
|
const RELEASE_COHORT_PROJECTION_SCHEMA = 'bleedingdev.ultramodern.release-cohort';
|
|
6
6
|
const RELEASE_COHORT_PROJECTION_SCHEMA_VERSION = 1;
|
|
7
7
|
function assert(condition, message) {
|
|
@@ -98,23 +98,14 @@ function readCohortFile(filePath) {
|
|
|
98
98
|
return parseUltramodernReleaseCohort(value);
|
|
99
99
|
}
|
|
100
100
|
function readCreateReleaseCohort() {
|
|
101
|
-
return readCohortFile(node_path.join(createPackageRoot,
|
|
101
|
+
return readCohortFile(node_path.join(createPackageRoot, RELEASE_COHORT_PATH));
|
|
102
102
|
}
|
|
103
103
|
function hasCreateReleaseCohort() {
|
|
104
|
-
return node_fs.existsSync(node_path.join(createPackageRoot,
|
|
104
|
+
return node_fs.existsSync(node_path.join(createPackageRoot, RELEASE_COHORT_PATH));
|
|
105
105
|
}
|
|
106
106
|
function isCreatePackageSourceCheckout() {
|
|
107
107
|
return node_fs.existsSync(node_path.join(createPackageRoot, 'src'));
|
|
108
108
|
}
|
|
109
|
-
function readWorkspaceReleaseCohort(workspaceRoot) {
|
|
110
|
-
return readCohortFile(node_path.join(workspaceRoot, RELEASE_COHORT_PROJECTION_PATH));
|
|
111
|
-
}
|
|
112
|
-
function copyCreateReleaseCohort(workspaceRoot) {
|
|
113
|
-
const sourcePath = node_path.join(createPackageRoot, 'template-workspace', RELEASE_COHORT_PROJECTION_PATH);
|
|
114
|
-
const cohort = readCohortFile(sourcePath);
|
|
115
|
-
writeFile(workspaceRoot, RELEASE_COHORT_PROJECTION_PATH, node_fs.readFileSync(sourcePath, 'utf8'));
|
|
116
|
-
return cohort;
|
|
117
|
-
}
|
|
118
109
|
function assertReleaseCohortPackageSource(cohort, packageSource) {
|
|
119
110
|
if ('install' !== packageSource.strategy) return;
|
|
120
111
|
assert(packageSource.modernPackageVersion === cohort.release.version, `Package source release ${packageSource.modernPackageVersion} does not match authenticated release cohort ${cohort.release.version}.`);
|
|
@@ -130,4 +121,4 @@ function assertReleaseCohortPackageSource(cohort, packageSource) {
|
|
|
130
121
|
function releaseCohortSelectors(cohort) {
|
|
131
122
|
return cohort.packages.map((item)=>`${item.targetName}@${item.version}`).sort();
|
|
132
123
|
}
|
|
133
|
-
export {
|
|
124
|
+
export { RELEASE_COHORT_PATH, assertReleaseCohortPackageSource, hasCreateReleaseCohort, isCreatePackageSourceCheckout, parseUltramodernReleaseCohort, readCreateReleaseCohort, releaseCohortSelectors };
|
|
@@ -1,7 +1,18 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
1
2
|
import node_path from "node:path";
|
|
3
|
+
import { createCloudflarePublicUrlEnv } from "../../ultramodern-workspace/descriptors.js";
|
|
2
4
|
import { readUltramodernConfig, workspaceAppsFromToolingConfig } from "../config.js";
|
|
3
|
-
import { runRenderedModule } from "./context.js";
|
|
4
5
|
import { readOption } from "./options.js";
|
|
6
|
+
const REQUIRE_PUBLIC_URLS_FLAG = '--require-public-urls';
|
|
7
|
+
const missingPublicUrl = ({ label, publicUrlEnv })=>{
|
|
8
|
+
if (!publicUrlEnv) return `${REQUIRE_PUBLIC_URLS_FLAG} needs --app, not --output (${label}).`;
|
|
9
|
+
const names = [
|
|
10
|
+
publicUrlEnv,
|
|
11
|
+
'MODERN_PUBLIC_SITE_URL',
|
|
12
|
+
'ULTRAMODERN_CLOUDFLARE_WORKERS_DEV_SUBDOMAIN'
|
|
13
|
+
];
|
|
14
|
+
return names.some((name)=>process.env[name]?.trim()) ? void 0 : `Cloudflare deploy for ${label} needs ${names.join(', ')}.`;
|
|
15
|
+
};
|
|
5
16
|
const resolveCloudflareOutputVerifyTargets = (args, context)=>{
|
|
6
17
|
const outputDirectory = readOption(args, '--output');
|
|
7
18
|
const appId = readOption(args, '--app');
|
|
@@ -11,74 +22,56 @@ const resolveCloudflareOutputVerifyTargets = (args, context)=>{
|
|
|
11
22
|
label: outputDirectory,
|
|
12
23
|
outputDirectory: node_path.resolve(context.invocationCwd, outputDirectory)
|
|
13
24
|
}
|
|
14
|
-
] : workspaceAppsFromToolingConfig(readUltramodernConfig(context.workspaceRoot)).filter((app)=>!appId || app.id === appId).map((app)=>({
|
|
25
|
+
] : workspaceAppsFromToolingConfig(readUltramodernConfig(context.workspaceRoot), context.workspaceRoot).filter((app)=>!appId || app.id === appId).map((app)=>({
|
|
15
26
|
label: app.id,
|
|
16
|
-
outputDirectory: node_path.join(context.workspaceRoot, app.directory, '.output')
|
|
27
|
+
outputDirectory: node_path.join(context.workspaceRoot, app.directory, '.output'),
|
|
28
|
+
publicUrlEnv: createCloudflarePublicUrlEnv(app)
|
|
17
29
|
}));
|
|
18
30
|
if (0 === targets.length) throw new Error(`No generated UltraModern app matched ${appId}.`);
|
|
19
31
|
return targets;
|
|
20
32
|
};
|
|
21
|
-
|
|
22
|
-
import { createRequire } from 'node:module';
|
|
23
|
-
import path from 'node:path';
|
|
24
|
-
|
|
25
|
-
const workspaceRoot = ${JSON.stringify(workspaceRoot)};
|
|
26
|
-
const targets = ${JSON.stringify(targets, null, 2)};
|
|
27
|
-
const scanRoots = [workspaceRoot];
|
|
28
|
-
const excludePaths = ${JSON.stringify(excludePaths)};
|
|
29
|
-
const verifierRequire = createRequire(path.join(workspaceRoot, 'package.json'));
|
|
30
|
-
const {
|
|
31
|
-
verifyCloudflareOutput,
|
|
32
|
-
verifyCloudflareOutputMutationPolicy,
|
|
33
|
-
} = verifierRequire('@modern-js/app-tools/cloudflare-output-verifier');
|
|
34
|
-
|
|
35
|
-
let failed = false;
|
|
36
|
-
for (const target of targets) {
|
|
37
|
-
const result = await verifyCloudflareOutput({
|
|
38
|
-
outputDirectory: target.outputDirectory,
|
|
39
|
-
importWorker: true,
|
|
40
|
-
});
|
|
41
|
-
if (result.ok) {
|
|
42
|
-
console.log(\`[ultramodern] Cloudflare output verified: \${target.label}\`);
|
|
43
|
-
} else {
|
|
44
|
-
failed = true;
|
|
45
|
-
console.error(\`[ultramodern] Cloudflare output failed: \${target.label}\`);
|
|
46
|
-
for (const issue of result.issues) {
|
|
47
|
-
console.error(\`- \${issue.code}: \${issue.message}\${issue.path ? \` (\${issue.path})\` : ''}\`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (scanRoots.length > 0) {
|
|
53
|
-
const policyResult = await verifyCloudflareOutputMutationPolicy({ scanRoots, excludePaths });
|
|
54
|
-
if (!policyResult.ok) {
|
|
55
|
-
failed = true;
|
|
56
|
-
console.error('[ultramodern] generated-output mutation policy failed');
|
|
57
|
-
for (const issue of policyResult.issues) {
|
|
58
|
-
console.error(\`- \${issue.code}: \${issue.message}\${issue.path ? \` (\${issue.path})\` : ''}\`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
process.exit(failed ? 1 : 0);
|
|
64
|
-
`;
|
|
65
|
-
function runCloudflareOutputVerify(args, context) {
|
|
33
|
+
async function runCloudflareOutputVerify(args, context) {
|
|
66
34
|
if (args.includes('--help') || args.includes('-h')) {
|
|
67
35
|
process.stdout.write(`Usage:
|
|
68
|
-
ultramodern-create ultramodern cloudflare-output-verify [--app <id> | --output <dir>]
|
|
36
|
+
ultramodern-create ultramodern cloudflare-output-verify [--app <id> | --output <dir>] [--require-public-urls]
|
|
69
37
|
|
|
70
38
|
Verifies generated Cloudflare output against the UltraModern worker contract.
|
|
71
39
|
Without --app or --output, every generated workspace app is verified.
|
|
40
|
+
--require-public-urls also fails an app that has no public URL to deploy to.
|
|
72
41
|
`);
|
|
73
42
|
return 0;
|
|
74
43
|
}
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
targets
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
44
|
+
const targets = resolveCloudflareOutputVerifyTargets(args, context);
|
|
45
|
+
if (args.includes(REQUIRE_PUBLIC_URLS_FLAG)) {
|
|
46
|
+
const missing = targets.map(missingPublicUrl).filter((message)=>Boolean(message));
|
|
47
|
+
if (missing.length > 0) throw new Error(missing.join('\n'));
|
|
48
|
+
}
|
|
49
|
+
const verifierRequire = createRequire(node_path.join(context.workspaceRoot, 'package.json'));
|
|
50
|
+
const { verifyCloudflareOutput, verifyCloudflareOutputMutationPolicy } = verifierRequire('@modern-js/app-tools-extensions/cloudflare-output-verifier');
|
|
51
|
+
let failed = false;
|
|
52
|
+
for (const target of targets){
|
|
53
|
+
const result = await verifyCloudflareOutput({
|
|
54
|
+
outputDirectory: target.outputDirectory,
|
|
55
|
+
importWorker: true
|
|
56
|
+
});
|
|
57
|
+
if (result.ok) console.log(`[ultramodern] Cloudflare output verified: ${target.label}`);
|
|
58
|
+
else {
|
|
59
|
+
failed = true;
|
|
60
|
+
console.error(`[ultramodern] Cloudflare output failed: ${target.label}`);
|
|
61
|
+
for (const issue of result.issues)console.error(`- ${issue.code}: ${issue.message}${issue.path ? ` (${issue.path})` : ''}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const policyResult = await verifyCloudflareOutputMutationPolicy({
|
|
65
|
+
scanRoots: [
|
|
66
|
+
context.workspaceRoot
|
|
67
|
+
],
|
|
68
|
+
excludePaths: []
|
|
81
69
|
});
|
|
82
|
-
|
|
70
|
+
if (!policyResult.ok) {
|
|
71
|
+
failed = true;
|
|
72
|
+
console.error('[ultramodern] generated-output mutation policy failed');
|
|
73
|
+
for (const issue of policyResult.issues)console.error(`- ${issue.code}: ${issue.message}${issue.path ? ` (${issue.path})` : ''}`);
|
|
74
|
+
}
|
|
75
|
+
return failed ? 1 : 0;
|
|
83
76
|
}
|
|
84
77
|
export { runCloudflareOutputVerify };
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
|
-
import
|
|
3
|
-
import node_os from "node:os";
|
|
2
|
+
import { constants } from "node:os";
|
|
4
3
|
import node_path from "node:path";
|
|
5
4
|
import { fileURLToPath } from "node:url";
|
|
6
5
|
import { resolveCreatePackageRoot } from "../../create-package-root.js";
|
|
7
6
|
import { generatedToolingCommandList, generatedToolingCommands } from "../../ultramodern-workspace/tooling-command-catalog.js";
|
|
8
7
|
const context_dirname = node_path.dirname(fileURLToPath(import.meta.url));
|
|
9
8
|
const createPackageRoot = resolveCreatePackageRoot(context_dirname);
|
|
9
|
+
const AD_HOC_TOOLING_COMMANDS = {
|
|
10
|
+
syncDeliveryUnit: 'sync-delivery-unit',
|
|
11
|
+
skills: 'skills'
|
|
12
|
+
};
|
|
10
13
|
function printHelp() {
|
|
11
14
|
const commands = [
|
|
12
15
|
...generatedToolingCommandList().map((command)=>` ${command}`),
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
` ${AD_HOC_TOOLING_COMMANDS.syncDeliveryUnit}`,
|
|
17
|
+
` ${AD_HOC_TOOLING_COMMANDS.skills} install`,
|
|
18
|
+
` ${AD_HOC_TOOLING_COMMANDS.skills} check`
|
|
15
19
|
].join('\n');
|
|
16
20
|
process.stdout.write(`Usage:
|
|
17
21
|
ultramodern-create ultramodern <command> [args]
|
|
@@ -34,7 +38,7 @@ function spawnNodeScript(relativeScriptPath, args, context, options = {}) {
|
|
|
34
38
|
stdio: 'inherit'
|
|
35
39
|
});
|
|
36
40
|
if (result.error) throw result.error;
|
|
37
|
-
return result.status ?? 1;
|
|
41
|
+
return result.status ?? (result.signal ? 128 + constants.signals[result.signal] : 1);
|
|
38
42
|
}
|
|
39
43
|
function runTemplateBackedToolingCommand(command, args, context) {
|
|
40
44
|
const toolingCommand = generatedToolingCommands.find((candidate)=>candidate.command === command);
|
|
@@ -43,24 +47,4 @@ function runTemplateBackedToolingCommand(command, args, context) {
|
|
|
43
47
|
cwd: 'invocation' === toolingCommand.cwd ? context.invocationCwd : context.workspaceRoot
|
|
44
48
|
});
|
|
45
49
|
}
|
|
46
|
-
|
|
47
|
-
const tempDir = node_fs.mkdtempSync(node_path.join(node_os.tmpdir(), 'ultramodern-tool-'));
|
|
48
|
-
const tempFile = node_path.join(tempDir, 'command.mjs');
|
|
49
|
-
try {
|
|
50
|
-
node_fs.writeFileSync(tempFile, source, 'utf-8');
|
|
51
|
-
const result = spawnSync(process.execPath, [
|
|
52
|
-
tempFile
|
|
53
|
-
], {
|
|
54
|
-
cwd: context.workspaceRoot,
|
|
55
|
-
stdio: 'inherit'
|
|
56
|
-
});
|
|
57
|
-
if (result.error) throw result.error;
|
|
58
|
-
return result.status ?? 1;
|
|
59
|
-
} finally{
|
|
60
|
-
node_fs.rmSync(tempDir, {
|
|
61
|
-
force: true,
|
|
62
|
-
recursive: true
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
export { createPackageRoot, printHelp, runRenderedModule, runTemplateBackedToolingCommand, spawnNodeScript };
|
|
50
|
+
export { AD_HOC_TOOLING_COMMANDS, createPackageRoot, printHelp, runTemplateBackedToolingCommand, spawnNodeScript };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
import node_path from "node:path";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
4
|
+
async function main() {
|
|
5
|
+
const [appDirectory, label, mode] = process.argv.slice(2);
|
|
6
|
+
try {
|
|
7
|
+
if (!appDirectory || !label) throw new Error('Route generation requires an app directory and label.');
|
|
8
|
+
const appRequire = createRequire(node_path.join(appDirectory, 'package.json'));
|
|
9
|
+
const pluginUrl = pathToFileURL(appRequire.resolve('@modern-js/plugin-tanstack')).href;
|
|
10
|
+
const plugin = await import(pluginUrl);
|
|
11
|
+
if ('manifest' === mode) {
|
|
12
|
+
await plugin.writeRouteMetadataManifest({
|
|
13
|
+
appDirectory
|
|
14
|
+
});
|
|
15
|
+
console.log(`[ultramodern] Route metadata manifest generated: ${label}`);
|
|
16
|
+
} else {
|
|
17
|
+
await plugin.generateTanstackRouteArtifacts({
|
|
18
|
+
appDirectory
|
|
19
|
+
});
|
|
20
|
+
console.log(`[ultramodern] TanStack route artifacts generated: ${label}`);
|
|
21
|
+
}
|
|
22
|
+
} catch (error) {
|
|
23
|
+
process.exitCode = 1;
|
|
24
|
+
console.error(`[ultramodern] TanStack route generation failed: ${label}`);
|
|
25
|
+
let current = error;
|
|
26
|
+
let depth = 0;
|
|
27
|
+
while(current){
|
|
28
|
+
const detail = current instanceof Error ? current.stack ?? `${current.name}: ${current.message}` : String(current);
|
|
29
|
+
console.error(`${0 === depth ? '-' : ' caused by:'} ${detail}`);
|
|
30
|
+
current = current instanceof Error ? current.cause : void 0;
|
|
31
|
+
depth += 1;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
main();
|