container-superposition 0.1.1 → 0.1.4

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.
Files changed (178) hide show
  1. package/README.md +569 -8
  2. package/dist/scripts/init.js +436 -254
  3. package/dist/scripts/init.js.map +1 -1
  4. package/dist/tool/commands/doctor.d.ts +15 -0
  5. package/dist/tool/commands/doctor.d.ts.map +1 -0
  6. package/dist/tool/commands/doctor.js +862 -0
  7. package/dist/tool/commands/doctor.js.map +1 -0
  8. package/dist/tool/commands/explain.d.ts +13 -0
  9. package/dist/tool/commands/explain.d.ts.map +1 -0
  10. package/dist/tool/commands/explain.js +299 -0
  11. package/dist/tool/commands/explain.js.map +1 -0
  12. package/dist/tool/commands/list.d.ts +16 -0
  13. package/dist/tool/commands/list.d.ts.map +1 -0
  14. package/dist/tool/commands/list.js +121 -0
  15. package/dist/tool/commands/list.js.map +1 -0
  16. package/dist/tool/commands/plan.d.ts +67 -0
  17. package/dist/tool/commands/plan.d.ts.map +1 -0
  18. package/dist/tool/commands/plan.js +851 -0
  19. package/dist/tool/commands/plan.js.map +1 -0
  20. package/dist/tool/questionnaire/composer.d.ts +16 -2
  21. package/dist/tool/questionnaire/composer.d.ts.map +1 -1
  22. package/dist/tool/questionnaire/composer.js +411 -200
  23. package/dist/tool/questionnaire/composer.js.map +1 -1
  24. package/dist/tool/readme/markdown-parser.d.ts.map +1 -1
  25. package/dist/tool/readme/markdown-parser.js.map +1 -1
  26. package/dist/tool/readme/readme-generator.d.ts.map +1 -1
  27. package/dist/tool/readme/readme-generator.js +11 -6
  28. package/dist/tool/readme/readme-generator.js.map +1 -1
  29. package/dist/tool/schema/deployment-targets.d.ts +77 -0
  30. package/dist/tool/schema/deployment-targets.d.ts.map +1 -0
  31. package/dist/tool/schema/deployment-targets.js +91 -0
  32. package/dist/tool/schema/deployment-targets.js.map +1 -0
  33. package/dist/tool/schema/manifest-migrations.d.ts +51 -0
  34. package/dist/tool/schema/manifest-migrations.d.ts.map +1 -0
  35. package/dist/tool/schema/manifest-migrations.js +159 -0
  36. package/dist/tool/schema/manifest-migrations.js.map +1 -0
  37. package/dist/tool/schema/overlay-loader.d.ts +1 -1
  38. package/dist/tool/schema/overlay-loader.d.ts.map +1 -1
  39. package/dist/tool/schema/overlay-loader.js +42 -14
  40. package/dist/tool/schema/overlay-loader.js.map +1 -1
  41. package/dist/tool/schema/types.d.ts +62 -2
  42. package/dist/tool/schema/types.d.ts.map +1 -1
  43. package/dist/tool/utils/gitignore.d.ts +15 -0
  44. package/dist/tool/utils/gitignore.d.ts.map +1 -0
  45. package/dist/tool/utils/gitignore.js +41 -0
  46. package/dist/tool/utils/gitignore.js.map +1 -0
  47. package/dist/tool/utils/merge.d.ts +134 -0
  48. package/dist/tool/utils/merge.d.ts.map +1 -0
  49. package/dist/tool/utils/merge.js +277 -0
  50. package/dist/tool/utils/merge.js.map +1 -0
  51. package/dist/tool/utils/port-utils.d.ts +29 -0
  52. package/dist/tool/utils/port-utils.d.ts.map +1 -0
  53. package/dist/tool/utils/port-utils.js +128 -0
  54. package/dist/tool/utils/port-utils.js.map +1 -0
  55. package/dist/tool/utils/services-export.d.ts +14 -0
  56. package/dist/tool/utils/services-export.d.ts.map +1 -0
  57. package/dist/tool/utils/services-export.js +478 -0
  58. package/dist/tool/utils/services-export.js.map +1 -0
  59. package/dist/tool/utils/summary.d.ts +69 -0
  60. package/dist/tool/utils/summary.d.ts.map +1 -0
  61. package/dist/tool/utils/summary.js +260 -0
  62. package/dist/tool/utils/summary.js.map +1 -0
  63. package/dist/tool/utils/version.d.ts +9 -0
  64. package/dist/tool/utils/version.d.ts.map +1 -0
  65. package/dist/tool/utils/version.js +32 -0
  66. package/dist/tool/utils/version.js.map +1 -0
  67. package/docs/architecture.md +25 -21
  68. package/docs/deployment-targets.md +150 -0
  69. package/docs/discovery-commands.md +442 -0
  70. package/docs/merge-strategy.md +700 -0
  71. package/docs/minimal-and-editor.md +265 -0
  72. package/docs/overlay-imports.md +209 -0
  73. package/docs/overlay-manifest-refactoring.md +2 -2
  74. package/docs/overlay-metadata-archive.md +1 -1
  75. package/docs/overlays.md +139 -28
  76. package/docs/presets-architecture.md +3 -3
  77. package/docs/presets.md +1 -1
  78. package/docs/publishing.md +36 -35
  79. package/docs/team-workflow.md +540 -0
  80. package/overlays/.presets/data-engineering.yml +392 -0
  81. package/overlays/.presets/event-sourced-service.yml +262 -0
  82. package/overlays/.presets/frontend.yml +287 -0
  83. package/overlays/.presets/k8s-operator-dev.yml +462 -0
  84. package/overlays/{presets → .presets}/microservice.yml +32 -6
  85. package/overlays/.presets/web-api.yml +129 -0
  86. package/overlays/.registry/README.md +1 -1
  87. package/overlays/.registry/deployment-targets.yml +54 -0
  88. package/overlays/.shared/README.md +43 -0
  89. package/overlays/.shared/compose/common-healthchecks.yml +38 -0
  90. package/overlays/.shared/otel/instrumentation.env +20 -0
  91. package/overlays/.shared/otel/otel-base-config.yaml +30 -0
  92. package/overlays/.shared/vscode/recommended-extensions.json +14 -0
  93. package/overlays/README.md +1 -1
  94. package/overlays/cloudflared/README.md +190 -0
  95. package/overlays/cloudflared/devcontainer.patch.json +3 -0
  96. package/overlays/cloudflared/overlay.yml +15 -0
  97. package/overlays/cloudflared/setup.sh +49 -0
  98. package/overlays/cloudflared/verify.sh +21 -0
  99. package/overlays/codex/overlay.yml +1 -0
  100. package/overlays/direnv/README.md +6 -4
  101. package/overlays/direnv/setup.sh +0 -12
  102. package/overlays/duckdb/README.md +274 -0
  103. package/overlays/duckdb/devcontainer.patch.json +10 -0
  104. package/overlays/duckdb/overlay.yml +17 -0
  105. package/overlays/duckdb/setup.sh +45 -0
  106. package/overlays/duckdb/verify.sh +32 -0
  107. package/overlays/git-helpers/overlay.yml +1 -0
  108. package/overlays/grafana/README.md +5 -5
  109. package/overlays/grafana/dashboard-provider.yml +1 -1
  110. package/overlays/grafana/docker-compose.yml +2 -2
  111. package/overlays/grafana/overlay.yml +6 -1
  112. package/overlays/grpc-tools/README.md +242 -0
  113. package/overlays/grpc-tools/devcontainer.patch.json +14 -0
  114. package/overlays/grpc-tools/overlay.yml +14 -0
  115. package/overlays/grpc-tools/setup.sh +57 -0
  116. package/overlays/grpc-tools/verify.sh +47 -0
  117. package/overlays/jaeger/overlay.yml +16 -3
  118. package/overlays/jupyter/.env.example +6 -0
  119. package/overlays/jupyter/README.md +210 -0
  120. package/overlays/jupyter/devcontainer.patch.json +14 -0
  121. package/overlays/jupyter/docker-compose.yml +23 -0
  122. package/overlays/jupyter/overlay.yml +18 -0
  123. package/overlays/jupyter/verify.sh +35 -0
  124. package/overlays/keycloak/.env.example +5 -0
  125. package/overlays/keycloak/README.md +238 -0
  126. package/overlays/keycloak/devcontainer.patch.json +17 -0
  127. package/overlays/keycloak/docker-compose.yml +32 -0
  128. package/overlays/keycloak/overlay.yml +23 -0
  129. package/overlays/keycloak/verify.sh +54 -0
  130. package/overlays/kind/README.md +221 -0
  131. package/overlays/kind/devcontainer.patch.json +10 -0
  132. package/overlays/kind/overlay.yml +18 -0
  133. package/overlays/kind/setup.sh +43 -0
  134. package/overlays/kind/verify.sh +40 -0
  135. package/overlays/localstack/.env.example +6 -0
  136. package/overlays/localstack/README.md +188 -0
  137. package/overlays/localstack/devcontainer.patch.json +21 -0
  138. package/overlays/localstack/docker-compose.yml +25 -0
  139. package/overlays/localstack/overlay.yml +18 -0
  140. package/overlays/localstack/verify.sh +47 -0
  141. package/overlays/loki/overlay.yml +6 -1
  142. package/overlays/mailpit/.env.example +4 -0
  143. package/overlays/mailpit/README.md +191 -0
  144. package/overlays/mailpit/devcontainer.patch.json +20 -0
  145. package/overlays/mailpit/docker-compose.yml +17 -0
  146. package/overlays/mailpit/overlay.yml +26 -0
  147. package/overlays/mailpit/verify.sh +52 -0
  148. package/overlays/modern-cli-tools/overlay.yml +1 -0
  149. package/overlays/mongodb/overlay.yml +12 -2
  150. package/overlays/mysql/overlay.yml +12 -2
  151. package/overlays/nats/overlay.yml +12 -2
  152. package/overlays/ngrok/overlay.yml +2 -1
  153. package/overlays/openapi-tools/README.md +243 -0
  154. package/overlays/openapi-tools/devcontainer.patch.json +10 -0
  155. package/overlays/openapi-tools/overlay.yml +16 -0
  156. package/overlays/openapi-tools/setup.sh +45 -0
  157. package/overlays/openapi-tools/verify.sh +51 -0
  158. package/overlays/otel-collector/overlay.yml.example +26 -0
  159. package/overlays/postgres/overlay.yml +6 -1
  160. package/overlays/prometheus/overlay.yml +6 -1
  161. package/overlays/python/README.md +51 -35
  162. package/overlays/python/devcontainer.patch.json +7 -4
  163. package/overlays/python/setup.sh +50 -23
  164. package/overlays/python/verify.sh +29 -1
  165. package/overlays/rabbitmq/overlay.yml +12 -2
  166. package/overlays/redis/overlay.yml +6 -1
  167. package/overlays/tilt/README.md +259 -0
  168. package/overlays/tilt/devcontainer.patch.json +17 -0
  169. package/overlays/tilt/overlay.yml +19 -0
  170. package/overlays/tilt/setup.sh +25 -0
  171. package/overlays/tilt/verify.sh +24 -0
  172. package/package.json +8 -6
  173. package/tool/README.md +12 -16
  174. package/tool/schema/overlay-manifest.schema.json +64 -4
  175. package/tool/schema/superposition-manifest.schema.json +104 -0
  176. package/overlays/presets/web-api.yml +0 -109
  177. /package/overlays/{presets → .presets}/docs-site.yml +0 -0
  178. /package/overlays/{presets → .presets}/fullstack.yml +0 -0
