@spine-event-engine/auth 2.0.0-snapshot.21 → 2.0.0-snapshot.22

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.
@@ -151,13 +151,50 @@ export declare class OpaqueSessions implements SessionResolver {
151
151
  * @returns Completes after retained records are dropped.
152
152
  */
153
153
  close(): Promise<void>;
154
+ /**
155
+ * Checks whether the session store has been closed.
156
+ * @returns Whether further session operations must be rejected.
157
+ */
154
158
  private isClosed;
159
+ /**
160
+ * Creates a bounded session record for an authenticated principal.
161
+ * @param principal The identity to store in the session.
162
+ * @param now The validated issuance time in milliseconds.
163
+ * @returns The record, or undefined if expiry cannot be represented.
164
+ */
155
165
  private record;
166
+ /**
167
+ * Creates an unused opaque credential identifier within the retry limit.
168
+ * @returns The identifier, or undefined after entropy failures or collisions.
169
+ */
156
170
  private nextId;
171
+ /**
172
+ * Returns a live session record and removes it when expired.
173
+ * @param id The opaque credential identifier.
174
+ * @param now The validated lookup time in milliseconds.
175
+ * @returns The live record, or undefined if absent or expired.
176
+ */
157
177
  private live;
178
+ /**
179
+ * Removes every session that has expired by the supplied time.
180
+ * @param now The validated sweep time in milliseconds.
181
+ */
158
182
  private sweepExpired;
183
+ /**
184
+ * Compares a session expiry with the current millisecond reading.
185
+ * @param record The session record to inspect.
186
+ * @param now The validated current time.
187
+ * @returns Whether the record has expired.
188
+ */
159
189
  private expired;
190
+ /**
191
+ * Reads a safe clock value and closes the store on clock failure.
192
+ * @returns Current epoch milliseconds, or undefined after failure.
193
+ */
160
194
  private now;
195
+ /**
196
+ * Closes the store and clears session records after a clock fault.
197
+ */
161
198
  private failClosed;
162
199
  }
163
200
  //# sourceMappingURL=opaque.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"opaque.d.ts","sourceRoot":"","sources":["../../src/sessions/opaque.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opaque.d.ts","sourceRoot":"","sources":["../../src/sessions/opaque.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  * or implied. See the License for the specific language governing permissions and limitations under
12
12
  * the License.
13
13
  */
14
+ import { Time } from "@spine-event-engine/core/time";
14
15
  import { create } from "@bufbuild/protobuf";
15
16
  import { TimestampSchema } from "@bufbuild/protobuf/wkt";
16
17
  import { randomBytes as nodeRandomBytes } from "node:crypto";
