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,234 @@
|
|
|
1
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
2
|
+
const require_fastkv = require('../fastkv.cjs');
|
|
3
|
+
const require_save_config = require('../utils/save-config.cjs');
|
|
4
|
+
const require_cli_init = require('../cli/init.cjs');
|
|
5
|
+
const require_resolution_session = require('../resolution/session.cjs');
|
|
6
|
+
const require_shared_deps = require('../shared-deps.cjs');
|
|
7
|
+
const require_code_artifacts = require('../code-artifacts.cjs');
|
|
8
|
+
const require_project_env = require('../env/project-env.cjs');
|
|
9
|
+
const require_materializer = require('../infra/materializer.cjs');
|
|
10
|
+
const require_progress = require('../progress.cjs');
|
|
11
|
+
const require_prune = require('../cli/prune.cjs');
|
|
12
|
+
let node_fs = require("node:fs");
|
|
13
|
+
let node_path = require("node:path");
|
|
14
|
+
let effect = require("effect");
|
|
15
|
+
let node_process = require("node:process");
|
|
16
|
+
node_process = require_runtime.__toESM(node_process, 1);
|
|
17
|
+
|
|
18
|
+
//#region src/commands/init.ts
|
|
19
|
+
async function fetchInitParent(extendsAccount, extendsGateway) {
|
|
20
|
+
const parentConfig = await require_cli_init.fetchParentConfig(extendsAccount, extendsGateway);
|
|
21
|
+
return {
|
|
22
|
+
parentConfig,
|
|
23
|
+
parentPluginKeys: parentConfig?.plugins && typeof parentConfig.plugins === "object" ? Object.keys(parentConfig.plugins) : []
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function normalizeExtendsRef(extendsInput, fallback) {
|
|
27
|
+
if (!extendsInput) return fallback;
|
|
28
|
+
return extendsInput.startsWith("bos://") ? extendsInput : `bos://${extendsInput}`;
|
|
29
|
+
}
|
|
30
|
+
function registerInit(builder) {
|
|
31
|
+
return { init: builder.init.handler(async ({ input }) => {
|
|
32
|
+
try {
|
|
33
|
+
const timings = [];
|
|
34
|
+
let extendsAccount = "";
|
|
35
|
+
let extendsGateway = "";
|
|
36
|
+
let directory = input.directory;
|
|
37
|
+
const account = input.account;
|
|
38
|
+
const domain = input.domain;
|
|
39
|
+
let overrides = input.overrides;
|
|
40
|
+
let plugins = input.plugins;
|
|
41
|
+
if (input.extends) try {
|
|
42
|
+
const { accountId, gatewayId } = require_fastkv.parseBosUrl(normalizeExtendsRef(input.extends, ""));
|
|
43
|
+
extendsAccount = accountId;
|
|
44
|
+
extendsGateway = gatewayId;
|
|
45
|
+
} catch {
|
|
46
|
+
extendsAccount = "";
|
|
47
|
+
extendsGateway = "";
|
|
48
|
+
}
|
|
49
|
+
extendsAccount = extendsAccount || "dev.everything.near";
|
|
50
|
+
extendsGateway = extendsGateway || "everything.dev";
|
|
51
|
+
directory = directory || domain || extendsGateway;
|
|
52
|
+
const targetDir = (0, node_path.resolve)(directory);
|
|
53
|
+
const extendsRef = `bos://${extendsAccount}/${extendsGateway}`;
|
|
54
|
+
let parentPluginKeys = [];
|
|
55
|
+
let parentConfig = null;
|
|
56
|
+
try {
|
|
57
|
+
const parent = await require_progress.timePhase(timings, "parent config", () => fetchInitParent(extendsAccount, extendsGateway));
|
|
58
|
+
parentConfig = parent.parentConfig;
|
|
59
|
+
parentPluginKeys = parent.parentPluginKeys;
|
|
60
|
+
} catch (e) {
|
|
61
|
+
console.warn(`[init] Failed to fetch parent config from ${extendsAccount}/${extendsGateway}: ${e instanceof Error ? e.message : e}`);
|
|
62
|
+
return {
|
|
63
|
+
status: "error",
|
|
64
|
+
directory,
|
|
65
|
+
extendsRef,
|
|
66
|
+
account,
|
|
67
|
+
domain,
|
|
68
|
+
extends: extendsRef,
|
|
69
|
+
plugins,
|
|
70
|
+
overrides,
|
|
71
|
+
filesCopied: 0,
|
|
72
|
+
timings,
|
|
73
|
+
error: `No config found at ${extendsRef} — are you sure this is the right parent?`
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
overrides = overrides?.length ? overrides : ["ui", "api"];
|
|
77
|
+
const level = input.level ?? "simple";
|
|
78
|
+
if (overrides.includes("plugins") && plugins === void 0) plugins = parentPluginKeys;
|
|
79
|
+
plugins = plugins ?? [];
|
|
80
|
+
const pluginDirMap = {};
|
|
81
|
+
if (parentConfig?.plugins) for (const plugin of plugins) {
|
|
82
|
+
const entry = parentConfig.plugins?.[plugin];
|
|
83
|
+
if (entry && typeof entry === "object") {
|
|
84
|
+
const dev = entry.development;
|
|
85
|
+
if (typeof dev === "string") {
|
|
86
|
+
const match = dev.match(/^local:plugins\/(.+)$/);
|
|
87
|
+
if (match?.[1] && match[1] !== plugin) pluginDirMap[plugin] = match[1];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const repository = await require_cli_init.detectGitRemoteUrl(node_process.default.cwd()).catch(() => void 0) ?? parentConfig?.repository;
|
|
92
|
+
const { sourceDir, parentConfig: resolvedParentConfig, cleanup } = await require_progress.timePhase(timings, "template source", () => require_cli_init.resolveSourceDir({
|
|
93
|
+
extendsAccount,
|
|
94
|
+
extendsGateway,
|
|
95
|
+
source: input.source
|
|
96
|
+
}));
|
|
97
|
+
parentConfig = resolvedParentConfig;
|
|
98
|
+
const isMinimalScaffold = sourceDir === "";
|
|
99
|
+
try {
|
|
100
|
+
let filesCopied;
|
|
101
|
+
let childBosConfig = null;
|
|
102
|
+
if (isMinimalScaffold) {
|
|
103
|
+
filesCopied = await require_progress.timePhase(timings, "scaffold project", () => require_cli_init.scaffoldMinimalProject(targetDir, parentConfig, {
|
|
104
|
+
extendsAccount,
|
|
105
|
+
extendsGateway,
|
|
106
|
+
account: account || extendsAccount,
|
|
107
|
+
domain,
|
|
108
|
+
plugins,
|
|
109
|
+
overrides,
|
|
110
|
+
repository,
|
|
111
|
+
title: parentConfig?.title,
|
|
112
|
+
description: parentConfig?.description,
|
|
113
|
+
starter: level
|
|
114
|
+
}));
|
|
115
|
+
await require_progress.timePhase(timings, "personalize config", () => require_cli_init.personalizeConfig(targetDir, {
|
|
116
|
+
extendsAccount,
|
|
117
|
+
extendsGateway,
|
|
118
|
+
account: account || extendsAccount,
|
|
119
|
+
domain: domain || extendsGateway,
|
|
120
|
+
plugins,
|
|
121
|
+
overrides,
|
|
122
|
+
mode: "init",
|
|
123
|
+
repository,
|
|
124
|
+
title: parentConfig?.title,
|
|
125
|
+
description: parentConfig?.description,
|
|
126
|
+
testnet: parentConfig?.testnet,
|
|
127
|
+
staging: parentConfig?.staging,
|
|
128
|
+
starter: level
|
|
129
|
+
}));
|
|
130
|
+
childBosConfig = await require_progress.timePhase(timings, "authored config form", () => require_cli_init.convertChildConfigToAppForm(targetDir));
|
|
131
|
+
require_cli_init.writeDevOverlayTemplate(targetDir, { extendsRef: `bos://${extendsAccount}/${extendsGateway}` });
|
|
132
|
+
} else {
|
|
133
|
+
const patterns = require_cli_init.buildInitPatterns(overrides, plugins, pluginDirMap);
|
|
134
|
+
const routeExclusions = overrides.includes("ui") ? require_cli_init.buildPluginRouteExclusions(parentConfig, plugins) : [];
|
|
135
|
+
const starterExclusions = overrides.includes("ui") ? require_cli_init.buildStarterRouteExclusions(level, parentConfig) : [];
|
|
136
|
+
const copyIgnore = [...routeExclusions, ...starterExclusions];
|
|
137
|
+
filesCopied = await require_progress.timePhase(timings, "copy files", () => require_cli_init.copyFilteredFiles(sourceDir, targetDir, patterns, {
|
|
138
|
+
overrides,
|
|
139
|
+
plugins,
|
|
140
|
+
ignore: copyIgnore
|
|
141
|
+
}));
|
|
142
|
+
if (!(0, node_fs.existsSync)((0, node_path.join)(targetDir, "bos.config.json"))) await require_save_config.saveBosConfig(targetDir, parentConfig);
|
|
143
|
+
await require_progress.timePhase(timings, "personalize config", () => require_cli_init.personalizeConfig(targetDir, {
|
|
144
|
+
extendsAccount,
|
|
145
|
+
extendsGateway,
|
|
146
|
+
account: account || extendsAccount,
|
|
147
|
+
domain: domain || extendsGateway,
|
|
148
|
+
plugins,
|
|
149
|
+
overrides,
|
|
150
|
+
workspaceOpts: { sourceDir },
|
|
151
|
+
repository,
|
|
152
|
+
title: parentConfig?.title,
|
|
153
|
+
description: parentConfig?.description,
|
|
154
|
+
testnet: parentConfig?.testnet,
|
|
155
|
+
staging: parentConfig?.staging,
|
|
156
|
+
starter: level
|
|
157
|
+
}));
|
|
158
|
+
childBosConfig = await require_progress.timePhase(timings, "authored config form", () => require_cli_init.convertChildConfigToAppForm(targetDir));
|
|
159
|
+
require_cli_init.writeDevOverlayTemplate(targetDir, { extendsRef: `bos://${extendsAccount}/${extendsGateway}` });
|
|
160
|
+
if (overrides.includes("ui")) await require_progress.timePhase(timings, "prune unused ui files", async () => require_prune.pruneUnusedUiFiles(targetDir, { log: console.log }));
|
|
161
|
+
await require_progress.timePhase(timings, "write snapshot", () => require_cli_init.writeInitSnapshot(targetDir, extendsAccount, extendsGateway, sourceDir, patterns, {
|
|
162
|
+
overrides,
|
|
163
|
+
plugins,
|
|
164
|
+
ignore: copyIgnore,
|
|
165
|
+
starter: level
|
|
166
|
+
}));
|
|
167
|
+
await require_progress.timePhase(timings, "personalize agents", () => require_cli_init.personalizeAgentsMd(targetDir, {
|
|
168
|
+
overrides,
|
|
169
|
+
plugins
|
|
170
|
+
}));
|
|
171
|
+
}
|
|
172
|
+
await require_progress.timePhase(timings, "sync shared deps", () => require_shared_deps.syncResolvedSharedDeps({
|
|
173
|
+
configDir: targetDir,
|
|
174
|
+
hostMode: "local",
|
|
175
|
+
bosConfig: childBosConfig ? childBosConfig : void 0
|
|
176
|
+
}));
|
|
177
|
+
require_cli_init.removeStrayLockfiles(targetDir);
|
|
178
|
+
const initConfig = await require_progress.timePhase(timings, "resolve config", () => require_resolution_session.openResolution({ cwd: targetDir }).catch((error) => {
|
|
179
|
+
console.warn("[init] Skipping config resolution — the child has no node_modules yet; `bos dev` resolves after `pnpm install`.", error instanceof Error ? error.message : error);
|
|
180
|
+
return null;
|
|
181
|
+
}));
|
|
182
|
+
const initRuntime = initConfig?.runtime;
|
|
183
|
+
if (initRuntime) await require_progress.timePhase(timings, "generate env/docker", async () => {
|
|
184
|
+
await require_materializer.materializeViaLayer(targetDir, initRuntime);
|
|
185
|
+
});
|
|
186
|
+
await require_progress.timePhase(timings, "create env file", async () => {
|
|
187
|
+
await effect.Effect.runPromise(require_project_env.makeProjectEnv().ensureFile(targetDir));
|
|
188
|
+
});
|
|
189
|
+
if (!input.noInstall) {
|
|
190
|
+
await require_progress.timePhase(timings, "install dependencies", () => require_cli_init.runPnpmInstall(targetDir));
|
|
191
|
+
await require_progress.timePhase(timings, "generate types", () => require_cli_init.runTypesGen(targetDir));
|
|
192
|
+
await require_progress.timePhase(timings, "generate migrations", () => require_cli_init.generateDatabaseMigrations(targetDir));
|
|
193
|
+
}
|
|
194
|
+
const initArtifactsConfig = initConfig?.config;
|
|
195
|
+
if (input.noInstall && initArtifactsConfig) await require_progress.timePhase(timings, "generate code artifacts", () => require_code_artifacts.generateCodeArtifacts(targetDir, initArtifactsConfig));
|
|
196
|
+
return {
|
|
197
|
+
status: "initialized",
|
|
198
|
+
directory,
|
|
199
|
+
extendsRef,
|
|
200
|
+
account,
|
|
201
|
+
domain,
|
|
202
|
+
extends: extendsRef,
|
|
203
|
+
plugins,
|
|
204
|
+
overrides,
|
|
205
|
+
filesCopied,
|
|
206
|
+
timings,
|
|
207
|
+
targetDir
|
|
208
|
+
};
|
|
209
|
+
} finally {
|
|
210
|
+
await cleanup();
|
|
211
|
+
}
|
|
212
|
+
} catch (error) {
|
|
213
|
+
const extendsRef = normalizeExtendsRef(input.extends, "bos://dev.everything.near/everything.dev");
|
|
214
|
+
return {
|
|
215
|
+
status: "error",
|
|
216
|
+
directory: input.directory ?? "",
|
|
217
|
+
extendsRef,
|
|
218
|
+
account: input.account,
|
|
219
|
+
domain: input.domain,
|
|
220
|
+
extends: extendsRef,
|
|
221
|
+
plugins: input.plugins ?? [],
|
|
222
|
+
overrides: input.overrides,
|
|
223
|
+
filesCopied: 0,
|
|
224
|
+
timings: [],
|
|
225
|
+
error: error instanceof Error ? error.message : "Unknown error"
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
}) };
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
//#endregion
|
|
232
|
+
exports.fetchInitParent = fetchInitParent;
|
|
233
|
+
exports.registerInit = registerInit;
|
|
234
|
+
//# sourceMappingURL=init.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.cjs","names":["fetchParentConfig","parseBosUrl","resolve","timePhase","detectGitRemoteUrl","process","resolveSourceDir","scaffoldMinimalProject","personalizeConfig","convertChildConfigToAppForm","buildInitPatterns","buildPluginRouteExclusions","buildStarterRouteExclusions","copyFilteredFiles","existsSync","join","saveBosConfig","pruneUnusedUiFiles","writeInitSnapshot","personalizeAgentsMd","syncResolvedSharedDeps","openResolution","materializeViaLayer","Effect","makeProjectEnv","runPnpmInstall","runTypesGen","generateDatabaseMigrations","generateCodeArtifacts"],"sources":["../../src/commands/init.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport process from \"node:process\";\nimport { Effect } from \"effect\";\nimport {\n buildInitPatterns,\n buildPluginRouteExclusions,\n buildStarterRouteExclusions,\n convertChildConfigToAppForm,\n copyFilteredFiles,\n detectGitRemoteUrl,\n fetchParentConfig,\n generateDatabaseMigrations,\n personalizeAgentsMd,\n personalizeConfig,\n removeStrayLockfiles,\n resolveSourceDir,\n runPnpmInstall,\n runTypesGen,\n scaffoldMinimalProject,\n writeDevOverlayTemplate,\n writeInitSnapshot,\n} from \"../cli/init\";\nimport { pruneUnusedUiFiles } from \"../cli/prune\";\nimport { generateCodeArtifacts } from \"../code-artifacts\";\nimport type { OverrideSection, PhaseTiming } from \"../contract\";\nimport { makeProjectEnv } from \"../env/project-env\";\nimport { parseBosUrl } from \"../fastkv\";\nimport { materializeViaLayer } from \"../infra/materializer\";\nimport { timePhase } from \"../progress\";\nimport { openResolution } from \"../resolution/session\";\nimport { syncResolvedSharedDeps } from \"../shared-deps\";\nimport type { BosConfig, BosConfigInput, StarterLevel } from \"../types\";\nimport { saveBosConfig } from \"../utils/save-config\";\nimport type { BosBuilder } from \"./shared\";\n\nexport async function fetchInitParent(\n extendsAccount: string,\n extendsGateway: string,\n): Promise<{ parentConfig: BosConfig; parentPluginKeys: string[] }> {\n const parentConfig = await fetchParentConfig(extendsAccount, extendsGateway);\n const parentPluginKeys =\n parentConfig?.plugins && typeof parentConfig.plugins === \"object\"\n ? Object.keys(parentConfig.plugins)\n : [];\n return { parentConfig, parentPluginKeys };\n}\n\nfunction normalizeExtendsRef(extendsInput: string | undefined, fallback: string): string {\n if (!extendsInput) return fallback;\n return extendsInput.startsWith(\"bos://\") ? extendsInput : `bos://${extendsInput}`;\n}\n\nexport function registerInit(builder: BosBuilder) {\n return {\n init: builder.init.handler(async ({ input }) => {\n try {\n const timings: PhaseTiming[] = [];\n let extendsAccount = \"\";\n let extendsGateway = \"\";\n let directory = input.directory;\n const account = input.account;\n const domain = input.domain;\n let overrides = input.overrides as OverrideSection[] | undefined;\n let plugins = input.plugins;\n\n if (input.extends) {\n try {\n const { accountId, gatewayId } = parseBosUrl(normalizeExtendsRef(input.extends, \"\"));\n extendsAccount = accountId;\n extendsGateway = gatewayId;\n } catch {\n extendsAccount = \"\";\n extendsGateway = \"\";\n }\n }\n\n extendsAccount = extendsAccount || \"dev.everything.near\";\n extendsGateway = extendsGateway || \"everything.dev\";\n\n directory = directory || domain || extendsGateway;\n const targetDir = resolve(directory);\n const extendsRef = `bos://${extendsAccount}/${extendsGateway}`;\n\n let parentPluginKeys: string[] = [];\n let parentConfig: BosConfig | null = null;\n try {\n const parent = await timePhase(timings, \"parent config\", () =>\n fetchInitParent(extendsAccount, extendsGateway),\n );\n parentConfig = parent.parentConfig;\n parentPluginKeys = parent.parentPluginKeys;\n } catch (e) {\n console.warn(\n `[init] Failed to fetch parent config from ${extendsAccount}/${extendsGateway}: ${\n e instanceof Error ? e.message : e\n }`,\n );\n return {\n status: \"error\" as const,\n directory,\n extendsRef,\n account,\n domain,\n extends: extendsRef,\n plugins,\n overrides,\n filesCopied: 0,\n timings,\n error: `No config found at ${extendsRef} — are you sure this is the right parent?`,\n };\n }\n\n overrides = overrides?.length ? overrides : ([\"ui\", \"api\"] as OverrideSection[]);\n const level: StarterLevel = input.level ?? \"simple\";\n if (overrides.includes(\"plugins\") && plugins === undefined) {\n plugins = parentPluginKeys;\n }\n plugins = plugins ?? [];\n\n const pluginDirMap: Record<string, string> = {};\n if (parentConfig?.plugins) {\n for (const plugin of plugins) {\n const entry = (parentConfig.plugins as Record<string, unknown>)?.[plugin];\n if (entry && typeof entry === \"object\") {\n const dev = (entry as Record<string, unknown>).development;\n if (typeof dev === \"string\") {\n const match = dev.match(/^local:plugins\\/(.+)$/);\n if (match?.[1] && match[1] !== plugin) pluginDirMap[plugin] = match[1];\n }\n }\n }\n }\n\n const repository =\n (await detectGitRemoteUrl(process.cwd()).catch(() => undefined)) ??\n parentConfig?.repository;\n\n const {\n sourceDir,\n parentConfig: resolvedParentConfig,\n cleanup,\n } = await timePhase(timings, \"template source\", () =>\n resolveSourceDir({\n extendsAccount,\n extendsGateway,\n source: input.source,\n }),\n );\n\n parentConfig = resolvedParentConfig;\n\n const isMinimalScaffold = sourceDir === \"\";\n\n try {\n let filesCopied: number;\n let childBosConfig: BosConfigInput | null = null;\n\n if (isMinimalScaffold) {\n filesCopied = await timePhase(timings, \"scaffold project\", () =>\n scaffoldMinimalProject(targetDir, parentConfig as unknown as BosConfigInput, {\n extendsAccount,\n extendsGateway,\n account: account || extendsAccount,\n domain,\n plugins,\n overrides,\n repository,\n title: parentConfig?.title,\n description: parentConfig?.description,\n starter: level,\n }),\n );\n\n await timePhase(timings, \"personalize config\", () =>\n personalizeConfig(targetDir, {\n extendsAccount,\n extendsGateway,\n account: account || extendsAccount,\n domain: domain || extendsGateway,\n plugins,\n overrides,\n mode: \"init\",\n repository,\n title: parentConfig?.title,\n description: parentConfig?.description,\n testnet: parentConfig?.testnet,\n staging: parentConfig?.staging,\n starter: level,\n }),\n );\n\n childBosConfig = await timePhase(timings, \"authored config form\", () =>\n convertChildConfigToAppForm(targetDir),\n );\n\n writeDevOverlayTemplate(targetDir, {\n extendsRef: `bos://${extendsAccount}/${extendsGateway}`,\n });\n } else {\n const patterns = buildInitPatterns(overrides, plugins, pluginDirMap);\n const routeExclusions = overrides.includes(\"ui\")\n ? buildPluginRouteExclusions(parentConfig, plugins)\n : [];\n const starterExclusions = overrides.includes(\"ui\")\n ? buildStarterRouteExclusions(level, parentConfig)\n : [];\n const copyIgnore = [...routeExclusions, ...starterExclusions];\n\n filesCopied = await timePhase(timings, \"copy files\", () =>\n copyFilteredFiles(sourceDir, targetDir, patterns, {\n overrides,\n plugins,\n ignore: copyIgnore,\n }),\n );\n\n // The child's authored config is always generated, never copied:\n // a TS-form parent's bos.app.ts imports everything-dev and cannot\n // load before the child's install. Write the JSON form from the\n // loaded parent config — the personalization +\n // convertChildConfigToAppForm below produce the child's own\n // authored bos.app.ts.\n if (!existsSync(join(targetDir, \"bos.config.json\"))) {\n await saveBosConfig(targetDir, parentConfig);\n }\n\n await timePhase(timings, \"personalize config\", () =>\n personalizeConfig(targetDir, {\n extendsAccount,\n extendsGateway,\n account: account || extendsAccount,\n domain: domain || extendsGateway,\n plugins,\n overrides,\n workspaceOpts: { sourceDir },\n repository,\n title: parentConfig?.title,\n description: parentConfig?.description,\n testnet: parentConfig?.testnet,\n staging: parentConfig?.staging,\n starter: level,\n }),\n );\n\n childBosConfig = await timePhase(timings, \"authored config form\", () =>\n convertChildConfigToAppForm(targetDir),\n );\n\n writeDevOverlayTemplate(targetDir, {\n extendsRef: `bos://${extendsAccount}/${extendsGateway}`,\n });\n\n if (overrides.includes(\"ui\")) {\n await timePhase(timings, \"prune unused ui files\", async () =>\n pruneUnusedUiFiles(targetDir, { log: console.log }),\n );\n }\n\n await timePhase(timings, \"write snapshot\", () =>\n writeInitSnapshot(targetDir, extendsAccount, extendsGateway, sourceDir, patterns, {\n overrides,\n plugins,\n ignore: copyIgnore,\n starter: level,\n }),\n );\n\n await timePhase(timings, \"personalize agents\", () =>\n personalizeAgentsMd(targetDir, { overrides, plugins }),\n );\n }\n\n await timePhase(timings, \"sync shared deps\", () =>\n syncResolvedSharedDeps({\n configDir: targetDir,\n hostMode: \"local\",\n bosConfig: childBosConfig\n ? (childBosConfig as unknown as Record<string, unknown>)\n : undefined,\n }),\n );\n\n // A stray lockfile (copied or left from a previous run) would pin\n // stale framework resolutions — the fresh install re-resolves.\n removeStrayLockfiles(targetDir);\n\n const initConfig = await timePhase(timings, \"resolve config\", () =>\n openResolution({ cwd: targetDir }).catch((error: unknown) => {\n console.warn(\n \"[init] Skipping config resolution — the child has no node_modules yet; `bos dev` resolves after `pnpm install`.\",\n error instanceof Error ? error.message : error,\n );\n return null;\n }),\n );\n const initRuntime = initConfig?.runtime;\n if (initRuntime) {\n await timePhase(timings, \"generate env/docker\", async () => {\n await materializeViaLayer(targetDir, initRuntime);\n });\n }\n await timePhase(timings, \"create env file\", async () => {\n await Effect.runPromise(makeProjectEnv().ensureFile(targetDir));\n });\n\n if (!input.noInstall) {\n await timePhase(timings, \"install dependencies\", () => runPnpmInstall(targetDir));\n await timePhase(timings, \"generate types\", () => runTypesGen(targetDir));\n await timePhase(timings, \"generate migrations\", () =>\n generateDatabaseMigrations(targetDir),\n );\n }\n\n const initArtifactsConfig = initConfig?.config;\n if (input.noInstall && initArtifactsConfig) {\n await timePhase(timings, \"generate code artifacts\", () =>\n generateCodeArtifacts(targetDir, initArtifactsConfig),\n );\n }\n\n return {\n status: \"initialized\" as const,\n directory,\n extendsRef,\n account,\n domain,\n extends: extendsRef,\n plugins,\n overrides,\n filesCopied,\n timings,\n targetDir,\n };\n } finally {\n await cleanup();\n }\n } catch (error) {\n const extendsRef = normalizeExtendsRef(\n input.extends,\n \"bos://dev.everything.near/everything.dev\",\n );\n return {\n status: \"error\" as const,\n directory: input.directory ?? \"\",\n extendsRef,\n account: input.account,\n domain: input.domain,\n extends: extendsRef,\n plugins: input.plugins ?? [],\n overrides: input.overrides,\n filesCopied: 0,\n timings: [],\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { parseBosUrl } from "../fastkv.mjs";
|
|
2
|
+
import { saveBosConfig } from "../utils/save-config.mjs";
|
|
3
|
+
import { buildInitPatterns, buildPluginRouteExclusions, buildStarterRouteExclusions, convertChildConfigToAppForm, copyFilteredFiles, detectGitRemoteUrl, fetchParentConfig, generateDatabaseMigrations, personalizeAgentsMd, personalizeConfig, removeStrayLockfiles, resolveSourceDir, runPnpmInstall, runTypesGen, scaffoldMinimalProject, writeDevOverlayTemplate, writeInitSnapshot } from "../cli/init.mjs";
|
|
4
|
+
import { openResolution } from "../resolution/session.mjs";
|
|
5
|
+
import { syncResolvedSharedDeps } from "../shared-deps.mjs";
|
|
6
|
+
import { generateCodeArtifacts } from "../code-artifacts.mjs";
|
|
7
|
+
import { makeProjectEnv } from "../env/project-env.mjs";
|
|
8
|
+
import { materializeViaLayer } from "../infra/materializer.mjs";
|
|
9
|
+
import { timePhase } from "../progress.mjs";
|
|
10
|
+
import { pruneUnusedUiFiles } from "../cli/prune.mjs";
|
|
11
|
+
import { existsSync } from "node:fs";
|
|
12
|
+
import { join, resolve } from "node:path";
|
|
13
|
+
import { Effect } from "effect";
|
|
14
|
+
import process from "node:process";
|
|
15
|
+
|
|
16
|
+
//#region src/commands/init.ts
|
|
17
|
+
async function fetchInitParent(extendsAccount, extendsGateway) {
|
|
18
|
+
const parentConfig = await fetchParentConfig(extendsAccount, extendsGateway);
|
|
19
|
+
return {
|
|
20
|
+
parentConfig,
|
|
21
|
+
parentPluginKeys: parentConfig?.plugins && typeof parentConfig.plugins === "object" ? Object.keys(parentConfig.plugins) : []
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function normalizeExtendsRef(extendsInput, fallback) {
|
|
25
|
+
if (!extendsInput) return fallback;
|
|
26
|
+
return extendsInput.startsWith("bos://") ? extendsInput : `bos://${extendsInput}`;
|
|
27
|
+
}
|
|
28
|
+
function registerInit(builder) {
|
|
29
|
+
return { init: builder.init.handler(async ({ input }) => {
|
|
30
|
+
try {
|
|
31
|
+
const timings = [];
|
|
32
|
+
let extendsAccount = "";
|
|
33
|
+
let extendsGateway = "";
|
|
34
|
+
let directory = input.directory;
|
|
35
|
+
const account = input.account;
|
|
36
|
+
const domain = input.domain;
|
|
37
|
+
let overrides = input.overrides;
|
|
38
|
+
let plugins = input.plugins;
|
|
39
|
+
if (input.extends) try {
|
|
40
|
+
const { accountId, gatewayId } = parseBosUrl(normalizeExtendsRef(input.extends, ""));
|
|
41
|
+
extendsAccount = accountId;
|
|
42
|
+
extendsGateway = gatewayId;
|
|
43
|
+
} catch {
|
|
44
|
+
extendsAccount = "";
|
|
45
|
+
extendsGateway = "";
|
|
46
|
+
}
|
|
47
|
+
extendsAccount = extendsAccount || "dev.everything.near";
|
|
48
|
+
extendsGateway = extendsGateway || "everything.dev";
|
|
49
|
+
directory = directory || domain || extendsGateway;
|
|
50
|
+
const targetDir = resolve(directory);
|
|
51
|
+
const extendsRef = `bos://${extendsAccount}/${extendsGateway}`;
|
|
52
|
+
let parentPluginKeys = [];
|
|
53
|
+
let parentConfig = null;
|
|
54
|
+
try {
|
|
55
|
+
const parent = await timePhase(timings, "parent config", () => fetchInitParent(extendsAccount, extendsGateway));
|
|
56
|
+
parentConfig = parent.parentConfig;
|
|
57
|
+
parentPluginKeys = parent.parentPluginKeys;
|
|
58
|
+
} catch (e) {
|
|
59
|
+
console.warn(`[init] Failed to fetch parent config from ${extendsAccount}/${extendsGateway}: ${e instanceof Error ? e.message : e}`);
|
|
60
|
+
return {
|
|
61
|
+
status: "error",
|
|
62
|
+
directory,
|
|
63
|
+
extendsRef,
|
|
64
|
+
account,
|
|
65
|
+
domain,
|
|
66
|
+
extends: extendsRef,
|
|
67
|
+
plugins,
|
|
68
|
+
overrides,
|
|
69
|
+
filesCopied: 0,
|
|
70
|
+
timings,
|
|
71
|
+
error: `No config found at ${extendsRef} — are you sure this is the right parent?`
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
overrides = overrides?.length ? overrides : ["ui", "api"];
|
|
75
|
+
const level = input.level ?? "simple";
|
|
76
|
+
if (overrides.includes("plugins") && plugins === void 0) plugins = parentPluginKeys;
|
|
77
|
+
plugins = plugins ?? [];
|
|
78
|
+
const pluginDirMap = {};
|
|
79
|
+
if (parentConfig?.plugins) for (const plugin of plugins) {
|
|
80
|
+
const entry = parentConfig.plugins?.[plugin];
|
|
81
|
+
if (entry && typeof entry === "object") {
|
|
82
|
+
const dev = entry.development;
|
|
83
|
+
if (typeof dev === "string") {
|
|
84
|
+
const match = dev.match(/^local:plugins\/(.+)$/);
|
|
85
|
+
if (match?.[1] && match[1] !== plugin) pluginDirMap[plugin] = match[1];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const repository = await detectGitRemoteUrl(process.cwd()).catch(() => void 0) ?? parentConfig?.repository;
|
|
90
|
+
const { sourceDir, parentConfig: resolvedParentConfig, cleanup } = await timePhase(timings, "template source", () => resolveSourceDir({
|
|
91
|
+
extendsAccount,
|
|
92
|
+
extendsGateway,
|
|
93
|
+
source: input.source
|
|
94
|
+
}));
|
|
95
|
+
parentConfig = resolvedParentConfig;
|
|
96
|
+
const isMinimalScaffold = sourceDir === "";
|
|
97
|
+
try {
|
|
98
|
+
let filesCopied;
|
|
99
|
+
let childBosConfig = null;
|
|
100
|
+
if (isMinimalScaffold) {
|
|
101
|
+
filesCopied = await timePhase(timings, "scaffold project", () => scaffoldMinimalProject(targetDir, parentConfig, {
|
|
102
|
+
extendsAccount,
|
|
103
|
+
extendsGateway,
|
|
104
|
+
account: account || extendsAccount,
|
|
105
|
+
domain,
|
|
106
|
+
plugins,
|
|
107
|
+
overrides,
|
|
108
|
+
repository,
|
|
109
|
+
title: parentConfig?.title,
|
|
110
|
+
description: parentConfig?.description,
|
|
111
|
+
starter: level
|
|
112
|
+
}));
|
|
113
|
+
await timePhase(timings, "personalize config", () => personalizeConfig(targetDir, {
|
|
114
|
+
extendsAccount,
|
|
115
|
+
extendsGateway,
|
|
116
|
+
account: account || extendsAccount,
|
|
117
|
+
domain: domain || extendsGateway,
|
|
118
|
+
plugins,
|
|
119
|
+
overrides,
|
|
120
|
+
mode: "init",
|
|
121
|
+
repository,
|
|
122
|
+
title: parentConfig?.title,
|
|
123
|
+
description: parentConfig?.description,
|
|
124
|
+
testnet: parentConfig?.testnet,
|
|
125
|
+
staging: parentConfig?.staging,
|
|
126
|
+
starter: level
|
|
127
|
+
}));
|
|
128
|
+
childBosConfig = await timePhase(timings, "authored config form", () => convertChildConfigToAppForm(targetDir));
|
|
129
|
+
writeDevOverlayTemplate(targetDir, { extendsRef: `bos://${extendsAccount}/${extendsGateway}` });
|
|
130
|
+
} else {
|
|
131
|
+
const patterns = buildInitPatterns(overrides, plugins, pluginDirMap);
|
|
132
|
+
const routeExclusions = overrides.includes("ui") ? buildPluginRouteExclusions(parentConfig, plugins) : [];
|
|
133
|
+
const starterExclusions = overrides.includes("ui") ? buildStarterRouteExclusions(level, parentConfig) : [];
|
|
134
|
+
const copyIgnore = [...routeExclusions, ...starterExclusions];
|
|
135
|
+
filesCopied = await timePhase(timings, "copy files", () => copyFilteredFiles(sourceDir, targetDir, patterns, {
|
|
136
|
+
overrides,
|
|
137
|
+
plugins,
|
|
138
|
+
ignore: copyIgnore
|
|
139
|
+
}));
|
|
140
|
+
if (!existsSync(join(targetDir, "bos.config.json"))) await saveBosConfig(targetDir, parentConfig);
|
|
141
|
+
await timePhase(timings, "personalize config", () => personalizeConfig(targetDir, {
|
|
142
|
+
extendsAccount,
|
|
143
|
+
extendsGateway,
|
|
144
|
+
account: account || extendsAccount,
|
|
145
|
+
domain: domain || extendsGateway,
|
|
146
|
+
plugins,
|
|
147
|
+
overrides,
|
|
148
|
+
workspaceOpts: { sourceDir },
|
|
149
|
+
repository,
|
|
150
|
+
title: parentConfig?.title,
|
|
151
|
+
description: parentConfig?.description,
|
|
152
|
+
testnet: parentConfig?.testnet,
|
|
153
|
+
staging: parentConfig?.staging,
|
|
154
|
+
starter: level
|
|
155
|
+
}));
|
|
156
|
+
childBosConfig = await timePhase(timings, "authored config form", () => convertChildConfigToAppForm(targetDir));
|
|
157
|
+
writeDevOverlayTemplate(targetDir, { extendsRef: `bos://${extendsAccount}/${extendsGateway}` });
|
|
158
|
+
if (overrides.includes("ui")) await timePhase(timings, "prune unused ui files", async () => pruneUnusedUiFiles(targetDir, { log: console.log }));
|
|
159
|
+
await timePhase(timings, "write snapshot", () => writeInitSnapshot(targetDir, extendsAccount, extendsGateway, sourceDir, patterns, {
|
|
160
|
+
overrides,
|
|
161
|
+
plugins,
|
|
162
|
+
ignore: copyIgnore,
|
|
163
|
+
starter: level
|
|
164
|
+
}));
|
|
165
|
+
await timePhase(timings, "personalize agents", () => personalizeAgentsMd(targetDir, {
|
|
166
|
+
overrides,
|
|
167
|
+
plugins
|
|
168
|
+
}));
|
|
169
|
+
}
|
|
170
|
+
await timePhase(timings, "sync shared deps", () => syncResolvedSharedDeps({
|
|
171
|
+
configDir: targetDir,
|
|
172
|
+
hostMode: "local",
|
|
173
|
+
bosConfig: childBosConfig ? childBosConfig : void 0
|
|
174
|
+
}));
|
|
175
|
+
removeStrayLockfiles(targetDir);
|
|
176
|
+
const initConfig = await timePhase(timings, "resolve config", () => openResolution({ cwd: targetDir }).catch((error) => {
|
|
177
|
+
console.warn("[init] Skipping config resolution — the child has no node_modules yet; `bos dev` resolves after `pnpm install`.", error instanceof Error ? error.message : error);
|
|
178
|
+
return null;
|
|
179
|
+
}));
|
|
180
|
+
const initRuntime = initConfig?.runtime;
|
|
181
|
+
if (initRuntime) await timePhase(timings, "generate env/docker", async () => {
|
|
182
|
+
await materializeViaLayer(targetDir, initRuntime);
|
|
183
|
+
});
|
|
184
|
+
await timePhase(timings, "create env file", async () => {
|
|
185
|
+
await Effect.runPromise(makeProjectEnv().ensureFile(targetDir));
|
|
186
|
+
});
|
|
187
|
+
if (!input.noInstall) {
|
|
188
|
+
await timePhase(timings, "install dependencies", () => runPnpmInstall(targetDir));
|
|
189
|
+
await timePhase(timings, "generate types", () => runTypesGen(targetDir));
|
|
190
|
+
await timePhase(timings, "generate migrations", () => generateDatabaseMigrations(targetDir));
|
|
191
|
+
}
|
|
192
|
+
const initArtifactsConfig = initConfig?.config;
|
|
193
|
+
if (input.noInstall && initArtifactsConfig) await timePhase(timings, "generate code artifacts", () => generateCodeArtifacts(targetDir, initArtifactsConfig));
|
|
194
|
+
return {
|
|
195
|
+
status: "initialized",
|
|
196
|
+
directory,
|
|
197
|
+
extendsRef,
|
|
198
|
+
account,
|
|
199
|
+
domain,
|
|
200
|
+
extends: extendsRef,
|
|
201
|
+
plugins,
|
|
202
|
+
overrides,
|
|
203
|
+
filesCopied,
|
|
204
|
+
timings,
|
|
205
|
+
targetDir
|
|
206
|
+
};
|
|
207
|
+
} finally {
|
|
208
|
+
await cleanup();
|
|
209
|
+
}
|
|
210
|
+
} catch (error) {
|
|
211
|
+
const extendsRef = normalizeExtendsRef(input.extends, "bos://dev.everything.near/everything.dev");
|
|
212
|
+
return {
|
|
213
|
+
status: "error",
|
|
214
|
+
directory: input.directory ?? "",
|
|
215
|
+
extendsRef,
|
|
216
|
+
account: input.account,
|
|
217
|
+
domain: input.domain,
|
|
218
|
+
extends: extendsRef,
|
|
219
|
+
plugins: input.plugins ?? [],
|
|
220
|
+
overrides: input.overrides,
|
|
221
|
+
filesCopied: 0,
|
|
222
|
+
timings: [],
|
|
223
|
+
error: error instanceof Error ? error.message : "Unknown error"
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
}) };
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
//#endregion
|
|
230
|
+
export { fetchInitParent, registerInit };
|
|
231
|
+
//# sourceMappingURL=init.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.mjs","names":[],"sources":["../../src/commands/init.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport process from \"node:process\";\nimport { Effect } from \"effect\";\nimport {\n buildInitPatterns,\n buildPluginRouteExclusions,\n buildStarterRouteExclusions,\n convertChildConfigToAppForm,\n copyFilteredFiles,\n detectGitRemoteUrl,\n fetchParentConfig,\n generateDatabaseMigrations,\n personalizeAgentsMd,\n personalizeConfig,\n removeStrayLockfiles,\n resolveSourceDir,\n runPnpmInstall,\n runTypesGen,\n scaffoldMinimalProject,\n writeDevOverlayTemplate,\n writeInitSnapshot,\n} from \"../cli/init\";\nimport { pruneUnusedUiFiles } from \"../cli/prune\";\nimport { generateCodeArtifacts } from \"../code-artifacts\";\nimport type { OverrideSection, PhaseTiming } from \"../contract\";\nimport { makeProjectEnv } from \"../env/project-env\";\nimport { parseBosUrl } from \"../fastkv\";\nimport { materializeViaLayer } from \"../infra/materializer\";\nimport { timePhase } from \"../progress\";\nimport { openResolution } from \"../resolution/session\";\nimport { syncResolvedSharedDeps } from \"../shared-deps\";\nimport type { BosConfig, BosConfigInput, StarterLevel } from \"../types\";\nimport { saveBosConfig } from \"../utils/save-config\";\nimport type { BosBuilder } from \"./shared\";\n\nexport async function fetchInitParent(\n extendsAccount: string,\n extendsGateway: string,\n): Promise<{ parentConfig: BosConfig; parentPluginKeys: string[] }> {\n const parentConfig = await fetchParentConfig(extendsAccount, extendsGateway);\n const parentPluginKeys =\n parentConfig?.plugins && typeof parentConfig.plugins === \"object\"\n ? Object.keys(parentConfig.plugins)\n : [];\n return { parentConfig, parentPluginKeys };\n}\n\nfunction normalizeExtendsRef(extendsInput: string | undefined, fallback: string): string {\n if (!extendsInput) return fallback;\n return extendsInput.startsWith(\"bos://\") ? extendsInput : `bos://${extendsInput}`;\n}\n\nexport function registerInit(builder: BosBuilder) {\n return {\n init: builder.init.handler(async ({ input }) => {\n try {\n const timings: PhaseTiming[] = [];\n let extendsAccount = \"\";\n let extendsGateway = \"\";\n let directory = input.directory;\n const account = input.account;\n const domain = input.domain;\n let overrides = input.overrides as OverrideSection[] | undefined;\n let plugins = input.plugins;\n\n if (input.extends) {\n try {\n const { accountId, gatewayId } = parseBosUrl(normalizeExtendsRef(input.extends, \"\"));\n extendsAccount = accountId;\n extendsGateway = gatewayId;\n } catch {\n extendsAccount = \"\";\n extendsGateway = \"\";\n }\n }\n\n extendsAccount = extendsAccount || \"dev.everything.near\";\n extendsGateway = extendsGateway || \"everything.dev\";\n\n directory = directory || domain || extendsGateway;\n const targetDir = resolve(directory);\n const extendsRef = `bos://${extendsAccount}/${extendsGateway}`;\n\n let parentPluginKeys: string[] = [];\n let parentConfig: BosConfig | null = null;\n try {\n const parent = await timePhase(timings, \"parent config\", () =>\n fetchInitParent(extendsAccount, extendsGateway),\n );\n parentConfig = parent.parentConfig;\n parentPluginKeys = parent.parentPluginKeys;\n } catch (e) {\n console.warn(\n `[init] Failed to fetch parent config from ${extendsAccount}/${extendsGateway}: ${\n e instanceof Error ? e.message : e\n }`,\n );\n return {\n status: \"error\" as const,\n directory,\n extendsRef,\n account,\n domain,\n extends: extendsRef,\n plugins,\n overrides,\n filesCopied: 0,\n timings,\n error: `No config found at ${extendsRef} — are you sure this is the right parent?`,\n };\n }\n\n overrides = overrides?.length ? overrides : ([\"ui\", \"api\"] as OverrideSection[]);\n const level: StarterLevel = input.level ?? \"simple\";\n if (overrides.includes(\"plugins\") && plugins === undefined) {\n plugins = parentPluginKeys;\n }\n plugins = plugins ?? [];\n\n const pluginDirMap: Record<string, string> = {};\n if (parentConfig?.plugins) {\n for (const plugin of plugins) {\n const entry = (parentConfig.plugins as Record<string, unknown>)?.[plugin];\n if (entry && typeof entry === \"object\") {\n const dev = (entry as Record<string, unknown>).development;\n if (typeof dev === \"string\") {\n const match = dev.match(/^local:plugins\\/(.+)$/);\n if (match?.[1] && match[1] !== plugin) pluginDirMap[plugin] = match[1];\n }\n }\n }\n }\n\n const repository =\n (await detectGitRemoteUrl(process.cwd()).catch(() => undefined)) ??\n parentConfig?.repository;\n\n const {\n sourceDir,\n parentConfig: resolvedParentConfig,\n cleanup,\n } = await timePhase(timings, \"template source\", () =>\n resolveSourceDir({\n extendsAccount,\n extendsGateway,\n source: input.source,\n }),\n );\n\n parentConfig = resolvedParentConfig;\n\n const isMinimalScaffold = sourceDir === \"\";\n\n try {\n let filesCopied: number;\n let childBosConfig: BosConfigInput | null = null;\n\n if (isMinimalScaffold) {\n filesCopied = await timePhase(timings, \"scaffold project\", () =>\n scaffoldMinimalProject(targetDir, parentConfig as unknown as BosConfigInput, {\n extendsAccount,\n extendsGateway,\n account: account || extendsAccount,\n domain,\n plugins,\n overrides,\n repository,\n title: parentConfig?.title,\n description: parentConfig?.description,\n starter: level,\n }),\n );\n\n await timePhase(timings, \"personalize config\", () =>\n personalizeConfig(targetDir, {\n extendsAccount,\n extendsGateway,\n account: account || extendsAccount,\n domain: domain || extendsGateway,\n plugins,\n overrides,\n mode: \"init\",\n repository,\n title: parentConfig?.title,\n description: parentConfig?.description,\n testnet: parentConfig?.testnet,\n staging: parentConfig?.staging,\n starter: level,\n }),\n );\n\n childBosConfig = await timePhase(timings, \"authored config form\", () =>\n convertChildConfigToAppForm(targetDir),\n );\n\n writeDevOverlayTemplate(targetDir, {\n extendsRef: `bos://${extendsAccount}/${extendsGateway}`,\n });\n } else {\n const patterns = buildInitPatterns(overrides, plugins, pluginDirMap);\n const routeExclusions = overrides.includes(\"ui\")\n ? buildPluginRouteExclusions(parentConfig, plugins)\n : [];\n const starterExclusions = overrides.includes(\"ui\")\n ? buildStarterRouteExclusions(level, parentConfig)\n : [];\n const copyIgnore = [...routeExclusions, ...starterExclusions];\n\n filesCopied = await timePhase(timings, \"copy files\", () =>\n copyFilteredFiles(sourceDir, targetDir, patterns, {\n overrides,\n plugins,\n ignore: copyIgnore,\n }),\n );\n\n // The child's authored config is always generated, never copied:\n // a TS-form parent's bos.app.ts imports everything-dev and cannot\n // load before the child's install. Write the JSON form from the\n // loaded parent config — the personalization +\n // convertChildConfigToAppForm below produce the child's own\n // authored bos.app.ts.\n if (!existsSync(join(targetDir, \"bos.config.json\"))) {\n await saveBosConfig(targetDir, parentConfig);\n }\n\n await timePhase(timings, \"personalize config\", () =>\n personalizeConfig(targetDir, {\n extendsAccount,\n extendsGateway,\n account: account || extendsAccount,\n domain: domain || extendsGateway,\n plugins,\n overrides,\n workspaceOpts: { sourceDir },\n repository,\n title: parentConfig?.title,\n description: parentConfig?.description,\n testnet: parentConfig?.testnet,\n staging: parentConfig?.staging,\n starter: level,\n }),\n );\n\n childBosConfig = await timePhase(timings, \"authored config form\", () =>\n convertChildConfigToAppForm(targetDir),\n );\n\n writeDevOverlayTemplate(targetDir, {\n extendsRef: `bos://${extendsAccount}/${extendsGateway}`,\n });\n\n if (overrides.includes(\"ui\")) {\n await timePhase(timings, \"prune unused ui files\", async () =>\n pruneUnusedUiFiles(targetDir, { log: console.log }),\n );\n }\n\n await timePhase(timings, \"write snapshot\", () =>\n writeInitSnapshot(targetDir, extendsAccount, extendsGateway, sourceDir, patterns, {\n overrides,\n plugins,\n ignore: copyIgnore,\n starter: level,\n }),\n );\n\n await timePhase(timings, \"personalize agents\", () =>\n personalizeAgentsMd(targetDir, { overrides, plugins }),\n );\n }\n\n await timePhase(timings, \"sync shared deps\", () =>\n syncResolvedSharedDeps({\n configDir: targetDir,\n hostMode: \"local\",\n bosConfig: childBosConfig\n ? (childBosConfig as unknown as Record<string, unknown>)\n : undefined,\n }),\n );\n\n // A stray lockfile (copied or left from a previous run) would pin\n // stale framework resolutions — the fresh install re-resolves.\n removeStrayLockfiles(targetDir);\n\n const initConfig = await timePhase(timings, \"resolve config\", () =>\n openResolution({ cwd: targetDir }).catch((error: unknown) => {\n console.warn(\n \"[init] Skipping config resolution — the child has no node_modules yet; `bos dev` resolves after `pnpm install`.\",\n error instanceof Error ? error.message : error,\n );\n return null;\n }),\n );\n const initRuntime = initConfig?.runtime;\n if (initRuntime) {\n await timePhase(timings, \"generate env/docker\", async () => {\n await materializeViaLayer(targetDir, initRuntime);\n });\n }\n await timePhase(timings, \"create env file\", async () => {\n await Effect.runPromise(makeProjectEnv().ensureFile(targetDir));\n });\n\n if (!input.noInstall) {\n await timePhase(timings, \"install dependencies\", () => runPnpmInstall(targetDir));\n await timePhase(timings, \"generate types\", () => runTypesGen(targetDir));\n await timePhase(timings, \"generate migrations\", () =>\n generateDatabaseMigrations(targetDir),\n );\n }\n\n const initArtifactsConfig = initConfig?.config;\n if (input.noInstall && initArtifactsConfig) {\n await timePhase(timings, \"generate code artifacts\", () =>\n generateCodeArtifacts(targetDir, initArtifactsConfig),\n );\n }\n\n return {\n status: \"initialized\" as const,\n directory,\n extendsRef,\n account,\n domain,\n extends: extendsRef,\n plugins,\n overrides,\n filesCopied,\n timings,\n targetDir,\n };\n } finally {\n await cleanup();\n }\n } catch (error) {\n const extendsRef = normalizeExtendsRef(\n input.extends,\n \"bos://dev.everything.near/everything.dev\",\n );\n return {\n status: \"error\" as const,\n directory: input.directory ?? \"\",\n extendsRef,\n account: input.account,\n domain: input.domain,\n extends: extendsRef,\n plugins: input.plugins ?? [],\n overrides: input.overrides,\n filesCopied: 0,\n timings: [],\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAoCA,eAAsB,gBACpB,gBACA,gBACkE;CAClE,MAAM,eAAe,MAAM,kBAAkB,gBAAgB,cAAc;CAK3E,OAAO;EAAE;EAAc,kBAHrB,cAAc,WAAW,OAAO,aAAa,YAAY,WACrD,OAAO,KAAK,aAAa,OAAO,IAChC,CAAC;CACiC;AAC1C;AAEA,SAAS,oBAAoB,cAAkC,UAA0B;CACvF,IAAI,CAAC,cAAc,OAAO;CAC1B,OAAO,aAAa,WAAW,QAAQ,IAAI,eAAe,SAAS;AACrE;AAEA,SAAgB,aAAa,SAAqB;CAChD,OAAO,EACL,MAAM,QAAQ,KAAK,QAAQ,OAAO,EAAE,YAAY;EAC9C,IAAI;GACF,MAAM,UAAyB,CAAC;GAChC,IAAI,iBAAiB;GACrB,IAAI,iBAAiB;GACrB,IAAI,YAAY,MAAM;GACtB,MAAM,UAAU,MAAM;GACtB,MAAM,SAAS,MAAM;GACrB,IAAI,YAAY,MAAM;GACtB,IAAI,UAAU,MAAM;GAEpB,IAAI,MAAM,SACR,IAAI;IACF,MAAM,EAAE,WAAW,cAAc,YAAY,oBAAoB,MAAM,SAAS,EAAE,CAAC;IACnF,iBAAiB;IACjB,iBAAiB;GACnB,QAAQ;IACN,iBAAiB;IACjB,iBAAiB;GACnB;GAGF,iBAAiB,kBAAkB;GACnC,iBAAiB,kBAAkB;GAEnC,YAAY,aAAa,UAAU;GACnC,MAAM,YAAY,QAAQ,SAAS;GACnC,MAAM,aAAa,SAAS,eAAe,GAAG;GAE9C,IAAI,mBAA6B,CAAC;GAClC,IAAI,eAAiC;GACrC,IAAI;IACF,MAAM,SAAS,MAAM,UAAU,SAAS,uBACtC,gBAAgB,gBAAgB,cAAc,CAChD;IACA,eAAe,OAAO;IACtB,mBAAmB,OAAO;GAC5B,SAAS,GAAG;IACV,QAAQ,KACN,6CAA6C,eAAe,GAAG,eAAe,IAC5E,aAAa,QAAQ,EAAE,UAAU,GAErC;IACA,OAAO;KACL,QAAQ;KACR;KACA;KACA;KACA;KACA,SAAS;KACT;KACA;KACA,aAAa;KACb;KACA,OAAO,sBAAsB,WAAW;IAC1C;GACF;GAEA,YAAY,WAAW,SAAS,YAAa,CAAC,MAAM,KAAK;GACzD,MAAM,QAAsB,MAAM,SAAS;GAC3C,IAAI,UAAU,SAAS,SAAS,KAAK,YAAY,QAC/C,UAAU;GAEZ,UAAU,WAAW,CAAC;GAEtB,MAAM,eAAuC,CAAC;GAC9C,IAAI,cAAc,SAChB,KAAK,MAAM,UAAU,SAAS;IAC5B,MAAM,QAAS,aAAa,UAAsC;IAClE,IAAI,SAAS,OAAO,UAAU,UAAU;KACtC,MAAM,MAAO,MAAkC;KAC/C,IAAI,OAAO,QAAQ,UAAU;MAC3B,MAAM,QAAQ,IAAI,MAAM,uBAAuB;MAC/C,IAAI,QAAQ,MAAM,MAAM,OAAO,QAAQ,aAAa,UAAU,MAAM;KACtE;IACF;GACF;GAGF,MAAM,aACH,MAAM,mBAAmB,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,MAAS,KAC9D,cAAc;GAEhB,MAAM,EACJ,WACA,cAAc,sBACd,YACE,MAAM,UAAU,SAAS,yBAC3B,iBAAiB;IACf;IACA;IACA,QAAQ,MAAM;GAChB,CAAC,CACH;GAEA,eAAe;GAEf,MAAM,oBAAoB,cAAc;GAExC,IAAI;IACF,IAAI;IACJ,IAAI,iBAAwC;IAE5C,IAAI,mBAAmB;KACrB,cAAc,MAAM,UAAU,SAAS,0BACrC,uBAAuB,WAAW,cAA2C;MAC3E;MACA;MACA,SAAS,WAAW;MACpB;MACA;MACA;MACA;MACA,OAAO,cAAc;MACrB,aAAa,cAAc;MAC3B,SAAS;KACX,CAAC,CACH;KAEA,MAAM,UAAU,SAAS,4BACvB,kBAAkB,WAAW;MAC3B;MACA;MACA,SAAS,WAAW;MACpB,QAAQ,UAAU;MAClB;MACA;MACA,MAAM;MACN;MACA,OAAO,cAAc;MACrB,aAAa,cAAc;MAC3B,SAAS,cAAc;MACvB,SAAS,cAAc;MACvB,SAAS;KACX,CAAC,CACH;KAEA,iBAAiB,MAAM,UAAU,SAAS,8BACxC,4BAA4B,SAAS,CACvC;KAEA,wBAAwB,WAAW,EACjC,YAAY,SAAS,eAAe,GAAG,iBACzC,CAAC;IACH,OAAO;KACL,MAAM,WAAW,kBAAkB,WAAW,SAAS,YAAY;KACnE,MAAM,kBAAkB,UAAU,SAAS,IAAI,IAC3C,2BAA2B,cAAc,OAAO,IAChD,CAAC;KACL,MAAM,oBAAoB,UAAU,SAAS,IAAI,IAC7C,4BAA4B,OAAO,YAAY,IAC/C,CAAC;KACL,MAAM,aAAa,CAAC,GAAG,iBAAiB,GAAG,iBAAiB;KAE5D,cAAc,MAAM,UAAU,SAAS,oBACrC,kBAAkB,WAAW,WAAW,UAAU;MAChD;MACA;MACA,QAAQ;KACV,CAAC,CACH;KAQA,IAAI,CAAC,WAAW,KAAK,WAAW,iBAAiB,CAAC,GAChD,MAAM,cAAc,WAAW,YAAY;KAG7C,MAAM,UAAU,SAAS,4BACvB,kBAAkB,WAAW;MAC3B;MACA;MACA,SAAS,WAAW;MACpB,QAAQ,UAAU;MAClB;MACA;MACA,eAAe,EAAE,UAAU;MAC3B;MACA,OAAO,cAAc;MACrB,aAAa,cAAc;MAC3B,SAAS,cAAc;MACvB,SAAS,cAAc;MACvB,SAAS;KACX,CAAC,CACH;KAEA,iBAAiB,MAAM,UAAU,SAAS,8BACxC,4BAA4B,SAAS,CACvC;KAEA,wBAAwB,WAAW,EACjC,YAAY,SAAS,eAAe,GAAG,iBACzC,CAAC;KAED,IAAI,UAAU,SAAS,IAAI,GACzB,MAAM,UAAU,SAAS,yBAAyB,YAChD,mBAAmB,WAAW,EAAE,KAAK,QAAQ,IAAI,CAAC,CACpD;KAGF,MAAM,UAAU,SAAS,wBACvB,kBAAkB,WAAW,gBAAgB,gBAAgB,WAAW,UAAU;MAChF;MACA;MACA,QAAQ;MACR,SAAS;KACX,CAAC,CACH;KAEA,MAAM,UAAU,SAAS,4BACvB,oBAAoB,WAAW;MAAE;MAAW;KAAQ,CAAC,CACvD;IACF;IAEA,MAAM,UAAU,SAAS,0BACvB,uBAAuB;KACrB,WAAW;KACX,UAAU;KACV,WAAW,iBACN,iBACD;IACN,CAAC,CACH;IAIA,qBAAqB,SAAS;IAE9B,MAAM,aAAa,MAAM,UAAU,SAAS,wBAC1C,eAAe,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,UAAmB;KAC3D,QAAQ,KACN,mHACA,iBAAiB,QAAQ,MAAM,UAAU,KAC3C;KACA,OAAO;IACT,CAAC,CACH;IACA,MAAM,cAAc,YAAY;IAChC,IAAI,aACF,MAAM,UAAU,SAAS,uBAAuB,YAAY;KAC1D,MAAM,oBAAoB,WAAW,WAAW;IAClD,CAAC;IAEH,MAAM,UAAU,SAAS,mBAAmB,YAAY;KACtD,MAAM,OAAO,WAAW,eAAe,CAAC,CAAC,WAAW,SAAS,CAAC;IAChE,CAAC;IAED,IAAI,CAAC,MAAM,WAAW;KACpB,MAAM,UAAU,SAAS,8BAA8B,eAAe,SAAS,CAAC;KAChF,MAAM,UAAU,SAAS,wBAAwB,YAAY,SAAS,CAAC;KACvE,MAAM,UAAU,SAAS,6BACvB,2BAA2B,SAAS,CACtC;IACF;IAEA,MAAM,sBAAsB,YAAY;IACxC,IAAI,MAAM,aAAa,qBACrB,MAAM,UAAU,SAAS,iCACvB,sBAAsB,WAAW,mBAAmB,CACtD;IAGF,OAAO;KACL,QAAQ;KACR;KACA;KACA;KACA;KACA,SAAS;KACT;KACA;KACA;KACA;KACA;IACF;GACF,UAAU;IACR,MAAM,QAAQ;GAChB;EACF,SAAS,OAAO;GACd,MAAM,aAAa,oBACjB,MAAM,SACN,0CACF;GACA,OAAO;IACL,QAAQ;IACR,WAAW,MAAM,aAAa;IAC9B;IACA,SAAS,MAAM;IACf,QAAQ,MAAM;IACd,SAAS;IACT,SAAS,MAAM,WAAW,CAAC;IAC3B,WAAW,MAAM;IACjB,aAAa;IACb,SAAS,CAAC;IACV,OAAO,iBAAiB,QAAQ,MAAM,UAAU;GAClD;EACF;CACF,CAAC,EACH;AACF"}
|