eyecite-ts 0.13.3 → 0.14.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.
@@ -1,4 +1,4 @@
1
- import { t as Citation } from "../citation-BaRqFZnV.cjs";
1
+ import { t as Citation } from "../citation-DVzO4qsD.cjs";
2
2
 
3
3
  //#region src/annotate/types.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { t as Citation } from "../citation-CVm_rp15.mjs";
1
+ import { t as Citation } from "../citation-Djz0Pc-N.mjs";
2
2
 
3
3
  //#region src/annotate/types.d.ts
4
4
  /**
@@ -1,10 +1,17 @@
1
1
  //#region src/extract/pincite.d.ts
2
2
  /**
3
3
  * Structured pincite information parsed from citation text.
4
+ *
5
+ * `page` and `paragraph` are mutually exclusive — a pincite is either a page
6
+ * reference (the common case) or a paragraph reference (#204; common in
7
+ * NY Slip Op, Canadian neutrals, and other paragraph-numbered sources). The
8
+ * top-level convenience `pincite: number` field on the citation continues to
9
+ * mirror `page` only; paragraph consumers read `paragraph` / `endParagraph`
10
+ * from this struct directly.
4
11
  */
5
12
  interface PinciteInfo {
6
- /** Primary page number */
7
- page: number;
13
+ /** Primary page number. Undefined when the pincite is paragraph-only (#204). */
14
+ page?: number;
8
15
  /** End page for ranges: "570-75" → 575 */
9
16
  endPage?: number;
10
17
  /** Footnote number: "570 n.3" → 3. For multi-footnote refs ("nn.3-5"), the
@@ -12,12 +19,24 @@ interface PinciteInfo {
12
19
  footnote?: number;
13
20
  /** End footnote for multi-note refs: "570 nn.3-5" → 5 */
14
21
  footnoteEnd?: number;
15
- /** True if this is a page range */
22
+ /** True if this is a page or paragraph range */
16
23
  isRange: boolean;
17
24
  /** True when the pincite uses star-pagination (e.g., "*2"), denoting a
18
25
  * slip-opinion page or unreported-decision page rather than a reporter page.
19
26
  * Common on NY Slip Op, Westlaw, and Lexis citations. */
20
27
  starPage?: boolean;
28
+ /** Paragraph number for `¶ N` / `para. N` pincites (#204). */
29
+ paragraph?: number;
30
+ /** End paragraph for `¶¶ N-M` / `paras. N-M` pincites (#204). */
31
+ endParagraph?: number;
32
+ /** Additional discrete pincites following the primary one (#247). E.g.,
33
+ * `410 U.S. 113, 115, 153` → first pincite is page=115, additionalPincites
34
+ * is `[{ page: 153, ... }]`. Each entry is a full `PinciteInfo` so ranges
35
+ * / footnotes / star-pages inside the comma chain are preserved
36
+ * (`115, 105-110` → additional has `endPage` set). The top-level
37
+ * convenience `pincite: number` field on the citation continues to mirror
38
+ * only the primary pincite; consumers needing all pincites read this array. */
39
+ additionalPincites?: PinciteInfo[];
21
40
  /** Original text before parsing */
22
41
  raw: string;
23
42
  }
@@ -281,9 +300,11 @@ interface Warning {
281
300
  }
282
301
  /**
283
302
  * Introductory signal word classification for citation support level.
284
- * Based on Bluebook signal categories (Rule 1.2).
303
+ * Based on Bluebook signal categories (Rule 1.2). The `, e.g.` combined
304
+ * forms (Rule 1.3) carry distinct meaning ("one of many illustrative
305
+ * authorities") and are tracked separately from the bare signals.
285
306
  */
286
- type CitationSignal = "see" | "see also" | "see generally" | "cf" | "but see" | "but cf" | "compare" | "accord" | "contra";
307
+ 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.";
287
308
  /**
288
309
  * Base fields shared by all citation types.
289
310
  */