package/docs/overlays.md CHANGED
@@ -53,6 +53,18 @@ Eclipse Temurin JDK 21 with Maven and Gradle
53
53
  | **Tags** | `language`, `java`, `maven`, `gradle` |
54
54
  | **Ports** | 8080, 8081 |
55
55
 
56
+ ### Jupyter (`jupyter`)
57
+
58
+ Jupyter notebook server for interactive computing and data science
59
+
60
+ | Property | Value |
61
+ | ------------ | ----------------------------------------------------------- |
62
+ | **Category** | language |
63
+ | **Supports** | compose |
64
+ | **Requires** | `python` |
65
+ | **Tags** | `language`, `jupyter`, `python`, `notebook`, `data-science` |
66
+ | **Ports** | 8888 |
67
+
56
68
  ### MkDocs (`mkdocs`)
57
69
 
58
70
  Material for MkDocs - professional documentation generator
@@ -103,6 +115,16 @@ Rust stable with cargo, rustfmt, and clippy
103
115
 
104
116
  ## Database Overlays
105
117
 
118
+ ### DuckDB (`duckdb`)
119
+
120
+ In-process analytical database for OLAP workloads
121
+
122
+ | Property | Value |
123
+ | ------------ | ------------------------------------------------ |
124
+ | **Category** | database |
125
+ | **Suggests** | `python`, `jupyter` |
126
+ | **Tags** | `database`, `analytics`, `sql`, `duckdb`, `olap` |
127
+
106
128
  ### MinIO (`minio`)
