@kagal/taistamp 0.1.1 → 0.2.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.
@@ -0,0 +1,825 @@
1
+ {
2
+ "metadata": {
3
+ "toolPackage": "@microsoft/api-extractor",
4
+ "toolVersion": "7.58.9",
5
+ "schemaVersion": 1011,
6
+ "oldestForwardsCompatibleVersion": 1001,
7
+ "tsdocConfig": {
8
+ "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
9
+ "noStandardTags": true,
10
+ "tagDefinitions": [
11
+ {
12
+ "tagName": "@alpha",
13
+ "syntaxKind": "modifier"
14
+ },
15
+ {
16
+ "tagName": "@beta",
17
+ "syntaxKind": "modifier"
18
+ },
19
+ {
20
+ "tagName": "@defaultValue",
21
+ "syntaxKind": "block"
22
+ },
23
+ {
24
+ "tagName": "@decorator",
25
+ "syntaxKind": "block",
26
+ "allowMultiple": true
27
+ },
28
+ {
29
+ "tagName": "@deprecated",
30
+ "syntaxKind": "block"
31
+ },
32
+ {
33
+ "tagName": "@eventProperty",
34
+ "syntaxKind": "modifier"
35
+ },
36
+ {
37
+ "tagName": "@example",
38
+ "syntaxKind": "block",
39
+ "allowMultiple": true
40
+ },
41
+ {
42
+ "tagName": "@experimental",
43
+ "syntaxKind": "modifier"
44
+ },
45
+ {
46
+ "tagName": "@inheritDoc",
47
+ "syntaxKind": "inline"
48
+ },
49
+ {
50
+ "tagName": "@internal",
51
+ "syntaxKind": "modifier"
52
+ },
53
+ {
54
+ "tagName": "@label",
55
+ "syntaxKind": "inline"
56
+ },
57
+ {
58
+ "tagName": "@link",
59
+ "syntaxKind": "inline",
60
+ "allowMultiple": true
61
+ },
62
+ {
63
+ "tagName": "@override",
64
+ "syntaxKind": "modifier"
65
+ },
66
+ {
67
+ "tagName": "@packageDocumentation",
68
+ "syntaxKind": "modifier"
69
+ },
70
+ {
71
+ "tagName": "@param",
72
+ "syntaxKind": "block",
73
+ "allowMultiple": true
74
+ },
75
+ {
76
+ "tagName": "@privateRemarks",
77
+ "syntaxKind": "block"
78
+ },
79
+ {
80
+ "tagName": "@public",
81
+ "syntaxKind": "modifier"
82
+ },
83
+ {
84
+ "tagName": "@readonly",
85
+ "syntaxKind": "modifier"
86
+ },
87
+ {
88
+ "tagName": "@remarks",
89
+ "syntaxKind": "block"
90
+ },
91
+ {
92
+ "tagName": "@returns",
93
+ "syntaxKind": "block"
94
+ },
95
+ {
96
+ "tagName": "@sealed",
97
+ "syntaxKind": "modifier"
98
+ },
99
+ {
100
+ "tagName": "@see",
101
+ "syntaxKind": "block"
102
+ },
103
+ {
104
+ "tagName": "@throws",
105
+ "syntaxKind": "block",
106
+ "allowMultiple": true
107
+ },
108
+ {
109
+ "tagName": "@typeParam",
110
+ "syntaxKind": "block",
111
+ "allowMultiple": true
112
+ },
113
+ {
114
+ "tagName": "@virtual",
115
+ "syntaxKind": "modifier"
116
+ },
117
+ {
118
+ "tagName": "@jsx",
119
+ "syntaxKind": "block"
120
+ },
121
+ {
122
+ "tagName": "@jsxRuntime",
123
+ "syntaxKind": "block"
124
+ },
125
+ {
126
+ "tagName": "@jsxFrag",
127
+ "syntaxKind": "block"
128
+ },
129
+ {
130
+ "tagName": "@jsxImportSource",
131
+ "syntaxKind": "block"
132
+ },
133
+ {
134
+ "tagName": "@betaDocumentation",
135
+ "syntaxKind": "modifier"
136
+ },
137
+ {
138
+ "tagName": "@internalRemarks",
139
+ "syntaxKind": "block"
140
+ },
141
+ {
142
+ "tagName": "@preapproved",
143
+ "syntaxKind": "modifier"
144
+ }
145
+ ],
146
+ "supportForTags": {
147
+ "@alpha": true,
148
+ "@beta": true,
149
+ "@defaultValue": true,
150
+ "@decorator": true,
151
+ "@deprecated": true,
152
+ "@eventProperty": true,
153
+ "@example": true,
154
+ "@experimental": true,
155
+ "@inheritDoc": true,
156
+ "@internal": true,
157
+ "@label": true,
158
+ "@link": true,
159
+ "@override": true,
160
+ "@packageDocumentation": true,
161
+ "@param": true,
162
+ "@privateRemarks": true,
163
+ "@public": true,
164
+ "@readonly": true,
165
+ "@remarks": true,
166
+ "@returns": true,
167
+ "@sealed": true,
168
+ "@see": true,
169
+ "@throws": true,
170
+ "@typeParam": true,
171
+ "@virtual": true,
172
+ "@betaDocumentation": true,
173
+ "@internalRemarks": true,
174
+ "@preapproved": true
175
+ },
176
+ "reportUnsupportedHtmlElements": false
177
+ }
178
+ },
179
+ "kind": "Package",
180
+ "canonicalReference": "@kagal/taistamp!",
181
+ "docComment": "",
182
+ "name": "@kagal/taistamp",
183
+ "preserveMemberOrder": false,
184
+ "members": [
185
+ {
186
+ "kind": "EntryPoint",
187
+ "canonicalReference": "@kagal/taistamp/utils!",
188
+ "name": "utils",
189
+ "preserveMemberOrder": false,
190
+ "members": [
191
+ {
192
+ "kind": "Function",
193
+ "canonicalReference": "@kagal/taistamp/utils!decodeSFBinary:function(1)",
194
+ "docComment": "/**\n * Decode an sf-binary item back into bytes. Enforces the full RFC 9651 §3.3.5 syntax: throws `TypeError` when `value` does not satisfy {@link SF_BINARY_PATTERN}; the thrown message is optionally prefixed `<context>: `.\n */\n",
195
+ "excerptTokens": [
196
+ {
197
+ "kind": "Content",
198
+ "text": "decodeSFBinary: (value: "
199
+ },
200
+ {
201
+ "kind": "Content",
202
+ "text": "string"
203
+ },
204
+ {
205
+ "kind": "Content",
206
+ "text": ", context?: "
207
+ },
208
+ {
209
+ "kind": "Content",
210
+ "text": "string"
211
+ },
212
+ {
213
+ "kind": "Content",
214
+ "text": ") => "
215
+ },
216
+ {
217
+ "kind": "Reference",
218
+ "text": "Bytes",
219
+ "canonicalReference": "@kagal/taistamp/utils!Bytes:type"
220
+ }
221
+ ],
222
+ "fileUrlPath": "dist/utils.d.mts",
223
+ "returnTypeTokenRange": {
224
+ "startIndex": 5,
225
+ "endIndex": 6
226
+ },
227
+ "releaseTag": "Public",
228
+ "overloadIndex": 1,
229
+ "parameters": [
230
+ {
231
+ "parameterName": "value",
232
+ "parameterTypeTokenRange": {
233
+ "startIndex": 1,
234
+ "endIndex": 2
235
+ },
236
+ "isOptional": false
237
+ },
238
+ {
239
+ "parameterName": "context",
240
+ "parameterTypeTokenRange": {
241
+ "startIndex": 3,
242
+ "endIndex": 4
243
+ },
244
+ "isOptional": true
245
+ }
246
+ ],
247
+ "name": "decodeSFBinary"
248
+ },
249
+ {
250
+ "kind": "Function",
251
+ "canonicalReference": "@kagal/taistamp/utils!encodeSFBinary:function(1)",
252
+ "docComment": "/**\n * Encode bytes as an sf-binary item (RFC 9651 §3.3.5): standard base64 wrapped in colons. The output satisfies {@link SF_BINARY_PATTERN} and round-trips through {@link decodeSFBinary}.\n */\n",
253
+ "excerptTokens": [
254
+ {
255
+ "kind": "Content",
256
+ "text": "encodeSFBinary: (bytes: "
257
+ },
258
+ {
259
+ "kind": "Reference",
260
+ "text": "Readonly",
261
+ "canonicalReference": "!Readonly:type"
262
+ },
263
+ {
264
+ "kind": "Content",
265
+ "text": "<"
266
+ },
267
+ {
268
+ "kind": "Reference",
269
+ "text": "Uint8Array",
270
+ "canonicalReference": "!Uint8Array:interface"
271
+ },
272
+ {
273
+ "kind": "Content",
274
+ "text": ">"
275
+ },
276
+ {
277
+ "kind": "Content",
278
+ "text": ") => "
279
+ },
280
+ {
281
+ "kind": "Content",
282
+ "text": "string"
283
+ }
284
+ ],
285
+ "fileUrlPath": "dist/utils.d.mts",
286
+ "returnTypeTokenRange": {
287
+ "startIndex": 6,
288
+ "endIndex": 7
289
+ },
290
+ "releaseTag": "Public",
291
+ "overloadIndex": 1,
292
+ "parameters": [
293
+ {
294
+ "parameterName": "bytes",
295
+ "parameterTypeTokenRange": {
296
+ "startIndex": 1,
297
+ "endIndex": 5
298
+ },
299
+ "isOptional": false
300
+ }
301
+ ],
302
+ "name": "encodeSFBinary"
303
+ },
304
+ {
305
+ "kind": "Function",
306
+ "canonicalReference": "@kagal/taistamp/utils!fromUTC:function(1)",
307
+ "docComment": "/**\n * Convert a UTC timestamp in milliseconds (the `Date.now()` shape) to TAI seconds and nanoseconds, applying the current `TAI_LEAP_SECONDS` offset. The package deals in the current time: the offset tracks the present, and anything before the unix epoch is out of scope.\n */\n",
308
+ "excerptTokens": [
309
+ {
310
+ "kind": "Content",
311
+ "text": "fromUTC: (utc: "
312
+ },
313
+ {
314
+ "kind": "Content",
315
+ "text": "number"
316
+ },
317
+ {
318
+ "kind": "Content",
319
+ "text": ") => "
320
+ },
321
+ {
322
+ "kind": "Reference",
323
+ "text": "timestamp",
324
+ "canonicalReference": "@kagal/taistamp/utils!~timestamp:type"
325
+ }
326
+ ],
327
+ "fileUrlPath": "dist/_chunks/time.d.mts",
328
+ "returnTypeTokenRange": {
329
+ "startIndex": 3,
330
+ "endIndex": 4
331
+ },
332
+ "releaseTag": "Public",
333
+ "overloadIndex": 1,
334
+ "parameters": [
335
+ {
336
+ "parameterName": "utc",
337
+ "parameterTypeTokenRange": {
338
+ "startIndex": 1,
339
+ "endIndex": 2
340
+ },
341
+ "isOptional": false
342
+ }
343
+ ],
344
+ "name": "fromUTC"
345
+ },
346
+ {
347
+ "kind": "Function",
348
+ "canonicalReference": "@kagal/taistamp/utils!now:function(1)",
349
+ "docComment": "/**\n * The current TAI time as seconds and nanoseconds — {@link fromUTC} applied to `Date.now()`.\n */\n",
350
+ "excerptTokens": [
351
+ {
352
+ "kind": "Content",
353
+ "text": "now: () => "
354
+ },
355
+ {
356
+ "kind": "Reference",
357
+ "text": "timestamp",
358
+ "canonicalReference": "@kagal/taistamp/utils!~timestamp:type"
359
+ }
360
+ ],
361
+ "fileUrlPath": "dist/_chunks/time.d.mts",
362
+ "returnTypeTokenRange": {
363
+ "startIndex": 1,
364
+ "endIndex": 2
365
+ },
366
+ "releaseTag": "Public",
367
+ "overloadIndex": 1,
368
+ "parameters": [],
369
+ "name": "now"
370
+ },
371
+ {
372
+ "kind": "Variable",
373
+ "canonicalReference": "@kagal/taistamp/utils!SF_BINARY_PATTERN:var",
374
+ "docComment": "/**\n * sf-binary item per RFC 9651 §3.3.5: standard base64 with `=` padding, wrapped in a leading and trailing colon. The empty payload (`::`) is valid sf-binary; consumers impose their own length bounds. The alphabet contains no `,`, so a duplicated field (joined by the Web `Headers` API with `,`) fails the same check.\n */\n",
375
+ "excerptTokens": [
376
+ {
377
+ "kind": "Content",
378
+ "text": "SF_BINARY_PATTERN: "
379
+ },
380
+ {
381
+ "kind": "Reference",
382
+ "text": "RegExp",
383
+ "canonicalReference": "!RegExp:interface"
384
+ }
385
+ ],
386
+ "fileUrlPath": "dist/utils.d.mts",
387
+ "isReadonly": true,
388
+ "releaseTag": "Public",
389
+ "name": "SF_BINARY_PATTERN",
390
+ "variableTypeTokenRange": {
391
+ "startIndex": 1,
392
+ "endIndex": 2
393
+ }
394
+ },
395
+ {
396
+ "kind": "Variable",
397
+ "canonicalReference": "@kagal/taistamp/utils!TAI64_EPOCH_HI:var",
398
+ "docComment": "/**\n * @deprecated\n *\n * Renamed to {@link TAI64N_EPOCH_HI}.\n */\n",
399
+ "excerptTokens": [
400
+ {
401
+ "kind": "Content",
402
+ "text": "TAI64_EPOCH_HI = "
403
+ },
404
+ {
405
+ "kind": "Content",
406
+ "text": "1073741824"
407
+ }
408
+ ],
409
+ "fileUrlPath": "dist/_chunks/time.d.mts",
410
+ "initializerTokenRange": {
411
+ "startIndex": 1,
412
+ "endIndex": 2
413
+ },
414
+ "isReadonly": true,
415
+ "releaseTag": "Public",
416
+ "name": "TAI64_EPOCH_HI",
417
+ "variableTypeTokenRange": {
418
+ "startIndex": 0,
419
+ "endIndex": 0
420
+ }
421
+ },
422
+ {
423
+ "kind": "Variable",
424
+ "canonicalReference": "@kagal/taistamp/utils!TAI64N_CONTENT_LENGTH:var",
425
+ "docComment": "/**\n * @deprecated\n *\n * Renamed to {@link TAISTAMP_CONTENT_LENGTH}.\n */\n",
426
+ "excerptTokens": [
427
+ {
428
+ "kind": "Content",
429
+ "text": "TAI64N_CONTENT_LENGTH: "
430
+ },
431
+ {
432
+ "kind": "Content",
433
+ "text": "number"
434
+ }
435
+ ],
436
+ "fileUrlPath": "dist/_chunks/time.d.mts",
437
+ "isReadonly": true,
438
+ "releaseTag": "Public",
439
+ "name": "TAI64N_CONTENT_LENGTH",
440
+ "variableTypeTokenRange": {
441
+ "startIndex": 1,
442
+ "endIndex": 2
443
+ }
444
+ },
445
+ {
446
+ "kind": "Variable",
447
+ "canonicalReference": "@kagal/taistamp/utils!TAI64N_CONTENT_TYPE:var",
448
+ "docComment": "/**\n * Media type of a TAI64N label body.\n */\n",
449
+ "excerptTokens": [
450
+ {
451
+ "kind": "Content",
452
+ "text": "TAI64N_CONTENT_TYPE = "
453
+ },
454
+ {
455
+ "kind": "Content",
456
+ "text": "\"application/tai64n\""
457
+ }
458
+ ],
459
+ "fileUrlPath": "dist/_chunks/time.d.mts",
460
+ "initializerTokenRange": {
461
+ "startIndex": 1,
462
+ "endIndex": 2
463
+ },
464
+ "isReadonly": true,
465
+ "releaseTag": "Public",
466
+ "name": "TAI64N_CONTENT_TYPE",
467
+ "variableTypeTokenRange": {
468
+ "startIndex": 0,
469
+ "endIndex": 0
470
+ }
471
+ },
472
+ {
473
+ "kind": "Variable",
474
+ "canonicalReference": "@kagal/taistamp/utils!TAI64N_EPOCH_HI:var",
475
+ "docComment": "/**\n * High 32 bits of the TAI64 second count at the unix epoch.\n */\n",
476
+ "excerptTokens": [
477
+ {
478
+ "kind": "Content",
479
+ "text": "TAI64N_EPOCH_HI = "
480
+ },
481
+ {
482
+ "kind": "Content",
483
+ "text": "1073741824"
484
+ }
485
+ ],
486
+ "fileUrlPath": "dist/_chunks/time.d.mts",
487
+ "initializerTokenRange": {
488
+ "startIndex": 1,
489
+ "endIndex": 2
490
+ },
491
+ "isReadonly": true,
492
+ "releaseTag": "Public",
493
+ "name": "TAI64N_EPOCH_HI",
494
+ "variableTypeTokenRange": {
495
+ "startIndex": 0,
496
+ "endIndex": 0
497
+ }
498
+ },
499
+ {
500
+ "kind": "Variable",
501
+ "canonicalReference": "@kagal/taistamp/utils!TAI64N_HEADER_KEY_SELECTOR:var",
502
+ "docComment": "/**\n * @deprecated\n *\n * Renamed to {@link TAISTAMP_HEADER_KEY_SELECTOR}.\n */\n",
503
+ "excerptTokens": [
504
+ {
505
+ "kind": "Content",
506
+ "text": "TAI64N_HEADER_KEY_SELECTOR = "
507
+ },
508
+ {
509
+ "kind": "Content",
510
+ "text": "\"TAI-Key-Selector\""
511
+ }
512
+ ],
513
+ "fileUrlPath": "dist/_chunks/time.d.mts",
514
+ "initializerTokenRange": {
515
+ "startIndex": 1,
516
+ "endIndex": 2
517
+ },
518
+ "isReadonly": true,
519
+ "releaseTag": "Public",
520
+ "name": "TAI64N_HEADER_KEY_SELECTOR",
521
+ "variableTypeTokenRange": {
522
+ "startIndex": 0,
523
+ "endIndex": 0
524
+ }
525
+ },
526
+ {
527
+ "kind": "Variable",
528
+ "canonicalReference": "@kagal/taistamp/utils!TAI64N_HEADER_LEAP_SECONDS:var",
529
+ "docComment": "/**\n * @deprecated\n *\n * Renamed to {@link TAISTAMP_HEADER_LEAP_SECONDS}.\n */\n",
530
+ "excerptTokens": [
531
+ {
532
+ "kind": "Content",
533
+ "text": "TAI64N_HEADER_LEAP_SECONDS = "
534
+ },
535
+ {
536
+ "kind": "Content",
537
+ "text": "\"TAI-Leap-Seconds\""
538
+ }
539
+ ],
540
+ "fileUrlPath": "dist/_chunks/time.d.mts",
541
+ "initializerTokenRange": {
542
+ "startIndex": 1,
543
+ "endIndex": 2
544
+ },
545
+ "isReadonly": true,
546
+ "releaseTag": "Public",
547
+ "name": "TAI64N_HEADER_LEAP_SECONDS",
548
+ "variableTypeTokenRange": {
549
+ "startIndex": 0,
550
+ "endIndex": 0
551
+ }
552
+ },
553
+ {
554
+ "kind": "Variable",
555
+ "canonicalReference": "@kagal/taistamp/utils!TAI64N_HEADER_NONCE:var",
556
+ "docComment": "/**\n * @deprecated\n *\n * Renamed to {@link TAISTAMP_HEADER_NONCE}.\n */\n",
557
+ "excerptTokens": [
558
+ {
559
+ "kind": "Content",
560
+ "text": "TAI64N_HEADER_NONCE = "
561
+ },
562
+ {
563
+ "kind": "Content",
564
+ "text": "\"TAI-Nonce\""
565
+ }
566
+ ],
567
+ "fileUrlPath": "dist/_chunks/time.d.mts",
568
+ "initializerTokenRange": {
569
+ "startIndex": 1,
570
+ "endIndex": 2
571
+ },
572
+ "isReadonly": true,
573
+ "releaseTag": "Public",
574
+ "name": "TAI64N_HEADER_NONCE",
575
+ "variableTypeTokenRange": {
576
+ "startIndex": 0,
577
+ "endIndex": 0
578
+ }
579
+ },
580
+ {
581
+ "kind": "Variable",
582
+ "canonicalReference": "@kagal/taistamp/utils!TAI64N_HEADER_SIGNATURE:var",
583
+ "docComment": "/**\n * @deprecated\n *\n * Renamed to {@link TAISTAMP_HEADER_SIGNATURE}.\n */\n",
584
+ "excerptTokens": [
585
+ {
586
+ "kind": "Content",
587
+ "text": "TAI64N_HEADER_SIGNATURE = "
588
+ },
589
+ {
590
+ "kind": "Content",
591
+ "text": "\"TAI-Signature\""
592
+ }
593
+ ],
594
+ "fileUrlPath": "dist/_chunks/time.d.mts",
595
+ "initializerTokenRange": {
596
+ "startIndex": 1,
597
+ "endIndex": 2
598
+ },
599
+ "isReadonly": true,
600
+ "releaseTag": "Public",
601
+ "name": "TAI64N_HEADER_SIGNATURE",
602
+ "variableTypeTokenRange": {
603
+ "startIndex": 0,
604
+ "endIndex": 0
605
+ }
606
+ },
607
+ {
608
+ "kind": "Variable",
609
+ "canonicalReference": "@kagal/taistamp/utils!TAI64N_LABEL_LENGTH:var",
610
+ "docComment": "/**\n * Byte length of a TAI64N label: `@` + 16 sec + 8 nano hex digits.\n */\n",
611
+ "excerptTokens": [
612
+ {
613
+ "kind": "Content",
614
+ "text": "TAI64N_LABEL_LENGTH: "
615
+ },
616
+ {
617
+ "kind": "Content",
618
+ "text": "number"
619
+ }
620
+ ],
621
+ "fileUrlPath": "dist/_chunks/time.d.mts",
622
+ "isReadonly": true,
623
+ "releaseTag": "Public",
624
+ "name": "TAI64N_LABEL_LENGTH",
625
+ "variableTypeTokenRange": {
626
+ "startIndex": 1,
627
+ "endIndex": 2
628
+ }
629
+ },
630
+ {
631
+ "kind": "Variable",
632
+ "canonicalReference": "@kagal/taistamp/utils!TAI64N_LABEL_PATTERN:var",
633
+ "docComment": "/**\n * `@` followed by 24 hex digits — the TAI64N label wire form.\n */\n",
634
+ "excerptTokens": [
635
+ {
636
+ "kind": "Content",
637
+ "text": "TAI64N_LABEL_PATTERN: "
638
+ },
639
+ {
640
+ "kind": "Reference",
641
+ "text": "RegExp",
642
+ "canonicalReference": "!RegExp:interface"
643
+ }
644
+ ],
645
+ "fileUrlPath": "dist/_chunks/time.d.mts",
646
+ "isReadonly": true,
647
+ "releaseTag": "Public",
648
+ "name": "TAI64N_LABEL_PATTERN",
649
+ "variableTypeTokenRange": {
650
+ "startIndex": 1,
651
+ "endIndex": 2
652
+ }
653
+ },
654
+ {
655
+ "kind": "Variable",
656
+ "canonicalReference": "@kagal/taistamp/utils!TAI64N_PATH:var",
657
+ "docComment": "/**\n * @deprecated\n *\n * Renamed to {@link TAISTAMP_PATH}.\n */\n",
658
+ "excerptTokens": [
659
+ {
660
+ "kind": "Content",
661
+ "text": "TAI64N_PATH = "
662
+ },
663
+ {
664
+ "kind": "Content",
665
+ "text": "\"/.well-known/taistamp\""
666
+ }
667
+ ],
668
+ "fileUrlPath": "dist/_chunks/time.d.mts",
669
+ "initializerTokenRange": {
670
+ "startIndex": 1,
671
+ "endIndex": 2
672
+ },
673
+ "isReadonly": true,
674
+ "releaseTag": "Public",
675
+ "name": "TAI64N_PATH",
676
+ "variableTypeTokenRange": {
677
+ "startIndex": 0,
678
+ "endIndex": 0
679
+ }
680
+ },
681
+ {
682
+ "kind": "Function",
683
+ "canonicalReference": "@kagal/taistamp/utils!tai64nLabel:function(1)",
684
+ "docComment": "/**\n * Format a TAI timestamp as the 25-byte TAI64N label served at `/.well-known/taistamp`: `@` followed by 16 hex digits of TAI64 seconds (the 2^62 epoch offset applied) and 8 hex digits of nanoseconds. Defaults to {@link now} when no value is given.\n */\n",
685
+ "excerptTokens": [
686
+ {
687
+ "kind": "Content",
688
+ "text": "tai64nLabel: (value?: "
689
+ },
690
+ {
691
+ "kind": "Reference",
692
+ "text": "timestamp",
693
+ "canonicalReference": "@kagal/taistamp/utils!~timestamp:type"
694
+ },
695
+ {
696
+ "kind": "Content",
697
+ "text": ") => "
698
+ },
699
+ {
700
+ "kind": "Content",
701
+ "text": "string"
702
+ }
703
+ ],
704
+ "fileUrlPath": "dist/_chunks/time.d.mts",
705
+ "returnTypeTokenRange": {
706
+ "startIndex": 3,
707
+ "endIndex": 4
708
+ },
709
+ "releaseTag": "Public",
710
+ "overloadIndex": 1,
711
+ "parameters": [
712
+ {
713
+ "parameterName": "value",
714
+ "parameterTypeTokenRange": {
715
+ "startIndex": 1,
716
+ "endIndex": 2
717
+ },
718
+ "isOptional": true
719
+ }
720
+ ],
721
+ "name": "tai64nLabel"
722
+ },
723
+ {
724
+ "kind": "Function",
725
+ "canonicalReference": "@kagal/taistamp/utils!tai64nLabelFromUTC:function(1)",
726
+ "docComment": "/**\n * The 25-byte TAI64N label for a UTC timestamp in milliseconds — shorthand for `tai64nLabel(fromUTC(utc))`.\n *\n * Labels are fixed-width hex, so they order lexicographically: a verifier can bounds-check a received label between the labels of `Date.now() - skew` and `Date.now() + skew` without decoding it.\n */\n",
727
+ "excerptTokens": [
728
+ {
729
+ "kind": "Content",
730
+ "text": "tai64nLabelFromUTC: (utc: "
731
+ },
732
+ {
733
+ "kind": "Content",
734
+ "text": "number"
735
+ },
736
+ {
737
+ "kind": "Content",
738
+ "text": ") => "
739
+ },
740
+ {
741
+ "kind": "Content",
742
+ "text": "string"
743
+ }
744
+ ],
745
+ "fileUrlPath": "dist/_chunks/time.d.mts",
746
+ "returnTypeTokenRange": {
747
+ "startIndex": 3,
748
+ "endIndex": 4
749
+ },
750
+ "releaseTag": "Public",
751
+ "overloadIndex": 1,
752
+ "parameters": [
753
+ {
754
+ "parameterName": "utc",
755
+ "parameterTypeTokenRange": {
756
+ "startIndex": 1,
757
+ "endIndex": 2
758
+ },
759
+ "isOptional": false
760
+ }
761
+ ],
762
+ "name": "tai64nLabelFromUTC"
763
+ },
764
+ {
765
+ "kind": "Function",
766
+ "canonicalReference": "@kagal/taistamp/utils!tai64nLabelToUTC:function(1)",
767
+ "docComment": "/**\n * Recover a UTC timestamp in milliseconds (the `Date.now()` shape) from a TAI64N label — the inverse of {@link tai64nLabelFromUTC}. A label minted from a millisecond value round-trips back to it exactly; a `Date` is one `new Date(ms)` away.\n *\n * Returns `undefined` for any value that is not `@` followed by 24 hex digits (either case) — the verify-side \"malformed is absent\" collapse shared with `asSignature` and `asNonce`, so it drops straight into a gate pipeline.\n *\n * `leapSeconds` is the TAI − UTC offset removed when mapping TAI back to UTC; it defaults to the current {@link TAI_LEAP_SECONDS}, mirroring {@link fromUTC}. Pass a response's `extractLeapSeconds(headers)` to honour a server that declared a different count — an absent or malformed header yields `undefined` there and falls through to the default, while a genuine `0` is honoured.\n */\n",
768
+ "excerptTokens": [
769
+ {
770
+ "kind": "Content",
771
+ "text": "tai64nLabelToUTC: (label: "
772
+ },
773
+ {
774
+ "kind": "Content",
775
+ "text": "string"
776
+ },
777
+ {
778
+ "kind": "Content",
779
+ "text": ", leapSeconds?: "
780
+ },
781
+ {
782
+ "kind": "Reference",
783
+ "text": "LeapSeconds",
784
+ "canonicalReference": "@kagal/taistamp/utils!~LeapSeconds:type"
785
+ },
786
+ {
787
+ "kind": "Content",
788
+ "text": ") => "
789
+ },
790
+ {
791
+ "kind": "Content",
792
+ "text": "number | undefined"
793
+ }
794
+ ],
795
+ "fileUrlPath": "dist/_chunks/time.d.mts",
796
+ "returnTypeTokenRange": {
797
+ "startIndex": 5,
798
+ "endIndex": 6
799
+ },
800
+ "releaseTag": "Public",
801
+ "overloadIndex": 1,
802
+ "parameters": [
803
+ {
804
+ "parameterName": "label",
805
+ "parameterTypeTokenRange": {
806
+ "startIndex": 1,
807
+ "endIndex": 2
808
+ },
809
+ "isOptional": false
810
+ },
811
+ {
812
+ "parameterName": "leapSeconds",
813
+ "parameterTypeTokenRange": {
814
+ "startIndex": 3,
815
+ "endIndex": 4
816
+ },
817
+ "isOptional": true
818
+ }
819
+ ],
820
+ "name": "tai64nLabelToUTC"
821
+ }
822
+ ]
823
+ }
824
+ ]
825
+ }