eyecite-ts 0.29.2 → 0.31.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.
package/README.md CHANGED
@@ -151,6 +151,10 @@ if (citations[0].type === "case") {
151
151
  citations[0].parallelCitations
152
152
  // [{ volume: 93, reporter: 'S. Ct.', page: 705 },
153
153
  // { volume: 35, reporter: 'L. Ed. 2d', page: 147 }]
154
+
155
+ // Every member also carries the group by stable id (doc order, incl. self),
156
+ // so byId() resolves the full sibling citations (not lossy value-copies):
157
+ citations[0].parallelGroup // { memberIds: ['c0', 'c1', 'c2'] }
154
158
  }
155
159
  ```
156
160
 
@@ -185,6 +189,12 @@ const [cite] = extractCitations(text)
185
189
  if (cite.type === "case") {
186
190
  cite.subsequentHistoryEntries
187
191
  // [{ signal: 'affirmed', rawSignal: "aff'd", signalSpan: { ... }, order: 0 }]
192
+
193
+ // Ordered chain (root → latest), shared by every member, keyed by stable id:
194
+ cite.historyChain
195
+ // { links: [{ citationId: 'c0' }, { citationId: 'c1', signal: 'affirmed' }] }
196
+ // The back-reference also carries the parent's id alongside the numeric index:
197
+ // cite.subsequentHistoryOf // { index, priorId, signal }
188
198
  }
189
199
  ```
190
200
 
@@ -256,6 +266,8 @@ cite.signal // "see also"
256
266
 
257
267
  Recognized signals: `see`, `see also`, `see generally`, `cf`, `but see`, `but cf`, `compare`, `accord`, `contra`, `e.g.`, and combined forms (`see, e.g.`, `see also, e.g.`, `but see, e.g.`, `cf., e.g.`, `but cf., e.g.`).
258
268
 
269
+ Citations chained for one proposition (`See A; B; C`) form a **string-citation group** — each member carries `stringCitationGroup` (all member ids in document order, incl. self, keyed by stable id) plus the group's leading signal.
270
+
259
271
  ### Court Inference
260
272
 
261
273
  Case citations carry a `inferredCourt` field derived from the reporter series:
@@ -344,6 +356,23 @@ const ctx = getSurroundingContext(
344
356
  )