107
129
 
108
130
  S3-compatible object storage with web console
@@ -123,18 +145,18 @@ MongoDB 8 with Mongo Express web UI
123
145
  | **Category** | database |
124
146
  | **Supports** | compose |
125
147
  | **Tags** | `database`, `nosql`, `mongodb`, `document` |
126
- | **Ports** | 27017, 8081 |
148
+ | **Ports** | [object Object], [object Object] |
127
149
 
128
150
  ### MySQL (`mysql`)
129
151
 
130
152
  MySQL 8 with phpMyAdmin web UI
131
153
 
132
- | Property | Value |
133
- | ------------ | -------------------------- |
134
- | **Category** | database |
135
- | **Supports** | compose |
136
- | **Tags** | `database`, `sql`, `mysql` |
137
- | **Ports** | 3306, 8080 |
154
+ | Property | Value |
155
+ | ------------ | -------------------------------- |
156
+ | **Category** | database |
157
+ | **Supports** | compose |
158
+ | **Tags** | `database`, `sql`, `mysql` |
159
+ | **Ports** | [object Object], [object Object] |
138
160
 
139
161
  ### NATS (`nats`)
140
162
 
@@ -145,7 +167,7 @@ Lightweight pub/sub messaging with JetStream
145
167
  | **Category** | database |
