@lightsparkdev/core 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1120 @@
1
+ /* From https://github.com/tadeegan/zip-state. Maps US zipcodes to state codes */
2
+
3
+ // Define valid state codes as a union type
4
+ export type StateCode =
5
+ | "AK"
6
+ | "AL"
7
+ | "AR"
8
+ | "AZ"
9
+ | "CA"
10
+ | "CO"
11
+ | "CT"
12
+ | "DE"
13
+ | "FL"
14
+ | "GA"
15
+ | "HI"
16
+ | "IA"
17
+ | "ID"
18
+ | "IL"
19
+ | "IN"
20
+ | "KS"
21
+ | "KY"
22
+ | "LA"
23
+ | "MA"
24
+ | "MD"
25
+ | "ME"
26
+ | "MI"
27
+ | "MN"
28
+ | "MO"
29
+ | "MS"
30
+ | "MT"
31
+ | "NC"
32
+ | "ND"
33
+ | "NE"
34
+ | "NV"
35
+ | "NH"
36
+ | "NJ"
37
+ | "NM"
38
+ | "NY"
39
+ | "OH"
40
+ | "OK"
41
+ | "OR"
42
+ | "PA"
43
+ | "RI"
44
+ | "SC"
45
+ | "SD"
46
+ | "TN"
47
+ | "TX"
48
+ | "UT"
49
+ | "VA"
50
+ | "VT"
51
+ | "WA"
52
+ | "WI"
53
+ | "WV"
54
+ | "WY"
55
+ | "DC"
56
+ | "GU"
57
+ | "PR"
58
+ | "VI"
59
+ | "AE"
60
+ | "AA"
61
+ | "AP"
62
+ | "AS"
63
+ | "PW"
64
+ | "FM"
65
+ | "MP"
66
+ | "MH";
67
+
68
+ // Special cases/exceptions
69
+ export const zipcodeToStateCode: Record<string, StateCode> = {
70
+ "20500": "DC",
71
+ "20501": "DC",
72
+ "20502": "DC",
73
+ "20503": "DC",
74
+ "20504": "DC",
75
+ "20505": "DC",
76
+ "20506": "DC",
77
+ "20507": "DC",
78
+ "20508": "DC",
79
+ "20509": "DC",
80
+ "20510": "DC",
81
+ "20511": "DC",
82
+ "20515": "DC",
83
+ "20520": "DC",
84
+ "20521": "DC",
85
+ "20522": "DC",
86
+ "20523": "DC",
87
+ "20524": "DC",
88
+ "20525": "DC",
89
+ "20526": "DC",
90
+ "20527": "DC",
91
+ "20528": "DC",
92
+ "20529": "DC",
93
+ "20530": "DC",
94
+ "20531": "DC",
95
+ "20532": "DC",
96
+ "20533": "DC",
97
+ "20534": "DC",
98
+ "20535": "DC",
99
+ "20536": "DC",
100
+ "20537": "DC",
101
+ "20538": "DC",
102
+ "20539": "DC",
103
+ "20540": "DC",
104
+ "20541": "DC",
105
+ "20542": "DC",
106
+ "20543": "DC",
107
+ "20544": "DC",
108
+ "20546": "DC",
109
+ "20547": "DC",
110
+ "20548": "DC",
111
+ "20549": "DC",
112
+ "20551": "DC",
113
+ "20552": "DC",
114
+ "20553": "DC",
115
+ "20554": "DC",
116
+ "20555": "DC",
117
+ "20557": "DC",
118
+ "20558": "DC",
119
+ "20559": "DC",
120
+ "20560": "DC",
121
+ "20565": "DC",
122
+ "20566": "DC",
123
+ "20570": "DC",
124
+ "20571": "DC",
125
+ "20572": "DC",
126
+ "20573": "DC",
127
+ "20575": "DC",
128
+ "20576": "DC",
129
+ "20577": "DC",
130
+ "20578": "DC",
131
+ "20579": "DC",
132
+ "20580": "DC",
133
+ "20581": "DC",
134
+ "20585": "DC",
135
+ "20586": "DC",
136
+ "20590": "DC",
137
+ "20591": "DC",
138
+ "20593": "DC",
139
+ "20594": "DC",
140
+ "20597": "DC",
141
+ "20598": "MD",
142
+ "20599": "DC",
143
+ "72643": "AR",
144
+ "73960": "OK",
145
+ "83414": "WY",
146
+ "96799": "HI",
147
+ "96939": "GU",
148
+ "96940": "GU",
149
+ "96941": "MP",
150
+ "96942": "MP",
151
+ "96943": "MP",
152
+ "96944": "MP",
153
+ "96950": "PW",
154
+ "96951": "PW",
155
+ "96952": "PW",
156
+ "96960": "FM",
157
+ "96970": "FM",
158
+ "06390": "CT",
159
+ };
160
+
161
+ // Main prefix mapping
162
+ const prefixToState: Record<string, StateCode> = {
163
+ "005": "NY",
164
+ "006": "PR",
165
+ "007": "PR",
166
+ "008": "VI",
167
+ "009": "PR",
168
+ "010": "MA",
169
+ "011": "MA",
170
+ "012": "MA",
171
+ "013": "MA",
172
+ "014": "MA",
173
+ "015": "MA",
174
+ "016": "MA",
175
+ "017": "MA",
176
+ "018": "MA",
177
+ "019": "MA",
178
+ "020": "MA",
179
+ "021": "MA",
180
+ "022": "MA",
181
+ "023": "MA",
182
+ "024": "MA",
183
+ "025": "MA",
184
+ "026": "MA",
185
+ "027": "MA",
186
+ "028": "RI",
187
+ "029": "RI",
188
+ "030": "NH",
189
+ "031": "NH",
190
+ "032": "NH",
191
+ "033": "NH",
192
+ "034": "NH",
193
+ "035": "NH",
194
+ "036": "NH",
195
+ "037": "NH",
196
+ "038": "NH",
197
+ "039": "ME",
198
+ "040": "ME",
199
+ "041": "ME",
200
+ "042": "ME",
201
+ "043": "ME",
202
+ "044": "ME",
203
+ "045": "ME",
204
+ "046": "ME",
205
+ "047": "ME",
206
+ "048": "ME",
207
+ "049": "ME",
208
+ "050": "VT",
209
+ "051": "VT",
210
+ "052": "VT",
211
+ "053": "VT",
212
+ "054": "VT",
213
+ "055": "MA",
214
+ "056": "VT",
215
+ "057": "VT",
216
+ "058": "VT",
217
+ "059": "VT",
218
+ "060": "CT",
219
+ "061": "CT",
220
+ "062": "CT",
221
+ "063": "CT",
222
+ "064": "CT",
223
+ "065": "CT",
224
+ "066": "CT",
225
+ "067": "CT",
226
+ "068": "CT",
227
+ "069": "CT",
228
+ "070": "NJ",
229
+ "071": "NJ",
230
+ "072": "NJ",
231
+ "073": "NJ",
232
+ "074": "NJ",
233
+ "075": "NJ",
234
+ "076": "NJ",
235
+ "077": "NJ",
236
+ "078": "NJ",
237
+ "079": "NJ",
238
+ "080": "NJ",
239
+ "081": "NJ",
240
+ "082": "NJ",
241
+ "083": "NJ",
242
+ "084": "NJ",
243
+ "085": "NJ",
244
+ "086": "NJ",
245
+ "087": "NJ",
246
+ "088": "NJ",
247
+ "089": "NJ",
248
+ "090": "AE",
249
+ "091": "AE",
250
+ "092": "AE",
251
+ "093": "AE",
252
+ "094": "AE",
253
+ "095": "AE",
254
+ "096": "AE",
255
+ "097": "AE",
256
+ "098": "AE",
257
+ "099": "AE",
258
+ "100": "NY",
259
+ "101": "NY",
260
+ "102": "NY",
261
+ "103": "NY",
262
+ "104": "NY",
263
+ "105": "NY",
264
+ "106": "NY",
265
+ "107": "NY",
266
+ "108": "NY",
267
+ "109": "NY",
268
+ "110": "NY",
269
+ "111": "NY",
270
+ "112": "NY",
271
+ "113": "NY",
272
+ "114": "NY",
273
+ "115": "NY",
274
+ "116": "NY",
275
+ "117": "NY",
276
+ "118": "NY",
277
+ "119": "NY",
278
+ "120": "NY",
279
+ "121": "NY",
280
+ "122": "NY",
281
+ "123": "NY",
282
+ "124": "NY",
283
+ "125": "NY",
284
+ "126": "NY",
285
+ "127": "NY",
286
+ "128": "NY",
287
+ "129": "NY",
288
+ "130": "NY",
289
+ "131": "NY",
290
+ "132": "NY",
291
+ "133": "NY",
292
+ "134": "NY",
293
+ "135": "NY",
294
+ "136": "NY",
295
+ "137": "NY",
296
+ "138": "NY",
297
+ "139": "NY",
298
+ "140": "NY",
299
+ "141": "NY",
300
+ "142": "NY",
301
+ "143": "NY",
302
+ "144": "NY",
303
+ "145": "NY",
304
+ "146": "NY",
305
+ "147": "NY",
306
+ "148": "NY",
307
+ "149": "NY",
308
+ "150": "PA",
309
+ "151": "PA",
310
+ "152": "PA",
311
+ "153": "PA",
312
+ "154": "PA",
313
+ "155": "PA",
314
+ "156": "PA",
315
+ "157": "PA",
316
+ "158": "PA",
317
+ "159": "PA",
318
+ "160": "PA",
319
+ "161": "PA",
320
+ "162": "PA",
321
+ "163": "PA",
322
+ "164": "PA",
323
+ "165": "PA",
324
+ "166": "PA",
325
+ "167": "PA",
326
+ "168": "PA",
327
+ "169": "PA",
328
+ "170": "PA",
329
+ "171": "PA",
330
+ "172": "PA",
331
+ "173": "PA",
332
+ "174": "PA",
333
+ "175": "PA",
334
+ "176": "PA",
335
+ "177": "PA",
336
+ "178": "PA",
337
+ "179": "PA",
338
+ "180": "PA",
339
+ "181": "PA",
340
+ "182": "PA",
341
+ "183": "PA",
342
+ "184": "PA",
343
+ "185": "PA",
344
+ "186": "PA",
345
+ "187": "PA",
346
+ "188": "PA",
347
+ "189": "PA",
348
+ "190": "PA",
349
+ "191": "PA",
350
+ "192": "PA",
351
+ "193": "PA",
352
+ "194": "PA",
353
+ "195": "PA",
354
+ "196": "PA",
355
+ "197": "DE",
356
+ "198": "DE",
357
+ "199": "DE",
358
+ "200": "DC",
359
+ "201": "VA",
360
+ "202": "DC",
361
+ "203": "DC",
362
+ "204": "DC",
363
+ "205": "DC",
364
+ "206": "MD",
365
+ "207": "MD",
366
+ "208": "MD",
367
+ "209": "MD",
368
+ "210": "MD",
369
+ "211": "MD",
370
+ "212": "MD",
371
+ "213": "MD",
372
+ "214": "MD",
373
+ "215": "MD",
374
+ "216": "MD",
375
+ "217": "MD",
376
+ "218": "MD",
377
+ "219": "MD",
378
+ "220": "VA",
379
+ "221": "VA",
380
+ "222": "VA",
381
+ "223": "VA",
382
+ "224": "VA",
383
+ "225": "VA",
384
+ "226": "VA",
385
+ "227": "VA",
386
+ "228": "VA",
387
+ "229": "VA",
388
+ "230": "VA",
389
+ "231": "VA",
390
+ "232": "VA",
391
+ "233": "VA",
392
+ "234": "VA",
393
+ "235": "VA",
394
+ "236": "VA",
395
+ "237": "VA",
396
+ "238": "VA",
397
+ "239": "VA",
398
+ "240": "VA",
399
+ "241": "VA",
400
+ "242": "VA",
401
+ "243": "VA",
402
+ "244": "VA",
403
+ "245": "VA",
404
+ "246": "VA",
405
+ "247": "WV",
406
+ "248": "WV",
407
+ "249": "WV",
408
+ "250": "WV",
409
+ "251": "WV",
410
+ "252": "WV",
411
+ "253": "WV",
412
+ "254": "WV",
413
+ "255": "WV",
414
+ "256": "WV",
415
+ "257": "WV",
416
+ "258": "WV",
417
+ "259": "WV",
418
+ "260": "WV",
419
+ "261": "WV",
420
+ "262": "WV",
421
+ "263": "WV",
422
+ "264": "WV",
423
+ "265": "WV",
424
+ "266": "WV",
425
+ "267": "WV",
426
+ "268": "WV",
427
+ "269": "WV",
428
+ "270": "NC",
429
+ "271": "NC",
430
+ "272": "NC",
431
+ "273": "NC",
432
+ "274": "NC",
433
+ "275": "NC",
434
+ "276": "NC",
435
+ "277": "NC",
436
+ "278": "NC",
437
+ "279": "NC",
438
+ "280": "NC",
439
+ "281": "NC",
440
+ "282": "NC",
441
+ "283": "NC",
442
+ "284": "NC",
443
+ "285": "NC",
444
+ "286": "NC",
445
+ "287": "NC",
446
+ "288": "NC",
447
+ "289": "NC",
448
+ "290": "SC",
449
+ "291": "SC",
450
+ "292": "SC",
451
+ "293": "SC",
452
+ "294": "SC",
453
+ "295": "SC",
454
+ "296": "SC",
455
+ "297": "SC",
456
+ "298": "SC",
457
+ "299": "SC",
458
+ "300": "GA",
459
+ "301": "GA",
460
+ "302": "GA",
461
+ "303": "GA",
462
+ "304": "GA",
463
+ "305": "GA",
464
+ "306": "GA",
465
+ "307": "GA",
466
+ "308": "GA",
467
+ "309": "GA",
468
+ "310": "GA",
469
+ "311": "GA",
470
+ "312": "GA",
471
+ "313": "GA",
472
+ "314": "GA",
473
+ "315": "GA",
474
+ "316": "GA",
475
+ "317": "GA",
476
+ "318": "GA",
477
+ "319": "GA",
478
+ "320": "FL",
479
+ "321": "FL",
480
+ "322": "FL",
481
+ "323": "FL",
482
+ "324": "FL",
483
+ "325": "FL",
484
+ "326": "FL",
485
+ "327": "FL",
486
+ "328": "FL",
487
+ "329": "FL",
488
+ "330": "FL",
489
+ "331": "FL",
490
+ "332": "FL",
491
+ "333": "FL",
492
+ "334": "FL",
493
+ "335": "FL",
494
+ "336": "FL",
495
+ "337": "FL",
496
+ "338": "FL",
497
+ "339": "FL",
498
+ "340": "AA",
499
+ "341": "FL",
500
+ "342": "FL",
501
+ "344": "FL",
502
+ "346": "FL",
503
+ "347": "FL",
504
+ "349": "FL",
505
+ "350": "AL",
506
+ "351": "AL",
507
+ "352": "AL",
508
+ "354": "AL",
509
+ "355": "AL",
510
+ "356": "AL",
511
+ "357": "AL",
512
+ "358": "AL",
513
+ "359": "AL",
514
+ "360": "AL",
515
+ "361": "AL",
516
+ "362": "AL",
517
+ "363": "AL",
518
+ "364": "AL",
519
+ "365": "AL",
520
+ "366": "AL",
521
+ "367": "AL",
522
+ "368": "AL",
523
+ "369": "AL",
524
+ "370": "TN",
525
+ "371": "TN",
526
+ "372": "TN",
527
+ "373": "TN",
528
+ "374": "TN",
529
+ "375": "TN",
530
+ "376": "TN",
531
+ "377": "TN",
532
+ "378": "TN",
533
+ "379": "TN",
534
+ "380": "TN",
535
+ "381": "TN",
536
+ "382": "TN",
537
+ "383": "TN",
538
+ "384": "TN",
539
+ "385": "TN",
540
+ "386": "MS",
541
+ "387": "MS",
542
+ "388": "MS",
543
+ "389": "MS",
544
+ "390": "MS",
545
+ "391": "MS",
546
+ "392": "MS",
547
+ "393": "MS",
548
+ "394": "MS",
549
+ "395": "MS",
550
+ "396": "MS",
551
+ "397": "MS",
552
+ "398": "GA",
553
+ "399": "GA",
554
+ "400": "KY",
555
+ "401": "KY",
556
+ "402": "KY",
557
+ "403": "KY",
558
+ "404": "KY",
559
+ "405": "KY",
560
+ "406": "KY",
561
+ "407": "KY",
562
+ "408": "KY",
563
+ "409": "KY",
564
+ "410": "KY",
565
+ "411": "KY",
566
+ "412": "KY",
567
+ "413": "KY",
568
+ "414": "KY",
569
+ "415": "KY",
570
+ "416": "KY",
571
+ "417": "KY",
572
+ "418": "KY",
573
+ "420": "KY",
574
+ "421": "KY",
575
+ "422": "KY",
576
+ "423": "KY",
577
+ "424": "KY",
578
+ "425": "KY",
579
+ "426": "KY",
580
+ "427": "KY",
581
+ "430": "OH",
582
+ "431": "OH",
583
+ "432": "OH",
584
+ "433": "OH",
585
+ "434": "OH",
586
+ "435": "OH",
587
+ "436": "OH",
588
+ "437": "OH",
589
+ "438": "OH",
590
+ "439": "OH",
591
+ "440": "OH",
592
+ "441": "OH",
593
+ "442": "OH",
594
+ "443": "OH",
595
+ "444": "OH",
596
+ "445": "OH",
597
+ "446": "OH",
598
+ "447": "OH",
599
+ "448": "OH",
600
+ "449": "OH",
601
+ "450": "OH",
602
+ "451": "OH",
603
+ "452": "OH",
604
+ "453": "OH",
605
+ "454": "OH",
606
+ "455": "OH",
607
+ "456": "OH",
608
+ "457": "OH",
609
+ "458": "OH",
610
+ "459": "OH",
611
+ "460": "IN",
612
+ "461": "IN",
613
+ "462": "IN",
614
+ "463": "IN",
615
+ "464": "IN",
616
+ "465": "IN",
617
+ "466": "IN",
618
+ "467": "IN",
619
+ "468": "IN",
620
+ "469": "IN",
621
+ "470": "IN",
622
+ "471": "IN",
623
+ "472": "IN",
624
+ "473": "IN",
625
+ "474": "IN",
626
+ "475": "IN",
627
+ "476": "IN",
628
+ "477": "IN",
629
+ "478": "IN",
630
+ "479": "IN",
631
+ "480": "MI",
632
+ "481": "MI",
633
+ "482": "MI",
634
+ "483": "MI",
635
+ "484": "MI",
636
+ "485": "MI",
637
+ "486": "MI",
638
+ "487": "MI",
639
+ "488": "MI",
640
+ "489": "MI",
641
+ "490": "MI",
642
+ "491": "MI",
643
+ "492": "MI",
644
+ "493": "MI",
645
+ "494": "MI",
646
+ "495": "MI",
647
+ "496": "MI",
648
+ "497": "MI",
649
+ "498": "MI",
650
+ "499": "MI",
651
+ "500": "IA",
652
+ "501": "IA",
653
+ "502": "IA",
654
+ "503": "IA",
655
+ "504": "IA",
656
+ "505": "IA",
657
+ "506": "IA",
658
+ "507": "IA",
659
+ "508": "IA",
660
+ "509": "IA",
661
+ "510": "IA",
662
+ "511": "IA",
663
+ "512": "IA",
664
+ "513": "IA",
665
+ "514": "IA",
666
+ "515": "IA",
667
+ "516": "IA",
668
+ "520": "IA",
669
+ "521": "IA",
670
+ "522": "IA",
671
+ "523": "IA",
672
+ "524": "IA",
673
+ "525": "IA",
674
+ "526": "IA",
675
+ "527": "IA",
676
+ "528": "IA",
677
+ "530": "WI",
678
+ "531": "WI",
679
+ "532": "WI",
680
+ "534": "WI",
681
+ "535": "WI",
682
+ "537": "WI",
683
+ "538": "WI",
684
+ "539": "WI",
685
+ "540": "WI",
686
+ "541": "WI",
687
+ "542": "WI",
688
+ "543": "WI",
689
+ "544": "WI",
690
+ "545": "WI",
691
+ "546": "WI",
692
+ "547": "WI",
693
+ "548": "WI",
694
+ "549": "WI",
695
+ "550": "MN",
696
+ "551": "MN",
697
+ "553": "MN",
698
+ "554": "MN",
699
+ "555": "MN",
700
+ "556": "MN",
701
+ "557": "MN",
702
+ "558": "MN",
703
+ "559": "MN",
704
+ "560": "MN",
705
+ "561": "MN",
706
+ "562": "MN",
707
+ "563": "MN",
708
+ "564": "MN",
709
+ "565": "MN",
710
+ "566": "MN",
711
+ "567": "MN",
712
+ "570": "SD",
713
+ "571": "SD",
714
+ "572": "SD",
715
+ "573": "SD",
716
+ "574": "SD",
717
+ "575": "SD",
718
+ "576": "SD",
719
+ "577": "SD",
720
+ "580": "ND",
721
+ "581": "ND",
722
+ "582": "ND",
723
+ "583": "ND",
724
+ "584": "ND",
725
+ "585": "ND",
726
+ "586": "ND",
727
+ "587": "ND",
728
+ "588": "ND",
729
+ "590": "MT",
730
+ "591": "MT",
731
+ "592": "MT",
732
+ "593": "MT",
733
+ "594": "MT",
734
+ "595": "MT",
735
+ "596": "MT",
736
+ "597": "MT",
737
+ "598": "MT",
738
+ "599": "MT",
739
+ "600": "IL",
740
+ "601": "IL",
741
+ "602": "IL",
742
+ "603": "IL",
743
+ "604": "IL",
744
+ "605": "IL",
745
+ "606": "IL",
746
+ "607": "IL",
747
+ "608": "IL",
748
+ "609": "IL",
749
+ "610": "IL",
750
+ "611": "IL",
751
+ "612": "IL",
752
+ "613": "IL",
753
+ "614": "IL",
754
+ "615": "IL",
755
+ "616": "IL",
756
+ "617": "IL",
757
+ "618": "IL",
758
+ "619": "IL",
759
+ "620": "IL",
760
+ "622": "IL",
761
+ "623": "IL",
762
+ "624": "IL",
763
+ "625": "IL",
764
+ "626": "IL",
765
+ "627": "IL",
766
+ "628": "IL",
767
+ "629": "IL",
768
+ "630": "MO",
769
+ "631": "MO",
770
+ "633": "MO",
771
+ "634": "MO",
772
+ "635": "MO",
773
+ "636": "MO",
774
+ "637": "MO",
775
+ "638": "MO",
776
+ "639": "MO",
777
+ "640": "MO",
778
+ "641": "MO",
779
+ "644": "MO",
780
+ "645": "MO",
781
+ "646": "MO",
782
+ "647": "MO",
783
+ "648": "MO",
784
+ "649": "MO",
785
+ "650": "MO",
786
+ "651": "MO",
787
+ "652": "MO",
788
+ "653": "MO",
789
+ "654": "MO",
790
+ "655": "MO",
791
+ "656": "MO",
792
+ "657": "MO",
793
+ "658": "MO",
794
+ "660": "KS",
795
+ "661": "KS",
796
+ "662": "KS",
797
+ "664": "KS",
798
+ "665": "KS",
799
+ "666": "KS",
800
+ "667": "KS",
801
+ "668": "KS",
802
+ "669": "KS",
803
+ "670": "KS",
804
+ "671": "KS",
805
+ "672": "KS",
806
+ "673": "KS",
807
+ "674": "KS",
808
+ "675": "KS",
809
+ "676": "KS",
810
+ "677": "KS",
811
+ "678": "KS",
812
+ "679": "KS",
813
+ "680": "NE",
814
+ "681": "NE",
815
+ "683": "NE",
816
+ "684": "NE",
817
+ "685": "NE",
818
+ "686": "NE",
819
+ "687": "NE",
820
+ "688": "NE",
821
+ "689": "NE",
822
+ "690": "NE",
823
+ "691": "NE",
824
+ "692": "NE",
825
+ "693": "NE",
826
+ "700": "LA",
827
+ "701": "LA",
828
+ "703": "LA",
829
+ "704": "LA",
830
+ "705": "LA",
831
+ "706": "LA",
832
+ "707": "LA",
833
+ "708": "LA",
834
+ "710": "LA",
835
+ "711": "LA",
836
+ "712": "LA",
837
+ "713": "LA",
838
+ "714": "LA",
839
+ "716": "AR",
840
+ "717": "AR",
841
+ "718": "AR",
842
+ "719": "AR",
843
+ "720": "AR",
844
+ "721": "AR",
845
+ "722": "AR",
846
+ "723": "AR",
847
+ "724": "AR",
848
+ "725": "AR",
849
+ "726": "AR",
850
+ "727": "AR",
851
+ "728": "AR",
852
+ "729": "AR",
853
+ "730": "OK",
854
+ "731": "OK",
855
+ "733": "OK",
856
+ "734": "OK",
857
+ "735": "OK",
858
+ "736": "OK",
859
+ "737": "OK",
860
+ "738": "OK",
861
+ "739": "OK",
862
+ "740": "OK",
863
+ "741": "OK",
864
+ "743": "OK",
865
+ "744": "OK",
866
+ "745": "OK",
867
+ "746": "OK",
868
+ "747": "OK",
869
+ "748": "OK",
870
+ "749": "OK",
871
+ "750": "TX",
872
+ "751": "TX",
873
+ "752": "TX",
874
+ "753": "TX",
875
+ "754": "TX",
876
+ "755": "TX",
877
+ "756": "TX",
878
+ "757": "TX",
879
+ "758": "TX",
880
+ "759": "TX",
881
+ "760": "TX",
882
+ "761": "TX",
883
+ "762": "TX",
884
+ "763": "TX",
885
+ "764": "TX",
886
+ "765": "TX",
887
+ "766": "TX",
888
+ "767": "TX",
889
+ "768": "TX",
890
+ "769": "TX",
891
+ "770": "TX",
892
+ "771": "TX",
893
+ "772": "TX",
894
+ "773": "TX",
895
+ "774": "TX",
896
+ "775": "TX",
897
+ "776": "TX",
898
+ "777": "TX",
899
+ "778": "TX",
900
+ "779": "TX",
901
+ "780": "TX",
902
+ "781": "TX",
903
+ "782": "TX",
904
+ "783": "TX",
905
+ "784": "TX",
906
+ "785": "TX",
907
+ "786": "TX",
908
+ "787": "TX",
909
+ "788": "TX",
910
+ "789": "TX",
911
+ "790": "TX",
912
+ "791": "TX",
913
+ "792": "TX",
914
+ "793": "TX",
915
+ "794": "TX",
916
+ "795": "TX",
917
+ "796": "TX",
918
+ "797": "TX",
919
+ "798": "TX",
920
+ "799": "TX",
921
+ "800": "CO",
922
+ "801": "CO",
923
+ "802": "CO",
924
+ "803": "CO",
925
+ "804": "CO",
926
+ "805": "CO",
927
+ "806": "CO",
928
+ "807": "CO",
929
+ "808": "CO",
930
+ "809": "CO",
931
+ "810": "CO",
932
+ "811": "CO",
933
+ "812": "CO",
934
+ "813": "CO",
935
+ "814": "CO",
936
+ "815": "CO",
937
+ "816": "CO",
938
+ "820": "WY",
939
+ "821": "WY",
940
+ "822": "WY",
941
+ "823": "WY",
942
+ "824": "WY",
943
+ "825": "WY",
944
+ "826": "WY",
945
+ "827": "WY",
946
+ "828": "WY",
947
+ "829": "WY",
948
+ "830": "WY",
949
+ "831": "WY",
950
+ "832": "ID",
951
+ "833": "ID",
952
+ "834": "ID",
953
+ "835": "ID",
954
+ "836": "ID",
955
+ "837": "ID",
956
+ "838": "ID",
957
+ "839": "ID",
958
+ "840": "UT",
959
+ "841": "UT",
960
+ "842": "UT",
961
+ "843": "UT",
962
+ "844": "UT",
963
+ "845": "UT",
964
+ "846": "UT",
965
+ "847": "UT",
966
+ "850": "AZ",
967
+ "851": "AZ",
968
+ "852": "AZ",
969
+ "853": "AZ",
970
+ "854": "AZ",
971
+ "855": "AZ",
972
+ "856": "AZ",
973
+ "857": "AZ",
974
+ "859": "AZ",
975
+ "860": "AZ",
976
+ "863": "AZ",
977
+ "864": "AZ",
978
+ "865": "AZ",
979
+ "870": "NM",
980
+ "871": "NM",
981
+ "872": "NM",
982
+ "873": "NM",
983
+ "874": "NM",
984
+ "875": "NM",
985
+ "877": "NM",
986
+ "878": "NM",
987
+ "879": "NM",
988
+ "880": "NM",
989
+ "881": "NM",
990
+ "882": "NM",
991
+ "883": "NM",
992
+ "884": "NM",
993
+ "885": "TX",
994
+ "889": "NV",
995
+ "890": "NV",
996
+ "891": "NV",
997
+ "893": "NV",
998
+ "894": "NV",
999
+ "895": "NV",
1000
+ "897": "NV",
1001
+ "898": "NV",
1002
+ "899": "NV",
1003
+ "900": "CA",
1004
+ "901": "CA",
1005
+ "902": "CA",
1006
+ "903": "CA",
1007
+ "904": "CA",
1008
+ "905": "CA",
1009
+ "906": "CA",
1010
+ "907": "CA",
1011
+ "908": "CA",
1012
+ "909": "CA",
1013
+ "910": "CA",
1014
+ "911": "CA",
1015
+ "912": "CA",
1016
+ "913": "CA",
1017
+ "914": "CA",
1018
+ "915": "CA",
1019
+ "916": "CA",
1020
+ "917": "CA",
1021
+ "918": "CA",
1022
+ "919": "CA",
1023
+ "920": "CA",
1024
+ "921": "CA",
1025
+ "922": "CA",
1026
+ "923": "CA",
1027
+ "924": "CA",
1028
+ "925": "CA",
1029
+ "926": "CA",
1030
+ "927": "CA",
1031
+ "928": "CA",
1032
+ "929": "CA",
1033
+ "930": "CA",
1034
+ "931": "CA",
1035
+ "932": "CA",
1036
+ "933": "CA",
1037
+ "934": "CA",
1038
+ "935": "CA",
1039
+ "936": "CA",
1040
+ "937": "CA",
1041
+ "938": "CA",
1042
+ "939": "CA",
1043
+ "940": "CA",
1044
+ "941": "CA",
1045
+ "942": "CA",
1046
+ "943": "CA",
1047
+ "944": "CA",
1048
+ "945": "CA",
1049
+ "946": "CA",
1050
+ "947": "CA",
1051
+ "948": "CA",
1052
+ "949": "CA",
1053
+ "950": "CA",
1054
+ "951": "CA",
1055
+ "952": "CA",
1056
+ "953": "CA",
1057
+ "954": "CA",
1058
+ "955": "CA",
1059
+ "956": "CA",
1060
+ "957": "CA",
1061
+ "958": "CA",
1062
+ "959": "CA",
1063
+ "960": "CA",
1064
+ "961": "CA",
1065
+ "962": "AP",
1066
+ "963": "GU",
1067
+ "964": "AP",
1068
+ "965": "AP",
1069
+ "966": "AP",
1070
+ "967": "HI",
1071
+ "968": "HI",
1072
+ "969": "MP",
1073
+ "970": "OR",
1074
+ "971": "OR",
1075
+ "972": "OR",
1076
+ "973": "OR",
1077
+ "974": "OR",
1078
+ "975": "OR",
1079
+ "976": "OR",
1080
+ "977": "OR",
1081
+ "978": "OR",
1082
+ "979": "OR",
1083
+ "980": "WA",
1084
+ "981": "WA",
1085
+ "982": "WA",
1086
+ "983": "WA",
1087
+ "984": "WA",
1088
+ "985": "WA",
1089
+ "986": "WA",
1090
+ "987": "WA",
1091
+ "988": "WA",
1092
+ "989": "WA",
1093
+ "990": "WA",
1094
+ "991": "WA",
1095
+ "992": "WA",
1096
+ "993": "WA",
1097
+ "994": "WA",
1098
+ "995": "AK",
1099
+ "996": "AK",
1100
+ "997": "AK",
1101
+ "998": "AK",
1102
+ "999": "AK",
1103
+ };
1104
+
1105
+ /**
1106
+ * Converts a US zipcode to its corresponding state code
1107
+ * @param zipcode The zipcode to convert
1108
+ * @returns The state code or null if not found
1109
+ */
1110
+ export function zipcodeToState(zipcode: string): StateCode | null {
1111
+ // First check if it's in our exceptions list
1112
+ const fullZip = zipcode.slice(0, 5);
1113
+ if (zipcodeToStateCode[fullZip]) {
1114
+ return zipcodeToStateCode[fullZip];
1115
+ }
1116
+
1117
+ // Otherwise use the prefix mapping
1118
+ const prefix = zipcode.slice(0, 3);
1119
+ return prefixToState[prefix] || null;
1120
+ }