345
357
  ```
346
358
 
359
+ ### Citation Identity (`id` + `byId`)
360
+
361
+ Every citation returned by `extractCitations()` carries a stable `id` (`"c0"`, `"c1"`, … in document order). The id is stable **within one result set** — it survives `filter`/`sort`/`map`, unlike array position — so you can reference and look up citations by id rather than by index.
362
+
363
+ ```typescript
364
+ import { byId, extractCitations } from "eyecite-ts"
365
+
366
+ const citations = extractCitations(text)
367
+ citations[0].id // "c0"
368
+
369
+ // Build a lookup keyed by stable id:
370
+ const map = byId(citations) // Map<CitationId, Citation>
371
+ const cite = map.get(citations[0].id!)
372
+ ```
373
+
374
+ Because the key is the id and not the array position, `byId(citations.filter(...))` still resolves correctly after you have filtered or reordered the array. `id` is **not** durable across runs (the same text re-extracts to fresh ids each call) — for cross-run / cross-document identity use `toDurableLocator()` from `eyecite-ts/utils`.
375
+
347
376
  ## Type System
348
377
 
349
378
  All citation types use a [discriminated union](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) on the `type` field:
@@ -1,4 +1,4 @@
1
- import { n as Citation } from "../citation-CsWsvkxB.cjs";
1
+ import { n as Citation } from "../citation-CF4OCqrj.cjs";
2
2
 
3
3
  //#region src/annotate/types.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { n as Citation } from "../citation-Dy_8OOzV.mjs";
1
+ import { n as Citation } from "../citation-D-erWRnr.mjs";
2
2
 
3
3
  //#region src/annotate/types.d.ts
4
4
  /**
@@ -354,6 +354,28 @@ interface AnnotationComponentSpans {
354
354
  //#endregion
355
355
  //#region src/types/citation.d.ts
356
356
  /**
357
+ * Generic nominal-typing brand. Zero runtime cost — the value stays a plain `T`
358
+ * (so it survives `JSON.stringify`, `structuredClone`, and `{...spread}`); the
359
+ * brand only exists in the type system to prevent mixing unrelated string ids.
360
+ */
361
+ type Brand<T, B extends string> = T & {
362
+ readonly __brand: B;
363
+ };
364
+ /**
365
+ * Stable identity for a citation **within one `extractCitations()` result set**.
366
+ * Survives consumer `filter`/`sort`/`map` of the returned array, so aggregates
367
+ * (history chains, parallel groups, short-form references) reference members by
368
+ * id rather than by fragile positional array index.
369
+ *
370
+ * NOT durable across runs — the same logical citation re-extracts to a fresh id
371
+ * each call. For cross-run identity use `toDurableLocator()` (contentHash).
372
+ *
373
+ * Opaque token (currently `"c0"`, `"c1"`, …): compare it, key a `Map`/`Set` with
374
+ * it, store it as a reference — but never parse it or derive it from array
375
+ * position. See `docs/superpowers/specs/2026-06-06-inter-citation-grammar-design.md`.
376
+ */
377
+ type CitationId = Brand<string, "CitationId">;
378
+ /**
357
379
  * Citation type discriminator for type-safe pattern matching.
358
380
  */
359
381
  type CitationType = "case" | "docket" | "statute" | "regulation" | "stateRule" | "journal" | "neutral" | "publicLaw" | "federalRegister" | "statutesAtLarge" | "sessionLaw" | "treaty" | "legislativeMaterial" | "localOrdinance" | "canon" | "constitutional" | "federalRule" | "restatement" | "treatise" | "annotation" | "id" | "supra" | "shortFormCase";
@@ -381,9 +403,27 @@ interface Warning {
381
403
  */
382
404
  type CitationSignal = "see" | "see also" | "see generally" | "cf" | "but see" | "but cf" | "compare" | "accord" | "contra" | "e.g." | "see, e.g." | "see also, e.g." | "but see, e.g." | "cf., e.g." | "but cf., e.g.";
383
405
  /**
406
+ * A string-citation group (#857): citations chained for one proposition
407
+ * (`See A; B; C`). Members reference all members (including self) by stable
408
+ * `CitationId` in document order; `signal` is the group's leading signal. Built
409
+ * in the structuring pass; the flat `stringCitationGroupId` / `stringCitationIndex`
410
+ * / `stringCitationGroupSize` fields are retained alongside it.
411
+ */
412
+ interface StringCitationGroup {
413
+ memberIds: CitationId[];
414
+ signal?: CitationSignal;
415
+ }
416
+ /**
384
417
  * Base fields shared by all citation types.
385
418
  */
386
419
  interface CitationBase {
420
+ /**
421
+ * Stable identity within one `extractCitations()` result set (see {@link CitationId}).
422
+ * Populated by `extractCitations()` for every citation in its output. Optional
423
+ * because the granular per-type extractors (`extractCase()`, etc.) do not assign
424
+ * one — it is targeted to become required in a future major (#858).
425
+ */
426
+ id?: CitationId;
387
427
  /** Original matched text */
388
428
  text: string;
389
429
  /** Position span in document (originalStart/End point to original text) */
@@ -412,6 +452,12 @@ interface CitationBase {
412
452
  stringCitationIndex?: number;
413
453
  /** Total number of citations in this string citation group */
414
454
  stringCitationGroupSize?: number;
455
+ /**
456
+ * String-citation group (#857): all members (incl. self) by stable id, in
457
+ * document order, plus the group's leading signal. Survives consumer
458
+ * `filter`/`sort`/`map`. See {@link StringCitationGroup}.
459
+ */
460
+ stringCitationGroup?: StringCitationGroup;
415
461
  /** Whether this citation appears in a footnote (only populated when detectFootnotes enabled) */
416
462
  inFootnote?: boolean;
417
463
  /** Footnote number, if applicable (only populated when detectFootnotes enabled) */
@@ -487,6 +533,32 @@ interface SubsequentHistoryEntry {
487
533
  * @example "500 F.2d 123"
488
534
  * @example "410 U.S. 113, 115"
489
535
  */
536
+ /**
537
+ * One link in a subsequent-history chain (#849): the case at this position, plus
538
+ * the disposition signal that led TO it. The chain root has no inbound `signal`.
539
+ */
540
+ interface HistoryLink {
541
+ citationId: CitationId;
542
+ signal?: HistorySignal;
543
+ }
544
+ /**
545
+ * A subsequent-history chain (#849), ordered root → latest. Built post-id-assignment
546
+ * in the structuring pass and attached (shared) to every member, so a consumer can
547
+ * read the whole chain from any link. References members by stable `CitationId`,
548
+ * so it survives `filter`/`sort`/`map` of the result array.
549
+ */
550
+ interface HistoryChain {
551
+ links: HistoryLink[];
552
+ }
553
+ /**
554
+ * A parallel-citation group (#850): the same case reported in multiple reporters.
555
+ * Every member references all members (including itself) by stable `CitationId`,
556
+ * in document order. Built in the structuring pass; the flat `groupId` label and
557
+ * `parallelCitations` array are retained alongside it.
558
+ */
559
+ interface ParallelGroup {
560
+ memberIds: CitationId[];
561
+ }
490
562
  interface FullCaseCitation extends CitationBase {
491
563
  type: "case";
492
564
  volume: number | string;
@@ -516,6 +588,11 @@ interface FullCaseCitation extends CitationBase {
516
588
  * @example "410-U.S.-113" for parallel group [410 U.S. 113, 93 S. Ct. 705]
517
589
  */
518
590
  groupId?: string;
591
+ /**
592
+ * Parallel-citation group (#850): all members (incl. self) by stable id, in
593
+ * document order. Survives consumer `filter`/`sort`/`map`. See {@link ParallelGroup}.
594
+ */
595
+ parallelGroup?: ParallelGroup;
519
596
  /** Parallel citations for same case in different reporters */
520
597
  parallelCitations?: Array<{
521
598
  volume: number | string;
@@ -543,6 +620,13 @@ interface FullCaseCitation extends CitationBase {
543
620
  */
544
621
  subsequentHistoryEntries?: SubsequentHistoryEntry[];
545
622
  /**
623
+ * Ordered subsequent-history chain (root → latest), shared by every member of
624
+ * the chain (#849). Built in the structuring pass; references members by stable
625
+ * id. The flat `subsequentHistoryOf` / `subsequentHistoryEntries` fields are
626
+ * retained alongside it. See {@link HistoryChain}.
627
+ */
628
+ historyChain?: HistoryChain;
629
+ /**
546
630
  * Back-pointer indicating this citation is a subsequent history citation.
547
631
  * `index` is the parent's position in the results array returned by
548
632
  * `extractCitations()` — it becomes invalid if the array is filtered or reordered.
@@ -550,6 +634,7 @@ interface FullCaseCitation extends CitationBase {
550
634
  */
551
635
  subsequentHistoryOf?: {
552
636
  index: number;
637
+ priorId?: CitationId;
553
638
  signal: HistorySignal;
554
639
  };
555
640
  /**
@@ -1330,6 +1415,11 @@ interface IdCitation extends CitationBase {
1330
1415
  */
1331
1416
  pinciteInheritedFrom?: number;
1332
1417
  /**
1418
+ * Stable id of the `pinciteInheritedFrom` citation (#860). Survives consumer
1419
+ * `filter`/`sort`/`map` (keys on identity, not array position).
1420
+ */
1421
+ pinciteInheritedFromId?: CitationId;
1422
+ /**
1333
1423
  * Trailing parenthetical content (text between the parens, excluding the
1334
1424
  * parens themselves) captured from `Id. at N (...)` forms. Common values
1335
1425
  * include drop-citation markers (`citation omitted`, `internal quotation
