@chrischall/mcp-utils 2.10.0 → 2.12.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.
Files changed (114) hide show
  1. package/README.md +448 -15
  2. package/dist/concurrency/index.d.ts +3 -1
  3. package/dist/concurrency/index.d.ts.map +1 -1
  4. package/dist/concurrency/index.js +3 -1
  5. package/dist/concurrency/index.js.map +1 -1
  6. package/dist/concurrency/verify-after-write.d.ts +84 -0
  7. package/dist/concurrency/verify-after-write.d.ts.map +1 -0
  8. package/dist/concurrency/verify-after-write.js +108 -0
  9. package/dist/concurrency/verify-after-write.js.map +1 -0
  10. package/dist/errors/index.d.ts +35 -1
  11. package/dist/errors/index.d.ts.map +1 -1
  12. package/dist/errors/index.js +79 -1
  13. package/dist/errors/index.js.map +1 -1
  14. package/dist/fetchproxy/fallback.d.ts +130 -0
  15. package/dist/fetchproxy/fallback.d.ts.map +1 -0
  16. package/dist/fetchproxy/fallback.js +199 -0
  17. package/dist/fetchproxy/fallback.js.map +1 -0
  18. package/dist/fetchproxy/index.d.ts +31 -1
  19. package/dist/fetchproxy/index.d.ts.map +1 -1
  20. package/dist/fetchproxy/index.js +120 -13
  21. package/dist/fetchproxy/index.js.map +1 -1
  22. package/dist/fs/confine.d.ts +9 -0
  23. package/dist/fs/confine.d.ts.map +1 -1
  24. package/dist/fs/confine.js +11 -2
  25. package/dist/fs/confine.js.map +1 -1
  26. package/dist/fs/index.d.ts +9 -2
  27. package/dist/fs/index.d.ts.map +1 -1
  28. package/dist/fs/index.js +13 -4
  29. package/dist/fs/index.js.map +1 -1
  30. package/dist/fs/magic.d.ts +35 -0
  31. package/dist/fs/magic.d.ts.map +1 -0
  32. package/dist/fs/magic.js +110 -0
  33. package/dist/fs/magic.js.map +1 -0
  34. package/dist/fs/output.d.ts +14 -10
  35. package/dist/fs/output.d.ts.map +1 -1
  36. package/dist/fs/output.js +21 -45
  37. package/dist/fs/output.js.map +1 -1
  38. package/dist/fs/upload-guard.d.ts +97 -0
  39. package/dist/fs/upload-guard.d.ts.map +1 -0
  40. package/dist/fs/upload-guard.js +185 -0
  41. package/dist/fs/upload-guard.js.map +1 -0
  42. package/dist/fs/write.d.ts +100 -0
  43. package/dist/fs/write.d.ts.map +1 -0
  44. package/dist/fs/write.js +207 -0
  45. package/dist/fs/write.js.map +1 -0
  46. package/dist/graphql/client.d.ts +223 -0
  47. package/dist/graphql/client.d.ts.map +1 -0
  48. package/dist/graphql/client.js +335 -0
  49. package/dist/graphql/client.js.map +1 -0
  50. package/dist/graphql/index.d.ts +20 -0
  51. package/dist/graphql/index.d.ts.map +1 -0
  52. package/dist/graphql/index.js +20 -0
  53. package/dist/graphql/index.js.map +1 -0
  54. package/dist/graphql/operation-kind.d.ts +58 -0
  55. package/dist/graphql/operation-kind.d.ts.map +1 -0
  56. package/dist/graphql/operation-kind.js +237 -0
  57. package/dist/graphql/operation-kind.js.map +1 -0
  58. package/dist/html/index.d.ts +33 -0
  59. package/dist/html/index.d.ts.map +1 -1
  60. package/dist/html/index.js +81 -1
  61. package/dist/html/index.js.map +1 -1
  62. package/dist/http/index.d.ts +11 -1
  63. package/dist/http/index.d.ts.map +1 -1
  64. package/dist/http/index.js +35 -7
  65. package/dist/http/index.js.map +1 -1
  66. package/dist/response/index.d.ts +1 -0
  67. package/dist/response/index.d.ts.map +1 -1
  68. package/dist/response/index.js +1 -0
  69. package/dist/response/index.js.map +1 -1
  70. package/dist/response/untrusted.d.ts +72 -0
  71. package/dist/response/untrusted.d.ts.map +1 -0
  72. package/dist/response/untrusted.js +55 -0
  73. package/dist/response/untrusted.js.map +1 -0
  74. package/dist/scrape/index.d.ts +75 -0
  75. package/dist/scrape/index.d.ts.map +1 -1
  76. package/dist/scrape/index.js +272 -0
  77. package/dist/scrape/index.js.map +1 -1
  78. package/dist/server/confirm-env.d.ts +12 -2
  79. package/dist/server/confirm-env.d.ts.map +1 -1
  80. package/dist/server/confirm-env.js +49 -3
  81. package/dist/server/confirm-env.js.map +1 -1
  82. package/dist/server/confirm-spent-file.d.ts +7 -0
  83. package/dist/server/confirm-spent-file.d.ts.map +1 -0
  84. package/dist/server/confirm-spent-file.js +118 -0
  85. package/dist/server/confirm-spent-file.js.map +1 -0
  86. package/dist/server/confirm-token.d.ts +12 -2
  87. package/dist/server/confirm-token.d.ts.map +1 -1
  88. package/dist/server/confirm-token.js +8 -1
  89. package/dist/server/confirm-token.js.map +1 -1
  90. package/dist/server/confirm-write.d.ts +152 -0
  91. package/dist/server/confirm-write.d.ts.map +1 -0
  92. package/dist/server/confirm-write.js +107 -0
  93. package/dist/server/confirm-write.js.map +1 -0
  94. package/dist/server/index.d.ts +2 -0
  95. package/dist/server/index.d.ts.map +1 -1
  96. package/dist/server/index.js +2 -0
  97. package/dist/server/index.js.map +1 -1
  98. package/dist/session/atomic-write.d.ts +15 -0
  99. package/dist/session/atomic-write.d.ts.map +1 -0
  100. package/dist/session/atomic-write.js +42 -0
  101. package/dist/session/atomic-write.js.map +1 -0
  102. package/dist/session/file-lock.d.ts +57 -0
  103. package/dist/session/file-lock.d.ts.map +1 -0
  104. package/dist/session/file-lock.js +215 -0
  105. package/dist/session/file-lock.js.map +1 -0
  106. package/dist/session/index.d.ts +118 -2
  107. package/dist/session/index.d.ts.map +1 -1
  108. package/dist/session/index.js +200 -82
  109. package/dist/session/index.js.map +1 -1
  110. package/dist/session/login-page.d.ts +73 -0
  111. package/dist/session/login-page.d.ts.map +1 -0
  112. package/dist/session/login-page.js +143 -0
  113. package/dist/session/login-page.js.map +1 -0
  114. package/package.json +5 -1
