dsh-plugin-upgrader 1.1.1 → 1.2.0
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/CHANGELOG.md +34 -0
- package/lib/host/install.d.ts +18 -0
- package/lib/host/install.d.ts.map +1 -1
- package/lib/host/install.js +143 -0
- package/lib/host/install.js.map +1 -1
- package/lib/host/manifest.d.ts +44 -0
- package/lib/host/manifest.d.ts.map +1 -0
- package/lib/host/manifest.js +146 -0
- package/lib/host/manifest.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.2.0 — 2026-10-27
|
|
4
|
+
|
|
5
|
+
- **A version replacement no longer makes the plugin disappear while it runs.**
|
|
6
|
+
The manager refuses a spec whose package name is already in the profile's
|
|
7
|
+
`dependencies`, and the documented answer is remove-then-install. But
|
|
8
|
+
`removeBundle` deselects the bundle, so the plugin leaves the page for as long
|
|
9
|
+
as pnpm takes — and a replacement runs pnpm twice, which on a slow mirror is
|
|
10
|
+
minutes. An upgrade therefore looked like "the plugin vanished", and a failure
|
|
11
|
+
in between left it that way.
|
|
12
|
+
|
|
13
|
+
That guard reads `profile/package.json`, not the disk. Dropping just the
|
|
14
|
+
dependency entry satisfies it, pnpm `add` overwrites the installed version, and
|
|
15
|
+
the manager writes the entry back itself — so nothing is ever deselected and
|
|
16
|
+
the plugin keeps loading throughout. Measured on this profile: **7.9 s instead
|
|
17
|
+
of 4 m 42 s**, for the same single command that also used to be two.
|
|
18
|
+
|
|
19
|
+
The removal path is still there and still used whenever the in-place attempt
|
|
20
|
+
cannot be made to work (no profile directory, an unreadable manifest, a package
|
|
21
|
+
that is not a plain dependency, a refusal or throw from the attempt itself).
|
|
22
|
+
Every failed attempt restores the entry it dropped first, so a version that can
|
|
23
|
+
only be replaced the slow way is never left worse off for having tried.
|
|
24
|
+
|
|
25
|
+
## 1.1.2 — 2026-10-27
|
|
26
|
+
|
|
27
|
+
- **A failed replacement no longer leaves the plugin unloaded and invisible.**
|
|
28
|
+
Replacing a version means `removeBundle` first, and that deselects the bundle
|
|
29
|
+
so the loader drops its rows. If the install that follows fails — a registry
|
|
30
|
+
timeout, a killed pnpm, anything — the package was left in `dependencies`, on
|
|
31
|
+
disk, and NOT selected: the plugin disappeared from the page entirely, and the
|
|
32
|
+
only way back was the same toggle by hand. A failed re-install now re-selects
|
|
33
|
+
the bundle before reporting, and says so in the log. The repair is skipped when
|
|
34
|
+
the package is no longer installed at all, since selecting that would only fail
|
|
35
|
+
louder.
|
|
36
|
+
|
|
3
37
|
## 1.1.1 — 2026-10-27
|
|
4
38
|
|
|
5
39
|
- **The row no longer offers to switch the running version to itself.** A
|
package/lib/host/install.d.ts
CHANGED
|
@@ -57,6 +57,24 @@ export declare const ACTIONS: Set<string>;
|
|
|
57
57
|
* @returns the state now in effect, if known.
|
|
58
58
|
*/
|
|
59
59
|
export declare function restoreEnabledState(manager: PluginManager, step: Pick<StepRecord, 'name'>, wanted: boolean | undefined, log: LogSink): Promise<boolean | undefined>;
|
|
60
|
+
/**
|
|
61
|
+
* Put a bundle back in the profile's selection after a failed replacement.
|
|
62
|
+
*
|
|
63
|
+
* `removeBundle` has to deselect the bundle to get the loader to drop its rows,
|
|
64
|
+
* and a step that removes but then fails to install leaves it deselected: the
|
|
65
|
+
* package stays in `dependencies`, the code stays on disk, and nothing loads it
|
|
66
|
+
* — the plugin simply disappears from the page with no way back except the same
|
|
67
|
+
* toggle by hand. This is the recovery for that window.
|
|
68
|
+
*
|
|
69
|
+
* Best effort by design: the step has already failed for the reported reason,
|
|
70
|
+
* and turning a recovery failure into a louder second error would bury it.
|
|
71
|
+
*
|
|
72
|
+
* @param manager - the plugin manager.
|
|
73
|
+
* @param name - the bundle to re-select.
|
|
74
|
+
* @param log - progress sink.
|
|
75
|
+
* @returns whether the bundle was re-selected.
|
|
76
|
+
*/
|
|
77
|
+
export declare function restoreSelection(manager: PluginManager, name: string, log: LogSink): Promise<boolean>;
|
|
60
78
|
/**
|
|
61
79
|
* Run one step: install the exact version, falling back to remove + install,
|
|
62
80
|
* then restore the plugin's previous enabled state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/host/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAc,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/host/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAc,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGvF,iCAAiC;AACjC,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;AAE/C;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;AAEvD,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAA;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACvC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,aAAa,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,gCAAgC;AAChC,eAAO,MAAM,OAAO,aAAyC,CAAA;AA6K7D;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAuB9B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,OAAO,CAAC,CAmBlB;AA6FD;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,WAAW,CAAC,CAqItB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAM9D"}
|
package/lib/host/install.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { dropDependency, profileDirFrom, restoreDependency } from './manifest.js';
|
|
1
2
|
/** Allowed per-step actions. */
|
|
2
3
|
export const ACTIONS = new Set(['upgrade', 'switch']);
|
|
3
4
|
/** The manager's code for "a live loader fiber still owns this bundle". */
|
|
@@ -203,6 +204,125 @@ export async function restoreEnabledState(manager, step, wanted, log) {
|
|
|
203
204
|
return current;
|
|
204
205
|
}
|
|
205
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Put a bundle back in the profile's selection after a failed replacement.
|
|
209
|
+
*
|
|
210
|
+
* `removeBundle` has to deselect the bundle to get the loader to drop its rows,
|
|
211
|
+
* and a step that removes but then fails to install leaves it deselected: the
|
|
212
|
+
* package stays in `dependencies`, the code stays on disk, and nothing loads it
|
|
213
|
+
* — the plugin simply disappears from the page with no way back except the same
|
|
214
|
+
* toggle by hand. This is the recovery for that window.
|
|
215
|
+
*
|
|
216
|
+
* Best effort by design: the step has already failed for the reported reason,
|
|
217
|
+
* and turning a recovery failure into a louder second error would bury it.
|
|
218
|
+
*
|
|
219
|
+
* @param manager - the plugin manager.
|
|
220
|
+
* @param name - the bundle to re-select.
|
|
221
|
+
* @param log - progress sink.
|
|
222
|
+
* @returns whether the bundle was re-selected.
|
|
223
|
+
*/
|
|
224
|
+
export async function restoreSelection(manager, name, log) {
|
|
225
|
+
let selected = false;
|
|
226
|
+
try {
|
|
227
|
+
const bundles = await manager.listBundles();
|
|
228
|
+
const entry = Array.isArray(bundles) ? bundles.find((item) => item?.name === name) : undefined;
|
|
229
|
+
// A bundle that is not installed at all cannot be selected: leave it alone.
|
|
230
|
+
if (entry === undefined || entry.installed !== true)
|
|
231
|
+
return false;
|
|
232
|
+
selected = entry.enabled === true;
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
if (selected)
|
|
238
|
+
return false;
|
|
239
|
+
log(`re-select ${name} (a failed replacement must not leave it unloaded)`);
|
|
240
|
+
const code = await toggle(manager, name, true, log);
|
|
241
|
+
if (code !== undefined) {
|
|
242
|
+
log(` ! could not re-select ${name}: ${code} — enable it from the Installed tab`);
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Replace a version without removing the bundle first.
|
|
249
|
+
*
|
|
250
|
+
* The manager refuses a spec whose package name is already a dependency, and
|
|
251
|
+
* the documented answer is remove-then-install. That answer costs the user a
|
|
252
|
+
* visible window: `removeBundle` deselects the bundle, so the plugin leaves the
|
|
253
|
+
* page until pnpm finishes — twice, because a replacement runs two commands.
|
|
254
|
+
*
|
|
255
|
+
* The guard reads the profile manifest rather than the disk, so removing just
|
|
256
|
+
* the dependency entry satisfies it. pnpm `add` then overwrites the installed
|
|
257
|
+
* version, and because nothing was deselected the bundle keeps loading the whole
|
|
258
|
+
* time.
|
|
259
|
+
*
|
|
260
|
+
* Returns `undefined` whenever this route should not be taken or did not work
|
|
261
|
+
* out: the caller then falls back to the removal, which is still correct, just
|
|
262
|
+
* slower. Every exit that leaves the manifest without its entry restores it
|
|
263
|
+
* first, so a failed attempt cannot make the profile worse than it found it.
|
|
264
|
+
*
|
|
265
|
+
* @param manager - the plugin manager.
|
|
266
|
+
* @param step - the requested change.
|
|
267
|
+
* @param options - the install options the caller already built.
|
|
268
|
+
* @param log - progress sink.
|
|
269
|
+
* @param announce - receives the request id the retry installs under.
|
|
270
|
+
* @returns the outcome, or `undefined` to fall back to remove + install.
|
|
271
|
+
*/
|
|
272
|
+
async function replaceWithoutRemoval(manager, step, options, log, announce) {
|
|
273
|
+
const dir = profileDirFrom();
|
|
274
|
+
if (dir === undefined)
|
|
275
|
+
return undefined;
|
|
276
|
+
const dropped = dropDependency(dir, step.name);
|
|
277
|
+
if (dropped.kind === 'unavailable') {
|
|
278
|
+
log(` ! cannot rewrite the profile manifest (${dropped.reason}); removing instead`);
|
|
279
|
+
return undefined;
|
|
280
|
+
}
|
|
281
|
+
if (dropped.kind === 'absent') {
|
|
282
|
+
// The guard should not have fired without an entry: leave this to the
|
|
283
|
+
// removal path rather than guessing what the manager is looking at.
|
|
284
|
+
return undefined;
|
|
285
|
+
}
|
|
286
|
+
const spec = `${step.name}@${step.version}`;
|
|
287
|
+
const requestId = globalThis.crypto?.randomUUID?.() ?? `pu-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
288
|
+
log(`install ${spec} over ${dropped.dependency} (no removal needed)`);
|
|
289
|
+
announce?.(requestId);
|
|
290
|
+
let result;
|
|
291
|
+
try {
|
|
292
|
+
result = await manager.installBundle(spec, { ...options, requestId });
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
restoreDependency(dir, step.name, dropped.dependency);
|
|
296
|
+
log(` ! in-place install failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
297
|
+
return undefined;
|
|
298
|
+
}
|
|
299
|
+
const installed = result?.application === 'applied' || result?.application === 'restart-required';
|
|
300
|
+
if (result?.error !== undefined || !installed) {
|
|
301
|
+
/*
|
|
302
|
+
* pnpm may have rewritten the entry itself before failing. Restoring an
|
|
303
|
+
* entry that is already there is a no-op, so this is safe either way.
|
|
304
|
+
*/
|
|
305
|
+
const back = restoreDependency(dir, step.name, dropped.dependency);
|
|
306
|
+
log(` ! in-place install refused (${result?.error?.code ?? 'no change'})` +
|
|
307
|
+
(back ? '; the dependency entry is back' : '; could NOT restore the dependency entry'));
|
|
308
|
+
return undefined;
|
|
309
|
+
}
|
|
310
|
+
const enabled = await restoreEnabledState(manager, step, options.enabled, log);
|
|
311
|
+
return {
|
|
312
|
+
name: step.name,
|
|
313
|
+
version: result.version ?? step.version,
|
|
314
|
+
spec,
|
|
315
|
+
requestId,
|
|
316
|
+
...(enabled === undefined ? {} : { enabled }),
|
|
317
|
+
ok: true,
|
|
318
|
+
application: result.application,
|
|
319
|
+
changed: result.changed === true,
|
|
320
|
+
stage: result.stage,
|
|
321
|
+
restartReason: result.restartReason,
|
|
322
|
+
pendingBuilds: result.pendingBuilds,
|
|
323
|
+
warnings: result.warnings,
|
|
324
|
+
};
|
|
325
|
+
}
|
|
206
326
|
/**
|
|
207
327
|
* Run one step: install the exact version, falling back to remove + install,
|
|
208
328
|
* then restore the plugin's previous enabled state.
|
|
@@ -244,6 +364,15 @@ export async function runStep(manager, step, log, announce) {
|
|
|
244
364
|
};
|
|
245
365
|
}
|
|
246
366
|
if (result?.error?.code === 'already-installed') {
|
|
367
|
+
/*
|
|
368
|
+
* First choice: drop the manifest entry and install again. pnpm overwrites
|
|
369
|
+
* an existing dependency, the manager's guard only reads the manifest, and
|
|
370
|
+
* the bundle is never deselected — so the plugin stays on the page for the
|
|
371
|
+
* whole upgrade instead of vanishing for the length of two pnpm runs.
|
|
372
|
+
*/
|
|
373
|
+
const direct = await replaceWithoutRemoval(manager, step, options, log, announce);
|
|
374
|
+
if (direct !== undefined)
|
|
375
|
+
return direct;
|
|
247
376
|
log(`remove ${step.name} (replacing an installed dependency)`);
|
|
248
377
|
let removed;
|
|
249
378
|
try {
|
|
@@ -285,6 +414,13 @@ export async function runStep(manager, step, log, announce) {
|
|
|
285
414
|
result = await manager.installBundle(spec, { ...options, requestId: retryId });
|
|
286
415
|
}
|
|
287
416
|
catch (error) {
|
|
417
|
+
/*
|
|
418
|
+
* The removal above already deselected the bundle, so a throw here leaves
|
|
419
|
+
* it installed-but-unloaded: still in `dependencies`, still on disk, no
|
|
420
|
+
* longer selected, and therefore invisible on the page. Put the selection
|
|
421
|
+
* back before reporting, or the operator has to repair it by hand.
|
|
422
|
+
*/
|
|
423
|
+
await restoreSelection(manager, step.name, log);
|
|
288
424
|
return {
|
|
289
425
|
...base,
|
|
290
426
|
requestId: retryId,
|
|
@@ -295,6 +431,13 @@ export async function runStep(manager, step, log, announce) {
|
|
|
295
431
|
};
|
|
296
432
|
}
|
|
297
433
|
}
|
|
434
|
+
/*
|
|
435
|
+
* A manager that refuses the install instead of throwing reaches here with a
|
|
436
|
+
* removal already done. Same hazard, same repair; the reported reason stays
|
|
437
|
+
* whatever the manager said.
|
|
438
|
+
*/
|
|
439
|
+
if (result?.error !== undefined)
|
|
440
|
+
await restoreSelection(manager, step.name, log);
|
|
298
441
|
// Only a change that landed has an enabled state to restore: a failed install
|
|
299
442
|
// left nothing behind, and asking to toggle it would report a second, louder
|
|
300
443
|
// error (`operation-error`) for a package that was never added.
|
package/lib/host/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/host/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/host/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** Where a profile keeps its manifest. */
|
|
2
|
+
export declare const MANIFEST_FILE = "package.json";
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the profile directory the running host is managing.
|
|
5
|
+
*
|
|
6
|
+
* The harness exports this to every process it starts, so the value names the
|
|
7
|
+
* same profile the manager is working on rather than a guess from the disk.
|
|
8
|
+
*
|
|
9
|
+
* @param env - the process environment.
|
|
10
|
+
* @returns the absolute profile directory, or `undefined` when unknown.
|
|
11
|
+
*/
|
|
12
|
+
export declare function profileDirFrom(env?: NodeJS.ProcessEnv): string | undefined;
|
|
13
|
+
/** What happened when the entry was dropped. */
|
|
14
|
+
export type DropResult = {
|
|
15
|
+
kind: 'dropped';
|
|
16
|
+
dependency: string;
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'absent';
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'unavailable';
|
|
21
|
+
reason: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Remove one dependency entry, leaving everything else untouched.
|
|
25
|
+
*
|
|
26
|
+
* @param dir - the profile directory.
|
|
27
|
+
* @param name - the package name to drop.
|
|
28
|
+
* @returns what happened; `absent` means the guard cannot fire anyway.
|
|
29
|
+
*/
|
|
30
|
+
export declare function dropDependency(dir: string, name: string): DropResult;
|
|
31
|
+
/**
|
|
32
|
+
* Put a dropped entry back, for when the install did not reach pnpm.
|
|
33
|
+
*
|
|
34
|
+
* Without this a failed step would leave the profile with a package still on
|
|
35
|
+
* disk, no dependency entry, and no way for the manager to see it — strictly
|
|
36
|
+
* worse than the problem this module exists to avoid.
|
|
37
|
+
*
|
|
38
|
+
* @param dir - the profile directory.
|
|
39
|
+
* @param name - the package name to restore.
|
|
40
|
+
* @param spec - the dependency range to write back.
|
|
41
|
+
* @returns whether the entry was restored.
|
|
42
|
+
*/
|
|
43
|
+
export declare function restoreDependency(dir: string, name: string, spec: string): boolean;
|
|
44
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/host/manifest.ts"],"names":[],"mappings":"AA0BA,0CAA0C;AAC1C,eAAO,MAAM,aAAa,iBAAiB,CAAA;AAE3C;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CASvF;AAED,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAsC3C;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAkBpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBlF"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dropping a dependency entry so a replacement can be installed in one step.
|
|
3
|
+
*
|
|
4
|
+
* The manager's `installBundle` refuses any spec whose package NAME is already
|
|
5
|
+
* in the profile's `dependencies`, with `already-installed`. That check reads
|
|
6
|
+
* `profile/package.json`, not the disk, so it fires even when the point of the
|
|
7
|
+
* call is to replace that very version. The documented workaround is
|
|
8
|
+
* remove-then-install, which deselects the bundle first: the plugin leaves the
|
|
9
|
+
* page for as long as pnpm takes, and a failure in between strands it.
|
|
10
|
+
*
|
|
11
|
+
* Removing just the manifest entry is enough to get past the check. pnpm `add`
|
|
12
|
+
* happily overwrites an existing dependency, and the manager's own bookkeeping
|
|
13
|
+
* still finds the package:
|
|
14
|
+
*
|
|
15
|
+
* const after = readProfileManifest(...).dependencies
|
|
16
|
+
* const installed = Object.keys(after).filter((name) => before[name] !== after[name])
|
|
17
|
+
* if (installed.length === 0) { ...specPackageName(spec, after, ...) }
|
|
18
|
+
*
|
|
19
|
+
* The entry comes back the moment pnpm writes the new version, so the bundle is
|
|
20
|
+
* never deselected and never stops loading.
|
|
21
|
+
*
|
|
22
|
+
* @module dsh-plugin-upgrader/lib/manifest
|
|
23
|
+
*/
|
|
24
|
+
import { readFileSync, writeFileSync, renameSync } from 'node:fs';
|
|
25
|
+
import { join } from 'node:path';
|
|
26
|
+
/** Where a profile keeps its manifest. */
|
|
27
|
+
export const MANIFEST_FILE = 'package.json';
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the profile directory the running host is managing.
|
|
30
|
+
*
|
|
31
|
+
* The harness exports this to every process it starts, so the value names the
|
|
32
|
+
* same profile the manager is working on rather than a guess from the disk.
|
|
33
|
+
*
|
|
34
|
+
* @param env - the process environment.
|
|
35
|
+
* @returns the absolute profile directory, or `undefined` when unknown.
|
|
36
|
+
*/
|
|
37
|
+
export function profileDirFrom(env = process.env) {
|
|
38
|
+
const explicit = env.DSH_PROFILE_DIR;
|
|
39
|
+
if (typeof explicit === 'string' && explicit.trim() !== '')
|
|
40
|
+
return explicit.trim();
|
|
41
|
+
const home = env.DSH_HOME;
|
|
42
|
+
const name = env.DSH_PROFILE;
|
|
43
|
+
if (typeof home === 'string' && home.trim() !== '' && typeof name === 'string' && name.trim() !== '') {
|
|
44
|
+
return join(home.trim(), 'profiles', name.trim());
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Read a profile manifest, or explain why it could not be read.
|
|
50
|
+
*
|
|
51
|
+
* @param dir - the profile directory.
|
|
52
|
+
* @returns the parsed manifest, or an error string.
|
|
53
|
+
*/
|
|
54
|
+
function readManifest(dir) {
|
|
55
|
+
try {
|
|
56
|
+
const raw = readFileSync(join(dir, MANIFEST_FILE), 'utf8');
|
|
57
|
+
const parsed = JSON.parse(raw);
|
|
58
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
59
|
+
return { error: 'manifest is not a JSON object' };
|
|
60
|
+
}
|
|
61
|
+
return { manifest: parsed };
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
return { error: error instanceof Error ? error.message : String(error) };
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Persist a manifest the way the harness does: 2-space JSON, trailing newline.
|
|
69
|
+
*
|
|
70
|
+
* Written to a sibling temp file and renamed so a crash mid-write cannot leave
|
|
71
|
+
* the profile with a truncated manifest — the one file whose corruption would
|
|
72
|
+
* break every plugin, not just this one.
|
|
73
|
+
*
|
|
74
|
+
* @param dir - the profile directory.
|
|
75
|
+
* @param manifest - the value to persist.
|
|
76
|
+
*/
|
|
77
|
+
function writeManifest(dir, manifest) {
|
|
78
|
+
const target = join(dir, MANIFEST_FILE);
|
|
79
|
+
const temporary = `${target}.upgrader-tmp`;
|
|
80
|
+
writeFileSync(temporary, `${JSON.stringify(manifest, undefined, 2)}\n`, 'utf8');
|
|
81
|
+
renameSync(temporary, target);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Remove one dependency entry, leaving everything else untouched.
|
|
85
|
+
*
|
|
86
|
+
* @param dir - the profile directory.
|
|
87
|
+
* @param name - the package name to drop.
|
|
88
|
+
* @returns what happened; `absent` means the guard cannot fire anyway.
|
|
89
|
+
*/
|
|
90
|
+
export function dropDependency(dir, name) {
|
|
91
|
+
const { manifest, error } = readManifest(dir);
|
|
92
|
+
if (manifest === undefined)
|
|
93
|
+
return { kind: 'unavailable', reason: error ?? 'unreadable manifest' };
|
|
94
|
+
const dependencies = manifest.dependencies;
|
|
95
|
+
if (dependencies === null || typeof dependencies !== 'object' || Array.isArray(dependencies))
|
|
96
|
+
return { kind: 'absent' };
|
|
97
|
+
const record = dependencies;
|
|
98
|
+
if (!Object.hasOwn(record, name))
|
|
99
|
+
return { kind: 'absent' };
|
|
100
|
+
const previous = record[name];
|
|
101
|
+
delete record[name];
|
|
102
|
+
try {
|
|
103
|
+
writeManifest(dir, manifest);
|
|
104
|
+
}
|
|
105
|
+
catch (writeError) {
|
|
106
|
+
return {
|
|
107
|
+
kind: 'unavailable',
|
|
108
|
+
reason: writeError instanceof Error ? writeError.message : String(writeError),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
return { kind: 'dropped', dependency: typeof previous === 'string' ? previous : '' };
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Put a dropped entry back, for when the install did not reach pnpm.
|
|
115
|
+
*
|
|
116
|
+
* Without this a failed step would leave the profile with a package still on
|
|
117
|
+
* disk, no dependency entry, and no way for the manager to see it — strictly
|
|
118
|
+
* worse than the problem this module exists to avoid.
|
|
119
|
+
*
|
|
120
|
+
* @param dir - the profile directory.
|
|
121
|
+
* @param name - the package name to restore.
|
|
122
|
+
* @param spec - the dependency range to write back.
|
|
123
|
+
* @returns whether the entry was restored.
|
|
124
|
+
*/
|
|
125
|
+
export function restoreDependency(dir, name, spec) {
|
|
126
|
+
const { manifest } = readManifest(dir);
|
|
127
|
+
if (manifest === undefined)
|
|
128
|
+
return false;
|
|
129
|
+
const dependencies = manifest.dependencies;
|
|
130
|
+
const record = dependencies !== null && typeof dependencies === 'object' && !Array.isArray(dependencies)
|
|
131
|
+
? dependencies
|
|
132
|
+
: undefined;
|
|
133
|
+
if (record === undefined)
|
|
134
|
+
return false;
|
|
135
|
+
if (Object.hasOwn(record, name))
|
|
136
|
+
return true;
|
|
137
|
+
record[name] = spec;
|
|
138
|
+
try {
|
|
139
|
+
writeManifest(dir, manifest);
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/host/manifest.ts"],"names":[],"mappings":"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"}
|