146
168
  | **Supports** | compose |
147
169
  | **Tags** | `database`, `messaging`, `pubsub`, `nats`, `jetstream` |
148
- | **Ports** | 4222, 8222 |
170
+ | **Ports** | [object Object], [object Object] |
149
171
 
150
172
  ### PostgreSQL (`postgres`)
151
173
 
@@ -156,7 +178,7 @@ PostgreSQL 16 database
156
178
  | **Category** | database |
157
179
  | **Supports** | compose |
158
180
  | **Tags** | `database`, `sql`, `postgres` |
159
- | **Ports** | 5432 |
181
+ | **Ports** | [object Object] |
160
182
 
161
183
  ### RabbitMQ (`rabbitmq`)
162
184
 
@@ -167,7 +189,7 @@ Message broker with AMQP protocol and management UI
167
189
  | **Category** | database |
168
190
  | **Supports** | compose |
169
191
  | **Tags** | `database`, `messaging`, `queue`, `rabbitmq`, `amqp` |
170
- | **Ports** | 5672, 15672 |
192
+ | **Ports** | [object Object], [object Object] |
171
193
 
172
194
  ### Redis (`redis`)
173
195
 
@@ -178,7 +200,7 @@ Redis 7 cache
178
200
  | **Category** | database |
179
201
  | **Supports** | compose |
