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