universal-parcel-scraper 0.233.0 → 0.235.0-main.1500
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 +5 -0
- package/data/detection-golden.json +20 -0
- package/dist/browser/scraper.js +8 -1
- 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/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 +5 -0
- package/dist/generated/catalog.d.ts +4 -0
- package/dist/generated/catalog.js +6 -1
- 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
|
},
|
|
@@ -4309,6 +4313,7 @@
|
|
|
4309
4313
|
"tracking": {
|
|
4310
4314
|
"mode": "automatic",
|
|
4311
4315
|
"adapter": "china-post",
|
|
4316
|
+
"recognitionRank": 905,
|
|
4312
4317
|
"localClocks": true
|
|
4313
4318
|
},
|
|
4314
4319
|
"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
|
},
|
|
@@ -71962,6 +71981,7 @@
|
|
|
71962
71981
|
"china-post"
|
|
71963
71982
|
],
|
|
71964
71983
|
"asked": [
|
|
71984
|
+
"china-post",
|
|
71965
71985
|
"la-poste"
|
|
71966
71986
|
]
|
|
71967
71987
|
},
|
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
|
},
|
|
@@ -3613,6 +3617,7 @@ var Ae = {
|
|
|
3613
3617
|
tracking: {
|
|
3614
3618
|
mode: "automatic",
|
|
3615
3619
|
adapter: "china-post",
|
|
3620
|
+
recognitionRank: 905,
|
|
3616
3621
|
localClocks: !0
|
|
3617
3622
|
},
|
|
3618
3623
|
canaryUrl: "https://ec.ems.com.cn/ect-web/mail/getGisTraces/checkMail",
|
|
@@ -16818,7 +16823,8 @@ var Ae = {
|
|
|
16818
16823
|
seur: [
|
|
16819
16824
|
"seur-1",
|
|
16820
16825
|
"seur-2",
|
|
16821
|
-
"seur-3"
|
|
16826
|
+
"seur-3",
|
|
16827
|
+
"seur-4"
|
|
16822
16828
|
],
|
|
16823
16829
|
mrw: ["mrw-1", "mrw-2"],
|
|
16824
16830
|
nacex: ["nacex-1"],
|
|
@@ -22586,6 +22592,7 @@ var il = {
|
|
|
22586
22592
|
"ceska-posta": 380,
|
|
22587
22593
|
"ceva-logistics": 925,
|
|
22588
22594
|
chilexpress: 958,
|
|
22595
|
+
"china-post": 905,
|
|
22589
22596
|
"chit-chats": 115,
|
|
22590
22597
|
chronopost: 890,
|
|
22591
22598
|
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
|
};
|
|
@@ -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
|
},
|
|
@@ -4309,6 +4313,7 @@
|
|
|
4309
4313
|
"tracking": {
|
|
4310
4314
|
"mode": "automatic",
|
|
4311
4315
|
"adapter": "china-post",
|
|
4316
|
+
"recognitionRank": 905,
|
|
4312
4317
|
"localClocks": true
|
|
4313
4318
|
},
|
|
4314
4319
|
"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: {
|
|
@@ -2965,6 +2968,7 @@ export declare const CARRIER_CATALOG: {
|
|
|
2965
2968
|
readonly tracking: {
|
|
2966
2969
|
readonly mode: "automatic";
|
|
2967
2970
|
readonly adapter: "china-post";
|
|
2971
|
+
readonly recognitionRank: 905;
|
|
2968
2972
|
readonly localClocks: true;
|
|
2969
2973
|
};
|
|
2970
2974
|
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
|
},
|
|
@@ -4310,6 +4314,7 @@ export const CARRIER_CATALOG = {
|
|
|
4310
4314
|
"tracking": {
|
|
4311
4315
|
"mode": "automatic",
|
|
4312
4316
|
"adapter": "china-post",
|
|
4317
|
+
"recognitionRank": 905,
|
|
4313
4318
|
"localClocks": true
|
|
4314
4319
|
},
|
|
4315
4320
|
"canaryUrl": "https://ec.ems.com.cn/ect-web/mail/getGisTraces/checkMail",
|
|
@@ -22613,7 +22618,7 @@ export const DETECTION_RULE_IDS = {
|
|
|
22613
22618
|
"postnord": ["postnord-1", "postnord-2", "postnord-5", "postnord-3"],
|
|
22614
22619
|
"posti": ["posti-1", "posti-2", "posti-3"],
|
|
22615
22620
|
"correos-express": ["correos-express-1", "correos-express-2"],
|
|
22616
|
-
"seur": ["seur-1", "seur-2", "seur-3"],
|
|
22621
|
+
"seur": ["seur-1", "seur-2", "seur-3", "seur-4"],
|
|
22617
22622
|
"mrw": ["mrw-1", "mrw-2"],
|
|
22618
22623
|
"nacex": ["nacex-1"],
|
|
22619
22624
|
"ctt": ["ctt-1"],
|
package/dist/server/openapi.json
CHANGED
package/package.json
CHANGED