@superblocksteam/sdk 2.0.137-next.0 → 2.0.138-next.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/.turbo/turbo-build.log +1 -1
- package/dist/cli-replacement/automatic-upgrades.d.ts +1 -1
- package/dist/cli-replacement/automatic-upgrades.d.ts.map +1 -1
- package/dist/cli-replacement/automatic-upgrades.js +64 -59
- package/dist/cli-replacement/automatic-upgrades.js.map +1 -1
- package/dist/cli-replacement/automatic-upgrades.test.js +54 -33
- package/dist/cli-replacement/automatic-upgrades.test.js.map +1 -1
- package/dist/cli-replacement/dependency-install-classifier.d.mts +26 -1
- package/dist/cli-replacement/dependency-install-classifier.d.mts.map +1 -1
- package/dist/cli-replacement/dependency-install-classifier.mjs +58 -0
- package/dist/cli-replacement/dependency-install-classifier.mjs.map +1 -1
- package/dist/cli-replacement/dependency-install-classifier.test.mjs +33 -1
- package/dist/cli-replacement/dependency-install-classifier.test.mjs.map +1 -1
- package/dist/cli-replacement/dev.d.mts +4 -2
- package/dist/cli-replacement/dev.d.mts.map +1 -1
- package/dist/cli-replacement/dev.interception.test.mjs +32 -5
- package/dist/cli-replacement/dev.interception.test.mjs.map +1 -1
- package/dist/cli-replacement/dev.mjs +142 -65
- package/dist/cli-replacement/dev.mjs.map +1 -1
- package/dist/cli-replacement/home-npmrc.d.mts.map +1 -1
- package/dist/cli-replacement/home-npmrc.mjs +13 -5
- package/dist/cli-replacement/home-npmrc.mjs.map +1 -1
- package/dist/cli-replacement/home-npmrc.test.mjs +49 -17
- package/dist/cli-replacement/home-npmrc.test.mjs.map +1 -1
- package/dist/cli-replacement/package-json-snapshot.d.mts +1 -0
- package/dist/cli-replacement/package-json-snapshot.d.mts.map +1 -1
- package/dist/cli-replacement/package-json-snapshot.mjs +35 -0
- package/dist/cli-replacement/package-json-snapshot.mjs.map +1 -1
- package/dist/cli-replacement/package-json-snapshot.test.mjs +104 -0
- package/dist/cli-replacement/package-json-snapshot.test.mjs.map +1 -1
- package/dist/dev-utils/dev-server-metrics.d.mts +17 -7
- package/dist/dev-utils/dev-server-metrics.d.mts.map +1 -1
- package/dist/dev-utils/dev-server-metrics.mjs +18 -12
- package/dist/dev-utils/dev-server-metrics.mjs.map +1 -1
- package/dist/dev-utils/dev-server.d.mts.map +1 -1
- package/dist/dev-utils/dev-server.mjs +15 -6
- package/dist/dev-utils/dev-server.mjs.map +1 -1
- package/dist/dev-utils/prepare-in-place-restart.d.mts +31 -0
- package/dist/dev-utils/prepare-in-place-restart.d.mts.map +1 -0
- package/dist/dev-utils/prepare-in-place-restart.mjs +64 -0
- package/dist/dev-utils/prepare-in-place-restart.mjs.map +1 -0
- package/dist/dev-utils/prepare-in-place-restart.test.d.mts +2 -0
- package/dist/dev-utils/prepare-in-place-restart.test.d.mts.map +1 -0
- package/dist/dev-utils/prepare-in-place-restart.test.mjs +46 -0
- package/dist/dev-utils/prepare-in-place-restart.test.mjs.map +1 -0
- package/dist/telemetry/index.d.ts +12 -0
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +26 -12
- package/dist/telemetry/index.js.map +1 -1
- package/package.json +6 -6
- package/src/cli-replacement/automatic-upgrades.test.ts +68 -58
- package/src/cli-replacement/automatic-upgrades.ts +81 -59
- package/src/cli-replacement/dependency-install-classifier.mts +74 -1
- package/src/cli-replacement/dependency-install-classifier.test.mts +49 -0
- package/src/cli-replacement/dev.interception.test.mts +39 -7
- package/src/cli-replacement/dev.mts +154 -62
- package/src/cli-replacement/home-npmrc.mts +12 -4
- package/src/cli-replacement/home-npmrc.test.mts +57 -17
- package/src/cli-replacement/package-json-snapshot.mts +50 -0
- package/src/cli-replacement/package-json-snapshot.test.mts +121 -0
- package/src/dev-utils/dev-server-metrics.mts +48 -21
- package/src/dev-utils/dev-server.mts +22 -5
- package/src/dev-utils/prepare-in-place-restart.mts +99 -0
- package/src/dev-utils/prepare-in-place-restart.test.mts +69 -0
- package/src/telemetry/index.ts +24 -10
- package/tsconfig.tsbuildinfo +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -37,7 +37,7 @@ export declare function buildGlobalInstallArgs(pm: {
|
|
|
37
37
|
* agent at every call site; the env-overlay approach is uniform.
|
|
38
38
|
*/
|
|
39
39
|
export declare function buildInstallEnv(userconfigPath: string, logsDir?: string, baseEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
40
|
-
export declare function checkVersionsAndWritePackageJson(lockService: LockService, config: ApplicationConfigWithTokenConfigAndUserInfo, forceUpgrade?: boolean, skipCliUpgrade?: boolean, appDir?: string): Promise<{
|
|
40
|
+
export declare function checkVersionsAndWritePackageJson(lockService: LockService, config: ApplicationConfigWithTokenConfigAndUserInfo, forceUpgrade?: boolean, skipCliUpgrade?: boolean, appDir?: string, hasAnyRegistryConfigured?: boolean): Promise<{
|
|
41
41
|
cliUpdated: boolean;
|
|
42
42
|
upgradePromises: Promise<void>[];
|
|
43
43
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic-upgrades.d.ts","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAc7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAMvF,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"automatic-upgrades.d.ts","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAc7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAMvF,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,oBAAoB,CAAC;AAetF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE;IAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;CAAE,EACpC,WAAW,EAAE,MAAM,GAClB,MAAM,EAAE,CAQV;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE,MAAM,CAAC,UAAwB,GACvC,MAAM,CAAC,UAAU,CAcnB;AAwVD,wBAAsB,gCAAgC,CACpD,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,2CAA2C,EACnD,YAAY,GAAE,OAAe,EAC7B,cAAc,GAAE,OAAe,EAM/B,MAAM,GAAE,MAAsB,EAQ9B,wBAAwB,CAAC,EAAE,OAAO,GACjC,OAAO,CAAC;IACT,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;CAClC,CAAC,CAqSD"}
|
|
@@ -12,6 +12,7 @@ import { bucketNpmRegistryHost, recordNpmInstall, redactNpmRegistryHostsFromText
|
|
|
12
12
|
import { classifyNpmExecStderr } from "@superblocksteam/vite-plugin-file-sync/npm-error-parser";
|
|
13
13
|
import { getTracer } from "../telemetry/index.js";
|
|
14
14
|
import { getErrorMeta, getLogger } from "../telemetry/logging.js";
|
|
15
|
+
import { classifyUpgradeError, UpgradeFailed, } from "./dependency-install-classifier.mjs";
|
|
15
16
|
import { superblocksLogsPath, superblocksNpmrcPath } from "./home-npmrc.mjs";
|
|
16
17
|
import { stripUpgradedCliLockfiles } from "./post-upgrade-lockfile-strip.mjs";
|
|
17
18
|
import { getCurrentCliVersion, clearCliVersionCache, } from "./version-detection.js";
|
|
@@ -125,42 +126,41 @@ async function upgradeCliWithOclif(targetVersion) {
|
|
|
125
126
|
return false;
|
|
126
127
|
}
|
|
127
128
|
}
|
|
128
|
-
//
|
|
129
|
-
//
|
|
130
|
-
//
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
//
|
|
129
|
+
// Resolves when an install command ran and post-install validation passed.
|
|
130
|
+
// Every failure throws `UpgradeFailed` carrying a classified, non-blocking
|
|
131
|
+
// `DependencyUpgradeError` — the no-command branch, an exec failure, and a
|
|
132
|
+
// post-install version mismatch all degrade the same way. The dev.mts join
|
|
133
|
+
// routes that marker to the degrade path, so the live-edit pod keeps serving
|
|
134
|
+
// the currently installed version instead of crash-looping. The auto-upgrade
|
|
135
|
+
// is best-effort: the running version still works, so a failed upgrade is
|
|
136
|
+
// never fatal.
|
|
134
137
|
async function upgradeCliWithPackageManager(pm, targetVersion, alias, hasAnyRegistryConfigured,
|
|
135
138
|
// Directory npm should drop its per-run debug log into (the app's
|
|
136
139
|
// `.superblocks/logs`). Optional so callers/tests that don't care keep
|
|
137
140
|
// npm's default `_logs` location.
|
|
138
|
-
logsDir
|
|
141
|
+
logsDir,
|
|
142
|
+
// Currently installed version, carried into the classified error so the
|
|
143
|
+
// overlay can say "still on X; couldn't reach Y". Best-effort context.
|
|
144
|
+
currentVersion) {
|
|
139
145
|
const packageName = alias
|
|
140
146
|
? `@superblocksteam/cli@npm:${alias}@${targetVersion}`
|
|
141
147
|
: `@superblocksteam/cli@${targetVersion}`;
|
|
148
|
+
// Context shared by every classification path below: the package being
|
|
149
|
+
// upgraded plus whether a registry is configured.
|
|
150
|
+
const parseCtx = {
|
|
151
|
+
requestedPackages: [{ name: packageName }],
|
|
152
|
+
hasAnyRegistryConfigured,
|
|
153
|
+
};
|
|
154
|
+
const versions = { currentVersion, targetVersion };
|
|
142
155
|
const installArgs = buildGlobalInstallArgs({ agent: pm.agent }, packageName);
|
|
143
156
|
const installCommand = resolveCommand(pm.agent, "global", installArgs);
|
|
144
157
|
if (!installCommand) {
|
|
145
|
-
//
|
|
146
|
-
//
|
|
147
|
-
//
|
|
148
|
-
// `
|
|
149
|
-
//
|
|
150
|
-
//
|
|
151
|
-
//
|
|
152
|
-
// Emit a failure sample so the histogram carries a `runner="auto_upgrade"`
|
|
153
|
-
// failure sample for this path, then return `false` so the caller flips
|
|
154
|
-
// the `upgradeCli` span to `outcome=failure`. `durationMs` is 0 because no
|
|
155
|
-
// install process ran; `outcome="other"` mirrors the unclassified-failure
|
|
156
|
-
// fallback used by the exec/validation paths below.
|
|
157
|
-
//
|
|
158
|
-
// We deliberately do NOT throw: a rejected upgrade promise routes through
|
|
159
|
-
// `dev.mts` to `process.exit(1)`, crash-looping the live-edit pod. The
|
|
160
|
-
// no-op dev-server restart that still follows (`cliUpdated` is set
|
|
161
|
-
// unconditionally at enqueue time in `checkVersionsAndWritePackageJson`),
|
|
162
|
-
// plus degrading gracefully (continue on the current version) and
|
|
163
|
-
// surfacing the failed upgrade to the user, are tracked by APPS-4457.
|
|
158
|
+
// We couldn't build a global install command for the detected package
|
|
159
|
+
// manager, so no upgrade ran. Emit a failure sample (durationMs 0 — nothing
|
|
160
|
+
// ran) so the metric doesn't read this no-op as a success, then throw
|
|
161
|
+
// `UpgradeFailed` so the dev.mts join degrades (keep serving the current
|
|
162
|
+
// version) instead of leaving `cliUpdated=true` to trigger a pointless
|
|
163
|
+
// dev-server restart loop.
|
|
164
164
|
logger.error("Could not determine how to upgrade Superblocks packages.");
|
|
165
165
|
recordNpmInstall({
|
|
166
166
|
runner: "auto_upgrade",
|
|
@@ -169,7 +169,9 @@ logsDir) {
|
|
|
169
169
|
registryHost: undefined,
|
|
170
170
|
durationMs: 0,
|
|
171
171
|
});
|
|
172
|
-
|
|
172
|
+
throw new UpgradeFailed(classifyUpgradeError({
|
|
173
|
+
message: "Could not determine how to upgrade Superblocks packages.",
|
|
174
|
+
}, parseCtx, versions));
|
|
173
175
|
}
|
|
174
176
|
const { command, args } = installCommand;
|
|
175
177
|
logger.info(`Running ${command} ${args.join(" ")}...`);
|
|
@@ -220,10 +222,7 @@ logsDir) {
|
|
|
220
222
|
// and dropping the structured diagnostic this PR exists to guarantee.
|
|
221
223
|
const errStderr = error.stderr;
|
|
222
224
|
const stderrText = stderrBuffer || (typeof errStderr === "string" ? errStderr : "");
|
|
223
|
-
const blocked = classifyNpmExecStderr(stderrText,
|
|
224
|
-
requestedPackages: [{ name: packageName }],
|
|
225
|
-
hasAnyRegistryConfigured,
|
|
226
|
-
});
|
|
225
|
+
const blocked = classifyNpmExecStderr(stderrText, parseCtx);
|
|
227
226
|
// Surface the structured `NpmInstallBlocked.reason` (e.g.
|
|
228
227
|
// `registry_unreachable`, `registry_auth_failed`) and raw host to
|
|
229
228
|
// the install metric below; the emitter coerces both at the emit
|
|
@@ -324,7 +323,18 @@ logsDir) {
|
|
|
324
323
|
if (outcome === "success") {
|
|
325
324
|
outcome = "other";
|
|
326
325
|
}
|
|
327
|
-
|
|
326
|
+
// Both the exec failure (rejected with the raw npm error, re-thrown by
|
|
327
|
+
// `await promise`) and a post-install version mismatch land here. Classify
|
|
328
|
+
// into a non-blocking `DependencyUpgradeError` and throw the `UpgradeFailed`
|
|
329
|
+
// marker so the dev.mts join degrades instead of crash-looping. `stderrBuffer`
|
|
330
|
+
// holds the streamed npm stderr; fall back to the error's own fields when a
|
|
331
|
+
// fast-failing subprocess exited before the listener attached.
|
|
332
|
+
const e = err;
|
|
333
|
+
throw new UpgradeFailed(classifyUpgradeError({
|
|
334
|
+
stdout: e.stdout,
|
|
335
|
+
stderr: stderrBuffer || e.stderr,
|
|
336
|
+
message: e.message,
|
|
337
|
+
}, parseCtx, versions));
|
|
328
338
|
}
|
|
329
339
|
finally {
|
|
330
340
|
// Both the happy path and every throw above (exec failure → callback
|
|
@@ -343,9 +353,7 @@ logsDir) {
|
|
|
343
353
|
});
|
|
344
354
|
}
|
|
345
355
|
// Reached only when the install ran and post-install validation passed
|
|
346
|
-
// (every failure above throws).
|
|
347
|
-
// happened so it leaves the `upgradeCli` span `outcome=success`.
|
|
348
|
-
return true;
|
|
356
|
+
// (every failure above throws `UpgradeFailed`).
|
|
349
357
|
}
|
|
350
358
|
export async function checkVersionsAndWritePackageJson(lockService, config, forceUpgrade = false, skipCliUpgrade = false,
|
|
351
359
|
// App working directory, used to route the CLI-upgrade install's npm
|
|
@@ -353,7 +361,15 @@ export async function checkVersionsAndWritePackageJson(lockService, config, forc
|
|
|
353
361
|
// (the dev-server's cwd === app root) so existing callers/tests are
|
|
354
362
|
// unaffected; `dev()` passes its `cwd` explicitly for consistency with
|
|
355
363
|
// the startup install.
|
|
356
|
-
appDir = process.cwd()
|
|
364
|
+
appDir = process.cwd(),
|
|
365
|
+
// Whether the org routes installs through a configured npm registry, as a
|
|
366
|
+
// tri-state: `true` (configured/stale), `false` (deliberately none),
|
|
367
|
+
// `undefined` (couldn't resolve). The caller derives it from the same
|
|
368
|
+
// registry config the startup install classifier uses and forwards it into
|
|
369
|
+
// the CLI auto-upgrade, so a failure classifies/renders with the right
|
|
370
|
+
// guidance ("ask an org admin" vs "temporary") and records the correct
|
|
371
|
+
// `configured` install metric instead of always defaulting to `false`.
|
|
372
|
+
hasAnyRegistryConfigured) {
|
|
357
373
|
let cliUpdated = false;
|
|
358
374
|
let hasFailedToUpgrade = false;
|
|
359
375
|
const upgradePromises = [];
|
|
@@ -425,16 +441,16 @@ appDir = process.cwd()) {
|
|
|
425
441
|
hasFailedToUpgrade = true;
|
|
426
442
|
return;
|
|
427
443
|
}
|
|
428
|
-
//
|
|
429
|
-
//
|
|
430
|
-
//
|
|
431
|
-
//
|
|
432
|
-
//
|
|
433
|
-
//
|
|
434
|
-
//
|
|
435
|
-
//
|
|
436
|
-
//
|
|
437
|
-
//
|
|
444
|
+
// The auto-upgrade runs the global `npm install -g @superblocksteam/cli@...`
|
|
445
|
+
// and classifies its failures the same way the per-app install does. On
|
|
446
|
+
// any failure (network block, registry/auth/TLS error, version mismatch,
|
|
447
|
+
// or no resolvable install command) it throws the `UpgradeFailed` marker
|
|
448
|
+
// carrying a classified `DependencyUpgradeError`. The dev.mts join routes
|
|
449
|
+
// that marker to the degrade path, so the pod keeps serving the current
|
|
450
|
+
// version instead of crash-looping — the upgrade is best-effort. The
|
|
451
|
+
// early `process.exit(1)` below is reserved for genuinely-unusable cases
|
|
452
|
+
// (no package manager, an unparseable version, a corrupt package.json)
|
|
453
|
+
// that are not upgrade failures.
|
|
438
454
|
try {
|
|
439
455
|
if (!skipCliUpgrade &&
|
|
440
456
|
(cliNeedsUpgrade || forceUpgrade) &&
|
|
@@ -497,24 +513,13 @@ appDir = process.cwd()) {
|
|
|
497
513
|
}
|
|
498
514
|
else {
|
|
499
515
|
logger.info(`Falling back to package manager upgrade for CLI`);
|
|
500
|
-
|
|
516
|
+
await traceFunction({
|
|
501
517
|
name: "upgradePackageWithPackageManager - cli",
|
|
502
518
|
tracer,
|
|
503
519
|
fn: async () => {
|
|
504
|
-
|
|
520
|
+
await upgradeCliWithPackageManager(packageManager, targetVersions.cli, currentCliInfo.alias, hasAnyRegistryConfigured, superblocksLogsPath(appDir), currentCliInfo.version);
|
|
505
521
|
},
|
|
506
522
|
});
|
|
507
|
-
if (!cliUpgradeRan) {
|
|
508
|
-
// No global install command could be resolved → the CLI
|
|
509
|
-
// upgrade was a no-op (the failure metric was already
|
|
510
|
-
// emitted inline). Flip the span to `failure` so the trace
|
|
511
|
-
// is accurate, but do NOT throw: throwing routes through
|
|
512
|
-
// `dev.mts` to `process.exit(1)` and crash-loops the pod.
|
|
513
|
-
// The no-op dev-server restart that still follows
|
|
514
|
-
// (`cliUpdated = true` below), graceful degrade, and user
|
|
515
|
-
// surfacing of the failed upgrade are tracked by APPS-4457.
|
|
516
|
-
outcome = "failure";
|
|
517
|
-
}
|
|
518
523
|
}
|
|
519
524
|
// The freshly fetched tarball may ship bundled lockfiles with
|
|
520
525
|
// stale public-host `resolved` URLs; strip them so the next
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic-upgrades.js","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"automatic-upgrades.js","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import * as os from "node:os";
|
|
|
13
13
|
import * as path from "node:path";
|
|
14
14
|
import { describe, it, expect, beforeEach, vi } from "vitest";
|
|
15
15
|
import { buildGlobalInstallArgs, buildInstallEnv, checkVersionsAndWritePackageJson, } from "./automatic-upgrades.js";
|
|
16
|
+
import { UpgradeFailed } from "./dependency-install-classifier.mjs";
|
|
16
17
|
// ---------------------------------------------------------------------------
|
|
17
18
|
// Mocks
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
@@ -404,7 +405,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
404
405
|
"npm error errno ECONNREFUSED",
|
|
405
406
|
"npm error network request to https://registry.npmjs.org/@superblocksteam%2fcli failed, reason: connect ECONNREFUSED 127.0.0.1:443",
|
|
406
407
|
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
407
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
408
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
408
409
|
// The structured log line fires before the rejection so the operator
|
|
409
410
|
// sees the reason code in the crash-loop output. Reason is encoded
|
|
410
411
|
// into the message body — no meta arg is passed, because the
|
|
@@ -426,7 +427,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
426
427
|
"npm error code E401",
|
|
427
428
|
"npm error 401 Unauthorized - GET https://npm.private.example.com/@superblocksteam%2fcli",
|
|
428
429
|
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
429
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
430
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
430
431
|
expect(loggerMock.error).toHaveBeenCalledWith(expect.stringMatching(/\[npm-install-blocked\] reason=registry_auth_failed/));
|
|
431
432
|
});
|
|
432
433
|
it("APPS-4381: buckets a private registry host so the structured registryHost facet is `private`, not the raw hostname", async () => {
|
|
@@ -450,7 +451,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
450
451
|
"npm error code E401",
|
|
451
452
|
`npm error 401 Unauthorized - GET https://${privateHost}/@superblocksteam%2fcli`,
|
|
452
453
|
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
453
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
454
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
454
455
|
const blockedCall = loggerMock.error.mock.calls.find((c) => typeof c[0] === "string" && c[0].includes("[npm-install-blocked]"));
|
|
455
456
|
expect(blockedCall).toBeDefined();
|
|
456
457
|
const message = blockedCall[0];
|
|
@@ -467,7 +468,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
467
468
|
"npm error code ECONNREFUSED",
|
|
468
469
|
"npm error network request to https://registry.npmjs.org/@superblocksteam%2fcli failed",
|
|
469
470
|
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
470
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
471
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
471
472
|
const blockedCall = loggerMock.error.mock.calls.find((c) => typeof c[0] === "string" && c[0].includes("[npm-install-blocked]"));
|
|
472
473
|
expect(blockedCall).toBeDefined();
|
|
473
474
|
expect(blockedCall[0]).toMatch(/registryHost=public_npm(\s|$)/);
|
|
@@ -501,7 +502,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
501
502
|
`npm error 401 Unauthorized - GET https://${privateHost}:4873/@superblocksteam%2fcli`,
|
|
502
503
|
`npm error request to https://${privateHost}/foo failed, reason: getaddrinfo ENOTFOUND ${privateHost}`,
|
|
503
504
|
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
504
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
505
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
505
506
|
const blockedCall = loggerMock.error.mock.calls.find((c) => typeof c[0] === "string" && c[0].includes("[npm-install-blocked]"));
|
|
506
507
|
expect(blockedCall).toBeDefined();
|
|
507
508
|
// Stringify the entire call tuple so we catch the host whether it
|
|
@@ -528,7 +529,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
528
529
|
"npm error code E404",
|
|
529
530
|
"npm error 404 Not Found - GET https://npm.private.example.com/@superblocksteam%2fcli - Not found",
|
|
530
531
|
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
531
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
532
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
532
533
|
expect(loggerMock.error).toHaveBeenCalledWith(expect.stringMatching(/\[npm-install-blocked\] reason=not_in_registry/));
|
|
533
534
|
});
|
|
534
535
|
it("APPS-4324: falls through to the existing generic error path for ERESOLVE (no false-positive)", async () => {
|
|
@@ -536,7 +537,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
536
537
|
"npm error code ERESOLVE",
|
|
537
538
|
"npm error ERESOLVE unable to resolve dependency tree",
|
|
538
539
|
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
539
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
540
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
540
541
|
// The classifier returns null for ERESOLVE — no structured log fires.
|
|
541
542
|
expect(loggerMock.error).not.toHaveBeenCalledWith(expect.stringContaining("[npm-install-blocked]"));
|
|
542
543
|
// The existing generic per-failure log still fires so the operator
|
|
@@ -558,7 +559,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
558
559
|
"npm error network request to https://registry.npmjs.org/foo failed",
|
|
559
560
|
].join("\n"),
|
|
560
561
|
});
|
|
561
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
562
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
562
563
|
expect(loggerMock.error).toHaveBeenCalledWith(expect.stringMatching(/\[npm-install-blocked\] reason=registry_unreachable/));
|
|
563
564
|
});
|
|
564
565
|
it("APPS-4324: accumulates stderr across multiple chunks before classifying", async () => {
|
|
@@ -571,7 +572,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
571
572
|
"npm error code ECONNR",
|
|
572
573
|
"EFUSED\nnpm error network request to https://registry.npmjs.org/foo failed",
|
|
573
574
|
], new Error("Command failed: pnpm install ..."));
|
|
574
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
575
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
575
576
|
expect(loggerMock.error).toHaveBeenCalledWith(expect.stringMatching(/\[npm-install-blocked\] reason=registry_unreachable/));
|
|
576
577
|
});
|
|
577
578
|
// -----------------------------------------------------------------
|
|
@@ -639,7 +640,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
639
640
|
"npm error errno ECONNREFUSED",
|
|
640
641
|
"npm error network request to https://registry.npmjs.org/@superblocksteam%2fcli failed, reason: connect ECONNREFUSED 127.0.0.1:443",
|
|
641
642
|
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
642
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
643
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
643
644
|
expect(recordNpmInstallMock).toHaveBeenCalledTimes(1);
|
|
644
645
|
const args = recordNpmInstallMock.mock.calls[0][0];
|
|
645
646
|
expect(args.runner).toBe("auto_upgrade");
|
|
@@ -661,7 +662,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
661
662
|
"npm error code E401",
|
|
662
663
|
`npm error 401 Unauthorized - GET https://${privateHost}/@superblocksteam%2fcli`,
|
|
663
664
|
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
664
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
665
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
665
666
|
expect(recordNpmInstallMock).toHaveBeenCalledTimes(1);
|
|
666
667
|
const args = recordNpmInstallMock.mock.calls[0][0];
|
|
667
668
|
expect(args.runner).toBe("auto_upgrade");
|
|
@@ -673,12 +674,37 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
673
674
|
// that the upgrade path actually feeds the host in.
|
|
674
675
|
expect(args.registryHost).toBe(privateHost);
|
|
675
676
|
});
|
|
677
|
+
it("threads hasAnyRegistryConfigured into the classified error and the metric so private-registry upgrade failures get the admin guidance, not the public-npm copy", async () => {
|
|
678
|
+
// E404 against a private host = the org has a registry configured but it
|
|
679
|
+
// can't serve the target version. The caller derives
|
|
680
|
+
// hasAnyRegistryConfigured=true and forwards it here; without the
|
|
681
|
+
// threading both the overlay copy and the metric would wrongly read
|
|
682
|
+
// "no registry configured".
|
|
683
|
+
await mockNpmFallbackExec([
|
|
684
|
+
"npm error code E404",
|
|
685
|
+
"npm error 404 Not Found - GET https://npm.private.example.com/@superblocksteam%2fcli - Not found",
|
|
686
|
+
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
687
|
+
const result = await checkVersionsAndWritePackageJson(mockLockService, mockConfig, false, false,
|
|
688
|
+
// appDir omitted (defaults to process.cwd()); pass the registry
|
|
689
|
+
// tri-state in the new trailing position.
|
|
690
|
+
undefined, true);
|
|
691
|
+
const err = await Promise.all(result.upgradePromises).catch((e) => e);
|
|
692
|
+
// The classified error drives the overlay copy: true → "ask an org
|
|
693
|
+
// admin to add the version to your registry".
|
|
694
|
+
expect(err).toBeInstanceOf(UpgradeFailed);
|
|
695
|
+
expect(err.serverError.category).toBe("not_in_registry");
|
|
696
|
+
expect(err.serverError.hasAnyRegistryConfigured).toBe(true);
|
|
697
|
+
// The same signal lands on the install metric so `auto_upgrade`
|
|
698
|
+
// failures attribute to the configured-registry bucket.
|
|
699
|
+
expect(recordNpmInstallMock).toHaveBeenCalledTimes(1);
|
|
700
|
+
expect(recordNpmInstallMock.mock.calls[0][0].configured).toBe(true);
|
|
701
|
+
});
|
|
676
702
|
it("APPS-4544: emits outcome=other for an unclassified failure (ERESOLVE) so the metric reflects the failure even without a NpmInstallBlocked match", async () => {
|
|
677
703
|
await mockNpmFallbackExec([
|
|
678
704
|
"npm error code ERESOLVE",
|
|
679
705
|
"npm error ERESOLVE unable to resolve dependency tree",
|
|
680
706
|
].join("\n"), new Error("Command failed: pnpm install ..."));
|
|
681
|
-
await expect(runAndAwaitUpgrade()).rejects.toThrow(
|
|
707
|
+
await expect(runAndAwaitUpgrade()).rejects.toThrow(UpgradeFailed);
|
|
682
708
|
expect(recordNpmInstallMock).toHaveBeenCalledTimes(1);
|
|
683
709
|
const args = recordNpmInstallMock.mock.calls[0][0];
|
|
684
710
|
expect(args.runner).toBe("auto_upgrade");
|
|
@@ -730,7 +756,7 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
730
756
|
const result = await checkVersionsAndWritePackageJson(mockLockService, mockConfig, false, false);
|
|
731
757
|
// The validation failure rejects the upgrade promise (so dev.mts
|
|
732
758
|
// won't restart into a stale CLI)...
|
|
733
|
-
await expect(Promise.all(result.upgradePromises)).rejects.toThrow(
|
|
759
|
+
await expect(Promise.all(result.upgradePromises)).rejects.toThrow(UpgradeFailed);
|
|
734
760
|
// ...and the metric still fires exactly once, flipped to `other`.
|
|
735
761
|
expect(recordNpmInstallMock).toHaveBeenCalledTimes(1);
|
|
736
762
|
const args = recordNpmInstallMock.mock.calls[0][0];
|
|
@@ -861,23 +887,18 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
861
887
|
// The pkg-manager fallback rejects the upgrade promise; capture
|
|
862
888
|
// it so the test doesn't surface as an unhandled rejection,
|
|
863
889
|
// then assert on the span attribute the `catch` set.
|
|
864
|
-
await expect(Promise.all(result.upgradePromises)).rejects.toThrow(
|
|
890
|
+
await expect(Promise.all(result.upgradePromises)).rejects.toThrow(UpgradeFailed);
|
|
865
891
|
expect(spanSetAttributeMock).toHaveBeenCalledWith("outcome", "failure");
|
|
866
892
|
});
|
|
867
|
-
//
|
|
868
|
-
//
|
|
869
|
-
//
|
|
870
|
-
//
|
|
871
|
-
//
|
|
872
|
-
//
|
|
873
|
-
//
|
|
874
|
-
//
|
|
875
|
-
|
|
876
|
-
// routes through `dev.mts` to `process.exit(1)` and crash-loops the
|
|
877
|
-
// live-edit pod. The no-op dev-server restart that still follows, graceful
|
|
878
|
-
// degrade, and user surfacing of the failed upgrade are tracked by
|
|
879
|
-
// APPS-4457, so this test asserts the promise RESOLVES.
|
|
880
|
-
it("APPS-4544: emits outcome=other and fails the span (without throwing) when no global install command can be resolved", async () => {
|
|
893
|
+
// When the detected package manager can't be turned into a global install
|
|
894
|
+
// command, `resolveCommand` returns undefined. It still emits a
|
|
895
|
+
// `runner=auto_upgrade` failure sample and flips the `upgradeCli` span to
|
|
896
|
+
// `outcome=failure` so the no-op stays visible in metrics and traces, and
|
|
897
|
+
// it throws `UpgradeFailed` so the upgrade promise REJECTS. The dev.mts
|
|
898
|
+
// join routes that marker to the degrade path (keep serving the current
|
|
899
|
+
// version) — NOT `process.exit(1)` — and the rejection also stops the
|
|
900
|
+
// `cliUpdated=true` enqueue from triggering a pointless restart loop.
|
|
901
|
+
it("emits outcome=other, fails the span, and rejects with UpgradeFailed when no global install command can be resolved", async () => {
|
|
881
902
|
const { exec } = await import("node:child_process");
|
|
882
903
|
const execMock = vi.mocked(exec);
|
|
883
904
|
execMock.mockImplementation(((cmd, ...rest) => {
|
|
@@ -905,11 +926,11 @@ describe("checkVersionsAndWritePackageJson", () => {
|
|
|
905
926
|
const { resolveCommand } = await import("package-manager-detector");
|
|
906
927
|
vi.mocked(resolveCommand).mockReturnValueOnce(undefined);
|
|
907
928
|
const result = await checkVersionsAndWritePackageJson(mockLockService, mockConfig, false, false);
|
|
908
|
-
// The upgrade promise must
|
|
909
|
-
//
|
|
910
|
-
//
|
|
911
|
-
// degrade
|
|
912
|
-
await expect(Promise.all(result.upgradePromises)).
|
|
929
|
+
// The upgrade promise must REJECT with the `UpgradeFailed` marker so the
|
|
930
|
+
// dev.mts join degrades (keep serving the current version) instead of
|
|
931
|
+
// restarting on the no-op. `handleStartupError` maps the marker to
|
|
932
|
+
// "degrade", so this rejection never reaches `process.exit(1)`.
|
|
933
|
+
await expect(Promise.all(result.upgradePromises)).rejects.toBeInstanceOf(UpgradeFailed);
|
|
913
934
|
// A failure sample is still recorded for the auto_upgrade runner so the
|
|
914
935
|
// metric isn't silently missing for this path.
|
|
915
936
|
expect(recordNpmInstallMock).toHaveBeenCalledTimes(1);
|