universal-parcel-scraper 0.233.0 → 0.236.0-main.1501
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 +9 -0
- package/data/detection-golden.json +31 -0
- package/dist/browser/scraper.js +14 -2
- package/dist/carriers/apc-overnight/numbers.json +2 -0
- package/dist/carriers/china-post/adapter.js +19 -2
- package/dist/carriers/china-post/carrier.json +3 -0
- package/dist/carriers/poste-italiane/carrier.json +5 -0
- package/dist/carriers/poste-italiane/numbers.json +15 -0
- package/dist/carriers/seur/carrier.json +5 -0
- package/dist/carriers/seur/numbers.json +18 -0
- package/dist/carriers/seur/parser.js +3 -2
- package/dist/data/catalog.json +9 -0
- package/dist/generated/catalog.d.ts +7 -0
- package/dist/generated/catalog.js +11 -2
- package/dist/generated/recognition.js +1 -0
- package/dist/server/openapi.json +1 -1
- package/package.json +1 -1
package/data/catalog.json
CHANGED
|
@@ -2466,6 +2466,10 @@
|
|
|
2466
2466
|
{
|
|
2467
2467
|
"pattern": "^\\d{7}$",
|
|
2468
2468
|
"confidence": "low"
|
|
2469
|
+
},
|
|
2470
|
+
{
|
|
2471
|
+
"pattern": "^20\\d{2}(?:0[1-9]|[12]\\d|3[01])(?:0[1-9]|1[0-2])\\d{14}$",
|
|
2472
|
+
"confidence": "low"
|
|
2469
2473
|
}
|
|
2470
2474
|
]
|
|
2471
2475
|
},
|
|
@@ -2676,6 +2680,10 @@
|
|
|
2676
2680
|
{
|
|
2677
2681
|
"pattern": "^F\\d{3}D\\d{8}$",
|
|
2678
2682
|
"confidence": "low"
|
|
2683
|
+
},
|
|
2684
|
+
{
|
|
2685
|
+
"pattern": "^D\\d{5}[A-Z]\\d{6}$",
|
|
2686
|
+
"confidence": "low"
|
|
2679
2687
|
}
|
|
2680
2688
|
]
|
|
2681
2689
|
},
|
|
@@ -4309,6 +4317,7 @@
|
|
|
4309
4317
|
"tracking": {
|
|
4310
4318
|
"mode": "automatic",
|
|
4311
4319
|
"adapter": "china-post",
|
|
4320
|
+
"recognitionRank": 905,
|
|
4312
4321
|
"localClocks": true
|
|
4313
4322
|
},
|
|
4314
4323
|
"canaryUrl": "https://ec.ems.com.cn/ect-web/mail/getGisTraces/checkMail",
|
|
@@ -17903,6 +17903,7 @@
|
|
|
17903
17903
|
"candidates": [
|
|
17904
17904
|
"apc-overnight",
|
|
17905
17905
|
"austrian-post",
|
|
17906
|
+
"seur",
|
|
17906
17907
|
"usps",
|
|
17907
17908
|
"estafeta"
|
|
17908
17909
|
],
|
|
@@ -17911,6 +17912,7 @@
|
|
|
17911
17912
|
],
|
|
17912
17913
|
"asked": [
|
|
17913
17914
|
"apc-overnight",
|
|
17915
|
+
"seur",
|
|
17914
17916
|
"austrian-post"
|
|
17915
17917
|
]
|
|
17916
17918
|
},
|
|
@@ -17921,6 +17923,7 @@
|
|
|
17921
17923
|
"candidates": [
|
|
17922
17924
|
"apc-overnight",
|
|
17923
17925
|
"austrian-post",
|
|
17926
|
+
"seur",
|
|
17924
17927
|
"usps",
|
|
17925
17928
|
"estafeta"
|
|
17926
17929
|
],
|
|
@@ -17929,6 +17932,22 @@
|
|
|
17929
17932
|
],
|
|
17930
17933
|
"asked": [
|
|
17931
17934
|
"apc-overnight",
|
|
17935
|
+
"seur",
|
|
17936
|
+
"austrian-post"
|
|
17937
|
+
]
|
|
17938
|
+
},
|
|
17939
|
+
{
|
|
17940
|
+
"input": "2026151000000000000001",
|
|
17941
|
+
"carrier": "unknown",
|
|
17942
|
+
"confidence": "low",
|
|
17943
|
+
"candidates": [
|
|
17944
|
+
"austrian-post",
|
|
17945
|
+
"seur",
|
|
17946
|
+
"usps",
|
|
17947
|
+
"estafeta"
|
|
17948
|
+
],
|
|
17949
|
+
"asked": [
|
|
17950
|
+
"seur",
|
|
17932
17951
|
"austrian-post"
|
|
17933
17952
|
]
|
|
17934
17953
|
},
|
|
@@ -53698,6 +53717,17 @@
|
|
|
53698
53717
|
"canpar"
|
|
53699
53718
|
]
|
|
53700
53719
|
},
|
|
53720
|
+
{
|
|
53721
|
+
"input": "D99000A000001",
|
|
53722
|
+
"carrier": "unknown",
|
|
53723
|
+
"confidence": "low",
|
|
53724
|
+
"candidates": [
|
|
53725
|
+
"poste-italiane"
|
|
53726
|
+
],
|
|
53727
|
+
"asked": [
|
|
53728
|
+
"poste-italiane"
|
|
53729
|
+
]
|
|
53730
|
+
},
|
|
53701
53731
|
{
|
|
53702
53732
|
"input": "DC010822S3ZDUD",
|
|
53703
53733
|
"carrier": "pathao-courier",
|
|
@@ -71962,6 +71992,7 @@
|
|
|
71962
71992
|
"china-post"
|
|
71963
71993
|
],
|
|
71964
71994
|
"asked": [
|
|
71995
|
+
"china-post",
|
|
71965
71996
|
"la-poste"
|
|
71966
71997
|
]
|
|
71967
71998
|
},
|
package/dist/browser/scraper.js
CHANGED
|
@@ -2181,6 +2181,10 @@ var Ae = {
|
|
|
2181
2181
|
{
|
|
2182
2182
|
pattern: "^\\d{7}$",
|
|
2183
2183
|
confidence: "low"
|
|
2184
|
+
},
|
|
2185
|
+
{
|
|
2186
|
+
pattern: "^20\\d{2}(?:0[1-9]|[12]\\d|3[01])(?:0[1-9]|1[0-2])\\d{14}$",
|
|
2187
|
+
confidence: "low"
|
|
2184
2188
|
}
|
|
2185
2189
|
]
|
|
2186
2190
|
},
|
|
@@ -2348,6 +2352,10 @@ var Ae = {
|
|
|
2348
2352
|
{
|
|
2349
2353
|
pattern: "^F\\d{3}D\\d{8}$",
|
|
2350
2354
|
confidence: "low"
|
|
2355
|
+
},
|
|
2356
|
+
{
|
|
2357
|
+
pattern: "^D\\d{5}[A-Z]\\d{6}$",
|
|
2358
|
+
confidence: "low"
|
|
2351
2359
|
}
|
|
2352
2360
|
]
|
|
2353
2361
|
},
|
|
@@ -3613,6 +3621,7 @@ var Ae = {
|
|
|
3613
3621
|
tracking: {
|
|
3614
3622
|
mode: "automatic",
|
|
3615
3623
|
adapter: "china-post",
|
|
3624
|
+
recognitionRank: 905,
|
|
3616
3625
|
localClocks: !0
|
|
3617
3626
|
},
|
|
3618
3627
|
canaryUrl: "https://ec.ems.com.cn/ect-web/mail/getGisTraces/checkMail",
|
|
@@ -16818,7 +16827,8 @@ var Ae = {
|
|
|
16818
16827
|
seur: [
|
|
16819
16828
|
"seur-1",
|
|
16820
16829
|
"seur-2",
|
|
16821
|
-
"seur-3"
|
|
16830
|
+
"seur-3",
|
|
16831
|
+
"seur-4"
|
|
16822
16832
|
],
|
|
16823
16833
|
mrw: ["mrw-1", "mrw-2"],
|
|
16824
16834
|
nacex: ["nacex-1"],
|
|
@@ -16835,7 +16845,8 @@ var Ae = {
|
|
|
16835
16845
|
"poste-italiane-4",
|
|
16836
16846
|
"poste-italiane-delivery-europe",
|
|
16837
16847
|
"poste-italiane-sda-domestic",
|
|
16838
|
-
"poste-italiane-promopacco"
|
|
16848
|
+
"poste-italiane-promopacco",
|
|
16849
|
+
"poste-italiane-d"
|
|
16839
16850
|
],
|
|
16840
16851
|
brt: [
|
|
16841
16852
|
"brt-1",
|
|
@@ -22586,6 +22597,7 @@ var il = {
|
|
|
22586
22597
|
"ceska-posta": 380,
|
|
22587
22598
|
"ceva-logistics": 925,
|
|
22588
22599
|
chilexpress: 958,
|
|
22600
|
+
"china-post": 905,
|
|
22589
22601
|
"chit-chats": 115,
|
|
22590
22602
|
chronopost: 890,
|
|
22591
22603
|
ciblex: 640,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { lookupBudget } from '../../core/adapter/index.js';
|
|
1
|
+
import { accepted, lookupBudget, recognizeFromLookup } from '../../core/adapter/index.js';
|
|
2
|
+
import { carrierErrorKind } from '../../core/errors/index.js';
|
|
2
3
|
import { userAgentOf } from '../../core/transport/index.js';
|
|
3
4
|
import { readChinaPostTraces } from './app.js';
|
|
4
5
|
import { normalizeChinaPostNumber, parseChinaPostTraces, PROVIDER } from './parser.js';
|
|
@@ -20,5 +21,21 @@ export class ChinaPostTracker {
|
|
|
20
21
|
}
|
|
21
22
|
export const adapter = (environment) => {
|
|
22
23
|
const tracker = new ChinaPostTracker({ fetcher: environment.fetcher, userAgent: environment.userAgent });
|
|
23
|
-
return {
|
|
24
|
+
return {
|
|
25
|
+
id: 'china-post',
|
|
26
|
+
steps: ['direct'],
|
|
27
|
+
track: (input, context) => tracker.fetch(input.number, context),
|
|
28
|
+
recognize: async (number, context) => {
|
|
29
|
+
try {
|
|
30
|
+
return await recognizeFromLookup(() => tracker.fetch(number, context), () => accepted(() => normalizeChinaPostNumber(number)));
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
// The check step asks for a contact phone's digits only about an item China Post holds;
|
|
34
|
+
// other numbers get its "no information" answer, which stays inconclusive.
|
|
35
|
+
if (carrierErrorKind(error) === 'input_required')
|
|
36
|
+
return { known: true, lastActivityAt: null };
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
};
|
|
24
41
|
};
|
|
@@ -410,6 +410,21 @@
|
|
|
410
410
|
},
|
|
411
411
|
"note": "Made-up number in the shape of a PROMOPACCO PLUS parcel number that Poste's own tracker follows."
|
|
412
412
|
},
|
|
413
|
+
{
|
|
414
|
+
"number": "D99000A000001",
|
|
415
|
+
"role": "shipment",
|
|
416
|
+
"evidence": "synthetic",
|
|
417
|
+
"derivedFrom": "donated_real",
|
|
418
|
+
"shapeConfirmed": "2026-10-16",
|
|
419
|
+
"expect": {
|
|
420
|
+
"carrier": "unknown",
|
|
421
|
+
"confidence": "low",
|
|
422
|
+
"candidates": [
|
|
423
|
+
"poste-italiane"
|
|
424
|
+
]
|
|
425
|
+
},
|
|
426
|
+
"note": "Made-up number in the shape of a D parcel code that Poste's own tracker follows as a ROAD EUROPE shipment."
|
|
427
|
+
},
|
|
413
428
|
{
|
|
414
429
|
"number": "1C1000A000001",
|
|
415
430
|
"role": "shipment",
|
|
@@ -605,6 +605,24 @@
|
|
|
605
605
|
]
|
|
606
606
|
},
|
|
607
607
|
"note": "Seven-digit expedition number from the subject line of SEUR's incident e-mail; the simplified lookup did not locate it."
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"number": "2026151000000000000001",
|
|
611
|
+
"role": "shipment",
|
|
612
|
+
"evidence": "synthetic",
|
|
613
|
+
"derivedFrom": "donated_real",
|
|
614
|
+
"shapeConfirmed": "2026-10-16",
|
|
615
|
+
"expect": {
|
|
616
|
+
"carrier": "unknown",
|
|
617
|
+
"confidence": "low",
|
|
618
|
+
"candidates": [
|
|
619
|
+
"austrian-post",
|
|
620
|
+
"seur",
|
|
621
|
+
"usps",
|
|
622
|
+
"estafeta"
|
|
623
|
+
]
|
|
624
|
+
},
|
|
625
|
+
"note": "Made-up number in the layout of a sender's reference, dated day before month, that SEUR's lookup found for its shipments."
|
|
608
626
|
}
|
|
609
627
|
]
|
|
610
628
|
}
|
|
@@ -5,8 +5,9 @@ import { isRecord } from '../../core/types.js';
|
|
|
5
5
|
import { classifySeurStatus } from './status.js';
|
|
6
6
|
export function normalizeSeurNumber(raw) {
|
|
7
7
|
const number = raw.replace(/\s/g, '');
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
// Twenty-two digits is a sender's reference, which the lookup also finds.
|
|
9
|
+
if (!/^(?:\d{7}|\d{14}|\d{21}|\d{22})$/.test(number))
|
|
10
|
+
throw new InvalidInputError('SEUR', 'SEUR requires a seven, fourteen, twenty-one or twenty-two digit identifier');
|
|
10
11
|
return number;
|
|
11
12
|
}
|
|
12
13
|
function field(value, limit) {
|
package/dist/data/catalog.json
CHANGED
|
@@ -2466,6 +2466,10 @@
|
|
|
2466
2466
|
{
|
|
2467
2467
|
"pattern": "^\\d{7}$",
|
|
2468
2468
|
"confidence": "low"
|
|
2469
|
+
},
|
|
2470
|
+
{
|
|
2471
|
+
"pattern": "^20\\d{2}(?:0[1-9]|[12]\\d|3[01])(?:0[1-9]|1[0-2])\\d{14}$",
|
|
2472
|
+
"confidence": "low"
|
|
2469
2473
|
}
|
|
2470
2474
|
]
|
|
2471
2475
|
},
|
|
@@ -2676,6 +2680,10 @@
|
|
|
2676
2680
|
{
|
|
2677
2681
|
"pattern": "^F\\d{3}D\\d{8}$",
|
|
2678
2682
|
"confidence": "low"
|
|
2683
|
+
},
|
|
2684
|
+
{
|
|
2685
|
+
"pattern": "^D\\d{5}[A-Z]\\d{6}$",
|
|
2686
|
+
"confidence": "low"
|
|
2679
2687
|
}
|
|
2680
2688
|
]
|
|
2681
2689
|
},
|
|
@@ -4309,6 +4317,7 @@
|
|
|
4309
4317
|
"tracking": {
|
|
4310
4318
|
"mode": "automatic",
|
|
4311
4319
|
"adapter": "china-post",
|
|
4320
|
+
"recognitionRank": 905,
|
|
4312
4321
|
"localClocks": true
|
|
4313
4322
|
},
|
|
4314
4323
|
"canaryUrl": "https://ec.ems.com.cn/ect-web/mail/getGisTraces/checkMail",
|
|
@@ -1660,6 +1660,9 @@ export declare const CARRIER_CATALOG: {
|
|
|
1660
1660
|
}, {
|
|
1661
1661
|
readonly pattern: "^\\d{7}$";
|
|
1662
1662
|
readonly confidence: "low";
|
|
1663
|
+
}, {
|
|
1664
|
+
readonly pattern: "^20\\d{2}(?:0[1-9]|[12]\\d|3[01])(?:0[1-9]|1[0-2])\\d{14}$";
|
|
1665
|
+
readonly confidence: "low";
|
|
1663
1666
|
}];
|
|
1664
1667
|
};
|
|
1665
1668
|
readonly mrw: {
|
|
@@ -1805,6 +1808,9 @@ export declare const CARRIER_CATALOG: {
|
|
|
1805
1808
|
}, {
|
|
1806
1809
|
readonly pattern: "^F\\d{3}D\\d{8}$";
|
|
1807
1810
|
readonly confidence: "low";
|
|
1811
|
+
}, {
|
|
1812
|
+
readonly pattern: "^D\\d{5}[A-Z]\\d{6}$";
|
|
1813
|
+
readonly confidence: "low";
|
|
1808
1814
|
}];
|
|
1809
1815
|
};
|
|
1810
1816
|
readonly brt: {
|
|
@@ -2965,6 +2971,7 @@ export declare const CARRIER_CATALOG: {
|
|
|
2965
2971
|
readonly tracking: {
|
|
2966
2972
|
readonly mode: "automatic";
|
|
2967
2973
|
readonly adapter: "china-post";
|
|
2974
|
+
readonly recognitionRank: 905;
|
|
2968
2975
|
readonly localClocks: true;
|
|
2969
2976
|
};
|
|
2970
2977
|
readonly canaryUrl: "https://ec.ems.com.cn/ect-web/mail/getGisTraces/checkMail";
|
|
@@ -2467,6 +2467,10 @@ export const CARRIER_CATALOG = {
|
|
|
2467
2467
|
{
|
|
2468
2468
|
"pattern": "^\\d{7}$",
|
|
2469
2469
|
"confidence": "low"
|
|
2470
|
+
},
|
|
2471
|
+
{
|
|
2472
|
+
"pattern": "^20\\d{2}(?:0[1-9]|[12]\\d|3[01])(?:0[1-9]|1[0-2])\\d{14}$",
|
|
2473
|
+
"confidence": "low"
|
|
2470
2474
|
}
|
|
2471
2475
|
]
|
|
2472
2476
|
},
|
|
@@ -2677,6 +2681,10 @@ export const CARRIER_CATALOG = {
|
|
|
2677
2681
|
{
|
|
2678
2682
|
"pattern": "^F\\d{3}D\\d{8}$",
|
|
2679
2683
|
"confidence": "low"
|
|
2684
|
+
},
|
|
2685
|
+
{
|
|
2686
|
+
"pattern": "^D\\d{5}[A-Z]\\d{6}$",
|
|
2687
|
+
"confidence": "low"
|
|
2680
2688
|
}
|
|
2681
2689
|
]
|
|
2682
2690
|
},
|
|
@@ -4310,6 +4318,7 @@ export const CARRIER_CATALOG = {
|
|
|
4310
4318
|
"tracking": {
|
|
4311
4319
|
"mode": "automatic",
|
|
4312
4320
|
"adapter": "china-post",
|
|
4321
|
+
"recognitionRank": 905,
|
|
4313
4322
|
"localClocks": true
|
|
4314
4323
|
},
|
|
4315
4324
|
"canaryUrl": "https://ec.ems.com.cn/ect-web/mail/getGisTraces/checkMail",
|
|
@@ -22613,12 +22622,12 @@ export const DETECTION_RULE_IDS = {
|
|
|
22613
22622
|
"postnord": ["postnord-1", "postnord-2", "postnord-5", "postnord-3"],
|
|
22614
22623
|
"posti": ["posti-1", "posti-2", "posti-3"],
|
|
22615
22624
|
"correos-express": ["correos-express-1", "correos-express-2"],
|
|
22616
|
-
"seur": ["seur-1", "seur-2", "seur-3"],
|
|
22625
|
+
"seur": ["seur-1", "seur-2", "seur-3", "seur-4"],
|
|
22617
22626
|
"mrw": ["mrw-1", "mrw-2"],
|
|
22618
22627
|
"nacex": ["nacex-1"],
|
|
22619
22628
|
"ctt": ["ctt-1"],
|
|
22620
22629
|
"ctt-express": ["ctt-express-3", "ctt-express-1", "ctt-express-2"],
|
|
22621
|
-
"poste-italiane": ["poste-italiane-1", "poste-italiane-2", "poste-italiane-3", "poste-italiane-4", "poste-italiane-delivery-europe", "poste-italiane-sda-domestic", "poste-italiane-promopacco"],
|
|
22630
|
+
"poste-italiane": ["poste-italiane-1", "poste-italiane-2", "poste-italiane-3", "poste-italiane-4", "poste-italiane-delivery-europe", "poste-italiane-sda-domestic", "poste-italiane-promopacco", "poste-italiane-d"],
|
|
22622
22631
|
"brt": ["brt-1", "brt-shipment-number", "brt-parcel-id"],
|
|
22623
22632
|
"ecoscooting": ["ecoscooting-postcode", "ecoscooting-1", "ecoscooting-2", "ecoscooting-without-cn"],
|
|
22624
22633
|
"tipsa": ["tipsa-1", "tipsa-2"],
|
package/dist/server/openapi.json
CHANGED
package/package.json
CHANGED