@nestledjs/upgrades 0.3.1 → 0.3.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestledjs/upgrades",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "type": "commonjs",
5
5
  "description": "Consume and apply Nestled template upgrades in a cloned project (nestled-update).",
6
6
  "main": "./src/index.js",
@@ -19,6 +19,12 @@ export interface BlockedInfo {
19
19
  id: string;
20
20
  reason: string;
21
21
  output?: string;
22
+ /**
23
+ * Set when the note was held back only because it would touch these paths, which had uncommitted
24
+ * changes when the run started. Nothing is wrong with the upgrade itself, so it is not recorded as
25
+ * `blocked` in the ledger: commit or stash the paths and run again.
26
+ */
27
+ uncommitted?: string[];
22
28
  }
23
29
  export interface VerificationResult {
24
30
  command: string;
package/src/lib/apply.js CHANGED
@@ -5,6 +5,7 @@ const node_child_process_1 = require("node:child_process");
5
5
  const node_fs_1 = require("node:fs");
6
6
  const node_os_1 = require("node:os");
7
7
  const node_path_1 = require("node:path");
8
+ const changes_1 = require("./changes");
8
9
  const manifest_1 = require("./manifest");
9
10
  const baseline_1 = require("./baseline");
10
11
  const pending_1 = require("./pending");
@@ -18,7 +19,11 @@ function includesPackage(note) {
18
19
  function includesPatch(note) {
19
20
  return !note.delivery || note.delivery === 'code-patch' || note.delivery === 'hybrid';
20
21
  }
21
- function tryApplyPatch(cwd, diffText) {
22
+ /**
23
+ * `undoPartial` puts back the patch's own paths after a failed 3-way attempt (which can leave conflict
24
+ * markers and index entries behind); it must touch nothing else.
25
+ */
26
+ function tryApplyPatch(cwd, diffText, undoPartial) {
22
27
  const excludeArgs = PATCH_EXCLUDES.map((pattern) => `--exclude=${pattern}`);
23
28
  const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'nestled-upd-'));
24
29
  const file = (0, node_path_1.join)(dir, 'change.diff');
@@ -32,8 +37,8 @@ function tryApplyPatch(cwd, diffText) {
32
37
  const threeWay = (0, git_1.git)(cwd, ['apply', '--3way', ...excludeArgs, file]);
33
38
  if (threeWay.status === 0)
34
39
  return { applied: true, via3way: true };
35
- // 3-way may have left partial state on this (uncommitted) note only.
36
- (0, git_1.git)(cwd, ['checkout', '--', '.']);
40
+ // 3-way may have left partial state, but only on this note's own paths.
41
+ undoPartial();
37
42
  return { applied: false, output: check.stderr || check.stdout };
38
43
  }
39
44
  const apply = (0, git_1.git)(cwd, ['apply', ...excludeArgs, file]);
@@ -98,29 +103,38 @@ function updateLockfile(cwd) {
98
103
  reason: ((_b = result.status) !== null && _b !== void 0 ? _b : 1) === 0 ? 'Lockfile updated.' : result.stderr || result.stdout || 'Install failed.',
99
104
  };
100
105
  }
101
- function applyPackageReleases(cwd, note) {
102
- var _a, _b, _c, _d, _e;
103
- const releases = (_a = note.packageReleases) !== null && _a !== void 0 ? _a : [];
104
- if (releases.some((release) => !release.targetVersion && !release.versionRange)) {
105
- return { status: 'blocked', reason: 'Package release is missing targetVersion and versionRange (pending release).' };
106
- }
107
- for (const release of releases) {
108
- const version = (_b = release.targetVersion) !== null && _b !== void 0 ? _b : release.versionRange;
109
- if (!verifyPublishedPackage(release.name, version)) {
110
- return { status: 'blocked', reason: `Cannot verify published version for ${release.name}@${version}.` };
111
- }
106
+ /** Whether a directory between `cwd` and `path` is a symlink (`path` itself is not checked). */
107
+ function throughLink(cwd, path) {
108
+ const expected = (0, node_path_1.resolve)((0, node_fs_1.realpathSync)(cwd), (0, node_path_1.relative)(cwd, (0, node_path_1.dirname)(path)));
109
+ return (0, node_fs_1.realpathSync)((0, node_path_1.dirname)(path)) !== expected;
110
+ }
111
+ function lockfilePath(cwd) {
112
+ for (const name of ['pnpm-lock.yaml', 'yarn.lock', 'package-lock.json']) {
113
+ if ((0, node_fs_1.existsSync)((0, node_path_1.join)(cwd, name)))
114
+ return (0, node_path_1.join)(cwd, name);
112
115
  }
116
+ return null;
117
+ }
118
+ /** Work out what a package bump would write, without writing anything. */
119
+ function planPackageReleases(cwd, note) {
120
+ var _a, _b, _c, _d;
121
+ const releases = (_a = note.packageReleases) !== null && _a !== void 0 ? _a : [];
113
122
  const manifests = findPackageManifests(cwd, releases);
123
+ const writes = [];
114
124
  const updated = [];
115
125
  for (const manifestPath of manifests) {
126
+ // Writing through a symlink, of the file or of a directory above it, would change a file
127
+ // somewhere else, which no rollback could find.
128
+ if ((0, node_fs_1.lstatSync)(manifestPath).isSymbolicLink() || throughLink(cwd, manifestPath))
129
+ continue;
116
130
  const pkg = safeReadPackageJson(manifestPath);
117
131
  if (!pkg)
118
132
  continue;
119
133
  let changed = false;
120
134
  for (const release of releases) {
121
- const version = (_d = (_c = release.versionRange) !== null && _c !== void 0 ? _c : release.targetVersion) !== null && _d !== void 0 ? _d : '';
135
+ const version = (_c = (_b = release.versionRange) !== null && _b !== void 0 ? _b : release.targetVersion) !== null && _c !== void 0 ? _c : '';
122
136
  for (const field of ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies']) {
123
- if ((_e = pkg[field]) === null || _e === void 0 ? void 0 : _e[release.name]) {
137
+ if ((_d = pkg[field]) === null || _d === void 0 ? void 0 : _d[release.name]) {
124
138
  pkg[field][release.name] = version;
125
139
  updated.push({ manifest: (0, node_path_1.relative)(cwd, manifestPath), name: release.name, version });
126
140
  changed = true;
@@ -128,8 +142,29 @@ function applyPackageReleases(cwd, note) {
128
142
  }
129
143
  }
130
144
  if (changed)
131
- (0, node_fs_1.writeFileSync)(manifestPath, `${JSON.stringify(pkg, null, 2)}\n`);
145
+ writes.push({ path: manifestPath, contents: `${JSON.stringify(pkg, null, 2)}\n` });
146
+ }
147
+ return { writes, updated, lockfile: writes.length ? lockfilePath(cwd) : null };
148
+ }
149
+ /** Absolute paths the package step of `note` would write: changed manifests and the lockfile. */
150
+ function packageTargets(plan) {
151
+ return [...plan.writes.map((write) => write.path), ...(plan.lockfile ? [plan.lockfile] : [])];
152
+ }
153
+ function applyPackageReleases(cwd, note, plan) {
154
+ var _a, _b;
155
+ const releases = (_a = note.packageReleases) !== null && _a !== void 0 ? _a : [];
156
+ if (releases.some((release) => !release.targetVersion && !release.versionRange)) {
157
+ return { status: 'blocked', reason: 'Package release is missing targetVersion and versionRange (pending release).' };
158
+ }
159
+ for (const release of releases) {
160
+ const version = (_b = release.targetVersion) !== null && _b !== void 0 ? _b : release.versionRange;
161
+ if (!verifyPublishedPackage(release.name, version)) {
162
+ return { status: 'blocked', reason: `Cannot verify published version for ${release.name}@${version}.` };
163
+ }
132
164
  }
165
+ const { updated } = plan;
166
+ for (const write of plan.writes)
167
+ (0, node_fs_1.writeFileSync)(write.path, write.contents);
133
168
  if (updated.length === 0) {
134
169
  const names = releases.map((r) => r.name).join(', ') || 'the referenced packages';
135
170
  return { status: 'not-applicable', reason: `Project does not consume ${names}.` };
@@ -214,7 +249,7 @@ function prBody(applied, channel, ceiling) {
214
249
  * advanced across every fully-completed release.
215
250
  */
216
251
  function applyRun(projectDir, options = {}) {
217
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
252
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
218
253
  const config = (0, baseline_1.readSiteConfig)(projectDir);
219
254
  const log = (0, baseline_1.readUpgradeLog)(projectDir);
220
255
  (_a = log.upgrades) !== null && _a !== void 0 ? _a : (log.upgrades = {});
@@ -254,15 +289,129 @@ function applyRun(projectDir, options = {}) {
254
289
  if (!startedClean && !options.allowDirty) {
255
290
  throw new Error('Project has uncommitted changes. Commit them, or re-run with --allow-dirty.');
256
291
  }
292
+ // Everything below works in repository-root-relative paths, the form `git status` reports. Patch
293
+ // paths already are (git apply resolves them from the root, skipping any outside this directory).
294
+ const root = (0, git_1.gitOutput)(projectDir, ['rev-parse', '--show-toplevel']) || projectDir;
295
+ const prefix = (0, git_1.gitOutput)(projectDir, ['rev-parse', '--show-prefix']);
296
+ const fromAbsolute = (path) => {
297
+ const fromHere = (0, node_path_1.relative)(projectDir, path);
298
+ return node_path_1.posix.normalize(`${prefix}${node_path_1.sep === '/' ? fromHere : fromHere.split(node_path_1.sep).join('/')}`);
299
+ };
300
+ // What the user had uncommitted when we started is theirs: no note may write it, no rollback may revert it.
301
+ const dirtyAtStart = startedClean ? new Set() : (0, changes_1.dirtyPaths)(root);
302
+ // Git reports a dirty submodule (or other nested repository) as one directory, whose contents no
303
+ // snapshot here can protect from what a step might run inside it. Refuse before touching anything.
304
+ const isDir = (path) => { var _a; return (_a = (0, node_fs_1.lstatSync)((0, node_path_1.join)(root, path), { throwIfNoEntry: false })) === null || _a === void 0 ? void 0 : _a.isDirectory(); };
305
+ const nested = [...dirtyAtStart].filter(isDir);
306
+ if (nested.length) {
307
+ const what = nested.length === 1 ? 'is a submodule or nested repository' : 'are submodules or nested repositories';
308
+ throw new Error(`${nested.join(', ')} ${what} with uncommitted changes; commit or stash them first.`);
309
+ }
310
+ // A merge, cherry-pick, revert or rebase in progress is not a state to build upgrade commits on, and
311
+ // rolling back would have to guess which part of it was ours.
312
+ const inProgress = (0, git_1.operationsInProgress)(projectDir);
313
+ if (inProgress.length) {
314
+ throw new Error(`A git operation is in progress (${inProgress.join(', ')}); finish or abort it first.`);
315
+ }
257
316
  const branch = `nestled-update/${channel}-${pending.ceiling}`;
258
- (0, git_1.checkoutBranch)(projectDir, branch);
317
+ // Switch branches without running hooks: on a dirty tree one could rewrite the user's work, and on
318
+ // any tree it could create files before the run starts tracking what it changes.
319
+ (0, git_1.checkoutBranch)(projectDir, branch, { hooks: false });
259
320
  const startCommit = (0, git_1.gitOutput)(projectDir, ['rev-parse', 'HEAD']);
260
321
  const forked = new Set((_c = (_b = options.forkedAreas) !== null && _b !== void 0 ? _b : config.forkedAreas) !== null && _c !== void 0 ? _c : []);
322
+ const changes = new changes_1.RunChanges(root, startCommit);
323
+ // Our own bookkeeping (the project's `.nestled/`, and the repository root's when the project is a
324
+ // subdirectory) is never the run's to delete, whatever a step or a reset does to it: put it back
325
+ // after any rollback (the upgrade log is then rewritten from memory as usual).
326
+ const bookkeepingDirs = [...new Set([`${prefix}.nestled/`, '.nestled/'])];
327
+ const isBookkeeping = (path) => bookkeepingDirs.some((dir) => path.startsWith(dir));
328
+ // What is on disk, plus what the start commit tracks there (a staged deletion must come back as one).
329
+ const trackedBookkeeping = startCommit
330
+ ? (0, git_1.git)(root, ['ls-tree', '-r', '-z', '--name-only', '--full-tree', startCommit, '--', ...bookkeepingDirs])
331
+ .stdout.split('\0')
332
+ .filter(Boolean)
333
+ : [];
334
+ // ...and what is only in the index (a staged addition whose file has since been deleted).
335
+ const indexedBookkeeping = (0, git_1.git)(root, ['ls-files', '-z', '--full-name', '--', ...bookkeepingDirs])
336
+ .stdout.split('\0')
337
+ .filter(Boolean);
338
+ const bookkeepingAtStart = (0, changes_1.snapshotFiles)(root, [
339
+ ...bookkeepingDirs.flatMap((dir) => { var _a; return (_a = (0, changes_1.listFiles)(root, dir)) !== null && _a !== void 0 ? _a : []; }),
340
+ ...trackedBookkeeping,
341
+ ...indexedBookkeeping,
342
+ ]);
343
+ /** User state that could not be put back, and where it was saved instead; reported with any block. */
344
+ const unrecovered = [];
345
+ const withRecovery = (info) => {
346
+ if (!unrecovered.length)
347
+ return info;
348
+ const notes = unrecovered.map(({ path, savedTo }) => `could not restore ${path}; its saved state is in ${savedTo}`);
349
+ return Object.assign(Object.assign({}, info), { reason: `${info.reason} Also: ${notes.join('; ')}.` });
350
+ };
351
+ const uncommittedBlock = (id, paths) => {
352
+ // The user's: dirty at the start, or a pre-existing ignored file an earlier step surfaced.
353
+ const overlap = paths.filter((path) => dirtyAtStart.has(path) || changes.isPreserved(path));
354
+ if (!overlap.length)
355
+ return null;
356
+ const subject = `${overlap.join(', ')} ${overlap.length === 1 ? 'has' : 'have'}`;
357
+ const reason = `${subject} uncommitted changes this upgrade would overwrite; commit or stash them first, then re-run.`;
358
+ return { id, reason, uncommitted: overlap };
359
+ };
360
+ /**
361
+ * Run a step that executes third-party code (an install's lifecycle scripts, git hooks, verification):
362
+ * whatever it newly dirties or commits is recorded as the run's own (and returned as `sideEffects`),
363
+ * and any file the user had uncommitted changes in that it rewrote is put back (`clobbered`).
364
+ */
365
+ const guarded = (step) => {
366
+ const dirtyBefore = (0, changes_1.dirtyPaths)(root);
367
+ const ignoredBefore = (0, changes_1.ignoredPaths)(root);
368
+ const headBefore = (0, git_1.gitOutput)(root, ['rev-parse', 'HEAD']);
369
+ const userFiles = (0, changes_1.snapshotFiles)(root, dirtyAtStart);
370
+ const result = step();
371
+ // What it left uncommitted, and what it committed (a script, or a hook, can commit too).
372
+ const changed = new Set([...(0, changes_1.dirtyPaths)(root)].filter((path) => !dirtyBefore.has(path) && !isBookkeeping(path)));
373
+ const headAfter = (0, git_1.gitOutput)(root, ['rev-parse', 'HEAD']);
374
+ if (headBefore && headAfter && headAfter !== headBefore) {
375
+ const committed = (0, git_1.git)(root, ['diff', '--name-only', '-z', '--no-renames', headBefore, headAfter]).stdout;
376
+ for (const path of committed.split('\0').filter(Boolean))
377
+ if (!isBookkeeping(path))
378
+ changed.add(path);
379
+ }
380
+ // A user path the step committed counts as clobbered even when its file and index entry still
381
+ // match: the user's work is now inside a commit, which only a rollback takes back out.
382
+ const userRestore = (0, changes_1.restoreChangedFiles)(root, userFiles);
383
+ unrecovered.push(...userRestore.unrecovered);
384
+ const clobbered = new Set(userRestore.restored);
385
+ [...changed].filter((path) => dirtyAtStart.has(path)).forEach((path) => clobbered.add(path));
386
+ // The user's paths are protected above, never taken over as the run's own.
387
+ const sideEffects = changes.didChange([...changed].filter((path) => !dirtyAtStart.has(path)), ignoredBefore);
388
+ return { result, sideEffects, clobbered: [...clobbered] };
389
+ };
390
+ /**
391
+ * Undo the run: drop its commits and put back exactly the paths it touched. Every other file,
392
+ * including everything uncommitted at the start of an `--allow-dirty` run, is left as it is.
393
+ */
261
394
  const rollback = () => {
262
- if (startedClean && startCommit)
263
- (0, git_1.git)(projectDir, ['reset', '--hard', startCommit]);
264
- else
265
- (0, git_1.git)(projectDir, ['checkout', '--', '.']);
395
+ // None was in progress at the start, so any merge (or similar) a step left behind is the run's.
396
+ (0, git_1.quitOperations)(root);
397
+ if (startedClean && startCommit) {
398
+ // The tree was clean (outside `.nestled/`) when we started, so nothing here is anyone else's work.
399
+ const reset = (0, git_1.git)(projectDir, ['reset', '--hard', startCommit]);
400
+ if (reset.status !== 0)
401
+ throw new Error(`Rollback could not reset to ${startCommit}: ${reset.stderr}`);
402
+ changes.restore();
403
+ }
404
+ else {
405
+ // Keep the index and working tree: they hold the user's uncommitted changes as well as ours. Put
406
+ // the run's own paths back first, which also clears any conflict entries a step left on them.
407
+ changes.restore();
408
+ if (startCommit) {
409
+ const reset = (0, git_1.git)(root, ['reset', '--soft', startCommit]);
410
+ if (reset.status !== 0)
411
+ throw new Error(`Rollback could not move HEAD back to ${startCommit}: ${reset.stderr}`);
412
+ }
413
+ }
414
+ unrecovered.push(...(0, changes_1.restoreChangedFiles)(root, bookkeepingAtStart).unrecovered);
266
415
  };
267
416
  const applied = [];
268
417
  let blocked = null;
@@ -282,8 +431,26 @@ function applyRun(projectDir, options = {}) {
282
431
  break;
283
432
  }
284
433
  const entry = { id: note.id, title: note.title, delivery: note.delivery };
434
+ const noteTouched = new Set();
285
435
  if (includesPackage(note)) {
286
- const result = applyPackageReleases(projectDir, note);
436
+ const plan = planPackageReleases(projectDir, note);
437
+ // An install writes through a linked lockfile to a file elsewhere, which no rollback could find.
438
+ if (plan.lockfile && ((0, node_fs_1.lstatSync)(plan.lockfile).isSymbolicLink() || throughLink(projectDir, plan.lockfile))) {
439
+ blocked = { id: note.id, reason: `${fromAbsolute(plan.lockfile)} is a symlink; update the lockfile by hand.` };
440
+ break;
441
+ }
442
+ const targets = packageTargets(plan).map(fromAbsolute);
443
+ blocked = uncommittedBlock(note.id, targets);
444
+ if (blocked)
445
+ break;
446
+ changes.willTouch(targets);
447
+ targets.forEach((path) => noteTouched.add(path));
448
+ // The install may write more than the lockfile, and its scripts may write anything.
449
+ const { result, sideEffects, clobbered } = guarded(() => applyPackageReleases(projectDir, note, plan));
450
+ sideEffects.forEach((path) => noteTouched.add(path));
451
+ blocked = uncommittedBlock(note.id, clobbered);
452
+ if (blocked)
453
+ break;
287
454
  if (result.status === 'blocked') {
288
455
  blocked = { id: note.id, reason: (_d = result.reason) !== null && _d !== void 0 ? _d : 'Package release blocked.' };
289
456
  break;
@@ -304,7 +471,19 @@ function applyRun(projectDir, options = {}) {
304
471
  blocked = { id: note.id, reason: `Patch not found in feed: ${note.patch}` };
305
472
  break;
306
473
  }
307
- const patch = tryApplyPatch(projectDir, diff);
474
+ const paths = (0, changes_1.patchPaths)(diff, PATCH_EXCLUDES).filter((path) => path.startsWith(prefix));
475
+ blocked = uncommittedBlock(note.id, paths);
476
+ if (blocked)
477
+ break;
478
+ changes.willTouch(paths);
479
+ paths.forEach((path) => noteTouched.add(path));
480
+ // Guarded like any other step: a patch that drops an ignore rule surfaces the user's ignored files,
481
+ // which must be known as theirs before a later step can commit them.
482
+ const patchStep = guarded(() => tryApplyPatch(projectDir, diff, () => changes.restore(paths)));
483
+ blocked = uncommittedBlock(note.id, patchStep.clobbered);
484
+ if (blocked)
485
+ break;
486
+ const patch = patchStep.result;
308
487
  if (!patch.applied && !patch.alreadyApplied) {
309
488
  blocked = {
310
489
  id: note.id,
@@ -318,10 +497,21 @@ function applyRun(projectDir, options = {}) {
318
497
  }
319
498
  if (note.review)
320
499
  entry.review = note.review;
321
- (0, git_1.commitAll)(projectDir, `Apply Nestled upgrade ${note.id}`);
500
+ const message = `Apply Nestled upgrade ${note.id}`;
501
+ // Commit hooks run third-party code too (formatters, generators), so committing is guarded.
502
+ // Only the note's own paths, even on a clean start: `add -A` would also sweep in an ignored file a
503
+ // step merely un-ignored, which a later `reset --hard` would then delete.
504
+ const commit = guarded(() => (0, changes_1.commitPaths)(root, message, [...noteTouched]));
505
+ blocked = uncommittedBlock(note.id, commit.clobbered);
506
+ if (blocked)
507
+ break;
508
+ if (!commit.result) {
509
+ blocked = { id: note.id, reason: 'Committing the upgrade failed; a commit hook may have rejected it.' };
510
+ break;
511
+ }
322
512
  applied.push({ note, entry });
323
513
  // A note with no mechanical component at all (pure `intent-only`) still reaches here with
324
- // nothing to commit beyond a no-op; `commitAll` is a no-op when nothing changed. Either way,
514
+ // nothing to commit beyond a no-op; committing is a no-op when nothing changed. Either way,
325
515
  // stop climbing the release ladder here: later notes may build on the judgment call this one
326
516
  // is waiting on, so they stay pending rather than applying past it.
327
517
  if (entry.review) {
@@ -331,9 +521,18 @@ function applyRun(projectDir, options = {}) {
331
521
  }
332
522
  if (blocked) {
333
523
  rollback();
334
- (0, baseline_1.setOutcome)(log, blocked.id, 'blocked');
524
+ // Held back only by the user's uncommitted work: not a problem with the upgrade, so not recorded.
525
+ if (!blocked.uncommitted)
526
+ (0, baseline_1.setOutcome)(log, blocked.id, 'blocked');
335
527
  (0, baseline_1.writeUpgradeLog)(projectDir, log);
336
- return { status: 'blocked', channel, branch, applied: [], blocked, baselineRelease: log.template.baselineRelease };
528
+ return {
529
+ status: 'blocked',
530
+ channel,
531
+ branch,
532
+ applied: [],
533
+ blocked: withRecovery(blocked),
534
+ baselineRelease: log.template.baselineRelease,
535
+ };
337
536
  }
338
537
  // A note's own `verification` takes precedence over the consumer's auto-detected lint/test
339
538
  // scripts: the full suite may need infrastructure (a database, Docker) an unattended rollout
@@ -341,7 +540,8 @@ function applyRun(projectDir, options = {}) {
341
540
  // specific change. An explicit --verify still wins, for an operator forcing an ad-hoc check.
342
541
  const noteVerification = [...new Set(applied.flatMap(({ note }) => { var _a; return (_a = note.verification) !== null && _a !== void 0 ? _a : []; }))];
343
542
  const commands = (_e = options.verification) !== null && _e !== void 0 ? _e : (noteVerification.length ? noteVerification : (_f = config.verification) !== null && _f !== void 0 ? _f : inferVerification(projectDir));
344
- const verification = applied.length ? runVerification(projectDir, commands) : [];
543
+ const guardedVerification = applied.length ? guarded(() => runVerification(projectDir, commands)) : null;
544
+ const verification = (_g = guardedVerification === null || guardedVerification === void 0 ? void 0 : guardedVerification.result) !== null && _g !== void 0 ? _g : [];
345
545
  const failed = verification.find((item) => item.status !== 0);
346
546
  if (failed) {
347
547
  rollback();
@@ -354,7 +554,23 @@ function applyRun(projectDir, options = {}) {
354
554
  branch,
355
555
  applied: [],
356
556
  verification,
357
- blocked: { id: failed.command, reason: `Verification failed: ${failed.command}` },
557
+ blocked: withRecovery({ id: failed.command, reason: `Verification failed: ${failed.command}` }),
558
+ baselineRelease: log.template.baselineRelease,
559
+ };
560
+ }
561
+ // Verification passed, but rewrote or committed the user's uncommitted work: undo the run rather than
562
+ // ship it. Like any block caused by the user's work, it is not recorded against the notes.
563
+ const verificationBlock = uncommittedBlock(commands.join('; '), (_h = guardedVerification === null || guardedVerification === void 0 ? void 0 : guardedVerification.clobbered) !== null && _h !== void 0 ? _h : []);
564
+ if (verificationBlock) {
565
+ rollback();
566
+ (0, baseline_1.writeUpgradeLog)(projectDir, log);
567
+ return {
568
+ status: 'blocked',
569
+ channel,
570
+ branch,
571
+ applied: [],
572
+ verification,
573
+ blocked: withRecovery(verificationBlock),
358
574
  baselineRelease: log.template.baselineRelease,
359
575
  };
360
576
  }
@@ -371,10 +587,10 @@ function applyRun(projectDir, options = {}) {
371
587
  (0, baseline_1.advanceBaseline)(log, eligibleReleases);
372
588
  (0, baseline_1.writeUpgradeLog)(projectDir, log);
373
589
  let pr;
374
- if (((_g = options.autoPR) !== null && _g !== void 0 ? _g : config.autoPR) && applied.length) {
590
+ if (((_j = options.autoPR) !== null && _j !== void 0 ? _j : config.autoPR) && applied.length) {
375
591
  pr = (0, git_1.pushAndCreatePR)(projectDir, {
376
592
  branch,
377
- base: (_j = (_h = options.defaultBranch) !== null && _h !== void 0 ? _h : config.defaultBranch) !== null && _j !== void 0 ? _j : 'develop',
593
+ base: (_l = (_k = options.defaultBranch) !== null && _k !== void 0 ? _k : config.defaultBranch) !== null && _l !== void 0 ? _l : 'develop',
378
594
  title: `Nestled upgrades up to ${pending.ceiling}`,
379
595
  body: prBody(applied.map((a) => a.entry), channel, pending.ceiling),
380
596
  });
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../upgrades/src/lib/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../upgrades/src/lib/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Every path with uncommitted changes at this moment — staged, unstaged, or untracked (each file of an
3
+ * untracked directory individually) — excluding our own `.nestled/` bookkeeping, the same exclusion
4
+ * `hasUncommittedChanges` makes. Both sides of a staged rename are included.
5
+ */
6
+ export declare function dirtyPaths(cwd: string): Set<string>;
7
+ /**
8
+ * Ignored paths that exist right now, as `git status --ignored` reports them, as a test of whether a
9
+ * path existed (as an ignored file) at this moment. Git collapses an ignored directory to one entry,
10
+ * so its files are listed here directly, up to a limit; inside a directory too large to list (a
11
+ * `node_modules`), every path counts as pre-existing, which can only ever leave a file behind.
12
+ */
13
+ export declare function ignoredPaths(cwd: string): (path: string) => boolean;
14
+ /**
15
+ * Every path a unified diff would create, modify, delete or rename (both sides), relative to the
16
+ * directory `git apply` runs in, minus paths matching `excludes` (the `--exclude` globs passed to
17
+ * `git apply`). Hunk bodies are skipped by their line counts, so a removed line that happens to read
18
+ * `-- a/x` is never mistaken for a header.
19
+ */
20
+ export declare function patchPaths(diffText: string, excludes?: string[]): string[];
21
+ /** What is at a path on disk, captured so it can be put back exactly. */
22
+ type FileState = {
23
+ kind: 'absent';
24
+ } | {
25
+ kind: 'file';
26
+ contents: Buffer;
27
+ mode: number;
28
+ } | {
29
+ kind: 'link';
30
+ target: string;
31
+ }
32
+ /** A directory or special file: never captured, never overwritten. A directory above a path keeps its mode. */
33
+ | {
34
+ kind: 'other';
35
+ mode?: number;
36
+ };
37
+ /** A path's state together with the state of each directory above it (a real directory, or a link). */
38
+ interface Captured {
39
+ state: FileState;
40
+ ancestors: {
41
+ absolute: string;
42
+ state: FileState;
43
+ }[];
44
+ }
45
+ /**
46
+ * The paths one apply run changes, each with how it looked before the run first touched it, so a
47
+ * rollback can put back exactly those paths and leave every other file alone.
48
+ *
49
+ * Call `willTouch` before writing a path. Its state at that moment is the pre-run state, because
50
+ * the run never writes a path it has not declared, and a path the user had uncommitted is refused
51
+ * before it gets here.
52
+ */
53
+ export declare class RunChanges {
54
+ private readonly root;
55
+ private readonly startCommit;
56
+ private readonly prior;
57
+ /** Pre-existing ignored files a step surfaced: restored on rollback, never committed as the run's. */
58
+ private readonly preserved;
59
+ /** A pre-existing ignored file a step surfaced: the user's, so no later note may write it. */
60
+ isPreserved(path: string): boolean;
61
+ /** `root` is the repository root; `startCommit` is HEAD before the run ('' on an unborn branch). */
62
+ constructor(root: string, startCommit: string);
63
+ get paths(): string[];
64
+ has(path: string): boolean;
65
+ willTouch(paths: Iterable<string>): void;
66
+ /**
67
+ * Record paths something the run did has already changed (an install's or a hook's side effects).
68
+ * Only paths that were clean before that step may be passed. Each was tracked at the start commit,
69
+ * did not exist, or existed but was ignored (`existedIgnored`): a step that changes an ignore rule,
70
+ * or force-adds and commits, can surface a file it never wrote. That last kind is the user's: it is
71
+ * kept as it is now and, after a rollback, put back the same way, unstaged. Returns the paths among
72
+ * `paths` that the run now owns, which never include the user's.
73
+ */
74
+ didChange(paths: Iterable<string>, existedIgnored?: (path: string) => boolean): string[];
75
+ /**
76
+ * Put `paths` (default: every path this run touched) back to their pre-run state, in both the
77
+ * index and the working tree. Nothing outside them is read or written.
78
+ */
79
+ restore(paths?: Iterable<string>): void;
80
+ /** Paths of `paths` present in the start commit's tree. */
81
+ private trackedAtStart;
82
+ /** Remove directories a created file left empty, up to (never including) the repository root. */
83
+ private pruneEmptyParents;
84
+ }
85
+ /**
86
+ * Every file and link under `dir` (repository-root-relative, ending in `/`), as root-relative paths,
87
+ * without following directory links. With `limit`, null once more than that many are found.
88
+ */
89
+ export declare function listFiles(root: string, dir: string, limit?: number): string[] | null;
90
+ /** The user's uncommitted work at a set of paths: what is on disk, and what is staged. */
91
+ export interface UserState {
92
+ files: Map<string, Captured>;
93
+ index: Map<string, string[]>;
94
+ }
95
+ /** Capture `paths` as they are now, on disk and in the index. */
96
+ export declare function snapshotFiles(root: string, paths: Iterable<string>): UserState;
97
+ /**
98
+ * Put back every snapshotted path whose file (contents, mode, symlink target, or presence) or index
99
+ * entry no longer matches, and return those paths. Used around steps that run third-party code (a
100
+ * package install, verification commands) on a dirty tree, so a script that rewrites, replaces or
101
+ * re-stages a file the user has uncommitted work in cannot cost them that work.
102
+ */
103
+ export interface RestoreResult {
104
+ /** Paths found changed and put back (or attempted): the caller blocks on any. */
105
+ restored: string[];
106
+ /** Paths that could not be put back, with where their saved state was written instead. */
107
+ unrecovered: {
108
+ path: string;
109
+ savedTo: string;
110
+ }[];
111
+ }
112
+ export declare function restoreChangedFiles(root: string, snapshot: UserState): RestoreResult;
113
+ /**
114
+ * Commit only `paths`, leaving anything else the user has staged or modified out of the commit and
115
+ * exactly as it was. Returns the new HEAD (short), the unchanged HEAD when none of `paths` changed,
116
+ * or '' when staging or committing failed (a commit hook rejecting it, say), like `commitAll`.
117
+ */
118
+ export declare function commitPaths(root: string, message: string, paths: string[]): string;
119
+ export {};