@@ -33,7 +34,7 @@ export class OpaqueSessions {
33
34
  * @param options The optional clock, entropy, lifetime, and capacity settings.
34
35
  */
35
36
  constructor(options = {}) {
36
- this.clock = options.clock ?? { now: Date.now };
37
+ this.clock = options.clock ?? { now: () => Time.currentTimeMillis() };
37
38
  this.random = options.randomBytes ?? nodeRandomBytes;
38
39
  this.ttlMilliseconds = OpaqueSessionValues.positiveSafeInteger(options.ttlMilliseconds ?? 8 * 60 * 60 * 1_000, "ttlMilliseconds");
39
40
  this.maxSessions = OpaqueSessionValues.positiveSafeInteger(options.maxSessions ?? 10_000, "maxSessions");
@@ -162,9 +163,19 @@ export class OpaqueSessions {
162
163
  this.records.clear();
163
164
  return Promise.resolve();
164
165
  }
166
+ /**
167
+ * Checks whether the session store has been closed.
168
+ * @returns Whether further session operations must be rejected.
169
+ */
165
170
  isClosed() {
166
171
  return this.closed;
167
172
  }
173
+ /**
174
+ * Creates a bounded session record for an authenticated principal.
175
+ * @param principal The identity to store in the session.
176
+ * @param now The validated issuance time in milliseconds.
177
+ * @returns The record, or undefined if expiry cannot be represented.
178
+ */
168
179
  record(principal, now) {
169
180
  const expiresAt = now + this.ttlMilliseconds;
170
181
  if (!Number.isSafeInteger(expiresAt) || !OpaqueSessionValues.timestampValid(expiresAt)) {
@@ -173,6 +184,10 @@ export class OpaqueSessions {
173
184
  }
174
185
  return { principal: OpaqueSessionValues.copyPrincipal(principal), expiresAt };
175
186
  }
187
+ /**
188
+ * Creates an unused opaque credential identifier within the retry limit.
189
+ * @returns The identifier, or undefined after entropy failures or collisions.
190
+ */
176
191
  nextId() {
177
192
  for (let attempt = 0; attempt < this.collisionAttempts; attempt += 1) {
178
193
  let bytes;
@@ -195,6 +210,12 @@ export class OpaqueSessions {
195
210
  }
196
211
  return undefined;
197
212
  }
213
+ /**
214
+ * Returns a live session record and removes it when expired.
215
+ * @param id The opaque credential identifier.
216
+ * @param now The validated lookup time in milliseconds.
217
+ * @returns The live record, or undefined if absent or expired.
218
+ */
198
219
  live(id, now) {
199
220
  const record = this.records.get(id);
200
221
  if (record === undefined)
@@ -204,14 +225,28 @@ export class OpaqueSessions {
204
225
  this.records.delete(id);
205
226
  return undefined;
206
227
  }
228
+ /**
229
+ * Removes every session that has expired by the supplied time.
230
+ * @param now The validated sweep time in milliseconds.
231
+ */
207
232
  sweepExpired(now) {
208
233
  for (const [id, record] of this.records)
209
234
  if (this.expired(record, now))
210
235
  this.records.delete(id);
211
236
  }
237
+ /**
238
+ * Compares a session expiry with the current millisecond reading.
239
+ * @param record The session record to inspect.
240
+ * @param now The validated current time.
241
+ * @returns Whether the record has expired.
242
+ */
212
243
  expired(record, now) {
213
244
  return now >= record.expiresAt;
214
245
  }
246
+ /**
247
+ * Reads a safe clock value and closes the store on clock failure.
248
+ * @returns Current epoch milliseconds, or undefined after failure.
249
+ */
215
250
  now() {
216
251
  try {
217
252
  const value = this.clock.now();
@@ -224,6 +259,9 @@ export class OpaqueSessions {
224
259
  return undefined;
225
260
  }
226
261
  }
262
+ /**
263
+ * Closes the store and clears session records after a clock fault.
264
+ */
227
265
  failClosed() {
228
266
  this.closed = true;
229
267
  this.records.clear();
@@ -233,26 +271,52 @@ export class OpaqueSessions {
233
271
  * Validates opaque-session values and creates immutable credential data.
234
272
  */
235
273
  const OpaqueSessionValues = Object.freeze({
274
+ /**
275
+ * Validates a positive safe integer for a session limit.
276
+ * @param value The candidate limit.
277
+ * @param name The option named in an error.
278
+ * @returns The accepted limit.
279
+ */
236
280
  positiveSafeInteger(value, name) {
237
281
  if (!Number.isSafeInteger(value) || value <= 0)
238
282
  throw new Error(`${name} must be a positive safe integer`);
239
283
  return value;
240
284
  },
285
+ /**
286
+ * Wraps an opaque identifier in an immutable cookie credential.
287
+ * @param value The opaque identifier.
288
+ * @returns The cookie credential.
289
+ */
241
290
  credential(value) {
242
291
  return Object.freeze({ kind: "cookie", value });
243
292
  },
293
+ /**
294
+ * Copies a principal and freezes its attributes before retention.
295
+ * @param principal The authenticated identity to copy.
296
+ * @returns An immutable principal snapshot.
297
+ */
244
298
  copyPrincipal(principal) {
245
299
  if (typeof principal.id !== "string")
246
300
  throw new Error("principal.id must be a string");
247
301
  const attributes = principal.attributes === undefined ? undefined : Object.freeze({ ...principal.attributes });
248
302
  return Object.freeze(attributes === undefined ? { id: principal.id } : { id: principal.id, attributes });
249
303
  },
304
+ /**
305
+ * Builds a detached resolved session from a retained record.
306
+ * @param record The live session record.
307
+ * @returns The resolved principal and precise expiry.
308
+ */
250
309
  resolved(record) {
251
310
  return Object.freeze({
252
311
  principal: OpaqueSessionValues.copyPrincipal(record.principal),
253
312
  expiresAt: OpaqueSessionValues.timestamp(record.expiresAt),
254
313
  });
255
314
  },
315
+ /**
316
+ * Converts epoch milliseconds to a Protobuf expiry timestamp.
317
+ * @param milliseconds The expiry time to encode.
318
+ * @returns The normalized Protobuf timestamp.
319
+ */
256
320
  timestamp(milliseconds) {
257
321
  const seconds = Math.floor(milliseconds / 1_000);
258
322
  return create(TimestampSchema, {
@@ -260,6 +324,11 @@ const OpaqueSessionValues = Object.freeze({
260
324
  nanos: (milliseconds - seconds * 1_000) * 1_000_000,
261
325
  });
262
326
  },
327
+ /**
328
+ * Checks whether epoch milliseconds fit the Protobuf timestamp range.
329
+ * @param milliseconds The candidate expiry time.
330
+ * @returns Whether it fits the supported range.
331
+ */
263
332
  timestampValid(milliseconds) {
264
333
  const seconds = Math.floor(milliseconds / 1_000);
265
334
  return seconds >= -62_135_596_800 && seconds <= 253_402_300_799;
@@ -1 +1 @@
1
- {"version":3,"file":"opaque.js","sourceRoot":"","sources":["../../src/sessions/opaque.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opaque.js","sourceRoot":"","sources":["../../src/sessions/opaque.ts"],"names":[],"mappings":"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"}
@@ -93,7 +93,7 @@ export interface SignedSessionsOptions {
93
93
  */
94
94
  readonly revocation?: SignedTokenRevocation;
95
95
  /**
96
- * Unix-millisecond clock; defaults to `Date.now`.
96
+ * Unix-millisecond clock; defaults to `Time.currentTimeMillis`.
97
97
  */
98
98
  readonly clock?: SignedSessionClock;
99
99
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"signed.d.ts","sourceRoot":"","sources":["../../src/sessions/signed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signed.d.ts","sourceRoot":"","sources":["../../src/sessions/signed.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  * or implied. See the License for the specific language governing permissions and limitations under
12
12
  * the License.
13
13
  */
14
+ import { Time } from "@spine-event-engine/core/time";
14
15
  import { create } from "@bufbuild/protobuf";
15
16
  import { KeyObject, createPrivateKey, createPublicKey, randomBytes as nodeRandomBytes, sign, verify, } from "node:crypto";
16
17
  import { TimestampSchema } from "@bufbuild/protobuf/wkt";
@@ -40,23 +41,20 @@ export class SignedSessions {
40
41
  * @param options The issuer, key ring, limits, clock, entropy, and revocation settings.
41
42
  */
42
43
  constructor(options) {
43
- this.#issuer = SignedSessionValues.boundedString(options.issuer, "issuer");
44
- this.#audience = SignedSessionValues.boundedString(options.audience, "audience");
45
- this.#ttl = SignedSessionValues.positive(options.ttlSeconds ?? 28_800, "ttlSeconds");
46
- this.#skew = SignedSessionValues.nonnegative(options.clockSkewSeconds ?? 60, "clockSkewSeconds");
47
- this.#maxToken = SignedSessionValues.positive(options.maxTokenCharacters ?? 8_192, "maxTokenCharacters");
48
- this.#maxKeys = SignedSessionValues.positive(options.maxKeys ?? 16, "maxKeys");
49
- this.#maxId = SignedSessionValues.positive(options.maxPrincipalIdCharacters ?? 256, "maxPrincipalIdCharacters");
50
- this.#maxAttributes = SignedSessionValues.nonnegative(options.maxAttributes ?? 32, "maxAttributes");
51
- this.#maxAttributeChars = SignedSessionValues.nonnegative(options.maxAttributeCharacters ?? 4_096, "maxAttributeCharacters");
52
- this.#clock = options.clock ?? { now: Date.now };
44
+ const settings = SignedSessionValues.settings(options);
45
+ this.#issuer = settings.issuer;
46
+ this.#audience = settings.audience;
47
+ this.#ttl = settings.ttl;
48
+ this.#skew = settings.skew;
49
+ this.#maxToken = settings.maxToken;
50
+ this.#maxKeys = settings.maxKeys;
51
+ this.#maxId = settings.maxId;
52
+ this.#maxAttributes = settings.maxAttributes;
53
+ this.#maxAttributeChars = settings.maxAttributeChars;
54
+ this.#clock = options.clock ?? { now: () => Time.currentTimeMillis() };
53
55
  this.#random = options.randomBytes ?? nodeRandomBytes;
54
56
  this.#revocation = options.revocation;
55
- if ((options.retiredKeys?.length ?? 0) + 1 > this.#maxKeys)
56
- throw new Error("maxKeys exceeded");
57
- const retainedUntil = options.retiredKeys === undefined || options.retiredKeys.length === 0
58
- ? undefined
59
- : SignedSessionValues.retentionDeadline(SignedSessionValues.clockValue(this.#clock), this.#ttl, this.#skew);
57
+ const retainedUntil = SignedSessionValues.retiredRetention(options, this.#maxKeys, this.#clock, this.#ttl, this.#skew);
60
58
  this.#active = SignedSessionValues.signing(options.activeKey);
61
59
  this.#keys.set(this.#active.kid, { publicKey: this.#active.publicKey });
62
60
  for (const key of options.retiredKeys ?? []) {
@@ -360,12 +358,61 @@ export class SignedSessions {
360
358
  * Validates, serializes, and constructs finite signed-session values.
361
359
  */
362
360
  const SignedSessionValues = Object.freeze({
361
+ /**
362
+ * Validates the issuer, audience, and finite token limits before key installation.
363
+ * @param options The signed-session configuration.
364
+ * @returns Copied and bounded settings for a signed session.
365
+ */
366
+ settings(options) {
367
+ return {
368
+ issuer: SignedSessionValues.boundedString(options.issuer, "issuer"),
369
+ audience: SignedSessionValues.boundedString(options.audience, "audience"),
370
+ ttl: SignedSessionValues.positive(options.ttlSeconds ?? 28_800, "ttlSeconds"),
371
+ skew: SignedSessionValues.nonnegative(options.clockSkewSeconds ?? 60, "clockSkewSeconds"),
372
+ maxToken: SignedSessionValues.positive(options.maxTokenCharacters ?? 8_192, "maxTokenCharacters"),
373
+ maxKeys: SignedSessionValues.positive(options.maxKeys ?? 16, "maxKeys"),
374
+ maxId: SignedSessionValues.positive(options.maxPrincipalIdCharacters ?? 256, "maxPrincipalIdCharacters"),
375
+ maxAttributes: SignedSessionValues.nonnegative(options.maxAttributes ?? 32, "maxAttributes"),
376
+ maxAttributeChars: SignedSessionValues.nonnegative(options.maxAttributeCharacters ?? 4_096, "maxAttributeCharacters"),
377
+ };
378
+ },
379
+ /**
380
+ * Checks retired-key capacity and computes their shared retention deadline.
381
+ * @param options The configured retired keys.
382
+ * @param maxKeys The maximum ring size including the active key.
383
+ * @param clock The effective session clock.
384
+ * @param ttl The token lifetime in seconds.
385
+ * @param skew The accepted clock skew in seconds.
386
+ * @returns The retention deadline, or no deadline when no retired keys exist.
387
+ */
388
+ retiredRetention(options, maxKeys, clock, ttl, skew) {
389
+ if ((options.retiredKeys?.length ?? 0) + 1 > maxKeys)
390
+ throw new Error("maxKeys exceeded");
391
+ return options.retiredKeys === undefined || options.retiredKeys.length === 0
392
+ ? undefined
393
+ : SignedSessionValues.retentionDeadline(SignedSessionValues.clockValue(clock), ttl, skew);
394
+ },
395
+ /**
396
+ * Creates a rejected token-issue result.
397
+ * @param reason The reason for rejecting the operation.
398
+ * @returns The rejected issue outcome.
399
+ */
363
400
  rejected(reason) {
364
401
  return { kind: "rejected", reason };
365
402
  },
403
+ /**
404
+ * Creates a rejected key-rotation result.
405
+ * @param reason The reason for rejecting the operation.
406
+ * @returns The rejected rotation outcome.
407
+ */
366
408
  rotation(reason) {
367
409
  return { kind: "rejected", reason };
368
410
  },
411
+ /**
412
+ * Copies and validates a P-256 private signing key.
413
+ * @param key The key material to copy and validate.
414
+ * @returns The copied private and public key pair.
415
+ */
369
416
  signing(key) {
370
417
  const kid = SignedSessionValues.boundedString(key.kid, "kid");
371
418
  if (key.privateKey.type !== "private" ||
@@ -383,6 +430,11 @@ const SignedSessionValues = Object.freeze({
383
430
  const publicKey = createPublicKey(privateKey);
384
431
  return { kid, privateKey, publicKey };
385
432
  },
433
+ /**
434
+ * Copies and validates a P-256 public verification key.
435
+ * @param key The key material to copy and validate.
436
+ * @returns The copied public verification key.
437
+ */
386
438
  verification(key) {
387
439
  const kid = SignedSessionValues.boundedString(key.kid, "kid");
388
440
  if (key.publicKey.type !== "public" ||
@@ -397,41 +449,92 @@ const SignedSessionValues = Object.freeze({
397
449
  der.fill(0);
398
450
  }
399
451
  },
452
+ /**
453
+ * Validates a positive safe integer limit.
454
+ * @param value The positive integer limit to validate.
455
+ * @param name The named setting in a validation error.
456
+ * @returns The validated positive limit.
457
+ */
400
458
  positive(value, name) {
401
459
  if (!Number.isSafeInteger(value) || value <= 0)
402
460
  throw new Error(`${name} must be a positive safe integer`);
403
461
  return value;
404
462
  },
463
+ /**
464
+ * Validates a non-negative safe integer limit.
465
+ * @param value The non-negative integer limit to validate.
466
+ * @param name The named setting in a validation error.
467
+ * @returns The validated non-negative limit.
468
+ */
405
469
  nonnegative(value, name) {
406
470
  if (!Number.isSafeInteger(value) || value < 0)
407
471
  throw new Error(`${name} must be a non-negative safe integer`);
408
472
  return value;
409
473
  },
474
+ /**
475
+ * Validates a non-empty bounded key or identity string.
476
+ * @param value The signing key or identity string to validate.
477
+ * @param name The named setting in a validation error.
478
+ * @returns The validated string.
479
+ */
410
480
  boundedString(value, name) {
411
481
  if (typeof value !== "string" || value.length === 0 || value.length > 256)
412
482
  throw new Error(`${name} must be a non-empty string of at most 256 characters`);
413
483
  return value;
414
484
  },
485
+ /**
486
+ * Checks the signing-key identifier length.
487
+ * @param value The signing-key identifier to check.
488
+ * @returns Whether the key identifier length is valid.
489
+ */
415
490
  validKid(value) {
416
491
  return value.length > 0 && value.length <= 256;
417
492
  },
493
+ /**
494
+ * Checks the URL-safe base64 alphabet and length.
495
+ * @param value The encoded string to check for URL-safe base64.
496
+ * @returns Whether the string is URL-safe base64.
497
+ */
418
498
  base64url(value) {
419
499
  return value.length > 0 && /^[A-Za-z0-9_-]+$/.test(value) && value.length % 4 !== 1;
420
500
  },
501
+ /**
502
+ * Encodes a JSON value as URL-safe base64.
503
+ * @param value The JSON value to encode.
504
+ * @returns The encoded JSON string.
505
+ */
421
506
  encode(value) {
422
507
  return Buffer.from(JSON.stringify(value)).toString("base64url");
423
508
  },
509
+ /**
510
+ * Decodes bounded URL-safe base64 JSON.
511
+ * @param value The URL-safe base64 JSON string to decode.
512
+ * @returns The decoded JSON value.
513
+ */
424
514
  json(value) {
425
515
  const decoded = Buffer.from(value, "base64url");
426
516
  if (decoded.byteLength > 16_384)
427
517
  throw new Error();
428
518
  return JSON.parse(decoded.toString("utf8"));
429
519
  },
520
+ /**
521
+ * Checks whether a value is a plain object.
522
+ * @param value The unknown value to test for plain-record shape.
523
+ * @returns Whether the value is a plain record.
524
+ */
430
525
  plain(value) {
431
526
  return (typeof value === "object" &&
432
527
  value !== null &&
433
528
  Object.getPrototypeOf(value) === Object.prototype);
434
529
  },
530
+ /**
531
+ * Copies a principal under identifier and attribute bounds.
532
+ * @param value The principal data to copy under configured bounds.
533
+ * @param maxId The maximum principal identifier length.
534
+ * @param maxAttributes The maximum attribute count.
535
+ * @param maxChars The maximum combined attribute characters.
536
+ * @returns The immutable principal, or undefined when bounds fail.
537
+ */
435
538
  principalCopy(value, maxId, maxAttributes, maxChars) {
436
539
  if (typeof value.id !== "string" || value.id.length === 0 || value.id.length > maxId)
437
540
  return undefined;
@@ -459,6 +562,19 @@ const SignedSessionValues = Object.freeze({
459
562
  attributes: Object.freeze(Object.fromEntries(entries)),
460
563
  });
461
564
  },
565
+ /**
566
+ * Validates signed token claims, time limits, and principal bounds.
567
+ * @param value The decoded signed-token claims to validate.
568
+ * @param issuer The required token issuer.
569
+ * @param audience The required token audience.
570
+ * @param ttl The maximum token lifetime in seconds.
571
+ * @param skew The accepted clock skew in seconds.
572
+ * @param now The current epoch milliseconds.
573
+ * @param maxId The maximum principal identifier length.
574
+ * @param maxAttributes The maximum attribute count.
575
+ * @param maxChars The maximum combined attribute characters.
576
+ * @returns Validated claims, or undefined when verification fails.
577
+ */
462
578
  validClaims(value, issuer, audience, ttl, skew, now, maxId, maxAttributes, maxChars) {
463
579
  if (!SignedSessionValues.plain(value) ||
464
580
  Object.keys(value).some((key) => !["iss", "aud", "sub", "iat", "nbf", "exp", "jti", "attributes"].includes(key)))
@@ -495,9 +611,20 @@ const SignedSessionValues = Object.freeze({
495
611
  ...(principal.attributes === undefined ? {} : { attributes: principal.attributes }),
496
612
  };
497
613
  },
614
+ /**
615
+ * Creates a Protobuf timestamp from epoch seconds.
616
+ * @param seconds The timestamp seconds.
617
+ * @returns The Protobuf timestamp.
618
+ */
498
619
  timestamp(seconds) {
499
620
  return create(TimestampSchema, { seconds: BigInt(seconds) });
500
621
  },
622
+ /**
623
+ * Creates a resolved session with a detached principal.
624
+ * @param principal The principal to copy.
625
+ * @param seconds The timestamp seconds.
626
+ * @returns The detached resolved session.
627
+ */
501
628
  session(principal, seconds) {
502
629
  const copied = SignedSessionValues.principalCopy(principal, Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
503
630
  if (copied === undefined)
@@ -507,19 +634,41 @@ const SignedSessionValues = Object.freeze({
507
634
  expiresAt: SignedSessionValues.timestamp(seconds),
508
635
  });
509
636
  },
637
+ /**
638
+ * Checks whether epoch milliseconds fit a Protobuf timestamp.
639
+ * @param milliseconds The candidate epoch milliseconds.
640
+ * @returns Whether the instant is representable.
641
+ */
510
642
  timeValid(milliseconds) {
511
643
  const seconds = Math.floor(milliseconds / 1000);
512
644
  return seconds >= -62_135_596_800 && seconds <= 253_402_300_799;
513
645
  },
646
+ /**
647
+ * Checks a token identifier against expected random encoding.
648
+ * @param value The token identifier to check.
649
+ * @returns Whether the token identifier has the expected shape.
650
+ */
514
651
  validJti(value) {
515
652
  return value.length === 22 && SignedSessionValues.base64url(value);
516
653
  },
654
+ /**
655
+ * Reads a safe signed-session clock value.
656
+ * @param clock The configured millisecond clock.
657
+ * @returns The validated epoch milliseconds.
658
+ */
517
659
  clockValue(clock) {
518
660
  const value = clock.now();
519
661
  if (!Number.isSafeInteger(value) || !SignedSessionValues.timeValid(value))
520
662
  throw new Error("invalid clock");
521
663
  return value;
522
664
  },
665
+ /**
666
+ * Calculates when a retired signing key may be removed.
667
+ * @param now The current epoch milliseconds.
668
+ * @param ttl The maximum token lifetime in seconds.
669
+ * @param skew The accepted clock skew in seconds.
670
+ * @returns The safe retired-key deadline.
671
+ */
523
672
  retentionDeadline(now, ttl, skew) {
524
673
  const seconds = ttl + skew;
525
674
  const milliseconds = seconds * 1_000;