everything-dev 1.53.1 → 2.0.0-rc.0
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 +624 -196
- 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 +613 -194
- 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/cli.mjs
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
2
|
+
import { getRegistryNamespaceForAccount } from "./fastkv.mjs";
|
|
3
|
+
import { getNetworkIdForAccount } from "./network.mjs";
|
|
4
|
+
import { MISSING_CONFIG_MESSAGE, findConfigPath, readAuthoredConfigInput } from "./config.mjs";
|
|
3
5
|
import { createPluginRuntime } from "./sdk.mjs";
|
|
6
|
+
import { runDockerComposeUp } from "./infra/docker.mjs";
|
|
7
|
+
import { installBundleFetchFromEnv } from "./bundle-fs-resolve.mjs";
|
|
4
8
|
import { formatDuration, sumPhaseDurations } from "./cli/timing.mjs";
|
|
5
9
|
import { colors, frames, gradients, icons } from "./utils/theme.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
10
|
+
import { listPublishKeys } from "./near-cli.mjs";
|
|
11
|
+
import { pluginEvents } from "./progress.mjs";
|
|
12
|
+
import { fetchInitParent } from "./commands/init.mjs";
|
|
8
13
|
import { resolveFrameworkPackage } from "./cli/framework-version.mjs";
|
|
9
|
-
import plugin_default
|
|
14
|
+
import plugin_default from "./plugin.mjs";
|
|
10
15
|
import { findCommandDescriptor } from "./cli/catalog.mjs";
|
|
11
16
|
import { printHelp } from "./cli/help.mjs";
|
|
12
17
|
import { parseCommandInput } from "./cli/parse.mjs";
|
|
13
18
|
import { promptInitBasic, promptInitOverrides } from "./cli/prompts.mjs";
|
|
14
19
|
import { printBanner } from "./utils/banner.mjs";
|
|
20
|
+
import { existsSync, watch } from "node:fs";
|
|
15
21
|
import { dirname, resolve } from "node:path";
|
|
22
|
+
import { readFile } from "node:fs/promises";
|
|
16
23
|
import * as p from "@clack/prompts";
|
|
17
24
|
|
|
18
25
|
//#region src/cli.ts
|
|
@@ -41,6 +48,25 @@ function formatTimeAgo(isoTimestamp) {
|
|
|
41
48
|
function normalizeVersion(v) {
|
|
42
49
|
return v.replace(/^[\^~>=v]+/, "").trim();
|
|
43
50
|
}
|
|
51
|
+
const RETIRED_BOOTSTRAP_STUBS = [
|
|
52
|
+
"ui/src/entry.ts",
|
|
53
|
+
"ui/src/hydrate.tsx",
|
|
54
|
+
"ui/src/router.server.tsx",
|
|
55
|
+
"ui/src/compose.ts"
|
|
56
|
+
];
|
|
57
|
+
/**
|
|
58
|
+
* Hand-modified bootstrap stubs retire as conflicted (backed up, then
|
|
59
|
+
* deleted) — print the mechanical port into the authored seams (ADR 0023).
|
|
60
|
+
*/
|
|
61
|
+
function printStubMigrationGuide(retiredConflicted) {
|
|
62
|
+
if ((retiredConflicted ?? []).filter((f) => RETIRED_BOOTSTRAP_STUBS.includes(f)).length === 0) return;
|
|
63
|
+
console.log(` ${colors.yellow("Port your stub customizations into the authored seams:")}`);
|
|
64
|
+
console.log(` ${colors.dim("- defaultErrorComponent / defaultPendingComponent / defaultNotFoundComponent")}`);
|
|
65
|
+
console.log(` ${colors.dim(" → set them inside the createRouter factory in ui/src/router.tsx (after ...opts)")}`);
|
|
66
|
+
console.log(` ${colors.dim("- apiConnectionError copy + SSR locale config (locales, defaultLocale, cookieName)")}`);
|
|
67
|
+
console.log(` ${colors.dim(" → export apiConnectionError / appLocale from ui/src/app.ts (see the scaffold template)")}`);
|
|
68
|
+
console.log(` ${colors.dim(" backed-up originals: .bos/sync-backup/<timestamp>/")}`);
|
|
69
|
+
}
|
|
44
70
|
function printTimingSummary(timings) {
|
|
45
71
|
if (!timings || timings.length === 0) return;
|
|
46
72
|
console.log(` ${colors.dim("Timings:")}`);
|
|
@@ -83,11 +109,15 @@ async function warnIfOutdated(client, command) {
|
|
|
83
109
|
const outdated = status.packages.filter((p) => !p.isLinked && p.installed && p.latest && normalizeVersion(p.installed) !== normalizeVersion(p.latest) && frameworkPackages.includes(p.name));
|
|
84
110
|
if (linked.length > 0) for (const pkg of linked) console.log(colors.dim(` ${pkg.name} is linked locally (v${pkg.installed})`));
|
|
85
111
|
if (outdated.length === 0) return;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
112
|
+
const warn = (line) => {
|
|
113
|
+
if (command === "dev" || command === "start") process.stderr.write(`${line}\n`);
|
|
114
|
+
else console.log(line);
|
|
115
|
+
};
|
|
116
|
+
warn("");
|
|
117
|
+
warn(colors.yellow(` ! Outdated packages detected:`));
|
|
118
|
+
for (const pkg of outdated) warn(colors.dim(` ${pkg.name} ${pkg.installed} → ${pkg.latest}`));
|
|
119
|
+
warn(colors.dim(` Run ${colors.cyan("bos upgrade")} to update packages and sync template files.`));
|
|
120
|
+
warn("");
|
|
91
121
|
} catch {}
|
|
92
122
|
}
|
|
93
123
|
async function main() {
|
|
@@ -98,7 +128,6 @@ async function main() {
|
|
|
98
128
|
}
|
|
99
129
|
const invocationArgs = args.length > 0 ? args : ["dev"];
|
|
100
130
|
const command = invocationArgs[0] ?? "dev";
|
|
101
|
-
const configPath = findConfigPath();
|
|
102
131
|
const commandMatch = findCommandDescriptor(invocationArgs);
|
|
103
132
|
if (!commandMatch) {
|
|
104
133
|
console.error(`Unknown command: ${command}`);
|
|
@@ -106,7 +135,18 @@ async function main() {
|
|
|
106
135
|
}
|
|
107
136
|
const { descriptor, consumed } = commandMatch;
|
|
108
137
|
const commandArgs = invocationArgs.slice(consumed);
|
|
109
|
-
|
|
138
|
+
let parsedInput;
|
|
139
|
+
try {
|
|
140
|
+
parsedInput = parseCommandInput(descriptor, commandArgs);
|
|
141
|
+
} catch (error) {
|
|
142
|
+
console.error(`[CLI] ${error instanceof Error ? error.message : String(error)}`);
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
const bootInput = parsedInput;
|
|
146
|
+
const cwdConfigPath = findConfigPath();
|
|
147
|
+
const configPath = bootInput.configPath ?? cwdConfigPath;
|
|
148
|
+
installBundleFetchFromEnv({ configPath });
|
|
149
|
+
const projectDir = cwdConfigPath ? dirname(cwdConfigPath) : void 0;
|
|
110
150
|
const edResolved = projectDir ? resolveFrameworkPackage(projectDir, "everything-dev") : void 0;
|
|
111
151
|
const displayVersion = edResolved?.installedVersion ? `${edResolved.installedVersion}${edResolved.isLinked ? " (linked)" : ""}` : void 0;
|
|
112
152
|
if (!process.env.BOS_NO_BANNER) printBanner("everything-dev", displayVersion);
|
|
@@ -115,12 +155,68 @@ async function main() {
|
|
|
115
155
|
secrets: {}
|
|
116
156
|
});
|
|
117
157
|
const client = (await pluginRuntime.usePlugin.bind(pluginRuntime)("bos", {
|
|
118
|
-
variables: {
|
|
158
|
+
variables: {
|
|
159
|
+
configPath: configPath ?? void 0,
|
|
160
|
+
configDir: cwdConfigPath ? dirname(cwdConfigPath) : void 0
|
|
161
|
+
},
|
|
119
162
|
secrets: {}
|
|
120
163
|
})).createClient();
|
|
121
|
-
|
|
164
|
+
warnIfOutdated(client, command);
|
|
122
165
|
try {
|
|
123
|
-
const input =
|
|
166
|
+
const input = parsedInput;
|
|
167
|
+
const rollbackInput = input;
|
|
168
|
+
if (descriptor.key === "rollback" && !rollbackInput.listOnly && !rollbackInput.version && !rollbackInput.previous) {
|
|
169
|
+
const listing = await client.rollback({
|
|
170
|
+
...rollbackInput,
|
|
171
|
+
listOnly: true
|
|
172
|
+
});
|
|
173
|
+
if (listing.status !== "list" || !listing.history?.length) {
|
|
174
|
+
console.error(listing.error ?? "No publish history found");
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
console.log();
|
|
178
|
+
const selection = await p.select({
|
|
179
|
+
message: "Roll back to which publish?",
|
|
180
|
+
options: listing.history.map((entry) => ({
|
|
181
|
+
value: String(entry.blockHeight),
|
|
182
|
+
label: `${entry.blockTimestamp} (block ${entry.blockHeight})`,
|
|
183
|
+
hint: entry.summary
|
|
184
|
+
}))
|
|
185
|
+
});
|
|
186
|
+
if (p.isCancel(selection)) return;
|
|
187
|
+
rollbackInput.version = selection;
|
|
188
|
+
}
|
|
189
|
+
if (descriptor.key === "keyPublish") {
|
|
190
|
+
const keyPublishInput = input;
|
|
191
|
+
if (keyPublishInput.removeOldKeys === void 0) {
|
|
192
|
+
if (process.stdin.isTTY) {
|
|
193
|
+
const authored = configPath ? await readAuthoredConfigInput(dirname(configPath)) : null;
|
|
194
|
+
const account = keyPublishInput.env === "staging" ? authored?.staging?.account ?? authored?.account : authored?.account;
|
|
195
|
+
let listed = null;
|
|
196
|
+
if (account) {
|
|
197
|
+
const network = getNetworkIdForAccount(account);
|
|
198
|
+
const contract = getRegistryNamespaceForAccount(account, keyPublishInput.registry);
|
|
199
|
+
try {
|
|
200
|
+
listed = await listPublishKeys({
|
|
201
|
+
account,
|
|
202
|
+
contract,
|
|
203
|
+
network
|
|
204
|
+
});
|
|
205
|
+
} catch {
|
|
206
|
+
listed = null;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (listed?.length) {
|
|
210
|
+
const removeOldKeys = await p.confirm({
|
|
211
|
+
message: `Remove ${listed.length} existing publish key${listed.length > 1 ? "s" : ""}?`,
|
|
212
|
+
initialValue: true
|
|
213
|
+
});
|
|
214
|
+
if (p.isCancel(removeOldKeys)) return;
|
|
215
|
+
keyPublishInput.removeOldKeys = removeOldKeys;
|
|
216
|
+
} else keyPublishInput.removeOldKeys = true;
|
|
217
|
+
} else keyPublishInput.removeOldKeys = true;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
124
220
|
if (descriptor.key === "dev") {
|
|
125
221
|
const devSpinner = p.spinner();
|
|
126
222
|
devSpinner.start("Starting dev environment");
|
|
@@ -130,6 +226,7 @@ async function main() {
|
|
|
130
226
|
build: "Building...",
|
|
131
227
|
"resolve config": "Resolving config...",
|
|
132
228
|
ports: "Finding available ports...",
|
|
229
|
+
"docker compose up": "Starting local Postgres...",
|
|
133
230
|
"generate artifacts": "Generating code artifacts..."
|
|
134
231
|
};
|
|
135
232
|
const onDevProgress = (event) => {
|
|
@@ -150,11 +247,10 @@ async function main() {
|
|
|
150
247
|
}
|
|
151
248
|
devSpinner.stop();
|
|
152
249
|
clearSpinnerStopLine();
|
|
153
|
-
const session =
|
|
154
|
-
await outdatedWarning;
|
|
250
|
+
const session = result.session;
|
|
155
251
|
if (session) {
|
|
156
252
|
const { devApp } = await import("./dev-session.mjs");
|
|
157
|
-
devApp(session.orchestrator, session.services, session.runtimeConfig);
|
|
253
|
+
devApp(projectDir ?? process.cwd(), session.orchestrator, session.services, session.runtimeConfig, session.envGenerated, session.shellEnv);
|
|
158
254
|
}
|
|
159
255
|
return;
|
|
160
256
|
}
|
|
@@ -182,13 +278,12 @@ async function main() {
|
|
|
182
278
|
process.exit(1);
|
|
183
279
|
}
|
|
184
280
|
startSpinner.stop("Ready");
|
|
185
|
-
const session =
|
|
186
|
-
|
|
281
|
+
const session = result.session;
|
|
282
|
+
const summary = result.summary;
|
|
187
283
|
if (session) {
|
|
188
|
-
const summary = session.summary;
|
|
189
284
|
if (summary) printStartSummary(summary);
|
|
190
285
|
const { startApp } = await import("./dev-session.mjs");
|
|
191
|
-
startApp(session.orchestrator, session.services, session.runtimeConfig);
|
|
286
|
+
startApp(projectDir ?? process.cwd(), session.orchestrator, session.services, session.runtimeConfig, session.envGenerated, session.shellEnv);
|
|
192
287
|
}
|
|
193
288
|
return;
|
|
194
289
|
}
|
|
@@ -205,8 +300,9 @@ async function main() {
|
|
|
205
300
|
const fetchSpinner = p.spinner();
|
|
206
301
|
fetchSpinner.start("Fetching parent config");
|
|
207
302
|
try {
|
|
208
|
-
|
|
209
|
-
|
|
303
|
+
const parent = await fetchInitParent(basic.extendsAccount, basic.extendsGateway);
|
|
304
|
+
parentConfig = parent.parentConfig;
|
|
305
|
+
parentPluginKeys = parent.parentPluginKeys;
|
|
210
306
|
} catch {
|
|
211
307
|
fetchSpinner.stop("Config not found");
|
|
212
308
|
console.error(`[CLI] No config found at bos://${basic.extendsAccount}/${basic.extendsGateway}`);
|
|
@@ -223,7 +319,8 @@ async function main() {
|
|
|
223
319
|
const overrides = await promptInitOverrides({
|
|
224
320
|
parentPluginKeys,
|
|
225
321
|
plugins: initInput.plugins,
|
|
226
|
-
overrides: initInput.overrides
|
|
322
|
+
overrides: initInput.overrides,
|
|
323
|
+
level: initInput.level
|
|
227
324
|
});
|
|
228
325
|
const directory = initInput.directory || basic.domain || basic.extendsGateway;
|
|
229
326
|
initInput = {
|
|
@@ -234,6 +331,7 @@ async function main() {
|
|
|
234
331
|
domain: basic.domain || void 0,
|
|
235
332
|
plugins: overrides.plugins,
|
|
236
333
|
overrides: overrides.overrides,
|
|
334
|
+
level: overrides.level ?? initInput.level,
|
|
237
335
|
noInteractive: true
|
|
238
336
|
};
|
|
239
337
|
}
|
|
@@ -282,13 +380,10 @@ async function main() {
|
|
|
282
380
|
console.log();
|
|
283
381
|
console.log(colors.dim(" Next steps:"));
|
|
284
382
|
console.log(colors.dim(` cd ${result.directory}`));
|
|
285
|
-
if (!initInput.noInstall)
|
|
286
|
-
|
|
287
|
-
console.log(colors.dim("
|
|
288
|
-
|
|
289
|
-
console.log(colors.dim(" bun install"));
|
|
290
|
-
console.log(colors.dim(" docker compose up -d --wait"));
|
|
291
|
-
console.log(colors.dim(" bun run dev"));
|
|
383
|
+
if (!initInput.noInstall) console.log(colors.dim(" pnpm run dev"));
|
|
384
|
+
else {
|
|
385
|
+
console.log(colors.dim(" pnpm install"));
|
|
386
|
+
console.log(colors.dim(" pnpm run dev"));
|
|
292
387
|
}
|
|
293
388
|
console.log();
|
|
294
389
|
if (initInput.noInteractive !== true && !initInput.noInstall && result.targetDir) {
|
|
@@ -298,43 +393,22 @@ async function main() {
|
|
|
298
393
|
}) === true) {
|
|
299
394
|
const dockerSpinner = p.spinner();
|
|
300
395
|
dockerSpinner.start("Starting Docker services");
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
} catch (error) {
|
|
396
|
+
const compose = await runDockerComposeUp(result.targetDir);
|
|
397
|
+
if (compose.ok) dockerSpinner.stop("Docker services ready");
|
|
398
|
+
else {
|
|
305
399
|
dockerSpinner.stop("Docker services not started");
|
|
306
|
-
p.log.warn(`docker compose up -d --wait failed
|
|
400
|
+
p.log.warn(`docker compose up -d --wait failed${compose.tail ? `:\n${compose.tail}` : ""}`);
|
|
307
401
|
}
|
|
308
402
|
}
|
|
309
403
|
}
|
|
310
404
|
return;
|
|
311
405
|
}
|
|
312
|
-
await outdatedWarning;
|
|
313
406
|
const result = await client[descriptor.key](input);
|
|
314
407
|
if (descriptor.key === "dbStudio") {
|
|
315
408
|
if (result.status === "error") {
|
|
316
409
|
console.error(`[CLI] ${result.error || "Unknown error"}`);
|
|
317
410
|
process.exit(1);
|
|
318
411
|
}
|
|
319
|
-
const configPath = findConfigPath();
|
|
320
|
-
if (configPath) loadProjectEnv(dirname(configPath));
|
|
321
|
-
const { runStudioLocal, runStudioRemote } = await import("./cli/db-studio.mjs");
|
|
322
|
-
const info = {
|
|
323
|
-
key: result.plugin,
|
|
324
|
-
source: result.source,
|
|
325
|
-
section: result.section,
|
|
326
|
-
databaseSecret: result.databaseSecret,
|
|
327
|
-
databaseUrl: result.databaseUrl,
|
|
328
|
-
workspaceDir: result.workspaceDir,
|
|
329
|
-
projectDir: dirname(configPath ?? process.cwd())
|
|
330
|
-
};
|
|
331
|
-
try {
|
|
332
|
-
if (info.source === "local" && info.workspaceDir) await runStudioLocal(info);
|
|
333
|
-
else await runStudioRemote(info);
|
|
334
|
-
} catch (error) {
|
|
335
|
-
console.error(`[CLI] ${error instanceof Error ? error.message : String(error)}`);
|
|
336
|
-
process.exit(1);
|
|
337
|
-
}
|
|
338
412
|
return;
|
|
339
413
|
}
|
|
340
414
|
if (descriptor.key === "dbDoctor") {
|
|
@@ -384,7 +458,7 @@ async function main() {
|
|
|
384
458
|
}
|
|
385
459
|
if (descriptor.key === "config") {
|
|
386
460
|
if (!result.config) {
|
|
387
|
-
console.error(
|
|
461
|
+
console.error(MISSING_CONFIG_MESSAGE);
|
|
388
462
|
process.exit(1);
|
|
389
463
|
}
|
|
390
464
|
printConfigView(result.config);
|
|
@@ -403,7 +477,8 @@ async function main() {
|
|
|
403
477
|
}
|
|
404
478
|
if (result.status === "dry-run") console.log(colors.cyan(`${icons.ok} Dry run — no files written`));
|
|
405
479
|
else console.log(colors.green(`${icons.ok} Synced`));
|
|
406
|
-
|
|
480
|
+
const hasRetirement = (result.retired?.length ?? 0) > 0 || (result.retiredConflicted?.length ?? 0) > 0;
|
|
481
|
+
if (result.updated.length > 0 || result.added.length > 0 || result.conflicted.length > 0 || hasRetirement) {
|
|
407
482
|
console.log(` ${colors.dim("Sync results:")} ${result.updated.length} updated, ${result.added.length} added, ${result.conflicted.length} conflicted`);
|
|
408
483
|
if (result.updated.length > 0) for (const f of result.updated) console.log(` ${colors.dim(f)}`);
|
|
409
484
|
if (result.added.length > 0) for (const f of result.added) console.log(` ${colors.dim(f)}`);
|
|
@@ -412,8 +487,15 @@ async function main() {
|
|
|
412
487
|
if (result.backupDir) console.log(` ${colors.dim(result.backupDir)}`);
|
|
413
488
|
for (const f of result.conflicted) console.log(` ${colors.dim(f)}`);
|
|
414
489
|
}
|
|
490
|
+
if (hasRetirement) {
|
|
491
|
+
console.log(` ${colors.yellow("Retired")} (replaced by generated stubs — ADR 0023):`);
|
|
492
|
+
if (result.retiredBackupDir) console.log(` ${colors.dim(result.retiredBackupDir)}`);
|
|
493
|
+
for (const f of result.retiredConflicted ?? []) console.log(` ${colors.dim(`${f} (backed up)`)}`);
|
|
494
|
+
for (const f of result.retired ?? []) console.log(` ${colors.dim(f)}`);
|
|
495
|
+
printStubMigrationGuide(result.retiredConflicted);
|
|
496
|
+
}
|
|
415
497
|
}
|
|
416
|
-
if (result.updated.length === 0 && result.added.length === 0 && result.conflicted.length === 0) console.log(` ${colors.dim("Already up to date")}`);
|
|
498
|
+
if (result.updated.length === 0 && result.added.length === 0 && result.conflicted.length === 0 && !hasRetirement) console.log(` ${colors.dim("Already up to date")}`);
|
|
417
499
|
console.log();
|
|
418
500
|
return;
|
|
419
501
|
}
|
|
@@ -442,14 +524,22 @@ async function main() {
|
|
|
442
524
|
if (result.selectedPlugins && result.selectedPlugins.length > 0) console.log(` Added plugins: ${result.selectedPlugins.join(", ")}`);
|
|
443
525
|
if (result.sync) {
|
|
444
526
|
const sync = result.sync;
|
|
527
|
+
const hasRetirement = (sync.retired?.length ?? 0) > 0 || (sync.retiredConflicted?.length ?? 0) > 0;
|
|
445
528
|
console.log(` ${colors.dim("Sync results:")}`);
|
|
446
|
-
if (sync.updated.length > 0 || sync.added.length > 0 || sync.conflicted.length > 0) {
|
|
529
|
+
if (sync.updated.length > 0 || sync.added.length > 0 || sync.conflicted.length > 0 || hasRetirement) {
|
|
447
530
|
console.log(` ${sync.updated.length} updated, ${sync.added.length} added, ${sync.conflicted.length} conflicted`);
|
|
448
531
|
if (sync.conflicted.length > 0) {
|
|
449
532
|
console.log(` ${colors.yellow("Conflicted")} (template applied, your changes backed up):`);
|
|
450
533
|
if (sync.backupDir) console.log(` ${colors.dim(sync.backupDir)}`);
|
|
451
534
|
for (const f of sync.conflicted) console.log(` ${colors.dim(f)}`);
|
|
452
535
|
}
|
|
536
|
+
if (hasRetirement) {
|
|
537
|
+
console.log(` ${colors.yellow("Retired")} (replaced by generated stubs — ADR 0023):`);
|
|
538
|
+
if (sync.retiredBackupDir) console.log(` ${colors.dim(sync.retiredBackupDir)}`);
|
|
539
|
+
for (const f of sync.retiredConflicted ?? []) console.log(` ${colors.dim(`${f} (backed up)`)}`);
|
|
540
|
+
for (const f of sync.retired ?? []) console.log(` ${colors.dim(f)}`);
|
|
541
|
+
printStubMigrationGuide(sync.retiredConflicted);
|
|
542
|
+
}
|
|
453
543
|
} else console.log(` ${colors.dim("Already up to date")}`);
|
|
454
544
|
}
|
|
455
545
|
if (result.migrated && result.migrated.length > 0) {
|
|
@@ -466,7 +556,7 @@ async function main() {
|
|
|
466
556
|
console.log(colors.dim(` ${result.sync.conflicted.length} file(s) had local conflicts — template version applied, backups at ${result.sync.backupDir || ".bos/sync-backup/"}.`));
|
|
467
557
|
console.log(colors.dim(` If local changes should be preserved upstream, open a PR: https://github.com/${parentRepo}${somedelta ? `/compare/${somedelta}` : ""}`));
|
|
468
558
|
}
|
|
469
|
-
console.log(colors.dim(" Load matching intent skills:
|
|
559
|
+
console.log(colors.dim(" Load matching intent skills: pnpm dlx @tanstack/intent@latest load everything-dev#..."));
|
|
470
560
|
console.log(colors.dim(" Review AGENTS.md — local updates may need merging."));
|
|
471
561
|
}
|
|
472
562
|
console.log();
|
|
@@ -545,6 +635,41 @@ async function main() {
|
|
|
545
635
|
}
|
|
546
636
|
return;
|
|
547
637
|
}
|
|
638
|
+
if (descriptor.key === "logs") {
|
|
639
|
+
const logsResult = result;
|
|
640
|
+
const opts = input;
|
|
641
|
+
for (const line of logsResult.lines) console.log(line);
|
|
642
|
+
if (logsResult.lines.length === 0) console.log(colors.dim(` No matching log lines in ${logsResult.logFile}.`));
|
|
643
|
+
if (opts.follow) {
|
|
644
|
+
if (logsResult.logFile === "unknown" || !existsSync(logsResult.logFile)) console.log(colors.dim(" No log file to follow — nothing was found on disk."));
|
|
645
|
+
else {
|
|
646
|
+
const filter = opts.service;
|
|
647
|
+
let byteOffset = 0;
|
|
648
|
+
for (const line of logsResult.lines) byteOffset += Buffer.byteLength(line, "utf8") + 1;
|
|
649
|
+
const followMatch = (line) => {
|
|
650
|
+
if (!filter) return true;
|
|
651
|
+
const source = /\] \[([^\]]+)\] \[(?:OUT|ERR)\] /.exec(line)?.[1];
|
|
652
|
+
return source === filter || source === `plugin:${filter}`;
|
|
653
|
+
};
|
|
654
|
+
const watcher = watch(logsResult.logFile, (event) => {
|
|
655
|
+
if (event !== "change") return;
|
|
656
|
+
readFile(logsResult.logFile, "utf8").then((text) => {
|
|
657
|
+
const newLines = text.slice(byteOffset).split("\n").filter((line) => line.length > 0 && followMatch(line));
|
|
658
|
+
byteOffset = Buffer.byteLength(text, "utf8");
|
|
659
|
+
for (const line of newLines) console.log(line);
|
|
660
|
+
}).catch(() => {
|
|
661
|
+
watcher.close();
|
|
662
|
+
});
|
|
663
|
+
});
|
|
664
|
+
console.log(colors.dim(" Following — Ctrl+C to stop."));
|
|
665
|
+
process.on("SIGINT", () => {
|
|
666
|
+
watcher.close();
|
|
667
|
+
process.exit(0);
|
|
668
|
+
});
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
548
673
|
if (descriptor.key === "kill") {
|
|
549
674
|
const killResult = result;
|
|
550
675
|
console.log();
|
|
@@ -618,17 +743,83 @@ async function main() {
|
|
|
618
743
|
console.log();
|
|
619
744
|
return;
|
|
620
745
|
}
|
|
746
|
+
if (descriptor.key === "typecheck") {
|
|
747
|
+
console.log();
|
|
748
|
+
if (result.status === "error") {
|
|
749
|
+
console.error(`[CLI] ${result.error || "Unknown error"}`);
|
|
750
|
+
process.exit(1);
|
|
751
|
+
}
|
|
752
|
+
const failed = result.results.filter((r) => !r.passed);
|
|
753
|
+
const passed = result.results.filter((r) => r.passed);
|
|
754
|
+
console.log(colors.cyan(frames.top(52)));
|
|
755
|
+
console.log(` ${icons.app} ${gradients.cyber("TYPECHECK")}`);
|
|
756
|
+
console.log(colors.cyan(frames.bottom(52)));
|
|
757
|
+
console.log();
|
|
758
|
+
for (const r of result.results) {
|
|
759
|
+
const icon = r.passed ? colors.green("✓") : colors.error("✗");
|
|
760
|
+
console.log(` ${icon} ${r.workspace}`);
|
|
761
|
+
}
|
|
762
|
+
if (result.skipped.length > 0) console.log(` ${colors.dim(`Skipped: ${result.skipped.join(", ")}`)}`);
|
|
763
|
+
console.log();
|
|
764
|
+
if (failed.length > 0) {
|
|
765
|
+
console.log(` ${colors.error(`${failed.length} failed`)}`);
|
|
766
|
+
for (const f of failed) if (f.error) console.log(` ${colors.dim(f.error)}`);
|
|
767
|
+
console.log();
|
|
768
|
+
process.exit(1);
|
|
769
|
+
}
|
|
770
|
+
console.log(` ${colors.green(`${passed.length} passed`)}`);
|
|
771
|
+
console.log();
|
|
772
|
+
return;
|
|
773
|
+
}
|
|
774
|
+
if (descriptor.key === "mfCheck") {
|
|
775
|
+
console.log();
|
|
776
|
+
console.log(` ${colors.dim("Host")} ${result.hostReachable ? colors.green("OK ") : colors.error("FAIL")} ${result.hostVersion ?? "unreachable"}${result.hostReason ? ` (${result.hostReason})` : ""}`);
|
|
777
|
+
for (const r of result.remotes) {
|
|
778
|
+
const tag = r.ok ? colors.green("OK ") : colors.error("FAIL");
|
|
779
|
+
console.log(` ${colors.dim(r.role.padEnd(10))} ${tag} ${r.url} pluginVersion=${r.pluginVersion ?? "?"}${r.reason ? ` ↳ ${r.reason}` : ""}`);
|
|
780
|
+
}
|
|
781
|
+
console.log();
|
|
782
|
+
if (result.status !== "ok") {
|
|
783
|
+
console.log(colors.error(" mf-compat: ✗ federation manifests NOT compatible — redeploy affected plugin(s) so pluginVersion and shared versions match host"));
|
|
784
|
+
console.log();
|
|
785
|
+
process.exit(1);
|
|
786
|
+
}
|
|
787
|
+
console.log(colors.green(" mf-compat: ✓ all federation manifests compatible"));
|
|
788
|
+
console.log();
|
|
789
|
+
return;
|
|
790
|
+
}
|
|
621
791
|
if (result?.status === "error" && descriptor.key !== "publish" && descriptor.key !== "deploy") {
|
|
622
792
|
console.error(`[CLI] ${result.error || "Unknown error"}`);
|
|
623
793
|
process.exit(1);
|
|
624
794
|
}
|
|
795
|
+
if (descriptor.key === "login") {
|
|
796
|
+
console.log();
|
|
797
|
+
console.log(colors.green(`${icons.ok} Logged in to ${result.siteUrl}`));
|
|
798
|
+
if (result.accountId) console.log(` ${colors.dim("Account:")} ${result.accountId}`);
|
|
799
|
+
if (result.expiresAt) console.log(` ${colors.dim("Expires:")} ${result.expiresAt}`);
|
|
800
|
+
if (result.warning) console.log(` ${colors.yellow("⚠")} ${result.warning}`);
|
|
801
|
+
if (result.publishKey) console.log(` ${colors.dim("Publish key:")} ${result.publishKey.publicKey} ${colors.dim(`(${result.publishKey.network}, exported to ${result.publishKey.exportedTo})`)}`);
|
|
802
|
+
console.log();
|
|
803
|
+
return;
|
|
804
|
+
}
|
|
805
|
+
if (descriptor.key === "logout") {
|
|
806
|
+
console.log();
|
|
807
|
+
console.log(colors.green(`${icons.ok} Logged out`));
|
|
808
|
+
if (result.revokedApiKey) console.log(` ${colors.dim("Revoked API key")}`);
|
|
809
|
+
if (result.removedPublishKey) console.log(` ${colors.dim("Removed exported publish key")}`);
|
|
810
|
+
if (result.warning) console.log(` ${colors.yellow("⚠")} ${result.warning}`);
|
|
811
|
+
console.log();
|
|
812
|
+
return;
|
|
813
|
+
}
|
|
625
814
|
if (descriptor.key === "keyPublish") {
|
|
626
815
|
process.stdout.write(`Generated publish key for ${result.account}\n`);
|
|
627
816
|
process.stdout.write(` Network: ${result.network}\n`);
|
|
628
817
|
process.stdout.write(` Allowance: ${result.allowance}\n`);
|
|
629
818
|
process.stdout.write(`\n`);
|
|
630
|
-
|
|
631
|
-
process.stdout.write(`
|
|
819
|
+
const secretName = result.env === "staging" ? "NEAR_TESTNET_PRIVATE_KEY" : "NEAR_PRIVATE_KEY";
|
|
820
|
+
if (!process.stdout.isTTY) process.stderr.write(` ⚠ Non-interactive stdout: this private key will be captured in any log or pipe (GitHub Actions logs persist stdout).\n`);
|
|
821
|
+
process.stdout.write(` Set this as ${secretName} in GitHub Actions or before calling publish:\n`);
|
|
822
|
+
process.stdout.write(`${secretName}=${result.privateKey}\n`);
|
|
632
823
|
}
|
|
633
824
|
if (descriptor.key === "pluginAdd") {
|
|
634
825
|
console.log();
|
|
@@ -663,8 +854,22 @@ async function main() {
|
|
|
663
854
|
console.log();
|
|
664
855
|
console.log(colors.green(`${icons.ok} Published plugin ${result.key}`));
|
|
665
856
|
if (result.path) console.log(` ${colors.dim("Path:")} ${result.path}`);
|
|
666
|
-
if (result.script) console.log(` ${colors.dim("Script:")} bun run ${result.script}`);
|
|
667
857
|
if (result.production) console.log(` ${colors.dim("Production:")} ${result.production}`);
|
|
858
|
+
if (result.version) console.log(` ${colors.dim("Version:")} ${result.version}`);
|
|
859
|
+
if (result.fingerprint) console.log(` ${colors.dim("Fingerprint:")} ${result.fingerprint}`);
|
|
860
|
+
console.log();
|
|
861
|
+
return;
|
|
862
|
+
}
|
|
863
|
+
if (descriptor.key === "registryUse") {
|
|
864
|
+
console.log();
|
|
865
|
+
if (result.status === "error") {
|
|
866
|
+
console.error(colors.error(`${icons.err} ${result.error || "Unknown error"}`));
|
|
867
|
+
process.exit(1);
|
|
868
|
+
}
|
|
869
|
+
console.log(colors.green(`${icons.ok} ${result.status === "dry-run" ? "Dry run" : "Composed"} from ${result.from}`));
|
|
870
|
+
for (const section of result.applied) console.log(` ${colors.green("+")} ${section}`);
|
|
871
|
+
if (result.configPath) console.log(` ${colors.dim("Config:")} ${result.configPath}`);
|
|
872
|
+
if (result.status === "updated") console.log(colors.dim(" Run bos types gen to refresh generated types."));
|
|
668
873
|
console.log();
|
|
669
874
|
return;
|
|
670
875
|
}
|
|
@@ -712,8 +917,47 @@ async function main() {
|
|
|
712
917
|
return;
|
|
713
918
|
}
|
|
714
919
|
}
|
|
920
|
+
if (descriptor.key === "rollback") {
|
|
921
|
+
const rollbackResult = result;
|
|
922
|
+
if (rollbackResult.status === "error") {
|
|
923
|
+
console.log();
|
|
924
|
+
console.log(colors.error(`${icons.err} Roll back failed`));
|
|
925
|
+
if (rollbackResult.error) console.log(` ${colors.dim("Error:")} ${rollbackResult.error}`);
|
|
926
|
+
if (rollbackResult.verification) {
|
|
927
|
+
console.log();
|
|
928
|
+
for (const check of rollbackResult.verification) {
|
|
929
|
+
const mark = check.ok ? colors.green(icons.ok) : colors.error(icons.err);
|
|
930
|
+
const reason = check.reason ? colors.dim(` — ${check.reason}`) : "";
|
|
931
|
+
console.log(` ${mark} ${check.slot}${reason}`);
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
console.log();
|
|
935
|
+
process.exit(1);
|
|
936
|
+
}
|
|
937
|
+
if (rollbackResult.status === "dry-run") {
|
|
938
|
+
console.log();
|
|
939
|
+
console.log(colors.cyan(`${icons.ok} Rollback dry run complete`));
|
|
940
|
+
console.log(` ${colors.dim("Registry URL:")} ${rollbackResult.registryUrl}`);
|
|
941
|
+
console.log();
|
|
942
|
+
return;
|
|
943
|
+
}
|
|
944
|
+
console.log();
|
|
945
|
+
console.log(colors.green(`${icons.ok} Rolled back`));
|
|
946
|
+
console.log(` ${colors.dim("Registry URL:")} ${rollbackResult.registryUrl}`);
|
|
947
|
+
if (rollbackResult.txHash) console.log(` ${colors.dim("Transaction:")} ${rollbackResult.txHash}`);
|
|
948
|
+
console.log();
|
|
949
|
+
return;
|
|
950
|
+
}
|
|
715
951
|
if (descriptor.key === "deploy") {
|
|
716
952
|
const deployResult = result;
|
|
953
|
+
if (deployResult.status === "list") {
|
|
954
|
+
console.log();
|
|
955
|
+
console.log(colors.cyan("Recent publishes (audit trail)"));
|
|
956
|
+
for (const entry of deployResult.history ?? []) console.log(` ${entry.blockTimestamp} ${colors.dim(`block ${entry.blockHeight}`)}${entry.publishedAt ? colors.dim(` ${entry.publishedAt}`) : ""}`);
|
|
957
|
+
console.log();
|
|
958
|
+
return;
|
|
959
|
+
}
|
|
960
|
+
if (deployResult.fingerprint) console.log(` ${colors.dim("Fingerprint:")} ${deployResult.fingerprint}`);
|
|
717
961
|
if (deployResult.status === "dry-run") {
|
|
718
962
|
console.log();
|
|
719
963
|
console.log(colors.cyan(`${icons.ok} Dry run complete`));
|
|
@@ -753,21 +997,25 @@ async function main() {
|
|
|
753
997
|
for (const w of warnings) console.log(` ${colors.dim(w)}`);
|
|
754
998
|
}
|
|
755
999
|
}
|
|
756
|
-
if (deployResult.
|
|
757
|
-
|
|
1000
|
+
if (deployResult.image) console.log(` ${colors.dim("Image:")} ${deployResult.image}`);
|
|
1001
|
+
if (deployResult.service) console.log(` ${colors.dim("Railway:")} deployed ${deployResult.service}`);
|
|
758
1002
|
console.log();
|
|
759
1003
|
return;
|
|
760
1004
|
}
|
|
761
1005
|
if (deployResult.status === "published") {
|
|
762
1006
|
console.log();
|
|
763
|
-
console.log(colors.yellow(`${icons.err} Config published, but
|
|
1007
|
+
console.log(colors.yellow(`${icons.err} Config published, but a deploy leg failed`));
|
|
764
1008
|
console.log(` ${colors.dim("Registry URL:")} ${deployResult.registryUrl}`);
|
|
765
1009
|
if (deployResult.txHash) console.log(` ${colors.dim("Transaction:")} ${deployResult.txHash}`);
|
|
766
|
-
if (deployResult.error) console.log(` ${colors.dim("
|
|
1010
|
+
if (deployResult.error) console.log(` ${colors.dim("Error:")} ${deployResult.error}`);
|
|
767
1011
|
console.log();
|
|
768
1012
|
process.exit(1);
|
|
769
1013
|
}
|
|
770
1014
|
}
|
|
1015
|
+
if (descriptor.key === "infraExport") {
|
|
1016
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
1017
|
+
return;
|
|
1018
|
+
}
|
|
771
1019
|
} catch (error) {
|
|
772
1020
|
console.error(`[CLI] ${error instanceof Error ? error.message : String(error)}`);
|
|
773
1021
|
process.exit(1);
|