universal-parcel-scraper 0.773.0-main.4131 → 0.773.2-main.4136

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
@@ -15129,10 +15129,16 @@
15129
15129
  "recognitionRank": 939,
15130
15130
  "localClocks": true
15131
15131
  },
15132
- "canaryUrl": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt",
15133
- "trackingUrlTemplate": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt/{trackingNumber}",
15134
- "trackingSearchUrl": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt",
15132
+ "canaryUrl": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt",
15133
+ "trackingUrlTemplate": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt/{trackingNumber}",
15134
+ "trackingSearchUrl": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt",
15135
15135
  "linkRules": [
15136
+ {
15137
+ "domains": [
15138
+ "seikyu.fukuyama-tsuun.com"
15139
+ ],
15140
+ "path": "^/corp/tracking_no_hunt/([^/?#]+)/?$"
15141
+ },
15136
15142
  {
15137
15143
  "domains": [
15138
15144
  "corp.fukutsu.co.jp"
@@ -25672,15 +25678,15 @@
25672
25678
  "adapter": "ppl",
25673
25679
  "recognitionRank": 608
25674
25680
  },
25675
- "canaryUrl": "https://www.ppl.cz/vyhledat-zasilku",
25676
- "trackingUrlTemplate": "https://www.ppl.cz/vyhledat-zasilku?shipmentId={trackingNumber}",
25677
- "trackingSearchUrl": "https://www.ppl.cz/vyhledat-zasilku",
25681
+ "canaryUrl": "https://www.ppl.cz/",
25682
+ "trackingUrlTemplate": "https://www.ppl.cz/?form=track-and-trace&shipmentId={trackingNumber}",
25683
+ "trackingSearchUrl": "https://www.ppl.cz/?form=track-and-trace",
25678
25684
  "linkRules": [
25679
25685
  {
25680
25686
  "domains": [
25681
25687
  "ppl.cz"
25682
25688
  ],
25683
- "pathPattern": "^/(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?$",
25689
+ "pathPattern": "^/(?:(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?)?$",
25684
25690
  "params": [
25685
25691
  "shipmentId"
25686
25692
  ]
@@ -11760,10 +11760,13 @@ var $e = {
11760
11760
  recognitionRank: 939,
11761
11761
  localClocks: !0
11762
11762
  },
11763
- canaryUrl: "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt",
11764
- trackingUrlTemplate: "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt/{trackingNumber}",
11765
- trackingSearchUrl: "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt",
11763
+ canaryUrl: "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt",
11764
+ trackingUrlTemplate: "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt/{trackingNumber}",
11765
+ trackingSearchUrl: "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt",
11766
11766
  linkRules: [{
11767
+ domains: ["seikyu.fukuyama-tsuun.com"],
11768
+ path: "^/corp/tracking_no_hunt/([^/?#]+)/?$"
11769
+ }, {
11767
11770
  domains: ["corp.fukutsu.co.jp"],
11768
11771
  path: "^/(?:corp/recieve|situation)/tracking_no_hunt/([^/?#]+)/?$"
11769
11772
  }],
@@ -19588,12 +19591,12 @@ var $e = {
19588
19591
  adapter: "ppl",
19589
19592
  recognitionRank: 608
19590
19593
  },
19591
- canaryUrl: "https://www.ppl.cz/vyhledat-zasilku",
19592
- trackingUrlTemplate: "https://www.ppl.cz/vyhledat-zasilku?shipmentId={trackingNumber}",
19593
- trackingSearchUrl: "https://www.ppl.cz/vyhledat-zasilku",
19594
+ canaryUrl: "https://www.ppl.cz/",
19595
+ trackingUrlTemplate: "https://www.ppl.cz/?form=track-and-trace&shipmentId={trackingNumber}",
19596
+ trackingSearchUrl: "https://www.ppl.cz/?form=track-and-trace",
19594
19597
  linkRules: [{
19595
19598
  domains: ["ppl.cz"],
19596
- pathPattern: "^/(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?$",
19599
+ pathPattern: "^/(?:(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?)?$",
19597
19600
  params: ["shipmentId"]
19598
19601
  }],
19599
19602
  detectionRules: [{
@@ -24,7 +24,9 @@ export function parseDhlPolandHistory(payload, waybill) {
24
24
  const day = date && calendarDay(Number(date[3]), Number(date[2]), Number(date[1]));
25
25
  if (!day || !/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(row.time))
26
26
  throw new SchemaError(PROVIDER, 'DHL Poland returned an invalid scan clock');
27
- const description = clean(row.description, 500).replace(/\s*(?:The (?:shipment|parcel) (?:was )?received by|Przesyłka odebrana przez)\b[\s\S]*$/i, '').trim();
27
+ const description = clean(row.description, 500).replace(/\s*(?:The (?:shipment|parcel) (?:was )?received by|Przesyłka odebrana przez)\b[\s\S]*$/i, '').trim()
28
+ // A terminal the page leaves unnamed has an empty slot.
29
+ .replace(/^(The shipment has reached DHL terminal) in \./i, '$1.');
28
30
  if (!description)
29
31
  throw new SchemaError(PROVIDER, 'DHL Poland returned an empty scan');
30
32
  const stage = dhlPolandScanStage(description);
@@ -40,7 +40,7 @@ const SCAN_STAGES = [
40
40
  [/^(?:The shipment is handled in Sorting Center|Przesyłka jest obsługiwana w Centrum Sortowania)\.?$/i, 'in_transit'],
41
41
  [/^(?:The shipment has reached DHL terminal\.|Przesyłka dotarła do oddziału nadawczego DHL Parcel\.)$/i, 'accepted'],
42
42
  // A terminal that gives the planned delivery day is reached on the way, with the sorting centre's scan.
43
- [/^The shipment has reached DHL terminal in [^.]{0,80}\. Planned date of delivery to: \d{2}-\d{2}-\d{4}\.$/i, 'in_transit'],
43
+ [/^The shipment has reached DHL terminal(?: in [^.]{0,80})?\. Planned date of delivery to: \d{2}-\d{2}-\d{4}\.$/i, 'in_transit'],
44
44
  // A parcel sent abroad: its first terminal, named without a delivery day, then the way out.
45
45
  [/^The shipment has reached DHL terminal in [^.]{0,80}\.$/i, 'accepted'],
46
46
  [/^The shipment left the origin country\.?$/i, 'in_transit'],
@@ -2,7 +2,7 @@ import { type AdapterFactory, type TrackingContext } from '../../core/adapter/in
2
2
  import type { CarrierResult } from '../../core/result/index.js';
3
3
  import { type StepRecorder } from '../../core/telemetry/index.js';
4
4
  /** The tracker's page for one number, which the tracking form on the home page opens. */
5
- export declare const FUKUYAMA_TRACKING = "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt/";
5
+ export declare const FUKUYAMA_TRACKING = "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt/";
6
6
  export declare class FukuyamaTracker {
7
7
  private readonly options;
8
8
  constructor(options?: {
@@ -6,7 +6,7 @@ import { NOOP_RECORDER } from '../../core/telemetry/index.js';
6
6
  import { fetchBounded, userAgentOf } from '../../core/transport/index.js';
7
7
  import { decodeFukuyamaPage, FUKUYAMA_MAX_BYTES, normalizeFukuyamaNumber, parseFukuyama, PROVIDER } from './parser.js';
8
8
  /** The tracker's page for one number, which the tracking form on the home page opens. */
9
- export const FUKUYAMA_TRACKING = 'https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt/';
9
+ export const FUKUYAMA_TRACKING = 'https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt/';
10
10
  const REDIRECTS = [301, 302, 303, 307, 308];
11
11
  export class FukuyamaTracker {
12
12
  options;
@@ -37,9 +37,9 @@
37
37
  "offset_timestamps"
38
38
  ],
39
39
  "portal": {
40
- "url": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt/{trackingNumber}",
41
- "searchUrl": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt",
42
- "canaryUrl": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt",
40
+ "url": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt/{trackingNumber}",
41
+ "searchUrl": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt",
42
+ "canaryUrl": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt",
43
43
  "shows": [
44
44
  "status",
45
45
  "history",
@@ -75,6 +75,12 @@
75
75
  ]
76
76
  },
77
77
  "links": [
78
+ {
79
+ "domains": [
80
+ "seikyu.fukuyama-tsuun.com"
81
+ ],
82
+ "path": "^/corp/tracking_no_hunt/([^/?#]+)/?$"
83
+ },
78
84
  {
79
85
  "domains": [
80
86
  "corp.fukutsu.co.jp"
@@ -33,9 +33,9 @@
33
33
  "pickup_point"
34
34
  ],
35
35
  "portal": {
36
- "url": "https://www.ppl.cz/vyhledat-zasilku?shipmentId={trackingNumber}",
37
- "searchUrl": "https://www.ppl.cz/vyhledat-zasilku",
38
- "canaryUrl": "https://www.ppl.cz/vyhledat-zasilku",
36
+ "url": "https://www.ppl.cz/?form=track-and-trace&shipmentId={trackingNumber}",
37
+ "searchUrl": "https://www.ppl.cz/?form=track-and-trace",
38
+ "canaryUrl": "https://www.ppl.cz/",
39
39
  "shows": [
40
40
  "status",
41
41
  "history",
@@ -79,7 +79,7 @@
79
79
  "domains": [
80
80
  "ppl.cz"
81
81
  ],
82
- "pathPattern": "^/(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?$",
82
+ "pathPattern": "^/(?:(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?)?$",
83
83
  "params": [
84
84
  "shipmentId"
85
85
  ]
@@ -24,7 +24,7 @@ export function yanwenTrackingUrl(raw) {
24
24
  }
25
25
  // Partner scans can carry the delivery postcode: a Canadian one before the
26
26
  // town, a US ZIP after the state. A location keeps its town and region only,
27
- // and a partner's "Not Available" is none.
27
+ // and a partner's "Not Available" or bare "AA", a code no country holds, is none.
28
28
  const POSTCODE = /^(?:[A-Z]\d[A-Z] ?\d[A-Z]\d|\d{5}(?:-\d{4})?)$/i;
29
29
  // GOFO's European delivery scans say whether a PIN was used and give a door
30
30
  // number; neither belongs in the wording.
@@ -1,7 +1,7 @@
1
1
  import { matchesDroppedLocation, matchesLocationEnrichment } from '../../core/catalog/locationIdentity.js';
2
2
  /** Whether a relayed scan's place is a partner's placeholder ("Not Available"), which names no place. */
3
3
  export function isYanwenPlaceholder(location) {
4
- return /^not available$/i.test(location.replace(/\s+/g, ' ').trim());
4
+ return /^(?:not available|AA)$/i.test(location.replace(/\s+/g, ' ').trim());
5
5
  }
6
6
  // A relayed scan stored without a place can take it from the UTC copy the
7
7
  // adapter now drops, and one stored with a placeholder as its place loses it.
@@ -15129,10 +15129,16 @@
15129
15129
  "recognitionRank": 939,
15130
15130
  "localClocks": true
15131
15131
  },
15132
- "canaryUrl": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt",
15133
- "trackingUrlTemplate": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt/{trackingNumber}",
15134
- "trackingSearchUrl": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt",
15132
+ "canaryUrl": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt",
15133
+ "trackingUrlTemplate": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt/{trackingNumber}",
15134
+ "trackingSearchUrl": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt",
15135
15135
  "linkRules": [
15136
+ {
15137
+ "domains": [
15138
+ "seikyu.fukuyama-tsuun.com"
15139
+ ],
15140
+ "path": "^/corp/tracking_no_hunt/([^/?#]+)/?$"
15141
+ },
15136
15142
  {
15137
15143
  "domains": [
15138
15144
  "corp.fukutsu.co.jp"
@@ -25672,15 +25678,15 @@
25672
25678
  "adapter": "ppl",
25673
25679
  "recognitionRank": 608
25674
25680
  },
25675
- "canaryUrl": "https://www.ppl.cz/vyhledat-zasilku",
25676
- "trackingUrlTemplate": "https://www.ppl.cz/vyhledat-zasilku?shipmentId={trackingNumber}",
25677
- "trackingSearchUrl": "https://www.ppl.cz/vyhledat-zasilku",
25681
+ "canaryUrl": "https://www.ppl.cz/",
25682
+ "trackingUrlTemplate": "https://www.ppl.cz/?form=track-and-trace&shipmentId={trackingNumber}",
25683
+ "trackingSearchUrl": "https://www.ppl.cz/?form=track-and-trace",
25678
25684
  "linkRules": [
25679
25685
  {
25680
25686
  "domains": [
25681
25687
  "ppl.cz"
25682
25688
  ],
25683
- "pathPattern": "^/(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?$",
25689
+ "pathPattern": "^/(?:(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?)?$",
25684
25690
  "params": [
25685
25691
  "shipmentId"
25686
25692
  ]
@@ -9822,10 +9822,13 @@ export declare const CARRIER_CATALOG: {
9822
9822
  readonly recognitionRank: 939;
9823
9823
  readonly localClocks: true;
9824
9824
  };
9825
- readonly canaryUrl: "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt";
9826
- readonly trackingUrlTemplate: "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt/{trackingNumber}";
9827
- readonly trackingSearchUrl: "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt";
9825
+ readonly canaryUrl: "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt";
9826
+ readonly trackingUrlTemplate: "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt/{trackingNumber}";
9827
+ readonly trackingSearchUrl: "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt";
9828
9828
  readonly linkRules: readonly [{
9829
+ readonly domains: readonly ["seikyu.fukuyama-tsuun.com"];
9830
+ readonly path: "^/corp/tracking_no_hunt/([^/?#]+)/?$";
9831
+ }, {
9829
9832
  readonly domains: readonly ["corp.fukutsu.co.jp"];
9830
9833
  readonly path: "^/(?:corp/recieve|situation)/tracking_no_hunt/([^/?#]+)/?$";
9831
9834
  }];
@@ -16473,12 +16476,12 @@ export declare const CARRIER_CATALOG: {
16473
16476
  readonly adapter: "ppl";
16474
16477
  readonly recognitionRank: 608;
16475
16478
  };
16476
- readonly canaryUrl: "https://www.ppl.cz/vyhledat-zasilku";
16477
- readonly trackingUrlTemplate: "https://www.ppl.cz/vyhledat-zasilku?shipmentId={trackingNumber}";
16478
- readonly trackingSearchUrl: "https://www.ppl.cz/vyhledat-zasilku";
16479
+ readonly canaryUrl: "https://www.ppl.cz/";
16480
+ readonly trackingUrlTemplate: "https://www.ppl.cz/?form=track-and-trace&shipmentId={trackingNumber}";
16481
+ readonly trackingSearchUrl: "https://www.ppl.cz/?form=track-and-trace";
16479
16482
  readonly linkRules: readonly [{
16480
16483
  readonly domains: readonly ["ppl.cz"];
16481
- readonly pathPattern: "^/(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?$";
16484
+ readonly pathPattern: "^/(?:(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?)?$";
16482
16485
  readonly params: readonly ["shipmentId"];
16483
16486
  }];
16484
16487
  readonly detectionRules: readonly [{
@@ -15130,10 +15130,16 @@ export const CARRIER_CATALOG = {
15130
15130
  "recognitionRank": 939,
15131
15131
  "localClocks": true
15132
15132
  },
15133
- "canaryUrl": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt",
15134
- "trackingUrlTemplate": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt/{trackingNumber}",
15135
- "trackingSearchUrl": "https://corp.fukutsu.co.jp/corp/recieve/tracking_no_hunt",
15133
+ "canaryUrl": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt",
15134
+ "trackingUrlTemplate": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt/{trackingNumber}",
15135
+ "trackingSearchUrl": "https://seikyu.fukuyama-tsuun.com/corp/tracking_no_hunt",
15136
15136
  "linkRules": [
15137
+ {
15138
+ "domains": [
15139
+ "seikyu.fukuyama-tsuun.com"
15140
+ ],
15141
+ "path": "^/corp/tracking_no_hunt/([^/?#]+)/?$"
15142
+ },
15137
15143
  {
15138
15144
  "domains": [
15139
15145
  "corp.fukutsu.co.jp"
@@ -25673,15 +25679,15 @@ export const CARRIER_CATALOG = {
25673
25679
  "adapter": "ppl",
25674
25680
  "recognitionRank": 608
25675
25681
  },
25676
- "canaryUrl": "https://www.ppl.cz/vyhledat-zasilku",
25677
- "trackingUrlTemplate": "https://www.ppl.cz/vyhledat-zasilku?shipmentId={trackingNumber}",
25678
- "trackingSearchUrl": "https://www.ppl.cz/vyhledat-zasilku",
25682
+ "canaryUrl": "https://www.ppl.cz/",
25683
+ "trackingUrlTemplate": "https://www.ppl.cz/?form=track-and-trace&shipmentId={trackingNumber}",
25684
+ "trackingSearchUrl": "https://www.ppl.cz/?form=track-and-trace",
25679
25685
  "linkRules": [
25680
25686
  {
25681
25687
  "domains": [
25682
25688
  "ppl.cz"
25683
25689
  ],
25684
- "pathPattern": "^/(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?$",
25690
+ "pathPattern": "^/(?:(?:vyhledat-zasilku|en/track-a-shipment|en/parcel-detail)/?)?$",
25685
25691
  "params": [
25686
25692
  "shipmentId"
25687
25693
  ]
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "Universal Parcel Scraper",
5
- "version": "0.773.0-main.4131"
5
+ "version": "0.773.2-main.4136"
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.773.0-main.4131",
3
+ "version": "0.773.2-main.4136",
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",