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/publish.mjs
CHANGED
|
@@ -1,26 +1,112 @@
|
|
|
1
|
+
import { mergeAuthoredOverPublished } from "./merge.mjs";
|
|
1
2
|
import { buildRegistryConfigUrlForNetwork, fetchBosConfigFromFastKv, getRegistryNamespaceForNetwork } from "./fastkv.mjs";
|
|
2
3
|
import { getNetworkIdForAccount } from "./network.mjs";
|
|
3
|
-
import {
|
|
4
|
+
import { resolveSlotVersion } from "./version-manifest-resolve.mjs";
|
|
5
|
+
import { findConfigPath, isAppDescriptorPath, resolveUiRuntimeName } from "./config.mjs";
|
|
6
|
+
import { openResolution } from "./resolution/session.mjs";
|
|
7
|
+
import { pointerFingerprint, slotPins } from "./fingerprint.mjs";
|
|
8
|
+
import { applyDeployResults } from "./integrity.mjs";
|
|
9
|
+
import { formatDuration } from "./cli/timing.mjs";
|
|
4
10
|
import { padRight } from "./utils/string.mjs";
|
|
5
11
|
import { colors, icons } from "./utils/theme.mjs";
|
|
6
|
-
import { buildWorkspaceTargets, selectWorkspaceTargets } from "./build.mjs";
|
|
12
|
+
import { buildWorkspaceTargets, resolveWorkspaceTarget, selectWorkspaceTargets } from "./build.mjs";
|
|
7
13
|
import { generateCodeArtifacts } from "./code-artifacts.mjs";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
14
|
+
import { readSessionHandle } from "./auth-session.mjs";
|
|
15
|
+
import { probeStorageOrigin, resolveCdnDeployInputs } from "./cdn-deploy.mjs";
|
|
16
|
+
import { ensureDelegateKey, submitRegistryWriteDelegated } from "./delegate-signer.mjs";
|
|
17
|
+
import { verifyRollbackSnapshot } from "./rollback.mjs";
|
|
18
|
+
import { diffWorkspaceFiles, localSriMap, mergedFileIntegrity, pinsFromDeployState, pinsFromPublishedConfig, upsertDeployStatePins } from "./deploy-diff.mjs";
|
|
19
|
+
import { describeSigningStrategy, resolveSigningStrategy, submitRegistryWrite } from "./near-signer.mjs";
|
|
20
|
+
import { platformUrlDeployEntries, pluginUiUrlDeployEntries } from "./platform-deploy.mjs";
|
|
21
|
+
import { collectDistFiles, uploadBundle, uploadWorkspaceDist } from "./storage-upload.mjs";
|
|
22
|
+
import { composeWorkspaceVersionManifest, readBuildReport } from "./version-manifest-deploy.mjs";
|
|
23
|
+
import { existsSync, writeFileSync } from "node:fs";
|
|
10
24
|
import { join } from "node:path";
|
|
11
|
-
import { Effect } from "effect";
|
|
12
25
|
import process from "node:process";
|
|
26
|
+
import { hasFolderFormUi } from "every-plugin/build/ui";
|
|
13
27
|
|
|
14
28
|
//#region src/publish.ts
|
|
15
29
|
function sleep(ms) {
|
|
16
30
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
17
31
|
}
|
|
18
|
-
function
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
32
|
+
async function pinWorkspaceVersionManifest(input) {
|
|
33
|
+
if (!input.report) return void 0;
|
|
34
|
+
const versionManifest = composeWorkspaceVersionManifest({
|
|
35
|
+
report: input.report,
|
|
36
|
+
ssrReport: input.ssrReport,
|
|
37
|
+
integrityMap: input.integrityMap,
|
|
38
|
+
...input.files ? { files: input.files } : {}
|
|
39
|
+
});
|
|
40
|
+
if (!versionManifest) return void 0;
|
|
41
|
+
const manifestFile = `versions/${versionManifest.version}.json`;
|
|
42
|
+
const manifestUpload = await uploadBundle({
|
|
43
|
+
origin: input.origin,
|
|
44
|
+
apiKey: input.apiKey,
|
|
45
|
+
account: input.account,
|
|
46
|
+
gateway: input.gateway,
|
|
47
|
+
workspace: input.workspace,
|
|
48
|
+
files: [{
|
|
49
|
+
path: manifestFile,
|
|
50
|
+
bytes: new TextEncoder().encode(`${JSON.stringify(versionManifest, null, 2)}\n`)
|
|
51
|
+
}]
|
|
52
|
+
});
|
|
53
|
+
const manifestIntegrity = manifestUpload.integrity[manifestFile];
|
|
54
|
+
if (!manifestIntegrity) return void 0;
|
|
55
|
+
console.log(` ${colors.dim(`${padRight("", 28)} version manifest ${manifestFile} (SRI pinned)`)}`);
|
|
56
|
+
return {
|
|
57
|
+
file: manifestFile,
|
|
58
|
+
integrity: manifestIntegrity,
|
|
59
|
+
storage: manifestUpload.storage
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* One workspace's upload leg with skip-unchanged diffing: resolve the previous
|
|
64
|
+
* manifest's `files` map, hash the local dist, upload only new/changed files,
|
|
65
|
+
* and return the merged per-file SRI map for the version manifest. Any failure
|
|
66
|
+
* to resolve the previous map degrades to a full upload.
|
|
67
|
+
*/
|
|
68
|
+
async function diffUploadWorkspace(input) {
|
|
69
|
+
const localSri = localSriMap(input.files);
|
|
70
|
+
let uploadFiles = input.files;
|
|
71
|
+
let prevFiles;
|
|
72
|
+
if (input.previousPin) try {
|
|
73
|
+
const resolved = await resolveSlotVersion({
|
|
74
|
+
base: input.base,
|
|
75
|
+
pin: input.previousPin
|
|
76
|
+
});
|
|
77
|
+
if (resolved.files) {
|
|
78
|
+
const diff = diffWorkspaceFiles(input.files, localSri, resolved.files);
|
|
79
|
+
prevFiles = resolved.files;
|
|
80
|
+
uploadFiles = diff.upload;
|
|
81
|
+
if (diff.skipped > 0) console.log(` ${colors.dim(`${padRight(input.workspace, 28)} ${diff.skipped} unchanged file(s) — skipping (manifest diff)`)}`);
|
|
82
|
+
}
|
|
83
|
+
} catch {
|
|
84
|
+
console.log(` ${colors.dim(`${padRight(input.workspace, 28)} previous manifest unusable — uploading everything`)}`);
|
|
85
|
+
}
|
|
86
|
+
console.log(` ${padRight(input.workspace, 28)} uploading ${uploadFiles.length} of ${input.files.length} files (${formatBundleMb(uploadFiles)}) → ${input.base}`);
|
|
87
|
+
const result = uploadFiles.length > 0 ? await uploadWorkspaceDist({
|
|
88
|
+
origin: input.origin,
|
|
89
|
+
apiKey: input.apiKey,
|
|
90
|
+
account: input.account,
|
|
91
|
+
gateway: input.gateway,
|
|
92
|
+
workspace: input.workspace,
|
|
93
|
+
files: uploadFiles
|
|
94
|
+
}) : {
|
|
95
|
+
stored: 0,
|
|
96
|
+
totalBytes: 0,
|
|
97
|
+
integrity: {},
|
|
98
|
+
storage: void 0
|
|
99
|
+
};
|
|
100
|
+
return {
|
|
101
|
+
result,
|
|
102
|
+
fileIntegrity: mergedFileIntegrity(input.files, result.integrity, prevFiles),
|
|
103
|
+
uploaded: result.stored,
|
|
104
|
+
skipped: input.files.length - uploadFiles.length,
|
|
105
|
+
total: input.files.length
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function formatBundleMb(files) {
|
|
109
|
+
return `${(files.reduce((sum, file) => sum + file.bytes.byteLength, 0) / 1024 / 1024).toFixed(1)} MB`;
|
|
24
110
|
}
|
|
25
111
|
async function waitForPublishedConfig(opts) {
|
|
26
112
|
const envTimeoutMs = Number(process.env.BOS_PUBLISH_CONFIRMATION_TIMEOUT_MS);
|
|
@@ -31,7 +117,7 @@ async function waitForPublishedConfig(opts) {
|
|
|
31
117
|
let lastError;
|
|
32
118
|
while (Date.now() - startedAt < timeoutMs) {
|
|
33
119
|
try {
|
|
34
|
-
const verifiedConfig = await fetchBosConfigFromFastKv(`bos://${opts.account}/${opts.gateway}
|
|
120
|
+
const verifiedConfig = await fetchBosConfigFromFastKv(`bos://${opts.account}/${opts.gateway}`, opts.registry);
|
|
35
121
|
if (JSON.stringify(verifiedConfig) === JSON.stringify(opts.publishConfig)) return;
|
|
36
122
|
} catch (error) {
|
|
37
123
|
lastError = error;
|
|
@@ -41,45 +127,142 @@ async function waitForPublishedConfig(opts) {
|
|
|
41
127
|
const reason = lastError instanceof Error ? ` Last error: ${lastError.message}` : "";
|
|
42
128
|
throw new Error(`Timed out waiting for publish confirmation at bos://${opts.account}/${opts.gateway}.${reason}`);
|
|
43
129
|
}
|
|
44
|
-
async function
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
130
|
+
async function isConfigAlreadyPublished(opts) {
|
|
131
|
+
try {
|
|
132
|
+
const current = await fetchBosConfigFromFastKv(`bos://${opts.account}/${opts.gateway}`, opts.registry);
|
|
133
|
+
return JSON.stringify(current) === JSON.stringify(opts.publishConfig);
|
|
134
|
+
} catch {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
async function preflightPublish(input) {
|
|
139
|
+
const { configDir } = input;
|
|
140
|
+
const bosConfig = input.bosConfig;
|
|
141
|
+
const isStaging = input.env === "staging";
|
|
142
|
+
const account = isStaging ? bosConfig.staging?.account ?? bosConfig.account : bosConfig.account;
|
|
50
143
|
const gateway = isStaging ? bosConfig.staging?.domain ?? bosConfig.domain : bosConfig.domain;
|
|
51
144
|
if (!gateway) return {
|
|
52
|
-
|
|
145
|
+
kind: "error",
|
|
53
146
|
registryUrl: "",
|
|
54
|
-
error: "
|
|
147
|
+
error: "authored config must define domain to publish"
|
|
55
148
|
};
|
|
56
149
|
const network = input.network ?? getNetworkIdForAccount(account);
|
|
57
|
-
const registryUrl = buildRegistryConfigUrlForNetwork(network, account, gateway);
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
let skipped;
|
|
61
|
-
let deployResults;
|
|
62
|
-
if (dryRun) return {
|
|
63
|
-
status: "dry-run",
|
|
150
|
+
const registryUrl = buildRegistryConfigUrlForNetwork(network, account, gateway, input.registry);
|
|
151
|
+
const fail = (error) => ({
|
|
152
|
+
kind: "error",
|
|
64
153
|
registryUrl,
|
|
65
|
-
|
|
66
|
-
|
|
154
|
+
error
|
|
155
|
+
});
|
|
156
|
+
const publishAuth = bosConfig.publish?.auth;
|
|
157
|
+
if ((publishAuth === "session" || input.wallet) && !input.privateKey) {
|
|
158
|
+
const session = readSessionHandle(configDir);
|
|
159
|
+
if (!session?.credential) return fail((input.wallet ? "--wallet requires" : "the authored config sets publish.auth = \"session\", but") + " no CLI session is stored in .bos/ for this project. Run bos login to create one.");
|
|
160
|
+
if (session.credential.accountId && session.credential.accountId !== account) return fail(`The CLI session was created for ${session.credential.accountId}, but the configured account is ${account}. Gasless wallet publish relays the FastKV write under the session's NEAR account. Run bos login again under the matching account.`);
|
|
161
|
+
}
|
|
162
|
+
if (publishAuth && !input.privateKey) {
|
|
163
|
+
if (publishAuth === "custody") return fail("the authored config sets publish.auth = \"custody\", but custody publish is not implemented yet (see NEARBuilders/everything-dev#291).");
|
|
164
|
+
}
|
|
165
|
+
if (input.dryRun) return {
|
|
166
|
+
kind: "dry-run",
|
|
167
|
+
registryUrl
|
|
168
|
+
};
|
|
169
|
+
const useWallet = input.wallet === true;
|
|
170
|
+
let strategy;
|
|
171
|
+
if (useWallet) console.log(` Signing via ${colors.cyan("gasless NEP-366 delegate action (relayed by the platform relayer)")}`);
|
|
172
|
+
else try {
|
|
173
|
+
strategy = await resolveSigningStrategy({
|
|
174
|
+
privateKey: input.privateKey,
|
|
175
|
+
account,
|
|
176
|
+
network
|
|
177
|
+
});
|
|
178
|
+
console.log(` Signing via ${colors.cyan(describeSigningStrategy(strategy))}`);
|
|
179
|
+
} catch (error) {
|
|
180
|
+
return fail(error instanceof Error ? error.message : "Unknown error");
|
|
181
|
+
}
|
|
182
|
+
const session = readSessionHandle(configDir);
|
|
183
|
+
let cdnDeploy = {
|
|
184
|
+
cdnOrigin: void 0,
|
|
185
|
+
storageOrigin: "",
|
|
186
|
+
apiKey: void 0
|
|
67
187
|
};
|
|
68
|
-
|
|
69
|
-
|
|
188
|
+
if (input.build) {
|
|
189
|
+
cdnDeploy = resolveCdnDeployInputs({
|
|
190
|
+
env: process.env,
|
|
191
|
+
bosConfig,
|
|
192
|
+
session: session?.credential ?? null,
|
|
193
|
+
account,
|
|
194
|
+
gateway,
|
|
195
|
+
uploadsPlanned: input.build
|
|
196
|
+
});
|
|
197
|
+
if (cdnDeploy.error) return fail(cdnDeploy.error);
|
|
198
|
+
if (cdnDeploy.warning) console.log(colors.yellow(` ! ${cdnDeploy.warning}`));
|
|
199
|
+
if (!cdnDeploy.cdnOrigin) return fail("CDN deploy resolved no bundle origin");
|
|
200
|
+
const probeError = await probeStorageOrigin(cdnDeploy.storageOrigin);
|
|
201
|
+
if (probeError) return fail(`The bundle upload origin ${cdnDeploy.storageOrigin} is not running the platform API — ${probeError}. Check BOS_STORAGE_ORIGIN / the bos login session, then re-run.`);
|
|
202
|
+
}
|
|
203
|
+
let publishedConfig = null;
|
|
204
|
+
let publishedConfigState = "missing";
|
|
70
205
|
try {
|
|
71
|
-
|
|
206
|
+
publishedConfig = await fetchBosConfigFromFastKv(registryUrl, input.registry);
|
|
207
|
+
publishedConfigState = "fetched";
|
|
72
208
|
} catch (error) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
209
|
+
if ((error instanceof Error ? error.message : String(error)).startsWith("No config found")) console.log(colors.dim(" Note: no published config found yet (first publish) — continuing"));
|
|
210
|
+
else {
|
|
211
|
+
publishedConfigState = "unreachable";
|
|
212
|
+
console.log(colors.dim(" Note: registry read failed — continuing"));
|
|
213
|
+
}
|
|
78
214
|
}
|
|
215
|
+
return {
|
|
216
|
+
kind: "ready",
|
|
217
|
+
plan: {
|
|
218
|
+
isStaging,
|
|
219
|
+
account,
|
|
220
|
+
gateway,
|
|
221
|
+
network,
|
|
222
|
+
registryUrl,
|
|
223
|
+
registryNamespace: getRegistryNamespaceForNetwork(network, input.registry),
|
|
224
|
+
targets: selectWorkspaceTargets(input.packages, bosConfig),
|
|
225
|
+
useWallet,
|
|
226
|
+
strategy,
|
|
227
|
+
cdnOrigin: cdnDeploy.cdnOrigin,
|
|
228
|
+
storageOrigin: cdnDeploy.storageOrigin,
|
|
229
|
+
storageApiKey: cdnDeploy.apiKey,
|
|
230
|
+
publishedConfig,
|
|
231
|
+
publishedConfigState
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* The deploy-train publish core (ADR 0020, as amended): preflight
|
|
237
|
+
* (storage/CDN creds + signing) fails fast before the build, then build →
|
|
238
|
+
* upload → version-manifest pin → config write-back → FastKV publish +
|
|
239
|
+
* read-back. Scoped to one plugin via `packages`, a single-plugin redeploy
|
|
240
|
+
* ships real bytes to the storage origin — same as the full train, nothing
|
|
241
|
+
* image-native left.
|
|
242
|
+
*/
|
|
243
|
+
async function publishToFastKv(input) {
|
|
244
|
+
const preflight = await preflightPublish(input);
|
|
245
|
+
if (preflight.kind === "error") return {
|
|
246
|
+
status: "error",
|
|
247
|
+
registryUrl: preflight.registryUrl,
|
|
248
|
+
error: preflight.error
|
|
249
|
+
};
|
|
250
|
+
if (preflight.kind === "dry-run") return {
|
|
251
|
+
status: "dry-run",
|
|
252
|
+
registryUrl: preflight.registryUrl
|
|
253
|
+
};
|
|
254
|
+
const plan = preflight.plan;
|
|
255
|
+
const { isStaging, account, gateway, network, registryUrl, registryNamespace, targets, useWallet, strategy } = plan;
|
|
256
|
+
const storageOrigin = plan.storageOrigin;
|
|
257
|
+
const storageApiKey = plan.storageApiKey;
|
|
258
|
+
const { configDir } = input;
|
|
259
|
+
let bosConfig = input.bosConfig;
|
|
260
|
+
const runtimeConfig = input.runtimeConfig;
|
|
261
|
+
let built;
|
|
262
|
+
let skipped;
|
|
263
|
+
let deployResults;
|
|
264
|
+
let refreshedRawConfig = null;
|
|
79
265
|
if (input.build) {
|
|
80
|
-
console.log(" Ensuring NEAR CLI...");
|
|
81
|
-
await Effect.runPromise(ensureNearCli);
|
|
82
|
-
console.log(" NEAR CLI ready");
|
|
83
266
|
await generateCodeArtifacts(configDir, bosConfig, {
|
|
84
267
|
env: "production",
|
|
85
268
|
runtimeConfig: runtimeConfig ?? void 0
|
|
@@ -121,71 +304,324 @@ async function publishToFastKv(input) {
|
|
|
121
304
|
};
|
|
122
305
|
}
|
|
123
306
|
}
|
|
124
|
-
const refreshed = await
|
|
307
|
+
const refreshed = await openResolution({ cwd: configDir });
|
|
125
308
|
if (!refreshed?.config) return {
|
|
126
309
|
status: "error",
|
|
127
310
|
registryUrl,
|
|
128
311
|
built,
|
|
129
312
|
skipped,
|
|
130
313
|
deployResults,
|
|
131
|
-
error: "Failed to reload
|
|
314
|
+
error: "Failed to reload the config after build"
|
|
132
315
|
};
|
|
133
316
|
bosConfig = refreshed.config;
|
|
317
|
+
refreshedRawConfig = refreshed.rawConfig;
|
|
134
318
|
}
|
|
135
|
-
const
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
319
|
+
const authoredPath = findConfigPath(configDir);
|
|
320
|
+
const tsForm = authoredPath !== null && isAppDescriptorPath(authoredPath);
|
|
321
|
+
let rawConfig;
|
|
322
|
+
if (refreshedRawConfig) rawConfig = refreshedRawConfig;
|
|
323
|
+
else {
|
|
324
|
+
const opened = await openResolution({ cwd: configDir });
|
|
325
|
+
if (!opened?.rawConfig) return {
|
|
326
|
+
status: "error",
|
|
327
|
+
registryUrl,
|
|
328
|
+
built,
|
|
329
|
+
skipped,
|
|
330
|
+
deployResults,
|
|
331
|
+
error: "Failed to load the authored config for publish"
|
|
332
|
+
};
|
|
333
|
+
rawConfig = opened.rawConfig;
|
|
334
|
+
}
|
|
335
|
+
if (tsForm && !input.build && plan.publishedConfigState === "unreachable") return {
|
|
336
|
+
status: "error",
|
|
337
|
+
registryUrl,
|
|
338
|
+
built,
|
|
339
|
+
skipped,
|
|
340
|
+
deployResults,
|
|
341
|
+
error: "Cannot read the currently published config from the registry — a config-only publish would overwrite live bundle URLs. Retry when the registry is reachable, or run a full deploy."
|
|
342
|
+
};
|
|
343
|
+
let publishPayload = tsForm && !input.build ? mergeAuthoredOverPublished(plan.publishedConfig ?? {}, rawConfig) : rawConfig;
|
|
344
|
+
const urlOrigin = plan.cdnOrigin ?? `https://${gateway}`;
|
|
345
|
+
const deployTargets = (built ?? []).filter((key) => targets.includes(key));
|
|
346
|
+
const platformEntries = [];
|
|
347
|
+
const prevPins = input.fullUpload === true || process.env.BOS_FULL_UPLOAD === "1" ? {} : {
|
|
348
|
+
...pinsFromPublishedConfig(plan.publishedConfig ?? {}, account, gateway),
|
|
349
|
+
...pinsFromDeployState(configDir, account, gateway)
|
|
350
|
+
};
|
|
351
|
+
console.log();
|
|
352
|
+
console.log(` CDN deploy — uploading workspace dists to ${storageOrigin}...`);
|
|
353
|
+
for (const key of deployTargets) {
|
|
354
|
+
const ws = resolveWorkspaceTarget(key, bosConfig, runtimeConfig, configDir);
|
|
355
|
+
if (!ws) continue;
|
|
356
|
+
const distFiles = await collectDistFiles(join(ws.path, "dist"));
|
|
357
|
+
const workspaceBase = `${urlOrigin}/bundles/${account}/${gateway}/${key}/`;
|
|
358
|
+
const startedAt = Date.now();
|
|
359
|
+
let outcome;
|
|
360
|
+
try {
|
|
361
|
+
outcome = await diffUploadWorkspace({
|
|
362
|
+
origin: storageOrigin,
|
|
363
|
+
apiKey: storageApiKey,
|
|
364
|
+
account,
|
|
365
|
+
gateway,
|
|
366
|
+
workspace: key,
|
|
367
|
+
files: distFiles,
|
|
368
|
+
base: workspaceBase,
|
|
369
|
+
previousPin: prevPins[key]
|
|
370
|
+
});
|
|
371
|
+
} catch (error) {
|
|
372
|
+
return {
|
|
373
|
+
status: "error",
|
|
374
|
+
registryUrl,
|
|
375
|
+
built,
|
|
376
|
+
skipped,
|
|
377
|
+
deployResults,
|
|
378
|
+
error: error instanceof Error ? error.message : `[publish] bundle upload for ${key} failed`
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
const report = readBuildReport(join(ws.path, "dist"));
|
|
382
|
+
const ssrReport = readBuildReport(join(ws.path, "dist", "ssr"));
|
|
383
|
+
const integrity = report ? outcome.fileIntegrity[report.entry] : void 0;
|
|
384
|
+
const ssrIntegrity = ssrReport?.entry ? outcome.fileIntegrity[`ssr/${ssrReport.entry}`] : void 0;
|
|
385
|
+
const manifestPointer = await pinWorkspaceVersionManifest({
|
|
386
|
+
origin: storageOrigin,
|
|
387
|
+
apiKey: storageApiKey,
|
|
388
|
+
account,
|
|
389
|
+
gateway,
|
|
390
|
+
workspace: key,
|
|
391
|
+
report,
|
|
392
|
+
ssrReport,
|
|
393
|
+
integrityMap: outcome.fileIntegrity,
|
|
394
|
+
files: outcome.fileIntegrity
|
|
395
|
+
});
|
|
396
|
+
if (!manifestPointer) return {
|
|
397
|
+
status: "error",
|
|
398
|
+
registryUrl,
|
|
399
|
+
built,
|
|
400
|
+
skipped,
|
|
401
|
+
deployResults,
|
|
402
|
+
error: `bundle upload for ${key}: version manifest missing — the dist predates hashed entry names (rebuild required; atomic-deploys hard break)`
|
|
403
|
+
};
|
|
404
|
+
if (outcome.result.storage === "memory" || manifestPointer.storage === "memory") return {
|
|
405
|
+
status: "error",
|
|
406
|
+
registryUrl,
|
|
407
|
+
built,
|
|
408
|
+
skipped,
|
|
409
|
+
deployResults,
|
|
410
|
+
error: "The receiving instance is serving bundle storage from memory (BOS_STORAGE_* R2 credentials are not configured there) — uploaded bytes would be lost on restart. Aborting before publish."
|
|
411
|
+
};
|
|
412
|
+
console.log(` ${colors.green(icons.ok)} ${padRight(key, 28)} → ${urlOrigin}/bundles/${account}/${gateway}/${key}/ (${outcome.uploaded} uploaded, ${outcome.skipped} skipped, ${formatDuration(Date.now() - startedAt)})`);
|
|
413
|
+
platformEntries.push(...platformUrlDeployEntries({
|
|
414
|
+
origin: urlOrigin,
|
|
415
|
+
account,
|
|
416
|
+
gateway,
|
|
417
|
+
key,
|
|
418
|
+
kind: ws.kind,
|
|
419
|
+
integrity,
|
|
420
|
+
ssrIntegrity,
|
|
421
|
+
pin: manifestPointer
|
|
422
|
+
}));
|
|
423
|
+
if (hasFolderFormUi(ws.path)) {
|
|
424
|
+
const uiDistDir = join(ws.path, "ui", "dist");
|
|
425
|
+
const rawUi = ((ws.kind === "app" ? "app" : "plugins") === "app" ? rawConfig.app : rawConfig.plugins)?.[key]?.ui;
|
|
426
|
+
const uiName = resolveUiRuntimeName(rawUi, join(ws.path, "ui"), key);
|
|
427
|
+
let uiIntegrity;
|
|
428
|
+
let uiSsrIntegrity;
|
|
429
|
+
let uiManifestPointer;
|
|
430
|
+
if (existsSync(uiDistDir)) {
|
|
431
|
+
const uiDistFiles = await collectDistFiles(uiDistDir);
|
|
432
|
+
const uiStartedAt = Date.now();
|
|
433
|
+
const uiOutcome = await diffUploadWorkspace({
|
|
434
|
+
origin: storageOrigin,
|
|
435
|
+
apiKey: storageApiKey,
|
|
436
|
+
account,
|
|
437
|
+
gateway,
|
|
438
|
+
workspace: `${key}-ui`,
|
|
439
|
+
files: uiDistFiles,
|
|
440
|
+
base: `${urlOrigin}/bundles/${account}/${gateway}/${key}-ui/`,
|
|
441
|
+
previousPin: prevPins[`${key}-ui`]
|
|
442
|
+
});
|
|
443
|
+
const uiReport = readBuildReport(uiDistDir);
|
|
444
|
+
const uiSsrReport = readBuildReport(join(uiDistDir, "ssr"));
|
|
445
|
+
uiIntegrity = uiReport ? uiOutcome.fileIntegrity[uiReport.entry] : void 0;
|
|
446
|
+
uiSsrIntegrity = uiSsrReport?.entry ? uiOutcome.fileIntegrity[`ssr/${uiSsrReport.entry}`] : void 0;
|
|
447
|
+
uiManifestPointer = await pinWorkspaceVersionManifest({
|
|
448
|
+
origin: storageOrigin,
|
|
449
|
+
apiKey: storageApiKey,
|
|
450
|
+
account,
|
|
451
|
+
gateway,
|
|
452
|
+
workspace: `${key}-ui`,
|
|
453
|
+
report: uiReport,
|
|
454
|
+
ssrReport: uiSsrReport,
|
|
455
|
+
integrityMap: uiOutcome.fileIntegrity,
|
|
456
|
+
files: uiOutcome.fileIntegrity
|
|
457
|
+
});
|
|
458
|
+
if (!uiManifestPointer) return {
|
|
459
|
+
status: "error",
|
|
460
|
+
registryUrl,
|
|
461
|
+
built,
|
|
462
|
+
skipped,
|
|
463
|
+
deployResults,
|
|
464
|
+
error: `bundle upload for ${key}-ui: version manifest missing — the dist predates hashed entry names (rebuild required; atomic-deploys hard break)`
|
|
465
|
+
};
|
|
466
|
+
if (uiOutcome.result.storage === "memory" || uiManifestPointer.storage === "memory") return {
|
|
467
|
+
status: "error",
|
|
468
|
+
registryUrl,
|
|
469
|
+
built,
|
|
470
|
+
skipped,
|
|
471
|
+
deployResults,
|
|
472
|
+
error: "The receiving instance is serving bundle storage from memory (BOS_STORAGE_* R2 credentials are not configured there) — uploaded bytes would be lost on restart. Aborting before publish."
|
|
473
|
+
};
|
|
474
|
+
console.log(` ${colors.green(icons.ok)} ${padRight(`${key}-ui`, 28)} → ${urlOrigin}/bundles/${account}/${gateway}/${key}-ui/ (${uiOutcome.uploaded} uploaded, ${uiOutcome.skipped} skipped, ${formatDuration(Date.now() - uiStartedAt)})`);
|
|
475
|
+
} else console.log(` ${colors.green(icons.ok)} ${padRight(`${key}-ui`, 28)} → ${urlOrigin}/bundles/${account}/${gateway}/${key}-ui/`);
|
|
476
|
+
platformEntries.push(...pluginUiUrlDeployEntries({
|
|
477
|
+
origin: urlOrigin,
|
|
478
|
+
account,
|
|
479
|
+
gateway,
|
|
480
|
+
key,
|
|
481
|
+
kind: ws.kind,
|
|
482
|
+
integrity: uiIntegrity,
|
|
483
|
+
ssrIntegrity: uiSsrIntegrity,
|
|
484
|
+
name: uiName,
|
|
485
|
+
pin: uiManifestPointer
|
|
486
|
+
}));
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
if (platformEntries.length > 0) {
|
|
490
|
+
const merged = applyDeployResults(rawConfig, platformEntries);
|
|
491
|
+
if (!tsForm) try {
|
|
492
|
+
writeFileSync(join(configDir, "bos.config.json"), `${JSON.stringify(merged, null, 2)}\n`);
|
|
493
|
+
} catch (error) {
|
|
494
|
+
return {
|
|
495
|
+
status: "error",
|
|
496
|
+
registryUrl,
|
|
497
|
+
built,
|
|
498
|
+
skipped,
|
|
499
|
+
deployResults,
|
|
500
|
+
error: `Failed to write bundle URLs to bos.config.json: ${error instanceof Error ? error.message : error}`
|
|
501
|
+
};
|
|
502
|
+
}
|
|
503
|
+
publishPayload = merged;
|
|
504
|
+
}
|
|
505
|
+
if (isStaging) publishPayload = {
|
|
506
|
+
...publishPayload,
|
|
139
507
|
domain: gateway
|
|
140
|
-
}
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
508
|
+
};
|
|
509
|
+
const pinVerification = await verifyRollbackSnapshot(publishPayload);
|
|
510
|
+
if (pinVerification.verifiable && !pinVerification.ok) {
|
|
511
|
+
const failures = pinVerification.slots.filter((check) => !check.ok).map((check) => ` ${check.slot}: ${check.reason}`).join("\n");
|
|
512
|
+
console.error(` ${colors.error(icons.err)} Publish blocked — a pinned slot's bytes do not serve at its production URL:\n${failures}`);
|
|
513
|
+
return {
|
|
514
|
+
status: "error",
|
|
515
|
+
registryUrl,
|
|
516
|
+
built,
|
|
517
|
+
skipped,
|
|
518
|
+
deployResults,
|
|
519
|
+
error: `Publish blocked — pinned slot bytes missing or SRI mismatched:\n${failures}`
|
|
520
|
+
};
|
|
521
|
+
}
|
|
522
|
+
const registryKey = `apps/${account}/${gateway}/bos.config.json`;
|
|
523
|
+
const publishedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
524
|
+
const fingerprint = pointerFingerprint(publishPayload);
|
|
525
|
+
const publishSlotPins = slotPins(publishPayload);
|
|
526
|
+
const registryEntries = { [registryKey]: JSON.stringify(publishPayload) };
|
|
527
|
+
const manifestKey = `apps/${account}/${gateway}/manifests/${publishedAt.replace(/[:.]/g, "-")}.json`;
|
|
528
|
+
registryEntries[manifestKey] = JSON.stringify({
|
|
529
|
+
account,
|
|
530
|
+
gateway,
|
|
531
|
+
network,
|
|
532
|
+
publishedAt,
|
|
533
|
+
registryUrl
|
|
534
|
+
});
|
|
144
535
|
console.log();
|
|
145
536
|
console.log(" Publishing to:");
|
|
146
537
|
console.log(` ${colors.cyan(registryUrl)}`);
|
|
538
|
+
console.log(` ${colors.dim("Fingerprint:")} ${fingerprint}`);
|
|
539
|
+
for (const [slot, pin] of Object.entries(publishSlotPins)) {
|
|
540
|
+
console.log(` ${colors.dim(`${slot}:`)}`);
|
|
541
|
+
console.log(` ${pin}`);
|
|
542
|
+
}
|
|
543
|
+
console.log(` ${colors.dim(`+ per-deploy manifest ${manifestKey.split("/").pop()} (audit trail)`)}`);
|
|
544
|
+
const persistDeployState = () => {
|
|
545
|
+
try {
|
|
546
|
+
const pins = pinsFromPublishedConfig(publishPayload, account, gateway);
|
|
547
|
+
if (Object.keys(pins).length > 0) upsertDeployStatePins(configDir, account, gateway, pins);
|
|
548
|
+
} catch (error) {
|
|
549
|
+
console.log(colors.dim(` Note: could not update .bos/deploy-state.json — ${error instanceof Error ? error.message : String(error)}`));
|
|
550
|
+
}
|
|
551
|
+
};
|
|
147
552
|
try {
|
|
148
|
-
|
|
553
|
+
if (await isConfigAlreadyPublished({
|
|
554
|
+
account,
|
|
555
|
+
gateway,
|
|
556
|
+
publishConfig: publishPayload,
|
|
557
|
+
registry: input.registry
|
|
558
|
+
})) {
|
|
559
|
+
console.log(" Already up to date — skipping transaction");
|
|
560
|
+
persistDeployState();
|
|
561
|
+
return {
|
|
562
|
+
status: "published",
|
|
563
|
+
registryUrl,
|
|
564
|
+
built,
|
|
565
|
+
skipped,
|
|
566
|
+
deployResults,
|
|
567
|
+
publishConfig: publishPayload
|
|
568
|
+
};
|
|
569
|
+
}
|
|
149
570
|
console.log(` Submitting transaction on ${network}...`);
|
|
150
|
-
|
|
151
|
-
|
|
571
|
+
let result;
|
|
572
|
+
if (useWallet) {
|
|
573
|
+
const credential = readSessionHandle(configDir)?.credential;
|
|
574
|
+
if (!credential || credential.accountId !== account) return {
|
|
575
|
+
status: "error",
|
|
576
|
+
registryUrl,
|
|
577
|
+
error: `--wallet requires a CLI session under ${account}. Run bos login first.`
|
|
578
|
+
};
|
|
579
|
+
const record = await ensureDelegateKey({
|
|
580
|
+
configDir,
|
|
581
|
+
account,
|
|
582
|
+
contract: registryNamespace,
|
|
583
|
+
network,
|
|
584
|
+
siteUrl: credential.siteUrl
|
|
585
|
+
});
|
|
586
|
+
result = await submitRegistryWriteDelegated({
|
|
152
587
|
account,
|
|
153
|
-
contract:
|
|
588
|
+
contract: registryNamespace,
|
|
589
|
+
network,
|
|
590
|
+
args: registryEntries,
|
|
591
|
+
delegatePrivateKey: record.privateKey,
|
|
592
|
+
relayEndpoint: `${credential.siteUrl}/api/auth/near/relay`,
|
|
593
|
+
apiKey: credential.apiKey
|
|
594
|
+
});
|
|
595
|
+
} else {
|
|
596
|
+
if (!strategy) return {
|
|
597
|
+
status: "error",
|
|
598
|
+
registryUrl,
|
|
599
|
+
error: "non-wallet publish requires a resolved signing strategy"
|
|
600
|
+
};
|
|
601
|
+
result = await submitRegistryWrite({
|
|
602
|
+
account,
|
|
603
|
+
contract: registryNamespace,
|
|
154
604
|
method: "__fastdata_kv",
|
|
155
|
-
|
|
605
|
+
args: registryEntries,
|
|
156
606
|
network,
|
|
157
|
-
privateKey:
|
|
158
|
-
|
|
159
|
-
deposit: "0NEAR",
|
|
160
|
-
verbose: input.verbose
|
|
161
|
-
}, signingMode));
|
|
162
|
-
txHash = tx.txHash;
|
|
163
|
-
if (txHash && !tx.output?.includes("CodeDoesNotExist")) console.log(` Transaction submitted: ${colors.dim(txHash)}`);
|
|
164
|
-
} catch (error) {
|
|
165
|
-
console.log(colors.dim(" Transaction reported an error — verifying publish..."));
|
|
166
|
-
try {
|
|
167
|
-
await waitForPublishedConfig({
|
|
168
|
-
account,
|
|
169
|
-
gateway,
|
|
170
|
-
publishConfig: publishPayload,
|
|
171
|
-
timeoutMs: 3e4,
|
|
172
|
-
intervalMs: 2e3
|
|
173
|
-
});
|
|
174
|
-
txHash = extractTransactionHash(error);
|
|
175
|
-
} catch {
|
|
176
|
-
throw error;
|
|
177
|
-
}
|
|
607
|
+
privateKey: input.privateKey
|
|
608
|
+
}, strategy);
|
|
178
609
|
}
|
|
610
|
+
if (result.txHash) console.log(` Transaction submitted: ${colors.dim(result.txHash)}`);
|
|
179
611
|
console.log(" Waiting for publish confirmation...");
|
|
180
612
|
await waitForPublishedConfig({
|
|
181
613
|
account,
|
|
182
614
|
gateway,
|
|
183
|
-
publishConfig: publishPayload
|
|
615
|
+
publishConfig: publishPayload,
|
|
616
|
+
registry: input.registry
|
|
184
617
|
});
|
|
618
|
+
persistDeployState();
|
|
185
619
|
return {
|
|
186
620
|
status: "published",
|
|
187
621
|
registryUrl,
|
|
188
|
-
txHash,
|
|
622
|
+
txHash: result.txHash,
|
|
623
|
+
fingerprint,
|
|
624
|
+
slotPins: publishSlotPins,
|
|
189
625
|
built,
|
|
190
626
|
skipped,
|
|
191
627
|
deployResults,
|
|
@@ -212,10 +648,7 @@ function formatNearError(error) {
|
|
|
212
648
|
if (message.includes("timeout") || message.includes("Timeout")) return `Transaction timed out. Check NEAR network status.\n Original: ${message}`;
|
|
213
649
|
return message;
|
|
214
650
|
}
|
|
215
|
-
function extractTransactionHash(error) {
|
|
216
|
-
return (error instanceof Error ? error.message : String(error)).match(/Transaction ID:\s*([A-Za-z0-9]+)/i)?.[1];
|
|
217
|
-
}
|
|
218
651
|
|
|
219
652
|
//#endregion
|
|
220
|
-
export {
|
|
653
|
+
export { isConfigAlreadyPublished, preflightPublish, publishToFastKv, waitForPublishedConfig };
|
|
221
654
|
//# sourceMappingURL=publish.mjs.map
|