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
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { JsonObjectSchema, SharedDepMapSchema, SlotPinSchema } from "../types.mjs";
|
|
2
|
+
import * as z$1 from "zod";
|
|
3
|
+
|
|
4
|
+
//#region src/descriptor/schema.ts
|
|
5
|
+
/** Pipeline-owned fields — never authored; injected from the deploy map. */
|
|
6
|
+
const PipelineFieldsSchema = z$1.object({
|
|
7
|
+
production: z$1.string().optional(),
|
|
8
|
+
integrity: z$1.string().optional(),
|
|
9
|
+
ssr: z$1.string().optional(),
|
|
10
|
+
ssrIntegrity: z$1.string().optional(),
|
|
11
|
+
pin: SlotPinSchema.optional()
|
|
12
|
+
});
|
|
13
|
+
const DevelopmentRefSchema = z$1.object({
|
|
14
|
+
/** local workspace directory, relative to the App root — emitted as `local:<path>` */
|
|
15
|
+
path: z$1.string().optional(),
|
|
16
|
+
/** explicit development ref override (e.g. a remote dev URL) */
|
|
17
|
+
development: z$1.string().optional()
|
|
18
|
+
});
|
|
19
|
+
/** An attached App (today's `plugins.<id>` / `app.auth` entries). */
|
|
20
|
+
const AttachmentRefSchema = DevelopmentRefSchema.extend({
|
|
21
|
+
name: z$1.string().optional(),
|
|
22
|
+
/** published module reference (bos://…) consumed by resolution */
|
|
23
|
+
extends: z$1.string().optional(),
|
|
24
|
+
proxy: z$1.string().optional(),
|
|
25
|
+
variables: JsonObjectSchema.optional(),
|
|
26
|
+
secrets: z$1.array(z$1.string()).optional(),
|
|
27
|
+
routes: z$1.array(z$1.string()).optional(),
|
|
28
|
+
shared: SharedDepMapSchema.optional(),
|
|
29
|
+
connectSrc: z$1.array(z$1.string()).optional(),
|
|
30
|
+
dependsOn: z$1.array(z$1.string()).optional(),
|
|
31
|
+
version: z$1.string().optional(),
|
|
32
|
+
ui: z$1.object({
|
|
33
|
+
name: z$1.string().optional(),
|
|
34
|
+
path: z$1.string().optional(),
|
|
35
|
+
development: z$1.string().optional(),
|
|
36
|
+
integrity: z$1.string().optional(),
|
|
37
|
+
pin: SlotPinSchema.optional()
|
|
38
|
+
}).strict().optional()
|
|
39
|
+
});
|
|
40
|
+
/** The `app.api` slot. */
|
|
41
|
+
const ApiRefSchema = DevelopmentRefSchema.extend({
|
|
42
|
+
proxy: z$1.string().optional(),
|
|
43
|
+
variables: JsonObjectSchema.optional(),
|
|
44
|
+
secrets: z$1.array(z$1.string()).optional(),
|
|
45
|
+
routes: z$1.array(z$1.string()).optional(),
|
|
46
|
+
shared: SharedDepMapSchema.optional(),
|
|
47
|
+
dependsOn: z$1.array(z$1.string()).optional()
|
|
48
|
+
}).strict();
|
|
49
|
+
/** The `app.ui` slot — pipeline fields (production/integrity/ssr) come from the deploy map. */
|
|
50
|
+
const UiRefSchema = DevelopmentRefSchema.strict();
|
|
51
|
+
/** The `app.host` slot — production/integrity come from the deploy map. */
|
|
52
|
+
const HostRefSchema = DevelopmentRefSchema.extend({ secrets: z$1.array(z$1.string()).optional() }).strict();
|
|
53
|
+
/**
|
|
54
|
+
* The authored App — pure data, the boot input. Local paths only (dev
|
|
55
|
+
* authoring shape); deployment resolves them through the deploy map.
|
|
56
|
+
*/
|
|
57
|
+
const AppDescriptorSchema = z$1.object({
|
|
58
|
+
name: z$1.string(),
|
|
59
|
+
/**
|
|
60
|
+
* The base App this App inherits (child-wins): a registry name
|
|
61
|
+
* (`"everything.dev"`) or an imported App descriptor value — an imported
|
|
62
|
+
* parent is an inlined parent (same-repo composition; the resolved shape
|
|
63
|
+
* is identical to a fetched one). The value is validated and depth-guarded
|
|
64
|
+
* at resolution (flattenParent re-parses it); chains deeper than one
|
|
65
|
+
* level are deferred (wayfinder ticket 08).
|
|
66
|
+
*/
|
|
67
|
+
extends: z$1.union([z$1.string(), z$1.record(z$1.string(), z$1.unknown())]).optional(),
|
|
68
|
+
account: z$1.string().optional(),
|
|
69
|
+
domain: z$1.string().optional(),
|
|
70
|
+
title: z$1.string().optional(),
|
|
71
|
+
description: z$1.string().optional(),
|
|
72
|
+
repository: z$1.string().optional(),
|
|
73
|
+
testnet: z$1.string().optional(),
|
|
74
|
+
staging: z$1.object({
|
|
75
|
+
domain: z$1.string(),
|
|
76
|
+
account: z$1.string().optional()
|
|
77
|
+
}).strict().optional(),
|
|
78
|
+
/** Authoring-only: the starter level this child was scaffolded with.
|
|
79
|
+
* Stripped from resolved configs — publish canonicalization never
|
|
80
|
+
* carries it. */
|
|
81
|
+
starter: z$1.enum(["simple", "advanced"]).optional(),
|
|
82
|
+
ci: z$1.object({
|
|
83
|
+
image: z$1.string().optional(),
|
|
84
|
+
railway: z$1.object({ service: z$1.string() }).strict().optional()
|
|
85
|
+
}).strict().optional(),
|
|
86
|
+
cdn: z$1.object({ origin: z$1.string().optional() }).strict().optional(),
|
|
87
|
+
publish: z$1.object({ auth: z$1.enum([
|
|
88
|
+
"session",
|
|
89
|
+
"key",
|
|
90
|
+
"custody"
|
|
91
|
+
]).optional() }).strict().optional(),
|
|
92
|
+
host: HostRefSchema.optional(),
|
|
93
|
+
api: ApiRefSchema.optional(),
|
|
94
|
+
ui: UiRefSchema.optional(),
|
|
95
|
+
/** attachment landing in the `app.auth` slot */
|
|
96
|
+
auth: AttachmentRefSchema.optional(),
|
|
97
|
+
plugins: z$1.record(z$1.string(), AttachmentRefSchema).optional()
|
|
98
|
+
}).strict();
|
|
99
|
+
|
|
100
|
+
//#endregion
|
|
101
|
+
export { ApiRefSchema, AppDescriptorSchema, AttachmentRefSchema, HostRefSchema, PipelineFieldsSchema, UiRefSchema };
|
|
102
|
+
//# sourceMappingURL=schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.mjs","names":["z"],"sources":["../../src/descriptor/schema.ts"],"sourcesContent":["import * as z from \"zod\";\nimport { JsonObjectSchema, SharedDepMapSchema, SlotPinSchema } from \"../types\";\n\n/** Pipeline-owned fields — never authored; injected from the deploy map. */\nexport const PipelineFieldsSchema = z.object({\n production: z.string().optional(),\n integrity: z.string().optional(),\n ssr: z.string().optional(),\n ssrIntegrity: z.string().optional(),\n pin: SlotPinSchema.optional(),\n});\nexport type PipelineFields = z.infer<typeof PipelineFieldsSchema>;\n\nconst DevelopmentRefSchema = z.object({\n /** local workspace directory, relative to the App root — emitted as `local:<path>` */\n path: z.string().optional(),\n /** explicit development ref override (e.g. a remote dev URL) */\n development: z.string().optional(),\n});\n\n/** An attached App (today's `plugins.<id>` / `app.auth` entries). */\nexport const AttachmentRefSchema = DevelopmentRefSchema.extend({\n name: z.string().optional(),\n /** published module reference (bos://…) consumed by resolution */\n extends: z.string().optional(),\n proxy: z.string().optional(),\n variables: JsonObjectSchema.optional(),\n secrets: z.array(z.string()).optional(),\n routes: z.array(z.string()).optional(),\n shared: SharedDepMapSchema.optional(),\n connectSrc: z.array(z.string()).optional(),\n dependsOn: z.array(z.string()).optional(),\n version: z.string().optional(),\n ui: z\n .object({\n name: z.string().optional(),\n path: z.string().optional(),\n development: z.string().optional(),\n integrity: z.string().optional(),\n pin: SlotPinSchema.optional(),\n })\n .strict()\n .optional(),\n});\nexport type AttachmentRef = z.infer<typeof AttachmentRefSchema>;\nexport type AttachmentInput = AttachmentRef;\n\n/** The `app.api` slot. */\nexport const ApiRefSchema = DevelopmentRefSchema.extend({\n proxy: z.string().optional(),\n variables: JsonObjectSchema.optional(),\n secrets: z.array(z.string()).optional(),\n routes: z.array(z.string()).optional(),\n shared: SharedDepMapSchema.optional(),\n dependsOn: z.array(z.string()).optional(),\n}).strict();\nexport type ApiRef = z.infer<typeof ApiRefSchema>;\nexport type ApiInput = ApiRef;\n\n/** The `app.ui` slot — pipeline fields (production/integrity/ssr) come from the deploy map. */\nexport const UiRefSchema = DevelopmentRefSchema.strict();\nexport type UiRef = z.infer<typeof UiRefSchema>;\nexport type UiInput = UiRef;\n\n/** The `app.host` slot — production/integrity come from the deploy map. */\nexport const HostRefSchema = DevelopmentRefSchema.extend({\n secrets: z.array(z.string()).optional(),\n}).strict();\nexport type HostRef = z.infer<typeof HostRefSchema>;\nexport type HostInput = HostRef;\n\n/**\n * The authored App — pure data, the boot input. Local paths only (dev\n * authoring shape); deployment resolves them through the deploy map.\n */\nexport const AppDescriptorSchema = z\n .object({\n name: z.string(),\n /**\n * The base App this App inherits (child-wins): a registry name\n * (`\"everything.dev\"`) or an imported App descriptor value — an imported\n * parent is an inlined parent (same-repo composition; the resolved shape\n * is identical to a fetched one). The value is validated and depth-guarded\n * at resolution (flattenParent re-parses it); chains deeper than one\n * level are deferred (wayfinder ticket 08).\n */\n extends: z.union([z.string(), z.record(z.string(), z.unknown())]).optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n title: z.string().optional(),\n description: z.string().optional(),\n repository: z.string().optional(),\n testnet: z.string().optional(),\n staging: z\n .object({\n domain: z.string(),\n account: z.string().optional(),\n })\n .strict()\n .optional(),\n /** Authoring-only: the starter level this child was scaffolded with.\n * Stripped from resolved configs — publish canonicalization never\n * carries it. */\n starter: z.enum([\"simple\", \"advanced\"]).optional(),\n ci: z\n .object({\n image: z.string().optional(),\n railway: z\n .object({\n service: z.string(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional(),\n cdn: z\n .object({\n origin: z.string().optional(),\n })\n .strict()\n .optional(),\n publish: z\n .object({\n auth: z.enum([\"session\", \"key\", \"custody\"]).optional(),\n })\n .strict()\n .optional(),\n host: HostRefSchema.optional(),\n api: ApiRefSchema.optional(),\n ui: UiRefSchema.optional(),\n /** attachment landing in the `app.auth` slot */\n auth: AttachmentRefSchema.optional(),\n plugins: z.record(z.string(), AttachmentRefSchema).optional(),\n })\n .strict();\nexport type AppDescriptor = z.infer<typeof AppDescriptorSchema>;\nexport type AppInput = AppDescriptor;\n\nexport type AppRegistry = Record<string, AppInput>;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const require_resolve = require('./resolve.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/descriptor/serialize.ts
|
|
4
|
+
const FIELD_COMMENTS = {
|
|
5
|
+
extends: "The base runtime this app extends — inherit the platform, override only what you change.",
|
|
6
|
+
account: "The NEAR account this app publishes under.",
|
|
7
|
+
domain: "The gateway: FastKV lookup key and public ingress for this runtime.",
|
|
8
|
+
title: "Human-readable runtime title (surfaced by the UI).",
|
|
9
|
+
description: "Human-readable runtime description.",
|
|
10
|
+
repository: "GitHub repository tarball source used by `bos init`/`bos sync` templates.",
|
|
11
|
+
testnet: "Testnet identity for this runtime.",
|
|
12
|
+
staging: "Staging environment identity.",
|
|
13
|
+
starter: "Authoring-only: the starter level this child was scaffolded with (simple | advanced).",
|
|
14
|
+
ci: "CI settings: runtime image name, Railway service.",
|
|
15
|
+
cdn: "CDN origin serving this runtime's built bundles.",
|
|
16
|
+
publish: "Publish settings: signing mode (session | key | custody).",
|
|
17
|
+
host: "Local host workspace override.",
|
|
18
|
+
api: "Local API workspace override.",
|
|
19
|
+
ui: "Local UI workspace override.",
|
|
20
|
+
auth: "Auth attachment — lands in the app.auth slot (e.g. the Better-Auth + NEAR SIWN plugin).",
|
|
21
|
+
plugins: "Attached plugins, keyed by registry key. `path` = local workspace, `extends` = published module."
|
|
22
|
+
};
|
|
23
|
+
/** The authored `bos.app.ts` source for a personalized child config. */
|
|
24
|
+
function serializeAppDescriptorSource(input) {
|
|
25
|
+
const descriptor = require_resolve.configInputToDescriptor(input);
|
|
26
|
+
const blocks = [];
|
|
27
|
+
for (const [key, value] of Object.entries(descriptor)) {
|
|
28
|
+
const comment = FIELD_COMMENTS[key];
|
|
29
|
+
const body = JSON.stringify({ [key]: value }, null, 2);
|
|
30
|
+
const block = [...comment ? [` // ${comment}`] : [], ...body.split("\n").slice(1, -1)];
|
|
31
|
+
blocks.push(block.join("\n"));
|
|
32
|
+
}
|
|
33
|
+
return `import { App } from "everything-dev/descriptor";
|
|
34
|
+
|
|
35
|
+
// Authored app descriptor. The published config is canonicalized to JSON
|
|
36
|
+
// from this file; dev-only overrides live in bos.dev.ts (never published).
|
|
37
|
+
export default App({
|
|
38
|
+
${blocks.join(",\n")},
|
|
39
|
+
});
|
|
40
|
+
`;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.serializeAppDescriptorSource = serializeAppDescriptorSource;
|
|
45
|
+
//# sourceMappingURL=serialize.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.cjs","names":["configInputToDescriptor"],"sources":["../../src/descriptor/serialize.ts"],"sourcesContent":["/**\n * The authored `bos.app.ts` source emitter — the scaffold surface of the\n * descriptor module. The descriptor is pure data (`toConfigInput` and its\n * inverse live in `./resolve`), so the scaffold emits the personalized\n * descriptor as a literal inside the `App()` call; publish/sync still\n * canonicalize the resolved config to JSON for FastKV.\n *\n * Each top-level descriptor field gets a one-line doc comment from\n * `FIELD_COMMENTS`; when a field is added to the descriptor schema, add its\n * comment line in the same commit. Fields without a comment entry are\n * emitted bare.\n */\n\nimport type { BosConfigInput } from \"../types\";\nimport { configInputToDescriptor } from \"./resolve\";\n\nconst FIELD_COMMENTS: Record<string, string> = {\n extends:\n \"The base runtime this app extends — inherit the platform, override only what you change.\",\n account: \"The NEAR account this app publishes under.\",\n domain: \"The gateway: FastKV lookup key and public ingress for this runtime.\",\n title: \"Human-readable runtime title (surfaced by the UI).\",\n description: \"Human-readable runtime description.\",\n repository: \"GitHub repository tarball source used by `bos init`/`bos sync` templates.\",\n testnet: \"Testnet identity for this runtime.\",\n staging: \"Staging environment identity.\",\n starter: \"Authoring-only: the starter level this child was scaffolded with (simple | advanced).\",\n ci: \"CI settings: runtime image name, Railway service.\",\n cdn: \"CDN origin serving this runtime's built bundles.\",\n publish: \"Publish settings: signing mode (session | key | custody).\",\n host: \"Local host workspace override.\",\n api: \"Local API workspace override.\",\n ui: \"Local UI workspace override.\",\n auth: \"Auth attachment — lands in the app.auth slot (e.g. the Better-Auth + NEAR SIWN plugin).\",\n plugins:\n \"Attached plugins, keyed by registry key. `path` = local workspace, `extends` = published module.\",\n};\n\n/** The authored `bos.app.ts` source for a personalized child config. */\nexport function serializeAppDescriptorSource(input: BosConfigInput): string {\n const descriptor = configInputToDescriptor(input);\n const blocks: string[] = [];\n for (const [key, value] of Object.entries(descriptor)) {\n const comment = FIELD_COMMENTS[key];\n const body = JSON.stringify({ [key]: value }, null, 2);\n const block = [...(comment ? [` // ${comment}`] : []), ...body.split(\"\\n\").slice(1, -1)];\n blocks.push(block.join(\"\\n\"));\n }\n return `import { App } from \"everything-dev/descriptor\";\n\n// Authored app descriptor. The published config is canonicalized to JSON\n// from this file; dev-only overrides live in bos.dev.ts (never published).\nexport default App({\n${blocks.join(\",\\n\")},\n});\n`;\n}\n"],"mappings":";;;AAgBA,MAAM,iBAAyC;CAC7C,SACE;CACF,SAAS;CACT,QAAQ;CACR,OAAO;CACP,aAAa;CACb,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS;CACT,IAAI;CACJ,KAAK;CACL,SAAS;CACT,MAAM;CACN,KAAK;CACL,IAAI;CACJ,MAAM;CACN,SACE;AACJ;;AAGA,SAAgB,6BAA6B,OAA+B;CAC1E,MAAM,aAAaA,wCAAwB,KAAK;CAChD,MAAM,SAAmB,CAAC;CAC1B,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,UAAU,GAAG;EACrD,MAAM,UAAU,eAAe;EAC/B,MAAM,OAAO,KAAK,UAAU,GAAG,MAAM,MAAM,GAAG,MAAM,CAAC;EACrD,MAAM,QAAQ,CAAC,GAAI,UAAU,CAAC,QAAQ,SAAS,IAAI,CAAC,GAAI,GAAG,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;EACxF,OAAO,KAAK,MAAM,KAAK,IAAI,CAAC;CAC9B;CACA,OAAO;;;;;EAKP,OAAO,KAAK,KAAK,EAAE;;;AAGrB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BosConfigInput } from "../types.cjs";
|
|
2
|
+
//#region src/descriptor/serialize.d.ts
|
|
3
|
+
/** The authored `bos.app.ts` source for a personalized child config. */
|
|
4
|
+
declare function serializeAppDescriptorSource(input: BosConfigInput): string;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { serializeAppDescriptorSource };
|
|
7
|
+
//# sourceMappingURL=serialize.d.cts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BosConfigInput } from "../types.mjs";
|
|
2
|
+
//#region src/descriptor/serialize.d.ts
|
|
3
|
+
/** The authored `bos.app.ts` source for a personalized child config. */
|
|
4
|
+
declare function serializeAppDescriptorSource(input: BosConfigInput): string;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { serializeAppDescriptorSource };
|
|
7
|
+
//# sourceMappingURL=serialize.d.mts.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { configInputToDescriptor } from "./resolve.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/descriptor/serialize.ts
|
|
4
|
+
const FIELD_COMMENTS = {
|
|
5
|
+
extends: "The base runtime this app extends — inherit the platform, override only what you change.",
|
|
6
|
+
account: "The NEAR account this app publishes under.",
|
|
7
|
+
domain: "The gateway: FastKV lookup key and public ingress for this runtime.",
|
|
8
|
+
title: "Human-readable runtime title (surfaced by the UI).",
|
|
9
|
+
description: "Human-readable runtime description.",
|
|
10
|
+
repository: "GitHub repository tarball source used by `bos init`/`bos sync` templates.",
|
|
11
|
+
testnet: "Testnet identity for this runtime.",
|
|
12
|
+
staging: "Staging environment identity.",
|
|
13
|
+
starter: "Authoring-only: the starter level this child was scaffolded with (simple | advanced).",
|
|
14
|
+
ci: "CI settings: runtime image name, Railway service.",
|
|
15
|
+
cdn: "CDN origin serving this runtime's built bundles.",
|
|
16
|
+
publish: "Publish settings: signing mode (session | key | custody).",
|
|
17
|
+
host: "Local host workspace override.",
|
|
18
|
+
api: "Local API workspace override.",
|
|
19
|
+
ui: "Local UI workspace override.",
|
|
20
|
+
auth: "Auth attachment — lands in the app.auth slot (e.g. the Better-Auth + NEAR SIWN plugin).",
|
|
21
|
+
plugins: "Attached plugins, keyed by registry key. `path` = local workspace, `extends` = published module."
|
|
22
|
+
};
|
|
23
|
+
/** The authored `bos.app.ts` source for a personalized child config. */
|
|
24
|
+
function serializeAppDescriptorSource(input) {
|
|
25
|
+
const descriptor = configInputToDescriptor(input);
|
|
26
|
+
const blocks = [];
|
|
27
|
+
for (const [key, value] of Object.entries(descriptor)) {
|
|
28
|
+
const comment = FIELD_COMMENTS[key];
|
|
29
|
+
const body = JSON.stringify({ [key]: value }, null, 2);
|
|
30
|
+
const block = [...comment ? [` // ${comment}`] : [], ...body.split("\n").slice(1, -1)];
|
|
31
|
+
blocks.push(block.join("\n"));
|
|
32
|
+
}
|
|
33
|
+
return `import { App } from "everything-dev/descriptor";
|
|
34
|
+
|
|
35
|
+
// Authored app descriptor. The published config is canonicalized to JSON
|
|
36
|
+
// from this file; dev-only overrides live in bos.dev.ts (never published).
|
|
37
|
+
export default App({
|
|
38
|
+
${blocks.join(",\n")},
|
|
39
|
+
});
|
|
40
|
+
`;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
export { serializeAppDescriptorSource };
|
|
45
|
+
//# sourceMappingURL=serialize.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.mjs","names":[],"sources":["../../src/descriptor/serialize.ts"],"sourcesContent":["/**\n * The authored `bos.app.ts` source emitter — the scaffold surface of the\n * descriptor module. The descriptor is pure data (`toConfigInput` and its\n * inverse live in `./resolve`), so the scaffold emits the personalized\n * descriptor as a literal inside the `App()` call; publish/sync still\n * canonicalize the resolved config to JSON for FastKV.\n *\n * Each top-level descriptor field gets a one-line doc comment from\n * `FIELD_COMMENTS`; when a field is added to the descriptor schema, add its\n * comment line in the same commit. Fields without a comment entry are\n * emitted bare.\n */\n\nimport type { BosConfigInput } from \"../types\";\nimport { configInputToDescriptor } from \"./resolve\";\n\nconst FIELD_COMMENTS: Record<string, string> = {\n extends:\n \"The base runtime this app extends — inherit the platform, override only what you change.\",\n account: \"The NEAR account this app publishes under.\",\n domain: \"The gateway: FastKV lookup key and public ingress for this runtime.\",\n title: \"Human-readable runtime title (surfaced by the UI).\",\n description: \"Human-readable runtime description.\",\n repository: \"GitHub repository tarball source used by `bos init`/`bos sync` templates.\",\n testnet: \"Testnet identity for this runtime.\",\n staging: \"Staging environment identity.\",\n starter: \"Authoring-only: the starter level this child was scaffolded with (simple | advanced).\",\n ci: \"CI settings: runtime image name, Railway service.\",\n cdn: \"CDN origin serving this runtime's built bundles.\",\n publish: \"Publish settings: signing mode (session | key | custody).\",\n host: \"Local host workspace override.\",\n api: \"Local API workspace override.\",\n ui: \"Local UI workspace override.\",\n auth: \"Auth attachment — lands in the app.auth slot (e.g. the Better-Auth + NEAR SIWN plugin).\",\n plugins:\n \"Attached plugins, keyed by registry key. `path` = local workspace, `extends` = published module.\",\n};\n\n/** The authored `bos.app.ts` source for a personalized child config. */\nexport function serializeAppDescriptorSource(input: BosConfigInput): string {\n const descriptor = configInputToDescriptor(input);\n const blocks: string[] = [];\n for (const [key, value] of Object.entries(descriptor)) {\n const comment = FIELD_COMMENTS[key];\n const body = JSON.stringify({ [key]: value }, null, 2);\n const block = [...(comment ? [` // ${comment}`] : []), ...body.split(\"\\n\").slice(1, -1)];\n blocks.push(block.join(\"\\n\"));\n }\n return `import { App } from \"everything-dev/descriptor\";\n\n// Authored app descriptor. The published config is canonicalized to JSON\n// from this file; dev-only overrides live in bos.dev.ts (never published).\nexport default App({\n${blocks.join(\",\\n\")},\n});\n`;\n}\n"],"mappings":";;;AAgBA,MAAM,iBAAyC;CAC7C,SACE;CACF,SAAS;CACT,QAAQ;CACR,OAAO;CACP,aAAa;CACb,YAAY;CACZ,SAAS;CACT,SAAS;CACT,SAAS;CACT,IAAI;CACJ,KAAK;CACL,SAAS;CACT,MAAM;CACN,KAAK;CACL,IAAI;CACJ,MAAM;CACN,SACE;AACJ;;AAGA,SAAgB,6BAA6B,OAA+B;CAC1E,MAAM,aAAa,wBAAwB,KAAK;CAChD,MAAM,SAAmB,CAAC;CAC1B,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,UAAU,GAAG;EACrD,MAAM,UAAU,eAAe;EAC/B,MAAM,OAAO,KAAK,UAAU,GAAG,MAAM,MAAM,GAAG,MAAM,CAAC;EACrD,MAAM,QAAQ,CAAC,GAAI,UAAU,CAAC,QAAQ,SAAS,IAAI,CAAC,GAAI,GAAG,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;EACxF,OAAO,KAAK,MAAM,KAAK,IAAI,CAAC;CAC9B;CACA,OAAO;;;;;EAKP,OAAO,KAAK,KAAK,EAAE;;;AAGrB"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
//#region src/dev-log-pipeline.ts
|
|
2
|
+
const ESC = "\x1B";
|
|
3
|
+
const BEL = "\x07";
|
|
4
|
+
const ANSI_RE = new RegExp(`${ESC}\\[[0-?]*[ -/]*[@-~]|${ESC}\\][^${BEL}]*${BEL}`, "g");
|
|
5
|
+
const stripAnsi = (input) => input.replace(ANSI_RE, "");
|
|
6
|
+
const LEVEL_RANK = {
|
|
7
|
+
error: 0,
|
|
8
|
+
warn: 1,
|
|
9
|
+
info: 2,
|
|
10
|
+
debug: 3
|
|
11
|
+
};
|
|
12
|
+
const LOG_LEVELS = [
|
|
13
|
+
"error",
|
|
14
|
+
"warn",
|
|
15
|
+
"info",
|
|
16
|
+
"debug"
|
|
17
|
+
];
|
|
18
|
+
function isDebug(value) {
|
|
19
|
+
return value === "true" || value === "1";
|
|
20
|
+
}
|
|
21
|
+
function resolveLogLevel(env = process.env, flag) {
|
|
22
|
+
if (flag && LOG_LEVELS.includes(flag)) return flag;
|
|
23
|
+
if (env.BOS_LOG_LEVEL && LOG_LEVELS.includes(env.BOS_LOG_LEVEL)) return env.BOS_LOG_LEVEL;
|
|
24
|
+
if (isDebug(env.DEBUG)) return "debug";
|
|
25
|
+
return "warn";
|
|
26
|
+
}
|
|
27
|
+
function toEffectLogLevel(level) {
|
|
28
|
+
switch (level) {
|
|
29
|
+
case "error": return "Error";
|
|
30
|
+
case "warn": return "Warn";
|
|
31
|
+
case "info": return "Info";
|
|
32
|
+
case "debug": return "Debug";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const STACK_FRAME_RE = /^\s+at\s/;
|
|
36
|
+
const countBraces = (line) => {
|
|
37
|
+
let count = 0;
|
|
38
|
+
for (const ch of line) if (ch === "{") count += 1;
|
|
39
|
+
else if (ch === "}") count -= 1;
|
|
40
|
+
return count;
|
|
41
|
+
};
|
|
42
|
+
const makeNormalizerState = () => ({
|
|
43
|
+
pending: [],
|
|
44
|
+
openBraces: 0
|
|
45
|
+
});
|
|
46
|
+
const pushLine = (state, line) => {
|
|
47
|
+
state.pending.push(line);
|
|
48
|
+
state.openBraces = Math.max(0, state.openBraces + countBraces(line));
|
|
49
|
+
};
|
|
50
|
+
const resetState = (state) => {
|
|
51
|
+
state.pending = [];
|
|
52
|
+
state.openBraces = 0;
|
|
53
|
+
};
|
|
54
|
+
const feedLine = (state, line, meta) => {
|
|
55
|
+
if (state.pending.length === 0) {
|
|
56
|
+
state.meta = meta;
|
|
57
|
+
pushLine(state, line);
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
if (state.openBraces > 0 || STACK_FRAME_RE.test(line) || /^\s*\{/.test(line)) {
|
|
61
|
+
const closeOnBalance = state.openBraces > 0;
|
|
62
|
+
pushLine(state, line);
|
|
63
|
+
if (closeOnBalance && state.openBraces === 0) {
|
|
64
|
+
const completed = {
|
|
65
|
+
text: state.pending.join("\n"),
|
|
66
|
+
meta: state.meta
|
|
67
|
+
};
|
|
68
|
+
resetState(state);
|
|
69
|
+
return completed;
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const completed = {
|
|
74
|
+
text: state.pending.join("\n"),
|
|
75
|
+
meta: state.meta
|
|
76
|
+
};
|
|
77
|
+
resetState(state);
|
|
78
|
+
state.meta = meta;
|
|
79
|
+
pushLine(state, line);
|
|
80
|
+
return completed;
|
|
81
|
+
};
|
|
82
|
+
const drainState = (state) => {
|
|
83
|
+
if (state.pending.length === 0) return null;
|
|
84
|
+
const completed = {
|
|
85
|
+
text: state.pending.join("\n"),
|
|
86
|
+
meta: state.meta
|
|
87
|
+
};
|
|
88
|
+
resetState(state);
|
|
89
|
+
return completed;
|
|
90
|
+
};
|
|
91
|
+
const WARN_RE = /(?:^|\s)WARN\b|\[WARN\]|(?:^|\s)\w*Warning:/i;
|
|
92
|
+
const DEBUG_RE = /(?:^|\s)DEBUG\b|\[DEBUG\]/i;
|
|
93
|
+
const BUILD_DIAGNOSTIC_RE = /^(?:File: |\s*[×✖]\s)/;
|
|
94
|
+
const EXIT_LINE_RE = /^Process exited (?:after|before) ready \((?:exit code: (\d+)|signal: ([A-Z]+))\)/;
|
|
95
|
+
const CLEAN_SIGNALS = /* @__PURE__ */ new Set(["SIGTERM", "SIGINT"]);
|
|
96
|
+
const CATEGORY_PATTERNS = [
|
|
97
|
+
{
|
|
98
|
+
category: "shutdown",
|
|
99
|
+
patterns: [
|
|
100
|
+
EXIT_LINE_RE,
|
|
101
|
+
/\[SIGTERM\]/i,
|
|
102
|
+
/shutting down/i,
|
|
103
|
+
/graceful shutdown/i
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
category: "mf",
|
|
108
|
+
patterns: [
|
|
109
|
+
/\[ ?Federation Runtime ?\]/,
|
|
110
|
+
/\[MF\]/,
|
|
111
|
+
/Module Federation/i,
|
|
112
|
+
/Executing an Effect versioned/,
|
|
113
|
+
/you may want to dedupe the effect dependencies/,
|
|
114
|
+
/\[IntegrityMonitor\]/,
|
|
115
|
+
/\[Plugins\]/
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
category: "db",
|
|
120
|
+
patterns: [
|
|
121
|
+
/\[Database\]/i,
|
|
122
|
+
/\bpostgres\b/i,
|
|
123
|
+
/\bdrizzle\b/i,
|
|
124
|
+
/\bpglite\b/i
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
category: "banner",
|
|
129
|
+
patterns: [
|
|
130
|
+
/🚀|📡|📖|💚/,
|
|
131
|
+
/➜/,
|
|
132
|
+
/^[┌┐└┘│─┬┴├┤╔╗╚╝║═]/
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
category: "build",
|
|
137
|
+
patterns: [
|
|
138
|
+
/rspack\.config\.js not found/,
|
|
139
|
+
/rspack|rsbuild/i,
|
|
140
|
+
/compiled (?:success|with|in)/i,
|
|
141
|
+
/built in \d+/i,
|
|
142
|
+
/webpack/i,
|
|
143
|
+
/\bHMR\b/,
|
|
144
|
+
/building for production/i,
|
|
145
|
+
BUILD_DIAGNOSTIC_RE
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
category: "lifecycle",
|
|
150
|
+
patterns: [
|
|
151
|
+
/\bready in\b/i,
|
|
152
|
+
/listening (?:on|at)/i,
|
|
153
|
+
/server (?:is )?running/i
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
];
|
|
157
|
+
const classifyCategory = (text) => {
|
|
158
|
+
for (const { category, patterns } of CATEGORY_PATTERNS) if (patterns.some((pattern) => pattern.test(text))) return category;
|
|
159
|
+
return "other";
|
|
160
|
+
};
|
|
161
|
+
function classifyEvent(raw) {
|
|
162
|
+
const text = stripAnsi(raw.line);
|
|
163
|
+
const exitMatch = text.match(EXIT_LINE_RE);
|
|
164
|
+
const category = classifyCategory(text);
|
|
165
|
+
let level;
|
|
166
|
+
let isError = raw.isError === true;
|
|
167
|
+
if (exitMatch) {
|
|
168
|
+
if (exitMatch[2]) level = CLEAN_SIGNALS.has(exitMatch[2]) ? "info" : "error";
|
|
169
|
+
else level = exitMatch[1] === "0" ? "info" : "error";
|
|
170
|
+
isError = level === "error";
|
|
171
|
+
} else if (BUILD_DIAGNOSTIC_RE.test(text)) {
|
|
172
|
+
level = "error";
|
|
173
|
+
isError = true;
|
|
174
|
+
} else if (WARN_RE.test(text)) {
|
|
175
|
+
level = "warn";
|
|
176
|
+
isError = false;
|
|
177
|
+
} else if (DEBUG_RE.test(text)) {
|
|
178
|
+
level = "debug";
|
|
179
|
+
isError = false;
|
|
180
|
+
} else if (isError) level = "error";
|
|
181
|
+
else level = "info";
|
|
182
|
+
return {
|
|
183
|
+
timestamp: raw.timestamp ?? Date.now(),
|
|
184
|
+
source: raw.source,
|
|
185
|
+
line: text,
|
|
186
|
+
isError,
|
|
187
|
+
level,
|
|
188
|
+
category
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
function passesLevel(event, level) {
|
|
192
|
+
return LEVEL_RANK[event.level] <= LEVEL_RANK[level];
|
|
193
|
+
}
|
|
194
|
+
var DbCollapser = class {
|
|
195
|
+
runs = /* @__PURE__ */ new Set();
|
|
196
|
+
feed(event) {
|
|
197
|
+
if (event.category === "db" && event.level !== "error") {
|
|
198
|
+
if (!this.runs.has(event.source)) {
|
|
199
|
+
this.runs.add(event.source);
|
|
200
|
+
return {
|
|
201
|
+
...event,
|
|
202
|
+
line: "db ready",
|
|
203
|
+
isError: false,
|
|
204
|
+
level: "info",
|
|
205
|
+
collapsed: true
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
this.runs.delete(event.source);
|
|
211
|
+
return {
|
|
212
|
+
...event,
|
|
213
|
+
collapsed: false
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
function createLogPipeline(options) {
|
|
218
|
+
const level = options.level ?? resolveLogLevel();
|
|
219
|
+
const sinks = options.sinks;
|
|
220
|
+
const normalizers = /* @__PURE__ */ new Map();
|
|
221
|
+
const collapser = new DbCollapser();
|
|
222
|
+
const stateFor = (source) => {
|
|
223
|
+
let state = normalizers.get(source);
|
|
224
|
+
if (!state) {
|
|
225
|
+
state = makeNormalizerState();
|
|
226
|
+
normalizers.set(source, state);
|
|
227
|
+
}
|
|
228
|
+
return state;
|
|
229
|
+
};
|
|
230
|
+
const emit = (meta, text) => {
|
|
231
|
+
const event = classifyEvent({
|
|
232
|
+
source: meta.source,
|
|
233
|
+
line: text,
|
|
234
|
+
isError: meta.isError,
|
|
235
|
+
timestamp: meta.timestamp
|
|
236
|
+
});
|
|
237
|
+
sinks.file(event);
|
|
238
|
+
if (!passesLevel(event, level)) return;
|
|
239
|
+
const collapsed = collapser.feed(event);
|
|
240
|
+
if (!collapsed) return;
|
|
241
|
+
sinks.export(collapsed);
|
|
242
|
+
sinks.display(collapsed);
|
|
243
|
+
};
|
|
244
|
+
return {
|
|
245
|
+
ingest: (raw) => {
|
|
246
|
+
const clean = stripAnsi(raw.line);
|
|
247
|
+
if (!clean.trim()) return;
|
|
248
|
+
const state = stateFor(raw.source);
|
|
249
|
+
const completed = feedLine(state, clean, {
|
|
250
|
+
source: raw.source,
|
|
251
|
+
isError: raw.isError,
|
|
252
|
+
timestamp: raw.timestamp
|
|
253
|
+
});
|
|
254
|
+
if (completed !== null) emit(completed.meta, completed.text);
|
|
255
|
+
},
|
|
256
|
+
flush: () => {
|
|
257
|
+
for (const state of normalizers.values()) {
|
|
258
|
+
const completed = drainState(state);
|
|
259
|
+
if (completed !== null) emit(completed.meta, completed.text);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
//#endregion
|
|
266
|
+
exports.classifyEvent = classifyEvent;
|
|
267
|
+
exports.createLogPipeline = createLogPipeline;
|
|
268
|
+
exports.isDebug = isDebug;
|
|
269
|
+
exports.passesLevel = passesLevel;
|
|
270
|
+
exports.resolveLogLevel = resolveLogLevel;
|
|
271
|
+
exports.stripAnsi = stripAnsi;
|
|
272
|
+
exports.toEffectLogLevel = toEffectLogLevel;
|
|
273
|
+
//# sourceMappingURL=dev-log-pipeline.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-log-pipeline.cjs","names":[],"sources":["../src/dev-log-pipeline.ts"],"sourcesContent":["const ESC = \"\\x1b\";\nconst BEL = \"\\x07\";\nconst ANSI_RE = new RegExp(`${ESC}\\\\[[0-?]*[ -/]*[@-~]|${ESC}\\\\][^${BEL}]*${BEL}`, \"g\");\n\nexport const stripAnsi = (input: string): string => input.replace(ANSI_RE, \"\");\n\nexport type LogLevel = \"error\" | \"warn\" | \"info\" | \"debug\";\n\nexport type LogCategory = \"banner\" | \"build\" | \"db\" | \"mf\" | \"lifecycle\" | \"shutdown\" | \"other\";\n\nexport interface RawLogLine {\n source: string;\n line: string;\n isError?: boolean;\n timestamp?: number;\n}\n\nexport interface LogEvent {\n timestamp: number;\n source: string;\n line: string;\n isError: boolean;\n level: LogLevel;\n category: LogCategory;\n}\n\nconst LEVEL_RANK: Record<LogLevel, number> = { error: 0, warn: 1, info: 2, debug: 3 };\n\nconst LOG_LEVELS: readonly LogLevel[] = [\"error\", \"warn\", \"info\", \"debug\"];\n\nexport interface LogLevelEnv {\n BOS_LOG_LEVEL?: string;\n DEBUG?: string;\n}\n\nexport function isDebug(value: string | undefined): boolean {\n return value === \"true\" || value === \"1\";\n}\n\nexport function resolveLogLevel(\n env: LogLevelEnv = process.env as LogLevelEnv,\n flag?: string,\n): LogLevel {\n if (flag && (LOG_LEVELS as readonly string[]).includes(flag)) return flag as LogLevel;\n if (env.BOS_LOG_LEVEL && (LOG_LEVELS as readonly string[]).includes(env.BOS_LOG_LEVEL)) {\n return env.BOS_LOG_LEVEL as LogLevel;\n }\n if (isDebug(env.DEBUG)) return \"debug\";\n return \"warn\";\n}\n\nexport type EffectLogLevel = \"Error\" | \"Warn\" | \"Info\" | \"Debug\";\n\nexport function toEffectLogLevel(level: LogLevel): EffectLogLevel {\n switch (level) {\n case \"error\":\n return \"Error\";\n case \"warn\":\n return \"Warn\";\n case \"info\":\n return \"Info\";\n case \"debug\":\n return \"Debug\";\n }\n}\n\nconst STACK_FRAME_RE = /^\\s+at\\s/;\n\nconst countBraces = (line: string): number => {\n let count = 0;\n for (const ch of line) {\n if (ch === \"{\") count += 1;\n else if (ch === \"}\") count -= 1;\n }\n return count;\n};\n\ninterface PendingMeta {\n source: string;\n isError?: boolean;\n timestamp?: number;\n}\n\ninterface NormalizerState {\n pending: string[];\n openBraces: number;\n meta?: PendingMeta;\n}\n\nconst makeNormalizerState = (): NormalizerState => ({ pending: [], openBraces: 0 });\n\nconst pushLine = (state: NormalizerState, line: string) => {\n state.pending.push(line);\n state.openBraces = Math.max(0, state.openBraces + countBraces(line));\n};\n\nconst resetState = (state: NormalizerState) => {\n state.pending = [];\n state.openBraces = 0;\n};\n\ninterface CompletedEvent {\n text: string;\n meta: PendingMeta;\n}\n\nconst feedLine = (\n state: NormalizerState,\n line: string,\n meta: PendingMeta,\n): CompletedEvent | null => {\n if (state.pending.length === 0) {\n state.meta = meta;\n pushLine(state, line);\n return null;\n }\n\n const isContinuation = state.openBraces > 0 || STACK_FRAME_RE.test(line) || /^\\s*\\{/.test(line);\n\n if (isContinuation) {\n const closeOnBalance = state.openBraces > 0;\n pushLine(state, line);\n if (closeOnBalance && state.openBraces === 0) {\n const completed = { text: state.pending.join(\"\\n\"), meta: state.meta! };\n resetState(state);\n return completed;\n }\n return null;\n }\n\n const completed = { text: state.pending.join(\"\\n\"), meta: state.meta! };\n resetState(state);\n state.meta = meta;\n pushLine(state, line);\n return completed;\n};\n\nconst drainState = (state: NormalizerState): CompletedEvent | null => {\n if (state.pending.length === 0) return null;\n const completed = { text: state.pending.join(\"\\n\"), meta: state.meta! };\n resetState(state);\n return completed;\n};\n\nexport function normalizeLines(lines: string[]): string[] {\n const state = makeNormalizerState();\n const events: string[] = [];\n for (const line of lines) {\n const completed = feedLine(state, line, { source: \"\" });\n if (completed !== null) events.push(completed.text);\n }\n const last = drainState(state);\n if (last !== null) events.push(last.text);\n return events;\n}\n\nconst WARN_RE = /(?:^|\\s)WARN\\b|\\[WARN\\]|(?:^|\\s)\\w*Warning:/i;\nconst DEBUG_RE = /(?:^|\\s)DEBUG\\b|\\[DEBUG\\]/i;\n\n// rspack/rsbuild write the \"Build error:\" title to stderr with an empty\n// message and the actual diagnostics (`File: …`, `× …`) to stdout. Promote\n// those diagnostic lines so they pass the default warn display filter.\nconst BUILD_DIAGNOSTIC_RE = /^(?:File: |\\s*[×✖]\\s)/;\n\nconst EXIT_LINE_RE =\n /^Process exited (?:after|before) ready \\((?:exit code: (\\d+)|signal: ([A-Z]+))\\)/;\n\nconst CLEAN_SIGNALS = new Set([\"SIGTERM\", \"SIGINT\"]);\n\nconst CATEGORY_PATTERNS: Array<{ category: LogCategory; patterns: RegExp[] }> = [\n {\n category: \"shutdown\",\n patterns: [EXIT_LINE_RE, /\\[SIGTERM\\]/i, /shutting down/i, /graceful shutdown/i],\n },\n {\n category: \"mf\",\n patterns: [\n /\\[ ?Federation Runtime ?\\]/,\n /\\[MF\\]/,\n /Module Federation/i,\n /Executing an Effect versioned/,\n /you may want to dedupe the effect dependencies/,\n /\\[IntegrityMonitor\\]/,\n /\\[Plugins\\]/,\n ],\n },\n {\n category: \"db\",\n patterns: [/\\[Database\\]/i, /\\bpostgres\\b/i, /\\bdrizzle\\b/i, /\\bpglite\\b/i],\n },\n {\n category: \"banner\",\n patterns: [/🚀|📡|📖|💚/, /➜/, /^[┌┐└┘│─┬┴├┤╔╗╚╝║═]/],\n },\n {\n category: \"build\",\n patterns: [\n /rspack\\.config\\.js not found/,\n /rspack|rsbuild/i,\n /compiled (?:success|with|in)/i,\n /built in \\d+/i,\n /webpack/i,\n /\\bHMR\\b/,\n /building for production/i,\n BUILD_DIAGNOSTIC_RE,\n ],\n },\n {\n category: \"lifecycle\",\n patterns: [/\\bready in\\b/i, /listening (?:on|at)/i, /server (?:is )?running/i],\n },\n];\n\nconst classifyCategory = (text: string): LogCategory => {\n for (const { category, patterns } of CATEGORY_PATTERNS) {\n if (patterns.some((pattern) => pattern.test(text))) return category;\n }\n return \"other\";\n};\n\nexport function classifyEvent(raw: RawLogLine): LogEvent {\n const text = stripAnsi(raw.line);\n const exitMatch = text.match(EXIT_LINE_RE);\n const category = classifyCategory(text);\n\n let level: LogLevel;\n let isError = raw.isError === true;\n\n if (exitMatch) {\n if (exitMatch[2]) {\n level = CLEAN_SIGNALS.has(exitMatch[2]) ? \"info\" : \"error\";\n } else {\n level = exitMatch[1] === \"0\" ? \"info\" : \"error\";\n }\n isError = level === \"error\";\n } else if (BUILD_DIAGNOSTIC_RE.test(text)) {\n level = \"error\";\n isError = true;\n } else if (WARN_RE.test(text)) {\n level = \"warn\";\n isError = false;\n } else if (DEBUG_RE.test(text)) {\n level = \"debug\";\n isError = false;\n } else if (isError) {\n level = \"error\";\n } else {\n level = \"info\";\n }\n\n return {\n timestamp: raw.timestamp ?? Date.now(),\n source: raw.source,\n line: text,\n isError,\n level,\n category,\n };\n}\n\nexport function passesLevel(event: LogEvent, level: LogLevel): boolean {\n return LEVEL_RANK[event.level] <= LEVEL_RANK[level];\n}\n\nexport interface CollapsedDbEvent extends LogEvent {\n collapsed: boolean;\n}\n\nclass DbCollapser {\n private runs = new Set<string>();\n\n feed(event: LogEvent): CollapsedDbEvent | null {\n if (event.category === \"db\" && event.level !== \"error\") {\n if (!this.runs.has(event.source)) {\n this.runs.add(event.source);\n return { ...event, line: \"db ready\", isError: false, level: \"info\", collapsed: true };\n }\n return null;\n }\n this.runs.delete(event.source);\n return { ...event, collapsed: false };\n }\n}\n\nexport interface LogPipelineSinks {\n display: (event: LogEvent) => void;\n file: (event: LogEvent) => void;\n export: (event: LogEvent) => void;\n}\n\nexport interface LogPipeline {\n ingest: (raw: RawLogLine) => void;\n flush: () => void;\n}\n\nexport function createLogPipeline(options: {\n level?: LogLevel;\n sinks: LogPipelineSinks;\n}): LogPipeline {\n const level = options.level ?? resolveLogLevel();\n const sinks = options.sinks;\n const normalizers = new Map<string, NormalizerState>();\n const collapser = new DbCollapser();\n\n const stateFor = (source: string): NormalizerState => {\n let state = normalizers.get(source);\n if (!state) {\n state = makeNormalizerState();\n normalizers.set(source, state);\n }\n return state;\n };\n\n const emit = (meta: PendingMeta, text: string) => {\n const event = classifyEvent({\n source: meta.source,\n line: text,\n isError: meta.isError,\n timestamp: meta.timestamp,\n });\n sinks.file(event);\n if (!passesLevel(event, level)) return;\n const collapsed = collapser.feed(event);\n if (!collapsed) return;\n sinks.export(collapsed);\n sinks.display(collapsed);\n };\n\n return {\n ingest: (raw) => {\n const clean = stripAnsi(raw.line);\n if (!clean.trim()) return;\n const state = stateFor(raw.source);\n const completed = feedLine(state, clean, {\n source: raw.source,\n isError: raw.isError,\n timestamp: raw.timestamp,\n });\n if (completed !== null) emit(completed.meta, completed.text);\n },\n flush: () => {\n for (const state of normalizers.values()) {\n const completed = drainState(state);\n if (completed !== null) emit(completed.meta, completed.text);\n }\n },\n };\n}\n"],"mappings":"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"}
|