@@ -32,7 +32,7 @@
32
32
  * the one audited implementation the fleet shares.
33
33
  */
34
34
  import { z } from 'zod';
35
- import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync, renameSync, unlinkSync, } from 'node:fs';
35
+ import { existsSync, readFileSync, mkdirSync, chmodSync, renameSync, unlinkSync, } from 'node:fs';
36
36
  import { dirname, join, resolve } from 'node:path';
37
37
  import { homedir } from 'node:os';
38
38
  import { randomBytes, createHmac } from 'node:crypto';
@@ -40,6 +40,10 @@ import { textResult } from '../response/index.js';
40
40
  import { readEnvVar } from '../config/index.js';
41
41
  import { ApiError, EdgeBlockedError, RateLimitedError, RequestTimeoutError } from '../http/index.js';
42
42
  import { responseEdgeBlock } from '../internal/edge-block.js';
43
+ export { looksLikeLoginPage, expiredByLoginPage, LOGIN_PAGE_SCAN_MAX, } from './login-page.js';
44
+ import { withFileLock, withFileLockSync } from './file-lock.js';
45
+ import { writeFileAtomicSync } from './atomic-write.js';
46
+ export { withFileLock, withFileLockSync } from './file-lock.js';
43
47
  /** Generate a short, collision-resistant label id. */
