@page-scanner/cli 0.2.0 → 0.2.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.
Files changed (49) hide show
  1. package/README.md +6 -1
  2. package/dist/bin.js +1 -1
  3. package/dist/cli/args.d.ts +9 -3
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +35 -0
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/commands.d.ts.map +1 -1
  8. package/dist/cli/commands.js +27 -0
  9. package/dist/cli/commands.js.map +1 -1
  10. package/dist/cli/format.d.ts +1 -1
  11. package/dist/daemon/client.d.ts +32 -2
  12. package/dist/daemon/client.d.ts.map +1 -1
  13. package/dist/daemon/client.js +63 -8
  14. package/dist/daemon/client.js.map +1 -1
  15. package/dist/daemon/rpc-server.js +2 -2
  16. package/dist/daemon/run.d.ts +6 -0
  17. package/dist/daemon/run.d.ts.map +1 -1
  18. package/dist/daemon/run.js +12 -6
  19. package/dist/daemon/run.js.map +1 -1
  20. package/dist/daemon/self.d.ts +20 -0
  21. package/dist/daemon/self.d.ts.map +1 -1
  22. package/dist/daemon/self.js +22 -0
  23. package/dist/daemon/self.js.map +1 -1
  24. package/dist/daemon/state.js +1 -1
  25. package/dist/daemon/state.js.map +1 -1
  26. package/dist/diff/image.js +1 -1
  27. package/dist/diff/image.js.map +1 -1
  28. package/dist/diff/png.d.ts +1 -1
  29. package/dist/diff/png.d.ts.map +1 -1
  30. package/dist/diff/png.js +4 -4
  31. package/dist/diff/png.js.map +1 -1
  32. package/dist/diff/text.js +4 -4
  33. package/dist/errors.d.ts +1 -1
  34. package/dist/errors.js +1 -1
  35. package/dist/index.d.ts +2 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/output.d.ts +24 -0
  40. package/dist/output.d.ts.map +1 -1
  41. package/dist/output.js +45 -2
  42. package/dist/output.js.map +1 -1
  43. package/dist/verify.d.ts +31 -0
  44. package/dist/verify.d.ts.map +1 -0
  45. package/dist/verify.js +115 -0
  46. package/dist/verify.js.map +1 -0
  47. package/dist/version.d.ts +1 -1
  48. package/dist/version.js +1 -1
  49. package/package.json +1 -1
