container-superposition 0.1.10 → 0.1.11

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.
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Auto-generate JSON Schema for superposition.yml.
4
+ *
5
+ * Enum values for stack, baseImage, target and editor are imported directly from the
6
+ * exported constants in tool/schema/project-config.ts so they stay in sync with the
7
+ * runtime validation logic. Overlay IDs are read from the live overlay registry.
8
+ *
9
+ * Output: tool/schema/superposition.schema.json
10
+ *
11
+ * Run via: npm run schema:generate
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=generate-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-schema.d.ts","sourceRoot":"","sources":["../../scripts/generate-schema.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG"}
@@ -0,0 +1,406 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Auto-generate JSON Schema for superposition.yml.
4
+ *
5
+ * Enum values for stack, baseImage, target and editor are imported directly from the
6
+ * exported constants in tool/schema/project-config.ts so they stay in sync with the
7
+ * runtime validation logic. Overlay IDs are read from the live overlay registry.
8
+ *
9
+ * Output: tool/schema/superposition.schema.json
10
+ *
11
+ * Run via: npm run schema:generate
12
+ */
13
+ import * as fs from 'fs';
14
+ import * as path from 'path';
15
+ import { fileURLToPath } from 'url';
16
+ import { loadOverlaysConfig } from '../tool/schema/overlay-loader.js';
17
+ import { STACK_VALUES, BASE_IMAGE_VALUES, TARGET_VALUES, EDITOR_VALUES, PROJECT_ENV_TARGET_VALUES, PROJECT_MOUNT_TARGET_VALUES, } from '../tool/schema/project-config.js';
18
+ const __filename = fileURLToPath(import.meta.url);
19
+ const __dirname = path.dirname(__filename);
20
+ // Resolve repo root from both source (scripts/) and compiled (dist/scripts/) locations
21
+ const REPO_ROOT_CANDIDATES = [
22
+ path.join(__dirname, '..'), // scripts/ -> root
23
+ path.join(__dirname, '..', '..'), // dist/scripts/ -> root
24
+ ];
25
+ const REPO_ROOT = REPO_ROOT_CANDIDATES.find((c) => fs.existsSync(path.join(c, 'overlays')) && fs.existsSync(path.join(c, 'templates'))) ?? REPO_ROOT_CANDIDATES[0];
26
+ const OUTPUT_PATH = path.join(REPO_ROOT, 'tool', 'schema', 'superposition.schema.json');
27
+ function buildSchema(overlays, presetIds) {
28
+ // Non-preset overlay IDs (only these are valid in the `overlays` array field)
29
+ const overlayIds = overlays
30
+ .filter((o) => o.category !== 'preset')
31
+ .map((o) => o.id)
32
+ .sort();
33
+ // Per-category enums matching buildCategoryLookup() rules in project-config.ts:
34
+ // - database includes both 'database' and 'messaging' categories
35
+ const languageIds = overlays
36
+ .filter((o) => o.category === 'language')
37
+ .map((o) => o.id)
38
+ .sort();
39
+ const databaseIds = overlays
40
+ .filter((o) => o.category === 'database' || o.category === 'messaging')
41
+ .map((o) => o.id)
42
+ .sort();
43
+ const observabilityIds = overlays
44
+ .filter((o) => o.category === 'observability')
45
+ .map((o) => o.id)
46
+ .sort();
47
+ const cloudIds = overlays
48
+ .filter((o) => o.category === 'cloud')
49
+ .map((o) => o.id)
50
+ .sort();
51
+ const devIds = overlays
52
+ .filter((o) => o.category === 'dev')
53
+ .map((o) => o.id)
54
+ .sort();
55
+ const mountTargetValues = [...PROJECT_MOUNT_TARGET_VALUES];
56
+ const envTargetValues = [...PROJECT_ENV_TARGET_VALUES];
57
+ const mountEntry = {
58
+ oneOf: [
59
+ {
60
+ type: 'string',
61
+ description: 'Raw mount string (escape hatch)',
62
+ minLength: 1,
63
+ },
64
+ {
65
+ type: 'object',
66
+ description: 'Structured mount using source/destination fields',
67
+ required: ['source', 'destination'],
68
+ additionalProperties: false,
69
+ properties: {
70
+ source: { type: 'string', description: 'Mount source path or volume name' },
71
+ destination: {
72
+ type: 'string',
73
+ description: 'Mount destination path inside the container',
74
+ },
75
+ type: {
76
+ type: 'string',
77
+ enum: ['bind', 'volume', 'tmpfs'],
78
+ description: 'Mount type (default: bind)',
79
+ },
80
+ consistency: {
81
+ type: 'string',
82
+ enum: ['consistent', 'cached', 'delegated'],
83
+ description: 'Mount consistency mode',
84
+ },
85
+ cached: {
86
+ type: 'boolean',
87
+ description: 'Shorthand for consistency: cached',
88
+ },
89
+ readOnly: {
90
+ type: 'boolean',
91
+ description: 'Make the mount read-only',
92
+ },
93
+ target: {
94
+ type: 'string',
95
+ enum: mountTargetValues,
96
+ description: 'Routing target: auto (default) always routes to devcontainer.json mounts[]; composeVolume routes to docker-compose volumes (compose stack only)',
97
+ default: 'auto',
98
+ },
99
+ },
100
+ },
101
+ {
102
+ type: 'object',
103
+ description: 'Raw-value mount with optional routing target',
104
+ required: ['value'],
105
+ additionalProperties: false,
106
+ properties: {
107
+ value: {
108
+ type: 'string',
109
+ description: 'Raw mount string',
110
+ minLength: 1,
111
+ },
112
+ target: {
113
+ type: 'string',
114
+ enum: mountTargetValues,
115
+ description: 'Routing target override',
116
+ default: 'auto',
117
+ },
118
+ },
119
+ },
120
+ ],
121
+ };
122
+ const envVarEntry = {
123
+ oneOf: [
124
+ {
125
+ type: 'string',
126
+ description: 'String shorthand — target is auto-detected based on stack (plain→remoteEnv, compose→docker-compose environment)',
127
+ },
128
+ {
129
+ type: 'object',
130
+ description: 'Long form with explicit routing target',
131
+ required: ['value'],
132
+ additionalProperties: false,
133
+ properties: {
134
+ value: {
135
+ type: 'string',
136
+ description: 'Variable value (supports ${VAR} and ${VAR:-default} syntax)',
137
+ },
138
+ target: {
139
+ type: 'string',
140
+ enum: envTargetValues,
141
+ description: 'auto (default): plain→remoteEnv, compose→docker-compose environment; remoteEnv: always devcontainer.json; composeEnv: always docker-compose (compose only)',
142
+ default: 'auto',
143
+ },
144
+ },
145
+ },
146
+ ],
147
+ };
148
+ return {
149
+ $schema: 'http://json-schema.org/draft-07/schema#',
150
+ $id: 'https://raw.githubusercontent.com/veggerby/container-superposition/main/tool/schema/superposition.schema.json',
151
+ title: 'Superposition Project Configuration',
152
+ description: 'Schema for superposition.yml / .superposition.yml — the project configuration file for container-superposition. See https://github.com/veggerby/container-superposition for documentation.',
153
+ type: 'object',
154
+ additionalProperties: false,
155
+ properties: {
156
+ $schema: {
157
+ type: 'string',
158
+ description: 'JSON Schema reference URI',
159
+ },
160
+ stack: {
161
+ type: 'string',
162
+ enum: [...STACK_VALUES],
163
+ description: 'Base devcontainer template: plain (single image) or compose (multi-service Docker Compose)',
164
+ },
165
+ baseImage: {
166
+ type: 'string',
167
+ enum: [...BASE_IMAGE_VALUES],
168
+ description: 'Base OS image. Use "custom" together with customImage to specify an arbitrary image.',
169
+ default: 'bookworm',
170
+ },
171
+ customImage: {
172
+ type: 'string',
173
+ description: 'Fully-qualified Docker image reference. Only valid when baseImage is "custom".',
174
+ examples: ['ghcr.io/myorg/my-base:latest'],
175
+ },
176
+ containerName: {
177
+ type: 'string',
178
+ description: 'Sets the "name" field in devcontainer.json (displayed by VS Code)',
179
+ examples: ['My Web API'],
180
+ },
181
+ overlays: {
182
+ type: 'array',
183
+ description: 'Flat list of overlay IDs to include. Preferred over the legacy category arrays. Dependency resolution runs automatically.',
184
+ items: {
185
+ type: 'string',
186
+ enum: overlayIds,
187
+ description: 'Overlay identifier',
188
+ },
189
+ uniqueItems: true,
190
+ },
191
+ preset: {
192
+ type: 'string',
193
+ enum: presetIds,
194
+ description: 'ID of a preset (meta-overlay) to expand. Use cs list --presets to browse available presets.',
195
+ },
196
+ presetChoices: {
197
+ type: 'object',
198
+ description: 'Parameter values passed to the selected preset. Keys depend on the preset definition.',
199
+ additionalProperties: { type: 'string' },
200
+ },
201
+ outputPath: {
202
+ type: 'string',
203
+ description: 'Where to write the generated devcontainer files. Default: .devcontainer',
204
+ default: './.devcontainer',
205
+ examples: ['./.devcontainer'],
206
+ },
207
+ portOffset: {
208
+ type: 'integer',
209
+ minimum: 0,
210
+ description: 'Shift all overlay-declared host ports by this integer. Useful for running multiple instances on one machine.',
211
+ examples: [100, 200],
212
+ },
213
+ target: {
214
+ type: 'string',
215
+ enum: [...TARGET_VALUES],
216
+ description: 'Deployment target profile. Applies environment-specific patches during generation.',
217
+ },
218
+ minimal: {
219
+ type: 'boolean',
220
+ description: 'When true, overlays marked with minimal: true in their overlay.yml are excluded. Useful for CI environments.',
221
+ },
222
+ editor: {
223
+ type: 'string',
224
+ enum: [...EDITOR_VALUES],
225
+ description: 'Editor profile: vscode (default, includes extensions/settings), jetbrains (removes VS Code config), none (removes VS Code config)',
226
+ default: 'vscode',
227
+ },
228
+ env: {
229
+ type: 'object',
230
+ description: 'Runtime environment variables. Routed to devcontainer.json remoteEnv or docker-compose environment based on stack and target.',
231
+ additionalProperties: envVarEntry,
232
+ },
233
+ mounts: {
234
+ oneOf: [
235
+ {
236
+ type: 'array',
237
+ description: 'List of filesystem mounts',
238
+ items: mountEntry,
239
+ },
240
+ {
241
+ type: 'object',
242
+ description: 'Named map of filesystem mounts',
243
+ additionalProperties: {
244
+ type: 'object',
245
+ description: 'Structured mount (named form; name is not serialized back)',
246
+ required: ['source', 'destination'],
247
+ additionalProperties: false,
248
+ properties: {
249
+ source: { type: 'string' },
250
+ destination: { type: 'string' },
251
+ type: { type: 'string', enum: ['bind', 'volume', 'tmpfs'] },
252
+ consistency: {
253
+ type: 'string',
254
+ enum: ['consistent', 'cached', 'delegated'],
255
+ },
256
+ cached: { type: 'boolean' },
257
+ readOnly: { type: 'boolean' },
258
+ target: {
259
+ type: 'string',
260
+ enum: mountTargetValues,
261
+ },
262
+ },
263
+ },
264
+ },
265
+ ],
266
+ },
267
+ shell: {
268
+ type: 'object',
269
+ description: 'Declarative shell profile customizations (aliases and snippets). Use env for environment variables.',
270
+ additionalProperties: false,
271
+ properties: {
272
+ aliases: {
273
+ type: 'object',
274
+ description: 'Shell aliases written to .devcontainer/scripts/shell-init.sh',
275
+ additionalProperties: { type: 'string' },
276
+ examples: [{ k: 'kubectl', kgp: 'kubectl get pods' }],
277
+ },
278
+ snippets: {
279
+ type: 'array',
280
+ description: 'Shell snippet lines appended to shell-init.sh. Guard shell-specific syntax with $BASH_VERSION / $ZSH_VERSION.',
281
+ items: { type: 'string' },
282
+ },
283
+ },
284
+ },
285
+ customizations: {
286
+ type: 'object',
287
+ description: 'Inline patches applied during generation (equivalent to .devcontainer/custom/ patches).',
288
+ additionalProperties: false,
289
+ properties: {
290
+ devcontainerPatch: {
291
+ type: 'object',
292
+ description: 'Deep-merged into devcontainer.json after all overlays are applied',
293
+ },
294
+ dockerComposePatch: {
295
+ type: 'object',
296
+ description: 'Deep-merged into docker-compose.yml after all overlays are applied (compose stack only)',
297
+ },
298
+ envTemplate: {
299
+ type: 'object',
300
+ description: 'Key/value pairs written to .devcontainer/.env.example',
301
+ additionalProperties: { type: 'string' },
302
+ },
303
+ environment: {
304
+ type: 'object',
305
+ description: 'Alias for envTemplate (deprecated; prefer envTemplate)',
306
+ additionalProperties: { type: 'string' },
307
+ },
308
+ scripts: {
309
+ type: 'object',
310
+ description: 'Shell commands appended to postCreate / postStart hooks',
311
+ additionalProperties: false,
312
+ properties: {
313
+ postCreate: {
314
+ type: 'array',
315
+ items: { type: 'string' },
316
+ description: 'Commands run once after container creation (postCreateCommand)',
317
+ },
318
+ postStart: {
319
+ type: 'array',
320
+ items: { type: 'string' },
321
+ description: 'Commands run each time the container starts (postStartCommand)',
322
+ },
323
+ },
324
+ },
325
+ files: {
326
+ type: 'array',
327
+ description: 'Extra files to write into the output directory',
328
+ items: {
329
+ type: 'object',
330
+ required: ['path', 'content'],
331
+ additionalProperties: false,
332
+ properties: {
333
+ path: { type: 'string', description: 'Destination path' },
334
+ content: { type: 'string', description: 'File content' },
335
+ },
336
+ },
337
+ },
338
+ },
339
+ },
340
+ parameters: {
341
+ type: 'object',
342
+ description: 'Overlay parameter values. Keys correspond to parameters declared in overlay.yml. Values substitute {{cs.KEY}} tokens throughout generated files.',
343
+ additionalProperties: {
344
+ oneOf: [{ type: 'string' }, { type: 'number' }],
345
+ description: 'Parameter value (strings and numbers are both accepted)',
346
+ },
347
+ },
348
+ // ── Legacy category arrays (deprecated; prefer overlays: [...]) ─────────
349
+ // Per-category enums match buildCategoryLookup() rules in project-config.ts.
350
+ language: {
351
+ type: 'array',
352
+ description: 'Deprecated — use overlays: [...] instead',
353
+ items: { type: 'string', enum: languageIds },
354
+ deprecated: true,
355
+ },
356
+ database: {
357
+ type: 'array',
358
+ description: 'Deprecated — use overlays: [...] instead',
359
+ items: { type: 'string', enum: databaseIds },
360
+ deprecated: true,
361
+ },
362
+ observability: {
363
+ type: 'array',
364
+ description: 'Deprecated — use overlays: [...] instead',
365
+ items: { type: 'string', enum: observabilityIds },
366
+ deprecated: true,
367
+ },
368
+ cloudTools: {
369
+ type: 'array',
370
+ description: 'Deprecated — use overlays: [...] instead',
371
+ items: { type: 'string', enum: cloudIds },
372
+ deprecated: true,
373
+ },
374
+ devTools: {
375
+ type: 'array',
376
+ description: 'Deprecated — use overlays: [...] instead',
377
+ items: { type: 'string', enum: devIds },
378
+ deprecated: true,
379
+ },
380
+ playwright: {
381
+ type: 'boolean',
382
+ description: 'Deprecated — use overlays: [playwright] instead',
383
+ deprecated: true,
384
+ },
385
+ },
386
+ };
387
+ }
388
+ // ── Main ──────────────────────────────────────────────────────────────────────
389
+ const overlaysDir = path.join(REPO_ROOT, 'overlays');
390
+ const indexYmlPath = path.join(overlaysDir, 'index.yml');
391
+ const config = loadOverlaysConfig(overlaysDir, indexYmlPath);
392
+ const nonPresetOverlays = config.overlays.filter((o) => o.category !== 'preset');
393
+ const presetIds = config.overlays
394
+ .filter((o) => o.category === 'preset')
395
+ .map((o) => o.id)
396
+ .sort();
397
+ const schema = buildSchema(nonPresetOverlays, presetIds);
398
+ const schemaJson = JSON.stringify(schema, null, 4) + '\n';
399
+ const outputDir = path.dirname(OUTPUT_PATH);
400
+ if (!fs.existsSync(outputDir)) {
401
+ fs.mkdirSync(outputDir, { recursive: true });
402
+ }
403
+ fs.writeFileSync(OUTPUT_PATH, schemaJson, 'utf8');
404
+ console.log(`✅ Generated superposition.yml schema at ${OUTPUT_PATH}`);
405
+ console.log(` Overlay IDs: ${nonPresetOverlays.length} Preset IDs: ${presetIds.length} Stack values: ${STACK_VALUES.join(', ')} Base images: ${BASE_IMAGE_VALUES.length}`);
406
+ //# sourceMappingURL=generate-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-schema.js","sourceRoot":"","sources":["../../scripts/generate-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"readme-generator.d.ts","sourceRoot":"","sources":["../../../tool/readme/readme-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAydhF;;GAEG;AACH,wBAAgB,cAAc,CAC1B,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7C,UAAU,EAAE,MAAM,GACnB,IAAI,CA+CN"}
1
+ {"version":3,"file":"readme-generator.d.ts","sourceRoot":"","sources":["../../../tool/readme/readme-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAudhF;;GAEG;AACH,wBAAgB,cAAc,CAC1B,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7C,UAAU,EAAE,MAAM,GACnB,IAAI,CA+CN"}
@@ -178,7 +178,7 @@ function generateHeader(answers) {
178
178
  const title = answers.containerName || 'Development Environment';
179
179
  parts.push(`# ${title}`);
180
180
  parts.push('');
181
- parts.push(`> Generated by Container Superposition on ${new Date().toISOString().split('T')[0]}`);
181
+ parts.push('> Generated by Container Superposition');
182
182
  let metadata = `> Template: ${answers.stack}`;
183
183
  if (answers.baseImage && answers.baseImage !== 'bookworm') {
184
184
  // When a custom base image is selected, surface the actual image value instead of "custom"
@@ -1 +1 @@
1
- {"version":3,"file":"readme-generator.js","sourceRoot":"","sources":["../../../tool/readme/readme-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readme-generator.js","sourceRoot":"","sources":["../../../tool/readme/readme-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EACH,aAAa,EACb,WAAW,EACX,iBAAiB,GAEpB,MAAM,sBAAsB,CAAC;AAE9B,kCAAkC;AAClC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,kEAAkE;AAClE,MAAM,oBAAoB,GAAG;IACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,mCAAmC;IACrE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,sCAAsC;CACjF,CAAC;AACF,MAAM,SAAS,GACX,oBAAoB,CAAC,IAAI,CACrB,CAAC,SAAS,EAAE,EAAE,CACV,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAChD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CACtD,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAEjC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAStD;;;GAGG;AACH,MAAM,mBAAmB,GAAG;IACxB,6BAA6B;IAC7B,sBAAsB;IACtB,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;CACnB,CAAC;AAEF;;;GAGG;AACH,SAAS,qBAAqB,CAAC,OAAwB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,+CAA+C;IAC/C,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9F,0DAA0D;IAC1D,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACrD,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,iEAAiE;YACjE,IACI,OAAO,CAAC,KAAK,CACT,kFAAkF,CACrF,EACH,CAAC;gBACC,MAAM,OAAO,GAAG,OAAO;qBAClB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;qBACpB,OAAO,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;gBACpD,iBAAiB,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,6BAA6B;iBACxB,IAAI,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACvB,0BAA0B;oBAC1B,iBAAiB,CAAC,IAAI,CAAC,uBAAuB,OAAO,IAAI,CAAC,CAAC;gBAC/D,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,sCAAsC;YACtC,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IACD,8CAA8C;SACzC,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACvD,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9E,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;YAE1B,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;YAClE,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IACD,4CAA4C;SACvC,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAC9E,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,2BAA2B;SACtB,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACvD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC3C,6DAA6D;gBAC7D,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACrB,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO;yBAC/B,KAAK,CAAC,IAAI,CAAC;yBACX,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;wBACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC3C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IACD,0CAA0C;SACrC,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACvD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;YACtB,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;IACL,CAAC;IACD,qCAAqC;SAChC,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,SAAS,EAAE,CAAC;gBACZ,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,SAAiB,EAAE,QAAyB;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAEnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAExC,2CAA2C;IAC3C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACV,gDAAgD;YAChD,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAED,mDAAmD;IACnD,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;IAC7C,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACH,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,SAAS;QAChC,WAAW;QACX,QAAQ,EAAE,iBAAiB;KAC9B,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAA6B;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,IAAI,yBAAyB,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAErD,IAAI,QAAQ,GAAG,eAAe,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QACxD,2FAA2F;QAC3F,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxD,QAAQ,IAAI,kBAAkB,OAAO,CAAC,WAAW,EAAE,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,QAAQ,IAAI,kBAAkB,OAAO,CAAC,SAAS,EAAE,CAAC;QACtD,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,QAAQ,IAAI,cAAc,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAA6B;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CACN,oFAAoF,CACvF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,UAAkB;IAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAEjD,gDAAgD;IAChD,IAAI,gBAAgB,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9C,+BAA+B;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CACtB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EACpD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CACtD,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,4EAA4E;QAC5E,0EAA0E;QAC1E,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACrB,WAA0B,EAC1B,eAA6C,EAC7C,UAAkB;IAElB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,2DAA2D;IAC3D,MAAM,cAAc,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,6BAA6B;IAC7B,MAAM,UAAU,GAAkC,EAAE,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,IAAI,OAAO,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,wBAAwB;IACxB,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzF,MAAM,cAAc,GAA2B;QAC3C,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE,uBAAuB;QACjC,aAAa,EAAE,8BAA8B;QAC7C,KAAK,EAAE,gCAAgC;QACvC,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,gBAAgB;KAC1B,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,SAAS;QACb,CAAC;QAED,6DAA6D;QAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAC9B,+BAA+B;YAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;YAED,yFAAyF;YACzF,KAAK,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACzD,gEAAgE;gBAChE,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBACtD,SAAS;gBACb,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;YAED,uDAAuD;YACvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CACrC,cAAc,EACd,UAAU,EACV,IAAI,CAAC,EAAE,EACP,WAAW,CACd,CAAC;YACF,KAAK,CAAC,IAAI,CACN,qCAAqC,IAAI,CAAC,IAAI,aAAa,iBAAiB,IAAI,CACnF,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CAAC,UAAkB;IACpD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAE7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACN,oFAAoF,CACvF,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,WAA0B;IACvD,MAAM,mBAAmB,GAAG,WAAW;SAClC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;SACtD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAE,EAAE,CAAC,CAAC,CAAC;IAE1F,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,mBAAmB,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,UAAoB,EAAE,UAAkB;IAChE,2DAA2D;IAC3D,MAAM,cAAc,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CACrC,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,CACd,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,KAAK,iBAAiB,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,+BAA+B,cAAc,GAAG,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,qBAAqB,cAAc,GAAG,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC1B,OAA6B,EAC7B,QAAkB,EAClB,eAA6C,EAC7C,UAAkB;IAElB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,YAAY;IACZ,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpC,iBAAiB;IACjB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAExC,gCAAgC;IAChC,MAAM,WAAW,GAAkB,EAAE,CAAC;IACtC,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,SAAS;QACb,CAAC;QAED,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,gCAAgC;IAChC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;IAC5D,IAAI,UAAU,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,0CAA0C;IAC1C,MAAM,eAAe,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,eAAe,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAErD,kBAAkB;IAClB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAC/C,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC"}
@@ -1,5 +1,12 @@
1
- import type { OverlaysConfig, ProjectConfigCustomizationsInput, ProjectConfigFileEntry, ProjectConfigSelection, QuestionnaireAnswers, SuperpositionManifest } from './types.js';
1
+ import type { BaseImage, DeploymentTarget, EditorProfile, OverlaysConfig, ProjectEnvTarget, ProjectMountTarget, ProjectConfigCustomizationsInput, ProjectConfigFileEntry, ProjectConfigSelection, QuestionnaireAnswers, Stack, SuperpositionManifest } from './types.js';
2
2
  export declare const PROJECT_CONFIG_FILENAMES: readonly [".superposition.yml", "superposition.yml"];
3
+ export declare const SUPERPOSITION_SCHEMA_URL = "https://raw.githubusercontent.com/veggerby/container-superposition/main/tool/schema/superposition.schema.json";
4
+ export declare const STACK_VALUES: Stack[];
5
+ export declare const BASE_IMAGE_VALUES: BaseImage[];
6
+ export declare const TARGET_VALUES: DeploymentTarget[];
7
+ export declare const EDITOR_VALUES: EditorProfile[];
8
+ export declare const PROJECT_ENV_TARGET_VALUES: ProjectEnvTarget[];
9
+ export declare const PROJECT_MOUNT_TARGET_VALUES: ProjectMountTarget[];
3
10
  declare class ProjectConfigError extends Error {
4
11
  constructor(message: string);
5
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../../tool/schema/project-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAYR,cAAc,EAKd,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EAEpB,qBAAqB,EACxB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,wBAAwB,sDAAuD,CAAC;AAiB7F,cAAM,kBAAmB,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI9B;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,SAAS,EAAE,sBAAsB,CAAC;CACrC;AAsiBD,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG,sBAAsB,EAAE,CAK5F;AAED,wBAAgB,iBAAiB,CAC7B,cAAc,EAAE,cAAc,EAC9B,QAAQ,GAAE,MAAsB,GACjC,mBAAmB,GAAG,IAAI,CAiG5B;AAED,wBAAgB,6BAA6B,CACzC,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,cAAc,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAsB/B;AAuCD,wBAAgB,sCAAsC,CAClD,OAAO,EAAE,oBAAoB,GAC9B,sBAAsB,CAmCxB;AAmJD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,sBAAsB,GAAG,MAAM,CAQhF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,GAAG,IAAI,CAG5F;AAED,wBAAgB,gCAAgC,CAC5C,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,gCAAgC,GAClD,IAAI,CAuEN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBrE;AAED,wBAAgB,wBAAwB,CAAC,UAAU,GAAE,MAA0B,GAAG,MAAM,GAAG,IAAI,CAW9F;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACpC,QAAQ,EAAE,qBAAqB,EAC/B,cAAc,EAAE,cAAc,EAC9B,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAwB/B;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../../tool/schema/project-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,SAAS,EAIT,gBAAgB,EAEhB,aAAa,EAKb,cAAc,EACd,gBAAgB,EAEhB,kBAAkB,EAElB,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,EACL,qBAAqB,EACxB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,wBAAwB,sDAAuD,CAAC;AAG7F,eAAO,MAAM,wBAAwB,kHAC8E,CAAC;AAIpH,eAAO,MAAM,YAAY,EAAE,KAAK,EAAyB,CAAC;AAC1D,eAAO,MAAM,iBAAiB,EAAE,SAAS,EAAyD,CAAC;AACnG,eAAO,MAAM,aAAa,EAAE,gBAAgB,EAAgD,CAAC;AAC7F,eAAO,MAAM,aAAa,EAAE,aAAa,EAAoC,CAAC;AAC9E,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,EAAwC,CAAC;AACjG,eAAO,MAAM,2BAA2B,EAAE,kBAAkB,EAI3D,CAAC;AAEF,cAAM,kBAAmB,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI9B;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,SAAS,EAAE,sBAAsB,CAAC;CACrC;AAsiBD,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG,sBAAsB,EAAE,CAK5F;AAED,wBAAgB,iBAAiB,CAC7B,cAAc,EAAE,cAAc,EAC9B,QAAQ,GAAE,MAAsB,GACjC,mBAAmB,GAAG,IAAI,CAmG5B;AAED,wBAAgB,6BAA6B,CACzC,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,cAAc,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAsB/B;AAuCD,wBAAgB,sCAAsC,CAClD,OAAO,EAAE,oBAAoB,GAC9B,sBAAsB,CAmCxB;AAqJD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,sBAAsB,GAAG,MAAM,CAQhF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,GAAG,IAAI,CAG5F;AAED,wBAAgB,gCAAgC,CAC5C,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,gCAAgC,GAClD,IAAI,CAuEN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBrE;AAED,wBAAgB,wBAAwB,CAAC,UAAU,GAAE,MAA0B,GAAG,MAAM,GAAG,IAAI,CAW9F;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACpC,QAAQ,EAAE,qBAAqB,EAC/B,cAAc,EAAE,cAAc,EAC9B,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAwB/B;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -3,12 +3,13 @@ import * as path from 'path';
3
3
  import yaml from 'js-yaml';
4
4
  export const PROJECT_CONFIG_FILENAMES = ['.superposition.yml', 'superposition.yml'];
5
5
  const DEVCONTAINER_SCHEMA_URL = 'https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json';
6
- const STACK_VALUES = ['plain', 'compose'];
7
- const BASE_IMAGE_VALUES = ['bookworm', 'trixie', 'alpine', 'ubuntu', 'custom'];
8
- const TARGET_VALUES = ['local', 'codespaces', 'gitpod', 'devpod'];
9
- const EDITOR_VALUES = ['vscode', 'jetbrains', 'none'];
10
- const PROJECT_ENV_TARGET_VALUES = ['auto', 'remoteEnv', 'composeEnv'];
11
- const PROJECT_MOUNT_TARGET_VALUES = [
6
+ export const SUPERPOSITION_SCHEMA_URL = 'https://raw.githubusercontent.com/veggerby/container-superposition/main/tool/schema/superposition.schema.json';
7
+ export const STACK_VALUES = ['plain', 'compose'];
8
+ export const BASE_IMAGE_VALUES = ['bookworm', 'trixie', 'alpine', 'ubuntu', 'custom'];
9
+ export const TARGET_VALUES = ['local', 'codespaces', 'gitpod', 'devpod'];
10
+ export const EDITOR_VALUES = ['vscode', 'jetbrains', 'none'];
11
+ export const PROJECT_ENV_TARGET_VALUES = ['auto', 'remoteEnv', 'composeEnv'];
12
+ export const PROJECT_MOUNT_TARGET_VALUES = [
12
13
  'auto',
13
14
  'devcontainerMount',
14
15
  'composeVolume',
@@ -464,6 +465,7 @@ export function loadProjectConfig(overlaysConfig, repoRoot = process.cwd()) {
464
465
  }
465
466
  const document = expectPlainObject(parsed, file.fileName);
466
467
  const supportedKeys = new Set([
468
+ '$schema',
467
469
  'stack',
468
470
  'baseImage',
469
471
  'customImage',
@@ -496,6 +498,7 @@ export function loadProjectConfig(overlaysConfig, repoRoot = process.cwd()) {
496
498
  // Aggregate flat overlays + category arrays into a single canonical list
497
499
  const overlays = aggregateOverlays(document, lookup);
498
500
  const selection = {
501
+ $schema: expectOptionalString(document.$schema, '$schema'),
499
502
  stack: expectOptionalEnum(document.stack, 'stack', STACK_VALUES),
500
503
  baseImage: expectOptionalEnum(document.baseImage, 'baseImage', BASE_IMAGE_VALUES),
501
504
  customImage: expectOptionalString(document.customImage, 'customImage'),
@@ -636,7 +639,9 @@ function hasKeys(value) {
636
639
  return Boolean(value) && Object.keys(value).length > 0;
637
640
  }
638
641
  function buildProjectConfigDocument(selection) {
639
- const document = {};
642
+ const document = {
643
+ $schema: selection.$schema ?? SUPERPOSITION_SCHEMA_URL,
644
+ };
640
645
  if (selection.stack)
641
646
  document.stack = selection.stack;
642
647
  if (selection.baseImage)