universal-parcel-scraper 0.878.2-main.4713 → 0.879.1-main.4720

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/README.md CHANGED
@@ -15,7 +15,7 @@ The engine behind [Peek](https://peektracker.com) ([GitHub](https://github.com/p
15
15
  <!-- GENERATED:summary -->
16
16
  **3,500+ carriers** through **669 dedicated adapters** and **5 universal fallbacks**
17
17
 
18
- <sub>1100 catalog entries · 145 countries represented</sub>
18
+ <sub>1103 catalog entries · 145 countries represented</sub>
19
19
  <!-- /GENERATED:summary -->
20
20
 
21
21
  [Try it](#try-it) · [Ways to run it](#ways-to-run-it) · [Benchmark](#benchmark) · [Carriers](carriers/) · [Add a carrier](CONTRIBUTING.md)
@@ -163,7 +163,7 @@ the command line's `track --source ParcelsApp` does the same.
163
163
  <!-- GENERATED:stages -->
164
164
  <img src="docs/assets/stages.svg" alt="DHL: Die Sendung wurde in das Zustellfahrzeug geladen.; Mondial Relay: En cours de livraison; Correios Brazil: Objeto saiu para entrega ao destinatário; Correos Express: EN REPARTO; Yamato Transport: 配達中; La Poste / Colissimo: DISTOU. All are filed under out_for_delivery." width="760">
165
165
 
166
- The carrier folders record 17,976 such statuses, each filed under one stage.
166
+ The carrier folders record 17,977 such statuses, each filed under one stage.
167
167
  <!-- /GENERATED:stages -->
168
168
 
169
169
  Wording nobody recorded yet goes through a classifier that reads seven European languages.
package/data/catalog.json CHANGED
@@ -7554,6 +7554,41 @@
7554
7554
  }
7555
7555
  ]
7556
7556
  },
7557
+ "annto": {
7558
+ "displayName": "ANNTO",
7559
+ "color": "#007ac3",
7560
+ "aliases": [
7561
+ "安得智联",
7562
+ "安得物流",
7563
+ "Annto Logistics",
7564
+ "安得智联供应链科技股份有限公司"
7565
+ ],
7566
+ "countries": [
7567
+ "CN"
7568
+ ],
7569
+ "selectable": true,
7570
+ "timezone": "Asia/Shanghai",
7571
+ "tracking": {
7572
+ "mode": "automatic",
7573
+ "adapter": "universal"
7574
+ },
7575
+ "canaryUrl": "https://www.annto.com/order",
7576
+ "trackingUrlTemplate": "https://www.annto.com/order?orderNoFormMain={trackingNumber}",
7577
+ "trackingSearchUrl": "https://www.annto.com/order",
7578
+ "linkRules": [
7579
+ {
7580
+ "domains": [
7581
+ "annto.com",
7582
+ "www.annto.com"
7583
+ ],
7584
+ "pathPattern": "^/order$",
7585
+ "params": [
7586
+ "orderNoFormMain"
7587
+ ]
7588
+ }
7589
+ ],
7590
+ "detectionRules": []
7591
+ },
7557
7592
  "anousith": {
7558
7593
  "displayName": "Anousith Logistics",
7559
7594
  "color": "#e0353a",
@@ -15911,6 +15946,29 @@
15911
15946
  }
15912
15947
  ]
15913
15948
  },
15949
+ "ees-logistics": {
15950
+ "displayName": "EES Logistics",
15951
+ "color": "#b62126",
15952
+ "aliases": [
15953
+ "EES",
15954
+ "百福东方",
15955
+ "百福东方国际物流",
15956
+ "北京百福东方国际物流有限责任公司"
15957
+ ],
15958
+ "countries": [
15959
+ "CN"
15960
+ ],
15961
+ "selectable": true,
15962
+ "timezone": "Asia/Shanghai",
15963
+ "tracking": {
15964
+ "mode": "automatic",
15965
+ "adapter": "universal"
15966
+ },
15967
+ "canaryUrl": "https://api.eesimp.com/imc/pub_logi_info",
15968
+ "trackingSearchUrl": "https://api.eesimp.com/imc/pub_logi_info",
15969
+ "linkRules": [],
15970
+ "detectionRules": []
15971
+ },
15914
15972
  "efs-asia": {
15915
15973
  "displayName": "EFS Asia",
15916
15974
  "color": "#224f8c",
@@ -23458,6 +23516,38 @@
23458
23516
  ],
23459
23517
  "detectionRules": []
23460
23518
  },
23519
+ "jdiex": {
23520
+ "displayName": "JDIEX",
23521
+ "color": "#0166e2",
23522
+ "aliases": [
23523
+ "JDI国际物流",
23524
+ "JDI International Logistics"
23525
+ ],
23526
+ "countries": [
23527
+ "US",
23528
+ "CN"
23529
+ ],
23530
+ "selectable": true,
23531
+ "timezone": "America/Los_Angeles",
23532
+ "tracking": {
23533
+ "mode": "automatic",
23534
+ "adapter": "universal"
23535
+ },
23536
+ "canaryUrl": "https://www.jdiex.com/",
23537
+ "trackingUrlTemplate": "https://www.jdiex.com/select.html?type=cnum&num={trackingNumber}",
23538
+ "trackingSearchUrl": "https://www.jdiex.com/select.html",
23539
+ "linkRules": [
23540
+ {
23541
+ "domains": [
23542
+ "jdiex.com",
23543
+ "www.jdiex.com"
23544
+ ],
23545
+ "pathPattern": "^/select\\.html$",
23546
+ "query": "^(?=(?:.*&)?type=cnum(?:&|$))(?:.*&)?num=([^&]+)(?=&|$)"
23547
+ }
23548
+ ],
23549
+ "detectionRules": []
23550
+ },
23461
23551
  "jeebly": {
23462
23552
  "displayName": "Jeebly",
23463
23553
  "color": "#db124b",
@@ -37452,7 +37542,15 @@
37452
37542
  "canaryUrl": "https://oms.sumxpress.com/",
37453
37543
  "trackingUrlTemplate": "https://oms.sumxpress.com/#/query?trackingNo={trackingNumber}",
37454
37544
  "trackingSearchUrl": "https://oms.sumxpress.com/#/query",
37455
- "linkRules": [],
37545
+ "linkRules": [
37546
+ {
37547
+ "domains": [
37548
+ "oms.sumxpress.com"
37549
+ ],
37550
+ "pathPattern": "^/?$",
37551
+ "fragment": "^/query\\?(?:[^#]*&)?trackingNo=([^&]+)"
37552
+ }
37553
+ ],
37456
37554
  "detectionRules": []
37457
37555
  },
37458
37556
  "sundarban-courier": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "catalog": 1100,
2
+ "catalog": 1103,
3
3
  "activeAdapters": 669,
4
4
  "countries": 145,
5
5
  "referenceCarriers": 100,
@@ -6267,6 +6267,32 @@ var nt = {
6267
6267
  confidence: "high"
6268
6268
  }]
6269
6269
  },
6270
+ annto: {
6271
+ displayName: "ANNTO",
6272
+ color: "#007ac3",
6273
+ aliases: [
6274
+ "安得智联",
6275
+ "安得物流",
6276
+ "Annto Logistics",
6277
+ "安得智联供应链科技股份有限公司"
6278
+ ],
6279
+ countries: ["CN"],
6280
+ selectable: !0,
6281
+ timezone: "Asia/Shanghai",
6282
+ tracking: {
6283
+ mode: "automatic",
6284
+ adapter: "universal"
6285
+ },
6286
+ canaryUrl: "https://www.annto.com/order",
6287
+ trackingUrlTemplate: "https://www.annto.com/order?orderNoFormMain={trackingNumber}",
6288
+ trackingSearchUrl: "https://www.annto.com/order",
6289
+ linkRules: [{
6290
+ domains: ["annto.com", "www.annto.com"],
6291
+ pathPattern: "^/order$",
6292
+ params: ["orderNoFormMain"]
6293
+ }],
6294
+ detectionRules: []
6295
+ },
6270
6296
  anousith: {
6271
6297
  displayName: "Anousith Logistics",
6272
6298
  color: "#e0353a",
@@ -12488,6 +12514,27 @@ var nt = {
12488
12514
  confidence: "high"
12489
12515
  }]
12490
12516
  },
12517
+ "ees-logistics": {
12518
+ displayName: "EES Logistics",
12519
+ color: "#b62126",
12520
+ aliases: [
12521
+ "EES",
12522
+ "百福东方",
12523
+ "百福东方国际物流",
12524
+ "北京百福东方国际物流有限责任公司"
12525
+ ],
12526
+ countries: ["CN"],
12527
+ selectable: !0,
12528
+ timezone: "Asia/Shanghai",
12529
+ tracking: {
12530
+ mode: "automatic",
12531
+ adapter: "universal"
12532
+ },
12533
+ canaryUrl: "https://api.eesimp.com/imc/pub_logi_info",
12534
+ trackingSearchUrl: "https://api.eesimp.com/imc/pub_logi_info",
12535
+ linkRules: [],
12536
+ detectionRules: []
12537
+ },
12491
12538
  "efs-asia": {
12492
12539
  displayName: "EFS Asia",
12493
12540
  color: "#224f8c",
@@ -18119,6 +18166,27 @@ var nt = {
18119
18166
  }],
