universal-parcel-scraper 0.2.1-main.296 → 0.3.0-main.298

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 (207) hide show
  1. package/README.md +7 -2
  2. package/data/carrier.schema.json +5 -3
  3. package/data/catalog.json +6 -6
  4. package/dist/app.d.ts +11 -0
  5. package/dist/app.js +11 -0
  6. package/dist/browser/scraper.js +1386 -1568
  7. package/dist/carriers/aliexpress/adapter.d.ts +5 -3
  8. package/dist/carriers/aliexpress/adapter.js +28 -8
  9. package/dist/carriers/amazon-shipping/adapter.d.ts +3 -2
  10. package/dist/carriers/amazon-shipping/adapter.js +15 -10
  11. package/dist/carriers/amazon-shipping/eligibility.d.ts +2 -1
  12. package/dist/carriers/amazon-shipping/eligibility.js +2 -2
  13. package/dist/carriers/aramex/adapter.d.ts +2 -0
  14. package/dist/carriers/aramex/adapter.js +5 -3
  15. package/dist/carriers/aramex/parser.js +2 -2
  16. package/dist/carriers/asendia/adapter.d.ts +8 -0
  17. package/dist/carriers/asendia/adapter.js +66 -11
  18. package/dist/carriers/asendia/probe.d.ts +2 -0
  19. package/dist/carriers/asendia/probe.js +9 -7
  20. package/dist/carriers/australia-post/adapter.js +2 -2
  21. package/dist/carriers/austrian-post/adapter.js +2 -2
  22. package/dist/carriers/blue-dart/parser.js +2 -2
  23. package/dist/carriers/bpost/parser.js +2 -2
  24. package/dist/carriers/bring-posten/parser.js +2 -2
  25. package/dist/carriers/brt/parser.js +2 -2
  26. package/dist/carriers/c-chez-vous/adapter.d.ts +3 -2
  27. package/dist/carriers/c-chez-vous/adapter.js +15 -10
  28. package/dist/carriers/canada-post/adapter.d.ts +1 -0
  29. package/dist/carriers/canada-post/adapter.js +5 -3
  30. package/dist/carriers/canada-post/parser.js +2 -2
  31. package/dist/carriers/canpar/parser.js +2 -2
  32. package/dist/carriers/ciblex/parser.js +2 -2
  33. package/dist/carriers/colis-prive/adapter.d.ts +3 -2
  34. package/dist/carriers/colis-prive/adapter.js +14 -10
  35. package/dist/carriers/colisweb/adapter.d.ts +3 -2
  36. package/dist/carriers/colisweb/adapter.js +13 -8
  37. package/dist/carriers/correios-br/parser.js +2 -2
  38. package/dist/carriers/correos-chile/parser.js +3 -3
  39. package/dist/carriers/correos-express/parser.js +2 -2
  40. package/dist/carriers/correos-spain/adapter.d.ts +4 -2
  41. package/dist/carriers/correos-spain/adapter.js +16 -8
  42. package/dist/carriers/ctt/adapter.d.ts +2 -2
  43. package/dist/carriers/ctt/adapter.js +30 -25
  44. package/dist/carriers/ctt-express/parser.js +2 -2
  45. package/dist/carriers/dachser/adapter.d.ts +3 -2
  46. package/dist/carriers/dachser/adapter.js +28 -12
  47. package/dist/carriers/delhivery/parser.js +2 -2
  48. package/dist/carriers/dhl/adapter.d.ts +2 -2
  49. package/dist/carriers/dhl/adapter.js +50 -22
  50. package/dist/carriers/dhl-ecommerce/adapter.d.ts +3 -3
  51. package/dist/carriers/dhl-ecommerce/adapter.js +8 -8
  52. package/dist/carriers/dpd/adapter.d.ts +3 -3
  53. package/dist/carriers/dpd/adapter.js +111 -57
  54. package/dist/carriers/dpd/carrier.json +1 -1
  55. package/dist/carriers/dpd-fr/adapter.d.ts +2 -2
  56. package/dist/carriers/dpd-fr/adapter.js +29 -20
  57. package/dist/carriers/dtdc/parser.js +2 -2
  58. package/dist/carriers/ecoscooting/parser.js +2 -2
  59. package/dist/carriers/ems/adapter.js +2 -2
  60. package/dist/carriers/estafeta/parser.js +2 -2
  61. package/dist/carriers/evri/adapter.js +2 -2
  62. package/dist/carriers/fedex/adapter.d.ts +2 -2
  63. package/dist/carriers/fedex/adapter.js +14 -10
  64. package/dist/carriers/four-px/adapter.js +2 -2
  65. package/dist/carriers/geodis/adapter.d.ts +3 -2
  66. package/dist/carriers/geodis/adapter.js +13 -8
  67. package/dist/carriers/gls-ch/adapter.d.ts +4 -3
  68. package/dist/carriers/gls-ch/adapter.js +27 -19
  69. package/dist/carriers/gls-ch/carrier.json +1 -1
  70. package/dist/carriers/gls-de/adapter.d.ts +3 -3
  71. package/dist/carriers/gls-de/adapter.js +14 -9
  72. package/dist/carriers/gls-de/carrier.json +1 -1
  73. package/dist/carriers/gls-fr/adapter.d.ts +3 -2
  74. package/dist/carriers/gls-fr/adapter.js +16 -11
  75. package/dist/carriers/gofo/parser.js +2 -2
  76. package/dist/carriers/heppner/adapter.d.ts +4 -2
  77. package/dist/carriers/heppner/adapter.js +19 -14
  78. package/dist/carriers/heppner/carrier.json +1 -1
  79. package/dist/carriers/hermes/adapter.d.ts +3 -2
  80. package/dist/carriers/hermes/adapter.js +13 -8
  81. package/dist/carriers/hermes-de/adapter.d.ts +3 -2
  82. package/dist/carriers/hermes-de/adapter.js +16 -12
  83. package/dist/carriers/india-post/adapter.d.ts +2 -2
  84. package/dist/carriers/india-post/adapter.js +42 -21
  85. package/dist/carriers/inpost/adapter.d.ts +4 -2
  86. package/dist/carriers/inpost/adapter.js +17 -10
  87. package/dist/carriers/japan-post/adapter.js +2 -2
  88. package/dist/carriers/korea-post/adapter.js +2 -2
  89. package/dist/carriers/la-poste/adapter.d.ts +4 -2
  90. package/dist/carriers/la-poste/adapter.js +18 -13
  91. package/dist/carriers/landmark-global/parser.js +2 -2
  92. package/dist/carriers/mondial-relay/adapter.d.ts +2 -2
  93. package/dist/carriers/mondial-relay/adapter.js +26 -17
  94. package/dist/carriers/mondial-relay/carrier.json +1 -1
  95. package/dist/carriers/mrw/parser.js +3 -3
  96. package/dist/carriers/nacex/parser.js +2 -2
  97. package/dist/carriers/ninja-van/parser.js +2 -2
  98. package/dist/carriers/nz-post/parser.js +2 -2
  99. package/dist/carriers/ontrac/parser.js +2 -2
  100. package/dist/carriers/paack/adapter.d.ts +4 -2
  101. package/dist/carriers/paack/adapter.js +24 -14
  102. package/dist/carriers/paack/carrier.json +1 -1
  103. package/dist/carriers/packeta/adapter.d.ts +4 -2
  104. package/dist/carriers/packeta/adapter.js +16 -8
  105. package/dist/carriers/planzer/adapter.d.ts +5 -3
  106. package/dist/carriers/planzer/adapter.js +35 -12
  107. package/dist/carriers/planzer/shared.d.ts +4 -1
  108. package/dist/carriers/planzer/shared.js +20 -6
  109. package/dist/carriers/poczta-polska/parser.js +2 -2
  110. package/dist/carriers/pos-malaysia/adapter.d.ts +2 -0
  111. package/dist/carriers/pos-malaysia/adapter.js +9 -5
  112. package/dist/carriers/poste-italiane/adapter.d.ts +4 -2
  113. package/dist/carriers/poste-italiane/adapter.js +16 -8
  114. package/dist/carriers/posti/adapter.js +2 -2
  115. package/dist/carriers/postlogistics/adapter.d.ts +6 -4
  116. package/dist/carriers/postlogistics/adapter.js +49 -17
  117. package/dist/carriers/postlogistics/status.d.ts +2 -0
  118. package/dist/carriers/postlogistics/status.js +2 -0
  119. package/dist/carriers/postnord/parser.js +2 -2
  120. package/dist/carriers/purolator/parser.js +2 -2
  121. package/dist/carriers/relais-colis/adapter.js +2 -2
  122. package/dist/carriers/royal-mail/adapter.d.ts +2 -2
  123. package/dist/carriers/royal-mail/adapter.js +14 -10
  124. package/dist/carriers/seur/parser.js +2 -2
  125. package/dist/carriers/sf-express/parser.js +2 -2
  126. package/dist/carriers/singapore-post/adapter.js +2 -2
  127. package/dist/carriers/spring-gds/adapter.d.ts +2 -0
  128. package/dist/carriers/spring-gds/adapter.js +16 -15
  129. package/dist/carriers/sunyou/adapter.d.ts +5 -3
  130. package/dist/carriers/sunyou/adapter.js +16 -9
  131. package/dist/carriers/swiss-post/adapter.d.ts +4 -4
  132. package/dist/carriers/swiss-post/adapter.js +33 -15
  133. package/dist/carriers/swiss-post-cargo/adapter.d.ts +3 -2
  134. package/dist/carriers/swiss-post-cargo/adapter.js +14 -9
  135. package/dist/carriers/the-courier-guy/number.js +3 -2
  136. package/dist/carriers/tipsa/parser.js +3 -3
  137. package/dist/carriers/tnt/adapter.js +3 -3
  138. package/dist/carriers/ukrposhta/adapter.js +20 -62
  139. package/dist/carriers/ukrposhta/parser.js +2 -2
  140. package/dist/carriers/uniuni/parser.js +3 -3
  141. package/dist/carriers/ups/adapter.d.ts +2 -2
  142. package/dist/carriers/ups/adapter.js +40 -32
  143. package/dist/carriers/usps/adapter.d.ts +2 -2
  144. package/dist/carriers/usps/adapter.js +14 -10
  145. package/dist/carriers/yamato/adapter.js +2 -2
  146. package/dist/carriers/yanwen/adapter.js +2 -2
  147. package/dist/carriers/yto/parser.js +2 -2
  148. package/dist/carriers/yunda/parser.js +2 -2
  149. package/dist/carriers/yunexpress/adapter.js +21 -39
  150. package/dist/cli/index.js +18 -2
  151. package/dist/core/adapter/index.d.ts +18 -1
  152. package/dist/core/adapter/index.js +28 -4
  153. package/dist/core/adapter/track.js +21 -7
  154. package/dist/core/catalog/index.d.ts +1 -15
  155. package/dist/core/catalog/index.js +3 -106
  156. package/dist/core/catalog/inputs.d.ts +2 -2
  157. package/dist/core/catalog/inputs.js +4 -4
  158. package/dist/core/catalog/parcel.d.ts +53 -0
  159. package/dist/core/catalog/parcel.js +105 -0
  160. package/dist/core/catalog/types.d.ts +1 -29
  161. package/dist/core/errors/hint.d.ts +7 -0
  162. package/dist/core/errors/hint.js +11 -1
  163. package/dist/core/errors/index.d.ts +8 -1
  164. package/dist/core/errors/index.js +11 -0
  165. package/dist/core/runner/index.d.ts +23 -1
  166. package/dist/core/runner/index.js +71 -14
  167. package/dist/core/transport/boundedFetch.js +24 -19
  168. package/dist/core/transport/browser.d.ts +1 -0
  169. package/dist/core/transport/browser.js +76 -99
  170. package/dist/core/transport/index.d.ts +4 -1
  171. package/dist/core/transport/index.js +3 -1
  172. package/dist/core/transport/localBrowser.d.ts +24 -0
  173. package/dist/core/transport/localBrowser.js +87 -0
  174. package/dist/core/transport/trawl.d.ts +6 -0
  175. package/dist/core/transport/trawl.js +30 -9
  176. package/dist/core/transport/userAgent.d.ts +8 -0
  177. package/dist/core/transport/userAgent.js +15 -0
  178. package/dist/data/catalog.json +6 -6
  179. package/dist/facade/index.d.ts +3 -0
  180. package/dist/facade/index.js +17 -7
  181. package/dist/generated/catalog.d.ts +6 -6
  182. package/dist/generated/catalog.js +6 -6
  183. package/dist/index.d.ts +0 -4
  184. package/dist/index.js +0 -4
  185. package/dist/providers/parcelsapp/adapter.d.ts +1 -1
  186. package/dist/providers/parcelsapp/adapter.js +13 -10
  187. package/dist/providers/parcelsapp/http.d.ts +1 -1
  188. package/dist/providers/parcelsapp/http.js +2 -2
  189. package/dist/providers/postal-ninja/adapter.d.ts +2 -2
  190. package/dist/providers/postal-ninja/adapter.js +6 -6
  191. package/dist/providers/seventeentrack/adapter.d.ts +1 -1
  192. package/dist/providers/seventeentrack/adapter.js +7 -7
  193. package/dist/providers/shared/capture.d.ts +2 -0
  194. package/dist/providers/shared/capture.js +1 -1
  195. package/dist/providers/shared/result.js +4 -2
  196. package/dist/providers/ship24/adapter.d.ts +2 -2
  197. package/dist/providers/ship24/adapter.js +7 -7
  198. package/dist/providers/ship24/http.d.ts +1 -1
  199. package/dist/providers/ship24/http.js +4 -3
  200. package/dist/providers/universal.d.ts +3 -2
  201. package/dist/providers/universal.js +20 -2
  202. package/dist/providers/upu/adapter.js +2 -2
  203. package/dist/scripts/carrier-canary.js +2 -1
  204. package/dist/server/index.d.ts +15 -0
  205. package/dist/server/index.js +90 -12
  206. package/dist/server/openapi.json +399 -52
  207. package/package.json +5 -1
