@msn-control/liftoff 0.3.0 → 0.3.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@ export declare class FileSystemError extends Error {
3
3
  constructor(message: string);
4
4
  }
5
5
  export declare function resolveTargetRoot(cwd: string, projectName: string): string;
6
+ export declare function validateArtifactPathParts(value: unknown, label?: string): string[];
6
7
  export declare function artifactPath(root: string, pathParts: string[]): string;
8
+ export declare function resolveProjectPath(projectRoot: string, pathParts: string[]): Promise<string>;
7
9
  export declare function assertNewOrEmptyDirectory(targetRoot: string): Promise<void>;
8
10
  export declare function writeArtifacts(targetRoot: string, artifacts: GeneratedArtifact[]): Promise<void>;
9
11
  export declare const SUPPORTED_MANIFEST_VERSIONS: readonly number[];
@@ -11,5 +13,6 @@ export declare function loadManifest(projectRoot: string): Promise<LiftoffManife
11
13
  export declare function validateGeneratedProject(projectRoot: string): Promise<string[]>;
12
14
  export declare function manifestDisplayPath(pathParts: string[]): string;
13
15
  export declare function findProjectRoot(startDir: string): Promise<string | undefined>;
16
+ export declare function readProjectFile(projectRoot: string, pathParts: string[]): Promise<Buffer | undefined>;
14
17
  export declare function writeProjectFile(projectRoot: string, pathParts: string[], content: string): Promise<void>;
15
18
  export declare function deleteProjectFile(projectRoot: string, pathParts: string[]): Promise<void>;
@@ -1,6 +1,7 @@
1
- import { access, mkdir, readdir, readFile, stat, unlink, writeFile } from 'node:fs/promises';
1
+ import { randomUUID } from 'node:crypto';
2
+ import { access, lstat, mkdir, readdir, readFile, realpath, rename, stat, unlink, writeFile } from 'node:fs/promises';
2
3
  import path from 'node:path';
3
- import { getApiStack, getPattern, getProjectType } from './catalogs.js';
4
+ import { getApiStack, getEnvironment, getPattern, getProvider, getProjectType, getSpecWorkflow, listRegions } from './catalogs.js';
4
5
  export class FileSystemError extends Error {
5
6
  constructor(message) {
6
7
  super(message);
@@ -10,8 +11,100 @@ export class FileSystemError extends Error {
10
11
  export function resolveTargetRoot(cwd, projectName) {
11
12
  return path.resolve(cwd, projectName);
12
13
  }
14
+ const SEMVER_PATTERN = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
15
+ const CONTENT_HASH_PATTERN = /^sha256:[0-9a-f]{64}$/;
16
+ const WINDOWS_DRIVE_PATTERN = /^[A-Za-z]:/;
17
+ const WINDOWS_RESERVED_NAME_PATTERN = /^(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\.|$)/i;
18
+ function errorCode(error) {
19
+ if (typeof error !== 'object' || error === null || !('code' in error)) {
20
+ return undefined;
21
+ }
22
+ const code = error.code;
23
+ return typeof code === 'string' ? code : undefined;
24
+ }
25
+ function errorMessage(error) {
26
+ return error instanceof Error ? error.message : String(error);
27
+ }
28
+ function isRecord(value) {
29
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
30
+ }
31
+ function isPathWithin(root, candidate) {
32
+ const relative = path.relative(root, candidate);
33
+ return relative === '' || (!relative.startsWith(`..${path.sep}`) && relative !== '..' && !path.isAbsolute(relative));
34
+ }
35
+ export function validateArtifactPathParts(value, label = 'Artifact path') {
36
+ if (!Array.isArray(value) || value.length === 0) {
37
+ throw new FileSystemError(`${label} must be a non-empty path-part array.`);
38
+ }
39
+ return value.map((part, index) => {
40
+ if (typeof part !== 'string' || part.length === 0 || part.trim().length === 0) {
41
+ throw new FileSystemError(`${label} part ${index + 1} must be a non-empty string.`);
42
+ }
43
+ if (part === '.' ||
44
+ part === '..' ||
45
+ part.includes('/') ||
46
+ part.includes('\\') ||
47
+ part.includes('\0') ||
48
+ path.posix.isAbsolute(part) ||
49
+ path.win32.isAbsolute(part) ||
50
+ WINDOWS_DRIVE_PATTERN.test(part)) {
51
+ throw new FileSystemError(`${label} contains unsafe path part ${JSON.stringify(part)}.`);
52
+ }
53
+ if (part.endsWith('.') || part.endsWith(' ') || WINDOWS_RESERVED_NAME_PATTERN.test(part)) {
54
+ throw new FileSystemError(`${label} contains non-portable path part ${JSON.stringify(part)}.`);
55
+ }
56
+ return part;
57
+ });
58
+ }
13
59
  export function artifactPath(root, pathParts) {
14
- return path.join(root, ...pathParts);
60
+ const validated = validateArtifactPathParts(pathParts);
61
+ const joinedPath = path.join(root, ...validated);
62
+ const resolvedRoot = path.resolve(root);
63
+ const resolvedPath = path.resolve(joinedPath);
64
+ if (!isPathWithin(resolvedRoot, resolvedPath) || resolvedPath === resolvedRoot) {
65
+ throw new FileSystemError(`Artifact path escapes project root: ${validated.join('/')}`);
66
+ }
67
+ return joinedPath;
68
+ }
69
+ export async function resolveProjectPath(projectRoot, pathParts) {
70
+ const validated = validateArtifactPathParts(pathParts);
71
+ const resolvedRoot = path.resolve(projectRoot);
72
+ const targetPath = artifactPath(resolvedRoot, validated);
73
+ let realRoot;
74
+ try {
75
+ realRoot = await realpath(resolvedRoot);
76
+ }
77
+ catch (error) {
78
+ throw new FileSystemError(`Unable to resolve project root ${resolvedRoot}: ${errorMessage(error)}`);
79
+ }
80
+ let current = resolvedRoot;
81
+ for (const [index, part] of validated.entries()) {
82
+ current = path.join(current, part);
83
+ let details;
84
+ try {
85
+ details = await lstat(current);
86
+ }
87
+ catch (error) {
88
+ if (errorCode(error) === 'ENOENT') {
89
+ return targetPath;
90
+ }
91
+ throw new FileSystemError(`Unable to inspect artifact path ${validated.join('/')}: ${errorMessage(error)}`);
92
+ }
93
+ let resolvedExistingPath;
94
+ try {
95
+ resolvedExistingPath = await realpath(current);
96
+ }
97
+ catch (error) {
98
+ throw new FileSystemError(`Unable to resolve artifact path ${validated.join('/')}: ${errorMessage(error)}`);
99
+ }
100
+ if (!isPathWithin(realRoot, resolvedExistingPath)) {
101
+ throw new FileSystemError(`Artifact path escapes project root through a symlink: ${validated.join('/')}`);
102
+ }
103
+ if (index < validated.length - 1 && !details.isDirectory() && !details.isSymbolicLink()) {
104
+ throw new FileSystemError(`Artifact path parent is not a directory: ${validated.slice(0, index + 1).join('/')}`);
105
+ }
106
+ }
107
+ return targetPath;
15
108
  }
16
109
  export async function assertNewOrEmptyDirectory(targetRoot) {
17
110
  try {
@@ -25,7 +118,7 @@ export async function assertNewOrEmptyDirectory(targetRoot) {
25
118
  }
26
119
  }
27
120
  catch (error) {
28
- if (error.code === 'ENOENT') {
121
+ if (errorCode(error) === 'ENOENT') {
29
122
  return;
30
123
  }
31
124
  throw error;
@@ -33,10 +126,9 @@ export async function assertNewOrEmptyDirectory(targetRoot) {
33
126
  }
34
127
  export async function writeArtifacts(targetRoot, artifacts) {
35
128
  await assertNewOrEmptyDirectory(targetRoot);
129
+ await mkdir(targetRoot, { recursive: true });
36
130
  for (const artifact of artifacts) {
37
- const targetPath = artifactPath(targetRoot, artifact.pathParts);
38
- await mkdir(path.dirname(targetPath), { recursive: true });
39
- await writeFile(targetPath, artifact.content, 'utf8');
131
+ await writeProjectFile(targetRoot, artifact.pathParts, artifact.content);
40
132
  }
41
133
  }
42
134
  export const SUPPORTED_MANIFEST_VERSIONS = [2];
@@ -49,54 +141,165 @@ const LEGACY_SEED_LOGICAL_NAMES = new Set([
49
141
  'openspec-seed-tasks'
50
142
  ]);
51
143
  export async function loadManifest(projectRoot) {
52
- const manifestPath = path.join(projectRoot, 'liftoff.manifest.json');
53
- let manifest;
144
+ let raw;
54
145
  try {
55
- manifest = JSON.parse(await readFile(manifestPath, 'utf8'));
146
+ const manifestBytes = await readProjectFile(projectRoot, ['liftoff.manifest.json']);
147
+ if (manifestBytes === undefined) {
148
+ throw new Error('file does not exist');
149
+ }
150
+ raw = JSON.parse(manifestBytes.toString('utf8'));
56
151
  }
57
152
  catch (error) {
58
- throw new FileSystemError(`Unable to read liftoff.manifest.json: ${error.message}`);
153
+ throw new FileSystemError(`Unable to read liftoff.manifest.json: ${errorMessage(error)}`);
59
154
  }
60
- if (!SUPPORTED_MANIFEST_VERSIONS.includes(manifest.artifactVersion)) {
61
- throw new FileSystemError(`Unsupported manifest artifactVersion ${JSON.stringify(manifest.artifactVersion)}; this CLI supports version ${SUPPORTED_MANIFEST_VERSIONS.join(', ')}. ` +
155
+ if (!isRecord(raw)) {
156
+ throw new FileSystemError('Manifest root must be a JSON object.');
157
+ }
158
+ const artifactVersion = raw.artifactVersion;
159
+ if (typeof artifactVersion !== 'number' || !Number.isInteger(artifactVersion)) {
160
+ throw new FileSystemError('Manifest artifactVersion must be an integer.');
161
+ }
162
+ if (!SUPPORTED_MANIFEST_VERSIONS.includes(artifactVersion)) {
163
+ throw new FileSystemError(`Unsupported manifest artifactVersion ${JSON.stringify(artifactVersion)}; this CLI supports version ${SUPPORTED_MANIFEST_VERSIONS.join(', ')}. ` +
62
164
  'Regenerate the project with this CLI or use the Liftoff version that generated it.');
63
165
  }
64
- manifest.project = normalizeManifestProject(manifest.project);
65
- manifest.artifacts = manifest.artifacts.filter((artifact) => !LEGACY_SEED_LOGICAL_NAMES.has(artifact.logicalName));
66
- return manifest;
166
+ if (raw.generatedBy !== 'Mission Control Liftoff') {
167
+ throw new FileSystemError('Manifest generatedBy must be "Mission Control Liftoff".');
168
+ }
169
+ const liftoffVersion = requiredString(raw, 'liftoffVersion', 'Manifest');
170
+ if (!SEMVER_PATTERN.test(liftoffVersion)) {
171
+ throw new FileSystemError('Manifest liftoffVersion must be a valid semantic version.');
172
+ }
173
+ const project = normalizeManifestProject(raw.project);
174
+ const artifacts = normalizeManifestArtifacts(raw.artifacts)
175
+ .filter((artifact) => !LEGACY_SEED_LOGICAL_NAMES.has(artifact.logicalName));
176
+ return {
177
+ artifactVersion: 2,
178
+ generatedBy: 'Mission Control Liftoff',
179
+ liftoffVersion,
180
+ project,
181
+ artifacts
182
+ };
183
+ }
184
+ function requiredString(record, key, scope) {
185
+ const value = record[key];
186
+ if (typeof value !== 'string' || value.trim().length === 0) {
187
+ throw new FileSystemError(`${scope}.${key} must be a non-empty string.`);
188
+ }
189
+ return value;
190
+ }
191
+ function optionalString(record, key, scope) {
192
+ const value = record[key];
193
+ if (value === undefined) {
194
+ return undefined;
195
+ }
196
+ if (typeof value !== 'string' || value.trim().length === 0) {
197
+ throw new FileSystemError(`${scope}.${key} must be a non-empty string when present.`);
198
+ }
199
+ return value;
67
200
  }
68
201
  function normalizeManifestProject(project) {
69
- const raw = project;
70
- const projectType = getProjectType(raw.projectType ?? (raw.pattern ? 'genai' : ''));
71
- if (!projectType) {
202
+ if (!isRecord(project)) {
203
+ throw new FileSystemError('Manifest.project must be a JSON object.');
204
+ }
205
+ const name = requiredString(project, 'name', 'Manifest.project');
206
+ const patternValue = optionalString(project, 'pattern', 'Manifest.project');
207
+ const projectTypeValue = optionalString(project, 'projectType', 'Manifest.project');
208
+ const projectType = getProjectType(projectTypeValue ?? (patternValue ? 'genai' : ''));
209
+ if (!projectType || projectTypeValue !== undefined && projectType.id !== projectTypeValue) {
72
210
  throw new FileSystemError('Manifest project identity is missing a valid projectType.');
73
211
  }
74
- const apiStack = getApiStack(raw.apiStack ?? (projectType.id === 'genai' ? 'python-fastapi' : ''));
75
- if (!apiStack) {
212
+ const apiStackValue = optionalString(project, 'apiStack', 'Manifest.project');
213
+ const apiStack = getApiStack(apiStackValue ?? (projectType.id === 'genai' ? 'python-fastapi' : ''));
214
+ if (!apiStack || apiStackValue !== undefined && apiStack.id !== apiStackValue) {
76
215
  throw new FileSystemError(`Manifest project type ${projectType.id} is missing a valid apiStack.`);
77
216
  }
78
- const pattern = raw.pattern ? getPattern(raw.pattern) : undefined;
217
+ const pattern = patternValue ? getPattern(patternValue) : undefined;
218
+ if (patternValue && (!pattern || pattern.id !== patternValue)) {
219
+ throw new FileSystemError(`Manifest project pattern ${JSON.stringify(patternValue)} is invalid.`);
220
+ }
79
221
  if (projectType.id === 'genai' && (!pattern || apiStack.id !== 'python-fastapi')) {
80
222
  throw new FileSystemError('GenAI manifests require a valid pattern and the python-fastapi API stack.');
81
223
  }
82
224
  if (projectType.id === 'standard' && pattern) {
83
225
  throw new FileSystemError('Standard manifests cannot record a GenAI pattern.');
84
226
  }
85
- if (!raw.name || !raw.cloud || !raw.region || raw.frontend === undefined || !raw.specWorkflow || !raw.environments) {
86
- throw new FileSystemError('Manifest project metadata is incomplete.');
227
+ const cloudValue = requiredString(project, 'cloud', 'Manifest.project');
228
+ const provider = getProvider(cloudValue);
229
+ if (!provider || provider.id !== cloudValue || provider.status !== 'available') {
230
+ throw new FileSystemError(`Manifest project cloud ${JSON.stringify(cloudValue)} is invalid or unavailable.`);
231
+ }
232
+ const regionValue = requiredString(project, 'region', 'Manifest.project');
233
+ if (!listRegions(provider.id).some((region) => region.slug === regionValue)) {
234
+ throw new FileSystemError(`Manifest project region ${JSON.stringify(regionValue)} is invalid for ${provider.id}.`);
235
+ }
236
+ const frontend = project.frontend;
237
+ if (typeof frontend !== 'boolean') {
238
+ throw new FileSystemError('Manifest.project.frontend must be a boolean.');
239
+ }
240
+ const specWorkflowValue = requiredString(project, 'specWorkflow', 'Manifest.project');
241
+ const specWorkflow = getSpecWorkflow(specWorkflowValue);
242
+ if (!specWorkflow || specWorkflow.id !== specWorkflowValue) {
243
+ throw new FileSystemError(`Manifest project specWorkflow ${JSON.stringify(specWorkflowValue)} is invalid.`);
244
+ }
245
+ if (!Array.isArray(project.environments) || project.environments.length === 0) {
246
+ throw new FileSystemError('Manifest.project.environments must be a non-empty string array.');
247
+ }
248
+ const environments = project.environments.map((value, index) => {
249
+ if (typeof value !== 'string') {
250
+ throw new FileSystemError(`Manifest.project.environments[${index}] must be a string.`);
251
+ }
252
+ const environment = getEnvironment(value);
253
+ if (!environment || environment.id !== value) {
254
+ throw new FileSystemError(`Manifest project environment ${JSON.stringify(value)} is invalid.`);
255
+ }
256
+ return environment.id;
257
+ });
258
+ if (new Set(environments).size !== environments.length) {
259
+ throw new FileSystemError('Manifest.project.environments must not contain duplicates.');
87
260
  }
88
261
  return {
89
- name: raw.name,
262
+ name,
90
263
  projectType: projectType.id,
91
264
  apiStack: apiStack.id,
92
265
  ...(pattern ? { pattern: pattern.id } : {}),
93
- cloud: raw.cloud,
94
- region: raw.region,
95
- frontend: raw.frontend,
96
- specWorkflow: raw.specWorkflow,
97
- environments: raw.environments
266
+ cloud: provider.id,
267
+ region: regionValue,
268
+ frontend,
269
+ specWorkflow: specWorkflow.id,
270
+ environments
98
271
  };
99
272
  }
273
+ function normalizeManifestArtifacts(value) {
274
+ if (!Array.isArray(value)) {
275
+ throw new FileSystemError('Manifest.artifacts must be an array.');
276
+ }
277
+ const logicalNames = new Set();
278
+ const paths = new Set();
279
+ return value.map((entry, index) => {
280
+ const scope = `Manifest.artifacts[${index}]`;
281
+ if (!isRecord(entry)) {
282
+ throw new FileSystemError(`${scope} must be a JSON object.`);
283
+ }
284
+ const logicalName = requiredString(entry, 'logicalName', scope);
285
+ const category = requiredString(entry, 'category', scope);
286
+ const pathParts = validateArtifactPathParts(entry.pathParts, `${scope}.pathParts`);
287
+ const contentHash = requiredString(entry, 'contentHash', scope);
288
+ if (!CONTENT_HASH_PATTERN.test(contentHash)) {
289
+ throw new FileSystemError(`${scope}.contentHash must be a sha256-prefixed lowercase hexadecimal digest.`);
290
+ }
291
+ if (logicalNames.has(logicalName)) {
292
+ throw new FileSystemError(`Manifest contains duplicate logicalName ${JSON.stringify(logicalName)}.`);
293
+ }
294
+ logicalNames.add(logicalName);
295
+ const pathKey = pathParts.join('\0');
296
+ if (paths.has(pathKey)) {
297
+ throw new FileSystemError(`Manifest contains duplicate artifact path ${pathParts.join('/')}.`);
298
+ }
299
+ paths.add(pathKey);
300
+ return { logicalName, category, pathParts, contentHash };
301
+ });
302
+ }
100
303
  export async function validateGeneratedProject(projectRoot) {
101
304
  let manifest;
102
305
  try {
@@ -107,12 +310,17 @@ export async function validateGeneratedProject(projectRoot) {
107
310
  }
108
311
  const issues = [];
109
312
  for (const artifact of manifest.artifacts) {
110
- const targetPath = artifactPath(projectRoot, artifact.pathParts);
111
313
  try {
314
+ const targetPath = await resolveProjectPath(projectRoot, artifact.pathParts);
112
315
  await access(targetPath);
113
316
  }
114
- catch {
115
- issues.push(`Missing artifact ${artifact.logicalName} at ${artifact.pathParts.join('/')}`);
317
+ catch (error) {
318
+ if (errorCode(error) === 'ENOENT') {
319
+ issues.push(`Missing artifact ${artifact.logicalName} at ${artifact.pathParts.join('/')}`);
320
+ }
321
+ else {
322
+ issues.push(`Unable to access artifact ${artifact.logicalName} at ${artifact.pathParts.join('/')}: ${errorMessage(error)}`);
323
+ }
116
324
  }
117
325
  }
118
326
  return issues;
@@ -127,7 +335,10 @@ export async function findProjectRoot(startDir) {
127
335
  await access(path.join(current, 'liftoff.manifest.json'));
128
336
  return current;
129
337
  }
130
- catch {
338
+ catch (error) {
339
+ if (errorCode(error) !== 'ENOENT' && errorCode(error) !== 'ENOTDIR') {
340
+ throw new FileSystemError(`Unable to inspect ${current} for a Liftoff manifest: ${errorMessage(error)}`);
341
+ }
131
342
  const parent = path.dirname(current);
132
343
  if (parent === current) {
133
344
  return undefined;
@@ -136,17 +347,54 @@ export async function findProjectRoot(startDir) {
136
347
  }
137
348
  }
138
349
  }
350
+ export async function readProjectFile(projectRoot, pathParts) {
351
+ const targetPath = await resolveProjectPath(projectRoot, pathParts);
352
+ try {
353
+ return await readFile(targetPath);
354
+ }
355
+ catch (error) {
356
+ if (errorCode(error) === 'ENOENT') {
357
+ return undefined;
358
+ }
359
+ throw new FileSystemError(`Unable to read ${pathParts.join('/')}: ${errorMessage(error)}`);
360
+ }
361
+ }
139
362
  export async function writeProjectFile(projectRoot, pathParts, content) {
140
- const targetPath = artifactPath(projectRoot, pathParts);
141
- await mkdir(path.dirname(targetPath), { recursive: true });
142
- await writeFile(targetPath, content, 'utf8');
363
+ const targetPath = await resolveProjectPath(projectRoot, pathParts);
364
+ const temporaryPath = path.join(path.dirname(targetPath), `.${path.basename(targetPath)}.liftoff-${process.pid}-${randomUUID()}.tmp`);
365
+ let temporaryFileWritten = false;
366
+ try {
367
+ await mkdir(path.dirname(targetPath), { recursive: true });
368
+ await writeFile(temporaryPath, content, { encoding: 'utf8', flag: 'wx' });
369
+ temporaryFileWritten = true;
370
+ await rename(temporaryPath, targetPath);
371
+ }
372
+ catch (error) {
373
+ let cleanupFailure;
374
+ if (temporaryFileWritten) {
375
+ try {
376
+ await unlink(temporaryPath);
377
+ }
378
+ catch (cleanupError) {
379
+ if (errorCode(cleanupError) !== 'ENOENT') {
380
+ cleanupFailure = errorMessage(cleanupError);
381
+ }
382
+ }
383
+ }
384
+ const cleanupDetail = cleanupFailure ? ` Temporary-file cleanup also failed: ${cleanupFailure}` : '';
385
+ throw new FileSystemError(`Unable to write ${pathParts.join('/')}: ${errorMessage(error)}${cleanupDetail}`);
386
+ }
143
387
  }
144
388
  export async function deleteProjectFile(projectRoot, pathParts) {
389
+ const targetPath = await resolveProjectPath(projectRoot, pathParts);
145
390
  try {
146
- await unlink(artifactPath(projectRoot, pathParts));
391
+ await unlink(targetPath);
147
392
  }
148
- catch {
149
- // already absent
393
+ catch (error) {
394
+ if (errorCode(error) === 'ENOENT') {
395
+ return;
396
+ }
397
+ throw new FileSystemError(`Unable to delete ${pathParts.join('/')}: ${errorMessage(error)}`);
150
398
  }
151
399
  }
152
400
  //# sourceMappingURL=file-system.js.map