18120
18167
  detectionRules: []
18121
18168
  },
18169
+ jdiex: {
18170
+ displayName: "JDIEX",
18171
+ color: "#0166e2",
18172
+ aliases: ["JDI国际物流", "JDI International Logistics"],
18173
+ countries: ["US", "CN"],
18174
+ selectable: !0,
18175
+ timezone: "America/Los_Angeles",
18176
+ tracking: {
18177
+ mode: "automatic",
18178
+ adapter: "universal"
18179
+ },
18180
+ canaryUrl: "https://www.jdiex.com/",
18181
+ trackingUrlTemplate: "https://www.jdiex.com/select.html?type=cnum&num={trackingNumber}",
18182
+ trackingSearchUrl: "https://www.jdiex.com/select.html",
18183
+ linkRules: [{
18184
+ domains: ["jdiex.com", "www.jdiex.com"],
18185
+ pathPattern: "^/select\\.html$",
18186
+ query: "^(?=(?:.*&)?type=cnum(?:&|$))(?:.*&)?num=([^&]+)(?=&|$)"
18187
+ }],
18188
+ detectionRules: []
18189
+ },
18122
18190
  jeebly: {
18123
18191
  displayName: "Jeebly",
18124
18192
  color: "#db124b",
@@ -28578,7 +28646,11 @@ var nt = {
28578
28646
  canaryUrl: "https://oms.sumxpress.com/",
28579
28647
  trackingUrlTemplate: "https://oms.sumxpress.com/#/query?trackingNo={trackingNumber}",
28580
28648
  trackingSearchUrl: "https://oms.sumxpress.com/#/query",
28581
- linkRules: [],
28649
+ linkRules: [{
28650
+ domains: ["oms.sumxpress.com"],
28651
+ pathPattern: "^/?$",
28652
+ fragment: "^/query\\?(?:[^#]*&)?trackingNo=([^&]+)"
28653
+ }],
28582
28654
  detectionRules: []
28583
28655
  },
28584
28656
  "sundarban-courier": {
@@ -33118,7 +33190,7 @@ var nt = {
33118
33190
  preferred: !0
33119
33191
  }]
33120
33192
  }