180
202
  | **Tags** | `database`, `cache`, `redis` |
181
- | **Ports** | 6379 |
203
+ | **Ports** | [object Object] |
182
204
 
183
205
  ### Redpanda (`redpanda`)
184
206
 
@@ -219,13 +241,13 @@ SQLite with litecli and VS Code extensions
219
241
 
220
242
  Distributed tracing backend
221
243
 
222
- | Property | Value |
223
- | ------------- | ------------------------------------ |
224
- | **Category** | observability |
225
- | **Supports** | compose |
226
- | **Conflicts** | `tempo` |
227
- | **Tags** | `observability`, `tracing`, `jaeger` |
228
- | **Ports** | 16686, 14250, 14268 |
244
+ | Property | Value |
245
+ | ------------- | ------------------------------------------------- |
246
+ | **Category** | observability |
247
+ | **Supports** | compose |
248
+ | **Conflicts** | `tempo` |
249
+ | **Tags** | `observability`, `tracing`, `jaeger` |
250
+ | **Ports** | [object Object], [object Object], [object Object] |
229
251
 
230
252
  ### Loki (`loki`)
231
253
 
@@ -237,7 +259,7 @@ Log aggregation system
237
259
  | **Supports** | compose |
238
260
  | **Suggests** | `promtail` |
239
261
  | **Tags** | `observability`, `logs`, `loki` |
240
- | **Ports** | 3100 |
262
+ | **Ports** | [object Object] |
241
263
 
242
264
  ### Prometheus (`prometheus`)
243
265
 
@@ -249,7 +271,7 @@ Metrics collection and monitoring
249
271
  | **Supports** | compose |
250
272
  | **Suggests** | `alertmanager` |
251
273
  | **Tags** | `observability`, `metrics`, `prometheus` |
252
- | **Ports** | 9090 |
274
+ | **Ports** | [object Object] |
253
275
 
254
276
  ### Tempo (`tempo`)
255
277
 
@@ -310,7 +332,7 @@ Observability visualization dashboard with auto-provisioning
310
332
  | **Requires** | `prometheus` |
311
333
  | **Suggests** | `loki`, `jaeger`, `tempo`, `promtail` |
312
334
  | **Tags** | `observability`, `ui`, `visualization` |
313
- | **Ports** | 3000 |
335
+ | **Ports** | [object Object] |
314
336
 
315
337
  ### OTel Demo (Node.js) (`otel-demo-nodejs`)
316
338
 
@@ -367,6 +389,18 @@ Google Cloud Platform command-line tools (gcloud, gsutil, bq)
367
389
  | **Category** | cloud |
368
390
  | **Tags** | `cloud`, `gcp`, `google`, `cli` |
369
391
 
392
+ ### kind (Kubernetes in Docker) (`kind`)
393
+
394
+ Local Kubernetes cluster for development and testing
395
+
396
+ | Property | Value |
397
+ | ------------- | ----------------------------------------------- |
398
+ | **Category** | cloud |
399
+ | **Requires** | `docker-in-docker` |
400
+ | **Suggests** | `kubectl-helm` |
401
+ | **Conflicts** | `k3d` |
402
+ | **Tags** | `cloud`, `kubernetes`, `k8s`, `kind`, `testing` |
403
+
370
404
  ### kubectl + Helm (`kubectl-helm`)
371
405
 
372
406
  Kubernetes CLI and Helm package manager
@@ -376,6 +410,18 @@ Kubernetes CLI and Helm package manager
376
410
  | **Category** | cloud |
377
411
  | **Tags** | `cloud`, `kubernetes`, `helm` |
378
412
 
413
+ ### LocalStack (`localstack`)
414
+
415
+ Local AWS cloud stack for development and testing
416
+
417
+ | Property | Value |
418
+ | ------------ | --------------------------------------- |
419
+ | **Category** | cloud |
420
+ | **Supports** | compose |
421
+ | **Suggests** | `aws-cli` |
422
+ | **Tags** | `cloud`, `aws`, `testing`, `localstack` |
423
+ | **Ports** | 4566, 4571 |
424
+
379
425
  ### Pulumi (`pulumi`)
