@mailwoman/codex 4.0.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.
Files changed (113) hide show
  1. package/out/ca/index.d.ts +12 -0
  2. package/out/ca/index.d.ts.map +1 -0
  3. package/out/ca/index.js +12 -0
  4. package/out/ca/index.js.map +1 -0
  5. package/out/ca/postal-code.d.ts +74 -0
  6. package/out/ca/postal-code.d.ts.map +1 -0
  7. package/out/ca/postal-code.js +100 -0
  8. package/out/ca/postal-code.js.map +1 -0
  9. package/out/ca/province.d.ts +114 -0
  10. package/out/ca/province.d.ts.map +1 -0
  11. package/out/ca/province.js +79 -0
  12. package/out/ca/province.js.map +1 -0
  13. package/out/ca/street-type.d.ts +57 -0
  14. package/out/ca/street-type.d.ts.map +1 -0
  15. package/out/ca/street-type.js +156 -0
  16. package/out/ca/street-type.js.map +1 -0
  17. package/out/de/bundesland.d.ts +124 -0
  18. package/out/de/bundesland.d.ts.map +1 -0
  19. package/out/de/bundesland.js +81 -0
  20. package/out/de/bundesland.js.map +1 -0
  21. package/out/de/index.d.ts +12 -0
  22. package/out/de/index.d.ts.map +1 -0
  23. package/out/de/index.js +12 -0
  24. package/out/de/index.js.map +1 -0
  25. package/out/de/postleitzahl.d.ts +108 -0
  26. package/out/de/postleitzahl.d.ts.map +1 -0
  27. package/out/de/postleitzahl.js +63 -0
  28. package/out/de/postleitzahl.js.map +1 -0
  29. package/out/de/street-type.d.ts +58 -0
  30. package/out/de/street-type.d.ts.map +1 -0
  31. package/out/de/street-type.js +79 -0
  32. package/out/de/street-type.js.map +1 -0
  33. package/out/fr/code-postal.d.ts +68 -0
  34. package/out/fr/code-postal.d.ts.map +1 -0
  35. package/out/fr/code-postal.js +84 -0
  36. package/out/fr/code-postal.js.map +1 -0
  37. package/out/fr/departement.d.ts +538 -0
  38. package/out/fr/departement.d.ts.map +1 -0
  39. package/out/fr/departement.js +127 -0
  40. package/out/fr/departement.js.map +1 -0
  41. package/out/fr/index.d.ts +13 -0
  42. package/out/fr/index.d.ts.map +1 -0
  43. package/out/fr/index.js +13 -0
  44. package/out/fr/index.js.map +1 -0
  45. package/out/fr/region.d.ts +113 -0
  46. package/out/fr/region.d.ts.map +1 -0
  47. package/out/fr/region.js +76 -0
  48. package/out/fr/region.js.map +1 -0
  49. package/out/fr/voie.d.ts +64 -0
  50. package/out/fr/voie.d.ts.map +1 -0
  51. package/out/fr/voie.js +88 -0
  52. package/out/fr/voie.js.map +1 -0
  53. package/out/gb/country.d.ts +51 -0
  54. package/out/gb/country.d.ts.map +1 -0
  55. package/out/gb/country.js +56 -0
  56. package/out/gb/country.js.map +1 -0
  57. package/out/gb/index.d.ts +14 -0
  58. package/out/gb/index.d.ts.map +1 -0
  59. package/out/gb/index.js +14 -0
  60. package/out/gb/index.js.map +1 -0
  61. package/out/gb/postcode-area.d.ts +46 -0
  62. package/out/gb/postcode-area.d.ts.map +1 -0
  63. package/out/gb/postcode-area.js +101 -0
  64. package/out/gb/postcode-area.js.map +1 -0
  65. package/out/gb/postcode.d.ts +73 -0
  66. package/out/gb/postcode.d.ts.map +1 -0
  67. package/out/gb/postcode.js +88 -0
  68. package/out/gb/postcode.js.map +1 -0
  69. package/out/gb/street-type.d.ts +36 -0
  70. package/out/gb/street-type.d.ts.map +1 -0
  71. package/out/gb/street-type.js +86 -0
  72. package/out/gb/street-type.js.map +1 -0
  73. package/out/index.d.ts +27 -0
  74. package/out/index.d.ts.map +1 -0
  75. package/out/index.js +27 -0
  76. package/out/index.js.map +1 -0
  77. package/out/jp/address-unit.d.ts +72 -0
  78. package/out/jp/address-unit.d.ts.map +1 -0
  79. package/out/jp/address-unit.js +78 -0
  80. package/out/jp/address-unit.js.map +1 -0
  81. package/out/jp/index.d.ts +13 -0
  82. package/out/jp/index.d.ts.map +1 -0
  83. package/out/jp/index.js +13 -0
  84. package/out/jp/index.js.map +1 -0
  85. package/out/jp/postal-code.d.ts +63 -0
  86. package/out/jp/postal-code.d.ts.map +1 -0
  87. package/out/jp/postal-code.js +77 -0
  88. package/out/jp/postal-code.js.map +1 -0
  89. package/out/jp/prefecture.d.ts +347 -0
  90. package/out/jp/prefecture.d.ts.map +1 -0
  91. package/out/jp/prefecture.js +147 -0
  92. package/out/jp/prefecture.js.map +1 -0
  93. package/out/postcode-systems.d.ts +31 -0
  94. package/out/postcode-systems.d.ts.map +1 -0
  95. package/out/postcode-systems.js +58 -0
  96. package/out/postcode-systems.js.map +1 -0
  97. package/out/us/index.d.ts +12 -0
  98. package/out/us/index.d.ts.map +1 -0
  99. package/out/us/index.js +12 -0
  100. package/out/us/index.js.map +1 -0
  101. package/out/us/state.d.ts +26 -0
  102. package/out/us/state.d.ts.map +1 -0
  103. package/out/us/state.js +84 -0
  104. package/out/us/state.js.map +1 -0
  105. package/out/us/street-suffix.d.ts +499 -0
  106. package/out/us/street-suffix.d.ts.map +1 -0
  107. package/out/us/street-suffix.js +313 -0
  108. package/out/us/street-suffix.js.map +1 -0
  109. package/out/us/zipcode.d.ts +184 -0
  110. package/out/us/zipcode.d.ts.map +1 -0
  111. package/out/us/zipcode.js +127 -0
  112. package/out/us/zipcode.js.map +1 -0
  113. package/package.json +34 -0
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * US two-letter postal abbreviations for the 50 states, DC, and the five primary territories.
7
+ *
8
+ * This is the minimal state primitive `zipcode.ts` needs (a closed abbreviation set + predicate)
9
+ * without pulling in `@mailwoman/tiger`'s FIPS enums and their `shapefile-parser` dependency —
10
+ * the point of the codex being a zero-runtime-dep package the browser-pure parser can consume.
11
+ * The full FIPS-keyed table still lives in `@mailwoman/tiger` (`tiger/state.ts`) and in the
12
+ * corpus TIGER adapter; folding those onto this set is a deliberate follow-up, not a v1 concern.
13
+ */
14
+ /**
15
+ * USPS two-letter abbreviations: the 50 states, the District of Columbia, and the five primary
16
+ * territories (Puerto Rico, Guam, US Virgin Islands, Northern Mariana Islands, American Samoa).
17
+ */
18
+ export declare const US_STATE_ABBREVIATIONS: readonly ["AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", "PR", "GU", "VI", "MP", "AS"];
19
+ /** A USPS two-letter state-or-territory abbreviation. */
20
+ export type UsStateAbbreviation = (typeof US_STATE_ABBREVIATIONS)[number];
21
+ /**
22
+ * Type-predicate for a USPS state-or-territory abbreviation. Case-insensitive (`"ca"` and `"CA"`
23
+ * both pass), since the abbreviation arrives from raw address text.
24
+ */
25
+ export declare function isUsStateAbbreviation(input: unknown): input is UsStateAbbreviation;
26
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../us/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,2VAyDG,CAAA;AAEtC,yDAAyD;AACzD,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAA;AAIzE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * US two-letter postal abbreviations for the 50 states, DC, and the five primary territories.
7
+ *
8
+ * This is the minimal state primitive `zipcode.ts` needs (a closed abbreviation set + predicate)
9
+ * without pulling in `@mailwoman/tiger`'s FIPS enums and their `shapefile-parser` dependency —
10
+ * the point of the codex being a zero-runtime-dep package the browser-pure parser can consume.
11
+ * The full FIPS-keyed table still lives in `@mailwoman/tiger` (`tiger/state.ts`) and in the
12
+ * corpus TIGER adapter; folding those onto this set is a deliberate follow-up, not a v1 concern.
13
+ */
14
+ /**
15
+ * USPS two-letter abbreviations: the 50 states, the District of Columbia, and the five primary
16
+ * territories (Puerto Rico, Guam, US Virgin Islands, Northern Mariana Islands, American Samoa).
17
+ */
18
+ export const US_STATE_ABBREVIATIONS = [
19
+ "AL",
20
+ "AK",
21
+ "AZ",
22
+ "AR",
23
+ "CA",
24
+ "CO",
25
+ "CT",
26
+ "DE",
27
+ "DC",
28
+ "FL",
29
+ "GA",
30
+ "HI",
31
+ "ID",
32
+ "IL",
33
+ "IN",
34
+ "IA",
35
+ "KS",
36
+ "KY",
37
+ "LA",
38
+ "ME",
39
+ "MD",
40
+ "MA",
41
+ "MI",
42
+ "MN",
43
+ "MS",
44
+ "MO",
45
+ "MT",
46
+ "NE",
47
+ "NV",
48
+ "NH",
49
+ "NJ",
50
+ "NM",
51
+ "NY",
52
+ "NC",
53
+ "ND",
54
+ "OH",
55
+ "OK",
56
+ "OR",
57
+ "PA",
58
+ "RI",
59
+ "SC",
60
+ "SD",
61
+ "TN",
62
+ "TX",
63
+ "UT",
64
+ "VT",
65
+ "VA",
66
+ "WA",
67
+ "WV",
68
+ "WI",
69
+ "WY",
70
+ "PR",
71
+ "GU",
72
+ "VI",
73
+ "MP",
74
+ "AS",
75
+ ];
76
+ const STATE_ABBREVIATION_SET = new Set(US_STATE_ABBREVIATIONS);
77
+ /**
78
+ * Type-predicate for a USPS state-or-territory abbreviation. Case-insensitive (`"ca"` and `"CA"`
79
+ * both pass), since the abbreviation arrives from raw address text.
80
+ */
81
+ export function isUsStateAbbreviation(input) {
82
+ return typeof input === "string" && STATE_ABBREVIATION_SET.has(input.toUpperCase());
83
+ }
84
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../us/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACiC,CAAA;AAKtC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAEnF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;AACpF,CAAC"}
@@ -0,0 +1,499 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * USPS Publication 28, Appendix C — Postal Service Standard Suffix Abbreviations.
7
+ *
8
+ * For each canonical suffix the value lists every recognized variant in USPS-published order; the
9
+ * first variant is the preferred USPS abbreviation (e.g. `AVENUE → ["AVE", "AV", "AVEN", "AVENU",
10
+ * "AVN", "AVNUE"]` — `AVE` is what the post office prints).
11
+ *
12
+ * This module is the single home for the USPS suffix table. It carries both the synthesis-layer
13
+ * helpers (`US_STREET_SUFFIX_PREFERRED_ABBR`, `matchCase`, `matchTrailingSuffix` — used by
14
+ * `@mailwoman/corpus`) and the richer branded-type lookup (`StreetSuffix`, `lookupStreetSuffix`,
15
+ * `isStreetSuffix`) salvaged from the original isp-nexus `postal/suffix.ts`. The data is verbatim
16
+ * USPS Pub-28; the two APIs share one underlying record.
17
+ *
18
+ * Salvaged 2026-05-17 (data) / 2026-06-03 (types) from
19
+ * `isp-nexus/universe@6eeb7bd99643a6d62a8b8abbd50968a1e492b90b` `mailwoman/postal/suffix.ts`
20
+ * (originally copyright Sister Software; both projects are AGPL-3.0).
21
+ * @see {@link https://pe.usps.com/text/pub28/28apc_002.htm USPS Street Suffix Abbreviations}
22
+ */
23
+ /**
24
+ * Canonical USPS street suffix → list of recognized variants. The first variant in each list is the
25
+ * preferred USPS abbreviation. Keys + values are uppercase per the publication.
26
+ */
27
+ export declare const US_STREET_SUFFIX_VARIANTS: {
28
+ readonly ALLEY: readonly ["ALY", "ALLEE", "ALLY"];
29
+ readonly ANEX: readonly ["ANX", "ANNEX", "ANNX"];
30
+ readonly ARCADE: readonly ["ARC"];
31
+ readonly AVENUE: readonly ["AVE", "AV", "AVEN", "AVENU", "AVN", "AVNUE"];
32
+ readonly BAYOU: readonly ["BYU", "BAYOO"];
33
+ readonly BEACH: readonly ["BCH"];
34
+ readonly BEND: readonly ["BND"];
35
+ readonly BLUFF: readonly ["BLF", "BLUF"];
36
+ readonly BLUFFS: readonly ["BLFS"];
37
+ readonly BOTTOM: readonly ["BTM", "BOT", "BOTTM"];
38
+ readonly BOULEVARD: readonly ["BLVD", "BOUL", "BOULV"];
39
+ readonly BRANCH: readonly ["BR", "BRNCH"];
40
+ readonly BRIDGE: readonly ["BRG", "BRDGE"];
41
+ readonly BROOK: readonly ["BRK"];
42
+ readonly BROOKS: readonly ["BRKS"];
43
+ readonly BURG: readonly ["BG"];
44
+ readonly BURGS: readonly ["BGS"];
45
+ readonly BYPASS: readonly ["BYP", "BYPA", "BYPAS", "BYPS"];
46
+ readonly CAMP: readonly ["CP", "CMP"];
47
+ readonly CANYON: readonly ["CYN", "CANYN", "CNYN"];
48
+ readonly CAPE: readonly ["CPE"];
49
+ readonly CAUSEWAY: readonly ["CSWY", "CAUSWA"];
50
+ readonly CENTER: readonly ["CTR", "CEN", "CENT", "CENTR", "CENTRE", "CNTER", "CNTR"];
51
+ readonly CENTERS: readonly ["CTRS"];
52
+ readonly CIRCLE: readonly ["CIR", "CIRC", "CIRCL", "CRCL", "CRCLE"];
53
+ readonly CIRCLES: readonly ["CIRS"];
54
+ readonly CLIFF: readonly ["CLF"];
55
+ readonly CLIFFS: readonly ["CLFS"];
56
+ readonly CLUB: readonly ["CLB"];
57
+ readonly COMMON: readonly ["CMN"];
58
+ readonly COMMONS: readonly ["CMNS"];
59
+ readonly CORNER: readonly ["COR"];
60
+ readonly CORNERS: readonly ["CORS"];
61
+ readonly COURSE: readonly ["CRSE"];
62
+ readonly COURT: readonly ["CT"];
63
+ readonly COURTS: readonly ["CTS"];
64
+ readonly COVE: readonly ["CV"];
65
+ readonly COVES: readonly ["CVS"];
66
+ readonly CREEK: readonly ["CRK"];
67
+ readonly CRESCENT: readonly ["CRES", "CRSENT", "CRSNT"];
68
+ readonly CREST: readonly ["CRST"];
69
+ readonly CROSSING: readonly ["XING", "CRSSNG"];
70
+ readonly CROSSROAD: readonly ["XRD"];
71
+ readonly CROSSROADS: readonly ["XRDS"];
72
+ readonly CURVE: readonly ["CURV"];
73
+ readonly DALE: readonly ["DL"];
74
+ readonly DAM: readonly ["DM"];
75
+ readonly DIVIDE: readonly ["DV", "DIV", "DVD"];
76
+ readonly DRIVE: readonly ["DR", "DRIV", "DRV"];
77
+ readonly DRIVES: readonly ["DRS"];
78
+ readonly ESTATE: readonly ["EST"];
79
+ readonly ESTATES: readonly ["ESTS"];
80
+ readonly EXPRESSWAY: readonly ["EXPY", "EXP", "EXPR", "EXPRESS", "EXPW"];
81
+ readonly EXTENSION: readonly ["EXT", "EXTN", "EXTNSN"];
82
+ readonly EXTENSIONS: readonly ["EXTS"];
83
+ readonly FALL: readonly ["FALL"];
84
+ readonly FALLS: readonly ["FLS"];
85
+ readonly FERRY: readonly ["FRY", "FRRY"];
86
+ readonly FIELD: readonly ["FLD"];
87
+ readonly FIELDS: readonly ["FLDS"];
88
+ readonly FLAT: readonly ["FLT"];
89
+ readonly FLATS: readonly ["FLTS"];
90
+ readonly FORD: readonly ["FRD"];
91
+ readonly FORDS: readonly ["FRDS"];
92
+ readonly FOREST: readonly ["FRST", "FORESTS"];
93
+ readonly FORGE: readonly ["FRG", "FORG"];
94
+ readonly FORGES: readonly ["FRGS"];
95
+ readonly FORK: readonly ["FRK"];
96
+ readonly FORKS: readonly ["FRKS"];
97
+ readonly FORT: readonly ["FT", "FRT"];
98
+ readonly FREEWAY: readonly ["FWY", "FREEWY", "FRWAY", "FRWY"];
99
+ readonly GARDEN: readonly ["GDN", "GARDN", "GRDEN", "GRDN"];
100
+ readonly GARDENS: readonly ["GDNS", "GRDNS"];
101
+ readonly GATEWAY: readonly ["GTWY", "GATEWY", "GATWAY", "GTWAY"];
102
+ readonly GLEN: readonly ["GLN"];
103
+ readonly GLENS: readonly ["GLNS"];
104
+ readonly GREEN: readonly ["GRN"];
105
+ readonly GREENS: readonly ["GRNS"];
106
+ readonly GROVE: readonly ["GRV", "GROV"];
107
+ readonly GROVES: readonly ["GRVS"];
108
+ readonly HARBOR: readonly ["HBR", "HARB", "HARBR", "HRBOR"];
109
+ readonly HARBORS: readonly ["HBRS"];
110
+ readonly HAVEN: readonly ["HVN"];
111
+ readonly HEIGHTS: readonly ["HTS", "HT"];
112
+ readonly HIGHWAY: readonly ["HWY", "HIGHWY", "HIWAY", "HIWY", "HWAY"];
113
+ readonly HILL: readonly ["HL"];
114
+ readonly HILLS: readonly ["HLS"];
115
+ readonly HOLLOW: readonly ["HOLW", "HLLW", "HOLLOWS", "HOLWS"];
116
+ readonly INLET: readonly ["INLT"];
117
+ readonly ISLAND: readonly ["IS", "ISLND"];
118
+ readonly ISLANDS: readonly ["ISS", "ISLNDS"];
119
+ readonly ISLE: readonly ["ISLE", "ISLES"];
120
+ readonly JUNCTION: readonly ["JCT", "JCTION", "JCTN", "JUNCTN", "JUNCTON"];
121
+ readonly JUNCTIONS: readonly ["JCTS", "JCTNS"];
122
+ readonly KEY: readonly ["KY"];
123
+ readonly KEYS: readonly ["KYS"];
124
+ readonly KNOLL: readonly ["KNL", "KNOL"];
125
+ readonly KNOLLS: readonly ["KNLS"];
126
+ readonly LAKE: readonly ["LK"];
127
+ readonly LAKES: readonly ["LKS"];
128
+ readonly LAND: readonly ["LAND"];
129
+ readonly LANDING: readonly ["LNDG", "LNDNG"];
130
+ readonly LANE: readonly ["LN"];
131
+ readonly LIGHT: readonly ["LGT"];
132
+ readonly LIGHTS: readonly ["LGTS"];
133
+ readonly LOAF: readonly ["LF"];
134
+ readonly LOCK: readonly ["LCK"];
135
+ readonly LOCKS: readonly ["LCKS"];
136
+ readonly LODGE: readonly ["LDG", "LDGE", "LODG"];
137
+ readonly LOOP: readonly ["LOOP", "LOOPS"];
138
+ readonly MALL: readonly ["MALL"];
139
+ readonly MANOR: readonly ["MNR"];
140
+ readonly MANORS: readonly ["MNRS"];
141
+ readonly MEADOW: readonly ["MDW"];
142
+ readonly MEADOWS: readonly ["MDWS", "MDW", "MEDOWS"];
143
+ readonly MEWS: readonly ["MEWS"];
144
+ readonly MILL: readonly ["ML"];
145
+ readonly MILLS: readonly ["MLS"];
146
+ readonly MISSION: readonly ["MSN", "MISSN", "MSSN"];
147
+ readonly MOTORWAY: readonly ["MTWY"];
148
+ readonly MOUNT: readonly ["MT", "MNT"];
149
+ readonly MOUNTAIN: readonly ["MTN", "MNTAIN", "MNTN", "MOUNTIN", "MTIN"];
150
+ readonly MOUNTAINS: readonly ["MTNS", "MNTNS"];
151
+ readonly NECK: readonly ["NCK"];
152
+ readonly ORCHARD: readonly ["ORCH", "ORCHRD"];
153
+ readonly OVAL: readonly ["OVAL", "OVL"];
154
+ readonly OVERPASS: readonly ["OPAS"];
155
+ readonly PARK: readonly ["PARK", "PRK", "PARKS"];
156
+ readonly PARKWAY: readonly ["PKWY", "PARKWY", "PKWAY", "PKY"];
157
+ readonly PARKWAYS: readonly ["PKWY", "PKWYS"];
158
+ readonly PASS: readonly ["PASS"];
159
+ readonly PASSAGE: readonly ["PSGE"];
160
+ readonly PATH: readonly ["PATH", "PATHS"];
161
+ readonly PIKE: readonly ["PIKE", "PIKES"];
162
+ readonly PINE: readonly ["PNE"];
163
+ readonly PINES: readonly ["PNES"];
164
+ readonly PLACE: readonly ["PL"];
165
+ readonly PLAIN: readonly ["PLN"];
166
+ readonly PLAINS: readonly ["PLNS"];
167
+ readonly PLAZA: readonly ["PLZ", "PLZA"];
168
+ readonly POINT: readonly ["PT"];
169
+ readonly POINTS: readonly ["PTS"];
170
+ readonly PORT: readonly ["PRT"];
171
+ readonly PORTS: readonly ["PRTS"];
172
+ readonly PRAIRIE: readonly ["PR", "PRR"];
173
+ readonly RADIAL: readonly ["RADL", "RAD", "RADIEL"];
174
+ readonly RAMP: readonly ["RAMP"];
175
+ readonly RANCH: readonly ["RNCH", "RANCHES", "RNCHS"];
176
+ readonly RAPID: readonly ["RPD"];
177
+ readonly RAPIDS: readonly ["RPDS"];
178
+ readonly REST: readonly ["RST"];
179
+ readonly RIDGE: readonly ["RDG", "RDGE"];
180
+ readonly RIDGES: readonly ["RDGS"];
181
+ readonly RIVER: readonly ["RIV", "RVR", "RIVR"];
182
+ readonly ROAD: readonly ["RD"];
183
+ readonly ROADS: readonly ["RDS"];
184
+ readonly ROUTE: readonly ["RTE"];
185
+ readonly ROW: readonly ["ROW"];
186
+ readonly RUE: readonly ["RUE"];
187
+ readonly RUN: readonly ["RUN"];
188
+ readonly SHOAL: readonly ["SHL"];
189
+ readonly SHOALS: readonly ["SHLS"];
190
+ readonly SHORE: readonly ["SHR", "SHOAR"];
191
+ readonly SHORES: readonly ["SHRS", "SHOARS"];
192
+ readonly SKYWAY: readonly ["SKWY"];
193
+ readonly SPRING: readonly ["SPG", "SPNG", "SPRNG"];
194
+ readonly SPRINGS: readonly ["SPGS", "SPNGS", "SPRNGS"];
195
+ readonly SPUR: readonly ["SPUR"];
196
+ readonly SPURS: readonly ["SPUR"];
197
+ readonly SQUARE: readonly ["SQ", "SQR", "SQRE", "SQU"];
198
+ readonly SQUARES: readonly ["SQS", "SQRS"];
199
+ readonly STATION: readonly ["STA", "STATN", "STN"];
200
+ readonly STRAVENUE: readonly ["STRA", "STRAV", "STRAVEN", "STRAVN", "STRVN", "STRVNUE"];
201
+ readonly STREAM: readonly ["STRM", "STREME"];
202
+ readonly STREET: readonly ["ST", "STRT", "STR"];
203
+ readonly STREETS: readonly ["STS"];
204
+ readonly SUMMIT: readonly ["SMT", "SUMIT", "SUMITT"];
205
+ readonly TERRACE: readonly ["TER", "TERR"];
206
+ readonly THROUGHWAY: readonly ["TRWY"];
207
+ readonly TRACE: readonly ["TRCE", "TRACES"];
208
+ readonly TRACK: readonly ["TRAK", "TRACKS", "TRK", "TRKS"];
209
+ readonly TRAFFICWAY: readonly ["TRFY"];
210
+ readonly TRAIL: readonly ["TRL", "TRAILS", "TRLS"];
211
+ readonly TRAILER: readonly ["TRLR", "TRLRS"];
212
+ readonly TUNNEL: readonly ["TUNL", "TUNEL", "TUNLS", "TUNNELS", "TUNNL"];
213
+ readonly TURNPIKE: readonly ["TPKE", "TRNPK", "TURNPK"];
214
+ readonly UNDERPASS: readonly ["UPAS"];
215
+ readonly UNION: readonly ["UN"];
216
+ readonly UNIONS: readonly ["UNS"];
217
+ readonly VALLEY: readonly ["VLY", "VALLY", "VLLY"];
218
+ readonly VALLEYS: readonly ["VLYS"];
219
+ readonly VIADUCT: readonly ["VIA", "VDCT", "VIADCT"];
220
+ readonly VIEW: readonly ["VW"];
221
+ readonly VIEWS: readonly ["VWS"];
222
+ readonly VILLAGE: readonly ["VLG", "VILL", "VILLAG", "VILLG", "VILLIAGE"];
223
+ readonly VILLAGES: readonly ["VLGS"];
224
+ readonly VILLE: readonly ["VL"];
225
+ readonly VISTA: readonly ["VIS", "VIST", "VST", "VSTA"];
226
+ readonly WALK: readonly ["WALK"];
227
+ readonly WALKS: readonly ["WALK"];
228
+ readonly WALL: readonly ["WALL"];
229
+ readonly WAY: readonly ["WAY", "WY"];
230
+ readonly WAYS: readonly ["WAYS"];
231
+ readonly WELL: readonly ["WL"];
232
+ readonly WELLS: readonly ["WLS"];
233
+ };
234
+ /** Canonical USPS suffix (full word, uppercase per the publication). */
235
+ export type UsStreetSuffix = keyof typeof US_STREET_SUFFIX_VARIANTS;
236
+ /**
237
+ * Inverse lookup: every variant abbreviation OR full canonical word → its canonical key. Built once
238
+ * at module load, lowercase-keyed for case-insensitive matching (`street` → `"STREET"`, `st` →
239
+ * `"STREET"`, `strt` → `"STREET"`, …).
240
+ */
241
+ export declare const US_STREET_SUFFIX_LOOKUP: ReadonlyMap<string, UsStreetSuffix>;
242
+ /** Preferred USPS abbreviation per canonical (`AVENUE → "AVE"`, `STREET → "ST"`). */
243
+ export declare const US_STREET_SUFFIX_PREFERRED_ABBR: Readonly<Record<UsStreetSuffix, string>>;
244
+ /**
245
+ * Apply `target`'s letters in the same case-pattern as `reference`. Three patterns covered:
246
+ *
247
+ * - All-uppercase reference (`"AVE"`) → uppercase target (`"AVENUE"`).
248
+ * - All-lowercase reference (`"ave"`) → lowercase target (`"avenue"`).
249
+ * - Anything else (`"Ave"`, `"aVe"`) → title-case target (`"Avenue"`).
250
+ */
251
+ export declare function matchCase(target: string, reference: string): string;
252
+ /**
253
+ * If the last whitespace-separated word of `street` is a known USPS suffix variant, return the
254
+ * canonical key and the matched word. Returns null if the trailing word isn't a known suffix.
255
+ */
256
+ export declare function matchTrailingSuffix(street: string): {
257
+ canonical: UsStreetSuffix;
258
+ matched: string;
259
+ } | null;
260
+ /**
261
+ * The USPS suffix record, under its original isp-nexus name. Aliases
262
+ * {@link US_STREET_SUFFIX_VARIANTS}.
263
+ */
264
+ export declare const StreetSuffixAbbreviationRecord: {
265
+ readonly ALLEY: readonly ["ALY", "ALLEE", "ALLY"];
266
+ readonly ANEX: readonly ["ANX", "ANNEX", "ANNX"];
267
+ readonly ARCADE: readonly ["ARC"];
268
+ readonly AVENUE: readonly ["AVE", "AV", "AVEN", "AVENU", "AVN", "AVNUE"];
269
+ readonly BAYOU: readonly ["BYU", "BAYOO"];
270
+ readonly BEACH: readonly ["BCH"];
271
+ readonly BEND: readonly ["BND"];
272
+ readonly BLUFF: readonly ["BLF", "BLUF"];
273
+ readonly BLUFFS: readonly ["BLFS"];
274
+ readonly BOTTOM: readonly ["BTM", "BOT", "BOTTM"];
275
+ readonly BOULEVARD: readonly ["BLVD", "BOUL", "BOULV"];
276
+ readonly BRANCH: readonly ["BR", "BRNCH"];
277
+ readonly BRIDGE: readonly ["BRG", "BRDGE"];
278
+ readonly BROOK: readonly ["BRK"];
279
+ readonly BROOKS: readonly ["BRKS"];
280
+ readonly BURG: readonly ["BG"];
281
+ readonly BURGS: readonly ["BGS"];
282
+ readonly BYPASS: readonly ["BYP", "BYPA", "BYPAS", "BYPS"];
283
+ readonly CAMP: readonly ["CP", "CMP"];
284
+ readonly CANYON: readonly ["CYN", "CANYN", "CNYN"];
285
+ readonly CAPE: readonly ["CPE"];
286
+ readonly CAUSEWAY: readonly ["CSWY", "CAUSWA"];
287
+ readonly CENTER: readonly ["CTR", "CEN", "CENT", "CENTR", "CENTRE", "CNTER", "CNTR"];
288
+ readonly CENTERS: readonly ["CTRS"];
289
+ readonly CIRCLE: readonly ["CIR", "CIRC", "CIRCL", "CRCL", "CRCLE"];
290
+ readonly CIRCLES: readonly ["CIRS"];
291
+ readonly CLIFF: readonly ["CLF"];
292
+ readonly CLIFFS: readonly ["CLFS"];
293
+ readonly CLUB: readonly ["CLB"];
294
+ readonly COMMON: readonly ["CMN"];
295
+ readonly COMMONS: readonly ["CMNS"];
296
+ readonly CORNER: readonly ["COR"];
297
+ readonly CORNERS: readonly ["CORS"];
298
+ readonly COURSE: readonly ["CRSE"];
299
+ readonly COURT: readonly ["CT"];
300
+ readonly COURTS: readonly ["CTS"];
301
+ readonly COVE: readonly ["CV"];
302
+ readonly COVES: readonly ["CVS"];
303
+ readonly CREEK: readonly ["CRK"];
304
+ readonly CRESCENT: readonly ["CRES", "CRSENT", "CRSNT"];
305
+ readonly CREST: readonly ["CRST"];
306
+ readonly CROSSING: readonly ["XING", "CRSSNG"];
307
+ readonly CROSSROAD: readonly ["XRD"];
308
+ readonly CROSSROADS: readonly ["XRDS"];
309
+ readonly CURVE: readonly ["CURV"];
310
+ readonly DALE: readonly ["DL"];
311
+ readonly DAM: readonly ["DM"];
312
+ readonly DIVIDE: readonly ["DV", "DIV", "DVD"];
313
+ readonly DRIVE: readonly ["DR", "DRIV", "DRV"];
314
+ readonly DRIVES: readonly ["DRS"];
315
+ readonly ESTATE: readonly ["EST"];
316
+ readonly ESTATES: readonly ["ESTS"];
317
+ readonly EXPRESSWAY: readonly ["EXPY", "EXP", "EXPR", "EXPRESS", "EXPW"];
318
+ readonly EXTENSION: readonly ["EXT", "EXTN", "EXTNSN"];
319
+ readonly EXTENSIONS: readonly ["EXTS"];
320
+ readonly FALL: readonly ["FALL"];
321
+ readonly FALLS: readonly ["FLS"];
322
+ readonly FERRY: readonly ["FRY", "FRRY"];
323
+ readonly FIELD: readonly ["FLD"];
324
+ readonly FIELDS: readonly ["FLDS"];
325
+ readonly FLAT: readonly ["FLT"];
326
+ readonly FLATS: readonly ["FLTS"];
327
+ readonly FORD: readonly ["FRD"];
328
+ readonly FORDS: readonly ["FRDS"];
329
+ readonly FOREST: readonly ["FRST", "FORESTS"];
330
+ readonly FORGE: readonly ["FRG", "FORG"];
331
+ readonly FORGES: readonly ["FRGS"];
332
+ readonly FORK: readonly ["FRK"];
333
+ readonly FORKS: readonly ["FRKS"];
334
+ readonly FORT: readonly ["FT", "FRT"];
335
+ readonly FREEWAY: readonly ["FWY", "FREEWY", "FRWAY", "FRWY"];
336
+ readonly GARDEN: readonly ["GDN", "GARDN", "GRDEN", "GRDN"];
337
+ readonly GARDENS: readonly ["GDNS", "GRDNS"];
338
+ readonly GATEWAY: readonly ["GTWY", "GATEWY", "GATWAY", "GTWAY"];
339
+ readonly GLEN: readonly ["GLN"];
340
+ readonly GLENS: readonly ["GLNS"];
341
+ readonly GREEN: readonly ["GRN"];
342
+ readonly GREENS: readonly ["GRNS"];
343
+ readonly GROVE: readonly ["GRV", "GROV"];
344
+ readonly GROVES: readonly ["GRVS"];
345
+ readonly HARBOR: readonly ["HBR", "HARB", "HARBR", "HRBOR"];
346
+ readonly HARBORS: readonly ["HBRS"];
347
+ readonly HAVEN: readonly ["HVN"];
348
+ readonly HEIGHTS: readonly ["HTS", "HT"];
349
+ readonly HIGHWAY: readonly ["HWY", "HIGHWY", "HIWAY", "HIWY", "HWAY"];
350
+ readonly HILL: readonly ["HL"];
351
+ readonly HILLS: readonly ["HLS"];
352
+ readonly HOLLOW: readonly ["HOLW", "HLLW", "HOLLOWS", "HOLWS"];
353
+ readonly INLET: readonly ["INLT"];
354
+ readonly ISLAND: readonly ["IS", "ISLND"];
355
+ readonly ISLANDS: readonly ["ISS", "ISLNDS"];
356
+ readonly ISLE: readonly ["ISLE", "ISLES"];
357
+ readonly JUNCTION: readonly ["JCT", "JCTION", "JCTN", "JUNCTN", "JUNCTON"];
358
+ readonly JUNCTIONS: readonly ["JCTS", "JCTNS"];
359
+ readonly KEY: readonly ["KY"];
360
+ readonly KEYS: readonly ["KYS"];
361
+ readonly KNOLL: readonly ["KNL", "KNOL"];
362
+ readonly KNOLLS: readonly ["KNLS"];
363
+ readonly LAKE: readonly ["LK"];
364
+ readonly LAKES: readonly ["LKS"];
365
+ readonly LAND: readonly ["LAND"];
366
+ readonly LANDING: readonly ["LNDG", "LNDNG"];
367
+ readonly LANE: readonly ["LN"];
368
+ readonly LIGHT: readonly ["LGT"];
369
+ readonly LIGHTS: readonly ["LGTS"];
370
+ readonly LOAF: readonly ["LF"];
371
+ readonly LOCK: readonly ["LCK"];
372
+ readonly LOCKS: readonly ["LCKS"];
373
+ readonly LODGE: readonly ["LDG", "LDGE", "LODG"];
374
+ readonly LOOP: readonly ["LOOP", "LOOPS"];
375
+ readonly MALL: readonly ["MALL"];
376
+ readonly MANOR: readonly ["MNR"];
377
+ readonly MANORS: readonly ["MNRS"];
378
+ readonly MEADOW: readonly ["MDW"];
379
+ readonly MEADOWS: readonly ["MDWS", "MDW", "MEDOWS"];
380
+ readonly MEWS: readonly ["MEWS"];
381
+ readonly MILL: readonly ["ML"];
382
+ readonly MILLS: readonly ["MLS"];
383
+ readonly MISSION: readonly ["MSN", "MISSN", "MSSN"];
384
+ readonly MOTORWAY: readonly ["MTWY"];
385
+ readonly MOUNT: readonly ["MT", "MNT"];
386
+ readonly MOUNTAIN: readonly ["MTN", "MNTAIN", "MNTN", "MOUNTIN", "MTIN"];
387
+ readonly MOUNTAINS: readonly ["MTNS", "MNTNS"];
388
+ readonly NECK: readonly ["NCK"];
389
+ readonly ORCHARD: readonly ["ORCH", "ORCHRD"];
390
+ readonly OVAL: readonly ["OVAL", "OVL"];
391
+ readonly OVERPASS: readonly ["OPAS"];
392
+ readonly PARK: readonly ["PARK", "PRK", "PARKS"];
393
+ readonly PARKWAY: readonly ["PKWY", "PARKWY", "PKWAY", "PKY"];
394
+ readonly PARKWAYS: readonly ["PKWY", "PKWYS"];
395
+ readonly PASS: readonly ["PASS"];
396
+ readonly PASSAGE: readonly ["PSGE"];
397
+ readonly PATH: readonly ["PATH", "PATHS"];
398
+ readonly PIKE: readonly ["PIKE", "PIKES"];
399
+ readonly PINE: readonly ["PNE"];
400
+ readonly PINES: readonly ["PNES"];
401
+ readonly PLACE: readonly ["PL"];
402
+ readonly PLAIN: readonly ["PLN"];
403
+ readonly PLAINS: readonly ["PLNS"];
404
+ readonly PLAZA: readonly ["PLZ", "PLZA"];
405
+ readonly POINT: readonly ["PT"];
406
+ readonly POINTS: readonly ["PTS"];
407
+ readonly PORT: readonly ["PRT"];
408
+ readonly PORTS: readonly ["PRTS"];
409
+ readonly PRAIRIE: readonly ["PR", "PRR"];
410
+ readonly RADIAL: readonly ["RADL", "RAD", "RADIEL"];
411
+ readonly RAMP: readonly ["RAMP"];
412
+ readonly RANCH: readonly ["RNCH", "RANCHES", "RNCHS"];
413
+ readonly RAPID: readonly ["RPD"];
414
+ readonly RAPIDS: readonly ["RPDS"];
415
+ readonly REST: readonly ["RST"];
416
+ readonly RIDGE: readonly ["RDG", "RDGE"];
417
+ readonly RIDGES: readonly ["RDGS"];
418
+ readonly RIVER: readonly ["RIV", "RVR", "RIVR"];
419
+ readonly ROAD: readonly ["RD"];
420
+ readonly ROADS: readonly ["RDS"];
421
+ readonly ROUTE: readonly ["RTE"];
422
+ readonly ROW: readonly ["ROW"];
423
+ readonly RUE: readonly ["RUE"];
424
+ readonly RUN: readonly ["RUN"];
425
+ readonly SHOAL: readonly ["SHL"];
426
+ readonly SHOALS: readonly ["SHLS"];
427
+ readonly SHORE: readonly ["SHR", "SHOAR"];
428
+ readonly SHORES: readonly ["SHRS", "SHOARS"];
429
+ readonly SKYWAY: readonly ["SKWY"];
430
+ readonly SPRING: readonly ["SPG", "SPNG", "SPRNG"];
431
+ readonly SPRINGS: readonly ["SPGS", "SPNGS", "SPRNGS"];
432
+ readonly SPUR: readonly ["SPUR"];
433
+ readonly SPURS: readonly ["SPUR"];
434
+ readonly SQUARE: readonly ["SQ", "SQR", "SQRE", "SQU"];
435
+ readonly SQUARES: readonly ["SQS", "SQRS"];
436
+ readonly STATION: readonly ["STA", "STATN", "STN"];
437
+ readonly STRAVENUE: readonly ["STRA", "STRAV", "STRAVEN", "STRAVN", "STRVN", "STRVNUE"];
438
+ readonly STREAM: readonly ["STRM", "STREME"];
439
+ readonly STREET: readonly ["ST", "STRT", "STR"];
440
+ readonly STREETS: readonly ["STS"];
441
+ readonly SUMMIT: readonly ["SMT", "SUMIT", "SUMITT"];
442
+ readonly TERRACE: readonly ["TER", "TERR"];
443
+ readonly THROUGHWAY: readonly ["TRWY"];
444
+ readonly TRACE: readonly ["TRCE", "TRACES"];
445
+ readonly TRACK: readonly ["TRAK", "TRACKS", "TRK", "TRKS"];
446
+ readonly TRAFFICWAY: readonly ["TRFY"];
447
+ readonly TRAIL: readonly ["TRL", "TRAILS", "TRLS"];
448
+ readonly TRAILER: readonly ["TRLR", "TRLRS"];
449
+ readonly TUNNEL: readonly ["TUNL", "TUNEL", "TUNLS", "TUNNELS", "TUNNL"];
450
+ readonly TURNPIKE: readonly ["TPKE", "TRNPK", "TURNPK"];
451
+ readonly UNDERPASS: readonly ["UPAS"];
452
+ readonly UNION: readonly ["UN"];
453
+ readonly UNIONS: readonly ["UNS"];
454
+ readonly VALLEY: readonly ["VLY", "VALLY", "VLLY"];
455
+ readonly VALLEYS: readonly ["VLYS"];
456
+ readonly VIADUCT: readonly ["VIA", "VDCT", "VIADCT"];
457
+ readonly VIEW: readonly ["VW"];
458
+ readonly VIEWS: readonly ["VWS"];
459
+ readonly VILLAGE: readonly ["VLG", "VILL", "VILLAG", "VILLG", "VILLIAGE"];
460
+ readonly VILLAGES: readonly ["VLGS"];
461
+ readonly VILLE: readonly ["VL"];
462
+ readonly VISTA: readonly ["VIS", "VIST", "VST", "VSTA"];
463
+ readonly WALK: readonly ["WALK"];
464
+ readonly WALKS: readonly ["WALK"];
465
+ readonly WALL: readonly ["WALL"];
466
+ readonly WAY: readonly ["WAY", "WY"];
467
+ readonly WAYS: readonly ["WAYS"];
468
+ readonly WELL: readonly ["WL"];
469
+ readonly WELLS: readonly ["WLS"];
470
+ };
471
+ export type StreetSuffixAbbreviationRecord = typeof US_STREET_SUFFIX_VARIANTS;
472
+ /** A canonical USPS street suffix, i.e. "STREET", "AVENUE", "BOULEVARD". Aliases
473
+ {@link UsStreetSuffix}. */
474
+ export type StreetSuffix = UsStreetSuffix;
475
+ /** A standardized USPS street suffix abbreviation (the preferred form), i.e. "ST", "AVE", "BLVD". */
476
+ export type USPSStandardSuffixAbbreviation = StreetSuffixAbbreviationRecord[StreetSuffix][0];
477
+ /** Any USPS-recognized suffix variant or abbreviation. */
478
+ export type StreetSuffixAbbreviation = StreetSuffixAbbreviationRecord[StreetSuffix][number];
479
+ /** Result of a successful USPS street suffix lookup. */
480
+ export interface StreetSuffixMatch<S extends StreetSuffix = StreetSuffix> {
481
+ /** The matched canonical USPS street suffix, i.e. "STREET", "AVENUE". */
482
+ suffix: S;
483
+ /** The preferred USPS street suffix abbreviation, i.e. "ST", "AVE". */
484
+ abbreviation: StreetSuffixAbbreviationRecord[S][0];
485
+ }
486
+ /**
487
+ * Look up a USPS street suffix (by canonical word, abbreviation, or any variant) and its preferred
488
+ * abbreviation.
489
+ */
490
+ export declare function lookupStreetSuffix<S extends StreetSuffix>(suffix: S): StreetSuffixMatch<S>;
491
+ export declare function lookupStreetSuffix(input: string | null | undefined): StreetSuffixMatch | null;
492
+ /** Type-predicate: is the input a canonical USPS street suffix (uppercase full word, e.g. "STREET")? */
493
+ export declare function isStreetSuffix(input: unknown): input is StreetSuffix;
494
+ /**
495
+ * True when a token is any USPS street suffix or abbreviation (case-insensitive) — `"St"`,
496
+ * `"BLVD"`, `"trail"`.
497
+ */
498
+ export declare function isStreetSuffixToken(input: unknown): boolean;
499
+ //# sourceMappingURL=street-suffix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"street-suffix.d.ts","sourceRoot":"","sources":["../../us/street-suffix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8MgB,CAAA;AAEtD,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,yBAAyB,CAAA;AAEnE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAYpE,CAAA;AAEJ,qFAAqF;AACrF,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAExC,CAAA;AAE7C;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKnE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQzG;AAMD;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAA;AACvE,MAAM,MAAM,8BAA8B,GAAG,OAAO,yBAAyB,CAAA;AAE7E;0BAC0B;AAC1B,MAAM,MAAM,YAAY,GAAG,cAAc,CAAA;AAEzC,qGAAqG;AACrG,MAAM,MAAM,8BAA8B,GAAG,8BAA8B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5F,0DAA0D;AAC1D,MAAM,MAAM,wBAAwB,GAAG,8BAA8B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3F,wDAAwD;AACxD,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IACvE,yEAAyE;IACzE,MAAM,EAAE,CAAC,CAAA;IACT,uEAAuE;IACvE,YAAY,EAAE,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAClD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAC3F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAAA;AAQ9F,wGAAwG;AACxG,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE3D"}