universal-parcel-scraper 0.237.0-main.1502 → 0.239.0-main.1504

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/data/catalog.json CHANGED
@@ -126,7 +126,8 @@
126
126
  "displayName": "Planzer",
127
127
  "color": "#e30613",
128
128
  "aliases": [
129
- "Planzer Group"
129
+ "Planzer Group",
130
+ "Planzer Parcel"
130
131
  ],
131
132
  "countries": [
132
133
  "CH"
@@ -774,7 +775,9 @@
774
775
  "color": "#ff9900",
775
776
  "aliases": [
776
777
  "Shipping with Amazon",
777
- "SWA"
778
+ "SWA",
779
+ "Amazon Swiship",
780
+ "Swiship"
778
781
  ],
779
782
  "countries": [
780
783
  "FR",
@@ -2121,6 +2124,7 @@
2121
2124
  "mode": "automatic",
2122
2125
  "adapter": "evri",
2123
2126
  "upstreamName": "Evri International",
2127
+ "recognitionRank": 605,
2124
2128
  "localClocks": true
2125
2129
  },
2126
2130
  "canaryUrl": "https://globaleco.app/track/",
@@ -2300,6 +2304,10 @@
2300
2304
  "postnord": {
2301
2305
  "displayName": "PostNord",
2302
2306
  "color": "#00a0d6",
2307
+ "aliases": [
2308
+ "PostNord Danmark",
2309
+ "PostNord Denmark"
2310
+ ],
2303
2311
  "countries": [
2304
2312
  "SE",
2305
2313
  "DK",
@@ -3617,6 +3625,9 @@
3617
3625
  "nz-post": {
3618
3626
  "displayName": "NZ Post",
3619
3627
  "color": "#d8291c",
3628
+ "aliases": [
3629
+ "New Zealand Post"
3630
+ ],
3620
3631
  "countries": [
3621
3632
  "NZ"
3622
3633
  ],
@@ -3997,6 +4008,9 @@
3997
4008
  "korea-post": {
3998
4009
  "displayName": "Korea Post",
3999
4010
  "color": "#da291c",
4011
+ "aliases": [
4012
+ "South Korea Post"
4013
+ ],
4000
4014
  "countries": [
4001
4015
  "KR"
4002
4016
  ],
@@ -4390,6 +4404,11 @@
4390
4404
  "poczta-polska": {
4391
4405
  "displayName": "Poczta Polska",
4392
4406
  "color": "#c43c2b",
4407
+ "aliases": [
4408
+ "Polish Post",
4409
+ "Poland Post",
4410
+ "Pocztex"
4411
+ ],
4393
4412
  "countries": [
4394
4413
  "PL"
4395
4414
  ],
@@ -4442,7 +4461,8 @@
4442
4461
  "color": "#56b529",
4443
4462
  "aliases": [
4444
4463
  "Posten Norge",
4445
- "Posten Bring"
4464
+ "Posten Bring",
4465
+ "Norway Post"
4446
4466
  ],
4447
4467
  "countries": [
4448
4468
  "NO",
@@ -4636,6 +4656,9 @@
4636
4656
  "yanwen": {
4637
4657
  "displayName": "Yanwen",
4638
4658
  "color": "#8cbe1e",
4659
+ "aliases": [
4660
+ "Yanwen Logistics"
4661
+ ],
4639
4662
  "countries": [
4640
4663
  "CN"
4641
4664
  ],
@@ -10527,7 +10550,9 @@
10527
10550
  "timezone": "Europe/London",
10528
10551
  "tracking": {
10529
10552
  "mode": "automatic",
10530
- "adapter": "evri-uk"
10553
+ "adapter": "evri-uk",
10554
+ "recognitionRank": 615,
10555
+ "recognitionPattern": "^(?:[HT][0-9A-Z]{5}|C00HHA)\\d{10}$"
10531
10556
  },
10532
10557
  "canaryUrl": "https://www.evri.com/track-a-parcel",
10533
10558
  "trackingUrlTemplate": "https://www.evri.com/track/parcel/{trackingNumber}/details",
@@ -12651,7 +12676,8 @@
12651
12676
  "aliases": [
12652
12677
  "Intelcom",
12653
12678
  "Dragonfly",
12654
- "Dragonfly Shipping"
12679
+ "Dragonfly Shipping",
12680
+ "Intelcom Express"
12655
12681
  ],
12656
12682
  "countries": [
12657
12683
  "CA"
@@ -50562,6 +50562,9 @@
50562
50562
  "confidence": "low",
50563
50563
  "candidates": [
50564
50564
  "evri-uk"
50565
+ ],
50566
+ "asked": [
50567
+ "evri-uk"
50565
50568
  ]
50566
50569
  },
50567
50570
  {
@@ -50570,6 +50573,9 @@
50570
50573
  "confidence": "low",
50571
50574
  "candidates": [
50572
50575
  "evri-uk"
50576
+ ],
50577
+ "asked": [
50578
+ "evri-uk"
50573
50579
  ]
50574
50580
  },
50575
50581
  {
@@ -50578,6 +50584,9 @@
50578
50584
  "confidence": "low",
50579
50585
  "candidates": [
50580
50586
  "evri-uk"
50587
+ ],
50588
+ "asked": [
50589
+ "evri-uk"
50581
50590
  ]
50582
50591
  },
50583
50592
  {
@@ -50586,6 +50595,9 @@
50586
50595
  "confidence": "low",
50587
50596
  "candidates": [
50588
50597
  "evri-uk"
50598
+ ],
50599
+ "asked": [
50600
+ "evri-uk"
50589
50601
  ]
50590
50602
  },
50591
50603
  {
@@ -57308,6 +57320,8 @@
57308
57320
  "evri-uk"
57309
57321
  ],
57310
57322
  "asked": [
57323
+ "evri-uk",
57324
+ "evri",
57311
57325
  "hermes-de"
57312
57326
  ]
57313
57327
  },
@@ -57318,6 +57332,10 @@
57318
57332
  "candidates": [
57319
57333
  "evri",
57320
57334
  "evri-uk"
57335
+ ],
57336
+ "asked": [
57337
+ "evri-uk",
57338
+ "evri"
57321
57339
  ]
57322
57340
  },
57323
57341
  {
@@ -57327,6 +57345,10 @@
57327
57345
  "candidates": [
57328
57346
  "evri",
57329
57347
  "evri-uk"
57348
+ ],
57349
+ "asked": [
57350
+ "evri-uk",
57351
+ "evri"
57330
57352
  ]
57331
57353
  },
57332
57354
  {
@@ -57336,6 +57358,10 @@
57336
57358
  "candidates": [
57337
57359
  "evri",
57338
57360
  "evri-uk"
57361
+ ],
57362
+ "asked": [
57363
+ "evri-uk",
57364
+ "evri"
57339
57365
  ]
57340
57366
  },
57341
57367
  {
@@ -57345,6 +57371,10 @@
57345
57371
  "candidates": [
57346
57372
  "evri",
57347
57373
  "evri-uk"
57374
+ ],
57375
+ "asked": [
57376
+ "evri-uk",
57377
+ "evri"
57348
57378
  ]
57349
57379
  },
57350
57380
  {
@@ -57354,6 +57384,10 @@
57354
57384
  "candidates": [
57355
57385
  "evri",
57356
57386
  "evri-uk"
57387
+ ],
57388
+ "asked": [
57389
+ "evri-uk",
57390
+ "evri"
57357
57391
  ]
57358
57392
  },
57359
57393
  {
@@ -57363,6 +57397,10 @@
57363
57397
  "candidates": [
57364
57398
  "evri",
57365
57399
  "evri-uk"
57400
+ ],
57401
+ "asked": [
57402
+ "evri-uk",
57403
+ "evri"
57366
57404
  ]
57367
57405
  },
57368
57406
  {
@@ -57372,6 +57410,10 @@
57372
57410
  "candidates": [
57373
57411
  "evri",
57374
57412
  "evri-uk"
57413
+ ],
57414
+ "asked": [
57415
+ "evri-uk",
57416
+ "evri"
57375
57417
  ]
57376
57418
  },
57377
57419
  {
@@ -57381,6 +57423,10 @@
57381
57423
  "candidates": [
57382
57424
  "evri",
57383
57425
  "evri-uk"
57426
+ ],
57427
+ "asked": [
57428
+ "evri-uk",
57429
+ "evri"
57384
57430
  ]
57385
57431
  },
57386
57432
  {
@@ -57390,6 +57436,10 @@
57390
57436
  "candidates": [
57391
57437
  "evri",
57392
57438
  "evri-uk"
57439
+ ],
57440
+ "asked": [
57441
+ "evri-uk",
57442
+ "evri"
57393
57443
  ]
57394
57444
  },
57395
57445
  {
@@ -57399,6 +57449,10 @@
57399
57449
  "candidates": [
57400
57450
  "evri",
57401
57451
  "evri-uk"
57452
+ ],
57453
+ "asked": [
57454
+ "evri-uk",
57455
+ "evri"
57402
57456
  ]
57403
57457
  },
57404
57458
  {
@@ -57408,6 +57462,10 @@
57408
57462
  "candidates": [
57409
57463
  "evri",
57410
57464
  "evri-uk"
57465
+ ],
57466
+ "asked": [
57467
+ "evri-uk",
57468
+ "evri"
57411
57469
  ]
57412
57470
  },
57413
57471
  {
@@ -57417,6 +57475,10 @@
57417
57475
  "candidates": [
57418
57476
  "evri",
57419
57477
  "evri-uk"
57478
+ ],
57479
+ "asked": [
57480
+ "evri-uk",
57481
+ "evri"
57420
57482
  ]
57421
57483
  },
57422
57484
  {
@@ -57426,6 +57488,10 @@
57426
57488
  "candidates": [
57427
57489
  "evri",
57428
57490
  "evri-uk"
57491
+ ],
57492
+ "asked": [
57493
+ "evri-uk",
57494
+ "evri"
57429
57495
  ]
57430
57496
  },
57431
57497
  {
@@ -57435,6 +57501,10 @@
57435
57501
  "candidates": [
57436
57502
  "evri",
57437
57503
  "evri-uk"
57504
+ ],
57505
+ "asked": [
57506
+ "evri-uk",
57507
+ "evri"
57438
57508
  ]
57439
57509
  },
57440
57510
  {
@@ -57444,6 +57514,10 @@
57444
57514
  "candidates": [
57445
57515
  "evri",
57446
57516
  "evri-uk"
57517
+ ],
57518
+ "asked": [
57519
+ "evri-uk",
57520
+ "evri"
57447
57521
  ]
57448
57522
  },
57449
57523
  {
@@ -57453,6 +57527,10 @@
57453
57527
  "candidates": [
57454
57528
  "evri",
57455
57529
  "evri-uk"
57530
+ ],
57531
+ "asked": [
57532
+ "evri-uk",
57533
+ "evri"
57456
57534
  ]
57457
57535
  },
57458
57536
  {
@@ -57462,6 +57540,10 @@
57462
57540
  "candidates": [
57463
57541
  "evri",
57464
57542
  "evri-uk"
57543
+ ],
57544
+ "asked": [
57545
+ "evri-uk",
57546
+ "evri"
57465
57547
  ]
57466
57548
  },
57467
57549
  {
@@ -57471,6 +57553,10 @@
57471
57553
  "candidates": [
57472
57554
  "evri",
57473
57555
  "evri-uk"
57556
+ ],
57557
+ "asked": [
57558
+ "evri-uk",
57559
+ "evri"
57474
57560
  ]
57475
57561
  },
57476
57562
  {
@@ -57480,6 +57566,10 @@
57480
57566
  "candidates": [
57481
57567
  "evri",
57482
57568
  "evri-uk"
57569
+ ],
57570
+ "asked": [
57571
+ "evri-uk",
57572
+ "evri"
57483
57573
  ]
57484
57574
  },
57485
57575
  {
@@ -57489,6 +57579,10 @@
57489
57579
  "candidates": [
57490
57580
  "evri",
57491
57581
  "evri-uk"
57582
+ ],
57583
+ "asked": [
57584
+ "evri-uk",
57585
+ "evri"
57492
57586
  ]
57493
57587
  },
57494
57588
  {
@@ -57498,6 +57592,10 @@
57498
57592
  "candidates": [
57499
57593
  "evri",
57500
57594
  "evri-uk"
57595
+ ],
57596
+ "asked": [
57597
+ "evri-uk",
57598
+ "evri"
57501
57599
  ]
57502
57600
  },
57503
57601
  {
@@ -57507,6 +57605,10 @@
57507
57605
  "candidates": [
57508
57606
  "evri",
57509
57607
  "evri-uk"
57608
+ ],
57609
+ "asked": [
57610
+ "evri-uk",
57611
+ "evri"
57510
57612
  ]
57511
57613
  },
57512
57614
  {
@@ -57516,6 +57618,10 @@
57516
57618
  "candidates": [
57517
57619
  "evri",
57518
57620
  "evri-uk"
57621
+ ],
57622
+ "asked": [
57623
+ "evri-uk",
57624
+ "evri"
57519
57625
  ]
57520
57626
  },
57521
57627
  {
@@ -57525,6 +57631,10 @@
57525
57631
  "candidates": [
57526
57632
  "evri",
57527
57633
  "evri-uk"
57634
+ ],
57635
+ "asked": [
57636
+ "evri-uk",
57637
+ "evri"
57528
57638
  ]
57529
57639
  },
57530
57640
  {
@@ -57540,6 +57650,10 @@
57540
57650
  "candidates": [
57541
57651
  "evri",
57542
57652
  "evri-uk"
57653
+ ],
57654
+ "asked": [
57655
+ "evri-uk",
57656
+ "evri"
57543
57657
  ]
57544
57658
  },
57545
57659
  {
@@ -57549,6 +57663,10 @@
57549
57663
  "candidates": [
57550
57664
  "evri",
57551
57665
  "evri-uk"
57666
+ ],
57667
+ "asked": [
57668
+ "evri-uk",
57669
+ "evri"
57552
57670
  ]
57553
57671
  },
57554
57672
  {
@@ -57558,6 +57676,10 @@
57558
57676
  "candidates": [
57559
57677
  "evri",
57560
57678
  "evri-uk"
57679
+ ],
57680
+ "asked": [
57681
+ "evri-uk",
57682
+ "evri"
57561
57683
  ]
57562
57684
  },
57563
57685
  {
@@ -57567,6 +57689,10 @@
57567
57689
  "candidates": [
57568
57690
  "evri",
57569
57691
  "evri-uk"
57692
+ ],
57693
+ "asked": [
57694
+ "evri-uk",
57695
+ "evri"
57570
57696
  ]
57571
57697
  },
57572
57698
  {
@@ -57576,6 +57702,10 @@
57576
57702
  "candidates": [
57577
57703
  "evri",
57578
57704
  "evri-uk"
57705
+ ],
57706
+ "asked": [
57707
+ "evri-uk",
57708
+ "evri"
57579
57709
  ]
57580
57710
  },
57581
57711
  {
@@ -57585,6 +57715,10 @@
57585
57715
  "candidates": [
57586
57716
  "evri",
57587
57717
  "evri-uk"
57718
+ ],
57719
+ "asked": [
57720
+ "evri-uk",
57721
+ "evri"
57588
57722
  ]
57589
57723
  },
57590
57724
  {
@@ -68927,6 +69061,10 @@
68927
69061
  "candidates": [
68928
69062
  "evri",
68929
69063
  "evri-uk"
69064
+ ],
69065
+ "asked": [
69066
+ "evri-uk",
69067
+ "evri"
68930
69068
  ]
68931
69069
  },
68932
69070
  {
@@ -348,7 +348,7 @@ var Ae = {
348
348
  planzer: {
349
349
  displayName: "Planzer",
350
350
  color: "#e30613",
351
- aliases: ["Planzer Group"],
351
+ aliases: ["Planzer Group", "Planzer Parcel"],
352
352
  countries: ["CH"],
353
353
  selectable: !0,
354
354
  timezone: "Europe/Zurich",
@@ -832,7 +832,12 @@ var Ae = {
832
832
  "amazon-shipping": {
833
833
  displayName: "Amazon Shipping",
834
834
  color: "#ff9900",
835
- aliases: ["Shipping with Amazon", "SWA"],
835
+ aliases: [
836
+ "Shipping with Amazon",
837
+ "SWA",
838
+ "Amazon Swiship",
839
+ "Swiship"
840
+ ],
836
841
  countries: /* @__PURE__ */ "FR.DE.BE.GB.IT.ES.NL.AT.IE.PL.SE.PT.LU.DK.FI.CZ.SK.HU.RO.BG.HR.SI.EE.LV.LT.GR.CY.MT.CH.NO.IS.LI.TR.US".split("."),
837
842
  selectable: !1,
838
843
  timezone: "UTC",
@@ -1885,6 +1890,7 @@ var Ae = {
1885
1890
  mode: "automatic",
1886
1891
  adapter: "evri",
1887
1892
  upstreamName: "Evri International",
1893
+ recognitionRank: 605,
1888
1894
  localClocks: !0
1889
1895
  },
1890
1896
  canaryUrl: "https://globaleco.app/track/",
@@ -2047,6 +2053,7 @@ var Ae = {
2047
2053
  postnord: {
2048
2054
  displayName: "PostNord",
2049
2055
  color: "#00a0d6",
2056
+ aliases: ["PostNord Danmark", "PostNord Denmark"],
2050
2057
  countries: [
2051
2058
  "SE",
2052
2059
  "DK",
@@ -3084,6 +3091,7 @@ var Ae = {
3084
3091
  "nz-post": {
3085
3092
  displayName: "NZ Post",
3086
3093
  color: "#d8291c",
3094
+ aliases: ["New Zealand Post"],
3087
3095
  countries: ["NZ"],
3088
3096
  selectable: !0,
3089
3097
  timezone: "UTC",
@@ -3371,6 +3379,7 @@ var Ae = {
3371
3379
  "korea-post": {
3372
3380
  displayName: "Korea Post",
3373
3381
  color: "#da291c",
3382
+ aliases: ["South Korea Post"],
3374
3383
  countries: ["KR"],
3375
3384
  selectable: !0,
3376
3385
  timezone: "UTC",
@@ -3682,6 +3691,11 @@ var Ae = {
3682
3691
  "poczta-polska": {
3683
3692
  displayName: "Poczta Polska",
3684
3693
  color: "#c43c2b",
3694
+ aliases: [
3695
+ "Polish Post",
3696
+ "Poland Post",
3697
+ "Pocztex"
3698
+ ],
3685
3699
  countries: ["PL"],
3686
3700
  selectable: !0,
3687
3701
  timezone: "UTC",
@@ -3724,7 +3738,11 @@ var Ae = {
3724
3738
  "bring-posten": {
3725
3739
  displayName: "Bring",
3726
3740
  color: "#56b529",
3727
- aliases: ["Posten Norge", "Posten Bring"],
3741
+ aliases: [
3742
+ "Posten Norge",
3743
+ "Posten Bring",
3744
+ "Norway Post"
3745
+ ],
3728
3746
  countries: [
3729
3747
  "NO",
3730
3748
  "SE",
@@ -3887,6 +3905,7 @@ var Ae = {
3887
3905
  yanwen: {
3888
3906
  displayName: "Yanwen",
3889
3907
  color: "#8cbe1e",
3908
+ aliases: ["Yanwen Logistics"],
3890
3909
  countries: ["CN"],
3891
3910
  selectable: !0,
3892
3911
  timezone: "UTC",
@@ -8204,7 +8223,9 @@ var Ae = {
8204
8223
  timezone: "Europe/London",
8205
8224
  tracking: {
8206
8225
  mode: "automatic",
8207
- adapter: "evri-uk"
8226
+ adapter: "evri-uk",
8227
+ recognitionRank: 615,
8228
+ recognitionPattern: "^(?:[HT][0-9A-Z]{5}|C00HHA)\\d{10}$"
8208
8229
  },
8209
8230
  canaryUrl: "https://www.evri.com/track-a-parcel",
8210
8231
  trackingUrlTemplate: "https://www.evri.com/track/parcel/{trackingNumber}/details",
@@ -9768,7 +9789,8 @@ var Ae = {
9768
9789
  aliases: [
9769
9790
  "Intelcom",
9770
9791
  "Dragonfly",
9771
- "Dragonfly Shipping"
9792
+ "Dragonfly Shipping",
9793
+ "Intelcom Express"
9772
9794
  ],
9773
9795
  countries: ["CA"],
9774
9796
  selectable: !0,
@@ -22648,6 +22670,8 @@ var il = {
22648
22670
  envialia: 260,
22649
22671
  "epost-global": 65,
22650
22672
  estes: 20,
22673
+ evri: 605,
22674
+ "evri-uk": 615,
22651
22675
  "express-one": 190,
22652
22676
  "fan-courier": 330,
22653
22677
  "four-px": 570,
@@ -3,7 +3,9 @@
3
3
  "displayName": "Amazon Shipping",
4
4
  "aliases": [
5
5
  "Shipping with Amazon",
6
- "SWA"
6
+ "SWA",
7
+ "Amazon Swiship",
8
+ "Swiship"
7
9
  ],
8
10
  "region": {
9
11
  "countries": [
@@ -3,7 +3,8 @@
3
3
  "displayName": "Bring",
4
4
  "aliases": [
5
5
  "Posten Norge",
6
- "Posten Bring"
6
+ "Posten Bring",
7
+ "Norway Post"
7
8
  ],
8
9
  "region": {
9
10
  "countries": [
@@ -1,4 +1,4 @@
1
- import type { AdapterFactory, TrackingContext } from '../../core/adapter/index.js';
1
+ import { type AdapterFactory, type TrackingContext } from '../../core/adapter/index.js';
2
2
  import type { CarrierResult } from '../../core/result/index.js';
3
3
  export { normalizeEvriNumber, parse } from './parser.js';
4
4
  /**
@@ -1,3 +1,4 @@
1
+ import { accepted, recognizeFromLookup } from '../../core/adapter/index.js';
1
2
  import { TransportError, UpstreamHttpError } from '../../core/errors/index.js';
2
3
  import { decodeText, fetchBounded, userAgentOf } from '../../core/transport/index.js';
3
4
  import { normalizeEvriNumber, parse, PROVIDER } from './parser.js';
@@ -51,5 +52,8 @@ export class EvriTracker {
51
52
  }
52
53
  export const adapter = (environment) => {
53
54
  const tracker = new EvriTracker({ fetcher: environment.fetcher, userAgent: environment.userAgent });
54
- return { id: 'evri', steps: ['direct'], track: (input, context) => tracker.fetch(input.number, context) };
55
+ return {
56
+ id: 'evri', steps: ['direct'], track: (input, context) => tracker.fetch(input.number, context),
57
+ recognize: (number, context) => recognizeFromLookup(() => tracker.fetch(number, context), () => accepted(() => normalizeEvriNumber(number))),
58
+ };
55
59
  };
@@ -23,6 +23,9 @@
23
23
  "steps": [
24
24
  "direct"
25
25
  ],
26
+ "recognition": {
27
+ "rank": 605
28
+ },
26
29
  "localClocks": true
27
30
  },
28
31
  "capabilities": [
@@ -1,4 +1,4 @@
1
- import type { AdapterFactory, TrackingContext } from '../../core/adapter/index.js';
1
+ import { type AdapterFactory, type TrackingContext } from '../../core/adapter/index.js';
2
2
  import { type StepRecorder } from '../../core/telemetry/index.js';
3
3
  export declare class EvriUkTracker {
4
4
  private readonly options;
@@ -1,9 +1,10 @@
1
+ import { accepted } from '../../core/adapter/index.js';
1
2
  import { CarrierError, carrierErrorKind, ChallengeError, IndeterminateError, RateLimitedError, SchemaError, TransportError, UpstreamHttpError } from '../../core/errors/index.js';
2
3
  import { recoverableByDefault, runSteps } from '../../core/runner/index.js';
3
4
  import { NOOP_RECORDER } from '../../core/telemetry/index.js';
4
5
  import { withLocalBrowser } from '../../core/transport/localBrowser.js';
5
6
  import { requestEvriUkInPage } from './browser.js';
6
- import { EVRI_UK_UNCONFIRMED, readEvriUkMobile } from './mobile.js';
7
+ import { EVRI_UK_UNCONFIRMED, readEvriUkMobile, recognizeEvriUkMobile } from './mobile.js';
7
8
  import { normalizeEvriUkNumber, parseEvriUk } from './parser.js';
8
9
  /** How long the guest API may take while the page can still answer. */
9
10
  const DIRECT_TIMEOUT_MS = 10_000;
@@ -89,5 +90,17 @@ export const adapter = environment => {
89
90
  executablePath: environment.browserExecutablePath, recorder: environment.recorder, fetcher: environment.fetcher,
90
91
  userAgent: environment.userAgent,
91
92
  });
92
- return { id: 'evri-uk', recordsSteps: true, steps: ['direct', 'browser'], track: (input, context) => tracker.fetch(input.number, context) };
93
+ return {
94
+ id: 'evri-uk', recordsSteps: true, steps: ['direct', 'browser'], track: (input, context) => tracker.fetch(input.number, context),
95
+ // The guest API's reference lookup alone; the page is never opened to recognize a number.
96
+ recognize: async (number, context = {}) => {
97
+ if (!accepted(() => normalizeEvriUkNumber(number)))
98
+ return { known: false };
99
+ const budgetMs = context.budgetMs ?? DIRECT_TIMEOUT_MS;
100
+ if (!Number.isFinite(budgetMs) || budgetMs <= 0)
101
+ throw new TypeError('Evri UK budget must be positive');
102
+ return recognizeEvriUkMobile(number, { fetcher: environment.fetcher, userAgent: environment.userAgent,
103
+ signal: context.signal ?? new AbortController().signal, timeoutMs: budgetMs });
104
+ },
105
+ };
93
106
  };
@@ -22,7 +22,11 @@
22
22
  "steps": [
23
23
  "direct",
24
24
  "browser"
25
- ]
25
+ ],
26
+ "recognition": {
27
+ "rank": 615,
28
+ "pattern": "^(?:[HT][0-9A-Z]{5}|C00HHA)\\d{10}$"
29
+ }
26
30
  },
27
31
  "capabilities": [
28
32
  "history",
@@ -1,10 +1,19 @@
1
+ import type { Recognition } from '../../core/adapter/index.js';
1
2
  import type { CarrierResult } from '../../core/result/index.js';
2
3
  export declare const EVRI_UK_MOBILE_API = "https://tracking.platform-apis.evri.com/v1";
3
4
  /** The history service answered and confirmed no domestic parcel activity; the page asks the same service. */
4
5
  export declare const EVRI_UK_UNCONFIRMED = "parcel_unconfirmed";
5
- export declare function readEvriUkMobile(raw: string, options: {
6
+ type MobileOptions = {
6
7
  fetcher?: typeof fetch;
7
8
  userAgent?: string;
8
9
  signal: AbortSignal;
9
10
  timeoutMs: number;
10
- }): Promise<CarrierResult>;
11
+ };
12
+ export declare function readEvriUkMobile(raw: string, options: MobileOptions): Promise<CarrierResult>;
13
+ /**
14
+ * Whether Evri UK holds the barcode, from the reference lookup tracking starts
15
+ * with. No parcel and a barcode the service rejects for its check digit are
16
+ * unknown, and so is a parcel it redirects to Evri International's tracker.
17
+ */
18
+ export declare function recognizeEvriUkMobile(raw: string, options: MobileOptions): Promise<Recognition>;
19
+ export {};
@@ -11,52 +11,75 @@ const APPLICATION_KEY = 'NpxtibhIgliySB4JRfjAQq2vytmiWGUQ';
11
11
  function unconfirmed() {
12
12
  throw new IndeterminateError('Evri UK', 'Evri UK could not confirm a domestic parcel', { reason: EVRI_UK_UNCONFIRMED });
13
13
  }
14
- export async function readEvriUkMobile(raw, options) {
14
+ async function request(url, options, deadline) {
15
+ const { response, bytes } = await fetchBounded(url, { signal: options.signal,
16
+ headers: { Accept: 'application/json', apiKey: APPLICATION_KEY, 'User-Agent': userAgentOf(options.userAgent) } }, {
17
+ provider: 'Evri UK', maxBytes: MAX_BYTES, timeoutMs: Math.max(1, Math.floor(deadline - performance.now())),
18
+ fetcher: options.fetcher, allowHttpStatuses: [400, 401, 403, 404, 410],
19
+ });
20
+ if ([401, 403].includes(response.status))
21
+ throw new ChallengeError('Evri UK', 'Evri UK refused the tracking API key');
22
+ let payload;
23
+ try {
24
+ payload = JSON.parse(decodeText(bytes));
25
+ }
26
+ catch {
27
+ payload = undefined;
28
+ }
29
+ // The service reports a reference it rejects as JSON; a bare status is the endpoint's.
30
+ if (response.status !== 200 && !(isRecord(payload) && Array.isArray(payload.errors) && payload.errors.length)) {
31
+ if ([404, 410].includes(response.status))
32
+ throw new TransportError('Evri UK', 'Evri UK tracking API is unavailable', { status: response.status });
33
+ throw new UpstreamHttpError('Evri UK', response.status);
34
+ }
35
+ if (response.status === 200 && payload === undefined)
36
+ throw new SchemaError('Evri UK', 'Evri UK returned invalid tracking data');
37
+ return { status: response.status, payload };
38
+ }
39
+ async function guarded(options, run) {
40
+ try {
41
+ return await run();
42
+ }
43
+ catch (error) {
44
+ options.signal.throwIfAborted();
45
+ // Transport diagnostics include the key, the barcode and recipient fields.
46
+ // Preserve the failure contract without forwarding request or body data.
47
+ if (error instanceof CarrierError)
48
+ throw new CarrierError(error.kind, 'Evri UK', `Evri UK tracking failed (${error.kind})`, {
49
+ status: error.status, retryAfterMs: error.retryAfterMs, reason: error.reason,
50
+ });
51
+ throw new TransportError('Evri UK', 'Evri UK tracking API request failed');
52
+ }
53
+ }
54
+ function boundUrn(identifier, number) {
55
+ const urn = isRecord(identifier) ? identifier.urn : undefined;
56
+ if (typeof urn !== 'string' || !new RegExp(`^urn:parcel_id:barcode:date:\\d{1,30}:${number}:\\d{4}-\\d{2}-\\d{2}$`).test(urn)) {
57
+ throw new SchemaError('Evri UK', 'Evri UK did not return the requested parcel');
58
+ }
59
+ return urn;
60
+ }
61
+ function identifiersOf(payload) {
62
+ const identifiers = isRecord(payload) ? payload.parcelIdentifiers : undefined;
63
+ if (!Array.isArray(identifiers) || identifiers.length > 50)
64
+ throw new SchemaError('Evri UK', 'Evri UK returned invalid parcel identifiers');
65
+ return identifiers;
66
+ }
67
+ export function readEvriUkMobile(raw, options) {
15
68
  const number = normalizeEvriUkNumber(raw);
16
69
  const deadline = performance.now() + options.timeoutMs;
17
- const read = async (url) => {
18
- const { response, bytes } = await fetchBounded(url, { signal: options.signal,
19
- headers: { Accept: 'application/json', apiKey: APPLICATION_KEY, 'User-Agent': userAgentOf(options.userAgent) } }, {
20
- provider: 'Evri UK', maxBytes: MAX_BYTES, timeoutMs: Math.max(1, Math.floor(deadline - performance.now())),
21
- fetcher: options.fetcher, allowHttpStatuses: [400, 401, 403, 404, 410],
22
- });
23
- if ([401, 403].includes(response.status))
24
- throw new ChallengeError('Evri UK', 'Evri UK refused the tracking API key');
25
- let payload;
26
- try {
27
- payload = JSON.parse(decodeText(bytes));
28
- }
29
- catch {
30
- payload = undefined;
31
- }
32
- // The service reports a reference it rejects as JSON; a bare status is the endpoint's.
33
- if (response.status !== 200 && !(isRecord(payload) && Array.isArray(payload.errors) && payload.errors.length)) {
34
- if ([404, 410].includes(response.status))
35
- throw new TransportError('Evri UK', 'Evri UK tracking API is unavailable', { status: response.status });
36
- throw new UpstreamHttpError('Evri UK', response.status);
37
- }
38
- if (response.status === 200 && payload === undefined)
39
- throw new SchemaError('Evri UK', 'Evri UK returned invalid tracking data');
40
- return { status: response.status, payload };
41
- };
42
- try {
43
- const reference = await read(new URL(`${EVRI_UK_MOBILE_API}/parcels/reference/${number}`));
70
+ return guarded(options, async () => {
71
+ const reference = await request(new URL(`${EVRI_UK_MOBILE_API}/parcels/reference/${number}`), options, deadline);
44
72
  if (reference.status !== 200)
45
73
  unconfirmed();
46
- const identifiers = isRecord(reference.payload) ? reference.payload.parcelIdentifiers : undefined;
47
- if (!Array.isArray(identifiers) || identifiers.length > 50)
48
- throw new SchemaError('Evri UK', 'Evri UK returned invalid parcel identifiers');
74
+ const identifiers = identifiersOf(reference.payload);
49
75
  // Several parcels or an international redirect do not settle one domestic parcel.
50
76
  const identifier = identifiers.length === 1 ? identifiers[0] : undefined;
51
77
  if (identifiers.length !== 1 || (isRecord(identifier) && identifier.redirectUrl))
52
78
  unconfirmed();
53
- const urn = isRecord(identifier) ? identifier.urn : undefined;
54
- if (typeof urn !== 'string' || !new RegExp(`^urn:parcel_id:barcode:date:\\d{1,30}:${number}:\\d{4}-\\d{2}-\\d{2}$`).test(urn)) {
55
- throw new SchemaError('Evri UK', 'Evri UK did not return the requested parcel');
56
- }
79
+ const urn = boundUrn(identifier, number);
57
80
  const endpoint = new URL(`${EVRI_UK_MOBILE_API}/parcels/`);
58
81
  endpoint.searchParams.set('uniqueIds', urn);
59
- const history = await read(endpoint);
82
+ const history = await request(endpoint, options, deadline);
60
83
  if (history.status !== 200)
61
84
  unconfirmed();
62
85
  try {
@@ -67,15 +90,32 @@ export async function readEvriUkMobile(raw, options) {
67
90
  unconfirmed();
68
91
  throw error;
69
92
  }
70
- }
71
- catch (error) {
72
- options.signal.throwIfAborted();
73
- // Transport diagnostics include the key, the barcode and recipient fields.
74
- // Preserve the failure contract without forwarding request or body data.
75
- if (error instanceof CarrierError)
76
- throw new CarrierError(error.kind, 'Evri UK', `Evri UK tracking failed (${error.kind})`, {
77
- status: error.status, retryAfterMs: error.retryAfterMs, reason: error.reason,
78
- });
79
- throw new TransportError('Evri UK', 'Evri UK tracking API request failed');
80
- }
93
+ });
94
+ }
95
+ /**
96
+ * Whether Evri UK holds the barcode, from the reference lookup tracking starts
97
+ * with. No parcel and a barcode the service rejects for its check digit are
98
+ * unknown, and so is a parcel it redirects to Evri International's tracker.
99
+ */
100
+ export function recognizeEvriUkMobile(raw, options) {
101
+ const number = normalizeEvriUkNumber(raw);
102
+ const deadline = performance.now() + options.timeoutMs;
103
+ return guarded(options, async () => {
104
+ const reference = await request(new URL(`${EVRI_UK_MOBILE_API}/parcels/reference/${number}`), options, deadline);
105
+ if (reference.status !== 200) {
106
+ const errors = isRecord(reference.payload) && Array.isArray(reference.payload.errors) ? reference.payload.errors : [];
107
+ if (reference.status === 400 && errors.length === 1 && isRecord(errors[0]) && errors[0].errorType === 'InvalidReferenceException')
108
+ return { known: false };
109
+ throw new IndeterminateError('Evri UK', 'Evri UK could not say whether it holds the parcel');
110
+ }
111
+ const identifiers = identifiersOf(reference.payload);
112
+ if (!identifiers.length)
113
+ return { known: false };
114
+ if (identifiers.length > 1)
115
+ throw new IndeterminateError('Evri UK', 'Evri UK holds several parcels under the barcode');
116
+ if (isRecord(identifiers[0]) && identifiers[0].redirectUrl)
117
+ return { known: false };
118
+ boundUrn(identifiers[0], number);
119
+ return { known: true, lastActivityAt: null };
120
+ });
81
121
  }
@@ -4,7 +4,8 @@
4
4
  "aliases": [
5
5
  "Intelcom",
6
6
  "Dragonfly",
7
- "Dragonfly Shipping"
7
+ "Dragonfly Shipping",
8
+ "Intelcom Express"
8
9
  ],
9
10
  "region": {
10
11
  "countries": [
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "id": "korea-post",
3
3
  "displayName": "Korea Post",
4
- "aliases": [],
4
+ "aliases": [
5
+ "South Korea Post"
6
+ ],
5
7
  "region": {
6
8
  "countries": [
7
9
  "KR"
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "id": "nz-post",
3
3
  "displayName": "NZ Post",
4
- "aliases": [],
4
+ "aliases": [
5
+ "New Zealand Post"
6
+ ],
5
7
  "region": {
6
8
  "countries": [
7
9
  "NZ"
@@ -2,7 +2,8 @@
2
2
  "id": "planzer",
3
3
  "displayName": "Planzer",
4
4
  "aliases": [
5
- "Planzer Group"
5
+ "Planzer Group",
6
+ "Planzer Parcel"
6
7
  ],
7
8
  "region": {
8
9
  "countries": [
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "id": "poczta-polska",
3
3
  "displayName": "Poczta Polska",
4
- "aliases": [],
4
+ "aliases": [
5
+ "Polish Post",
6
+ "Poland Post",
7
+ "Pocztex"
8
+ ],
5
9
  "region": {
6
10
  "countries": [
7
11
  "PL"
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "id": "postnord",
3
3
  "displayName": "PostNord",
4
- "aliases": [],
4
+ "aliases": [
5
+ "PostNord Danmark",
6
+ "PostNord Denmark"
7
+ ],
5
8
  "region": {
6
9
  "countries": [
7
10
  "SE",
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "id": "yanwen",
3
3
  "displayName": "Yanwen",
4
- "aliases": [],
4
+ "aliases": [
5
+ "Yanwen Logistics"
6
+ ],
5
7
  "region": {
6
8
  "countries": [
7
9
  "CN"
@@ -126,7 +126,8 @@
126
126
  "displayName": "Planzer",
127
127
  "color": "#e30613",
128
128
  "aliases": [
129
- "Planzer Group"
129
+ "Planzer Group",
130
+ "Planzer Parcel"
130
131
  ],
131
132
  "countries": [
132
133
  "CH"
@@ -774,7 +775,9 @@
774
775
  "color": "#ff9900",
775
776
  "aliases": [
776
777
  "Shipping with Amazon",
777
- "SWA"
778
+ "SWA",
779
+ "Amazon Swiship",
780
+ "Swiship"
778
781
  ],
779
782
  "countries": [
780
783
  "FR",
@@ -2121,6 +2124,7 @@
2121
2124
  "mode": "automatic",
2122
2125
  "adapter": "evri",
2123
2126
  "upstreamName": "Evri International",
2127
+ "recognitionRank": 605,
2124
2128
  "localClocks": true
2125
2129
  },
2126
2130
  "canaryUrl": "https://globaleco.app/track/",
@@ -2300,6 +2304,10 @@
2300
2304
  "postnord": {
2301
2305
  "displayName": "PostNord",
2302
2306
  "color": "#00a0d6",
2307
+ "aliases": [
2308
+ "PostNord Danmark",
2309
+ "PostNord Denmark"
2310
+ ],
2303
2311
  "countries": [
2304
2312
  "SE",
2305
2313
  "DK",
@@ -3617,6 +3625,9 @@
3617
3625
  "nz-post": {
3618
3626
  "displayName": "NZ Post",
3619
3627
  "color": "#d8291c",
3628
+ "aliases": [
3629
+ "New Zealand Post"
3630
+ ],
3620
3631
  "countries": [
3621
3632
  "NZ"
3622
3633
  ],
@@ -3997,6 +4008,9 @@
3997
4008
  "korea-post": {
3998
4009
  "displayName": "Korea Post",
3999
4010
  "color": "#da291c",
4011
+ "aliases": [
4012
+ "South Korea Post"
4013
+ ],
4000
4014
  "countries": [
4001
4015
  "KR"
4002
4016
  ],
@@ -4390,6 +4404,11 @@
4390
4404
  "poczta-polska": {
4391
4405
  "displayName": "Poczta Polska",
4392
4406
  "color": "#c43c2b",
4407
+ "aliases": [
4408
+ "Polish Post",
4409
+ "Poland Post",
4410
+ "Pocztex"
4411
+ ],
4393
4412
  "countries": [
4394
4413
  "PL"
4395
4414
  ],
@@ -4442,7 +4461,8 @@
4442
4461
  "color": "#56b529",
4443
4462
  "aliases": [
4444
4463
  "Posten Norge",
4445
- "Posten Bring"
4464
+ "Posten Bring",
4465
+ "Norway Post"
4446
4466
  ],
4447
4467
  "countries": [
4448
4468
  "NO",
@@ -4636,6 +4656,9 @@
4636
4656
  "yanwen": {
4637
4657
  "displayName": "Yanwen",
4638
4658
  "color": "#8cbe1e",
4659
+ "aliases": [
4660
+ "Yanwen Logistics"
4661
+ ],
4639
4662
  "countries": [
4640
4663
  "CN"
4641
4664
  ],
@@ -10527,7 +10550,9 @@
10527
10550
  "timezone": "Europe/London",
10528
10551
  "tracking": {
10529
10552
  "mode": "automatic",
10530
- "adapter": "evri-uk"
10553
+ "adapter": "evri-uk",
10554
+ "recognitionRank": 615,
10555
+ "recognitionPattern": "^(?:[HT][0-9A-Z]{5}|C00HHA)\\d{10}$"
10531
10556
  },
10532
10557
  "canaryUrl": "https://www.evri.com/track-a-parcel",
10533
10558
  "trackingUrlTemplate": "https://www.evri.com/track/parcel/{trackingNumber}/details",
@@ -12651,7 +12676,8 @@
12651
12676
  "aliases": [
12652
12677
  "Intelcom",
12653
12678
  "Dragonfly",
12654
- "Dragonfly Shipping"
12679
+ "Dragonfly Shipping",
12680
+ "Intelcom Express"
12655
12681
  ],
12656
12682
  "countries": [
12657
12683
  "CA"
@@ -83,7 +83,7 @@ export declare const CARRIER_CATALOG: {
83
83
  readonly planzer: {
84
84
  readonly displayName: "Planzer";
85
85
  readonly color: "#e30613";
86
- readonly aliases: readonly ["Planzer Group"];
86
+ readonly aliases: readonly ["Planzer Group", "Planzer Parcel"];
87
87
  readonly countries: readonly ["CH"];
88
88
  readonly selectable: true;
89
89
  readonly timezone: "Europe/Zurich";
@@ -492,7 +492,7 @@ export declare const CARRIER_CATALOG: {
492
492
  readonly "amazon-shipping": {
493
493
  readonly displayName: "Amazon Shipping";
494
494
  readonly color: "#ff9900";
495
- readonly aliases: readonly ["Shipping with Amazon", "SWA"];
495
+ readonly aliases: readonly ["Shipping with Amazon", "SWA", "Amazon Swiship", "Swiship"];
496
496
  readonly countries: readonly ["FR", "DE", "BE", "GB", "IT", "ES", "NL", "AT", "IE", "PL", "SE", "PT", "LU", "DK", "FI", "CZ", "SK", "HU", "RO", "BG", "HR", "SI", "EE", "LV", "LT", "GR", "CY", "MT", "CH", "NO", "IS", "LI", "TR", "US"];
497
497
  readonly selectable: false;
498
498
  readonly timezone: "UTC";
@@ -1404,6 +1404,7 @@ export declare const CARRIER_CATALOG: {
1404
1404
  readonly mode: "automatic";
1405
1405
  readonly adapter: "evri";
1406
1406
  readonly upstreamName: "Evri International";
1407
+ readonly recognitionRank: 605;
1407
1408
  readonly localClocks: true;
1408
1409
  };
1409
1410
  readonly canaryUrl: "https://globaleco.app/track/";
@@ -1539,6 +1540,7 @@ export declare const CARRIER_CATALOG: {
1539
1540
  readonly postnord: {
1540
1541
  readonly displayName: "PostNord";
1541
1542
  readonly color: "#00a0d6";
1543
+ readonly aliases: readonly ["PostNord Danmark", "PostNord Denmark"];
1542
1544
  readonly countries: readonly ["SE", "DK", "NO", "FI"];
1543
1545
  readonly selectable: true;
1544
1546
  readonly timezone: "UTC";
@@ -2474,6 +2476,7 @@ export declare const CARRIER_CATALOG: {
2474
2476
  readonly "nz-post": {
2475
2477
  readonly displayName: "NZ Post";
2476
2478
  readonly color: "#d8291c";
2479
+ readonly aliases: readonly ["New Zealand Post"];
2477
2480
  readonly countries: readonly ["NZ"];
2478
2481
  readonly selectable: true;
2479
2482
  readonly timezone: "UTC";
@@ -2748,6 +2751,7 @@ export declare const CARRIER_CATALOG: {
2748
2751
  readonly "korea-post": {
2749
2752
  readonly displayName: "Korea Post";
2750
2753
  readonly color: "#da291c";
2754
+ readonly aliases: readonly ["South Korea Post"];
2751
2755
  readonly countries: readonly ["KR"];
2752
2756
  readonly selectable: true;
2753
2757
  readonly timezone: "UTC";
@@ -3017,6 +3021,7 @@ export declare const CARRIER_CATALOG: {
3017
3021
  readonly "poczta-polska": {
3018
3022
  readonly displayName: "Poczta Polska";
3019
3023
  readonly color: "#c43c2b";
3024
+ readonly aliases: readonly ["Polish Post", "Poland Post", "Pocztex"];
3020
3025
  readonly countries: readonly ["PL"];
3021
3026
  readonly selectable: true;
3022
3027
  readonly timezone: "UTC";
@@ -3054,7 +3059,7 @@ export declare const CARRIER_CATALOG: {
3054
3059
  readonly "bring-posten": {
3055
3060
  readonly displayName: "Bring";
3056
3061
  readonly color: "#56b529";
3057
- readonly aliases: readonly ["Posten Norge", "Posten Bring"];
3062
+ readonly aliases: readonly ["Posten Norge", "Posten Bring", "Norway Post"];
3058
3063
  readonly countries: readonly ["NO", "SE", "DK", "FI"];
3059
3064
  readonly selectable: true;
3060
3065
  readonly timezone: "UTC";
@@ -3184,6 +3189,7 @@ export declare const CARRIER_CATALOG: {
3184
3189
  readonly yanwen: {
3185
3190
  readonly displayName: "Yanwen";
3186
3191
  readonly color: "#8cbe1e";
3192
+ readonly aliases: readonly ["Yanwen Logistics"];
3187
3193
  readonly countries: readonly ["CN"];
3188
3194
  readonly selectable: true;
3189
3195
  readonly timezone: "UTC";
@@ -6856,6 +6862,8 @@ export declare const CARRIER_CATALOG: {
6856
6862
  readonly tracking: {
6857
6863
  readonly mode: "automatic";
6858
6864
  readonly adapter: "evri-uk";
6865
+ readonly recognitionRank: 615;
6866
+ readonly recognitionPattern: "^(?:[HT][0-9A-Z]{5}|C00HHA)\\d{10}$";
6859
6867
  };
6860
6868
  readonly canaryUrl: "https://www.evri.com/track-a-parcel";
6861
6869
  readonly trackingUrlTemplate: "https://www.evri.com/track/parcel/{trackingNumber}/details";
@@ -8196,7 +8204,7 @@ export declare const CARRIER_CATALOG: {
8196
8204
  readonly intelcom: {
8197
8205
  readonly displayName: "Intelcom / Dragonfly";
8198
8206
  readonly color: "#13a58f";
8199
- readonly aliases: readonly ["Intelcom", "Dragonfly", "Dragonfly Shipping"];
8207
+ readonly aliases: readonly ["Intelcom", "Dragonfly", "Dragonfly Shipping", "Intelcom Express"];
8200
8208
  readonly countries: readonly ["CA"];
8201
8209
  readonly selectable: true;
8202
8210
  readonly timezone: "UTC";
@@ -127,7 +127,8 @@ export const CARRIER_CATALOG = {
127
127
  "displayName": "Planzer",
128
128
  "color": "#e30613",
129
129
  "aliases": [
130
- "Planzer Group"
130
+ "Planzer Group",
131
+ "Planzer Parcel"
131
132
  ],
132
133
  "countries": [
133
134
  "CH"
@@ -775,7 +776,9 @@ export const CARRIER_CATALOG = {
775
776
  "color": "#ff9900",
776
777
  "aliases": [
777
778
  "Shipping with Amazon",
778
- "SWA"
779
+ "SWA",
780
+ "Amazon Swiship",
781
+ "Swiship"
779
782
  ],
780
783
  "countries": [
781
784
  "FR",
@@ -2122,6 +2125,7 @@ export const CARRIER_CATALOG = {
2122
2125
  "mode": "automatic",
2123
2126
  "adapter": "evri",
2124
2127
  "upstreamName": "Evri International",
2128
+ "recognitionRank": 605,
2125
2129
  "localClocks": true
2126
2130
  },
2127
2131
  "canaryUrl": "https://globaleco.app/track/",
@@ -2301,6 +2305,10 @@ export const CARRIER_CATALOG = {
2301
2305
  "postnord": {
2302
2306
  "displayName": "PostNord",
2303
2307
  "color": "#00a0d6",
2308
+ "aliases": [
2309
+ "PostNord Danmark",
2310
+ "PostNord Denmark"
2311
+ ],
2304
2312
  "countries": [
2305
2313
  "SE",
2306
2314
  "DK",
@@ -3618,6 +3626,9 @@ export const CARRIER_CATALOG = {
3618
3626
  "nz-post": {
3619
3627
  "displayName": "NZ Post",
3620
3628
  "color": "#d8291c",
3629
+ "aliases": [
3630
+ "New Zealand Post"
3631
+ ],
3621
3632
  "countries": [
3622
3633
  "NZ"
3623
3634
  ],
@@ -3998,6 +4009,9 @@ export const CARRIER_CATALOG = {
3998
4009
  "korea-post": {
3999
4010
  "displayName": "Korea Post",
4000
4011
  "color": "#da291c",
4012
+ "aliases": [
4013
+ "South Korea Post"
4014
+ ],
4001
4015
  "countries": [
4002
4016
  "KR"
4003
4017
  ],
@@ -4391,6 +4405,11 @@ export const CARRIER_CATALOG = {
4391
4405
  "poczta-polska": {
4392
4406
  "displayName": "Poczta Polska",
4393
4407
  "color": "#c43c2b",
4408
+ "aliases": [
4409
+ "Polish Post",
4410
+ "Poland Post",
4411
+ "Pocztex"
4412
+ ],
4394
4413
  "countries": [
4395
4414
  "PL"
4396
4415
  ],
@@ -4443,7 +4462,8 @@ export const CARRIER_CATALOG = {
4443
4462
  "color": "#56b529",
4444
4463
  "aliases": [
4445
4464
  "Posten Norge",
4446
- "Posten Bring"
4465
+ "Posten Bring",
4466
+ "Norway Post"
4447
4467
  ],
4448
4468
  "countries": [
4449
4469
  "NO",
@@ -4637,6 +4657,9 @@ export const CARRIER_CATALOG = {
4637
4657
  "yanwen": {
4638
4658
  "displayName": "Yanwen",
4639
4659
  "color": "#8cbe1e",
4660
+ "aliases": [
4661
+ "Yanwen Logistics"
4662
+ ],
4640
4663
  "countries": [
4641
4664
  "CN"
4642
4665
  ],
@@ -10528,7 +10551,9 @@ export const CARRIER_CATALOG = {
10528
10551
  "timezone": "Europe/London",
10529
10552
  "tracking": {
10530
10553
  "mode": "automatic",
10531
- "adapter": "evri-uk"
10554
+ "adapter": "evri-uk",
10555
+ "recognitionRank": 615,
10556
+ "recognitionPattern": "^(?:[HT][0-9A-Z]{5}|C00HHA)\\d{10}$"
10532
10557
  },
10533
10558
  "canaryUrl": "https://www.evri.com/track-a-parcel",
10534
10559
  "trackingUrlTemplate": "https://www.evri.com/track/parcel/{trackingNumber}/details",
@@ -12652,7 +12677,8 @@ export const CARRIER_CATALOG = {
12652
12677
  "aliases": [
12653
12678
  "Intelcom",
12654
12679
  "Dragonfly",
12655
- "Dragonfly Shipping"
12680
+ "Dragonfly Shipping",
12681
+ "Intelcom Express"
12656
12682
  ],
12657
12683
  "countries": [
12658
12684
  "CA"
@@ -80,6 +80,8 @@ export const CARRIER_RECOGNITION_RANKS = {
80
80
  "envialia": 260,
81
81
  "epost-global": 65,
82
82
  "estes": 20,
83
+ "evri": 605,
84
+ "evri-uk": 615,
83
85
  "express-one": 190,
84
86
  "fan-courier": 330,
85
87
  "four-px": 570,
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "Universal Parcel Scraper",
5
- "version": "0.237.0"
5
+ "version": "0.239.0"
6
6
  },
7
7
  "paths": {
8
8
  "/health": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-parcel-scraper",
3
- "version": "0.237.0-main.1502",
3
+ "version": "0.239.0-main.1504",
4
4
  "description": "Self-hosted parcel tracking: carrier detection, dedicated scrapers and optional universal providers.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",