eyecite-ts 0.8.4 → 0.9.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,2 +0,0 @@
1
- let e=null;function t(){return e}function n(t){e=t}const r=[{jurisdiction:`FL`,abbreviation:`STAT`,family:`abbreviated`,patterns:[`Fla. Stat.`,`Fla Stat`,`Fla. Stat. Ann.`,`F.S.`,`FS`]},{jurisdiction:`OH`,abbreviation:`RC`,family:`abbreviated`,patterns:[`R.C.`,`RC`,`O.R.C.`,`ORC`,`Ohio Rev. Code`,`Ohio Rev. Code Ann.`]},{jurisdiction:`MI`,abbreviation:`MCL`,family:`abbreviated`,patterns:[`MCL`,`M.C.L.`,`Mich. Comp. Laws`,`Mich. Comp. Laws Ann.`,`Mich. Comp. Laws Serv.`,`MCLA`,`MCLS`]},{jurisdiction:`UT`,abbreviation:`UC`,family:`abbreviated`,patterns:[`Utah Code`,`Utah Code Ann.`,`U.C.A.`,`UCA`]},{jurisdiction:`CO`,abbreviation:`CRS`,family:`abbreviated`,patterns:[`C.R.S.`,`CRS`,`Colo. Rev. Stat.`,`Colo. Rev. Stat. Ann.`]},{jurisdiction:`WA`,abbreviation:`RCW`,family:`abbreviated`,patterns:[`RCW`,`Wash. Rev. Code`,`Wash. Rev. Code Ann.`]},{jurisdiction:`NC`,abbreviation:`GS`,family:`abbreviated`,patterns:[`G.S.`,`GS`,`N.C. Gen. Stat.`,`N.C. Gen. Stat. Ann.`,`N.C.G.S.`,`NCGS`]},{jurisdiction:`GA`,abbreviation:`OCGA`,family:`abbreviated`,patterns:[`O.C.G.A.`,`OCGA`,`Ga. Code`,`Ga. Code Ann.`]},{jurisdiction:`PA`,abbreviation:`PaCS`,family:`abbreviated`,patterns:[`Pa.C.S.`,`Pa.C.S.A.`,`Pa. C.S.`,`Pa. C.S.A.`,`Pa. Cons. Stat.`]},{jurisdiction:`PA`,abbreviation:`PS`,family:`abbreviated`,patterns:[`P.S.`,`PS`]},{jurisdiction:`IN`,abbreviation:`IC`,family:`abbreviated`,patterns:[`Ind. Code`,`Ind. Code Ann.`,`Indiana Code`,`Indiana Code Ann.`,`I.C.`,`IC`,`Burns Ind. Code`,`Burns Ind. Code Ann.`]},{jurisdiction:`NJ`,abbreviation:`NJSA`,family:`abbreviated`,patterns:[`N.J.S.A.`,`NJSA`,`N.J.S.`,`NJS`]},{jurisdiction:`DE`,abbreviation:`DelC`,family:`abbreviated`,patterns:[`Del. C.`,`Del C`,`Del. Code`,`Del. Code Ann.`]}],i=[{jurisdiction:`NY`,abbreviation:`CPLR`,family:`named`,patterns:[`C.P.L.R.`,`CPLR`,`Civ. Prac. L. & R.`,`Civil Practice Law & Rules`]},{jurisdiction:`NY`,abbreviation:`CPL`,family:`named`,patterns:[`Crim. Proc.`,`Criminal Procedure`]},{jurisdiction:`NY`,abbreviation:`GBS`,family:`named`,patterns:[`Gen. Bus.`,`General Business`]},{jurisdiction:`NY`,abbreviation:`GOB`,family:`named`,patterns:[`Gen. Oblig.`,`General Obligations`]},{jurisdiction:`NY`,abbreviation:`PEN`,family:`named`,patterns:[`Penal`]},{jurisdiction:`NY`,abbreviation:`ISC`,family:`named`,patterns:[`Ins.`,`Insurance`]},{jurisdiction:`NY`,abbreviation:`LAB`,family:`named`,patterns:[`Lab.`,`Labor`]},{jurisdiction:`NY`,abbreviation:`RPL`,family:`named`,patterns:[`Real Prop.`,`Real Property`]},{jurisdiction:`NY`,abbreviation:`EXC`,family:`named`,patterns:[`Exec.`,`Executive`]},{jurisdiction:`NY`,abbreviation:`JUD`,family:`named`,patterns:[`Jud.`,`Judiciary`]},{jurisdiction:`NY`,abbreviation:`SCP`,family:`named`,patterns:[`Surr. Ct. Proc.`,`Surrogate's Court Procedure`]},{jurisdiction:`NY`,abbreviation:`CVR`,family:`named`,patterns:[`Civ. Rights`,`Civil Rights`]},{jurisdiction:`NY`,abbreviation:`CVP`,family:`named`,patterns:[`Civ. Prac.`,`Civil Practice`]},{jurisdiction:`NY`,abbreviation:`EDN`,family:`named`,patterns:[`Educ.`,`Education`]},{jurisdiction:`NY`,abbreviation:`TAX`,family:`named`,patterns:[`Tax`]},{jurisdiction:`NY`,abbreviation:`PBH`,family:`named`,patterns:[`Pub. Health`,`Public Health`]},{jurisdiction:`NY`,abbreviation:`SOS`,family:`named`,patterns:[`Soc. Serv.`,`Social Services`]},{jurisdiction:`NY`,abbreviation:`ELN`,family:`named`,patterns:[`Elec.`,`Election`]},{jurisdiction:`NY`,abbreviation:`ENV`,family:`named`,patterns:[`Env. Conserv.`,`Environmental Conservation`]},{jurisdiction:`NY`,abbreviation:`BNK`,family:`named`,patterns:[`Bank.`,`Banking`]},{jurisdiction:`NY`,abbreviation:`DRL`,family:`named`,patterns:[`Dom. Rel.`,`Domestic Relations`]},{jurisdiction:`CA`,abbreviation:`CCP`,family:`named`,patterns:[`Civ. Proc.`,`Civil Procedure`]},{jurisdiction:`CA`,abbreviation:`BPC`,family:`named`,patterns:[`Bus. & Prof.`,`Business & Professions`]},{jurisdiction:`CA`,abbreviation:`HSC`,family:`named`,patterns:[`Health & Saf.`,`Health & Safety`]},{jurisdiction:`CA`,abbreviation:`RTC`,family:`named`,patterns:[`Rev. & Tax.`,`Revenue & Taxation`]},{jurisdiction:`CA`,abbreviation:`FGC`,family:`named`,patterns:[`Fish & Game`]},{jurisdiction:`CA`,abbreviation:`FAC`,family:`named`,patterns:[`Food & Agric.`,`Food & Agricultural`]},{jurisdiction:`CA`,abbreviation:`HNC`,family:`named`,patterns:[`Harb. & Nav.`,`Harbors & Navigation`]},{jurisdiction:`CA`,abbreviation:`MVC`,family:`named`,patterns:[`Mil. & Vet.`,`Military & Veterans`]},{jurisdiction:`CA`,abbreviation:`PCC`,family:`named`,patterns:[`Pub. Cont.`,`Public Contract`,`Public Contracts`]},{jurisdiction:`CA`,abbreviation:`PRC`,family:`named`,patterns:[`Pub. Res.`,`Public Resources`]},{jurisdiction:`CA`,abbreviation:`PUC`,family:`named`,patterns:[`Pub. Util.`,`Public Utilities`]},{jurisdiction:`CA`,abbreviation:`SHC`,family:`named`,patterns:[`Sts. & High.`,`Streets & Highways`]},{jurisdiction:`CA`,abbreviation:`UIC`,family:`named`,patterns:[`Unemp. Ins.`,`Unemployment Insurance`]},{jurisdiction:`CA`,abbreviation:`WIC`,family:`named`,patterns:[`Welf. & Inst.`,`Welfare & Institutions`]},{jurisdiction:`CA`,abbreviation:`CIV`,family:`named`,patterns:[`Civ.`,`Civil`]},{jurisdiction:`CA`,abbreviation:`COM`,family:`named`,patterns:[`Com.`,`Commercial`]},{jurisdiction:`CA`,abbreviation:`CORP`,family:`named`,patterns:[`Corp.`,`Corporations`]},{jurisdiction:`CA`,abbreviation:`EDC`,family:`named`,patterns:[`Educ.`,`Education`]},{jurisdiction:`CA`,abbreviation:`ELEC`,family:`named`,patterns:[`Elec.`,`Elections`]},{jurisdiction:`CA`,abbreviation:`EVID`,family:`named`,patterns:[`Evid.`,`Evidence`]},{jurisdiction:`CA`,abbreviation:`FAM`,family:`named`,patterns:[`Fam.`,`Family`]},{jurisdiction:`CA`,abbreviation:`FIN`,family:`named`,patterns:[`Fin.`,`Financial`]},{jurisdiction:`CA`,abbreviation:`GOV`,family:`named`,patterns:[`Gov.`,`Government`]},{jurisdiction:`CA`,abbreviation:`INS`,family:`named`,patterns:[`Ins.`,`Insurance`]},{jurisdiction:`CA`,abbreviation:`LAB`,family:`named`,patterns:[`Lab.`,`Labor`]},{jurisdiction:`CA`,abbreviation:`PEN`,family:`named`,patterns:[`Penal`]},{jurisdiction:`CA`,abbreviation:`PROB`,family:`named`,patterns:[`Prob.`,`Probate`]},{jurisdiction:`CA`,abbreviation:`VEH`,family:`named`,patterns:[`Veh.`,`Vehicle`]},{jurisdiction:`CA`,abbreviation:`WAT`,family:`named`,patterns:[`Wat.`,`Water`]},{jurisdiction:`TX`,abbreviation:`CP`,family:`named`,patterns:[`Civ. Prac. & Rem.`,`Civil Practice & Remedies`]},{jurisdiction:`TX`,abbreviation:`CR`,family:`named`,patterns:[`Crim. Proc.`,`Code of Criminal Procedure`]},{jurisdiction:`TX`,abbreviation:`BC`,family:`named`,patterns:[`Bus. & Com.`,`Business & Commerce`]},{jurisdiction:`TX`,abbreviation:`BO`,family:`named`,patterns:[`Bus. Org.`,`Business Organizations`]},{jurisdiction:`TX`,abbreviation:`HS`,family:`named`,patterns:[`Health & Saf.`,`Health & Safety`]},{jurisdiction:`TX`,abbreviation:`HR`,family:`named`,patterns:[`Human Res.`,`Human Resources`]},{jurisdiction:`TX`,abbreviation:`LG`,family:`named`,patterns:[`Local Gov.`,`Local Government`]},{jurisdiction:`TX`,abbreviation:`NR`,family:`named`,patterns:[`Nat. Res.`,`Natural Resources`]},{jurisdiction:`TX`,abbreviation:`PW`,family:`named`,patterns:[`Parks & Wild.`,`Parks & Wildlife`]},{jurisdiction:`TX`,abbreviation:`SD`,family:`named`,patterns:[`Spec. Dist.`,`Special District`]},{jurisdiction:`TX`,abbreviation:`AL`,family:`named`,patterns:[`Alco. Bev.`,`Alcoholic Beverage`]},{jurisdiction:`TX`,abbreviation:`WL`,family:`named`,patterns:[`Water`]},{jurisdiction:`TX`,abbreviation:`CV`,family:`named`,patterns:[`Vernon's Civ. Stat.`,`Vernon's Civil Statutes`]},{jurisdiction:`TX`,abbreviation:`GV`,family:`named`,patterns:[`Gov't`,`Government`]},{jurisdiction:`TX`,abbreviation:`AG`,family:`named`,patterns:[`Agric.`,`Agriculture`]},{jurisdiction:`TX`,abbreviation:`ED`,family:`named`,patterns:[`Educ.`,`Education`]},{jurisdiction:`TX`,abbreviation:`EL`,family:`named`,patterns:[`Elec.`,`Election`]},{jurisdiction:`TX`,abbreviation:`ES`,family:`named`,patterns:[`Est.`,`Estates`]},{jurisdiction:`TX`,abbreviation:`FA`,family:`named`,patterns:[`Fam.`,`Family`]},{jurisdiction:`TX`,abbreviation:`FI`,family:`named`,patterns:[`Fin.`,`Finance`]},{jurisdiction:`TX`,abbreviation:`IN`,family:`named`,patterns:[`Ins.`,`Insurance`]},{jurisdiction:`TX`,abbreviation:`LA`,family:`named`,patterns:[`Lab.`,`Labor`]},{jurisdiction:`TX`,abbreviation:`OC`,family:`named`,patterns:[`Occup.`,`Occupations`]},{jurisdiction:`TX`,abbreviation:`PE`,family:`named`,patterns:[`Penal`]},{jurisdiction:`TX`,abbreviation:`PB`,family:`named`,patterns:[`Prob.`,`Probate`]},{jurisdiction:`TX`,abbreviation:`PR`,family:`named`,patterns:[`Prop.`,`Property`]},{jurisdiction:`TX`,abbreviation:`TX`,family:`named`,patterns:[`Tax`]},{jurisdiction:`TX`,abbreviation:`TN`,family:`named`,patterns:[`Transp.`,`Transportation`]},{jurisdiction:`TX`,abbreviation:`UT`,family:`named`,patterns:[`Util.`,`Utilities`]},{jurisdiction:`MD`,abbreviation:`gag`,family:`named`,patterns:[`Agric.`,`Agriculture`]},{jurisdiction:`MD`,abbreviation:`gab`,family:`named`,patterns:[`Alc. Bev.`,`Alcoholic Beverages and Cannabis`]},{jurisdiction:`MD`,abbreviation:`gbo`,family:`named`,patterns:[`Bus. Occ. & Prof.`,`Business Occupations and Professions`]},{jurisdiction:`MD`,abbreviation:`gbr`,family:`named`,patterns:[`Bus. Reg.`,`Business Regulation`]},{jurisdiction:`MD`,abbreviation:`gcl`,family:`named`,patterns:[`Com. Law`,`Commercial Law`]},{jurisdiction:`MD`,abbreviation:`gca`,family:`named`,patterns:[`Corps. & Ass'ns`,`Corporations and Associations`]},{jurisdiction:`MD`,abbreviation:`gcs`,family:`named`,patterns:[`Corr. Servs.`,`Correctional Services`]},{jurisdiction:`MD`,abbreviation:`gcj`,family:`named`,patterns:[`Cts. & Jud. Proc.`,`Courts and Judicial Proceedings`]},{jurisdiction:`MD`,abbreviation:`gcr`,family:`named`,patterns:[`Crim. Law`,`Criminal Law`]},{jurisdiction:`MD`,abbreviation:`gcp`,family:`named`,patterns:[`Crim. Proc.`,`Criminal Procedure`]},{jurisdiction:`MD`,abbreviation:`gec`,family:`named`,patterns:[`Econ. Dev.`,`Economic Development`]},{jurisdiction:`MD`,abbreviation:`ged`,family:`named`,patterns:[`Educ.`,`Education`]},{jurisdiction:`MD`,abbreviation:`gel`,family:`named`,patterns:[`Elec. Law`,`Election Law`]},{jurisdiction:`MD`,abbreviation:`gen`,family:`named`,patterns:[`Envir.`,`Environment`]},{jurisdiction:`MD`,abbreviation:`get`,family:`named`,patterns:[`Est. & Trusts`,`Estates and Trusts`]},{jurisdiction:`MD`,abbreviation:`gfl`,family:`named`,patterns:[`Fam. Law`,`Family Law`]},{jurisdiction:`MD`,abbreviation:`gfi`,family:`named`,patterns:[`Fin. Inst.`,`Financial Institutions`]},{jurisdiction:`MD`,abbreviation:`ggp`,family:`named`,patterns:[`Gen. Prov.`,`General Provisions`]},{jurisdiction:`MD`,abbreviation:`ghg`,family:`named`,patterns:[`Health-Gen.`,`Health - General`]},{jurisdiction:`MD`,abbreviation:`gho`,family:`named`,patterns:[`Health Occ.`,`Health Occupations`]},{jurisdiction:`MD`,abbreviation:`ghs`,family:`named`,patterns:[`Hous. & Cmty. Dev.`,`Housing and Community Development`]},{jurisdiction:`MD`,abbreviation:`ghu`,family:`named`,patterns:[`Hum. Servs.`,`Human Services`]},{jurisdiction:`MD`,abbreviation:`gin`,family:`named`,patterns:[`Ins.`,`Insurance`]},{jurisdiction:`MD`,abbreviation:`gle`,family:`named`,patterns:[`Lab. & Empl.`,`Labor and Employment`]},{jurisdiction:`MD`,abbreviation:`glu`,family:`named`,patterns:[`Land Use`]},{jurisdiction:`MD`,abbreviation:`glg`,family:`named`,patterns:[`Local Gov't`,`Local Government`]},{jurisdiction:`MD`,abbreviation:`gnr`,family:`named`,patterns:[`Nat. Res.`,`Natural Resources`]},{jurisdiction:`MD`,abbreviation:`gps`,family:`named`,patterns:[`Pub. Safety`,`Public Safety`]},{jurisdiction:`MD`,abbreviation:`gpu`,family:`named`,patterns:[`PUC`,`Public Utilities`]},{jurisdiction:`MD`,abbreviation:`grp`,family:`named`,patterns:[`Real Prop.`,`Real Property`]},{jurisdiction:`MD`,abbreviation:`gsf`,family:`named`,patterns:[`State Fin. & Proc.`,`State Finance and Procurement`]},{jurisdiction:`MD`,abbreviation:`gsg`,family:`named`,patterns:[`State Gov't`,`State Government`]},{jurisdiction:`MD`,abbreviation:`gsp`,family:`named`,patterns:[`State Pers. & Pens.`,`State Personnel and Pensions`]},{jurisdiction:`MD`,abbreviation:`gtg`,family:`named`,patterns:[`Tax-Gen.`,`Tax - General`]},{jurisdiction:`MD`,abbreviation:`gtp`,family:`named`,patterns:[`Tax-Prop.`,`Tax - Property`]},{jurisdiction:`MD`,abbreviation:`gtr`,family:`named`,patterns:[`Transp.`,`Transportation`]},{jurisdiction:`VA`,abbreviation:`CODE`,family:`named`,patterns:[`Code`,`Code Ann.`]},{jurisdiction:`AL`,abbreviation:`CODE`,family:`named`,patterns:[`Code`,`Code Ann.`]},{jurisdiction:`MA`,abbreviation:`GL`,family:`named`,patterns:[`Gen. Laws`,`General Laws`]}];function a(e,t){let n=t.replace(/\s+/g,` `).trim().toLowerCase(),r=o.get(e);if(!r)return;let i,a=0;for(let{entry:e,lower:t}of r)(n===t||n.startsWith(t))&&t.length>a&&(i=e,a=t.length);return i}const o=new Map;for(let e of i){let t=o.get(e.jurisdiction);t||(t=[],o.set(e.jurisdiction,t));for(let n of e.patterns)t.push({entry:e,lower:n.toLowerCase()})}const s=new Map;for(let e of r)for(let t of e.patterns)s.set(t.toLowerCase(),e);function c(e){let t=e.toLowerCase(),n=s.get(t);if(n)return n;let r,i=0;for(let[e,n]of s)t.startsWith(e)&&e.length>i&&(r=n,i=e.length);return r}export{t as a,i,c as n,n as o,a as r,r as t};
2
- //# sourceMappingURL=knownCodes-DTkb3Uw9.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"knownCodes-DTkb3Uw9.mjs","names":[],"sources":["../src/data/reportersCache.ts","../src/data/knownCodes.ts"],"sourcesContent":["/**\n * Lightweight reporters-db cache — no dynamic imports.\n *\n * Separated from reporters.ts so modules in the core bundle\n * (e.g., filterFalsePositives) can read the cached database\n * without pulling in the heavy reporters.json dynamic import.\n *\n * @module data/reportersCache\n */\n\nimport type { ReportersDatabase } from \"./reporters\"\n\nlet cached: ReportersDatabase | null = null\n\n/** Get cached reporter database (null if not yet loaded). */\nexport function getReportersSync(): ReportersDatabase | null {\n return cached\n}\n\n/** Set the cached reporter database (called by loadReporters). */\nexport function setReportersCache(db: ReportersDatabase): void {\n cached = db\n}\n","/**\n * Known statutory code registry for abbreviated-code jurisdictions\n *\n * Provides a registry of state statutory codes that use abbreviated\n * citation forms (e.g., \"R.C. § 1.01\", \"MCL 750.83\"). Used by the\n * citation extractor to identify and normalize state statute citations.\n */\n\n/**\n * A single entry in the known codes registry.\n *\n * PA has two entries (Pa.C.S. and P.S.) because it has two distinct\n * code families with separate abbreviation sets.\n */\nexport interface CodeEntry {\n /** Two-letter state abbreviation (e.g., \"OH\", \"MI\") */\n jurisdiction: string\n /** Short canonical abbreviation used internally (e.g., \"RC\", \"MCL\") */\n abbreviation: string\n /** All recognized text patterns that identify this code */\n patterns: string[]\n /** Citation family — determines which citation pattern family this belongs to */\n family: \"federal\" | \"named\" | \"abbreviated\" | \"chapterAct\" | \"prose\"\n}\n\n/**\n * Registry of state statutory codes that use abbreviated citation forms.\n *\n * Covers 12 jurisdictions. Pennsylvania has two entries because it\n * maintains two distinct code families (Pa.C.S. and P.S.).\n *\n * Note: Short 2-letter patterns (GS, IC, PS, RC, FS) may produce false positives\n * in non-legal text (e.g., \"GS 5\" for government service grade). The extraction\n * layer mitigates this via confidence scoring — citations without a § symbol receive\n * lower confidence (0.85 vs 0.95). Consumers should filter by confidence threshold.\n */\nexport const abbreviatedCodes: CodeEntry[] = [\n {\n jurisdiction: \"FL\",\n abbreviation: \"STAT\",\n family: \"abbreviated\",\n patterns: [\"Fla. Stat.\", \"Fla Stat\", \"Fla. Stat. Ann.\", \"F.S.\", \"FS\"],\n },\n {\n jurisdiction: \"OH\",\n abbreviation: \"RC\",\n family: \"abbreviated\",\n patterns: [\"R.C.\", \"RC\", \"O.R.C.\", \"ORC\", \"Ohio Rev. Code\", \"Ohio Rev. Code Ann.\"],\n },\n {\n jurisdiction: \"MI\",\n abbreviation: \"MCL\",\n family: \"abbreviated\",\n patterns: [\n \"MCL\",\n \"M.C.L.\",\n \"Mich. Comp. Laws\",\n \"Mich. Comp. Laws Ann.\",\n \"Mich. Comp. Laws Serv.\",\n \"MCLA\",\n \"MCLS\",\n ],\n },\n {\n jurisdiction: \"UT\",\n abbreviation: \"UC\",\n family: \"abbreviated\",\n patterns: [\"Utah Code\", \"Utah Code Ann.\", \"U.C.A.\", \"UCA\"],\n },\n {\n jurisdiction: \"CO\",\n abbreviation: \"CRS\",\n family: \"abbreviated\",\n patterns: [\"C.R.S.\", \"CRS\", \"Colo. Rev. Stat.\", \"Colo. Rev. Stat. Ann.\"],\n },\n {\n jurisdiction: \"WA\",\n abbreviation: \"RCW\",\n family: \"abbreviated\",\n patterns: [\"RCW\", \"Wash. Rev. Code\", \"Wash. Rev. Code Ann.\"],\n },\n {\n jurisdiction: \"NC\",\n abbreviation: \"GS\",\n family: \"abbreviated\",\n patterns: [\"G.S.\", \"GS\", \"N.C. Gen. Stat.\", \"N.C. Gen. Stat. Ann.\", \"N.C.G.S.\", \"NCGS\"],\n },\n {\n jurisdiction: \"GA\",\n abbreviation: \"OCGA\",\n family: \"abbreviated\",\n patterns: [\"O.C.G.A.\", \"OCGA\", \"Ga. Code\", \"Ga. Code Ann.\"],\n },\n {\n jurisdiction: \"PA\",\n abbreviation: \"PaCS\",\n family: \"abbreviated\",\n patterns: [\"Pa.C.S.\", \"Pa.C.S.A.\", \"Pa. C.S.\", \"Pa. C.S.A.\", \"Pa. Cons. Stat.\"],\n },\n {\n jurisdiction: \"PA\",\n abbreviation: \"PS\",\n family: \"abbreviated\",\n patterns: [\"P.S.\", \"PS\"],\n },\n {\n jurisdiction: \"IN\",\n abbreviation: \"IC\",\n family: \"abbreviated\",\n patterns: [\n \"Ind. Code\",\n \"Ind. Code Ann.\",\n \"Indiana Code\",\n \"Indiana Code Ann.\",\n \"I.C.\",\n \"IC\",\n \"Burns Ind. Code\",\n \"Burns Ind. Code Ann.\",\n ],\n },\n {\n jurisdiction: \"NJ\",\n abbreviation: \"NJSA\",\n family: \"abbreviated\",\n patterns: [\"N.J.S.A.\", \"NJSA\", \"N.J.S.\", \"NJS\"],\n },\n {\n jurisdiction: \"DE\",\n abbreviation: \"DelC\",\n family: \"abbreviated\",\n patterns: [\"Del. C.\", \"Del C\", \"Del. Code\", \"Del. Code Ann.\"],\n },\n]\n\n/**\n * Registry of state statutory codes that use named-code citation forms.\n *\n * Named-code jurisdictions identify their code by name in citations (e.g.,\n * \"N.Y. Penal Law § 120.05\", \"Cal. Civ. Proc. Code § 437c\"), rather than by\n * a standalone abbreviation. The jurisdiction prefix is handled by the\n * extraction layer; these patterns cover only the code name portion.\n *\n * Ordering note: within each jurisdiction, more specific patterns must come\n * before more general ones (e.g., \"Civ. Proc.\" before \"Civ.\") so that\n * findNamedCode's longest-match wins correctly.\n *\n * Covers 7 jurisdictions: NY (21 entries), CA (29 entries), TX (29 entries),\n * MD (36 entries), VA (1 entry), AL (1 entry), MA (1 entry).\n */\nexport const namedCodes: CodeEntry[] = [\n // ── New York (21 entries) ──────────────────────────────────────────────────\n {\n jurisdiction: \"NY\",\n abbreviation: \"CPLR\",\n family: \"named\",\n patterns: [\"C.P.L.R.\", \"CPLR\", \"Civ. Prac. L. & R.\", \"Civil Practice Law & Rules\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"CPL\",\n family: \"named\",\n patterns: [\"Crim. Proc.\", \"Criminal Procedure\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"GBS\",\n family: \"named\",\n patterns: [\"Gen. Bus.\", \"General Business\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"GOB\",\n family: \"named\",\n patterns: [\"Gen. Oblig.\", \"General Obligations\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"PEN\",\n family: \"named\",\n patterns: [\"Penal\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"ISC\",\n family: \"named\",\n patterns: [\"Ins.\", \"Insurance\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"LAB\",\n family: \"named\",\n patterns: [\"Lab.\", \"Labor\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"RPL\",\n family: \"named\",\n patterns: [\"Real Prop.\", \"Real Property\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"EXC\",\n family: \"named\",\n patterns: [\"Exec.\", \"Executive\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"JUD\",\n family: \"named\",\n patterns: [\"Jud.\", \"Judiciary\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"SCP\",\n family: \"named\",\n patterns: [\"Surr. Ct. Proc.\", \"Surrogate's Court Procedure\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"CVR\",\n family: \"named\",\n patterns: [\"Civ. Rights\", \"Civil Rights\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"CVP\",\n family: \"named\",\n patterns: [\"Civ. Prac.\", \"Civil Practice\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"EDN\",\n family: \"named\",\n patterns: [\"Educ.\", \"Education\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"TAX\",\n family: \"named\",\n patterns: [\"Tax\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"PBH\",\n family: \"named\",\n patterns: [\"Pub. Health\", \"Public Health\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"SOS\",\n family: \"named\",\n patterns: [\"Soc. Serv.\", \"Social Services\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"ELN\",\n family: \"named\",\n patterns: [\"Elec.\", \"Election\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"ENV\",\n family: \"named\",\n patterns: [\"Env. Conserv.\", \"Environmental Conservation\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"BNK\",\n family: \"named\",\n patterns: [\"Bank.\", \"Banking\"],\n },\n {\n jurisdiction: \"NY\",\n abbreviation: \"DRL\",\n family: \"named\",\n patterns: [\"Dom. Rel.\", \"Domestic Relations\"],\n },\n\n // ── California (29 entries) ────────────────────────────────────────────────\n // CRITICAL: more specific patterns must come before general ones\n // (e.g., CCP \"Civ. Proc.\" before CIV \"Civ.\")\n {\n jurisdiction: \"CA\",\n abbreviation: \"CCP\",\n family: \"named\",\n patterns: [\"Civ. Proc.\", \"Civil Procedure\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"BPC\",\n family: \"named\",\n patterns: [\"Bus. & Prof.\", \"Business & Professions\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"HSC\",\n family: \"named\",\n patterns: [\"Health & Saf.\", \"Health & Safety\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"RTC\",\n family: \"named\",\n patterns: [\"Rev. & Tax.\", \"Revenue & Taxation\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"FGC\",\n family: \"named\",\n patterns: [\"Fish & Game\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"FAC\",\n family: \"named\",\n patterns: [\"Food & Agric.\", \"Food & Agricultural\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"HNC\",\n family: \"named\",\n patterns: [\"Harb. & Nav.\", \"Harbors & Navigation\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"MVC\",\n family: \"named\",\n patterns: [\"Mil. & Vet.\", \"Military & Veterans\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"PCC\",\n family: \"named\",\n patterns: [\"Pub. Cont.\", \"Public Contract\", \"Public Contracts\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"PRC\",\n family: \"named\",\n patterns: [\"Pub. Res.\", \"Public Resources\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"PUC\",\n family: \"named\",\n patterns: [\"Pub. Util.\", \"Public Utilities\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"SHC\",\n family: \"named\",\n patterns: [\"Sts. & High.\", \"Streets & Highways\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"UIC\",\n family: \"named\",\n patterns: [\"Unemp. Ins.\", \"Unemployment Insurance\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"WIC\",\n family: \"named\",\n patterns: [\"Welf. & Inst.\", \"Welfare & Institutions\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"CIV\",\n family: \"named\",\n patterns: [\"Civ.\", \"Civil\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"COM\",\n family: \"named\",\n patterns: [\"Com.\", \"Commercial\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"CORP\",\n family: \"named\",\n patterns: [\"Corp.\", \"Corporations\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"EDC\",\n family: \"named\",\n patterns: [\"Educ.\", \"Education\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"ELEC\",\n family: \"named\",\n patterns: [\"Elec.\", \"Elections\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"EVID\",\n family: \"named\",\n patterns: [\"Evid.\", \"Evidence\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"FAM\",\n family: \"named\",\n patterns: [\"Fam.\", \"Family\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"FIN\",\n family: \"named\",\n patterns: [\"Fin.\", \"Financial\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"GOV\",\n family: \"named\",\n patterns: [\"Gov.\", \"Government\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"INS\",\n family: \"named\",\n patterns: [\"Ins.\", \"Insurance\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"LAB\",\n family: \"named\",\n patterns: [\"Lab.\", \"Labor\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"PEN\",\n family: \"named\",\n patterns: [\"Penal\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"PROB\",\n family: \"named\",\n patterns: [\"Prob.\", \"Probate\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"VEH\",\n family: \"named\",\n patterns: [\"Veh.\", \"Vehicle\"],\n },\n {\n jurisdiction: \"CA\",\n abbreviation: \"WAT\",\n family: \"named\",\n patterns: [\"Wat.\", \"Water\"],\n },\n\n // ── Texas (30 entries) ────────────────────────────────────────────────────\n {\n jurisdiction: \"TX\",\n abbreviation: \"CP\",\n family: \"named\",\n patterns: [\"Civ. Prac. & Rem.\", \"Civil Practice & Remedies\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"CR\",\n family: \"named\",\n patterns: [\"Crim. Proc.\", \"Code of Criminal Procedure\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"BC\",\n family: \"named\",\n patterns: [\"Bus. & Com.\", \"Business & Commerce\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"BO\",\n family: \"named\",\n patterns: [\"Bus. Org.\", \"Business Organizations\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"HS\",\n family: \"named\",\n patterns: [\"Health & Saf.\", \"Health & Safety\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"HR\",\n family: \"named\",\n patterns: [\"Human Res.\", \"Human Resources\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"LG\",\n family: \"named\",\n patterns: [\"Local Gov.\", \"Local Government\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"NR\",\n family: \"named\",\n patterns: [\"Nat. Res.\", \"Natural Resources\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"PW\",\n family: \"named\",\n patterns: [\"Parks & Wild.\", \"Parks & Wildlife\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"SD\",\n family: \"named\",\n patterns: [\"Spec. Dist.\", \"Special District\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"AL\",\n family: \"named\",\n patterns: [\"Alco. Bev.\", \"Alcoholic Beverage\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"WL\",\n family: \"named\",\n patterns: [\"Water\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"CV\",\n family: \"named\",\n patterns: [\"Vernon's Civ. Stat.\", \"Vernon's Civil Statutes\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"GV\",\n family: \"named\",\n patterns: [\"Gov't\", \"Government\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"AG\",\n family: \"named\",\n patterns: [\"Agric.\", \"Agriculture\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"ED\",\n family: \"named\",\n patterns: [\"Educ.\", \"Education\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"EL\",\n family: \"named\",\n patterns: [\"Elec.\", \"Election\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"ES\",\n family: \"named\",\n patterns: [\"Est.\", \"Estates\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"FA\",\n family: \"named\",\n patterns: [\"Fam.\", \"Family\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"FI\",\n family: \"named\",\n patterns: [\"Fin.\", \"Finance\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"IN\",\n family: \"named\",\n patterns: [\"Ins.\", \"Insurance\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"LA\",\n family: \"named\",\n patterns: [\"Lab.\", \"Labor\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"OC\",\n family: \"named\",\n patterns: [\"Occup.\", \"Occupations\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"PE\",\n family: \"named\",\n patterns: [\"Penal\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"PB\",\n family: \"named\",\n patterns: [\"Prob.\", \"Probate\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"PR\",\n family: \"named\",\n patterns: [\"Prop.\", \"Property\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"TX\",\n family: \"named\",\n patterns: [\"Tax\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"TN\",\n family: \"named\",\n patterns: [\"Transp.\", \"Transportation\"],\n },\n {\n jurisdiction: \"TX\",\n abbreviation: \"UT\",\n family: \"named\",\n patterns: [\"Util.\", \"Utilities\"],\n },\n\n // ── Maryland (36 entries) ─────────────────────────────────────────────────\n {\n jurisdiction: \"MD\",\n abbreviation: \"gag\",\n family: \"named\",\n patterns: [\"Agric.\", \"Agriculture\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gab\",\n family: \"named\",\n patterns: [\"Alc. Bev.\", \"Alcoholic Beverages and Cannabis\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gbo\",\n family: \"named\",\n patterns: [\"Bus. Occ. & Prof.\", \"Business Occupations and Professions\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gbr\",\n family: \"named\",\n patterns: [\"Bus. Reg.\", \"Business Regulation\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gcl\",\n family: \"named\",\n patterns: [\"Com. Law\", \"Commercial Law\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gca\",\n family: \"named\",\n patterns: [\"Corps. & Ass'ns\", \"Corporations and Associations\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gcs\",\n family: \"named\",\n patterns: [\"Corr. Servs.\", \"Correctional Services\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gcj\",\n family: \"named\",\n patterns: [\"Cts. & Jud. Proc.\", \"Courts and Judicial Proceedings\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gcr\",\n family: \"named\",\n patterns: [\"Crim. Law\", \"Criminal Law\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gcp\",\n family: \"named\",\n patterns: [\"Crim. Proc.\", \"Criminal Procedure\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gec\",\n family: \"named\",\n patterns: [\"Econ. Dev.\", \"Economic Development\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"ged\",\n family: \"named\",\n patterns: [\"Educ.\", \"Education\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gel\",\n family: \"named\",\n patterns: [\"Elec. Law\", \"Election Law\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gen\",\n family: \"named\",\n patterns: [\"Envir.\", \"Environment\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"get\",\n family: \"named\",\n patterns: [\"Est. & Trusts\", \"Estates and Trusts\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gfl\",\n family: \"named\",\n patterns: [\"Fam. Law\", \"Family Law\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gfi\",\n family: \"named\",\n patterns: [\"Fin. Inst.\", \"Financial Institutions\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"ggp\",\n family: \"named\",\n patterns: [\"Gen. Prov.\", \"General Provisions\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"ghg\",\n family: \"named\",\n patterns: [\"Health-Gen.\", \"Health - General\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gho\",\n family: \"named\",\n patterns: [\"Health Occ.\", \"Health Occupations\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"ghs\",\n family: \"named\",\n patterns: [\"Hous. & Cmty. Dev.\", \"Housing and Community Development\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"ghu\",\n family: \"named\",\n patterns: [\"Hum. Servs.\", \"Human Services\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gin\",\n family: \"named\",\n patterns: [\"Ins.\", \"Insurance\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gle\",\n family: \"named\",\n patterns: [\"Lab. & Empl.\", \"Labor and Employment\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"glu\",\n family: \"named\",\n patterns: [\"Land Use\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"glg\",\n family: \"named\",\n patterns: [\"Local Gov't\", \"Local Government\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gnr\",\n family: \"named\",\n patterns: [\"Nat. Res.\", \"Natural Resources\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gps\",\n family: \"named\",\n patterns: [\"Pub. Safety\", \"Public Safety\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gpu\",\n family: \"named\",\n patterns: [\"PUC\", \"Public Utilities\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"grp\",\n family: \"named\",\n patterns: [\"Real Prop.\", \"Real Property\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gsf\",\n family: \"named\",\n patterns: [\"State Fin. & Proc.\", \"State Finance and Procurement\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gsg\",\n family: \"named\",\n patterns: [\"State Gov't\", \"State Government\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gsp\",\n family: \"named\",\n patterns: [\"State Pers. & Pens.\", \"State Personnel and Pensions\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gtg\",\n family: \"named\",\n patterns: [\"Tax-Gen.\", \"Tax - General\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gtp\",\n family: \"named\",\n patterns: [\"Tax-Prop.\", \"Tax - Property\"],\n },\n {\n jurisdiction: \"MD\",\n abbreviation: \"gtr\",\n family: \"named\",\n patterns: [\"Transp.\", \"Transportation\"],\n },\n\n // ── Virginia (1 entry) ────────────────────────────────────────────────────\n {\n jurisdiction: \"VA\",\n abbreviation: \"CODE\",\n family: \"named\",\n patterns: [\"Code\", \"Code Ann.\"],\n },\n\n // ── Alabama (1 entry) ─────────────────────────────────────────────────────\n {\n jurisdiction: \"AL\",\n abbreviation: \"CODE\",\n family: \"named\",\n patterns: [\"Code\", \"Code Ann.\"],\n },\n\n // ── Massachusetts (1 entry) ───────────────────────────────────────────────\n {\n jurisdiction: \"MA\",\n abbreviation: \"GL\",\n family: \"named\",\n patterns: [\"Gen. Laws\", \"General Laws\"],\n },\n]\n\n/**\n * Find a CodeEntry by jurisdiction and code name token.\n *\n * Lookup strategy: for each candidate entry in the given jurisdiction,\n * check whether the normalized codeName matches or starts with any of the\n * entry's patterns (case-insensitive). Returns the entry with the longest\n * matching pattern to prefer more specific codes over general ones\n * (e.g., \"Civ. Proc.\" over \"Civ.\").\n *\n * @param jurisdiction - Two-letter state abbreviation (e.g., \"CA\", \"NY\")\n * @param codeName - The code name token to look up (e.g., \"Penal\", \"Civ. Proc.\")\n * @returns Matching CodeEntry, or undefined if not found\n *\n * @example\n * findNamedCode('NY', 'Penal') // → NY PEN entry\n * findNamedCode('CA', 'Civ. Proc.') // → CA CCP entry (not CA CIV)\n * findNamedCode('MD', 'Crim. Law') // → MD gcr entry\n * findNamedCode('NY', 'Unknown') // → undefined\n */\nexport function findNamedCode(jurisdiction: string, codeName: string): CodeEntry | undefined {\n const normalized = codeName.replace(/\\s+/g, \" \").trim().toLowerCase()\n const candidates = _byJurisdiction.get(jurisdiction)\n if (!candidates) return undefined\n\n let bestMatch: CodeEntry | undefined\n let bestLen = 0\n\n for (const { entry, lower } of candidates) {\n if (normalized === lower || normalized.startsWith(lower)) {\n if (lower.length > bestLen) {\n bestMatch = entry\n bestLen = lower.length\n }\n }\n }\n return bestMatch\n}\n\n/**\n * Pre-built index: jurisdiction → array of { entry, lower } for O(1) jurisdiction lookup.\n * Patterns are pre-lowercased to avoid per-call allocations.\n */\nconst _byJurisdiction = new Map<string, Array<{ entry: CodeEntry; lower: string }>>()\nfor (const entry of namedCodes) {\n let arr = _byJurisdiction.get(entry.jurisdiction)\n if (!arr) {\n arr = []\n _byJurisdiction.set(entry.jurisdiction, arr)\n }\n for (const pattern of entry.patterns) {\n arr.push({ entry, lower: pattern.toLowerCase() })\n }\n}\n\n/**\n * Build a case-insensitive lookup index from pattern → CodeEntry.\n * Exact match first; prefix fallback is handled in findAbbreviatedCode.\n */\nconst _byPattern = new Map<string, CodeEntry>()\nfor (const entry of abbreviatedCodes) {\n for (const pattern of entry.patterns) {\n _byPattern.set(pattern.toLowerCase(), entry)\n }\n}\n\n/**\n * Find a CodeEntry by an abbreviated text token.\n *\n * Lookup order:\n * 1. Exact case-insensitive match against all patterns\n * 2. Prefix match — returns the entry whose pattern is the longest\n * prefix of `abbrevText` (handles tokens like \"RCW\" inside longer text)\n *\n * @param abbrevText - The abbreviation token to look up\n * @returns Matching CodeEntry, or undefined if not found\n *\n * @example\n * findAbbreviatedCode('R.C.') // → OH entry\n * findAbbreviatedCode('MCL') // → MI entry\n * findAbbreviatedCode('UNKNOWN') // → undefined\n */\nexport function findAbbreviatedCode(abbrevText: string): CodeEntry | undefined {\n const lower = abbrevText.toLowerCase()\n\n // 1. Exact match\n const exact = _byPattern.get(lower)\n if (exact) return exact\n\n // 2. Prefix fallback — find the longest pattern that is a prefix of abbrevText\n let bestMatch: CodeEntry | undefined\n let bestLen = 0\n for (const [pattern, entry] of _byPattern) {\n if (lower.startsWith(pattern) && pattern.length > bestLen) {\n bestMatch = entry\n bestLen = pattern.length\n }\n }\n return bestMatch\n}\n"],"mappings":"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"}