universal-parcel-scraper 0.0.0-stage → 0.2.0

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.
Files changed (897) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +15 -0
  3. package/README.md +123 -2
  4. package/data/carrier-order.json +107 -0
  5. package/data/carrier.schema.json +415 -0
  6. package/data/catalog.json +3969 -0
  7. package/data/coverage-summary.json +17 -0
  8. package/data/detection-golden.json +5375 -0
  9. package/data/stages.json +13 -0
  10. package/dist/browser/scraper.js +9292 -0
  11. package/dist/carriers/aliexpress/adapter.d.ts +30 -0
  12. package/dist/carriers/aliexpress/adapter.js +164 -0
  13. package/dist/carriers/aliexpress/carrier.json +59 -0
  14. package/dist/carriers/aliexpress/numbers.json +36 -0
  15. package/dist/carriers/aliexpress/status.d.ts +31 -0
  16. package/dist/carriers/aliexpress/status.js +79 -0
  17. package/dist/carriers/aliexpress/statuses.json +355 -0
  18. package/dist/carriers/amazon-logistics/carrier.json +94 -0
  19. package/dist/carriers/amazon-logistics/numbers.json +307 -0
  20. package/dist/carriers/amazon-shipping/adapter.d.ts +34 -0
  21. package/dist/carriers/amazon-shipping/adapter.js +292 -0
  22. package/dist/carriers/amazon-shipping/carrier.json +96 -0
  23. package/dist/carriers/amazon-shipping/eligibility.d.ts +3 -0
  24. package/dist/carriers/amazon-shipping/eligibility.js +16 -0
  25. package/dist/carriers/amazon-shipping/numbers.json +67 -0
  26. package/dist/carriers/amazon-shipping/status.d.ts +26 -0
  27. package/dist/carriers/amazon-shipping/status.js +118 -0
  28. package/dist/carriers/amazon-shipping/statuses.json +19 -0
  29. package/dist/carriers/an-post/carrier.json +38 -0
  30. package/dist/carriers/an-post/numbers.json +33 -0
  31. package/dist/carriers/aramex/adapter.d.ts +11 -0
  32. package/dist/carriers/aramex/adapter.js +49 -0
  33. package/dist/carriers/aramex/carrier.json +62 -0
  34. package/dist/carriers/aramex/numbers.json +71 -0
  35. package/dist/carriers/aramex/parser.d.ts +5 -0
  36. package/dist/carriers/aramex/parser.js +83 -0
  37. package/dist/carriers/aramex/status.d.ts +2 -0
  38. package/dist/carriers/aramex/status.js +16 -0
  39. package/dist/carriers/aramex/statuses.json +41 -0
  40. package/dist/carriers/asendia/adapter.d.ts +82 -0
  41. package/dist/carriers/asendia/adapter.js +342 -0
  42. package/dist/carriers/asendia/carrier.json +91 -0
  43. package/dist/carriers/asendia/numbers.json +177 -0
  44. package/dist/carriers/asendia/probe.d.ts +31 -0
  45. package/dist/carriers/asendia/probe.js +355 -0
  46. package/dist/carriers/asendia/status.d.ts +41 -0
  47. package/dist/carriers/asendia/status.js +147 -0
  48. package/dist/carriers/asendia/statuses.json +877 -0
  49. package/dist/carriers/australia-post/adapter.d.ts +20 -0
  50. package/dist/carriers/australia-post/adapter.js +175 -0
  51. package/dist/carriers/australia-post/carrier.json +72 -0
  52. package/dist/carriers/australia-post/numbers.json +66 -0
  53. package/dist/carriers/australia-post/status.d.ts +2 -0
  54. package/dist/carriers/australia-post/status.js +34 -0
  55. package/dist/carriers/australia-post/statuses.json +172 -0
  56. package/dist/carriers/austrian-post/adapter.d.ts +13 -0
  57. package/dist/carriers/austrian-post/adapter.js +101 -0
  58. package/dist/carriers/austrian-post/carrier.json +58 -0
  59. package/dist/carriers/austrian-post/numbers.json +73 -0
  60. package/dist/carriers/austrian-post/status.d.ts +3 -0
  61. package/dist/carriers/austrian-post/status.js +30 -0
  62. package/dist/carriers/austrian-post/statuses.json +47 -0
  63. package/dist/carriers/blue-dart/adapter.d.ts +11 -0
  64. package/dist/carriers/blue-dart/adapter.js +34 -0
  65. package/dist/carriers/blue-dart/carrier.json +59 -0
  66. package/dist/carriers/blue-dart/numbers.json +113 -0
  67. package/dist/carriers/blue-dart/parser.d.ts +3 -0
  68. package/dist/carriers/blue-dart/parser.js +75 -0
  69. package/dist/carriers/blue-dart/status.d.ts +2 -0
  70. package/dist/carriers/blue-dart/status.js +14 -0
  71. package/dist/carriers/blue-dart/statuses.json +59 -0
  72. package/dist/carriers/bpost/adapter.d.ts +11 -0
  73. package/dist/carriers/bpost/adapter.js +46 -0
  74. package/dist/carriers/bpost/carrier.json +81 -0
  75. package/dist/carriers/bpost/numbers.json +103 -0
  76. package/dist/carriers/bpost/parser.d.ts +3 -0
  77. package/dist/carriers/bpost/parser.js +84 -0
  78. package/dist/carriers/bpost/status.d.ts +2 -0
  79. package/dist/carriers/bpost/status.js +18 -0
  80. package/dist/carriers/bpost/statuses.json +96 -0
  81. package/dist/carriers/bring-posten/adapter.d.ts +11 -0
  82. package/dist/carriers/bring-posten/adapter.js +35 -0
  83. package/dist/carriers/bring-posten/carrier.json +91 -0
  84. package/dist/carriers/bring-posten/numbers.json +33 -0
  85. package/dist/carriers/bring-posten/parser.d.ts +3 -0
  86. package/dist/carriers/bring-posten/parser.js +95 -0
  87. package/dist/carriers/bring-posten/status.d.ts +3 -0
  88. package/dist/carriers/bring-posten/status.js +23 -0
  89. package/dist/carriers/bring-posten/statuses.json +33 -0
  90. package/dist/carriers/brt/adapter.d.ts +11 -0
  91. package/dist/carriers/brt/adapter.js +36 -0
  92. package/dist/carriers/brt/carrier.json +80 -0
  93. package/dist/carriers/brt/numbers.json +91 -0
  94. package/dist/carriers/brt/parser.d.ts +3 -0
  95. package/dist/carriers/brt/parser.js +84 -0
  96. package/dist/carriers/brt/status.d.ts +2 -0
  97. package/dist/carriers/brt/status.js +14 -0
  98. package/dist/carriers/brt/statuses.json +53 -0
  99. package/dist/carriers/c-chez-vous/adapter.d.ts +31 -0
  100. package/dist/carriers/c-chez-vous/adapter.js +181 -0
  101. package/dist/carriers/c-chez-vous/carrier.json +69 -0
  102. package/dist/carriers/c-chez-vous/numbers.json +31 -0
  103. package/dist/carriers/c-chez-vous/status.d.ts +27 -0
  104. package/dist/carriers/c-chez-vous/status.js +19 -0
  105. package/dist/carriers/c-chez-vous/statuses.json +10 -0
  106. package/dist/carriers/canada-post/adapter.d.ts +40 -0
  107. package/dist/carriers/canada-post/adapter.js +78 -0
  108. package/dist/carriers/canada-post/carrier.json +77 -0
  109. package/dist/carriers/canada-post/numbers.json +81 -0
  110. package/dist/carriers/canada-post/parser.d.ts +5 -0
  111. package/dist/carriers/canada-post/parser.js +202 -0
  112. package/dist/carriers/canada-post/status.d.ts +9 -0
  113. package/dist/carriers/canada-post/status.js +67 -0
  114. package/dist/carriers/canada-post/statuses.json +171 -0
  115. package/dist/carriers/canpar/adapter.d.ts +11 -0
  116. package/dist/carriers/canpar/adapter.js +40 -0
  117. package/dist/carriers/canpar/carrier.json +74 -0
  118. package/dist/carriers/canpar/numbers.json +71 -0
  119. package/dist/carriers/canpar/parser.d.ts +3 -0
  120. package/dist/carriers/canpar/parser.js +75 -0
  121. package/dist/carriers/canpar/status.d.ts +2 -0
  122. package/dist/carriers/canpar/status.js +16 -0
  123. package/dist/carriers/canpar/statuses.json +82 -0
  124. package/dist/carriers/china-post/carrier.json +38 -0
  125. package/dist/carriers/china-post/numbers.json +59 -0
  126. package/dist/carriers/chronopost/carrier.json +84 -0
  127. package/dist/carriers/chronopost/numbers.json +110 -0
  128. package/dist/carriers/chronopost/statuses.json +47 -0
  129. package/dist/carriers/ciblex/adapter.d.ts +17 -0
  130. package/dist/carriers/ciblex/adapter.js +46 -0
  131. package/dist/carriers/ciblex/carrier.json +71 -0
  132. package/dist/carriers/ciblex/numbers.json +63 -0
  133. package/dist/carriers/ciblex/parser.d.ts +4 -0
  134. package/dist/carriers/ciblex/parser.js +100 -0
  135. package/dist/carriers/ciblex/status.d.ts +24 -0
  136. package/dist/carriers/ciblex/status.js +55 -0
  137. package/dist/carriers/ciblex/statuses.json +221 -0
  138. package/dist/carriers/colis-prive/adapter.d.ts +39 -0
  139. package/dist/carriers/colis-prive/adapter.js +0 -0
  140. package/dist/carriers/colis-prive/carrier.json +72 -0
  141. package/dist/carriers/colis-prive/numbers.json +97 -0
  142. package/dist/carriers/colis-prive/status.d.ts +30 -0
  143. package/dist/carriers/colis-prive/status.js +85 -0
  144. package/dist/carriers/colis-prive/statuses.json +39 -0
  145. package/dist/carriers/colisweb/adapter.d.ts +29 -0
  146. package/dist/carriers/colisweb/adapter.js +166 -0
  147. package/dist/carriers/colisweb/carrier.json +63 -0
  148. package/dist/carriers/colisweb/numbers.json +39 -0
  149. package/dist/carriers/colisweb/status.d.ts +32 -0
  150. package/dist/carriers/colisweb/status.js +61 -0
  151. package/dist/carriers/colisweb/statuses.json +25 -0
  152. package/dist/carriers/correios-br/adapter.d.ts +16 -0
  153. package/dist/carriers/correios-br/adapter.js +78 -0
  154. package/dist/carriers/correios-br/carrier.json +64 -0
  155. package/dist/carriers/correios-br/model/LICENSE +21 -0
  156. package/dist/carriers/correios-br/model/captcha.onnx +0 -0
  157. package/dist/carriers/correios-br/numbers.json +72 -0
  158. package/dist/carriers/correios-br/ocr-worker.mjs +53 -0
  159. package/dist/carriers/correios-br/ocr.d.ts +10 -0
  160. package/dist/carriers/correios-br/ocr.js +83 -0
  161. package/dist/carriers/correios-br/parser.d.ts +4 -0
  162. package/dist/carriers/correios-br/parser.js +79 -0
  163. package/dist/carriers/correios-br/status.d.ts +2 -0
  164. package/dist/carriers/correios-br/status.js +17 -0
  165. package/dist/carriers/correios-br/statuses.json +16 -0
  166. package/dist/carriers/correos-chile/adapter.d.ts +12 -0
  167. package/dist/carriers/correos-chile/adapter.js +85 -0
  168. package/dist/carriers/correos-chile/carrier.json +62 -0
  169. package/dist/carriers/correos-chile/numbers.json +38 -0
  170. package/dist/carriers/correos-chile/parser.d.ts +9 -0
  171. package/dist/carriers/correos-chile/parser.js +120 -0
  172. package/dist/carriers/correos-chile/status.d.ts +3 -0
  173. package/dist/carriers/correos-chile/status.js +17 -0
  174. package/dist/carriers/correos-chile/statuses.json +12 -0
  175. package/dist/carriers/correos-express/adapter.d.ts +11 -0
  176. package/dist/carriers/correos-express/adapter.js +32 -0
  177. package/dist/carriers/correos-express/carrier.json +65 -0
  178. package/dist/carriers/correos-express/numbers.json +80 -0
  179. package/dist/carriers/correos-express/parser.d.ts +3 -0
  180. package/dist/carriers/correos-express/parser.js +97 -0
  181. package/dist/carriers/correos-express/status.d.ts +2 -0
  182. package/dist/carriers/correos-express/status.js +25 -0
  183. package/dist/carriers/correos-express/statuses.json +19 -0
  184. package/dist/carriers/correos-spain/adapter.d.ts +15 -0
  185. package/dist/carriers/correos-spain/adapter.js +191 -0
  186. package/dist/carriers/correos-spain/carrier.json +92 -0
  187. package/dist/carriers/correos-spain/numbers.json +149 -0
  188. package/dist/carriers/correos-spain/status.d.ts +17 -0
  189. package/dist/carriers/correos-spain/status.js +51 -0
  190. package/dist/carriers/correos-spain/statuses.json +46 -0
  191. package/dist/carriers/ctt/adapter.d.ts +34 -0
  192. package/dist/carriers/ctt/adapter.js +320 -0
  193. package/dist/carriers/ctt/carrier.json +72 -0
  194. package/dist/carriers/ctt/numbers.json +33 -0
  195. package/dist/carriers/ctt/status.d.ts +16 -0
  196. package/dist/carriers/ctt/status.js +16 -0
  197. package/dist/carriers/ctt/statuses.json +15 -0
  198. package/dist/carriers/ctt-express/adapter.d.ts +11 -0
  199. package/dist/carriers/ctt-express/adapter.js +41 -0
  200. package/dist/carriers/ctt-express/carrier.json +64 -0
  201. package/dist/carriers/ctt-express/numbers.json +59 -0
  202. package/dist/carriers/ctt-express/parser.d.ts +3 -0
  203. package/dist/carriers/ctt-express/parser.js +107 -0
  204. package/dist/carriers/ctt-express/status.d.ts +2 -0
  205. package/dist/carriers/ctt-express/status.js +17 -0
  206. package/dist/carriers/ctt-express/statuses.json +15 -0
  207. package/dist/carriers/dachser/adapter.d.ts +25 -0
  208. package/dist/carriers/dachser/adapter.js +168 -0
  209. package/dist/carriers/dachser/carrier.json +80 -0
  210. package/dist/carriers/dachser/numbers.json +66 -0
  211. package/dist/carriers/dachser/status.d.ts +40 -0
  212. package/dist/carriers/dachser/status.js +57 -0
  213. package/dist/carriers/dachser/statuses.json +18 -0
  214. package/dist/carriers/delhivery/adapter.d.ts +11 -0
  215. package/dist/carriers/delhivery/adapter.js +36 -0
  216. package/dist/carriers/delhivery/carrier.json +50 -0
  217. package/dist/carriers/delhivery/numbers.json +108 -0
  218. package/dist/carriers/delhivery/parser.d.ts +3 -0
  219. package/dist/carriers/delhivery/parser.js +81 -0
  220. package/dist/carriers/delhivery/status.d.ts +2 -0
  221. package/dist/carriers/delhivery/status.js +11 -0
  222. package/dist/carriers/delhivery/statuses.json +11 -0
  223. package/dist/carriers/delivengo/carrier.json +56 -0
  224. package/dist/carriers/delivengo/numbers.json +31 -0
  225. package/dist/carriers/delivengo/statuses.json +5 -0
  226. package/dist/carriers/dhl/adapter.d.ts +70 -0
  227. package/dist/carriers/dhl/adapter.js +308 -0
  228. package/dist/carriers/dhl/carrier.json +98 -0
  229. package/dist/carriers/dhl/numbers.json +153 -0
  230. package/dist/carriers/dhl/status.d.ts +14 -0
  231. package/dist/carriers/dhl/status.js +45 -0
  232. package/dist/carriers/dhl/statuses.json +27 -0
  233. package/dist/carriers/dhl-ecommerce/adapter.d.ts +50 -0
  234. package/dist/carriers/dhl-ecommerce/adapter.js +179 -0
  235. package/dist/carriers/dhl-ecommerce/carrier.json +97 -0
  236. package/dist/carriers/dhl-ecommerce/numbers.json +130 -0
  237. package/dist/carriers/dhl-ecommerce/status.d.ts +13 -0
  238. package/dist/carriers/dhl-ecommerce/status.js +57 -0
  239. package/dist/carriers/dhl-ecommerce/statuses.json +23 -0
  240. package/dist/carriers/dpd/adapter.d.ts +70 -0
  241. package/dist/carriers/dpd/adapter.js +809 -0
  242. package/dist/carriers/dpd/carrier.json +111 -0
  243. package/dist/carriers/dpd/numbers.json +43 -0
  244. package/dist/carriers/dpd/status.d.ts +39 -0
  245. package/dist/carriers/dpd/status.js +93 -0
  246. package/dist/carriers/dpd/statuses.json +144 -0
  247. package/dist/carriers/dpd-fr/adapter.d.ts +42 -0
  248. package/dist/carriers/dpd-fr/adapter.js +288 -0
  249. package/dist/carriers/dpd-fr/carrier.json +83 -0
  250. package/dist/carriers/dpd-fr/numbers.json +80 -0
  251. package/dist/carriers/dpd-fr/status.d.ts +21 -0
  252. package/dist/carriers/dpd-fr/status.js +93 -0
  253. package/dist/carriers/dpd-fr/statuses.json +325 -0
  254. package/dist/carriers/dtdc/adapter.d.ts +11 -0
  255. package/dist/carriers/dtdc/adapter.js +39 -0
  256. package/dist/carriers/dtdc/carrier.json +77 -0
  257. package/dist/carriers/dtdc/numbers.json +50 -0
  258. package/dist/carriers/dtdc/parser.d.ts +3 -0
  259. package/dist/carriers/dtdc/parser.js +90 -0
  260. package/dist/carriers/dtdc/status.d.ts +2 -0
  261. package/dist/carriers/dtdc/status.js +15 -0
  262. package/dist/carriers/dtdc/statuses.json +65 -0
  263. package/dist/carriers/ecoscooting/adapter.d.ts +11 -0
  264. package/dist/carriers/ecoscooting/adapter.js +42 -0
  265. package/dist/carriers/ecoscooting/carrier.json +76 -0
  266. package/dist/carriers/ecoscooting/numbers.json +291 -0
  267. package/dist/carriers/ecoscooting/parser.d.ts +3 -0
  268. package/dist/carriers/ecoscooting/parser.js +88 -0
  269. package/dist/carriers/ecoscooting/status.d.ts +2 -0
  270. package/dist/carriers/ecoscooting/status.js +50 -0
  271. package/dist/carriers/ecoscooting/statuses.json +295 -0
  272. package/dist/carriers/ems/adapter.d.ts +14 -0
  273. package/dist/carriers/ems/adapter.js +124 -0
  274. package/dist/carriers/ems/carrier.json +61 -0
  275. package/dist/carriers/ems/numbers.json +43 -0
  276. package/dist/carriers/ems/status.d.ts +2 -0
  277. package/dist/carriers/ems/status.js +24 -0
  278. package/dist/carriers/ems/statuses.json +128 -0
  279. package/dist/carriers/estafeta/adapter.d.ts +11 -0
  280. package/dist/carriers/estafeta/adapter.js +45 -0
  281. package/dist/carriers/estafeta/carrier.json +79 -0
  282. package/dist/carriers/estafeta/numbers.json +85 -0
  283. package/dist/carriers/estafeta/parser.d.ts +11 -0
  284. package/dist/carriers/estafeta/parser.js +123 -0
  285. package/dist/carriers/estafeta/status.d.ts +3 -0
  286. package/dist/carriers/estafeta/status.js +17 -0
  287. package/dist/carriers/estafeta/statuses.json +47 -0
  288. package/dist/carriers/evri/adapter.d.ts +14 -0
  289. package/dist/carriers/evri/adapter.js +146 -0
  290. package/dist/carriers/evri/carrier.json +69 -0
  291. package/dist/carriers/evri/numbers.json +32 -0
  292. package/dist/carriers/evri/status.d.ts +2 -0
  293. package/dist/carriers/evri/status.js +24 -0
  294. package/dist/carriers/evri/statuses.json +133 -0
  295. package/dist/carriers/fedex/adapter.d.ts +32 -0
  296. package/dist/carriers/fedex/adapter.js +307 -0
  297. package/dist/carriers/fedex/carrier.json +74 -0
  298. package/dist/carriers/fedex/numbers.json +198 -0
  299. package/dist/carriers/fedex/status.d.ts +33 -0
  300. package/dist/carriers/fedex/status.js +114 -0
  301. package/dist/carriers/fedex/statuses.json +34 -0
  302. package/dist/carriers/four-px/adapter.d.ts +12 -0
  303. package/dist/carriers/four-px/adapter.js +113 -0
  304. package/dist/carriers/four-px/carrier.json +60 -0
  305. package/dist/carriers/four-px/numbers.json +32 -0
  306. package/dist/carriers/four-px/status.d.ts +2 -0
  307. package/dist/carriers/four-px/status.js +22 -0
  308. package/dist/carriers/four-px/statuses.json +141 -0
  309. package/dist/carriers/geodis/adapter.d.ts +37 -0
  310. package/dist/carriers/geodis/adapter.js +275 -0
  311. package/dist/carriers/geodis/carrier.json +75 -0
  312. package/dist/carriers/geodis/numbers.json +45 -0
  313. package/dist/carriers/geodis/status.d.ts +37 -0
  314. package/dist/carriers/geodis/status.js +105 -0
  315. package/dist/carriers/geodis/statuses.json +51 -0
  316. package/dist/carriers/gls-ch/adapter.d.ts +39 -0
  317. package/dist/carriers/gls-ch/adapter.js +405 -0
  318. package/dist/carriers/gls-ch/carrier.json +122 -0
  319. package/dist/carriers/gls-ch/numbers.json +31 -0
  320. package/dist/carriers/gls-ch/status.d.ts +19 -0
  321. package/dist/carriers/gls-ch/status.js +79 -0
  322. package/dist/carriers/gls-ch/statuses.json +31 -0
  323. package/dist/carriers/gls-de/adapter.d.ts +28 -0
  324. package/dist/carriers/gls-de/adapter.js +113 -0
  325. package/dist/carriers/gls-de/carrier.json +126 -0
  326. package/dist/carriers/gls-de/numbers.json +111 -0
  327. package/dist/carriers/gls-de/status.d.ts +10 -0
  328. package/dist/carriers/gls-de/status.js +10 -0
  329. package/dist/carriers/gls-de/statuses.json +31 -0
  330. package/dist/carriers/gls-fr/adapter.d.ts +29 -0
  331. package/dist/carriers/gls-fr/adapter.js +220 -0
  332. package/dist/carriers/gls-fr/carrier.json +107 -0
  333. package/dist/carriers/gls-fr/numbers.json +113 -0
  334. package/dist/carriers/gls-fr/status.d.ts +28 -0
  335. package/dist/carriers/gls-fr/status.js +58 -0
  336. package/dist/carriers/gls-fr/statuses.json +34 -0
  337. package/dist/carriers/gofo/adapter.d.ts +11 -0
  338. package/dist/carriers/gofo/adapter.js +41 -0
  339. package/dist/carriers/gofo/carrier.json +80 -0
  340. package/dist/carriers/gofo/numbers.json +59 -0
  341. package/dist/carriers/gofo/parser.d.ts +5 -0
  342. package/dist/carriers/gofo/parser.js +131 -0
  343. package/dist/carriers/gofo/status.d.ts +2 -0
  344. package/dist/carriers/gofo/status.js +7 -0
  345. package/dist/carriers/gofo/statuses.json +54 -0
  346. package/dist/carriers/heppner/adapter.d.ts +27 -0
  347. package/dist/carriers/heppner/adapter.js +247 -0
  348. package/dist/carriers/heppner/carrier.json +74 -0
  349. package/dist/carriers/heppner/numbers.json +39 -0
  350. package/dist/carriers/heppner/status.d.ts +28 -0
  351. package/dist/carriers/heppner/status.js +43 -0
  352. package/dist/carriers/heppner/statuses.json +69 -0
  353. package/dist/carriers/hermes/adapter.d.ts +17 -0
  354. package/dist/carriers/hermes/adapter.js +103 -0
  355. package/dist/carriers/hermes/carrier.json +58 -0
  356. package/dist/carriers/hermes/numbers.json +20 -0
  357. package/dist/carriers/hermes/status.d.ts +15 -0
  358. package/dist/carriers/hermes/status.js +61 -0
  359. package/dist/carriers/hermes/statuses.json +31 -0
  360. package/dist/carriers/hermes-de/adapter.d.ts +22 -0
  361. package/dist/carriers/hermes-de/adapter.js +168 -0
  362. package/dist/carriers/hermes-de/carrier.json +90 -0
  363. package/dist/carriers/hermes-de/numbers.json +125 -0
  364. package/dist/carriers/hermes-de/status.d.ts +24 -0
  365. package/dist/carriers/hermes-de/status.js +52 -0
  366. package/dist/carriers/hermes-de/statuses.json +277 -0
  367. package/dist/carriers/hongkong-post/carrier.json +38 -0
  368. package/dist/carriers/hongkong-post/numbers.json +32 -0
  369. package/dist/carriers/india-post/adapter.d.ts +33 -0
  370. package/dist/carriers/india-post/adapter.js +415 -0
  371. package/dist/carriers/india-post/carrier.json +74 -0
  372. package/dist/carriers/india-post/numbers.json +58 -0
  373. package/dist/carriers/india-post/status.d.ts +23 -0
  374. package/dist/carriers/india-post/status.js +99 -0
  375. package/dist/carriers/india-post/statuses.json +18 -0
  376. package/dist/carriers/inpost/adapter.d.ts +14 -0
  377. package/dist/carriers/inpost/adapter.js +143 -0
  378. package/dist/carriers/inpost/carrier.json +75 -0
  379. package/dist/carriers/inpost/numbers.json +130 -0
  380. package/dist/carriers/inpost/status.d.ts +16 -0
  381. package/dist/carriers/inpost/status.js +31 -0
  382. package/dist/carriers/inpost/statuses.json +26 -0
  383. package/dist/carriers/intl-post/carrier.json +46 -0
  384. package/dist/carriers/intl-post/numbers.json +29 -0
  385. package/dist/carriers/j-and-t/carrier.json +66 -0
  386. package/dist/carriers/j-and-t/numbers.json +90 -0
  387. package/dist/carriers/japan-post/adapter.d.ts +13 -0
  388. package/dist/carriers/japan-post/adapter.js +159 -0
  389. package/dist/carriers/japan-post/carrier.json +71 -0
  390. package/dist/carriers/japan-post/numbers.json +35 -0
  391. package/dist/carriers/japan-post/status.d.ts +2 -0
  392. package/dist/carriers/japan-post/status.js +25 -0
  393. package/dist/carriers/japan-post/statuses.json +136 -0
  394. package/dist/carriers/jd-logistics/carrier.json +37 -0
  395. package/dist/carriers/jd-logistics/numbers.json +19 -0
  396. package/dist/carriers/korea-post/adapter.d.ts +12 -0
  397. package/dist/carriers/korea-post/adapter.js +101 -0
  398. package/dist/carriers/korea-post/carrier.json +74 -0
  399. package/dist/carriers/korea-post/numbers.json +54 -0
  400. package/dist/carriers/korea-post/status.d.ts +2 -0
  401. package/dist/carriers/korea-post/status.js +19 -0
  402. package/dist/carriers/korea-post/statuses.json +103 -0
  403. package/dist/carriers/la-poste/adapter.d.ts +29 -0
  404. package/dist/carriers/la-poste/adapter.js +241 -0
  405. package/dist/carriers/la-poste/carrier.json +87 -0
  406. package/dist/carriers/la-poste/numbers.json +140 -0
  407. package/dist/carriers/la-poste/status.d.ts +30 -0
  408. package/dist/carriers/la-poste/status.js +110 -0
  409. package/dist/carriers/la-poste/statuses.json +163 -0
  410. package/dist/carriers/landmark-global/adapter.d.ts +11 -0
  411. package/dist/carriers/landmark-global/adapter.js +30 -0
  412. package/dist/carriers/landmark-global/carrier.json +64 -0
  413. package/dist/carriers/landmark-global/numbers.json +58 -0
  414. package/dist/carriers/landmark-global/parser.d.ts +3 -0
  415. package/dist/carriers/landmark-global/parser.js +78 -0
  416. package/dist/carriers/landmark-global/status.d.ts +2 -0
  417. package/dist/carriers/landmark-global/status.js +13 -0
  418. package/dist/carriers/landmark-global/statuses.json +125 -0
  419. package/dist/carriers/mondial-relay/adapter.d.ts +32 -0
  420. package/dist/carriers/mondial-relay/adapter.js +352 -0
  421. package/dist/carriers/mondial-relay/carrier.json +94 -0
  422. package/dist/carriers/mondial-relay/numbers.json +130 -0
  423. package/dist/carriers/mondial-relay/status.d.ts +31 -0
  424. package/dist/carriers/mondial-relay/status.js +98 -0
  425. package/dist/carriers/mondial-relay/statuses.json +50 -0
  426. package/dist/carriers/mrw/adapter.d.ts +13 -0
  427. package/dist/carriers/mrw/adapter.js +131 -0
  428. package/dist/carriers/mrw/carrier.json +60 -0
  429. package/dist/carriers/mrw/numbers.json +116 -0
  430. package/dist/carriers/mrw/parser.d.ts +12 -0
  431. package/dist/carriers/mrw/parser.js +149 -0
  432. package/dist/carriers/mrw/status.d.ts +2 -0
  433. package/dist/carriers/mrw/status.js +14 -0
  434. package/dist/carriers/mrw/statuses.json +13 -0
  435. package/dist/carriers/nacex/adapter.d.ts +11 -0
  436. package/dist/carriers/nacex/adapter.js +99 -0
  437. package/dist/carriers/nacex/carrier.json +78 -0
  438. package/dist/carriers/nacex/numbers.json +47 -0
  439. package/dist/carriers/nacex/parser.d.ts +4 -0
  440. package/dist/carriers/nacex/parser.js +119 -0
  441. package/dist/carriers/nacex/status.d.ts +2 -0
  442. package/dist/carriers/nacex/status.js +12 -0
  443. package/dist/carriers/nacex/statuses.json +11 -0
  444. package/dist/carriers/ninja-van/adapter.d.ts +11 -0
  445. package/dist/carriers/ninja-van/adapter.js +45 -0
  446. package/dist/carriers/ninja-van/carrier.json +79 -0
  447. package/dist/carriers/ninja-van/numbers.json +67 -0
  448. package/dist/carriers/ninja-van/parser.d.ts +5 -0
  449. package/dist/carriers/ninja-van/parser.js +95 -0
  450. package/dist/carriers/ninja-van/status.d.ts +3 -0
  451. package/dist/carriers/ninja-van/status.js +25 -0
  452. package/dist/carriers/ninja-van/statuses.json +11 -0
  453. package/dist/carriers/nz-post/adapter.d.ts +11 -0
  454. package/dist/carriers/nz-post/adapter.js +45 -0
  455. package/dist/carriers/nz-post/carrier.json +82 -0
  456. package/dist/carriers/nz-post/numbers.json +49 -0
  457. package/dist/carriers/nz-post/parser.d.ts +3 -0
  458. package/dist/carriers/nz-post/parser.js +97 -0
  459. package/dist/carriers/nz-post/status.d.ts +2 -0
  460. package/dist/carriers/nz-post/status.js +29 -0
  461. package/dist/carriers/nz-post/statuses.json +68 -0
  462. package/dist/carriers/old-dominion/carrier.json +51 -0
  463. package/dist/carriers/old-dominion/numbers.json +83 -0
  464. package/dist/carriers/ontrac/adapter.d.ts +11 -0
  465. package/dist/carriers/ontrac/adapter.js +34 -0
  466. package/dist/carriers/ontrac/carrier.json +81 -0
  467. package/dist/carriers/ontrac/numbers.json +214 -0
  468. package/dist/carriers/ontrac/parser.d.ts +3 -0
  469. package/dist/carriers/ontrac/parser.js +72 -0
  470. package/dist/carriers/ontrac/status.d.ts +2 -0
  471. package/dist/carriers/ontrac/status.js +19 -0
  472. package/dist/carriers/ontrac/statuses.json +61 -0
  473. package/dist/carriers/paack/adapter.d.ts +19 -0
  474. package/dist/carriers/paack/adapter.js +255 -0
  475. package/dist/carriers/paack/carrier.json +79 -0
  476. package/dist/carriers/paack/numbers.json +106 -0
  477. package/dist/carriers/paack/status.d.ts +26 -0
  478. package/dist/carriers/paack/status.js +82 -0
  479. package/dist/carriers/paack/statuses.json +357 -0
  480. package/dist/carriers/packeta/adapter.d.ts +15 -0
  481. package/dist/carriers/packeta/adapter.js +166 -0
  482. package/dist/carriers/packeta/carrier.json +90 -0
  483. package/dist/carriers/packeta/numbers.json +71 -0
  484. package/dist/carriers/packeta/status.d.ts +23 -0
  485. package/dist/carriers/packeta/status.js +40 -0
  486. package/dist/carriers/packeta/statuses.json +21 -0
  487. package/dist/carriers/parcelforce/carrier.json +47 -0
  488. package/dist/carriers/parcelforce/numbers.json +32 -0
  489. package/dist/carriers/planzer/adapter.d.ts +40 -0
  490. package/dist/carriers/planzer/adapter.js +148 -0
  491. package/dist/carriers/planzer/carrier.json +85 -0
  492. package/dist/carriers/planzer/numbers.json +118 -0
  493. package/dist/carriers/planzer/shared.d.ts +19 -0
  494. package/dist/carriers/planzer/shared.js +135 -0
  495. package/dist/carriers/planzer/status.d.ts +33 -0
  496. package/dist/carriers/planzer/status.js +89 -0
  497. package/dist/carriers/planzer/statuses.json +229 -0
  498. package/dist/carriers/poczta-polska/adapter.d.ts +15 -0
  499. package/dist/carriers/poczta-polska/adapter.js +65 -0
  500. package/dist/carriers/poczta-polska/carrier.json +79 -0
  501. package/dist/carriers/poczta-polska/numbers.json +130 -0
  502. package/dist/carriers/poczta-polska/parser.d.ts +3 -0
  503. package/dist/carriers/poczta-polska/parser.js +96 -0
  504. package/dist/carriers/poczta-polska/status.d.ts +2 -0
  505. package/dist/carriers/poczta-polska/status.js +21 -0
  506. package/dist/carriers/poczta-polska/statuses.json +47 -0
  507. package/dist/carriers/pos-malaysia/adapter.d.ts +18 -0
  508. package/dist/carriers/pos-malaysia/adapter.js +199 -0
  509. package/dist/carriers/pos-malaysia/carrier.json +78 -0
  510. package/dist/carriers/pos-malaysia/numbers.json +73 -0
  511. package/dist/carriers/pos-malaysia/status.d.ts +17 -0
  512. package/dist/carriers/pos-malaysia/status.js +21 -0
  513. package/dist/carriers/pos-malaysia/statuses.json +17 -0
  514. package/dist/carriers/poste-italiane/adapter.d.ts +15 -0
  515. package/dist/carriers/poste-italiane/adapter.js +211 -0
  516. package/dist/carriers/poste-italiane/carrier.json +86 -0
  517. package/dist/carriers/poste-italiane/numbers.json +117 -0
  518. package/dist/carriers/poste-italiane/status.d.ts +19 -0
  519. package/dist/carriers/poste-italiane/status.js +44 -0
  520. package/dist/carriers/poste-italiane/statuses.json +22 -0
  521. package/dist/carriers/posti/adapter.d.ts +17 -0
  522. package/dist/carriers/posti/adapter.js +195 -0
  523. package/dist/carriers/posti/carrier.json +69 -0
  524. package/dist/carriers/posti/numbers.json +52 -0
  525. package/dist/carriers/posti/status.d.ts +4 -0
  526. package/dist/carriers/posti/status.js +41 -0
  527. package/dist/carriers/posti/statuses.json +18 -0
  528. package/dist/carriers/postlogistics/adapter.d.ts +39 -0
  529. package/dist/carriers/postlogistics/adapter.js +162 -0
  530. package/dist/carriers/postlogistics/carrier.json +67 -0
  531. package/dist/carriers/postlogistics/number.d.ts +2 -0
  532. package/dist/carriers/postlogistics/number.js +7 -0
  533. package/dist/carriers/postlogistics/numbers.json +54 -0
  534. package/dist/carriers/postlogistics/status.d.ts +20 -0
  535. package/dist/carriers/postlogistics/status.js +12 -0
  536. package/dist/carriers/postlogistics/statuses.json +40 -0
  537. package/dist/carriers/postnord/adapter.d.ts +11 -0
  538. package/dist/carriers/postnord/adapter.js +76 -0
  539. package/dist/carriers/postnord/carrier.json +82 -0
  540. package/dist/carriers/postnord/numbers.json +66 -0
  541. package/dist/carriers/postnord/parser.d.ts +3 -0
  542. package/dist/carriers/postnord/parser.js +75 -0
  543. package/dist/carriers/postnord/status.d.ts +3 -0
  544. package/dist/carriers/postnord/status.js +38 -0
  545. package/dist/carriers/postnord/statuses.json +16 -0
  546. package/dist/carriers/purolator/adapter.d.ts +11 -0
  547. package/dist/carriers/purolator/adapter.js +45 -0
  548. package/dist/carriers/purolator/carrier.json +75 -0
  549. package/dist/carriers/purolator/numbers.json +146 -0
  550. package/dist/carriers/purolator/parser.d.ts +3 -0
  551. package/dist/carriers/purolator/parser.js +79 -0
  552. package/dist/carriers/purolator/status.d.ts +2 -0
  553. package/dist/carriers/purolator/status.js +17 -0
  554. package/dist/carriers/purolator/statuses.json +15 -0
  555. package/dist/carriers/quickpac/carrier.json +68 -0
  556. package/dist/carriers/quickpac/numbers.json +31 -0
  557. package/dist/carriers/quickpac/statuses.json +213 -0
  558. package/dist/carriers/relais-colis/adapter.d.ts +28 -0
  559. package/dist/carriers/relais-colis/adapter.js +242 -0
  560. package/dist/carriers/relais-colis/carrier.json +77 -0
  561. package/dist/carriers/relais-colis/numbers.json +64 -0
  562. package/dist/carriers/relais-colis/status.d.ts +26 -0
  563. package/dist/carriers/relais-colis/status.js +91 -0
  564. package/dist/carriers/relais-colis/statuses.json +341 -0
  565. package/dist/carriers/royal-mail/adapter.d.ts +32 -0
  566. package/dist/carriers/royal-mail/adapter.js +260 -0
  567. package/dist/carriers/royal-mail/carrier.json +60 -0
  568. package/dist/carriers/royal-mail/numbers.json +57 -0
  569. package/dist/carriers/royal-mail/status.d.ts +19 -0
  570. package/dist/carriers/royal-mail/status.js +80 -0
  571. package/dist/carriers/royal-mail/statuses.json +16 -0
  572. package/dist/carriers/seur/adapter.d.ts +11 -0
  573. package/dist/carriers/seur/adapter.js +35 -0
  574. package/dist/carriers/seur/carrier.json +89 -0
  575. package/dist/carriers/seur/numbers.json +80 -0
  576. package/dist/carriers/seur/parser.d.ts +3 -0
  577. package/dist/carriers/seur/parser.js +78 -0
  578. package/dist/carriers/seur/status.d.ts +2 -0
  579. package/dist/carriers/seur/status.js +14 -0
  580. package/dist/carriers/seur/statuses.json +47 -0
  581. package/dist/carriers/sf-express/adapter.d.ts +17 -0
  582. package/dist/carriers/sf-express/adapter.js +87 -0
  583. package/dist/carriers/sf-express/carrier.json +78 -0
  584. package/dist/carriers/sf-express/numbers.json +66 -0
  585. package/dist/carriers/sf-express/parser.d.ts +4 -0
  586. package/dist/carriers/sf-express/parser.js +102 -0
  587. package/dist/carriers/sf-express/status.d.ts +4 -0
  588. package/dist/carriers/sf-express/status.js +28 -0
  589. package/dist/carriers/sf-express/statuses.json +334 -0
  590. package/dist/carriers/shipup/carrier.json +28 -0
  591. package/dist/carriers/shipup/numbers.json +20 -0
  592. package/dist/carriers/singapore-post/adapter.d.ts +12 -0
  593. package/dist/carriers/singapore-post/adapter.js +106 -0
  594. package/dist/carriers/singapore-post/carrier.json +62 -0
  595. package/dist/carriers/singapore-post/numbers.json +77 -0
  596. package/dist/carriers/singapore-post/status.d.ts +2 -0
  597. package/dist/carriers/singapore-post/status.js +17 -0
  598. package/dist/carriers/singapore-post/statuses.json +101 -0
  599. package/dist/carriers/spee-dee/carrier.json +51 -0
  600. package/dist/carriers/spee-dee/numbers.json +55 -0
  601. package/dist/carriers/speedx/carrier.json +49 -0
  602. package/dist/carriers/speedx/numbers.json +112 -0
  603. package/dist/carriers/spring-gds/adapter.d.ts +35 -0
  604. package/dist/carriers/spring-gds/adapter.js +212 -0
  605. package/dist/carriers/spring-gds/carrier.json +90 -0
  606. package/dist/carriers/spring-gds/numbers.json +224 -0
  607. package/dist/carriers/spring-gds/status.d.ts +19 -0
  608. package/dist/carriers/spring-gds/status.js +28 -0
  609. package/dist/carriers/spring-gds/statuses.json +140 -0
  610. package/dist/carriers/sto/carrier.json +37 -0
  611. package/dist/carriers/sto/numbers.json +33 -0
  612. package/dist/carriers/sunyou/adapter.d.ts +18 -0
  613. package/dist/carriers/sunyou/adapter.js +156 -0
  614. package/dist/carriers/sunyou/carrier.json +64 -0
  615. package/dist/carriers/sunyou/numbers.json +44 -0
  616. package/dist/carriers/sunyou/status.d.ts +17 -0
  617. package/dist/carriers/sunyou/status.js +13 -0
  618. package/dist/carriers/sunyou/statuses.json +53 -0
  619. package/dist/carriers/swiss-post/adapter.d.ts +18 -0
  620. package/dist/carriers/swiss-post/adapter.js +282 -0
  621. package/dist/carriers/swiss-post/carrier.json +84 -0
  622. package/dist/carriers/swiss-post/numbers.json +55 -0
  623. package/dist/carriers/swiss-post/status.d.ts +27 -0
  624. package/dist/carriers/swiss-post/status.js +64 -0
  625. package/dist/carriers/swiss-post/statuses.json +33 -0
  626. package/dist/carriers/swiss-post-cargo/adapter.d.ts +19 -0
  627. package/dist/carriers/swiss-post-cargo/adapter.js +173 -0
  628. package/dist/carriers/swiss-post-cargo/carrier.json +60 -0
  629. package/dist/carriers/swiss-post-cargo/numbers.json +23 -0
  630. package/dist/carriers/swiss-post-cargo/reference.d.ts +13 -0
  631. package/dist/carriers/swiss-post-cargo/reference.js +48 -0
  632. package/dist/carriers/swiss-post-cargo/status.d.ts +13 -0
  633. package/dist/carriers/swiss-post-cargo/status.js +53 -0
  634. package/dist/carriers/swiss-post-cargo/statuses.json +19 -0
  635. package/dist/carriers/thailand-post/carrier.json +38 -0
  636. package/dist/carriers/thailand-post/numbers.json +33 -0
  637. package/dist/carriers/the-courier-guy/adapter.d.ts +11 -0
  638. package/dist/carriers/the-courier-guy/adapter.js +49 -0
  639. package/dist/carriers/the-courier-guy/carrier.json +73 -0
  640. package/dist/carriers/the-courier-guy/number.d.ts +3 -0
  641. package/dist/carriers/the-courier-guy/number.js +18 -0
  642. package/dist/carriers/the-courier-guy/numbers.json +74 -0
  643. package/dist/carriers/the-courier-guy/parser.d.ts +3 -0
  644. package/dist/carriers/the-courier-guy/parser.js +104 -0
  645. package/dist/carriers/the-courier-guy/status.d.ts +5 -0
  646. package/dist/carriers/the-courier-guy/status.js +21 -0
  647. package/dist/carriers/the-courier-guy/statuses.json +61 -0
  648. package/dist/carriers/tipsa/adapter.d.ts +12 -0
  649. package/dist/carriers/tipsa/adapter.js +52 -0
  650. package/dist/carriers/tipsa/carrier.json +92 -0
  651. package/dist/carriers/tipsa/numbers.json +100 -0
  652. package/dist/carriers/tipsa/parser.d.ts +17 -0
  653. package/dist/carriers/tipsa/parser.js +114 -0
  654. package/dist/carriers/tipsa/status.d.ts +3 -0
  655. package/dist/carriers/tipsa/status.js +25 -0
  656. package/dist/carriers/tipsa/statuses.json +12 -0
  657. package/dist/carriers/tnt/adapter.d.ts +23 -0
  658. package/dist/carriers/tnt/adapter.js +210 -0
  659. package/dist/carriers/tnt/carrier.json +66 -0
  660. package/dist/carriers/tnt/numbers.json +116 -0
  661. package/dist/carriers/tnt/status.d.ts +3 -0
  662. package/dist/carriers/tnt/status.js +35 -0
  663. package/dist/carriers/tnt/statuses.json +126 -0
  664. package/dist/carriers/ukrposhta/adapter.d.ts +13 -0
  665. package/dist/carriers/ukrposhta/adapter.js +152 -0
  666. package/dist/carriers/ukrposhta/carrier.json +62 -0
  667. package/dist/carriers/ukrposhta/numbers.json +53 -0
  668. package/dist/carriers/ukrposhta/parser.d.ts +15 -0
  669. package/dist/carriers/ukrposhta/parser.js +130 -0
  670. package/dist/carriers/ukrposhta/status.d.ts +3 -0
  671. package/dist/carriers/ukrposhta/status.js +34 -0
  672. package/dist/carriers/ukrposhta/statuses.json +208 -0
  673. package/dist/carriers/uniuni/adapter.d.ts +11 -0
  674. package/dist/carriers/uniuni/adapter.js +48 -0
  675. package/dist/carriers/uniuni/carrier.json +90 -0
  676. package/dist/carriers/uniuni/numbers.json +72 -0
  677. package/dist/carriers/uniuni/parser.d.ts +5 -0
  678. package/dist/carriers/uniuni/parser.js +114 -0
  679. package/dist/carriers/uniuni/status.d.ts +2 -0
  680. package/dist/carriers/uniuni/status.js +16 -0
  681. package/dist/carriers/uniuni/statuses.json +54 -0
  682. package/dist/carriers/unknown/carrier.json +57 -0
  683. package/dist/carriers/unknown/numbers.json +257 -0
  684. package/dist/carriers/ups/adapter.d.ts +40 -0
  685. package/dist/carriers/ups/adapter.js +473 -0
  686. package/dist/carriers/ups/carrier.json +69 -0
  687. package/dist/carriers/ups/numbers.json +134 -0
  688. package/dist/carriers/ups/status.d.ts +25 -0
  689. package/dist/carriers/ups/status.js +41 -0
  690. package/dist/carriers/ups/statuses.json +35 -0
  691. package/dist/carriers/usps/adapter.d.ts +25 -0
  692. package/dist/carriers/usps/adapter.js +261 -0
  693. package/dist/carriers/usps/carrier.json +74 -0
  694. package/dist/carriers/usps/numbers.json +286 -0
  695. package/dist/carriers/usps/status.d.ts +25 -0
  696. package/dist/carriers/usps/status.js +72 -0
  697. package/dist/carriers/usps/statuses.json +24 -0
  698. package/dist/carriers/yamato/adapter.d.ts +13 -0
  699. package/dist/carriers/yamato/adapter.js +130 -0
  700. package/dist/carriers/yamato/carrier.json +72 -0
  701. package/dist/carriers/yamato/numbers.json +57 -0
  702. package/dist/carriers/yamato/status.d.ts +2 -0
  703. package/dist/carriers/yamato/status.js +27 -0
  704. package/dist/carriers/yamato/statuses.json +159 -0
  705. package/dist/carriers/yanwen/adapter.d.ts +13 -0
  706. package/dist/carriers/yanwen/adapter.js +130 -0
  707. package/dist/carriers/yanwen/carrier.json +66 -0
  708. package/dist/carriers/yanwen/numbers.json +45 -0
  709. package/dist/carriers/yanwen/status.d.ts +2 -0
  710. package/dist/carriers/yanwen/status.js +25 -0
  711. package/dist/carriers/yanwen/statuses.json +131 -0
  712. package/dist/carriers/yto/adapter.d.ts +11 -0
  713. package/dist/carriers/yto/adapter.js +36 -0
  714. package/dist/carriers/yto/carrier.json +75 -0
  715. package/dist/carriers/yto/numbers.json +33 -0
  716. package/dist/carriers/yto/parser.d.ts +3 -0
  717. package/dist/carriers/yto/parser.js +92 -0
  718. package/dist/carriers/yto/status.d.ts +10 -0
  719. package/dist/carriers/yto/status.js +46 -0
  720. package/dist/carriers/yto/statuses.json +206 -0
  721. package/dist/carriers/yunda/adapter.d.ts +11 -0
  722. package/dist/carriers/yunda/adapter.js +68 -0
  723. package/dist/carriers/yunda/carrier.json +69 -0
  724. package/dist/carriers/yunda/challenge.d.ts +5 -0
  725. package/dist/carriers/yunda/challenge.js +68 -0
  726. package/dist/carriers/yunda/numbers.json +43 -0
  727. package/dist/carriers/yunda/parser.d.ts +4 -0
  728. package/dist/carriers/yunda/parser.js +105 -0
  729. package/dist/carriers/yunda/status.d.ts +4 -0
  730. package/dist/carriers/yunda/status.js +9 -0
  731. package/dist/carriers/yunda/statuses.json +40 -0
  732. package/dist/carriers/yunexpress/adapter.d.ts +20 -0
  733. package/dist/carriers/yunexpress/adapter.js +240 -0
  734. package/dist/carriers/yunexpress/carrier.json +69 -0
  735. package/dist/carriers/yunexpress/numbers.json +32 -0
  736. package/dist/carriers/yunexpress/status.d.ts +2 -0
  737. package/dist/carriers/yunexpress/status.js +23 -0
  738. package/dist/carriers/yunexpress/statuses.json +112 -0
  739. package/dist/carriers/zto/carrier.json +37 -0
  740. package/dist/carriers/zto/numbers.json +30 -0
  741. package/dist/cli/index.d.ts +2 -0
  742. package/dist/cli/index.js +82 -0
  743. package/dist/core/adapter/index.d.ts +90 -0
  744. package/dist/core/adapter/index.js +103 -0
  745. package/dist/core/adapter/track.d.ts +10 -0
  746. package/dist/core/adapter/track.js +20 -0
  747. package/dist/core/catalog/amazon.d.ts +5 -0
  748. package/dist/core/catalog/amazon.js +33 -0
  749. package/dist/core/catalog/definitions.d.ts +24 -0
  750. package/dist/core/catalog/definitions.js +44 -0
  751. package/dist/core/catalog/handoff.d.ts +9 -0
  752. package/dist/core/catalog/handoff.js +56 -0
  753. package/dist/core/catalog/hints.d.ts +45 -0
  754. package/dist/core/catalog/hints.js +162 -0
  755. package/dist/core/catalog/index.d.ts +38 -0
  756. package/dist/core/catalog/index.js +223 -0
  757. package/dist/core/catalog/inputs.d.ts +6 -0
  758. package/dist/core/catalog/inputs.js +89 -0
  759. package/dist/core/catalog/linkRules.d.ts +24 -0
  760. package/dist/core/catalog/linkRules.js +20 -0
  761. package/dist/core/catalog/networks.d.ts +9 -0
  762. package/dist/core/catalog/networks.js +13 -0
  763. package/dist/core/catalog/recognition.d.ts +22 -0
  764. package/dist/core/catalog/recognition.js +52 -0
  765. package/dist/core/catalog/types.d.ts +135 -0
  766. package/dist/core/catalog/types.js +1 -0
  767. package/dist/core/catalog/urls.d.ts +2 -0
  768. package/dist/core/catalog/urls.js +125 -0
  769. package/dist/core/detection/amazon.d.ts +2 -0
  770. package/dist/core/detection/amazon.js +14 -0
  771. package/dist/core/detection/candidates.d.ts +5 -0
  772. package/dist/core/detection/candidates.js +41 -0
  773. package/dist/core/detection/detect.d.ts +17 -0
  774. package/dist/core/detection/detect.js +52 -0
  775. package/dist/core/detection/gls.d.ts +16 -0
  776. package/dist/core/detection/gls.js +21 -0
  777. package/dist/core/detection/hermes.d.ts +14 -0
  778. package/dist/core/detection/hermes.js +19 -0
  779. package/dist/core/detection/index.d.ts +19 -0
  780. package/dist/core/detection/index.js +9 -0
  781. package/dist/core/detection/mondialRelay.d.ts +13 -0
  782. package/dist/core/detection/mondialRelay.js +25 -0
  783. package/dist/core/detection/normalize.d.ts +15 -0
  784. package/dist/core/detection/normalize.js +39 -0
  785. package/dist/core/detection/parse.d.ts +6 -0
  786. package/dist/core/detection/parse.js +112 -0
  787. package/dist/core/detection/s10.d.ts +4 -0
  788. package/dist/core/detection/s10.js +25 -0
  789. package/dist/core/detection/types.d.ts +22 -0
  790. package/dist/core/detection/types.js +1 -0
  791. package/dist/core/errors/hint.d.ts +7 -0
  792. package/dist/core/errors/hint.js +7 -0
  793. package/dist/core/errors/index.d.ts +98 -0
  794. package/dist/core/errors/index.js +178 -0
  795. package/dist/core/recognition/index.d.ts +24 -0
  796. package/dist/core/recognition/index.js +65 -0
  797. package/dist/core/result/index.d.ts +57 -0
  798. package/dist/core/result/index.js +114 -0
  799. package/dist/core/result/resolve.d.ts +18 -0
  800. package/dist/core/result/resolve.js +49 -0
  801. package/dist/core/runner/index.d.ts +33 -0
  802. package/dist/core/runner/index.js +109 -0
  803. package/dist/core/status/index.d.ts +22 -0
  804. package/dist/core/status/index.js +3 -0
  805. package/dist/core/status/language.d.ts +11 -0
  806. package/dist/core/status/language.js +149 -0
  807. package/dist/core/status/wording.d.ts +25 -0
  808. package/dist/core/status/wording.js +91 -0
  809. package/dist/core/telemetry/index.d.ts +62 -0
  810. package/dist/core/telemetry/index.js +55 -0
  811. package/dist/core/time/index.d.ts +84 -0
  812. package/dist/core/time/index.js +243 -0
  813. package/dist/core/time/result.d.ts +5 -0
  814. package/dist/core/time/result.js +55 -0
  815. package/dist/core/transport/boundedFetch.d.ts +26 -0
  816. package/dist/core/transport/boundedFetch.js +152 -0
  817. package/dist/core/transport/browser.d.ts +14 -0
  818. package/dist/core/transport/browser.js +113 -0
  819. package/dist/core/transport/index.d.ts +8 -0
  820. package/dist/core/transport/index.js +5 -0
  821. package/dist/core/transport/optional.d.ts +2 -0
  822. package/dist/core/transport/optional.js +17 -0
  823. package/dist/core/transport/text.d.ts +8 -0
  824. package/dist/core/transport/text.js +18 -0
  825. package/dist/core/transport/trawl.d.ts +80 -0
  826. package/dist/core/transport/trawl.js +212 -0
  827. package/dist/core/transport/upstreamHttpDiagnostics.d.ts +16 -0
  828. package/dist/core/transport/upstreamHttpDiagnostics.js +97 -0
  829. package/dist/core/types.d.ts +8 -0
  830. package/dist/core/types.js +11 -0
  831. package/dist/data/catalog.json +3969 -0
  832. package/dist/facade/index.d.ts +57 -0
  833. package/dist/facade/index.js +195 -0
  834. package/dist/generated/catalog.d.ts +2671 -0
  835. package/dist/generated/catalog.js +4090 -0
  836. package/dist/generated/recognition.d.ts +2 -0
  837. package/dist/generated/recognition.js +31 -0
  838. package/dist/generated/regionTowns.d.ts +2 -0
  839. package/dist/generated/regionTowns.js +11 -0
  840. package/dist/generated/registry.d.ts +4 -0
  841. package/dist/generated/registry.js +286 -0
  842. package/dist/index.d.ts +19 -0
  843. package/dist/index.js +18 -0
  844. package/dist/node.d.ts +11 -0
  845. package/dist/node.js +11 -0
  846. package/dist/places/countries.json +1670 -0
  847. package/dist/places/facilities.json +11 -0
  848. package/dist/places/index.d.ts +42 -0
  849. package/dist/places/index.js +307 -0
  850. package/dist/places/names.d.mts +15 -0
  851. package/dist/places/names.mjs +36 -0
  852. package/dist/places/places.tsv.br +0 -0
  853. package/dist/places/trackingLocation.d.ts +18 -0
  854. package/dist/places/trackingLocation.js +89 -0
  855. package/dist/providers/coverage.d.ts +31 -0
  856. package/dist/providers/coverage.js +70 -0
  857. package/dist/providers/coverage.json +1744 -0
  858. package/dist/providers/parcelsapp/adapter.d.ts +23 -0
  859. package/dist/providers/parcelsapp/adapter.js +391 -0
  860. package/dist/providers/parcelsapp/http.d.ts +9 -0
  861. package/dist/providers/parcelsapp/http.js +67 -0
  862. package/dist/providers/plan.d.ts +38 -0
  863. package/dist/providers/plan.js +54 -0
  864. package/dist/providers/postal-ninja/adapter.d.ts +17 -0
  865. package/dist/providers/postal-ninja/adapter.js +200 -0
  866. package/dist/providers/seventeentrack/adapter.d.ts +50 -0
  867. package/dist/providers/seventeentrack/adapter.js +165 -0
  868. package/dist/providers/seventeentrack/events.d.ts +4 -0
  869. package/dist/providers/seventeentrack/events.js +56 -0
  870. package/dist/providers/shared/capture.d.ts +46 -0
  871. package/dist/providers/shared/capture.js +92 -0
  872. package/dist/providers/shared/hints.d.ts +16 -0
  873. package/dist/providers/shared/hints.js +37 -0
  874. package/dist/providers/shared/result.d.ts +15 -0
  875. package/dist/providers/shared/result.js +161 -0
  876. package/dist/providers/shared/scans.d.ts +22 -0
  877. package/dist/providers/shared/scans.js +29 -0
  878. package/dist/providers/ship24/adapter.d.ts +17 -0
  879. package/dist/providers/ship24/adapter.js +140 -0
  880. package/dist/providers/ship24/http.d.ts +7 -0
  881. package/dist/providers/ship24/http.js +75 -0
  882. package/dist/providers/types.d.ts +1 -0
  883. package/dist/providers/types.js +1 -0
  884. package/dist/providers/universal.d.ts +66 -0
  885. package/dist/providers/universal.js +95 -0
  886. package/dist/providers/upu/adapter.d.ts +5 -0
  887. package/dist/providers/upu/adapter.js +107 -0
  888. package/dist/scripts/canary-report.d.mts +22 -0
  889. package/dist/scripts/canary-report.mjs +69 -0
  890. package/dist/scripts/carrier-canary.d.ts +50 -0
  891. package/dist/scripts/carrier-canary.js +220 -0
  892. package/dist/server/index.d.ts +20 -0
  893. package/dist/server/index.js +226 -0
  894. package/dist/server/openapi.json +487 -0
  895. package/dist/server/page.d.ts +1 -0
  896. package/dist/server/page.js +33 -0
  897. package/package.json +102 -4
