container-superposition 0.1.1 → 0.1.3-pr.159.17
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 +88 -811
- package/dist/scripts/generate-schema.d.ts +14 -0
- package/dist/scripts/generate-schema.d.ts.map +1 -0
- package/dist/scripts/generate-schema.js +406 -0
- package/dist/scripts/generate-schema.js.map +1 -0
- package/dist/scripts/init.js +1 -1187
- package/dist/scripts/init.js.map +1 -1
- package/dist/tool/cli/args.d.ts +20 -0
- package/dist/tool/cli/args.d.ts.map +1 -0
- package/dist/tool/cli/args.js +325 -0
- package/dist/tool/cli/args.js.map +1 -0
- package/dist/tool/cli/run.d.ts +2 -0
- package/dist/tool/cli/run.d.ts.map +1 -0
- package/dist/tool/cli/run.js +318 -0
- package/dist/tool/cli/run.js.map +1 -0
- package/dist/tool/commands/adopt.d.ts +63 -0
- package/dist/tool/commands/adopt.d.ts.map +1 -0
- package/dist/tool/commands/adopt.js +1072 -0
- package/dist/tool/commands/adopt.js.map +1 -0
- package/dist/tool/commands/doctor.d.ts +19 -0
- package/dist/tool/commands/doctor.d.ts.map +1 -0
- package/dist/tool/commands/doctor.js +3157 -0
- package/dist/tool/commands/doctor.js.map +1 -0
- package/dist/tool/commands/explain.d.ts +13 -0
- package/dist/tool/commands/explain.d.ts.map +1 -0
- package/dist/tool/commands/explain.js +317 -0
- package/dist/tool/commands/explain.js.map +1 -0
- package/dist/tool/commands/hash.d.ts +36 -0
- package/dist/tool/commands/hash.d.ts.map +1 -0
- package/dist/tool/commands/hash.js +242 -0
- package/dist/tool/commands/hash.js.map +1 -0
- package/dist/tool/commands/list.d.ts +16 -0
- package/dist/tool/commands/list.d.ts.map +1 -0
- package/dist/tool/commands/list.js +121 -0
- package/dist/tool/commands/list.js.map +1 -0
- package/dist/tool/commands/migrate.d.ts +7 -0
- package/dist/tool/commands/migrate.d.ts.map +1 -0
- package/dist/tool/commands/migrate.js +52 -0
- package/dist/tool/commands/migrate.js.map +1 -0
- package/dist/tool/commands/plan.d.ts +69 -0
- package/dist/tool/commands/plan.d.ts.map +1 -0
- package/dist/tool/commands/plan.js +1071 -0
- package/dist/tool/commands/plan.js.map +1 -0
- package/dist/tool/questionnaire/answers.d.ts +16 -0
- package/dist/tool/questionnaire/answers.d.ts.map +1 -0
- package/dist/tool/questionnaire/answers.js +102 -0
- package/dist/tool/questionnaire/answers.js.map +1 -0
- package/dist/tool/questionnaire/composer.d.ts +18 -2
- package/dist/tool/questionnaire/composer.d.ts.map +1 -1
- package/dist/tool/questionnaire/composer.js +1544 -215
- package/dist/tool/questionnaire/composer.js.map +1 -1
- package/dist/tool/questionnaire/presets.d.ts +60 -0
- package/dist/tool/questionnaire/presets.d.ts.map +1 -0
- package/dist/tool/questionnaire/presets.js +165 -0
- package/dist/tool/questionnaire/presets.js.map +1 -0
- package/dist/tool/questionnaire/questionnaire.d.ts +10 -0
- package/dist/tool/questionnaire/questionnaire.d.ts.map +1 -0
- package/dist/tool/questionnaire/questionnaire.js +582 -0
- package/dist/tool/questionnaire/questionnaire.js.map +1 -0
- package/dist/tool/readme/markdown-parser.d.ts.map +1 -1
- package/dist/tool/readme/markdown-parser.js.map +1 -1
- package/dist/tool/readme/readme-generator.d.ts.map +1 -1
- package/dist/tool/readme/readme-generator.js +12 -7
- package/dist/tool/readme/readme-generator.js.map +1 -1
- package/dist/tool/schema/deployment-targets.d.ts +77 -0
- package/dist/tool/schema/deployment-targets.d.ts.map +1 -0
- package/dist/tool/schema/deployment-targets.js +91 -0
- package/dist/tool/schema/deployment-targets.js.map +1 -0
- package/dist/tool/schema/manifest-migrations.d.ts +56 -0
- package/dist/tool/schema/manifest-migrations.d.ts.map +1 -0
- package/dist/tool/schema/manifest-migrations.js +204 -0
- package/dist/tool/schema/manifest-migrations.js.map +1 -0
- package/dist/tool/schema/overlay-loader.d.ts +1 -1
- package/dist/tool/schema/overlay-loader.d.ts.map +1 -1
- package/dist/tool/schema/overlay-loader.js +67 -14
- package/dist/tool/schema/overlay-loader.js.map +1 -1
- package/dist/tool/schema/project-config.d.ts +36 -0
- package/dist/tool/schema/project-config.d.ts.map +1 -0
- package/dist/tool/schema/project-config.js +862 -0
- package/dist/tool/schema/project-config.js.map +1 -0
- package/dist/tool/schema/target-rules.d.ts +78 -0
- package/dist/tool/schema/target-rules.d.ts.map +1 -0
- package/dist/tool/schema/target-rules.js +367 -0
- package/dist/tool/schema/target-rules.js.map +1 -0
- package/dist/tool/schema/types.d.ts +269 -8
- package/dist/tool/schema/types.d.ts.map +1 -1
- package/dist/tool/utils/backup.d.ts +23 -0
- package/dist/tool/utils/backup.d.ts.map +1 -0
- package/dist/tool/utils/backup.js +123 -0
- package/dist/tool/utils/backup.js.map +1 -0
- package/dist/tool/utils/gitignore.d.ts +15 -0
- package/dist/tool/utils/gitignore.d.ts.map +1 -0
- package/dist/tool/utils/gitignore.js +41 -0
- package/dist/tool/utils/gitignore.js.map +1 -0
- package/dist/tool/utils/merge.d.ts +134 -0
- package/dist/tool/utils/merge.d.ts.map +1 -0
- package/dist/tool/utils/merge.js +286 -0
- package/dist/tool/utils/merge.js.map +1 -0
- package/dist/tool/utils/parameters.d.ts +76 -0
- package/dist/tool/utils/parameters.d.ts.map +1 -0
- package/dist/tool/utils/parameters.js +125 -0
- package/dist/tool/utils/parameters.js.map +1 -0
- package/dist/tool/utils/paths.d.ts +2 -0
- package/dist/tool/utils/paths.d.ts.map +1 -0
- package/dist/tool/utils/paths.js +31 -0
- package/dist/tool/utils/paths.js.map +1 -0
- package/dist/tool/utils/port-utils.d.ts +29 -0
- package/dist/tool/utils/port-utils.d.ts.map +1 -0
- package/dist/tool/utils/port-utils.js +128 -0
- package/dist/tool/utils/port-utils.js.map +1 -0
- package/dist/tool/utils/services-export.d.ts +14 -0
- package/dist/tool/utils/services-export.d.ts.map +1 -0
- package/dist/tool/utils/services-export.js +478 -0
- package/dist/tool/utils/services-export.js.map +1 -0
- package/dist/tool/utils/summary.d.ts +69 -0
- package/dist/tool/utils/summary.d.ts.map +1 -0
- package/dist/tool/utils/summary.js +260 -0
- package/dist/tool/utils/summary.js.map +1 -0
- package/dist/tool/utils/version.d.ts +9 -0
- package/dist/tool/utils/version.d.ts.map +1 -0
- package/dist/tool/utils/version.js +32 -0
- package/dist/tool/utils/version.js.map +1 -0
- package/docs/README.md +13 -2
- package/docs/adopt.md +202 -0
- package/docs/architecture.md +25 -21
- package/docs/creating-overlays.md +151 -2
- package/docs/custom-patches.md +1 -1
- package/docs/deployment-targets.md +182 -0
- package/docs/discovery-commands.md +494 -0
- package/docs/examples.md +58 -21
- package/docs/filesystem-contract.md +63 -0
- package/docs/hash.md +183 -0
- package/docs/merge-strategy.md +700 -0
- package/docs/minimal-and-editor.md +325 -0
- package/docs/overlay-imports.md +310 -0
- package/docs/overlay-manifest-refactoring.md +2 -2
- package/docs/overlay-metadata-archive.md +1 -1
- package/docs/overlays.md +483 -123
- package/docs/presets-architecture.md +4 -4
- package/docs/presets.md +2 -2
- package/docs/publishing.md +72 -58
- package/docs/quick-reference.md +99 -0
- package/docs/security.md +43 -0
- package/docs/specs/001-verbose-plan-graph/checklists/requirements.md +36 -0
- package/docs/specs/001-verbose-plan-graph/contracts/plan-verbose-output.md +96 -0
- package/docs/specs/001-verbose-plan-graph/data-model.md +111 -0
- package/docs/specs/001-verbose-plan-graph/plan.md +127 -0
- package/docs/specs/001-verbose-plan-graph/quickstart.md +106 -0
- package/docs/specs/001-verbose-plan-graph/research.md +100 -0
- package/docs/specs/001-verbose-plan-graph/spec.md +121 -0
- package/docs/specs/001-verbose-plan-graph/tasks.md +223 -0
- package/docs/specs/002-superposition-config-file/checklists/requirements.md +36 -0
- package/docs/specs/002-superposition-config-file/contracts/init-project-config.md +98 -0
- package/docs/specs/002-superposition-config-file/data-model.md +126 -0
- package/docs/specs/002-superposition-config-file/plan.md +213 -0
- package/docs/specs/002-superposition-config-file/quickstart.md +140 -0
- package/docs/specs/002-superposition-config-file/research.md +144 -0
- package/docs/specs/002-superposition-config-file/spec.md +129 -0
- package/docs/specs/002-superposition-config-file/tasks.md +215 -0
- package/docs/specs/003-mkdocs2-overlay/spec.md +107 -0
- package/docs/specs/004-doctor-fix/spec.md +63 -0
- package/docs/specs/005-cuda-overlay/spec.md +94 -0
- package/docs/specs/006-rocm-overlay/spec.md +102 -0
- package/docs/specs/007-target-aware-generation/spec.md +119 -0
- package/docs/specs/008-project-file-canonical/spec.md +82 -0
- package/docs/specs/009-project-env/spec.md +140 -0
- package/docs/specs/010-compose-env-materialization/spec.md +123 -0
- package/docs/specs/011-overlay-parameters/spec.md +228 -0
- package/docs/specs/012-ollama-cli-overlay/spec.md +47 -0
- package/docs/specs/013-doctor-dependency-check/spec.md +250 -0
- package/docs/specs/014-doctor-compose-port-cross-validation/spec.md +276 -0
- package/docs/specs/015-doctor-env-example-drift/spec.md +248 -0
- package/docs/specs/016-doctor-reproducibility-check/spec.md +276 -0
- package/docs/specs/017-doctor-dry-run/spec.md +276 -0
- package/docs/specs/018-init-project-file/spec.md +59 -0
- package/docs/specs/019-project-mounts/spec.md +176 -0
- package/docs/specs/020-superposition-yml-schema.md +83 -0
- package/docs/specs/021-deterministic-generated-readme/spec.md +70 -0
- package/docs/specs/taxonomy.md +186 -0
- package/docs/superposition-yml.md +481 -0
- package/docs/team-workflow.md +572 -0
- package/docs/workflows.md +139 -0
- package/features/cross-distro-packages/README.md +18 -0
- package/features/cross-distro-packages/devcontainer-feature.json +3 -3
- package/features/cross-distro-packages/install.sh +49 -7
- package/overlays/.presets/data-engineering.yml +392 -0
- package/overlays/.presets/event-sourced-service.yml +262 -0
- package/overlays/.presets/frontend.yml +287 -0
- package/overlays/.presets/full-observability.yml +113 -0
- package/overlays/.presets/k8s-dev.yml +174 -0
- package/overlays/.presets/k8s-operator-dev.yml +462 -0
- package/overlays/.presets/local-llm.yml +105 -0
- package/overlays/{presets → .presets}/microservice.yml +32 -6
- package/overlays/.presets/sdd.yml +84 -0
- package/overlays/.presets/vector-ai.yml +150 -0
- package/overlays/.presets/web-api.yml +129 -0
- package/overlays/.registry/README.md +1 -1
- package/overlays/.registry/deployment-targets.yml +54 -0
- package/overlays/.shared/README.md +127 -0
- package/overlays/.shared/compose/common-healthchecks.md +60 -0
- package/overlays/.shared/compose/nvidia-gpu-devcontainer.yml +22 -0
- package/overlays/.shared/otel/instrumentation.env +20 -0
- package/overlays/.shared/vscode/js-ts-settings.json +19 -0
- package/overlays/.shared/vscode/markdown-extensions.json +8 -0
- package/overlays/.shared/vscode/recommended-extensions.json +18 -0
- package/overlays/README.md +8 -2
- package/overlays/alertmanager/devcontainer.patch.json +0 -1
- package/overlays/alertmanager/docker-compose.yml +8 -0
- package/overlays/alertmanager/overlay.yml +1 -0
- package/overlays/alertmanager/setup.sh +4 -19
- package/overlays/alertmanager/verify.sh +8 -9
- package/overlays/all/README.md +43 -0
- package/overlays/all/devcontainer.patch.json +6 -0
- package/overlays/all/overlay.yml +14 -0
- package/overlays/amp/README.md +70 -0
- package/overlays/amp/devcontainer.patch.json +6 -0
- package/overlays/amp/overlay.yml +15 -0
- package/overlays/amp/setup.sh +26 -0
- package/overlays/amp/verify.sh +21 -0
- package/overlays/ansible/README.md +163 -0
- package/overlays/ansible/devcontainer.patch.json +14 -0
- package/overlays/ansible/overlay.yml +18 -0
- package/overlays/argocd/README.md +158 -0
- package/overlays/argocd/devcontainer.patch.json +9 -0
- package/overlays/argocd/overlay.yml +17 -0
- package/overlays/argocd/setup.sh +29 -0
- package/overlays/argocd/verify.sh +14 -0
- package/overlays/bun/devcontainer.patch.json +1 -10
- package/overlays/bun/overlay.yml +8 -1
- package/overlays/bun/setup.sh +10 -1
- package/overlays/bun/verify.sh +6 -1
- package/overlays/claude-code/README.md +83 -0
- package/overlays/claude-code/devcontainer.patch.json +8 -0
- package/overlays/claude-code/overlay.yml +15 -0
- package/overlays/claude-code/setup.sh +26 -0
- package/overlays/claude-code/verify.sh +21 -0
- package/overlays/cloudflared/README.md +190 -0
- package/overlays/cloudflared/devcontainer.patch.json +3 -0
- package/overlays/cloudflared/overlay.yml +15 -0
- package/overlays/cloudflared/setup.sh +46 -0
- package/overlays/cloudflared/verify.sh +21 -0
- package/overlays/codex/README.md +9 -6
- package/overlays/codex/devcontainer.patch.json +12 -1
- package/overlays/codex/overlay.yml +1 -0
- package/overlays/codex/setup.sh +5 -0
- package/overlays/codex/verify.sh +8 -0
- package/overlays/comfyui/.env.example +34 -0
- package/overlays/comfyui/README.md +342 -0
- package/overlays/comfyui/devcontainer.patch.json +15 -0
- package/overlays/comfyui/docker-compose.yml +40 -0
- package/overlays/comfyui/overlay.yml +24 -0
- package/overlays/comfyui/setup.sh +36 -0
- package/overlays/comfyui/verify.sh +103 -0
- package/overlays/commitlint/devcontainer.patch.json +1 -6
- package/overlays/commitlint/setup.sh +5 -0
- package/overlays/cuda/README.md +179 -0
- package/overlays/cuda/devcontainer.patch.json +7 -0
- package/overlays/cuda/overlay.yml +17 -0
- package/overlays/cuda/setup.sh +32 -0
- package/overlays/cuda/verify.sh +38 -0
- package/overlays/devcontainer-cli/README.md +50 -0
- package/overlays/devcontainer-cli/devcontainer.patch.json +13 -0
- package/overlays/devcontainer-cli/overlay.yml +16 -0
- package/overlays/devcontainer-cli/setup.sh +14 -0
- package/overlays/direnv/README.md +6 -4
- package/overlays/direnv/devcontainer.patch.json +6 -0
- package/overlays/direnv/setup.sh +7 -18
- package/overlays/docker-sock/overlay.yml +1 -0
- package/overlays/dotnet/overlay.yml +4 -1
- package/overlays/dotnet/setup.sh +14 -7
- package/overlays/duckdb/README.md +274 -0
- package/overlays/duckdb/devcontainer.patch.json +9 -0
- package/overlays/duckdb/overlay.yml +17 -0
- package/overlays/duckdb/setup.sh +45 -0
- package/overlays/duckdb/verify.sh +32 -0
- package/overlays/fuseki/.env.example +5 -0
- package/overlays/fuseki/README.md +173 -0
- package/overlays/fuseki/devcontainer.patch.json +18 -0
- package/overlays/fuseki/docker-compose.yml +30 -0
- package/overlays/fuseki/overlay.yml +42 -0
- package/overlays/fuseki/verify.sh +58 -0
- package/overlays/gcloud/devcontainer.patch.json +0 -6
- package/overlays/gcloud/setup.sh +51 -0
- package/overlays/gemini-cli/README.md +77 -0
- package/overlays/gemini-cli/devcontainer.patch.json +6 -0
- package/overlays/gemini-cli/overlay.yml +15 -0
- package/overlays/gemini-cli/setup.sh +26 -0
- package/overlays/gemini-cli/verify.sh +21 -0
- package/overlays/git-helpers/devcontainer.patch.json +2 -1
- package/overlays/git-helpers/overlay.yml +1 -0
- package/overlays/go/overlay.yml +6 -1
- package/overlays/go/setup.sh +15 -14
- package/overlays/grafana/README.md +5 -5
- package/overlays/grafana/dashboard-provider.yml +1 -1
- package/overlays/grafana/devcontainer.patch.json +0 -1
- package/overlays/grafana/docker-compose.yml +10 -4
- package/overlays/grafana/overlay.yml +12 -2
- package/overlays/grpc-tools/README.md +242 -0
- package/overlays/grpc-tools/devcontainer.patch.json +14 -0
- package/overlays/grpc-tools/overlay.yml +14 -0
- package/overlays/grpc-tools/setup.sh +57 -0
- package/overlays/grpc-tools/verify.sh +47 -0
- package/overlays/jaeger/.env.example +11 -0
- package/overlays/jaeger/README.md +33 -4
- package/overlays/jaeger/devcontainer.patch.json +9 -1
- package/overlays/jaeger/docker-compose.yml +17 -0
- package/overlays/jaeger/overlay.yml +7 -3
- package/overlays/java/overlay.yml +6 -1
- package/overlays/jupyter/.env.example +6 -0
- package/overlays/jupyter/README.md +210 -0
- package/overlays/jupyter/devcontainer.patch.json +14 -0
- package/overlays/jupyter/docker-compose.yml +24 -0
- package/overlays/jupyter/overlay.yml +19 -0
- package/overlays/jupyter/verify.sh +35 -0
- package/overlays/just/setup.sh +5 -17
- package/overlays/k3d/README.md +201 -0
- package/overlays/k3d/devcontainer.patch.json +9 -0
- package/overlays/k3d/overlay.yml +19 -0
- package/overlays/k3d/setup.sh +34 -0
- package/overlays/k3d/verify.sh +38 -0
- package/overlays/keycloak/.env.example +5 -0
- package/overlays/keycloak/README.md +238 -0
- package/overlays/keycloak/devcontainer.patch.json +16 -0
- package/overlays/keycloak/docker-compose.yml +35 -0
- package/overlays/keycloak/overlay.yml +38 -0
- package/overlays/keycloak/verify.sh +55 -0
- package/overlays/kind/README.md +221 -0
- package/overlays/kind/devcontainer.patch.json +9 -0
- package/overlays/kind/overlay.yml +18 -0
- package/overlays/kind/setup.sh +34 -0
- package/overlays/kind/verify.sh +40 -0
- package/overlays/localstack/.env.example +6 -0
- package/overlays/localstack/README.md +188 -0
- package/overlays/localstack/devcontainer.patch.json +21 -0
- package/overlays/localstack/docker-compose.yml +26 -0
- package/overlays/localstack/overlay.yml +36 -0
- package/overlays/localstack/verify.sh +47 -0
- package/overlays/loki/devcontainer.patch.json +0 -1
- package/overlays/loki/docker-compose.yml +8 -0
- package/overlays/loki/overlay.yml +7 -1
- package/overlays/mailpit/.env.example +4 -0
- package/overlays/mailpit/README.md +191 -0
- package/overlays/mailpit/devcontainer.patch.json +20 -0
- package/overlays/mailpit/docker-compose.yml +18 -0
- package/overlays/mailpit/overlay.yml +27 -0
- package/overlays/mailpit/verify.sh +52 -0
- package/overlays/minio/devcontainer.patch.json +1 -1
- package/overlays/minio/docker-compose.yml +1 -0
- package/overlays/minio/overlay.yml +23 -2
- package/overlays/minio/setup.sh +10 -18
- package/overlays/mkdocs/devcontainer.patch.json +1 -5
- package/overlays/mkdocs/overlay.yml +5 -2
- package/overlays/mkdocs2/README.md +135 -0
- package/overlays/mkdocs2/devcontainer.patch.json +15 -0
- package/overlays/mkdocs2/overlay.yml +19 -0
- package/overlays/mkdocs2/setup.sh +67 -0
- package/overlays/mkdocs2/verify.sh +35 -0
- package/overlays/modern-cli-tools/devcontainer.patch.json +7 -1
- package/overlays/modern-cli-tools/overlay.yml +1 -0
- package/overlays/modern-cli-tools/setup.sh +21 -71
- package/overlays/mongodb/devcontainer.patch.json +0 -6
- package/overlays/mongodb/docker-compose.yml +2 -0
- package/overlays/mongodb/overlay.yml +38 -4
- package/overlays/mongodb/setup.sh +59 -0
- package/overlays/mysql/docker-compose.yml +2 -0
- package/overlays/mysql/overlay.yml +48 -4
- package/overlays/mysql/verify.sh +4 -3
- package/overlays/nats/.env.example +1 -1
- package/overlays/nats/README.md +1 -1
- package/overlays/nats/docker-compose.yml +2 -1
- package/overlays/nats/overlay.yml +30 -4
- package/overlays/ngrok/overlay.yml +2 -1
- package/overlays/ngrok/setup.sh +9 -6
- package/overlays/nodejs/devcontainer.patch.json +1 -12
- package/overlays/nodejs/overlay.yml +8 -1
- package/overlays/nodejs/setup.sh +5 -0
- package/overlays/ollama/.env.example +14 -0
- package/overlays/ollama/README.md +326 -0
- package/overlays/ollama/devcontainer.patch.json +14 -0
- package/overlays/ollama/docker-compose.yml +25 -0
- package/overlays/ollama/overlay.yml +27 -0
- package/overlays/ollama/verify.sh +76 -0
- package/overlays/ollama-cli/README.md +90 -0
- package/overlays/ollama-cli/devcontainer.patch.json +3 -0
- package/overlays/ollama-cli/overlay.yml +19 -0
- package/overlays/ollama-cli/setup.sh +103 -0
- package/overlays/ollama-cli/verify.sh +49 -0
- package/overlays/open-webui/.env.example +5 -0
- package/overlays/open-webui/README.md +162 -0
- package/overlays/open-webui/devcontainer.patch.json +14 -0
- package/overlays/open-webui/docker-compose.yml +24 -0
- package/overlays/open-webui/overlay.yml +45 -0
- package/overlays/openapi-tools/README.md +243 -0
- package/overlays/openapi-tools/devcontainer.patch.json +9 -0
- package/overlays/openapi-tools/overlay.yml +16 -0
- package/overlays/openapi-tools/setup.sh +46 -0
- package/overlays/openapi-tools/verify.sh +51 -0
- package/overlays/opencode/README.md +76 -0
- package/overlays/opencode/devcontainer.patch.json +6 -0
- package/overlays/opencode/overlay.yml +14 -0
- package/overlays/opencode/setup.sh +26 -0
- package/overlays/opencode/verify.sh +21 -0
- package/overlays/otel-collector/README.md +4 -0
- package/overlays/otel-collector/devcontainer.patch.json +4 -1
- package/overlays/otel-collector/docker-compose.yml +8 -4
- package/overlays/otel-collector/overlay.yml +3 -0
- package/overlays/otel-collector/overlay.yml.example +26 -0
- package/overlays/otel-collector/setup.sh +3 -16
- package/overlays/otel-demo-nodejs/devcontainer.patch.json +0 -1
- package/overlays/otel-demo-nodejs/docker-compose.yml +1 -0
- package/overlays/otel-demo-nodejs/overlay.yml +9 -1
- package/overlays/otel-demo-nodejs/verify.sh +8 -9
- package/overlays/otel-demo-python/devcontainer.patch.json +0 -1
- package/overlays/otel-demo-python/docker-compose.yml +1 -0
- package/overlays/otel-demo-python/overlay.yml +6 -1
- package/overlays/otel-demo-python/verify.sh +16 -10
- package/overlays/pandoc/README.md +296 -0
- package/overlays/pandoc/devcontainer.patch.json +13 -0
- package/overlays/pandoc/overlay.yml +21 -0
- package/overlays/pandoc/setup.sh +303 -0
- package/overlays/pandoc/verify.sh +25 -0
- package/overlays/pgvector/.env.example +6 -0
- package/overlays/pgvector/README.md +215 -0
- package/overlays/pgvector/devcontainer.patch.json +29 -0
- package/overlays/pgvector/docker-compose.yml +33 -0
- package/overlays/pgvector/overlay.yml +47 -0
- package/overlays/pi/README.md +141 -0
- package/overlays/pi/devcontainer.patch.json +6 -0
- package/overlays/pi/overlay.yml +15 -0
- package/overlays/pi/setup.sh +28 -0
- package/overlays/pi/verify.sh +23 -0
- package/overlays/playwright/devcontainer.patch.json +3 -6
- package/overlays/playwright/overlay.yml +2 -1
- package/overlays/playwright/setup.sh +37 -0
- package/overlays/postgres/.env.example +5 -5
- package/overlays/postgres/devcontainer.patch.json +4 -4
- package/overlays/postgres/docker-compose.yml +16 -5
- package/overlays/postgres/overlay.yml +29 -3
- package/overlays/powershell/setup.sh +49 -13
- package/overlays/pre-commit/devcontainer.patch.json +1 -7
- package/overlays/pre-commit/setup.sh +12 -3
- package/overlays/prometheus/devcontainer.patch.json +0 -1
- package/overlays/prometheus/docker-compose.yml +8 -0
- package/overlays/prometheus/overlay.yml +9 -1
- package/overlays/promtail/devcontainer.patch.json +1 -2
- package/overlays/promtail/docker-compose.yml +8 -0
- package/overlays/promtail/overlay.yml +1 -0
- package/overlays/promtail/verify.sh +16 -10
- package/overlays/pulumi/devcontainer.patch.json +1 -1
- package/overlays/python/README.md +51 -35
- package/overlays/python/devcontainer.patch.json +7 -4
- package/overlays/python/setup.sh +69 -23
- package/overlays/python/verify.sh +33 -3
- package/overlays/qdrant/.env.example +4 -0
- package/overlays/qdrant/README.md +216 -0
- package/overlays/qdrant/devcontainer.patch.json +20 -0
- package/overlays/qdrant/docker-compose.yml +26 -0
- package/overlays/qdrant/overlay.yml +44 -0
- package/overlays/rabbitmq/docker-compose.yml +1 -0
- package/overlays/rabbitmq/overlay.yml +37 -4
- package/overlays/redis/docker-compose.yml +7 -0
- package/overlays/redis/overlay.yml +21 -2
- package/overlays/redpanda/docker-compose.yml +4 -5
- package/overlays/redpanda/overlay.yml +15 -3
- package/overlays/rocm/README.md +227 -0
- package/overlays/rocm/devcontainer.patch.json +4 -0
- package/overlays/rocm/overlay.yml +18 -0
- package/overlays/rocm/setup.sh +45 -0
- package/overlays/rocm/verify.sh +47 -0
- package/overlays/rust/overlay.yml +3 -1
- package/overlays/rust/setup.sh +11 -18
- package/overlays/skaffold/README.md +256 -0
- package/overlays/skaffold/devcontainer.patch.json +9 -0
- package/overlays/skaffold/overlay.yml +20 -0
- package/overlays/skaffold/setup.sh +33 -0
- package/overlays/skaffold/verify.sh +24 -0
- package/overlays/spec-kit/README.md +181 -0
- package/overlays/spec-kit/devcontainer.patch.json +6 -0
- package/overlays/spec-kit/overlay.yml +19 -0
- package/overlays/spec-kit/setup.sh +49 -0
- package/overlays/spec-kit/verify.sh +33 -0
- package/overlays/sqlite/setup.sh +14 -14
- package/overlays/sqlserver/docker-compose.yml +4 -3
- package/overlays/sqlserver/overlay.yml +17 -0
- package/overlays/sqlserver/verify.sh +22 -5
- package/overlays/task/README.md +47 -0
- package/overlays/task/devcontainer.patch.json +9 -0
- package/overlays/task/overlay.yml +16 -0
- package/overlays/task/setup.sh +29 -0
- package/overlays/task/verify.sh +14 -0
- package/overlays/tempo/devcontainer.patch.json +0 -1
- package/overlays/tempo/docker-compose.yml +8 -0
- package/overlays/tempo/overlay.yml +1 -0
- package/overlays/tempo/verify.sh +16 -10
- package/overlays/tilt/README.md +259 -0
- package/overlays/tilt/devcontainer.patch.json +16 -0
- package/overlays/tilt/overlay.yml +19 -0
- package/overlays/tilt/setup.sh +35 -0
- package/overlays/tilt/verify.sh +24 -0
- package/overlays/windsurf-cli/README.md +69 -0
- package/overlays/windsurf-cli/devcontainer.patch.json +6 -0
- package/overlays/windsurf-cli/overlay.yml +15 -0
- package/overlays/windsurf-cli/setup.sh +44 -0
- package/overlays/windsurf-cli/verify.sh +31 -0
- package/package.json +12 -7
- package/templates/scripts/setup-utils.sh +228 -0
- package/tool/README.md +12 -16
- package/tool/schema/config.schema.json +350 -14
- package/tool/schema/overlay-manifest.schema.json +102 -4
- package/tool/schema/superposition-manifest.schema.json +104 -0
- package/tool/schema/superposition.schema.json +569 -0
- package/overlays/presets/web-api.yml +0 -109
- /package/overlays/{presets → .presets}/docs-site.yml +0 -0
- /package/overlays/{presets → .presets}/fullstack.yml +0 -0
- /package/overlays/otel-demo-nodejs/{Dockerfile-otel-demo-nodejs → Dockerfile} +0 -0
- /package/overlays/otel-demo-nodejs/{package-otel-demo-nodejs.json → package.json} +0 -0
- /package/overlays/otel-demo-nodejs/{server-otel-demo-nodejs.js → server.js} +0 -0
- /package/overlays/otel-demo-nodejs/{tracing-otel-demo-nodejs.js → tracing.js} +0 -0
- /package/overlays/otel-demo-python/{Dockerfile-otel-demo-python → Dockerfile} +0 -0
- /package/overlays/otel-demo-python/{app-otel-demo-python.py → app.py} +0 -0
- /package/overlays/otel-demo-python/{requirements-otel-demo-python.txt → requirements.txt} +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Auto-generate JSON Schema for superposition.yml.
|
|
4
|
+
*
|
|
5
|
+
* Enum values for stack, baseImage, target and editor are imported directly from the
|
|
6
|
+
* exported constants in tool/schema/project-config.ts so they stay in sync with the
|
|
7
|
+
* runtime validation logic. Overlay IDs are read from the live overlay registry.
|
|
8
|
+
*
|
|
9
|
+
* Output: tool/schema/superposition.schema.json
|
|
10
|
+
*
|
|
11
|
+
* Run via: npm run schema:generate
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=generate-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-schema.d.ts","sourceRoot":"","sources":["../../scripts/generate-schema.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Auto-generate JSON Schema for superposition.yml.
|
|
4
|
+
*
|
|
5
|
+
* Enum values for stack, baseImage, target and editor are imported directly from the
|
|
6
|
+
* exported constants in tool/schema/project-config.ts so they stay in sync with the
|
|
7
|
+
* runtime validation logic. Overlay IDs are read from the live overlay registry.
|
|
8
|
+
*
|
|
9
|
+
* Output: tool/schema/superposition.schema.json
|
|
10
|
+
*
|
|
11
|
+
* Run via: npm run schema:generate
|
|
12
|
+
*/
|
|
13
|
+
import * as fs from 'fs';
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
import { fileURLToPath } from 'url';
|
|
16
|
+
import { loadOverlaysConfig } from '../tool/schema/overlay-loader.js';
|
|
17
|
+
import { STACK_VALUES, BASE_IMAGE_VALUES, TARGET_VALUES, EDITOR_VALUES, PROJECT_ENV_TARGET_VALUES, PROJECT_MOUNT_TARGET_VALUES, } from '../tool/schema/project-config.js';
|
|
18
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
19
|
+
const __dirname = path.dirname(__filename);
|
|
20
|
+
// Resolve repo root from both source (scripts/) and compiled (dist/scripts/) locations
|
|
21
|
+
const REPO_ROOT_CANDIDATES = [
|
|
22
|
+
path.join(__dirname, '..'), // scripts/ -> root
|
|
23
|
+
path.join(__dirname, '..', '..'), // dist/scripts/ -> root
|
|
24
|
+
];
|
|
25
|
+
const REPO_ROOT = REPO_ROOT_CANDIDATES.find((c) => fs.existsSync(path.join(c, 'overlays')) && fs.existsSync(path.join(c, 'templates'))) ?? REPO_ROOT_CANDIDATES[0];
|
|
26
|
+
const OUTPUT_PATH = path.join(REPO_ROOT, 'tool', 'schema', 'superposition.schema.json');
|
|
27
|
+
function buildSchema(overlays, presetIds) {
|
|
28
|
+
// Non-preset overlay IDs (only these are valid in the `overlays` array field)
|
|
29
|
+
const overlayIds = overlays
|
|
30
|
+
.filter((o) => o.category !== 'preset')
|
|
31
|
+
.map((o) => o.id)
|
|
32
|
+
.sort();
|
|
33
|
+
// Per-category enums matching buildCategoryLookup() rules in project-config.ts:
|
|
34
|
+
// - database includes both 'database' and 'messaging' categories
|
|
35
|
+
const languageIds = overlays
|
|
36
|
+
.filter((o) => o.category === 'language')
|
|
37
|
+
.map((o) => o.id)
|
|
38
|
+
.sort();
|
|
39
|
+
const databaseIds = overlays
|
|
40
|
+
.filter((o) => o.category === 'database' || o.category === 'messaging')
|
|
41
|
+
.map((o) => o.id)
|
|
42
|
+
.sort();
|
|
43
|
+
const observabilityIds = overlays
|
|
44
|
+
.filter((o) => o.category === 'observability')
|
|
45
|
+
.map((o) => o.id)
|
|
46
|
+
.sort();
|
|
47
|
+
const cloudIds = overlays
|
|
48
|
+
.filter((o) => o.category === 'cloud')
|
|
49
|
+
.map((o) => o.id)
|
|
50
|
+
.sort();
|
|
51
|
+
const devIds = overlays
|
|
52
|
+
.filter((o) => o.category === 'dev')
|
|
53
|
+
.map((o) => o.id)
|
|
54
|
+
.sort();
|
|
55
|
+
const mountTargetValues = [...PROJECT_MOUNT_TARGET_VALUES];
|
|
56
|
+
const envTargetValues = [...PROJECT_ENV_TARGET_VALUES];
|
|
57
|
+
const mountEntry = {
|
|
58
|
+
oneOf: [
|
|
59
|
+
{
|
|
60
|
+
type: 'string',
|
|
61
|
+
description: 'Raw mount string (escape hatch)',
|
|
62
|
+
minLength: 1,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
type: 'object',
|
|
66
|
+
description: 'Structured mount using source/destination fields',
|
|
67
|
+
required: ['source', 'destination'],
|
|
68
|
+
additionalProperties: false,
|
|
69
|
+
properties: {
|
|
70
|
+
source: { type: 'string', description: 'Mount source path or volume name' },
|
|
71
|
+
destination: {
|
|
72
|
+
type: 'string',
|
|
73
|
+
description: 'Mount destination path inside the container',
|
|
74
|
+
},
|
|
75
|
+
type: {
|
|
76
|
+
type: 'string',
|
|
77
|
+
enum: ['bind', 'volume', 'tmpfs'],
|
|
78
|
+
description: 'Mount type (default: bind)',
|
|
79
|
+
},
|
|
80
|
+
consistency: {
|
|
81
|
+
type: 'string',
|
|
82
|
+
enum: ['consistent', 'cached', 'delegated'],
|
|
83
|
+
description: 'Mount consistency mode',
|
|
84
|
+
},
|
|
85
|
+
cached: {
|
|
86
|
+
type: 'boolean',
|
|
87
|
+
description: 'Shorthand for consistency: cached',
|
|
88
|
+
},
|
|
89
|
+
readOnly: {
|
|
90
|
+
type: 'boolean',
|
|
91
|
+
description: 'Make the mount read-only',
|
|
92
|
+
},
|
|
93
|
+
target: {
|
|
94
|
+
type: 'string',
|
|
95
|
+
enum: mountTargetValues,
|
|
96
|
+
description: 'Routing target: auto (default) always routes to devcontainer.json mounts[]; composeVolume routes to docker-compose volumes (compose stack only)',
|
|
97
|
+
default: 'auto',
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'object',
|
|
103
|
+
description: 'Raw-value mount with optional routing target',
|
|
104
|
+
required: ['value'],
|
|
105
|
+
additionalProperties: false,
|
|
106
|
+
properties: {
|
|
107
|
+
value: {
|
|
108
|
+
type: 'string',
|
|
109
|
+
description: 'Raw mount string',
|
|
110
|
+
minLength: 1,
|
|
111
|
+
},
|
|
112
|
+
target: {
|
|
113
|
+
type: 'string',
|
|
114
|
+
enum: mountTargetValues,
|
|
115
|
+
description: 'Routing target override',
|
|
116
|
+
default: 'auto',
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
};
|
|
122
|
+
const envVarEntry = {
|
|
123
|
+
oneOf: [
|
|
124
|
+
{
|
|
125
|
+
type: 'string',
|
|
126
|
+
description: 'String shorthand — target is auto-detected based on stack (plain→remoteEnv, compose→docker-compose environment)',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'object',
|
|
130
|
+
description: 'Long form with explicit routing target',
|
|
131
|
+
required: ['value'],
|
|
132
|
+
additionalProperties: false,
|
|
133
|
+
properties: {
|
|
134
|
+
value: {
|
|
135
|
+
type: 'string',
|
|
136
|
+
description: 'Variable value (supports ${VAR} and ${VAR:-default} syntax)',
|
|
137
|
+
},
|
|
138
|
+
target: {
|
|
139
|
+
type: 'string',
|
|
140
|
+
enum: envTargetValues,
|
|
141
|
+
description: 'auto (default): plain→remoteEnv, compose→docker-compose environment; remoteEnv: always devcontainer.json; composeEnv: always docker-compose (compose only)',
|
|
142
|
+
default: 'auto',
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
};
|
|
148
|
+
return {
|
|
149
|
+
$schema: 'http://json-schema.org/draft-07/schema#',
|
|
150
|
+
$id: 'https://raw.githubusercontent.com/veggerby/container-superposition/main/tool/schema/superposition.schema.json',
|
|
151
|
+
title: 'Superposition Project Configuration',
|
|
152
|
+
description: 'Schema for superposition.yml / .superposition.yml — the project configuration file for container-superposition. See https://github.com/veggerby/container-superposition for documentation.',
|
|
153
|
+
type: 'object',
|
|
154
|
+
additionalProperties: false,
|
|
155
|
+
properties: {
|
|
156
|
+
$schema: {
|
|
157
|
+
type: 'string',
|
|
158
|
+
description: 'JSON Schema reference URI',
|
|
159
|
+
},
|
|
160
|
+
stack: {
|
|
161
|
+
type: 'string',
|
|
162
|
+
enum: [...STACK_VALUES],
|
|
163
|
+
description: 'Base devcontainer template: plain (single image) or compose (multi-service Docker Compose)',
|
|
164
|
+
},
|
|
165
|
+
baseImage: {
|
|
166
|
+
type: 'string',
|
|
167
|
+
enum: [...BASE_IMAGE_VALUES],
|
|
168
|
+
description: 'Base OS image. Use "custom" together with customImage to specify an arbitrary image.',
|
|
169
|
+
default: 'bookworm',
|
|
170
|
+
},
|
|
171
|
+
customImage: {
|
|
172
|
+
type: 'string',
|
|
173
|
+
description: 'Fully-qualified Docker image reference. Only valid when baseImage is "custom".',
|
|
174
|
+
examples: ['ghcr.io/myorg/my-base:latest'],
|
|
175
|
+
},
|
|
176
|
+
containerName: {
|
|
177
|
+
type: 'string',
|
|
178
|
+
description: 'Sets the "name" field in devcontainer.json (displayed by VS Code)',
|
|
179
|
+
examples: ['My Web API'],
|
|
180
|
+
},
|
|
181
|
+
overlays: {
|
|
182
|
+
type: 'array',
|
|
183
|
+
description: 'Flat list of overlay IDs to include. Preferred over the legacy category arrays. Dependency resolution runs automatically.',
|
|
184
|
+
items: {
|
|
185
|
+
type: 'string',
|
|
186
|
+
enum: overlayIds,
|
|
187
|
+
description: 'Overlay identifier',
|
|
188
|
+
},
|
|
189
|
+
uniqueItems: true,
|
|
190
|
+
},
|
|
191
|
+
preset: {
|
|
192
|
+
type: 'string',
|
|
193
|
+
enum: presetIds,
|
|
194
|
+
description: 'ID of a preset (meta-overlay) to expand. Use cs list --presets to browse available presets.',
|
|
195
|
+
},
|
|
196
|
+
presetChoices: {
|
|
197
|
+
type: 'object',
|
|
198
|
+
description: 'Parameter values passed to the selected preset. Keys depend on the preset definition.',
|
|
199
|
+
additionalProperties: { type: 'string' },
|
|
200
|
+
},
|
|
201
|
+
outputPath: {
|
|
202
|
+
type: 'string',
|
|
203
|
+
description: 'Where to write the generated devcontainer files. Default: .devcontainer',
|
|
204
|
+
default: './.devcontainer',
|
|
205
|
+
examples: ['./.devcontainer'],
|
|
206
|
+
},
|
|
207
|
+
portOffset: {
|
|
208
|
+
type: 'integer',
|
|
209
|
+
minimum: 0,
|
|
210
|
+
description: 'Shift all overlay-declared host ports by this integer. Useful for running multiple instances on one machine.',
|
|
211
|
+
examples: [100, 200],
|
|
212
|
+
},
|
|
213
|
+
target: {
|
|
214
|
+
type: 'string',
|
|
215
|
+
enum: [...TARGET_VALUES],
|
|
216
|
+
description: 'Deployment target profile. Applies environment-specific patches during generation.',
|
|
217
|
+
},
|
|
218
|
+
minimal: {
|
|
219
|
+
type: 'boolean',
|
|
220
|
+
description: 'When true, overlays marked with minimal: true in their overlay.yml are excluded. Useful for CI environments.',
|
|
221
|
+
},
|
|
222
|
+
editor: {
|
|
223
|
+
type: 'string',
|
|
224
|
+
enum: [...EDITOR_VALUES],
|
|
225
|
+
description: 'Editor profile: vscode (default, includes extensions/settings), jetbrains (removes VS Code config), none (removes VS Code config)',
|
|
226
|
+
default: 'vscode',
|
|
227
|
+
},
|
|
228
|
+
env: {
|
|
229
|
+
type: 'object',
|
|
230
|
+
description: 'Runtime environment variables. Routed to devcontainer.json remoteEnv or docker-compose environment based on stack and target.',
|
|
231
|
+
additionalProperties: envVarEntry,
|
|
232
|
+
},
|
|
233
|
+
mounts: {
|
|
234
|
+
oneOf: [
|
|
235
|
+
{
|
|
236
|
+
type: 'array',
|
|
237
|
+
description: 'List of filesystem mounts',
|
|
238
|
+
items: mountEntry,
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
type: 'object',
|
|
242
|
+
description: 'Named map of filesystem mounts',
|
|
243
|
+
additionalProperties: {
|
|
244
|
+
type: 'object',
|
|
245
|
+
description: 'Structured mount (named form; name is not serialized back)',
|
|
246
|
+
required: ['source', 'destination'],
|
|
247
|
+
additionalProperties: false,
|
|
248
|
+
properties: {
|
|
249
|
+
source: { type: 'string' },
|
|
250
|
+
destination: { type: 'string' },
|
|
251
|
+
type: { type: 'string', enum: ['bind', 'volume', 'tmpfs'] },
|
|
252
|
+
consistency: {
|
|
253
|
+
type: 'string',
|
|
254
|
+
enum: ['consistent', 'cached', 'delegated'],
|
|
255
|
+
},
|
|
256
|
+
cached: { type: 'boolean' },
|
|
257
|
+
readOnly: { type: 'boolean' },
|
|
258
|
+
target: {
|
|
259
|
+
type: 'string',
|
|
260
|
+
enum: mountTargetValues,
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
},
|
|
264
|
+
},
|
|
265
|
+
],
|
|
266
|
+
},
|
|
267
|
+
shell: {
|
|
268
|
+
type: 'object',
|
|
269
|
+
description: 'Declarative shell profile customizations (aliases and snippets). Use env for environment variables.',
|
|
270
|
+
additionalProperties: false,
|
|
271
|
+
properties: {
|
|
272
|
+
aliases: {
|
|
273
|
+
type: 'object',
|
|
274
|
+
description: 'Shell aliases written to .devcontainer/scripts/shell-init.sh',
|
|
275
|
+
additionalProperties: { type: 'string' },
|
|
276
|
+
examples: [{ k: 'kubectl', kgp: 'kubectl get pods' }],
|
|
277
|
+
},
|
|
278
|
+
snippets: {
|
|
279
|
+
type: 'array',
|
|
280
|
+
description: 'Shell snippet lines appended to shell-init.sh. Guard shell-specific syntax with $BASH_VERSION / $ZSH_VERSION.',
|
|
281
|
+
items: { type: 'string' },
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
customizations: {
|
|
286
|
+
type: 'object',
|
|
287
|
+
description: 'Inline patches applied during generation (equivalent to .devcontainer/custom/ patches).',
|
|
288
|
+
additionalProperties: false,
|
|
289
|
+
properties: {
|
|
290
|
+
devcontainerPatch: {
|
|
291
|
+
type: 'object',
|
|
292
|
+
description: 'Deep-merged into devcontainer.json after all overlays are applied',
|
|
293
|
+
},
|
|
294
|
+
dockerComposePatch: {
|
|
295
|
+
type: 'object',
|
|
296
|
+
description: 'Deep-merged into docker-compose.yml after all overlays are applied (compose stack only)',
|
|
297
|
+
},
|
|
298
|
+
envTemplate: {
|
|
299
|
+
type: 'object',
|
|
300
|
+
description: 'Key/value pairs written to .devcontainer/.env.example',
|
|
301
|
+
additionalProperties: { type: 'string' },
|
|
302
|
+
},
|
|
303
|
+
environment: {
|
|
304
|
+
type: 'object',
|
|
305
|
+
description: 'Alias for envTemplate (deprecated; prefer envTemplate)',
|
|
306
|
+
additionalProperties: { type: 'string' },
|
|
307
|
+
},
|
|
308
|
+
scripts: {
|
|
309
|
+
type: 'object',
|
|
310
|
+
description: 'Shell commands appended to postCreate / postStart hooks',
|
|
311
|
+
additionalProperties: false,
|
|
312
|
+
properties: {
|
|
313
|
+
postCreate: {
|
|
314
|
+
type: 'array',
|
|
315
|
+
items: { type: 'string' },
|
|
316
|
+
description: 'Commands run once after container creation (postCreateCommand)',
|
|
317
|
+
},
|
|
318
|
+
postStart: {
|
|
319
|
+
type: 'array',
|
|
320
|
+
items: { type: 'string' },
|
|
321
|
+
description: 'Commands run each time the container starts (postStartCommand)',
|
|
322
|
+
},
|
|
323
|
+
},
|
|
324
|
+
},
|
|
325
|
+
files: {
|
|
326
|
+
type: 'array',
|
|
327
|
+
description: 'Extra files to write into the output directory',
|
|
328
|
+
items: {
|
|
329
|
+
type: 'object',
|
|
330
|
+
required: ['path', 'content'],
|
|
331
|
+
additionalProperties: false,
|
|
332
|
+
properties: {
|
|
333
|
+
path: { type: 'string', description: 'Destination path' },
|
|
334
|
+
content: { type: 'string', description: 'File content' },
|
|
335
|
+
},
|
|
336
|
+
},
|
|
337
|
+
},
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
parameters: {
|
|
341
|
+
type: 'object',
|
|
342
|
+
description: 'Overlay parameter values. Keys correspond to parameters declared in overlay.yml. Values substitute {{cs.KEY}} tokens throughout generated files.',
|
|
343
|
+
additionalProperties: {
|
|
344
|
+
oneOf: [{ type: 'string' }, { type: 'number' }],
|
|
345
|
+
description: 'Parameter value (strings and numbers are both accepted)',
|
|
346
|
+
},
|
|
347
|
+
},
|
|
348
|
+
// ── Legacy category arrays (deprecated; prefer overlays: [...]) ─────────
|
|
349
|
+
// Per-category enums match buildCategoryLookup() rules in project-config.ts.
|
|
350
|
+
language: {
|
|
351
|
+
type: 'array',
|
|
352
|
+
description: 'Deprecated — use overlays: [...] instead',
|
|
353
|
+
items: { type: 'string', enum: languageIds },
|
|
354
|
+
deprecated: true,
|
|
355
|
+
},
|
|
356
|
+
database: {
|
|
357
|
+
type: 'array',
|
|
358
|
+
description: 'Deprecated — use overlays: [...] instead',
|
|
359
|
+
items: { type: 'string', enum: databaseIds },
|
|
360
|
+
deprecated: true,
|
|
361
|
+
},
|
|
362
|
+
observability: {
|
|
363
|
+
type: 'array',
|
|
364
|
+
description: 'Deprecated — use overlays: [...] instead',
|
|
365
|
+
items: { type: 'string', enum: observabilityIds },
|
|
366
|
+
deprecated: true,
|
|
367
|
+
},
|
|
368
|
+
cloudTools: {
|
|
369
|
+
type: 'array',
|
|
370
|
+
description: 'Deprecated — use overlays: [...] instead',
|
|
371
|
+
items: { type: 'string', enum: cloudIds },
|
|
372
|
+
deprecated: true,
|
|
373
|
+
},
|
|
374
|
+
devTools: {
|
|
375
|
+
type: 'array',
|
|
376
|
+
description: 'Deprecated — use overlays: [...] instead',
|
|
377
|
+
items: { type: 'string', enum: devIds },
|
|
378
|
+
deprecated: true,
|
|
379
|
+
},
|
|
380
|
+
playwright: {
|
|
381
|
+
type: 'boolean',
|
|
382
|
+
description: 'Deprecated — use overlays: [playwright] instead',
|
|
383
|
+
deprecated: true,
|
|
384
|
+
},
|
|
385
|
+
},
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
// ── Main ──────────────────────────────────────────────────────────────────────
|
|
389
|
+
const overlaysDir = path.join(REPO_ROOT, 'overlays');
|
|
390
|
+
const indexYmlPath = path.join(overlaysDir, 'index.yml');
|
|
391
|
+
const config = loadOverlaysConfig(overlaysDir, indexYmlPath);
|
|
392
|
+
const nonPresetOverlays = config.overlays.filter((o) => o.category !== 'preset');
|
|
393
|
+
const presetIds = config.overlays
|
|
394
|
+
.filter((o) => o.category === 'preset')
|
|
395
|
+
.map((o) => o.id)
|
|
396
|
+
.sort();
|
|
397
|
+
const schema = buildSchema(nonPresetOverlays, presetIds);
|
|
398
|
+
const schemaJson = JSON.stringify(schema, null, 4) + '\n';
|
|
399
|
+
const outputDir = path.dirname(OUTPUT_PATH);
|
|
400
|
+
if (!fs.existsSync(outputDir)) {
|
|
401
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
402
|
+
}
|
|
403
|
+
fs.writeFileSync(OUTPUT_PATH, schemaJson, 'utf8');
|
|
404
|
+
console.log(`✅ Generated superposition.yml schema at ${OUTPUT_PATH}`);
|
|
405
|
+
console.log(` Overlay IDs: ${nonPresetOverlays.length} Preset IDs: ${presetIds.length} Stack values: ${STACK_VALUES.join(', ')} Base images: ${BASE_IMAGE_VALUES.length}`);
|
|
406
|
+
//# sourceMappingURL=generate-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-schema.js","sourceRoot":"","sources":["../../scripts/generate-schema.ts"],"names":[],"mappings":"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"}
|