container-superposition 0.1.3 → 0.1.5

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 (141) hide show
  1. package/README.md +72 -1014
  2. package/dist/scripts/init.js +512 -238
  3. package/dist/scripts/init.js.map +1 -1
  4. package/dist/tool/commands/adopt.d.ts +62 -0
  5. package/dist/tool/commands/adopt.d.ts.map +1 -0
  6. package/dist/tool/commands/adopt.js +767 -0
  7. package/dist/tool/commands/adopt.js.map +1 -0
  8. package/dist/tool/commands/doctor.js +2 -2
  9. package/dist/tool/commands/explain.d.ts.map +1 -1
  10. package/dist/tool/commands/explain.js +88 -0
  11. package/dist/tool/commands/explain.js.map +1 -1
  12. package/dist/tool/commands/hash.d.ts +36 -0
  13. package/dist/tool/commands/hash.d.ts.map +1 -0
  14. package/dist/tool/commands/hash.js +242 -0
  15. package/dist/tool/commands/hash.js.map +1 -0
  16. package/dist/tool/commands/plan.d.ts +53 -0
  17. package/dist/tool/commands/plan.d.ts.map +1 -1
  18. package/dist/tool/commands/plan.js +784 -42
  19. package/dist/tool/commands/plan.js.map +1 -1
  20. package/dist/tool/questionnaire/composer.d.ts +12 -3
  21. package/dist/tool/questionnaire/composer.d.ts.map +1 -1
  22. package/dist/tool/questionnaire/composer.js +133 -20
  23. package/dist/tool/questionnaire/composer.js.map +1 -1
  24. package/dist/tool/schema/project-config.d.ts +15 -0
  25. package/dist/tool/schema/project-config.d.ts.map +1 -0
  26. package/dist/tool/schema/project-config.js +359 -0
  27. package/dist/tool/schema/project-config.js.map +1 -0
  28. package/dist/tool/schema/types.d.ts +57 -1
  29. package/dist/tool/schema/types.d.ts.map +1 -1
  30. package/dist/tool/utils/backup.d.ts +23 -0
  31. package/dist/tool/utils/backup.d.ts.map +1 -0
  32. package/dist/tool/utils/backup.js +123 -0
  33. package/dist/tool/utils/backup.js.map +1 -0
  34. package/dist/tool/utils/gitignore.d.ts +15 -0
  35. package/dist/tool/utils/gitignore.d.ts.map +1 -0
  36. package/dist/tool/utils/gitignore.js +41 -0
  37. package/dist/tool/utils/gitignore.js.map +1 -0
  38. package/dist/tool/utils/services-export.d.ts +14 -0
  39. package/dist/tool/utils/services-export.d.ts.map +1 -0
  40. package/dist/tool/utils/services-export.js +478 -0
  41. package/dist/tool/utils/services-export.js.map +1 -0
  42. package/dist/tool/utils/summary.d.ts +69 -0
  43. package/dist/tool/utils/summary.d.ts.map +1 -0
  44. package/dist/tool/utils/summary.js +260 -0
  45. package/dist/tool/utils/summary.js.map +1 -0
  46. package/docs/README.md +12 -2
  47. package/docs/adopt.md +196 -0
  48. package/docs/custom-patches.md +1 -1
  49. package/docs/discovery-commands.md +55 -3
  50. package/docs/examples.md +40 -6
  51. package/docs/filesystem-contract.md +58 -0
  52. package/docs/hash.md +183 -0
  53. package/docs/minimal-and-editor.md +1 -1
  54. package/docs/overlays.md +108 -5
  55. package/docs/presets-architecture.md +1 -1
  56. package/docs/presets.md +1 -1
  57. package/docs/publishing.md +36 -23
  58. package/docs/security.md +43 -0
  59. package/docs/specs/001-verbose-plan-graph/checklists/requirements.md +36 -0
  60. package/docs/specs/001-verbose-plan-graph/contracts/plan-verbose-output.md +96 -0
  61. package/docs/specs/001-verbose-plan-graph/data-model.md +111 -0
  62. package/docs/specs/001-verbose-plan-graph/plan.md +127 -0
  63. package/docs/specs/001-verbose-plan-graph/quickstart.md +106 -0
  64. package/docs/specs/001-verbose-plan-graph/research.md +100 -0
  65. package/docs/specs/001-verbose-plan-graph/spec.md +128 -0
  66. package/docs/specs/001-verbose-plan-graph/tasks.md +223 -0
  67. package/docs/specs/002-superposition-config-file/checklists/requirements.md +36 -0
  68. package/docs/specs/002-superposition-config-file/contracts/init-project-config.md +98 -0
  69. package/docs/specs/002-superposition-config-file/data-model.md +126 -0
  70. package/docs/specs/002-superposition-config-file/plan.md +208 -0
  71. package/docs/specs/002-superposition-config-file/quickstart.md +140 -0
  72. package/docs/specs/002-superposition-config-file/research.md +144 -0
  73. package/docs/specs/002-superposition-config-file/spec.md +130 -0
  74. package/docs/specs/002-superposition-config-file/tasks.md +213 -0
  75. package/docs/team-workflow.md +27 -1
  76. package/docs/workflows.md +136 -0
  77. package/overlays/.presets/microservice.yml +32 -6
  78. package/overlays/.presets/sdd.yml +84 -0
  79. package/overlays/.presets/web-api.yml +76 -56
  80. package/overlays/README.md +7 -1
  81. package/overlays/amp/README.md +70 -0
  82. package/overlays/amp/devcontainer.patch.json +3 -0
  83. package/overlays/amp/overlay.yml +15 -0
  84. package/overlays/amp/setup.sh +21 -0
  85. package/overlays/amp/verify.sh +21 -0
  86. package/overlays/claude-code/README.md +83 -0
  87. package/overlays/claude-code/devcontainer.patch.json +3 -0
  88. package/overlays/claude-code/overlay.yml +15 -0
  89. package/overlays/claude-code/setup.sh +21 -0
  90. package/overlays/claude-code/verify.sh +21 -0
  91. package/overlays/cloudflared/README.md +190 -0
  92. package/overlays/cloudflared/devcontainer.patch.json +3 -0
  93. package/overlays/cloudflared/overlay.yml +15 -0
  94. package/overlays/cloudflared/setup.sh +49 -0
  95. package/overlays/cloudflared/verify.sh +21 -0
  96. package/overlays/direnv/README.md +6 -4
  97. package/overlays/direnv/setup.sh +0 -12
  98. package/overlays/gemini-cli/README.md +77 -0
  99. package/overlays/gemini-cli/devcontainer.patch.json +3 -0
  100. package/overlays/gemini-cli/overlay.yml +15 -0
  101. package/overlays/gemini-cli/setup.sh +21 -0
  102. package/overlays/gemini-cli/verify.sh +21 -0
  103. package/overlays/grpc-tools/README.md +242 -0
  104. package/overlays/grpc-tools/devcontainer.patch.json +14 -0
  105. package/overlays/grpc-tools/overlay.yml +14 -0
  106. package/overlays/grpc-tools/setup.sh +57 -0
  107. package/overlays/grpc-tools/verify.sh +47 -0
  108. package/overlays/keycloak/.env.example +5 -0
  109. package/overlays/keycloak/README.md +238 -0
  110. package/overlays/keycloak/devcontainer.patch.json +17 -0
  111. package/overlays/keycloak/docker-compose.yml +32 -0
  112. package/overlays/keycloak/overlay.yml +23 -0
  113. package/overlays/keycloak/verify.sh +54 -0
  114. package/overlays/mailpit/.env.example +4 -0
  115. package/overlays/mailpit/README.md +191 -0
  116. package/overlays/mailpit/devcontainer.patch.json +20 -0
  117. package/overlays/mailpit/docker-compose.yml +17 -0
  118. package/overlays/mailpit/overlay.yml +26 -0
  119. package/overlays/mailpit/verify.sh +52 -0
  120. package/overlays/ngrok/overlay.yml +2 -1
  121. package/overlays/opencode/README.md +76 -0
  122. package/overlays/opencode/devcontainer.patch.json +3 -0
  123. package/overlays/opencode/overlay.yml +14 -0
  124. package/overlays/opencode/setup.sh +21 -0
  125. package/overlays/opencode/verify.sh +21 -0
  126. package/overlays/python/README.md +51 -35
  127. package/overlays/python/devcontainer.patch.json +7 -4
  128. package/overlays/python/setup.sh +50 -23
  129. package/overlays/python/verify.sh +29 -1
  130. package/overlays/spec-kit/README.md +181 -0
  131. package/overlays/spec-kit/devcontainer.patch.json +6 -0
  132. package/overlays/spec-kit/overlay.yml +19 -0
  133. package/overlays/spec-kit/setup.sh +45 -0
  134. package/overlays/spec-kit/verify.sh +33 -0
  135. package/overlays/windsurf-cli/README.md +69 -0
  136. package/overlays/windsurf-cli/devcontainer.patch.json +3 -0
  137. package/overlays/windsurf-cli/overlay.yml +15 -0
  138. package/overlays/windsurf-cli/setup.sh +21 -0
  139. package/overlays/windsurf-cli/verify.sh +21 -0
  140. package/package.json +1 -1
  141. package/tool/schema/config.schema.json +138 -9
