container-superposition 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +843 -0
- package/dist/scripts/init.d.ts +3 -0
- package/dist/scripts/init.d.ts.map +1 -0
- package/dist/scripts/init.js +1190 -0
- package/dist/scripts/init.js.map +1 -0
- package/dist/scripts/migrate-to-manifests.d.ts +12 -0
- package/dist/scripts/migrate-to-manifests.d.ts.map +1 -0
- package/dist/scripts/migrate-to-manifests.js +230 -0
- package/dist/scripts/migrate-to-manifests.js.map +1 -0
- package/dist/tool/questionnaire/composer.d.ts +6 -0
- package/dist/tool/questionnaire/composer.d.ts.map +1 -0
- package/dist/tool/questionnaire/composer.js +1232 -0
- package/dist/tool/questionnaire/composer.js.map +1 -0
- package/dist/tool/readme/markdown-parser.d.ts +30 -0
- package/dist/tool/readme/markdown-parser.d.ts.map +1 -0
- package/dist/tool/readme/markdown-parser.js +139 -0
- package/dist/tool/readme/markdown-parser.js.map +1 -0
- package/dist/tool/readme/readme-generator.d.ts +9 -0
- package/dist/tool/readme/readme-generator.d.ts.map +1 -0
- package/dist/tool/readme/readme-generator.js +422 -0
- package/dist/tool/readme/readme-generator.js.map +1 -0
- package/dist/tool/schema/custom-loader.d.ts +17 -0
- package/dist/tool/schema/custom-loader.d.ts.map +1 -0
- package/dist/tool/schema/custom-loader.js +149 -0
- package/dist/tool/schema/custom-loader.js.map +1 -0
- package/dist/tool/schema/overlay-loader.d.ts +47 -0
- package/dist/tool/schema/overlay-loader.d.ts.map +1 -0
- package/dist/tool/schema/overlay-loader.js +252 -0
- package/dist/tool/schema/overlay-loader.js.map +1 -0
- package/dist/tool/schema/types.d.ts +212 -0
- package/dist/tool/schema/types.d.ts.map +1 -0
- package/dist/tool/schema/types.js +5 -0
- package/dist/tool/schema/types.js.map +1 -0
- package/docs/README.md +308 -0
- package/docs/architecture.md +233 -0
- package/docs/creating-overlays.md +549 -0
- package/docs/custom-patches.md +540 -0
- package/docs/dependencies.md +279 -0
- package/docs/examples/custom-patches-example.md +85 -0
- package/docs/examples.md +576 -0
- package/docs/messaging-comparison.md +265 -0
- package/docs/messaging-quick-start.md +385 -0
- package/docs/observability-workflow.md +537 -0
- package/docs/overlay-manifest-refactoring.md +214 -0
- package/docs/overlay-metadata-archive.md +54 -0
- package/docs/overlays.md +523 -0
- package/docs/presets-architecture.md +498 -0
- package/docs/presets.md +366 -0
- package/docs/publishing.md +476 -0
- package/docs/quick-reference.md +326 -0
- package/docs/ux.md +170 -0
- package/features/README.md +85 -0
- package/features/cross-distro-packages/README.md +146 -0
- package/features/cross-distro-packages/devcontainer-feature.json +20 -0
- package/features/cross-distro-packages/install.sh +58 -0
- package/features/local-secrets-manager/devcontainer-feature.json +18 -0
- package/features/local-secrets-manager/install.sh +127 -0
- package/features/project-scaffolder/devcontainer-feature.json +24 -0
- package/features/project-scaffolder/install.sh +100 -0
- package/features/team-conventions/devcontainer-feature.json +24 -0
- package/features/team-conventions/install.sh +93 -0
- package/overlays/.registry/README.md +14 -0
- package/overlays/.registry/base-images.yml +26 -0
- package/overlays/.registry/base-templates.yml +7 -0
- package/overlays/README.md +155 -0
- package/overlays/alertmanager/.env.example +5 -0
- package/overlays/alertmanager/README.md +465 -0
- package/overlays/alertmanager/alert-rules.yml +56 -0
- package/overlays/alertmanager/alertmanager.yml +42 -0
- package/overlays/alertmanager/devcontainer.patch.json +12 -0
- package/overlays/alertmanager/docker-compose.yml +20 -0
- package/overlays/alertmanager/overlay.yml +17 -0
- package/overlays/alertmanager/setup.sh +53 -0
- package/overlays/alertmanager/verify.sh +31 -0
- package/overlays/aws-cli/README.md +473 -0
- package/overlays/aws-cli/devcontainer.patch.json +13 -0
- package/overlays/aws-cli/overlay.yml +13 -0
- package/overlays/azure-cli/README.md +551 -0
- package/overlays/azure-cli/devcontainer.patch.json +8 -0
- package/overlays/azure-cli/overlay.yml +13 -0
- package/overlays/bun/README.md +312 -0
- package/overlays/bun/devcontainer.patch.json +41 -0
- package/overlays/bun/overlay.yml +16 -0
- package/overlays/bun/setup.sh +79 -0
- package/overlays/bun/verify.sh +30 -0
- package/overlays/codex/README.md +128 -0
- package/overlays/codex/devcontainer.patch.json +3 -0
- package/overlays/codex/overlay.yml +14 -0
- package/overlays/codex/setup.sh +24 -0
- package/overlays/codex/verify.sh +30 -0
- package/overlays/commitlint/README.md +333 -0
- package/overlays/commitlint/devcontainer.patch.json +8 -0
- package/overlays/commitlint/overlay.yml +16 -0
- package/overlays/commitlint/setup.sh +234 -0
- package/overlays/direnv/README.md +504 -0
- package/overlays/direnv/devcontainer.patch.json +6 -0
- package/overlays/direnv/overlay.yml +13 -0
- package/overlays/direnv/setup.sh +139 -0
- package/overlays/docker-in-docker/README.md +534 -0
- package/overlays/docker-in-docker/devcontainer.patch.json +10 -0
- package/overlays/docker-in-docker/overlay.yml +13 -0
- package/overlays/docker-sock/README.md +256 -0
- package/overlays/docker-sock/devcontainer.patch.json +9 -0
- package/overlays/docker-sock/docker-compose.yml +8 -0
- package/overlays/docker-sock/overlay.yml +13 -0
- package/overlays/dotnet/README.md +147 -0
- package/overlays/dotnet/devcontainer.patch.json +51 -0
- package/overlays/dotnet/global-tools.txt +24 -0
- package/overlays/dotnet/overlay.yml +13 -0
- package/overlays/dotnet/setup.sh +51 -0
- package/overlays/dotnet/verify.sh +26 -0
- package/overlays/gcloud/README.md +269 -0
- package/overlays/gcloud/devcontainer.patch.json +14 -0
- package/overlays/gcloud/overlay.yml +14 -0
- package/overlays/gcloud/verify.sh +52 -0
- package/overlays/git-helpers/README.md +168 -0
- package/overlays/git-helpers/devcontainer.patch.json +33 -0
- package/overlays/git-helpers/overlay.yml +15 -0
- package/overlays/git-helpers/setup.sh +91 -0
- package/overlays/go/README.md +293 -0
- package/overlays/go/devcontainer.patch.json +43 -0
- package/overlays/go/overlay.yml +15 -0
- package/overlays/go/setup.sh +33 -0
- package/overlays/go/verify.sh +40 -0
- package/overlays/grafana/.env.example +9 -0
- package/overlays/grafana/README.md +462 -0
- package/overlays/grafana/dashboard-provider.yml +11 -0
- package/overlays/grafana/dashboards/observability-overview.json +263 -0
- package/overlays/grafana/devcontainer.patch.json +12 -0
- package/overlays/grafana/docker-compose.yml +27 -0
- package/overlays/grafana/grafana-datasources.yml +57 -0
- package/overlays/grafana/overlay.yml +21 -0
- package/overlays/grafana/verify.sh +34 -0
- package/overlays/jaeger/.env.example +7 -0
- package/overlays/jaeger/README.md +867 -0
- package/overlays/jaeger/devcontainer.patch.json +12 -0
- package/overlays/jaeger/docker-compose.yml +17 -0
- package/overlays/jaeger/overlay.yml +19 -0
- package/overlays/java/README.md +267 -0
- package/overlays/java/devcontainer.patch.json +44 -0
- package/overlays/java/overlay.yml +16 -0
- package/overlays/java/setup.sh +41 -0
- package/overlays/java/verify.sh +42 -0
- package/overlays/just/README.md +443 -0
- package/overlays/just/devcontainer.patch.json +3 -0
- package/overlays/just/overlay.yml +13 -0
- package/overlays/just/setup.sh +182 -0
- package/overlays/kubectl-helm/README.md +660 -0
- package/overlays/kubectl-helm/devcontainer.patch.json +10 -0
- package/overlays/kubectl-helm/overlay.yml +13 -0
- package/overlays/loki/.env.example +5 -0
- package/overlays/loki/README.md +1156 -0
- package/overlays/loki/devcontainer.patch.json +12 -0
- package/overlays/loki/docker-compose.yml +18 -0
- package/overlays/loki/loki-config.yaml +45 -0
- package/overlays/loki/overlay.yml +17 -0
- package/overlays/minio/.env.example +9 -0
- package/overlays/minio/README.md +639 -0
- package/overlays/minio/devcontainer.patch.json +30 -0
- package/overlays/minio/docker-compose.yml +28 -0
- package/overlays/minio/overlay.yml +18 -0
- package/overlays/minio/setup.sh +61 -0
- package/overlays/minio/verify.sh +64 -0
- package/overlays/mkdocs/README.md +309 -0
- package/overlays/mkdocs/devcontainer.patch.json +24 -0
- package/overlays/mkdocs/overlay.yml +15 -0
- package/overlays/modern-cli-tools/README.md +556 -0
- package/overlays/modern-cli-tools/devcontainer.patch.json +3 -0
- package/overlays/modern-cli-tools/overlay.yml +13 -0
- package/overlays/modern-cli-tools/setup.sh +153 -0
- package/overlays/mongodb/.env.example +9 -0
- package/overlays/mongodb/README.md +481 -0
- package/overlays/mongodb/devcontainer.patch.json +32 -0
- package/overlays/mongodb/docker-compose.yml +44 -0
- package/overlays/mongodb/overlay.yml +17 -0
- package/overlays/mongodb/verify.sh +48 -0
- package/overlays/mysql/.env.example +11 -0
- package/overlays/mysql/README.md +542 -0
- package/overlays/mysql/devcontainer.patch.json +34 -0
- package/overlays/mysql/docker-compose.yml +55 -0
- package/overlays/mysql/overlay.yml +16 -0
- package/overlays/mysql/verify.sh +48 -0
- package/overlays/nats/.env.example +5 -0
- package/overlays/nats/README.md +762 -0
- package/overlays/nats/devcontainer.patch.json +24 -0
- package/overlays/nats/docker-compose.yml +31 -0
- package/overlays/nats/overlay.yml +18 -0
- package/overlays/nats/verify.sh +50 -0
- package/overlays/ngrok/README.md +503 -0
- package/overlays/ngrok/devcontainer.patch.json +3 -0
- package/overlays/ngrok/overlay.yml +14 -0
- package/overlays/ngrok/setup.sh +125 -0
- package/overlays/nodejs/README.md +192 -0
- package/overlays/nodejs/devcontainer.patch.json +49 -0
- package/overlays/nodejs/global-packages.txt +16 -0
- package/overlays/nodejs/overlay.yml +14 -0
- package/overlays/nodejs/setup.sh +46 -0
- package/overlays/nodejs/verify.sh +32 -0
- package/overlays/otel-collector/.env.example +9 -0
- package/overlays/otel-collector/README.md +1257 -0
- package/overlays/otel-collector/devcontainer.patch.json +28 -0
- package/overlays/otel-collector/docker-compose.yml +22 -0
- package/overlays/otel-collector/otel-collector-config.yaml +68 -0
- package/overlays/otel-collector/overlay.yml +21 -0
- package/overlays/otel-collector/setup.sh +49 -0
- package/overlays/otel-demo-nodejs/.env.example +2 -0
- package/overlays/otel-demo-nodejs/Dockerfile-otel-demo-nodejs +17 -0
- package/overlays/otel-demo-nodejs/README.md +409 -0
- package/overlays/otel-demo-nodejs/devcontainer.patch.json +12 -0
- package/overlays/otel-demo-nodejs/docker-compose.yml +19 -0
- package/overlays/otel-demo-nodejs/overlay.yml +23 -0
- package/overlays/otel-demo-nodejs/package-otel-demo-nodejs.json +20 -0
- package/overlays/otel-demo-nodejs/server-otel-demo-nodejs.js +259 -0
- package/overlays/otel-demo-nodejs/tracing-otel-demo-nodejs.js +57 -0
- package/overlays/otel-demo-nodejs/verify.sh +31 -0
- package/overlays/otel-demo-python/.env.example +2 -0
- package/overlays/otel-demo-python/Dockerfile-otel-demo-python +16 -0
- package/overlays/otel-demo-python/README.md +82 -0
- package/overlays/otel-demo-python/app-otel-demo-python.py +208 -0
- package/overlays/otel-demo-python/devcontainer.patch.json +12 -0
- package/overlays/otel-demo-python/docker-compose.yml +19 -0
- package/overlays/otel-demo-python/overlay.yml +23 -0
- package/overlays/otel-demo-python/requirements-otel-demo-python.txt +4 -0
- package/overlays/otel-demo-python/verify.sh +31 -0
- package/overlays/playwright/README.md +629 -0
- package/overlays/playwright/devcontainer.patch.json +9 -0
- package/overlays/playwright/overlay.yml +13 -0
- package/overlays/postgres/.env.example +6 -0
- package/overlays/postgres/README.md +602 -0
- package/overlays/postgres/devcontainer.patch.json +21 -0
- package/overlays/postgres/docker-compose.yml +22 -0
- package/overlays/postgres/overlay.yml +15 -0
- package/overlays/postgres/verify.sh +45 -0
- package/overlays/powershell/README.md +314 -0
- package/overlays/powershell/devcontainer.patch.json +22 -0
- package/overlays/powershell/overlay.yml +13 -0
- package/overlays/powershell/setup.sh +29 -0
- package/overlays/powershell/verify.sh +38 -0
- package/overlays/pre-commit/README.md +263 -0
- package/overlays/pre-commit/devcontainer.patch.json +9 -0
- package/overlays/pre-commit/overlay.yml +16 -0
- package/overlays/pre-commit/setup.sh +129 -0
- package/overlays/presets/docs-site.yml +118 -0
- package/overlays/presets/fullstack.yml +181 -0
- package/overlays/presets/microservice.yml +118 -0
- package/overlays/presets/web-api.yml +109 -0
- package/overlays/prometheus/.env.example +5 -0
- package/overlays/prometheus/README.md +1246 -0
- package/overlays/prometheus/devcontainer.patch.json +12 -0
- package/overlays/prometheus/docker-compose.yml +22 -0
- package/overlays/prometheus/overlay.yml +17 -0
- package/overlays/prometheus/prometheus.yml +12 -0
- package/overlays/prometheus/verify.sh +34 -0
- package/overlays/promtail/.env.example +2 -0
- package/overlays/promtail/README.md +357 -0
- package/overlays/promtail/devcontainer.patch.json +5 -0
- package/overlays/promtail/docker-compose.yml +16 -0
- package/overlays/promtail/overlay.yml +17 -0
- package/overlays/promtail/promtail-config.yaml +60 -0
- package/overlays/promtail/verify.sh +31 -0
- package/overlays/pulumi/README.md +472 -0
- package/overlays/pulumi/devcontainer.patch.json +13 -0
- package/overlays/pulumi/overlay.yml +14 -0
- package/overlays/pulumi/verify.sh +31 -0
- package/overlays/python/README.md +919 -0
- package/overlays/python/devcontainer.patch.json +41 -0
- package/overlays/python/overlay.yml +12 -0
- package/overlays/python/requirements-overlay.txt +13 -0
- package/overlays/python/setup.sh +47 -0
- package/overlays/python/verify.sh +32 -0
- package/overlays/rabbitmq/.env.example +7 -0
- package/overlays/rabbitmq/README.md +680 -0
- package/overlays/rabbitmq/devcontainer.patch.json +28 -0
- package/overlays/rabbitmq/docker-compose.yml +30 -0
- package/overlays/rabbitmq/overlay.yml +18 -0
- package/overlays/rabbitmq/verify.sh +41 -0
- package/overlays/redis/.env.example +4 -0
- package/overlays/redis/README.md +776 -0
- package/overlays/redis/devcontainer.patch.json +21 -0
- package/overlays/redis/docker-compose.yml +21 -0
- package/overlays/redis/overlay.yml +15 -0
- package/overlays/redis/verify.sh +41 -0
- package/overlays/redpanda/.env.example +10 -0
- package/overlays/redpanda/README.md +703 -0
- package/overlays/redpanda/devcontainer.patch.json +37 -0
- package/overlays/redpanda/docker-compose.yml +67 -0
- package/overlays/redpanda/overlay.yml +21 -0
- package/overlays/redpanda/verify.sh +48 -0
- package/overlays/rust/README.md +299 -0
- package/overlays/rust/devcontainer.patch.json +39 -0
- package/overlays/rust/overlay.yml +15 -0
- package/overlays/rust/setup.sh +36 -0
- package/overlays/rust/verify.sh +51 -0
- package/overlays/sqlite/README.md +584 -0
- package/overlays/sqlite/devcontainer.patch.json +14 -0
- package/overlays/sqlite/overlay.yml +15 -0
- package/overlays/sqlite/setup.sh +27 -0
- package/overlays/sqlite/verify.sh +43 -0
- package/overlays/sqlserver/.env.example +6 -0
- package/overlays/sqlserver/README.md +592 -0
- package/overlays/sqlserver/devcontainer.patch.json +22 -0
- package/overlays/sqlserver/docker-compose.yml +32 -0
- package/overlays/sqlserver/overlay.yml +17 -0
- package/overlays/sqlserver/verify.sh +30 -0
- package/overlays/tempo/.env.example +5 -0
- package/overlays/tempo/README.md +273 -0
- package/overlays/tempo/devcontainer.patch.json +12 -0
- package/overlays/tempo/docker-compose.yml +20 -0
- package/overlays/tempo/overlay.yml +20 -0
- package/overlays/tempo/tempo-config.yaml +32 -0
- package/overlays/tempo/verify.sh +31 -0
- package/overlays/terraform/README.md +389 -0
- package/overlays/terraform/devcontainer.patch.json +15 -0
- package/overlays/terraform/overlay.yml +14 -0
- package/overlays/terraform/verify.sh +63 -0
- package/package.json +74 -0
- package/templates/README.md +285 -0
- package/templates/compose/.devcontainer/devcontainer.json +46 -0
- package/templates/compose/.devcontainer/docker-compose.yml +12 -0
- package/templates/compose/README.md +20 -0
- package/templates/plain/.devcontainer/devcontainer.json +35 -0
- package/templates/plain/README.md +21 -0
- package/tool/README.md +281 -0
- package/tool/schema/base-images.schema.json +43 -0
- package/tool/schema/base-templates.schema.json +34 -0
- package/tool/schema/config.schema.json +71 -0
- package/tool/schema/overlay-manifest.schema.json +86 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Overlay registry loader
|
|
3
|
+
*
|
|
4
|
+
* This module provides functions to load overlay metadata from:
|
|
5
|
+
* 1. Individual overlay.yml manifests (new approach)
|
|
6
|
+
* 2. Fallback to central overlays/index.yml (backward compatibility)
|
|
7
|
+
*/
|
|
8
|
+
import type { OverlayMetadata, OverlaysConfig, PackageManager } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Load overlay manifest from individual overlay directory
|
|
11
|
+
*/
|
|
12
|
+
export declare function loadOverlayManifest(overlayDir: string): OverlayMetadata | null;
|
|
13
|
+
/**
|
|
14
|
+
* Scan overlay directories and load all manifests
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadOverlayManifests(overlaysDir: string): Map<string, OverlayMetadata>;
|
|
17
|
+
/**
|
|
18
|
+
* Load preset metadata from presets directory
|
|
19
|
+
*/
|
|
20
|
+
export declare function loadPresetMetadata(overlaysDir: string): OverlayMetadata[];
|
|
21
|
+
/**
|
|
22
|
+
* Load base images from registry file
|
|
23
|
+
*/
|
|
24
|
+
export declare function loadBaseImages(overlaysDir: string): Array<{
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
description: string;
|
|
28
|
+
image: string | null;
|
|
29
|
+
package_manager?: PackageManager;
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Load base templates from registry file
|
|
33
|
+
*/
|
|
34
|
+
export declare function loadBaseTemplates(overlaysDir: string): Array<{
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
description: string;
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Build OverlaysConfig from individual manifests
|
|
41
|
+
*/
|
|
42
|
+
export declare function buildOverlaysConfigFromManifests(overlaysDir: string): OverlaysConfig;
|
|
43
|
+
/**
|
|
44
|
+
* Load overlays config with fallback to index.yml
|
|
45
|
+
*/
|
|
46
|
+
export declare function loadOverlaysConfig(overlaysDir: string, indexYmlPath: string): OverlaysConfig;
|
|
47
|
+
//# sourceMappingURL=overlay-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay-loader.d.ts","sourceRoot":"","sources":["../../../tool/schema/overlay-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CA+D9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAyCtF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,CAyCzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,cAAc,CAAC;CACpC,CAAC,CAeD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC,CAeD;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CA0BpF;AACD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,CA+C5F"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Overlay registry loader
|
|
3
|
+
*
|
|
4
|
+
* This module provides functions to load overlay metadata from:
|
|
5
|
+
* 1. Individual overlay.yml manifests (new approach)
|
|
6
|
+
* 2. Fallback to central overlays/index.yml (backward compatibility)
|
|
7
|
+
*/
|
|
8
|
+
import * as fs from 'fs';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import yaml from 'js-yaml';
|
|
11
|
+
/**
|
|
12
|
+
* Load overlay manifest from individual overlay directory
|
|
13
|
+
*/
|
|
14
|
+
export function loadOverlayManifest(overlayDir) {
|
|
15
|
+
const manifestPath = path.join(overlayDir, 'overlay.yml');
|
|
16
|
+
if (!fs.existsSync(manifestPath)) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
const content = fs.readFileSync(manifestPath, 'utf8');
|
|
21
|
+
const manifest = yaml.load(content);
|
|
22
|
+
// Validate required fields
|
|
23
|
+
if (!manifest.id || !manifest.name || !manifest.description || !manifest.category) {
|
|
24
|
+
console.warn(`Warning: Invalid manifest in ${overlayDir}`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
// Validate and coerce array fields to ensure they are actual arrays
|
|
28
|
+
const ensureArray = (value) => {
|
|
29
|
+
if (Array.isArray(value)) {
|
|
30
|
+
// Validate all elements are strings
|
|
31
|
+
if (!value.every((item) => typeof item === 'string')) {
|
|
32
|
+
console.warn(`Warning: Non-string values in array field in ${overlayDir}`);
|
|
33
|
+
return value.filter((item) => typeof item === 'string');
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
if (typeof value === 'string') {
|
|
38
|
+
// Single string value - wrap in array
|
|
39
|
+
console.warn(`Warning: Scalar value instead of array in ${overlayDir}, wrapping in array`);
|
|
40
|
+
return [value];
|
|
41
|
+
}
|
|
42
|
+
return [];
|
|
43
|
+
};
|
|
44
|
+
const ensureNumberArray = (value) => {
|
|
45
|
+
if (Array.isArray(value)) {
|
|
46
|
+
// Validate all elements are numbers
|
|
47
|
+
if (!value.every((item) => typeof item === 'number')) {
|
|
48
|
+
console.warn(`Warning: Non-number values in ports array in ${overlayDir}`);
|
|
49
|
+
return value.filter((item) => typeof item === 'number');
|
|
50
|
+
}
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
return [];
|
|
54
|
+
};
|
|
55
|
+
// Set defaults for optional fields with type validation
|
|
56
|
+
return {
|
|
57
|
+
...manifest,
|
|
58
|
+
supports: ensureArray(manifest.supports),
|
|
59
|
+
requires: ensureArray(manifest.requires),
|
|
60
|
+
suggests: ensureArray(manifest.suggests),
|
|
61
|
+
conflicts: ensureArray(manifest.conflicts),
|
|
62
|
+
tags: ensureArray(manifest.tags),
|
|
63
|
+
ports: ensureNumberArray(manifest.ports),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.warn(`Warning: Failed to parse manifest in ${overlayDir}:`, error);
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Scan overlay directories and load all manifests
|
|
73
|
+
*/
|
|
74
|
+
export function loadOverlayManifests(overlaysDir) {
|
|
75
|
+
const manifests = new Map();
|
|
76
|
+
if (!fs.existsSync(overlaysDir)) {
|
|
77
|
+
return manifests;
|
|
78
|
+
}
|
|
79
|
+
const entries = fs.readdirSync(overlaysDir, { withFileTypes: true });
|
|
80
|
+
for (const entry of entries) {
|
|
81
|
+
if (!entry.isDirectory()) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
// Skip special directories (but not presets - handled separately)
|
|
85
|
+
if (entry.name.startsWith('.')) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
// Skip presets directory (presets are loaded separately)
|
|
89
|
+
if (entry.name === 'presets') {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const overlayDir = path.join(overlaysDir, entry.name);
|
|
93
|
+
const manifest = loadOverlayManifest(overlayDir);
|
|
94
|
+
if (manifest) {
|
|
95
|
+
// Validate ID matches directory name
|
|
96
|
+
if (manifest.id !== entry.name) {
|
|
97
|
+
console.warn(`Warning: Manifest ID '${manifest.id}' doesn't match directory name '${entry.name}'`);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
manifests.set(manifest.id, manifest);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return manifests;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Load preset metadata from presets directory
|
|
107
|
+
*/
|
|
108
|
+
export function loadPresetMetadata(overlaysDir) {
|
|
109
|
+
const presetsDir = path.join(overlaysDir, 'presets');
|
|
110
|
+
const presets = [];
|
|
111
|
+
if (!fs.existsSync(presetsDir)) {
|
|
112
|
+
return presets;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const files = fs.readdirSync(presetsDir);
|
|
116
|
+
for (const file of files) {
|
|
117
|
+
if (!file.endsWith('.yml') && !file.endsWith('.yaml')) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
const presetPath = path.join(presetsDir, file);
|
|
121
|
+
const content = fs.readFileSync(presetPath, 'utf8');
|
|
122
|
+
const preset = yaml.load(content);
|
|
123
|
+
// Extract metadata from preset definition
|
|
124
|
+
if (preset.id && preset.name && preset.description) {
|
|
125
|
+
presets.push({
|
|
126
|
+
id: preset.id,
|
|
127
|
+
name: preset.name,
|
|
128
|
+
description: preset.description,
|
|
129
|
+
category: 'preset',
|
|
130
|
+
supports: preset.supports || [],
|
|
131
|
+
requires: [],
|
|
132
|
+
suggests: [],
|
|
133
|
+
conflicts: [],
|
|
134
|
+
tags: preset.tags || [],
|
|
135
|
+
ports: [],
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
console.warn('Warning: Failed to load preset metadata:', error);
|
|
142
|
+
}
|
|
143
|
+
return presets;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Load base images from registry file
|
|
147
|
+
*/
|
|
148
|
+
export function loadBaseImages(overlaysDir) {
|
|
149
|
+
const registryPath = path.join(overlaysDir, '.registry', 'base-images.yml');
|
|
150
|
+
if (!fs.existsSync(registryPath)) {
|
|
151
|
+
return [];
|
|
152
|
+
}
|
|
153
|
+
try {
|
|
154
|
+
const content = fs.readFileSync(registryPath, 'utf8');
|
|
155
|
+
const data = yaml.load(content);
|
|
156
|
+
return data.base_images || [];
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
console.warn('Warning: Failed to load base images:', error);
|
|
160
|
+
return [];
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Load base templates from registry file
|
|
165
|
+
*/
|
|
166
|
+
export function loadBaseTemplates(overlaysDir) {
|
|
167
|
+
const registryPath = path.join(overlaysDir, '.registry', 'base-templates.yml');
|
|
168
|
+
if (!fs.existsSync(registryPath)) {
|
|
169
|
+
return [];
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
const content = fs.readFileSync(registryPath, 'utf8');
|
|
173
|
+
const data = yaml.load(content);
|
|
174
|
+
return data.base_templates || [];
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
console.warn('Warning: Failed to load base templates:', error);
|
|
178
|
+
return [];
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Build OverlaysConfig from individual manifests
|
|
183
|
+
*/
|
|
184
|
+
export function buildOverlaysConfigFromManifests(overlaysDir) {
|
|
185
|
+
const manifests = loadOverlayManifests(overlaysDir);
|
|
186
|
+
const presetOverlays = loadPresetMetadata(overlaysDir);
|
|
187
|
+
// Sort function used below
|
|
188
|
+
const sortByOrderThenName = (a, b) => {
|
|
189
|
+
if (a.order !== undefined && b.order !== undefined) {
|
|
190
|
+
return a.order - b.order;
|
|
191
|
+
}
|
|
192
|
+
if (a.order !== undefined)
|
|
193
|
+
return -1;
|
|
194
|
+
if (b.order !== undefined)
|
|
195
|
+
return 1;
|
|
196
|
+
return a.name.localeCompare(b.name);
|
|
197
|
+
};
|
|
198
|
+
// New approach: Single overlays array (category-agnostic)
|
|
199
|
+
const allOverlays = [...manifests.values()];
|
|
200
|
+
if (presetOverlays) {
|
|
201
|
+
allOverlays.push(...presetOverlays);
|
|
202
|
+
}
|
|
203
|
+
allOverlays.sort(sortByOrderThenName);
|
|
204
|
+
return {
|
|
205
|
+
base_images: loadBaseImages(overlaysDir),
|
|
206
|
+
base_templates: loadBaseTemplates(overlaysDir),
|
|
207
|
+
overlays: allOverlays,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Load overlays config with fallback to index.yml
|
|
212
|
+
*/
|
|
213
|
+
export function loadOverlaysConfig(overlaysDir, indexYmlPath) {
|
|
214
|
+
// First, try to load from individual manifests
|
|
215
|
+
const registryPath = path.join(overlaysDir, '.registry', 'base-images.yml');
|
|
216
|
+
if (fs.existsSync(registryPath)) {
|
|
217
|
+
// New approach: load from individual manifests
|
|
218
|
+
return buildOverlaysConfigFromManifests(overlaysDir);
|
|
219
|
+
}
|
|
220
|
+
// Fallback to old centralized index.yml
|
|
221
|
+
if (fs.existsSync(indexYmlPath)) {
|
|
222
|
+
const content = fs.readFileSync(indexYmlPath, 'utf8');
|
|
223
|
+
const legacyConfig = yaml.load(content);
|
|
224
|
+
// Check if this is the new format (has 'overlays' field) or old format (per-category arrays)
|
|
225
|
+
if (legacyConfig.overlays && Array.isArray(legacyConfig.overlays)) {
|
|
226
|
+
// New format - already has overlays array
|
|
227
|
+
return legacyConfig;
|
|
228
|
+
}
|
|
229
|
+
// Old format - convert per-category arrays to single overlays array
|
|
230
|
+
const allOverlays = [];
|
|
231
|
+
const categoryKeys = [
|
|
232
|
+
'language_overlays',
|
|
233
|
+
'database_overlays',
|
|
234
|
+
'observability_overlays',
|
|
235
|
+
'cloud_tool_overlays',
|
|
236
|
+
'dev_tool_overlays',
|
|
237
|
+
'preset_overlays',
|
|
238
|
+
];
|
|
239
|
+
for (const key of categoryKeys) {
|
|
240
|
+
if (legacyConfig[key] && Array.isArray(legacyConfig[key])) {
|
|
241
|
+
allOverlays.push(...legacyConfig[key]);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return {
|
|
245
|
+
base_images: legacyConfig.base_images || [],
|
|
246
|
+
base_templates: legacyConfig.base_templates || [],
|
|
247
|
+
overlays: allOverlays,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
throw new Error('No overlay configuration found. Expected either .registry/ directory or index.yml');
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=overlay-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay-loader.js","sourceRoot":"","sources":["../../../tool/schema/overlay-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAG3B;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoB,CAAC;QAEvD,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;YAC3D,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,oEAAoE;QACpE,MAAM,WAAW,GAAG,CAAC,KAAU,EAAY,EAAE;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,oCAAoC;gBACpC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;oBACnD,OAAO,CAAC,IAAI,CAAC,gDAAgD,UAAU,EAAE,CAAC,CAAC;oBAC3E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;gBAC5D,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CACR,6CAA6C,UAAU,qBAAqB,CAC/E,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,CAAC,KAAU,EAAY,EAAE;YAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,oCAAoC;gBACpC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;oBACnD,OAAO,CAAC,IAAI,CAAC,gDAAgD,UAAU,EAAE,CAAC,CAAC;oBAC3E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;gBAC5D,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;QAEF,wDAAwD;QACxD,OAAO;YACH,GAAG,QAAQ;YACX,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC1C,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YAChC,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC3C,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,wCAAwC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACpD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAErE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QAED,kEAAkE;QAClE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,SAAS;QACb,CAAC;QAED,yDAAyD;QACzD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,SAAS;QACb,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,QAAQ,EAAE,CAAC;YACX,qCAAqC;YACrC,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CACR,yBAAyB,QAAQ,CAAC,EAAE,mCAAmC,KAAK,CAAC,IAAI,GAAG,CACvF,CAAC;gBACF,SAAS;YACb,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpD,SAAS;YACb,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAQ,CAAC;YAEzC,0CAA0C;YAC1C,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACjD,OAAO,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;oBAC/B,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE,EAAE;oBACZ,SAAS,EAAE,EAAE;oBACb,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;oBACvB,KAAK,EAAE,EAAE;iBACZ,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB;IAO9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAE5E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2B,CAAC;QAC1D,OAAO,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IAKjD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAE/E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B,CAAC;QAC7D,OAAO,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,WAAmB;IAChE,MAAM,SAAS,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEvD,2BAA2B;IAC3B,MAAM,mBAAmB,GAAG,CAAC,CAAkB,EAAE,CAAkB,EAAE,EAAE;QACnE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjD,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,0DAA0D;IAC1D,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,IAAI,cAAc,EAAE,CAAC;QACjB,WAAW,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IACxC,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAEtC,OAAO;QACH,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC;QACxC,cAAc,EAAE,iBAAiB,CAAC,WAAW,CAAC;QAC9C,QAAQ,EAAE,WAAW;KACxB,CAAC;AACN,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,YAAoB;IACxE,+CAA+C;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAE5E,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,+CAA+C;QAC/C,OAAO,gCAAgC,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAED,wCAAwC;IACxC,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAQ,CAAC;QAE/C,6FAA6F;QAC7F,IAAI,YAAY,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,0CAA0C;YAC1C,OAAO,YAA8B,CAAC;QAC1C,CAAC;QAED,oEAAoE;QACpE,MAAM,WAAW,GAAsB,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG;YACjB,mBAAmB;YACnB,mBAAmB;YACnB,wBAAwB;YACxB,qBAAqB;YACrB,mBAAmB;YACnB,iBAAiB;SACpB,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC7B,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxD,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QAED,OAAO;YACH,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,EAAE;YAC3C,cAAc,EAAE,YAAY,CAAC,cAAc,IAAI,EAAE;YACjD,QAAQ,EAAE,WAAW;SACxB,CAAC;IACN,CAAC;IAED,MAAM,IAAI,KAAK,CACX,mFAAmF,CACtF,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration schema for container-superposition initialization
|
|
3
|
+
*/
|
|
4
|
+
export type Stack = 'plain' | 'compose';
|
|
5
|
+
export type BaseImage = 'bookworm' | 'trixie' | 'alpine' | 'ubuntu' | 'custom';
|
|
6
|
+
export type PackageManager = 'apt' | 'apk';
|
|
7
|
+
export type LanguageOverlay = 'dotnet' | 'nodejs' | 'python' | 'mkdocs' | 'java' | 'go' | 'rust' | 'bun' | 'powershell';
|
|
8
|
+
export type DatabaseOverlay = 'postgres' | 'redis' | 'mongodb' | 'mysql' | 'sqlserver' | 'sqlite' | 'minio' | 'rabbitmq' | 'redpanda' | 'nats';
|
|
9
|
+
export type CloudTool = 'azure-cli' | 'aws-cli' | 'gcloud' | 'kubectl-helm' | 'terraform' | 'pulumi';
|
|
10
|
+
export type DevTool = 'docker-in-docker' | 'docker-sock' | 'codex' | 'playwright' | 'git-helpers' | 'pre-commit' | 'commitlint' | 'just' | 'direnv' | 'modern-cli-tools' | 'ngrok';
|
|
11
|
+
export type ObservabilityTool = 'otel-collector' | 'jaeger' | 'prometheus' | 'grafana' | 'loki';
|
|
12
|
+
export type Database = 'none' | 'postgres' | 'redis' | 'postgres+redis';
|
|
13
|
+
export interface DevContainerConfig {
|
|
14
|
+
/**
|
|
15
|
+
* The base template to use (plain or compose)
|
|
16
|
+
*/
|
|
17
|
+
stack: Stack;
|
|
18
|
+
/**
|
|
19
|
+
* Language/framework overlay
|
|
20
|
+
*/
|
|
21
|
+
language?: LanguageOverlay;
|
|
22
|
+
/**
|
|
23
|
+
* Database requirements
|
|
24
|
+
*/
|
|
25
|
+
database?: Database;
|
|
26
|
+
/**
|
|
27
|
+
* Include Playwright for browser automation
|
|
28
|
+
*/
|
|
29
|
+
playwright?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Cloud/orchestration tools to include
|
|
32
|
+
*/
|
|
33
|
+
cloudTools?: CloudTool[];
|
|
34
|
+
/**
|
|
35
|
+
* Observability tools to include
|
|
36
|
+
*/
|
|
37
|
+
observability?: ObservabilityTool[];
|
|
38
|
+
/**
|
|
39
|
+
* Where to write the devcontainer configuration
|
|
40
|
+
*/
|
|
41
|
+
outputPath?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Questionnaire response interface
|
|
45
|
+
*/
|
|
46
|
+
export interface QuestionnaireAnswers {
|
|
47
|
+
stack: Stack;
|
|
48
|
+
baseImage: BaseImage;
|
|
49
|
+
customImage?: string;
|
|
50
|
+
containerName?: string;
|
|
51
|
+
preset?: string;
|
|
52
|
+
presetChoices?: Record<string, string>;
|
|
53
|
+
presetGlueConfig?: PresetGlueConfig;
|
|
54
|
+
language?: LanguageOverlay[];
|
|
55
|
+
needsDocker: boolean;
|
|
56
|
+
database?: DatabaseOverlay[];
|
|
57
|
+
playwright: boolean;
|
|
58
|
+
cloudTools: CloudTool[];
|
|
59
|
+
devTools: DevTool[];
|
|
60
|
+
observability: ObservabilityTool[];
|
|
61
|
+
outputPath: string;
|
|
62
|
+
portOffset?: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Port attributes configuration
|
|
66
|
+
*/
|
|
67
|
+
export interface PortAttributes {
|
|
68
|
+
label?: string;
|
|
69
|
+
onAutoForward?: 'notify' | 'openBrowser' | 'openPreview' | 'silent' | 'ignore';
|
|
70
|
+
elevateIfNeeded?: boolean;
|
|
71
|
+
requireLocalPort?: boolean;
|
|
72
|
+
protocol?: 'http' | 'https';
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* DevContainer JSON structure (minimal typing)
|
|
76
|
+
*/
|
|
77
|
+
export interface DevContainer {
|
|
78
|
+
name?: string;
|
|
79
|
+
image?: string;
|
|
80
|
+
build?: {
|
|
81
|
+
dockerfile?: string;
|
|
82
|
+
context?: string;
|
|
83
|
+
};
|
|
84
|
+
features?: Record<string, any>;
|
|
85
|
+
customizations?: {
|
|
86
|
+
vscode?: {
|
|
87
|
+
extensions?: string[];
|
|
88
|
+
settings?: Record<string, any>;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
forwardPorts?: number[];
|
|
92
|
+
portsAttributes?: Record<string, PortAttributes>;
|
|
93
|
+
mounts?: string[];
|
|
94
|
+
remoteEnv?: Record<string, string>;
|
|
95
|
+
postCreateCommand?: string | Record<string, string>;
|
|
96
|
+
postStartCommand?: string | Record<string, string>;
|
|
97
|
+
remoteUser?: string;
|
|
98
|
+
workspaceFolder?: string;
|
|
99
|
+
[key: string]: any;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Overlay categories - just metadata for grouping in UI
|
|
103
|
+
*/
|
|
104
|
+
export type OverlayCategory = 'language' | 'database' | 'observability' | 'cloud' | 'dev' | 'preset';
|
|
105
|
+
/**
|
|
106
|
+
* Overlay metadata from overlays.yml
|
|
107
|
+
*/
|
|
108
|
+
export interface OverlayMetadata {
|
|
109
|
+
id: string;
|
|
110
|
+
name: string;
|
|
111
|
+
description: string;
|
|
112
|
+
category: OverlayCategory;
|
|
113
|
+
supports?: string[];
|
|
114
|
+
requires?: string[];
|
|
115
|
+
suggests?: string[];
|
|
116
|
+
conflicts?: string[];
|
|
117
|
+
tags?: string[];
|
|
118
|
+
ports?: number[];
|
|
119
|
+
order?: number;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* User choice configuration for presets
|
|
123
|
+
*/
|
|
124
|
+
export interface PresetUserChoice {
|
|
125
|
+
id: string;
|
|
126
|
+
prompt: string;
|
|
127
|
+
options: string[];
|
|
128
|
+
defaultOption?: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Glue configuration for presets
|
|
132
|
+
*/
|
|
133
|
+
export interface PresetGlueConfig {
|
|
134
|
+
environment?: Record<string, string>;
|
|
135
|
+
portMappings?: Record<string, number>;
|
|
136
|
+
readme?: string;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Meta-overlay (preset) definition
|
|
140
|
+
*/
|
|
141
|
+
export interface MetaOverlay {
|
|
142
|
+
id: string;
|
|
143
|
+
name: string;
|
|
144
|
+
description: string;
|
|
145
|
+
category: 'preset';
|
|
146
|
+
type: 'meta';
|
|
147
|
+
supports?: string[];
|
|
148
|
+
tags?: string[];
|
|
149
|
+
selects: {
|
|
150
|
+
required: string[];
|
|
151
|
+
userChoice?: Record<string, PresetUserChoice>;
|
|
152
|
+
};
|
|
153
|
+
glueConfig?: PresetGlueConfig;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Overlays configuration structure
|
|
157
|
+
*/
|
|
158
|
+
export interface OverlaysConfig {
|
|
159
|
+
base_images: Array<{
|
|
160
|
+
id: string;
|
|
161
|
+
name: string;
|
|
162
|
+
description: string;
|
|
163
|
+
image: string | null;
|
|
164
|
+
package_manager?: PackageManager;
|
|
165
|
+
}>;
|
|
166
|
+
base_templates: Array<{
|
|
167
|
+
id: string;
|
|
168
|
+
name: string;
|
|
169
|
+
description: string;
|
|
170
|
+
}>;
|
|
171
|
+
/** All overlays, regardless of category */
|
|
172
|
+
overlays: OverlayMetadata[];
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Superposition manifest generated alongside devcontainer.json
|
|
176
|
+
*/
|
|
177
|
+
export interface SuperpositionManifest {
|
|
178
|
+
version: string;
|
|
179
|
+
generated: string;
|
|
180
|
+
baseTemplate: Stack;
|
|
181
|
+
baseImage: string;
|
|
182
|
+
overlays: string[];
|
|
183
|
+
portOffset?: number;
|
|
184
|
+
preset?: string;
|
|
185
|
+
presetChoices?: Record<string, string>;
|
|
186
|
+
autoResolved?: {
|
|
187
|
+
added: string[];
|
|
188
|
+
reason: string;
|
|
189
|
+
};
|
|
190
|
+
containerName?: string;
|
|
191
|
+
customizations?: {
|
|
192
|
+
enabled: boolean;
|
|
193
|
+
location: string;
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Custom patch configuration loaded from .devcontainer/custom/
|
|
198
|
+
*/
|
|
199
|
+
export interface CustomizationConfig {
|
|
200
|
+
devcontainerPatch?: DevContainer;
|
|
201
|
+
dockerComposePatch?: any;
|
|
202
|
+
environmentVars?: Record<string, string>;
|
|
203
|
+
scripts?: {
|
|
204
|
+
postCreate?: string[];
|
|
205
|
+
postStart?: string[];
|
|
206
|
+
};
|
|
207
|
+
files?: Array<{
|
|
208
|
+
source: string;
|
|
209
|
+
destination: string;
|
|
210
|
+
}>;
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../tool/schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../tool/schema/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|