everything-dev 1.53.2 → 2.0.0-rc.1
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 +2 -11
- package/dist/_virtual/_rolldown/runtime.cjs +17 -2
- package/dist/_virtual/_rolldown/runtime.mjs +36 -0
- package/dist/api/auth-middleware.cjs +161 -0
- package/dist/api/auth-middleware.cjs.map +1 -0
- package/dist/api/auth-middleware.d.cts +69 -0
- package/dist/api/auth-middleware.d.mts +69 -0
- package/dist/api/auth-middleware.mjs +160 -0
- package/dist/api/auth-middleware.mjs.map +1 -0
- package/dist/api-contract.cjs +250 -62
- package/dist/api-contract.cjs.map +1 -1
- package/dist/api-contract.mjs +246 -65
- package/dist/api-contract.mjs.map +1 -1
- package/dist/app.cjs +99 -26
- package/dist/app.cjs.map +1 -1
- package/dist/app.d.cts +3 -0
- package/dist/app.d.mts +3 -0
- package/dist/app.mjs +100 -27
- package/dist/app.mjs.map +1 -1
- package/dist/auth-login.cjs +163 -0
- package/dist/auth-login.cjs.map +1 -0
- package/dist/auth-login.mjs +162 -0
- package/dist/auth-login.mjs.map +1 -0
- package/dist/auth-session.cjs +64 -0
- package/dist/auth-session.cjs.map +1 -0
- package/dist/auth-session.mjs +58 -0
- package/dist/auth-session.mjs.map +1 -0
- package/dist/auth-types-gen.cjs +0 -1
- package/dist/auth-types-gen.cjs.map +1 -1
- package/dist/build.cjs +37 -173
- package/dist/build.cjs.map +1 -1
- package/dist/build.mjs +37 -171
- package/dist/build.mjs.map +1 -1
- package/dist/bundle-cache.cjs +74 -0
- package/dist/bundle-cache.cjs.map +1 -0
- package/dist/bundle-cache.d.cts +27 -0
- package/dist/bundle-cache.d.mts +27 -0
- package/dist/bundle-cache.mjs +68 -0
- package/dist/bundle-cache.mjs.map +1 -0
- package/dist/bundle-fs-resolve.cjs +209 -0
- package/dist/bundle-fs-resolve.cjs.map +1 -0
- package/dist/bundle-fs-resolve.d.cts +76 -0
- package/dist/bundle-fs-resolve.d.mts +76 -0
- package/dist/bundle-fs-resolve.mjs +202 -0
- package/dist/bundle-fs-resolve.mjs.map +1 -0
- package/dist/cdn-deploy.cjs +126 -0
- package/dist/cdn-deploy.cjs.map +1 -0
- package/dist/cdn-deploy.mjs +124 -0
- package/dist/cdn-deploy.mjs.map +1 -0
- package/dist/cli/db-doctor.cjs +19 -19
- package/dist/cli/db-doctor.cjs.map +1 -1
- package/dist/cli/db-doctor.mjs +18 -18
- package/dist/cli/db-doctor.mjs.map +1 -1
- package/dist/cli/db-repair.cjs +9 -32
- package/dist/cli/db-repair.cjs.map +1 -1
- package/dist/cli/db-repair.mjs +9 -32
- package/dist/cli/db-repair.mjs.map +1 -1
- package/dist/cli/framework-version.cjs +7 -3
- package/dist/cli/framework-version.cjs.map +1 -1
- package/dist/cli/framework-version.mjs +7 -3
- package/dist/cli/framework-version.mjs.map +1 -1
- package/dist/cli/infra.cjs +159 -251
- package/dist/cli/infra.cjs.map +1 -1
- package/dist/cli/infra.mjs +154 -242
- package/dist/cli/infra.mjs.map +1 -1
- package/dist/cli/init.cjs +627 -199
- package/dist/cli/init.cjs.map +1 -1
- package/dist/cli/init.d.cts +61 -8
- package/dist/cli/init.d.mts +61 -8
- package/dist/cli/init.mjs +616 -197
- package/dist/cli/init.mjs.map +1 -1
- package/dist/cli/parse.cjs +8 -7
- package/dist/cli/parse.cjs.map +1 -1
- package/dist/cli/parse.mjs +9 -7
- package/dist/cli/parse.mjs.map +1 -1
- package/dist/cli/prompts.cjs +14 -1
- package/dist/cli/prompts.cjs.map +1 -1
- package/dist/cli/prompts.mjs +14 -1
- package/dist/cli/prompts.mjs.map +1 -1
- package/dist/cli/prune.cjs +220 -0
- package/dist/cli/prune.cjs.map +1 -0
- package/dist/cli/prune.mjs +220 -0
- package/dist/cli/prune.mjs.map +1 -0
- package/dist/cli/snapshot.cjs +2 -1
- package/dist/cli/snapshot.cjs.map +1 -1
- package/dist/cli/snapshot.mjs +2 -1
- package/dist/cli/snapshot.mjs.map +1 -1
- package/dist/cli/status.cjs +5 -4
- package/dist/cli/status.cjs.map +1 -1
- package/dist/cli/status.mjs +6 -5
- package/dist/cli/status.mjs.map +1 -1
- package/dist/cli/sync.cjs +156 -58
- package/dist/cli/sync.cjs.map +1 -1
- package/dist/cli/sync.mjs +158 -63
- package/dist/cli/sync.mjs.map +1 -1
- package/dist/cli/timing.cjs +0 -1
- package/dist/cli/timing.cjs.map +1 -1
- package/dist/cli/upgrade.cjs +95 -69
- package/dist/cli/upgrade.cjs.map +1 -1
- package/dist/cli/upgrade.mjs +97 -72
- package/dist/cli/upgrade.mjs.map +1 -1
- package/dist/cli/utils/helpers.cjs.map +1 -1
- package/dist/cli.cjs +320 -72
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +316 -68
- package/dist/cli.mjs.map +1 -1
- package/dist/code-artifacts.cjs +76 -8
- package/dist/code-artifacts.cjs.map +1 -1
- package/dist/code-artifacts.mjs +76 -10
- package/dist/code-artifacts.mjs.map +1 -1
- package/dist/commands/build.cjs +65 -0
- package/dist/commands/build.cjs.map +1 -0
- package/dist/commands/build.mjs +65 -0
- package/dist/commands/build.mjs.map +1 -0
- package/dist/commands/config.cjs +77 -0
- package/dist/commands/config.cjs.map +1 -0
- package/dist/commands/config.d.cts +8 -0
- package/dist/commands/config.d.mts +8 -0
- package/dist/commands/config.mjs +74 -0
- package/dist/commands/config.mjs.map +1 -0
- package/dist/commands/db.cjs +107 -0
- package/dist/commands/db.cjs.map +1 -0
- package/dist/commands/db.mjs +107 -0
- package/dist/commands/db.mjs.map +1 -0
- package/dist/commands/deploy.cjs +336 -0
- package/dist/commands/deploy.cjs.map +1 -0
- package/dist/commands/deploy.mjs +334 -0
- package/dist/commands/deploy.mjs.map +1 -0
- package/dist/commands/dev.cjs +75 -0
- package/dist/commands/dev.cjs.map +1 -0
- package/dist/commands/dev.mjs +73 -0
- package/dist/commands/dev.mjs.map +1 -0
- package/dist/commands/init.cjs +234 -0
- package/dist/commands/init.cjs.map +1 -0
- package/dist/commands/init.mjs +231 -0
- package/dist/commands/init.mjs.map +1 -0
- package/dist/commands/keys.cjs +255 -0
- package/dist/commands/keys.cjs.map +1 -0
- package/dist/commands/keys.mjs +253 -0
- package/dist/commands/keys.mjs.map +1 -0
- package/dist/commands/ops.cjs +199 -0
- package/dist/commands/ops.cjs.map +1 -0
- package/dist/commands/ops.mjs +197 -0
- package/dist/commands/ops.mjs.map +1 -0
- package/dist/commands/plugins.cjs +211 -0
- package/dist/commands/plugins.cjs.map +1 -0
- package/dist/commands/plugins.mjs +211 -0
- package/dist/commands/plugins.mjs.map +1 -0
- package/dist/commands/shared.cjs +8 -0
- package/dist/commands/shared.cjs.map +1 -0
- package/dist/commands/shared.d.cts +6 -0
- package/dist/commands/shared.d.mts +6 -0
- package/dist/commands/shared.mjs +8 -0
- package/dist/commands/shared.mjs.map +1 -0
- package/dist/commands/upgrade.cjs +325 -0
- package/dist/commands/upgrade.cjs.map +1 -0
- package/dist/commands/upgrade.mjs +323 -0
- package/dist/commands/upgrade.mjs.map +1 -0
- package/dist/components/dev-render.cjs +340 -0
- package/dist/components/dev-render.cjs.map +1 -0
- package/dist/components/dev-render.mjs +332 -0
- package/dist/components/dev-render.mjs.map +1 -0
- package/dist/config.cjs +460 -221
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts +491 -48
- package/dist/config.d.mts +491 -48
- package/dist/config.mjs +439 -212
- package/dist/config.mjs.map +1 -1
- package/dist/contract.cjs +327 -50
- package/dist/contract.cjs.map +1 -1
- package/dist/contract.d.cts +1951 -1062
- package/dist/contract.d.mts +1951 -1062
- package/dist/contract.meta.cjs +107 -12
- package/dist/contract.meta.cjs.map +1 -1
- package/dist/contract.meta.d.cts +166 -8
- package/dist/contract.meta.d.mts +166 -8
- package/dist/contract.meta.mjs +107 -11
- package/dist/contract.meta.mjs.map +1 -1
- package/dist/contract.mjs +580 -327
- package/dist/contract.mjs.map +1 -1
- package/dist/dag.cjs +5 -3
- package/dist/dag.cjs.map +1 -1
- package/dist/dag.mjs +6 -3
- package/dist/dag.mjs.map +1 -1
- package/dist/db/binding.cjs +80 -0
- package/dist/db/binding.cjs.map +1 -0
- package/dist/db/binding.d.cts +39 -0
- package/dist/db/binding.d.mts +39 -0
- package/dist/db/binding.mjs +78 -0
- package/dist/db/binding.mjs.map +1 -0
- package/dist/db/bindings.cjs +78 -0
- package/dist/db/bindings.cjs.map +1 -0
- package/dist/db/bindings.d.cts +34 -0
- package/dist/db/bindings.d.mts +34 -0
- package/dist/db/bindings.mjs +76 -0
- package/dist/db/bindings.mjs.map +1 -0
- package/dist/db/core.cjs +204 -0
- package/dist/db/core.cjs.map +1 -0
- package/dist/db/core.d.cts +69 -0
- package/dist/db/core.d.mts +69 -0
- package/dist/db/core.mjs +192 -0
- package/dist/db/core.mjs.map +1 -0
- package/dist/db/driver.cjs +167 -0
- package/dist/db/driver.cjs.map +1 -0
- package/dist/db/driver.d.cts +50 -0
- package/dist/db/driver.d.mts +50 -0
- package/dist/db/driver.mjs +165 -0
- package/dist/db/driver.mjs.map +1 -0
- package/dist/db/drizzle-kit.cjs +177 -0
- package/dist/db/drizzle-kit.cjs.map +1 -0
- package/dist/db/drizzle-kit.d.cts +25 -0
- package/dist/db/drizzle-kit.d.mts +25 -0
- package/dist/db/drizzle-kit.mjs +175 -0
- package/dist/db/drizzle-kit.mjs.map +1 -0
- package/dist/db/errors.cjs +27 -0
- package/dist/db/errors.cjs.map +1 -0
- package/dist/db/errors.d.cts +16 -0
- package/dist/db/errors.d.mts +16 -0
- package/dist/db/errors.mjs +26 -0
- package/dist/db/errors.mjs.map +1 -0
- package/dist/db/identity.cjs +55 -0
- package/dist/db/identity.cjs.map +1 -0
- package/dist/db/identity.d.cts +40 -0
- package/dist/db/identity.d.mts +40 -0
- package/dist/db/identity.mjs +53 -0
- package/dist/db/identity.mjs.map +1 -0
- package/dist/db/index.cjs +43 -0
- package/dist/db/index.d.cts +9 -0
- package/dist/db/index.d.mts +9 -0
- package/dist/db/index.mjs +10 -0
- package/dist/db/run-migrations.cjs +343 -0
- package/dist/db/run-migrations.cjs.map +1 -0
- package/dist/db/run-migrations.d.cts +87 -0
- package/dist/db/run-migrations.d.mts +87 -0
- package/dist/db/run-migrations.mjs +341 -0
- package/dist/db/run-migrations.mjs.map +1 -0
- package/dist/delegate-signer.cjs +85 -0
- package/dist/delegate-signer.cjs.map +1 -0
- package/dist/delegate-signer.mjs +84 -0
- package/dist/delegate-signer.mjs.map +1 -0
- package/dist/deploy-diff.cjs +119 -0
- package/dist/deploy-diff.cjs.map +1 -0
- package/dist/deploy-diff.mjs +109 -0
- package/dist/deploy-diff.mjs.map +1 -0
- package/dist/descriptor/constructors.cjs +49 -0
- package/dist/descriptor/constructors.cjs.map +1 -0
- package/dist/descriptor/constructors.d.cts +27 -0
- package/dist/descriptor/constructors.d.mts +27 -0
- package/dist/descriptor/constructors.mjs +45 -0
- package/dist/descriptor/constructors.mjs.map +1 -0
- package/dist/descriptor/index.cjs +24 -0
- package/dist/descriptor/index.d.cts +5 -0
- package/dist/descriptor/index.d.mts +5 -0
- package/dist/descriptor/index.mjs +6 -0
- package/dist/descriptor/resolve.cjs +258 -0
- package/dist/descriptor/resolve.cjs.map +1 -0
- package/dist/descriptor/resolve.d.cts +50 -0
- package/dist/descriptor/resolve.d.mts +50 -0
- package/dist/descriptor/resolve.mjs +252 -0
- package/dist/descriptor/resolve.mjs.map +1 -0
- package/dist/descriptor/schema.cjs +109 -0
- package/dist/descriptor/schema.cjs.map +1 -0
- package/dist/descriptor/schema.d.cts +217 -0
- package/dist/descriptor/schema.d.mts +217 -0
- package/dist/descriptor/schema.mjs +102 -0
- package/dist/descriptor/schema.mjs.map +1 -0
- package/dist/descriptor/serialize.cjs +45 -0
- package/dist/descriptor/serialize.cjs.map +1 -0
- package/dist/descriptor/serialize.d.cts +7 -0
- package/dist/descriptor/serialize.d.mts +7 -0
- package/dist/descriptor/serialize.mjs +45 -0
- package/dist/descriptor/serialize.mjs.map +1 -0
- package/dist/dev-log-pipeline.cjs +273 -0
- package/dist/dev-log-pipeline.cjs.map +1 -0
- package/dist/dev-log-pipeline.mjs +267 -0
- package/dist/dev-log-pipeline.mjs.map +1 -0
- package/dist/dev-logs.cjs +39 -8
- package/dist/dev-logs.cjs.map +1 -1
- package/dist/dev-logs.mjs +37 -9
- package/dist/dev-logs.mjs.map +1 -1
- package/dist/dev-program.cjs +405 -0
- package/dist/dev-program.cjs.map +1 -0
- package/dist/dev-program.d.cts +10 -0
- package/dist/dev-program.d.mts +10 -0
- package/dist/dev-program.mjs +395 -0
- package/dist/dev-program.mjs.map +1 -0
- package/dist/dev-session-data.d.cts +27 -0
- package/dist/dev-session-data.d.mts +27 -0
- package/dist/dev-session.cjs +178 -105
- package/dist/dev-session.cjs.map +1 -1
- package/dist/dev-session.mjs +180 -105
- package/dist/dev-session.mjs.map +1 -1
- package/dist/env/process-env.cjs +16 -0
- package/dist/env/process-env.cjs.map +1 -0
- package/dist/env/process-env.mjs +13 -0
- package/dist/env/process-env.mjs.map +1 -0
- package/dist/env/project-env.cjs +144 -0
- package/dist/env/project-env.cjs.map +1 -0
- package/dist/env/project-env.d.cts +1 -0
- package/dist/env/project-env.d.mts +1 -0
- package/dist/env/project-env.mjs +132 -0
- package/dist/env/project-env.mjs.map +1 -0
- package/dist/fastkv.cjs +59 -12
- package/dist/fastkv.cjs.map +1 -1
- package/dist/fastkv.d.cts +42 -6
- package/dist/fastkv.d.mts +42 -6
- package/dist/fastkv.mjs +58 -13
- package/dist/fastkv.mjs.map +1 -1
- package/dist/fingerprint.cjs +57 -0
- package/dist/fingerprint.cjs.map +1 -0
- package/dist/fingerprint.d.cts +14 -0
- package/dist/fingerprint.d.mts +14 -0
- package/dist/fingerprint.mjs +55 -0
- package/dist/fingerprint.mjs.map +1 -0
- package/dist/http-client.cjs +17 -17
- package/dist/http-client.cjs.map +1 -1
- package/dist/http-client.mjs +17 -17
- package/dist/http-client.mjs.map +1 -1
- package/dist/image-deploy.cjs +186 -0
- package/dist/image-deploy.cjs.map +1 -0
- package/dist/image-deploy.mjs +182 -0
- package/dist/image-deploy.mjs.map +1 -0
- package/dist/index.cjs +66 -18
- package/dist/index.d.cts +8 -7
- package/dist/index.d.mts +8 -7
- package/dist/index.mjs +6 -5
- package/dist/infra/docker.cjs +77 -0
- package/dist/infra/docker.cjs.map +1 -0
- package/dist/infra/docker.d.cts +10 -0
- package/dist/infra/docker.d.mts +10 -0
- package/dist/infra/docker.mjs +69 -0
- package/dist/infra/docker.mjs.map +1 -0
- package/dist/infra/materializer.cjs +74 -0
- package/dist/infra/materializer.cjs.map +1 -0
- package/dist/infra/materializer.mjs +70 -0
- package/dist/infra/materializer.mjs.map +1 -0
- package/dist/infra/planner.cjs +135 -103
- package/dist/infra/planner.cjs.map +1 -1
- package/dist/infra/planner.mjs +137 -104
- package/dist/infra/planner.mjs.map +1 -1
- package/dist/infra/port-ownership.cjs +57 -0
- package/dist/infra/port-ownership.cjs.map +1 -0
- package/dist/infra/port-ownership.mjs +57 -0
- package/dist/infra/port-ownership.mjs.map +1 -0
- package/dist/infra/preflight.cjs +45 -33
- package/dist/infra/preflight.cjs.map +1 -1
- package/dist/infra/preflight.d.cts +1 -0
- package/dist/infra/preflight.d.mts +1 -0
- package/dist/infra/preflight.mjs +46 -34
- package/dist/infra/preflight.mjs.map +1 -1
- package/dist/infra/types.cjs.map +1 -1
- package/dist/infra/types.d.cts +2 -0
- package/dist/infra/types.d.mts +2 -0
- package/dist/infra/types.mjs.map +1 -1
- package/dist/integrity.cjs +50 -61
- package/dist/integrity.cjs.map +1 -1
- package/dist/integrity.d.cts +16 -10
- package/dist/integrity.d.mts +16 -10
- package/dist/integrity.mjs +50 -59
- package/dist/integrity.mjs.map +1 -1
- package/dist/internal/manifest-normalizer.cjs +8 -2
- package/dist/internal/manifest-normalizer.cjs.map +1 -1
- package/dist/internal/manifest-normalizer.mjs +9 -3
- package/dist/internal/manifest-normalizer.mjs.map +1 -1
- package/dist/merge.cjs +19 -1
- package/dist/merge.cjs.map +1 -1
- package/dist/merge.d.cts +1 -1
- package/dist/merge.d.mts +1 -1
- package/dist/merge.mjs +19 -2
- package/dist/merge.mjs.map +1 -1
- package/dist/mf.cjs +190 -3
- package/dist/mf.cjs.map +1 -1
- package/dist/mf.d.cts +24 -2
- package/dist/mf.d.mts +24 -2
- package/dist/mf.mjs +189 -4
- package/dist/mf.mjs.map +1 -1
- package/dist/near-cli.cjs +59 -91
- package/dist/near-cli.cjs.map +1 -1
- package/dist/near-cli.mjs +58 -90
- package/dist/near-cli.mjs.map +1 -1
- package/dist/near-signer.cjs +73 -0
- package/dist/near-signer.cjs.map +1 -0
- package/dist/near-signer.mjs +70 -0
- package/dist/near-signer.mjs.map +1 -0
- package/dist/network.cjs +0 -1
- package/dist/network.cjs.map +1 -1
- package/dist/orchestrator.cjs +256 -87
- package/dist/orchestrator.cjs.map +1 -1
- package/dist/orchestrator.mjs +248 -87
- package/dist/orchestrator.mjs.map +1 -1
- package/dist/platform-deploy.cjs +81 -0
- package/dist/platform-deploy.cjs.map +1 -0
- package/dist/platform-deploy.mjs +80 -0
- package/dist/platform-deploy.mjs.map +1 -0
- package/dist/plugin.cjs +54 -1389
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts +6 -896
- package/dist/plugin.d.mts +6 -896
- package/dist/plugin.mjs +53 -1387
- package/dist/plugin.mjs.map +1 -1
- package/dist/process-kill.cjs +44 -0
- package/dist/process-kill.cjs.map +1 -0
- package/dist/process-kill.mjs +43 -0
- package/dist/process-kill.mjs.map +1 -0
- package/dist/process-registry.cjs +64 -9
- package/dist/process-registry.cjs.map +1 -1
- package/dist/process-registry.mjs +61 -10
- package/dist/process-registry.mjs.map +1 -1
- package/dist/progress.cjs +45 -0
- package/dist/progress.cjs.map +1 -0
- package/dist/progress.d.cts +13 -0
- package/dist/progress.d.mts +13 -0
- package/dist/progress.mjs +42 -0
- package/dist/progress.mjs.map +1 -0
- package/dist/publish.cjs +513 -79
- package/dist/publish.cjs.map +1 -1
- package/dist/publish.mjs +515 -82
- package/dist/publish.mjs.map +1 -1
- package/dist/registry-use.cjs +41 -0
- package/dist/registry-use.cjs.map +1 -0
- package/dist/registry-use.mjs +40 -0
- package/dist/registry-use.mjs.map +1 -0
- package/dist/resolution/session.cjs +335 -0
- package/dist/resolution/session.cjs.map +1 -0
- package/dist/resolution/session.d.cts +105 -0
- package/dist/resolution/session.d.mts +105 -0
- package/dist/resolution/session.mjs +331 -0
- package/dist/resolution/session.mjs.map +1 -0
- package/dist/rollback.cjs +131 -0
- package/dist/rollback.cjs.map +1 -0
- package/dist/rollback.mjs +128 -0
- package/dist/rollback.mjs.map +1 -0
- package/dist/sdk.cjs +7 -7
- package/dist/sdk.d.cts +3 -3
- package/dist/sdk.d.mts +3 -3
- package/dist/sdk.mjs +2 -2
- package/dist/service-descriptor.cjs +67 -34
- package/dist/service-descriptor.cjs.map +1 -1
- package/dist/service-descriptor.d.cts +4 -1
- package/dist/service-descriptor.d.mts +3 -0
- package/dist/service-descriptor.mjs +63 -35
- package/dist/service-descriptor.mjs.map +1 -1
- package/dist/shared-deps.cjs +17 -16
- package/dist/shared-deps.cjs.map +1 -1
- package/dist/shared-deps.mjs +17 -16
- package/dist/shared-deps.mjs.map +1 -1
- package/dist/start-config-source.cjs +24 -0
- package/dist/start-config-source.cjs.map +1 -0
- package/dist/start-config-source.d.cts +29 -0
- package/dist/start-config-source.d.mts +29 -0
- package/dist/start-config-source.mjs +22 -0
- package/dist/start-config-source.mjs.map +1 -0
- package/dist/storage-upload.cjs +145 -0
- package/dist/storage-upload.cjs.map +1 -0
- package/dist/storage-upload.mjs +143 -0
- package/dist/storage-upload.mjs.map +1 -0
- package/dist/types.cjs +126 -20
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +867 -585
- package/dist/types.d.mts +867 -585
- package/dist/types.mjs +307 -208
- package/dist/types.mjs.map +1 -1
- package/dist/ui/api.cjs +105 -0
- package/dist/ui/api.cjs.map +1 -0
- package/dist/ui/api.d.cts +31 -0
- package/dist/ui/api.d.mts +31 -0
- package/dist/ui/api.mjs +99 -0
- package/dist/ui/api.mjs.map +1 -0
- package/dist/ui/auth-guards.cjs +50 -0
- package/dist/ui/auth-guards.cjs.map +1 -0
- package/dist/ui/auth-guards.d.cts +39 -0
- package/dist/ui/auth-guards.d.mts +39 -0
- package/dist/ui/auth-guards.mjs +48 -0
- package/dist/ui/auth-guards.mjs.map +1 -0
- package/dist/ui/auth.cjs +197 -0
- package/dist/ui/auth.cjs.map +1 -0
- package/dist/ui/auth.d.cts +56 -0
- package/dist/ui/auth.d.mts +56 -0
- package/dist/ui/auth.mjs +179 -0
- package/dist/ui/auth.mjs.map +1 -0
- package/dist/ui/entry.cjs +16 -0
- package/dist/ui/entry.cjs.map +1 -0
- package/dist/ui/entry.d.cts +12 -0
- package/dist/ui/entry.d.mts +12 -0
- package/dist/ui/entry.mjs +15 -0
- package/dist/ui/entry.mjs.map +1 -0
- package/dist/ui/head.cjs +14 -7
- package/dist/ui/head.cjs.map +1 -1
- package/dist/ui/head.mjs +15 -7
- package/dist/ui/head.mjs.map +1 -1
- package/dist/ui/hydrate.cjs +265 -0
- package/dist/ui/hydrate.cjs.map +1 -0
- package/dist/ui/hydrate.d.cts +48 -0
- package/dist/ui/hydrate.d.mts +48 -0
- package/dist/ui/hydrate.mjs +263 -0
- package/dist/ui/hydrate.mjs.map +1 -0
- package/dist/ui/i18n.cjs +153 -0
- package/dist/ui/i18n.cjs.map +1 -0
- package/dist/ui/i18n.d.cts +29 -0
- package/dist/ui/i18n.d.mts +29 -0
- package/dist/ui/i18n.mjs +140 -0
- package/dist/ui/i18n.mjs.map +1 -0
- package/dist/ui/index.cjs +19 -1
- package/dist/ui/index.d.cts +6 -3
- package/dist/ui/index.d.mts +6 -3
- package/dist/ui/index.mjs +5 -2
- package/dist/ui/locale.cjs +53 -0
- package/dist/ui/locale.cjs.map +1 -0
- package/dist/ui/locale.d.cts +18 -0
- package/dist/ui/locale.d.mts +18 -0
- package/dist/ui/locale.mjs +49 -0
- package/dist/ui/locale.mjs.map +1 -0
- package/dist/ui/manifest/index.cjs +25 -0
- package/dist/ui/manifest/index.cjs.map +1 -0
- package/dist/ui/manifest/index.d.cts +9 -0
- package/dist/ui/manifest/index.d.mts +9 -0
- package/dist/ui/manifest/index.mjs +13 -0
- package/dist/ui/manifest/index.mjs.map +1 -0
- package/dist/ui/manifest-generator.cjs +8 -0
- package/dist/ui/manifest-generator.d.cts +1 -0
- package/dist/ui/manifest-generator.d.mts +1 -0
- package/dist/ui/manifest-generator.mjs +3 -0
- package/dist/ui/message-catalogs.cjs +8 -0
- package/dist/ui/message-catalogs.cjs.map +1 -0
- package/dist/ui/message-catalogs.d.cts +5 -0
- package/dist/ui/message-catalogs.d.mts +5 -0
- package/dist/ui/message-catalogs.mjs +8 -0
- package/dist/ui/message-catalogs.mjs.map +1 -0
- package/dist/ui/metadata.cjs +0 -1
- package/dist/ui/metadata.cjs.map +1 -1
- package/dist/ui/metadata.d.cts +1 -1
- package/dist/ui/metadata.d.mts +1 -1
- package/dist/ui/plugin-path.cjs +37 -0
- package/dist/ui/plugin-path.cjs.map +1 -0
- package/dist/ui/plugin-path.d.cts +25 -0
- package/dist/ui/plugin-path.d.mts +25 -0
- package/dist/ui/plugin-path.mjs +35 -0
- package/dist/ui/plugin-path.mjs.map +1 -0
- package/dist/ui/router-client.cjs +61 -0
- package/dist/ui/router-client.cjs.map +1 -0
- package/dist/ui/router-client.d.cts +20 -0
- package/dist/ui/router-client.d.mts +20 -0
- package/dist/ui/router-client.mjs +60 -0
- package/dist/ui/router-client.mjs.map +1 -0
- package/dist/ui/router-defaults.cjs +48 -0
- package/dist/ui/router-defaults.cjs.map +1 -0
- package/dist/ui/router-defaults.d.cts +8 -0
- package/dist/ui/router-defaults.d.mts +8 -0
- package/dist/ui/router-defaults.mjs +45 -0
- package/dist/ui/router-defaults.mjs.map +1 -0
- package/dist/ui/router-error.cjs +70 -0
- package/dist/ui/router-error.cjs.map +1 -0
- package/dist/ui/router-error.d.cts +19 -0
- package/dist/ui/router-error.d.mts +19 -0
- package/dist/ui/router-error.mjs +69 -0
- package/dist/ui/router-error.mjs.map +1 -0
- package/dist/ui/router-server.cjs +153 -0
- package/dist/ui/router-server.cjs.map +1 -0
- package/dist/ui/router-server.d.cts +38 -0
- package/dist/ui/router-server.d.mts +38 -0
- package/dist/ui/router-server.mjs +152 -0
- package/dist/ui/router-server.mjs.map +1 -0
- package/dist/ui/router.cjs +4 -16
- package/dist/ui/router.cjs.map +1 -1
- package/dist/ui/router.mjs +4 -15
- package/dist/ui/router.mjs.map +1 -1
- package/dist/ui/runtime.cjs +5 -1
- package/dist/ui/runtime.cjs.map +1 -1
- package/dist/ui/runtime.d.cts +2 -1
- package/dist/ui/runtime.d.mts +2 -1
- package/dist/ui/runtime.mjs +5 -1
- package/dist/ui/runtime.mjs.map +1 -1
- package/dist/ui/slot.cjs +34 -0
- package/dist/ui/slot.cjs.map +1 -0
- package/dist/ui/slot.d.cts +43 -0
- package/dist/ui/slot.d.mts +43 -0
- package/dist/ui/slot.mjs +34 -0
- package/dist/ui/slot.mjs.map +1 -0
- package/dist/ui/tenant.cjs +300 -0
- package/dist/ui/tenant.cjs.map +1 -0
- package/dist/ui/tenant.d.cts +122 -0
- package/dist/ui/tenant.d.mts +122 -0
- package/dist/ui/tenant.mjs +279 -0
- package/dist/ui/tenant.mjs.map +1 -0
- package/dist/ui/types.d.cts +32 -2
- package/dist/ui/types.d.mts +32 -2
- package/dist/ui/version-check.cjs +47 -0
- package/dist/ui/version-check.cjs.map +1 -0
- package/dist/ui/version-check.d.cts +23 -0
- package/dist/ui/version-check.d.mts +23 -0
- package/dist/ui/version-check.mjs +46 -0
- package/dist/ui/version-check.mjs.map +1 -0
- package/dist/utils/banner.cjs +2 -2
- package/dist/utils/banner.cjs.map +1 -1
- package/dist/utils/banner.mjs +2 -2
- package/dist/utils/banner.mjs.map +1 -1
- package/dist/utils/linkify.cjs +1 -1
- package/dist/utils/linkify.cjs.map +1 -1
- package/dist/utils/linkify.mjs +1 -0
- package/dist/utils/linkify.mjs.map +1 -1
- package/dist/utils/run.cjs +6 -6
- package/dist/utils/run.cjs.map +1 -1
- package/dist/utils/run.mjs +6 -6
- package/dist/utils/run.mjs.map +1 -1
- package/dist/utils/save-config.cjs +12 -0
- package/dist/utils/save-config.cjs.map +1 -1
- package/dist/utils/save-config.mjs +12 -0
- package/dist/utils/save-config.mjs.map +1 -1
- package/dist/utils/snapshot-hash.cjs +10 -0
- package/dist/utils/snapshot-hash.cjs.map +1 -0
- package/dist/utils/snapshot-hash.mjs +10 -0
- package/dist/utils/snapshot-hash.mjs.map +1 -0
- package/dist/utils/string.cjs +0 -1
- package/dist/utils/string.cjs.map +1 -1
- package/dist/utils/theme.cjs +30 -12
- package/dist/utils/theme.cjs.map +1 -1
- package/dist/utils/theme.mjs +30 -11
- package/dist/utils/theme.mjs.map +1 -1
- package/dist/version-manifest-deploy.cjs +50 -0
- package/dist/version-manifest-deploy.cjs.map +1 -0
- package/dist/version-manifest-deploy.mjs +49 -0
- package/dist/version-manifest-deploy.mjs.map +1 -0
- package/dist/version-manifest-resolve.cjs +42 -0
- package/dist/version-manifest-resolve.cjs.map +1 -0
- package/dist/version-manifest-resolve.d.cts +38 -0
- package/dist/version-manifest-resolve.d.mts +38 -0
- package/dist/version-manifest-resolve.mjs +40 -0
- package/dist/version-manifest-resolve.mjs.map +1 -0
- package/dist/version-status.cjs +18 -0
- package/dist/version-status.cjs.map +1 -0
- package/dist/version-status.d.cts +22 -0
- package/dist/version-status.d.mts +22 -0
- package/dist/version-status.mjs +17 -0
- package/dist/version-status.mjs.map +1 -0
- package/dist/workspace-catalog.cjs +53 -0
- package/dist/workspace-catalog.cjs.map +1 -0
- package/dist/workspace-catalog.mjs +51 -0
- package/dist/workspace-catalog.mjs.map +1 -0
- package/dist/workspace.cjs +237 -0
- package/dist/workspace.cjs.map +1 -0
- package/dist/workspace.mjs +233 -0
- package/dist/workspace.mjs.map +1 -0
- package/package.json +179 -27
- package/skills/add-a-route/SKILL.md +132 -0
- package/skills/api-and-auth/SKILL.md +87 -21
- package/skills/api-and-auth/references/middleware.md +1 -1
- package/skills/cli-reference/SKILL.md +48 -21
- package/skills/code-style/SKILL.md +8 -0
- package/skills/dev-workflow/SKILL.md +50 -26
- package/skills/extends-config/SKILL.md +31 -19
- package/skills/init-upgrade/SKILL.md +29 -16
- package/skills/plugin-development/SKILL.md +46 -112
- package/skills/plugin-development/references/database.md +82 -0
- package/skills/plugin-development/references/request-context.md +67 -0
- package/skills/publish-sync/SKILL.md +99 -22
- package/skills/registry/SKILL.md +82 -0
- package/skills/super-app/SKILL.md +25 -15
- package/skills/talk-to-the-app/SKILL.md +138 -0
- package/skills/ui-integration/SKILL.md +93 -11
- package/dist/cli/db-studio.cjs +0 -131
- package/dist/cli/db-studio.cjs.map +0 -1
- package/dist/cli/db-studio.mjs +0 -127
- package/dist/cli/db-studio.mjs.map +0 -1
- package/dist/cli/init.d.cts.map +0 -1
- package/dist/cli/init.d.mts.map +0 -1
- package/dist/components/dev-view.cjs +0 -309
- package/dist/components/dev-view.cjs.map +0 -1
- package/dist/components/dev-view.mjs +0 -309
- package/dist/components/dev-view.mjs.map +0 -1
- package/dist/components/streaming-view.cjs +0 -134
- package/dist/components/streaming-view.cjs.map +0 -1
- package/dist/components/streaming-view.mjs +0 -132
- package/dist/components/streaming-view.mjs.map +0 -1
- package/dist/config.d.cts.map +0 -1
- package/dist/config.d.mts.map +0 -1
- package/dist/contract.d.cts.map +0 -1
- package/dist/contract.d.mts.map +0 -1
- package/dist/contract.meta.d.cts.map +0 -1
- package/dist/contract.meta.d.mts.map +0 -1
- package/dist/dag.d.cts.map +0 -1
- package/dist/dag.d.mts.map +0 -1
- package/dist/db.cjs +0 -81
- package/dist/db.cjs.map +0 -1
- package/dist/db.d.cts +0 -30
- package/dist/db.d.cts.map +0 -1
- package/dist/db.d.mts +0 -30
- package/dist/db.d.mts.map +0 -1
- package/dist/db.mjs +0 -75
- package/dist/db.mjs.map +0 -1
- package/dist/fastkv.d.cts.map +0 -1
- package/dist/fastkv.d.mts.map +0 -1
- package/dist/integrity.d.cts.map +0 -1
- package/dist/integrity.d.mts.map +0 -1
- package/dist/merge.d.cts.map +0 -1
- package/dist/merge.d.mts.map +0 -1
- package/dist/mf.d.cts.map +0 -1
- package/dist/mf.d.mts.map +0 -1
- package/dist/plugin.d.cts.map +0 -1
- package/dist/plugin.d.mts.map +0 -1
- package/dist/service-descriptor.d.cts.map +0 -1
- package/dist/service-descriptor.d.mts.map +0 -1
- package/dist/types.d.cts.map +0 -1
- package/dist/types.d.mts.map +0 -1
- package/dist/ui/head.d.cts.map +0 -1
- package/dist/ui/head.d.mts.map +0 -1
- package/dist/ui/metadata.d.cts.map +0 -1
- package/dist/ui/metadata.d.mts.map +0 -1
- package/dist/ui/router.d.cts.map +0 -1
- package/dist/ui/router.d.mts.map +0 -1
- package/dist/ui/runtime.d.cts.map +0 -1
- package/dist/ui/runtime.d.mts.map +0 -1
- package/dist/ui/types.d.cts.map +0 -1
- package/dist/ui/types.d.mts.map +0 -1
package/dist/orchestrator.cjs
CHANGED
|
@@ -1,52 +1,69 @@
|
|
|
1
|
-
const require_mf = require('./mf.cjs');
|
|
2
1
|
const require_service_descriptor = require('./service-descriptor.cjs');
|
|
2
|
+
const require_dev_log_pipeline = require('./dev-log-pipeline.cjs');
|
|
3
|
+
const require_mf = require('./mf.cjs');
|
|
4
|
+
const require_project_env = require('./env/project-env.cjs');
|
|
3
5
|
let effect = require("effect");
|
|
4
|
-
let
|
|
6
|
+
let node_child_process = require("node:child_process");
|
|
7
|
+
let node_stream = require("node:stream");
|
|
5
8
|
|
|
6
9
|
//#region src/orchestrator.ts
|
|
10
|
+
const warnOutsideEffect = (...args) => {
|
|
11
|
+
console.warn(...args);
|
|
12
|
+
};
|
|
13
|
+
const runFetch = (url, init) => fetch(url, init);
|
|
7
14
|
process.on("unhandledRejection", (reason) => {
|
|
8
15
|
console.error("[Orchestrator] Unhandled rejection:", reason);
|
|
9
16
|
});
|
|
10
17
|
process.on("uncaughtException", (err) => {
|
|
11
18
|
console.error("[Orchestrator] Uncaught exception:", err);
|
|
12
19
|
});
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
var OrchestratorError = class extends effect.Data.TaggedError("OrchestratorError") {
|
|
21
|
+
get message() {
|
|
22
|
+
return `${this.operation}: ${this.detail}`;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const omitUndefined = (value) => {
|
|
26
|
+
if (Array.isArray(value)) return value.map((item) => item === void 0 ? null : omitUndefined(item));
|
|
27
|
+
if (value !== null && typeof value === "object") return Object.fromEntries(Object.entries(value).filter(([, item]) => item !== void 0).map(([key, item]) => [key, omitUndefined(item)]));
|
|
28
|
+
return value;
|
|
17
29
|
};
|
|
30
|
+
const encodeRuntimeConfig = (runtimeConfig) => effect.Schema.encodeUnknownEffect(effect.Schema.fromJsonString(effect.Schema.Json))(omitUndefined(runtimeConfig)).pipe(effect.Effect.mapError((cause) => new OrchestratorError({
|
|
31
|
+
operation: "serialize runtime config",
|
|
32
|
+
detail: cause.message,
|
|
33
|
+
cause
|
|
34
|
+
})));
|
|
18
35
|
const probeHttpOk = (url, timeoutMs = 400) => effect.Effect.tryPromise({
|
|
19
36
|
try: async () => {
|
|
20
|
-
const controller = new AbortController();
|
|
21
|
-
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
22
37
|
try {
|
|
23
|
-
return (await
|
|
38
|
+
return (await runFetch(url, { signal: AbortSignal.timeout(timeoutMs) })).ok;
|
|
24
39
|
} catch {
|
|
25
40
|
return false;
|
|
26
|
-
} finally {
|
|
27
|
-
clearTimeout(timer);
|
|
28
41
|
}
|
|
29
42
|
},
|
|
30
43
|
catch: () => false
|
|
31
44
|
});
|
|
32
45
|
const LOCAL_PROBE_DEADLINE_MS = 9e4;
|
|
33
46
|
const LOCAL_PROBE_INTERVAL_MS = 200;
|
|
47
|
+
const cleanExitSignals = {
|
|
48
|
+
SIGTERM: true,
|
|
49
|
+
SIGINT: true
|
|
50
|
+
};
|
|
34
51
|
const REMOTE_PROBE_TIMEOUT_MS = 5e3;
|
|
35
52
|
const REMOTE_PROBE_DEADLINE_MS = 6e4;
|
|
36
53
|
const REMOTE_PROBE_BACKOFF_INITIAL_MS = 1e3;
|
|
37
54
|
const REMOTE_PROBE_BACKOFF_MAX_MS = 15e3;
|
|
38
55
|
const detectStatus = (line, descriptor) => {
|
|
39
|
-
const cleanLine = stripAnsi(line);
|
|
56
|
+
const cleanLine = require_dev_log_pipeline.stripAnsi(line);
|
|
40
57
|
const errorPatterns = descriptor.errorPatterns ?? [];
|
|
41
58
|
const readyPatterns = descriptor.readyPatterns ?? [];
|
|
42
|
-
for (const pattern of errorPatterns) if (pattern.test(cleanLine)) return {
|
|
43
|
-
status: "error",
|
|
44
|
-
isError: true
|
|
45
|
-
};
|
|
46
59
|
for (const pattern of readyPatterns) if (pattern.test(cleanLine)) return {
|
|
47
60
|
status: "ready",
|
|
48
61
|
isError: false
|
|
49
62
|
};
|
|
63
|
+
for (const pattern of errorPatterns) if (pattern.test(cleanLine)) return {
|
|
64
|
+
status: "error",
|
|
65
|
+
isError: true
|
|
66
|
+
};
|
|
50
67
|
return null;
|
|
51
68
|
};
|
|
52
69
|
const patchConsole = (name, callbacks) => {
|
|
@@ -59,11 +76,19 @@ const patchConsole = (name, callbacks) => {
|
|
|
59
76
|
if (arg instanceof Error) {
|
|
60
77
|
const parts = [`${arg.name}: ${arg.message}`];
|
|
61
78
|
if (arg.cause instanceof Error) parts.push(`(cause: ${arg.cause.name}: ${arg.cause.message})`);
|
|
62
|
-
else if (arg.cause)
|
|
79
|
+
else if (arg.cause) {
|
|
80
|
+
const cause = arg.cause;
|
|
81
|
+
parts.push(`(cause: ${cause instanceof Error ? cause.message : typeof cause === "string" ? cause : JSON.stringify(cause) ?? "[Unserializable cause]"})`);
|
|
82
|
+
}
|
|
63
83
|
if (isError && arg.stack) parts.push(arg.stack);
|
|
64
84
|
return parts.join("\n");
|
|
65
85
|
}
|
|
66
|
-
|
|
86
|
+
if (arg === null) return "null";
|
|
87
|
+
if (typeof arg === "string") return arg;
|
|
88
|
+
if (typeof arg === "number" || typeof arg === "bigint" || typeof arg === "boolean") return `${arg}`;
|
|
89
|
+
if (typeof arg === "symbol") return arg.description ?? "";
|
|
90
|
+
if (typeof arg === "undefined") return "undefined";
|
|
91
|
+
return JSON.stringify(arg, null, 2) ?? "[Unserializable value]";
|
|
67
92
|
}).join(" ");
|
|
68
93
|
};
|
|
69
94
|
console.log = (...args) => {
|
|
@@ -85,21 +110,44 @@ const patchConsole = (name, callbacks) => {
|
|
|
85
110
|
console.info = originalInfo;
|
|
86
111
|
};
|
|
87
112
|
};
|
|
113
|
+
var HostRemoteUrlMissing = class extends effect.Data.TaggedError("HostRemoteUrlMissing") {
|
|
114
|
+
get message() {
|
|
115
|
+
return "remoteUrl not provided on host descriptor";
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
var HostModuleInvalid = class extends effect.Data.TaggedError("HostModuleInvalid") {
|
|
119
|
+
get message() {
|
|
120
|
+
return "Host module does not export runServer function";
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
var LocalPathMissing = class extends effect.Data.TaggedError("LocalPathMissing") {
|
|
124
|
+
get message() {
|
|
125
|
+
return `No localPath for local service: ${this.key}`;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
88
128
|
const spawnRemoteHost = (descriptor, callbacks) => effect.Effect.gen(function* () {
|
|
89
129
|
const runtimeConfig = yield* require_service_descriptor.DevRuntimeConfig;
|
|
90
130
|
const remoteUrl = descriptor.remoteUrl;
|
|
91
|
-
if (!remoteUrl) return yield*
|
|
131
|
+
if (!remoteUrl) return yield* new HostRemoteUrlMissing();
|
|
92
132
|
callbacks.onStatus(descriptor.key, "starting");
|
|
93
133
|
callbacks.onLog(descriptor.key, `Remote: ${remoteUrl}`);
|
|
94
134
|
const restoreConsole = patchConsole(descriptor.key, callbacks);
|
|
95
135
|
callbacks.onLog(descriptor.key, "Loading Module Federation runtime...");
|
|
96
136
|
const mfRuntime = yield* effect.Effect.tryPromise({
|
|
97
137
|
try: () => import("@module-federation/enhanced/runtime"),
|
|
98
|
-
catch: (
|
|
138
|
+
catch: (cause) => new OrchestratorError({
|
|
139
|
+
operation: "load module federation runtime",
|
|
140
|
+
detail: cause instanceof Error ? cause.message : String(cause),
|
|
141
|
+
cause
|
|
142
|
+
})
|
|
99
143
|
});
|
|
100
144
|
const mfCore = yield* effect.Effect.tryPromise({
|
|
101
145
|
try: () => import("@module-federation/runtime-core"),
|
|
102
|
-
catch: (
|
|
146
|
+
catch: (cause) => new OrchestratorError({
|
|
147
|
+
operation: "load module federation core",
|
|
148
|
+
detail: cause instanceof Error ? cause.message : String(cause),
|
|
149
|
+
cause
|
|
150
|
+
})
|
|
103
151
|
});
|
|
104
152
|
let mf = mfRuntime.getInstance();
|
|
105
153
|
if (!mf) {
|
|
@@ -116,19 +164,17 @@ const spawnRemoteHost = (descriptor, callbacks) => effect.Effect.gen(function* (
|
|
|
116
164
|
const entryUrl = yield* effect.Effect.tryPromise({
|
|
117
165
|
try: async () => {
|
|
118
166
|
try {
|
|
119
|
-
const controller = new AbortController();
|
|
120
|
-
const timer = setTimeout(() => controller.abort(), 1e4);
|
|
121
167
|
let res;
|
|
122
168
|
try {
|
|
123
|
-
res = await
|
|
124
|
-
}
|
|
125
|
-
|
|
169
|
+
res = await runFetch(manifestUrl, { signal: AbortSignal.timeout(1e4) });
|
|
170
|
+
} catch {
|
|
171
|
+
throw new Error("manifest fetch failed");
|
|
126
172
|
}
|
|
127
173
|
if (!res.ok) return remoteEntryUrl;
|
|
128
174
|
const json = await res.json();
|
|
129
175
|
if (json && typeof json === "object" && "metaData" in json && "exposes" in json && "shared" in json) return manifestUrl;
|
|
130
176
|
} catch (e) {
|
|
131
|
-
|
|
177
|
+
warnOutsideEffect(`[Orchestrator] Failed to fetch or parse manifest from ${manifestUrl}, falling back to remoteEntryUrl: ${String(e)}`);
|
|
132
178
|
}
|
|
133
179
|
return remoteEntryUrl;
|
|
134
180
|
},
|
|
@@ -141,9 +187,13 @@ const spawnRemoteHost = (descriptor, callbacks) => effect.Effect.gen(function* (
|
|
|
141
187
|
callbacks.onLog(descriptor.key, `Loading host from ${entryUrl}...`);
|
|
142
188
|
const hostModule = yield* effect.Effect.tryPromise({
|
|
143
189
|
try: () => mf.loadRemote("host/Server"),
|
|
144
|
-
catch: (
|
|
190
|
+
catch: (cause) => new OrchestratorError({
|
|
191
|
+
operation: "load host module",
|
|
192
|
+
detail: cause instanceof Error ? cause.message : String(cause),
|
|
193
|
+
cause
|
|
194
|
+
})
|
|
145
195
|
});
|
|
146
|
-
if (!hostModule?.runServer) return yield*
|
|
196
|
+
if (!hostModule?.runServer) return yield* new HostModuleInvalid();
|
|
147
197
|
callbacks.onLog(descriptor.key, "Starting server...");
|
|
148
198
|
const hostPort = runtimeConfig.host?.port;
|
|
149
199
|
const hostEnv = hostPort ? { PORT: String(hostPort) } : void 0;
|
|
@@ -154,12 +204,16 @@ const spawnRemoteHost = (descriptor, callbacks) => effect.Effect.gen(function* (
|
|
|
154
204
|
});
|
|
155
205
|
yield* effect.Effect.tryPromise({
|
|
156
206
|
try: () => serverHandle.ready,
|
|
157
|
-
catch: (
|
|
207
|
+
catch: (cause) => new OrchestratorError({
|
|
208
|
+
operation: "start server",
|
|
209
|
+
detail: cause instanceof Error ? cause.message : String(cause),
|
|
210
|
+
cause
|
|
211
|
+
})
|
|
158
212
|
});
|
|
159
213
|
callbacks.onStatus(descriptor.key, "ready");
|
|
160
214
|
return {
|
|
161
215
|
name: descriptor.key,
|
|
162
|
-
pid:
|
|
216
|
+
pid: void 0,
|
|
163
217
|
kill: effect.Effect.gen(function* () {
|
|
164
218
|
callbacks.onLog(descriptor.key, "Shutting down remote host...");
|
|
165
219
|
restoreConsole();
|
|
@@ -168,29 +222,99 @@ const spawnRemoteHost = (descriptor, callbacks) => effect.Effect.gen(function* (
|
|
|
168
222
|
catch: () => {}
|
|
169
223
|
}).pipe(effect.Effect.ignore);
|
|
170
224
|
}),
|
|
171
|
-
waitForReady: effect.Effect.
|
|
225
|
+
waitForReady: effect.Effect.void,
|
|
172
226
|
waitForExit: effect.Effect.never
|
|
173
227
|
};
|
|
174
228
|
});
|
|
229
|
+
/**
|
|
230
|
+
* Spawn env precedence, three tiers: values explicitly exported by the
|
|
231
|
+
* caller (shell / CI / regression harness — captured by the bootstrap
|
|
232
|
+
* program into the `ShellEnv` service before any `.env` loading) outrank the
|
|
233
|
+
* generated infra env, which outranks `.env`-file values inherited through
|
|
234
|
+
* `processEnv`. The service's resolved port is always authoritative.
|
|
235
|
+
*/
|
|
236
|
+
function composeSpawnEnv(processEnv, generatedEnv, port, shellEnv = {}) {
|
|
237
|
+
return {
|
|
238
|
+
...processEnv,
|
|
239
|
+
...mergeGeneratedOverFileEnv(generatedEnv, processEnv, shellEnv),
|
|
240
|
+
FORCE_COLOR: "1",
|
|
241
|
+
...port > 0 ? { PORT: String(port) } : {}
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Overlay the generated infra env (ports drift, so stale `.env` values must
|
|
246
|
+
* lose) while keeping every explicitly exported key from `shellEnv` intact.
|
|
247
|
+
* Keys absent from both are untouched.
|
|
248
|
+
*
|
|
249
|
+
* Exception (ADR 0012 / plan 038): the origin keys BASE_URL and CORS_ORIGIN
|
|
250
|
+
* are always generated-owned — a wrapper that sourced a stale `.env` must not
|
|
251
|
+
* win over the resolved host port, in the child env or on disk.
|
|
252
|
+
*/
|
|
253
|
+
const GENERATED_OWNED_KEYS = /* @__PURE__ */ new Set(["BASE_URL", "CORS_ORIGIN"]);
|
|
254
|
+
function mergeGeneratedOverFileEnv(generatedEnv, processEnv, shellEnv = {}) {
|
|
255
|
+
const result = { ...processEnv };
|
|
256
|
+
for (const [key, value] of Object.entries(generatedEnv)) if (!GENERATED_OWNED_KEYS.has(key) && key in shellEnv) result[key] = shellEnv[key];
|
|
257
|
+
else result[key] = value;
|
|
258
|
+
return result;
|
|
259
|
+
}
|
|
175
260
|
const spawnDevProcess = (descriptor, callbacks) => effect.Effect.gen(function* () {
|
|
176
261
|
const runtimeConfig = yield* require_service_descriptor.DevRuntimeConfig;
|
|
177
|
-
if (!descriptor.localPath) return yield*
|
|
262
|
+
if (!descriptor.localPath) return yield* new LocalPathMissing({ key: descriptor.key });
|
|
178
263
|
const fullCwd = descriptor.localPath;
|
|
179
|
-
const command = descriptor.command ?? "
|
|
264
|
+
const command = descriptor.command ?? "pnpm";
|
|
180
265
|
const args = descriptor.args ?? ["run", "dev"];
|
|
181
266
|
const port = descriptor.port ?? descriptor.defaultPort;
|
|
182
267
|
const name = descriptor.key;
|
|
183
268
|
const readyDeferred = yield* effect.Deferred.make();
|
|
184
269
|
const statusRef = yield* effect.Ref.make("starting");
|
|
185
270
|
callbacks.onStatus(name, "starting");
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
...
|
|
271
|
+
const generatedEnv = yield* require_service_descriptor.DevGeneratedEnv;
|
|
272
|
+
const shellTier = yield* require_project_env.ShellEnv;
|
|
273
|
+
const envVars = composeSpawnEnv(process.env, {
|
|
274
|
+
...generatedEnv,
|
|
275
|
+
...descriptor.env
|
|
276
|
+
}, port, shellTier);
|
|
277
|
+
envVars.BOS_RUNTIME_CONFIG = yield* encodeRuntimeConfig(runtimeConfig);
|
|
278
|
+
const cmd = (0, node_child_process.spawn)(command, args, {
|
|
279
|
+
cwd: fullCwd,
|
|
280
|
+
env: envVars,
|
|
281
|
+
stdio: [
|
|
282
|
+
"ignore",
|
|
283
|
+
"pipe",
|
|
284
|
+
"pipe"
|
|
285
|
+
],
|
|
286
|
+
detached: true
|
|
287
|
+
});
|
|
288
|
+
let lastExit = null;
|
|
289
|
+
const exitCode = effect.Effect.callback((resume) => {
|
|
290
|
+
const onExit = (code, signal) => {
|
|
291
|
+
lastExit = {
|
|
292
|
+
code,
|
|
293
|
+
signal
|
|
294
|
+
};
|
|
295
|
+
resume(effect.Effect.succeed(code ?? (signal ? 1 : 0)));
|
|
296
|
+
};
|
|
297
|
+
const onError = (err) => {
|
|
298
|
+
callbacks.onLog(name, `Spawn failed: ${err.message}`, true);
|
|
299
|
+
callbacks.onStatus(name, "error", `spawn failed: ${err.message}`);
|
|
300
|
+
resume(effect.Effect.fail(new OrchestratorError({
|
|
301
|
+
operation: "spawn process",
|
|
302
|
+
detail: err.message,
|
|
303
|
+
cause: err
|
|
304
|
+
})));
|
|
305
|
+
};
|
|
306
|
+
cmd.once("exit", onExit);
|
|
307
|
+
cmd.once("error", onError);
|
|
308
|
+
return effect.Effect.sync(() => {
|
|
309
|
+
cmd.off("exit", onExit);
|
|
310
|
+
cmd.off("error", onError);
|
|
311
|
+
});
|
|
312
|
+
});
|
|
313
|
+
const describeExit = (exitCodeValue) => {
|
|
314
|
+
if (lastExit?.code === null && lastExit.signal) return `signal: ${lastExit.signal}`;
|
|
315
|
+
return `exit code: ${exitCodeValue}`;
|
|
190
316
|
};
|
|
191
|
-
|
|
192
|
-
const cmd = _effect_platform.Command.make(command, ...args).pipe(_effect_platform.Command.workingDirectory(fullCwd), _effect_platform.Command.env(envVars));
|
|
193
|
-
const proc = yield* _effect_platform.Command.start(cmd);
|
|
317
|
+
const isCleanSignalExit = () => lastExit?.code === null && lastExit.signal != null && lastExit.signal in cleanExitSignals;
|
|
194
318
|
const markReady = effect.Effect.gen(function* () {
|
|
195
319
|
const currentStatus = yield* effect.Ref.get(statusRef);
|
|
196
320
|
if (currentStatus === "ready" || currentStatus === "error") return;
|
|
@@ -203,67 +327,96 @@ const spawnDevProcess = (descriptor, callbacks) => effect.Effect.gen(function* (
|
|
|
203
327
|
if (currentStatus === "ready" || currentStatus === "error") return;
|
|
204
328
|
yield* effect.Ref.set(statusRef, "error");
|
|
205
329
|
callbacks.onStatus(name, "error");
|
|
206
|
-
yield* effect.Deferred.fail(readyDeferred, new
|
|
330
|
+
yield* effect.Deferred.fail(readyDeferred, new OrchestratorError({
|
|
331
|
+
operation: "wait for process readiness",
|
|
332
|
+
detail: message
|
|
333
|
+
})).pipe(effect.Effect.ignore);
|
|
207
334
|
});
|
|
208
335
|
yield* effect.Effect.forkScoped(effect.Effect.gen(function* () {
|
|
209
|
-
const
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
const url = `http://127.0.0.1:${port}${readinessPath}`;
|
|
213
|
-
while (Date.now() < deadline) {
|
|
214
|
-
const status = yield* effect.Ref.get(statusRef);
|
|
215
|
-
if (status === "ready" || status === "error") return;
|
|
216
|
-
if (yield* probeHttpOk(url)) {
|
|
217
|
-
yield* markReady;
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
yield* effect.Effect.sleep(`${LOCAL_PROBE_INTERVAL_MS} millis`);
|
|
221
|
-
}
|
|
222
|
-
} else while (Date.now() < deadline) {
|
|
336
|
+
const readinessPath = descriptor.readinessPath;
|
|
337
|
+
const url = `http://127.0.0.1:${port}${readinessPath}`;
|
|
338
|
+
const readinessCheck = effect.Effect.gen(function* () {
|
|
223
339
|
const status = yield* effect.Ref.get(statusRef);
|
|
224
|
-
if (status === "ready" || status === "error") return;
|
|
225
|
-
|
|
226
|
-
|
|
340
|
+
if (status === "ready" || status === "error") return true;
|
|
341
|
+
if (port <= 0) return false;
|
|
342
|
+
const ok = yield* probeHttpOk(url);
|
|
343
|
+
if (ok) yield* markReady;
|
|
344
|
+
return ok;
|
|
345
|
+
});
|
|
346
|
+
if (yield* effect.Effect.repeat(readinessCheck, {
|
|
347
|
+
schedule: effect.Schedule.spaced(`${port > 0 ? LOCAL_PROBE_INTERVAL_MS : 500} millis`),
|
|
348
|
+
until: (done) => done
|
|
349
|
+
}).pipe(effect.Effect.timeout(`${LOCAL_PROBE_DEADLINE_MS} millis`), effect.Effect.catchTag("TimeoutError", () => effect.Effect.succeed(false)))) return;
|
|
227
350
|
const status = yield* effect.Ref.get(statusRef);
|
|
228
351
|
if (status !== "ready" && status !== "error") {
|
|
229
352
|
callbacks.onLog(name, "Probe deadline exceeded after 90s", true);
|
|
230
353
|
yield* markError(`Probe deadline exceeded: ${name}`);
|
|
231
354
|
}
|
|
232
355
|
}));
|
|
233
|
-
const pid =
|
|
356
|
+
const pid = cmd.pid ?? void 0;
|
|
234
357
|
yield* effect.Effect.forkScoped(effect.Effect.gen(function* () {
|
|
235
|
-
const
|
|
358
|
+
const exitCodeValue = yield* exitCode;
|
|
236
359
|
const currentStatus = yield* effect.Ref.get(statusRef);
|
|
237
|
-
if (currentStatus === "ready" || currentStatus === "error")
|
|
238
|
-
|
|
360
|
+
if (currentStatus === "ready" || currentStatus === "error") {
|
|
361
|
+
if (currentStatus === "ready") {
|
|
362
|
+
const detail = describeExit(exitCodeValue);
|
|
363
|
+
callbacks.onLog(name, `Process exited after ready (${detail})`, !isCleanSignalExit());
|
|
364
|
+
if (!isCleanSignalExit()) callbacks.onStatus(name, "error", `exited after ready (${detail})`);
|
|
365
|
+
yield* markError(`Process exited after ready: ${name}`);
|
|
366
|
+
}
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
callbacks.onLog(name, `Process exited before ready (${describeExit(exitCodeValue)})`, !isCleanSignalExit());
|
|
239
370
|
yield* markError(`Process exited before ready: ${name}`);
|
|
240
371
|
}));
|
|
241
372
|
const handleLine = (line, isStderr) => effect.Effect.gen(function* () {
|
|
242
373
|
if (!line.trim()) return;
|
|
243
|
-
const cleanLine = stripAnsi(line);
|
|
244
|
-
const looksLikeError = isStderr && /^(error|fail|fatal|exception|unhandled|reject)/i.test(cleanLine) &&
|
|
374
|
+
const cleanLine = require_dev_log_pipeline.stripAnsi(line);
|
|
375
|
+
const looksLikeError = isStderr && /^(error|fail|fatal|exception|unhandled|reject)/i.test(cleanLine) && !cleanLine.startsWith("$");
|
|
245
376
|
callbacks.onLog(name, line, looksLikeError);
|
|
246
377
|
const currentStatus = yield* effect.Ref.get(statusRef);
|
|
247
|
-
if (currentStatus === "ready"
|
|
378
|
+
if (currentStatus === "ready") return;
|
|
248
379
|
const detected = detectStatus(line, descriptor);
|
|
249
|
-
if (detected)
|
|
250
|
-
|
|
380
|
+
if (detected) {
|
|
381
|
+
if (detected.status === "ready") yield* markReady;
|
|
382
|
+
else if (currentStatus !== "error") yield* markError(`Process failed: ${name}`);
|
|
383
|
+
}
|
|
251
384
|
});
|
|
252
|
-
|
|
253
|
-
|
|
385
|
+
const stdoutStream = cmd.stdout ? node_stream.Readable.toWeb(cmd.stdout) : null;
|
|
386
|
+
const stderrStream = cmd.stderr ? node_stream.Readable.toWeb(cmd.stderr) : null;
|
|
387
|
+
if (stdoutStream) yield* effect.Effect.forkScoped(effect.Stream.runForEach((line) => handleLine(line, false))(effect.Stream.splitLines(effect.Stream.decodeText(effect.Stream.fromReadableStream({
|
|
388
|
+
evaluate: () => stdoutStream,
|
|
389
|
+
onError: (cause) => new OrchestratorError({
|
|
390
|
+
operation: "read process stdout",
|
|
391
|
+
detail: String(cause),
|
|
392
|
+
cause
|
|
393
|
+
})
|
|
394
|
+
})))));
|
|
395
|
+
if (stderrStream) yield* effect.Effect.forkScoped(effect.Stream.runForEach((line) => handleLine(line, true))(effect.Stream.splitLines(effect.Stream.decodeText(effect.Stream.fromReadableStream({
|
|
396
|
+
evaluate: () => stderrStream,
|
|
397
|
+
onError: (cause) => new OrchestratorError({
|
|
398
|
+
operation: "read process stderr",
|
|
399
|
+
detail: String(cause),
|
|
400
|
+
cause
|
|
401
|
+
})
|
|
402
|
+
})))));
|
|
254
403
|
return {
|
|
255
404
|
name,
|
|
256
405
|
pid,
|
|
257
406
|
kill: effect.Effect.gen(function* () {
|
|
258
|
-
const
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
407
|
+
const groupPid = pid;
|
|
408
|
+
const groupSignal = (signal) => effect.Effect.try(() => {
|
|
409
|
+
if (groupPid !== void 0) process.kill(-groupPid, signal);
|
|
410
|
+
}).pipe(effect.Effect.ignore);
|
|
411
|
+
yield* groupSignal("SIGTERM");
|
|
412
|
+
const exited = yield* exitCode.pipe(effect.Effect.timeout("3 seconds"), effect.Effect.option);
|
|
413
|
+
if (effect.Option.isNone(exited)) {
|
|
414
|
+
yield* groupSignal("SIGKILL");
|
|
262
415
|
yield* effect.Effect.sleep("250 millis");
|
|
263
416
|
}
|
|
264
417
|
}).pipe(effect.Effect.ignore),
|
|
265
418
|
waitForReady: effect.Deferred.await(readyDeferred),
|
|
266
|
-
waitForExit:
|
|
419
|
+
waitForExit: exitCode
|
|
267
420
|
};
|
|
268
421
|
});
|
|
269
422
|
const spawnRemoteProbe = (pkg, descriptor, callbacks) => effect.Effect.gen(function* () {
|
|
@@ -281,7 +434,10 @@ const spawnRemoteProbe = (pkg, descriptor, callbacks) => effect.Effect.gen(funct
|
|
|
281
434
|
const currentStatus = yield* effect.Ref.get(statusRef);
|
|
282
435
|
if (currentStatus === "ready" || currentStatus === "error") return;
|
|
283
436
|
yield* effect.Ref.set(statusRef, "error");
|
|
284
|
-
yield* effect.Deferred.fail(readyDeferred,
|
|
437
|
+
yield* effect.Deferred.fail(readyDeferred, new OrchestratorError({
|
|
438
|
+
operation: "probe remote process",
|
|
439
|
+
detail: `Remote ${pkg} unreachable`
|
|
440
|
+
})).pipe(effect.Effect.ignore);
|
|
285
441
|
callbacks.onStatus(pkg, "error", "unreachable");
|
|
286
442
|
});
|
|
287
443
|
const baseUrl = descriptor.url.replace(/\/$/, "");
|
|
@@ -289,22 +445,23 @@ const spawnRemoteProbe = (pkg, descriptor, callbacks) => effect.Effect.gen(funct
|
|
|
289
445
|
const entryUrl = `${baseUrl}${descriptor.readinessPath}`;
|
|
290
446
|
const probeUrl = descriptor.readinessPath === "/health" ? `${baseUrl}/health` : manifestUrl;
|
|
291
447
|
yield* effect.Effect.forkScoped(effect.Effect.gen(function* () {
|
|
292
|
-
const
|
|
293
|
-
let delay = REMOTE_PROBE_BACKOFF_INITIAL_MS;
|
|
294
|
-
while (Date.now() < deadline) {
|
|
448
|
+
const readinessCheck = effect.Effect.gen(function* () {
|
|
295
449
|
const status = yield* effect.Ref.get(statusRef);
|
|
296
|
-
if (status === "ready" || status === "error") return;
|
|
450
|
+
if (status === "ready" || status === "error") return true;
|
|
297
451
|
if (yield* probeHttpOk(probeUrl, REMOTE_PROBE_TIMEOUT_MS)) {
|
|
298
452
|
yield* markReady;
|
|
299
|
-
return;
|
|
453
|
+
return true;
|
|
300
454
|
}
|
|
301
455
|
if (yield* probeHttpOk(entryUrl, REMOTE_PROBE_TIMEOUT_MS)) {
|
|
302
456
|
yield* markReady;
|
|
303
|
-
return;
|
|
457
|
+
return true;
|
|
304
458
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
459
|
+
return false;
|
|
460
|
+
});
|
|
461
|
+
if (yield* effect.Effect.repeat(readinessCheck, {
|
|
462
|
+
schedule: effect.Schedule.min([effect.Schedule.exponential(`${REMOTE_PROBE_BACKOFF_INITIAL_MS} millis`, 1.5), effect.Schedule.spaced(`${REMOTE_PROBE_BACKOFF_MAX_MS} millis`)]),
|
|
463
|
+
until: (done) => done
|
|
464
|
+
}).pipe(effect.Effect.timeout(`${REMOTE_PROBE_DEADLINE_MS} millis`), effect.Effect.catchTag("TimeoutError", () => effect.Effect.succeed(false)))) return;
|
|
308
465
|
if ((yield* effect.Ref.get(statusRef)) !== "ready") yield* markError;
|
|
309
466
|
}));
|
|
310
467
|
return {
|
|
@@ -312,7 +469,10 @@ const spawnRemoteProbe = (pkg, descriptor, callbacks) => effect.Effect.gen(funct
|
|
|
312
469
|
pid: void 0,
|
|
313
470
|
kill: effect.Effect.gen(function* () {
|
|
314
471
|
yield* effect.Ref.set(statusRef, "error");
|
|
315
|
-
yield* effect.Deferred.fail(readyDeferred,
|
|
472
|
+
yield* effect.Deferred.fail(readyDeferred, new OrchestratorError({
|
|
473
|
+
operation: "stop remote process",
|
|
474
|
+
detail: "Killed"
|
|
475
|
+
})).pipe(effect.Effect.ignore);
|
|
316
476
|
}),
|
|
317
477
|
waitForReady: effect.Deferred.await(readyDeferred),
|
|
318
478
|
waitForExit: effect.Effect.never
|
|
@@ -345,12 +505,21 @@ function getProcessStates(packages, services, portOverride) {
|
|
|
345
505
|
name: pkg,
|
|
346
506
|
status: "pending",
|
|
347
507
|
port: portOverride && pkg === "host" ? portOverride : descriptor?.port ?? descriptor?.defaultPort ?? 0,
|
|
348
|
-
source: descriptor?.source
|
|
508
|
+
source: descriptor?.source,
|
|
509
|
+
uiPort: descriptor?.uiPort
|
|
349
510
|
};
|
|
350
511
|
});
|
|
351
512
|
}
|
|
352
513
|
|
|
353
514
|
//#endregion
|
|
515
|
+
exports.HostModuleInvalid = HostModuleInvalid;
|
|
516
|
+
exports.HostRemoteUrlMissing = HostRemoteUrlMissing;
|
|
517
|
+
exports.LocalPathMissing = LocalPathMissing;
|
|
518
|
+
exports.OrchestratorError = OrchestratorError;
|
|
519
|
+
exports.composeSpawnEnv = composeSpawnEnv;
|
|
520
|
+
exports.detectStatus = detectStatus;
|
|
521
|
+
exports.encodeRuntimeConfig = encodeRuntimeConfig;
|
|
354
522
|
exports.getProcessStates = getProcessStates;
|
|
355
523
|
exports.makeDevProcess = makeDevProcess;
|
|
524
|
+
exports.mergeGeneratedOverFileEnv = mergeGeneratedOverFileEnv;
|
|
356
525
|
//# sourceMappingURL=orchestrator.cjs.map
|