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.
- package/README.md +569 -8
- package/dist/scripts/init.js +436 -254
- package/dist/scripts/init.js.map +1 -1
- package/dist/tool/commands/doctor.d.ts +15 -0
- package/dist/tool/commands/doctor.d.ts.map +1 -0
- package/dist/tool/commands/doctor.js +862 -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 +299 -0
- package/dist/tool/commands/explain.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/plan.d.ts +67 -0
- package/dist/tool/commands/plan.d.ts.map +1 -0
- package/dist/tool/commands/plan.js +851 -0
- package/dist/tool/commands/plan.js.map +1 -0
- package/dist/tool/questionnaire/composer.d.ts +16 -2
- package/dist/tool/questionnaire/composer.d.ts.map +1 -1
- package/dist/tool/questionnaire/composer.js +411 -200
- package/dist/tool/questionnaire/composer.js.map +1 -1
- 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 +11 -6
- 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 +51 -0
- package/dist/tool/schema/manifest-migrations.d.ts.map +1 -0
- package/dist/tool/schema/manifest-migrations.js +159 -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 +42 -14
- package/dist/tool/schema/overlay-loader.js.map +1 -1
- package/dist/tool/schema/types.d.ts +62 -2
- package/dist/tool/schema/types.d.ts.map +1 -1
- 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 +277 -0
- package/dist/tool/utils/merge.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/architecture.md +25 -21
- package/docs/deployment-targets.md +150 -0
- package/docs/discovery-commands.md +442 -0
- package/docs/merge-strategy.md +700 -0
- package/docs/minimal-and-editor.md +265 -0
- package/docs/overlay-imports.md +209 -0
- package/docs/overlay-manifest-refactoring.md +2 -2
- package/docs/overlay-metadata-archive.md +1 -1
- package/docs/overlays.md +139 -28
- package/docs/presets-architecture.md +3 -3
- package/docs/presets.md +1 -1
- package/docs/publishing.md +36 -35
- package/docs/team-workflow.md +540 -0
- 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/k8s-operator-dev.yml +462 -0
- package/overlays/{presets → .presets}/microservice.yml +32 -6
- 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 +43 -0
- package/overlays/.shared/compose/common-healthchecks.yml +38 -0
- package/overlays/.shared/otel/instrumentation.env +20 -0
- package/overlays/.shared/otel/otel-base-config.yaml +30 -0
- package/overlays/.shared/vscode/recommended-extensions.json +14 -0
- package/overlays/README.md +1 -1
- 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 +49 -0
- package/overlays/cloudflared/verify.sh +21 -0
- package/overlays/codex/overlay.yml +1 -0
- package/overlays/direnv/README.md +6 -4
- package/overlays/direnv/setup.sh +0 -12
- package/overlays/duckdb/README.md +274 -0
- package/overlays/duckdb/devcontainer.patch.json +10 -0
- package/overlays/duckdb/overlay.yml +17 -0
- package/overlays/duckdb/setup.sh +45 -0
- package/overlays/duckdb/verify.sh +32 -0
- package/overlays/git-helpers/overlay.yml +1 -0
- package/overlays/grafana/README.md +5 -5
- package/overlays/grafana/dashboard-provider.yml +1 -1
- package/overlays/grafana/docker-compose.yml +2 -2
- package/overlays/grafana/overlay.yml +6 -1
- 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/overlay.yml +16 -3
- 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 +23 -0
- package/overlays/jupyter/overlay.yml +18 -0
- package/overlays/jupyter/verify.sh +35 -0
- package/overlays/keycloak/.env.example +5 -0
- package/overlays/keycloak/README.md +238 -0
- package/overlays/keycloak/devcontainer.patch.json +17 -0
- package/overlays/keycloak/docker-compose.yml +32 -0
- package/overlays/keycloak/overlay.yml +23 -0
- package/overlays/keycloak/verify.sh +54 -0
- package/overlays/kind/README.md +221 -0
- package/overlays/kind/devcontainer.patch.json +10 -0
- package/overlays/kind/overlay.yml +18 -0
- package/overlays/kind/setup.sh +43 -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 +25 -0
- package/overlays/localstack/overlay.yml +18 -0
- package/overlays/localstack/verify.sh +47 -0
- package/overlays/loki/overlay.yml +6 -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 +17 -0
- package/overlays/mailpit/overlay.yml +26 -0
- package/overlays/mailpit/verify.sh +52 -0
- package/overlays/modern-cli-tools/overlay.yml +1 -0
- package/overlays/mongodb/overlay.yml +12 -2
- package/overlays/mysql/overlay.yml +12 -2
- package/overlays/nats/overlay.yml +12 -2
- package/overlays/ngrok/overlay.yml +2 -1
- package/overlays/openapi-tools/README.md +243 -0
- package/overlays/openapi-tools/devcontainer.patch.json +10 -0
- package/overlays/openapi-tools/overlay.yml +16 -0
- package/overlays/openapi-tools/setup.sh +45 -0
- package/overlays/openapi-tools/verify.sh +51 -0
- package/overlays/otel-collector/overlay.yml.example +26 -0
- package/overlays/postgres/overlay.yml +6 -1
- package/overlays/prometheus/overlay.yml +6 -1
- package/overlays/python/README.md +51 -35
- package/overlays/python/devcontainer.patch.json +7 -4
- package/overlays/python/setup.sh +50 -23
- package/overlays/python/verify.sh +29 -1
- package/overlays/rabbitmq/overlay.yml +12 -2
- package/overlays/redis/overlay.yml +6 -1
- package/overlays/tilt/README.md +259 -0
- package/overlays/tilt/devcontainer.patch.json +17 -0
- package/overlays/tilt/overlay.yml +19 -0
- package/overlays/tilt/setup.sh +25 -0
- package/overlays/tilt/verify.sh +24 -0
- package/package.json +8 -6
- package/tool/README.md +12 -16
- package/tool/schema/overlay-manifest.schema.json +64 -4
- package/tool/schema/superposition-manifest.schema.json +104 -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
|
@@ -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.)
|