@@ -0,0 +1,4090 @@
1
+ /* Generated by scripts/generate-catalog.mjs. Do not edit. */
2
+ export const CARRIER_CATALOG = {
3
+ "swiss-post": {
4
+ "displayName": "Swiss Post",
5
+ "color": "#ffcc00",
6
+ "aliases": [
7
+ "Die Post",
8
+ "La Poste Suisse",
9
+ "La Posta Svizzera",
10
+ "Swiss Post Ltd"
11
+ ],
12
+ "countries": [
13
+ "CH",
14
+ "LI"
15
+ ],
16
+ "selectable": true,
17
+ "timezone": "Europe/Zurich",
18
+ "tracking": {
19
+ "mode": "automatic",
20
+ "adapter": "swiss-post"
21
+ },
22
+ "canaryUrl": "https://service.post.ch/",
23
+ "trackingUrlTemplate": "https://service.post.ch/ekp-web/ui/entry/search/{trackingNumber}",
24
+ "linkRules": [
25
+ {
26
+ "domains": [
27
+ "service.post.ch"
28
+ ],
29
+ "path": "/entry/search/([^/?#]+)"
30
+ }
31
+ ],
32
+ "detectionRules": [
33
+ {
34
+ "pattern": "^[A-Z]{2}\\d{9}CH$",
35
+ "confidence": "high",
36
+ "checksum": "s10"
37
+ },
38
+ {
39
+ "pattern": "^9[89]\\d{16}$",
40
+ "confidence": "high"
41
+ }
42
+ ]
43
+ },
44
+ "swiss-post-cargo": {
45
+ "displayName": "Swiss Post Cargo",
46
+ "color": "#ffcc00",
47
+ "aliases": [
48
+ "Hugger"
49
+ ],
50
+ "countries": [
51
+ "CH"
52
+ ],
53
+ "selectable": true,
54
+ "timezone": "Europe/Zurich",
55
+ "tracking": {
56
+ "mode": "automatic",
57
+ "adapter": "swiss-post-cargo"
58
+ },
59
+ "canaryUrl": "https://apv.swisspost-cargo.com/public/trackandtrace",
60
+ "trackingUrlTemplate": "https://apv.swisspost-cargo.com/public/trackandtrace/{trackingNumber}",
61
+ "linkRules": [
62
+ {
63
+ "domains": [
64
+ "apv.swisspost-cargo.com"
65
+ ],
66
+ "path": "^/public/trackandtrace/([^/?#]+)/?$"
67
+ }
68
+ ],
69
+ "detectionRules": []
70
+ },
71
+ "quickpac": {
72
+ "displayName": "Quickpac",
73
+ "color": "#ed1c24",
74
+ "countries": [
75
+ "CH"
76
+ ],
77
+ "selectable": true,
78
+ "timezone": "Europe/Zurich",
79
+ "tracking": {
80
+ "mode": "automatic",
81
+ "adapter": "planzer",
82
+ "upstreamName": "Planzer"
83
+ },
84
+ "canaryUrl": "https://tracking.app.planzer.ch/",
85
+ "trackingUrlTemplate": "https://tracking.app.planzer.ch/delivery/info?deliveryNumber={trackingNumber}",
86
+ "linkRules": [
87
+ {
88
+ "domains": [
89
+ "quickpac.ch"
90
+ ],
91
+ "params": [
92
+ "parcel"
93
+ ]
94
+ },
95
+ {
96
+ "domains": [
97
+ "tracking.app.planzer.ch"
98
+ ],
99
+ "params": [
100
+ "deliveryNumber"
101
+ ]
102
+ }
103
+ ],
104
+ "detectionRules": [
105
+ {
106
+ "pattern": "^44\\d{16}$",
107
+ "confidence": "high"
108
+ }
109
+ ]
110
+ },
111
+ "planzer": {
112
+ "displayName": "Planzer",
113
+ "color": "#e30613",
114
+ "aliases": [
115
+ "Planzer Group"
116
+ ],
117
+ "countries": [
118
+ "CH"
119
+ ],
120
+ "selectable": true,
121
+ "timezone": "Europe/Zurich",
122
+ "tracking": {
123
+ "mode": "automatic",
124
+ "adapter": "planzer",
125
+ "upstreamName": "Planzer",
126
+ "requirements": [
127
+ {
128
+ "field": "trackingUrl",
129
+ "validator": "planzerSharedUrl",
130
+ "whenTrackingNumber": "^99990\\d{8}$",
131
+ "label": "Planzer tracking URL",
132
+ "type": "url",
133
+ "placeholder": "https://trackandtrace.planzergroup.com/shared/…",
134
+ "help": "Paste the complete shared link, including its accessKey."
135
+ }
136
+ ]
137
+ },
138
+ "canaryUrl": "https://tracking.app.planzer.ch/",
139
+ "trackingUrlTemplate": "https://tracking.app.planzer.ch/delivery/info?deliveryNumber={trackingNumber}",
140
+ "linkRules": [
141
+ {
142
+ "domains": [
143
+ "trackandtrace.planzergroup.com"
144
+ ],
145
+ "path": "/shared/sendungen/([^/?#]+)",
146
+ "keepsCapabilityUrl": true
147
+ },
148
+ {
149
+ "domains": [
150
+ "tracking.app.planzer.ch"
151
+ ],
152
+ "params": [
153
+ "deliveryNumber"
154
+ ]
155
+ }
156
+ ],
157
+ "detectionRules": [
158
+ {
159
+ "pattern": "^99990\\d{8}$",
160
+ "confidence": "high"
161
+ },
162
+ {
163
+ "pattern": "^91346097\\d{12}$",
164
+ "confidence": "high"
165
+ }
166
+ ]
167
+ },
168
+ "aliexpress": {
169
+ "displayName": "AliExpress / Cainiao",
170
+ "color": "#ff4747",
171
+ "aliases": [
172
+ "Cainiao",
173
+ "AliExpress"
174
+ ],
175
+ "countries": [
176
+ "CN"
177
+ ],
178
+ "selectable": true,
179
+ "timezone": "UTC",
180
+ "tracking": {
181
+ "mode": "automatic",
182
+ "adapter": "aliexpress",
183
+ "upstreamName": "AliExpress"
184
+ },
185
+ "canaryUrl": "https://global.cainiao.com/",
186
+ "trackingUrlTemplate": "https://global.cainiao.com/detail.htm?mailNoList={trackingNumber}",
187
+ "linkRules": [
188
+ {
189
+ "domains": [
190
+ "global.cainiao.com"
191
+ ],
192
+ "params": [
193
+ "mailNoList"
194
+ ]
195
+ }
196
+ ],
197
+ "detectionRules": []
198
+ },
199
+ "sunyou": {
200
+ "displayName": "SunYou",
201
+ "color": "#f39800",
202
+ "aliases": [
203
+ "SYPost"
204
+ ],
205
+ "countries": [
206
+ "CN"
207
+ ],
208
+ "selectable": true,
209
+ "timezone": "UTC",
210
+ "tracking": {
211
+ "mode": "automatic",
212
+ "adapter": "sunyou"
213
+ },
214
+ "canaryUrl": "https://sypost.net/",
215
+ "trackingUrlTemplate": "https://sypost.net/search?orderNo={trackingNumber}",
216
+ "linkRules": [
217
+ {
218
+ "domains": [
219
+ "sypost.net"
220
+ ],
221
+ "params": [
222
+ "orderNo",
223
+ "trackNumber"
224
+ ]
225
+ }
226
+ ],
227
+ "detectionRules": [
228
+ {
229
+ "pattern": "^SY\\d{11}$",
230
+ "confidence": "high"
231
+ },
232
+ {
233
+ "pattern": "^SYAE\\d{9}$",
234
+ "confidence": "high"
235
+ }
236
+ ]
237
+ },
238
+ "hermes": {
239
+ "displayName": "Hermes Einrichtungs-Service",
240
+ "color": "#0091cd",
241
+ "aliases": [
242
+ "HES",
243
+ "Hermes Einrichtungsservice"
244
+ ],
245
+ "countries": [
246
+ "DE"
247
+ ],
248
+ "selectable": true,
249
+ "timezone": "Europe/Berlin",
250
+ "tracking": {
251
+ "mode": "automatic",
252
+ "adapter": "hermes"
253
+ },
254
+ "canaryUrl": "https://myhes.de/",
255
+ "trackingUrlTemplate": "https://myhes.de/",
256
+ "linkRules": [],
257
+ "detectionRules": []
258
+ },
259
+ "spring-gds": {
260
+ "displayName": "PostNL",
261
+ "color": "#ef7d00",
262
+ "aliases": [
263
+ "Spring GDS",
264
+ "Mailing Technology"
265
+ ],
266
+ "countries": [
267
+ "NL"
268
+ ],
269
+ "selectable": true,
270
+ "timezone": "Europe/Amsterdam",
271
+ "tracking": {
272
+ "mode": "automatic",
273
+ "adapter": "spring-gds",
274
+ "refresh": {
275
+ "minMinutes": 30
276
+ },
277
+ "localClocks": true
278
+ },
279
+ "canaryUrl": "https://postnl.post/",
280
+ "trackingUrlTemplate": "https://postnl.post/track?barcodes={trackingNumber}",
281
+ "linkRules": [
282
+ {
283
+ "domains": [
284
+ "postnl.post"
285
+ ],
286
+ "pathPattern": "^/track/?$",
287
+ "params": [
288
+ "barcodes"
289
+ ]
290
+ },
291
+ {
292
+ "domains": [
293
+ "mailingtechnology.com"
294
+ ],
295
+ "pathPattern": "^/tracking/?$",
296
+ "params": [
297
+ "tn"
298
+ ]
299
+ },
300
+ {
301
+ "domains": [
302
+ "postnl.post"
303
+ ],
304
+ "path": "/details/([^/?#]+)"
305
+ }
306
+ ],
307
+ "detectionRules": [
308
+ {
309
+ "pattern": "^(?!(?:PZ|XU|XW|XY))[A-Z]{2}\\d{9}NL$",
310
+ "confidence": "high",
311
+ "checksum": "s10"
312
+ },
313
+ {
314
+ "pattern": "^(?=.{13}$|.{15}$)3S[A-Z]{1,4}\\d+$",
315
+ "confidence": "high"
316
+ }
317
+ ]
318
+ },
319
+ "postlogistics": {
320
+ "displayName": "PostLogistics",
321
+ "color": "#ffcc00",
322
+ "countries": [
323
+ "CH"
324
+ ],
325
+ "selectable": true,
326
+ "timezone": "Europe/Zurich",
327
+ "tracking": {
328
+ "mode": "automatic",
329
+ "adapter": "postlogistics",
330
+ "recognitionRank": 26
331
+ },
332
+ "canaryUrl": "https://tracking.postlogistics.ch/public/trackandtrace",
333
+ "trackingUrlTemplate": "https://tracking.postlogistics.ch/public/trackandtrace/{trackingNumber}",
334
+ "linkRules": [
335
+ {
336
+ "domains": [
337
+ "tracking.postlogistics.ch"
338
+ ],
339
+ "path": "^/public/trackandtrace/([^/?#]+)/?$"
340
+ }
341
+ ],
342
+ "detectionRules": [
343
+ {
344
+ "pattern": "^\\d{11}$",
345
+ "confidence": "high",
346
+ "rawPattern": "^\\d{8}-\\d{3}$"
347
+ },
348
+ {
349
+ "pattern": "^\\d{11}$",
350
+ "confidence": "low"
351
+ }
352
+ ]
353
+ },
354
+ "dachser": {
355
+ "displayName": "Dachser",
356
+ "color": "#005ca9",
357
+ "aliases": [
358
+ "Dachser SE",
359
+ "Dachser Customer Iberia"
360
+ ],
361
+ "countries": [
362
+ "ES",
363
+ "PT"
364
+ ],
365
+ "selectable": true,
366
+ "timezone": "Europe/Madrid",
367
+ "tracking": {
368
+ "mode": "automatic",
369
+ "adapter": "dachser",
370
+ "requirements": [
371
+ {
372
+ "field": "trackingUrl",
373
+ "validator": "dachserCapabilityUrl",
374
+ "label": "Dachser tracking URL",
375
+ "type": "url",
376
+ "placeholder": "https://customeriberia.dachser.com/customerarea/…",
377
+ "help": "Paste the complete public detail link, including its access parameters."
378
+ }
379
+ ]
380
+ },
381
+ "canaryUrl": "https://customeriberia.dachser.com/customerarea/",
382
+ "linkRules": [
383
+ {
384
+ "domains": [
385
+ "customeriberia.dachser.com"
386
+ ],
387
+ "params": [
388
+ "numeroUnico"
389
+ ],
390
+ "keepsCapabilityUrl": true
391
+ }
392
+ ],
393
+ "detectionRules": []
394
+ },
395
+ "dhl": {
396
+ "displayName": "DHL",
397
+ "color": "#ffcc00",
398
+ "aliases": [
399
+ "DHL Paket",
400
+ "Deutsche Post DHL"
401
+ ],
402
+ "countries": [
403
+ "DE"
404
+ ],
405
+ "selectable": true,
406
+ "timezone": "Europe/Berlin",
407
+ "tracking": {
408
+ "mode": "automatic",
409
+ "adapter": "dhl"
410
+ },
411
+ "canaryUrl": "https://www.dhl.de/en/privatkunden/dhl-sendungsverfolgung.html",
412
+ "trackingUrlTemplate": "https://www.dhl.de/en/privatkunden/dhl-sendungsverfolgung.html?piececode={trackingNumber}",
413
+ "linkRules": [
414
+ {
415
+ "domains": [
416
+ "dhl.com",
417
+ "dhl.de",
418
+ "deutschepost.de"
419
+ ],
420
+ "params": [
421
+ "tracking-id",
422
+ "trackingId",
423
+ "piececode"
424
+ ]
425
+ }
426
+ ],
427
+ "detectionRules": [
428
+ {
429
+ "pattern": "^[CL][A-Z]\\d{9}DE$",
430
+ "confidence": "high",
431
+ "checksum": "s10"
432
+ },
433
+ {
434
+ "pattern": "^(JJD|JVGL)[A-Z0-9]{8,}$",
435
+ "confidence": "high"
436
+ },
437
+ {
438
+ "pattern": "^\\d{10}$",
439
+ "confidence": "low"
440
+ },
441
+ {
442
+ "pattern": "^JD\\d{18}$",
443
+ "confidence": "high"
444
+ },
445
+ {
446
+ "pattern": "^00340434\\d{12}$",
447
+ "confidence": "high"
448
+ }
449
+ ]
450
+ },
451
+ "dhl-ecommerce": {
452
+ "displayName": "DHL eCommerce",
453
+ "color": "#ffcc00",
454
+ "aliases": [
455
+ "DHL eCommerce Solutions",
456
+ "DHL Global Mail"
457
+ ],
458
+ "countries": [
459
+ "DE",
460
+ "NL",
461
+ "US"
462
+ ],
463
+ "selectable": true,
464
+ "timezone": "UTC",
465
+ "tracking": {
466
+ "mode": "automatic",
467
+ "adapter": "dhl-ecommerce"
468
+ },
469
+ "canaryUrl": "https://www.dhl.com/ch-en/home/tracking.html",
470
+ "trackingUrlTemplate": "https://www.dhl.com/ch-en/home/tracking.html?tracking-id={trackingNumber}&submit=1",
471
+ "linkRules": [
472
+ {
473
+ "domains": [
474
+ "ecommerceportal.dhl.com",
475
+ "webtrack.dhlglobalmail.com"
476
+ ],
477
+ "params": [
478
+ "tracking-id",
479
+ "trackingNumber",
480
+ "tracking",
481
+ "ID"
482
+ ]
483
+ },
484
+ {
485
+ "domains": [
486
+ "dhl.com"
487
+ ],
488
+ "pathPattern": "/home/tracking[.]html$",
489
+ "params": [
490
+ "tracking-id",
491
+ "trackingId"
492
+ ]
493
+ }
494
+ ],
495
+ "detectionRules": [
496
+ {
497
+ "pattern": "^GM[0-9]{16,18}$",
498
+ "confidence": "high"
499
+ },
500
+ {
501
+ "pattern": "^[0-9]{16,17}$",
502
+ "confidence": "low"
503
+ }
504
+ ]
505
+ },
506
+ "ups": {
507
+ "displayName": "UPS",
508
+ "color": "#351c15",
509
+ "aliases": [
510
+ "United Parcel Service"
511
+ ],
512
+ "selectable": true,
513
+ "timezone": "UTC",
514
+ "tracking": {
515
+ "mode": "automatic",
516
+ "adapter": "ups"
517
+ },
518
+ "canaryUrl": "https://www.ups.com/assets/resources/webcontent/en_US/terms_service.pdf",
519
+ "trackingUrlTemplate": "https://www.ups.com/track?tracknum={trackingNumber}",
520
+ "linkRules": [
521
+ {
522
+ "domains": [
523
+ "ups.com"
524
+ ],
525
+ "params": [
526
+ "tracknum",
527
+ "trackNums"
528
+ ]
529
+ }
530
+ ],
531
+ "detectionRules": [
532
+ {
533
+ "pattern": "^1Z[A-Z0-9]{16}$",
534
+ "confidence": "high"
535
+ },
536
+ {
537
+ "pattern": "^[KJV]\\d{10}$",
538
+ "confidence": "low"
539
+ }
540
+ ]
541
+ },
542
+ "amazon-logistics": {
543
+ "displayName": "Amazon Logistics",
544
+ "color": "#ff9900",
545
+ "aliases": [
546
+ "AMZL",
547
+ "Amazon Logistik"
548
+ ],
549
+ "countries": [
550
+ "FR",
551
+ "DE",
552
+ "BE",
553
+ "GB",
554
+ "IT",
555
+ "ES",
556
+ "NL",
557
+ "AT",
558
+ "IE",
559
+ "PL",
560
+ "SE",
561
+ "PT",
562
+ "LU",
563
+ "DK",
564
+ "FI",
565
+ "CZ",
566
+ "SK",
567
+ "HU",
568
+ "RO",
569
+ "BG",
570
+ "HR",
571
+ "SI",
572
+ "EE",
573
+ "LV",
574
+ "LT",
575
+ "GR",
576
+ "CY",
577
+ "MT",
578
+ "CH",
579
+ "NO",
580
+ "IS",
581
+ "LI",
582
+ "TR",
583
+ "US"
584
+ ],
585
+ "selectable": true,
586
+ "timezone": "UTC",
587
+ "tracking": {
588
+ "mode": "link-only",
589
+ "adapter": null
590
+ },
591
+ "trackingUrlTemplate": "https://www.amazon.com/gp/your-account/order-history",
592
+ "linkRules": [
593
+ {
594
+ "domains": [
595
+ "track.amazon.fr",
596
+ "track.amazon.it",
597
+ "track.amazon.es",
598
+ "track.amazon.co.uk",
599
+ "track.amazon.com"
600
+ ],
601
+ "path": "^/tracking/([^/?#]+)/?$",
602
+ "detectFromNumber": true
603
+ }
604
+ ],
605
+ "detectionRules": [
606
+ {
607
+ "pattern": "^(?:(?:FR|DE|BE|UK|GB|IT|ES|NL|AT|IE|PL|SE|PT|LU|DK|FI|CZ|SK|HU|RO|BG|HR|SI|EE|LV|LT|GR|CY|MT|CH|NO|IS|LI|TR)[0-9]{10}|TBA[0-9]{12})$",
608
+ "confidence": "high"
609
+ }
610
+ ]
611
+ },
612
+ "amazon-shipping": {
613
+ "displayName": "Amazon Shipping",
614
+ "color": "#ff9900",
615
+ "aliases": [
616
+ "Shipping with Amazon",
617
+ "SWA"
618
+ ],
619
+ "countries": [
620
+ "FR",
621
+ "DE",
622
+ "BE",
623
+ "GB",
624
+ "IT",
625
+ "ES",
626
+ "NL",
627
+ "AT",
628
+ "IE",
629
+ "PL",
630
+ "SE",
631
+ "PT",
632
+ "LU",
633
+ "DK",
634
+ "FI",
635
+ "CZ",
636
+ "SK",
637
+ "HU",
638
+ "RO",
639
+ "BG",
640
+ "HR",
641
+ "SI",
642
+ "EE",
643
+ "LV",
644
+ "LT",
645
+ "GR",
646
+ "CY",
647
+ "MT",
648
+ "CH",
649
+ "NO",
650
+ "IS",
651
+ "LI",
652
+ "TR",
653
+ "US"
654
+ ],
655
+ "selectable": false,
656
+ "timezone": "UTC",
657
+ "tracking": {
658
+ "mode": "automatic",
659
+ "adapter": "amazon-shipping"
660
+ },
661
+ "canaryUrl": "https://track.amazon.fr/",
662
+ "trackingUrlTemplate": "https://track.amazon.fr/tracking/{trackingNumber}",
663
+ "linkRules": [],
664
+ "detectionRules": []
665
+ },
666
+ "fedex": {
667
+ "displayName": "FedEx",
668
+ "color": "#4d148c",
669
+ "selectable": true,
670
+ "timezone": "UTC",
671
+ "tracking": {
672
+ "mode": "automatic",
673
+ "adapter": "fedex"
674
+ },
675
+ "canaryUrl": "https://www.fedex.com/fedextrack/",
676
+ "trackingUrlTemplate": "https://www.fedex.com/fedextrack/?trknbr={trackingNumber}",
677
+ "linkRules": [
678
+ {
679
+ "domains": [
680
+ "fedex.com"
681
+ ],
682
+ "params": [
683
+ "trknbr",
684
+ "tracknumbers"
685
+ ]
686
+ }
687
+ ],
688
+ "detectionRules": [
689
+ {
690
+ "pattern": "^\\d{12}$",
691
+ "confidence": "low"
692
+ },
693
+ {
694
+ "pattern": "^\\d{15}$",
695
+ "confidence": "low"
696
+ }
697
+ ]
698
+ },
699
+ "gls-ch": {
700
+ "displayName": "GLS Switzerland",
701
+ "color": "#ffdd00",
702
+ "aliases": [
703
+ "General Logistics Systems",
704
+ "GLS Group"
705
+ ],
706
+ "countries": [
707
+ "CH",
708
+ "LI"
709
+ ],
710
+ "selectable": true,
711
+ "timezone": "Europe/Zurich",
712
+ "tracking": {
713
+ "mode": "automatic",
714
+ "adapter": "gls-ch",
715
+ "requirements": [
716
+ {
717
+ "field": "dpdPostcode",
718
+ "validator": "swissPostcode",
719
+ "label": "Delivery postcode",
720
+ "type": "text",
721
+ "placeholder": "8000",
722
+ "help": "GLS uses the recipient postcode to unlock the detailed event history.",
723
+ "pattern": "^[0-9]{4}$",
724
+ "maxLength": 4,
725
+ "inputMode": "numeric",
726
+ "autoComplete": "postal-code"
727
+ }
728
+ ],
729
+ "recognitionRank": 60,
730
+ "refresh": {
731
+ "minMinutes": 60,
732
+ "afterFailureMinutes": 240
733
+ }
734
+ },
735
+ "canaryUrl": "https://gls-group.eu/EU/en/parcel-tracking",
736
+ "trackingUrlTemplate": "https://gls-group.eu/EU/en/parcel-tracking?match={trackingNumber}",
737
+ "linkRules": [
738
+ {
739
+ "domains": [
740
+ "gls-group.eu"
741
+ ],
742
+ "params": [
743
+ "match",
744
+ "parcelNumber",
745
+ "matchParcelNumber"
746
+ ],
747
+ "pathPattern": "^/(?:EU|CH)/"
748
+ }
749
+ ],
750
+ "detectionRules": [
751
+ {
752
+ "pattern": "^(?=[A-Z0-9]{8}$)(?=.*[A-Z])(?=.*\\d)[A-Z0-9]{8}$",
753
+ "confidence": "low"
754
+ },
755
+ {
756
+ "pattern": "^\\d{11}$",
757
+ "confidence": "low"
758
+ },
759
+ {
760
+ "pattern": "^\\d{12}$",
761
+ "confidence": "low",
762
+ "checksum": "gls"
763
+ }
764
+ ]
765
+ },
766
+ "dpd": {
767
+ "displayName": "DPD",
768
+ "color": "#dc0032",
769
+ "aliases": [
770
+ "DPD Switzerland",
771
+ "DPD (Schweiz) AG",
772
+ "myDPD"
773
+ ],
774
+ "countries": [
775
+ "CH"
776
+ ],
777
+ "selectable": true,
778
+ "timezone": "Europe/Zurich",
779
+ "tracking": {
780
+ "mode": "automatic",
781
+ "adapter": "dpd",
782
+ "requirements": [
783
+ {
784
+ "field": "dpdPostcode",
785
+ "validator": "swissPostcode",
786
+ "optional": true,
787
+ "label": "Delivery postcode",
788
+ "type": "text",
789
+ "placeholder": "8000",
790
+ "help": "Optional. DPD uses it to unlock verified scans and the delivery window.",
791
+ "pattern": "^[0-9]{4}$",
792
+ "maxLength": 4,
793
+ "inputMode": "numeric",
794
+ "autoComplete": "postal-code"
795
+ }
796
+ ],
797
+ "recognitionRank": 70
798
+ },
799
+ "canaryUrl": "https://www.dpdgroup.com/ch/mydpd/my-parcels/incoming",
800
+ "trackingUrlTemplate": "https://www.dpdgroup.com/ch/mydpd/my-parcels/incoming?parcelNumber={trackingNumber}",
801
+ "linkRules": [
802
+ {
803
+ "domains": [
804
+ "dpdgroup.com",
805
+ "dpd.com"
806
+ ],
807
+ "params": [
808
+ "parcelNumber",
809
+ "parcelnumber"
810
+ ]
811
+ }
812
+ ],
813
+ "detectionRules": [
814
+ {
815
+ "pattern": "^06(?:0[6-9]|1\\d)\\d{10}$",
816
+ "confidence": "low",
817
+ "preferred": true
818
+ },
819
+ {
820
+ "pattern": "^\\d{14}$",
821
+ "confidence": "low"
822
+ }
823
+ ]
824
+ },
825
+ "dpd-fr": {
826
+ "displayName": "DPD France",
827
+ "color": "#dc0032",
828
+ "aliases": [
829
+ "Exapaq"
830
+ ],
831
+ "countries": [
832
+ "FR"
833
+ ],
834
+ "selectable": true,
835
+ "timezone": "Europe/Paris",
836
+ "tracking": {
837
+ "mode": "automatic",
838
+ "adapter": "dpd-fr"
839
+ },
840
+ "canaryUrl": "https://trace.dpd.fr/fr/trace",
841
+ "trackingUrlTemplate": "https://trace.dpd.fr/fr/trace/{trackingNumber}",
842
+ "linkRules": [
843
+ {
844
+ "domains": [
845
+ "trace.dpd.fr"
846
+ ],
847
+ "path": "^/(?:fr/trace|trace-particuliers)/([^/?#]+)/?$"
848
+ }
849
+ ],
850
+ "detectionRules": [
851
+ {
852
+ "pattern": "^250\\d{12}$",
853
+ "confidence": "high"
854
+ },
855
+ {
856
+ "pattern": "^10\\d{12}$",
857
+ "confidence": "low",
858
+ "preferred": true
859
+ },
860
+ {
861
+ "pattern": "^(?:[01]\\d{11,14}|250\\d{9,11})$",
862
+ "confidence": "low"
863
+ }
864
+ ]
865
+ },
866
+ "mondial-relay": {
867
+ "displayName": "Mondial Relay",
868
+ "color": "#ef3026",
869
+ "countries": [
870
+ "FR",
871
+ "BE",
872
+ "ES",
873
+ "LU",
874
+ "PT"
875
+ ],
876
+ "selectable": true,
877
+ "timezone": "Europe/Paris",
878
+ "tracking": {
879
+ "mode": "automatic",
880
+ "adapter": "mondial-relay",
881
+ "requirements": [
882
+ {
883
+ "field": "dpdPostcode",
884
+ "whenTrackingNumber": "^(?![0-9]{26}$).*$",
885
+ "validator": "francePostcode",
886
+ "label": "Delivery postcode",
887
+ "type": "text",
888
+ "placeholder": "75001",
889
+ "help": "Short Mondial Relay shipment numbers require the recipient postcode; validated 26-digit label barcodes do not.",
890
+ "pattern": "^[0-9]{5}$",
891
+ "maxLength": 5,
892
+ "inputMode": "numeric",
893
+ "autoComplete": "postal-code"
894
+ }
895
+ ]
896
+ },
897
+ "canaryUrl": "https://www.mondialrelay.fr/suivi-de-colis/",
898
+ "trackingUrlTemplate": "https://www.mondialrelay.fr/suivi-de-colis/?numeroExpedition={trackingNumber}",
899
+ "linkRules": [
900
+ {
901
+ "domains": [
902
+ "mondialrelay.fr"
903
+ ],
904
+ "params": [
905
+ "shipment",
906
+ "numeroExpedition",
907
+ "numero",
908
+ "trackingNumber"
909
+ ]
910
+ }
911
+ ],
912
+ "detectionRules": [
913
+ {
914
+ "pattern": "^[0-9]{26}$",
915
+ "confidence": "high",
916
+ "checksum": "mondial-relay"
917
+ },
918
+ {
919
+ "pattern": "^(?:\\d{8}|\\d{10}|\\d{12})$",
920
+ "confidence": "low"
921
+ }
922
+ ]
923
+ },
924
+ "relais-colis": {
925
+ "displayName": "Relais Colis",
926
+ "color": "#7bb928",
927
+ "aliases": [
928
+ "Relais Colis (Groupe Ducros)"
929
+ ],
930
+ "countries": [
931
+ "FR"
932
+ ],
933
+ "selectable": true,
934
+ "timezone": "Europe/Paris",
935
+ "tracking": {
936
+ "mode": "automatic",
937
+ "adapter": "relais-colis",
938
+ "recognitionRank": 25,
939
+ "localClocks": true
940
+ },
941
+ "canaryUrl": "https://www.relaiscolis.com/colis/suivre",
942
+ "trackingUrlTemplate": "https://www.relaiscolis.com/colis/suivre?tracking_number={trackingNumber}",
943
+ "linkRules": [
944
+ {
945
+ "domains": [
946
+ "relaiscolis.com"
947
+ ],
948
+ "params": [
949
+ "tracking_number",
950
+ "trackingNumber",
951
+ "numeroColis",
952
+ "numColis"
953
+ ]
954
+ }
955
+ ],
956
+ "detectionRules": [
957
+ {
958
+ "pattern": "^CC\\d{10,14}$",
959
+ "confidence": "high"
960
+ },
961
+ {
962
+ "pattern": "^\\d{10}$",
963
+ "confidence": "low"
964
+ }
965
+ ]
966
+ },
967
+ "la-poste": {
968
+ "displayName": "La Poste / Colissimo",
969
+ "color": "#ffcf00",
970
+ "aliases": [
971
+ "Colissimo"
972
+ ],
973
+ "countries": [
974
+ "FR"
975
+ ],
976
+ "selectable": true,
977
+ "timezone": "Europe/Paris",
978
+ "tracking": {
979
+ "mode": "automatic",
980
+ "adapter": "la-poste",
981
+ "recognitionRank": 80
982
+ },
983
+ "canaryUrl": "https://www.laposte.fr/outils/suivre-vos-envois",
984
+ "trackingUrlTemplate": "https://www.laposte.fr/outils/suivre-vos-envois?code={trackingNumber}",
985
+ "linkRules": [
986
+ {
987
+ "domains": [
988
+ "laposte.fr"
989
+ ],
990
+ "params": [
991
+ "code",
992
+ "idShip",
993
+ "idship"
994
+ ]
995
+ }
996
+ ],
997
+ "detectionRules": [
998
+ {
999
+ "pattern": "^[68][A-Z]\\d{11}$",
1000
+ "confidence": "high"
1001
+ },
1002
+ {
1003
+ "pattern": "^[A-Z0-9]{2}\\d{11}$",
1004
+ "confidence": "low"
1005
+ },
1006
+ {
1007
+ "pattern": "^(?!(?:PZ|XU|XW|XY))[A-Z]{2}\\d{9}FR$",
1008
+ "confidence": "high",
1009
+ "checksum": "s10"
1010
+ }
1011
+ ]
1012
+ },
1013
+ "chronopost": {
1014
+ "displayName": "Chronopost",
1015
+ "color": "#0056a7",
1016
+ "aliases": [
1017
+ "Chrono Shop2Shop"
1018
+ ],
1019
+ "countries": [
1020
+ "FR"
1021
+ ],
1022
+ "selectable": true,
1023
+ "timezone": "Europe/Paris",
1024
+ "tracking": {
1025
+ "mode": "automatic",
1026
+ "adapter": "la-poste",
1027
+ "recognitionRank": 45
1028
+ },
1029
+ "canaryUrl": "https://www.chronopost.fr/tracking-no-cms/suivi-page",
1030
+ "trackingUrlTemplate": "https://www.chronopost.fr/tracking-no-cms/suivi-page?langue=fr&listeNumerosLT={trackingNumber}",
1031
+ "linkRules": [
1032
+ {
1033
+ "domains": [
1034
+ "chronopost.fr",
1035
+ "chronotrace.chronopost.fr",
1036
+ "chronoshop2shop.fr"
1037
+ ],
1038
+ "params": [
1039
+ "listeNumerosLT",
1040
+ "listeNumeros",
1041
+ "numeroLT"
1042
+ ]
1043
+ }
1044
+ ],
1045
+ "detectionRules": [
1046
+ {
1047
+ "pattern": "^(?:PZ|XU|XW|XY)\\d{9}[A-Z]{2}$",
1048
+ "confidence": "high",
1049
+ "checksum": "s10"
1050
+ },
1051
+ {
1052
+ "pattern": "^\\d{14}[A-Z]$",
1053
+ "confidence": "low"
1054
+ },
1055
+ {
1056
+ "pattern": "^[A-Z]{2}\\d{9}[A-Z]{2}$",
1057
+ "confidence": "low"
1058
+ }
1059
+ ]
1060
+ },
1061
+ "gls-fr": {
1062
+ "displayName": "GLS France",
1063
+ "color": "#ffdd00",
1064
+ "aliases": [
1065
+ "General Logistics Systems France"
1066
+ ],
1067
+ "countries": [
1068
+ "FR"
1069
+ ],
1070
+ "selectable": true,
1071
+ "timezone": "Europe/Paris",
1072
+ "tracking": {
1073
+ "mode": "automatic",
1074
+ "adapter": "gls-fr",
1075
+ "refresh": {
1076
+ "minMinutes": 60,
1077
+ "afterFailureMinutes": 240
1078
+ }
1079
+ },
1080
+ "canaryUrl": "https://moncolis.gls-france.com/fr/",
1081
+ "trackingUrlTemplate": "https://moncolis.gls-france.com/fr/{trackingNumber}",
1082
+ "linkRules": [
1083
+ {
1084
+ "domains": [
1085
+ "moncolis.gls-france.com",
1086
+ "gls-france.com"
1087
+ ],
1088
+ "path": "^/fr/([^/?#]+)/?$"
1089
+ },
1090
+ {
1091
+ "domains": [
1092
+ "gls-group.com",
1093
+ "gls-group.eu"
1094
+ ],
1095
+ "params": [
1096
+ "match",
1097
+ "parcelNumber",
1098
+ "matchParcelNumber"
1099
+ ],
1100
+ "pathPattern": "^/FR/"
1101
+ }
1102
+ ],
1103
+ "detectionRules": [
1104
+ {
1105
+ "pattern": "^00(?=[A-Z0-9]{6}$)(?=.*[A-Z])(?=.*\\d)[A-Z0-9]{6}$",
1106
+ "confidence": "high"
1107
+ },
1108
+ {
1109
+ "pattern": "^(?=[A-Z0-9]{8}$)(?=.*[A-Z])(?=.*\\d)[A-Z0-9]{8}$",
1110
+ "confidence": "low"
1111
+ },
1112
+ {
1113
+ "pattern": "^\\d{11}$",
1114
+ "confidence": "low"
1115
+ },
1116
+ {
1117
+ "pattern": "^\\d{12}$",
1118
+ "confidence": "low",
1119
+ "checksum": "gls"
1120
+ }
1121
+ ]
1122
+ },
1123
+ "colis-prive": {
1124
+ "displayName": "Colis Privé",
1125
+ "color": "#e30613",
1126
+ "aliases": [
1127
+ "Colis Prive"
1128
+ ],
1129
+ "countries": [
1130
+ "FR"
1131
+ ],
1132
+ "selectable": true,
1133
+ "timezone": "Europe/Paris",
1134
+ "tracking": {
1135
+ "mode": "automatic",
1136
+ "adapter": "colis-prive",
1137
+ "recognitionRank": 30
1138
+ },
1139
+ "canaryUrl": "https://colisprive.com/moncolis/pages/DetailColis.aspx",
1140
+ "trackingUrlTemplate": "https://colisprive.com/moncolis/pages/DetailColis.aspx?numColis={trackingNumber}&lang=fr",
1141
+ "linkRules": [
1142
+ {
1143
+ "domains": [
1144
+ "colisprive.com",
1145
+ "colisprive.fr"
1146
+ ],
1147
+ "params": [
1148
+ "numColis"
1149
+ ]
1150
+ }
1151
+ ],
1152
+ "detectionRules": [
1153
+ {
1154
+ "pattern": "^[A-Z0-9]{12}(?:0[1-9]|[1-8]\\d|9[0-5]|97|98)\\d{3}$",
1155
+ "confidence": "low"
1156
+ },
1157
+ {
1158
+ "pattern": "^[A-Z0-9]{12}$",
1159
+ "confidence": "low"
1160
+ }
1161
+ ]
1162
+ },
1163
+ "geodis": {
1164
+ "displayName": "GEODIS",
1165
+ "color": "#00549f",
1166
+ "countries": [
1167
+ "FR"
1168
+ ],
1169
+ "selectable": true,
1170
+ "timezone": "Europe/Paris",
1171
+ "tracking": {
1172
+ "mode": "automatic",
1173
+ "adapter": "geodis"
1174
+ },
1175
+ "canaryUrl": "https://espace-client.geodis.com/services/destinataires/",
1176
+ "trackingUrlTemplate": "https://espace-client.geodis.com/services/destinataires/#/fr/suivi/{trackingNumber}",
1177
+ "linkRules": [
1178
+ {
1179
+ "domains": [
1180
+ "espace-client.geodis.com",
1181
+ "geodis.com"
1182
+ ],
1183
+ "params": [
1184
+ "noSuivi",
1185
+ "trackingNumber"
1186
+ ]
1187
+ }
1188
+ ],
1189
+ "detectionRules": [
1190
+ {
1191
+ "pattern": "^1G[A-Z0-9]{10}$",
1192
+ "confidence": "high"
1193
+ }
1194
+ ]
1195
+ },
1196
+ "colisweb": {
1197
+ "displayName": "Colisweb",
1198
+ "color": "#ff8a00",
1199
+ "countries": [
1200
+ "FR"
1201
+ ],
1202
+ "selectable": true,
1203
+ "timezone": "Europe/Paris",
1204
+ "tracking": {
1205
+ "mode": "automatic",
1206
+ "adapter": "colisweb"
1207
+ },
1208
+ "canaryUrl": "https://www.colisweb.com/suivi-livraison",
1209
+ "trackingUrlTemplate": "https://www.colisweb.com/suivi-livraison?value={trackingNumber}",
1210
+ "linkRules": [
1211
+ {
1212
+ "domains": [
1213
+ "colisweb.com"
1214
+ ],
1215
+ "params": [
1216
+ "value",
1217
+ "trackingNumber"
1218
+ ]
1219
+ }
1220
+ ],
1221
+ "detectionRules": []
1222
+ },
1223
+ "c-chez-vous": {
1224
+ "displayName": "C Chez Vous",
1225
+ "color": "#e50046",
1226
+ "aliases": [
1227
+ "CChezVous"
1228
+ ],
1229
+ "countries": [
1230
+ "FR"
1231
+ ],
1232
+ "selectable": true,
1233
+ "timezone": "Europe/Paris",
1234
+ "tracking": {
1235
+ "mode": "automatic",
1236
+ "adapter": "c-chez-vous"
1237
+ },
1238
+ "canaryUrl": "https://www.cchezvous.fr/suivi-colis",
1239
+ "trackingUrlTemplate": "https://www.cchezvous.fr/suivi-colis/{trackingNumber}",
1240
+ "linkRules": [
1241
+ {
1242
+ "domains": [
1243
+ "cchezvous.fr"
1244
+ ],
1245
+ "path": "^/suivi-colis/([^/?#]+)/?$"
1246
+ }
1247
+ ],
1248
+ "detectionRules": [
1249
+ {
1250
+ "pattern": "^[A-Z]{4}\\d{2}[A-Z0-9]{4}$",
1251
+ "confidence": "high"
1252
+ }
1253
+ ]
1254
+ },
1255
+ "heppner": {
1256
+ "displayName": "Heppner",
1257
+ "color": "#005baa",
1258
+ "aliases": [
1259
+ "Heppner Group"
1260
+ ],
1261
+ "countries": [
1262
+ "FR",
1263
+ "CH"
1264
+ ],
1265
+ "selectable": true,
1266
+ "timezone": "Europe/Paris",
1267
+ "tracking": {
1268
+ "mode": "automatic",
1269
+ "adapter": "heppner",
1270
+ "requirements": [
1271
+ {
1272
+ "field": "dpdPostcode",
1273
+ "validator": "swissOrFrancePostcode",
1274
+ "label": "Delivery postcode",
1275
+ "type": "text",
1276
+ "placeholder": "75001",
1277
+ "help": "Heppner uses the recipient postcode to verify the shipment in France or Switzerland.",
1278
+ "pattern": "^[0-9]{4,5}$",
1279
+ "maxLength": 5,
1280
+ "inputMode": "numeric",
1281
+ "autoComplete": "postal-code"
1282
+ }
1283
+ ]
1284
+ },
1285
+ "canaryUrl": "https://myportal.heppner-group.com/tracking",
1286
+ "trackingUrlTemplate": "https://www.heppner-group.com/destinataire-suivez-votre-marchandise/",
1287
+ "linkRules": [],
1288
+ "detectionRules": [
1289
+ {
1290
+ "pattern": "^\\d{8}$",
1291
+ "confidence": "low"
1292
+ }
1293
+ ]
1294
+ },
1295
+ "ciblex": {
1296
+ "displayName": "Ciblex",
1297
+ "color": "#e30613",
1298
+ "aliases": [
1299
+ "Ciblex Express"
1300
+ ],
1301
+ "countries": [
1302
+ "FR"
1303
+ ],
1304
+ "selectable": true,
1305
+ "timezone": "Europe/Paris",
1306
+ "tracking": {
1307
+ "mode": "automatic",
1308
+ "adapter": "ciblex",
1309
+ "recognitionRank": 20,
1310
+ "localClocks": true
1311
+ },
1312
+ "canaryUrl": "https://secure.extranet.ciblex.fr/extranet/client/corps.php",
1313
+ "trackingUrlTemplate": "https://secure.extranet.ciblex.fr/extranet/client/corps.php?module=colis&colis={trackingNumber}",
1314
+ "linkRules": [
1315
+ {
1316
+ "domains": [
1317
+ "secure.extranet.ciblex.fr"
1318
+ ],
1319
+ "params": [
1320
+ "colis"
1321
+ ]
1322
+ }
1323
+ ],
1324
+ "detectionRules": [
1325
+ {
1326
+ "pattern": "^\\d{14}$",
1327
+ "confidence": "low"
1328
+ },
1329
+ {
1330
+ "pattern": "^\\d{24}$",
1331
+ "confidence": "low"
1332
+ }
1333
+ ]
1334
+ },
1335
+ "paack": {
1336
+ "displayName": "Paack",
1337
+ "color": "#5b2dee",
1338
+ "aliases": [
1339
+ "Paack Logistics"
1340
+ ],
1341
+ "countries": [
1342
+ "ES",
1343
+ "PT",
1344
+ "FR",
1345
+ "GB"
1346
+ ],
1347
+ "selectable": true,
1348
+ "timezone": "Europe/Paris",
1349
+ "tracking": {
1350
+ "mode": "automatic",
1351
+ "adapter": "paack",
1352
+ "requirements": [
1353
+ {
1354
+ "field": "dpdPostcode",
1355
+ "validator": "paackPostcode",
1356
+ "label": "Delivery postcode",
1357
+ "type": "text",
1358
+ "placeholder": "75001",
1359
+ "help": "Paack requires the recipient postcode together with the order number.",
1360
+ "pattern": "^(?=.{3,10}$)(?=.*[0-9])[A-Za-z0-9]+(?:[ -][A-Za-z0-9]+)*$",
1361
+ "maxLength": 10,
1362
+ "inputMode": "text",
1363
+ "autoComplete": "postal-code"
1364
+ }
1365
+ ]
1366
+ },
1367
+ "canaryUrl": "https://mydeliveries.paack.app/tracking",
1368
+ "trackingUrlTemplate": "https://mydeliveries.paack.app/tracking?tracking_number={trackingNumber}",
1369
+ "linkRules": [
1370
+ {
1371
+ "domains": [
1372
+ "mydeliveries.paack.app"
1373
+ ],
1374
+ "params": [
1375
+ "tracking_number"
1376
+ ]
1377
+ }
1378
+ ],
1379
+ "detectionRules": []
1380
+ },
1381
+ "asendia": {
1382
+ "displayName": "Asendia",
1383
+ "color": "#ef7d00",
1384
+ "aliases": [
1385
+ "Asendia Management",
1386
+ "Asendia UK",
1387
+ "asendia.com"
1388
+ ],
1389
+ "countries": [
1390
+ "FR",
1391
+ "CH",
1392
+ "GB",
1393
+ "DE",
1394
+ "US"
1395
+ ],
1396
+ "selectable": true,
1397
+ "timezone": "UTC",
1398
+ "tracking": {
1399
+ "mode": "automatic",
1400
+ "adapter": "asendia"
1401
+ },
1402
+ "canaryUrl": "https://a1.asendiausa.com/tracking/",
1403
+ "trackingUrlTemplate": "https://track.asendia.com/track/{trackingNumber}",
1404
+ "linkRules": [
1405
+ {
1406
+ "domains": [
1407
+ "track.asendia.com"
1408
+ ],
1409
+ "path": "^/track/([^/?#]+)/?$"
1410
+ },
1411
+ {
1412
+ "domains": [
1413
+ "a1.asendiausa.com",
1414
+ "a1.asendia.com"
1415
+ ],
1416
+ "pathPattern": "^/tracking/?$",
1417
+ "params": [
1418
+ "trackingnumber"
1419
+ ]
1420
+ }
1421
+ ],
1422
+ "detectionRules": [
1423
+ {
1424
+ "pattern": "^ASE[A-Z0-9]{8,37}$",
1425
+ "confidence": "high"
1426
+ },
1427
+ {
1428
+ "pattern": "^AS\\d{9}US$",
1429
+ "confidence": "high"
1430
+ },
1431
+ {
1432
+ "pattern": "^AHOY[A-Z0-9]{8}$",
1433
+ "confidence": "high"
1434
+ }
1435
+ ]
1436
+ },
1437
+ "shipup": {
1438
+ "displayName": "ShipUp",
1439
+ "color": "#5c4ee5",
1440
+ "selectable": true,
1441
+ "timezone": "UTC",
1442
+ "tracking": {
1443
+ "mode": "automatic",
1444
+ "adapter": "universal"
1445
+ },
1446
+ "canaryUrl": "https://t.17track.net/",
1447
+ "linkRules": [],
1448
+ "detectionRules": []
1449
+ },
1450
+ "india-post": {
1451
+ "displayName": "India Post",
1452
+ "color": "#b82025",
1453
+ "aliases": [
1454
+ "Speed Post",
1455
+ "India Post Speed Post",
1456
+ "Department of Posts"
1457
+ ],
1458
+ "countries": [
1459
+ "IN"
1460
+ ],
1461
+ "selectable": true,
1462
+ "timezone": "Asia/Kolkata",
1463
+ "tracking": {
1464
+ "mode": "automatic",
1465
+ "adapter": "india-post"
1466
+ },
1467
+ "canaryUrl": "https://myspeedpost.com/track",
1468
+ "trackingUrlTemplate": "https://myspeedpost.com/track?n={trackingNumber}&sync=true",
1469
+ "linkRules": [
1470
+ {
1471
+ "domains": [
1472
+ "myspeedpost.com"
1473
+ ],
1474
+ "params": [
1475
+ "n"
1476
+ ],
1477
+ "path": "^/s/([^/?#]+)/?$"
1478
+ }
1479
+ ],
1480
+ "detectionRules": [
1481
+ {
1482
+ "pattern": "^[A-Z]{2}\\d{9}IN$",
1483
+ "confidence": "high",
1484
+ "checksum": "s10"
1485
+ }
1486
+ ]
1487
+ },
1488
+ "hermes-de": {
1489
+ "displayName": "Hermes Germany",
1490
+ "color": "#0091cd",
1491
+ "aliases": [
1492
+ "myHermes",
1493
+ "Hermes Germany GmbH"
1494
+ ],
1495
+ "countries": [
1496
+ "DE"
1497
+ ],
1498
+ "selectable": true,
1499
+ "timezone": "Europe/Berlin",
1500
+ "tracking": {
1501
+ "mode": "automatic",
1502
+ "adapter": "hermes-de",
1503
+ "recognitionRank": 40
1504
+ },
1505
+ "canaryUrl": "https://www.myhermes.de/empfangen/sendungsverfolgung/",
1506
+ "trackingUrlTemplate": "https://www.myhermes.de/empfangen/sendungsverfolgung/sendungsinformation#{trackingNumber}",
1507
+ "linkRules": [
1508
+ {
1509
+ "domains": [
1510
+ "myhermes.de"
1511
+ ],
1512
+ "params": [
1513
+ "TrackID",
1514
+ "trackingNumber",
1515
+ "sendungsId"
1516
+ ],
1517
+ "fragment": "^([A-Z0-9]{8,20})(?:$|[?&])"
1518
+ }
1519
+ ],
1520
+ "detectionRules": [
1521
+ {
1522
+ "pattern": "^H\\d{15,19}$",
1523
+ "confidence": "high"
1524
+ },
1525
+ {
1526
+ "pattern": "^\\d{14}$",
1527
+ "confidence": "low",
1528
+ "checksum": "hermes"
1529
+ }
1530
+ ]
1531
+ },
1532
+ "gls-de": {
1533
+ "displayName": "GLS Germany",
1534
+ "color": "#ffdd00",
1535
+ "aliases": [
1536
+ "General Logistics Systems",
1537
+ "GLS Group"
1538
+ ],
1539
+ "countries": [
1540
+ "DE"
1541
+ ],
1542
+ "selectable": true,
1543
+ "timezone": "Europe/Berlin",
1544
+ "tracking": {
1545
+ "mode": "automatic",
1546
+ "adapter": "gls-de",
1547
+ "requirements": [
1548
+ {
1549
+ "field": "dpdPostcode",
1550
+ "validator": "swissOrFrancePostcode",
1551
+ "label": "Delivery postcode",
1552
+ "type": "text",
1553
+ "placeholder": "10115",
1554
+ "help": "GLS requires the four- or five-digit delivery postcode to show the detailed event history.",
1555
+ "pattern": "^[0-9]{4,5}$",
1556
+ "maxLength": 5,
1557
+ "inputMode": "numeric",
1558
+ "autoComplete": "postal-code"
1559
+ }
1560
+ ],
1561
+ "recognitionRank": 50,
1562
+ "refresh": {
1563
+ "minMinutes": 60,
1564
+ "afterFailureMinutes": 240
1565
+ }
1566
+ },
1567
+ "canaryUrl": "https://gls-group.eu/EU/en/parcel-tracking",
1568
+ "trackingUrlTemplate": "https://gls-group.eu/DE/de/paketverfolgung?match={trackingNumber}",
1569
+ "linkRules": [
1570
+ {
1571
+ "domains": [
1572
+ "gls-group.eu",
1573
+ "gls-group.com"
1574
+ ],
1575
+ "pathPattern": "^/DE/",
1576
+ "params": [
1577
+ "match",
1578
+ "parcelNumber",
1579
+ "matchParcelNumber"
1580
+ ]
1581
+ },
1582
+ {
1583
+ "domains": [
1584
+ "gls-pakete.de"
1585
+ ],
1586
+ "params": [
1587
+ "match",
1588
+ "trackingNumber"
1589
+ ]
1590
+ }
1591
+ ],
1592
+ "detectionRules": [
1593
+ {
1594
+ "pattern": "^(?:(?=[A-Z0-9]{8}$)(?=.*[A-Z])(?=.*\\d)[A-Z0-9]{8}|\\d{11})$",
1595
+ "confidence": "low"
1596
+ },
1597
+ {
1598
+ "pattern": "^\\d{12}$",
1599
+ "confidence": "low",
1600
+ "checksum": "gls"
1601
+ }
1602
+ ]
1603
+ },
1604
+ "delivengo": {
1605
+ "displayName": "Delivengo",
1606
+ "color": "#ffcf00",
1607
+ "aliases": [
1608
+ "Delivengo Easy"
1609
+ ],
1610
+ "countries": [
1611
+ "FR"
1612
+ ],
1613
+ "selectable": true,
1614
+ "timezone": "Europe/Paris",
1615
+ "tracking": {
1616
+ "mode": "automatic",
1617
+ "adapter": "la-poste"
1618
+ },
1619
+ "canaryUrl": "https://www.laposte.fr/outils/suivre-vos-envois",
1620
+ "trackingUrlTemplate": "https://www.laposte.fr/outils/suivre-vos-envois?code={trackingNumber}",
1621
+ "linkRules": [],
1622
+ "detectionRules": []
1623
+ },
1624
+ "intl-post": {
1625
+ "displayName": "Unknown postal carrier",
1626
+ "displayNames": {
1627
+ "en": "Unknown postal carrier",
1628
+ "de": "Postanbieter unbekannt",
1629
+ "fr": "Transporteur postal inconnu",
1630
+ "it": "Corriere postale sconosciuto",
1631
+ "es": "Operador postal desconocido",
1632
+ "pt": "Operador postal desconhecido",
1633
+ "pl": "Nieznany operator pocztowy"
1634
+ },
1635
+ "color": "#2c6fb5",
1636
+ "selectable": false,
1637
+ "timezone": "UTC",
1638
+ "tracking": {
1639
+ "mode": "automatic",
1640
+ "adapter": "universal"
1641
+ },
1642
+ "canaryUrl": "https://parcelsapp.com/en",
1643
+ "trackingUrlTemplate": "https://t.17track.net/en#nums={trackingNumber}",
1644
+ "trackingSiteName": "17TRACK",
1645
+ "linkRules": [],
1646
+ "detectionRules": [
1647
+ {
1648
+ "pattern": "^(?![CL][A-Z]\\d{9}DE$)(?!AS\\d{9}US$)(?!(?:PZ|XU|XW|XY))[A-Z]{2}\\d{9}(?!CH$|FR$|IN$|NL$|GB$|IE$|BE$|PT$|NZ$|SG$|JP$|KR$|TH$|HK$|MY$|CN$|NO$|BR$|ES$|SE$|DK$|AT$|YP$|CL$)[A-Z]{2}$",
1649
+ "confidence": "high",
1650
+ "checksum": "s10"
1651
+ }
1652
+ ]
1653
+ },
1654
+ "unknown": {
1655
+ "displayName": "Unknown carrier",
1656
+ "displayNames": {
1657
+ "en": "Unknown carrier",
1658
+ "de": "Paketdienst unbekannt",
1659
+ "fr": "Transporteur inconnu",
1660
+ "it": "Corriere sconosciuto",
1661
+ "es": "Transportista desconocido",
1662
+ "pt": "Transportadora desconhecida",
1663
+ "pl": "Nieznany przewoźnik"
1664
+ },
1665
+ "color": "#8e8e93",
1666
+ "selectable": false,
1667
+ "timezone": "UTC",
1668
+ "tracking": {
1669
+ "mode": "automatic",
1670
+ "adapter": "universal"
1671
+ },
1672
+ "canaryUrl": "https://parcelsapp.com/en",
1673
+ "trackingUrlTemplate": "https://t.17track.net/en#nums={trackingNumber}",
1674
+ "trackingSiteName": "17TRACK",
1675
+ "linkRules": [
1676
+ {
1677
+ "domains": [
1678
+ "17track.net"
1679
+ ],
1680
+ "params": [
1681
+ "nums"
1682
+ ],
1683
+ "fragment": "(?:^|&)nums=([^&]+)",
1684
+ "detectFromNumber": true
1685
+ },
1686
+ {
1687
+ "domains": [
1688
+ "parcelsapp.com"
1689
+ ],
1690
+ "path": "^/(?:[a-z]{2}/)?tracking/([^/?#]+)",
1691
+ "detectFromNumber": true
1692
+ }
1693
+ ],
1694
+ "detectionRules": []
1695
+ },
1696
+ "royal-mail": {
1697
+ "displayName": "Royal Mail",
1698
+ "color": "#da202a",
1699
+ "countries": [
1700
+ "GB"
1701
+ ],
1702
+ "selectable": true,
1703
+ "timezone": "UTC",
1704
+ "tracking": {
1705
+ "mode": "automatic",
1706
+ "adapter": "universal"
1707
+ },
1708
+ "canaryUrl": "https://www.royalmail.com/track-your-item",
1709
+ "trackingUrlTemplate": "https://www.royalmail.com/portal/rm/track?trackNumber={trackingNumber}",
1710
+ "linkRules": [
1711
+ {
1712
+ "domains": [
1713
+ "royalmail.com"
1714
+ ],
1715
+ "params": [
1716
+ "trackNumber"
1717
+ ]
1718
+ }
1719
+ ],
1720
+ "detectionRules": [
1721
+ {
1722
+ "pattern": "^(?!(?:EA|EB|EC|ED|EE|CP|GI))[A-Z]{2}\\d{9}GB$",
1723
+ "confidence": "high",
1724
+ "checksum": "s10"
1725
+ }
1726
+ ]
1727
+ },
1728
+ "parcelforce": {
1729
+ "displayName": "Parcelforce Worldwide",
1730
+ "color": "#9d0f11",
1731
+ "countries": [
1732
+ "GB"
1733
+ ],
1734
+ "selectable": true,
1735
+ "timezone": "UTC",
1736
+ "tracking": {
1737
+ "mode": "automatic",
1738
+ "adapter": "universal"
1739
+ },
1740
+ "canaryUrl": "https://www.royalmail.com/track-your-item",
1741
+ "trackingUrlTemplate": "https://www.royalmail.com/track-your-item#/tracking-results/{trackingNumber}",
1742
+ "linkRules": [
1743
+ {
1744
+ "domains": [
1745
+ "parcelforce.com"
1746
+ ],
1747
+ "params": [
1748
+ "trackNumber"
1749
+ ]
1750
+ }
1751
+ ],
1752
+ "detectionRules": [
1753
+ {
1754
+ "pattern": "^(?:EA|EB|EC|ED|EE|CP|GI)\\d{9}GB$",
1755
+ "confidence": "high",
1756
+ "checksum": "s10"
1757
+ }
1758
+ ]
1759
+ },
1760
+ "evri": {
1761
+ "displayName": "Evri",
1762
+ "color": "#00014d",
1763
+ "aliases": [
1764
+ "Hermes UK"
1765
+ ],
1766
+ "countries": [
1767
+ "GB"
1768
+ ],
1769
+ "selectable": true,
1770
+ "timezone": "UTC",
1771
+ "tracking": {
1772
+ "mode": "automatic",
1773
+ "adapter": "evri",
1774
+ "upstreamName": "Evri International",
1775
+ "localClocks": true
1776
+ },
1777
+ "canaryUrl": "https://globaleco.app/track/",
1778
+ "trackingUrlTemplate": "https://www.evri.com/track-a-parcel",
1779
+ "linkRules": [],
1780
+ "detectionRules": [
1781
+ {
1782
+ "pattern": "^H[A-Z0-9]{15}$",
1783
+ "confidence": "high"
1784
+ }
1785
+ ]
1786
+ },
1787
+ "inpost": {
1788
+ "displayName": "InPost",
1789
+ "color": "#ffcc05",
1790
+ "aliases": [
1791
+ "InPost Paczkomaty",
1792
+ "Paczkomaty",
1793
+ "InPost Easy"
1794
+ ],
1795
+ "countries": [
1796
+ "PL",
1797
+ "IT",
1798
+ "PT",
1799
+ "GB"
1800
+ ],
1801
+ "selectable": true,
1802
+ "timezone": "UTC",
1803
+ "tracking": {
1804
+ "mode": "automatic",
1805
+ "adapter": "inpost",
1806
+ "recognitionRank": 38
1807
+ },
1808
+ "canaryUrl": "https://inposteasy.com/",
1809
+ "trackingUrlTemplate": "https://inpost.pl/sledzenie-przesylek",
1810
+ "linkRules": [],
1811
+ "detectionRules": [
1812
+ {
1813
+ "pattern": "^\\d{24}$",
1814
+ "confidence": "low"
1815
+ },
1816
+ {
1817
+ "pattern": "^JJD\\d{16}$",
1818
+ "confidence": "low"
1819
+ },
1820
+ {
1821
+ "pattern": "^JD\\d{16}$",
1822
+ "confidence": "low"
1823
+ },
1824
+ {
1825
+ "pattern": "^8YDR\\d{9}$",
1826
+ "confidence": "high"
1827
+ }
1828
+ ]
1829
+ },
1830
+ "an-post": {
1831
+ "displayName": "An Post",
1832
+ "color": "#00a76a",
1833
+ "countries": [
1834
+ "IE"
1835
+ ],
1836
+ "selectable": true,
1837
+ "timezone": "UTC",
1838
+ "tracking": {
1839
+ "mode": "automatic",
1840
+ "adapter": "universal"
1841
+ },
1842
+ "canaryUrl": "https://t.17track.net/",
1843
+ "trackingUrlTemplate": "https://track.anpost.ie/",
1844
+ "linkRules": [],
1845
+ "detectionRules": [
1846
+ {
1847
+ "pattern": "^[A-Z]{2}\\d{9}IE$",
1848
+ "confidence": "high",
1849
+ "checksum": "s10"
1850
+ }
1851
+ ]
1852
+ },
1853
+ "bpost": {
1854
+ "displayName": "bpost",
1855
+ "color": "#ef2637",
1856
+ "countries": [
1857
+ "BE"
1858
+ ],
1859
+ "selectable": true,
1860
+ "timezone": "UTC",
1861
+ "tracking": {
1862
+ "mode": "automatic",
1863
+ "adapter": "bpost",
1864
+ "recognitionRank": 37,
1865
+ "localClocks": true
1866
+ },
1867
+ "canaryUrl": "https://track.bpost.cloud/",
1868
+ "trackingUrlTemplate": "https://track.bpost.cloud/",
1869
+ "linkRules": [],
1870
+ "detectionRules": [
1871
+ {
1872
+ "pattern": "^\\d{18}$",
1873
+ "confidence": "low"
1874
+ },
1875
+ {
1876
+ "pattern": "^\\d{24}$",
1877
+ "confidence": "low"
1878
+ },
1879
+ {
1880
+ "pattern": "^[A-Z]{2}\\d{9}BE$",
1881
+ "confidence": "high",
1882
+ "checksum": "s10"
1883
+ }
1884
+ ]
1885
+ },
1886
+ "austrian-post": {
1887
+ "displayName": "Austrian Post",
1888
+ "color": "#ffdc00",
1889
+ "countries": [
1890
+ "AT"
1891
+ ],
1892
+ "selectable": true,
1893
+ "timezone": "Europe/Vienna",
1894
+ "tracking": {
1895
+ "mode": "automatic",
1896
+ "adapter": "austrian-post",
1897
+ "recognitionRank": 39
1898
+ },
1899
+ "canaryUrl": "https://www.post.at/en/s/track-and-trace-search",
1900
+ "trackingUrlTemplate": "https://www.post.at/en/s/track-and-trace-search",
1901
+ "linkRules": [],
1902
+ "detectionRules": [
1903
+ {
1904
+ "pattern": "^\\d{22}$",
1905
+ "confidence": "low"
1906
+ },
1907
+ {
1908
+ "pattern": "^[A-Z]{2}\\d{9}AT$",
1909
+ "confidence": "high",
1910
+ "checksum": "s10"
1911
+ }
1912
+ ]
1913
+ },
1914
+ "postnord": {
1915
+ "displayName": "PostNord",
1916
+ "color": "#00a0d6",
1917
+ "countries": [
1918
+ "SE",
1919
+ "DK",
1920
+ "NO",
1921
+ "FI"
1922
+ ],
1923
+ "selectable": true,
1924
+ "timezone": "UTC",
1925
+ "tracking": {
1926
+ "mode": "automatic",
1927
+ "adapter": "postnord"
1928
+ },
1929
+ "canaryUrl": "https://tracking.postnord.com/en/",
1930
+ "trackingUrlTemplate": "https://tracking.postnord.com/en/?id={trackingNumber}",
1931
+ "linkRules": [
1932
+ {
1933
+ "domains": [
1934
+ "tracking.postnord.com"
1935
+ ],
1936
+ "params": [
1937
+ "id",
1938
+ "ID"
1939
+ ]
1940
+ }
1941
+ ],
1942
+ "detectionRules": [
1943
+ {
1944
+ "pattern": "^\\d{11}SE$",
1945
+ "confidence": "high"
1946
+ },
1947
+ {
1948
+ "pattern": "^[A-Z]{2}\\d{9}(?:SE|DK)$",
1949
+ "confidence": "high",
1950
+ "checksum": "s10"
1951
+ },
1952
+ {
1953
+ "pattern": "^00\\d(?:57|73|70|64)\\d{15}$",
1954
+ "confidence": "low"
1955
+ }
1956
+ ]
1957
+ },
1958
+ "posti": {
1959
+ "displayName": "Posti",
1960
+ "color": "#ff8000",
1961
+ "countries": [
1962
+ "FI"
1963
+ ],
1964
+ "selectable": true,
1965
+ "timezone": "Europe/Helsinki",
1966
+ "tracking": {
1967
+ "mode": "automatic",
1968
+ "adapter": "posti"
1969
+ },
1970
+ "canaryUrl": "https://www.posti.fi/en/tracking",
1971
+ "trackingUrlTemplate": "https://www.posti.fi/en/tracking/{trackingNumber}",
1972
+ "linkRules": [
1973
+ {
1974
+ "domains": [
1975
+ "posti.fi"
1976
+ ],
1977
+ "path": "^/(?:[a-z]{2}/)?tracking/([^/?#]+)(?:/[0-9]+)?/?$"
1978
+ }
1979
+ ],
1980
+ "detectionRules": []
1981
+ },
1982
+ "correos-express": {
1983
+ "displayName": "Correos Express",
1984
+ "color": "#ffcd00",
1985
+ "countries": [
1986
+ "ES",
1987
+ "PT"
1988
+ ],
1989
+ "selectable": true,
1990
+ "timezone": "UTC",
1991
+ "tracking": {
1992
+ "mode": "automatic",
1993
+ "adapter": "correos-express",
1994
+ "recognitionRank": 36,
1995
+ "localClocks": true
1996
+ },
1997
+ "canaryUrl": "https://s.correosexpress.com/",
1998
+ "trackingUrlTemplate": "https://s.correosexpress.com/",
1999
+ "linkRules": [],
2000
+ "detectionRules": [
2001
+ {
2002
+ "pattern": "^\\d{16}$",
2003
+ "confidence": "low"
2004
+ }
2005
+ ]
2006
+ },
2007
+ "seur": {
2008
+ "displayName": "SEUR",
2009
+ "color": "#0063b3",
2010
+ "countries": [
2011
+ "ES",
2012
+ "PT"
2013
+ ],
2014
+ "selectable": true,
2015
+ "timezone": "UTC",
2016
+ "tracking": {
2017
+ "mode": "automatic",
2018
+ "adapter": "seur",
2019
+ "recognitionRank": 43,
2020
+ "localClocks": true
2021
+ },
2022
+ "canaryUrl": "https://www.seur.com/miseur/mis-envios",
2023
+ "trackingUrlTemplate": "https://www.seur.com/miseur/mis-envios?tracking={trackingNumber}",
2024
+ "linkRules": [
2025
+ {
2026
+ "domains": [
2027
+ "www.seur.com",
2028
+ "seur.com"
2029
+ ],
2030
+ "path": "^/miseur/mis-envios(?:/.*)?$",
2031
+ "params": [
2032
+ "tracking"
2033
+ ]
2034
+ }
2035
+ ],
2036
+ "detectionRules": [
2037
+ {
2038
+ "pattern": "^\\d{14}$",
2039
+ "confidence": "low"
2040
+ },
2041
+ {
2042
+ "pattern": "^\\d{21}$",
2043
+ "confidence": "low"
2044
+ },
2045
+ {
2046
+ "pattern": "^\\d{7}$",
2047
+ "confidence": "low"
2048
+ }
2049
+ ]
2050
+ },
2051
+ "mrw": {
2052
+ "displayName": "MRW",
2053
+ "color": "#19133b",
2054
+ "countries": [
2055
+ "ES",
2056
+ "PT"
2057
+ ],
2058
+ "selectable": true,
2059
+ "timezone": "UTC",
2060
+ "tracking": {
2061
+ "mode": "automatic",
2062
+ "adapter": "mrw",
2063
+ "localClocks": true
2064
+ },
2065
+ "canaryUrl": "https://www.mrw.es/seguimiento/",
2066
+ "trackingUrlTemplate": "https://www.mrw.es/seguimiento",
2067
+ "linkRules": [],
2068
+ "detectionRules": [
2069
+ {
2070
+ "pattern": "^\\d{12}$",
2071
+ "confidence": "low"
2072
+ },
2073
+ {
2074
+ "pattern": "^\\d{5}[A-Z]\\d{6}$",
2075
+ "confidence": "high"
2076
+ }
2077
+ ]
2078
+ },
2079
+ "nacex": {
2080
+ "displayName": "NACEX",
2081
+ "color": "#fe5000",
2082
+ "countries": [
2083
+ "ES",
2084
+ "PT",
2085
+ "AD"
2086
+ ],
2087
+ "selectable": true,
2088
+ "timezone": "UTC",
2089
+ "tracking": {
2090
+ "mode": "automatic",
2091
+ "adapter": "nacex",
2092
+ "recognitionRank": 41,
2093
+ "localClocks": true
2094
+ },
2095
+ "canaryUrl": "https://www.nacex.es/irSeguimiento.do",
2096
+ "trackingUrlTemplate": "https://www.nacex.es/seguimientoFormularioExterno.do?intcli={trackingNumber}",
2097
+ "linkRules": [
2098
+ {
2099
+ "domains": [
2100
+ "www.nacex.es",
2101
+ "nacex.es"
2102
+ ],
2103
+ "path": "^/seguimientoFormularioExterno\\.do$",
2104
+ "params": [
2105
+ "intcli"
2106
+ ]
2107
+ }
2108
+ ],
2109
+ "detectionRules": [
2110
+ {
2111
+ "pattern": "^\\d{4}/\\d{8}$",
2112
+ "confidence": "high"
2113
+ }
2114
+ ]
2115
+ },
2116
+ "ctt": {
2117
+ "displayName": "CTT Portugal",
2118
+ "color": "#df0024",
2119
+ "aliases": [
2120
+ "CTT Correios de Portugal",
2121
+ "Correios de Portugal"
2122
+ ],
2123
+ "countries": [
2124
+ "PT"
2125
+ ],
2126
+ "selectable": true,
2127
+ "timezone": "UTC",
2128
+ "tracking": {
2129
+ "mode": "automatic",
2130
+ "adapter": "ctt"
2131
+ },
2132
+ "canaryUrl": "https://www.ctt.pt/",
2133
+ "trackingUrlTemplate": "https://www.ctt.pt/feapl_2/app/open/objectSearch/objectSearch.jspx?objects={trackingNumber}",
2134
+ "linkRules": [
2135
+ {
2136
+ "domains": [
2137
+ "ctt.pt"
2138
+ ],
2139
+ "params": [
2140
+ "objects"
2141
+ ]
2142
+ }
2143
+ ],
2144
+ "detectionRules": [
2145
+ {
2146
+ "pattern": "^[A-Z]{2}\\d{9}PT$",
2147
+ "confidence": "high",
2148
+ "checksum": "s10"
2149
+ }
2150
+ ]
2151
+ },
2152
+ "ctt-express": {
2153
+ "displayName": "CTT Express",
2154
+ "color": "#df0024",
2155
+ "countries": [
2156
+ "ES",
2157
+ "PT"
2158
+ ],
2159
+ "selectable": true,
2160
+ "timezone": "UTC",
2161
+ "tracking": {
2162
+ "mode": "automatic",
2163
+ "adapter": "ctt-express",
2164
+ "recognitionRank": 35,
2165
+ "localClocks": true
2166
+ },
2167
+ "canaryUrl": "https://shipping-tracking.production.cloud2.cttexpress.com/",
2168
+ "trackingUrlTemplate": "https://shipping-tracking.production.cloud2.cttexpress.com/?sc={trackingNumber}",
2169
+ "linkRules": [
2170
+ {
2171
+ "domains": [
2172
+ "shipping-tracking.production.cloud2.cttexpress.com"
2173
+ ],
2174
+ "params": [
2175
+ "sc"
2176
+ ]
2177
+ }
2178
+ ],
2179
+ "detectionRules": [
2180
+ {
2181
+ "pattern": "^00\\d{20}$",
2182
+ "confidence": "high"
2183
+ }
2184
+ ]
2185
+ },
2186
+ "poste-italiane": {
2187
+ "displayName": "Poste Italiane",
2188
+ "color": "#eedc00",
2189
+ "aliases": [
2190
+ "Poste",
2191
+ "PosteDelivery",
2192
+ "Crono"
2193
+ ],
2194
+ "countries": [
2195
+ "IT"
2196
+ ],
2197
+ "selectable": true,
2198
+ "timezone": "UTC",
2199
+ "tracking": {
2200
+ "mode": "automatic",
2201
+ "adapter": "poste-italiane"
2202
+ },
2203
+ "canaryUrl": "https://www.poste.it/",
2204
+ "trackingUrlTemplate": "https://www.poste.it/cerca/index.html#/risultati-spedizioni/{trackingNumber}",
2205
+ "linkRules": [
2206
+ {
2207
+ "domains": [
2208
+ "poste.it"
2209
+ ],
2210
+ "fragment": "risultati-spedizioni/([^/?#]+)"
2211
+ }
2212
+ ],
2213
+ "detectionRules": [
2214
+ {
2215
+ "pattern": "^RA\\d{11}$",
2216
+ "confidence": "high"
2217
+ },
2218
+ {
2219
+ "pattern": "^(?:[13]UW[A-Z0-9]{10}|5P[A-Z0-9]{11})$",
2220
+ "confidence": "high"
2221
+ },
2222
+ {
2223
+ "pattern": "^2IMA\\d{10}$",
2224
+ "confidence": "high"
2225
+ }
2226
+ ]
2227
+ },
2228
+ "brt": {
2229
+ "displayName": "BRT",
2230
+ "color": "#dc0032",
2231
+ "countries": [
2232
+ "IT"
2233
+ ],
2234
+ "selectable": true,
2235
+ "timezone": "UTC",
2236
+ "tracking": {
2237
+ "mode": "automatic",
2238
+ "adapter": "brt",
2239
+ "recognitionRank": 42,
2240
+ "localClocks": true
2241
+ },
2242
+ "canaryUrl": "https://services.brt.it/en/tracking",
2243
+ "trackingUrlTemplate": "https://vas.brt.it/vas/sped_det_new.htm?brtCode={trackingNumber}&lang=en",
2244
+ "linkRules": [
2245
+ {
2246
+ "domains": [
2247
+ "vas.brt.it"
2248
+ ],
2249
+ "path": "^/vas/sped_det_new\\.htm$",
2250
+ "params": [
2251
+ "brtCode"
2252
+ ]
2253
+ }
2254
+ ],
2255
+ "detectionRules": [
2256
+ {
2257
+ "pattern": "^\\d{14}$",
2258
+ "confidence": "low"
2259
+ }
2260
+ ]
2261
+ },
2262
+ "ecoscooting": {
2263
+ "displayName": "Ecoscooting",
2264
+ "color": "#3fa7ff",
2265
+ "countries": [
2266
+ "ES",
2267
+ "PT"
2268
+ ],
2269
+ "selectable": true,
2270
+ "timezone": "UTC",
2271
+ "tracking": {
2272
+ "mode": "automatic",
2273
+ "adapter": "ecoscooting",
2274
+ "localClocks": true
2275
+ },
2276
+ "canaryUrl": "https://ecoscooting.com/tracking/1",
2277
+ "trackingUrlTemplate": "https://ecoscooting.com/tracking/{trackingNumber}",
2278
+ "linkRules": [
2279
+ {
2280
+ "domains": [
2281
+ "ecoscooting.com"
2282
+ ],
2283
+ "path": "^/tracking/([^/?#]+)/?$"
2284
+ }
2285
+ ],
2286
+ "detectionRules": [
2287
+ {
2288
+ "pattern": "^\\d{18}$",
2289
+ "confidence": "low"
2290
+ },
2291
+ {
2292
+ "pattern": "^CN(?:ESP|PRT)\\d{20}$",
2293
+ "confidence": "high"
2294
+ }
2295
+ ]
2296
+ },
2297
+ "tipsa": {
2298
+ "displayName": "TIPSA",
2299
+ "color": "#001e62",
2300
+ "countries": [
2301
+ "ES",
2302
+ "PT",
2303
+ "AD"
2304
+ ],
2305
+ "selectable": true,
2306
+ "timezone": "Europe/Madrid",
2307
+ "tracking": {
2308
+ "mode": "automatic",
2309
+ "adapter": "tipsa",
2310
+ "recognitionRank": 24
2311
+ },
2312
+ "canaryUrl": "https://dinapaqweb.tipsa-dinapaq.com/dinapaqweb/detalle_envio.php",
2313
+ "trackingUrlTemplate": "https://www.tip-sa.com/cliente/datos_prestashop.php?id={trackingNumber}",
2314
+ "linkRules": [
2315
+ {
2316
+ "domains": [
2317
+ "tip-sa.com"
2318
+ ],
2319
+ "path": "^/cliente/datos(?:_prestashop)?\\.php$",
2320
+ "params": [
2321
+ "id"
2322
+ ]
2323
+ }
2324
+ ],
2325
+ "detectionRules": [
2326
+ {
2327
+ "pattern": "^\\d{10}$",
2328
+ "confidence": "low"
2329
+ },
2330
+ {
2331
+ "pattern": "^0\\d{5}0\\d{5}\\d{10}$",
2332
+ "confidence": "low",
2333
+ "preferred": true
2334
+ }
2335
+ ]
2336
+ },
2337
+ "ukrposhta": {
2338
+ "displayName": "Ukrposhta",
2339
+ "color": "#ffbe0c",
2340
+ "countries": [
2341
+ "UA"
2342
+ ],
2343
+ "selectable": true,
2344
+ "timezone": "UTC",
2345
+ "tracking": {
2346
+ "mode": "automatic",
2347
+ "adapter": "ukrposhta",
2348
+ "localClocks": true
2349
+ },
2350
+ "canaryUrl": "https://track.ukrposhta.ua/en/",
2351
+ "trackingUrlTemplate": "https://track.ukrposhta.ua/en/?barcode={trackingNumber}",
2352
+ "linkRules": [
2353
+ {
2354
+ "domains": [
2355
+ "track.ukrposhta.ua"
2356
+ ],
2357
+ "params": [
2358
+ "barcode"
2359
+ ]
2360
+ }
2361
+ ],
2362
+ "detectionRules": []
2363
+ },
2364
+ "usps": {
2365
+ "displayName": "USPS",
2366
+ "color": "#004b87",
2367
+ "aliases": [
2368
+ "United States Postal Service"
2369
+ ],
2370
+ "countries": [
2371
+ "US"
2372
+ ],
2373
+ "selectable": true,
2374
+ "timezone": "UTC",
2375
+ "tracking": {
2376
+ "mode": "automatic",
2377
+ "adapter": "usps"
2378
+ },
2379
+ "canaryUrl": "https://www.usps.com/",
2380
+ "trackingUrlTemplate": "https://tools.usps.com/go/TrackConfirmAction?tLabels={trackingNumber}",
2381
+ "linkRules": [
2382
+ {
2383
+ "domains": [
2384
+ "tools.usps.com",
2385
+ "usps.com"
2386
+ ],
2387
+ "params": [
2388
+ "tLabels"
2389
+ ]
2390
+ }
2391
+ ],
2392
+ "detectionRules": [
2393
+ {
2394
+ "pattern": "^\\d{20}$",
2395
+ "confidence": "low"
2396
+ },
2397
+ {
2398
+ "pattern": "^\\d{22}$",
2399
+ "confidence": "low"
2400
+ }
2401
+ ]
2402
+ },
2403
+ "canada-post": {
2404
+ "displayName": "Canada Post",
2405
+ "color": "#e4002b",
2406
+ "countries": [
2407
+ "CA"
2408
+ ],
2409
+ "selectable": true,
2410
+ "timezone": "UTC",
2411
+ "tracking": {
2412
+ "mode": "automatic",
2413
+ "adapter": "canada-post",
2414
+ "recognitionRank": 15,
2415
+ "localClocks": true
2416
+ },
2417
+ "canaryUrl": "https://www.canadapost-postescanada.ca/track-reperage/en/home",
2418
+ "trackingUrlTemplate": "https://www.canadapost-postescanada.ca/track-reperage/en/search?searchFor={trackingNumber}",
2419
+ "linkRules": [
2420
+ {
2421
+ "domains": [
2422
+ "canadapost-postescanada.ca",
2423
+ "canadapost.ca"
2424
+ ],
2425
+ "params": [
2426
+ "searchFor"
2427
+ ]
2428
+ }
2429
+ ],
2430
+ "detectionRules": [
2431
+ {
2432
+ "pattern": "^\\d{16}$",
2433
+ "confidence": "low"
2434
+ }
2435
+ ]
2436
+ },
2437
+ "purolator": {
2438
+ "displayName": "Purolator",
2439
+ "color": "#da291c",
2440
+ "countries": [
2441
+ "CA"
2442
+ ],
2443
+ "selectable": true,
2444
+ "timezone": "UTC",
2445
+ "tracking": {
2446
+ "mode": "automatic",
2447
+ "adapter": "purolator",
2448
+ "localClocks": true
2449
+ },
2450
+ "canaryUrl": "https://www.purolator.com/en/shipping/tracker",
2451
+ "trackingUrlTemplate": "https://www.purolator.com/en/shipping/tracker?pins={trackingNumber}",
2452
+ "linkRules": [
2453
+ {
2454
+ "domains": [
2455
+ "purolator.com"
2456
+ ],
2457
+ "params": [
2458
+ "searchValue",
2459
+ "pin",
2460
+ "pins"
2461
+ ]
2462
+ }
2463
+ ],
2464
+ "detectionRules": [
2465
+ {
2466
+ "pattern": "^[0-5]\\d{11}$",
2467
+ "confidence": "low"
2468
+ },
2469
+ {
2470
+ "pattern": "^(?!(?:BYS|LTN))[A-Z]{3}\\d{9}$",
2471
+ "confidence": "high"
2472
+ }
2473
+ ]
2474
+ },
2475
+ "canpar": {
2476
+ "displayName": "Canpar",
2477
+ "color": "#003b70",
2478
+ "countries": [
2479
+ "CA"
2480
+ ],
2481
+ "selectable": true,
2482
+ "timezone": "UTC",
2483
+ "tracking": {
2484
+ "mode": "automatic",
2485
+ "adapter": "canpar",
2486
+ "recognitionRank": 34,
2487
+ "localClocks": true
2488
+ },
2489
+ "canaryUrl": "https://www.canpar.com/en/tracking/track.htm",
2490
+ "trackingUrlTemplate": "https://www.canpar.com/en/tracking/track.htm?barcode={trackingNumber}",
2491
+ "linkRules": [
2492
+ {
2493
+ "domains": [
2494
+ "canpar.com"
2495
+ ],
2496
+ "params": [
2497
+ "barcode",
2498
+ "reference"
2499
+ ]
2500
+ }
2501
+ ],
2502
+ "detectionRules": [
2503
+ {
2504
+ "pattern": "^[CDKLSUXZ]\\d{21}$",
2505
+ "confidence": "high"
2506
+ }
2507
+ ]
2508
+ },
2509
+ "ontrac": {
2510
+ "displayName": "OnTrac",
2511
+ "color": "#cc2027",
2512
+ "countries": [
2513
+ "US"
2514
+ ],
2515
+ "selectable": true,
2516
+ "timezone": "UTC",
2517
+ "tracking": {
2518
+ "mode": "automatic",
2519
+ "adapter": "ontrac",
2520
+ "localClocks": true
2521
+ },
2522
+ "canaryUrl": "https://www.ontrac.com/tracking/",
2523
+ "trackingUrlTemplate": "https://www.ontrac.com/tracking/?number={trackingNumber}",
2524
+ "linkRules": [
2525
+ {
2526
+ "domains": [
2527
+ "ontrac.com"
2528
+ ],
2529
+ "params": [
2530
+ "number"
2531
+ ]
2532
+ }
2533
+ ],
2534
+ "detectionRules": [
2535
+ {
2536
+ "pattern": "^[CD]\\d{14}$",
2537
+ "confidence": "high"
2538
+ },
2539
+ {
2540
+ "pattern": "^L[AIEHNX]\\d{8}$",
2541
+ "confidence": "high"
2542
+ },
2543
+ {
2544
+ "pattern": "^1LS\\d{12,14}$",
2545
+ "confidence": "high"
2546
+ },
2547
+ {
2548
+ "pattern": "^1LS[A-Z0-9]{12,14}$",
2549
+ "confidence": "high"
2550
+ }
2551
+ ]
2552
+ },
2553
+ "speedx": {
2554
+ "displayName": "SpeedX",
2555
+ "color": "#1aa3ff",
2556
+ "countries": [
2557
+ "US"
2558
+ ],
2559
+ "selectable": true,
2560
+ "timezone": "UTC",
2561
+ "tracking": {
2562
+ "mode": "automatic",
2563
+ "adapter": "universal"
2564
+ },
2565
+ "canaryUrl": "https://t.17track.net/",
2566
+ "trackingUrlTemplate": "https://tracking.speedx.io/{trackingNumber}",
2567
+ "linkRules": [
2568
+ {
2569
+ "domains": [
2570
+ "tracking.speedx.io"
2571
+ ],
2572
+ "path": "^/([^/?#]+)/?$"
2573
+ }
2574
+ ],
2575
+ "detectionRules": [
2576
+ {
2577
+ "pattern": "^SPX[A-Z]{3}\\d{12}$",
2578
+ "confidence": "high"
2579
+ },
2580
+ {
2581
+ "pattern": "^SPX[A-Z]{3}\\d{18}$",
2582
+ "confidence": "high"
2583
+ }
2584
+ ]
2585
+ },
2586
+ "uniuni": {
2587
+ "displayName": "UniUni",
2588
+ "color": "#f68841",
2589
+ "countries": [
2590
+ "CA",
2591
+ "US"
2592
+ ],
2593
+ "selectable": true,
2594
+ "timezone": "UTC",
2595
+ "tracking": {
2596
+ "mode": "automatic",
2597
+ "adapter": "uniuni",
2598
+ "recognitionRank": 33,
2599
+ "localClocks": true
2600
+ },
2601
+ "canaryUrl": "https://www.uniuni.com/tracking/",
2602
+ "trackingUrlTemplate": "https://www.uniuni.com/tracking/?no={trackingNumber}",
2603
+ "linkRules": [
2604
+ {
2605
+ "domains": [
2606
+ "uniuni.com"
2607
+ ],
2608
+ "params": [
2609
+ "no"
2610
+ ]
2611
+ }
2612
+ ],
2613
+ "detectionRules": [
2614
+ {
2615
+ "pattern": "^UUS[A-Z0-9]{16}$",
2616
+ "confidence": "high"
2617
+ },
2618
+ {
2619
+ "pattern": "^4C\\d{9}US$",
2620
+ "confidence": "high"
2621
+ },
2622
+ {
2623
+ "pattern": "^UUSC\\d{12}$",
2624
+ "confidence": "high"
2625
+ },
2626
+ {
2627
+ "pattern": "^U9999\\d{11}$",
2628
+ "confidence": "high"
2629
+ }
2630
+ ]
2631
+ },
2632
+ "landmark-global": {
2633
+ "displayName": "Landmark Global",
2634
+ "color": "#e62337",
2635
+ "selectable": true,
2636
+ "timezone": "UTC",
2637
+ "tracking": {
2638
+ "mode": "automatic",
2639
+ "adapter": "landmark-global",
2640
+ "localClocks": true
2641
+ },
2642
+ "canaryUrl": "https://track.landmarkglobal.com/",
2643
+ "trackingUrlTemplate": "https://track.landmarkglobal.com/?search={trackingNumber}",
2644
+ "linkRules": [
2645
+ {
2646
+ "domains": [
2647
+ "track.landmarkglobal.com",
2648
+ "landmarkglobal.com"
2649
+ ],
2650
+ "params": [
2651
+ "search",
2652
+ "trck"
2653
+ ]
2654
+ }
2655
+ ],
2656
+ "detectionRules": [
2657
+ {
2658
+ "pattern": "^LTN\\d{8,9}(?:N1)?$",
2659
+ "confidence": "high"
2660
+ }
2661
+ ]
2662
+ },
2663
+ "old-dominion": {
2664
+ "displayName": "Old Dominion",
2665
+ "color": "#00693e",
2666
+ "countries": [
2667
+ "US"
2668
+ ],
2669
+ "selectable": true,
2670
+ "timezone": "UTC",
2671
+ "tracking": {
2672
+ "mode": "automatic",
2673
+ "adapter": "universal"
2674
+ },
2675
+ "canaryUrl": "https://t.17track.net/",
2676
+ "trackingUrlTemplate": "https://www.odfl.com/us/en/tools/trace-track-ltl-freight/trace.html?proNumbers={trackingNumber}",
2677
+ "linkRules": [
2678
+ {
2679
+ "domains": [
2680
+ "odfl.com"
2681
+ ],
2682
+ "params": [
2683
+ "proNumbers"
2684
+ ]
2685
+ }
2686
+ ],
2687
+ "detectionRules": [
2688
+ {
2689
+ "pattern": "^(?:072|777|778|780)\\d{8}$",
2690
+ "confidence": "high"
2691
+ },
2692
+ {
2693
+ "pattern": "^80\\d{9}$",
2694
+ "confidence": "high"
2695
+ }
2696
+ ]
2697
+ },
2698
+ "spee-dee": {
2699
+ "displayName": "Spee-Dee",
2700
+ "color": "#ff4734",
2701
+ "countries": [
2702
+ "US"
2703
+ ],
2704
+ "selectable": true,
2705
+ "timezone": "UTC",
2706
+ "tracking": {
2707
+ "mode": "automatic",
2708
+ "adapter": "universal"
2709
+ },
2710
+ "canaryUrl": "https://t.17track.net/",
2711
+ "trackingUrlTemplate": "https://www.speedeedelivery.com/track/?tracking={trackingNumber}",
2712
+ "linkRules": [
2713
+ {
2714
+ "domains": [
2715
+ "speedeedelivery.com"
2716
+ ],
2717
+ "params": [
2718
+ "tracking"
2719
+ ]
2720
+ }
2721
+ ],
2722
+ "detectionRules": [
2723
+ {
2724
+ "pattern": "^SP\\d{18}$",
2725
+ "confidence": "high"
2726
+ },
2727
+ {
2728
+ "pattern": "^SP\\d{16}$",
2729
+ "confidence": "high"
2730
+ }
2731
+ ]
2732
+ },
2733
+ "gofo": {
2734
+ "displayName": "GOFO Express",
2735
+ "color": "#fc4c02",
2736
+ "countries": [
2737
+ "US"
2738
+ ],
2739
+ "selectable": true,
2740
+ "timezone": "UTC",
2741
+ "tracking": {
2742
+ "mode": "automatic",
2743
+ "adapter": "gofo",
2744
+ "localClocks": true
2745
+ },
2746
+ "canaryUrl": "https://www.gofo.com/us/track",
2747
+ "trackingUrlTemplate": "https://www.gofo.com/us/track?searchID={trackingNumber}",
2748
+ "linkRules": [
2749
+ {
2750
+ "domains": [
2751
+ "gofoexpress.com"
2752
+ ],
2753
+ "params": [
2754
+ "searchID"
2755
+ ]
2756
+ },
2757
+ {
2758
+ "domains": [
2759
+ "gofo.com"
2760
+ ],
2761
+ "path": "^/us/track/?$",
2762
+ "params": [
2763
+ "searchID"
2764
+ ]
2765
+ }
2766
+ ],
2767
+ "detectionRules": [
2768
+ {
2769
+ "pattern": "^GFUS\\d{14}$",
2770
+ "confidence": "high"
2771
+ }
2772
+ ]
2773
+ },
2774
+ "estafeta": {
2775
+ "displayName": "Estafeta",
2776
+ "color": "#e30613",
2777
+ "countries": [
2778
+ "MX"
2779
+ ],
2780
+ "selectable": true,
2781
+ "timezone": "UTC",
2782
+ "tracking": {
2783
+ "mode": "automatic",
2784
+ "adapter": "estafeta",
2785
+ "localClocks": true
2786
+ },
2787
+ "canaryUrl": "https://cs.estafeta.com/",
2788
+ "trackingUrlTemplate": "https://cs.estafeta.com/es/Tracking/searchByGet?wayBill={trackingNumber}&isShipmentDetail=True",
2789
+ "linkRules": [
2790
+ {
2791
+ "domains": [
2792
+ "cs.estafeta.com"
2793
+ ],
2794
+ "path": "^/es/Tracking/searchByGet/?$",
2795
+ "params": [
2796
+ "wayBill"
2797
+ ]
2798
+ }
2799
+ ],
2800
+ "detectionRules": [
2801
+ {
2802
+ "pattern": "^\\d{10}$",
2803
+ "confidence": "low"
2804
+ },
2805
+ {
2806
+ "pattern": "^(?:\\d{22}|\\d{15}[A-Z0-9]{7})$",
2807
+ "confidence": "low"
2808
+ },
2809
+ {
2810
+ "pattern": "^\\d{12}(?:[A-Z]\\d|\\d[A-Z])\\d{8}$",
2811
+ "confidence": "high"
2812
+ }
2813
+ ]
2814
+ },
2815
+ "correios-br": {
2816
+ "displayName": "Correios Brazil",
2817
+ "color": "#ffd500",
2818
+ "countries": [
2819
+ "BR"
2820
+ ],
2821
+ "selectable": true,
2822
+ "timezone": "UTC",
2823
+ "tracking": {
2824
+ "mode": "automatic",
2825
+ "adapter": "correios-br",
2826
+ "localClocks": true
2827
+ },
2828
+ "canaryUrl": "https://rastreamento.correios.com.br/app/index.php",
2829
+ "trackingUrlTemplate": "https://rastreamento.correios.com.br/app/index.php?objetos={trackingNumber}",
2830
+ "linkRules": [
2831
+ {
2832
+ "domains": [
2833
+ "correios.com.br"
2834
+ ],
2835
+ "params": [
2836
+ "objetos"
2837
+ ]
2838
+ }
2839
+ ],
2840
+ "detectionRules": [
2841
+ {
2842
+ "pattern": "^[A-Z]{2}\\d{9}BR$",
2843
+ "confidence": "high",
2844
+ "checksum": "s10"
2845
+ }
2846
+ ]
2847
+ },
2848
+ "correos-chile": {
2849
+ "displayName": "Correos de Chile",
2850
+ "color": "#d9232d",
2851
+ "countries": [
2852
+ "CL"
2853
+ ],
2854
+ "selectable": true,
2855
+ "timezone": "UTC",
2856
+ "tracking": {
2857
+ "mode": "automatic",
2858
+ "adapter": "correos-chile",
2859
+ "localClocks": true
2860
+ },
2861
+ "canaryUrl": "https://t.17track.net/",
2862
+ "trackingUrlTemplate": "https://www.correos.cl/seguimiento-en-linea",
2863
+ "linkRules": [],
2864
+ "detectionRules": [
2865
+ {
2866
+ "pattern": "^\\d{13}$",
2867
+ "confidence": "low"
2868
+ },
2869
+ {
2870
+ "pattern": "^[A-Z]{2}\\d{9}CL$",
2871
+ "confidence": "high",
2872
+ "checksum": "s10"
2873
+ }
2874
+ ]
2875
+ },
2876
+ "yunexpress": {
2877
+ "displayName": "YunExpress",
2878
+ "color": "#008284",
2879
+ "countries": [
2880
+ "CN"
2881
+ ],
2882
+ "selectable": true,
2883
+ "timezone": "UTC",
2884
+ "tracking": {
2885
+ "mode": "automatic",
2886
+ "adapter": "yunexpress",
2887
+ "localClocks": true
2888
+ },
2889
+ "canaryUrl": "https://www.yuntrack.com/",
2890
+ "trackingUrlTemplate": "https://www.yuntrack.com/parcelTracking?id={trackingNumber}",
2891
+ "linkRules": [
2892
+ {
2893
+ "domains": [
2894
+ "www.yuntrack.com",
2895
+ "yuntrack.com"
2896
+ ],
2897
+ "params": [
2898
+ "id"
2899
+ ]
2900
+ },
2901
+ {
2902
+ "domains": [
2903
+ "www.yuntrack.com",
2904
+ "yuntrack.com"
2905
+ ],
2906
+ "path": "/Track/Detail/([A-Z0-9]+)"
2907
+ }
2908
+ ],
2909
+ "detectionRules": [
2910
+ {
2911
+ "pattern": "^YT\\d{16}$",
2912
+ "confidence": "high"
2913
+ }
2914
+ ]
2915
+ },
2916
+ "four-px": {
2917
+ "displayName": "4PX",
2918
+ "color": "#f58220",
2919
+ "countries": [
2920
+ "CN"
2921
+ ],
2922
+ "selectable": true,
2923
+ "timezone": "UTC",
2924
+ "tracking": {
2925
+ "mode": "automatic",
2926
+ "adapter": "four-px",
2927
+ "localClocks": true
2928
+ },
2929
+ "canaryUrl": "https://track.4px.com/",
2930
+ "trackingUrlTemplate": "https://track.4px.com/#/result/0/{trackingNumber}",
2931
+ "linkRules": [
2932
+ {
2933
+ "domains": [
2934
+ "track.4px.com"
2935
+ ],
2936
+ "pathPattern": "^/$",
2937
+ "fragment": "^/result/0/([A-Z0-9]+)$"
2938
+ }
2939
+ ],
2940
+ "detectionRules": [
2941
+ {
2942
+ "pattern": "^4PX\\d{13}CN$",
2943
+ "confidence": "high"
2944
+ }
2945
+ ]
2946
+ },
2947
+ "blue-dart": {
2948
+ "displayName": "Blue Dart",
2949
+ "color": "#0059a9",
2950
+ "countries": [
2951
+ "IN"
2952
+ ],
2953
+ "selectable": true,
2954
+ "timezone": "Asia/Kolkata",
2955
+ "tracking": {
2956
+ "mode": "automatic",
2957
+ "adapter": "blue-dart",
2958
+ "localClocks": true
2959
+ },
2960
+ "canaryUrl": "https://www.bluedart.com/trackdartresultthirdparty",
2961
+ "trackingUrlTemplate": "https://www.bluedart.com/trackdartresultthirdparty?trackFor=0&trackNo={trackingNumber}",
2962
+ "linkRules": [
2963
+ {
2964
+ "domains": [
2965
+ "bluedart.com"
2966
+ ],
2967
+ "params": [
2968
+ "trackNo"
2969
+ ]
2970
+ }
2971
+ ],
2972
+ "detectionRules": [
2973
+ {
2974
+ "pattern": "^\\d{11}$",
2975
+ "confidence": "low"
2976
+ }
2977
+ ]
2978
+ },
2979
+ "delhivery": {
2980
+ "displayName": "Delhivery",
2981
+ "color": "#ed4136",
2982
+ "countries": [
2983
+ "IN"
2984
+ ],
2985
+ "selectable": true,
2986
+ "timezone": "Asia/Kolkata",
2987
+ "tracking": {
2988
+ "mode": "automatic",
2989
+ "adapter": "delhivery",
2990
+ "localClocks": true
2991
+ },
2992
+ "canaryUrl": "https://www.delhivery.com/tracking",
2993
+ "trackingUrlTemplate": "https://www.delhivery.com/tracking",
2994
+ "linkRules": [],
2995
+ "detectionRules": [
2996
+ {
2997
+ "pattern": "^\\d{13,14}$",
2998
+ "confidence": "low"
2999
+ }
3000
+ ]
3001
+ },
3002
+ "nz-post": {
3003
+ "displayName": "NZ Post",
3004
+ "color": "#d8291c",
3005
+ "countries": [
3006
+ "NZ"
3007
+ ],
3008
+ "selectable": true,
3009
+ "timezone": "UTC",
3010
+ "tracking": {
3011
+ "mode": "automatic",
3012
+ "adapter": "nz-post",
3013
+ "recognitionRank": 32,
3014
+ "localClocks": true
3015
+ },
3016
+ "canaryUrl": "https://www.nzpost.co.nz/tools/tracking",
3017
+ "trackingUrlTemplate": "https://www.nzpost.co.nz/tools/tracking?trackid={trackingNumber}",
3018
+ "linkRules": [
3019
+ {
3020
+ "domains": [
3021
+ "www.nzpost.co.nz"
3022
+ ],
3023
+ "params": [
3024
+ "trackid"
3025
+ ]
3026
+ }
3027
+ ],
3028
+ "detectionRules": [
3029
+ {
3030
+ "pattern": "^[A-Z]{2}\\d{9}NZ$",
3031
+ "confidence": "high",
3032
+ "checksum": "s10"
3033
+ },
3034
+ {
3035
+ "pattern": "^\\d{20}$",
3036
+ "confidence": "low"
3037
+ }
3038
+ ]
3039
+ },
3040
+ "singapore-post": {
3041
+ "displayName": "Singapore Post",
3042
+ "color": "#2e5da8",
3043
+ "countries": [
3044
+ "SG"
3045
+ ],
3046
+ "selectable": true,
3047
+ "timezone": "UTC",
3048
+ "tracking": {
3049
+ "mode": "automatic",
3050
+ "adapter": "singapore-post",
3051
+ "localClocks": true
3052
+ },
3053
+ "canaryUrl": "https://www.singpost.com/track-items",
3054
+ "trackingUrlTemplate": "https://www.singpost.com/track-items?tracknumber={trackingNumber}",
3055
+ "linkRules": [
3056
+ {
3057
+ "domains": [
3058
+ "www.singpost.com"
3059
+ ],
3060
+ "params": [
3061
+ "tracknumber",
3062
+ "trackingid"
3063
+ ]
3064
+ }
3065
+ ],
3066
+ "detectionRules": [
3067
+ {
3068
+ "pattern": "^[A-Z]{2}\\d{9}SG$",
3069
+ "confidence": "high",
3070
+ "checksum": "s10"
3071
+ }
3072
+ ]
3073
+ },
3074
+ "japan-post": {
3075
+ "displayName": "Japan Post",
3076
+ "color": "#cc0000",
3077
+ "countries": [
3078
+ "JP"
3079
+ ],
3080
+ "selectable": true,
3081
+ "timezone": "UTC",
3082
+ "tracking": {
3083
+ "mode": "automatic",
3084
+ "adapter": "japan-post",
3085
+ "localClocks": true
3086
+ },
3087
+ "canaryUrl": "https://trackings.post.japanpost.jp/services/srv/search",
3088
+ "trackingUrlTemplate": "https://trackings.post.japanpost.jp/services/srv/search/direct?reqCodeNo1={trackingNumber}&locale=en",
3089
+ "linkRules": [
3090
+ {
3091
+ "domains": [
3092
+ "trackings.post.japanpost.jp"
3093
+ ],
3094
+ "params": [
3095
+ "reqCodeNo1",
3096
+ "requestNo1"
3097
+ ]
3098
+ }
3099
+ ],
3100
+ "detectionRules": [
3101
+ {
3102
+ "pattern": "^[A-Z]{2}\\d{9}JP$",
3103
+ "confidence": "high",
3104
+ "checksum": "s10"
3105
+ }
3106
+ ]
3107
+ },
3108
+ "sf-express": {
3109
+ "displayName": "SF Express",
3110
+ "color": "#dc1e32",
3111
+ "countries": [
3112
+ "CN",
3113
+ "HK"
3114
+ ],
3115
+ "selectable": true,
3116
+ "timezone": "UTC",
3117
+ "tracking": {
3118
+ "mode": "automatic",
3119
+ "adapter": "sf-express",
3120
+ "localClocks": true
3121
+ },
3122
+ "canaryUrl": "https://htm.sf-express.com/tw/en/dynamic_function/waybill/",
3123
+ "trackingUrlTemplate": "https://htm.sf-express.com/tw/en/dynamic_function/waybill/#search/bill-number/{trackingNumber}",
3124
+ "linkRules": [
3125
+ {
3126
+ "domains": [
3127
+ "sf-express.com"
3128
+ ],
3129
+ "path": "^/.+/waybill-detail/([^/?#]+)/?$"
3130
+ },
3131
+ {
3132
+ "domains": [
3133
+ "htm.sf-express.com"
3134
+ ],
3135
+ "pathPattern": "^/tw/en/dynamic_function/waybill/$",
3136
+ "fragment": "^search/bill-number/(SF\\d{13}|\\d{12})$"
3137
+ }
3138
+ ],
3139
+ "detectionRules": [
3140
+ {
3141
+ "pattern": "^\\d{12}$",
3142
+ "confidence": "low"
3143
+ },
3144
+ {
3145
+ "pattern": "^SF\\d{13}$",
3146
+ "confidence": "low"
3147
+ }
3148
+ ]
3149
+ },
3150
+ "sto": {
3151
+ "displayName": "STO Express",
3152
+ "color": "#ff6700",
3153
+ "countries": [
3154
+ "CN"
3155
+ ],
3156
+ "selectable": true,
3157
+ "timezone": "Asia/Shanghai",
3158
+ "tracking": {
3159
+ "mode": "automatic",
3160
+ "adapter": "universal"
3161
+ },
3162
+ "canaryUrl": "https://t.17track.net/",
3163
+ "trackingUrlTemplate": "https://www.sto.cn/",
3164
+ "linkRules": [],
3165
+ "detectionRules": [
3166
+ {
3167
+ "pattern": "^\\d{12}$",
3168
+ "confidence": "low"
3169
+ }
3170
+ ]
3171
+ },
3172
+ "yunda": {
3173
+ "displayName": "Yunda Express",
3174
+ "color": "#ffce00",
3175
+ "countries": [
3176
+ "CN"
3177
+ ],
3178
+ "selectable": true,
3179
+ "timezone": "Asia/Shanghai",
3180
+ "tracking": {
3181
+ "mode": "automatic",
3182
+ "adapter": "yunda",
3183
+ "localClocks": true
3184
+ },
3185
+ "canaryUrl": "https://web.yundaex.com/infoInquiry",
3186
+ "trackingUrlTemplate": "https://web.yundaex.com/infoInquiry?nav_id=262&cid=0&homeWaybill={trackingNumber}",
3187
+ "linkRules": [
3188
+ {
3189
+ "domains": [
3190
+ "web.yundaex.com"
3191
+ ],
3192
+ "params": [
3193
+ "homeWaybill"
3194
+ ]
3195
+ }
3196
+ ],
3197
+ "detectionRules": [
3198
+ {
3199
+ "pattern": "^\\d{13}(?:\\d{2})?$",
3200
+ "confidence": "low"
3201
+ }
3202
+ ]
3203
+ },
3204
+ "yto": {
3205
+ "displayName": "YTO Express",
3206
+ "color": "#4d148c",
3207
+ "countries": [
3208
+ "CN"
3209
+ ],
3210
+ "selectable": true,
3211
+ "timezone": "Asia/Shanghai",
3212
+ "tracking": {
3213
+ "mode": "automatic",
3214
+ "adapter": "yto",
3215
+ "localClocks": true
3216
+ },
3217
+ "canaryUrl": "https://www.yto.net.cn/ytoExpress/waybill/search",
3218
+ "trackingUrlTemplate": "https://www.yto.net.cn/ytoExpress/waybill/search",
3219
+ "linkRules": [
3220
+ {
3221
+ "domains": [
3222
+ "yto.net.cn"
3223
+ ],
3224
+ "params": [
3225
+ "mailNo",
3226
+ "waybillNo"
3227
+ ]
3228
+ }
3229
+ ],
3230
+ "detectionRules": [
3231
+ {
3232
+ "pattern": "^D\\d{11}$",
3233
+ "confidence": "high"
3234
+ },
3235
+ {
3236
+ "pattern": "^YT\\d{13}$",
3237
+ "confidence": "high"
3238
+ }
3239
+ ]
3240
+ },
3241
+ "zto": {
3242
+ "displayName": "ZTO Express",
3243
+ "color": "#0279ff",
3244
+ "countries": [
3245
+ "CN"
3246
+ ],
3247
+ "selectable": true,
3248
+ "timezone": "Asia/Shanghai",
3249
+ "tracking": {
3250
+ "mode": "automatic",
3251
+ "adapter": "universal"
3252
+ },
3253
+ "canaryUrl": "https://t.17track.net/",
3254
+ "trackingUrlTemplate": "https://www.zto.com/",
3255
+ "linkRules": [],
3256
+ "detectionRules": [
3257
+ {
3258
+ "pattern": "^\\d{12}$",
3259
+ "confidence": "low"
3260
+ }
3261
+ ]
3262
+ },
3263
+ "jd-logistics": {
3264
+ "displayName": "JD Logistics",
3265
+ "color": "#e1251b",
3266
+ "countries": [
3267
+ "CN"
3268
+ ],
3269
+ "selectable": true,
3270
+ "timezone": "UTC",
3271
+ "tracking": {
3272
+ "mode": "automatic",
3273
+ "adapter": "universal"
3274
+ },
3275
+ "canaryUrl": "https://t.17track.net/",
3276
+ "trackingUrlTemplate": "https://www.jingdonglogistics.com/Tracking",
3277
+ "linkRules": [],
3278
+ "detectionRules": [
3279
+ {
3280
+ "pattern": "^VG\\d{11}$",
3281
+ "confidence": "high"
3282
+ }
3283
+ ]
3284
+ },
3285
+ "yamato": {
3286
+ "displayName": "Yamato Transport",
3287
+ "color": "#fccf00",
3288
+ "countries": [
3289
+ "JP"
3290
+ ],
3291
+ "selectable": true,
3292
+ "timezone": "Asia/Tokyo",
3293
+ "tracking": {
3294
+ "mode": "automatic",
3295
+ "adapter": "yamato",
3296
+ "localClocks": true
3297
+ },
3298
+ "canaryUrl": "https://toi.kuronekoyamato.co.jp/cgi-bin/tneko",
3299
+ "trackingUrlTemplate": "https://toi.kuronekoyamato.co.jp/cgi-bin/tneko",
3300
+ "linkRules": [
3301
+ {
3302
+ "domains": [
3303
+ "toi.kuronekoyamato.co.jp",
3304
+ "track.kuronekoyamato.co.jp"
3305
+ ],
3306
+ "params": [
3307
+ "number01",
3308
+ "no01"
3309
+ ]
3310
+ }
3311
+ ],
3312
+ "detectionRules": [
3313
+ {
3314
+ "pattern": "^\\d{12}$",
3315
+ "confidence": "low"
3316
+ }
3317
+ ]
3318
+ },
3319
+ "korea-post": {
3320
+ "displayName": "Korea Post",
3321
+ "color": "#da291c",
3322
+ "countries": [
3323
+ "KR"
3324
+ ],
3325
+ "selectable": true,
3326
+ "timezone": "UTC",
3327
+ "tracking": {
3328
+ "mode": "automatic",
3329
+ "adapter": "korea-post",
3330
+ "localClocks": true
3331
+ },
3332
+ "canaryUrl": "https://trace.epost.go.kr/xtts/tt/epost/ems/ems_eng.jsp",
3333
+ "trackingUrlTemplate": "https://trace.epost.go.kr/xtts/servlet/kpl.tts.common.svl.SttSVL?target_command=kpl.tts.tt.epost.cmd.RetrieveEmsTraceEngCmd&JspURI=%2Fxtts%2Ftt%2Fepost%2Fems%2FEmsSearchResultEng.jsp&POST_CODE={trackingNumber}",
3334
+ "linkRules": [
3335
+ {
3336
+ "domains": [
3337
+ "trace.epost.go.kr"
3338
+ ],
3339
+ "params": [
3340
+ "POST_CODE"
3341
+ ]
3342
+ },
3343
+ {
3344
+ "domains": [
3345
+ "service.epost.go.kr"
3346
+ ],
3347
+ "params": [
3348
+ "sid1"
3349
+ ]
3350
+ }
3351
+ ],
3352
+ "detectionRules": [
3353
+ {
3354
+ "pattern": "^[A-Z]{2}\\d{9}KR$",
3355
+ "confidence": "high",
3356
+ "checksum": "s10"
3357
+ },
3358
+ {
3359
+ "pattern": "^6\\d{12}$",
3360
+ "confidence": "low"
3361
+ }
3362
+ ]
3363
+ },
3364
+ "thailand-post": {
3365
+ "displayName": "Thailand Post",
3366
+ "color": "#ef172f",
3367
+ "countries": [
3368
+ "TH"
3369
+ ],
3370
+ "selectable": true,
3371
+ "timezone": "UTC",
3372
+ "tracking": {
3373
+ "mode": "automatic",
3374
+ "adapter": "universal"
3375
+ },
3376
+ "canaryUrl": "https://t.17track.net/",
3377
+ "trackingUrlTemplate": "https://international.thailandpost.com/track-status?lang=en",
3378
+ "linkRules": [],
3379
+ "detectionRules": [
3380
+ {
3381
+ "pattern": "^[A-Z]{2}\\d{9}TH$",
3382
+ "confidence": "high",
3383
+ "checksum": "s10"
3384
+ }
3385
+ ]
3386
+ },
3387
+ "dtdc": {
3388
+ "displayName": "DTDC",
3389
+ "color": "#0d237d",
3390
+ "countries": [
3391
+ "IN"
3392
+ ],
3393
+ "selectable": true,
3394
+ "timezone": "Asia/Kolkata",
3395
+ "tracking": {
3396
+ "mode": "automatic",
3397
+ "adapter": "dtdc"
3398
+ },
3399
+ "canaryUrl": "https://web.mydtdc.in/",
3400
+ "trackingUrlTemplate": "https://web.mydtdc.in/",
3401
+ "linkRules": [
3402
+ {
3403
+ "domains": [
3404
+ "dtdc.com"
3405
+ ],
3406
+ "params": [
3407
+ "trackingId"
3408
+ ]
3409
+ }
3410
+ ],
3411
+ "detectionRules": [
3412
+ {
3413
+ "pattern": "^N\\d{8}$",
3414
+ "confidence": "high"
3415
+ },
3416
+ {
3417
+ "pattern": "^7[DX]\\d{9}$",
3418
+ "confidence": "high"
3419
+ },
3420
+ {
3421
+ "pattern": "^[BDHPTUV]\\d{10}$",
3422
+ "confidence": "low"
3423
+ }
3424
+ ]
3425
+ },
3426
+ "australia-post": {
3427
+ "displayName": "Australia Post",
3428
+ "color": "#dc1928",
3429
+ "countries": [
3430
+ "AU"
3431
+ ],
3432
+ "selectable": true,
3433
+ "timezone": "UTC",
3434
+ "tracking": {
3435
+ "mode": "automatic",
3436
+ "adapter": "australia-post"
3437
+ },
3438
+ "canaryUrl": "https://auspost.com.au/mypost/track/",
3439
+ "trackingUrlTemplate": "https://auspost.com.au/mypost/track/details/{trackingNumber}",
3440
+ "linkRules": [
3441
+ {
3442
+ "domains": [
3443
+ "auspost.com.au"
3444
+ ],
3445
+ "params": [
3446
+ "id"
3447
+ ]
3448
+ },
3449
+ {
3450
+ "domains": [
3451
+ "auspost.com.au"
3452
+ ],
3453
+ "path": "^/mypost/track/details/([^/?#]+)/?$"
3454
+ }
3455
+ ],
3456
+ "detectionRules": []
3457
+ },
3458
+ "hongkong-post": {
3459
+ "displayName": "Hongkong Post",
3460
+ "color": "#008965",
3461
+ "countries": [
3462
+ "HK"
3463
+ ],
3464
+ "selectable": true,
3465
+ "timezone": "UTC",
3466
+ "tracking": {
3467
+ "mode": "automatic",
3468
+ "adapter": "universal"
3469
+ },
3470
+ "canaryUrl": "https://t.17track.net/",
3471
+ "trackingUrlTemplate": "https://webapp.hongkongpost.hk/en/mail_tracking2/index.html",
3472
+ "linkRules": [],
3473
+ "detectionRules": [
3474
+ {
3475
+ "pattern": "^[A-Z]{2}\\d{9}HK$",
3476
+ "confidence": "high",
3477
+ "checksum": "s10"
3478
+ }
3479
+ ]
3480
+ },
3481
+ "pos-malaysia": {
3482
+ "displayName": "Pos Malaysia",
3483
+ "color": "#ed1c24",
3484
+ "aliases": [
3485
+ "Pos Laju",
3486
+ "Pos Malaysia Berhad"
3487
+ ],
3488
+ "countries": [
3489
+ "MY"
3490
+ ],
3491
+ "selectable": true,
3492
+ "timezone": "UTC",
3493
+ "tracking": {
3494
+ "mode": "automatic",
3495
+ "adapter": "pos-malaysia",
3496
+ "localClocks": true
3497
+ },
3498
+ "canaryUrl": "https://tracking.pos.com.my/",
3499
+ "trackingUrlTemplate": "https://tracking.pos.com.my/tracking/{trackingNumber}",
3500
+ "linkRules": [
3501
+ {
3502
+ "domains": [
3503
+ "tracking.pos.com.my"
3504
+ ],
3505
+ "path": "^/tracking/([^/?#]+)/?$"
3506
+ }
3507
+ ],
3508
+ "detectionRules": [
3509
+ {
3510
+ "pattern": "^MYPM\\d{11}$",
3511
+ "confidence": "high"
3512
+ },
3513
+ {
3514
+ "pattern": "^[A-Z]{2}\\d{9}MY$",
3515
+ "confidence": "high",
3516
+ "checksum": "s10"
3517
+ }
3518
+ ]
3519
+ },
3520
+ "ninja-van": {
3521
+ "displayName": "Ninja Van",
3522
+ "color": "#ed2d26",
3523
+ "countries": [
3524
+ "SG",
3525
+ "MY",
3526
+ "PH",
3527
+ "ID",
3528
+ "TH",
3529
+ "VN"
3530
+ ],
3531
+ "selectable": true,
3532
+ "timezone": "UTC",
3533
+ "tracking": {
3534
+ "mode": "automatic",
3535
+ "adapter": "ninja-van",
3536
+ "recognitionRank": 28,
3537
+ "localClocks": true
3538
+ },
3539
+ "canaryUrl": "https://www.ninjavan.co/en-my/tracking",
3540
+ "trackingUrlTemplate": "https://www.ninjavan.co/en-my/tracking?id={trackingNumber}",
3541
+ "linkRules": [
3542
+ {
3543
+ "domains": [
3544
+ "ninjavan.co"
3545
+ ],
3546
+ "params": [
3547
+ "id"
3548
+ ]
3549
+ }
3550
+ ],
3551
+ "detectionRules": [
3552
+ {
3553
+ "pattern": "^NL(?:MY|SG|ID|PH|TH|VN)[A-Z]{1,2}\\d{8,10}$",
3554
+ "confidence": "high"
3555
+ },
3556
+ {
3557
+ "pattern": "^NV(?:SG|MY|PH|ID|TH|VN)[A-Z0-9]{8,20}$",
3558
+ "confidence": "low"
3559
+ }
3560
+ ]
3561
+ },
3562
+ "china-post": {
3563
+ "displayName": "China Post",
3564
+ "color": "#006d46",
3565
+ "countries": [
3566
+ "CN"
3567
+ ],
3568
+ "selectable": true,
3569
+ "timezone": "UTC",
3570
+ "tracking": {
3571
+ "mode": "automatic",
3572
+ "adapter": "universal"
3573
+ },
3574
+ "canaryUrl": "https://t.17track.net/",
3575
+ "trackingUrlTemplate": "https://www.ems.com.cn/mailtracking/you_jian_cha_xun.html",
3576
+ "linkRules": [],
3577
+ "detectionRules": [
3578
+ {
3579
+ "pattern": "^[A-Z]{2}\\d{9}CN$",
3580
+ "confidence": "high",
3581
+ "checksum": "s10"
3582
+ }
3583
+ ]
3584
+ },
3585
+ "packeta": {
3586
+ "displayName": "Packeta",
3587
+ "color": "#ba1b02",
3588
+ "aliases": [
3589
+ "Zásilkovna",
3590
+ "Zasilkovna",
3591
+ "Packeta Slovakia",
3592
+ "Z-BOX"
3593
+ ],
3594
+ "countries": [
3595
+ "CZ",
3596
+ "SK",
3597
+ "HU",
3598
+ "RO",
3599
+ "PL"
3600
+ ],
3601
+ "selectable": true,
3602
+ "timezone": "UTC",
3603
+ "tracking": {
3604
+ "mode": "automatic",
3605
+ "adapter": "packeta"
3606
+ },
3607
+ "canaryUrl": "https://tracking.packeta.com/",
3608
+ "trackingUrlTemplate": "https://tracking.packeta.com/en/{trackingNumber}",
3609
+ "linkRules": [
3610
+ {
3611
+ "domains": [
3612
+ "tracking.packeta.com",
3613
+ "packeta.com"
3614
+ ],
3615
+ "params": [
3616
+ "id"
3617
+ ]
3618
+ },
3619
+ {
3620
+ "domains": [
3621
+ "tracking.packeta.com"
3622
+ ],
3623
+ "path": "^/[a-z]{2}/([^/?#]+)/?$"
3624
+ }
3625
+ ],
3626
+ "detectionRules": [
3627
+ {
3628
+ "pattern": "^Z\\d{10}$",
3629
+ "confidence": "high"
3630
+ }
3631
+ ]
3632
+ },
3633
+ "poczta-polska": {
3634
+ "displayName": "Poczta Polska",
3635
+ "color": "#c43c2b",
3636
+ "countries": [
3637
+ "PL"
3638
+ ],
3639
+ "selectable": true,
3640
+ "timezone": "UTC",
3641
+ "tracking": {
3642
+ "mode": "automatic",
3643
+ "adapter": "poczta-polska",
3644
+ "recognitionRank": 31,
3645
+ "localClocks": true
3646
+ },
3647
+ "canaryUrl": "https://emonitoring.poczta-polska.pl/",
3648
+ "trackingUrlTemplate": "https://emonitoring.poczta-polska.pl/?lang=en&numer={trackingNumber}",
3649
+ "linkRules": [
3650
+ {
3651
+ "domains": [
3652
+ "emonitoring.poczta-polska.pl"
3653
+ ],
3654
+ "params": [
3655
+ "numer"
3656
+ ]
3657
+ }
3658
+ ],
3659
+ "detectionRules": [
3660
+ {
3661
+ "pattern": "^\\d{19,20}$",
3662
+ "confidence": "low"
3663
+ },
3664
+ {
3665
+ "pattern": "^PX\\d{10}$",
3666
+ "confidence": "high"
3667
+ }
3668
+ ]
3669
+ },
3670
+ "bring-posten": {
3671
+ "displayName": "Bring",
3672
+ "color": "#56b529",
3673
+ "aliases": [
3674
+ "Posten Norge",
3675
+ "Posten Bring"
3676
+ ],
3677
+ "countries": [
3678
+ "NO",
3679
+ "SE",
3680
+ "DK",
3681
+ "FI"
3682
+ ],
3683
+ "selectable": true,
3684
+ "timezone": "UTC",
3685
+ "tracking": {
3686
+ "mode": "automatic",
3687
+ "adapter": "bring-posten",
3688
+ "localClocks": true
3689
+ },
3690
+ "canaryUrl": "https://sporing.bring.no/sporing/",
3691
+ "trackingUrlTemplate": "https://sporing.bring.no/sporing/{trackingNumber}?lang=en",
3692
+ "linkRules": [
3693
+ {
3694
+ "domains": [
3695
+ "sporing.bring.no",
3696
+ "sporing.posten.no"
3697
+ ],
3698
+ "path": "^/sporing/([A-Z0-9]{13,18})/?$"
3699
+ },
3700
+ {
3701
+ "domains": [
3702
+ "sporing.bring.no",
3703
+ "sporing.posten.no"
3704
+ ],
3705
+ "params": [
3706
+ "q"
3707
+ ]
3708
+ }
3709
+ ],
3710
+ "detectionRules": [
3711
+ {
3712
+ "pattern": "^[A-Z]{2}\\d{9}NO$",
3713
+ "confidence": "high",
3714
+ "checksum": "s10"
3715
+ }
3716
+ ]
3717
+ },
3718
+ "aramex": {
3719
+ "displayName": "Aramex",
3720
+ "color": "#dc291e",
3721
+ "countries": [
3722
+ "AE",
3723
+ "SA",
3724
+ "EG",
3725
+ "JO"
3726
+ ],
3727
+ "selectable": true,
3728
+ "timezone": "UTC",
3729
+ "tracking": {
3730
+ "mode": "automatic",
3731
+ "adapter": "aramex",
3732
+ "localClocks": true
3733
+ },
3734
+ "canaryUrl": "https://www.aramex.com/us/en/track/shipments",
3735
+ "trackingUrlTemplate": "https://www.aramex.com/us/en/track/shipments?ShipmentNumber={trackingNumber}",
3736
+ "linkRules": [
3737
+ {
3738
+ "domains": [
3739
+ "aramex.com"
3740
+ ],
3741
+ "params": [
3742
+ "ShipmentNumber"
3743
+ ]
3744
+ }
3745
+ ],
3746
+ "detectionRules": [
3747
+ {
3748
+ "pattern": "^\\d{11}$",
3749
+ "confidence": "low"
3750
+ }
3751
+ ]
3752
+ },
3753
+ "tnt": {
3754
+ "displayName": "TNT",
3755
+ "color": "#ff6600",
3756
+ "selectable": true,
3757
+ "timezone": "Europe/Paris",
3758
+ "tracking": {
3759
+ "mode": "automatic",
3760
+ "adapter": "tnt",
3761
+ "recognitionRank": 44
3762
+ },
3763
+ "canaryUrl": "https://www.tnt.fr/public/suivi_colis/recherche/index.do",
3764
+ "trackingUrlTemplate": "https://www.tnt.com/express/en_gb/site/shipping-tools/tracking.html?searchType=con&cons={trackingNumber}",
3765
+ "linkRules": [],
3766
+ "detectionRules": [
3767
+ {
3768
+ "pattern": "^\\d{9}$",
3769
+ "confidence": "low"
3770
+ },
3771
+ {
3772
+ "pattern": "^\\d{16}$",
3773
+ "confidence": "low"
3774
+ }
3775
+ ]
3776
+ },
3777
+ "correos-spain": {
3778
+ "displayName": "Correos",
3779
+ "color": "#ffcd00",
3780
+ "aliases": [
3781
+ "Correos España",
3782
+ "Correos y Telégrafos",
3783
+ "Sociedad Estatal Correos y Telégrafos"
3784
+ ],
3785
+ "countries": [
3786
+ "ES"
3787
+ ],
3788
+ "selectable": true,
3789
+ "timezone": "UTC",
3790
+ "tracking": {
3791
+ "mode": "automatic",
3792
+ "adapter": "correos-spain"
3793
+ },
3794
+ "canaryUrl": "https://www.correos.es/",
3795
+ "trackingUrlTemplate": "https://www.correos.es/es/es/herramientas/localizador/envios/detalle?tracking-number={trackingNumber}",
3796
+ "linkRules": [
3797
+ {
3798
+ "domains": [
3799
+ "correos.es"
3800
+ ],
3801
+ "params": [
3802
+ "tracking-number"
3803
+ ]
3804
+ }
3805
+ ],
3806
+ "detectionRules": [
3807
+ {
3808
+ "pattern": "^PR\\d{15}C$",
3809
+ "confidence": "high"
3810
+ },
3811
+ {
3812
+ "pattern": "^[PD][A-Z][A-Z0-9]{4}\\d{16}[A-Z]$",
3813
+ "confidence": "high"
3814
+ },
3815
+ {
3816
+ "pattern": "^[A-Z]{2}\\d{9}ES$",
3817
+ "confidence": "high",
3818
+ "checksum": "s10"
3819
+ }
3820
+ ]
3821
+ },
3822
+ "yanwen": {
3823
+ "displayName": "Yanwen",
3824
+ "color": "#8cbe1e",
3825
+ "countries": [
3826
+ "CN"
3827
+ ],
3828
+ "selectable": true,
3829
+ "timezone": "UTC",
3830
+ "tracking": {
3831
+ "mode": "automatic",
3832
+ "adapter": "yanwen"
3833
+ },
3834
+ "canaryUrl": "https://track.yw56.com.cn/en/index",
3835
+ "trackingUrlTemplate": "https://track.yw56.com.cn/en/index",
3836
+ "linkRules": [
3837
+ {
3838
+ "domains": [
3839
+ "track.yw56.com.cn"
3840
+ ],
3841
+ "params": [
3842
+ "nums"
3843
+ ]
3844
+ }
3845
+ ],
3846
+ "detectionRules": [
3847
+ {
3848
+ "pattern": "^BYS\\d{9}$",
3849
+ "confidence": "high"
3850
+ },
3851
+ {
3852
+ "pattern": "^[A-Z]{2}\\d{9}YP$",
3853
+ "confidence": "high",
3854
+ "checksum": "s10"
3855
+ }
3856
+ ]
3857
+ },
3858
+ "the-courier-guy": {
3859
+ "displayName": "The Courier Guy",
3860
+ "color": "#264796",
3861
+ "countries": [
3862
+ "ZA"
3863
+ ],
3864
+ "selectable": true,
3865
+ "timezone": "UTC",
3866
+ "tracking": {
3867
+ "mode": "automatic",
3868
+ "adapter": "the-courier-guy",
3869
+ "recognitionRank": 29,
3870
+ "localClocks": true
3871
+ },
3872
+ "canaryUrl": "https://portal.thecourierguy.co.za/track",
3873
+ "trackingUrlTemplate": "https://portal.thecourierguy.co.za/track?ref={trackingNumber}",
3874
+ "linkRules": [
3875
+ {
3876
+ "domains": [
3877
+ "portal.thecourierguy.co.za",
3878
+ "track.thecourierguy.co.za"
3879
+ ],
3880
+ "path": "^/track/?$",
3881
+ "params": [
3882
+ "ref"
3883
+ ]
3884
+ }
3885
+ ],
3886
+ "detectionRules": [
3887
+ {
3888
+ "pattern": "^(?:DD|LD)[A-Z0-9]{6}$",
3889
+ "confidence": "low"
3890
+ }
3891
+ ]
3892
+ },
3893
+ "j-and-t": {
3894
+ "displayName": "J&T Express",
3895
+ "color": "#ff0000",
3896
+ "countries": [
3897
+ "PH",
3898
+ "ID",
3899
+ "MY",
3900
+ "TH",
3901
+ "VN",
3902
+ "SG"
3903
+ ],
3904
+ "selectable": true,
3905
+ "timezone": "UTC",
3906
+ "tracking": {
3907
+ "mode": "automatic",
3908
+ "adapter": "universal"
3909
+ },
3910
+ "canaryUrl": "https://t.17track.net/",
3911
+ "trackingUrlTemplate": "https://www.jtexpress.ph/track-and-trace?flag=1&waybillNo={trackingNumber}",
3912
+ "linkRules": [
3913
+ {
3914
+ "domains": [
3915
+ "jtexpress.ph"
3916
+ ],
3917
+ "params": [
3918
+ "waybillNo"
3919
+ ]
3920
+ }
3921
+ ],
3922
+ "detectionRules": [
3923
+ {
3924
+ "pattern": "^\\d{12}$",
3925
+ "confidence": "low"
3926
+ },
3927
+ {
3928
+ "pattern": "^JT\\d{13}$",
3929
+ "confidence": "high"
3930
+ },
3931
+ {
3932
+ "pattern": "^JY\\d{10}$",
3933
+ "confidence": "high"
3934
+ },
3935
+ {
3936
+ "pattern": "^JD\\d{10}$",
3937
+ "confidence": "low"
3938
+ }
3939
+ ]
3940
+ },
3941
+ "ems": {
3942
+ "displayName": "EMS",
3943
+ "color": "#003b7a",
3944
+ "aliases": [
3945
+ "Express Mail Service",
3946
+ "EMS Post"
3947
+ ],
3948
+ "selectable": true,
3949
+ "timezone": "UTC",
3950
+ "tracking": {
3951
+ "mode": "automatic",
3952
+ "adapter": "ems",
3953
+ "localClocks": true
3954
+ },
3955
+ "canaryUrl": "https://items.ems.post/",
3956
+ "trackingUrlTemplate": "https://items.ems.post/api/publicTracking/track?language=EN&itemId={trackingNumber}",
3957
+ "linkRules": [
3958
+ {
3959
+ "domains": [
3960
+ "items.ems.post"
3961
+ ],
3962
+ "pathPattern": "^/api/publicTracking/track/?$",
3963
+ "params": [
3964
+ "itemId"
3965
+ ]
3966
+ }
3967
+ ],
3968
+ "detectionRules": []
3969
+ }
3970
+ };
3971
+ export const CARRIER_IDS = [
3972
+ "swiss-post",
3973
+ "swiss-post-cargo",
3974
+ "quickpac",
3975
+ "planzer",
3976
+ "aliexpress",
3977
+ "sunyou",
3978
+ "hermes",
3979
+ "spring-gds",
3980
+ "postlogistics",
3981
+ "dachser",
3982
+ "dhl",
3983
+ "dhl-ecommerce",
3984
+ "ups",
3985
+ "amazon-logistics",
3986
+ "amazon-shipping",
3987
+ "fedex",
3988
+ "gls-ch",
3989
+ "dpd",
3990
+ "dpd-fr",
3991
+ "mondial-relay",
3992
+ "relais-colis",
3993
+ "la-poste",
3994
+ "chronopost",
3995
+ "gls-fr",
3996
+ "colis-prive",
3997
+ "geodis",
3998
+ "colisweb",
3999
+ "c-chez-vous",
4000
+ "heppner",
4001
+ "ciblex",
4002
+ "paack",
4003
+ "asendia",
4004
+ "shipup",
4005
+ "india-post",
4006
+ "hermes-de",
4007
+ "gls-de",
4008
+ "delivengo",
4009
+ "intl-post",
4010
+ "unknown",
4011
+ "royal-mail",
4012
+ "parcelforce",
4013
+ "evri",
4014
+ "inpost",
4015
+ "an-post",
4016
+ "bpost",
4017
+ "austrian-post",
4018
+ "postnord",
4019
+ "posti",
4020
+ "correos-express",
4021
+ "seur",
4022
+ "mrw",
4023
+ "nacex",
4024
+ "ctt",
4025
+ "ctt-express",
4026
+ "poste-italiane",
4027
+ "brt",
4028
+ "ecoscooting",
4029
+ "tipsa",
4030
+ "ukrposhta",
4031
+ "usps",
4032
+ "canada-post",
4033
+ "purolator",
4034
+ "canpar",
4035
+ "ontrac",
4036
+ "speedx",
4037
+ "uniuni",
4038
+ "landmark-global",
4039
+ "old-dominion",
4040
+ "spee-dee",
4041
+ "gofo",
4042
+ "estafeta",
4043
+ "correios-br",
4044
+ "correos-chile",
4045
+ "yunexpress",
4046
+ "four-px",
4047
+ "blue-dart",
4048
+ "delhivery",
4049
+ "nz-post",
4050
+ "singapore-post",
4051
+ "japan-post",
4052
+ "sf-express",
4053
+ "sto",
4054
+ "yunda",
4055
+ "yto",
4056
+ "zto",
4057
+ "jd-logistics",
4058
+ "yamato",
4059
+ "korea-post",
4060
+ "thailand-post",
4061
+ "dtdc",
4062
+ "australia-post",
4063
+ "hongkong-post",
4064
+ "pos-malaysia",
4065
+ "ninja-van",
4066
+ "china-post",
4067
+ "packeta",
4068
+ "poczta-polska",
4069
+ "bring-posten",
4070
+ "aramex",
4071
+ "tnt",
4072
+ "correos-spain",
4073
+ "yanwen",
4074
+ "the-courier-guy",
4075
+ "j-and-t",
4076
+ "ems"
4077
+ ];
4078
+ export const STAGES = [
4079
+ "pending",
4080
+ "registered",
4081
+ "accepted",
4082
+ "in_transit",
4083
+ "out_for_delivery",
4084
+ "delivered",
4085
+ "customs",
4086
+ "failed_attempt",
4087
+ "ready_for_pickup",
4088
+ "returned",
4089
+ "exception"
4090
+ ];