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
@@ -0,0 +1,287 @@
1
+ # Frontend Development Preset
2
+ # Modern frontend development environment
3
+
4
+ id: frontend
5
+ name: Frontend Application
6
+ description: Modern frontend development with testing and tooling
7
+ type: meta
8
+ category: preset
9
+ supports: [] # Works with both plain and compose
10
+ tags: [preset, frontend, web, ui, react, vue, svelte]
11
+
12
+ # Overlays to select
13
+ selects:
14
+ # Always included
15
+ required:
16
+ - playwright
17
+ - modern-cli-tools
18
+
19
+ # User makes choices
20
+ userChoice:
21
+ language:
22
+ id: language
23
+ prompt: Select JavaScript runtime
24
+ options: [nodejs, bun]
25
+ defaultOption: nodejs
26
+
27
+ # Glue configuration - integration helpers
28
+ glueConfig:
29
+ # Pre-configured environment variables
30
+ environment:
31
+ # Development server
32
+ DEV_SERVER_PORT: '3000'
33
+ DEV_SERVER_HOST: '0.0.0.0'
34
+
35
+ # Node.js configuration
36
+ NODE_ENV: 'development'
37
+
38
+ # Package manager (npm, pnpm, yarn)
39
+ # Users can override in their project
40
+
41
+ # Hot reload settings
42
+ WATCHPACK_POLLING: 'false'
43
+ CHOKIDAR_USEPOLLING: 'false'
44
+
45
+ # Playwright configuration
46
+ PLAYWRIGHT_BROWSERS_PATH: '/home/vscode/.cache/ms-playwright'
47
+
48
+ # Suggested port mappings
49
+ portMappings:
50
+ dev-server: 3000
51
+ preview: 4173 # Vite preview port
52
+ storybook: 6006 # Future: when storybook overlay exists
53
+
54
+ # README snippet to add to generated devcontainer
55
+ readme: |
56
+ ## Frontend Development Stack
57
+
58
+ This devcontainer is configured for modern frontend development:
59
+
60
+ ### Tools
61
+
62
+ - **JavaScript Runtime**: Your chosen runtime (Node.js or Bun)
63
+ - **Playwright**: End-to-end testing framework
64
+ - **Modern CLI Tools**: bat, fd, ripgrep, fzf for productivity
65
+
66
+ ### Supported Frameworks
67
+
68
+ This environment works with any modern frontend framework:
69
+
70
+ - **React** - Create React App, Next.js, Remix
71
+ - **Vue** - Vue CLI, Nuxt, Vite
72
+ - **Svelte** - SvelteKit, Vite
73
+ - **Angular** - Angular CLI
74
+ - **Solid** - Solid Start, Vite
75
+
76
+ ### Quick Start
77
+
78
+ #### Create New Project
79
+
80
+ ```bash
81
+ # React with Vite
82
+ npm create vite@latest my-app -- --template react-ts
83
+ cd my-app
84
+ npm install
85
+
86
+ # Vue with Vite
87
+ npm create vite@latest my-app -- --template vue-ts
88
+ cd my-app
89
+ npm install
90
+
91
+ # SvelteKit
92
+ npm create svelte@latest my-app
93
+ cd my-app
94
+ npm install
95
+
96
+ # Next.js
97
+ npx create-next-app@latest my-app --typescript
98
+ cd my-app
99
+
100
+ # Remix
101
+ npx create-remix@latest my-app
102
+ cd my-app
103
+ ```
104
+
105
+ #### Start Development Server
106
+
107
+ ```bash
108
+ npm run dev
109
+ # Access at http://localhost:3000
110
+ ```
111
+
112
+ ### Package Managers
113
+
114
+ Choose your preferred package manager:
115
+
116
+ ```bash
117
+ # npm (default)
118
+ npm install
119
+
120
+ # pnpm (faster, disk-efficient)
121
+ npm install -g pnpm
122
+ pnpm install
123
+
124
+ # yarn
125
+ npm install -g yarn
126
+ yarn install
127
+
128
+ # Bun (if using Bun runtime)
129
+ bun install
130
+ ```
131
+
132
+ ### Playwright Testing
133
+
134
+ Playwright is pre-installed for E2E testing:
135
+
136
+ #### Install Playwright in Your Project
137
+
138
+ ```bash
139
+ npm init playwright@latest
140
+ # Select TypeScript, GitHub Actions, browsers
141
+ ```
142
+
143
+ #### Run Tests
144
+
145
+ ```bash
146
+ # Headless
147
+ npx playwright test
148
+
149
+ # UI mode (recommended for development)
150
+ npx playwright test --ui
151
+
152
+ # Debug mode
153
+ npx playwright test --debug
154
+
155
+ # Specific browser
156
+ npx playwright test --project=chromium
157
+ ```
158
+
159
+ #### Example Test
160
+
161
+ ```typescript
162
+ // tests/example.spec.ts
163
+ import { test, expect } from '@playwright/test';
164
+
165
+ test('homepage has title', async ({ page }) => {
166
+ await page.goto('http://localhost:3000');
167
+ await expect(page).toHaveTitle(/My App/);
168
+ });
169
+
170
+ test('navigation works', async ({ page }) => {
171
+ await page.goto('http://localhost:3000');
172
+ await page.click('text=About');
173
+ await expect(page).toHaveURL(/.*about/);
174
+ });
175
+ ```
176
+
177
+ ### Development Workflow
178
+
179
+ #### Hot Reload
180
+
181
+ Modern dev servers (Vite, Next.js, etc.) have hot reload by default:
182
+
183
+ - Edit component files → instant updates
184
+ - Edit CSS → no page refresh needed
185
+ - TypeScript errors shown in browser
186
+
187
+ #### Code Quality
188
+
189
+ Consider adding these tools:
190
+
191
+ ```bash
192
+ # ESLint
193
+ npm install -D eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
194
+
195
+ # Prettier
196
+ npm install -D prettier
197
+
198
+ # Type checking
199
+ npm run tsc --noEmit
200
+ ```
201
+
202
+ ### Modern CLI Tools
203
+
204
+ This preset includes productivity tools:
205
+
206
+ - **bat**: Syntax-highlighted cat (`bat package.json`)
207
+ - **fd**: Fast file finder (`fd '*.tsx'`)
208
+ - **ripgrep**: Fast grep (`rg 'useState'`)
209
+ - **fzf**: Fuzzy finder (Ctrl+R for history)
210
+ - **jq**: JSON processor (`cat package.json | jq .scripts`)
211
+
212
+ ### Build and Preview
213
+
214
+ ```bash
215
+ # Build for production
216
+ npm run build
217
+
218
+ # Preview production build
219
+ npm run preview
220
+ # Access at http://localhost:4173
221
+ ```
222
+
223
+ ### Vite Configuration Tips
224
+
225
+ ```typescript
226
+ // vite.config.ts
227
+ import { defineConfig } from 'vite'
228
+ import react from '@vitejs/plugin-react'
229
+
230
+ export default defineConfig({
231
+ plugins: [react()],
232
+ server: {
233
+ host: '0.0.0.0', // Allow external connections
234
+ port: 3000,
235
+ hmr: {
236
+ host: 'localhost'
237
+ }
238
+ }
239
+ })
240
+ ```
241
+
242
+ ### TypeScript Configuration
243
+
244
+ ```json
245
+ // tsconfig.json
246
+ {
247
+ "compilerOptions": {
248
+ "target": "ES2022",
249
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
250
+ "module": "ESNext",
251
+ "moduleResolution": "bundler",
252
+ "jsx": "react-jsx",
253
+ "strict": true,
254
+ "esModuleInterop": true
255
+ }
256
+ }
257
+ ```
258
+
259
+ ### Deployment
260
+
261
+ This environment is for development. For production:
262
+
263
+ - **Vercel**: `npm install -g vercel && vercel`
264
+ - **Netlify**: `npm install -g netlify-cli && netlify deploy`
265
+ - **GitHub Pages**: Build and push to `gh-pages` branch
266
+ - **Docker**: Create production Dockerfile (nginx + static files)
267
+
268
+ ### Future Enhancements
269
+
270
+ When the Storybook overlay is available:
271
+
272
+ - Component development in isolation
273
+ - Visual regression testing
274
+ - Component documentation
275
+ - Design system development
276
+
277
+ ### Next Steps
278
+
279
+ - Choose and scaffold your frontend framework
280
+ - Set up ESLint and Prettier
281
+ - Configure Playwright for E2E tests
282
+ - Add pre-commit hooks for code quality
283
+ - Set up CI/CD pipeline
284
+ - Configure environment variables
285
+ - Add state management (Redux, Zustand, Pinia, etc.)
286
+ - Implement routing
287
+ - Add component library (MUI, Chakra, etc.)