package/README.md CHANGED
@@ -82,6 +82,7 @@ page-scanner scan (--url <u>... | --urls <file|-> | --tab <id>) [--window <i
82
82
  [--page-width window|a4|letter] [--open-editor]
83
83
  [--out <file|dir>] [--wait <s>=30] [--timeout <s>=120] [--json]
84
84
  page-scanner diff <old> <new> [--out <file>] [--json]
85
+ page-scanner verify <file> [--record <file.integrity.json>] [--json]
85
86
  page-scanner serve [--daemon] [--idle <min>]
86
87
  page-scanner stop
87
88
  page-scanner --version | --help
@@ -132,6 +133,10 @@ Markdown files (or two PDFs with the `.md` beside them) a passage at a time, pri
132
133
  prints it, or two PNGs pixel by pixel, writing the newer one with the changed regions outlined. It
133
134
  exits 0 when nothing changed and 1 when something did.
134
135
 
136
+ `page-scanner verify <file>` checks a file against the integrity record the extension wrote beside
137
+ it: the SHA-256 and size, and the signature when there is one. It exits 0 when both hold and 1 when
138
+ either does not.
139
+
135
140
  There is no scheduler here: cron, launchd and Task Scheduler run the command at a time. Start the
136
141
  daemon at login with `page-scanner serve --daemon --idle 0` so the extension is connected when the
137
142
  schedule fires. The documentation has an example for each.
@@ -267,6 +272,6 @@ the only one that pulls the WebSocket server in.
267
272
  240,000, and a scan from here follows it.
268
273
  - One pairing per machine, shared by every browser profile that connects to it.
269
274
 
270
- ## Licence
275
+ ## License
271
276
 
272
277
  Apache-2.0. See [LICENSE](LICENSE).
package/dist/bin.js CHANGED
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * The `page-scanner` command. Argument parsing, dispatch, exit code.
4
4
  *
5
- * Everything else lives behind `runCommand`, so the same behaviour is
5
+ * Everything else lives behind `runCommand`, so the same behavior is
6
6
  * reachable from `import { scan } from '@page-scanner/cli'` without a process.
7
7
  */
8
8
  import { parseArgs } from './cli/args.js';
@@ -1,5 +1,5 @@
1
1
  import { type ExportFormatId, type PageSizeId, type CaptureWidth, type ColorSchemePreference, type VideoHandling } from '../protocol.js';
2
- export declare const COMMANDS: readonly ["pair", "status", "browsers", "tabs", "scan", "diff", "serve", "stop", "help", "version"];
2
+ export declare const COMMANDS: readonly ["pair", "status", "browsers", "tabs", "scan", "diff", "verify", "serve", "stop", "help", "version"];
3
3
  export type CommandName = (typeof COMMANDS)[number];
4
4
  export interface PairArgs {
5
5
  command: 'pair';
@@ -55,6 +55,12 @@ export interface DiffArgs {
55
55
  out?: string;
56
56
  json: boolean;
57
57
  }
58
+ export interface VerifyArgs {
59
+ command: 'verify';
60
+ file: string;
61
+ record?: string;
62
+ json: boolean;
63
+ }
58
64
  export interface ServeArgs {
59
65
  command: 'serve';
60
66
  daemon: boolean;
@@ -70,8 +76,8 @@ export interface HelpArgs {
70
76
  export interface VersionArgs {
71
77
  command: 'version';
72
78
  }
73
- export type ParsedArgs = PairArgs | StatusArgs | BrowsersArgs | TabsArgs | ScanArgs | DiffArgs | ServeArgs | StopArgs | HelpArgs | VersionArgs;
74
- export declare const USAGE = "page-scanner - capture a whole web page from the command line,\nthrough the Page Scanner Chrome extension.\n\nUsage:\n page-scanner pair [--port <n>] [--rotate] [--wait <s>=120] [--no-wait]\n [--json]\n page-scanner status [--json]\n page-scanner browsers [--json]\n page-scanner tabs [--browser <id|label>] [--wait <s>=30] [--json]\n page-scanner scan (--url <u>... | --urls <file|-> | --tab <id>)\n [--window <id>] [--name <template>]\n [--markdown beside|only]\n [--browser <id|label>] [--format pdf|png|jpeg=pdf]\n [--page-size auto|a4|letter=a4] [--quality <0-1>]\n [--video frame|blank] [--scheme auto|light|dark]\n [--page-width window|a4|letter] [--open-editor]\n [--out <file|dir>] [--wait <s>=30]\n [--timeout <s>=120]\n [--json]\n page-scanner diff <old> <new> [--out <file>] [--json]\n page-scanner serve [--daemon] [--idle <min>]\n page-scanner stop [--json]\n page-scanner --version | --help (-v and -h also work)\n\nCommands:\n pair Write the port and token the browser needs, then wait for it.\n status Say whether there is a pairing, a daemon and a browser.\n browsers List the browsers connected right now.\n tabs List one browser's windows and tabs.\n scan Capture a page, or a list of them, and write each to a file.\n diff Say what changed between two captures of a page.\n serve Run the bridge in this terminal, or start it in the background.\n stop Stop the background bridge.\n\n--scheme picks which of a page's two themes to capture. The default, auto,\nis the one the browser is set to, in the PDF as well as the preview: Chrome\nprints every page light unless it is told otherwise.\n\n--page-width lays the page out at the width of a sheet before capturing it,\nthe way a narrow window would, so the PDF prints at 1:1 instead of being\nscaled down. A 1280 px window on A4 is scaled to 55 %, which puts 16 px\nbody text at 6.5 pt; --page-width a4 puts it at 12.\n\n--url can be given more than once, and --urls reads a file of addresses,\none to a line (# starts a comment, - reads standard input). A list is\nscanned one page at a time into --out, which is then a directory; a page\nthat fails is reported and the next one scanned, and the exit code is 1\nif any failed. Schedule it with cron, launchd or Task Scheduler.\n\n--name sets the file name inside --out: {n} (the page's place in the\nlist), {host}, {name} (the name the browser suggests), {date} and {time}\n(when the run started), {ext}. A / makes a subdirectory. Without it, a\nfile takes the browser's name, with -2, -3 when two pages share one.\n\n--markdown writes the page's text as Markdown: beside puts a .md next to\nthe file, only writes the .md alone. The headings, title and language come\nback in --json as \"page\".\n\ndiff compares two Markdown files (from --markdown) a passage at a time,\nprinting what diff -u prints, or two PNGs pixel by pixel, writing the newer\none with the changed regions outlined (--out, or <new>.diff.png). A PDF is\ncompared by the .md beside it. It exits 0 when nothing changed and 1 when\nsomething did, the way diff does.\n\n--browser takes a browserId or a label, matched without regard to case, and\nis needed only when more than one browser is connected. --wait 0 means do\nnot wait at all. --json prints one JSON document on stdout, on success and\non failure alike.\n\nExit codes:\n 0 success\n 1 the browser was reached and the work failed\n 2 the arguments were wrong\n 3 no usable browser: none connected, several connected, or the one\n named is not\n 4 not paired: run `page-scanner pair`\n 5 the daemon would not start\n";
79
+ export type ParsedArgs = PairArgs | StatusArgs | BrowsersArgs | TabsArgs | ScanArgs | DiffArgs | VerifyArgs | ServeArgs | StopArgs | HelpArgs | VersionArgs;
80
+ export declare const USAGE = "page-scanner - capture a whole web page from the command line,\nthrough the Page Scanner Chrome extension.\n\nUsage:\n page-scanner pair [--port <n>] [--rotate] [--wait <s>=120] [--no-wait]\n [--json]\n page-scanner status [--json]\n page-scanner browsers [--json]\n page-scanner tabs [--browser <id|label>] [--wait <s>=30] [--json]\n page-scanner scan (--url <u>... | --urls <file|-> | --tab <id>)\n [--window <id>] [--name <template>]\n [--markdown beside|only]\n [--browser <id|label>] [--format pdf|png|jpeg=pdf]\n [--page-size auto|a4|letter=a4] [--quality <0-1>]\n [--video frame|blank] [--scheme auto|light|dark]\n [--page-width window|a4|letter] [--open-editor]\n [--out <file|dir>] [--wait <s>=30]\n [--timeout <s>=120]\n [--json]\n page-scanner diff <old> <new> [--out <file>] [--json]\n page-scanner verify <file> [--record <file.integrity.json>] [--json]\n page-scanner serve [--daemon] [--idle <min>]\n page-scanner stop [--json]\n page-scanner --version | --help (-v and -h also work)\n\nCommands:\n pair Write the port and token the browser needs, then wait for it.\n status Say whether there is a pairing, a daemon and a browser.\n browsers List the browsers connected right now.\n tabs List one browser's windows and tabs.\n scan Capture a page, or a list of them, and write each to a file.\n diff Say what changed between two captures of a page.\n verify Check a file against the integrity record exported beside it.\n serve Run the bridge in this terminal, or start it in the background.\n stop Stop the background bridge.\n\n--scheme picks which of a page's two themes to capture. The default, auto,\nis the one the browser is set to, in the PDF as well as the preview: Chrome\nprints every page light unless it is told otherwise.\n\n--page-width lays the page out at the width of a sheet before capturing it,\nthe way a narrow window would, so the PDF prints at 1:1 instead of being\nscaled down. A 1280 px window on A4 is scaled to 55 %, which puts 16 px\nbody text at 6.5 pt; --page-width a4 puts it at 12.\n\n--url can be given more than once, and --urls reads a file of addresses,\none to a line (# starts a comment, - reads standard input). A list is\nscanned one page at a time into --out, which is then a directory; a page\nthat fails is reported and the next one scanned, and the exit code is 1\nif any failed. Schedule it with cron, launchd or Task Scheduler.\n\n--name sets the file name inside --out: {n} (the page's place in the\nlist), {host}, {name} (the name the browser suggests), {date} and {time}\n(when the run started), {ext}. A / makes a subdirectory. Without it, a\nfile takes the browser's name, with -2, -3 when two pages share one.\n\n--markdown writes the page's text as Markdown: beside puts a .md next to\nthe file, only writes the .md alone. The headings, title and language come\nback in --json as \"page\".\n\ndiff compares two Markdown files (from --markdown) a passage at a time,\nprinting what diff -u prints, or two PNGs pixel by pixel, writing the newer\none with the changed regions outlined (--out, or <new>.diff.png). A PDF is\ncompared by the .md beside it. It exits 0 when nothing changed and 1 when\nsomething did, the way diff does.\n\nverify checks a file's SHA-256 against the record the extension wrote\nbeside it (<file>.integrity.json unless --record names another) and, when\nthe record is signed, the signature. It exits 0 when both hold and 1 when\neither does not. It says nothing about the time, which is the capturing\ncomputer's clock.\n\n--browser takes a browserId or a label, matched without regard to case, and\nis needed only when more than one browser is connected. --wait 0 means do\nnot wait at all. --json prints one JSON document on stdout, on success and\non failure alike.\n\nExit codes:\n 0 success\n 1 the browser was reached and the work failed\n 2 the arguments were wrong\n 3 no usable browser: none connected, several connected, or the one\n named is not\n 4 not paired: run `page-scanner pair`\n 5 the daemon would not start\n";
75
81
  /**
76
82
  * `argv` is what follows the node executable and the script, i.e.
77
83
  * `process.argv.slice(2)`.
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
package/dist/cli/args.js CHANGED
@@ -21,6 +21,7 @@ export const COMMANDS = [
21
21
  'tabs',
22
22
  'scan',
23
23
  'diff',
24
+ 'verify',
24
25
  'serve',
25
26
  'stop',
26
27
  'help',
@@ -51,6 +52,7 @@ Usage:
51
52
  [--timeout <s>=${SCAN_TIMEOUT_SECONDS}]
52
53
  [--json]
53
54
  page-scanner diff <old> <new> [--out <file>] [--json]
55
+ page-scanner verify <file> [--record <file.integrity.json>] [--json]
54
56
  page-scanner serve [--daemon] [--idle <min>]
55
57
  page-scanner stop [--json]
56
58
  page-scanner --version | --help (-v and -h also work)
@@ -62,6 +64,7 @@ Commands:
62
64
  tabs List one browser's windows and tabs.
63
65
  scan Capture a page, or a list of them, and write each to a file.
64
66
  diff Say what changed between two captures of a page.
67
+ verify Check a file against the integrity record exported beside it.
65
68
  serve Run the bridge in this terminal, or start it in the background.
66
69
  stop Stop the background bridge.
67
70
 
@@ -95,6 +98,12 @@ one with the changed regions outlined (--out, or <new>.diff.png). A PDF is
95
98
  compared by the .md beside it. It exits 0 when nothing changed and 1 when
96
99
  something did, the way diff does.
97
100
 
101
+ verify checks a file's SHA-256 against the record the extension wrote
102
+ beside it (<file>.integrity.json unless --record names another) and, when
103
+ the record is signed, the signature. It exits 0 when both hold and 1 when
104
+ either does not. It says nothing about the time, which is the capturing
105
+ computer's clock.
106
+
98
107
  --browser takes a browserId or a label, matched without regard to case, and
99
108
  is needed only when more than one browser is connected. --wait 0 means do
100
109
  not wait at all. --json prints one JSON document on stdout, on success and
@@ -384,6 +393,30 @@ function parseDiff(argv) {
384
393
  json: values.json === true,
385
394
  };
386
395
  }
396
+ function parseVerify(argv) {
397
+ const { values, positionals } = readOptions(() => parseNodeArgs({
398
+ args: argv,
399
+ strict: true,
400
+ allowPositionals: true,
401
+ options: {
402
+ help: { type: 'boolean', short: 'h' },
403
+ record: { type: 'string' },
404
+ json: { type: 'boolean' },
405
+ },
406
+ }));
407
+ if (wantsHelp(values))
408
+ return { command: 'help' };
409
+ const [file, ...rest] = positionals;
410
+ if (file === undefined || rest.length > 0) {
411
+ throw badRequest(`verify takes one file (got ${positionals.length}).`, 'For example: page-scanner verify terms.pdf');
412
+ }
413
+ return {
414
+ command: 'verify',
415
+ file: requireText('<file>', file),
416
+ record: optionalText('--record', values.record),
417
+ json: values.json === true,
418
+ };
419
+ }
387
420
  function parseServe(argv) {
388
421
  const { values } = readOptions(() => parseNodeArgs({
389
422
  args: argv,
@@ -459,6 +492,8 @@ export function parseArgs(argv) {
459
492
  return parseScan(rest);
460
493
  case 'diff':
461
494
  return parseDiff(rest);
495
+ case 'verify':
496
+ return parseVerify(rest);
462
497
  case 'serve':
463
498
  return parseServe(rest);
464
499
  case 'stop':
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,WAAW,CAAC;AAItD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAqOD,iEAAiE;AACjE,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAkJnF"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,WAAW,CAAC;AAItD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAkQD,iEAAiE;AACjE,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CA4JnF"}
@@ -19,6 +19,7 @@ import { listBrowsers, listTabs, pair, scan, scanMany, checkBatch, checkOutput,
19
19
  import { CONNECT_HINT, PAIR_COMMAND, PageScannerError, exitCodeFor, toPageScannerError, } from '../errors.js';
20
20
  import { readUrlList } from '../batch.js';
21
21
  import { diffCaptures } from '../diff/index.js';
22
+ import { verifyCapture } from '../verify.js';
22
23
  import { formatBrowsers, formatDuration, formatTabs, formatTruncation } from './format.js';
23
24
  import { USAGE } from './args.js';
24
25
  import { CLI_VERSION } from '../version.js';
@@ -180,6 +181,30 @@ function reportDiff(io, result, useJson) {
180
181
  : ''));
181
182
  return code;
182
183
  }
184
+ /** What `verify` found, a line per question, on stdout; exit 1 when either answer is no. */
185
+ function reportVerify(io, result, useJson) {
186
+ const code = result.verified ? 0 : 1;
187
+ if (useJson) {
188
+ json(io, { ok: true, ...result });
189
+ return code;
190
+ }
191
+ line(io, result.file.matches
192
+ ? `The file matches its record: SHA-256 ${result.file.sha256}, ${result.file.bytes} bytes.`
193
+ : `The file does not match its record: SHA-256 ${result.file.sha256}, ${result.file.bytes} bytes, ` +
194
+ `where the record has ${result.record.expectedSha256}, ${result.record.expectedBytes} bytes.`);
195
+ if (result.signature === null)
196
+ line(io, 'The record is not signed.');
197
+ else if (result.signature.valid) {
198
+ line(io, `Signed by the key ${result.signature.keyThumbprint}, and the signature holds.`);
199
+ }
200
+ else
201
+ line(io, 'The record’s signature does not hold: the record was changed after it was signed.');
202
+ if (result.record.captured || result.record.url) {
203
+ line(io, `It records ${result.record.url ?? 'no address'}, captured ${result.record.captured ?? 'at no stated time'} ` +
204
+ 'by the capturing computer’s clock, which nothing here can confirm.');
205
+ }
206
+ return code;
207
+ }
183
208
  function scanOptionsOf(parsed) {
184
209
  return {
185
210
  ...(parsed.windowId !== undefined ? { windowId: parsed.windowId } : {}),
@@ -322,6 +347,8 @@ export async function runCommand(parsed, io) {
322
347
  }
323
348
  case 'diff':
324
349
  return reportDiff(io, diffCaptures(parsed.old, parsed.new, parsed.out !== undefined ? { out: parsed.out } : {}), parsed.json);
350
+ case 'verify':
351
+ return reportVerify(io, await verifyCapture(parsed.file, parsed.record !== undefined ? { record: parsed.record } : {}), parsed.json);
325
352
  case 'stop': {
326
353
  const wasRunning = await stop();
327
354
  if (parsed.json)
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Turning results into the text a person reads.
3
3
  *
4
4
  * Every function here is pure: data in, a string out, no writing and no
5
- * colour. A command can then be tested on what it computed rather than on what
5
+ * color. A command can then be tested on what it computed rather than on what
6
6
  * it printed, and the `--json` path skips this file entirely.
7
7
  *
8
8
  * The house style for the tables is "plain enough to pipe". No box drawing, no
@@ -1,3 +1,5 @@
1
+ import { PageScannerError } from '../errors.js';
2
+ import { type SelfCommand } from './self.js';
1
3
  import { type DaemonState } from './state.js';
2
4
  /** How long to wait for a freshly spawned daemon to publish its state and answer. */
3
5
  export declare const DAEMON_START_TIMEOUT_MS = 5000;
@@ -5,16 +7,44 @@ export interface DaemonClient {
5
7
  state: DaemonState;
6
8
  call<T>(method: string, params?: Record<string, unknown>, timeoutMs?: number): Promise<T>;
7
9
  }
10
+ /** What a start hands back so the wait can stop early. */
11
+ export interface StartedDaemon {
12
+ /** Set once the start has visibly failed; until then the wait goes on. */
13
+ failure(): PageScannerError | undefined;
14
+ }
8
15
  export interface ConnectOptions {
9
16
  /**
10
17
  * Starts the daemon. Injectable so a test can assert the spawn decision
11
- * without putting a process on the machine.
18
+ * without putting a process on the machine. A rejection is the answer, and
19
+ * a returned `failure()` ends the wait as soon as it says something.
12
20
  */
13
- startDaemon?: () => void;
21
+ startDaemon?: () => void | StartedDaemon | Promise<void | StartedDaemon>;
14
22
  startTimeoutMs?: number;
15
23
  /** Injectable so a test does not wait in real time. */
16
24
  sleep?: (ms: number) => Promise<void>;
17
25
  }
26
+ /**
27
+ * Spawns this same program as `serve --daemon`, detached, and lets go of it.
28
+ *
29
+ * A child that cannot start, or exits with a failure before the daemon is up,
30
+ * says so through `failure()`, so the wait ends on the real reason instead of
31
+ * timing out on a process that is already gone. An exit with 0 is not one: it
32
+ * is a daemon that found another already registered, which the wait picks up.
33
+ * @param self what to run, injectable so a test can spawn something that fails.
34
+ */
35
+ export declare function spawnDaemon(self?: SelfCommand): StartedDaemon;
36
+ /**
37
+ * Runs the daemon inside this process, for a host that refuses to spawn it
38
+ * (`canSpawnSelf()` says which). Resolves once it is listening, and rejects
39
+ * with the daemon's own error when it cannot start, such as NOT_PAIRED or
40
+ * PORT_IN_USE, which a spawned daemon could only leave in its log.
41
+ *
42
+ * It lives as long as this process does, stops on the idle timer and on a
43
+ * `shutdown` call like any other, and the next call starts it again. It leaves
44
+ * SIGINT and SIGTERM to the host, and writes to the same log a spawned daemon
45
+ * does, never to stdout, which is the MCP server's.
46
+ */
47
+ export declare function startDaemonInProcess(): Promise<void>;
18
48
  /**
19
49
  * Returns a client for a running daemon, starting one if necessary.
20
50
  *
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"AAeA,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAG7C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3F;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AA4FD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAoCvF;AAED,wEAAwE;AACxE,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBnD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,gBAAgB,EAAsC,MAAM,cAAc,CAAC;AAEpF,OAAO,EAA6B,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAU7C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3F;AAED,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,OAAO,IAAI,gBAAgB,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAsED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,WAA2B,GAAG,aAAa,CAoC5E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB1D;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAuCvF;AAED,wEAAwE;AACxE,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBnD"}
@@ -8,14 +8,20 @@
8
8
  * wakes a service worker that has just been retired.
9
9
  */
10
10
  import { spawn } from 'node:child_process';
11
- import { openSync } from 'node:fs';
11
+ import { appendFileSync, openSync } from 'node:fs';
12
12
  import { PageScannerError, toPageScannerError } from '../errors.js';
13
13
  import { CLI_VERSION } from '../version.js';
14
- import { selfCommand } from './self.js';
14
+ import { canSpawnSelf, selfCommand } from './self.js';
15
15
  import { clearDaemonState, daemonLogPath, processAlive, readDaemonState, } from './state.js';
16
16
  /** How long to wait for a freshly spawned daemon to publish its state and answer. */
17
17
  export const DAEMON_START_TIMEOUT_MS = 5_000;
18
18
  const POLL_INTERVAL_MS = 100;
19
+ /**
20
+ * The daemon in the foreground, spelled like `PAIR_COMMAND` so it runs for
21
+ * someone who has only the MCP server: `page-scanner serve` is "command not
22
+ * found" there, and an agent relays the hint to its user word for word.
23
+ */
24
+ const SERVE_COMMAND = 'npx @page-scanner/cli serve';
19
25
  const realSleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
20
26
  function clientFor(state) {
21
27
  return {
@@ -58,9 +64,17 @@ async function healthy(state) {
58
64
  return null;
59
65
  }
60
66
  }
61
- /** Spawns this same program as `serve --daemon`, detached, and lets go of it. */
62
- function spawnDaemon() {
63
- const { command, args } = selfCommand();
67
+ /**
68
+ * Spawns this same program as `serve --daemon`, detached, and lets go of it.
69
+ *
70
+ * A child that cannot start, or exits with a failure before the daemon is up,
71
+ * says so through `failure()`, so the wait ends on the real reason instead of
72
+ * timing out on a process that is already gone. An exit with 0 is not one: it
73
+ * is a daemon that found another already registered, which the wait picks up.
74
+ * @param self what to run, injectable so a test can spawn something that fails.
75
+ */
76
+ export function spawnDaemon(self = selfCommand()) {
77
+ const { command, args } = self;
64
78
  let log;
65
79
  try {
66
80
  log = openSync(daemonLogPath(), 'a');
@@ -68,12 +82,50 @@ function spawnDaemon() {
68
82
  catch (error) {
69
83
  throw new PageScannerError('DAEMON_FAILED', `Could not open the daemon log at ${daemonLogPath()}: ${error instanceof Error ? error.message : String(error)}`);
70
84
  }
85
+ let failure;
71
86
  const child = spawn(command, [...args, 'serve', '--daemon'], {
72
87
  detached: true,
73
88
  stdio: ['ignore', log, log],
74
89
  windowsHide: true,
75
90
  });
91
+ child.once('error', (error) => {
92
+ failure = new PageScannerError('DAEMON_FAILED', `Could not start the daemon (${command}): ${error.message}`, `Start it yourself with \`${SERVE_COMMAND}\` in another terminal.`);
93
+ });
94
+ child.once('exit', (code, signal) => {
95
+ if (code === 0)
96
+ return;
97
+ failure ??= new PageScannerError('DAEMON_FAILED', `The daemon exited before it was ready (${signal ?? `exit code ${code}`}).`, `Its output is in ${daemonLogPath()}.`);
98
+ });
76
99
  child.unref();
100
+ return { failure: () => failure };
101
+ }
102
+ /**
103
+ * Runs the daemon inside this process, for a host that refuses to spawn it
104
+ * (`canSpawnSelf()` says which). Resolves once it is listening, and rejects
105
+ * with the daemon's own error when it cannot start, such as NOT_PAIRED or
106
+ * PORT_IN_USE, which a spawned daemon could only leave in its log.
107
+ *
108
+ * It lives as long as this process does, stops on the idle timer and on a
109
+ * `shutdown` call like any other, and the next call starts it again. It leaves
110
+ * SIGINT and SIGTERM to the host, and writes to the same log a spawned daemon
111
+ * does, never to stdout, which is the MCP server's.
112
+ */
113
+ export async function startDaemonInProcess() {
114
+ const { runDaemon } = await import('./run.js');
115
+ const log = (message) => {
116
+ try {
117
+ appendFileSync(daemonLogPath(), `${message}\n`);
118
+ }
119
+ catch {
120
+ // A log that cannot be written is not a reason to refuse a scan.
121
+ }
122
+ };
123
+ await new Promise((resolve, reject) => {
124
+ runDaemon({ log, handleSignals: false, onListening: () => resolve() }).then(
125
+ // Returning without listening means another daemon is registered; the
126
+ // wait that follows finds it.
127
+ () => resolve(), reject);
128
+ });
77
129
  }
78
130
  /**
79
131
  * Returns a client for a running daemon, starting one if necessary.
@@ -84,7 +136,7 @@ function spawnDaemon() {
84
136
  */
85
137
  export async function connectDaemon(options = {}) {
86
138
  const sleep = options.sleep ?? realSleep;
87
- const start = options.startDaemon ?? spawnDaemon;
139
+ const start = options.startDaemon ?? (canSpawnSelf() ? () => spawnDaemon() : startDaemonInProcess);
88
140
  const deadlineMs = options.startTimeoutMs ?? DAEMON_START_TIMEOUT_MS;
89
141
  const existing = readDaemonState();
90
142
  if (existing) {
@@ -103,9 +155,12 @@ export async function connectDaemon(options = {}) {
103
155
  }
104
156
  clearDaemonState();
105
157
  }
106
- start();
158
+ const started = await start();
107
159
  for (let waited = 0; waited < deadlineMs; waited += POLL_INTERVAL_MS) {
108
160
  await sleep(POLL_INTERVAL_MS);
161
+ const failure = started?.failure();
162
+ if (failure)
163
+ throw failure;
109
164
  const state = readDaemonState();
110
165
  if (!state)
111
166
  continue;
@@ -113,7 +168,7 @@ export async function connectDaemon(options = {}) {
113
168
  if (health)
114
169
  return clientFor(state);
115
170
  }
116
- throw new PageScannerError('DAEMON_FAILED', `The daemon did not come up within ${Math.round(deadlineMs / 1000)}s.`, `Run \`page-scanner serve\` in another terminal to see why, or read ${daemonLogPath()}.`);
171
+ throw new PageScannerError('DAEMON_FAILED', `The daemon did not come up within ${Math.round(deadlineMs / 1000)}s.`, `Run \`${SERVE_COMMAND}\` in another terminal to see why, or read ${daemonLogPath()}.`);
117
172
  }
118
173
  /** Returns true when a daemon was running and has been told to stop. */
119
174
  export async function stopDaemon() {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"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"}
@@ -220,14 +220,14 @@ export function startRpcServer(options) {
220
220
  });
221
221
  }
222
222
  async function handle(request, response, options, server) {
223
- const unauthorised = {
223
+ const unauthorized = {
224
224
  ok: false,
225
225
  error: { code: 'BAD_REQUEST', message: 'Unauthorized.' },
226
226
  };
227
227
  const header = request.headers.authorization ?? '';
228
228
  const presented = header.startsWith('Bearer ') ? header.slice('Bearer '.length) : '';
229
229
  if (!tokensMatch(presented, options.secret)) {
230
- send(response, 401, unauthorised);
230
+ send(response, 401, unauthorized);
231
231
  return;
232
232
  }
233
233
  if (request.method !== 'POST' || (request.url ?? '') !== '/rpc') {
@@ -6,6 +6,12 @@ export interface RunDaemonOptions {
6
6
  /** 0 means never exit on idle. Defaults to PAGE_SCANNER_IDLE_MINUTES or 15. */
7
7
  idleMinutes?: number;
8
8
  log?: (message: string) => void;
9
+ /**
10
+ * Stop on SIGINT and SIGTERM. True unless the daemon shares its process with
11
+ * something else: a listener on either signal replaces Node's default of
12
+ * exiting, so a host told to terminate would close the daemon and live on.
13
+ */
14
+ handleSignals?: boolean;
9
15
  /** Resolves when the daemon has stopped. Awaited by `serve` in the foreground. */
10
16
  onListening?: (info: {
11
17
  bridgePort: number;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/daemon/run.ts"],"names":[],"mappings":"AAeA,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAGvC,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kFAAkF;IAClF,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACvE;AAUD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyH7E"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/daemon/run.ts"],"names":[],"mappings":"AAgBA,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAGvC,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kFAAkF;IAClF,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACvE;AAUD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8H7E"}