doc-detective 4.29.0 → 4.29.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.
package/dist/cli.js CHANGED
@@ -136,45 +136,66 @@ async function runTestsHandler(args) {
136
136
  // loops, and by Docker images), and process.env.CI (CI environments
137
137
  // should pin their version explicitly — surprise updates in CI are bad).
138
138
  //
139
- // The `if` condition itself is exercised offline (every combination of the
140
- // three guards short-circuiting false see the "cli.ts runTestsHandler
141
- // branches" describe in test/cli-index-adapters-coverage.test.js, including
142
- // a dedicated case that reaches the third (`!process.env.CI`) term). Only
143
- // the block BODY needs a real network/exec dependency: `checkForUpdate`
144
- // hits a real npm/GitHub registry, and `selfUpdate` re-execs the process via
145
- // `process.exit` on a newer version. Neither has an injectable seam at this
146
- // call site (the seam is one level down, in runtime/selfUpdate.ts's own
147
- // exported functions, which are network/exec bound themselves) — forcing it
148
- // here would either hit a real registry or replace the body with a no-op
149
- // stub that proves nothing beyond "the dynamic import resolved". See
150
- // runtime/selfUpdate.ts for that module's own (separately covered) tests.
139
+ // The registry check (`checkForUpdate`, up to a 3s round-trip) is STARTED
140
+ // here but not awaited: it runs concurrently with input detection /
141
+ // resolution (which execute no tests) so its latency is hidden behind work
142
+ // that has to happen anyway. `updateJoin` is handed to runTests, which awaits
143
+ // it AFTER resolution but BEFORE the first test (or any dry-run output) so
144
+ // `selfUpdate` still re-execs the process before the run, preserving the
145
+ // "update before the run" guarantee (ADR 01063). Only the deferred decision
146
+ // (re-exec on a newer version) is joined; the check itself already overlapped.
147
+ //
148
+ // The `if` condition is exercised offline (every combination of the three
149
+ // guards short-circuiting false see the "cli.ts runTestsHandler branches"
150
+ // describe in test/cli-index-adapters-coverage.test.js). Only the block BODY
151
+ // needs a real network/exec dependency: `checkForUpdate` hits a real npm
152
+ // registry and `selfUpdate` re-execs the process via `process.exit` on a
153
+ // newer version. Neither has an injectable seam at this call site (the seam
154
+ // is one level down, in runtime/selfUpdate.ts's own exported functions, which
155
+ // are network/exec bound themselves). See runtime/selfUpdate.ts for that
156
+ // module's own (separately covered) tests. The join-inside-runTests seam is
157
+ // covered directly in test/cli-index-adapters-coverage.test.js.
158
+ let updateJoin;
151
159
  if (config.autoUpdate !== false &&
152
160
  !process.env.DOC_DETECTIVE_SKIP_AUTO_UPDATE &&
153
161
  !process.env.CI) {
154
162
  /* c8 ignore start - self-update: real registry HTTP + real process re-exec via process.exit; no injectable seam at this call site (see comment above) */
155
- try {
156
- const { checkForUpdate, detectInstallMode, selfUpdate } = await import("./runtime/selfUpdate.js");
157
- const currentVersion = cliRequire("../package.json").version;
158
- // Route the self-update module's logs through the CLI's existing
159
- // log() helper so config.logLevel is respected (transient registry
160
- // failures should not flood stdout at the default level). Map
161
- // "warn" "warning" since core/utils.ts uses the latter.
162
- const cliLogger = (msg, level = "info") => {
163
- const mapped = level === "warn" ? "warning" : level;
164
- log(msg, mapped, config);
165
- };
166
- const { latest, newer } = await checkForUpdate(currentVersion, {
167
- logger: cliLogger,
168
- });
169
- if (newer && latest) {
170
- await selfUpdate(latest, detectInstallMode(), { logger: cliLogger });
163
+ // Route the self-update module's logs through the CLI's existing log()
164
+ // helper so config.logLevel is respected. Map "warn" "warning".
165
+ const cliLogger = (msg, level = "info") => {
166
+ const mapped = level === "warn" ? "warning" : level;
167
+ log(msg, mapped, config);
168
+ };
169
+ const currentVersion = cliRequire("../package.json").version;
170
+ // Kick off the registry check now, concurrently with the detection /
171
+ // resolution work that runTests is about to do. Self-contained error
172
+ // handling so a rejected promise never becomes an unhandled rejection.
173
+ const updateCheck = (async () => {
174
+ try {
175
+ const { checkForUpdate } = await import("./runtime/selfUpdate.js");
176
+ return await checkForUpdate(currentVersion, { logger: cliLogger });
171
177
  }
172
- }
173
- catch (err) {
174
- log(`Self-update check skipped: ${String(err)}`, "debug", config);
175
- }
178
+ catch (err) {
179
+ log(`Self-update check skipped: ${String(err)}`, "debug", config);
180
+ return { latest: null, newer: false };
181
+ }
182
+ })();
183
+ // Deferred join: awaited by runTests once resolution is done and before the
184
+ // first test. On a newer version, selfUpdate re-execs (process.exit) here.
185
+ updateJoin = async () => {
186
+ try {
187
+ const { latest, newer } = await updateCheck;
188
+ if (newer && latest) {
189
+ const { detectInstallMode, selfUpdate } = await import("./runtime/selfUpdate.js");
190
+ await selfUpdate(latest, detectInstallMode(), { logger: cliLogger });
191
+ }
192
+ }
193
+ catch (err) {
194
+ log(`Self-update check skipped: ${String(err)}`, "debug", config);
195
+ }
196
+ };
197
+ /* c8 ignore stop */
176
198
  }
177
- /* c8 ignore stop */
178
199
  // Check for DOC_DETECTIVE_API environment variable
179
200
  const api = await getResolvedTestsFromEnv(config);
180
201
  const resolvedTests = api?.resolvedTests || null;
@@ -182,8 +203,8 @@ async function runTestsHandler(args) {
182
203
  // Run tests
183
204
  const output = config.output;
184
205
  const results = resolvedTests
185
- ? await runTests(config, { resolvedTests })
186
- : await runTests(config);
206
+ ? await runTests(config, { resolvedTests, updateJoin })
207
+ : await runTests(config, { updateJoin });
187
208
  // Dry-run already emitted the resolved-tests JSON inside runTests().
188
209
  // Skip both reporters (which assume executed-result shape) and the
189
210
  // orchestration-API report-back path.
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}