33121
- }, rt = /* @__PURE__ */ "swiss-post.swiss-post-cargo.quickpac.planzer.aliexpress.sunyou.hermes.spring-gds.postlogistics.dachser.dhl.dhl-ecommerce.ups.amazon-logistics.amazon-shipping.fedex.gls-ch.dpd.dpd-fr.mondial-relay.relais-colis.la-poste.chronopost.gls-fr.colis-prive.geodis.colisweb.c-chez-vous.heppner.ciblex.paack.asendia.shipup.india-post.hermes-de.gls-de.delivengo.intl-post.unknown.royal-mail.parcelforce.evri.inpost.an-post.bpost.austrian-post.postnord.posti.correos-express.seur.mrw.nacex.ctt.ctt-express.poste-italiane.brt.ecoscooting.tipsa.ukrposhta.usps.canada-post.purolator.canpar.ontrac.speedx.uniuni.landmark-global.old-dominion.spee-dee.gofo.estafeta.correios-br.correos-chile.yunexpress.four-px.blue-dart.delhivery.nz-post.singapore-post.japan-post.sf-express.sto.yunda.yto.zto.jd-logistics.yamato.korea-post.thailand-post.dtdc.australia-post.hongkong-post.pos-malaysia.ninja-van.china-post.packeta.poczta-polska.bring-posten.aramex.tnt.correos-spain.yanwen.the-courier-guy.j-and-t.ems.139express.17feia.247express.2go.360lion.360zebra.3pe-express.4-72.4sides.5post.99minutos.a-duie-pyle.a-tu-hora-express.a1-post.aaa-cooper.ab-courier.abf-freight.ace-ee.ace-lt.ace-lv.aci-express-kr.acs-courier.aeropost.aex-paraguay.afghan-post.air-star-xpress.airmee.airpak-express.airroad.airspeed.airwings-india.ait-home-delivery.ait-worldwide.ajex.akash-ganga.akis-express.aks-express.aland-post.alem-tat.algerie-poste.allegro-one.alljoy.am-home-delivery.amalgamated-distribution.ambro-express.ameex.american-west-express.amerijet.ameriship.ampm.ams-egroup.andreani.ane-logistics.anjun.anousith.anserx.anteraja.ap-cargo.apc-overnight.apc-postal-logistics.apg-ecommerce.apple-express.apx-logistics.aquiline.aramex-au.aramex-nz.aras-kargo.ark-express.arrow-express.arrow-xl.aruba-post.ase-express.asiafly.asigna.asyad-express.atlantic-courier.ats-healthcare.auexpress.averitt.avis-logistics.aymakan.azerpost.azul-cargo.bangladesh-post.barid-al-maghrib.bel.belpost.best-express-my.best-express-th.best-express-vn.best-overnite-express.best-transport.better-trucks.bex-express.bfe-express.big-smart.bjs-home-delivery.blue-express.blueex.bombax.bombino.bonds-couriers.bookurier.border-express.bosta.botswana-post.box-now.boxtal.boyuan.bqc-logistics.bringer-parcel.btd.bts-uz.budbee.buffalo-ex.bulgarian-posts.burd-delivery.burundi-post.bussgods.byhd.c3x.cacesa.campost.canada-air-express.cargobus.cargoline.cargus.castle-parcels.castores.cbl-logistica.ccfs.cdek.cdl.celeritas.central-transport.centurion-transport.ceska-posta.ceva-logistics.changjiang-express.chazki.cheetah-delivery.chilexpress.china-railway-express.chinz-logistics.chit-chats.chronodiali.chukou1.chunghwa-post.chunil.citi-sprint.citilogistics.cititrans.city-air-express.city-express-rs.citylink-express.citymail.citymail-pk.citysprint.cj-logistics.cj-packet.closer-logistics.cne.codexpress.collicare.comone-express.connect-couriers.consegnia.coordinadora.copa-courier.cope-sensitive-freight.corre.correo-argentino.correo-paraguayo.correo-uruguayo.correos-bolivia.correos-costa-rica.correos-cuba.correos-de-mexico.correos-el-salvador.correos-nicaragua.costco-logistics.courier-center.courier-it.courier-plus-ng.couriersplease.credifin.cruz-del-sur.cse-russia.cst-italia.ctc-express.cttyex.custom-companies.cycloon.cyprus-post.d-express.daewoo-fastex.dai-post.daily-xpress.dakota-cargo.danske-fragtmaend.dao.day-ross.daylight-transport.dayone.dayton-freight.dd-express.dealersend.deliverdirect.delivro.dellin.delnext.depo.deppon.deprisa.designer-transport.dex-i.dex-pk.dg-transporte.dhl-ecommerce-es.dhl-ecommerce-nl.dhl-ecommerce-pl.dhl-ecommerce-uk.dhl-express.dhl-freight.dhlink.diakinisis.direct-couriers.direct-freight-express.direx.dnx-cargo.dobropost.dohrn-transfer.domain-logistics.domex.dpd-at.dpd-be.dpd-de.dpd-hu.dpd-ie.dpd-nl.dpd-pl.dpd-pt.dpd-ro.dpd-uk.dpd-za.dpe-express.dpex.dpx-logistics.dragon-star-curier.drop2shop.dropp.dsv.dx.dynalogic.e-cargo.e-commerce-international.e24metro-ca.eac-cn.early-bird.easy-mail.ecms-express.eco-express-ae.ecohai.ecom-logistics.econt.ecourier.efs-asia.egxpress.egypt-post.ekart.elianpost.elog-luxembourg.elta.emex.emile.emirates-courier-express.emirates-post.emons.ems-vietnam.energia-tk.energo.envia-colombia.envialia.eparcel-kr.epost-global.equick.espeedpost.espoirer.estes.estes-forwarding.ethiopian-post.ets-express.eurodis.euroexpress-ba.europochta.eushipments.evdemo-lojistik.evri-uk.evropat.ewe.exelot.exline-kz.exmate.expedico.express-one.express-one-bg.famafutar.famiport.fan-courier.far-international.fargo-courier.fargo-uz.fastbox.fastdrop.faster-ae.fastfrate.fastgo.fastwl.fedex-freight.fedex-international-connect.fedex-pl.fercam.fermopoint.fez-delivery.fg-delivery.first-delivery-tn.first-flight-me.first-fly-express.first-line.flash-express.flash-express-ph.flashbird-ca.fleetex.fleetoptics.flippost.fliway.flyking.flyt-express.fm-transportes.fmx.fofr.followmont.forward-air.forza-delivery.foxpost.fragilepak.franch-express.freightways-global.frontier-ca.fukuyama.gaash.gati.gcx.gdex.gebrueder-weiss.geis.gel-express.geniki-taxydromiki.geodis-pl.geswl.ghana-post.ghn.ghtk.gibraltar-post.gig-logistics.gio-express.global-delivery-network.globalpost.gls-at.gls-es.gls-it.gls-pl.gms-worldwide.go-express.go4.gobolt.gofo-ca.gofo-es.gofo-fr.gofo-it.gofo-nl.gogo-xpress.goodluck-courier.goodmaji.grand-slam-express.groupe-guilbault.gs-postbox.gsi-express.gta-airskip.gtl-goto.guatex.gzyl.hanjin.hapdong.happy-post.hart2hart-express.haypost.hct-logistics.hecny-ecom.helthjem.hepsijet.hercules-freight.hermes-at.hfd.hi-trans.hispapost.hitch.hkd-express.holisol.homexpress.hongsuda.horoz.hound-express.houng-ah-loun.hovership.hp-mostar.hr-parcel.hrvatska-posta.hrx.huahan.huaya-express.hunter-express.hywl.icc-worldwide.icl-express.ics-courier.idexpress.ids-logistik.ilyang-logis.imile.indah-logistik.inntralog.inposdom.instabox.instapack.integral-pack.intel-valley.intelcom.inter-courier.inter-express-logistics.intereuropa.interlogistica.internet-express.interrapidisimo.intex-paketdienst.intime-bg.iran-post.islandwide-express.israel-post.j-and-t-au.j-and-t-br.j-and-t-cargo.j-and-t-cn.j-and-t-de.j-and-t-eg.j-and-t-middle-east.j-and-t-mx.j-and-t-uk.jadlog.jamaica-post.janco-express.janio.jaskipin.jcex.jcw-express.jeebly.jersey-post.jet-logistic.jetline-couriers.jetpak.jhgj.jifan.jitsu.jne.joom-logistics.jordan-post.jp-home.jrs-express.jrt.js-express.jumppoint.juxi-express.jy-express.kargoist.kart2door.kazpost.kec-ecommerce.kerry-tj.kex.kex-express-hk.king-kong-express.kit-tk.kiwi-express.kolay-gelsin.komon-express.kronos-express.ktd.kuayue-express.kuehne-nagel.kun-express.kunyoung.kwick-box.kyoungdong.kyrgyz-post.l-post.la-poste-burkina-faso.la-poste-ci.la-poste-senegal.la-poste-tunisienne.laar-courier.labaih.lao-post.last-one-mile-coop.latvijas-pasts.lbc-express.lbtx.leopards-courier.letter-track.lex-my.lex-vn.lhtex.libang-logistics.libanpost.liccardi.lietuvos-pastas.lightning-express.line-clear.linear-logistics.lingdong.linhan.lion-parcel.liuchen.lm-parcel.logen.loggi.logisimple.logistiq.logoix.loomis-express.lotte-global.lso.m-and-p.m-one.m-xpress.madhur-courier.maersk-ecommerce.magyar-posta.mailamericas.mailplus-au.mainfreight.major-express.makati-express.maltapost.mandae.maple-logistics.maritime-ontario.mark-express.maruti-air.matkahuolto.mauritius-post.max-pakket.mayiyinfu.mds-collivery.meest.meihoo-pegasus.meso-global.messenger-cz.method.metropolitan-warehouse.mhi.micro-express.midland-transport.mng-kargo.mongol-infinity-post.montenegro-post.morning-global.movin.mrl-global.mtscn.mylerz.naqel.nationex.ncs-courier.nege.neighbour-express.nepal-post.netpost-vn.next-level-delivery.nhat-tin.nim-express.nipost.nippon-express.no-limit.noerpel.noest.nord-wheel.norsk-global.northline.nova-global.nova-poshta.now-couriers.nox.nz-couriers.oak-harbor.obibox.oca.ocasa.ocs-ana.okaken.olva-courier.omgo.omniva.one-world-express.onex.opt-nc.optima-overnight.orian.orlen-paczka.osm-worldwide.overnite.overseas-express.ozon-logistics.pack-man.packli-punkt.packlink.packs.pactic.pago.paisley-freight.paket-cl.pakistan-post.palletways.pallex.pandu-logistics.pannon-xp.paperfly.paquetexpress.parcel-one.parcelabc.parceljet.parcelpoint.pargo.parxl.pasarex.passport.pathao-courier.patuen.pavan-courier.paxel.paxi.pbt.pcp-express.pcs-logistics-vn.pdn-express.pdq-chile.pecom.peddler.pelican-express.pengyou.peninsula-truck-lines.peqasus-az.performance-freight.pfc-express.pflogistics.phlpost.pickupp.pickupp-sg.pigeon-express.piggy-express.pilot-freight.pin-ag.pitney-bowes.pitt-ohio.plycon.pmm.polaris-transport.polonez.pony-express.pos-indonesia.post-haste.post-luxembourg.post-one.posta-faroe.posta-kenya.posta-moldovei.posta-north-macedonia.posta-romana.posta-shqiptare.posta-slovenije.posta-srbije.postaplus.postex.postmedia-parcel-services.postplus.posturinn.ppl.precision-deliveries.pro-carrier.professional-couriers.profit-fields.promed-delivery.prompt-xpress.pronto-lanka.proships.pts-worldwide-express.ptt.pullman-cargo.pushpak-courier.qls-quince.quality-post.quantium-solutions.quick-rabbit.quicksilver-sa.quiqup.qwintry.raben.ram-hand-to-hand.redpack.redur.redx.relaytech.rhenus-de.rhenus-it.rincos.rivigo.rl-carriers.roadie.roadrunner.ross-express.royal-express-mm.rozetka-delivery.rpx-hk.rpx-indonesia.rr-express-sg.rrs-logistics.runner-express.russian-post.rxo.saee.safeway-express-cargo.safexpress.sagawa.sagawa-global.sahara-express.saia.sailpost.sameday.samoa-post.sapx-express.sat-ukraine.saudi-post.savar-express.sbs-sokuhai.scg-express.seino.seino-super-express.seko.sendex.sending.sendle.sengi-express.sentral-cargo.senyu.serpost.servientrega.seven-eleven-tw.sfc.sfyd-express.shadowfax.shipa.shipblu.shipentegra.shipgce.shipglobal-in.shiprocket.shipter.shipx-asia.shouwu.showl.shree-anjani.shree-mahabali-express.shree-mahavir.shree-maruti.shree-nandan.shunbang-express.sicepat.skroutz-last-mile.skybox.skyex-ae.skyking.skynet-sa.skynet-worldwide.skypostal.slgtrax.slovak-parcel-service.slovenska-posta.sm-express.smsa-express.south-african-post-office.southeastern-freight-lines.sp-express.speed-and-safe.speedaf.speedex.speedpak.speedy.spt-logistics.sptexp.spx-br.spx-id.spx-my.spx-ph.spx-sg.spx-th.spx-tw.spx-vn.sri-lanka-post.st-courier.stallion-express.starex-az.starken.starlinks.starlinks-global.steadfast.stg-ltl.stone3pl.straightship.sumxpress.sundarban-courier.suning-logistics.super-parcel-track.superb-express.surat-kargo.sway.swiftx.syd.t-cat.t-group.takesend.tamdis.tanzania-posts.tapuz-delivery.taqbin-hk.tas-courier.tawssil.taxydema.tcc-co.tccs.tci-express.tcs-pakistan.tdn.tealca.team-express-ae.team-global-express.team-worldwide.techlink.tej-couriers.teleship.tfm-express.tforce-freight.tforce-integrated-solutions.tforce-logistics.thabit-logistics.thelorry.thhy.tig-freight.tiki.timely-titan.tirupati-courier.tmm-express.tnt-it.today-kr.togo-post.tonami.tonda-global.top-logistics-au.topex-logistics.toptrans.topyou.torrestir.total-express.toyou.tp-logistics-th.trackon.tracx-logis.trans-o-flex.trans-ontario.transaher.transcorp.transmission.transnatur.transport-rdl.trendyol-express.trexity.trunkrs.tsb-es.tsjy.tst-cf-express.ttk-europe.tufesa.tuodatong.turkmenpost.tusass.tusk-logistics.tusou.tws-express.ubi-smart-parcel.ubx-uk.ues-uy.ukp-worldwide.united-delivery-service.united-worldwide-couriers.upaya.ural-express.urbano.urvaam.usasd.utec-logistics.uvan.uzbekistan-post.v-xpress.valmo.vasp-expresso.veho.veloces.venipak.vestovoy.via-cargo.viadireta.victorian-freight-specialists.viet-an-express.viettel-post.vimenpaq.vinted-go.vip-posta.vitran-express.vnlin.vnpost.vozovoz.vrl-logistics.vt-freight-express.w-express-ph.wahana.wanbexpress.ward-trucking.we-world-express.wedo.western-bid.whistl.whiz-delivery.wiio.winion-logis.winit.wise-express.wizmo.world-package.x-express-ba.x-trac.xcargo.xd-express.xde-logistics.xdp.xgs.xinghe-freight.xingyunyi.xlcourier.xlmiles.xpo-ltl.xpressbees.xyl.yalidine.yamato-america.yc-delivery.ycs-logistics.ydh.yfhex.yha.yilong-logistics.yimidida.yoseus.youbang-express.yuema-express.yurtici-kargo.ywe.yypost.z-leading.zajil.zeleris.zes-express.zheldor.zimpost.zippd.zoom-ve.zr-express.zto-international".split("."), it = {
33193
+ }, rt = /* @__PURE__ */ "swiss-post.swiss-post-cargo.quickpac.planzer.aliexpress.sunyou.hermes.spring-gds.postlogistics.dachser.dhl.dhl-ecommerce.ups.amazon-logistics.amazon-shipping.fedex.gls-ch.dpd.dpd-fr.mondial-relay.relais-colis.la-poste.chronopost.gls-fr.colis-prive.geodis.colisweb.c-chez-vous.heppner.ciblex.paack.asendia.shipup.india-post.hermes-de.gls-de.delivengo.intl-post.unknown.royal-mail.parcelforce.evri.inpost.an-post.bpost.austrian-post.postnord.posti.correos-express.seur.mrw.nacex.ctt.ctt-express.poste-italiane.brt.ecoscooting.tipsa.ukrposhta.usps.canada-post.purolator.canpar.ontrac.speedx.uniuni.landmark-global.old-dominion.spee-dee.gofo.estafeta.correios-br.correos-chile.yunexpress.four-px.blue-dart.delhivery.nz-post.singapore-post.japan-post.sf-express.sto.yunda.yto.zto.jd-logistics.yamato.korea-post.thailand-post.dtdc.australia-post.hongkong-post.pos-malaysia.ninja-van.china-post.packeta.poczta-polska.bring-posten.aramex.tnt.correos-spain.yanwen.the-courier-guy.j-and-t.ems.139express.17feia.247express.2go.360lion.360zebra.3pe-express.4-72.4sides.5post.99minutos.a-duie-pyle.a-tu-hora-express.a1-post.aaa-cooper.ab-courier.abf-freight.ace-ee.ace-lt.ace-lv.aci-express-kr.acs-courier.aeropost.aex-paraguay.afghan-post.air-star-xpress.airmee.airpak-express.airroad.airspeed.airwings-india.ait-home-delivery.ait-worldwide.ajex.akash-ganga.akis-express.aks-express.aland-post.alem-tat.algerie-poste.allegro-one.alljoy.am-home-delivery.amalgamated-distribution.ambro-express.ameex.american-west-express.amerijet.ameriship.ampm.ams-egroup.andreani.ane-logistics.anjun.annto.anousith.anserx.anteraja.ap-cargo.apc-overnight.apc-postal-logistics.apg-ecommerce.apple-express.apx-logistics.aquiline.aramex-au.aramex-nz.aras-kargo.ark-express.arrow-express.arrow-xl.aruba-post.ase-express.asiafly.asigna.asyad-express.atlantic-courier.ats-healthcare.auexpress.averitt.avis-logistics.aymakan.azerpost.azul-cargo.bangladesh-post.barid-al-maghrib.bel.belpost.best-express-my.best-express-th.best-express-vn.best-overnite-express.best-transport.better-trucks.bex-express.bfe-express.big-smart.bjs-home-delivery.blue-express.blueex.bombax.bombino.bonds-couriers.bookurier.border-express.bosta.botswana-post.box-now.boxtal.boyuan.bqc-logistics.bringer-parcel.btd.bts-uz.budbee.buffalo-ex.bulgarian-posts.burd-delivery.burundi-post.bussgods.byhd.c3x.cacesa.campost.canada-air-express.cargobus.cargoline.cargus.castle-parcels.castores.cbl-logistica.ccfs.cdek.cdl.celeritas.central-transport.centurion-transport.ceska-posta.ceva-logistics.changjiang-express.chazki.cheetah-delivery.chilexpress.china-railway-express.chinz-logistics.chit-chats.chronodiali.chukou1.chunghwa-post.chunil.citi-sprint.citilogistics.cititrans.city-air-express.city-express-rs.citylink-express.citymail.citymail-pk.citysprint.cj-logistics.cj-packet.closer-logistics.cne.codexpress.collicare.comone-express.connect-couriers.consegnia.coordinadora.copa-courier.cope-sensitive-freight.corre.correo-argentino.correo-paraguayo.correo-uruguayo.correos-bolivia.correos-costa-rica.correos-cuba.correos-de-mexico.correos-el-salvador.correos-nicaragua.costco-logistics.courier-center.courier-it.courier-plus-ng.couriersplease.credifin.cruz-del-sur.cse-russia.cst-italia.ctc-express.cttyex.custom-companies.cycloon.cyprus-post.d-express.daewoo-fastex.dai-post.daily-xpress.dakota-cargo.danske-fragtmaend.dao.day-ross.daylight-transport.dayone.dayton-freight.dd-express.dealersend.deliverdirect.delivro.dellin.delnext.depo.deppon.deprisa.designer-transport.dex-i.dex-pk.dg-transporte.dhl-ecommerce-es.dhl-ecommerce-nl.dhl-ecommerce-pl.dhl-ecommerce-uk.dhl-express.dhl-freight.dhlink.diakinisis.direct-couriers.direct-freight-express.direx.dnx-cargo.dobropost.dohrn-transfer.domain-logistics.domex.dpd-at.dpd-be.dpd-de.dpd-hu.dpd-ie.dpd-nl.dpd-pl.dpd-pt.dpd-ro.dpd-uk.dpd-za.dpe-express.dpex.dpx-logistics.dragon-star-curier.drop2shop.dropp.dsv.dx.dynalogic.e-cargo.e-commerce-international.e24metro-ca.eac-cn.early-bird.easy-mail.ecms-express.eco-express-ae.ecohai.ecom-logistics.econt.ecourier.ees-logistics.efs-asia.egxpress.egypt-post.ekart.elianpost.elog-luxembourg.elta.emex.emile.emirates-courier-express.emirates-post.emons.ems-vietnam.energia-tk.energo.envia-colombia.envialia.eparcel-kr.epost-global.equick.espeedpost.espoirer.estes.estes-forwarding.ethiopian-post.ets-express.eurodis.euroexpress-ba.europochta.eushipments.evdemo-lojistik.evri-uk.evropat.ewe.exelot.exline-kz.exmate.expedico.express-one.express-one-bg.famafutar.famiport.fan-courier.far-international.fargo-courier.fargo-uz.fastbox.fastdrop.faster-ae.fastfrate.fastgo.fastwl.fedex-freight.fedex-international-connect.fedex-pl.fercam.fermopoint.fez-delivery.fg-delivery.first-delivery-tn.first-flight-me.first-fly-express.first-line.flash-express.flash-express-ph.flashbird-ca.fleetex.fleetoptics.flippost.fliway.flyking.flyt-express.fm-transportes.fmx.fofr.followmont.forward-air.forza-delivery.foxpost.fragilepak.franch-express.freightways-global.frontier-ca.fukuyama.gaash.gati.gcx.gdex.gebrueder-weiss.geis.gel-express.geniki-taxydromiki.geodis-pl.geswl.ghana-post.ghn.ghtk.gibraltar-post.gig-logistics.gio-express.global-delivery-network.globalpost.gls-at.gls-es.gls-it.gls-pl.gms-worldwide.go-express.go4.gobolt.gofo-ca.gofo-es.gofo-fr.gofo-it.gofo-nl.gogo-xpress.goodluck-courier.goodmaji.grand-slam-express.groupe-guilbault.gs-postbox.gsi-express.gta-airskip.gtl-goto.guatex.gzyl.hanjin.hapdong.happy-post.hart2hart-express.haypost.hct-logistics.hecny-ecom.helthjem.hepsijet.hercules-freight.hermes-at.hfd.hi-trans.hispapost.hitch.hkd-express.holisol.homexpress.hongsuda.horoz.hound-express.houng-ah-loun.hovership.hp-mostar.hr-parcel.hrvatska-posta.hrx.huahan.huaya-express.hunter-express.hywl.icc-worldwide.icl-express.ics-courier.idexpress.ids-logistik.ilyang-logis.imile.indah-logistik.inntralog.inposdom.instabox.instapack.integral-pack.intel-valley.intelcom.inter-courier.inter-express-logistics.intereuropa.interlogistica.internet-express.interrapidisimo.intex-paketdienst.intime-bg.iran-post.islandwide-express.israel-post.j-and-t-au.j-and-t-br.j-and-t-cargo.j-and-t-cn.j-and-t-de.j-and-t-eg.j-and-t-middle-east.j-and-t-mx.j-and-t-uk.jadlog.jamaica-post.janco-express.janio.jaskipin.jcex.jcw-express.jdiex.jeebly.jersey-post.jet-logistic.jetline-couriers.jetpak.jhgj.jifan.jitsu.jne.joom-logistics.jordan-post.jp-home.jrs-express.jrt.js-express.jumppoint.juxi-express.jy-express.kargoist.kart2door.kazpost.kec-ecommerce.kerry-tj.kex.kex-express-hk.king-kong-express.kit-tk.kiwi-express.kolay-gelsin.komon-express.kronos-express.ktd.kuayue-express.kuehne-nagel.kun-express.kunyoung.kwick-box.kyoungdong.kyrgyz-post.l-post.la-poste-burkina-faso.la-poste-ci.la-poste-senegal.la-poste-tunisienne.laar-courier.labaih.lao-post.last-one-mile-coop.latvijas-pasts.lbc-express.lbtx.leopards-courier.letter-track.lex-my.lex-vn.lhtex.libang-logistics.libanpost.liccardi.lietuvos-pastas.lightning-express.line-clear.linear-logistics.lingdong.linhan.lion-parcel.liuchen.lm-parcel.logen.loggi.logisimple.logistiq.logoix.loomis-express.lotte-global.lso.m-and-p.m-one.m-xpress.madhur-courier.maersk-ecommerce.magyar-posta.mailamericas.mailplus-au.mainfreight.major-express.makati-express.maltapost.mandae.maple-logistics.maritime-ontario.mark-express.maruti-air.matkahuolto.mauritius-post.max-pakket.mayiyinfu.mds-collivery.meest.meihoo-pegasus.meso-global.messenger-cz.method.metropolitan-warehouse.mhi.micro-express.midland-transport.mng-kargo.mongol-infinity-post.montenegro-post.morning-global.movin.mrl-global.mtscn.mylerz.naqel.nationex.ncs-courier.nege.neighbour-express.nepal-post.netpost-vn.next-level-delivery.nhat-tin.nim-express.nipost.nippon-express.no-limit.noerpel.noest.nord-wheel.norsk-global.northline.nova-global.nova-poshta.now-couriers.nox.nz-couriers.oak-harbor.obibox.oca.ocasa.ocs-ana.okaken.olva-courier.omgo.omniva.one-world-express.onex.opt-nc.optima-overnight.orian.orlen-paczka.osm-worldwide.overnite.overseas-express.ozon-logistics.pack-man.packli-punkt.packlink.packs.pactic.pago.paisley-freight.paket-cl.pakistan-post.palletways.pallex.pandu-logistics.pannon-xp.paperfly.paquetexpress.parcel-one.parcelabc.parceljet.parcelpoint.pargo.parxl.pasarex.passport.pathao-courier.patuen.pavan-courier.paxel.paxi.pbt.pcp-express.pcs-logistics-vn.pdn-express.pdq-chile.pecom.peddler.pelican-express.pengyou.peninsula-truck-lines.peqasus-az.performance-freight.pfc-express.pflogistics.phlpost.pickupp.pickupp-sg.pigeon-express.piggy-express.pilot-freight.pin-ag.pitney-bowes.pitt-ohio.plycon.pmm.polaris-transport.polonez.pony-express.pos-indonesia.post-haste.post-luxembourg.post-one.posta-faroe.posta-kenya.posta-moldovei.posta-north-macedonia.posta-romana.posta-shqiptare.posta-slovenije.posta-srbije.postaplus.postex.postmedia-parcel-services.postplus.posturinn.ppl.precision-deliveries.pro-carrier.professional-couriers.profit-fields.promed-delivery.prompt-xpress.pronto-lanka.proships.pts-worldwide-express.ptt.pullman-cargo.pushpak-courier.qls-quince.quality-post.quantium-solutions.quick-rabbit.quicksilver-sa.quiqup.qwintry.raben.ram-hand-to-hand.redpack.redur.redx.relaytech.rhenus-de.rhenus-it.rincos.rivigo.rl-carriers.roadie.roadrunner.ross-express.royal-express-mm.rozetka-delivery.rpx-hk.rpx-indonesia.rr-express-sg.rrs-logistics.runner-express.russian-post.rxo.saee.safeway-express-cargo.safexpress.sagawa.sagawa-global.sahara-express.saia.sailpost.sameday.samoa-post.sapx-express.sat-ukraine.saudi-post.savar-express.sbs-sokuhai.scg-express.seino.seino-super-express.seko.sendex.sending.sendle.sengi-express.sentral-cargo.senyu.serpost.servientrega.seven-eleven-tw.sfc.sfyd-express.shadowfax.shipa.shipblu.shipentegra.shipgce.shipglobal-in.shiprocket.shipter.shipx-asia.shouwu.showl.shree-anjani.shree-mahabali-express.shree-mahavir.shree-maruti.shree-nandan.shunbang-express.sicepat.skroutz-last-mile.skybox.skyex-ae.skyking.skynet-sa.skynet-worldwide.skypostal.slgtrax.slovak-parcel-service.slovenska-posta.sm-express.smsa-express.south-african-post-office.southeastern-freight-lines.sp-express.speed-and-safe.speedaf.speedex.speedpak.speedy.spt-logistics.sptexp.spx-br.spx-id.spx-my.spx-ph.spx-sg.spx-th.spx-tw.spx-vn.sri-lanka-post.st-courier.stallion-express.starex-az.starken.starlinks.starlinks-global.steadfast.stg-ltl.stone3pl.straightship.sumxpress.sundarban-courier.suning-logistics.super-parcel-track.superb-express.surat-kargo.sway.swiftx.syd.t-cat.t-group.takesend.tamdis.tanzania-posts.tapuz-delivery.taqbin-hk.tas-courier.tawssil.taxydema.tcc-co.tccs.tci-express.tcs-pakistan.tdn.tealca.team-express-ae.team-global-express.team-worldwide.techlink.tej-couriers.teleship.tfm-express.tforce-freight.tforce-integrated-solutions.tforce-logistics.thabit-logistics.thelorry.thhy.tig-freight.tiki.timely-titan.tirupati-courier.tmm-express.tnt-it.today-kr.togo-post.tonami.tonda-global.top-logistics-au.topex-logistics.toptrans.topyou.torrestir.total-express.toyou.tp-logistics-th.trackon.tracx-logis.trans-o-flex.trans-ontario.transaher.transcorp.transmission.transnatur.transport-rdl.trendyol-express.trexity.trunkrs.tsb-es.tsjy.tst-cf-express.ttk-europe.tufesa.tuodatong.turkmenpost.tusass.tusk-logistics.tusou.tws-express.ubi-smart-parcel.ubx-uk.ues-uy.ukp-worldwide.united-delivery-service.united-worldwide-couriers.upaya.ural-express.urbano.urvaam.usasd.utec-logistics.uvan.uzbekistan-post.v-xpress.valmo.vasp-expresso.veho.veloces.venipak.vestovoy.via-cargo.viadireta.victorian-freight-specialists.viet-an-express.viettel-post.vimenpaq.vinted-go.vip-posta.vitran-express.vnlin.vnpost.vozovoz.vrl-logistics.vt-freight-express.w-express-ph.wahana.wanbexpress.ward-trucking.we-world-express.wedo.western-bid.whistl.whiz-delivery.wiio.winion-logis.winit.wise-express.wizmo.world-package.x-express-ba.x-trac.xcargo.xd-express.xde-logistics.xdp.xgs.xinghe-freight.xingyunyi.xlcourier.xlmiles.xpo-ltl.xpressbees.xyl.yalidine.yamato-america.yc-delivery.ycs-logistics.ydh.yfhex.yha.yilong-logistics.yimidida.yoseus.youbang-express.yuema-express.yurtici-kargo.ywe.yypost.z-leading.zajil.zeleris.zes-express.zheldor.zimpost.zippd.zoom-ve.zr-express.zto-international".split("."), it = {
33122
33194
  "swiss-post": ["swiss-post-1", "swiss-post-2"],
33123
33195
  "swiss-post-cargo": ["swiss-post-cargo-sscc", "swiss-post-cargo-pl-reference"],
33124
33196
  quickpac: ["quickpac-1"],
@@ -33577,6 +33649,7 @@ var nt = {
33577
33649
  andreani: ["andreani-1"],
33578
33650
  "ane-logistics": [],
33579
33651
  anjun: ["anjun-aj"],
33652
+ annto: [],
33580
33653
  anousith: [],
33581
33654
  anserx: ["anserx-1"],
33582
33655
  anteraja: ["anteraja-1"],
@@ -33833,6 +33906,7 @@ var nt = {
33833
33906
  "ecom-logistics": ["ecom-logistics-1"],
33834
33907
  econt: [],
33835
33908
  ecourier: ["ecourier-1"],
33909
+ "ees-logistics": [],
33836
33910
  "efs-asia": [],
33837
33911
  egxpress: ["egxpress-1"],
33838
33912
  "egypt-post": ["egypt-post-1", "egypt-post-s10"],
@@ -34046,6 +34120,7 @@ var nt = {
34046
34120
  jaskipin: [],
34047
34121
  jcex: ["jcex-1"],
34048
34122
  "jcw-express": [],
34123
+ jdiex: [],
34049
34124
  jeebly: ["jeebly-1"],
34050
34125
  "jersey-post": ["jersey-post-s10"],
34051
34126
  "jet-logistic": [],
@@ -39755,7 +39830,7 @@ function Gl(e) {
39755
39830
  if (/delivered (?:to|at|in(?:to)?) [^.;,]*?(?:pick ?up (?:point|location)|pudo\b|parcel ?shop|access point|packstation|parcel locker|relay point|service ?point|collection point|retrieval point)|livre (?:au|en|dans (?:le|un|votre)) (?:point (?:de )?retrait|point relais|relais|consigne|locker)|(?:est|colis|envoi) disponible (?:dans|au|en) (?:votre |le |un )?(?:point (?:de )?retrait|point relais|relais|consigne|bureau de poste)/.test(t) || /\b(?:handed over to|takeover by|taken over by) (?:the |a )?pick ?up parcel ?shop(?![a-z\d])/.test(t) || /(?<!\b(?:sera|seran|serao|ser|sea|seja|for|siendo|sendo) )\bentregad[oa]s? (?:en|a|al) (?:el |la |un |una |su |tu )?(?:punto (?:de )?(?:recogida|conveniencia)|punto (?:pack|celeritas|collectt|nacex|inpost|dpd|gls|seur|mrw|ups|correos)|locker|taquilla|consigna|citypaq|parcel ?shop|buzon inteligente)\b|(?<!\b(?:sera|serao|ser|seja|for|sendo) )\bentregues? (?:no|num|na|numa|em|ao|a) (?:ponto (?:de )?(?:recolha|levantamento|pickup|entrega)|ponto (?:ctt|dpd|gls|inpost|ups|payshop)|cacifo|locker|loja ctt|payshop)\b/.test(t)) return "ready_for_pickup";
39756
39831
  if (/delivered to (?:the |a |an |our )?(?:local |destination |final |next |onward |last mile )?(?:carrier|courier|airline|air carrier|airport|hub|depot|terminal|forwarder|(?:handling )?agent|(?:logistics|transport(?:ation)?|shipping|delivery|courier) (?:company|provider|partner|agent|service)|sorting (?:center|centre|facility)|(?:processing |distribution |transit |delivery |logistics )?(?:center|centre|facility)|post office(?! box)|postal (?:operator|service|office)|destination country)\b|delivered to (?:the )?(?:\w+ )?(?:post|poste|posta)\b(?! box| office box)|delivered to (?:dhl|dpd|gls|ups|fedex|usps|tnt|hermes|evri|colissimo|chronopost|quickpac|planzer)\b|handed (?:over )?to (?:the |a |an |our )?(?:local |last mile )?delivery partner|handed (?:over )?to (?:the |an )?(?:airline|air carrier)s?\b|en cours de livraison (?:au|en|vers (?:le|un|votre)) (?:point (?:de )?retrait|point relais|relais|consigne)|livre au transporteur|remis au transporteur local|an den lokalen zusteller ubergeben|consegnat[oa] al (?:corriere|vettore|trasportatore)/.test(t) || /(?<!\b(?:sera|seran|ser|sea|for) )\bentregad[oa]s? (?:(?:el|su|tu) (?:paquete|envio|pedido|bulto) )?(?:a|al|en) (?:el |la |un |una |nuestr[oa] )?(?:transportista|agencia (?:de )?(?:transporte|colaboradora|destino|origen)|operador(?: postal| logistico)?|mensajer(?:o|ia)|courier|empresa de (?:transporte|mensajeria|paqueteria)|compania (?:aerea|de transporte)|aerolinea|distribuidora?|centro (?:de )?(?:clasificacion|distribucion|tratamiento|logistico|operaciones)|almacen|delegacion|plataforma|hub|correos|seur|mrw|nacex|tipsa|ctt|gls|dhl|dpd|ups|fedex|tnt|envialia|zeleris|paack|celeritas|inpost)\b|\bentregad[oa] por (?:el remitente|la aerolinea|aerolinea)\b|(?<!\b(?:sera|serao|ser|seja|for) )\bentregues? (?:(?:a|o) (?:encomenda|envio|objeto) )?(?:a|ao|aos|as|na|no|nos|em) (?:transportadora|transportador|operador(?: postal| logistico)?|parceiro|companhia aerea|centro (?:de )?(?:distribuicao|tratamento|triagem|operacional|logistico)|armazem|plataforma|hub|ctt|correios|dpd|gls|dhl|ups|fedex|tnt|seur|mrw|nacex|tipsa|inpost)\b|\bentregue pelo remetente\b/.test(t) || /\bready to leave (?:the )?foreign territory\b/.test(t) || /^(?:your |the )?(?:package|parcel|shipment) (?:is|has been|was) taken care of by\b/.test(t)) return "in_transit";
39757
39832
  if (/will (?:shortly |soon )?be handed(?! over to (?:your |the |a )?(?:delivery )?(?:driver|courier)\b)|bientot.*(?:confie|remis)|prochainement.*remis|wird.*(?:kurze|bald).*ubergeben|sara.*(?:breve|presto).*affidat/.test(t) || /\bpendiente de (?:entregar|entrega|recepcion|admision|recibir) (?:a|al|en|por) (?:la |el )?(?:agencia|transportista|operador|correos|seur|mrw|nacex|tipsa|ctt|gls|dhl|dpd|ups|fedex|envialia|zeleris|paack|inpost|celeritas)\b|\bpendiente de (?:recepcion|admision)\b|\baguarda entrada\b|\bpendente de (?:rececao|recepcao|entrada)\b|\b(?:waiting|awaiting) (?:for )?entry at (?:the )?ctt\b/.test(t) || /or awaiting processing|ou en attente de traitement|oder wartet auf.*bearbeitung|o in attesa di elaborazione/.test(t) || /^shipment received,? package acceptance pending\b/.test(t)) return "registered";
39758
- if (/will be transported|\barrange (?:a )?(?:truck|train|rail|road) transfer\b|sera (?:transporte|achemine)|wird.*transportiert|sara trasportat/.test(t) || /will be available|sera disponible|(?:sera|va etre|doit etre) (?:distribue|remis|mis en (?:livraison|distribution))|wird.*verfugbar|sara disponibile|to be delivered|a livrer|noch zuzustellen|da consegnare|(?:once|when|as soon as) (?:the |your )?(?:shipment|parcel|package|item) is out for delivery/.test(t) || /\bestara disponi(?:ble|vel)\b|\bpor entregar\b|\bpendiente de (?:entrega|entregar|reparto)\b|\bpendente de entrega\b|\b(?:aguarda|aguardando|a aguardar) (?:a )?entrega\b|\bsera (?:enviad|transportad|expedid|encaminhad)[oa]s?\b/.test(t)) return "in_transit";
39833
+ if (/will be transported|\barrange (?:a )?(?:truck|train|rail|road) transfer\b|sera (?:transporte|achemine)|wird.*transportiert|sara trasportat/.test(t) || /will be available|sera disponible|(?:sera|va etre|doit etre) (?:distribue|remis|mis en (?:livraison|distribution))|wird.*verfugbar|sara disponibile|to be delivered|a livrer|noch zuzustellen|da consegnare|(?:once|when|as soon as) (?:the |your )?(?:shipment|parcel|package|item) is out for delivery|\bout for delivery soon\b/.test(t) || /\bestara disponi(?:ble|vel)\b|\bpor entregar\b|\bpendiente de (?:entrega|entregar|reparto)\b|\bpendente de entrega\b|\b(?:aguarda|aguardando|a aguardar) (?:a )?entrega\b|\bsera (?:enviad|transportad|expedid|encaminhad)[oa]s?\b/.test(t)) return "in_transit";
39759
39834
  if (/\border (?:details|information|info|data) (?:(?:has|have) been |was |were )?received\b(?:[^.;]*)\bready (?:for|to be) (?:pick ?up|picked up|collect)/.test(t)) return "registered";
39760
39835
  if (/ready for (?:pick ?up|collection)|ready to collect|(?:ready to|can(?: now)?) be (?:picked up|collected)\b(?! (?:by|from) (?:the |a |an |our |your )?(?:courier|carrier|driver|sender|shipper|seller|merchant|warehouse)\b)|available for (?:pick ?up|collection)|(?<!\bnot (?:yet )?)\bavailable (?:at|in|from) (?:the |a |an |your |our )?(?:[\w-]+ )?(?:retrieval point|pick ?up (?:point|location|station)|parcel ?shop|service ?point|access point|collection point|relay point|parcel locker)\b|\bwaiting for you (?:at|in) (?:the |a |an |your )?(?:[\w-]+ )?(?:collection point|pick ?up (?:point|location|station)|parcel ?shop|service ?point|access point|relay point|parcel locker|locker|post office)\b|awaiting (?:customer |recipient |your )?(?:pick ?up|collection)\b(?! (?:by|from) (?:the |a |an |our |your )?(?:local |destination |last[- ]mile )?(?:courier|carrier|driver|sender|shipper|seller|merchant|warehouse)\b)|pret.*(?:retrait|retire)|disponible.*(?:retrait|collecte)|vous attend (?:au|en|dans|chez|a)\b|mise? a disposition (?:au|en|dans|a)\b.*(?:point (?:de )?retrait|relais|consigne|locker|bureau de poste|agence)|jours? restants? pour (?:le )?retirer|abholbereit|zur abholung bereit|pront[oa] per il ritiro|disponibile per il ritiro|(?:deposited|depose|hinterlegt|depositat[oa]).*mypost24/.test(t) || /(?<!\b(?:no|nao|ya no|ja nao) (?:(?:esta|estara|se encuentra|se encontra|e|era|foi) )?)\bdisponi(?:ble|vel) (?:para (?:su |ser )?(?:recoger|recogida|recogid[oa]|retirar|retiro|retirada|retirad[oa]|levantamento|levantar|levantad[oa]|recolha|recolher)|(?:en|no|na|num|numa|em) (?:el |la |un |una |su |tu |nuestr[oa] )?(?:punto|oficina|tienda|locker|taquilla|consigna|citypaq|parcel ?shop|buzon inteligente|agencia|delegacion|sucursal|ponto|loja|cacifo|estacao|balcao|payshop|posto|unidade))\b|\blist[oa] para (?:su |ser )?(?:recoger|recogida|recogid[oa]|retirar|retiro)\b|\bpront[oa] (?:para|a) (?:ser )?(?:levantamento|levantar|levantad[oa]|recolha|recolher|retirada|retirar)\b|\b(?:ya )?(?:puede|puedes|podra|podras) (?:pasar a )?recoger(?:lo|la)?\b|\b(?:aguarda|aguardando|a aguardar) (?:o |a )?(?:levantamento|retirada)\b|\besperando (?:su|tu) recogida\b|\b(?:pendiente de|esperando|a la espera de) (?:ser )?recogid[oa] por (?:el |la )?destinatari[oa]\b/.test(t)) return "ready_for_pickup";
39761
39836
  if (/label (?:created|printed)|(?:created|generated) a (?:new )?(?:shipment |shipping )?label|etiquette.*(?:cree|imprime)|cree une etiquette|versandetikett.*(?:erstellt|gedruckt)|etikett erstellt|etichetta.*(?:creata|stampata)|creato un'etichetta|elektronisch|electroni(?:c|que|sch)|elettronic|pre.?advi[cs]|preannunciat|vorangemeldet|preannonce|data.*entered|donnees.*saisies|daten.*erfasst|dati.*inseriti|\bpre ?(?:registered|registration|registr?ad[oa]s?|registrat[oa]|enregistree?s?)\b|\bprerregistr(?:ad[oa]s?|o)\b|\bvorregistriert\b|\bwstepnie zarejestrowan[aey]\b/.test(t) || /\border (?:details|information|info|data) (?:(?:has|have) been |was |were )?(?:received|submitted|transmitted)\b|\breceived (?:your |the )?order (?:details|information|data)\b|\b(?:details|informations|donnees) de (?:la |votre )?commande (?:ont ete )?(?:recu|transmis)e?s?\b|\b(?:auftrags|bestell)daten (?:wurden |sind )?(?:erhalten|ubermittelt|eingegangen)\b|\b(?:dati|dettagli) (?:dell'ordine|ordine) (?:sono stati )?ricevuti\b|\b(?:datos|detalles|informacion) del pedido (?:han sido |fueron )?recibid[oa]s?\b|\b(?:dados|detalhes|informacoes?) d[oa] (?:pedido|encomenda) (?:foram )?recebid[oa]s?\b|\bdane zamowienia (?:zostaly )?(?:otrzymane|przyjete)\b|\botrzymano dane zamowienia\b/.test(t) || /^快件电子信息已经?收到/.test(t) || /shipment information (?:received|sent to)|\binformation about the (?:shipment|parcel|package) (?:has been |was )?received\b|\bdata received\b|^transferred data$|(?:package|parcel|shipment) data (?:was |has been )?sent to|\bpre ?notification\b|informations d'expedition recues|sendungsinformationen erhalten|informazioni.*spedizione ricevute|(?:consignment|shipment|parcel|package) recorded by|envoi enregistre par|sendung.*absender.*erfasst|spedizione registrata dal/.test(t) || /\b(?:we're|we are) expecting (?:your|the) (?:parcel|package|item|shipment) to arrive with us\b/.test(t) || /\bcreated by the sender\b.*\bwaiting for it to be (?:entrusted|handed(?: over)?) to us\b/.test(t) || /^pre[ -]?alerted (?:shipment|parcel|package|item|consignment)\b|^(?:the |your )?(?:shipment|parcel|package|item|consignment) (?:(?:has been|was|is) )?pre[ -]?alerted$/.test(t) || /^expected from (?!\d{1,2}(?:[:.h]\d{2})?\s*(?:am|pm)?\b|(?:today|tomorrow|(?:mon|tues|wednes|thurs|fri|satur|sun)day)\b)\S/.test(t) || /\bletrejott a rendszerunkben\b.*\bfelado meg nem adta at\b/.test(t) || /preparation chez.*expediteur|preparation.*expediteur|preparazione.*mittente|being prepared.*sender|(?:shipper|sender)(?: that)? (?:they are|is|are) preparing|beim absender.*vorbereitet|warehouse of the sender|shippers warehouse|entrepot de l'expediteur|lager des absenders|magazzino del mittente|demande d'envoi.*prise en compte|collection request.*(?:received|recorded)|^(?:the |your )?collection (?:has been |was )?registered$|abholauftrag.*erfasst|richiesta.*ritiro.*registrata/.test(t) || /\border submitted(?:,| and)? pending (?:to )?rece(?:iv|ipt)|\bshipment data uploaded\b|^sender preparing item\b|^sender (?:has despatched|despatching) item$|^shipping info(?:rmation)? sent to (?!(?:the |your? )?(?:recipient|customer|consignee|addressee|buyer)\b)|\bwe have received your shipment information\b|\bhemos recibido la informacion de su envio\b|\bwe will pick up (?:the|your) (?:package|parcel) from the sender\b|^booked for collection$|\bpending shipping by (?:the )?(?:seller|sender|shipper|merchant)\b|\bship(?:ment|ping) order created\b/.test(t) || /^forecast has been received$/.test(t)) return "registered";
@@ -0,0 +1,48 @@
1
+ {
2
+ "id": "annto",
3
+ "displayName": "ANNTO",
4
+ "aliases": [
5
+ "安得智联",
6
+ "安得物流",
7
+ "Annto Logistics",
8
+ "安得智联供应链科技股份有限公司"
9
+ ],
10
+ "region": {
11
+ "countries": [
12
+ "CN"
13
+ ]
14
+ },
15
+ "brand": {
16
+ "color": "#007ac3"
17
+ },
18
+ "selectable": true,
19
+ "timezone": "Asia/Shanghai",
20
+ "tracking": {
21
+ "mode": "automatic",
22
+ "adapter": "universal",
23
+ "steps": []
24
+ },
25
+ "capabilities": [],
26
+ "portal": {
27
+ "url": "https://www.annto.com/order?orderNoFormMain={trackingNumber}",
28
+ "searchUrl": "https://www.annto.com/order",
29
+ "canaryUrl": "https://www.annto.com/order",
30
+ "shows": [],
31
+ "scraped": [],
32
+ "discarded": [],
33
+ "unavailable": []
34
+ },
35
+ "links": [
36
+ {
37
+ "domains": [
38
+ "annto.com",
39
+ "www.annto.com"
40
+ ],
41
+ "pathPattern": "^/order$",
42
+ "params": [
43
+ "orderNoFormMain"
44
+ ]
45
+ }
46
+ ],
47
+ "detection": []
48
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "carrier": "annto",
3
+ "gap": "No public page shows an ANNTO number.",
4
+ "records": []
5
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "carrier": "annto",
3
+ "entries": []
4
+ }
@@ -2,9 +2,10 @@ import { DateTime, FixedOffsetZone } from 'luxon';
2
2
  import { normalizeTrackingNumber } from '../../core/detection/index.js';
3
3
  import { IndeterminateError, InvalidInputError, NotFoundError, SchemaError } from '../../core/errors/index.js';
4
4
  import { languageStageStatus } from '../../core/status/index.js';
5
- import { countryTimeZone, firstOccurrence, isoTime, usStateTimeZone } from '../../core/time/index.js';
5
+ import { firstOccurrence, isoTime, usStateTimeZone } from '../../core/time/index.js';
6
6
  import { cleanScalar } from '../../core/transport/index.js';
7
7
  import { isRecord } from '../../core/types.js';
8
+ import { countryZones } from '../../places/zones.js';
8
9
  import { DHLINK_RECORD_ZONE as RECORD_ZONE, usClockCopy } from './clock.js';
9
10
  import { dhlinkEnglish, dhlinkStage, FLIGHT_BOOKED } from './status.js';
10
11
  export const PROVIDER = 'DHLink';
@@ -15,9 +16,6 @@ const NUMBER = /^(?=[A-Z]*\d)[A-Z0-9]{8,40}$/;
15
16
  const WALL_CLOCK = /^(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})$/;
16
17
  // The earliest instant a wall clock can stand for: a row still after the read at UTC+14 is written ahead of its time.
17
18
  const EARLIEST = FixedOffsetZone.instance(14 * 60);
18
- // A destination spanning several zones, by its easternmost: a row recorded before
19
- // even that reading of its clock cannot keep the destination's time.
20
- const EASTERNMOST = { US: 'America/New_York' };
21
19
  // Some scanners run early.
22
20
  const CLOCK_SKEW_MS = 3_600_000;
23
21
  // Stages of a parcel on its way, after which a receipt is no new acceptance.
@@ -124,8 +122,8 @@ function recordedAt(row) {
124
122
  * Beijing time, but a pickup that names a hub on the partner's clock. A US
125
123
  * post office's row, or that pickup, keeps its state's when the row was
126
124
  * recorded after that reading. A row recorded before its clock could have
127
- * struck at the destination keeps DHLink's own Beijing time. Null when either
128
- * clock could be the row's.
125
+ * struck at the destination, in any of its zones, keeps DHLink's own Beijing
126
+ * time. Null when either clock could be the row's.
129
127
  */
130
128
  function scanZone(scan, destination, beijingClock) {
131
129
  const fits = (zone) => {
@@ -136,8 +134,8 @@ function scanZone(scan, destination, beijingClock) {
136
134
  return fits(RECORD_ZONE) ? RECORD_ZONE : null;
137
135
  if (scan.state && fits(scan.state))
138
136
  return scan.state;
139
- const away = scan.state ?? EASTERNMOST[destination] ?? countryTimeZone(destination);
140
- return away && away !== RECORD_ZONE && !fits(away) && fits(RECORD_ZONE) ? RECORD_ZONE : null;
137
+ const away = scan.state ? [scan.state] : countryZones(destination);
138
+ return away.length && !away.includes(RECORD_ZONE) && !away.some(fits) && fits(RECORD_ZONE) ? RECORD_ZONE : null;
141
139
  }
142
140
  function projectRow(row, readAt) {
143
141
  if (!isRecord(row))
@@ -244,7 +242,9 @@ export function parseDhlink(payload, raw, readAt = Date.now()) {
244
242
  scans.set(scan.stamp, held ? { ...kept, china: held.china || scan.china, state: held.state ?? scan.state,
245
243
  hub: held.hub || scan.hub, recorded: Math.min(held.recorded, scan.recorded) } : kept);
246
244
  }
247
- const destination = text(entry, 'destCountryCode', 8).toUpperCase();
245
+ const code = text(entry, 'destCountryCode', 8).toUpperCase();
246
+ // DHLink writes Britain's code as UK.
247
+ const destination = code === 'UK' ? 'GB' : code;
248
248
  const last = lastLeg(entry);
249
249
  // Newest first, as the tracking page lists them; the clocks sort as written.
250
250
  const dated = [...scans.values()].sort((left, right) => (left.stamp < right.stamp ? 1 : left.stamp > right.stamp ? -1 : 0))
@@ -0,0 +1,36 @@
1
+ {
2
+ "id": "ees-logistics",
3
+ "displayName": "EES Logistics",
4
+ "aliases": [
5
+ "EES",
6
+ "百福东方",
7
+ "百福东方国际物流",
8
+ "北京百福东方国际物流有限责任公司"
9
+ ],
10
+ "region": {
11
+ "countries": [
12
+ "CN"
13
+ ]
14
+ },
15
+ "brand": {
16
+ "color": "#b62126"
17
+ },
18
+ "selectable": true,
19
+ "timezone": "Asia/Shanghai",
20
+ "tracking": {
21
+ "mode": "automatic",
22
+ "adapter": "universal",
23
+ "steps": []
24
+ },
25
+ "capabilities": [],
26
+ "portal": {
27
+ "searchUrl": "https://api.eesimp.com/imc/pub_logi_info",
28
+ "canaryUrl": "https://api.eesimp.com/imc/pub_logi_info",
29
+ "shows": [],
30
+ "scraped": [],
31
+ "discarded": [],
32
+ "unavailable": []
33
+ },
34
+ "links": [],
35
+ "detection": []
36
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "carrier": "ees-logistics",
3
+ "gap": "No public page shows an EES Logistics number.",
4
+ "records": []
5
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "carrier": "ees-logistics",
3
+ "entries": []
4
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "id": "jdiex",
3
+ "displayName": "JDIEX",
4
+ "aliases": [
5
+ "JDI国际物流",
6
+ "JDI International Logistics"
7
+ ],
8
+ "region": {
9
+ "countries": [
10
+ "US",
11
+ "CN"
12
+ ]
13
+ },
14
+ "brand": {
15
+ "color": "#0166e2"
16
+ },
17
+ "selectable": true,
18
+ "timezone": "America/Los_Angeles",
19
+ "tracking": {
20
+ "mode": "automatic",
21
+ "adapter": "universal",
22
+ "steps": []
23
+ },
24
+ "capabilities": [],
25
+ "portal": {
26
+ "url": "https://www.jdiex.com/select.html?type=cnum&num={trackingNumber}",
27
+ "searchUrl": "https://www.jdiex.com/select.html",
28
+ "canaryUrl": "https://www.jdiex.com/",
29
+ "shows": [],
30
+ "scraped": [],
31
+ "discarded": [],
32
+ "unavailable": []
33
+ },
34
+ "links": [
35
+ {
36
+ "domains": [
37
+ "jdiex.com",
38
+ "www.jdiex.com"
39
+ ],
40
+ "pathPattern": "^/select\\.html$",
41
+ "query": "^(?=(?:.*&)?type=cnum(?:&|$))(?:.*&)?num=([^&]+)(?=&|$)"
42
+ }
43
+ ],
44
+ "detection": []
45
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "carrier": "jdiex",
3
+ "gap": "No public page shows a JDIEX number.",
4
+ "records": []
5
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "carrier": "jdiex",
3
+ "entries": []
4
+ }
@@ -6,9 +6,10 @@ const DELIVERED = { status: 'delivered', stage: 'delivered' };
6
6
  const EXCEPTION = { status: 'exception', stage: 'exception' };
7
7
  const RETURNED = { status: 'exception', stage: 'returned' };
8
8
  // Event codes seen on the tracking page. A label is only data from the
9
- // shipper, not a parcel SpeedX holds.
9
+ // shipper, not a parcel SpeedX holds, and nor is the pickup it books.
10
10
  const CODES = new Map([
11
11
  ['50001', REGISTERED],
12
+ ['51001', REGISTERED],
12
13
  ['52002', IN_TRANSIT],
13
14
  ['57112', IN_TRANSIT],
14
15
  ['57101', IN_TRANSIT],
@@ -2,6 +2,7 @@
2
2
  "carrier": "speedx",
3
3
  "entries": [
4
4
  { "code": "50001", "wording": "Shipping Label Created", "language": "en", "stage": "registered", "confirmedBy": "live", "note": "Category PICKUP. The shipper's label, before SpeedX holds the parcel." },
5
+ { "code": "51001", "wording": "Pickup Requested", "language": "en", "stage": "registered", "confirmedBy": "live", "note": "The shipper booked SpeedX's pickup after its label; SpeedX does not hold the parcel yet." },
5
6
  { "code": "52002", "wording": "Processing at Origin Facility", "language": "en", "stage": "in_transit", "confirmedBy": "live" },
6
7
  { "code": "57112", "wording": "In transit to destination facility", "language": "en", "stage": "in_transit", "confirmedBy": "live" },
7
8
  { "code": "57113", "wording": "Processing at Transit Facility", "language": "en", "stage": "in_transit", "confirmedBy": "live" },
@@ -32,6 +32,14 @@
32
32
  "discarded": [],
33
33
  "unavailable": []
34
34
  },
35
- "links": [],
35
+ "links": [
36
+ {
37
+ "domains": [
38
+ "oms.sumxpress.com"
39
+ ],
40
+ "pathPattern": "^/?$",
41
+ "fragment": "^/query\\?(?:[^#]*&)?trackingNo=([^&]+)"
42
+ }
43
+ ],
36
44
  "detection": []
37
45
  }
@@ -389,7 +389,7 @@ export function trackingLanguageStage(description) {
389
389
  return 'registered';
390
390
  if (/will be transported|\barrange (?:a )?(?:truck|train|rail|road) transfer\b|sera (?:transporte|achemine)|wird.*transportiert|sara trasportat/.test(text))
391
391
  return 'in_transit';
392
- if (/will be available|sera disponible|(?:sera|va etre|doit etre) (?:distribue|remis|mis en (?:livraison|distribution))|wird.*verfugbar|sara disponibile|to be delivered|a livrer|noch zuzustellen|da consegnare|(?:once|when|as soon as) (?:the |your )?(?:shipment|parcel|package|item) is out for delivery/.test(text))
392
+ if (/will be available|sera disponible|(?:sera|va etre|doit etre) (?:distribue|remis|mis en (?:livraison|distribution))|wird.*verfugbar|sara disponibile|to be delivered|a livrer|noch zuzustellen|da consegnare|(?:once|when|as soon as) (?:the |your )?(?:shipment|parcel|package|item) is out for delivery|\bout for delivery soon\b/.test(text))
393
393
  return 'in_transit';
394
394
  if (/\bestara disponi(?:ble|vel)\b|\bpor entregar\b|\bpendiente de (?:entrega|entregar|reparto)\b|\bpendente de entrega\b|\b(?:aguarda|aguardando|a aguardar) (?:a )?entrega\b|\bsera (?:enviad|transportad|expedid|encaminhad)[oa]s?\b/.test(text))
395
395
  return 'in_transit';