@@ -1389,6 +1479,11 @@ interface SupraCitation extends CitationBase {
1389
1479
  */
1390
1480
  pinciteInheritedFrom?: number;
1391
1481
  /**
1482
+ * Stable id of the `pinciteInheritedFrom` citation (#860). Survives consumer
1483
+ * `filter`/`sort`/`map` (keys on identity, not array position).
1484
+ */
1485
+ pinciteInheritedFromId?: CitationId;
1486
+ /**
1392
1487
  * Trailing parenthetical content (text between the parens, excluding the
1393
1488
  * parens themselves). See `IdCitation.parenthetical` for common shapes
1394
1489
  * and rationale. #303
@@ -1427,6 +1522,11 @@ interface ShortFormCaseCitation extends CitationBase {
1427
1522
  */
1428
1523
  pinciteInheritedFrom?: number;
1429
1524
  /**
1525
+ * Stable id of the `pinciteInheritedFrom` citation (#860). Survives consumer
1526
+ * `filter`/`sort`/`map` (keys on identity, not array position).
1527
+ */
1528
+ pinciteInheritedFromId?: CitationId;
1529
+ /**
1430
1530
  * Case name inferred from prose preceding this short-form when no full
1431
1531
  * citation in `citations[]` matched its vol+reporter. Populated by the
1432
1532
  * resolver fallback for the "In Smith v. Jones... Smith, 100 F.2d at 200"
@@ -1480,12 +1580,12 @@ type Citation = FullCaseCitation | DocketCitation | StatuteCitation | Regulation
1480
1580
  /**
1481
1581
  * Citation type discriminators grouped by category.
1482
1582
  */
1483
- type FullCitationType = "case" | "docket" | "statute" | "journal" | "neutral" | "publicLaw" | "federalRegister" | "statutesAtLarge" | "sessionLaw" | "treaty" | "legislativeMaterial" | "localOrdinance" | "canon" | "constitutional" | "federalRule" | "stateRule" | "restatement" | "treatise" | "annotation";
1583
+ type FullCitationType = "case" | "docket" | "statute" | "regulation" | "journal" | "neutral" | "publicLaw" | "federalRegister" | "statutesAtLarge" | "sessionLaw" | "treaty" | "legislativeMaterial" | "localOrdinance" | "canon" | "constitutional" | "federalRule" | "stateRule" | "restatement" | "treatise" | "annotation";
1484
1584
  type ShortFormCitationType = "id" | "supra" | "shortFormCase";
1485
1585
  /**
1486
1586
  * Union of all full citation types (not short-form references).
1487
1587
  */
1488
- type FullCitation = FullCaseCitation | SessionLawCitation | TreatyCitation | LegislativeMaterialCitation | LocalOrdinanceCitation | CanonCitation | DocketCitation | StatuteCitation | JournalCitation | NeutralCitation | PublicLawCitation | FederalRegisterCitation | StatutesAtLargeCitation | ConstitutionalCitation | FederalRuleCitation | StateRuleCitation | RestatementCitation | TreatiseCitation | AnnotationCitation;
1588
+ type FullCitation = FullCaseCitation | SessionLawCitation | TreatyCitation | LegislativeMaterialCitation | LocalOrdinanceCitation | CanonCitation | DocketCitation | StatuteCitation | RegulationCitation | JournalCitation | NeutralCitation | PublicLawCitation | FederalRegisterCitation | StatutesAtLargeCitation | ConstitutionalCitation | FederalRuleCitation | StateRuleCitation | RestatementCitation | TreatiseCitation | AnnotationCitation;
1489
1589
  /**
1490
1590
  * Union of all short-form citation types (Id., supra, short-form case).
1491
1591
  */
@@ -1508,5 +1608,5 @@ type CitationOfType<T extends CitationType> = Extract<Citation, {
1508
1608
  */
1509
1609
  type ExtractorMap = { [K in FullCitationType]: CitationOfType<K> };
1510
1610
  //#endregion
1511
- export { SubsequentHistoryEntry as A, NeutralComponentSpans as B, RegulationCitation as C, ShortFormCitationType as D, ShortFormCitation as E, CaseComponentSpans as F, TreatiseComponentSpans as G, RestatementComponentSpans as H, ConstitutionalComponentSpans as I, spanFromGroupIndex as J, Span as K, FederalRegisterComponentSpans as L, TreatiseCitation as M, Warning as N, StatuteCitation as O, AnnotationComponentSpans as P, FederalRuleComponentSpans as R, PublicLawCitation as S, ShortFormCaseCitation as T, StatuteComponentSpans as U, PublicLawComponentSpans as V, StatutesAtLargeComponentSpans as W, parsePincite as X, PinciteInfo as Y, IdCitation as _, CitationSignal as a, Parenthetical as b, CourtInference as c, FederalRegisterCitation as d, FederalRuleCitation as f, HistorySignal as g, FullCitationType as h, CitationOfType as i, SupraCitation as j, StatutesAtLargeCitation as k, DocketCitation as l, FullCitation as m, Citation as n, CitationType as o, FullCaseCitation as p, TransformationMap as q, CitationBase as r, ConstitutionalCitation as s, AnnotationCitation as t, ExtractorMap as u, JournalCitation as v, RestatementCitation as w, ParentheticalType as x, NeutralCitation as y, JournalComponentSpans as z };
1512
- //# sourceMappingURL=citation-CsWsvkxB.d.cts.map
1611
+ export { spanFromGroupIndex as $, ShortFormCitation as A, CaseComponentSpans as B, ParallelGroup as C, RegulationCitation as D, PublicLawCitation as E, SubsequentHistoryEntry as F, NeutralComponentSpans as G, FederalRegisterComponentSpans as H, SupraCitation as I, StatuteComponentSpans as J, PublicLawComponentSpans as K, TreatiseCitation as L, StatuteCitation as M, StatutesAtLargeCitation as N, RestatementCitation as O, StringCitationGroup as P, TransformationMap as Q, Warning as R, NeutralCitation as S, ParentheticalType as T, FederalRuleComponentSpans as U, ConstitutionalComponentSpans as V, JournalComponentSpans as W, TreatiseComponentSpans as X, StatutesAtLargeComponentSpans as Y, Span as Z, HistoryChain as _, CitationOfType as a, IdCitation as b, ConstitutionalCitation as c, ExtractorMap as d, PinciteInfo as et, FederalRegisterCitation as f, FullCitationType as g, FullCitation as h, CitationId as i, ShortFormCitationType as j, ShortFormCaseCitation as k, CourtInference as l, FullCaseCitation as m, Citation as n, CitationSignal as o, FederalRuleCitation as p, RestatementComponentSpans as q, CitationBase as r, CitationType as s, AnnotationCitation as t, parsePincite as tt, DocketCitation as u, HistoryLink as v, Parenthetical as w, JournalCitation as x, HistorySignal as y, AnnotationComponentSpans as z };
1612
+ //# sourceMappingURL=citation-CF4OCqrj.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citation-CF4OCqrj.d.cts","names":[],"sources":["../src/extract/pincite.ts","../src/extract/dates.ts","../src/clean/segmentMap.ts","../src/types/span.ts","../src/types/componentSpans.ts","../src/types/citation.ts"],"mappings":"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"}
@@ -354,6 +354,28 @@ interface AnnotationComponentSpans {
354
354
  //#endregion
355
355
  //#region src/types/citation.d.ts
356
356
  /**
357
+ * Generic nominal-typing brand. Zero runtime cost — the value stays a plain `T`
358
+ * (so it survives `JSON.stringify`, `structuredClone`, and `{...spread}`); the
359
+ * brand only exists in the type system to prevent mixing unrelated string ids.
360
+ */
361
+ type Brand<T, B extends string> = T & {
362
+ readonly __brand: B;
363
+ };
364
+ /**
365
+ * Stable identity for a citation **within one `extractCitations()` result set**.
366
+ * Survives consumer `filter`/`sort`/`map` of the returned array, so aggregates
367
+ * (history chains, parallel groups, short-form references) reference members by
368
+ * id rather than by fragile positional array index.
369
+ *
370
+ * NOT durable across runs — the same logical citation re-extracts to a fresh id
371
+ * each call. For cross-run identity use `toDurableLocator()` (contentHash).
372
+ *
373
+ * Opaque token (currently `"c0"`, `"c1"`, …): compare it, key a `Map`/`Set` with
374
+ * it, store it as a reference — but never parse it or derive it from array
375
+ * position. See `docs/superpowers/specs/2026-06-06-inter-citation-grammar-design.md`.
376
+ */
377
+ type CitationId = Brand<string, "CitationId">;
378
+ /**
357
379
  * Citation type discriminator for type-safe pattern matching.
358
380
  */
359
381
  type CitationType = "case" | "docket" | "statute" | "regulation" | "stateRule" | "journal" | "neutral" | "publicLaw" | "federalRegister" | "statutesAtLarge" | "sessionLaw" | "treaty" | "legislativeMaterial" | "localOrdinance" | "canon" | "constitutional" | "federalRule" | "restatement" | "treatise" | "annotation" | "id" | "supra" | "shortFormCase";
@@ -381,9 +403,27 @@ interface Warning {
381
403
  */
382
404
  type CitationSignal = "see" | "see also" | "see generally" | "cf" | "but see" | "but cf" | "compare" | "accord" | "contra" | "e.g." | "see, e.g." | "see also, e.g." | "but see, e.g." | "cf., e.g." | "but cf., e.g.";
383
405
  /**
406
+ * A string-citation group (#857): citations chained for one proposition
407
+ * (`See A; B; C`). Members reference all members (including self) by stable
408
+ * `CitationId` in document order; `signal` is the group's leading signal. Built
409
+ * in the structuring pass; the flat `stringCitationGroupId` / `stringCitationIndex`
410
+ * / `stringCitationGroupSize` fields are retained alongside it.
411
+ */
412
+ interface StringCitationGroup {
413
+ memberIds: CitationId[];
414
+ signal?: CitationSignal;
415
+ }
416
+ /**
384
417
  * Base fields shared by all citation types.
385
418
  */
386
419
  interface CitationBase {
420
+ /**
421
+ * Stable identity within one `extractCitations()` result set (see {@link CitationId}).
422
+ * Populated by `extractCitations()` for every citation in its output. Optional
423
+ * because the granular per-type extractors (`extractCase()`, etc.) do not assign
424
+ * one — it is targeted to become required in a future major (#858).
425
+ */
426
+ id?: CitationId;
387
427
  /** Original matched text */
388
428
  text: string;
389
429
  /** Position span in document (originalStart/End point to original text) */
@@ -412,6 +452,12 @@ interface CitationBase {
412
452
  stringCitationIndex?: number;
413
453
  /** Total number of citations in this string citation group */
414
454
  stringCitationGroupSize?: number;
455
+ /**
456
+ * String-citation group (#857): all members (incl. self) by stable id, in
457
+ * document order, plus the group's leading signal. Survives consumer
458
+ * `filter`/`sort`/`map`. See {@link StringCitationGroup}.
459
+ */
460
+ stringCitationGroup?: StringCitationGroup;
415
461
  /** Whether this citation appears in a footnote (only populated when detectFootnotes enabled) */
416
462
  inFootnote?: boolean;
417
463
  /** Footnote number, if applicable (only populated when detectFootnotes enabled) */
@@ -487,6 +533,32 @@ interface SubsequentHistoryEntry {
487
533
  * @example "500 F.2d 123"
488
534
  * @example "410 U.S. 113, 115"
489
535
  */
536
+ /**
537
+ * One link in a subsequent-history chain (#849): the case at this position, plus
538
+ * the disposition signal that led TO it. The chain root has no inbound `signal`.
539
+ */
540
+ interface HistoryLink {
541
+ citationId: CitationId;
542
+ signal?: HistorySignal;
543
+ }
544
+ /**
545
+ * A subsequent-history chain (#849), ordered root → latest. Built post-id-assignment
546
+ * in the structuring pass and attached (shared) to every member, so a consumer can
547
+ * read the whole chain from any link. References members by stable `CitationId`,
548
+ * so it survives `filter`/`sort`/`map` of the result array.
549
+ */
550
+ interface HistoryChain {
551
+ links: HistoryLink[];
552
+ }
553
+ /**
554
+ * A parallel-citation group (#850): the same case reported in multiple reporters.
555
+ * Every member references all members (including itself) by stable `CitationId`,
556
+ * in document order. Built in the structuring pass; the flat `groupId` label and
557
+ * `parallelCitations` array are retained alongside it.
558
+ */
559
+ interface ParallelGroup {
560
+ memberIds: CitationId[];
561
+ }
490
562
  interface FullCaseCitation extends CitationBase {
491
563
  type: "case";
492
564
  volume: number | string;
@@ -516,6 +588,11 @@ interface FullCaseCitation extends CitationBase {
516
588
  * @example "410-U.S.-113" for parallel group [410 U.S. 113, 93 S. Ct. 705]
517
589
  */
518
590
  groupId?: string;
591
+ /**
592
+ * Parallel-citation group (#850): all members (incl. self) by stable id, in
593
+ * document order. Survives consumer `filter`/`sort`/`map`. See {@link ParallelGroup}.
594
+ */
595
+ parallelGroup?: ParallelGroup;
519
596
  /** Parallel citations for same case in different reporters */
520
597
  parallelCitations?: Array<{
521
598
  volume: number | string;
@@ -543,6 +620,13 @@ interface FullCaseCitation extends CitationBase {
543
620
  */
544
621
  subsequentHistoryEntries?: SubsequentHistoryEntry[];
545
622
  /**
623
+ * Ordered subsequent-history chain (root → latest), shared by every member of
624
+ * the chain (#849). Built in the structuring pass; references members by stable
625
+ * id. The flat `subsequentHistoryOf` / `subsequentHistoryEntries` fields are
626
+ * retained alongside it. See {@link HistoryChain}.
627
+ */
628
+ historyChain?: HistoryChain;
629
+ /**
546
630
  * Back-pointer indicating this citation is a subsequent history citation.
547
631
  * `index` is the parent's position in the results array returned by
548
632
  * `extractCitations()` — it becomes invalid if the array is filtered or reordered.
@@ -550,6 +634,7 @@ interface FullCaseCitation extends CitationBase {
550
634
  */
551
635
  subsequentHistoryOf?: {
552
636
  index: number;
637
+ priorId?: CitationId;
553
638
  signal: HistorySignal;
554
639
  };
555
640
  /**
@@ -1330,6 +1415,11 @@ interface IdCitation extends CitationBase {
1330
1415
  */
1331
1416
  pinciteInheritedFrom?: number;
1332
1417
  /**
1418
+ * Stable id of the `pinciteInheritedFrom` citation (#860). Survives consumer
1419
+ * `filter`/`sort`/`map` (keys on identity, not array position).
1420
+ */
1421
+ pinciteInheritedFromId?: CitationId;
1422
+ /**
1333
1423
  * Trailing parenthetical content (text between the parens, excluding the
1334
1424
  * parens themselves) captured from `Id. at N (...)` forms. Common values
1335
1425
  * include drop-citation markers (`citation omitted`, `internal quotation
@@ -1389,6 +1479,11 @@ interface SupraCitation extends CitationBase {
1389
1479
  */
1390
1480
  pinciteInheritedFrom?: number;
1391
1481
  /**
1482
+ * Stable id of the `pinciteInheritedFrom` citation (#860). Survives consumer
1483
+ * `filter`/`sort`/`map` (keys on identity, not array position).
1484
+ */
1485
+ pinciteInheritedFromId?: CitationId;
1486
+ /**
1392
1487
  * Trailing parenthetical content (text between the parens, excluding the
1393
1488
  * parens themselves). See `IdCitation.parenthetical` for common shapes
1394
1489
  * and rationale. #303
@@ -1427,6 +1522,11 @@ interface ShortFormCaseCitation extends CitationBase {
1427
1522
  */
1428
1523
  pinciteInheritedFrom?: number;
1429
1524
  /**
1525
+ * Stable id of the `pinciteInheritedFrom` citation (#860). Survives consumer
1526
+ * `filter`/`sort`/`map` (keys on identity, not array position).
1527
+ */
1528
+ pinciteInheritedFromId?: CitationId;
1529
+ /**
1430
1530
  * Case name inferred from prose preceding this short-form when no full
1431
1531
  * citation in `citations[]` matched its vol+reporter. Populated by the
1432
1532
  * resolver fallback for the "In Smith v. Jones... Smith, 100 F.2d at 200"
@@ -1480,12 +1580,12 @@ type Citation = FullCaseCitation | DocketCitation | StatuteCitation | Regulation
1480
1580
  /**
1481
1581
  * Citation type discriminators grouped by category.
1482
1582
  */
1483
- type FullCitationType = "case" | "docket" | "statute" | "journal" | "neutral" | "publicLaw" | "federalRegister" | "statutesAtLarge" | "sessionLaw" | "treaty" | "legislativeMaterial" | "localOrdinance" | "canon" | "constitutional" | "federalRule" | "stateRule" | "restatement" | "treatise" | "annotation";
1583
+ type FullCitationType = "case" | "docket" | "statute" | "regulation" | "journal" | "neutral" | "publicLaw" | "federalRegister" | "statutesAtLarge" | "sessionLaw" | "treaty" | "legislativeMaterial" | "localOrdinance" | "canon" | "constitutional" | "federalRule" | "stateRule" | "restatement" | "treatise" | "annotation";
1484
1584
  type ShortFormCitationType = "id" | "supra" | "shortFormCase";
1485
1585
  /**
1486
1586
  * Union of all full citation types (not short-form references).
1487
1587
  */
1488
- type FullCitation = FullCaseCitation | SessionLawCitation | TreatyCitation | LegislativeMaterialCitation | LocalOrdinanceCitation | CanonCitation | DocketCitation | StatuteCitation | JournalCitation | NeutralCitation | PublicLawCitation | FederalRegisterCitation | StatutesAtLargeCitation | ConstitutionalCitation | FederalRuleCitation | StateRuleCitation | RestatementCitation | TreatiseCitation | AnnotationCitation;
1588
+ type FullCitation = FullCaseCitation | SessionLawCitation | TreatyCitation | LegislativeMaterialCitation | LocalOrdinanceCitation | CanonCitation | DocketCitation | StatuteCitation | RegulationCitation | JournalCitation | NeutralCitation | PublicLawCitation | FederalRegisterCitation | StatutesAtLargeCitation | ConstitutionalCitation | FederalRuleCitation | StateRuleCitation | RestatementCitation | TreatiseCitation | AnnotationCitation;
1489
1589
  /**
1490
1590
  * Union of all short-form citation types (Id., supra, short-form case).
1491
1591
  */
@@ -1508,5 +1608,5 @@ type CitationOfType<T extends CitationType> = Extract<Citation, {
1508
1608
  */
1509
1609
  type ExtractorMap = { [K in FullCitationType]: CitationOfType<K> };
1510
1610
  //#endregion
1511
- export { SubsequentHistoryEntry as A, NeutralComponentSpans as B, RegulationCitation as C, ShortFormCitationType as D, ShortFormCitation as E, CaseComponentSpans as F, TreatiseComponentSpans as G, RestatementComponentSpans as H, ConstitutionalComponentSpans as I, spanFromGroupIndex as J, Span as K, FederalRegisterComponentSpans as L, TreatiseCitation as M, Warning as N, StatuteCitation as O, AnnotationComponentSpans as P, FederalRuleComponentSpans as R, PublicLawCitation as S, ShortFormCaseCitation as T, StatuteComponentSpans as U, PublicLawComponentSpans as V, StatutesAtLargeComponentSpans as W, parsePincite as X, PinciteInfo as Y, IdCitation as _, CitationSignal as a, Parenthetical as b, CourtInference as c, FederalRegisterCitation as d, FederalRuleCitation as f, HistorySignal as g, FullCitationType as h, CitationOfType as i, SupraCitation as j, StatutesAtLargeCitation as k, DocketCitation as l, FullCitation as m, Citation as n, CitationType as o, FullCaseCitation as p, TransformationMap as q, CitationBase as r, ConstitutionalCitation as s, AnnotationCitation as t, ExtractorMap as u, JournalCitation as v, RestatementCitation as w, ParentheticalType as x, NeutralCitation as y, JournalComponentSpans as z };
1512
- //# sourceMappingURL=citation-Dy_8OOzV.d.mts.map
1611
+ export { spanFromGroupIndex as $, ShortFormCitation as A, CaseComponentSpans as B, ParallelGroup as C, RegulationCitation as D, PublicLawCitation as E, SubsequentHistoryEntry as F, NeutralComponentSpans as G, FederalRegisterComponentSpans as H, SupraCitation as I, StatuteComponentSpans as J, PublicLawComponentSpans as K, TreatiseCitation as L, StatuteCitation as M, StatutesAtLargeCitation as N, RestatementCitation as O, StringCitationGroup as P, TransformationMap as Q, Warning as R, NeutralCitation as S, ParentheticalType as T, FederalRuleComponentSpans as U, ConstitutionalComponentSpans as V, JournalComponentSpans as W, TreatiseComponentSpans as X, StatutesAtLargeComponentSpans as Y, Span as Z, HistoryChain as _, CitationOfType as a, IdCitation as b, ConstitutionalCitation as c, ExtractorMap as d, PinciteInfo as et, FederalRegisterCitation as f, FullCitationType as g, FullCitation as h, CitationId as i, ShortFormCitationType as j, ShortFormCaseCitation as k, CourtInference as l, FullCaseCitation as m, Citation as n, CitationSignal as o, FederalRuleCitation as p, RestatementComponentSpans as q, CitationBase as r, CitationType as s, AnnotationCitation as t, parsePincite as tt, DocketCitation as u, HistoryLink as v, Parenthetical as w, JournalCitation as x, HistorySignal as y, AnnotationComponentSpans as z };
1612
+ //# sourceMappingURL=citation-D-erWRnr.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citation-D-erWRnr.d.mts","names":[],"sources":["../src/extract/pincite.ts","../src/extract/dates.ts","../src/clean/segmentMap.ts","../src/types/span.ts","../src/types/componentSpans.ts","../src/types/citation.ts"],"mappings":"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"}