380
426
 
381
427
  Modern Infrastructure as Code with TypeScript/Python/Go
@@ -396,6 +442,16 @@ Infrastructure as Code with HCL (includes tflint)
396
442
 
397
443
  ## Dev Tool Overlays
398
444
 
445
+ ### Cloudflared (`cloudflared`)
446
+
447
+ Cloudflare Tunnel for securely exposing local services to the internet
448
+
449
+ | Property | Value |
450
+ | ------------- | ----------------------------------------- |
451
+ | **Category** | dev |
452
+ | **Conflicts** | `ngrok` |
453
+ | **Tags** | `dev`, `tunneling`, `proxy`, `cloudflare` |
454
+
399
455
  ### Codex (`codex`)
400
456
 
401
457
  OpenAI Codex CLI for AI-powered code generation and assistance
@@ -413,6 +469,7 @@ Conventional commits validation for automated releases
413
469
  | Property | Value |
414
470
  | ------------ | ------------------------------------------- |
415
471
  | **Category** | dev |
472
+ | **Requires** | `nodejs` |
416
473
  | **Suggests** | `pre-commit` |
417
474
  | **Tags** | `dev`, `git`, `commits`, `semantic-release` |
418
475
 
@@ -454,6 +511,15 @@ Git LFS, GitHub CLI, GPG/SSH support for secure Git operations
454
511
  | **Category** | dev |
455
512
  | **Tags** | `dev`, `git`, `security`, `ssh`, `gpg` |
456
513
 
514
+ ### gRPC Tools (`grpc-tools`)
515
+
516
+ Protocol Buffers compiler, Buf, and grpcurl for gRPC development
517
+
518
+ | Property | Value |
519
+ | ------------ | -------------------------------- |
520
+ | **Category** | dev |
521
+ | **Tags** | `dev`, `grpc`, `protobuf`, `api` |
522
+
457
523
  ### Just Task Runner (`just`)
458
524
 
459
525
  Fast, simple command runner (Rust-based alternative to Make)
@@ -463,6 +529,29 @@ Fast, simple command runner (Rust-based alternative to Make)
463
529
  | **Category** | dev |
464
530
  | **Tags** | `dev`, `automation`, `tasks` |
465
531
 
532
+ ### Keycloak (`keycloak`)
533
+
534
+ Open-source identity and access management (OIDC/OAuth2)
535
+
536
+ | Property | Value |
537
+ | ------------ | ------------------------------------------- |
538
+ | **Category** | dev |
539
+ | **Supports** | compose |
540
+ | **Requires** | `postgres` |
541
+ | **Tags** | `dev`, `auth`, `oidc`, `oauth2`, `identity` |
542
+ | **Ports** | [object Object] |
543
+
544
+ ### Mailpit (`mailpit`)
545
+
546
+ Email testing tool with web UI and SMTP server
547
+
548
+ | Property | Value |
549
+ | ------------ | --------------------------------- |
550
+ | **Category** | dev |
551
+ | **Supports** | compose |
552
+ | **Tags** | `dev`, `email`, `smtp`, `testing` |
553
+ | **Ports** | [object Object], [object Object] |
554
+
466
555
  ### Modern CLI Tools (`modern-cli-tools`)
467
556
 
468
557
  jq, yq, ripgrep, fd, bat - Essential modern command-line tools
@@ -476,11 +565,22 @@ jq, yq, ripgrep, fd, bat - Essential modern command-line tools
476
565
 
477
566
  Secure tunneling for webhook testing and external access
478
567
 