44
48
  function makeSessionId() {
45
49
  return Date.now().toString(36) + randomBytes(6).toString('hex');
@@ -139,6 +143,46 @@ export class SessionRegistry {
139
143
  export function createSessionRegistry() {
140
144
  return new SessionRegistry();
141
145
  }
146
+ /** The trio's descriptions for a {@link RegisterSessionToolsOptions.routing} mode. */
147
+ function sessionToolDescriptions(prefix, label, opts) {
148
+ let generated;
149
+ if (opts.routing === 'label-only') {
150
+ const tail = `The registry is a label only: it does not change which ${label} account requests use.` +
151
+ (opts.labelOnlyNote !== undefined && opts.labelOnlyNote !== '' ? ` ${opts.labelOnlyNote}` : '');
152
+ generated = {
153
+ register: `Record (or refresh) which ${label} account the signed-in session belongs to, keyed by \`account_identity\`. ` +
154
+ 'Re-registering the same identity updates the existing entry. Returns a `session_id`; ' +
155
+ 'pass `mark_active: true` to mark it as the current account in the same call. ' +
156
+ tail,
157
+ setActive: 'Mark a previously registered `session_id` as the current account label, for your own bookkeeping ' +
158
+ 'across a conversation. ' +
159
+ tail,
160
+ context: 'List every registered account label plus the current `active_session_id`. ' +
161
+ 'When none are registered, `sessions` is empty and `active_session_id` is null. ' +
162
+ tail,
163
+ };
164
+ }
165
+ else {
166
+ generated = {
167
+ register: `Register (or refresh) an authenticated ${label} session keyed by signed-in account identity. ` +
168
+ 'Re-registering the same `account_identity` updates the existing session rather than creating a duplicate. ' +
169
+ 'Returns the `session_id` to use when routing per-tool calls. ' +
170
+ 'The first registered session becomes the default `active_session_id`. ' +
171
+ 'Pass `mark_active: true` to make the newly-registered session active in the same call.',
172
+ setActive: 'Switch which registered session subsequent tool calls route through by default. ' +
173
+ `Pass a \`session_id\` previously returned by \`${prefix}_register_session\`. ` +
174
+ 'Tools that accept an explicit `session_id` parameter override this default per-call.',
175
+ context: 'Return the full set of registered sessions plus the current `active_session_id`. ' +
176
+ 'When no sessions are registered, `sessions` is empty and `active_session_id` is null.',
177
+ };
178
+ }
179
+ const o = opts.descriptions;
180
+ return {
181
+ register: o?.register ?? generated.register,
182
+ setActive: o?.setActive ?? generated.setActive,
183
+ context: o?.context ?? generated.context,
184
+ };
185
+ }
142
186
  /**
143
187
  * Register the structurally-identical session tool trio against `server`,
144
188
  * backed by `registry`. Replaces every MCP's hand-rolled `src/tools/sessions.ts`.
@@ -148,18 +192,19 @@ export function createSessionRegistry() {
148
192
  * made active in the same call (equivalent to a follow-up
149
193
  * `${prefix}_set_active_session`). Omitting it preserves the
150
194
  * first-registered-wins active-session behaviour.
195
+ *
196
+ * Pass `routing: 'label-only'` when nothing in the server reads the registry to
197
+ * pick a session — the default wording promises routing that such a server does
198
+ * not do (see {@link RegisterSessionToolsOptions.routing}).
151
199
  */
152
200
  export function registerSessionTools(server, registry, opts) {
153
201
  const { prefix } = opts;
154
202
  const label = opts.serviceLabel ?? prefix;
155
203
  const ctxTool = `${prefix}_get_session_context`;
204
+ const text = sessionToolDescriptions(prefix, label, opts);
156
205
  server.registerTool(`${prefix}_register_session`, {
157
206
  title: `Register a signed-in ${label} session`,
158
- description: `Register (or refresh) an authenticated ${label} session keyed by signed-in account identity. ` +
159
- 'Re-registering the same `account_identity` updates the existing session rather than creating a duplicate. ' +
160
- 'Returns the `session_id` to use when routing per-tool calls. ' +
161
- 'The first registered session becomes the default `active_session_id`. ' +
162
- 'Pass `mark_active: true` to make the newly-registered session active in the same call.',
207
+ description: text.register,
163
208
  annotations: {
164
209
  title: `Register a signed-in ${label} session`,
165
210
  readOnlyHint: false,
@@ -193,9 +238,7 @@ export function registerSessionTools(server, registry, opts) {
193
238
  });
194
239
  server.registerTool(`${prefix}_set_active_session`, {
195
240
  title: `Set the active ${label} session`,
196
- description: 'Switch which registered session subsequent tool calls route through by default. ' +
197
- `Pass a \`session_id\` previously returned by \`${prefix}_register_session\`. ` +
198
- 'Tools that accept an explicit `session_id` parameter override this default per-call.',
241
+ description: text.setActive,
199
242
  annotations: {
200
243
  title: `Set the active ${label} session`,
201
244
  readOnlyHint: false,
@@ -216,8 +259,7 @@ export function registerSessionTools(server, registry, opts) {
216
259
  });
217
260
  server.registerTool(ctxTool, {
218
261
  title: `List all registered ${label} sessions`,
219
- description: 'Return the full set of registered sessions plus the current `active_session_id`. ' +
220
- 'When no sessions are registered, `sessions` is empty and `active_session_id` is null.',
262
+ description: text.context,
221
263
  annotations: {
222
264
  title: `List all registered ${label} sessions`,
223
265
  readOnlyHint: true,
@@ -250,7 +292,13 @@ export function normalizeOrigin(input) {
250
292
  *
251
293
  * `add` marks the record most-recently-used; {@link SessionStore.getActiveSession}
252
294
  * (and `get()` with no argument) returns it, so a tool call that omits an explicit
253
- * key picks up the latest session automatically.
295
+ * key picks up the latest session automatically. Re-adding an existing key moves
296
+ * it to the end, so the active pointer a later process restores (the last record
297
+ * on disk) is the one this process last added.
298
+ *
299
+ * By default the file is read once, at construction. Pass
300
+ * {@link SessionStoreOptions.fresh} when other processes share the file, or call
301
+ * {@link SessionStore.reload} to pick up their changes on demand.
254
302
  */
255
303
  export class SessionStore {
256
304
  sessions = new Map();
@@ -258,21 +306,62 @@ export class SessionStore {
258
306
  filePath;
259
307
  keyOf;
260
308
  normalizeKey;
309
+ fresh;
261
310
  constructor(opts) {
262
311
  this.filePath = opts.filePath;
263
312
  this.keyOf = opts.keyOf;
264
313
  this.normalizeKey = opts.normalizeKey ?? normalizeOrigin;
314
+ this.fresh = opts.fresh === true;
265
315
  this.loadFromDisk();
266
316
  }
267
- loadFromDisk() {
268
- if (!existsSync(this.filePath))
317
+ /**
318
+ * Replace the in-memory state with what is on disk now — picking up records
319
+ * another process added or removed. A {@link SessionStoreOptions.fresh} store
320
+ * does this before every access; a default store only when asked.
321
+ */
322
+ reload() {
323
+ this.loadFromDisk();
324
+ }
325
+ /** Read-modify-write under the cross-process lock (fresh mode), else in place. */
326
+ mutate(fn) {
327
+ if (!this.fresh)
328
+ return fn();
329
+ return withFileLockSync(this.lockPath(), () => {
330
+ this.loadFromDisk(true);
331
+ return fn();
332
+ });
333
+ }
334
+ lockPath() {
335
+ return `${this.filePath}.lock`;
336
+ }
337
+ /**
338
+ * Load the file into memory. `underLock` says the caller already holds the
339
+ * store's lock, so no writer can be mid-write.
340
+ *
341
+ * A fresh-mode store reads WITHOUT the lock on every get/list, so a parse
342
+ * failure there may be a torn read rather than a corrupt file. Before
343
+ * anything is quarantined it is re-read under the lock; only a file that is
344
+ * still unparseable then is treated as corrupt (mcp-utils#330 — writes are
345
+ * atomic now, so this is defence in depth, e.g. against a writer on an older
346
+ * mcp-utils that still rewrites in place).
347
+ */
348
+ loadFromDisk(underLock = false) {
349
+ if (!existsSync(this.filePath)) {
350
+ // Absent means empty — a sibling may have deleted the file since we last read it.
351
+ this.sessions = new Map();
352
+ this.mostRecentKey = null;
269
353
  return;
354
+ }
270
355
  try {
271
356
  this.sessions = this.deserialize(readFileSync(this.filePath, 'utf8'));
272
357
  const keys = Array.from(this.sessions.keys());
273
358
  this.mostRecentKey = keys[keys.length - 1] ?? null;
274
359
  }
275
360
  catch (err) {
361
+ if (this.fresh && !underLock) {
362
+ withFileLockSync(this.lockPath(), () => this.loadFromDisk(true));
363
+ return;
364
+ }
276
365
  // A corrupt cache must not brick the server, but it also must not be
277
366
  // silently destroyed: the next save() would otherwise overwrite the file
278
367
  // and permanently lose the prior credentials. Preserve the original
@@ -335,20 +424,14 @@ export class SessionStore {
335
424
  // mode applies to every directory this call creates, so intermediate dirs
336
425
  // are never left at the umask default (0755).
337
426
  mkdirSync(dir, { recursive: true, mode: 0o700 });
338
- // Tighten a pre-existing file BEFORE writing new secret content — the
339
- // write-then-chmod ordering leaves a window where fresh secrets sit in a
340
- // file that may still be world-readable.
341
- if (existsSync(this.filePath)) {
342
- try {
343
- chmodSync(this.filePath, 0o600);
344
- }
345
- catch {
346
- /* best-effort */
347
- }
348
- }
349
- writeFileSync(this.filePath, this.serialize(), { mode: 0o600 });
350
- // Re-assert file + dir perms (writeFileSync's mode and mkdirSync's mode
351
- // only apply on creation, not to pre-existing loose entries).
427
+ // Atomic replace (temp file, fsync, rename), never an in-place rewrite:
428
+ // a sibling's lock-free fresh-mode read that lands mid-write would see a
429
+ // truncated file and quarantine the LIVE store (mcp-utils#330). The temp
430
+ // file is 0600 before it is renamed in, so fresh secrets never sit in a
431
+ // loose file; a pre-existing loose file is replaced rather than reused.
432
+ writeFileAtomicSync(this.filePath, this.serialize());
433
+ // Re-assert file + dir perms (mkdirSync's mode only applies on creation,
434
+ // not to a pre-existing loose directory).
352
435
  try {
353
436
  chmodSync(this.filePath, 0o600);
354
437
  chmodSync(dir, 0o700);
@@ -359,13 +442,20 @@ export class SessionStore {
359
442
  }
360
443
  /** Insert or replace a record, normalizing its key and marking it active. */
361
444
  add(session) {
362
- const key = this.normalizeKey(this.keyOf(session));
363
- this.sessions.set(key, session);
364
- this.mostRecentKey = key;
365
- this.saveToDisk();
445
+ this.mutate(() => {
446
+ const key = this.normalizeKey(this.keyOf(session));
447
+ // Delete first so a re-added key moves to the END: the on-disk order is
448
+ // what a restarted process restores the active pointer from.
449
+ this.sessions.delete(key);
450
+ this.sessions.set(key, session);
451
+ this.mostRecentKey = key;
452
+ this.saveToDisk();
453
+ });
366
454
  }
367
455
  /** Look up by key; with no key, returns the active (most-recent) session. */
368
456
  get(key) {
457
+ if (this.fresh)
458
+ this.loadFromDisk();
369
459
  if (key !== undefined)
370
460
  return this.sessions.get(this.normalizeKey(key)) ?? null;
371
461
  if (this.mostRecentKey !== null)
@@ -376,22 +466,26 @@ export class SessionStore {
376
466
  getActiveSession() {
377
467
  return this.get();
378
468
  }
379
- /** All sessions in insertion order. */
469
+ /** All sessions, least- to most-recently added. */
380
470
  list() {
471
+ if (this.fresh)
472
+ this.loadFromDisk();
381
473
  return Array.from(this.sessions.values());
382
474
  }
383
475
  /** Remove a session; fixes up the active pointer. Returns whether it existed. */
384
476
  remove(key) {
385
- const normalized = this.normalizeKey(key);
386
- const had = this.sessions.delete(normalized);
387
- if (had) {
388
- if (this.mostRecentKey === normalized) {
389
- const keys = Array.from(this.sessions.keys());
390
- this.mostRecentKey = keys[keys.length - 1] ?? null;
477
+ return this.mutate(() => {
478
+ const normalized = this.normalizeKey(key);
479
+ const had = this.sessions.delete(normalized);
480
+ if (had) {
481
+ if (this.mostRecentKey === normalized) {
482
+ const keys = Array.from(this.sessions.keys());
483
+ this.mostRecentKey = keys[keys.length - 1] ?? null;
484
+ }
485
+ this.saveToDisk();
391
486
  }
392
- this.saveToDisk();
393
- }
394
- return had;
487
+ return had;
488
+ });
395
489
  }
396
490
  /** Clear in-memory state without touching disk. Test helper. */
397
491
  resetForTest() {
@@ -508,8 +602,6 @@ export function createFileStatePersistence(opts) {
508
602
  },
509
603
  save(state) {
510
604
  const dir = dirname(filePath);
511
- // A unique temp name so two writers cannot share (and tear) one temp file.
512
- const tmp = `${filePath}.tmp-${randomBytes(6).toString('hex')}`;
513
605
  // Only a directory THIS call creates gets tightened. `resolveStateDir()`
514
606
  // without a `subdir` is `$HOME`, and chmodding a user's home directory to
515
607
  // 0700 is not an acceptable side effect of writing one token file.
@@ -525,26 +617,18 @@ export function createFileStatePersistence(opts) {
525
617
  boundTo = { salt, digest: bindingDigest(secret, salt) };
526
618
  }
527
619
  const envelope = { v: 1, ...(boundTo !== undefined ? { boundTo } : {}), state };
528
- writeFileSync(tmp, JSON.stringify(envelope, null, 2), { mode: 0o600 });
529
- // Tighten BEFORE the rename: the window where fresh secrets sit in a
530
- // possibly-loose file should not exist at all.
531
- chmodSync(tmp, 0o600);
532
- renameSync(tmp, filePath);
620
+ // Temp file + fsync + rename (writeFileAtomicSync), tightened to 0600
621
+ // before the rename: a reader never sees a torn file, and fresh secrets
622
+ // never sit in a loose one.
623
+ writeFileAtomicSync(filePath, JSON.stringify(envelope, null, 2));
533
624
  chmodSync(filePath, 0o600);
534
625
  }
535
626
  catch (err) {
536
- // Best-effort cleanup of the temp file so a failed write does not
537
- // litter the data dir. The failure itself is RE-THROWN: whether losing
538
- // a write is survivable is the manager's call (see `onPersistError`),
539
- // not this file's — freshbooks-mcp's rotating single-use tokens make it
540
- // fatal, most services make it a nuisance.
541
- try {
542
- if (existsSync(tmp))
543
- unlinkSync(tmp);
544
- }
545
- catch {
546
- /* best-effort */
547
- }
627
+ // writeFileAtomicSync already removed its temp file. The failure itself
628
+ // is RE-THROWN: whether losing a write is survivable is the manager's
629
+ // call (see `onPersistError`), not this file's — freshbooks-mcp's
630
+ // rotating single-use tokens make it fatal, most services make it a
631
+ // nuisance.
548
632
  throw err;
549
633
  }
550
634
  },
@@ -557,6 +641,11 @@ export function createFileStatePersistence(opts) {
557
641
  /* best-effort */
558
642
  }
559
643
  },
644
+ // `<filePath>.lock`: shared by every process that opens this file through
645
+ // this helper, which is what makes TokenManager's reloadBeforeRefresh safe.
646
+ withLock(fn) {
647
+ return withFileLock(`${filePath}.lock`, fn);
648
+ },
560
649
  };
561
650
  }
562
651
  /**
@@ -600,27 +689,12 @@ export function createKeyedFileStatePersistence(opts) {
600
689
  };
601
690
  const writeAll = (all) => {
602
691
  const dir = dirname(filePath);
603
- const tmp = `${filePath}.tmp-${randomBytes(6).toString('hex')}`;
604
692
  const dirExisted = existsSync(dir);
605
- try {
606
- mkdirSync(dir, { recursive: true, mode: 0o700 });
607
- if (!dirExisted)
608
- chmodSync(dir, 0o700);
609
- writeFileSync(tmp, JSON.stringify(all, null, 2), { mode: 0o600 });
610
- chmodSync(tmp, 0o600);
611
- renameSync(tmp, filePath);
612
- chmodSync(filePath, 0o600);
613
- }
614
- catch (err) {
615
- try {
616
- if (existsSync(tmp))
617
- unlinkSync(tmp);
618
- }
619
- catch {
620
- /* best-effort */
621
- }
622
- throw err;
623
- }
693
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
694
+ if (!dirExisted)
695
+ chmodSync(dir, 0o700);
696
+ writeFileAtomicSync(filePath, JSON.stringify(all, null, 2));
697
+ chmodSync(filePath, 0o600);
624
698
  };
625
699
  return {
626
700
  forKey(key) {
@@ -823,6 +897,7 @@ export class TokenManager {
823
897
  now;
824
898
  isRefreshRevokedFn;
825
899
  onPersistErrorFn;
900
+ reloadBeforeRefresh;
826
901
  inFlight;
827
902
  bootstrapInFlight;
828
903
  /**
@@ -846,6 +921,10 @@ export class TokenManager {
846
921
  this.now = opts.now ?? Date.now;
847
922
  this.isRefreshRevokedFn = opts.isRefreshRevoked ?? defaultIsRefreshRevoked;
848
923
  this.onPersistErrorFn = opts.onPersistError;
924
+ this.reloadBeforeRefresh = opts.reloadBeforeRefresh === true;
925
+ if (this.reloadBeforeRefresh && this.persistence === undefined) {
926
+ throw new TypeError('TokenManager: reloadBeforeRefresh needs `persistence` to reload from.');
927
+ }
849
928
  }
850
929
  /** Whether the token is within the skew window of (or past) expiry. */
851
930
  needsRefresh() {
@@ -961,7 +1040,46 @@ export class TokenManager {
961
1040
  /** One refresh attempt against the current refresh token. */
962
1041
  async runRefresh() {
963
1042
  const current = this.tokens ?? (await this.ensureTokens());
964
- const rt = current.refreshToken;
1043
+ const persistence = this.persistence;
1044
+ if (!this.reloadBeforeRefresh || persistence === undefined) {
1045
+ await this.exchange(current.refreshToken);
1046
+ return;
1047
+ }
1048
+ const locked = persistence.withLock?.bind(persistence) ?? ((fn) => fn());
1049
+ await locked(async () => {
1050
+ const held = this.tokens ?? current;
1051
+ let rt = held.refreshToken;
1052
+ const onDisk = await this.readStoredNow();
1053
+ if (onDisk !== null &&
1054
+ (onDisk.accessToken !== held.accessToken || onDisk.refreshToken !== held.refreshToken) &&
1055
+ onDisk.expiresAt >= held.expiresAt) {
1056
+ // A sibling process refreshed since this one last looked. Its access
1057
+ // token is the answer while it is good; otherwise its refresh token is
1058
+ // the live one — the one in memory may already be spent.
1059
+ if (this.now() < onDisk.expiresAt - this.skewMs) {
1060
+ this.tokens = onDisk;
1061
+ return;
1062
+ }
1063
+ if (onDisk.refreshToken !== undefined)
1064
+ rt = onDisk.refreshToken;
1065
+ }
1066
+ // Persisted inside the lock: a sibling waiting on it must find this
1067
+ // rotation on disk, not the token it just replaced.
1068
+ await this.exchange(rt);
1069
+ });
1070
+ }
1071
+ /** The stored tokens as they are on disk now, bypassing the once-per-process read. Never throws. */
1072
+ async readStoredNow() {
1073
+ try {
1074
+ const raw = await this.persistence?.load();
1075
+ return isBearerTokens(raw) ? raw : null;
1076
+ }
1077
+ catch {
1078
+ return null;
1079
+ }
1080
+ }
1081
+ /** Spend `rt`, then install and persist what comes back. */
1082
+ async exchange(rt) {
965
1083
  if (rt === undefined) {
966
1084
  throw new Error('TokenManager: cannot refresh — no refresh token is available.');
967
1085
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"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"}