package/README.md CHANGED
@@ -124,12 +124,14 @@ curl http://127.0.0.1:8080/v1/track \
124
124
  memory and rate-limits callers. It has no database and never polls on its own.
125
125
 
126
126
  Set `SCRAPER_TOKEN` to require a bearer token. `SCRAPER_DEMO_PAGE=true` serves a small page
127
- at `/` for trying numbers by hand. The other settings are in [.env.example](.env.example).
127
+ at `/` for trying numbers by hand. Behind a reverse proxy, set `SCRAPER_TRUSTED_PROXIES` so
128
+ the rate limit counts each caller and not the proxy. The other settings are in
129
+ [.env.example](.env.example).
128
130
 
129
131
  ### Docker
130
132
 
131
133
  ```sh
132
- docker run --rm -p 127.0.0.1:8080:8080 ghcr.io/plhery/universal-parcel-scraper:0.2.0
134
+ docker run --rm -p 127.0.0.1:8080:8080 ghcr.io/plhery/universal-parcel-scraper:0.3.0
133
135
  ```
134
136
 
135
137
  The image runs `serve` and ships Chromium, for the carriers that only answer a real browser.
@@ -168,6 +170,9 @@ npm install playwright-core sharp onnxruntime-web
168
170
  Then pass `chromiumPath` or `trawlUrl` to `createTracker()`. The CLI and the server read