479
- | Property | Value |
480
- | ------------ | ------------------------------ |
481
- | **Category** | dev |
482
- | **Tags** | `dev`, `tunneling`, `webhooks` |
483
- | **Ports** | 4040 |
568
+ | Property | Value |
569
+ | ------------- | ------------------------------ |
570
+ | **Category** | dev |
571
+ | **Conflicts** | `cloudflared` |
572
+ | **Tags** | `dev`, `tunneling`, `webhooks` |
573
+ | **Ports** | 4040 |
574
+
575
+ ### OpenAPI Tools (`openapi-tools`)
576
+
577
+ OpenAPI/Swagger tooling for API development and documentation
578
+
579
+ | Property | Value |
580
+ | ------------ | --------------------------------------------------- |
581
+ | **Category** | dev |
582
+ | **Suggests** | `nodejs` |
583
+ | **Tags** | `dev`, `openapi`, `swagger`, `api`, `documentation` |
484
584
 
485
585
  ### Playwright (`playwright`)
486
586
 
@@ -498,9 +598,22 @@ Automated code quality gates with pre-commit hooks
498
598
  | Property | Value |
499
599
  | ------------ | -------------------------------- |
500
600
  | **Category** | dev |
601
+ | **Requires** | `python` |
501
602
  | **Suggests** | `commitlint` |
502
603
  | **Tags** | `dev`, `git`, `quality`, `hooks` |
503
604
 
605
+ ### Tilt (`tilt`)
606
+
607
+ Live update and orchestration for Kubernetes development
608
+
609
+ | Property | Value |
610
+ | ------------- | -------------------------------------------------------- |
611
+ | **Category** | dev |
612
+ | **Suggests** | `kind`, `kubectl-helm` |
613
+ | **Conflicts** | `skaffold` |
614
+ | **Tags** | `dev`, `kubernetes`, `k8s`, `development`, `live-reload` |
615
+ | **Ports** | 10350 |
616
+
504
617
  ## Dependency Model
505
618
 
506
619
  ### Dependency Types
@@ -519,5 +632,3 @@ For example, selecting `grafana` will automatically include `prometheus`.
519
632
  Each overlay declares its ports explicitly. When using port offset, all declared ports are shifted by the same offset.
520
633
 
521
634
  ---
522
-
523
- _Documentation generated on 2026-02-08T18:01:55.685Z_
@@ -65,10 +65,10 @@ interface PresetGlueConfig {
65
65
 
66
66
  ### Preset File Structure
67
67
 
68
- Presets are defined in `overlays/presets/` with YAML files:
68
+ Presets are defined in `overlays/.presets/` with YAML files:
69
69
 
70
70
  ```yaml
71
- # overlays/presets/web-api.yml
71
+ # overlays/.presets/web-api.yml
72
72
  id: web-api
73
73
  name: Web API Stack
74
74
  description: Full-stack web API with database, cache, and observability
@@ -407,7 +407,7 @@ selects:
407
407
 
408
408
  ### Adding New Presets
409
409
 
410
- 1. **Create YAML file** in `overlays/presets/`
410
+ 1. **Create YAML file** in `overlays/.presets/`
411
411
  2. **Register in** `overlays/index.yml`
412
412
  3. **No code changes needed** (declarative system)
413
413
 
package/docs/presets.md CHANGED
@@ -281,7 +281,7 @@ This allows you to:
281
281
 
282
282
  To create your own preset:
283
283
 
284
- 1. Create `overlays/presets/my-preset.yml`:
284
+ 1. Create `overlays/.presets/my-preset.yml`:
285
285
 
286
286
  ```yaml
287
287
  id: my-preset
@@ -299,8 +299,6 @@ npm install -g container-superposition
299
299
  container-superposition init
300
300
  ```
301
301
 
302
- ````
303
-
304
302
  ## Continuous Publishing
305
303
 
306
304
  ### Automated Releases (Future Enhancement)
@@ -312,23 +310,23 @@ Consider GitHub Actions for automated publishing:
312
310
  name: Publish to npm
313
311
 
314
312
  on:
315
- release:
316
- types: [created]
313
+ release:
314
+ types: [created]
317
315
 
318
316
  jobs:
319
- publish:
320
- runs-on: ubuntu-latest
321
- steps:
322
- - uses: actions/checkout@v4
323
- - uses: actions/setup-node@v4
324
- with:
325
- node-version: '20'
326
- registry-url: 'https://registry.npmjs.org'
327
- - run: npm ci
328
- - run: npm test
329
- - run: npm publish
330
- env:
331
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
317
+ publish:
318
+ runs-on: ubuntu-latest
319
+ steps:
320
+ - uses: actions/checkout@v4
321
+ - uses: actions/setup-node@v4
322
+ with:
323
+ node-version: '20'
324
+ registry-url: 'https://registry.npmjs.org'
325
+ - run: npm ci
326
+ - run: npm test
327
+ - run: npm publish
328
+ env:
329
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
332
330
  ```
333
331
 
334
332
  ## Troubleshooting
@@ -336,6 +334,7 @@ jobs:
336
334
  ### ".npmignore not found" Warning
337
335
 
338
336
  If you see:
337
+
339
338
  ```
340
339
  npm warn gitignore-fallback No .npmignore file found, using .gitignore for file exclusion.
341
340
  ```
@@ -343,17 +342,18 @@ npm warn gitignore-fallback No .npmignore file found, using .gitignore for file
343
342
  **This warning can be safely ignored.** The package uses the `"files"` field in `package.json` as the primary inclusion mechanism (allowlist approach), which is more explicit and maintainable than `.npmignore` (denylist approach).
344
343
 
345
344
  The `"files"` field specifies exactly what to include:
345
+
346
346
  ```json
347
347
  {
348
- "files": [
349
- "dist/",
350
- "templates/",
351
- "features/",
352
- "overlays/",
353
- "tool/**/*.json",
354
- "tool/**/*.yml",
355
- "docs/**/*.md"
356
- ]
348
+ "files": [
349
+ "dist/",
350
+ "templates/",
351
+ "features/",
352
+ "overlays/",
353
+ "tool/**/*.json",
354
+ "tool/**/*.yml",
355
+ "docs/**/*.md"
356
+ ]
357
357
  }
358
358
  ```
359
359
 
@@ -381,14 +381,14 @@ To exclude unnecessary files, modify the `"files"` array in `package.json`:
381
381
 
382
382
  ```json
383
383
  {
384
- "files": [
385
- "dist/", // Keep compiled code
386
- "templates/", // Keep base templates
387
- "features/", // Keep custom features
388
- "overlays/", // Keep all overlays
389
- // Exclude specific patterns with "!" prefix if needed
390
- "!overlays/**/node_modules"
391
- ]
384
+ "files": [
385
+ "dist/", // Keep compiled code
386
+ "templates/", // Keep base templates
387
+ "features/", // Keep custom features
388
+ "overlays/", // Keep all overlays
389
+ // Exclude specific patterns with "!" prefix if needed
390
+ "!overlays/**/node_modules"
391
+ ]
392
392
  }
393
393
  ```
394
394
 
@@ -407,6 +407,7 @@ npm login
407
407
  ### Name Already Taken
408
408
 
409
409
  Options:
410
+
410
411
  1. Use scoped package: `@veggerby/container-superposition`
411
412
  2. Choose different name: `devcontainer-superposition`, `superposition-dev`, etc.
412
413
  3. Contact current owner if package is abandoned
@@ -425,6 +426,7 @@ npm publish
425
426
  ### Versioning Strategy
426
427
 
427
428
  Follow [Semantic Versioning](https://semver.org/):
429
+
428
430
  - **MAJOR**: Breaking changes (e.g., removing overlays, changing CLI args)
429
431
  - **MINOR**: New features (e.g., adding overlays, new CLI options)
430
432
  - **PATCH**: Bug fixes (e.g., fixing composition logic, updating deps)
@@ -473,4 +475,3 @@ npm unpublish container-superposition --force
473
475
  - [npm Version Management](https://docs.npmjs.com/cli/v10/commands/npm-version)
474
476
  - [Semantic Versioning](https://semver.org/)
475
477
  - [npm Package Lifecycle Scripts](https://docs.npmjs.com/cli/v10/using-npm/scripts#life-cycle-scripts)
476
- ````