@@ -360,8 +381,13 @@ interface Parenthetical {
360
381
  /**
361
382
  * Normalized subsequent history signal classification.
362
383
  * Maps variant spellings (aff'd, affirmed) to canonical forms.
384
+ *
385
+ * Texas Greenbook writ/petition history forms (placed inside the court-and-year
386
+ * parenthetical, per Tex. R. App. P. 47.7) are tracked with their own categories
387
+ * so downstream consumers can distinguish them from federal-style subsequent
388
+ * history. See #229.
363
389
  */
364
- type HistorySignal = "affirmed" | "reversed" | "cert_denied" | "cert_granted" | "overruled" | "vacated" | "remanded" | "modified" | "abrogated" | "superseded" | "disapproved" | "questioned" | "distinguished" | "withdrawn" | "reinstated";
390
+ type HistorySignal = "affirmed" | "reversed" | "cert_denied" | "cert_granted" | "overruled" | "vacated" | "remanded" | "modified" | "abrogated" | "superseded" | "disapproved" | "questioned" | "distinguished" | "withdrawn" | "reinstated" | "rehearing_denied" | "rehearing_granted" | "writ_refused" | "writ_dismissed" | "writ_denied" | "writ_granted" | "no_writ" | "pet_refused" | "pet_denied" | "pet_dismissed" | "pet_granted" | "pet_filed" | "no_pet" | "review_denied" | "review_granted" | "opinion_vacated" | "disapproved_other_grounds" | "not_published" | "petition_for_review_filed" | "petition_for_review_granted" | "petition_for_review_denied" | "superseded_by_grant_of_review" | "modified_on_denial_of_rehearing";
365
391
  /**
366
392
  * A single subsequent history entry from a case citation.
367
393
  *
@@ -396,6 +422,12 @@ interface FullCaseCitation extends CitationBase {
396
422
  /** Structured pincite information (page, range, footnote) */
397
423
  pinciteInfo?: PinciteInfo;
398
424
  court?: string;
425
+ /**
426
+ * True for citations whose source carried an unpublished-disposition marker.
427
+ * Set by NY Slip Op `(U)` / `[U]` suffix detection (#231). Absent or `false`
428
+ * for published decisions.
429
+ */
430
+ unpublished?: boolean;
399
431
  /** Normalized court string: spaces collapsed, trailing period ensured */
400
432
  normalizedCourt?: string;
401
433
  year?: number;
@@ -525,10 +557,34 @@ interface FullCaseCitation extends CitationBase {
525
557
  /**
526
558
  * Disposition or procedural status from parenthetical.
527
559
  * Populated by Phase 6 (Complex Parentheticals).
528
- * @example "en banc", "per curiam"
560
+ * @example "en banc", "per curiam", "dissent", "concurrence", "mixed", "plurality opinion", "mem."
529
561
  */
530
562
  disposition?: string;
531
563
  /**
564
+ * Surname(s) of justice(s) attributed to the parenthetical disposition.
565
+ * Populated for justice-attribution parens (#235) like
566
+ * `(Brennan, J., dissenting)` → `["Brennan"]` or
567
+ * `(Brennan and Marshall, JJ., dissenting)` → `["Brennan", "Marshall"]`.
568
+ */
569
+ justices?: string[];
570
+ /**
571
+ * Scope qualifier from a justice-attribution parenthetical (#235).
572
+ * `in_judgment` — "concurring in the judgment"
573
+ * `in_part` — "concurring in part" / "concurring in part and dissenting in part"
574
+ * `from_denial` — "dissenting from denial of <X>"
575
+ */
576
+ scope?: string;
577
+ /**
578
+ * Administrative parenthetical from a bankruptcy adversary caption (#241).
579
+ * In `Spence v. Hintze (In re Hintze), 570 B.R. 369`, the `(In re Hintze)`
580
+ * names the underlying debtor and is part of the case name (preserved on
581
+ * `caseName`). This field exposes the debtor identification separately so
582
+ * `defendant` / `defendantNormalized` can hold just the adversary defendant.
583
+ * Content is the parenthetical text without the surrounding parens — e.g.,
584
+ * `"In re Hintze"`.
585
+ */
586
+ adminParenthetical?: string;
587
+ /**
532
588
  * Court level/jurisdiction inferred from reporter series.
533
589
  * Always populated independently of the parenthetical `court` field.
534
590
  * Uses a curated static lookup table — does not depend on the reporter DB
@@ -609,6 +665,12 @@ interface NeutralCitation extends CitationBase {
609
665
  court: string;
610
666
  /** Document number */
611
667
  documentNumber: string;
668
+ /**
669
+ * True when the citation has an Illinois Rule 23 `-U` suffix (or analogous
670
+ * unpublished marker). The suffix is consumed and stripped from
671
+ * `documentNumber`. Absent or `false` for published decisions. (#230)
672
+ */
673
+ unpublished?: boolean;
612
674
  /** Pincite page (numeric portion, without "*" for star-pagination). */
613
675
  pincite?: number;
614
676
  /** Structured pincite information (page, range, footnote, star-pagination). */
@@ -837,4 +899,4 @@ type CitationOfType<T extends CitationType> = Extract<Citation, {
837
899
  type ExtractorMap = { [K in FullCitationType]: CitationOfType<K> };
838
900
  //#endregion
839
901
  export { ConstitutionalComponentSpans as A, PinciteInfo as B, ShortFormCitationType as C, SupraCitation as D, SubsequentHistoryEntry as E, StatuteComponentSpans as F, StatutesAtLargeComponentSpans as I, Span as L, JournalComponentSpans as M, NeutralComponentSpans as N, Warning as O, PublicLawComponentSpans as P, TransformationMap as R, ShortFormCitation as S, StatutesAtLargeCitation as T, parsePincite as V, NeutralCitation as _, CitationType as a, PublicLawCitation as b, DocketCitation as c, FullCaseCitation as d, FullCitation as f, JournalCitation as g, IdCitation as h, CitationSignal as i, FederalRegisterComponentSpans as j, CaseComponentSpans as k, ExtractorMap as l, HistorySignal as m, CitationBase as n, ConstitutionalCitation as o, FullCitationType as p, CitationOfType as r, CourtInference as s, Citation as t, FederalRegisterCitation as u, Parenthetical as v, StatuteCitation as w, ShortFormCaseCitation as x, ParentheticalType as y, spanFromGroupIndex as z };
840
- //# sourceMappingURL=citation-BaRqFZnV.d.cts.map
902
+ //# sourceMappingURL=citation-DVzO4qsD.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citation-DVzO4qsD.d.cts","names":[],"sources":["../src/extract/pincite.ts","../src/clean/segmentMap.ts","../src/types/span.ts","../src/types/componentSpans.ts","../src/types/citation.ts"],"mappings":"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"}
@@ -1,10 +1,17 @@
1
1
  //#region src/extract/pincite.d.ts
2
2
  /**
3
3
  * Structured pincite information parsed from citation text.
4
+ *
5
+ * `page` and `paragraph` are mutually exclusive — a pincite is either a page
6
+ * reference (the common case) or a paragraph reference (#204; common in
7
+ * NY Slip Op, Canadian neutrals, and other paragraph-numbered sources). The
8
+ * top-level convenience `pincite: number` field on the citation continues to
9
+ * mirror `page` only; paragraph consumers read `paragraph` / `endParagraph`
10
+ * from this struct directly.
4
11
  */
5
12
  interface PinciteInfo {
6
- /** Primary page number */
7
- page: number;
13
+ /** Primary page number. Undefined when the pincite is paragraph-only (#204). */
14
+ page?: number;
8
15
  /** End page for ranges: "570-75" → 575 */
9
16
  endPage?: number;
10
17
  /** Footnote number: "570 n.3" → 3. For multi-footnote refs ("nn.3-5"), the
@@ -12,12 +19,24 @@ interface PinciteInfo {
12
19
  footnote?: number;
13
20
  /** End footnote for multi-note refs: "570 nn.3-5" → 5 */
14
21
  footnoteEnd?: number;
15
- /** True if this is a page range */
22
+ /** True if this is a page or paragraph range */
16
23
  isRange: boolean;
17
24
  /** True when the pincite uses star-pagination (e.g., "*2"), denoting a
18
25
  * slip-opinion page or unreported-decision page rather than a reporter page.
19
26
  * Common on NY Slip Op, Westlaw, and Lexis citations. */
20
27
  starPage?: boolean;
28
+ /** Paragraph number for `¶ N` / `para. N` pincites (#204). */
29
+ paragraph?: number;
30
+ /** End paragraph for `¶¶ N-M` / `paras. N-M` pincites (#204). */
31
+ endParagraph?: number;
32
+ /** Additional discrete pincites following the primary one (#247). E.g.,
33
+ * `410 U.S. 113, 115, 153` → first pincite is page=115, additionalPincites
34
+ * is `[{ page: 153, ... }]`. Each entry is a full `PinciteInfo` so ranges
35
+ * / footnotes / star-pages inside the comma chain are preserved
36
+ * (`115, 105-110` → additional has `endPage` set). The top-level
37
+ * convenience `pincite: number` field on the citation continues to mirror
38
+ * only the primary pincite; consumers needing all pincites read this array. */
39
+ additionalPincites?: PinciteInfo[];
21
40
  /** Original text before parsing */
22
41
  raw: string;
23
42
  }
@@ -281,9 +300,11 @@ interface Warning {
281
300
  }
282
301
  /**
283
302
  * Introductory signal word classification for citation support level.
284
- * Based on Bluebook signal categories (Rule 1.2).
303
+ * Based on Bluebook signal categories (Rule 1.2). The `, e.g.` combined
304
+ * forms (Rule 1.3) carry distinct meaning ("one of many illustrative
305
+ * authorities") and are tracked separately from the bare signals.
285
306
  */
286
- type CitationSignal = "see" | "see also" | "see generally" | "cf" | "but see" | "but cf" | "compare" | "accord" | "contra";
307
+ 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.";
287
308
  /**
288
309
  * Base fields shared by all citation types.
289
310
  */
@@ -360,8 +381,13 @@ interface Parenthetical {
360
381
  /**
361
382
  * Normalized subsequent history signal classification.
362
383
  * Maps variant spellings (aff'd, affirmed) to canonical forms.
384
+ *
385
+ * Texas Greenbook writ/petition history forms (placed inside the court-and-year
386
+ * parenthetical, per Tex. R. App. P. 47.7) are tracked with their own categories
387
+ * so downstream consumers can distinguish them from federal-style subsequent
388
+ * history. See #229.
363
389
  */
364
- type HistorySignal = "affirmed" | "reversed" | "cert_denied" | "cert_granted" | "overruled" | "vacated" | "remanded" | "modified" | "abrogated" | "superseded" | "disapproved" | "questioned" | "distinguished" | "withdrawn" | "reinstated";
390
+ type HistorySignal = "affirmed" | "reversed" | "cert_denied" | "cert_granted" | "overruled" | "vacated" | "remanded" | "modified" | "abrogated" | "superseded" | "disapproved" | "questioned" | "distinguished" | "withdrawn" | "reinstated" | "rehearing_denied" | "rehearing_granted" | "writ_refused" | "writ_dismissed" | "writ_denied" | "writ_granted" | "no_writ" | "pet_refused" | "pet_denied" | "pet_dismissed" | "pet_granted" | "pet_filed" | "no_pet" | "review_denied" | "review_granted" | "opinion_vacated" | "disapproved_other_grounds" | "not_published" | "petition_for_review_filed" | "petition_for_review_granted" | "petition_for_review_denied" | "superseded_by_grant_of_review" | "modified_on_denial_of_rehearing";
365
391
  /**
366
392
  * A single subsequent history entry from a case citation.
367
393
  *
@@ -396,6 +422,12 @@ interface FullCaseCitation extends CitationBase {
396
422
  /** Structured pincite information (page, range, footnote) */
397
423
  pinciteInfo?: PinciteInfo;
398
424
  court?: string;
425
+ /**
426
+ * True for citations whose source carried an unpublished-disposition marker.
427
+ * Set by NY Slip Op `(U)` / `[U]` suffix detection (#231). Absent or `false`
428
+ * for published decisions.
429
+ */
430
+ unpublished?: boolean;
399
431
  /** Normalized court string: spaces collapsed, trailing period ensured */
400
432
  normalizedCourt?: string;
401
433
  year?: number;
@@ -525,10 +557,34 @@ interface FullCaseCitation extends CitationBase {
525
557
  /**
526
558
  * Disposition or procedural status from parenthetical.
527
559
  * Populated by Phase 6 (Complex Parentheticals).
528
- * @example "en banc", "per curiam"
560
+ * @example "en banc", "per curiam", "dissent", "concurrence", "mixed", "plurality opinion", "mem."
529
561
  */
530
562
  disposition?: string;
531
563
  /**
564
+ * Surname(s) of justice(s) attributed to the parenthetical disposition.
565
+ * Populated for justice-attribution parens (#235) like
566
+ * `(Brennan, J., dissenting)` → `["Brennan"]` or
567
+ * `(Brennan and Marshall, JJ., dissenting)` → `["Brennan", "Marshall"]`.
568
+ */
569
+ justices?: string[];
570
+ /**
571
+ * Scope qualifier from a justice-attribution parenthetical (#235).
572
+ * `in_judgment` — "concurring in the judgment"
573
+ * `in_part` — "concurring in part" / "concurring in part and dissenting in part"
574
+ * `from_denial` — "dissenting from denial of <X>"
575
+ */
576
+ scope?: string;
577
+ /**
578
+ * Administrative parenthetical from a bankruptcy adversary caption (#241).
579
+ * In `Spence v. Hintze (In re Hintze), 570 B.R. 369`, the `(In re Hintze)`
580
+ * names the underlying debtor and is part of the case name (preserved on
581
+ * `caseName`). This field exposes the debtor identification separately so
582
+ * `defendant` / `defendantNormalized` can hold just the adversary defendant.
583
+ * Content is the parenthetical text without the surrounding parens — e.g.,
584
+ * `"In re Hintze"`.
585
+ */
586
+ adminParenthetical?: string;
587
+ /**
532
588
  * Court level/jurisdiction inferred from reporter series.
533
589
  * Always populated independently of the parenthetical `court` field.
534
590
  * Uses a curated static lookup table — does not depend on the reporter DB
@@ -609,6 +665,12 @@ interface NeutralCitation extends CitationBase {
609
665
  court: string;
610
666
  /** Document number */
611
667
  documentNumber: string;
668
+ /**
669
+ * True when the citation has an Illinois Rule 23 `-U` suffix (or analogous
670
+ * unpublished marker). The suffix is consumed and stripped from
671
+ * `documentNumber`. Absent or `false` for published decisions. (#230)
672
+ */
673
+ unpublished?: boolean;
612
674
  /** Pincite page (numeric portion, without "*" for star-pagination). */
613
675
  pincite?: number;
614
676
  /** Structured pincite information (page, range, footnote, star-pagination). */
@@ -837,4 +899,4 @@ type CitationOfType<T extends CitationType> = Extract<Citation, {
837
899
  type ExtractorMap = { [K in FullCitationType]: CitationOfType<K> };
838
900
  //#endregion
839
901
  export { ConstitutionalComponentSpans as A, PinciteInfo as B, ShortFormCitationType as C, SupraCitation as D, SubsequentHistoryEntry as E, StatuteComponentSpans as F, StatutesAtLargeComponentSpans as I, Span as L, JournalComponentSpans as M, NeutralComponentSpans as N, Warning as O, PublicLawComponentSpans as P, TransformationMap as R, ShortFormCitation as S, StatutesAtLargeCitation as T, parsePincite as V, NeutralCitation as _, CitationType as a, PublicLawCitation as b, DocketCitation as c, FullCaseCitation as d, FullCitation as f, JournalCitation as g, IdCitation as h, CitationSignal as i, FederalRegisterComponentSpans as j, CaseComponentSpans as k, ExtractorMap as l, HistorySignal as m, CitationBase as n, ConstitutionalCitation as o, FullCitationType as p, CitationOfType as r, CourtInference as s, Citation as t, FederalRegisterCitation as u, Parenthetical as v, StatuteCitation as w, ShortFormCaseCitation as x, ParentheticalType as y, spanFromGroupIndex as z };
840
- //# sourceMappingURL=citation-CVm_rp15.d.mts.map
902
+ //# sourceMappingURL=citation-Djz0Pc-N.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citation-Djz0Pc-N.d.mts","names":[],"sources":["../src/extract/pincite.ts","../src/clean/segmentMap.ts","../src/types/span.ts","../src/types/componentSpans.ts","../src/types/citation.ts"],"mappings":"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"}