@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,379 @@
1
+ import { TurvoDateWithTimezone, TurvoDateWithTimezoneLowercase, TurvoLookup } from './common';
2
+ export type TurvoGlobalRoute = {
3
+ id: number;
4
+ name: string;
5
+ globalShipLocationSourceId?: string;
6
+ schedulingType: TurvoLookup;
7
+ stopType: TurvoLookup;
8
+ location: {
9
+ id: number;
10
+ };
11
+ deleted?: boolean;
12
+ sequence: number;
13
+ segmentSequence: number;
14
+ state: 'OPEN' | 'CLOSED' | 'COMPLETED';
15
+ customerOrder?: TurvoCustomerOrder[];
16
+ carrierOrder?: {
17
+ carrierId: number;
18
+ id: number;
19
+ carrierOrderSourceId: number;
20
+ }[];
21
+ appointment: TurvoAppointment;
22
+ }[];
23
+ export type TurvoLane = {
24
+ start: string;
25
+ end: string;
26
+ };
27
+ export type TurvoShipmentService = TurvoLookup & ({
28
+ key: '21204';
29
+ value: 'Team';
30
+ } | {
31
+ key: '21214';
32
+ value: 'Drop trailer';
33
+ });
34
+ export type TurvoShipmentStatus = {
35
+ notes?: string;
36
+ attributes?: {
37
+ etaValUtc?: string;
38
+ next_eta_cal_val_timezone?: string;
39
+ };
40
+ description?: string;
41
+ statusDate?: TurvoDateWithTimezoneLowercase;
42
+ updatedBy?: {
43
+ id?: number;
44
+ name?: string;
45
+ };
46
+ location?: TurvoShipmentStatusLocation;
47
+ runningLate?: TurvoShipmentStatusRunningLate;
48
+ code: {
49
+ key: '2100';
50
+ value: 'Quote active';
51
+ } | {
52
+ key: '2101';
53
+ value: 'Tendered';
54
+ } | {
55
+ key: '2102';
56
+ value: 'Covered';
57
+ } | {
58
+ key: '2103';
59
+ value: 'Dispatched';
60
+ } | {
61
+ key: '2104';
62
+ value: 'At pickup';
63
+ } | {
64
+ key: '2105';
65
+ value: 'En route';
66
+ } | {
67
+ key: '2106';
68
+ value: 'At delivery';
69
+ } | {
70
+ key: '2116';
71
+ value: 'Route Complete';
72
+ } | {
73
+ key: '2107';
74
+ value: 'Delivered';
75
+ } | {
76
+ key: '2108';
77
+ value: 'Ready for billing';
78
+ } | {
79
+ key: '2109';
80
+ value: 'Processing';
81
+ } | {
82
+ key: '2110';
83
+ value: 'Carrier paid';
84
+ } | {
85
+ key: '2111';
86
+ value: 'Customer paid';
87
+ } | {
88
+ key: '2112';
89
+ value: 'Completed';
90
+ } | {
91
+ key: '2113';
92
+ value: 'Canceled';
93
+ } | {
94
+ key: '2117';
95
+ value: 'Tender - offered';
96
+ } | {
97
+ key: '2118';
98
+ value: 'Tender - accepted';
99
+ } | {
100
+ key: '2119';
101
+ value: 'Tender - rejected';
102
+ } | {
103
+ key: '2114';
104
+ value: 'Quote inactive';
105
+ } | {
106
+ key: '2115';
107
+ value: 'Picked up';
108
+ };
109
+ };
110
+ export declare const TURVO_SHIPMENT_STATUS_DELIVERED: TurvoShipmentStatus;
111
+ export declare const TURVO_SHIPMENT_STATUS_PICKED_UP: TurvoShipmentStatus;
112
+ export declare const TURVO_SHIPMENT_STATUS_AT_PICKUP: TurvoShipmentStatus;
113
+ export declare const TURVO_SHIPMENT_STATUS_EN_ROUTE: TurvoShipmentStatus;
114
+ export declare const TURVO_SHIPMENT_STATUS_AT_DELIVERY: TurvoShipmentStatus;
115
+ export declare const TURVO_SYSTEM_BOT_USER = "Turvo System Bot";
116
+ export type TurvoWebhookStatus = {
117
+ code: {
118
+ key: '2100';
119
+ value: 'Quote active';
120
+ } | {
121
+ key: '2101';
122
+ value: 'Tendered';
123
+ } | {
124
+ key: '2102';
125
+ value: 'Covered';
126
+ } | {
127
+ key: '2103';
128
+ value: 'Dispatched';
129
+ } | {
130
+ key: '2104';
131
+ value: 'At pickup';
132
+ } | {
133
+ key: '2105';
134
+ value: 'En route';
135
+ } | {
136
+ key: '2106';
137
+ value: 'At delivery';
138
+ } | {
139
+ key: '2116';
140
+ value: 'Route Complete';
141
+ } | {
142
+ key: '2107';
143
+ value: 'Delivered';
144
+ } | {
145
+ key: '2108';
146
+ value: 'Ready for billing';
147
+ } | {
148
+ key: '2109';
149
+ value: 'Processing';
150
+ } | {
151
+ key: '2110';
152
+ value: 'Carrier paid';
153
+ } | {
154
+ key: '2111';
155
+ value: 'Customer paid';
156
+ } | {
157
+ key: '2112';
158
+ value: 'Completed';
159
+ } | {
160
+ key: '2113';
161
+ value: 'Canceled';
162
+ } | {
163
+ key: '2117';
164
+ value: 'Tender - offered';
165
+ } | {
166
+ key: '2118';
167
+ value: 'Tender - accepted';
168
+ } | {
169
+ key: '2119';
170
+ value: 'Tender - rejected';
171
+ } | {
172
+ key: '2114';
173
+ value: 'Quote inactive';
174
+ } | {
175
+ key: '2115';
176
+ value: 'Picked up';
177
+ };
178
+ description?: string;
179
+ updatedBy?: {
180
+ id?: number;
181
+ name?: string;
182
+ };
183
+ };
184
+ export declare enum TurvoFlexAttributeLaneTypeValue {
185
+ FirstMile = "First Mile",
186
+ MiddleMile = "Middle Mile"
187
+ }
188
+ export declare enum TurvoFlexAttributeManagementTypeValue {
189
+ ClientManaged = "Client Managed",
190
+ VehoManaged = "Veho Managed",
191
+ Insourced = "Insourced"
192
+ }
193
+ export type TurvoFlexAttribute = {
194
+ deleted: false;
195
+ shareable: false;
196
+ } & ({
197
+ name: 'Lane Type';
198
+ type: {
199
+ value: 'DROPDOWN';
200
+ key: 'VehoTech_Lane_Type';
201
+ };
202
+ value: TurvoFlexAttributeLaneTypeValue;
203
+ } | {
204
+ name: 'Management Type';
205
+ type: {
206
+ value: 'DROPDOWN';
207
+ key: 'VehoTech_Management_Type';
208
+ };
209
+ value: TurvoFlexAttributeManagementTypeValue;
210
+ });
211
+ export type TurvoEquipment = {
212
+ type: TurvoLookup;
213
+ size: TurvoLookup | null;
214
+ }[];
215
+ export type TurvoCustomer = {
216
+ id: number;
217
+ name: string;
218
+ };
219
+ export type TurvoCustomerOrder = {
220
+ id?: number;
221
+ customerId?: number;
222
+ customer: TurvoCustomer;
223
+ customerOrderSourceId: number;
224
+ externalIds: {
225
+ type: {
226
+ key: '1400';
227
+ value: 'Purchase order #';
228
+ } | {
229
+ key: '1401';
230
+ value: 'Reference #';
231
+ };
232
+ value: string;
233
+ copyToCarrierOrder: true;
234
+ }[];
235
+ items?: {
236
+ name: string;
237
+ pickupLocation: {
238
+ id: number;
239
+ globalShipLocationSourceId?: number;
240
+ globalShipLocationId?: number;
241
+ name: string;
242
+ }[];
243
+ deliveryLocation: {
244
+ id: number;
245
+ globalShipLocationSourceId?: number;
246
+ globalShipLocationId?: number;
247
+ name: string;
248
+ }[];
249
+ qty?: number;
250
+ unit?: TurvoLookup;
251
+ }[];
252
+ };
253
+ export type TurvoCarrierOrder = {
254
+ _operation: 0;
255
+ carrier: {
256
+ id: number;
257
+ name: string;
258
+ };
259
+ carrierOrderSourceId: number;
260
+ costs?: {
261
+ totalAmount: number;
262
+ lineItem: {
263
+ id?: number;
264
+ code: {
265
+ key: '1600';
266
+ value: 'Freight - flat';
267
+ };
268
+ qty: 1;
269
+ price: number;
270
+ amount: number;
271
+ payable: true;
272
+ }[];
273
+ };
274
+ };
275
+ export type TurvoAppointment = {
276
+ date: string;
277
+ flex?: number;
278
+ timeZone: string;
279
+ hasTime: true;
280
+ };
281
+ export type TurvoShipment = {
282
+ id: number;
283
+ customId: string;
284
+ ltlShipment: boolean;
285
+ startDate: TurvoDateWithTimezone;
286
+ endDate: TurvoDateWithTimezone & {
287
+ flex: number;
288
+ };
289
+ status: TurvoShipmentStatus;
290
+ services?: TurvoShipmentService[];
291
+ equipment: TurvoEquipment;
292
+ flexAttributes?: TurvoFlexAttribute[];
293
+ lane: TurvoLane;
294
+ globalRoute: TurvoGlobalRoute;
295
+ customerOrder: TurvoCustomerOrder[];
296
+ carrierOrder: TurvoCarrierOrder[];
297
+ };
298
+ export type TurvoShipmentUpdate = {
299
+ id: number;
300
+ customId: string;
301
+ globalRoute: TurvoGlobalRoute;
302
+ customerOrder: TurvoCustomerOrder[];
303
+ status: TurvoWebhookStatus;
304
+ };
305
+ export interface TurvoShipmentStatusApiResponse {
306
+ customId: string;
307
+ status: {
308
+ location: {
309
+ lon: number;
310
+ lat: number;
311
+ nextArrivalTime: number;
312
+ nextMiles: number;
313
+ city: string;
314
+ };
315
+ statusDate: {
316
+ date: string;
317
+ timezone: string;
318
+ };
319
+ runningLate?: {
320
+ nextLocationName: string;
321
+ };
322
+ nextLocationId: number;
323
+ };
324
+ globalRoute: TurvoGlobalRoute;
325
+ lane: {
326
+ start: string;
327
+ end: string;
328
+ };
329
+ }
330
+ export type TurvoShipmentStatusLocation = {
331
+ city: string;
332
+ state: string;
333
+ countryCode: string;
334
+ countryName: string;
335
+ lon: number;
336
+ lat: number;
337
+ nextEta?: string;
338
+ nextEtaCalVal?: string;
339
+ nextArrivalTime?: number;
340
+ nextMiles?: number;
341
+ currentDate?: string;
342
+ };
343
+ export type TurvoShipmentStatusRunningLate = {
344
+ lateType: string;
345
+ lateDuration: number;
346
+ nextLocationType: string;
347
+ lateDurationString: string;
348
+ nextLocationEta: string;
349
+ nextLocationTimeZone: string;
350
+ nextLocationName: string;
351
+ nextLocationEtaDate: string;
352
+ isApproachingLate: boolean;
353
+ statusKey: string;
354
+ nextLocationAppointmentDate: string;
355
+ nextLocationAppointment: string;
356
+ lastUpdatedOn: string;
357
+ nextLocationId: number;
358
+ };
359
+ export type TurvoShipmentStatusUpdate = {
360
+ id: number;
361
+ status: TurvoWebhookStatus;
362
+ };
363
+ export type TurvoCreateShipmentApiResult = {
364
+ id: number;
365
+ };
366
+ export type TurvoCancelShipmentApiResult = {
367
+ respMsg: string;
368
+ };
369
+ export type TurvoUpdateShipmentStatusApiResult = {
370
+ id: number;
371
+ };
372
+ export type TurvoAssociateTagsApiResult = {
373
+ tags: {
374
+ id: string;
375
+ tagName: string;
376
+ contextType: string;
377
+ contextId: number;
378
+ }[];
379
+ };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TurvoFlexAttributeManagementTypeValue = exports.TurvoFlexAttributeLaneTypeValue = exports.TURVO_SYSTEM_BOT_USER = exports.TURVO_SHIPMENT_STATUS_AT_DELIVERY = exports.TURVO_SHIPMENT_STATUS_EN_ROUTE = exports.TURVO_SHIPMENT_STATUS_AT_PICKUP = exports.TURVO_SHIPMENT_STATUS_PICKED_UP = exports.TURVO_SHIPMENT_STATUS_DELIVERED = void 0;
4
+ exports.TURVO_SHIPMENT_STATUS_DELIVERED = {
5
+ code: {
6
+ key: '2107',
7
+ value: 'Delivered',
8
+ },
9
+ };
10
+ exports.TURVO_SHIPMENT_STATUS_PICKED_UP = {
11
+ code: {
12
+ key: '2115',
13
+ value: 'Picked up',
14
+ },
15
+ };
16
+ exports.TURVO_SHIPMENT_STATUS_AT_PICKUP = {
17
+ code: {
18
+ key: '2104',
19
+ value: 'At pickup',
20
+ },
21
+ };
22
+ exports.TURVO_SHIPMENT_STATUS_EN_ROUTE = {
23
+ code: {
24
+ key: '2105',
25
+ value: 'En route',
26
+ },
27
+ };
28
+ exports.TURVO_SHIPMENT_STATUS_AT_DELIVERY = {
29
+ code: {
30
+ key: '2106',
31
+ value: 'At delivery',
32
+ },
33
+ };
34
+ exports.TURVO_SYSTEM_BOT_USER = 'Turvo System Bot';
35
+ var TurvoFlexAttributeLaneTypeValue;
36
+ (function (TurvoFlexAttributeLaneTypeValue) {
37
+ TurvoFlexAttributeLaneTypeValue["FirstMile"] = "First Mile";
38
+ TurvoFlexAttributeLaneTypeValue["MiddleMile"] = "Middle Mile";
39
+ })(TurvoFlexAttributeLaneTypeValue || (exports.TurvoFlexAttributeLaneTypeValue = TurvoFlexAttributeLaneTypeValue = {}));
40
+ var TurvoFlexAttributeManagementTypeValue;
41
+ (function (TurvoFlexAttributeManagementTypeValue) {
42
+ TurvoFlexAttributeManagementTypeValue["ClientManaged"] = "Client Managed";
43
+ TurvoFlexAttributeManagementTypeValue["VehoManaged"] = "Veho Managed";
44
+ TurvoFlexAttributeManagementTypeValue["Insourced"] = "Insourced";
45
+ })(TurvoFlexAttributeManagementTypeValue || (exports.TurvoFlexAttributeManagementTypeValue = TurvoFlexAttributeManagementTypeValue = {}));
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvc2hpcG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEVhLFFBQUEsK0JBQStCLEdBQXdCO0lBQ2xFLElBQUksRUFBRTtRQUNKLEdBQUcsRUFBRSxNQUFNO1FBQ1gsS0FBSyxFQUFFLFdBQVc7S0FDbkI7Q0FDRixDQUFBO0FBRVksUUFBQSwrQkFBK0IsR0FBd0I7SUFDbEUsSUFBSSxFQUFFO1FBQ0osR0FBRyxFQUFFLE1BQU07UUFDWCxLQUFLLEVBQUUsV0FBVztLQUNuQjtDQUNGLENBQUE7QUFFWSxRQUFBLCtCQUErQixHQUF3QjtJQUNsRSxJQUFJLEVBQUU7UUFDSixHQUFHLEVBQUUsTUFBTTtRQUNYLEtBQUssRUFBRSxXQUFXO0tBQ25CO0NBQ0YsQ0FBQTtBQUVZLFFBQUEsOEJBQThCLEdBQXdCO0lBQ2pFLElBQUksRUFBRTtRQUNKLEdBQUcsRUFBRSxNQUFNO1FBQ1gsS0FBSyxFQUFFLFVBQVU7S0FDbEI7Q0FDRixDQUFBO0FBRVksUUFBQSxpQ0FBaUMsR0FBd0I7SUFDcEUsSUFBSSxFQUFFO1FBQ0osR0FBRyxFQUFFLE1BQU07UUFDWCxLQUFLLEVBQUUsYUFBYTtLQUNyQjtDQUNGLENBQUE7QUFFWSxRQUFBLHFCQUFxQixHQUFHLGtCQUFrQixDQUFBO0FBK0J2RCxJQUFZLCtCQUdYO0FBSEQsV0FBWSwrQkFBK0I7SUFDekMsMkRBQXdCLENBQUE7SUFDeEIsNkRBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUhXLCtCQUErQiwrQ0FBL0IsK0JBQStCLFFBRzFDO0FBRUQsSUFBWSxxQ0FJWDtBQUpELFdBQVkscUNBQXFDO0lBQy9DLHlFQUFnQyxDQUFBO0lBQ2hDLHFFQUE0QixDQUFBO0lBQzVCLGdFQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFKVyxxQ0FBcUMscURBQXJDLHFDQUFxQyxRQUloRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1cnZvRGF0ZVdpdGhUaW1lem9uZSwgVHVydm9EYXRlV2l0aFRpbWV6b25lTG93ZXJjYXNlLCBUdXJ2b0xvb2t1cCB9IGZyb20gJy4vY29tbW9uJ1xuXG5leHBvcnQgdHlwZSBUdXJ2b0dsb2JhbFJvdXRlID0ge1xuICBpZDogbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xuICBnbG9iYWxTaGlwTG9jYXRpb25Tb3VyY2VJZD86IHN0cmluZ1xuICBzY2hlZHVsaW5nVHlwZTogVHVydm9Mb29rdXBcbiAgc3RvcFR5cGU6IFR1cnZvTG9va3VwXG4gIGxvY2F0aW9uOiB7XG4gICAgaWQ6IG51bWJlclxuICB9XG4gIGRlbGV0ZWQ/OiBib29sZWFuXG4gIHNlcXVlbmNlOiBudW1iZXJcbiAgc2VnbWVudFNlcXVlbmNlOiBudW1iZXJcbiAgc3RhdGU6ICdPUEVOJyB8ICdDTE9TRUQnIHwgJ0NPTVBMRVRFRCdcbiAgY3VzdG9tZXJPcmRlcj86IFR1cnZvQ3VzdG9tZXJPcmRlcltdXG4gIGNhcnJpZXJPcmRlcj86IHsgY2FycmllcklkOiBudW1iZXI7IGlkOiBudW1iZXI7IGNhcnJpZXJPcmRlclNvdXJjZUlkOiBudW1iZXIgfVtdXG4gIGFwcG9pbnRtZW50OiBUdXJ2b0FwcG9pbnRtZW50XG59W11cblxuZXhwb3J0IHR5cGUgVHVydm9MYW5lID0ge1xuICBzdGFydDogc3RyaW5nXG4gIGVuZDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvU2hpcG1lbnRTZXJ2aWNlID0gVHVydm9Mb29rdXAgJlxuICAoXG4gICAgfCB7XG4gICAgICAgIGtleTogJzIxMjA0J1xuICAgICAgICB2YWx1ZTogJ1RlYW0nXG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIGtleTogJzIxMjE0J1xuICAgICAgICB2YWx1ZTogJ0Ryb3AgdHJhaWxlcidcbiAgICAgIH1cbiAgKVxuXG5leHBvcnQgdHlwZSBUdXJ2b1NoaXBtZW50U3RhdHVzID0ge1xuICBub3Rlcz86IHN0cmluZ1xuICBhdHRyaWJ1dGVzPzoge1xuICAgIGV0YVZhbFV0Yz86IHN0cmluZ1xuICAgIG5leHRfZXRhX2NhbF92YWxfdGltZXpvbmU/OiBzdHJpbmdcbiAgfVxuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICBzdGF0dXNEYXRlPzogVHVydm9EYXRlV2l0aFRpbWV6b25lTG93ZXJjYXNlXG4gIHVwZGF0ZWRCeT86IHtcbiAgICBpZD86IG51bWJlclxuICAgIG5hbWU/OiBzdHJpbmdcbiAgfVxuICBsb2NhdGlvbj86IFR1cnZvU2hpcG1lbnRTdGF0dXNMb2NhdGlvblxuICBydW5uaW5nTGF0ZT86IFR1cnZvU2hpcG1lbnRTdGF0dXNSdW5uaW5nTGF0ZVxuICBjb2RlOlxuICAgIHwgeyBrZXk6ICcyMTAwJzsgdmFsdWU6ICdRdW90ZSBhY3RpdmUnIH1cbiAgICB8IHsga2V5OiAnMjEwMSc7IHZhbHVlOiAnVGVuZGVyZWQnIH1cbiAgICB8IHsga2V5OiAnMjEwMic7IHZhbHVlOiAnQ292ZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTAzJzsgdmFsdWU6ICdEaXNwYXRjaGVkJyB9XG4gICAgfCB7IGtleTogJzIxMDQnOyB2YWx1ZTogJ0F0IHBpY2t1cCcgfVxuICAgIHwgeyBrZXk6ICcyMTA1JzsgdmFsdWU6ICdFbiByb3V0ZScgfVxuICAgIHwgeyBrZXk6ICcyMTA2JzsgdmFsdWU6ICdBdCBkZWxpdmVyeScgfVxuICAgIHwgeyBrZXk6ICcyMTE2JzsgdmFsdWU6ICdSb3V0ZSBDb21wbGV0ZScgfVxuICAgIHwgeyBrZXk6ICcyMTA3JzsgdmFsdWU6ICdEZWxpdmVyZWQnIH1cbiAgICB8IHsga2V5OiAnMjEwOCc7IHZhbHVlOiAnUmVhZHkgZm9yIGJpbGxpbmcnIH1cbiAgICB8IHsga2V5OiAnMjEwOSc7IHZhbHVlOiAnUHJvY2Vzc2luZycgfVxuICAgIHwgeyBrZXk6ICcyMTEwJzsgdmFsdWU6ICdDYXJyaWVyIHBhaWQnIH1cbiAgICB8IHsga2V5OiAnMjExMSc7IHZhbHVlOiAnQ3VzdG9tZXIgcGFpZCcgfVxuICAgIHwgeyBrZXk6ICcyMTEyJzsgdmFsdWU6ICdDb21wbGV0ZWQnIH1cbiAgICB8IHsga2V5OiAnMjExMyc7IHZhbHVlOiAnQ2FuY2VsZWQnIH1cbiAgICB8IHsga2V5OiAnMjExNyc7IHZhbHVlOiAnVGVuZGVyIC0gb2ZmZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE4JzsgdmFsdWU6ICdUZW5kZXIgLSBhY2NlcHRlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE5JzsgdmFsdWU6ICdUZW5kZXIgLSByZWplY3RlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE0JzsgdmFsdWU6ICdRdW90ZSBpbmFjdGl2ZScgfVxuICAgIHwgeyBrZXk6ICcyMTE1JzsgdmFsdWU6ICdQaWNrZWQgdXAnIH1cbn1cblxuZXhwb3J0IGNvbnN0IFRVUlZPX1NISVBNRU5UX1NUQVRVU19ERUxJVkVSRUQ6IFR1cnZvU2hpcG1lbnRTdGF0dXMgPSB7XG4gIGNvZGU6IHtcbiAgICBrZXk6ICcyMTA3JyxcbiAgICB2YWx1ZTogJ0RlbGl2ZXJlZCcsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBUVVJWT19TSElQTUVOVF9TVEFUVVNfUElDS0VEX1VQOiBUdXJ2b1NoaXBtZW50U3RhdHVzID0ge1xuICBjb2RlOiB7XG4gICAga2V5OiAnMjExNScsXG4gICAgdmFsdWU6ICdQaWNrZWQgdXAnLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgVFVSVk9fU0hJUE1FTlRfU1RBVFVTX0FUX1BJQ0tVUDogVHVydm9TaGlwbWVudFN0YXR1cyA9IHtcbiAgY29kZToge1xuICAgIGtleTogJzIxMDQnLFxuICAgIHZhbHVlOiAnQXQgcGlja3VwJyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFRVUlZPX1NISVBNRU5UX1NUQVRVU19FTl9ST1VURTogVHVydm9TaGlwbWVudFN0YXR1cyA9IHtcbiAgY29kZToge1xuICAgIGtleTogJzIxMDUnLFxuICAgIHZhbHVlOiAnRW4gcm91dGUnLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgVFVSVk9fU0hJUE1FTlRfU1RBVFVTX0FUX0RFTElWRVJZOiBUdXJ2b1NoaXBtZW50U3RhdHVzID0ge1xuICBjb2RlOiB7XG4gICAga2V5OiAnMjEwNicsXG4gICAgdmFsdWU6ICdBdCBkZWxpdmVyeScsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBUVVJWT19TWVNURU1fQk9UX1VTRVIgPSAnVHVydm8gU3lzdGVtIEJvdCdcblxuZXhwb3J0IHR5cGUgVHVydm9XZWJob29rU3RhdHVzID0ge1xuICBjb2RlOlxuICAgIHwgeyBrZXk6ICcyMTAwJzsgdmFsdWU6ICdRdW90ZSBhY3RpdmUnIH1cbiAgICB8IHsga2V5OiAnMjEwMSc7IHZhbHVlOiAnVGVuZGVyZWQnIH1cbiAgICB8IHsga2V5OiAnMjEwMic7IHZhbHVlOiAnQ292ZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTAzJzsgdmFsdWU6ICdEaXNwYXRjaGVkJyB9XG4gICAgfCB7IGtleTogJzIxMDQnOyB2YWx1ZTogJ0F0IHBpY2t1cCcgfVxuICAgIHwgeyBrZXk6ICcyMTA1JzsgdmFsdWU6ICdFbiByb3V0ZScgfVxuICAgIHwgeyBrZXk6ICcyMTA2JzsgdmFsdWU6ICdBdCBkZWxpdmVyeScgfVxuICAgIHwgeyBrZXk6ICcyMTE2JzsgdmFsdWU6ICdSb3V0ZSBDb21wbGV0ZScgfVxuICAgIHwgeyBrZXk6ICcyMTA3JzsgdmFsdWU6ICdEZWxpdmVyZWQnIH1cbiAgICB8IHsga2V5OiAnMjEwOCc7IHZhbHVlOiAnUmVhZHkgZm9yIGJpbGxpbmcnIH1cbiAgICB8IHsga2V5OiAnMjEwOSc7IHZhbHVlOiAnUHJvY2Vzc2luZycgfVxuICAgIHwgeyBrZXk6ICcyMTEwJzsgdmFsdWU6ICdDYXJyaWVyIHBhaWQnIH1cbiAgICB8IHsga2V5OiAnMjExMSc7IHZhbHVlOiAnQ3VzdG9tZXIgcGFpZCcgfVxuICAgIHwgeyBrZXk6ICcyMTEyJzsgdmFsdWU6ICdDb21wbGV0ZWQnIH1cbiAgICB8IHsga2V5OiAnMjExMyc7IHZhbHVlOiAnQ2FuY2VsZWQnIH1cbiAgICB8IHsga2V5OiAnMjExNyc7IHZhbHVlOiAnVGVuZGVyIC0gb2ZmZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE4JzsgdmFsdWU6ICdUZW5kZXIgLSBhY2NlcHRlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE5JzsgdmFsdWU6ICdUZW5kZXIgLSByZWplY3RlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE0JzsgdmFsdWU6ICdRdW90ZSBpbmFjdGl2ZScgfVxuICAgIHwgeyBrZXk6ICcyMTE1JzsgdmFsdWU6ICdQaWNrZWQgdXAnIH1cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgdXBkYXRlZEJ5Pzoge1xuICAgIGlkPzogbnVtYmVyXG4gICAgbmFtZT86IHN0cmluZ1xuICB9XG59XG5cbmV4cG9ydCBlbnVtIFR1cnZvRmxleEF0dHJpYnV0ZUxhbmVUeXBlVmFsdWUge1xuICBGaXJzdE1pbGUgPSAnRmlyc3QgTWlsZScsXG4gIE1pZGRsZU1pbGUgPSAnTWlkZGxlIE1pbGUnLFxufVxuXG5leHBvcnQgZW51bSBUdXJ2b0ZsZXhBdHRyaWJ1dGVNYW5hZ2VtZW50VHlwZVZhbHVlIHtcbiAgQ2xpZW50TWFuYWdlZCA9ICdDbGllbnQgTWFuYWdlZCcsXG4gIFZlaG9NYW5hZ2VkID0gJ1ZlaG8gTWFuYWdlZCcsXG4gIEluc291cmNlZCA9ICdJbnNvdXJjZWQnLFxufVxuXG5leHBvcnQgdHlwZSBUdXJ2b0ZsZXhBdHRyaWJ1dGUgPSB7XG4gIGRlbGV0ZWQ6IGZhbHNlXG4gIHNoYXJlYWJsZTogZmFsc2Vcbn0gJiAoXG4gIHwge1xuICAgICAgbmFtZTogJ0xhbmUgVHlwZSdcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdmFsdWU6ICdEUk9QRE9XTidcbiAgICAgICAga2V5OiAnVmVob1RlY2hfTGFuZV9UeXBlJ1xuICAgICAgfVxuICAgICAgdmFsdWU6IFR1cnZvRmxleEF0dHJpYnV0ZUxhbmVUeXBlVmFsdWVcbiAgICB9XG4gIHwge1xuICAgICAgbmFtZTogJ01hbmFnZW1lbnQgVHlwZSdcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdmFsdWU6ICdEUk9QRE9XTidcbiAgICAgICAga2V5OiAnVmVob1RlY2hfTWFuYWdlbWVudF9UeXBlJ1xuICAgICAgfVxuICAgICAgdmFsdWU6IFR1cnZvRmxleEF0dHJpYnV0ZU1hbmFnZW1lbnRUeXBlVmFsdWVcbiAgICB9XG4pXG5cbmV4cG9ydCB0eXBlIFR1cnZvRXF1aXBtZW50ID0ge1xuICB0eXBlOiBUdXJ2b0xvb2t1cFxuICBzaXplOiBUdXJ2b0xvb2t1cCB8IG51bGxcbn1bXVxuXG5leHBvcnQgdHlwZSBUdXJ2b0N1c3RvbWVyID0ge1xuICBpZDogbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBUdXJ2b0N1c3RvbWVyT3JkZXIgPSB7XG4gIGlkPzogbnVtYmVyXG4gIGN1c3RvbWVySWQ/OiBudW1iZXJcbiAgY3VzdG9tZXI6IFR1cnZvQ3VzdG9tZXJcbiAgY3VzdG9tZXJPcmRlclNvdXJjZUlkOiBudW1iZXJcbiAgZXh0ZXJuYWxJZHM6IHtcbiAgICB0eXBlOiB7IGtleTogJzE0MDAnOyB2YWx1ZTogJ1B1cmNoYXNlIG9yZGVyICMnIH0gfCB7IGtleTogJzE0MDEnOyB2YWx1ZTogJ1JlZmVyZW5jZSAjJyB9XG4gICAgdmFsdWU6IHN0cmluZ1xuICAgIGNvcHlUb0NhcnJpZXJPcmRlcjogdHJ1ZVxuICB9W11cbiAgaXRlbXM/OiB7XG4gICAgbmFtZTogc3RyaW5nXG4gICAgcGlja3VwTG9jYXRpb246IHsgaWQ6IG51bWJlcjsgZ2xvYmFsU2hpcExvY2F0aW9uU291cmNlSWQ/OiBudW1iZXI7IGdsb2JhbFNoaXBMb2NhdGlvbklkPzogbnVtYmVyOyBuYW1lOiBzdHJpbmcgfVtdXG4gICAgZGVsaXZlcnlMb2NhdGlvbjogeyBpZDogbnVtYmVyOyBnbG9iYWxTaGlwTG9jYXRpb25Tb3VyY2VJZD86IG51bWJlcjsgZ2xvYmFsU2hpcExvY2F0aW9uSWQ/OiBudW1iZXI7IG5hbWU6IHN0cmluZyB9W11cbiAgICBxdHk/OiBudW1iZXJcbiAgICB1bml0PzogVHVydm9Mb29rdXBcbiAgfVtdXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvQ2Fycmllck9yZGVyID0ge1xuICBfb3BlcmF0aW9uOiAwXG4gIGNhcnJpZXI6IHtcbiAgICBpZDogbnVtYmVyXG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgY2Fycmllck9yZGVyU291cmNlSWQ6IG51bWJlclxuICBjb3N0cz86IHtcbiAgICB0b3RhbEFtb3VudDogbnVtYmVyXG4gICAgbGluZUl0ZW06IHtcbiAgICAgIGlkPzogbnVtYmVyXG4gICAgICBjb2RlOiB7IGtleTogJzE2MDAnOyB2YWx1ZTogJ0ZyZWlnaHQgLSBmbGF0JyB9XG4gICAgICBxdHk6IDFcbiAgICAgIHByaWNlOiBudW1iZXJcbiAgICAgIGFtb3VudDogbnVtYmVyXG4gICAgICBwYXlhYmxlOiB0cnVlXG4gICAgfVtdXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgVHVydm9BcHBvaW50bWVudCA9IHtcbiAgZGF0ZTogc3RyaW5nXG4gIGZsZXg/OiBudW1iZXIgLy8gQXBwYXJlbnRseSByZXF1aXJlZCBidXQgZG9lc24ndCBtYWtlIHNlbnNlIEkgdGhpbmssIGFuZCB0aGUgc2hpcG1lbnQgY3JlYXRlcyB3aXRob3V0IHRoaXNcbiAgdGltZVpvbmU6IHN0cmluZ1xuICBoYXNUaW1lOiB0cnVlXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvU2hpcG1lbnQgPSB7XG4gIGlkOiBudW1iZXJcbiAgY3VzdG9tSWQ6IHN0cmluZ1xuICBsdGxTaGlwbWVudDogYm9vbGVhblxuICBzdGFydERhdGU6IFR1cnZvRGF0ZVdpdGhUaW1lem9uZVxuICBlbmREYXRlOiBUdXJ2b0RhdGVXaXRoVGltZXpvbmUgJiB7IGZsZXg6IG51bWJlciB9XG4gIHN0YXR1czogVHVydm9TaGlwbWVudFN0YXR1c1xuICBzZXJ2aWNlcz86IFR1cnZvU2hpcG1lbnRTZXJ2aWNlW11cbiAgZXF1aXBtZW50OiBUdXJ2b0VxdWlwbWVudFxuICBmbGV4QXR0cmlidXRlcz86IFR1cnZvRmxleEF0dHJpYnV0ZVtdXG4gIGxhbmU6IFR1cnZvTGFuZVxuICBnbG9iYWxSb3V0ZTogVHVydm9HbG9iYWxSb3V0ZVxuICBjdXN0b21lck9yZGVyOiBUdXJ2b0N1c3RvbWVyT3JkZXJbXVxuICBjYXJyaWVyT3JkZXI6IFR1cnZvQ2Fycmllck9yZGVyW11cbn1cblxuZXhwb3J0IHR5cGUgVHVydm9TaGlwbWVudFVwZGF0ZSA9IHtcbiAgaWQ6IG51bWJlclxuICBjdXN0b21JZDogc3RyaW5nXG4gIGdsb2JhbFJvdXRlOiBUdXJ2b0dsb2JhbFJvdXRlXG4gIGN1c3RvbWVyT3JkZXI6IFR1cnZvQ3VzdG9tZXJPcmRlcltdXG4gIHN0YXR1czogVHVydm9XZWJob29rU3RhdHVzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVydm9TaGlwbWVudFN0YXR1c0FwaVJlc3BvbnNlIHtcbiAgY3VzdG9tSWQ6IHN0cmluZ1xuICBzdGF0dXM6IHtcbiAgICBsb2NhdGlvbjoge1xuICAgICAgbG9uOiBudW1iZXJcbiAgICAgIGxhdDogbnVtYmVyXG4gICAgICBuZXh0QXJyaXZhbFRpbWU6IG51bWJlclxuICAgICAgbmV4dE1pbGVzOiBudW1iZXJcbiAgICAgIGNpdHk6IHN0cmluZ1xuICAgIH1cbiAgICBzdGF0dXNEYXRlOiB7XG4gICAgICBkYXRlOiBzdHJpbmdcbiAgICAgIHRpbWV6b25lOiBzdHJpbmdcbiAgICB9XG4gICAgcnVubmluZ0xhdGU/OiB7XG4gICAgICBuZXh0TG9jYXRpb25OYW1lOiBzdHJpbmdcbiAgICB9XG4gICAgbmV4dExvY2F0aW9uSWQ6IG51bWJlclxuICB9XG4gIGdsb2JhbFJvdXRlOiBUdXJ2b0dsb2JhbFJvdXRlXG4gIGxhbmU6IHtcbiAgICBzdGFydDogc3RyaW5nXG4gICAgZW5kOiBzdHJpbmdcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBUdXJ2b1NoaXBtZW50U3RhdHVzTG9jYXRpb24gPSB7XG4gIGNpdHk6IHN0cmluZ1xuICBzdGF0ZTogc3RyaW5nXG4gIGNvdW50cnlDb2RlOiBzdHJpbmdcbiAgY291bnRyeU5hbWU6IHN0cmluZ1xuICBsb246IG51bWJlclxuICBsYXQ6IG51bWJlclxuICBuZXh0RXRhPzogc3RyaW5nXG4gIG5leHRFdGFDYWxWYWw/OiBzdHJpbmdcbiAgbmV4dEFycml2YWxUaW1lPzogbnVtYmVyXG4gIG5leHRNaWxlcz86IG51bWJlclxuICBjdXJyZW50RGF0ZT86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBUdXJ2b1NoaXBtZW50U3RhdHVzUnVubmluZ0xhdGUgPSB7XG4gIGxhdGVUeXBlOiBzdHJpbmdcbiAgbGF0ZUR1cmF0aW9uOiBudW1iZXJcbiAgbmV4dExvY2F0aW9uVHlwZTogc3RyaW5nXG4gIGxhdGVEdXJhdGlvblN0cmluZzogc3RyaW5nXG4gIG5leHRMb2NhdGlvbkV0YTogc3RyaW5nXG4gIG5leHRMb2NhdGlvblRpbWVab25lOiBzdHJpbmdcbiAgbmV4dExvY2F0aW9uTmFtZTogc3RyaW5nXG4gIG5leHRMb2NhdGlvbkV0YURhdGU6IHN0cmluZ1xuICBpc0FwcHJvYWNoaW5nTGF0ZTogYm9vbGVhblxuICBzdGF0dXNLZXk6IHN0cmluZ1xuICBuZXh0TG9jYXRpb25BcHBvaW50bWVudERhdGU6IHN0cmluZ1xuICBuZXh0TG9jYXRpb25BcHBvaW50bWVudDogc3RyaW5nXG4gIGxhc3RVcGRhdGVkT246IHN0cmluZ1xuICBuZXh0TG9jYXRpb25JZDogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvU2hpcG1lbnRTdGF0dXNVcGRhdGUgPSB7XG4gIGlkOiBudW1iZXJcbiAgc3RhdHVzOiBUdXJ2b1dlYmhvb2tTdGF0dXNcbn1cblxuLy8gUmVzdWx0IHR5cGVzIGZvciBzcGVjaWZpYyBvcGVyYXRpb25zXG5leHBvcnQgdHlwZSBUdXJ2b0NyZWF0ZVNoaXBtZW50QXBpUmVzdWx0ID0geyBpZDogbnVtYmVyIH1cbmV4cG9ydCB0eXBlIFR1cnZvQ2FuY2VsU2hpcG1lbnRBcGlSZXN1bHQgPSB7IHJlc3BNc2c6IHN0cmluZyB9XG5leHBvcnQgdHlwZSBUdXJ2b1VwZGF0ZVNoaXBtZW50U3RhdHVzQXBpUmVzdWx0ID0geyBpZDogbnVtYmVyIH1cbmV4cG9ydCB0eXBlIFR1cnZvQXNzb2NpYXRlVGFnc0FwaVJlc3VsdCA9IHtcbiAgdGFnczogeyBpZDogc3RyaW5nOyB0YWdOYW1lOiBzdHJpbmc7IGNvbnRleHRUeXBlOiBzdHJpbmc7IGNvbnRleHRJZDogbnVtYmVyIH1bXVxufVxuIl19
@@ -0,0 +1,65 @@
1
+ import { TurvoShipmentStatusLocation } from './shipment';
2
+ /**
3
+ * Options for fetching shipment tracking data
4
+ */
5
+ export interface GetTrackingOptions {
6
+ /**
7
+ * Include GPS ping history in response.
8
+ * Requires internal API call - may be slower.
9
+ * Default: true
10
+ */
11
+ includeGps?: boolean;
12
+ /**
13
+ * Override the default secret path (/turvo/api).
14
+ * Useful for testing or different environments.
15
+ */
16
+ secretPath?: string;
17
+ }
18
+ /**
19
+ * GPS location update from shipment tracking
20
+ */
21
+ export interface LocationUpdate {
22
+ latitude: number;
23
+ longitude: number;
24
+ timestamp: string;
25
+ }
26
+ /**
27
+ * Individual stop in a shipment route
28
+ */
29
+ export interface Stop {
30
+ sequence: number;
31
+ stopType: string;
32
+ isCompleted: boolean;
33
+ facilityCode: string | null;
34
+ address: string | null;
35
+ city: string | null;
36
+ state: string | null;
37
+ appointmentTimeUtc: string | null;
38
+ actualArrivalUtc: string | null;
39
+ actualDepartureUtc: string | null;
40
+ }
41
+ /**
42
+ * Complete shipment tracking information combining public and internal API data
43
+ */
44
+ export interface ShipmentTracking {
45
+ shipmentId: string;
46
+ loadReferenceNumber: string;
47
+ status: string;
48
+ lateBy: string | null;
49
+ isLate: boolean;
50
+ currentLocation: TurvoShipmentStatusLocation | null;
51
+ hasGpsTracking: boolean;
52
+ completedStops: number;
53
+ totalStops: number;
54
+ stops: Stop[];
55
+ etaUtc: string | null;
56
+ etaTimezone: string | null;
57
+ milesRemaining: number | null;
58
+ totalMiles: number | null;
59
+ locationUpdates: LocationUpdate[] | null;
60
+ pingCount: number | null;
61
+ lastPingAt: string | null;
62
+ laneType: string | null;
63
+ managementType: string | null;
64
+ carrier: string | null;
65
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvdHJhY2tpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1cnZvU2hpcG1lbnRTdGF0dXNMb2NhdGlvbiB9IGZyb20gJy4vc2hpcG1lbnQnXG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZmV0Y2hpbmcgc2hpcG1lbnQgdHJhY2tpbmcgZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFRyYWNraW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIEdQUyBwaW5nIGhpc3RvcnkgaW4gcmVzcG9uc2UuXG4gICAqIFJlcXVpcmVzIGludGVybmFsIEFQSSBjYWxsIC0gbWF5IGJlIHNsb3dlci5cbiAgICogRGVmYXVsdDogdHJ1ZVxuICAgKi9cbiAgaW5jbHVkZUdwcz86IGJvb2xlYW5cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2VjcmV0IHBhdGggKC90dXJ2by9hcGkpLlxuICAgKiBVc2VmdWwgZm9yIHRlc3Rpbmcgb3IgZGlmZmVyZW50IGVudmlyb25tZW50cy5cbiAgICovXG4gIHNlY3JldFBhdGg/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBHUFMgbG9jYXRpb24gdXBkYXRlIGZyb20gc2hpcG1lbnQgdHJhY2tpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvblVwZGF0ZSB7XG4gIGxhdGl0dWRlOiBudW1iZXJcbiAgbG9uZ2l0dWRlOiBudW1iZXJcbiAgdGltZXN0YW1wOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBJbmRpdmlkdWFsIHN0b3AgaW4gYSBzaGlwbWVudCByb3V0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3Age1xuICBzZXF1ZW5jZTogbnVtYmVyXG4gIHN0b3BUeXBlOiBzdHJpbmcgLy8gXCJQaWNrdXBcIiwgXCJEZWxpdmVyeVwiXG4gIGlzQ29tcGxldGVkOiBib29sZWFuXG4gIGZhY2lsaXR5Q29kZTogc3RyaW5nIHwgbnVsbCAvLyBcIlBITCAwMVwiLCBcIkRGVyAwMVwiXG4gIGFkZHJlc3M6IHN0cmluZyB8IG51bGxcbiAgY2l0eTogc3RyaW5nIHwgbnVsbFxuICBzdGF0ZTogc3RyaW5nIHwgbnVsbFxuICBhcHBvaW50bWVudFRpbWVVdGM6IHN0cmluZyB8IG51bGxcbiAgYWN0dWFsQXJyaXZhbFV0Yzogc3RyaW5nIHwgbnVsbFxuICBhY3R1YWxEZXBhcnR1cmVVdGM6IHN0cmluZyB8IG51bGxcbn1cblxuLyoqXG4gKiBDb21wbGV0ZSBzaGlwbWVudCB0cmFja2luZyBpbmZvcm1hdGlvbiBjb21iaW5pbmcgcHVibGljIGFuZCBpbnRlcm5hbCBBUEkgZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50VHJhY2tpbmcge1xuICAvLyBJZGVudGlmaWVyc1xuICBzaGlwbWVudElkOiBzdHJpbmdcbiAgbG9hZFJlZmVyZW5jZU51bWJlcjogc3RyaW5nXG5cbiAgLy8gU3RhdHVzXG4gIHN0YXR1czogc3RyaW5nIC8vIFwiRW4gcm91dGVcIiwgXCJBdCBwaWNrdXBcIiwgXCJDb21wbGV0ZVwiXG4gIGxhdGVCeTogc3RyaW5nIHwgbnVsbCAvLyBcIjIgaG91cnNcIiwgXCIxNSBtaW5zXCIgKG51bGwgaWYgb24gdGltZSlcbiAgaXNMYXRlOiBib29sZWFuXG5cbiAgLy8gQ3VycmVudCBsb2NhdGlvbiAoaWYgdHJhY2tpbmcgYXZhaWxhYmxlKVxuICBjdXJyZW50TG9jYXRpb246IFR1cnZvU2hpcG1lbnRTdGF0dXNMb2NhdGlvbiB8IG51bGxcbiAgaGFzR3BzVHJhY2tpbmc6IGJvb2xlYW5cblxuICAvLyBQcm9ncmVzc1xuICBjb21wbGV0ZWRTdG9wczogbnVtYmVyXG4gIHRvdGFsU3RvcHM6IG51bWJlclxuXG4gIC8vIFN0b3BzIChvcmRlcmVkKVxuICBzdG9wczogU3RvcFtdXG5cbiAgLy8gRVRBICYgRGlzdGFuY2VcbiAgZXRhVXRjOiBzdHJpbmcgfCBudWxsXG4gIGV0YVRpbWV6b25lOiBzdHJpbmcgfCBudWxsXG4gIG1pbGVzUmVtYWluaW5nOiBudW1iZXIgfCBudWxsXG4gIHRvdGFsTWlsZXM6IG51bWJlciB8IG51bGxcblxuICAvLyBHUFMgUGluZ3MgKG9ubHkgcG9wdWxhdGVkIGlmIGluY2x1ZGVHcHM6IHRydWUgYW5kIGhhc0dwc1RyYWNraW5nKVxuICBsb2NhdGlvblVwZGF0ZXM6IExvY2F0aW9uVXBkYXRlW10gfCBudWxsXG4gIHBpbmdDb3VudDogbnVtYmVyIHwgbnVsbFxuICBsYXN0UGluZ0F0OiBzdHJpbmcgfCBudWxsXG5cbiAgLy8gU2hpcG1lbnQgQXR0cmlidXRlc1xuICBsYW5lVHlwZTogc3RyaW5nIHwgbnVsbCAvLyBcIk1pZGRsZSBNaWxlXCIsIFwiRmlyc3QgTWlsZVwiLCBcIlJldHVyblwiXG4gIG1hbmFnZW1lbnRUeXBlOiBzdHJpbmcgfCBudWxsIC8vIFwiVmVobyBNYW5hZ2VkXCIsIFwiQ2xpZW50IE1hbmFnZWRcIlxuICBjYXJyaWVyOiBzdHJpbmcgfCBudWxsXG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { TurvoClient } from '../client/turvoClient';
2
+ import { LocationUpdate } from '../types/tracking';
3
+ /**
4
+ * TurvoInternalApi provides access to undocumented Turvo internal APIs.
5
+ * ⚠️ WARNING: These APIs are not officially supported and may break without notice.
6
+ *
7
+ * Current status: STUB - All methods return null. Implementation pending.
8
+ */
9
+ export declare class TurvoInternalApi {
10
+ private client;
11
+ constructor(client: TurvoClient);
12
+ /**
13
+ * GET /api/locationUpdates/
14
+ * Returns GPS ping history for a shipment
15
+ * ⚠️ Undocumented - may break
16
+ *
17
+ * @param _shipmentId - The shipment ID to fetch location updates for
18
+ * @returns Array of location updates, or null if not available
19
+ *
20
+ * TODO: Implement when internal API is ready
21
+ */
22
+ getLocationUpdates(shipmentId: string): Promise<LocationUpdate[] | null>;
23
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * TurvoInternalApi provides access to undocumented Turvo internal APIs.
3
+ * ⚠️ WARNING: These APIs are not officially supported and may break without notice.
4
+ *
5
+ * Current status: STUB - All methods return null. Implementation pending.
6
+ */
7
+ export class TurvoInternalApi {
8
+ client;
9
+ constructor(client) {
10
+ this.client = client;
11
+ }
12
+ /**
13
+ * GET /api/locationUpdates/
14
+ * Returns GPS ping history for a shipment
15
+ * ⚠️ Undocumented - may break
16
+ *
17
+ * @param _shipmentId - The shipment ID to fetch location updates for
18
+ * @returns Array of location updates, or null if not available
19
+ *
20
+ * TODO: Implement when internal API is ready
21
+ */
22
+ async getLocationUpdates(shipmentId) {
23
+ // Stub implementation - will use this.client and shipmentId when ready
24
+ void this.client;
25
+ void shipmentId;
26
+ // TODO: Implement internal API call
27
+ // const httpClient = await this.client.getAuthenticatedClient()
28
+ // return httpClient.sendRequest('/api/locationUpdates/...', ...)
29
+ return null;
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVydm9JbnRlcm5hbEFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvdHVydm9JbnRlcm5hbEFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDUDtJQUFwQixZQUFvQixNQUFtQjtRQUFuQixXQUFNLEdBQU4sTUFBTSxDQUFhO0lBQUcsQ0FBQztJQUUzQzs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsVUFBa0I7UUFDekMsdUVBQXVFO1FBQ3ZFLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUNoQixLQUFLLFVBQVUsQ0FBQTtRQUNmLG9DQUFvQztRQUNwQyxnRUFBZ0U7UUFDaEUsaUVBQWlFO1FBQ2pFLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHVydm9DbGllbnQgfSBmcm9tICcuLi9jbGllbnQvdHVydm9DbGllbnQnXG5pbXBvcnQgeyBMb2NhdGlvblVwZGF0ZSB9IGZyb20gJy4uL3R5cGVzL3RyYWNraW5nJ1xuXG4vKipcbiAqIFR1cnZvSW50ZXJuYWxBcGkgcHJvdmlkZXMgYWNjZXNzIHRvIHVuZG9jdW1lbnRlZCBUdXJ2byBpbnRlcm5hbCBBUElzLlxuICog4pqg77iPIFdBUk5JTkc6IFRoZXNlIEFQSXMgYXJlIG5vdCBvZmZpY2lhbGx5IHN1cHBvcnRlZCBhbmQgbWF5IGJyZWFrIHdpdGhvdXQgbm90aWNlLlxuICpcbiAqIEN1cnJlbnQgc3RhdHVzOiBTVFVCIC0gQWxsIG1ldGhvZHMgcmV0dXJuIG51bGwuIEltcGxlbWVudGF0aW9uIHBlbmRpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBUdXJ2b0ludGVybmFsQXBpIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGllbnQ6IFR1cnZvQ2xpZW50KSB7fVxuXG4gIC8qKlxuICAgKiBHRVQgL2FwaS9sb2NhdGlvblVwZGF0ZXMvXG4gICAqIFJldHVybnMgR1BTIHBpbmcgaGlzdG9yeSBmb3IgYSBzaGlwbWVudFxuICAgKiDimqDvuI8gVW5kb2N1bWVudGVkIC0gbWF5IGJyZWFrXG4gICAqXG4gICAqIEBwYXJhbSBfc2hpcG1lbnRJZCAtIFRoZSBzaGlwbWVudCBJRCB0byBmZXRjaCBsb2NhdGlvbiB1cGRhdGVzIGZvclxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBsb2NhdGlvbiB1cGRhdGVzLCBvciBudWxsIGlmIG5vdCBhdmFpbGFibGVcbiAgICpcbiAgICogVE9ETzogSW1wbGVtZW50IHdoZW4gaW50ZXJuYWwgQVBJIGlzIHJlYWR5XG4gICAqL1xuICBhc3luYyBnZXRMb2NhdGlvblVwZGF0ZXMoc2hpcG1lbnRJZDogc3RyaW5nKTogUHJvbWlzZTxMb2NhdGlvblVwZGF0ZVtdIHwgbnVsbD4ge1xuICAgIC8vIFN0dWIgaW1wbGVtZW50YXRpb24gLSB3aWxsIHVzZSB0aGlzLmNsaWVudCBhbmQgc2hpcG1lbnRJZCB3aGVuIHJlYWR5XG4gICAgdm9pZCB0aGlzLmNsaWVudFxuICAgIHZvaWQgc2hpcG1lbnRJZFxuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbnRlcm5hbCBBUEkgY2FsbFxuICAgIC8vIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcbiAgICAvLyByZXR1cm4gaHR0cENsaWVudC5zZW5kUmVxdWVzdCgnL2FwaS9sb2NhdGlvblVwZGF0ZXMvLi4uJywgLi4uKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,99 @@
1
+ import { TurvoClient } from '../client/turvoClient';
2
+ import { TurvoApiResult, TurvoFilterShipmentsResultItem, TurvoPagedResult } from '../types/common';
3
+ import { TurvoAssociateTagsApiResult, TurvoCancelShipmentApiResult, TurvoCreateShipmentApiResult, TurvoShipment, TurvoShipmentStatus, TurvoUpdateShipmentStatusApiResult } from '../types/shipment';
4
+ /**
5
+ * Parameters for uploading a shipment to Turvo
6
+ */
7
+ export interface UploadShipmentParams {
8
+ /** The formatted shipment to upload */
9
+ shipment: TurvoShipment;
10
+ /** The Load ID, solely for logging purposes */
11
+ vehoLoadId: string;
12
+ }
13
+ /**
14
+ * Parameters for associating tags to a shipment
15
+ */
16
+ export interface AssociateTagsParams {
17
+ /** The shipment ID to associate tags with */
18
+ turvoShipmentId: number;
19
+ /** List of tag names to assign */
20
+ tags: string[];
21
+ }
22
+ /**
23
+ * Parameters for cancelling a shipment
24
+ */
25
+ export interface CancelShipmentParams {
26
+ /** The Turvo system Shipment ID to cancel */
27
+ turvoShipmentId: number;
28
+ }
29
+ /**
30
+ * Parameters for updating shipment status
31
+ */
32
+ export interface UpdateShipmentStatusParams {
33
+ /** The Turvo shipment ID */
34
+ turvoShipmentId: number;
35
+ /** The Turvo stop ID */
36
+ turvoStopId: number;
37
+ /** The status code to set */
38
+ turvoStatusCode: TurvoShipmentStatus;
39
+ /** The status date in ISO format */
40
+ statusDate: string;
41
+ /** The timezone for the status date */
42
+ statusTimezone: string;
43
+ }
44
+ /**
45
+ * Parameters for retrieving a shipment
46
+ */
47
+ export interface GetShipmentParams {
48
+ /** The shipment ID to retrieve */
49
+ shipmentId: number;
50
+ }
51
+ /**
52
+ * Parameters for filtering shipments
53
+ */
54
+ export interface FilterShipmentsParams {
55
+ /** Turvo location ID to filter by */
56
+ turvoLocationId: number;
57
+ /** Pickup date start filter (ISO format) */
58
+ pickupDateStart: string;
59
+ /** Optional pagination start offset */
60
+ start?: number;
61
+ }
62
+ /**
63
+ * TurvoPublicApi provides access to documented Turvo API endpoints.
64
+ * All shipment management operations (create, update, cancel, query) go through this class.
65
+ */
66
+ export declare class TurvoPublicApi {
67
+ private client;
68
+ constructor(client: TurvoClient);
69
+ /**
70
+ * GET /v1/shipments/{id}
71
+ * Returns shipment details, stops, status
72
+ */
73
+ getShipment(params: GetShipmentParams): Promise<TurvoApiResult<TurvoShipment>>;
74
+ /**
75
+ * POST /v1/shipments
76
+ * Upload properly formatted shipment to Turvo
77
+ */
78
+ uploadShipment(params: UploadShipmentParams): Promise<TurvoApiResult<TurvoCreateShipmentApiResult>>;
79
+ /**
80
+ * PUT /v1/tags/attach/shipment/{id}
81
+ * Associate a list of tags with a shipment by ID
82
+ */
83
+ associateTagsToShipment(params: AssociateTagsParams): Promise<TurvoApiResult<TurvoAssociateTagsApiResult>>;
84
+ /**
85
+ * PUT /v1/shipments/status/{id}
86
+ * Set shipment status to Cancelled in Turvo
87
+ */
88
+ cancelShipment(params: CancelShipmentParams): Promise<TurvoApiResult<TurvoCancelShipmentApiResult>>;
89
+ /**
90
+ * PUT /v1/shipments/status/{id}
91
+ * Update shipment status at a specific stop
92
+ */
93
+ updateShipmentStatus(params: UpdateShipmentStatusParams): Promise<TurvoApiResult<TurvoUpdateShipmentStatusApiResult>>;
94
+ /**
95
+ * GET /v1/shipments/list
96
+ * Query shipments from Turvo with pagination support
97
+ */
98
+ filterShipments(params: FilterShipmentsParams): Promise<TurvoApiResult<TurvoPagedResult<'shipments', TurvoFilterShipmentsResultItem>>>;
99
+ }