@veho/turvo-integration-sdk 0.1.0-beta.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 (57) hide show
  1. package/README.md +473 -0
  2. package/index.ts +1 -0
  3. package/lib/cjs/api/turvoInternalApi.d.ts +23 -0
  4. package/lib/cjs/api/turvoInternalApi.js +36 -0
  5. package/lib/cjs/api/turvoPublicApi.d.ts +99 -0
  6. package/lib/cjs/api/turvoPublicApi.js +103 -0
  7. package/lib/cjs/client/turvoClient.d.ts +49 -0
  8. package/lib/cjs/client/turvoClient.js +180 -0
  9. package/lib/cjs/constants.d.ts +29 -0
  10. package/lib/cjs/constants.js +33 -0
  11. package/lib/cjs/index.d.ts +6 -0
  12. package/lib/cjs/index.js +37 -0
  13. package/lib/cjs/shipmentTracking/index.d.ts +22 -0
  14. package/lib/cjs/shipmentTracking/index.js +39 -0
  15. package/lib/cjs/shipmentTracking/trackingService.d.ts +25 -0
  16. package/lib/cjs/shipmentTracking/trackingService.js +85 -0
  17. package/lib/cjs/types/common.d.ts +64 -0
  18. package/lib/cjs/types/common.js +27 -0
  19. package/lib/cjs/types/config.d.ts +13 -0
  20. package/lib/cjs/types/config.js +3 -0
  21. package/lib/cjs/types/errors.d.ts +35 -0
  22. package/lib/cjs/types/errors.js +63 -0
  23. package/lib/cjs/types/index.d.ts +5 -0
  24. package/lib/cjs/types/index.js +27 -0
  25. package/lib/cjs/types/shipment.d.ts +379 -0
  26. package/lib/cjs/types/shipment.js +46 -0
  27. package/lib/cjs/types/tracking.d.ts +65 -0
  28. package/lib/cjs/types/tracking.js +3 -0
  29. package/lib/esm/api/turvoInternalApi.d.ts +23 -0
  30. package/lib/esm/api/turvoInternalApi.js +32 -0
  31. package/lib/esm/api/turvoPublicApi.d.ts +99 -0
  32. package/lib/esm/api/turvoPublicApi.js +99 -0
  33. package/lib/esm/client/turvoClient.d.ts +49 -0
  34. package/lib/esm/client/turvoClient.js +172 -0
  35. package/lib/esm/constants.d.ts +29 -0
  36. package/lib/esm/constants.js +30 -0
  37. package/lib/esm/index.d.ts +6 -0
  38. package/lib/esm/index.js +11 -0
  39. package/lib/esm/shipmentTracking/index.d.ts +22 -0
  40. package/lib/esm/shipmentTracking/index.js +36 -0
  41. package/lib/esm/shipmentTracking/trackingService.d.ts +25 -0
  42. package/lib/esm/shipmentTracking/trackingService.js +81 -0
  43. package/lib/esm/types/common.d.ts +64 -0
  44. package/lib/esm/types/common.js +23 -0
  45. package/lib/esm/types/config.d.ts +13 -0
  46. package/lib/esm/types/config.js +2 -0
  47. package/lib/esm/types/errors.d.ts +35 -0
  48. package/lib/esm/types/errors.js +55 -0
  49. package/lib/esm/types/index.d.ts +5 -0
  50. package/lib/esm/types/index.js +11 -0
  51. package/lib/esm/types/shipment.d.ts +379 -0
  52. package/lib/esm/types/shipment.js +43 -0
  53. package/lib/esm/types/tracking.d.ts +65 -0
  54. package/lib/esm/types/tracking.js +2 -0
  55. package/lib/tsconfig.cjs.tsbuildinfo +1 -0
  56. package/lib/tsconfig.esm.tsbuildinfo +1 -0
  57. package/package.json +126 -0
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrackingService = void 0;
4
+ const errors_1 = require("../types/errors");
5
+ /**
6
+ * TrackingService orchestrates calls to public and internal APIs
7
+ * to provide a unified shipment tracking interface.
8
+ */
9
+ class TrackingService {
10
+ publicApi;
11
+ internalApi;
12
+ constructor(publicApi, internalApi) {
13
+ this.publicApi = publicApi;
14
+ this.internalApi = internalApi;
15
+ }
16
+ /**
17
+ * Main entry point - combines all API data to produce ShipmentTracking
18
+ *
19
+ * @param shipmentId - The shipment ID to track
20
+ * @param options - Tracking options
21
+ * @returns Complete shipment tracking information
22
+ */
23
+ async getTracking(shipmentId, options = {}) {
24
+ // 1. Fetch public API data (required)
25
+ const shipmentResult = await this.publicApi.getShipment({ shipmentId: parseInt(shipmentId) });
26
+ if (!shipmentResult.details) {
27
+ throw new errors_1.TurvoNotFoundError(shipmentId);
28
+ }
29
+ const shipment = shipmentResult.details;
30
+ // 2. Fetch internal API data (optional, may fail)
31
+ let locationUpdates = null;
32
+ let internalApiFailed = false;
33
+ if (options.includeGps !== false) {
34
+ try {
35
+ locationUpdates = await this.internalApi.getLocationUpdates(shipmentId);
36
+ }
37
+ catch (error) {
38
+ // Log but don't fail - internal API is optional
39
+ internalApiFailed = true;
40
+ }
41
+ }
42
+ // 3. Transform to clean response
43
+ return this.transformToTrackingDetails(shipment, locationUpdates, internalApiFailed);
44
+ }
45
+ /**
46
+ * Transform raw Turvo API responses into clean ShipmentTracking type
47
+ *
48
+ */
49
+ transformToTrackingDetails(shipment, locationUpdates, internalApiFailed) {
50
+ const shipmentData = shipment;
51
+ return {
52
+ // Identifiers
53
+ shipmentId: shipmentData.id?.toString() || '',
54
+ loadReferenceNumber: shipmentData.customId || '',
55
+ // Status
56
+ status: shipmentData.status?.code?.value || 'Unknown',
57
+ lateBy: shipment.status.runningLate?.lateDurationString ?? null,
58
+ isLate: !!shipment.status.runningLate,
59
+ // Current location (if tracking available)
60
+ currentLocation: shipment.status.location ?? null,
61
+ hasGpsTracking: locationUpdates !== null && !internalApiFailed,
62
+ // Progress
63
+ completedStops: 0, // TODO: Count from shipmentData.globalRoute
64
+ totalStops: shipmentData.globalRoute?.length || 0, // TODO: parse from shipmentData.globalRoute
65
+ // Stops (ordered)
66
+ stops: [], // TODO: implment global route parsing
67
+ // ETA & Distance
68
+ etaUtc: shipment.status.attributes?.etaValUtc ?? null,
69
+ etaTimezone: shipment.status.attributes?.next_eta_cal_val_timezone ?? null,
70
+ milesRemaining: shipment.status.location?.nextMiles ?? null,
71
+ totalMiles: null, // TODO: Derive from global route -- find current stop, and figure out total distance leading to it
72
+ // GPS Pings (only populated if includeGps: true and hasGpsTracking)
73
+ locationUpdates: locationUpdates || null, // TODO: implment with scraper
74
+ pingCount: locationUpdates?.length || null, // TODO: implement with scraper
75
+ lastPingAt: locationUpdates?.[(locationUpdates?.length || 0) - 1]?.timestamp ||
76
+ null, // TODO: implement with scraper
77
+ // Shipment Attributes
78
+ laneType: shipment.flexAttributes?.find(attribute => attribute.name === 'Lane Type')?.value ?? null,
79
+ managementType: shipment.flexAttributes?.find(attribute => attribute.name === 'Management Type')?.value ?? null,
80
+ carrier: shipmentData.carrierOrder?.[0]?.carrier?.name || null,
81
+ };
82
+ }
83
+ }
84
+ exports.TrackingService = TrackingService;
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tpbmdTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoaXBtZW50VHJhY2tpbmcvdHJhY2tpbmdTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDRDQUFvRDtBQUdwRDs7O0dBR0c7QUFDSCxNQUFhLGVBQWU7SUFFaEI7SUFDQTtJQUZWLFlBQ1UsU0FBeUIsRUFDekIsV0FBNkI7UUFEN0IsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQ3BDLENBQUM7SUFFSjs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQWtCLEVBQUUsVUFBOEIsRUFBRTtRQUNwRSxzQ0FBc0M7UUFDdEMsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRTdGLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLDJCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzFDLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFBO1FBRXZDLGtEQUFrRDtRQUNsRCxJQUFJLGVBQWUsR0FBNEIsSUFBSSxDQUFBO1FBQ25ELElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFBO1FBRTdCLElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUM7Z0JBQ0gsZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUN6RSxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixnREFBZ0Q7Z0JBQ2hELGlCQUFpQixHQUFHLElBQUksQ0FBQTtZQUMxQixDQUFDO1FBQ0gsQ0FBQztRQUVELGlDQUFpQztRQUNqQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUE7SUFDdEYsQ0FBQztJQUVEOzs7T0FHRztJQUNLLDBCQUEwQixDQUNoQyxRQUF1QixFQUN2QixlQUF3QyxFQUN4QyxpQkFBMEI7UUFFMUIsTUFBTSxZQUFZLEdBQUcsUUFBeUIsQ0FBQTtRQUM5QyxPQUFPO1lBQ0wsY0FBYztZQUNkLFVBQVUsRUFBRyxZQUFZLENBQUMsRUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDekQsbUJBQW1CLEVBQUcsWUFBWSxDQUFDLFFBQW1CLElBQUksRUFBRTtZQUU1RCxTQUFTO1lBQ1QsTUFBTSxFQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQWdCLElBQUksU0FBUztZQUNqRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLElBQUksSUFBSTtZQUMvRCxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVztZQUVyQywyQ0FBMkM7WUFDM0MsZUFBZSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUk7WUFDakQsY0FBYyxFQUFFLGVBQWUsS0FBSyxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFFOUQsV0FBVztZQUNYLGNBQWMsRUFBRSxDQUFDLEVBQUUsNENBQTRDO1lBQy9ELFVBQVUsRUFBRyxZQUFZLENBQUMsV0FBeUIsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLDRDQUE0QztZQUU5RyxrQkFBa0I7WUFDbEIsS0FBSyxFQUFFLEVBQUUsRUFBRSxzQ0FBc0M7WUFFakQsaUJBQWlCO1lBQ2pCLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLElBQUksSUFBSTtZQUNyRCxXQUFXLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUseUJBQXlCLElBQUksSUFBSTtZQUMxRSxjQUFjLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLElBQUk7WUFDM0QsVUFBVSxFQUFFLElBQUksRUFBRSxtR0FBbUc7WUFFckgsb0VBQW9FO1lBQ3BFLGVBQWUsRUFBRyxlQUFvQyxJQUFJLElBQUksRUFBRSw4QkFBOEI7WUFDOUYsU0FBUyxFQUFHLGVBQW9DLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSwrQkFBK0I7WUFDakcsVUFBVSxFQUNQLGVBQW9DLEVBQUUsQ0FBQyxDQUFFLGVBQW9DLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFNBQVM7Z0JBQzVHLElBQUksRUFBRSwrQkFBK0I7WUFFdkMsc0JBQXNCO1lBQ3RCLFFBQVEsRUFBRSxRQUFRLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUk7WUFDbkcsY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJO1lBQy9HLE9BQU8sRUFFRCxZQUFZLENBQUMsWUFBMEIsRUFBRSxDQUFDLENBQUMsQ0FBNkIsRUFBRSxPQUM3RSxFQUFFLElBQWUsSUFBSSxJQUFJO1NBQzdCLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUE3RkQsMENBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHVydm9JbnRlcm5hbEFwaSB9IGZyb20gJy4uL2FwaS90dXJ2b0ludGVybmFsQXBpJ1xuaW1wb3J0IHsgVHVydm9QdWJsaWNBcGkgfSBmcm9tICcuLi9hcGkvdHVydm9QdWJsaWNBcGknXG5pbXBvcnQgeyBUdXJ2b1NoaXBtZW50IH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBUdXJ2b05vdEZvdW5kRXJyb3IgfSBmcm9tICcuLi90eXBlcy9lcnJvcnMnXG5pbXBvcnQgeyBHZXRUcmFja2luZ09wdGlvbnMsIExvY2F0aW9uVXBkYXRlLCBTaGlwbWVudFRyYWNraW5nIH0gZnJvbSAnLi4vdHlwZXMvdHJhY2tpbmcnXG5cbi8qKlxuICogVHJhY2tpbmdTZXJ2aWNlIG9yY2hlc3RyYXRlcyBjYWxscyB0byBwdWJsaWMgYW5kIGludGVybmFsIEFQSXNcbiAqIHRvIHByb3ZpZGUgYSB1bmlmaWVkIHNoaXBtZW50IHRyYWNraW5nIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFRyYWNraW5nU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHVibGljQXBpOiBUdXJ2b1B1YmxpY0FwaSxcbiAgICBwcml2YXRlIGludGVybmFsQXBpOiBUdXJ2b0ludGVybmFsQXBpXG4gICkge31cblxuICAvKipcbiAgICogTWFpbiBlbnRyeSBwb2ludCAtIGNvbWJpbmVzIGFsbCBBUEkgZGF0YSB0byBwcm9kdWNlIFNoaXBtZW50VHJhY2tpbmdcbiAgICpcbiAgICogQHBhcmFtIHNoaXBtZW50SWQgLSBUaGUgc2hpcG1lbnQgSUQgdG8gdHJhY2tcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUcmFja2luZyBvcHRpb25zXG4gICAqIEByZXR1cm5zIENvbXBsZXRlIHNoaXBtZW50IHRyYWNraW5nIGluZm9ybWF0aW9uXG4gICAqL1xuICBhc3luYyBnZXRUcmFja2luZyhzaGlwbWVudElkOiBzdHJpbmcsIG9wdGlvbnM6IEdldFRyYWNraW5nT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxTaGlwbWVudFRyYWNraW5nPiB7XG4gICAgLy8gMS4gRmV0Y2ggcHVibGljIEFQSSBkYXRhIChyZXF1aXJlZClcbiAgICBjb25zdCBzaGlwbWVudFJlc3VsdCA9IGF3YWl0IHRoaXMucHVibGljQXBpLmdldFNoaXBtZW50KHsgc2hpcG1lbnRJZDogcGFyc2VJbnQoc2hpcG1lbnRJZCkgfSlcblxuICAgIGlmICghc2hpcG1lbnRSZXN1bHQuZGV0YWlscykge1xuICAgICAgdGhyb3cgbmV3IFR1cnZvTm90Rm91bmRFcnJvcihzaGlwbWVudElkKVxuICAgIH1cblxuICAgIGNvbnN0IHNoaXBtZW50ID0gc2hpcG1lbnRSZXN1bHQuZGV0YWlsc1xuXG4gICAgLy8gMi4gRmV0Y2ggaW50ZXJuYWwgQVBJIGRhdGEgKG9wdGlvbmFsLCBtYXkgZmFpbClcbiAgICBsZXQgbG9jYXRpb25VcGRhdGVzOiBMb2NhdGlvblVwZGF0ZVtdIHwgbnVsbCA9IG51bGxcbiAgICBsZXQgaW50ZXJuYWxBcGlGYWlsZWQgPSBmYWxzZVxuXG4gICAgaWYgKG9wdGlvbnMuaW5jbHVkZUdwcyAhPT0gZmFsc2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvY2F0aW9uVXBkYXRlcyA9IGF3YWl0IHRoaXMuaW50ZXJuYWxBcGkuZ2V0TG9jYXRpb25VcGRhdGVzKHNoaXBtZW50SWQpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBMb2cgYnV0IGRvbid0IGZhaWwgLSBpbnRlcm5hbCBBUEkgaXMgb3B0aW9uYWxcbiAgICAgICAgaW50ZXJuYWxBcGlGYWlsZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gMy4gVHJhbnNmb3JtIHRvIGNsZWFuIHJlc3BvbnNlXG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtVG9UcmFja2luZ0RldGFpbHMoc2hpcG1lbnQsIGxvY2F0aW9uVXBkYXRlcywgaW50ZXJuYWxBcGlGYWlsZWQpXG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHJhdyBUdXJ2byBBUEkgcmVzcG9uc2VzIGludG8gY2xlYW4gU2hpcG1lbnRUcmFja2luZyB0eXBlXG4gICAqXG4gICAqL1xuICBwcml2YXRlIHRyYW5zZm9ybVRvVHJhY2tpbmdEZXRhaWxzKFxuICAgIHNoaXBtZW50OiBUdXJ2b1NoaXBtZW50LFxuICAgIGxvY2F0aW9uVXBkYXRlczogTG9jYXRpb25VcGRhdGVbXSB8IG51bGwsXG4gICAgaW50ZXJuYWxBcGlGYWlsZWQ6IGJvb2xlYW5cbiAgKTogU2hpcG1lbnRUcmFja2luZyB7XG4gICAgY29uc3Qgc2hpcG1lbnREYXRhID0gc2hpcG1lbnQgYXMgVHVydm9TaGlwbWVudFxuICAgIHJldHVybiB7XG4gICAgICAvLyBJZGVudGlmaWVyc1xuICAgICAgc2hpcG1lbnRJZDogKHNoaXBtZW50RGF0YS5pZCBhcyBudW1iZXIpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgbG9hZFJlZmVyZW5jZU51bWJlcjogKHNoaXBtZW50RGF0YS5jdXN0b21JZCBhcyBzdHJpbmcpIHx8ICcnLFxuXG4gICAgICAvLyBTdGF0dXNcbiAgICAgIHN0YXR1czogKHNoaXBtZW50RGF0YS5zdGF0dXM/LmNvZGU/LnZhbHVlIGFzIHN0cmluZykgfHwgJ1Vua25vd24nLFxuICAgICAgbGF0ZUJ5OiBzaGlwbWVudC5zdGF0dXMucnVubmluZ0xhdGU/LmxhdGVEdXJhdGlvblN0cmluZyA/PyBudWxsLFxuICAgICAgaXNMYXRlOiAhIXNoaXBtZW50LnN0YXR1cy5ydW5uaW5nTGF0ZSxcblxuICAgICAgLy8gQ3VycmVudCBsb2NhdGlvbiAoaWYgdHJhY2tpbmcgYXZhaWxhYmxlKVxuICAgICAgY3VycmVudExvY2F0aW9uOiBzaGlwbWVudC5zdGF0dXMubG9jYXRpb24gPz8gbnVsbCxcbiAgICAgIGhhc0dwc1RyYWNraW5nOiBsb2NhdGlvblVwZGF0ZXMgIT09IG51bGwgJiYgIWludGVybmFsQXBpRmFpbGVkLFxuXG4gICAgICAvLyBQcm9ncmVzc1xuICAgICAgY29tcGxldGVkU3RvcHM6IDAsIC8vIFRPRE86IENvdW50IGZyb20gc2hpcG1lbnREYXRhLmdsb2JhbFJvdXRlXG4gICAgICB0b3RhbFN0b3BzOiAoc2hpcG1lbnREYXRhLmdsb2JhbFJvdXRlIGFzIHVua25vd25bXSk/Lmxlbmd0aCB8fCAwLCAvLyBUT0RPOiBwYXJzZSBmcm9tIHNoaXBtZW50RGF0YS5nbG9iYWxSb3V0ZVxuXG4gICAgICAvLyBTdG9wcyAob3JkZXJlZClcbiAgICAgIHN0b3BzOiBbXSwgLy8gVE9ETzogaW1wbG1lbnQgZ2xvYmFsIHJvdXRlIHBhcnNpbmdcblxuICAgICAgLy8gRVRBICYgRGlzdGFuY2VcbiAgICAgIGV0YVV0Yzogc2hpcG1lbnQuc3RhdHVzLmF0dHJpYnV0ZXM/LmV0YVZhbFV0YyA/PyBudWxsLFxuICAgICAgZXRhVGltZXpvbmU6IHNoaXBtZW50LnN0YXR1cy5hdHRyaWJ1dGVzPy5uZXh0X2V0YV9jYWxfdmFsX3RpbWV6b25lID8/IG51bGwsXG4gICAgICBtaWxlc1JlbWFpbmluZzogc2hpcG1lbnQuc3RhdHVzLmxvY2F0aW9uPy5uZXh0TWlsZXMgPz8gbnVsbCxcbiAgICAgIHRvdGFsTWlsZXM6IG51bGwsIC8vIFRPRE86IERlcml2ZSBmcm9tIGdsb2JhbCByb3V0ZSAtLSBmaW5kIGN1cnJlbnQgc3RvcCwgYW5kIGZpZ3VyZSBvdXQgdG90YWwgZGlzdGFuY2UgbGVhZGluZyB0byBpdFxuXG4gICAgICAvLyBHUFMgUGluZ3MgKG9ubHkgcG9wdWxhdGVkIGlmIGluY2x1ZGVHcHM6IHRydWUgYW5kIGhhc0dwc1RyYWNraW5nKVxuICAgICAgbG9jYXRpb25VcGRhdGVzOiAobG9jYXRpb25VcGRhdGVzIGFzIExvY2F0aW9uVXBkYXRlW10pIHx8IG51bGwsIC8vIFRPRE86IGltcGxtZW50IHdpdGggc2NyYXBlclxuICAgICAgcGluZ0NvdW50OiAobG9jYXRpb25VcGRhdGVzIGFzIExvY2F0aW9uVXBkYXRlW10pPy5sZW5ndGggfHwgbnVsbCwgLy8gVE9ETzogaW1wbGVtZW50IHdpdGggc2NyYXBlclxuICAgICAgbGFzdFBpbmdBdDpcbiAgICAgICAgKGxvY2F0aW9uVXBkYXRlcyBhcyBMb2NhdGlvblVwZGF0ZVtdKT8uWygobG9jYXRpb25VcGRhdGVzIGFzIExvY2F0aW9uVXBkYXRlW10pPy5sZW5ndGggfHwgMCkgLSAxXT8udGltZXN0YW1wIHx8XG4gICAgICAgIG51bGwsIC8vIFRPRE86IGltcGxlbWVudCB3aXRoIHNjcmFwZXJcblxuICAgICAgLy8gU2hpcG1lbnQgQXR0cmlidXRlc1xuICAgICAgbGFuZVR5cGU6IHNoaXBtZW50LmZsZXhBdHRyaWJ1dGVzPy5maW5kKGF0dHJpYnV0ZSA9PiBhdHRyaWJ1dGUubmFtZSA9PT0gJ0xhbmUgVHlwZScpPy52YWx1ZSA/PyBudWxsLFxuICAgICAgbWFuYWdlbWVudFR5cGU6IHNoaXBtZW50LmZsZXhBdHRyaWJ1dGVzPy5maW5kKGF0dHJpYnV0ZSA9PiBhdHRyaWJ1dGUubmFtZSA9PT0gJ01hbmFnZW1lbnQgVHlwZScpPy52YWx1ZSA/PyBudWxsLFxuICAgICAgY2FycmllcjpcbiAgICAgICAgKChcbiAgICAgICAgICAoKHNoaXBtZW50RGF0YS5jYXJyaWVyT3JkZXIgYXMgdW5rbm93bltdKT8uWzBdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KT8uY2FycmllciBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgICApPy5uYW1lIGFzIHN0cmluZykgfHwgbnVsbCxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,64 @@
1
+ export declare class TurvoApiError extends Error {
2
+ errorCode: string;
3
+ errorMessage: string;
4
+ constructor(errorCode: string, errorMessage: string);
5
+ }
6
+ export type TurvoApiResult<T = void> = {
7
+ Status: 'SUCCESS' | string;
8
+ details: T;
9
+ };
10
+ export declare enum TurvoApiResponseStatus {
11
+ SUCCESS = "SUCCESS",
12
+ ERROR = "ERROR"
13
+ }
14
+ export declare enum TurvoApiMethod {
15
+ GET = "GET",
16
+ POST = "POST",
17
+ PUT = "PUT",
18
+ DELETE = "DELETE"
19
+ }
20
+ export type TurvoPagedResult<K extends string, T extends Record<any, unknown>> = {
21
+ pagination: {
22
+ start: number;
23
+ pageSize: number;
24
+ totalRecordsInPage: number;
25
+ moreAvailable: boolean;
26
+ };
27
+ } & (Record<K, T[]> | Record<K, undefined>);
28
+ export type TurvoFilterShipmentsResultItem = {
29
+ id: number;
30
+ customId: string;
31
+ lastUpdatedOn: string;
32
+ updated: string;
33
+ createdDate: string;
34
+ created: string;
35
+ status: {
36
+ code: TurvoLookup;
37
+ };
38
+ customerOrder: {
39
+ id: number;
40
+ customer: {
41
+ id: number;
42
+ name: string;
43
+ };
44
+ }[];
45
+ carrierOrder: {
46
+ id: number;
47
+ carrier: {
48
+ name: string;
49
+ id: number;
50
+ };
51
+ }[];
52
+ };
53
+ export type TurvoDateWithTimezone = {
54
+ date: string;
55
+ timeZone: string;
56
+ };
57
+ export type TurvoDateWithTimezoneLowercase = {
58
+ date: string;
59
+ timezone: string;
60
+ };
61
+ export type TurvoLookup = {
62
+ key: string;
63
+ value: string;
64
+ };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TurvoApiMethod = exports.TurvoApiResponseStatus = exports.TurvoApiError = void 0;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ class TurvoApiError extends Error {
6
+ errorCode;
7
+ errorMessage;
8
+ constructor(errorCode, errorMessage) {
9
+ super(`Turvo Api Response Error ${errorCode}: ${errorMessage}`);
10
+ this.errorCode = errorCode;
11
+ this.errorMessage = errorMessage;
12
+ }
13
+ }
14
+ exports.TurvoApiError = TurvoApiError;
15
+ var TurvoApiResponseStatus;
16
+ (function (TurvoApiResponseStatus) {
17
+ TurvoApiResponseStatus["SUCCESS"] = "SUCCESS";
18
+ TurvoApiResponseStatus["ERROR"] = "ERROR";
19
+ })(TurvoApiResponseStatus || (exports.TurvoApiResponseStatus = TurvoApiResponseStatus = {}));
20
+ var TurvoApiMethod;
21
+ (function (TurvoApiMethod) {
22
+ TurvoApiMethod["GET"] = "GET";
23
+ TurvoApiMethod["POST"] = "POST";
24
+ TurvoApiMethod["PUT"] = "PUT";
25
+ TurvoApiMethod["DELETE"] = "DELETE";
26
+ })(TurvoApiMethod || (exports.TurvoApiMethod = TurvoApiMethod = {}));
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFDdkQsTUFBYSxhQUFjLFNBQVEsS0FBSztJQUN0QyxTQUFTLENBQVE7SUFDakIsWUFBWSxDQUFRO0lBRXBCLFlBQVksU0FBaUIsRUFBRSxZQUFvQjtRQUNqRCxLQUFLLENBQUMsNEJBQTRCLFNBQVMsS0FBSyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBQy9ELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFBO0lBQ2xDLENBQUM7Q0FDRjtBQVRELHNDQVNDO0FBT0QsSUFBWSxzQkFHWDtBQUhELFdBQVksc0JBQXNCO0lBQ2hDLDZDQUFtQixDQUFBO0lBQ25CLHlDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLHNCQUFzQixzQ0FBdEIsc0JBQXNCLFFBR2pDO0FBRUQsSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCLDZCQUFXLENBQUE7SUFDWCwrQkFBYSxDQUFBO0lBQ2IsNkJBQVcsQ0FBQTtJQUNYLG1DQUFpQixDQUFBO0FBQ25CLENBQUMsRUFMVyxjQUFjLDhCQUFkLGNBQWMsUUFLekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5leHBvcnQgY2xhc3MgVHVydm9BcGlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZXJyb3JDb2RlOiBzdHJpbmdcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihlcnJvckNvZGU6IHN0cmluZywgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgVHVydm8gQXBpIFJlc3BvbnNlIEVycm9yICR7ZXJyb3JDb2RlfTogJHtlcnJvck1lc3NhZ2V9YClcbiAgICB0aGlzLmVycm9yQ29kZSA9IGVycm9yQ29kZVxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgVHVydm9BcGlSZXN1bHQ8VCA9IHZvaWQ+ID0ge1xuICBTdGF0dXM6ICdTVUNDRVNTJyB8IHN0cmluZ1xuICBkZXRhaWxzOiBUXG59XG5cbmV4cG9ydCBlbnVtIFR1cnZvQXBpUmVzcG9uc2VTdGF0dXMge1xuICBTVUNDRVNTID0gJ1NVQ0NFU1MnLFxuICBFUlJPUiA9ICdFUlJPUicsXG59XG5cbmV4cG9ydCBlbnVtIFR1cnZvQXBpTWV0aG9kIHtcbiAgR0VUID0gJ0dFVCcsXG4gIFBPU1QgPSAnUE9TVCcsXG4gIFBVVCA9ICdQVVQnLFxuICBERUxFVEUgPSAnREVMRVRFJyxcbn1cblxuZXhwb3J0IHR5cGUgVHVydm9QYWdlZFJlc3VsdDxLIGV4dGVuZHMgc3RyaW5nLCBUIGV4dGVuZHMgUmVjb3JkPGFueSwgdW5rbm93bj4+ID0ge1xuICBwYWdpbmF0aW9uOiB7XG4gICAgc3RhcnQ6IG51bWJlclxuICAgIHBhZ2VTaXplOiBudW1iZXJcbiAgICB0b3RhbFJlY29yZHNJblBhZ2U6IG51bWJlclxuICAgIG1vcmVBdmFpbGFibGU6IGJvb2xlYW5cbiAgfVxufSAmIChSZWNvcmQ8SywgVFtdPiB8IFJlY29yZDxLLCB1bmRlZmluZWQ+KVxuXG5leHBvcnQgdHlwZSBUdXJ2b0ZpbHRlclNoaXBtZW50c1Jlc3VsdEl0ZW0gPSB7XG4gIGlkOiBudW1iZXJcbiAgY3VzdG9tSWQ6IHN0cmluZ1xuICBsYXN0VXBkYXRlZE9uOiBzdHJpbmdcbiAgdXBkYXRlZDogc3RyaW5nXG4gIGNyZWF0ZWREYXRlOiBzdHJpbmdcbiAgY3JlYXRlZDogc3RyaW5nXG4gIHN0YXR1czogeyBjb2RlOiBUdXJ2b0xvb2t1cCB9XG4gIGN1c3RvbWVyT3JkZXI6IHtcbiAgICBpZDogbnVtYmVyXG4gICAgY3VzdG9tZXI6IHtcbiAgICAgIGlkOiBudW1iZXJcbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgIH1cbiAgfVtdXG4gIGNhcnJpZXJPcmRlcjoge1xuICAgIGlkOiBudW1iZXJcbiAgICBjYXJyaWVyOiB7XG4gICAgICBuYW1lOiBzdHJpbmdcbiAgICAgIGlkOiBudW1iZXJcbiAgICB9XG4gIH1bXVxufVxuXG5leHBvcnQgdHlwZSBUdXJ2b0RhdGVXaXRoVGltZXpvbmUgPSB7XG4gIGRhdGU6IHN0cmluZ1xuICB0aW1lWm9uZTogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvRGF0ZVdpdGhUaW1lem9uZUxvd2VyY2FzZSA9IHtcbiAgZGF0ZTogc3RyaW5nXG4gIHRpbWV6b25lOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgVHVydm9Mb29rdXAgPSB7XG4gIGtleTogc3RyaW5nXG4gIHZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Turvo API credentials
3
+ */
4
+ export interface TurvoCredentials {
5
+ /** Turvo API key (x-api-key header) */
6
+ apiKey: string;
7
+ /** OAuth username */
8
+ username: string;
9
+ /** OAuth password */
10
+ password: string;
11
+ /** Turvo API base URL */
12
+ urlBase: string;
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUdXJ2byBBUEkgY3JlZGVudGlhbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUdXJ2b0NyZWRlbnRpYWxzIHtcbiAgLyoqIFR1cnZvIEFQSSBrZXkgKHgtYXBpLWtleSBoZWFkZXIpICovXG4gIGFwaUtleTogc3RyaW5nXG4gIC8qKiBPQXV0aCB1c2VybmFtZSAqL1xuICB1c2VybmFtZTogc3RyaW5nXG4gIC8qKiBPQXV0aCBwYXNzd29yZCAqL1xuICBwYXNzd29yZDogc3RyaW5nXG4gIC8qKiBUdXJ2byBBUEkgYmFzZSBVUkwgKi9cbiAgdXJsQmFzZTogc3RyaW5nXG59XG4iXX0=
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Shipment not found in Turvo
3
+ */
4
+ export declare class TurvoNotFoundError extends Error {
5
+ readonly shipmentId: string;
6
+ constructor(shipmentId: string);
7
+ }
8
+ /**
9
+ * Authentication failed (invalid credentials, expired token)
10
+ */
11
+ export declare class TurvoAuthError extends Error {
12
+ constructor(message: string);
13
+ }
14
+ /**
15
+ * Rate limited by Turvo
16
+ */
17
+ export declare class TurvoRateLimitError extends Error {
18
+ readonly retryAfter?: number | undefined;
19
+ constructor(retryAfter?: number | undefined);
20
+ }
21
+ /**
22
+ * Internal API failed but public API succeeded.
23
+ * Contains partial data in `partialData` field.
24
+ */
25
+ export declare class TurvoPartialDataError extends Error {
26
+ readonly partialData: unknown;
27
+ readonly failedApis: string[];
28
+ constructor(partialData: unknown, failedApis: string[]);
29
+ }
30
+ /**
31
+ * Error thrown when Turvo secrets cannot be retrieved from AWS Secrets Manager
32
+ */
33
+ export declare class NoSecretError extends Error {
34
+ constructor(path: string);
35
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoSecretError = exports.TurvoPartialDataError = exports.TurvoRateLimitError = exports.TurvoAuthError = exports.TurvoNotFoundError = void 0;
4
+ /**
5
+ * Shipment not found in Turvo
6
+ */
7
+ class TurvoNotFoundError extends Error {
8
+ shipmentId;
9
+ constructor(shipmentId) {
10
+ super(`Shipment not found in Turvo: ${shipmentId}`);
11
+ this.shipmentId = shipmentId;
12
+ this.name = 'TurvoNotFoundError';
13
+ }
14
+ }
15
+ exports.TurvoNotFoundError = TurvoNotFoundError;
16
+ /**
17
+ * Authentication failed (invalid credentials, expired token)
18
+ */
19
+ class TurvoAuthError extends Error {
20
+ constructor(message) {
21
+ super(`Turvo authentication failed: ${message}`);
22
+ this.name = 'TurvoAuthError';
23
+ }
24
+ }
25
+ exports.TurvoAuthError = TurvoAuthError;
26
+ /**
27
+ * Rate limited by Turvo
28
+ */
29
+ class TurvoRateLimitError extends Error {
30
+ retryAfter;
31
+ constructor(retryAfter) {
32
+ super(`Rate limited by Turvo${retryAfter ? `. Retry after ${retryAfter} seconds` : ''}`);
33
+ this.retryAfter = retryAfter;
34
+ this.name = 'TurvoRateLimitError';
35
+ }
36
+ }
37
+ exports.TurvoRateLimitError = TurvoRateLimitError;
38
+ /**
39
+ * Internal API failed but public API succeeded.
40
+ * Contains partial data in `partialData` field.
41
+ */
42
+ class TurvoPartialDataError extends Error {
43
+ partialData;
44
+ failedApis;
45
+ constructor(partialData, failedApis) {
46
+ super(`Turvo internal API failed for: ${failedApis.join(', ')}. Partial data available.`);
47
+ this.partialData = partialData;
48
+ this.failedApis = failedApis;
49
+ this.name = 'TurvoPartialDataError';
50
+ }
51
+ }
52
+ exports.TurvoPartialDataError = TurvoPartialDataError;
53
+ /**
54
+ * Error thrown when Turvo secrets cannot be retrieved from AWS Secrets Manager
55
+ */
56
+ class NoSecretError extends Error {
57
+ constructor(path) {
58
+ super(`No secret found at path: ${path}`);
59
+ this.name = 'NoSecretError';
60
+ }
61
+ }
62
+ exports.NoSecretError = NoSecretError;
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsS0FBSztJQUNmO0lBQTVCLFlBQTRCLFVBQWtCO1FBQzVDLEtBQUssQ0FBQyxnQ0FBZ0MsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUR6QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRTVDLElBQUksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUE7SUFDbEMsQ0FBQztDQUNGO0FBTEQsZ0RBS0M7QUFFRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLEtBQUs7SUFDdkMsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxnQ0FBZ0MsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFBO0lBQzlCLENBQUM7Q0FDRjtBQUxELHdDQUtDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLEtBQUs7SUFDaEI7SUFBNUIsWUFBNEIsVUFBbUI7UUFDN0MsS0FBSyxDQUFDLHdCQUF3QixVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixVQUFVLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUQ5RCxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBRTdDLElBQUksQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUE7SUFDbkMsQ0FBQztDQUNGO0FBTEQsa0RBS0M7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLEtBQUs7SUFFNUI7SUFDQTtJQUZsQixZQUNrQixXQUFvQixFQUNwQixVQUFvQjtRQUVwQyxLQUFLLENBQUMsa0NBQWtDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUE7UUFIekUsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQUdwQyxJQUFJLENBQUMsSUFBSSxHQUFHLHVCQUF1QixDQUFBO0lBQ3JDLENBQUM7Q0FDRjtBQVJELHNEQVFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxLQUFLO0lBQ3RDLFlBQVksSUFBWTtRQUN0QixLQUFLLENBQUMsNEJBQTRCLElBQUksRUFBRSxDQUFDLENBQUE7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUE7SUFDN0IsQ0FBQztDQUNGO0FBTEQsc0NBS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNoaXBtZW50IG5vdCBmb3VuZCBpbiBUdXJ2b1xuICovXG5leHBvcnQgY2xhc3MgVHVydm9Ob3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc2hpcG1lbnRJZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFNoaXBtZW50IG5vdCBmb3VuZCBpbiBUdXJ2bzogJHtzaGlwbWVudElkfWApXG4gICAgdGhpcy5uYW1lID0gJ1R1cnZvTm90Rm91bmRFcnJvcidcbiAgfVxufVxuXG4vKipcbiAqIEF1dGhlbnRpY2F0aW9uIGZhaWxlZCAoaW52YWxpZCBjcmVkZW50aWFscywgZXhwaXJlZCB0b2tlbilcbiAqL1xuZXhwb3J0IGNsYXNzIFR1cnZvQXV0aEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgVHVydm8gYXV0aGVudGljYXRpb24gZmFpbGVkOiAke21lc3NhZ2V9YClcbiAgICB0aGlzLm5hbWUgPSAnVHVydm9BdXRoRXJyb3InXG4gIH1cbn1cblxuLyoqXG4gKiBSYXRlIGxpbWl0ZWQgYnkgVHVydm9cbiAqL1xuZXhwb3J0IGNsYXNzIFR1cnZvUmF0ZUxpbWl0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSByZXRyeUFmdGVyPzogbnVtYmVyKSB7XG4gICAgc3VwZXIoYFJhdGUgbGltaXRlZCBieSBUdXJ2byR7cmV0cnlBZnRlciA/IGAuIFJldHJ5IGFmdGVyICR7cmV0cnlBZnRlcn0gc2Vjb25kc2AgOiAnJ31gKVxuICAgIHRoaXMubmFtZSA9ICdUdXJ2b1JhdGVMaW1pdEVycm9yJ1xuICB9XG59XG5cbi8qKlxuICogSW50ZXJuYWwgQVBJIGZhaWxlZCBidXQgcHVibGljIEFQSSBzdWNjZWVkZWQuXG4gKiBDb250YWlucyBwYXJ0aWFsIGRhdGEgaW4gYHBhcnRpYWxEYXRhYCBmaWVsZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFR1cnZvUGFydGlhbERhdGFFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHBhcnRpYWxEYXRhOiB1bmtub3duLFxuICAgIHB1YmxpYyByZWFkb25seSBmYWlsZWRBcGlzOiBzdHJpbmdbXVxuICApIHtcbiAgICBzdXBlcihgVHVydm8gaW50ZXJuYWwgQVBJIGZhaWxlZCBmb3I6ICR7ZmFpbGVkQXBpcy5qb2luKCcsICcpfS4gUGFydGlhbCBkYXRhIGF2YWlsYWJsZS5gKVxuICAgIHRoaXMubmFtZSA9ICdUdXJ2b1BhcnRpYWxEYXRhRXJyb3InXG4gIH1cbn1cblxuLyoqXG4gKiBFcnJvciB0aHJvd24gd2hlbiBUdXJ2byBzZWNyZXRzIGNhbm5vdCBiZSByZXRyaWV2ZWQgZnJvbSBBV1MgU2VjcmV0cyBNYW5hZ2VyXG4gKi9cbmV4cG9ydCBjbGFzcyBOb1NlY3JldEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwYXRoOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgTm8gc2VjcmV0IGZvdW5kIGF0IHBhdGg6ICR7cGF0aH1gKVxuICAgIHRoaXMubmFtZSA9ICdOb1NlY3JldEVycm9yJ1xuICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './config';
2
+ export * from './common';
3
+ export * from './shipment';
4
+ export * from './tracking';
5
+ export * from './errors';
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Config types
18
+ __exportStar(require("./config"), exports);
19
+ // Common API types
20
+ __exportStar(require("./common"), exports);
21
+ // Shipment types
22
+ __exportStar(require("./shipment"), exports);
23
+ // Tracking types
24
+ __exportStar(require("./tracking"), exports);
25
+ // Error types
26
+ __exportStar(require("./errors"), exports);
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGVBQWU7QUFDZiwyQ0FBd0I7QUFFeEIsbUJBQW1CO0FBQ25CLDJDQUF3QjtBQUV4QixpQkFBaUI7QUFDakIsNkNBQTBCO0FBRTFCLGlCQUFpQjtBQUNqQiw2Q0FBMEI7QUFFMUIsY0FBYztBQUNkLDJDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbmZpZyB0eXBlc1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcnXG5cbi8vIENvbW1vbiBBUEkgdHlwZXNcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uJ1xuXG4vLyBTaGlwbWVudCB0eXBlc1xuZXhwb3J0ICogZnJvbSAnLi9zaGlwbWVudCdcblxuLy8gVHJhY2tpbmcgdHlwZXNcbmV4cG9ydCAqIGZyb20gJy4vdHJhY2tpbmcnXG5cbi8vIEVycm9yIHR5cGVzXG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycydcbiJdfQ==