@bleedingdev/modern-js-create 3.5.0-ultramodern.9 → 3.5.0-ultramodern.90
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 +25 -25
- package/bin/run.js +0 -0
- package/dist/cjs/cli/flags.cjs +357 -0
- package/dist/cjs/cli/help.cjs +108 -0
- package/dist/cjs/cli/package-source.cjs +188 -0
- package/dist/cjs/cli/project-setup.cjs +162 -0
- package/dist/cjs/cli/prompts.cjs +100 -0
- package/dist/cjs/index.cjs +35 -585
- package/dist/cjs/locale/en.cjs +5 -6
- package/dist/cjs/locale/zh.cjs +5 -6
- package/dist/cjs/ultramodern-package-source.cjs +0 -32
- package/dist/cjs/ultramodern-release-cohort.cjs +206 -0
- package/dist/cjs/ultramodern-tooling/commands/cloudflare-output-verify.cjs +136 -0
- package/dist/cjs/ultramodern-tooling/commands/context.cjs +131 -0
- package/dist/cjs/ultramodern-tooling/commands/mf-types.cjs +55 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.cjs +212 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.cjs +50 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.cjs +87 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.cjs +58 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.cjs +100 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.cjs +100 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.cjs +132 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.cjs +67 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.cjs +206 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.cjs +60 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.cjs +67 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.cjs +67 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.cjs +148 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/help.cjs +54 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/install.cjs +52 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/io.cjs +350 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.cjs +200 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/package-source.cjs +89 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.cjs +476 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.cjs +376 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.cjs +99 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.cjs +135 -0
- package/dist/cjs/ultramodern-tooling/commands/migrate-strict-effect.cjs +425 -0
- package/dist/cjs/ultramodern-tooling/commands/options.cjs +59 -0
- package/dist/cjs/ultramodern-tooling/commands/routes-generate.cjs +122 -0
- package/dist/cjs/ultramodern-tooling/commands/skills.cjs +49 -0
- package/dist/cjs/ultramodern-tooling/commands/sync-delivery-unit.cjs +40 -0
- package/dist/cjs/ultramodern-tooling/commands/validate.cjs +53 -0
- package/dist/cjs/ultramodern-tooling/commands.cjs +27 -491
- package/dist/cjs/ultramodern-tooling/config/constants.cjs +48 -0
- package/dist/cjs/ultramodern-tooling/config/index.cjs +104 -0
- package/dist/cjs/ultramodern-tooling/config/json.cjs +61 -0
- package/dist/cjs/ultramodern-tooling/config/load.cjs +62 -0
- package/dist/cjs/ultramodern-tooling/config/metadata.cjs +92 -0
- package/dist/cjs/ultramodern-tooling/config/normalize.cjs +236 -0
- package/dist/cjs/ultramodern-tooling/config/synthesize.cjs +157 -0
- package/dist/cjs/ultramodern-tooling/config/types.cjs +18 -0
- package/dist/cjs/ultramodern-tooling/config.cjs +23 -133
- package/dist/cjs/ultramodern-workspace/add-shell.cjs +274 -0
- package/dist/cjs/ultramodern-workspace/add-vertical/constants.cjs +52 -0
- package/dist/cjs/ultramodern-workspace/add-vertical/execute.cjs +183 -0
- package/dist/cjs/ultramodern-workspace/add-vertical/plan.cjs +255 -0
- package/dist/cjs/ultramodern-workspace/add-vertical/preflight.cjs +256 -0
- package/dist/cjs/ultramodern-workspace/add-vertical/shell-files.cjs +122 -0
- package/dist/cjs/ultramodern-workspace/add-vertical/topology.cjs +152 -0
- package/dist/cjs/ultramodern-workspace/add-vertical/transaction.cjs +327 -0
- package/dist/cjs/ultramodern-workspace/add-vertical/workspace-state.cjs +137 -0
- package/dist/cjs/ultramodern-workspace/add-vertical.cjs +22 -571
- package/dist/cjs/ultramodern-workspace/api/checkout-cart.cjs +145 -0
- package/dist/cjs/ultramodern-workspace/api/client.cjs +224 -0
- package/dist/cjs/ultramodern-workspace/api/contracts.cjs +251 -0
- package/dist/cjs/ultramodern-workspace/api/names.cjs +98 -0
- package/dist/cjs/ultramodern-workspace/api/rpc.cjs +264 -0
- package/dist/cjs/ultramodern-workspace/api/service.cjs +252 -0
- package/dist/cjs/ultramodern-workspace/api/shared.cjs +270 -0
- package/dist/cjs/ultramodern-workspace/api.cjs +49 -1005
- package/dist/cjs/ultramodern-workspace/app-files.cjs +51 -69
- package/dist/cjs/ultramodern-workspace/backend-federation.cjs +346 -0
- package/dist/cjs/ultramodern-workspace/bridge-config/cli.cjs +71 -0
- package/dist/cjs/ultramodern-workspace/bridge-config/defaults.cjs +43 -0
- package/dist/cjs/ultramodern-workspace/bridge-config/gates.cjs +93 -0
- package/dist/cjs/ultramodern-workspace/bridge-config/index.cjs +60 -0
- package/dist/cjs/ultramodern-workspace/bridge-config/normalize.cjs +68 -0
- package/dist/cjs/ultramodern-workspace/bridge-config/schema.cjs +78 -0
- package/dist/cjs/ultramodern-workspace/bridge-config/shared.cjs +110 -0
- package/dist/cjs/ultramodern-workspace/bridge-config/validation.cjs +68 -0
- package/dist/cjs/ultramodern-workspace/bridge-config/workspace-packages.cjs +108 -0
- package/dist/cjs/ultramodern-workspace/bridge-config.cjs +32 -297
- package/dist/cjs/ultramodern-workspace/codesmith.cjs +10 -1
- package/dist/cjs/ultramodern-workspace/contracts.cjs +80 -26
- package/dist/cjs/ultramodern-workspace/delivery-unit-schema/types.cjs +291 -0
- package/dist/cjs/ultramodern-workspace/delivery-unit-schema/up-projection.cjs +188 -0
- package/dist/cjs/ultramodern-workspace/delivery-unit-stamp.cjs +56 -0
- package/dist/cjs/ultramodern-workspace/delivery-unit-sync.cjs +153 -0
- package/dist/cjs/ultramodern-workspace/delivery-unit.cjs +75 -0
- package/dist/cjs/ultramodern-workspace/demo-components.cjs +474 -205
- package/dist/cjs/ultramodern-workspace/descriptors.cjs +101 -16
- package/dist/cjs/ultramodern-workspace/effect-diagnostics.cjs +114 -0
- package/dist/cjs/ultramodern-workspace/fs-io.cjs +26 -36
- package/dist/cjs/ultramodern-workspace/generation-result.cjs +36 -3
- package/dist/cjs/ultramodern-workspace/index.cjs +28 -0
- package/dist/cjs/ultramodern-workspace/locales.cjs +3 -17
- package/dist/cjs/ultramodern-workspace/mf-validation/constants.cjs +69 -0
- package/dist/cjs/ultramodern-workspace/mf-validation/discovery.cjs +77 -0
- package/dist/cjs/ultramodern-workspace/mf-validation/inspect.cjs +84 -0
- package/dist/cjs/ultramodern-workspace/mf-validation/object-literal.cjs +188 -0
- package/dist/cjs/ultramodern-workspace/mf-validation/path-utils.cjs +165 -0
- package/dist/cjs/ultramodern-workspace/mf-validation/syntax.cjs +201 -0
- package/dist/cjs/ultramodern-workspace/mf-validation/types.cjs +18 -0
- package/dist/cjs/ultramodern-workspace/mf-validation/validate.cjs +112 -0
- package/dist/cjs/ultramodern-workspace/mf-validation.cjs +6 -529
- package/dist/cjs/ultramodern-workspace/module-federation/config.cjs +336 -0
- package/dist/cjs/ultramodern-workspace/module-federation/index.cjs +73 -0
- package/dist/cjs/ultramodern-workspace/module-federation/reexport-module.cjs +111 -0
- package/dist/cjs/ultramodern-workspace/module-federation/remote-refs.cjs +106 -0
- package/dist/cjs/ultramodern-workspace/module-federation/shared-config.cjs +53 -0
- package/dist/cjs/ultramodern-workspace/module-federation.cjs +18 -477
- package/dist/cjs/ultramodern-workspace/naming.cjs +1 -7
- package/dist/cjs/ultramodern-workspace/overlay-baseline-guard.cjs +408 -0
- package/dist/cjs/ultramodern-workspace/overlays.cjs +39 -5
- package/dist/cjs/ultramodern-workspace/package-json.cjs +54 -301
- package/dist/cjs/ultramodern-workspace/package-source.cjs +11 -2
- package/dist/cjs/ultramodern-workspace/policy.cjs +801 -24
- package/dist/cjs/ultramodern-workspace/public-surface.cjs +1 -22
- package/dist/cjs/ultramodern-workspace/routes.cjs +8 -157
- package/dist/cjs/ultramodern-workspace/shared-patches.cjs +41 -0
- package/dist/cjs/ultramodern-workspace/shells.cjs +151 -0
- package/dist/cjs/ultramodern-workspace/tooling-command-catalog.cjs +147 -0
- package/dist/cjs/ultramodern-workspace/tsconfigs.cjs +200 -0
- package/dist/cjs/ultramodern-workspace/types.cjs +27 -0
- package/dist/cjs/ultramodern-workspace/versions.cjs +52 -37
- package/dist/cjs/ultramodern-workspace/workspace-script-plan.cjs +174 -0
- package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +118 -88
- package/dist/cjs/ultramodern-workspace/workspace-validation-contract.cjs +642 -0
- package/dist/cjs/ultramodern-workspace/write-app.cjs +148 -0
- package/dist/cjs/ultramodern-workspace/write-workspace.cjs +45 -67
- package/dist/cjs/ultramodern-workspace/zerops.cjs +108 -0
- package/dist/esm/cli/flags.js +262 -0
- package/dist/esm/cli/help.js +67 -0
- package/dist/esm/cli/package-source.js +124 -0
- package/dist/esm/cli/project-setup.js +105 -0
- package/dist/esm/cli/prompts.js +51 -0
- package/dist/esm/index.js +19 -565
- package/dist/esm/locale/en.js +5 -6
- package/dist/esm/locale/zh.js +5 -6
- package/dist/esm/ultramodern-package-source.js +1 -24
- package/dist/esm/ultramodern-release-cohort.js +133 -0
- package/dist/esm/ultramodern-tooling/commands/cloudflare-output-verify.js +88 -0
- package/dist/esm/ultramodern-tooling/commands/context.js +66 -0
- package/dist/esm/ultramodern-tooling/commands/mf-types.js +17 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +154 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +12 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +38 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +10 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +45 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +51 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +83 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +16 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +157 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +12 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +7 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +15 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.js +97 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/help.js +16 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/install.js +14 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/io.js +285 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +156 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +51 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +417 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +329 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +24 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.js +80 -0
- package/dist/esm/ultramodern-tooling/commands/migrate-strict-effect.js +376 -0
- package/dist/esm/ultramodern-tooling/commands/options.js +18 -0
- package/dist/esm/ultramodern-tooling/commands/routes-generate.js +74 -0
- package/dist/esm/ultramodern-tooling/commands/skills.js +11 -0
- package/dist/esm/ultramodern-tooling/commands/sync-delivery-unit.js +1 -0
- package/dist/esm/ultramodern-tooling/commands/validate.js +15 -0
- package/dist/esm/ultramodern-tooling/commands.js +23 -482
- package/dist/esm/ultramodern-tooling/config/constants.js +4 -0
- package/dist/esm/ultramodern-tooling/config/index.js +7 -0
- package/dist/esm/ultramodern-tooling/config/json.js +10 -0
- package/dist/esm/ultramodern-tooling/config/load.js +13 -0
- package/dist/esm/ultramodern-tooling/config/metadata.js +37 -0
- package/dist/esm/ultramodern-tooling/config/normalize.js +173 -0
- package/dist/esm/ultramodern-tooling/config/synthesize.js +108 -0
- package/dist/esm/ultramodern-tooling/config/types.js +0 -0
- package/dist/esm/ultramodern-tooling/config.js +1 -120
- package/dist/esm/ultramodern-workspace/add-shell.js +221 -0
- package/dist/esm/ultramodern-workspace/add-vertical/constants.js +5 -0
- package/dist/esm/ultramodern-workspace/add-vertical/execute.js +135 -0
- package/dist/esm/ultramodern-workspace/add-vertical/plan.js +205 -0
- package/dist/esm/ultramodern-workspace/add-vertical/preflight.js +198 -0
- package/dist/esm/ultramodern-workspace/add-vertical/shell-files.js +65 -0
- package/dist/esm/ultramodern-workspace/add-vertical/topology.js +108 -0
- package/dist/esm/ultramodern-workspace/add-vertical/transaction.js +254 -0
- package/dist/esm/ultramodern-workspace/add-vertical/workspace-state.js +67 -0
- package/dist/esm/ultramodern-workspace/add-vertical.js +6 -544
- package/dist/esm/ultramodern-workspace/api/checkout-cart.js +86 -0
- package/dist/esm/ultramodern-workspace/api/client.js +183 -0
- package/dist/esm/ultramodern-workspace/api/contracts.js +201 -0
- package/dist/esm/ultramodern-workspace/api/names.js +33 -0
- package/dist/esm/ultramodern-workspace/api/rpc.js +205 -0
- package/dist/esm/ultramodern-workspace/api/service.js +211 -0
- package/dist/esm/ultramodern-workspace/api/shared.js +226 -0
- package/dist/esm/ultramodern-workspace/api.js +6 -984
- package/dist/esm/ultramodern-workspace/app-files.js +51 -51
- package/dist/esm/ultramodern-workspace/backend-federation.js +281 -0
- package/dist/esm/ultramodern-workspace/bridge-config/cli.js +30 -0
- package/dist/esm/ultramodern-workspace/bridge-config/defaults.js +5 -0
- package/dist/esm/ultramodern-workspace/bridge-config/gates.js +52 -0
- package/dist/esm/ultramodern-workspace/bridge-config/index.js +3 -0
- package/dist/esm/ultramodern-workspace/bridge-config/normalize.js +30 -0
- package/dist/esm/ultramodern-workspace/bridge-config/schema.js +31 -0
- package/dist/esm/ultramodern-workspace/bridge-config/shared.js +51 -0
- package/dist/esm/ultramodern-workspace/bridge-config/validation.js +27 -0
- package/dist/esm/ultramodern-workspace/bridge-config/workspace-packages.js +67 -0
- package/dist/esm/ultramodern-workspace/bridge-config.js +1 -270
- package/dist/esm/ultramodern-workspace/codesmith.js +10 -1
- package/dist/esm/ultramodern-workspace/contracts.js +81 -27
- package/dist/esm/ultramodern-workspace/delivery-unit-schema/types.js +235 -0
- package/dist/esm/ultramodern-workspace/delivery-unit-schema/up-projection.js +129 -0
- package/dist/esm/ultramodern-workspace/delivery-unit-stamp.js +18 -0
- package/dist/esm/ultramodern-workspace/delivery-unit-sync.js +104 -0
- package/dist/esm/ultramodern-workspace/delivery-unit.js +21 -0
- package/dist/esm/ultramodern-workspace/demo-components.js +461 -204
- package/dist/esm/ultramodern-workspace/descriptors.js +75 -17
- package/dist/esm/ultramodern-workspace/effect-diagnostics.js +76 -0
- package/dist/esm/ultramodern-workspace/fs-io.js +27 -18
- package/dist/esm/ultramodern-workspace/generation-result.js +33 -3
- package/dist/esm/ultramodern-workspace/index.js +4 -0
- package/dist/esm/ultramodern-workspace/locales.js +3 -4
- package/dist/esm/ultramodern-workspace/mf-validation/constants.js +19 -0
- package/dist/esm/ultramodern-workspace/mf-validation/discovery.js +28 -0
- package/dist/esm/ultramodern-workspace/mf-validation/inspect.js +46 -0
- package/dist/esm/ultramodern-workspace/mf-validation/object-literal.js +144 -0
- package/dist/esm/ultramodern-workspace/mf-validation/path-utils.js +89 -0
- package/dist/esm/ultramodern-workspace/mf-validation/syntax.js +154 -0
- package/dist/esm/ultramodern-workspace/mf-validation/types.js +0 -0
- package/dist/esm/ultramodern-workspace/mf-validation/validate.js +57 -0
- package/dist/esm/ultramodern-workspace/mf-validation.js +3 -516
- package/dist/esm/ultramodern-workspace/module-federation/config.js +289 -0
- package/dist/esm/ultramodern-workspace/module-federation/index.js +4 -0
- package/dist/esm/ultramodern-workspace/module-federation/reexport-module.js +67 -0
- package/dist/esm/ultramodern-workspace/module-federation/remote-refs.js +65 -0
- package/dist/esm/ultramodern-workspace/module-federation/shared-config.js +12 -0
- package/dist/esm/ultramodern-workspace/module-federation.js +2 -458
- package/dist/esm/ultramodern-workspace/naming.js +2 -2
- package/dist/esm/ultramodern-workspace/overlay-baseline-guard.js +350 -0
- package/dist/esm/ultramodern-workspace/overlays.js +28 -5
- package/dist/esm/ultramodern-workspace/package-json.js +48 -283
- package/dist/esm/ultramodern-workspace/package-source.js +7 -1
- package/dist/esm/ultramodern-workspace/policy.js +784 -10
- package/dist/esm/ultramodern-workspace/public-surface.js +2 -2
- package/dist/esm/ultramodern-workspace/routes.js +9 -143
- package/dist/esm/ultramodern-workspace/shared-patches.js +3 -0
- package/dist/esm/ultramodern-workspace/shells.js +92 -0
- package/dist/esm/ultramodern-workspace/tooling-command-catalog.js +100 -0
- package/dist/esm/ultramodern-workspace/tsconfigs.js +137 -0
- package/dist/esm/ultramodern-workspace/types.js +16 -1
- package/dist/esm/ultramodern-workspace/versions.js +35 -26
- package/dist/esm/ultramodern-workspace/workspace-script-plan.js +124 -0
- package/dist/esm/ultramodern-workspace/workspace-scripts.js +115 -85
- package/dist/esm/ultramodern-workspace/workspace-validation-contract.js +604 -0
- package/dist/esm/ultramodern-workspace/write-app.js +105 -0
- package/dist/esm/ultramodern-workspace/write-workspace.js +47 -66
- package/dist/esm/ultramodern-workspace/zerops.js +70 -0
- package/dist/esm-node/cli/flags.js +263 -0
- package/dist/esm-node/cli/help.js +68 -0
- package/dist/esm-node/cli/package-source.js +125 -0
- package/dist/esm-node/cli/project-setup.js +106 -0
- package/dist/esm-node/cli/prompts.js +52 -0
- package/dist/esm-node/index.js +19 -565
- package/dist/esm-node/locale/en.js +5 -6
- package/dist/esm-node/locale/zh.js +5 -6
- package/dist/esm-node/ultramodern-package-source.js +1 -24
- package/dist/esm-node/ultramodern-release-cohort.js +134 -0
- package/dist/esm-node/ultramodern-tooling/commands/cloudflare-output-verify.js +89 -0
- package/dist/esm-node/ultramodern-tooling/commands/context.js +67 -0
- package/dist/esm-node/ultramodern-tooling/commands/mf-types.js +18 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.js +155 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.js +13 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.js +39 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.js +11 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.js +46 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.js +52 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.js +84 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.js +17 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.js +158 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.js +13 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.js +8 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.js +16 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.js +98 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/help.js +17 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/install.js +15 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/io.js +286 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.js +157 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/package-source.js +52 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.js +418 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.js +330 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.js +25 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.js +81 -0
- package/dist/esm-node/ultramodern-tooling/commands/migrate-strict-effect.js +377 -0
- package/dist/esm-node/ultramodern-tooling/commands/options.js +19 -0
- package/dist/esm-node/ultramodern-tooling/commands/routes-generate.js +75 -0
- package/dist/esm-node/ultramodern-tooling/commands/skills.js +12 -0
- package/dist/esm-node/ultramodern-tooling/commands/sync-delivery-unit.js +2 -0
- package/dist/esm-node/ultramodern-tooling/commands/validate.js +16 -0
- package/dist/esm-node/ultramodern-tooling/commands.js +23 -482
- package/dist/esm-node/ultramodern-tooling/config/constants.js +5 -0
- package/dist/esm-node/ultramodern-tooling/config/index.js +8 -0
- package/dist/esm-node/ultramodern-tooling/config/json.js +11 -0
- package/dist/esm-node/ultramodern-tooling/config/load.js +14 -0
- package/dist/esm-node/ultramodern-tooling/config/metadata.js +38 -0
- package/dist/esm-node/ultramodern-tooling/config/normalize.js +174 -0
- package/dist/esm-node/ultramodern-tooling/config/synthesize.js +109 -0
- package/dist/esm-node/ultramodern-tooling/config/types.js +1 -0
- package/dist/esm-node/ultramodern-tooling/config.js +1 -120
- package/dist/esm-node/ultramodern-workspace/add-shell.js +222 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical/constants.js +6 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical/execute.js +136 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical/plan.js +206 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical/preflight.js +199 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical/shell-files.js +66 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical/topology.js +109 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical/transaction.js +255 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical/workspace-state.js +68 -0
- package/dist/esm-node/ultramodern-workspace/add-vertical.js +6 -544
- package/dist/esm-node/ultramodern-workspace/api/checkout-cart.js +87 -0
- package/dist/esm-node/ultramodern-workspace/api/client.js +184 -0
- package/dist/esm-node/ultramodern-workspace/api/contracts.js +202 -0
- package/dist/esm-node/ultramodern-workspace/api/names.js +34 -0
- package/dist/esm-node/ultramodern-workspace/api/rpc.js +206 -0
- package/dist/esm-node/ultramodern-workspace/api/service.js +212 -0
- package/dist/esm-node/ultramodern-workspace/api/shared.js +227 -0
- package/dist/esm-node/ultramodern-workspace/api.js +6 -984
- package/dist/esm-node/ultramodern-workspace/app-files.js +51 -51
- package/dist/esm-node/ultramodern-workspace/backend-federation.js +282 -0
- package/dist/esm-node/ultramodern-workspace/bridge-config/cli.js +31 -0
- package/dist/esm-node/ultramodern-workspace/bridge-config/defaults.js +6 -0
- package/dist/esm-node/ultramodern-workspace/bridge-config/gates.js +53 -0
- package/dist/esm-node/ultramodern-workspace/bridge-config/index.js +4 -0
- package/dist/esm-node/ultramodern-workspace/bridge-config/normalize.js +31 -0
- package/dist/esm-node/ultramodern-workspace/bridge-config/schema.js +32 -0
- package/dist/esm-node/ultramodern-workspace/bridge-config/shared.js +52 -0
- package/dist/esm-node/ultramodern-workspace/bridge-config/validation.js +28 -0
- package/dist/esm-node/ultramodern-workspace/bridge-config/workspace-packages.js +68 -0
- package/dist/esm-node/ultramodern-workspace/bridge-config.js +1 -270
- package/dist/esm-node/ultramodern-workspace/codesmith.js +10 -1
- package/dist/esm-node/ultramodern-workspace/contracts.js +81 -27
- package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/types.js +236 -0
- package/dist/esm-node/ultramodern-workspace/delivery-unit-schema/up-projection.js +130 -0
- package/dist/esm-node/ultramodern-workspace/delivery-unit-stamp.js +19 -0
- package/dist/esm-node/ultramodern-workspace/delivery-unit-sync.js +105 -0
- package/dist/esm-node/ultramodern-workspace/delivery-unit.js +22 -0
- package/dist/esm-node/ultramodern-workspace/demo-components.js +461 -204
- package/dist/esm-node/ultramodern-workspace/descriptors.js +75 -17
- package/dist/esm-node/ultramodern-workspace/effect-diagnostics.js +77 -0
- package/dist/esm-node/ultramodern-workspace/fs-io.js +27 -18
- package/dist/esm-node/ultramodern-workspace/generation-result.js +33 -3
- package/dist/esm-node/ultramodern-workspace/index.js +4 -0
- package/dist/esm-node/ultramodern-workspace/locales.js +3 -4
- package/dist/esm-node/ultramodern-workspace/mf-validation/constants.js +20 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation/discovery.js +29 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation/inspect.js +47 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation/object-literal.js +145 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation/path-utils.js +90 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation/syntax.js +155 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation/types.js +1 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation/validate.js +58 -0
- package/dist/esm-node/ultramodern-workspace/mf-validation.js +3 -516
- package/dist/esm-node/ultramodern-workspace/module-federation/config.js +290 -0
- package/dist/esm-node/ultramodern-workspace/module-federation/index.js +5 -0
- package/dist/esm-node/ultramodern-workspace/module-federation/reexport-module.js +68 -0
- package/dist/esm-node/ultramodern-workspace/module-federation/remote-refs.js +66 -0
- package/dist/esm-node/ultramodern-workspace/module-federation/shared-config.js +13 -0
- package/dist/esm-node/ultramodern-workspace/module-federation.js +2 -458
- package/dist/esm-node/ultramodern-workspace/naming.js +2 -2
- package/dist/esm-node/ultramodern-workspace/overlay-baseline-guard.js +351 -0
- package/dist/esm-node/ultramodern-workspace/overlays.js +28 -5
- package/dist/esm-node/ultramodern-workspace/package-json.js +48 -283
- package/dist/esm-node/ultramodern-workspace/package-source.js +7 -1
- package/dist/esm-node/ultramodern-workspace/policy.js +784 -10
- package/dist/esm-node/ultramodern-workspace/public-surface.js +2 -2
- package/dist/esm-node/ultramodern-workspace/routes.js +9 -143
- package/dist/esm-node/ultramodern-workspace/shared-patches.js +4 -0
- package/dist/esm-node/ultramodern-workspace/shells.js +93 -0
- package/dist/esm-node/ultramodern-workspace/tooling-command-catalog.js +101 -0
- package/dist/esm-node/ultramodern-workspace/tsconfigs.js +138 -0
- package/dist/esm-node/ultramodern-workspace/types.js +16 -1
- package/dist/esm-node/ultramodern-workspace/versions.js +35 -26
- package/dist/esm-node/ultramodern-workspace/workspace-script-plan.js +125 -0
- package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +115 -85
- package/dist/esm-node/ultramodern-workspace/workspace-validation-contract.js +605 -0
- package/dist/esm-node/ultramodern-workspace/write-app.js +106 -0
- package/dist/esm-node/ultramodern-workspace/write-workspace.js +47 -66
- package/dist/esm-node/ultramodern-workspace/zerops.js +71 -0
- package/dist/types/cli/flags.d.ts +35 -0
- package/dist/types/cli/help.d.ts +2 -0
- package/dist/types/cli/package-source.d.ts +15 -0
- package/dist/types/cli/project-setup.d.ts +8 -0
- package/dist/types/cli/prompts.d.ts +4 -0
- package/dist/types/locale/en.d.ts +3 -4
- package/dist/types/locale/index.d.ts +6 -8
- package/dist/types/locale/zh.d.ts +3 -4
- package/dist/types/ultramodern-package-source.d.ts +0 -11
- package/dist/types/ultramodern-release-cohort.d.ts +30 -0
- package/dist/types/ultramodern-tooling/commands/cloudflare-output-verify.d.ts +2 -0
- package/dist/types/ultramodern-tooling/commands/context.d.ts +11 -0
- package/dist/types/ultramodern-tooling/commands/mf-types.d.ts +2 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/api-metadata.d.ts +12 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/declaration-patches.d.ts +4 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/dependency-usage.d.ts +1 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-backend-federation.d.ts +3 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-build-identity.d.ts +5 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-modern-configs.d.ts +3 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-oxfmt.d.ts +2 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-removal.d.ts +4 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-typescript.d.ts +3 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts-zerops.d.ts +3 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-artifacts.d.ts +7 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-patches.d.ts +3 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/generated-ui-source.d.ts +3 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/help.d.ts +1 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/install.d.ts +2 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/io.d.ts +20 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-cohort.d.ts +9 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/package-source.d.ts +3 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-policy.d.ts +27 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/pnpm-yaml.d.ts +26 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/policy-constants.d.ts +10 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect/toolchain-pins.d.ts +4 -0
- package/dist/types/ultramodern-tooling/commands/migrate-strict-effect.d.ts +2 -0
- package/dist/types/ultramodern-tooling/commands/options.d.ts +2 -0
- package/dist/types/ultramodern-tooling/commands/routes-generate.d.ts +2 -0
- package/dist/types/ultramodern-tooling/commands/skills.d.ts +2 -0
- package/dist/types/ultramodern-tooling/commands/sync-delivery-unit.d.ts +1 -0
- package/dist/types/ultramodern-tooling/commands/validate.d.ts +2 -0
- package/dist/types/ultramodern-tooling/commands.d.ts +1 -1
- package/dist/types/ultramodern-tooling/config/constants.d.ts +3 -0
- package/dist/types/ultramodern-tooling/config/index.d.ts +7 -0
- package/dist/types/ultramodern-tooling/config/json.d.ts +2 -0
- package/dist/types/ultramodern-tooling/config/load.d.ts +2 -0
- package/dist/types/ultramodern-tooling/config/metadata.d.ts +4 -0
- package/dist/types/ultramodern-tooling/config/normalize.d.ts +22 -0
- package/dist/types/ultramodern-tooling/config/synthesize.d.ts +5 -0
- package/dist/types/ultramodern-tooling/config/types.d.ts +45 -0
- package/dist/types/ultramodern-tooling/config.d.ts +1 -43
- package/dist/types/ultramodern-workspace/add-shell.d.ts +14 -0
- package/dist/types/ultramodern-workspace/add-vertical/constants.d.ts +4 -0
- package/dist/types/ultramodern-workspace/add-vertical/execute.d.ts +9 -0
- package/dist/types/ultramodern-workspace/add-vertical/plan.d.ts +2 -0
- package/dist/types/ultramodern-workspace/add-vertical/preflight.d.ts +42 -0
- package/dist/types/ultramodern-workspace/add-vertical/shell-files.d.ts +6 -0
- package/dist/types/ultramodern-workspace/add-vertical/topology.d.ts +9 -0
- package/dist/types/ultramodern-workspace/add-vertical/transaction.d.ts +80 -0
- package/dist/types/ultramodern-workspace/add-vertical/workspace-state.d.ts +15 -0
- package/dist/types/ultramodern-workspace/add-vertical.d.ts +7 -39
- package/dist/types/ultramodern-workspace/api/checkout-cart.d.ts +33 -0
- package/dist/types/ultramodern-workspace/api/client.d.ts +6 -0
- package/dist/types/ultramodern-workspace/api/contracts.d.ts +15 -0
- package/dist/types/ultramodern-workspace/api/names.d.ts +41 -0
- package/dist/types/ultramodern-workspace/api/rpc.d.ts +41 -0
- package/dist/types/ultramodern-workspace/api/service.d.ts +6 -0
- package/dist/types/ultramodern-workspace/api/shared.d.ts +10 -0
- package/dist/types/ultramodern-workspace/api.d.ts +6 -73
- package/dist/types/ultramodern-workspace/app-files.d.ts +4 -10
- package/dist/types/ultramodern-workspace/backend-federation.d.ts +11 -0
- package/dist/types/ultramodern-workspace/bridge-config/cli.d.ts +3 -0
- package/dist/types/ultramodern-workspace/bridge-config/defaults.d.ts +1 -0
- package/dist/types/ultramodern-workspace/bridge-config/gates.d.ts +3 -0
- package/dist/types/ultramodern-workspace/bridge-config/index.d.ts +4 -0
- package/dist/types/ultramodern-workspace/bridge-config/normalize.d.ts +2 -0
- package/dist/types/ultramodern-workspace/bridge-config/schema.d.ts +61 -0
- package/dist/types/ultramodern-workspace/bridge-config/shared.d.ts +12 -0
- package/dist/types/ultramodern-workspace/bridge-config/validation.d.ts +3 -0
- package/dist/types/ultramodern-workspace/bridge-config/workspace-packages.d.ts +3 -0
- package/dist/types/ultramodern-workspace/bridge-config.d.ts +1 -64
- package/dist/types/ultramodern-workspace/codesmith.d.ts +12 -6
- package/dist/types/ultramodern-workspace/contracts.d.ts +3 -3
- package/dist/types/ultramodern-workspace/delivery-unit-schema/types.d.ts +291 -0
- package/dist/types/ultramodern-workspace/delivery-unit-schema/up-projection.d.ts +189 -0
- package/dist/types/ultramodern-workspace/delivery-unit-stamp.d.ts +3 -0
- package/dist/types/ultramodern-workspace/delivery-unit-sync.d.ts +6 -0
- package/dist/types/ultramodern-workspace/delivery-unit.d.ts +8 -0
- package/dist/types/ultramodern-workspace/demo-components.d.ts +14 -3
- package/dist/types/ultramodern-workspace/descriptors.d.ts +27 -3
- package/dist/types/ultramodern-workspace/effect-diagnostics.d.ts +1 -0
- package/dist/types/ultramodern-workspace/fs-io.d.ts +2 -8
- package/dist/types/ultramodern-workspace/generation-result.d.ts +3 -1
- package/dist/types/ultramodern-workspace/index.d.ts +6 -1
- package/dist/types/ultramodern-workspace/locales.d.ts +1 -133
- package/dist/types/ultramodern-workspace/mf-validation/constants.d.ts +5 -0
- package/dist/types/ultramodern-workspace/mf-validation/discovery.d.ts +2 -0
- package/dist/types/ultramodern-workspace/mf-validation/inspect.d.ts +2 -0
- package/dist/types/ultramodern-workspace/mf-validation/object-literal.d.ts +4 -0
- package/dist/types/ultramodern-workspace/mf-validation/path-utils.d.ts +11 -0
- package/dist/types/ultramodern-workspace/mf-validation/syntax.d.ts +5 -0
- package/dist/types/ultramodern-workspace/mf-validation/types.d.ts +33 -0
- package/dist/types/ultramodern-workspace/mf-validation/validate.d.ts +4 -0
- package/dist/types/ultramodern-workspace/mf-validation.d.ts +4 -27
- package/dist/types/ultramodern-workspace/module-federation/config.d.ts +5 -0
- package/dist/types/ultramodern-workspace/module-federation/index.d.ts +4 -0
- package/dist/types/ultramodern-workspace/module-federation/reexport-module.d.ts +4 -0
- package/dist/types/ultramodern-workspace/module-federation/remote-refs.d.ts +3 -0
- package/dist/types/ultramodern-workspace/module-federation/shared-config.d.ts +2 -0
- package/dist/types/ultramodern-workspace/module-federation.d.ts +2 -17
- package/dist/types/ultramodern-workspace/naming.d.ts +0 -2
- package/dist/types/ultramodern-workspace/overlay-baseline-guard.d.ts +57 -0
- package/dist/types/ultramodern-workspace/package-json.d.ts +2 -17
- package/dist/types/ultramodern-workspace/package-source.d.ts +1 -0
- package/dist/types/ultramodern-workspace/policy.d.ts +254 -47
- package/dist/types/ultramodern-workspace/public-api.d.ts +1 -1
- package/dist/types/ultramodern-workspace/public-surface.d.ts +5 -15
- package/dist/types/ultramodern-workspace/routes.d.ts +0 -9
- package/dist/types/ultramodern-workspace/shared-patches.d.ts +1 -0
- package/dist/types/ultramodern-workspace/shells.d.ts +51 -0
- package/dist/types/ultramodern-workspace/tooling-command-catalog.d.ts +18 -0
- package/dist/types/ultramodern-workspace/tsconfigs.d.ts +13 -0
- package/dist/types/ultramodern-workspace/types.d.ts +134 -3
- package/dist/types/ultramodern-workspace/versions.d.ts +35 -26
- package/dist/types/ultramodern-workspace/workspace-script-plan.d.ts +63 -0
- package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +15 -5
- package/dist/types/ultramodern-workspace/workspace-validation-contract.d.ts +243 -0
- package/dist/types/ultramodern-workspace/write-app.d.ts +4 -0
- package/dist/types/ultramodern-workspace/write-workspace.d.ts +3 -3
- package/dist/types/ultramodern-workspace/zerops.d.ts +2 -0
- package/package.json +15 -13
- package/template-workspace/.gitignore.handlebars +8 -0
- package/template-workspace/.modernjs/release-cohort.json +208 -0
- package/template-workspace/AGENTS.md.handlebars +16 -89
- package/template-workspace/README.md.handlebars +17 -16
- package/template-workspace/patches/@module-federation__bridge-react@2.8.0.patch +185 -0
- package/template-workspace/patches/@module-federation__modern-js-v3@2.8.0.patch +259 -0
- package/template-workspace/patches/@tanstack__router-core@1.171.14.patch +123 -0
- package/template-workspace/patches/drizzle-orm-ts7-strict-declarations.patch +452 -0
- package/template-workspace/patches/effect-schema-error-type-id.patch +18 -0
- package/template-workspace/pnpm-workspace.yaml.handlebars +8 -25
- package/template-workspace/scripts/bootstrap-agent-skills.mjs +11 -3
- package/templates/app/shell-frame.tsx +5 -4
- package/templates/workspace/apps/modern.config.shared-module-federation.ts.handlebars +37 -0
- package/templates/workspace/apps/modern.config.ts.handlebars +191 -0
- package/templates/workspace/apps/shared/src/routes/ultramodern-jsonld.ts.handlebars +119 -0
- package/templates/workspace/apps/shared/src/routes/ultramodern-route-metadata.ts.handlebars +21 -0
- package/templates/workspace/apps/shell-super-app/src/routes/[lang]/page.tsx.handlebars +49 -0
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.helpers.tsx.handlebars +27 -0
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.imports.tsx.handlebars +4 -0
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.tsx.handlebars +44 -0
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.worker.helpers.tsx.handlebars +17 -0
- package/templates/workspace/apps/shell-super-app/src/routes/vertical-components.worker.imports.tsx.handlebars +1 -0
- package/templates/workspace/packages/shared-design-tokens/tokens.css.handlebars +7 -0
- package/templates/workspace/tailwind.config.ts.handlebars +3 -0
- package/templates/workspace/verticals/server/checkout-cart-handlers.ts.handlebars +49 -0
- package/templates/workspace/verticals/server/checkout-cart-state.ts.handlebars +23 -0
- package/templates/workspace/verticals/shared/api.checkout-cart-contract-fields.ts.handlebars +1 -0
- package/templates/workspace/verticals/shared/api.checkout-cart-endpoints.ts.handlebars +23 -0
- package/templates/workspace/verticals/shared/api.checkout-cart-operation-contexts.ts.handlebars +29 -0
- package/templates/workspace/verticals/shared/api.checkout-cart-schemas.ts.handlebars +48 -0
- package/templates/workspace/verticals/src/api/checkout-cart-client-exports.ts.handlebars +70 -0
- package/templates/workspace-scripts/assert-mf-types.mjs.handlebars +4 -4
- package/templates/workspace-scripts/check-ultramodern-api-boundaries.mts +40 -2
- package/templates/workspace-scripts/generate-node-backend-federation.mjs +379 -0
- package/templates/workspace-scripts/generate-public-surface-assets.mjs +5 -5
- package/templates/workspace-scripts/materialize-zerops-runtime.mjs +447 -0
- package/templates/workspace-scripts/proof-cloudflare-version.mjs +237 -9
- package/templates/workspace-scripts/proof-node-backend-federation.mjs +1223 -0
- package/templates/workspace-scripts/proof-workerd-ssr.mts +815 -0
- package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +188 -2
- package/templates/workspace-scripts/ultramodern-typecheck.mjs +6 -46
- package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +2436 -258
- package/template-workspace/patches/@tanstack__router-core@1.171.13.patch +0 -51
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical MicroVertical delivery contracts (W4).
|
|
3
|
+
*
|
|
4
|
+
* This module DEFINES the canonical shapes only. It is intentionally UNWIRED:
|
|
5
|
+
* no generator, normalizer, or runtime path imports it, and it does not change
|
|
6
|
+
* any emitted output. The v1 down-projection here is a pure, tested function;
|
|
7
|
+
* it is not invoked by any generation path.
|
|
8
|
+
*
|
|
9
|
+
* Binding vocabulary: root `CONTEXT.md`, ADR-0019 (Federated Loading, Unified
|
|
10
|
+
* Delivery), ADR-0020 (Zoned Surface Versioning). See `packages/toolkit/create/delivery-unit-schema-SPEC.md` for the
|
|
11
|
+
* SurfaceRef grammar, invariants, and the v1 mapping table.
|
|
12
|
+
*
|
|
13
|
+
* TS constraint: plain types + pure functions only. This file is scanned by
|
|
14
|
+
* `tsgo-boundary.test.ts`; it must never import TypeScript compiler APIs.
|
|
15
|
+
*/
|
|
16
|
+
import { type DeliveryUnitRecord } from '@modern-js/utils/universal';
|
|
17
|
+
import type { JsonObject, Ownership, WorkspaceApp } from '../types';
|
|
18
|
+
/**
|
|
19
|
+
* The single accountable owner of a delivery unit. Exactly one owner per unit
|
|
20
|
+
* (CONTEXT.md: "MicroVertical never [has more than] one owner").
|
|
21
|
+
*/
|
|
22
|
+
export type DeliveryUnitOwner = {
|
|
23
|
+
kind: 'team' | 'agent' | 'agent-team';
|
|
24
|
+
id: string;
|
|
25
|
+
contact?: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Exact platform-baseline pins resolved for this unit. Composition-time
|
|
29
|
+
* singletons only (CONTEXT.md: Platform Baseline). Verticals never pick their
|
|
30
|
+
* own version; the cohort is advanced platform-wide.
|
|
31
|
+
*/
|
|
32
|
+
export type BaselineCohortResolved = {
|
|
33
|
+
react: string;
|
|
34
|
+
tanstackRouter: string;
|
|
35
|
+
effect: string;
|
|
36
|
+
tailwind: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* A baseline cohort is an opaque, stable id plus the exact record it resolves
|
|
40
|
+
* to. The id is the unit of comparison; the resolved record is the evidence.
|
|
41
|
+
*/
|
|
42
|
+
export type BaselineCohort = {
|
|
43
|
+
cohortId: string;
|
|
44
|
+
resolved: BaselineCohortResolved;
|
|
45
|
+
};
|
|
46
|
+
export type ExternalRetirement = {
|
|
47
|
+
/** SurfaceRef (canonical string) of the successor major, when known. */
|
|
48
|
+
supersededBy?: string;
|
|
49
|
+
/** Opaque retirement marker (window id / date string), owner-defined. */
|
|
50
|
+
sunsetAfter?: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* External-publication terms. A breaking change ships as a new major exposed
|
|
54
|
+
* side by side with the previous major until known consumers migrate.
|
|
55
|
+
*/
|
|
56
|
+
export type ExternalPublication = {
|
|
57
|
+
surfaceMajor: number;
|
|
58
|
+
/** Opaque compatible-baseline descriptor (e.g. a cohort range id). */
|
|
59
|
+
baselineCompatibility: string;
|
|
60
|
+
retirement?: ExternalRetirement;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Zone discriminated union. `external` carries its terms atomically: it is a
|
|
64
|
+
* type error to be in the external zone without an {@link ExternalPublication}
|
|
65
|
+
* record. Default is `coordinated` (see {@link resolvePublicationZone}).
|
|
66
|
+
*/
|
|
67
|
+
export type PublicationZone = {
|
|
68
|
+
zone: 'coordinated';
|
|
69
|
+
} | {
|
|
70
|
+
zone: 'external';
|
|
71
|
+
external: ExternalPublication;
|
|
72
|
+
};
|
|
73
|
+
export type SurfaceLocationPlatform = 'browser-mf' | 'node-mf' | 'http' | 'cloudflare-binding';
|
|
74
|
+
/**
|
|
75
|
+
* A concrete per-platform location for a surface. Discriminated on `platform`
|
|
76
|
+
* so each platform carries only the address shape it can actually resolve.
|
|
77
|
+
* (ADR-0019 §3: UI/API/backend addresses are derived, platform-appropriate.)
|
|
78
|
+
*/
|
|
79
|
+
export type SurfaceLocation = {
|
|
80
|
+
platform: 'browser-mf';
|
|
81
|
+
manifestUrl: string;
|
|
82
|
+
} | {
|
|
83
|
+
platform: 'node-mf';
|
|
84
|
+
manifestUrl: string;
|
|
85
|
+
} | {
|
|
86
|
+
platform: 'http';
|
|
87
|
+
address: string;
|
|
88
|
+
} | {
|
|
89
|
+
platform: 'cloudflare-binding';
|
|
90
|
+
serviceBinding: string;
|
|
91
|
+
};
|
|
92
|
+
export type SurfaceKind = 'component' | 'route' | 'api' | 'backend';
|
|
93
|
+
export type ApiProtocol = 'rest' | 'rpc' | 'graphql';
|
|
94
|
+
type SurfaceCommon = {
|
|
95
|
+
surfaceId: string;
|
|
96
|
+
/** Per-platform locations. Never mixed across delivery-unit build markers. */
|
|
97
|
+
locations: SurfaceLocation[];
|
|
98
|
+
/**
|
|
99
|
+
* Marks a surface as externally consumable. It inherits the unit's zone:
|
|
100
|
+
* only meaningful when the unit's {@link PublicationZone} is `external`.
|
|
101
|
+
*/
|
|
102
|
+
externallyPublished?: boolean;
|
|
103
|
+
/** Unknown/forward-compatible fields preserved verbatim on round-trip. */
|
|
104
|
+
unknownFields?: JsonObject;
|
|
105
|
+
};
|
|
106
|
+
export type ComponentSurfaceDescriptor = SurfaceCommon & {
|
|
107
|
+
kind: 'component';
|
|
108
|
+
};
|
|
109
|
+
export type RouteSurfaceDescriptor = SurfaceCommon & {
|
|
110
|
+
kind: 'route';
|
|
111
|
+
};
|
|
112
|
+
export type ApiSurfaceDescriptor = SurfaceCommon & {
|
|
113
|
+
kind: 'api';
|
|
114
|
+
protocol: ApiProtocol;
|
|
115
|
+
};
|
|
116
|
+
export type BackendSurfaceDescriptor = SurfaceCommon & {
|
|
117
|
+
kind: 'backend';
|
|
118
|
+
};
|
|
119
|
+
export type SurfaceDescriptor = ComponentSurfaceDescriptor | RouteSurfaceDescriptor | ApiSurfaceDescriptor | BackendSurfaceDescriptor;
|
|
120
|
+
export type DeliveryUnitKind = 'microvertical' | 'shell' | 'horizontal-remote';
|
|
121
|
+
/**
|
|
122
|
+
* The canonical authoring shape for one indivisible delivery unit. All surfaces
|
|
123
|
+
* derive from the single `sourceRevision` / `buildMarker` identity root
|
|
124
|
+
* (ADR-0019 invariants 1-2). This is a superset of today's v1 `WorkspaceApp`;
|
|
125
|
+
* see {@link projectDeliveryUnitToV1} for the lossy down-projection.
|
|
126
|
+
*/
|
|
127
|
+
export type DeliveryUnitDescriptor = {
|
|
128
|
+
unitId: string;
|
|
129
|
+
kind: DeliveryUnitKind;
|
|
130
|
+
owner: DeliveryUnitOwner;
|
|
131
|
+
sourceRevision: string;
|
|
132
|
+
buildMarker: string;
|
|
133
|
+
baselineCohort: BaselineCohort;
|
|
134
|
+
/** Defaults to `{ zone: 'coordinated' }` when omitted. */
|
|
135
|
+
publicationZone?: PublicationZone;
|
|
136
|
+
surfaces: SurfaceDescriptor[];
|
|
137
|
+
/** Unknown/forward-compatible fields preserved verbatim on round-trip. */
|
|
138
|
+
unknownFields?: JsonObject;
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* A resolved surface. It carries NO build marker of its own: the marker lives
|
|
142
|
+
* once on the {@link ResolvedDeliveryUnit}, so a resolver structurally cannot
|
|
143
|
+
* mix locations from different markers (ADR-0019 §3, invariant 3).
|
|
144
|
+
*/
|
|
145
|
+
export type ResolvedSurface = {
|
|
146
|
+
surfaceId: string;
|
|
147
|
+
kind: SurfaceKind;
|
|
148
|
+
locations: SurfaceLocation[];
|
|
149
|
+
};
|
|
150
|
+
export type CompatibilityStatus = 'compatible' | 'incompatible' | 'degraded';
|
|
151
|
+
export type CompatibilityVerdict = {
|
|
152
|
+
status: CompatibilityStatus;
|
|
153
|
+
/** Baseline cohort id the verdict was computed against. */
|
|
154
|
+
baselineCohortId: string;
|
|
155
|
+
reason?: string;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Atomic resolution result. Every platform location for the unit is resolved
|
|
159
|
+
* together against ONE `buildMarker` / `sourceRevision`. There is no partial
|
|
160
|
+
* shape: a resolver returns a whole {@link ResolvedDeliveryUnit} or a typed
|
|
161
|
+
* failure — never a per-surface mix of markers. This shape is the W5/W7
|
|
162
|
+
* contract checkpoint.
|
|
163
|
+
*/
|
|
164
|
+
export type ResolvedDeliveryUnit = {
|
|
165
|
+
unitId: string;
|
|
166
|
+
buildMarker: string;
|
|
167
|
+
sourceRevision: string;
|
|
168
|
+
baselineCohortId: string;
|
|
169
|
+
surfaces: ResolvedSurface[];
|
|
170
|
+
compatibility: CompatibilityVerdict;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Parsed form of a SurfaceRef. Canonical string form is `unitId#surfaceId`
|
|
174
|
+
* with an optional `@vN` major suffix. See `packages/toolkit/create/delivery-unit-schema-SPEC.md` for the EBNF.
|
|
175
|
+
*/
|
|
176
|
+
export type ParsedSurfaceRef = {
|
|
177
|
+
unitId: string;
|
|
178
|
+
surfaceId: string;
|
|
179
|
+
/** External-major selector. Absent means "the coordinated-zone surface". */
|
|
180
|
+
major?: number;
|
|
181
|
+
};
|
|
182
|
+
export type SurfaceRefParseError = {
|
|
183
|
+
code: 'empty';
|
|
184
|
+
} | {
|
|
185
|
+
code: 'missing-surface-separator';
|
|
186
|
+
} | {
|
|
187
|
+
code: 'multiple-surface-separators';
|
|
188
|
+
} | {
|
|
189
|
+
code: 'empty-unit-id';
|
|
190
|
+
} | {
|
|
191
|
+
code: 'invalid-unit-id';
|
|
192
|
+
segment: string;
|
|
193
|
+
} | {
|
|
194
|
+
code: 'empty-surface-id';
|
|
195
|
+
} | {
|
|
196
|
+
code: 'invalid-surface-id';
|
|
197
|
+
} | {
|
|
198
|
+
code: 'empty-major';
|
|
199
|
+
} | {
|
|
200
|
+
code: 'invalid-major';
|
|
201
|
+
value: string;
|
|
202
|
+
};
|
|
203
|
+
export type SurfaceRefParseResult = {
|
|
204
|
+
ok: true;
|
|
205
|
+
ref: ParsedSurfaceRef;
|
|
206
|
+
} | {
|
|
207
|
+
ok: false;
|
|
208
|
+
error: SurfaceRefParseError;
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Parse a canonical SurfaceRef string. Total function: every rejection is a
|
|
212
|
+
* typed {@link SurfaceRefParseError}; never throws.
|
|
213
|
+
*/
|
|
214
|
+
export declare function parseSurfaceRef(input: string): SurfaceRefParseResult;
|
|
215
|
+
/**
|
|
216
|
+
* Render a {@link ParsedSurfaceRef} back to its canonical string form.
|
|
217
|
+
*
|
|
218
|
+
* Direct inputs are checked against the same invariant as parsed references,
|
|
219
|
+
* so this formatter cannot emit a string that {@link parseSurfaceRef} rejects.
|
|
220
|
+
*/
|
|
221
|
+
export declare function formatSurfaceRef(ref: ParsedSurfaceRef): string;
|
|
222
|
+
/** Apply the zone default (coordinated) invariant. */
|
|
223
|
+
export declare function resolvePublicationZone(zone: PublicationZone | undefined): PublicationZone;
|
|
224
|
+
/**
|
|
225
|
+
* Parse a JSON object into a {@link DeliveryUnitDescriptor}, capturing any
|
|
226
|
+
* unrecognised top-level and per-surface keys into `unknownFields` so a later
|
|
227
|
+
* {@link serializeDeliveryUnitDescriptor} can round-trip them verbatim.
|
|
228
|
+
*
|
|
229
|
+
* This is contract-shape capture, not strict validation (that is W3's job);
|
|
230
|
+
* known fields are trusted to already have their declared shapes.
|
|
231
|
+
*/
|
|
232
|
+
export declare function parseDeliveryUnitDescriptor(source: JsonObject): DeliveryUnitDescriptor;
|
|
233
|
+
/**
|
|
234
|
+
* Serialize a {@link DeliveryUnitDescriptor} back to a JSON object. Preserved
|
|
235
|
+
* `unknownFields` are spread back at their original level; known keys always
|
|
236
|
+
* win over a colliding unknown key.
|
|
237
|
+
*/
|
|
238
|
+
export declare function serializeDeliveryUnitDescriptor(descriptor: DeliveryUnitDescriptor): JsonObject;
|
|
239
|
+
/**
|
|
240
|
+
* Generator-only fields that have no source in the canonical descriptor (port
|
|
241
|
+
* assignment, directory layout, package identity, ownership metadata). The
|
|
242
|
+
* descriptor deliberately does not own these; the v1 projection needs them to
|
|
243
|
+
* reconstruct today's `WorkspaceApp` / `DeliveryUnitRecord`.
|
|
244
|
+
*/
|
|
245
|
+
export type V1ProjectionContext = {
|
|
246
|
+
/**
|
|
247
|
+
* Which v1 wire vocabulary is being projected onto. Strict legacy v1 only
|
|
248
|
+
* carries the historical WorkspaceApp fields; extended-v1 also carries the
|
|
249
|
+
* additive delivery-unit discriminators introduced by the workspace
|
|
250
|
+
* topology format.
|
|
251
|
+
*/
|
|
252
|
+
mode?: V1ProjectionMode;
|
|
253
|
+
directory: string;
|
|
254
|
+
packageSuffix: string;
|
|
255
|
+
displayName: string;
|
|
256
|
+
portEnv: string;
|
|
257
|
+
port: number;
|
|
258
|
+
mfName: string;
|
|
259
|
+
ownership: Ownership;
|
|
260
|
+
packageName: string;
|
|
261
|
+
version: string;
|
|
262
|
+
};
|
|
263
|
+
/**
|
|
264
|
+
* The two v1 wire vocabularies understood by the projection pair.
|
|
265
|
+
*
|
|
266
|
+
* `strict-legacy` is the original v1 shape and intentionally rejects values
|
|
267
|
+
* that would be silently collapsed by it. `extended-v1` is still schema
|
|
268
|
+
* version 1, but permits the additive `deliveryUnitKind` and `api.protocol`
|
|
269
|
+
* fields used by the UltraModern topology/config readers.
|
|
270
|
+
*/
|
|
271
|
+
export type V1ProjectionMode = 'strict-legacy' | 'extended-v1';
|
|
272
|
+
export type DeliveryUnitV1Projection = {
|
|
273
|
+
app: WorkspaceApp;
|
|
274
|
+
deliveryUnitRecord: DeliveryUnitRecord;
|
|
275
|
+
/** Unknown descriptor-level fields, preserved for lossless re-serialization. */
|
|
276
|
+
preservedUnknownFields: JsonObject;
|
|
277
|
+
};
|
|
278
|
+
/**
|
|
279
|
+
* Down-project a canonical {@link DeliveryUnitDescriptor} onto today's v1
|
|
280
|
+
* `WorkspaceApp` + `DeliveryUnitRecord` shapes. Pure and total.
|
|
281
|
+
*
|
|
282
|
+
* Invariant (schema-only migration preserves markers): `buildMarker`,
|
|
283
|
+
* `sourceRevision`, and `unitId` flow straight through from the descriptor and
|
|
284
|
+
* are never regenerated here. See `packages/toolkit/create/delivery-unit-schema-SPEC.md` for the field-by-field table.
|
|
285
|
+
*
|
|
286
|
+
* NOT wired into any generator path.
|
|
287
|
+
*/
|
|
288
|
+
export declare function projectDeliveryUnitToV1(descriptor: DeliveryUnitDescriptor, context: V1ProjectionContext): DeliveryUnitV1Projection;
|
|
289
|
+
/** Compile-time exhaustiveness guard for discriminated-union switches. */
|
|
290
|
+
export declare function assertNever(value: never): never;
|
|
291
|
+
export {};
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical MicroVertical delivery contracts (W4) — v1 UP-projection.
|
|
3
|
+
*
|
|
4
|
+
* This module completes the round-trip that the down-projection in
|
|
5
|
+
* `./types.ts` opened. Where {@link projectDeliveryUnitToV1} maps a canonical
|
|
6
|
+
* {@link DeliveryUnitDescriptor} DOWN onto today's v1 `WorkspaceApp` +
|
|
7
|
+
* `DeliveryUnitRecord`, {@link projectV1ToDeliveryUnit} maps a v1
|
|
8
|
+
* `WorkspaceApp` UP into the canonical descriptor. The two compose so that
|
|
9
|
+
* "every current fixture round-trips v1 -> canonical -> v1" (MicroVertical
|
|
10
|
+
* Phase-1 exit criterion).
|
|
11
|
+
*
|
|
12
|
+
* Generator paths consume the projection helpers for grammar-safe surface
|
|
13
|
+
* identity and owner/representability checks; the schema functions themselves
|
|
14
|
+
* remain pure and side-effect free.
|
|
15
|
+
*
|
|
16
|
+
* Binding vocabulary: root `CONTEXT.md`, ADR-0019 (Federated Loading, Unified
|
|
17
|
+
* Delivery), ADR-0020 (Zoned Surface Versioning). See the SPEC §5 mapping
|
|
18
|
+
* table read in reverse.
|
|
19
|
+
*
|
|
20
|
+
* TS constraint: plain types + pure functions only. This file is scanned by
|
|
21
|
+
* `tsgo-boundary.test.ts`; it must never import TypeScript compiler APIs.
|
|
22
|
+
*/
|
|
23
|
+
import type { Ownership, WorkspaceApi, WorkspaceApp } from '../types';
|
|
24
|
+
import type { ApiProtocol, ApiSurfaceDescriptor, BaselineCohort, ComponentSurfaceDescriptor, DeliveryUnitDescriptor, DeliveryUnitOwner, RouteSurfaceDescriptor, V1ProjectionMode } from './types';
|
|
25
|
+
/**
|
|
26
|
+
* The identity-root and platform-baseline facts that a v1 `WorkspaceApp` does
|
|
27
|
+
* NOT carry but a canonical {@link DeliveryUnitDescriptor} requires. This is
|
|
28
|
+
* the mirror image of the down-projection's `V1ProjectionContext`: the down
|
|
29
|
+
* context supplies generator-only fields the descriptor deliberately does not
|
|
30
|
+
* own (port, directory, package identity, ownership); this up context supplies
|
|
31
|
+
* the canonical identity root the v1 app never had.
|
|
32
|
+
*
|
|
33
|
+
* Composition contract: given `record = createDeliveryUnitRecord(scope, app)`
|
|
34
|
+
* (or an existing `DeliveryUnitRecord`), thread `record.buildMarker`,
|
|
35
|
+
* `record.sourceRevision`, and the same `scope` through here so the descriptor
|
|
36
|
+
* this produces reconstructs `record.unitId` verbatim. `buildMarker`,
|
|
37
|
+
* `sourceRevision`, and `unitId` therefore survive a v1 -> canonical -> v1
|
|
38
|
+
* pass untouched (SPEC §5 invariant 5, marker preservation).
|
|
39
|
+
*/
|
|
40
|
+
export type V1UpProjectionContext = {
|
|
41
|
+
/**
|
|
42
|
+
* The v1 vocabulary being read. In `extended-v1`, additive fields already
|
|
43
|
+
* present on the WorkspaceApp are authoritative for kind/protocol; strict
|
|
44
|
+
* legacy mode deliberately ignores them and exposes their loss through the
|
|
45
|
+
* representability guard.
|
|
46
|
+
*/
|
|
47
|
+
mode?: V1ProjectionMode;
|
|
48
|
+
/** Package/topology scope. `unitId` = `${scope}/${app.domain ?? app.id}`. */
|
|
49
|
+
scope: string;
|
|
50
|
+
/** Identity root: exact source revision, threaded, never regenerated. */
|
|
51
|
+
sourceRevision: string;
|
|
52
|
+
/** Identity root: exact build marker, threaded, never regenerated. */
|
|
53
|
+
buildMarker: string;
|
|
54
|
+
/**
|
|
55
|
+
* Composition-time platform baseline pins. v1 has no cohort concept (the
|
|
56
|
+
* cohort is advanced platform-wide, never per-vertical), so the caller must
|
|
57
|
+
* supply the resolved cohort this unit was composed against.
|
|
58
|
+
*/
|
|
59
|
+
baselineCohort: BaselineCohort;
|
|
60
|
+
/**
|
|
61
|
+
* Protocol for the app's HTTP api surface, if any. Defaults to `rest`:
|
|
62
|
+
* today's v1 `WorkspaceApi` is only ever an HTTP REST prefix, so `rest` is
|
|
63
|
+
* the faithful reading of current reality (SPEC §1: api surfaces carry a
|
|
64
|
+
* protocol; v1 cannot distinguish rpc/graphql).
|
|
65
|
+
*/
|
|
66
|
+
apiProtocol?: ApiProtocol;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Map a v1 {@link Ownership} block onto the canonical single {@link
|
|
70
|
+
* DeliveryUnitOwner}.
|
|
71
|
+
*
|
|
72
|
+
* Owner honouring (G3): when the v1 `Ownership` carries an explicit `owner`
|
|
73
|
+
* attribution (opt-in — the way v1 records an `agent` / `agent-team` owner),
|
|
74
|
+
* that attribution IS the canonical owner and is passed through verbatim
|
|
75
|
+
* (`kind` + `id` + optional `contact`). Only when no explicit owner was set
|
|
76
|
+
* does this fall back to the neutral human-team default: `kind: 'team'`, `id`
|
|
77
|
+
* from `ownership.team`, `contact` from `ownership.slack`. The down-projection
|
|
78
|
+
* writes a non-team owner back into `ownership.owner`, so agent / agent-team
|
|
79
|
+
* owners round-trip faithfully through the projection pair.
|
|
80
|
+
*/
|
|
81
|
+
export declare function ownershipToOwner(ownership: Ownership): DeliveryUnitOwner;
|
|
82
|
+
/** Derive a canonical, SurfaceRef-valid `surfaceId` from an MF expose key. */
|
|
83
|
+
export declare function exposeSurfaceId(key: string): string;
|
|
84
|
+
/**
|
|
85
|
+
* Map a single v1 expose onto a component-or-route surface.
|
|
86
|
+
*
|
|
87
|
+
* Route heuristic: an expose whose key or local module path mentions `route`
|
|
88
|
+
* is a `route` surface; everything else is a `component`. The exposed local
|
|
89
|
+
* module path (e.g. `./src/...`) is a build detail the canonical model
|
|
90
|
+
* deliberately abstracts away, so it is dropped; the surface's single
|
|
91
|
+
* `browser-mf` location points at the app's MF manifest (derived from
|
|
92
|
+
* `app.port`, the only address a v1 app exposes for its browser bundle).
|
|
93
|
+
*/
|
|
94
|
+
export declare function exposeSurface(app: WorkspaceApp, key: string, value: string): ComponentSurfaceDescriptor | RouteSurfaceDescriptor;
|
|
95
|
+
/**
|
|
96
|
+
* Map a v1 API descriptor onto the canonical API surface vocabulary.
|
|
97
|
+
*
|
|
98
|
+
* `stem` -> `surfaceId`; `prefix` -> a single `http` location `address`;
|
|
99
|
+
* `protocol` from context (default `rest`). `consumedBy` has no canonical
|
|
100
|
+
* home: it is a v1 emergent graph fact (SPEC §5 marks it non-projected), so it
|
|
101
|
+
* is dropped here and the down-projection re-zeroes it to `[]`.
|
|
102
|
+
*
|
|
103
|
+
* Callers that know the concrete transport mount (for example RPC, which is
|
|
104
|
+
* mounted below the API prefix) may provide its address explicitly. Keeping
|
|
105
|
+
* the surface id/protocol/location construction here prevents generator
|
|
106
|
+
* paths from re-deriving a second canonical API surface shape.
|
|
107
|
+
*/
|
|
108
|
+
export declare function apiSurface(api: WorkspaceApi, protocol: ApiProtocol, address?: string): ApiSurfaceDescriptor;
|
|
109
|
+
/**
|
|
110
|
+
* Up-project a v1 `WorkspaceApp` into a canonical {@link
|
|
111
|
+
* DeliveryUnitDescriptor}. Pure and total: `WorkspaceApp.kind` is only
|
|
112
|
+
* `shell | vertical`, so this never throws and never produces the
|
|
113
|
+
* v1-unrepresentable `horizontal-remote` kind or the `external` zone.
|
|
114
|
+
*
|
|
115
|
+
* The `publicationZone` is always `{ zone: 'coordinated' }`: v1 has no way to
|
|
116
|
+
* express external publication (ADR-0020), so a v1 app is always coordinated.
|
|
117
|
+
*
|
|
118
|
+
* Marker preservation: `unitId` = `${context.scope}/${app.domain ?? app.id}`
|
|
119
|
+
* (identical to `createDeliveryUnitRecord`), and `buildMarker` /
|
|
120
|
+
* `sourceRevision` are threaded straight from `context`, never regenerated.
|
|
121
|
+
*
|
|
122
|
+
* Generator paths may consume this projection for canonical surface metadata;
|
|
123
|
+
* the projection remains pure and does not mutate the v1 app.
|
|
124
|
+
*/
|
|
125
|
+
export declare function projectV1ToDeliveryUnit(app: WorkspaceApp, context: V1UpProjectionContext): DeliveryUnitDescriptor;
|
|
126
|
+
/**
|
|
127
|
+
* The reasons a canonical descriptor cannot be faithfully represented in v1.
|
|
128
|
+
* The down-projection in `./types.ts` degrades ALL of these silently, so this
|
|
129
|
+
* guard exhaustively detects every canonical construct the v1 shape cannot
|
|
130
|
+
* carry and lets callers fail loudly INSTEAD of degrading silently:
|
|
131
|
+
*
|
|
132
|
+
* - `horizontal-remote-kind`: v1 collapses `horizontal-remote` to `vertical`.
|
|
133
|
+
* - `external-zone`: v1 has no publication-zone field (ADR-0020).
|
|
134
|
+
* - `component-or-route-surface`: the down-projection reconstructs no
|
|
135
|
+
* `exposes`, so every component/route surface is dropped.
|
|
136
|
+
* - `backend-surface`: v1 has no backend-surface vocabulary at all.
|
|
137
|
+
* - `multiple-api-surfaces`: v1 carries at most ONE `WorkspaceApi`; the
|
|
138
|
+
* down-projection keeps the first api surface and drops the rest.
|
|
139
|
+
* - `non-rest-protocol`: v1 `WorkspaceApi` is an HTTP REST prefix; `rpc` /
|
|
140
|
+
* `graphql` protocols are dropped (the up-projection re-defaults to
|
|
141
|
+
* `rest`).
|
|
142
|
+
* - `unsupported-surface-shape`: an api surface whose shape v1 cannot carry —
|
|
143
|
+
* anything other than exactly one `http` location, or per-surface
|
|
144
|
+
* `externallyPublished` / `unknownFields` metadata.
|
|
145
|
+
* - `unknown-fields`: the descriptor carries top-level `unknownFields`. v1 has
|
|
146
|
+
* nowhere to store them in-band — the down-projection returns them
|
|
147
|
+
* out-of-band (`preservedUnknownFields`), so a v1 shape cannot reproduce the
|
|
148
|
+
* descriptor byte-for-byte in a single canonical value.
|
|
149
|
+
* - `non-canonical-zone`: the descriptor's `publicationZone` is not exactly the
|
|
150
|
+
* canonical `{ zone: 'coordinated' }` the up-projection always re-emits. A
|
|
151
|
+
* descriptor with NO `publicationZone` (down drops the field, up re-adds an
|
|
152
|
+
* explicit coordinated zone) or a `coordinated` zone carrying extra fields is
|
|
153
|
+
* therefore not round-trip-faithful.
|
|
154
|
+
*/
|
|
155
|
+
export type V1UnrepresentableReason = 'horizontal-remote-kind' | 'external-zone' | 'component-or-route-surface' | 'backend-surface' | 'multiple-api-surfaces' | 'non-rest-protocol' | 'unsupported-surface-shape' | 'unknown-fields' | 'non-canonical-zone';
|
|
156
|
+
export type V1RepresentabilityResult = {
|
|
157
|
+
representable: true;
|
|
158
|
+
} | {
|
|
159
|
+
representable: false;
|
|
160
|
+
code: 'unrepresentable-in-v1';
|
|
161
|
+
reason: V1UnrepresentableReason;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* A typed error for v1-unrepresentable cases. `code` is always
|
|
165
|
+
* `'unrepresentable-in-v1'`; `reason` narrows which invariant was violated.
|
|
166
|
+
*/
|
|
167
|
+
export declare class V1UnrepresentableError extends Error {
|
|
168
|
+
readonly code: 'unrepresentable-in-v1';
|
|
169
|
+
readonly reason: V1UnrepresentableReason;
|
|
170
|
+
constructor(reason: V1UnrepresentableReason);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Total check: is a canonical descriptor faithfully representable in v1?
|
|
174
|
+
* Returns a typed result rather than throwing. Exhaustive over the loss set
|
|
175
|
+
* of `projectDeliveryUnitToV1` (see {@link V1UnrepresentableReason}); the
|
|
176
|
+
* first detected reason is reported, in a deterministic order (unit-level
|
|
177
|
+
* kind, unknown-fields, zone, then surfaces in declaration order).
|
|
178
|
+
*
|
|
179
|
+
* The round-trip law rests on this guard: for descriptors this function
|
|
180
|
+
* accepts, canonical -> v1 -> canonical is lossless on every
|
|
181
|
+
* representability-covered field.
|
|
182
|
+
*/
|
|
183
|
+
export declare function checkV1Representable(descriptor: DeliveryUnitDescriptor, mode?: V1ProjectionMode): V1RepresentabilityResult;
|
|
184
|
+
/**
|
|
185
|
+
* Assert v1 representability, throwing a typed {@link V1UnrepresentableError}
|
|
186
|
+
* for any descriptor carrying a construct the v1 shape cannot represent,
|
|
187
|
+
* rather than letting the down-projection degrade it silently.
|
|
188
|
+
*/
|
|
189
|
+
export declare function assertV1Representable(descriptor: DeliveryUnitDescriptor, mode?: V1ProjectionMode): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type DeliveryUnitRecord, deliveryUnitContractBlock } from '@modern-js/utils/universal';
|
|
2
|
+
import type { WorkspaceApp } from './types';
|
|
3
|
+
export declare function createBuildMarker(scope: string, app: {
|
|
4
|
+
id: string;
|
|
5
|
+
packageSuffix: string;
|
|
6
|
+
}): string;
|
|
7
|
+
export { deliveryUnitContractBlock };
|
|
8
|
+
export declare function createDeliveryUnitRecord(scope: string, app: WorkspaceApp): DeliveryUnitRecord;
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import type { WorkspaceApp } from './types';
|
|
2
|
-
export declare function createShellPage(remotes?: WorkspaceApp[]): string;
|
|
3
|
-
export declare function createShellRemoteComponents(
|
|
2
|
+
export declare function createShellPage(shell: WorkspaceApp, remotes?: WorkspaceApp[]): string;
|
|
3
|
+
export declare function createShellRemoteComponents(shell: WorkspaceApp, remotes?: WorkspaceApp[]): string;
|
|
4
|
+
export declare function createShellWorkerRemoteComponents(shell: WorkspaceApp, remotes?: WorkspaceApp[]): string;
|
|
5
|
+
/**
|
|
6
|
+
* Generates the environment-specific primitive registry used by custom hosts.
|
|
7
|
+
* The browser/Node file contains native MF loaders. Cloudflare's `.worker.tsx`
|
|
8
|
+
* resolution selects the sibling registry, which contains only distributed
|
|
9
|
+
* service-binding boundaries and therefore cannot bundle remote UI source.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createFederatedComponentsRegistry(scope: string, host: WorkspaceApp, remotes: WorkspaceApp[], worker?: boolean): string;
|
|
4
12
|
export declare function createRemotePage(app: WorkspaceApp): string;
|
|
5
13
|
export declare function createLayout(appId: string): string;
|
|
6
14
|
export declare function createRemoteEntry(app: WorkspaceApp): string;
|
|
7
|
-
export declare function
|
|
15
|
+
export declare function createRemoteWidgetFragmentPage(app: WorkspaceApp): string;
|
|
16
|
+
export declare function createRemoteExposeFragmentPage(app: WorkspaceApp, expose: string): string;
|
|
8
17
|
export declare function createRemoteExposeComponent(app: WorkspaceApp, expose: string): string;
|
|
9
18
|
export declare function remoteComponentOutputPath(app: WorkspaceApp, expose: string): string | undefined;
|
|
19
|
+
export type GeneratedNavigationSurfaceKind = 'demo-component' | 'shell-frame';
|
|
20
|
+
export declare function regenerateGeneratedNavigationSurface(source: string, kind: GeneratedNavigationSurfaceKind): string;
|
|
@@ -1,17 +1,37 @@
|
|
|
1
|
-
import type { Ownership, WorkspaceApi, WorkspaceApp } from './types';
|
|
1
|
+
import type { Ownership, VerticalApiProtocol, VerticalPreset, WorkspaceApi, WorkspaceApp } from './types';
|
|
2
2
|
export declare const ULTRAMODERN_CONFIG_PATH = ".modernjs/ultramodern.json";
|
|
3
|
+
export declare function distributedSsrExposes(app: WorkspaceApp): string[];
|
|
4
|
+
export declare function distributedSsrFragmentSlug(expose: string): string;
|
|
5
|
+
export declare function distributedSsrFragmentRoute(expose: string): string;
|
|
3
6
|
export declare const shellApp: WorkspaceApp;
|
|
4
|
-
export declare function createShellHost(remotes?: WorkspaceApp[]): WorkspaceApp;
|
|
7
|
+
export declare function createShellHost(remotes?: WorkspaceApp[], verticalRefs?: string[]): WorkspaceApp;
|
|
5
8
|
export declare const sharedPackages: {
|
|
6
9
|
id: string;
|
|
7
10
|
directory: string;
|
|
8
11
|
description: string;
|
|
9
12
|
}[];
|
|
10
13
|
export declare function createNeutralOwnership(id: string, tier?: string): Ownership;
|
|
11
|
-
export
|
|
14
|
+
export type CreateVerticalDescriptorOptions = {
|
|
15
|
+
/** Generation preset (G2a). Defaults to `full-stack`. */
|
|
16
|
+
preset?: VerticalPreset;
|
|
17
|
+
/** API protocol (G7a). Defaults to `rest`. */
|
|
18
|
+
apiProtocol?: VerticalApiProtocol;
|
|
19
|
+
/** Generate a Horizontal Remote delivery unit (G2H) instead of a vertical. */
|
|
20
|
+
horizontalRemote?: boolean;
|
|
21
|
+
};
|
|
22
|
+
export declare function createVerticalDescriptor(name: string, port: number, options?: CreateVerticalDescriptorOptions): WorkspaceApp;
|
|
12
23
|
export declare function appHasApi(app: WorkspaceApp): app is WorkspaceApp & {
|
|
13
24
|
api: WorkspaceApi;
|
|
14
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* Whether an app emits browser/UI artifacts (routes, page/layout, public-web
|
|
28
|
+
* surfaces, Tailwind, browser Module Federation). True for the shell and for
|
|
29
|
+
* `full-stack` / `ui-only` verticals; false only for an `api-only` (headless)
|
|
30
|
+
* vertical (G2a).
|
|
31
|
+
*/
|
|
32
|
+
export declare function appEmitsBrowserUi(app: WorkspaceApp): boolean;
|
|
33
|
+
/** The API protocol for an app's API surface (G7a). Defaults to `rest`. */
|
|
34
|
+
export declare function resolveApiProtocol(app: WorkspaceApp): VerticalApiProtocol;
|
|
15
35
|
export declare function resolveApiPrefix(target: {
|
|
16
36
|
id: string;
|
|
17
37
|
api?: WorkspaceApi;
|
|
@@ -27,6 +47,10 @@ export declare function remoteDependencyAlias(remote: WorkspaceApp): string;
|
|
|
27
47
|
export declare function zephyrRemoteDependency(scope: string, remote: WorkspaceApp): string;
|
|
28
48
|
export declare function resolveRemoteRefs(app: WorkspaceApp, remotes?: WorkspaceApp[]): WorkspaceApp[];
|
|
29
49
|
export declare function createRemoteManifestEnv(remote: WorkspaceApp): string;
|
|
50
|
+
export declare function createBackendFederationManifestEnv(remote: WorkspaceApp): string;
|
|
51
|
+
export declare function createBackendFederationName(app: WorkspaceApp): string;
|
|
52
|
+
export declare function createBackendFederationManifestUrl(app: WorkspaceApp): string;
|
|
53
|
+
export declare function createBackendFederationContainerEntry(app: WorkspaceApp): string;
|
|
30
54
|
export declare function createModuleFederationRemoteContracts(app: WorkspaceApp, remotes?: WorkspaceApp[]): {
|
|
31
55
|
id: string;
|
|
32
56
|
alias: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const effectDiagnostics: string[];
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import type { JsonValue } from './types';
|
|
2
2
|
export declare const createPackageRoot: string;
|
|
3
|
-
export declare const workspaceTemplateDir:
|
|
4
|
-
export declare const fileTemplatesDir: any;
|
|
3
|
+
export declare const workspaceTemplateDir: string;
|
|
5
4
|
export declare function readFileTemplate(relativePath: string): string;
|
|
6
5
|
export declare function renderFileTemplate(relativePath: string, data: Record<string, string>): string;
|
|
7
|
-
export declare function assertSafeRelativePath(relativePath: string): void;
|
|
8
|
-
export declare function ensureInsideRoot(root: string, targetPath: string): void;
|
|
9
6
|
export declare function writeFile(targetDir: string, relativePath: string, content: string): void;
|
|
10
7
|
export declare function writeFileReplacing(targetDir: string, relativePath: string, content: string): void;
|
|
11
8
|
export declare function writeJson(targetDir: string, relativePath: string, value: JsonValue): void;
|
|
12
9
|
export declare function formatGeneratedWorkspaceFiles(targetDir: string, relativePaths?: readonly string[]): void;
|
|
13
10
|
export declare function renderTemplate(template: string, data: Record<string, string>): string;
|
|
14
|
-
export declare function
|
|
15
|
-
export declare function hashFile(filePath: string): string;
|
|
16
|
-
export declare function hashTemplateTree(dir: string): string;
|
|
17
|
-
export declare function copyRootTemplate(targetDir: string, data: Record<string, string>): void;
|
|
11
|
+
export declare function copyRootTemplate(targetDir: string, data: Record<string, string>, excludedRelativePaths?: ReadonlySet<string>): void;
|
|
18
12
|
export declare function readJsonFile(filePath: string): Record<string, any>;
|
|
19
13
|
export declare function writeJsonFile(filePath: string, value: JsonValue): void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ResolvedPackageSource, UltramodernGenerationOperation, UltramodernGenerationResult, UltramodernGenerationWarning, WorkspaceApp } from './types';
|
|
2
|
-
export
|
|
2
|
+
export declare const ignoredSnapshotDirectories: Set<string>;
|
|
3
|
+
type FileSnapshot = Map<string, string>;
|
|
3
4
|
export declare function createFileSnapshot(root: string): FileSnapshot;
|
|
4
5
|
export declare function diffFileSnapshots(before: FileSnapshot, after: FileSnapshot): Pick<UltramodernGenerationResult, 'createdPaths' | 'rewrittenPaths'>;
|
|
5
6
|
export declare function createGenerationResult(options: {
|
|
@@ -12,3 +13,4 @@ export declare function createGenerationResult(options: {
|
|
|
12
13
|
rewrittenPaths: string[];
|
|
13
14
|
warnings?: UltramodernGenerationWarning[];
|
|
14
15
|
}): UltramodernGenerationResult;
|
|
16
|
+
export {};
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
export { addUltramodernShell, planUltramodernShell } from './add-shell';
|
|
1
2
|
export { addUltramodernVertical, planUltramodernVertical, } from './add-vertical';
|
|
2
3
|
export type { UltramodernBridgeConfig, UltramodernBridgeConfigInput, UltramodernBridgeGate, UltramodernBridgeGateInput, UltramodernBridgeLockfilePolicy, UltramodernBridgeTestAlias, UltramodernBridgeWorkspacePackage, UltramodernBridgeWorkspacePackageInput, UltramodernEnabledBridgeConfigInput, } from './bridge-config';
|
|
3
4
|
export { normalizeUltramodernBridgeConfig } from './bridge-config';
|
|
4
|
-
export type {
|
|
5
|
+
export type { OverlayBaselineViolation } from './overlay-baseline-guard';
|
|
6
|
+
export { BASELINE_DEPENDENCY_PINS, OverlayBaselineRelaxationError, } from './overlay-baseline-guard';
|
|
7
|
+
export { SHARED_ULTRAMODERN_WORKSPACE_PATCH_FILES } from './shared-patches';
|
|
8
|
+
export { createShellDescriptor, PRIMARY_SHELL_ID, resolveConfiguredAdditionalShells, } from './shells';
|
|
9
|
+
export type { AddUltramodernShellOptions, AddUltramodernVerticalOptions, UltramodernCodeSmithOverlay, UltramodernCodeSmithOverlayRuntimeConfig, UltramodernGeneratedAppDescriptor, UltramodernGeneratedContractChange, UltramodernGenerationOperation, UltramodernGenerationResult, UltramodernGenerationWarning, UltramodernJsonMutation, UltramodernShellDependencyChange, UltramodernVerticalPlan, UltramodernWorkspaceOptions, } from './types';
|
|
5
10
|
export { ultramodernWorkspaceVersions } from './versions';
|
|
6
11
|
export { generateUltramodernWorkspace } from './write-workspace';
|