169
171
  `TRACKING_CHROMIUM_PATH` and `FLARESOLVERR_URL`.
170
172
 
173
+ Where a carrier accepts a plain client, the adapter names itself with the package's default
174
+ User-Agent. Pass `userAgent`, or set `SCRAPER_USER_AGENT`, to send your own.
175
+
171
176
  When the adapter finds no history, the lookup can move on to an aggregator. Only UPU is on
172
177
  by default, for the postal numbers it can serve. The commercial ones are opt-in, and each
173
178
  one you enable receives the tracking number:
@@ -273,9 +273,11 @@
273
273
  ],
274
274
  "properties": {
275
275
  "field": {
276
- "description": "Input name; the generator checks it against the validators it accepts.",
277
- "type": "string",
278
- "minLength": 1
276
+ "description": "Input name. The generator checks that the validator is one this input accepts.",
277
+ "enum": [
278
+ "trackingUrl",
279
+ "postcode"
280
+ ]
279
281
  },
280
282
  "validator": {
281
283
  "type": "string",
package/data/catalog.json CHANGED
@@ -713,7 +713,7 @@
713
713
  "adapter": "gls-ch",
714
714
  "requirements": [
715
715
  {
716
- "field": "dpdPostcode",
716
+ "field": "postcode",
717
717
  "validator": "swissPostcode",
718
718
  "label": "Delivery postcode",
719
719
  "type": "text",
@@ -780,7 +780,7 @@
780
780
  "adapter": "dpd",
781
781
  "requirements": [
782
782
  {
783
- "field": "dpdPostcode",
783
+ "field": "postcode",
784
784
  "validator": "swissPostcode",
785
785
  "optional": true,
786
786
  "label": "Delivery postcode",
@@ -879,7 +879,7 @@
879
879
  "adapter": "mondial-relay",
880
880
  "requirements": [
881
881
  {
882
- "field": "dpdPostcode",
882
+ "field": "postcode",
883
883
  "whenTrackingNumber": "^(?![0-9]{26}$).*$",
884
884
  "validator": "francePostcode",
885
885
  "label": "Delivery postcode",
@@ -1268,7 +1268,7 @@
1268
1268
  "adapter": "heppner",
1269
1269
  "requirements": [
1270
1270
  {
1271
- "field": "dpdPostcode",
1271
+ "field": "postcode",
1272
1272
  "validator": "swissOrFrancePostcode",
1273
1273
  "label": "Delivery postcode",
1274
1274
  "type": "text",
@@ -1350,7 +1350,7 @@
1350
1350
  "adapter": "paack",
1351
1351
  "requirements": [
1352
1352
  {
1353
- "field": "dpdPostcode",
1353
+ "field": "postcode",
1354
1354
  "validator": "paackPostcode",
1355
1355
  "label": "Delivery postcode",
1356
1356
  "type": "text",
@@ -1545,7 +1545,7 @@
1545
1545
  "adapter": "gls-de",
1546
1546
  "requirements": [
1547
1547
  {
1548
- "field": "dpdPostcode",
1548
+ "field": "postcode",
1549
1549
  "validator": "swissOrFrancePostcode",
1550
1550
  "label": "Delivery postcode",
1551
1551
  "type": "text",
package/dist/app.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Helpers shaped for the parcel app this package was extracted from: its
3
+ * parcel view, carrier-name hints for provider results, and the clock helpers
4
+ * its sync uses. They change with that app and carry no stability promise;
5
+ * the tracking contract is the other entry points.
6
+ */
7
+ export * from './core/catalog/parcel.js';
8
+ export * from './core/catalog/hints.js';
9
+ export * from './core/time/result.js';
10
+ export { universalCarrierHints } from './providers/shared/hints.js';
11
+ export { recognitionAskedCarriers } from './core/catalog/recognition.js';
package/dist/app.js ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Helpers shaped for the parcel app this package was extracted from: its
3
+ * parcel view, carrier-name hints for provider results, and the clock helpers
4
+ * its sync uses. They change with that app and carry no stability promise;
5
+ * the tracking contract is the other entry points.
6
+ */
7
+ export * from './core/catalog/parcel.js';
8
+ export * from './core/catalog/hints.js';
9
+ export * from './core/time/result.js';
10
+ export { universalCarrierHints } from './providers/shared/hints.js';
11
+ export { recognitionAskedCarriers } from './core/catalog/recognition.js';