@@ -1 +1 @@
1
- {"version":3,"file":"composer.js","sourceRoot":"","sources":["../../../tool/questionnaire/composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer.js","sourceRoot":"","sources":["../../../tool/questionnaire/composer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { OverlaysConfig, ProjectConfigCustomizationsInput, ProjectConfigFileEntry, ProjectConfigSelection, QuestionnaireAnswers } from './types.js';
2
+ export declare const PROJECT_CONFIG_FILENAMES: readonly [".superposition.yml", "superposition.yml"];
3
+ declare class ProjectConfigError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ export interface LoadedProjectConfig {
7
+ file: ProjectConfigFileEntry;
8
+ selection: ProjectConfigSelection;
9
+ }
10
+ export declare function findProjectConfig(repoRoot?: string): ProjectConfigFileEntry[];
11
+ export declare function loadProjectConfig(overlaysConfig: OverlaysConfig, repoRoot?: string): LoadedProjectConfig | null;
12
+ export declare function buildAnswersFromProjectConfig(selection: ProjectConfigSelection): Partial<QuestionnaireAnswers>;
13
+ export declare function writeProjectConfigCustomizations(outputPath: string, customizations?: ProjectConfigCustomizationsInput): void;
14
+ export { ProjectConfigError };
15
+ //# sourceMappingURL=project-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../../tool/schema/project-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAWR,cAAc,EACd,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EAEvB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,wBAAwB,sDAAuD,CAAC;AAW7F,cAAM,kBAAmB,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI9B;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,SAAS,EAAE,sBAAsB,CAAC;CACrC;AA6OD,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,CAyG5B;AAED,wBAAgB,6BAA6B,CACzC,SAAS,EAAE,sBAAsB,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAuB/B;AAmCD,wBAAgB,gCAAgC,CAC5C,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,gCAAgC,GAClD,IAAI,CAuEN;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,359 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import yaml from 'js-yaml';
4
+ export const PROJECT_CONFIG_FILENAMES = ['.superposition.yml', 'superposition.yml'];
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
+ class ProjectConfigError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = 'ProjectConfigError';
14
+ }
15
+ }
16
+ function expectPlainObject(value, fieldName) {
17
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
18
+ throw new ProjectConfigError(`${fieldName} must be a YAML object`);
19
+ }
20
+ return value;
21
+ }
22
+ function expectString(value, fieldName) {
23
+ if (typeof value !== 'string' || value.trim() === '') {
24
+ throw new ProjectConfigError(`${fieldName} must be a non-empty string`);
25
+ }
26
+ return value;
27
+ }
28
+ function expectOptionalString(value, fieldName) {
29
+ if (value === undefined || value === null) {
30
+ return undefined;
31
+ }
32
+ return expectString(value, fieldName);
33
+ }
34
+ function expectBoolean(value, fieldName) {
35
+ if (typeof value !== 'boolean') {
36
+ throw new ProjectConfigError(`${fieldName} must be a boolean`);
37
+ }
38
+ return value;
39
+ }
40
+ function expectOptionalBoolean(value, fieldName) {
41
+ if (value === undefined || value === null) {
42
+ return undefined;
43
+ }
44
+ return expectBoolean(value, fieldName);
45
+ }
46
+ function expectOptionalNumber(value, fieldName) {
47
+ if (value === undefined || value === null) {
48
+ return undefined;
49
+ }
50
+ if (typeof value !== 'number' || Number.isNaN(value)) {
51
+ throw new ProjectConfigError(`${fieldName} must be a number`);
52
+ }
53
+ return value;
54
+ }
55
+ function expectOptionalNonNegativeInteger(value, fieldName) {
56
+ const num = expectOptionalNumber(value, fieldName);
57
+ if (num === undefined) {
58
+ return undefined;
59
+ }
60
+ if (!Number.isInteger(num) || num < 0) {
61
+ throw new ProjectConfigError(`${fieldName} must be a non-negative integer`);
62
+ }
63
+ return num;
64
+ }
65
+ function expectEnum(value, fieldName, allowed) {
66
+ if (typeof value !== 'string' || !allowed.includes(value)) {
67
+ throw new ProjectConfigError(`${fieldName} must be one of: ${allowed.join(', ')}`);
68
+ }
69
+ return value;
70
+ }
71
+ function expectOptionalEnum(value, fieldName, allowed) {
72
+ if (value === undefined || value === null) {
73
+ return undefined;
74
+ }
75
+ return expectEnum(value, fieldName, allowed);
76
+ }
77
+ function buildCategoryLookup(overlaysConfig) {
78
+ const overlayById = new Map(overlaysConfig.overlays.map((o) => [o.id, o]));
79
+ return {
80
+ language: (value) => overlayById.get(value)?.category === 'language',
81
+ database: (value) => overlayById.get(value)?.category === 'database',
82
+ observability: (value) => overlayById.get(value)?.category === 'observability',
83
+ cloudTools: (value) => overlayById.get(value)?.category === 'cloud',
84
+ devTools: (value) => overlayById.get(value)?.category === 'dev',
85
+ };
86
+ }
87
+ function expectOverlayArray(value, fieldName, isValid) {
88
+ if (value === undefined || value === null) {
89
+ return undefined;
90
+ }
91
+ if (!Array.isArray(value)) {
92
+ throw new ProjectConfigError(`${fieldName} must be an array`);
93
+ }
94
+ const parsed = value.map((entry, index) => expectString(entry, `${fieldName}[${index}]`));
95
+ const invalid = parsed.filter((entry) => !isValid(entry));
96
+ if (invalid.length > 0) {
97
+ throw new ProjectConfigError(`${fieldName} contains unsupported entries: ${invalid.join(', ')}`);
98
+ }
99
+ return parsed;
100
+ }
101
+ function parsePresetChoices(value) {
102
+ if (value === undefined || value === null) {
103
+ return undefined;
104
+ }
105
+ const record = expectPlainObject(value, 'presetChoices');
106
+ const parsed = {};
107
+ for (const [key, entry] of Object.entries(record)) {
108
+ parsed[key] = expectString(entry, `presetChoices.${key}`);
109
+ }
110
+ return Object.keys(parsed).length > 0 ? parsed : undefined;
111
+ }
112
+ function parseScripts(value) {
113
+ if (value === undefined || value === null) {
114
+ return undefined;
115
+ }
116
+ const record = expectPlainObject(value, 'customizations.scripts');
117
+ const parseArray = (entry, fieldName) => {
118
+ if (entry === undefined || entry === null) {
119
+ return undefined;
120
+ }
121
+ if (!Array.isArray(entry)) {
122
+ throw new ProjectConfigError(`${fieldName} must be an array of shell commands`);
123
+ }
124
+ return entry.map((line, index) => expectString(line, `${fieldName}[${index}]`));
125
+ };
126
+ const postCreate = parseArray(record.postCreate, 'customizations.scripts.postCreate');
127
+ const postStart = parseArray(record.postStart, 'customizations.scripts.postStart');
128
+ const hasPostCreate = Array.isArray(postCreate) && postCreate.length > 0;
129
+ const hasPostStart = Array.isArray(postStart) && postStart.length > 0;
130
+ if (!hasPostCreate && !hasPostStart) {
131
+ return undefined;
132
+ }
133
+ return {
134
+ postCreate: hasPostCreate ? postCreate : undefined,
135
+ postStart: hasPostStart ? postStart : undefined,
136
+ };
137
+ }
138
+ function parseFiles(value) {
139
+ if (value === undefined || value === null) {
140
+ return undefined;
141
+ }
142
+ if (!Array.isArray(value)) {
143
+ throw new ProjectConfigError('customizations.files must be an array');
144
+ }
145
+ return value.map((entry, index) => {
146
+ const record = expectPlainObject(entry, `customizations.files[${index}]`);
147
+ return {
148
+ path: expectString(record.path, `customizations.files[${index}].path`),
149
+ content: expectString(record.content, `customizations.files[${index}].content`),
150
+ };
151
+ });
152
+ }
153
+ function parseEnvironment(value) {
154
+ if (value === undefined || value === null) {
155
+ return undefined;
156
+ }
157
+ const record = expectPlainObject(value, 'customizations.environment');
158
+ const parsed = {};
159
+ for (const [key, entry] of Object.entries(record)) {
160
+ parsed[key] = expectString(entry, `customizations.environment.${key}`);
161
+ }
162
+ return Object.keys(parsed).length > 0 ? parsed : undefined;
163
+ }
164
+ function parseCustomizations(value) {
165
+ if (value === undefined || value === null) {
166
+ return undefined;
167
+ }
168
+ const record = expectPlainObject(value, 'customizations');
169
+ const customizations = {
170
+ devcontainerPatch: record.devcontainerPatch !== undefined
171
+ ? expectPlainObject(record.devcontainerPatch, 'customizations.devcontainerPatch')
172
+ : undefined,
173
+ dockerComposePatch: record.dockerComposePatch !== undefined
174
+ ? expectPlainObject(record.dockerComposePatch, 'customizations.dockerComposePatch')
175
+ : undefined,
176
+ environment: parseEnvironment(record.environment),
177
+ scripts: parseScripts(record.scripts),
178
+ files: parseFiles(record.files),
179
+ };
180
+ const hasValues = Object.values(customizations).some((entry) => entry !== undefined &&
181
+ (!Array.isArray(entry) || entry.length > 0) &&
182
+ (!(typeof entry === 'object' && !Array.isArray(entry)) || Object.keys(entry).length > 0));
183
+ return hasValues ? customizations : undefined;
184
+ }
185
+ export function findProjectConfig(repoRoot = process.cwd()) {
186
+ return PROJECT_CONFIG_FILENAMES.map((fileName) => ({
187
+ fileName,
188
+ path: path.join(repoRoot, fileName),
189
+ })).filter((entry) => fs.existsSync(entry.path));
190
+ }
191
+ export function loadProjectConfig(overlaysConfig, repoRoot = process.cwd()) {
192
+ const discovered = findProjectConfig(repoRoot);
193
+ if (discovered.length === 0) {
194
+ return null;
195
+ }
196
+ if (discovered.length > 1) {
197
+ throw new ProjectConfigError(`Found both ${PROJECT_CONFIG_FILENAMES.join(' and ')} in ${repoRoot}. Keep only one project config file.`);
198
+ }
199
+ const [file] = discovered;
200
+ let parsed;
201
+ try {
202
+ parsed = yaml.load(fs.readFileSync(file.path, 'utf8'));
203
+ }
204
+ catch (error) {
205
+ throw new ProjectConfigError(`Failed to parse ${file.fileName}: ${error instanceof Error ? error.message : String(error)}`);
206
+ }
207
+ const document = expectPlainObject(parsed, file.fileName);
208
+ const supportedKeys = new Set([
209
+ 'stack',
210
+ 'baseImage',
211
+ 'customImage',
212
+ 'containerName',
213
+ 'preset',
214
+ 'presetChoices',
215
+ 'language',
216
+ 'database',
217
+ 'observability',
218
+ 'cloudTools',
219
+ 'devTools',
220
+ 'playwright',
221
+ 'outputPath',
222
+ 'portOffset',
223
+ 'target',
224
+ 'minimal',
225
+ 'editor',
226
+ 'customizations',
227
+ ]);
228
+ const unsupportedKeys = Object.keys(document).filter((key) => !supportedKeys.has(key));
229
+ if (unsupportedKeys.length > 0) {
230
+ throw new ProjectConfigError(`Unsupported project config keys: ${unsupportedKeys.join(', ')}`);
231
+ }
232
+ const lookup = buildCategoryLookup(overlaysConfig);
233
+ const selection = {
234
+ stack: expectOptionalEnum(document.stack, 'stack', STACK_VALUES),
235
+ baseImage: expectOptionalEnum(document.baseImage, 'baseImage', BASE_IMAGE_VALUES),
236
+ customImage: expectOptionalString(document.customImage, 'customImage'),
237
+ containerName: expectOptionalString(document.containerName, 'containerName'),
238
+ preset: expectOptionalString(document.preset, 'preset'),
239
+ presetChoices: parsePresetChoices(document.presetChoices),
240
+ language: expectOverlayArray(document.language, 'language', lookup.language),
241
+ database: expectOverlayArray(document.database, 'database', lookup.database),
242
+ observability: expectOverlayArray(document.observability, 'observability', lookup.observability),
243
+ cloudTools: expectOverlayArray(document.cloudTools, 'cloudTools', lookup.cloudTools),
244
+ devTools: expectOverlayArray(document.devTools, 'devTools', lookup.devTools),
245
+ playwright: expectOptionalBoolean(document.playwright, 'playwright'),
246
+ outputPath: expectOptionalString(document.outputPath, 'outputPath'),
247
+ portOffset: expectOptionalNonNegativeInteger(document.portOffset, 'portOffset'),
248
+ target: expectOptionalEnum(document.target, 'target', TARGET_VALUES),
249
+ minimal: expectOptionalBoolean(document.minimal, 'minimal'),
250
+ editor: expectOptionalEnum(document.editor, 'editor', EDITOR_VALUES),
251
+ customizations: parseCustomizations(document.customizations),
252
+ };
253
+ if (selection.baseImage === 'custom' && !selection.customImage) {
254
+ throw new ProjectConfigError('customImage is required when baseImage is set to custom');
255
+ }
256
+ if (selection.customImage && selection.baseImage && selection.baseImage !== 'custom') {
257
+ throw new ProjectConfigError('customImage may only be used when baseImage is set to custom');
258
+ }
259
+ if (selection.presetChoices && !selection.preset) {
260
+ throw new ProjectConfigError('presetChoices requires preset to be set');
261
+ }
262
+ return { file, selection };
263
+ }
264
+ export function buildAnswersFromProjectConfig(selection) {
265
+ return {
266
+ stack: selection.stack,
267
+ baseImage: selection.baseImage,
268
+ customImage: selection.customImage,
269
+ containerName: selection.containerName,
270
+ preset: selection.preset,
271
+ presetChoices: selection.presetChoices,
272
+ language: selection.language,
273
+ database: selection.database,
274
+ observability: selection.observability,
275
+ cloudTools: selection.cloudTools,
276
+ devTools: selection.devTools,
277
+ playwright: selection.playwright,
278
+ outputPath: selection.outputPath,
279
+ portOffset: selection.portOffset,
280
+ target: selection.target,
281
+ minimal: selection.minimal,
282
+ editor: selection.editor,
283
+ customizations: selection.customizations
284
+ ? materializeCustomizationConfig(selection.customizations)
285
+ : undefined,
286
+ };
287
+ }
288
+ function materializeCustomizationConfig(input) {
289
+ return {
290
+ devcontainerPatch: input.devcontainerPatch,
291
+ dockerComposePatch: input.dockerComposePatch,
292
+ environmentVars: input.environment,
293
+ scripts: input.scripts,
294
+ files: input.files?.map((entry) => ({
295
+ source: entry.path,
296
+ destination: entry.path,
297
+ })),
298
+ };
299
+ }
300
+ function ensureDirectory(targetPath) {
301
+ fs.mkdirSync(targetPath, { recursive: true });
302
+ }
303
+ function withSchemaFirst(document, fallbackSchema) {
304
+ const { $schema, ...rest } = document;
305
+ if (typeof $schema === 'string' && $schema.trim() !== '') {
306
+ return { $schema, ...rest };
307
+ }
308
+ if (fallbackSchema) {
309
+ return { $schema: fallbackSchema, ...rest };
310
+ }
311
+ return rest;
312
+ }
313
+ export function writeProjectConfigCustomizations(outputPath, customizations) {
314
+ if (!customizations) {
315
+ return;
316
+ }
317
+ const customDir = path.join(outputPath, 'custom');
318
+ ensureDirectory(customDir);
319
+ if (customizations.devcontainerPatch) {
320
+ const devcontainerPatch = withSchemaFirst(customizations.devcontainerPatch, DEVCONTAINER_SCHEMA_URL);
321
+ fs.writeFileSync(path.join(customDir, 'devcontainer.patch.json'), JSON.stringify(devcontainerPatch, null, 2) + '\n');
322
+ }
323
+ if (customizations.dockerComposePatch) {
324
+ fs.writeFileSync(path.join(customDir, 'docker-compose.patch.yml'), yaml.dump(customizations.dockerComposePatch));
325
+ }
326
+ if (customizations.environment && Object.keys(customizations.environment).length > 0) {
327
+ const content = Object.entries(customizations.environment)
328
+ .map(([key, value]) => `${key}=${value}`)
329
+ .join('\n') + '\n';
330
+ fs.writeFileSync(path.join(customDir, 'environment.env'), content);
331
+ }
332
+ if (customizations.scripts?.postCreate?.length || customizations.scripts?.postStart?.length) {
333
+ const scriptsDir = path.join(customDir, 'scripts');
334
+ ensureDirectory(scriptsDir);
335
+ if (customizations.scripts.postCreate?.length) {
336
+ fs.writeFileSync(path.join(scriptsDir, 'post-create.sh'), '#!/usr/bin/env bash\nset -e\n' +
337
+ customizations.scripts.postCreate.join('\n') +
338
+ '\n');
339
+ }
340
+ if (customizations.scripts.postStart?.length) {
341
+ fs.writeFileSync(path.join(scriptsDir, 'post-start.sh'), '#!/usr/bin/env bash\nset -e\n' + customizations.scripts.postStart.join('\n') + '\n');
342
+ }
343
+ }
344
+ if (customizations.files?.length) {
345
+ const filesDir = path.join(customDir, 'files');
346
+ ensureDirectory(filesDir);
347
+ for (const entry of customizations.files) {
348
+ const resolvedPath = path.resolve(filesDir, entry.path);
349
+ const relative = path.relative(filesDir, resolvedPath);
350
+ if (relative.startsWith('..') || path.isAbsolute(relative)) {
351
+ throw new ProjectConfigError(`Invalid custom file path "${entry.path}". Paths must be within the "custom/files" directory.`);
352
+ }
353
+ ensureDirectory(path.dirname(resolvedPath));
354
+ fs.writeFileSync(resolvedPath, entry.content);
355
+ }
356
+ }
357
+ }
358
+ export { ProjectConfigError };
359
+ //# sourceMappingURL=project-config.js.map