@veho/turvo-integration-sdk 0.1.0-beta.0 → 0.1.0-beta.1

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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,22 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [0.1.0-beta.1] - 2026-01-29
6
+
7
+ ### Added
8
+ - Initial SDK implementation for Turvo API integration
9
+ - TurvoClient for managing API interactions
10
+ - Turvo Public API client with shipment operations
11
+ - Turvo Internal API client for additional functionality
12
+ - Facility mapping functionality with DynamoDB integration
13
+ - Shipment tracking service with detailed tracking information
14
+ - Comprehensive TypeScript types for Turvo entities
15
+ - Support for both CommonJS and ESM modules
16
+
17
+ ### Features
18
+ - Create, update, and query shipments
19
+ - Retrieve shipment tracking details
20
+ - Manage facility code mappings
21
+ - Handle authentication and rate limiting
22
+ - Error handling with custom error types
@@ -32,10 +32,10 @@ export interface CancelShipmentParams {
32
32
  export interface UpdateShipmentStatusParams {
33
33
  /** The Turvo shipment ID */
34
34
  turvoShipmentId: number;
35
- /** The Turvo stop ID */
36
- turvoStopId: number;
35
+ /** The Turvo stop ID (optional, depending on type of status update) */
36
+ turvoStopId?: number;
37
37
  /** The status code to set */
38
- turvoStatusCode: TurvoShipmentStatus;
38
+ turvoStatusCode: TurvoShipmentStatus['code'];
39
39
  /** The status date in ISO format */
40
40
  statusDate: string;
41
41
  /** The timezone for the status date */
@@ -73,7 +73,7 @@ class TurvoPublicApi {
73
73
  id: turvoShipmentId,
74
74
  status: {
75
75
  globalShipLocationId: turvoStopId,
76
- code: turvoStatusCode.code,
76
+ code: turvoStatusCode,
77
77
  timezone: statusTimezone,
78
78
  statusDate: {
79
79
  date: statusDate,
@@ -100,4 +100,4 @@ class TurvoPublicApi {
100
100
  }
101
101
  }
102
102
  exports.TurvoPublicApi = TurvoPublicApi;
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVydm9QdWJsaWNBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3R1cnZvUHVibGljQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDRDQU13QjtBQTBFeEI7OztHQUdHO0FBQ0gsTUFBYSxjQUFjO0lBQ0w7SUFBcEIsWUFBb0IsTUFBbUI7UUFBbkIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtJQUFHLENBQUM7SUFFM0M7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUF5QjtRQUN6QyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzdCLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBRTdELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBZ0IsY0FBYyxVQUFVLEVBQUUsRUFBRSx1QkFBYyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNsRyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUE0QjtRQUMvQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzNCLDJFQUEyRTtRQUMzRSxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtRQUU3RCxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQStCLFlBQVksRUFBRSx1QkFBYyxDQUFDLElBQUksRUFBRTtZQUM3RixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBMkI7UUFDdkQsTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDeEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUMzQix5QkFBeUIsZUFBZSxFQUFFLEVBQzFDLHVCQUFjLENBQUMsR0FBRyxFQUNsQjtZQUNFLElBQUksRUFBRTtnQkFDSixRQUFRLEVBQUUsSUFBSTthQUNmO1NBQ0YsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBNEI7UUFDL0MsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtRQUU3RCxNQUFNLElBQUksR0FBRztZQUNYLEVBQUUsRUFBRSxlQUFlO1lBQ25CLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQXdCO2FBQy9EO1NBQ0YsQ0FBQTtRQUVELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FDM0IscUJBQXFCLGVBQWUsRUFBRSxFQUN0Qyx1QkFBYyxDQUFDLEdBQUcsRUFDbEI7WUFDRSxJQUFJO1NBQ0wsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FDeEIsTUFBa0M7UUFFbEMsTUFBTSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDNUYsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsTUFBTSxJQUFJLEdBQUc7WUFDWCxFQUFFLEVBQUUsZUFBZTtZQUNuQixNQUFNLEVBQUU7Z0JBQ04sb0JBQW9CLEVBQUUsV0FBVztnQkFDakMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO2dCQUMxQixRQUFRLEVBQUUsY0FBYztnQkFDeEIsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxVQUFVO29CQUNoQixRQUFRLEVBQUUsY0FBYztpQkFDekI7YUFDRjtTQUNGLENBQUE7UUFFRCxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQzNCLHFCQUFxQixlQUFlLEVBQUUsRUFDdEMsdUJBQWMsQ0FBQyxHQUFHLEVBQ2xCLEVBQUUsSUFBSSxFQUFFLENBQ1QsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUNuQixNQUE2QjtRQUU3QixNQUFNLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzlELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBRTdELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FDM0IsaUJBQWlCLEVBQ2pCLHVCQUFjLENBQUMsR0FBRyxFQUNsQjtZQUNFLEtBQUssRUFBRTtnQkFDTCxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFO2dCQUM1QyxpQkFBaUIsRUFBRSxlQUFlO2dCQUNsQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRTthQUN4QjtTQUNGLENBQ0YsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQTNIRCx3Q0EySEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUdXJ2b0NsaWVudCB9IGZyb20gJy4uL2NsaWVudC90dXJ2b0NsaWVudCdcbmltcG9ydCB7XG4gIFR1cnZvQXBpTWV0aG9kLFxuICBUdXJ2b0FwaVJlc3VsdCxcbiAgVHVydm9GaWx0ZXJTaGlwbWVudHNSZXN1bHRJdGVtLFxuICBUdXJ2b0xvb2t1cCxcbiAgVHVydm9QYWdlZFJlc3VsdCxcbn0gZnJvbSAnLi4vdHlwZXMvY29tbW9uJ1xuaW1wb3J0IHtcbiAgVHVydm9Bc3NvY2lhdGVUYWdzQXBpUmVzdWx0LFxuICBUdXJ2b0NhbmNlbFNoaXBtZW50QXBpUmVzdWx0LFxuICBUdXJ2b0NyZWF0ZVNoaXBtZW50QXBpUmVzdWx0LFxuICBUdXJ2b1NoaXBtZW50LFxuICBUdXJ2b1NoaXBtZW50U3RhdHVzLFxuICBUdXJ2b1VwZGF0ZVNoaXBtZW50U3RhdHVzQXBpUmVzdWx0LFxufSBmcm9tICcuLi90eXBlcy9zaGlwbWVudCdcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB1cGxvYWRpbmcgYSBzaGlwbWVudCB0byBUdXJ2b1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFNoaXBtZW50UGFyYW1zIHtcbiAgLyoqIFRoZSBmb3JtYXR0ZWQgc2hpcG1lbnQgdG8gdXBsb2FkICovXG4gIHNoaXBtZW50OiBUdXJ2b1NoaXBtZW50XG4gIC8qKiBUaGUgTG9hZCBJRCwgc29sZWx5IGZvciBsb2dnaW5nIHB1cnBvc2VzICovXG4gIHZlaG9Mb2FkSWQ6IHN0cmluZ1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGFzc29jaWF0aW5nIHRhZ3MgdG8gYSBzaGlwbWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc29jaWF0ZVRhZ3NQYXJhbXMge1xuICAvKiogVGhlIHNoaXBtZW50IElEIHRvIGFzc29jaWF0ZSB0YWdzIHdpdGggKi9cbiAgdHVydm9TaGlwbWVudElkOiBudW1iZXJcbiAgLyoqIExpc3Qgb2YgdGFnIG5hbWVzIHRvIGFzc2lnbiAqL1xuICB0YWdzOiBzdHJpbmdbXVxufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNhbmNlbGxpbmcgYSBzaGlwbWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbmNlbFNoaXBtZW50UGFyYW1zIHtcbiAgLyoqIFRoZSBUdXJ2byBzeXN0ZW0gU2hpcG1lbnQgSUQgdG8gY2FuY2VsICovXG4gIHR1cnZvU2hpcG1lbnRJZDogbnVtYmVyXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdXBkYXRpbmcgc2hpcG1lbnQgc3RhdHVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlU2hpcG1lbnRTdGF0dXNQYXJhbXMge1xuICAvKiogVGhlIFR1cnZvIHNoaXBtZW50IElEICovXG4gIHR1cnZvU2hpcG1lbnRJZDogbnVtYmVyXG4gIC8qKiBUaGUgVHVydm8gc3RvcCBJRCAqL1xuICB0dXJ2b1N0b3BJZDogbnVtYmVyXG4gIC8qKiBUaGUgc3RhdHVzIGNvZGUgdG8gc2V0ICovXG4gIHR1cnZvU3RhdHVzQ29kZTogVHVydm9TaGlwbWVudFN0YXR1c1xuICAvKiogVGhlIHN0YXR1cyBkYXRlIGluIElTTyBmb3JtYXQgKi9cbiAgc3RhdHVzRGF0ZTogc3RyaW5nXG4gIC8qKiBUaGUgdGltZXpvbmUgZm9yIHRoZSBzdGF0dXMgZGF0ZSAqL1xuICBzdGF0dXNUaW1lem9uZTogc3RyaW5nXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgcmV0cmlldmluZyBhIHNoaXBtZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0U2hpcG1lbnRQYXJhbXMge1xuICAvKiogVGhlIHNoaXBtZW50IElEIHRvIHJldHJpZXZlICovXG4gIHNoaXBtZW50SWQ6IG51bWJlclxufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyBzaGlwbWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJTaGlwbWVudHNQYXJhbXMge1xuICAvKiogVHVydm8gbG9jYXRpb24gSUQgdG8gZmlsdGVyIGJ5ICovXG4gIHR1cnZvTG9jYXRpb25JZDogbnVtYmVyXG4gIC8qKiBQaWNrdXAgZGF0ZSBzdGFydCBmaWx0ZXIgKElTTyBmb3JtYXQpICovXG4gIHBpY2t1cERhdGVTdGFydDogc3RyaW5nXG4gIC8qKiBPcHRpb25hbCBwYWdpbmF0aW9uIHN0YXJ0IG9mZnNldCAqL1xuICBzdGFydD86IG51bWJlclxufVxuXG4vKipcbiAqIFR1cnZvUHVibGljQXBpIHByb3ZpZGVzIGFjY2VzcyB0byBkb2N1bWVudGVkIFR1cnZvIEFQSSBlbmRwb2ludHMuXG4gKiBBbGwgc2hpcG1lbnQgbWFuYWdlbWVudCBvcGVyYXRpb25zIChjcmVhdGUsIHVwZGF0ZSwgY2FuY2VsLCBxdWVyeSkgZ28gdGhyb3VnaCB0aGlzIGNsYXNzLlxuICovXG5leHBvcnQgY2xhc3MgVHVydm9QdWJsaWNBcGkge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudDogVHVydm9DbGllbnQpIHt9XG5cbiAgLyoqXG4gICAqIEdFVCAvdjEvc2hpcG1lbnRzL3tpZH1cbiAgICogUmV0dXJucyBzaGlwbWVudCBkZXRhaWxzLCBzdG9wcywgc3RhdHVzXG4gICAqL1xuICBhc3luYyBnZXRTaGlwbWVudChwYXJhbXM6IEdldFNoaXBtZW50UGFyYW1zKTogUHJvbWlzZTxUdXJ2b0FwaVJlc3VsdDxUdXJ2b1NoaXBtZW50Pj4ge1xuICAgIGNvbnN0IHsgc2hpcG1lbnRJZCB9ID0gcGFyYW1zXG4gICAgY29uc3QgaHR0cENsaWVudCA9IGF3YWl0IHRoaXMuY2xpZW50LmdldEF1dGhlbnRpY2F0ZWRDbGllbnQoKVxuXG4gICAgcmV0dXJuIGh0dHBDbGllbnQuc2VuZFJlcXVlc3Q8VHVydm9TaGlwbWVudD4oYC9zaGlwbWVudHMvJHtzaGlwbWVudElkfWAsIFR1cnZvQXBpTWV0aG9kLkdFVCwge30pXG4gIH1cblxuICAvKipcbiAgICogUE9TVCAvdjEvc2hpcG1lbnRzXG4gICAqIFVwbG9hZCBwcm9wZXJseSBmb3JtYXR0ZWQgc2hpcG1lbnQgdG8gVHVydm9cbiAgICovXG4gIGFzeW5jIHVwbG9hZFNoaXBtZW50KHBhcmFtczogVXBsb2FkU2hpcG1lbnRQYXJhbXMpOiBQcm9taXNlPFR1cnZvQXBpUmVzdWx0PFR1cnZvQ3JlYXRlU2hpcG1lbnRBcGlSZXN1bHQ+PiB7XG4gICAgY29uc3QgeyBzaGlwbWVudCB9ID0gcGFyYW1zXG4gICAgLy8gTm90ZTogdmVob0xvYWRJZCBpcyBrZXB0IGluIHRoZSBwYXJhbXMgZm9yIGxvZ2dpbmcgcHVycG9zZXMgYnkgY29uc3VtZXJzXG4gICAgY29uc3QgaHR0cENsaWVudCA9IGF3YWl0IHRoaXMuY2xpZW50LmdldEF1dGhlbnRpY2F0ZWRDbGllbnQoKVxuXG4gICAgcmV0dXJuIGh0dHBDbGllbnQuc2VuZFJlcXVlc3Q8VHVydm9DcmVhdGVTaGlwbWVudEFwaVJlc3VsdD4oJy9zaGlwbWVudHMnLCBUdXJ2b0FwaU1ldGhvZC5QT1NULCB7XG4gICAgICBib2R5OiBzaGlwbWVudCxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBVVCAvdjEvdGFncy9hdHRhY2gvc2hpcG1lbnQve2lkfVxuICAgKiBBc3NvY2lhdGUgYSBsaXN0IG9mIHRhZ3Mgd2l0aCBhIHNoaXBtZW50IGJ5IElEXG4gICAqL1xuICBhc3luYyBhc3NvY2lhdGVUYWdzVG9TaGlwbWVudChwYXJhbXM6IEFzc29jaWF0ZVRhZ3NQYXJhbXMpOiBQcm9taXNlPFR1cnZvQXBpUmVzdWx0PFR1cnZvQXNzb2NpYXRlVGFnc0FwaVJlc3VsdD4+IHtcbiAgICBjb25zdCB7IHR1cnZvU2hpcG1lbnRJZCwgdGFncyB9ID0gcGFyYW1zXG4gICAgY29uc3QgaHR0cENsaWVudCA9IGF3YWl0IHRoaXMuY2xpZW50LmdldEF1dGhlbnRpY2F0ZWRDbGllbnQoKVxuXG4gICAgcmV0dXJuIGh0dHBDbGllbnQuc2VuZFJlcXVlc3Q8VHVydm9Bc3NvY2lhdGVUYWdzQXBpUmVzdWx0PihcbiAgICAgIGAvdGFncy9hdHRhY2gvc2hpcG1lbnQvJHt0dXJ2b1NoaXBtZW50SWR9YCxcbiAgICAgIFR1cnZvQXBpTWV0aG9kLlBVVCxcbiAgICAgIHtcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIHRhZ05hbWVzOiB0YWdzLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBQVVQgL3YxL3NoaXBtZW50cy9zdGF0dXMve2lkfVxuICAgKiBTZXQgc2hpcG1lbnQgc3RhdHVzIHRvIENhbmNlbGxlZCBpbiBUdXJ2b1xuICAgKi9cbiAgYXN5bmMgY2FuY2VsU2hpcG1lbnQocGFyYW1zOiBDYW5jZWxTaGlwbWVudFBhcmFtcyk6IFByb21pc2U8VHVydm9BcGlSZXN1bHQ8VHVydm9DYW5jZWxTaGlwbWVudEFwaVJlc3VsdD4+IHtcbiAgICBjb25zdCB7IHR1cnZvU2hpcG1lbnRJZCB9ID0gcGFyYW1zXG4gICAgY29uc3QgaHR0cENsaWVudCA9IGF3YWl0IHRoaXMuY2xpZW50LmdldEF1dGhlbnRpY2F0ZWRDbGllbnQoKVxuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGlkOiB0dXJ2b1NoaXBtZW50SWQsXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgY29kZTogeyBrZXk6ICcyMTEzJywgdmFsdWU6ICdDYW5jZWxlZCcgfSBzYXRpc2ZpZXMgVHVydm9Mb29rdXAsXG4gICAgICB9LFxuICAgIH1cblxuICAgIHJldHVybiBodHRwQ2xpZW50LnNlbmRSZXF1ZXN0PFR1cnZvQ2FuY2VsU2hpcG1lbnRBcGlSZXN1bHQ+KFxuICAgICAgYC9zaGlwbWVudHMvc3RhdHVzLyR7dHVydm9TaGlwbWVudElkfWAsXG4gICAgICBUdXJ2b0FwaU1ldGhvZC5QVVQsXG4gICAgICB7XG4gICAgICAgIGJvZHksXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFBVVCAvdjEvc2hpcG1lbnRzL3N0YXR1cy97aWR9XG4gICAqIFVwZGF0ZSBzaGlwbWVudCBzdGF0dXMgYXQgYSBzcGVjaWZpYyBzdG9wXG4gICAqL1xuICBhc3luYyB1cGRhdGVTaGlwbWVudFN0YXR1cyhcbiAgICBwYXJhbXM6IFVwZGF0ZVNoaXBtZW50U3RhdHVzUGFyYW1zXG4gICk6IFByb21pc2U8VHVydm9BcGlSZXN1bHQ8VHVydm9VcGRhdGVTaGlwbWVudFN0YXR1c0FwaVJlc3VsdD4+IHtcbiAgICBjb25zdCB7IHR1cnZvU2hpcG1lbnRJZCwgdHVydm9TdG9wSWQsIHR1cnZvU3RhdHVzQ29kZSwgc3RhdHVzRGF0ZSwgc3RhdHVzVGltZXpvbmUgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBpZDogdHVydm9TaGlwbWVudElkLFxuICAgICAgc3RhdHVzOiB7XG4gICAgICAgIGdsb2JhbFNoaXBMb2NhdGlvbklkOiB0dXJ2b1N0b3BJZCxcbiAgICAgICAgY29kZTogdHVydm9TdGF0dXNDb2RlLmNvZGUsXG4gICAgICAgIHRpbWV6b25lOiBzdGF0dXNUaW1lem9uZSxcbiAgICAgICAgc3RhdHVzRGF0ZToge1xuICAgICAgICAgIGRhdGU6IHN0YXR1c0RhdGUsXG4gICAgICAgICAgdGltZXpvbmU6IHN0YXR1c1RpbWV6b25lLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gaHR0cENsaWVudC5zZW5kUmVxdWVzdDxUdXJ2b1VwZGF0ZVNoaXBtZW50U3RhdHVzQXBpUmVzdWx0PihcbiAgICAgIGAvc2hpcG1lbnRzL3N0YXR1cy8ke3R1cnZvU2hpcG1lbnRJZH1gLFxuICAgICAgVHVydm9BcGlNZXRob2QuUFVULFxuICAgICAgeyBib2R5IH1cbiAgICApXG4gIH1cblxuICAvKipcbiAgICogR0VUIC92MS9zaGlwbWVudHMvbGlzdFxuICAgKiBRdWVyeSBzaGlwbWVudHMgZnJvbSBUdXJ2byB3aXRoIHBhZ2luYXRpb24gc3VwcG9ydFxuICAgKi9cbiAgYXN5bmMgZmlsdGVyU2hpcG1lbnRzKFxuICAgIHBhcmFtczogRmlsdGVyU2hpcG1lbnRzUGFyYW1zXG4gICk6IFByb21pc2U8VHVydm9BcGlSZXN1bHQ8VHVydm9QYWdlZFJlc3VsdDwnc2hpcG1lbnRzJywgVHVydm9GaWx0ZXJTaGlwbWVudHNSZXN1bHRJdGVtPj4+IHtcbiAgICBjb25zdCB7IHR1cnZvTG9jYXRpb25JZCwgcGlja3VwRGF0ZVN0YXJ0LCBzdGFydCA9IDAgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIHJldHVybiBodHRwQ2xpZW50LnNlbmRSZXF1ZXN0PFR1cnZvUGFnZWRSZXN1bHQ8J3NoaXBtZW50cycsIFR1cnZvRmlsdGVyU2hpcG1lbnRzUmVzdWx0SXRlbT4+KFxuICAgICAgJy9zaGlwbWVudHMvbGlzdCcsXG4gICAgICBUdXJ2b0FwaU1ldGhvZC5HRVQsXG4gICAgICB7XG4gICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgJ2xvY2F0aW9uSWRbZXFdJzogdHVydm9Mb2NhdGlvbklkLnRvU3RyaW5nKCksXG4gICAgICAgICAgJ3BpY2t1cERhdGVbZ3RlXSc6IHBpY2t1cERhdGVTdGFydCxcbiAgICAgICAgICBzdGFydDogc3RhcnQudG9TdHJpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICApXG4gIH1cbn1cbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVydm9QdWJsaWNBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3R1cnZvUHVibGljQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDRDQU13QjtBQTBFeEI7OztHQUdHO0FBQ0gsTUFBYSxjQUFjO0lBQ0w7SUFBcEIsWUFBb0IsTUFBbUI7UUFBbkIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtJQUFHLENBQUM7SUFFM0M7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUF5QjtRQUN6QyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzdCLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBRTdELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBZ0IsY0FBYyxVQUFVLEVBQUUsRUFBRSx1QkFBYyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNsRyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUE0QjtRQUMvQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzNCLDJFQUEyRTtRQUMzRSxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtRQUU3RCxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQStCLFlBQVksRUFBRSx1QkFBYyxDQUFDLElBQUksRUFBRTtZQUM3RixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBMkI7UUFDdkQsTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDeEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUMzQix5QkFBeUIsZUFBZSxFQUFFLEVBQzFDLHVCQUFjLENBQUMsR0FBRyxFQUNsQjtZQUNFLElBQUksRUFBRTtnQkFDSixRQUFRLEVBQUUsSUFBSTthQUNmO1NBQ0YsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBNEI7UUFDL0MsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtRQUU3RCxNQUFNLElBQUksR0FBRztZQUNYLEVBQUUsRUFBRSxlQUFlO1lBQ25CLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQXdCO2FBQy9EO1NBQ0YsQ0FBQTtRQUVELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FDM0IscUJBQXFCLGVBQWUsRUFBRSxFQUN0Qyx1QkFBYyxDQUFDLEdBQUcsRUFDbEI7WUFDRSxJQUFJO1NBQ0wsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FDeEIsTUFBa0M7UUFFbEMsTUFBTSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDNUYsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsTUFBTSxJQUFJLEdBQUc7WUFDWCxFQUFFLEVBQUUsZUFBZTtZQUNuQixNQUFNLEVBQUU7Z0JBQ04sb0JBQW9CLEVBQUUsV0FBVztnQkFDakMsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLFFBQVEsRUFBRSxjQUFjO2dCQUN4QixVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFFBQVEsRUFBRSxjQUFjO2lCQUN6QjthQUNGO1NBQ0YsQ0FBQTtRQUVELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FDM0IscUJBQXFCLGVBQWUsRUFBRSxFQUN0Qyx1QkFBYyxDQUFDLEdBQUcsRUFDbEIsRUFBRSxJQUFJLEVBQUUsQ0FDVCxDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQ25CLE1BQTZCO1FBRTdCLE1BQU0sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDOUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUMzQixpQkFBaUIsRUFDakIsdUJBQWMsQ0FBQyxHQUFHLEVBQ2xCO1lBQ0UsS0FBSyxFQUFFO2dCQUNMLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUU7Z0JBQzVDLGlCQUFpQixFQUFFLGVBQWU7Z0JBQ2xDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO2FBQ3hCO1NBQ0YsQ0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBM0hELHdDQTJIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1cnZvQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50L3R1cnZvQ2xpZW50J1xuaW1wb3J0IHtcbiAgVHVydm9BcGlNZXRob2QsXG4gIFR1cnZvQXBpUmVzdWx0LFxuICBUdXJ2b0ZpbHRlclNoaXBtZW50c1Jlc3VsdEl0ZW0sXG4gIFR1cnZvTG9va3VwLFxuICBUdXJ2b1BhZ2VkUmVzdWx0LFxufSBmcm9tICcuLi90eXBlcy9jb21tb24nXG5pbXBvcnQge1xuICBUdXJ2b0Fzc29jaWF0ZVRhZ3NBcGlSZXN1bHQsXG4gIFR1cnZvQ2FuY2VsU2hpcG1lbnRBcGlSZXN1bHQsXG4gIFR1cnZvQ3JlYXRlU2hpcG1lbnRBcGlSZXN1bHQsXG4gIFR1cnZvU2hpcG1lbnQsXG4gIFR1cnZvU2hpcG1lbnRTdGF0dXMsXG4gIFR1cnZvVXBkYXRlU2hpcG1lbnRTdGF0dXNBcGlSZXN1bHQsXG59IGZyb20gJy4uL3R5cGVzL3NoaXBtZW50J1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHVwbG9hZGluZyBhIHNoaXBtZW50IHRvIFR1cnZvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkU2hpcG1lbnRQYXJhbXMge1xuICAvKiogVGhlIGZvcm1hdHRlZCBzaGlwbWVudCB0byB1cGxvYWQgKi9cbiAgc2hpcG1lbnQ6IFR1cnZvU2hpcG1lbnRcbiAgLyoqIFRoZSBMb2FkIElELCBzb2xlbHkgZm9yIGxvZ2dpbmcgcHVycG9zZXMgKi9cbiAgdmVob0xvYWRJZDogc3RyaW5nXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgYXNzb2NpYXRpbmcgdGFncyB0byBhIHNoaXBtZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzb2NpYXRlVGFnc1BhcmFtcyB7XG4gIC8qKiBUaGUgc2hpcG1lbnQgSUQgdG8gYXNzb2NpYXRlIHRhZ3Mgd2l0aCAqL1xuICB0dXJ2b1NoaXBtZW50SWQ6IG51bWJlclxuICAvKiogTGlzdCBvZiB0YWcgbmFtZXMgdG8gYXNzaWduICovXG4gIHRhZ3M6IHN0cmluZ1tdXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgY2FuY2VsbGluZyBhIHNoaXBtZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuY2VsU2hpcG1lbnRQYXJhbXMge1xuICAvKiogVGhlIFR1cnZvIHN5c3RlbSBTaGlwbWVudCBJRCB0byBjYW5jZWwgKi9cbiAgdHVydm9TaGlwbWVudElkOiBudW1iZXJcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB1cGRhdGluZyBzaGlwbWVudCBzdGF0dXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTaGlwbWVudFN0YXR1c1BhcmFtcyB7XG4gIC8qKiBUaGUgVHVydm8gc2hpcG1lbnQgSUQgKi9cbiAgdHVydm9TaGlwbWVudElkOiBudW1iZXJcbiAgLyoqIFRoZSBUdXJ2byBzdG9wIElEIChvcHRpb25hbCwgZGVwZW5kaW5nIG9uIHR5cGUgb2Ygc3RhdHVzIHVwZGF0ZSkgKi9cbiAgdHVydm9TdG9wSWQ/OiBudW1iZXJcbiAgLyoqIFRoZSBzdGF0dXMgY29kZSB0byBzZXQgKi9cbiAgdHVydm9TdGF0dXNDb2RlOiBUdXJ2b1NoaXBtZW50U3RhdHVzWydjb2RlJ11cbiAgLyoqIFRoZSBzdGF0dXMgZGF0ZSBpbiBJU08gZm9ybWF0ICovXG4gIHN0YXR1c0RhdGU6IHN0cmluZ1xuICAvKiogVGhlIHRpbWV6b25lIGZvciB0aGUgc3RhdHVzIGRhdGUgKi9cbiAgc3RhdHVzVGltZXpvbmU6IHN0cmluZ1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHJldHJpZXZpbmcgYSBzaGlwbWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFNoaXBtZW50UGFyYW1zIHtcbiAgLyoqIFRoZSBzaGlwbWVudCBJRCB0byByZXRyaWV2ZSAqL1xuICBzaGlwbWVudElkOiBudW1iZXJcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgc2hpcG1lbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyU2hpcG1lbnRzUGFyYW1zIHtcbiAgLyoqIFR1cnZvIGxvY2F0aW9uIElEIHRvIGZpbHRlciBieSAqL1xuICB0dXJ2b0xvY2F0aW9uSWQ6IG51bWJlclxuICAvKiogUGlja3VwIGRhdGUgc3RhcnQgZmlsdGVyIChJU08gZm9ybWF0KSAqL1xuICBwaWNrdXBEYXRlU3RhcnQ6IHN0cmluZ1xuICAvKiogT3B0aW9uYWwgcGFnaW5hdGlvbiBzdGFydCBvZmZzZXQgKi9cbiAgc3RhcnQ/OiBudW1iZXJcbn1cblxuLyoqXG4gKiBUdXJ2b1B1YmxpY0FwaSBwcm92aWRlcyBhY2Nlc3MgdG8gZG9jdW1lbnRlZCBUdXJ2byBBUEkgZW5kcG9pbnRzLlxuICogQWxsIHNoaXBtZW50IG1hbmFnZW1lbnQgb3BlcmF0aW9ucyAoY3JlYXRlLCB1cGRhdGUsIGNhbmNlbCwgcXVlcnkpIGdvIHRocm91Z2ggdGhpcyBjbGFzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFR1cnZvUHVibGljQXBpIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGllbnQ6IFR1cnZvQ2xpZW50KSB7fVxuXG4gIC8qKlxuICAgKiBHRVQgL3YxL3NoaXBtZW50cy97aWR9XG4gICAqIFJldHVybnMgc2hpcG1lbnQgZGV0YWlscywgc3RvcHMsIHN0YXR1c1xuICAgKi9cbiAgYXN5bmMgZ2V0U2hpcG1lbnQocGFyYW1zOiBHZXRTaGlwbWVudFBhcmFtcyk6IFByb21pc2U8VHVydm9BcGlSZXN1bHQ8VHVydm9TaGlwbWVudD4+IHtcbiAgICBjb25zdCB7IHNoaXBtZW50SWQgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIHJldHVybiBodHRwQ2xpZW50LnNlbmRSZXF1ZXN0PFR1cnZvU2hpcG1lbnQ+KGAvc2hpcG1lbnRzLyR7c2hpcG1lbnRJZH1gLCBUdXJ2b0FwaU1ldGhvZC5HRVQsIHt9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBPU1QgL3YxL3NoaXBtZW50c1xuICAgKiBVcGxvYWQgcHJvcGVybHkgZm9ybWF0dGVkIHNoaXBtZW50IHRvIFR1cnZvXG4gICAqL1xuICBhc3luYyB1cGxvYWRTaGlwbWVudChwYXJhbXM6IFVwbG9hZFNoaXBtZW50UGFyYW1zKTogUHJvbWlzZTxUdXJ2b0FwaVJlc3VsdDxUdXJ2b0NyZWF0ZVNoaXBtZW50QXBpUmVzdWx0Pj4ge1xuICAgIGNvbnN0IHsgc2hpcG1lbnQgfSA9IHBhcmFtc1xuICAgIC8vIE5vdGU6IHZlaG9Mb2FkSWQgaXMga2VwdCBpbiB0aGUgcGFyYW1zIGZvciBsb2dnaW5nIHB1cnBvc2VzIGJ5IGNvbnN1bWVyc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIHJldHVybiBodHRwQ2xpZW50LnNlbmRSZXF1ZXN0PFR1cnZvQ3JlYXRlU2hpcG1lbnRBcGlSZXN1bHQ+KCcvc2hpcG1lbnRzJywgVHVydm9BcGlNZXRob2QuUE9TVCwge1xuICAgICAgYm9keTogc2hpcG1lbnQsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQVVQgL3YxL3RhZ3MvYXR0YWNoL3NoaXBtZW50L3tpZH1cbiAgICogQXNzb2NpYXRlIGEgbGlzdCBvZiB0YWdzIHdpdGggYSBzaGlwbWVudCBieSBJRFxuICAgKi9cbiAgYXN5bmMgYXNzb2NpYXRlVGFnc1RvU2hpcG1lbnQocGFyYW1zOiBBc3NvY2lhdGVUYWdzUGFyYW1zKTogUHJvbWlzZTxUdXJ2b0FwaVJlc3VsdDxUdXJ2b0Fzc29jaWF0ZVRhZ3NBcGlSZXN1bHQ+PiB7XG4gICAgY29uc3QgeyB0dXJ2b1NoaXBtZW50SWQsIHRhZ3MgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIHJldHVybiBodHRwQ2xpZW50LnNlbmRSZXF1ZXN0PFR1cnZvQXNzb2NpYXRlVGFnc0FwaVJlc3VsdD4oXG4gICAgICBgL3RhZ3MvYXR0YWNoL3NoaXBtZW50LyR7dHVydm9TaGlwbWVudElkfWAsXG4gICAgICBUdXJ2b0FwaU1ldGhvZC5QVVQsXG4gICAgICB7XG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICB0YWdOYW1lczogdGFncyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICAvKipcbiAgICogUFVUIC92MS9zaGlwbWVudHMvc3RhdHVzL3tpZH1cbiAgICogU2V0IHNoaXBtZW50IHN0YXR1cyB0byBDYW5jZWxsZWQgaW4gVHVydm9cbiAgICovXG4gIGFzeW5jIGNhbmNlbFNoaXBtZW50KHBhcmFtczogQ2FuY2VsU2hpcG1lbnRQYXJhbXMpOiBQcm9taXNlPFR1cnZvQXBpUmVzdWx0PFR1cnZvQ2FuY2VsU2hpcG1lbnRBcGlSZXN1bHQ+PiB7XG4gICAgY29uc3QgeyB0dXJ2b1NoaXBtZW50SWQgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBpZDogdHVydm9TaGlwbWVudElkLFxuICAgICAgc3RhdHVzOiB7XG4gICAgICAgIGNvZGU6IHsga2V5OiAnMjExMycsIHZhbHVlOiAnQ2FuY2VsZWQnIH0gc2F0aXNmaWVzIFR1cnZvTG9va3VwLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gaHR0cENsaWVudC5zZW5kUmVxdWVzdDxUdXJ2b0NhbmNlbFNoaXBtZW50QXBpUmVzdWx0PihcbiAgICAgIGAvc2hpcG1lbnRzL3N0YXR1cy8ke3R1cnZvU2hpcG1lbnRJZH1gLFxuICAgICAgVHVydm9BcGlNZXRob2QuUFVULFxuICAgICAge1xuICAgICAgICBib2R5LFxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBQVVQgL3YxL3NoaXBtZW50cy9zdGF0dXMve2lkfVxuICAgKiBVcGRhdGUgc2hpcG1lbnQgc3RhdHVzIGF0IGEgc3BlY2lmaWMgc3RvcFxuICAgKi9cbiAgYXN5bmMgdXBkYXRlU2hpcG1lbnRTdGF0dXMoXG4gICAgcGFyYW1zOiBVcGRhdGVTaGlwbWVudFN0YXR1c1BhcmFtc1xuICApOiBQcm9taXNlPFR1cnZvQXBpUmVzdWx0PFR1cnZvVXBkYXRlU2hpcG1lbnRTdGF0dXNBcGlSZXN1bHQ+PiB7XG4gICAgY29uc3QgeyB0dXJ2b1NoaXBtZW50SWQsIHR1cnZvU3RvcElkLCB0dXJ2b1N0YXR1c0NvZGUsIHN0YXR1c0RhdGUsIHN0YXR1c1RpbWV6b25lIH0gPSBwYXJhbXNcbiAgICBjb25zdCBodHRwQ2xpZW50ID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0QXV0aGVudGljYXRlZENsaWVudCgpXG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgaWQ6IHR1cnZvU2hpcG1lbnRJZCxcbiAgICAgIHN0YXR1czoge1xuICAgICAgICBnbG9iYWxTaGlwTG9jYXRpb25JZDogdHVydm9TdG9wSWQsXG4gICAgICAgIGNvZGU6IHR1cnZvU3RhdHVzQ29kZSxcbiAgICAgICAgdGltZXpvbmU6IHN0YXR1c1RpbWV6b25lLFxuICAgICAgICBzdGF0dXNEYXRlOiB7XG4gICAgICAgICAgZGF0ZTogc3RhdHVzRGF0ZSxcbiAgICAgICAgICB0aW1lem9uZTogc3RhdHVzVGltZXpvbmUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIHJldHVybiBodHRwQ2xpZW50LnNlbmRSZXF1ZXN0PFR1cnZvVXBkYXRlU2hpcG1lbnRTdGF0dXNBcGlSZXN1bHQ+KFxuICAgICAgYC9zaGlwbWVudHMvc3RhdHVzLyR7dHVydm9TaGlwbWVudElkfWAsXG4gICAgICBUdXJ2b0FwaU1ldGhvZC5QVVQsXG4gICAgICB7IGJvZHkgfVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBHRVQgL3YxL3NoaXBtZW50cy9saXN0XG4gICAqIFF1ZXJ5IHNoaXBtZW50cyBmcm9tIFR1cnZvIHdpdGggcGFnaW5hdGlvbiBzdXBwb3J0XG4gICAqL1xuICBhc3luYyBmaWx0ZXJTaGlwbWVudHMoXG4gICAgcGFyYW1zOiBGaWx0ZXJTaGlwbWVudHNQYXJhbXNcbiAgKTogUHJvbWlzZTxUdXJ2b0FwaVJlc3VsdDxUdXJ2b1BhZ2VkUmVzdWx0PCdzaGlwbWVudHMnLCBUdXJ2b0ZpbHRlclNoaXBtZW50c1Jlc3VsdEl0ZW0+Pj4ge1xuICAgIGNvbnN0IHsgdHVydm9Mb2NhdGlvbklkLCBwaWNrdXBEYXRlU3RhcnQsIHN0YXJ0ID0gMCB9ID0gcGFyYW1zXG4gICAgY29uc3QgaHR0cENsaWVudCA9IGF3YWl0IHRoaXMuY2xpZW50LmdldEF1dGhlbnRpY2F0ZWRDbGllbnQoKVxuXG4gICAgcmV0dXJuIGh0dHBDbGllbnQuc2VuZFJlcXVlc3Q8VHVydm9QYWdlZFJlc3VsdDwnc2hpcG1lbnRzJywgVHVydm9GaWx0ZXJTaGlwbWVudHNSZXN1bHRJdGVtPj4oXG4gICAgICAnL3NoaXBtZW50cy9saXN0JyxcbiAgICAgIFR1cnZvQXBpTWV0aG9kLkdFVCxcbiAgICAgIHtcbiAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAnbG9jYXRpb25JZFtlcV0nOiB0dXJ2b0xvY2F0aW9uSWQudG9TdHJpbmcoKSxcbiAgICAgICAgICAncGlja3VwRGF0ZVtndGVdJzogcGlja3VwRGF0ZVN0YXJ0LFxuICAgICAgICAgIHN0YXJ0OiBzdGFydC50b1N0cmluZygpLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIClcbiAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
2
+ export declare const createDocClient: () => DynamoDBDocumentClient;
3
+ export declare const getDocClient: () => DynamoDBDocumentClient;
4
+ export declare const getIndexNameByTurvoLocationId: () => string | undefined;
5
+ export declare const getTableName: () => string | undefined;
6
+ export declare const getIndexNameByShortCode: () => string | undefined;
7
+ export declare const getRetiredFacilityMappingTableName: () => string | undefined;
8
+ export declare const getFacilityCodeMapTable: () => string | undefined;
9
+ export declare const getIndexNameByFacilityCode: () => string | undefined;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIndexNameByFacilityCode = exports.getFacilityCodeMapTable = exports.getRetiredFacilityMappingTableName = exports.getIndexNameByShortCode = exports.getTableName = exports.getIndexNameByTurvoLocationId = exports.getDocClient = exports.createDocClient = void 0;
4
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
5
+ const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
6
+ // Create DynamoDB client without X-Ray tracing for SDK usage
7
+ const createDocClient = () => {
8
+ return lib_dynamodb_1.DynamoDBDocumentClient.from(new client_dynamodb_1.DynamoDBClient({}), {
9
+ marshallOptions: {
10
+ convertEmptyValues: true,
11
+ },
12
+ });
13
+ };
14
+ exports.createDocClient = createDocClient;
15
+ // Singleton instance
16
+ let docClientInstance = null;
17
+ const getDocClient = () => {
18
+ if (!docClientInstance) {
19
+ docClientInstance = (0, exports.createDocClient)();
20
+ }
21
+ return docClientInstance;
22
+ };
23
+ exports.getDocClient = getDocClient;
24
+ // Environment-based table names and indexes
25
+ const getIndexNameByTurvoLocationId = () => process.env.INDEX_NAME_BY_TURVO_LOCATION_ID;
26
+ exports.getIndexNameByTurvoLocationId = getIndexNameByTurvoLocationId;
27
+ const getTableName = () => process.env.TABLE_NAME;
28
+ exports.getTableName = getTableName;
29
+ const getIndexNameByShortCode = () => process.env.INDEX_NAME_BY_SHORT_CODE;
30
+ exports.getIndexNameByShortCode = getIndexNameByShortCode;
31
+ const getRetiredFacilityMappingTableName = () => process.env.RETIRED_FACILITY_MAPPINGS_TABLE_NAME;
32
+ exports.getRetiredFacilityMappingTableName = getRetiredFacilityMappingTableName;
33
+ const getFacilityCodeMapTable = () => process.env.FACILITY_CODE_MAP_TABLE;
34
+ exports.getFacilityCodeMapTable = getFacilityCodeMapTable;
35
+ const getIndexNameByFacilityCode = () => process.env.INDEX_NAME_BY_FACILITY_CODE;
36
+ exports.getIndexNameByFacilityCode = getIndexNameByFacilityCode;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RiL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4REFBeUQ7QUFDekQsd0RBQThEO0FBRTlELDZEQUE2RDtBQUN0RCxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDbEMsT0FBTyxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxnQ0FBYyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ3pELGVBQWUsRUFBRTtZQUNmLGtCQUFrQixFQUFFLElBQUk7U0FDekI7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFOWSxRQUFBLGVBQWUsbUJBTTNCO0FBRUQscUJBQXFCO0FBQ3JCLElBQUksaUJBQWlCLEdBQWtDLElBQUksQ0FBQTtBQUVwRCxNQUFNLFlBQVksR0FBRyxHQUEyQixFQUFFO0lBQ3ZELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZCLGlCQUFpQixHQUFHLElBQUEsdUJBQWUsR0FBRSxDQUFBO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLGlCQUFpQixDQUFBO0FBQzFCLENBQUMsQ0FBQTtBQUxZLFFBQUEsWUFBWSxnQkFLeEI7QUFFRCw0Q0FBNEM7QUFDckMsTUFBTSw2QkFBNkIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFBO0FBQWpGLFFBQUEsNkJBQTZCLGlDQUFvRDtBQUN2RixNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQTtBQUEzQyxRQUFBLFlBQVksZ0JBQStCO0FBQ2pELE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQTtBQUFwRSxRQUFBLHVCQUF1QiwyQkFBNkM7QUFDMUUsTUFBTSxrQ0FBa0MsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFBO0FBQTNGLFFBQUEsa0NBQWtDLHNDQUF5RDtBQUNqRyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUE7QUFBbkUsUUFBQSx1QkFBdUIsMkJBQTRDO0FBQ3pFLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQTtBQUExRSxRQUFBLDBCQUEwQiw4QkFBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbW9EQkNsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYidcbmltcG9ydCB7IER5bmFtb0RCRG9jdW1lbnRDbGllbnQgfSBmcm9tICdAYXdzLXNkay9saWItZHluYW1vZGInXG5cbi8vIENyZWF0ZSBEeW5hbW9EQiBjbGllbnQgd2l0aG91dCBYLVJheSB0cmFjaW5nIGZvciBTREsgdXNhZ2VcbmV4cG9ydCBjb25zdCBjcmVhdGVEb2NDbGllbnQgPSAoKSA9PiB7XG4gIHJldHVybiBEeW5hbW9EQkRvY3VtZW50Q2xpZW50LmZyb20obmV3IER5bmFtb0RCQ2xpZW50KHt9KSwge1xuICAgIG1hcnNoYWxsT3B0aW9uczoge1xuICAgICAgY29udmVydEVtcHR5VmFsdWVzOiB0cnVlLFxuICAgIH0sXG4gIH0pXG59XG5cbi8vIFNpbmdsZXRvbiBpbnN0YW5jZVxubGV0IGRvY0NsaWVudEluc3RhbmNlOiBEeW5hbW9EQkRvY3VtZW50Q2xpZW50IHwgbnVsbCA9IG51bGxcblxuZXhwb3J0IGNvbnN0IGdldERvY0NsaWVudCA9ICgpOiBEeW5hbW9EQkRvY3VtZW50Q2xpZW50ID0+IHtcbiAgaWYgKCFkb2NDbGllbnRJbnN0YW5jZSkge1xuICAgIGRvY0NsaWVudEluc3RhbmNlID0gY3JlYXRlRG9jQ2xpZW50KClcbiAgfVxuICByZXR1cm4gZG9jQ2xpZW50SW5zdGFuY2Vcbn1cblxuLy8gRW52aXJvbm1lbnQtYmFzZWQgdGFibGUgbmFtZXMgYW5kIGluZGV4ZXNcbmV4cG9ydCBjb25zdCBnZXRJbmRleE5hbWVCeVR1cnZvTG9jYXRpb25JZCA9ICgpID0+IHByb2Nlc3MuZW52LklOREVYX05BTUVfQllfVFVSVk9fTE9DQVRJT05fSURcbmV4cG9ydCBjb25zdCBnZXRUYWJsZU5hbWUgPSAoKSA9PiBwcm9jZXNzLmVudi5UQUJMRV9OQU1FXG5leHBvcnQgY29uc3QgZ2V0SW5kZXhOYW1lQnlTaG9ydENvZGUgPSAoKSA9PiBwcm9jZXNzLmVudi5JTkRFWF9OQU1FX0JZX1NIT1JUX0NPREVcbmV4cG9ydCBjb25zdCBnZXRSZXRpcmVkRmFjaWxpdHlNYXBwaW5nVGFibGVOYW1lID0gKCkgPT4gcHJvY2Vzcy5lbnYuUkVUSVJFRF9GQUNJTElUWV9NQVBQSU5HU19UQUJMRV9OQU1FXG5leHBvcnQgY29uc3QgZ2V0RmFjaWxpdHlDb2RlTWFwVGFibGUgPSAoKSA9PiBwcm9jZXNzLmVudi5GQUNJTElUWV9DT0RFX01BUF9UQUJMRVxuZXhwb3J0IGNvbnN0IGdldEluZGV4TmFtZUJ5RmFjaWxpdHlDb2RlID0gKCkgPT4gcHJvY2Vzcy5lbnYuSU5ERVhfTkFNRV9CWV9GQUNJTElUWV9DT0RFXG4iXX0=
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Facility mapping functions for Turvo location to Veho facility mapping
3
+ *
4
+ * This file contains methods for mapping between Turvo locations and Veho facilities.
5
+ * It abstracts over three different tables:
6
+ * 1. FACILITY_CODE_MAP_TABLE: stores the map using the current facilityCode naming scheme
7
+ * 2. SHORT_CODE_MAP_TABLE: stores the map using the old shortCode naming scheme
8
+ * 3. RETIRED_FACILITY_MAPPING_TABLE_NAME: stores retired facility mappings
9
+ */
10
+ import { VehoTurvoLocationMap } from '../types/facilityMapping';
11
+ /**
12
+ * Get facility mapping for a Turvo location ID
13
+ * Checks both facility code and short code mappings
14
+ */
15
+ export declare const getFacilityMappingForTurvoLocationId: (turvoLocationId: number) => Promise<VehoTurvoLocationMap | null>;
16
+ /**
17
+ * Get retired facility mapping for a Turvo location ID
18
+ */
19
+ export declare const getRetiredFacilityMappingForTurvoLocationId: (turvoLocationId: number) => Promise<VehoTurvoLocationMap | null>;
20
+ /**
21
+ * Get retired facility mapping by human identifier (facility code or short code)
22
+ */
23
+ export declare const getRetiredFacilityMappingByHumanIdentifier: (humanIdentifier: string) => Promise<VehoTurvoLocationMap | null>;
24
+ /**
25
+ * Get facility mapping by human identifier (facility code)
26
+ */
27
+ export declare const getFacilityMappingByHumanIdentifier: (identifier: string) => Promise<VehoTurvoLocationMap | null>;
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ /**
3
+ * Facility mapping functions for Turvo location to Veho facility mapping
4
+ *
5
+ * This file contains methods for mapping between Turvo locations and Veho facilities.
6
+ * It abstracts over three different tables:
7
+ * 1. FACILITY_CODE_MAP_TABLE: stores the map using the current facilityCode naming scheme
8
+ * 2. SHORT_CODE_MAP_TABLE: stores the map using the old shortCode naming scheme
9
+ * 3. RETIRED_FACILITY_MAPPING_TABLE_NAME: stores retired facility mappings
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getFacilityMappingByHumanIdentifier = exports.getRetiredFacilityMappingByHumanIdentifier = exports.getRetiredFacilityMappingForTurvoLocationId = exports.getFacilityMappingForTurvoLocationId = void 0;
13
+ const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
14
+ const client_1 = require("./client");
15
+ /**
16
+ * Get facility mapping for a Turvo location ID
17
+ * Checks both facility code and short code mappings
18
+ */
19
+ const getFacilityMappingForTurvoLocationId = async (turvoLocationId) => {
20
+ if (typeof turvoLocationId !== 'number') {
21
+ return null;
22
+ }
23
+ // Check new FACILITY_CODE_MAP_TABLE first
24
+ const facilityCodeMapping = await getFacilityCodeMappingForTurvoLocationId(turvoLocationId);
25
+ if (facilityCodeMapping) {
26
+ return facilityCodeMapping;
27
+ }
28
+ // Then check the SHORT_CODE_MAP_TABLE
29
+ const shortCodeMapping = await getShortCodeMappingForTurvoLocationId(turvoLocationId);
30
+ if (shortCodeMapping) {
31
+ return shortCodeMapping;
32
+ }
33
+ return null;
34
+ };
35
+ exports.getFacilityMappingForTurvoLocationId = getFacilityMappingForTurvoLocationId;
36
+ /**
37
+ * Get retired facility mapping for a Turvo location ID
38
+ */
39
+ const getRetiredFacilityMappingForTurvoLocationId = async (turvoLocationId) => {
40
+ if (typeof turvoLocationId !== 'number') {
41
+ return null;
42
+ }
43
+ const tableName = (0, client_1.getRetiredFacilityMappingTableName)();
44
+ const indexName = (0, client_1.getIndexNameByTurvoLocationId)();
45
+ if (!tableName || !indexName) {
46
+ return null;
47
+ }
48
+ const dbQuery = new lib_dynamodb_1.QueryCommand({
49
+ TableName: tableName,
50
+ IndexName: indexName,
51
+ KeyConditionExpression: 'turvoLocationId = :turvoLocationId',
52
+ ExpressionAttributeValues: {
53
+ ':turvoLocationId': turvoLocationId,
54
+ },
55
+ });
56
+ const response = await (0, client_1.getDocClient)().send(dbQuery);
57
+ if (!response.Items?.length) {
58
+ return null;
59
+ }
60
+ return response.Items[0];
61
+ };
62
+ exports.getRetiredFacilityMappingForTurvoLocationId = getRetiredFacilityMappingForTurvoLocationId;
63
+ /**
64
+ * Get retired facility mapping by human identifier (facility code or short code)
65
+ */
66
+ const getRetiredFacilityMappingByHumanIdentifier = async (humanIdentifier) => {
67
+ if (typeof humanIdentifier !== 'string' || humanIdentifier === '') {
68
+ return null;
69
+ }
70
+ const tableName = (0, client_1.getRetiredFacilityMappingTableName)();
71
+ const indexName = (0, client_1.getIndexNameByShortCode)();
72
+ if (!tableName || !indexName) {
73
+ return null;
74
+ }
75
+ const dbQuery = new lib_dynamodb_1.QueryCommand({
76
+ TableName: tableName,
77
+ IndexName: indexName,
78
+ KeyConditionExpression: 'shortCode = :shortCode',
79
+ ExpressionAttributeValues: {
80
+ ':shortCode': humanIdentifier,
81
+ },
82
+ });
83
+ const response = await (0, client_1.getDocClient)().send(dbQuery);
84
+ if (!response.Items?.length) {
85
+ return null;
86
+ }
87
+ return response.Items[0];
88
+ };
89
+ exports.getRetiredFacilityMappingByHumanIdentifier = getRetiredFacilityMappingByHumanIdentifier;
90
+ /**
91
+ * Get facility mapping by human identifier (facility code)
92
+ */
93
+ const getFacilityMappingByHumanIdentifier = async (identifier) => {
94
+ if (typeof identifier !== 'string' || identifier === '') {
95
+ return null;
96
+ }
97
+ return getFacilityMappingByFacilityCode(identifier);
98
+ };
99
+ exports.getFacilityMappingByHumanIdentifier = getFacilityMappingByHumanIdentifier;
100
+ /**
101
+ * Get facility code mapping for a Turvo location ID
102
+ */
103
+ const getFacilityCodeMappingForTurvoLocationId = async (turvoLocationId) => {
104
+ if (typeof turvoLocationId !== 'number') {
105
+ return null;
106
+ }
107
+ const tableName = (0, client_1.getFacilityCodeMapTable)();
108
+ const indexName = (0, client_1.getIndexNameByTurvoLocationId)();
109
+ if (!tableName || !indexName) {
110
+ return null;
111
+ }
112
+ const dbQuery = new lib_dynamodb_1.QueryCommand({
113
+ TableName: tableName,
114
+ IndexName: indexName,
115
+ KeyConditionExpression: 'turvoLocationId = :turvoLocationId',
116
+ ExpressionAttributeValues: {
117
+ ':turvoLocationId': turvoLocationId,
118
+ },
119
+ });
120
+ const response = await (0, client_1.getDocClient)().send(dbQuery);
121
+ if (!response.Items?.length || response.Items.length !== 1) {
122
+ return null;
123
+ }
124
+ return response.Items[0];
125
+ };
126
+ /**
127
+ * Get short code mapping for a Turvo location ID
128
+ */
129
+ const getShortCodeMappingForTurvoLocationId = async (turvoLocationId) => {
130
+ if (typeof turvoLocationId !== 'number') {
131
+ return null;
132
+ }
133
+ const tableName = (0, client_1.getTableName)();
134
+ const indexName = (0, client_1.getIndexNameByTurvoLocationId)();
135
+ if (!tableName || !indexName) {
136
+ return null;
137
+ }
138
+ const dbQuery = new lib_dynamodb_1.QueryCommand({
139
+ TableName: tableName,
140
+ IndexName: indexName,
141
+ KeyConditionExpression: 'turvoLocationId = :turvoLocationId',
142
+ ExpressionAttributeValues: {
143
+ ':turvoLocationId': turvoLocationId,
144
+ },
145
+ });
146
+ const response = await (0, client_1.getDocClient)().send(dbQuery);
147
+ if (!response.Items?.length) {
148
+ return null;
149
+ }
150
+ return response.Items[0];
151
+ };
152
+ /**
153
+ * Get facility mapping by facility code
154
+ */
155
+ const getFacilityMappingByFacilityCode = async (facilityCode) => {
156
+ if (typeof facilityCode !== 'string' || facilityCode === '') {
157
+ return null;
158
+ }
159
+ const tableName = (0, client_1.getFacilityCodeMapTable)();
160
+ const indexName = (0, client_1.getIndexNameByFacilityCode)();
161
+ if (!tableName || !indexName) {
162
+ return null;
163
+ }
164
+ const dbQuery = new lib_dynamodb_1.QueryCommand({
165
+ TableName: tableName,
166
+ IndexName: indexName,
167
+ KeyConditionExpression: 'facilityCode = :facilityCode',
168
+ ExpressionAttributeValues: {
169
+ ':facilityCode': facilityCode,
170
+ },
171
+ });
172
+ const response = await (0, client_1.getDocClient)().send(dbQuery);
173
+ if (!response.Items?.length) {
174
+ return null;
175
+ }
176
+ return response.Items[0];
177
+ };
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjaWxpdHlNYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RiL2ZhY2lsaXR5TWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7OztBQUVILHdEQUFvRDtBQUdwRCxxQ0FRaUI7QUFFakI7OztHQUdHO0FBQ0ksTUFBTSxvQ0FBb0MsR0FBRyxLQUFLLEVBQ3ZELGVBQXVCLEVBQ2UsRUFBRTtJQUN4QyxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sd0NBQXdDLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0YsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sbUJBQW1CLENBQUE7SUFDNUIsQ0FBQztJQUVELHNDQUFzQztJQUN0QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0scUNBQXFDLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDckYsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sZ0JBQWdCLENBQUE7SUFDekIsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBcEJZLFFBQUEsb0NBQW9DLHdDQW9CaEQ7QUFFRDs7R0FFRztBQUNJLE1BQU0sMkNBQTJDLEdBQUcsS0FBSyxFQUM5RCxlQUF1QixFQUNlLEVBQUU7SUFDeEMsSUFBSSxPQUFPLGVBQWUsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFBLDJDQUFrQyxHQUFFLENBQUE7SUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBQSxzQ0FBNkIsR0FBRSxDQUFBO0lBRWpELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3QixPQUFP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QUNELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQXlCLENBQUE7QUFDbEQsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLGdDQUFnQyxHQUFHLEtBQUssRUFBRSxZQUFvQixFQUF3QyxFQUFFO0lBQzVHLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLFlBQVksS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFBLGdDQUF1QixHQUFFLENBQUE7SUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBQSxtQ0FBMEIsR0FBRSxDQUFBO0lBRTlDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLDJCQUFZLENBQUM7UUFDL0IsU0FBUyxFQUFFLFNBQVM7UUFDcEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsc0JBQXNCLEVBQUUsOEJBQThCO1FBQ3RELHlCQUF5QixFQUFFO1lBQ3pCLGVBQWUsRUFBRSxZQUFZO1NBQzlCO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLHFCQUFZLEdBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBeUIsQ0FBQTtBQUNsRCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZhY2lsaXR5IG1hcHBpbmcgZnVuY3Rpb25zIGZvciBUdXJ2byBsb2NhdGlvbiB0byBWZWhvIGZhY2lsaXR5IG1hcHBpbmdcbiAqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgbWV0aG9kcyBmb3IgbWFwcGluZyBiZXR3ZWVuIFR1cnZvIGxvY2F0aW9ucyBhbmQgVmVobyBmYWNpbGl0aWVzLlxuICogSXQgYWJzdHJhY3RzIG92ZXIgdGhyZWUgZGlmZmVyZW50IHRhYmxlczpcbiAqIDEuIEZBQ0lMSVRZX0NPREVfTUFQX1RBQkxFOiBzdG9yZXMgdGhlIG1hcCB1c2luZyB0aGUgY3VycmVudCBmYWNpbGl0eUNvZGUgbmFtaW5nIHNjaGVtZVxuICogMi4gU0hPUlRfQ09ERV9NQVBfVEFCTEU6IHN0b3JlcyB0aGUgbWFwIHVzaW5nIHRoZSBvbGQgc2hvcnRDb2RlIG5hbWluZyBzY2hlbWVcbiAqIDMuIFJFVElSRURfRkFDSUxJVFlfTUFQUElOR19UQUJMRV9OQU1FOiBzdG9yZXMgcmV0aXJlZCBmYWNpbGl0eSBtYXBwaW5nc1xuICovXG5cbmltcG9ydCB7IFF1ZXJ5Q29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2xpYi1keW5hbW9kYidcblxuaW1wb3J0IHsgVmVob1R1cnZvTG9jYXRpb25NYXAgfSBmcm9tICcuLi90eXBlcy9mYWNpbGl0eU1hcHBpbmcnXG5pbXBvcnQge1xuICBnZXREb2NDbGllbnQsXG4gIGdldEZhY2lsaXR5Q29kZU1hcFRhYmxlLFxuICBnZXRJbmRleE5hbWVCeUZhY2lsaXR5Q29kZSxcbiAgZ2V0SW5kZXhOYW1lQnlTaG9ydENvZGUsXG4gIGdldEluZGV4TmFtZUJ5VHVydm9Mb2NhdGlvbklkLFxuICBnZXRSZXRpcmVkRmFjaWxpdHlNYXBwaW5nVGFibGVOYW1lLFxuICBnZXRUYWJsZU5hbWUsXG59IGZyb20gJy4vY2xpZW50J1xuXG4vKipcbiAqIEdldCBmYWNpbGl0eSBtYXBwaW5nIGZvciBhIFR1cnZvIGxvY2F0aW9uIElEXG4gKiBDaGVja3MgYm90aCBmYWNpbGl0eSBjb2RlIGFuZCBzaG9ydCBjb2RlIG1hcHBpbmdzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGYWNpbGl0eU1hcHBpbmdGb3JUdXJ2b0xvY2F0aW9uSWQgPSBhc3luYyAoXG4gIHR1cnZvTG9jYXRpb25JZDogbnVtYmVyXG4pOiBQcm9taXNlPFZlaG9UdXJ2b0xvY2F0aW9uTWFwIHwgbnVsbD4gPT4ge1xuICBpZiAodHlwZW9mIHR1cnZvTG9jYXRpb25JZCAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gQ2hlY2sgbmV3IEZBQ0lMSVRZX0NPREVfTUFQX1RBQkxFIGZpcnN0XG4gIGNvbnN0IGZhY2lsaXR5Q29kZU1hcHBpbmcgPSBhd2FpdCBnZXRGYWNpbGl0eUNvZGVNYXBwaW5nRm9yVHVydm9Mb2NhdGlvbklkKHR1cnZvTG9jYXRpb25JZClcbiAgaWYgKGZhY2lsaXR5Q29kZU1hcHBpbmcpIHtcbiAgICByZXR1cm4gZmFjaWxpdHlDb2RlTWFwcGluZ1xuICB9XG5cbiAgLy8gVGhlbiBjaGVjayB0aGUgU0hPUlRfQ09ERV9NQVBfVEFCTEVcbiAgY29uc3Qgc2hvcnRDb2RlTWFwcGluZyA9IGF3YWl0IGdldFNob3J0Q29kZU1hcHBpbmdGb3JUdXJ2b0xvY2F0aW9uSWQodHVydm9Mb2NhdGlvbklkKVxuICBpZiAoc2hvcnRDb2RlTWFwcGluZykge1xuICAgIHJldHVybiBzaG9ydENvZGVNYXBwaW5nXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG4vKipcbiAqIEdldCByZXRpcmVkIGZhY2lsaXR5IG1hcHBpbmcgZm9yIGEgVHVydm8gbG9jYXRpb24gSURcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFJldGlyZWRGYWNpbGl0eU1hcHBpbmdGb3JUdXJ2b0xvY2F0aW9uSWQgPSBhc3luYyAoXG4gIHR1cnZvTG9jYXRpb25JZDogbnVtYmVyXG4pOiBQcm9taXNlPFZlaG9UdXJ2b0xvY2F0aW9uTWFwIHwgbnVsbD4gPT4ge1xuICBpZiAodHlwZW9mIHR1cnZvTG9jYXRpb25JZCAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgdGFibGVOYW1lID0gZ2V0UmV0aXJlZEZhY2lsaXR5TWFwcGluZ1RhYmxlTmFtZSgpXG4gIGNvbnN0IGluZGV4TmFtZSA9IGdldEluZGV4TmFtZUJ5VHVydm9Mb2NhdGlvbklkKClcblxuICBpZiAoIXRhYmxlTmFtZSB8fCAhaW5kZXhOYW1lKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGRiUXVlcnkgPSBuZXcgUXVlcnlDb21tYW5kKHtcbiAgICBUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICBJbmRleE5hbWU6IGluZGV4TmFtZSxcbiAgICBLZXlDb25kaXRpb25FeHByZXNzaW9uOiAndHVydm9Mb2NhdGlvbklkID0gOnR1cnZvTG9jYXRpb25JZCcsXG4gICAgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgJzp0dXJ2b0xvY2F0aW9uSWQnOiB0dXJ2b0xvY2F0aW9uSWQsXG4gICAgfSxcbiAgfSlcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldERvY0NsaWVudCgpLnNlbmQoZGJRdWVyeSlcbiAgaWYgKCFyZXNwb25zZS5JdGVtcz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gcmVzcG9uc2UuSXRlbXNbMF0gYXMgVmVob1R1cnZvTG9jYXRpb25NYXBcbn1cblxuLyoqXG4gKiBHZXQgcmV0aXJlZCBmYWNpbGl0eSBtYXBwaW5nIGJ5IGh1bWFuIGlkZW50aWZpZXIgKGZhY2lsaXR5IGNvZGUgb3Igc2hvcnQgY29kZSlcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFJldGlyZWRGYWNpbGl0eU1hcHBpbmdCeUh1bWFuSWRlbnRpZmllciA9IGFzeW5jIChcbiAgaHVtYW5JZGVudGlmaWVyOiBzdHJpbmdcbik6IFByb21pc2U8VmVob1R1cnZvTG9jYXRpb25NYXAgfCBudWxsPiA9PiB7XG4gIGlmICh0eXBlb2YgaHVtYW5JZGVudGlmaWVyICE9PSAnc3RyaW5nJyB8fCBodW1hbklkZW50aWZpZXIgPT09ICcnKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHRhYmxlTmFtZSA9IGdldFJldGlyZWRGYWNpbGl0eU1hcHBpbmdUYWJsZU5hbWUoKVxuICBjb25zdCBpbmRleE5hbWUgPSBnZXRJbmRleE5hbWVCeVNob3J0Q29kZSgpXG5cbiAgaWYgKCF0YWJsZU5hbWUgfHwgIWluZGV4TmFtZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBkYlF1ZXJ5ID0gbmV3IFF1ZXJ5Q29tbWFuZCh7XG4gICAgVGFibGVOYW1lOiB0YWJsZU5hbWUsXG4gICAgSW5kZXhOYW1lOiBpbmRleE5hbWUsXG4gICAgS2V5Q29uZGl0aW9uRXhwcmVzc2lvbjogJ3Nob3J0Q29kZSA9IDpzaG9ydENvZGUnLFxuICAgIEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXM6IHtcbiAgICAgICc6c2hvcnRDb2RlJzogaHVtYW5JZGVudGlmaWVyLFxuICAgIH0sXG4gIH0pXG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXREb2NDbGllbnQoKS5zZW5kKGRiUXVlcnkpXG4gIGlmICghcmVzcG9uc2UuSXRlbXM/Lmxlbmd0aCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlLkl0ZW1zWzBdIGFzIFZlaG9UdXJ2b0xvY2F0aW9uTWFwXG59XG5cbi8qKlxuICogR2V0IGZhY2lsaXR5IG1hcHBpbmcgYnkgaHVtYW4gaWRlbnRpZmllciAoZmFjaWxpdHkgY29kZSlcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEZhY2lsaXR5TWFwcGluZ0J5SHVtYW5JZGVudGlmaWVyID0gYXN5bmMgKGlkZW50aWZpZXI6IHN0cmluZyk6IFByb21pc2U8VmVob1R1cnZvTG9jYXRpb25NYXAgfCBudWxsPiA9PiB7XG4gIGlmICh0eXBlb2YgaWRlbnRpZmllciAhPT0gJ3N0cmluZycgfHwgaWRlbnRpZmllciA9PT0gJycpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIGdldEZhY2lsaXR5TWFwcGluZ0J5RmFjaWxpdHlDb2RlKGlkZW50aWZpZXIpXG59XG5cbi8qKlxuICogR2V0IGZhY2lsaXR5IGNvZGUgbWFwcGluZyBmb3IgYSBUdXJ2byBsb2NhdGlvbiBJRFxuICovXG5jb25zdCBnZXRGYWNpbGl0eUNvZGVNYXBwaW5nRm9yVHVydm9Mb2NhdGlvbklkID0gYXN5bmMgKFxuICB0dXJ2b0xvY2F0aW9uSWQ6IG51bWJlclxuKTogUHJvbWlzZTxWZWhvVHVydm9Mb2NhdGlvbk1hcCB8IG51bGw+ID0+IHtcbiAgaWYgKHR5cGVvZiB0dXJ2b0xvY2F0aW9uSWQgIT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHRhYmxlTmFtZSA9IGdldEZhY2lsaXR5Q29kZU1hcFRhYmxlKClcbiAgY29uc3QgaW5kZXhOYW1lID0gZ2V0SW5kZXhOYW1lQnlUdXJ2b0xvY2F0aW9uSWQoKVxuXG4gIGlmICghdGFibGVOYW1lIHx8ICFpbmRleE5hbWUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgZGJRdWVyeSA9IG5ldyBRdWVyeUNvbW1hbmQoe1xuICAgIFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIEluZGV4TmFtZTogaW5kZXhOYW1lLFxuICAgIEtleUNvbmRpdGlvbkV4cHJlc3Npb246ICd0dXJ2b0xvY2F0aW9uSWQgPSA6dHVydm9Mb2NhdGlvbklkJyxcbiAgICBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzOiB7XG4gICAgICAnOnR1cnZvTG9jYXRpb25JZCc6IHR1cnZvTG9jYXRpb25JZCxcbiAgICB9LFxuICB9KVxuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RG9jQ2xpZW50KCkuc2VuZChkYlF1ZXJ5KVxuICBpZiAoIXJlc3BvbnNlLkl0ZW1zPy5sZW5ndGggfHwgcmVzcG9uc2UuSXRlbXMubGVuZ3RoICE9PSAxKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gcmVzcG9uc2UuSXRlbXNbMF0gYXMgVmVob1R1cnZvTG9jYXRpb25NYXBcbn1cblxuLyoqXG4gKiBHZXQgc2hvcnQgY29kZSBtYXBwaW5nIGZvciBhIFR1cnZvIGxvY2F0aW9uIElEXG4gKi9cbmNvbnN0IGdldFNob3J0Q29kZU1hcHBpbmdGb3JUdXJ2b0xvY2F0aW9uSWQgPSBhc3luYyAodHVydm9Mb2NhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPFZlaG9UdXJ2b0xvY2F0aW9uTWFwIHwgbnVsbD4gPT4ge1xuICBpZiAodHlwZW9mIHR1cnZvTG9jYXRpb25JZCAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgdGFibGVOYW1lID0gZ2V0VGFibGVOYW1lKClcbiAgY29uc3QgaW5kZXhOYW1lID0gZ2V0SW5kZXhOYW1lQnlUdXJ2b0xvY2F0aW9uSWQoKVxuXG4gIGlmICghdGFibGVOYW1lIHx8ICFpbmRleE5hbWUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgZGJRdWVyeSA9IG5ldyBRdWVyeUNvbW1hbmQoe1xuICAgIFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIEluZGV4TmFtZTogaW5kZXhOYW1lLFxuICAgIEtleUNvbmRpdGlvbkV4cHJlc3Npb246ICd0dXJ2b0xvY2F0aW9uSWQgPSA6dHVydm9Mb2NhdGlvbklkJyxcbiAgICBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzOiB7XG4gICAgICAnOnR1cnZvTG9jYXRpb25JZCc6IHR1cnZvTG9jYXRpb25JZCxcbiAgICB9LFxuICB9KVxuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RG9jQ2xpZW50KCkuc2VuZChkYlF1ZXJ5KVxuICBpZiAoIXJlc3BvbnNlLkl0ZW1zPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiByZXNwb25zZS5JdGVtc1swXSBhcyBWZWhvVHVydm9Mb2NhdGlvbk1hcFxufVxuXG4vKipcbiAqIEdldCBmYWNpbGl0eSBtYXBwaW5nIGJ5IGZhY2lsaXR5IGNvZGVcbiAqL1xuY29uc3QgZ2V0RmFjaWxpdHlNYXBwaW5nQnlGYWNpbGl0eUNvZGUgPSBhc3luYyAoZmFjaWxpdHlDb2RlOiBzdHJpbmcpOiBQcm9taXNlPFZlaG9UdXJ2b0xvY2F0aW9uTWFwIHwgbnVsbD4gPT4ge1xuICBpZiAodHlwZW9mIGZhY2lsaXR5Q29kZSAhPT0gJ3N0cmluZycgfHwgZmFjaWxpdHlDb2RlID09PSAnJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCB0YWJsZU5hbWUgPSBnZXRGYWNpbGl0eUNvZGVNYXBUYWJsZSgpXG4gIGNvbnN0IGluZGV4TmFtZSA9IGdldEluZGV4TmFtZUJ5RmFjaWxpdHlDb2RlKClcblxuICBpZiAoIXRhYmxlTmFtZSB8fCAhaW5kZXhOYW1lKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGRiUXVlcnkgPSBuZXcgUXVlcnlDb21tYW5kKHtcbiAgICBUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICBJbmRleE5hbWU6IGluZGV4TmFtZSxcbiAgICBLZXlDb25kaXRpb25FeHByZXNzaW9uOiAnZmFjaWxpdHlDb2RlID0gOmZhY2lsaXR5Q29kZScsXG4gICAgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgJzpmYWNpbGl0eUNvZGUnOiBmYWNpbGl0eUNvZGUsXG4gICAgfSxcbiAgfSlcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldERvY0NsaWVudCgpLnNlbmQoZGJRdWVyeSlcbiAgaWYgKCFyZXNwb25zZS5JdGVtcz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gcmVzcG9uc2UuSXRlbXNbMF0gYXMgVmVob1R1cnZvTG9jYXRpb25NYXBcbn1cbiJdfQ==
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TrackingService = void 0;
4
+ const luxon_1 = require("luxon");
5
+ const facilityMapping_1 = require("../db/facilityMapping");
4
6
  const errors_1 = require("../types/errors");
5
7
  /**
6
8
  * TrackingService orchestrates calls to public and internal APIs
@@ -46,40 +48,78 @@ class TrackingService {
46
48
  * Transform raw Turvo API responses into clean ShipmentTracking type
47
49
  *
48
50
  */
49
- transformToTrackingDetails(shipment, locationUpdates, internalApiFailed) {
51
+ async transformToTrackingDetails(shipment, locationUpdates, internalApiFailed) {
50
52
  const shipmentData = shipment;
53
+ // Filter out deleted entries from turvo data
54
+ const globalRoute = shipmentData.globalRoute?.filter(route => route.deleted !== false);
55
+ const carrierOrder = shipmentData.carrierOrder?.filter(order => order.deleted !== false);
56
+ // Map global route to stops array
57
+ const allStops = await Promise.all(shipment.globalRoute
58
+ .filter(routeStop => !routeStop.deleted)
59
+ .map(async (routeStop) => {
60
+ // Make sure we're actually getting ISO, fail if we don't
61
+ const appointmentDateTime = luxon_1.DateTime.fromISO(routeStop.appointment.date).toUTC().toISO();
62
+ if (!appointmentDateTime) {
63
+ throw new errors_1.TurvoDateFormatError(`expected ISO date but got ${routeStop.appointment.date}`);
64
+ }
65
+ // Additional check for a retired location mapping to get a facility id,
66
+ // for the case a facility has moved/been given a new entry in turvo.
67
+ const facilityId = (await (0, facilityMapping_1.getFacilityMappingForTurvoLocationId)(routeStop.location.id))?.facilityId ??
68
+ (await (0, facilityMapping_1.getRetiredFacilityMappingForTurvoLocationId)(routeStop.location.id))?.facilityId ??
69
+ null;
70
+ return {
71
+ stopNumber: routeStop.sequence,
72
+ appointmentDateTime,
73
+ appointmentLocalTimeZone: routeStop.appointment.timeZone,
74
+ locationName: routeStop.name,
75
+ externalLocationId: routeStop.location.id.toString(),
76
+ facilityId,
77
+ externalStopId: routeStop.id?.toString() ?? null,
78
+ stopServiceType: routeStop.stopType.value === 'Pickup' ? 'pickup' : 'delivery',
79
+ isCompleted: routeStop.state === 'COMPLETED',
80
+ locationId: routeStop.location.id,
81
+ etaToStop: routeStop.etaToStop?.etaValue ?? null,
82
+ milesRemainingToStop: routeStop.etaToStop?.nextMiles ?? null,
83
+ totalMilesToStop: routeStop.distance?.value ?? null,
84
+ // TODO: actual arrival time - time under attributes under global route
85
+ // TODO: actual departure time
86
+ // TODO: address, city, state - address under globalroute
87
+ // TODO: ask about what we want when we have multiple entries for the arrival/departure?
88
+ };
89
+ }));
90
+ const allStopsOrdered = allStops.toSorted((a, b) => a.stopNumber - b.stopNumber);
91
+ const nextStop = allStopsOrdered.find(stop => !stop.isCompleted) ?? null;
51
92
  return {
52
93
  // Identifiers
53
94
  shipmentId: shipmentData.id?.toString() || '',
54
95
  loadReferenceNumber: shipmentData.customId || '',
55
96
  // Status
56
97
  status: shipmentData.status?.code?.value || 'Unknown',
57
- lateBy: shipment.status.runningLate?.lateDurationString ?? null,
98
+ lateByMinutes: shipment.status.runningLate?.lateDuration ?? null,
58
99
  isLate: !!shipment.status.runningLate,
59
100
  // Current location (if tracking available)
60
- currentLocation: shipment.status.location ?? null,
101
+ currentLocation: shipment.status.location ?? null, // TODO: make sure this is the value we actually want, status location may not be it
61
102
  hasGpsTracking: locationUpdates !== null && !internalApiFailed,
62
103
  // Progress
63
- completedStops: 0, // TODO: Count from shipmentData.globalRoute
64
- totalStops: shipmentData.globalRoute?.length || 0, // TODO: parse from shipmentData.globalRoute
104
+ completedStops: allStopsOrdered.filter(stop => stop.isCompleted).length || 0,
105
+ totalStops: globalRoute?.length || 0,
65
106
  // Stops (ordered)
66
- stops: [], // TODO: implment global route parsing
107
+ stops: allStopsOrdered,
67
108
  // 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
109
+ etaUtc: nextStop?.etaToStop ?? null,
110
+ etaTimezone: nextStop?.appointmentLocalTimeZone ?? null,
111
+ milesRemaining: nextStop?.milesRemainingToStop ?? null,
112
+ totalMilesToNextStop: nextStop?.totalMilesToStop ?? null,
72
113
  // GPS Pings (only populated if includeGps: true and hasGpsTracking)
73
114
  locationUpdates: locationUpdates || null, // TODO: implment with scraper
74
115
  pingCount: locationUpdates?.length || null, // TODO: implement with scraper
75
- lastPingAt: locationUpdates?.[(locationUpdates?.length || 0) - 1]?.timestamp ||
76
- null, // TODO: implement with scraper
116
+ lastPingAt: locationUpdates?.[(locationUpdates?.length || 0) - 1]?.timestamp || null, // TODO: implement with scraper
77
117
  // Shipment Attributes
78
118
  laneType: shipment.flexAttributes?.find(attribute => attribute.name === 'Lane Type')?.value ?? null,
79
119
  managementType: shipment.flexAttributes?.find(attribute => attribute.name === 'Management Type')?.value ?? null,
80
- carrier: shipmentData.carrierOrder?.[0]?.carrier?.name || null,
120
+ carrier: carrierOrder?.[0]?.carrier?.name || null,
81
121
  };
82
122
  }
83
123
  }
84
124
  exports.TrackingService = TrackingService;
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tpbmdTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoaXBtZW50VHJhY2tpbmcvdHJhY2tpbmdTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDRDQUFvRDtBQUdwRDs7O0dBR0c7QUFDSCxNQUFhLGVBQWU7SUFFaEI7SUFDQTtJQUZWLFlBQ1UsU0FBeUIsRUFDekIsV0FBNkI7UUFEN0IsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQ3BDLENBQUM7SUFFSjs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQWtCLEVBQUUsVUFBOEIsRUFBRTtRQUNwRSxzQ0FBc0M7UUFDdEMsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRTdGLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLDJCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzFDLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFBO1FBRXZDLGtEQUFrRDtRQUNsRCxJQUFJLGVBQWUsR0FBNEIsSUFBSSxDQUFBO1FBQ25ELElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFBO1FBRTdCLElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUM7Z0JBQ0gsZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUN6RSxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixnREFBZ0Q7Z0JBQ2hELGlCQUFpQixHQUFHLElBQUksQ0FBQTtZQUMxQixDQUFDO1FBQ0gsQ0FBQztRQUVELGlDQUFpQztRQUNqQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUE7SUFDdEYsQ0FBQztJQUVEOzs7T0FHRztJQUNLLDBCQUEwQixDQUNoQyxRQUF1QixFQUN2QixlQUF3QyxFQUN4QyxpQkFBMEI7UUFFMUIsTUFBTSxZQUFZLEdBQUcsUUFBeUIsQ0FBQTtRQUM5QyxPQUFPO1lBQ0wsY0FBYztZQUNkLFVBQVUsRUFBRyxZQUFZLENBQUMsRUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDekQsbUJBQW1CLEVBQUcsWUFBWSxDQUFDLFFBQW1CLElBQUksRUFBRTtZQUU1RCxTQUFTO1lBQ1QsTUFBTSxFQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQWdCLElBQUksU0FBUztZQUNqRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLElBQUksSUFBSTtZQUMvRCxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVztZQUVyQywyQ0FBMkM7WUFDM0MsZUFBZSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUk7WUFDakQsY0FBYyxFQUFFLGVBQWUsS0FBSyxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFFOUQsV0FBVztZQUNYLGNBQWMsRUFBRSxDQUFDLEVBQUUsNENBQTRDO1lBQy9ELFVBQVUsRUFBRyxZQUFZLENBQUMsV0FBeUIsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLDRDQUE0QztZQUU5RyxrQkFBa0I7WUFDbEIsS0FBSyxFQUFFLEVBQUUsRUFBRSxzQ0FBc0M7WUFFakQsaUJBQWlCO1lBQ2pCLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLElBQUksSUFBSTtZQUNyRCxXQUFXLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUseUJBQXlCLElBQUksSUFBSTtZQUMxRSxjQUFjLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLElBQUk7WUFDM0QsVUFBVSxFQUFFLElBQUksRUFBRSxtR0FBbUc7WUFFckgsb0VBQW9FO1lBQ3BFLGVBQWUsRUFBRyxlQUFvQyxJQUFJLElBQUksRUFBRSw4QkFBOEI7WUFDOUYsU0FBUyxFQUFHLGVBQW9DLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSwrQkFBK0I7WUFDakcsVUFBVSxFQUNQLGVBQW9DLEVBQUUsQ0FBQyxDQUFFLGVBQW9DLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFNBQVM7Z0JBQzVHLElBQUksRUFBRSwrQkFBK0I7WUFFdkMsc0JBQXNCO1lBQ3RCLFFBQVEsRUFBRSxRQUFRLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUk7WUFDbkcsY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJO1lBQy9HLE9BQU8sRUFFRCxZQUFZLENBQUMsWUFBMEIsRUFBRSxDQUFDLENBQUMsQ0FBNkIsRUFBRSxPQUM3RSxFQUFFLElBQWUsSUFBSSxJQUFJO1NBQzdCLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUE3RkQsMENBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHVydm9JbnRlcm5hbEFwaSB9IGZyb20gJy4uL2FwaS90dXJ2b0ludGVybmFsQXBpJ1xuaW1wb3J0IHsgVHVydm9QdWJsaWNBcGkgfSBmcm9tICcuLi9hcGkvdHVydm9QdWJsaWNBcGknXG5pbXBvcnQgeyBUdXJ2b1NoaXBtZW50IH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBUdXJ2b05vdEZvdW5kRXJyb3IgfSBmcm9tICcuLi90eXBlcy9lcnJvcnMnXG5pbXBvcnQgeyBHZXRUcmFja2luZ09wdGlvbnMsIExvY2F0aW9uVXBkYXRlLCBTaGlwbWVudFRyYWNraW5nIH0gZnJvbSAnLi4vdHlwZXMvdHJhY2tpbmcnXG5cbi8qKlxuICogVHJhY2tpbmdTZXJ2aWNlIG9yY2hlc3RyYXRlcyBjYWxscyB0byBwdWJsaWMgYW5kIGludGVybmFsIEFQSXNcbiAqIHRvIHByb3ZpZGUgYSB1bmlmaWVkIHNoaXBtZW50IHRyYWNraW5nIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFRyYWNraW5nU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHVibGljQXBpOiBUdXJ2b1B1YmxpY0FwaSxcbiAgICBwcml2YXRlIGludGVybmFsQXBpOiBUdXJ2b0ludGVybmFsQXBpXG4gICkge31cblxuICAvKipcbiAgICogTWFpbiBlbnRyeSBwb2ludCAtIGNvbWJpbmVzIGFsbCBBUEkgZGF0YSB0byBwcm9kdWNlIFNoaXBtZW50VHJhY2tpbmdcbiAgICpcbiAgICogQHBhcmFtIHNoaXBtZW50SWQgLSBUaGUgc2hpcG1lbnQgSUQgdG8gdHJhY2tcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUcmFja2luZyBvcHRpb25zXG4gICAqIEByZXR1cm5zIENvbXBsZXRlIHNoaXBtZW50IHRyYWNraW5nIGluZm9ybWF0aW9uXG4gICAqL1xuICBhc3luYyBnZXRUcmFja2luZyhzaGlwbWVudElkOiBzdHJpbmcsIG9wdGlvbnM6IEdldFRyYWNraW5nT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxTaGlwbWVudFRyYWNraW5nPiB7XG4gICAgLy8gMS4gRmV0Y2ggcHVibGljIEFQSSBkYXRhIChyZXF1aXJlZClcbiAgICBjb25zdCBzaGlwbWVudFJlc3VsdCA9IGF3YWl0IHRoaXMucHVibGljQXBpLmdldFNoaXBtZW50KHsgc2hpcG1lbnRJZDogcGFyc2VJbnQoc2hpcG1lbnRJZCkgfSlcblxuICAgIGlmICghc2hpcG1lbnRSZXN1bHQuZGV0YWlscykge1xuICAgICAgdGhyb3cgbmV3IFR1cnZvTm90Rm91bmRFcnJvcihzaGlwbWVudElkKVxuICAgIH1cblxuICAgIGNvbnN0IHNoaXBtZW50ID0gc2hpcG1lbnRSZXN1bHQuZGV0YWlsc1xuXG4gICAgLy8gMi4gRmV0Y2ggaW50ZXJuYWwgQVBJIGRhdGEgKG9wdGlvbmFsLCBtYXkgZmFpbClcbiAgICBsZXQgbG9jYXRpb25VcGRhdGVzOiBMb2NhdGlvblVwZGF0ZVtdIHwgbnVsbCA9IG51bGxcbiAgICBsZXQgaW50ZXJuYWxBcGlGYWlsZWQgPSBmYWxzZVxuXG4gICAgaWYgKG9wdGlvbnMuaW5jbHVkZUdwcyAhPT0gZmFsc2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvY2F0aW9uVXBkYXRlcyA9IGF3YWl0IHRoaXMuaW50ZXJuYWxBcGkuZ2V0TG9jYXRpb25VcGRhdGVzKHNoaXBtZW50SWQpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBMb2cgYnV0IGRvbid0IGZhaWwgLSBpbnRlcm5hbCBBUEkgaXMgb3B0aW9uYWxcbiAgICAgICAgaW50ZXJuYWxBcGlGYWlsZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gMy4gVHJhbnNmb3JtIHRvIGNsZWFuIHJlc3BvbnNlXG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtVG9UcmFja2luZ0RldGFpbHMoc2hpcG1lbnQsIGxvY2F0aW9uVXBkYXRlcywgaW50ZXJuYWxBcGlGYWlsZWQpXG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHJhdyBUdXJ2byBBUEkgcmVzcG9uc2VzIGludG8gY2xlYW4gU2hpcG1lbnRUcmFja2luZyB0eXBlXG4gICAqXG4gICAqL1xuICBwcml2YXRlIHRyYW5zZm9ybVRvVHJhY2tpbmdEZXRhaWxzKFxuICAgIHNoaXBtZW50OiBUdXJ2b1NoaXBtZW50LFxuICAgIGxvY2F0aW9uVXBkYXRlczogTG9jYXRpb25VcGRhdGVbXSB8IG51bGwsXG4gICAgaW50ZXJuYWxBcGlGYWlsZWQ6IGJvb2xlYW5cbiAgKTogU2hpcG1lbnRUcmFja2luZyB7XG4gICAgY29uc3Qgc2hpcG1lbnREYXRhID0gc2hpcG1lbnQgYXMgVHVydm9TaGlwbWVudFxuICAgIHJldHVybiB7XG4gICAgICAvLyBJZGVudGlmaWVyc1xuICAgICAgc2hpcG1lbnRJZDogKHNoaXBtZW50RGF0YS5pZCBhcyBudW1iZXIpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgbG9hZFJlZmVyZW5jZU51bWJlcjogKHNoaXBtZW50RGF0YS5jdXN0b21JZCBhcyBzdHJpbmcpIHx8ICcnLFxuXG4gICAgICAvLyBTdGF0dXNcbiAgICAgIHN0YXR1czogKHNoaXBtZW50RGF0YS5zdGF0dXM/LmNvZGU/LnZhbHVlIGFzIHN0cmluZykgfHwgJ1Vua25vd24nLFxuICAgICAgbGF0ZUJ5OiBzaGlwbWVudC5zdGF0dXMucnVubmluZ0xhdGU/LmxhdGVEdXJhdGlvblN0cmluZyA/PyBudWxsLFxuICAgICAgaXNMYXRlOiAhIXNoaXBtZW50LnN0YXR1cy5ydW5uaW5nTGF0ZSxcblxuICAgICAgLy8gQ3VycmVudCBsb2NhdGlvbiAoaWYgdHJhY2tpbmcgYXZhaWxhYmxlKVxuICAgICAgY3VycmVudExvY2F0aW9uOiBzaGlwbWVudC5zdGF0dXMubG9jYXRpb24gPz8gbnVsbCxcbiAgICAgIGhhc0dwc1RyYWNraW5nOiBsb2NhdGlvblVwZGF0ZXMgIT09IG51bGwgJiYgIWludGVybmFsQXBpRmFpbGVkLFxuXG4gICAgICAvLyBQcm9ncmVzc1xuICAgICAgY29tcGxldGVkU3RvcHM6IDAsIC8vIFRPRE86IENvdW50IGZyb20gc2hpcG1lbnREYXRhLmdsb2JhbFJvdXRlXG4gICAgICB0b3RhbFN0b3BzOiAoc2hpcG1lbnREYXRhLmdsb2JhbFJvdXRlIGFzIHVua25vd25bXSk/Lmxlbmd0aCB8fCAwLCAvLyBUT0RPOiBwYXJzZSBmcm9tIHNoaXBtZW50RGF0YS5nbG9iYWxSb3V0ZVxuXG4gICAgICAvLyBTdG9wcyAob3JkZXJlZClcbiAgICAgIHN0b3BzOiBbXSwgLy8gVE9ETzogaW1wbG1lbnQgZ2xvYmFsIHJvdXRlIHBhcnNpbmdcblxuICAgICAgLy8gRVRBICYgRGlzdGFuY2VcbiAgICAgIGV0YVV0Yzogc2hpcG1lbnQuc3RhdHVzLmF0dHJpYnV0ZXM/LmV0YVZhbFV0YyA/PyBudWxsLFxuICAgICAgZXRhVGltZXpvbmU6IHNoaXBtZW50LnN0YXR1cy5hdHRyaWJ1dGVzPy5uZXh0X2V0YV9jYWxfdmFsX3RpbWV6b25lID8/IG51bGwsXG4gICAgICBtaWxlc1JlbWFpbmluZzogc2hpcG1lbnQuc3RhdHVzLmxvY2F0aW9uPy5uZXh0TWlsZXMgPz8gbnVsbCxcbiAgICAgIHRvdGFsTWlsZXM6IG51bGwsIC8vIFRPRE86IERlcml2ZSBmcm9tIGdsb2JhbCByb3V0ZSAtLSBmaW5kIGN1cnJlbnQgc3RvcCwgYW5kIGZpZ3VyZSBvdXQgdG90YWwgZGlzdGFuY2UgbGVhZGluZyB0byBpdFxuXG4gICAgICAvLyBHUFMgUGluZ3MgKG9ubHkgcG9wdWxhdGVkIGlmIGluY2x1ZGVHcHM6IHRydWUgYW5kIGhhc0dwc1RyYWNraW5nKVxuICAgICAgbG9jYXRpb25VcGRhdGVzOiAobG9jYXRpb25VcGRhdGVzIGFzIExvY2F0aW9uVXBkYXRlW10pIHx8IG51bGwsIC8vIFRPRE86IGltcGxtZW50IHdpdGggc2NyYXBlclxuICAgICAgcGluZ0NvdW50OiAobG9jYXRpb25VcGRhdGVzIGFzIExvY2F0aW9uVXBkYXRlW10pPy5sZW5ndGggfHwgbnVsbCwgLy8gVE9ETzogaW1wbGVtZW50IHdpdGggc2NyYXBlclxuICAgICAgbGFzdFBpbmdBdDpcbiAgICAgICAgKGxvY2F0aW9uVXBkYXRlcyBhcyBMb2NhdGlvblVwZGF0ZVtdKT8uWygobG9jYXRpb25VcGRhdGVzIGFzIExvY2F0aW9uVXBkYXRlW10pPy5sZW5ndGggfHwgMCkgLSAxXT8udGltZXN0YW1wIHx8XG4gICAgICAgIG51bGwsIC8vIFRPRE86IGltcGxlbWVudCB3aXRoIHNjcmFwZXJcblxuICAgICAgLy8gU2hpcG1lbnQgQXR0cmlidXRlc1xuICAgICAgbGFuZVR5cGU6IHNoaXBtZW50LmZsZXhBdHRyaWJ1dGVzPy5maW5kKGF0dHJpYnV0ZSA9PiBhdHRyaWJ1dGUubmFtZSA9PT0gJ0xhbmUgVHlwZScpPy52YWx1ZSA/PyBudWxsLFxuICAgICAgbWFuYWdlbWVudFR5cGU6IHNoaXBtZW50LmZsZXhBdHRyaWJ1dGVzPy5maW5kKGF0dHJpYnV0ZSA9PiBhdHRyaWJ1dGUubmFtZSA9PT0gJ01hbmFnZW1lbnQgVHlwZScpPy52YWx1ZSA/PyBudWxsLFxuICAgICAgY2FycmllcjpcbiAgICAgICAgKChcbiAgICAgICAgICAoKHNoaXBtZW50RGF0YS5jYXJyaWVyT3JkZXIgYXMgdW5rbm93bltdKT8uWzBdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KT8uY2FycmllciBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgICApPy5uYW1lIGFzIHN0cmluZykgfHwgbnVsbCxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tpbmdTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoaXBtZW50VHJhY2tpbmcvdHJhY2tpbmdTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFnQztBQUloQywyREFHOEI7QUFFOUIsNENBQTBFO0FBRzFFOzs7R0FHRztBQUNILE1BQWEsZUFBZTtJQUVoQjtJQUNBO0lBRlYsWUFDVSxTQUF5QixFQUN6QixXQUE2QjtRQUQ3QixjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7SUFDcEMsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBa0IsRUFBRSxVQUE4QixFQUFFO1FBQ3BFLHNDQUFzQztRQUN0QyxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUE7UUFFN0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksMkJBQWtCLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDMUMsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUE7UUFFdkMsa0RBQWtEO1FBQ2xELElBQUksZUFBZSxHQUE0QixJQUFJLENBQUE7UUFDbkQsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUE7UUFFN0IsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQztnQkFDSCxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ3pFLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLGdEQUFnRDtnQkFDaEQsaUJB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SSxJQUFJO1lBQ3ZELGNBQWMsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLElBQUksSUFBSTtZQUN0RCxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLElBQUksSUFBSTtZQUV4RCxvRUFBb0U7WUFDcEUsZUFBZSxFQUFFLGVBQWUsSUFBSSxJQUFJLEVBQUUsOEJBQThCO1lBQ3hFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSwrQkFBK0I7WUFDM0UsVUFBVSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLElBQUksSUFBSSxFQUFFLCtCQUErQjtZQUVySCxzQkFBc0I7WUFDdEIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsRUFBRSxLQUFLLElBQUksSUFBSTtZQUNuRyxjQUFjLEVBQUUsUUFBUSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUk7WUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSTtTQUNsRCxDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBeElELDBDQXdJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nXG5cbmltcG9ydCB7IFR1cnZvSW50ZXJuYWxBcGkgfSBmcm9tICcuLi9hcGkvdHVydm9JbnRlcm5hbEFwaSdcbmltcG9ydCB7IFR1cnZvUHVibGljQXBpIH0gZnJvbSAnLi4vYXBpL3R1cnZvUHVibGljQXBpJ1xuaW1wb3J0IHtcbiAgZ2V0RmFjaWxpdHlNYXBwaW5nRm9yVHVydm9Mb2NhdGlvbklkLFxuICBnZXRSZXRpcmVkRmFjaWxpdHlNYXBwaW5nRm9yVHVydm9Mb2NhdGlvbklkLFxufSBmcm9tICcuLi9kYi9mYWNpbGl0eU1hcHBpbmcnXG5pbXBvcnQgeyBUdXJ2b1NoaXBtZW50IH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBUdXJ2b0RhdGVGb3JtYXRFcnJvciwgVHVydm9Ob3RGb3VuZEVycm9yIH0gZnJvbSAnLi4vdHlwZXMvZXJyb3JzJ1xuaW1wb3J0IHsgR2V0VHJhY2tpbmdPcHRpb25zLCBMb2NhdGlvblVwZGF0ZSwgU2hpcG1lbnRUcmFja2luZywgU3RvcCB9IGZyb20gJy4uL3R5cGVzL3RyYWNraW5nJ1xuXG4vKipcbiAqIFRyYWNraW5nU2VydmljZSBvcmNoZXN0cmF0ZXMgY2FsbHMgdG8gcHVibGljIGFuZCBpbnRlcm5hbCBBUElzXG4gKiB0byBwcm92aWRlIGEgdW5pZmllZCBzaGlwbWVudCB0cmFja2luZyBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFja2luZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHB1YmxpY0FwaTogVHVydm9QdWJsaWNBcGksXG4gICAgcHJpdmF0ZSBpbnRlcm5hbEFwaTogVHVydm9JbnRlcm5hbEFwaVxuICApIHt9XG5cbiAgLyoqXG4gICAqIE1haW4gZW50cnkgcG9pbnQgLSBjb21iaW5lcyBhbGwgQVBJIGRhdGEgdG8gcHJvZHVjZSBTaGlwbWVudFRyYWNraW5nXG4gICAqXG4gICAqIEBwYXJhbSBzaGlwbWVudElkIC0gVGhlIHNoaXBtZW50IElEIHRvIHRyYWNrXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVHJhY2tpbmcgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBDb21wbGV0ZSBzaGlwbWVudCB0cmFja2luZyBpbmZvcm1hdGlvblxuICAgKi9cbiAgYXN5bmMgZ2V0VHJhY2tpbmcoc2hpcG1lbnRJZDogc3RyaW5nLCBvcHRpb25zOiBHZXRUcmFja2luZ09wdGlvbnMgPSB7fSk6IFByb21pc2U8U2hpcG1lbnRUcmFja2luZz4ge1xuICAgIC8vIDEuIEZldGNoIHB1YmxpYyBBUEkgZGF0YSAocmVxdWlyZWQpXG4gICAgY29uc3Qgc2hpcG1lbnRSZXN1bHQgPSBhd2FpdCB0aGlzLnB1YmxpY0FwaS5nZXRTaGlwbWVudCh7IHNoaXBtZW50SWQ6IHBhcnNlSW50KHNoaXBtZW50SWQpIH0pXG5cbiAgICBpZiAoIXNoaXBtZW50UmVzdWx0LmRldGFpbHMpIHtcbiAgICAgIHRocm93IG5ldyBUdXJ2b05vdEZvdW5kRXJyb3Ioc2hpcG1lbnRJZClcbiAgICB9XG5cbiAgICBjb25zdCBzaGlwbWVudCA9IHNoaXBtZW50UmVzdWx0LmRldGFpbHNcblxuICAgIC8vIDIuIEZldGNoIGludGVybmFsIEFQSSBkYXRhIChvcHRpb25hbCwgbWF5IGZhaWwpXG4gICAgbGV0IGxvY2F0aW9uVXBkYXRlczogTG9jYXRpb25VcGRhdGVbXSB8IG51bGwgPSBudWxsXG4gICAgbGV0IGludGVybmFsQXBpRmFpbGVkID0gZmFsc2VcblxuICAgIGlmIChvcHRpb25zLmluY2x1ZGVHcHMgIT09IGZhbHNlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBsb2NhdGlvblVwZGF0ZXMgPSBhd2FpdCB0aGlzLmludGVybmFsQXBpLmdldExvY2F0aW9uVXBkYXRlcyhzaGlwbWVudElkKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gTG9nIGJ1dCBkb24ndCBmYWlsIC0gaW50ZXJuYWwgQVBJIGlzIG9wdGlvbmFsXG4gICAgICAgIGludGVybmFsQXBpRmFpbGVkID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDMuIFRyYW5zZm9ybSB0byBjbGVhbiByZXNwb25zZVxuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybVRvVHJhY2tpbmdEZXRhaWxzKHNoaXBtZW50LCBsb2NhdGlvblVwZGF0ZXMsIGludGVybmFsQXBpRmFpbGVkKVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSByYXcgVHVydm8gQVBJIHJlc3BvbnNlcyBpbnRvIGNsZWFuIFNoaXBtZW50VHJhY2tpbmcgdHlwZVxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB0cmFuc2Zvcm1Ub1RyYWNraW5nRGV0YWlscyhcbiAgICBzaGlwbWVudDogVHVydm9TaGlwbWVudCxcbiAgICBsb2NhdGlvblVwZGF0ZXM6IExvY2F0aW9uVXBkYXRlW10gfCBudWxsLFxuICAgIGludGVybmFsQXBpRmFpbGVkOiBib29sZWFuXG4gICk6IFByb21pc2U8U2hpcG1lbnRUcmFja2luZz4ge1xuICAgIGNvbnN0IHNoaXBtZW50RGF0YSA9IHNoaXBtZW50IGFzIFR1cnZvU2hpcG1lbnRcblxuICAgIC8vIEZpbHRlciBvdXQgZGVsZXRlZCBlbnRyaWVzIGZyb20gdHVydm8gZGF0YVxuICAgIGNvbnN0IGdsb2JhbFJvdXRlID0gc2hpcG1lbnREYXRhLmdsb2JhbFJvdXRlPy5maWx0ZXIocm91dGUgPT4gcm91dGUuZGVsZXRlZCAhPT0gZmFsc2UpXG4gICAgY29uc3QgY2Fycmllck9yZGVyID0gc2hpcG1lbnREYXRhLmNhcnJpZXJPcmRlcj8uZmlsdGVyKG9yZGVyID0+IG9yZGVyLmRlbGV0ZWQgIT09IGZhbHNlKVxuXG4gICAgLy8gTWFwIGdsb2JhbCByb3V0ZSB0byBzdG9wcyBhcnJheVxuICAgIGNvbnN0IGFsbFN0b3BzOiBTdG9wW10gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHNoaXBtZW50Lmdsb2JhbFJvdXRlXG4gICAgICAgIC5maWx0ZXIocm91dGVTdG9wID0+ICFyb3V0ZVN0b3AuZGVsZXRlZClcbiAgICAgICAgLm1hcChhc3luYyByb3V0ZVN0b3AgPT4ge1xuICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBhY3R1YWxseSBnZXR0aW5nIElTTywgZmFpbCBpZiB3ZSBkb24ndFxuICAgICAgICAgIGNvbnN0IGFwcG9pbnRtZW50RGF0ZVRpbWUgPSBEYXRlVGltZS5mcm9tSVNPKHJvdXRlU3RvcC5hcHBvaW50bWVudC5kYXRlKS50b1VUQygpLnRvSVNPKClcbiAgICAgICAgICBpZiAoIWFwcG9pbnRtZW50RGF0ZVRpbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUdXJ2b0RhdGVGb3JtYXRFcnJvcihgZXhwZWN0ZWQgSVNPIGRhdGUgYnV0IGdvdCAke3JvdXRlU3RvcC5hcHBvaW50bWVudC5kYXRlfWApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQWRkaXRpb25hbCBjaGVjayBmb3IgYSByZXRpcmVkIGxvY2F0aW9uIG1hcHBpbmcgdG8gZ2V0IGEgZmFjaWxpdHkgaWQsXG4gICAgICAgICAgLy8gZm9yIHRoZSBjYXNlIGEgZmFjaWxpdHkgaGFzIG1vdmVkL2JlZW4gZ2l2ZW4gYSBuZXcgZW50cnkgaW4gdHVydm8uXG4gICAgICAgICAgY29uc3QgZmFjaWxpdHlJZCA9XG4gICAgICAgICAgICAoYXdhaXQgZ2V0RmFjaWxpdHlNYXBwaW5nRm9yVHVydm9Mb2NhdGlvbklkKHJvdXRlU3RvcC5sb2NhdGlvbi5pZCkpPy5mYWNpbGl0eUlkID8/XG4gICAgICAgICAgICAoYXdhaXQgZ2V0UmV0aXJlZEZhY2lsaXR5TWFwcGluZ0ZvclR1cnZvTG9jYXRpb25JZChyb3V0ZVN0b3AubG9jYXRpb24uaWQpKT8uZmFjaWxpdHlJZCA/P1xuICAgICAgICAgICAgbnVsbFxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0b3BOdW1iZXI6IHJvdXRlU3RvcC5zZXF1ZW5jZSxcbiAgICAgICAgICAgIGFwcG9pbnRtZW50RGF0ZVRpbWUsXG4gICAgICAgICAgICBhcHBvaW50bWVudExvY2FsVGltZVpvbmU6IHJvdXRlU3RvcC5hcHBvaW50bWVudC50aW1lWm9uZSxcbiAgICAgICAgICAgIGxvY2F0aW9uTmFtZTogcm91dGVTdG9wLm5hbWUsXG4gICAgICAgICAgICBleHRlcm5hbExvY2F0aW9uSWQ6IHJvdXRlU3RvcC5sb2NhdGlvbi5pZC50b1N0cmluZygpLFxuICAgICAgICAgICAgZmFjaWxpdHlJZCxcbiAgICAgICAgICAgIGV4dGVybmFsU3RvcElkOiByb3V0ZVN0b3AuaWQ/LnRvU3RyaW5nKCkgPz8gbnVsbCxcbiAgICAgICAgICAgIHN0b3BTZXJ2aWNlVHlwZTogcm91dGVTdG9wLnN0b3BUeXBlLnZhbHVlID09PSAnUGlja3VwJyA/ICdwaWNrdXAnIDogJ2RlbGl2ZXJ5JyxcbiAgICAgICAgICAgIGlzQ29tcGxldGVkOiByb3V0ZVN0b3Auc3RhdGUgPT09ICdDT01QTEVURUQnLFxuICAgICAgICAgICAgbG9jYXRpb25JZDogcm91dGVTdG9wLmxvY2F0aW9uLmlkLFxuICAgICAgICAgICAgZXRhVG9TdG9wOiByb3V0ZVN0b3AuZXRhVG9TdG9wPy5ldGFWYWx1ZSA/PyBudWxsLFxuICAgICAgICAgICAgbWlsZXNSZW1haW5pbmdUb1N0b3A6IHJvdXRlU3RvcC5ldGFUb1N0b3A/Lm5leHRNaWxlcyA/PyBudWxsLFxuICAgICAgICAgICAgdG90YWxNaWxlc1RvU3RvcDogcm91dGVTdG9wLmRpc3RhbmNlPy52YWx1ZSA/PyBudWxsLFxuICAgICAgICAgICAgLy8gVE9ETzogYWN0dWFsIGFycml2YWwgdGltZSAtIHRpbWUgdW5kZXIgYXR0cmlidXRlcyB1bmRlciBnbG9iYWwgcm91dGVcbiAgICAgICAgICAgIC8vIFRPRE86IGFjdHVhbCBkZXBhcnR1cmUgdGltZVxuICAgICAgICAgICAgLy8gVE9ETzogYWRkcmVzcywgY2l0eSwgc3RhdGUgLSAgYWRkcmVzcyB1bmRlciBnbG9iYWxyb3V0ZVxuICAgICAgICAgICAgLy8gVE9ETzogYXNrIGFib3V0IHdoYXQgd2Ugd2FudCB3aGVuIHdlIGhhdmUgbXVsdGlwbGUgZW50cmllcyBmb3IgdGhlIGFycml2YWwvZGVwYXJ0dXJlP1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICApXG5cbiAgICBjb25zdCBhbGxTdG9wc09yZGVyZWQgPSBhbGxTdG9wcy50b1NvcnRlZCgoYSwgYikgPT4gYS5zdG9wTnVtYmVyIC0gYi5zdG9wTnVtYmVyKVxuICAgIGNvbnN0IG5leHRTdG9wID0gYWxsU3RvcHNPcmRlcmVkLmZpbmQoc3RvcCA9PiAhc3RvcC5pc0NvbXBsZXRlZCkgPz8gbnVsbFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC8vIElkZW50aWZpZXJzXG4gICAgICBzaGlwbWVudElkOiAoc2hpcG1lbnREYXRhLmlkIGFzIG51bWJlcik/LnRvU3RyaW5nKCkgfHwgJycsXG4gICAgICBsb2FkUmVmZXJlbmNlTnVtYmVyOiAoc2hpcG1lbnREYXRhLmN1c3RvbUlkIGFzIHN0cmluZykgfHwgJycsXG5cbiAgICAgIC8vIFN0YXR1c1xuICAgICAgc3RhdHVzOiAoc2hpcG1lbnREYXRhLnN0YXR1cz8uY29kZT8udmFsdWUgYXMgc3RyaW5nKSB8fCAnVW5rbm93bicsXG4gICAgICBsYXRlQnlNaW51dGVzOiBzaGlwbWVudC5zdGF0dXMucnVubmluZ0xhdGU/LmxhdGVEdXJhdGlvbiA/PyBudWxsLFxuICAgICAgaXNMYXRlOiAhIXNoaXBtZW50LnN0YXR1cy5ydW5uaW5nTGF0ZSxcblxuICAgICAgLy8gQ3VycmVudCBsb2NhdGlvbiAoaWYgdHJhY2tpbmcgYXZhaWxhYmxlKVxuICAgICAgY3VycmVudExvY2F0aW9uOiBzaGlwbWVudC5zdGF0dXMubG9jYXRpb24gPz8gbnVsbCwgLy8gVE9ETzogbWFrZSBzdXJlIHRoaXMgaXMgdGhlIHZhbHVlIHdlIGFjdHVhbGx5IHdhbnQsIHN0YXR1cyBsb2NhdGlvbiBtYXkgbm90IGJlIGl0XG4gICAgICBoYXNHcHNUcmFja2luZzogbG9jYXRpb25VcGRhdGVzICE9PSBudWxsICYmICFpbnRlcm5hbEFwaUZhaWxlZCxcblxuICAgICAgLy8gUHJvZ3Jlc3NcbiAgICAgIGNvbXBsZXRlZFN0b3BzOiBhbGxTdG9wc09yZGVyZWQuZmlsdGVyKHN0b3AgPT4gc3RvcC5pc0NvbXBsZXRlZCkubGVuZ3RoIHx8IDAsXG4gICAgICB0b3RhbFN0b3BzOiBnbG9iYWxSb3V0ZT8ubGVuZ3RoIHx8IDAsXG5cbiAgICAgIC8vIFN0b3BzIChvcmRlcmVkKVxuICAgICAgc3RvcHM6IGFsbFN0b3BzT3JkZXJlZCxcblxuICAgICAgLy8gRVRBICYgRGlzdGFuY2VcbiAgICAgIGV0YVV0YzogbmV4dFN0b3A/LmV0YVRvU3RvcCA/PyBudWxsLFxuICAgICAgZXRhVGltZXpvbmU6IG5leHRTdG9wPy5hcHBvaW50bWVudExvY2FsVGltZVpvbmUgPz8gbnVsbCxcbiAgICAgIG1pbGVzUmVtYWluaW5nOiBuZXh0U3RvcD8ubWlsZXNSZW1haW5pbmdUb1N0b3AgPz8gbnVsbCxcbiAgICAgIHRvdGFsTWlsZXNUb05leHRTdG9wOiBuZXh0U3RvcD8udG90YWxNaWxlc1RvU3RvcCA/PyBudWxsLFxuXG4gICAgICAvLyBHUFMgUGluZ3MgKG9ubHkgcG9wdWxhdGVkIGlmIGluY2x1ZGVHcHM6IHRydWUgYW5kIGhhc0dwc1RyYWNraW5nKVxuICAgICAgbG9jYXRpb25VcGRhdGVzOiBsb2NhdGlvblVwZGF0ZXMgfHwgbnVsbCwgLy8gVE9ETzogaW1wbG1lbnQgd2l0aCBzY3JhcGVyXG4gICAgICBwaW5nQ291bnQ6IGxvY2F0aW9uVXBkYXRlcz8ubGVuZ3RoIHx8IG51bGwsIC8vIFRPRE86IGltcGxlbWVudCB3aXRoIHNjcmFwZXJcbiAgICAgIGxhc3RQaW5nQXQ6IGxvY2F0aW9uVXBkYXRlcz8uWyhsb2NhdGlvblVwZGF0ZXM/Lmxlbmd0aCB8fCAwKSAtIDFdPy50aW1lc3RhbXAgfHwgbnVsbCwgLy8gVE9ETzogaW1wbGVtZW50IHdpdGggc2NyYXBlclxuXG4gICAgICAvLyBTaGlwbWVudCBBdHRyaWJ1dGVzXG4gICAgICBsYW5lVHlwZTogc2hpcG1lbnQuZmxleEF0dHJpYnV0ZXM/LmZpbmQoYXR0cmlidXRlID0+IGF0dHJpYnV0ZS5uYW1lID09PSAnTGFuZSBUeXBlJyk/LnZhbHVlID8/IG51bGwsXG4gICAgICBtYW5hZ2VtZW50VHlwZTogc2hpcG1lbnQuZmxleEF0dHJpYnV0ZXM/LmZpbmQoYXR0cmlidXRlID0+IGF0dHJpYnV0ZS5uYW1lID09PSAnTWFuYWdlbWVudCBUeXBlJyk/LnZhbHVlID8/IG51bGwsXG4gICAgICBjYXJyaWVyOiBjYXJyaWVyT3JkZXI/LlswXT8uY2Fycmllcj8ubmFtZSB8fCBudWxsLFxuICAgIH1cbiAgfVxufVxuIl19
@@ -33,3 +33,9 @@ export declare class TurvoPartialDataError extends Error {
33
33
  export declare class NoSecretError extends Error {
34
34
  constructor(path: string);
35
35
  }
36
+ /**
37
+ * Error thrown when a date format from Turvo is invalid
38
+ */
39
+ export declare class TurvoDateFormatError extends Error {
40
+ constructor(message: string);
41
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NoSecretError = exports.TurvoPartialDataError = exports.TurvoRateLimitError = exports.TurvoAuthError = exports.TurvoNotFoundError = void 0;
3
+ exports.TurvoDateFormatError = exports.NoSecretError = exports.TurvoPartialDataError = exports.TurvoRateLimitError = exports.TurvoAuthError = exports.TurvoNotFoundError = void 0;
4
4
  /**
5
5
  * Shipment not found in Turvo
6
6
  */
@@ -60,4 +60,14 @@ class NoSecretError extends Error {
60
60
  }
61
61
  }
62
62
  exports.NoSecretError = NoSecretError;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsS0FBSztJQUNmO0lBQTVCLFlBQTRCLFVBQWtCO1FBQzVDLEtBQUssQ0FBQyxnQ0FBZ0MsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUR6QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRTVDLElBQUksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUE7SUFDbEMsQ0FBQztDQUNGO0FBTEQsZ0RBS0M7QUFFRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLEtBQUs7SUFDdkMsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxnQ0FBZ0MsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFBO0lBQzlCLENBQUM7Q0FDRjtBQUxELHdDQUtDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLEtBQUs7SUFDaEI7SUFBNUIsWUFBNEIsVUFBbUI7UUFDN0MsS0FBSyxDQUFDLHdCQUF3QixVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixVQUFVLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUQ5RCxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBRTdDLElBQUksQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUE7SUFDbkMsQ0FBQztDQUNGO0FBTEQsa0RBS0M7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLEtBQUs7SUFFNUI7SUFDQTtJQUZsQixZQUNrQixXQUFvQixFQUNwQixVQUFvQjtRQUVwQyxLQUFLLENBQUMsa0NBQWtDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUE7UUFIekUsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQUdwQyxJQUFJLENBQUMsSUFBSSxHQUFHLHVCQUF1QixDQUFBO0lBQ3JDLENBQUM7Q0FDRjtBQVJELHNEQVFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxLQUFLO0lBQ3RDLFlBQVksSUFBWTtRQUN0QixLQUFLLENBQUMsNEJBQTRCLElBQUksRUFBRSxDQUFDLENBQUE7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUE7SUFDN0IsQ0FBQztDQUNGO0FBTEQsc0NBS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNoaXBtZW50IG5vdCBmb3VuZCBpbiBUdXJ2b1xuICovXG5leHBvcnQgY2xhc3MgVHVydm9Ob3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc2hpcG1lbnRJZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFNoaXBtZW50IG5vdCBmb3VuZCBpbiBUdXJ2bzogJHtzaGlwbWVudElkfWApXG4gICAgdGhpcy5uYW1lID0gJ1R1cnZvTm90Rm91bmRFcnJvcidcbiAgfVxufVxuXG4vKipcbiAqIEF1dGhlbnRpY2F0aW9uIGZhaWxlZCAoaW52YWxpZCBjcmVkZW50aWFscywgZXhwaXJlZCB0b2tlbilcbiAqL1xuZXhwb3J0IGNsYXNzIFR1cnZvQXV0aEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgVHVydm8gYXV0aGVudGljYXRpb24gZmFpbGVkOiAke21lc3NhZ2V9YClcbiAgICB0aGlzLm5hbWUgPSAnVHVydm9BdXRoRXJyb3InXG4gIH1cbn1cblxuLyoqXG4gKiBSYXRlIGxpbWl0ZWQgYnkgVHVydm9cbiAqL1xuZXhwb3J0IGNsYXNzIFR1cnZvUmF0ZUxpbWl0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSByZXRyeUFmdGVyPzogbnVtYmVyKSB7XG4gICAgc3VwZXIoYFJhdGUgbGltaXRlZCBieSBUdXJ2byR7cmV0cnlBZnRlciA/IGAuIFJldHJ5IGFmdGVyICR7cmV0cnlBZnRlcn0gc2Vjb25kc2AgOiAnJ31gKVxuICAgIHRoaXMubmFtZSA9ICdUdXJ2b1JhdGVMaW1pdEVycm9yJ1xuICB9XG59XG5cbi8qKlxuICogSW50ZXJuYWwgQVBJIGZhaWxlZCBidXQgcHVibGljIEFQSSBzdWNjZWVkZWQuXG4gKiBDb250YWlucyBwYXJ0aWFsIGRhdGEgaW4gYHBhcnRpYWxEYXRhYCBmaWVsZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFR1cnZvUGFydGlhbERhdGFFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHBhcnRpYWxEYXRhOiB1bmtub3duLFxuICAgIHB1YmxpYyByZWFkb25seSBmYWlsZWRBcGlzOiBzdHJpbmdbXVxuICApIHtcbiAgICBzdXBlcihgVHVydm8gaW50ZXJuYWwgQVBJIGZhaWxlZCBmb3I6ICR7ZmFpbGVkQXBpcy5qb2luKCcsICcpfS4gUGFydGlhbCBkYXRhIGF2YWlsYWJsZS5gKVxuICAgIHRoaXMubmFtZSA9ICdUdXJ2b1BhcnRpYWxEYXRhRXJyb3InXG4gIH1cbn1cblxuLyoqXG4gKiBFcnJvciB0aHJvd24gd2hlbiBUdXJ2byBzZWNyZXRzIGNhbm5vdCBiZSByZXRyaWV2ZWQgZnJvbSBBV1MgU2VjcmV0cyBNYW5hZ2VyXG4gKi9cbmV4cG9ydCBjbGFzcyBOb1NlY3JldEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwYXRoOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgTm8gc2VjcmV0IGZvdW5kIGF0IHBhdGg6ICR7cGF0aH1gKVxuICAgIHRoaXMubmFtZSA9ICdOb1NlY3JldEVycm9yJ1xuICB9XG59XG4iXX0=
63
+ /**
64
+ * Error thrown when a date format from Turvo is invalid
65
+ */
66
+ class TurvoDateFormatError extends Error {
67
+ constructor(message) {
68
+ super(message);
69
+ this.name = 'TurvoDateFormatError';
70
+ }
71
+ }
72
+ exports.TurvoDateFormatError = TurvoDateFormatError;
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsS0FBSztJQUNmO0lBQTVCLFlBQTRCLFVBQWtCO1FBQzVDLEtBQUssQ0FBQyxnQ0FBZ0MsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUR6QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRTVDLElBQUksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUE7SUFDbEMsQ0FBQztDQUNGO0FBTEQsZ0RBS0M7QUFFRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLEtBQUs7SUFDdkMsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxnQ0FBZ0MsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFBO0lBQzlCLENBQUM7Q0FDRjtBQUxELHdDQUtDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLEtBQUs7SUFDaEI7SUFBNUIsWUFBNEIsVUFBbUI7UUFDN0MsS0FBSyxDQUFDLHdCQUF3QixVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixVQUFVLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUQ5RCxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBRTdDLElBQUksQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUE7SUFDbkMsQ0FBQztDQUNGO0FBTEQsa0RBS0M7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLEtBQUs7SUFFNUI7SUFDQTtJQUZsQixZQUNrQixXQUFvQixFQUNwQixVQUFvQjtRQUVwQyxLQUFLLENBQUMsa0NBQWtDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUE7UUFIekUsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQUdwQyxJQUFJLENBQUMsSUFBSSxHQUFHLHVCQUF1QixDQUFBO0lBQ3JDLENBQUM7Q0FDRjtBQVJELHNEQVFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxLQUFLO0lBQ3RDLFlBQVksSUFBWTtRQUN0QixLQUFLLENBQUMsNEJBQTRCLElBQUksRUFBRSxDQUFDLENBQUE7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUE7SUFDN0IsQ0FBQztDQUNGO0FBTEQsc0NBS0M7QUFFRDs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsS0FBSztJQUM3QyxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQTtJQUNwQyxDQUFDO0NBQ0Y7QUFMRCxvREFLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2hpcG1lbnQgbm90IGZvdW5kIGluIFR1cnZvXG4gKi9cbmV4cG9ydCBjbGFzcyBUdXJ2b05vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzaGlwbWVudElkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgU2hpcG1lbnQgbm90IGZvdW5kIGluIFR1cnZvOiAke3NoaXBtZW50SWR9YClcbiAgICB0aGlzLm5hbWUgPSAnVHVydm9Ob3RGb3VuZEVycm9yJ1xuICB9XG59XG5cbi8qKlxuICogQXV0aGVudGljYXRpb24gZmFpbGVkIChpbnZhbGlkIGNyZWRlbnRpYWxzLCBleHBpcmVkIHRva2VuKVxuICovXG5leHBvcnQgY2xhc3MgVHVydm9BdXRoRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKGBUdXJ2byBhdXRoZW50aWNhdGlvbiBmYWlsZWQ6ICR7bWVzc2FnZX1gKVxuICAgIHRoaXMubmFtZSA9ICdUdXJ2b0F1dGhFcnJvcidcbiAgfVxufVxuXG4vKipcbiAqIFJhdGUgbGltaXRlZCBieSBUdXJ2b1xuICovXG5leHBvcnQgY2xhc3MgVHVydm9SYXRlTGltaXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJldHJ5QWZ0ZXI/OiBudW1iZXIpIHtcbiAgICBzdXBlcihgUmF0ZSBsaW1pdGVkIGJ5IFR1cnZvJHtyZXRyeUFmdGVyID8gYC4gUmV0cnkgYWZ0ZXIgJHtyZXRyeUFmdGVyfSBzZWNvbmRzYCA6ICcnfWApXG4gICAgdGhpcy5uYW1lID0gJ1R1cnZvUmF0ZUxpbWl0RXJyb3InXG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBBUEkgZmFpbGVkIGJ1dCBwdWJsaWMgQVBJIHN1Y2NlZWRlZC5cbiAqIENvbnRhaW5zIHBhcnRpYWwgZGF0YSBpbiBgcGFydGlhbERhdGFgIGZpZWxkLlxuICovXG5leHBvcnQgY2xhc3MgVHVydm9QYXJ0aWFsRGF0YUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFydGlhbERhdGE6IHVua25vd24sXG4gICAgcHVibGljIHJlYWRvbmx5IGZhaWxlZEFwaXM6IHN0cmluZ1tdXG4gICkge1xuICAgIHN1cGVyKGBUdXJ2byBpbnRlcm5hbCBBUEkgZmFpbGVkIGZvcjogJHtmYWlsZWRBcGlzLmpvaW4oJywgJyl9LiBQYXJ0aWFsIGRhdGEgYXZhaWxhYmxlLmApXG4gICAgdGhpcy5uYW1lID0gJ1R1cnZvUGFydGlhbERhdGFFcnJvcidcbiAgfVxufVxuXG4vKipcbiAqIEVycm9yIHRocm93biB3aGVuIFR1cnZvIHNlY3JldHMgY2Fubm90IGJlIHJldHJpZXZlZCBmcm9tIEFXUyBTZWNyZXRzIE1hbmFnZXJcbiAqL1xuZXhwb3J0IGNsYXNzIE5vU2VjcmV0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHBhdGg6IHN0cmluZykge1xuICAgIHN1cGVyKGBObyBzZWNyZXQgZm91bmQgYXQgcGF0aDogJHtwYXRofWApXG4gICAgdGhpcy5uYW1lID0gJ05vU2VjcmV0RXJyb3InXG4gIH1cbn1cblxuLyoqXG4gKiBFcnJvciB0aHJvd24gd2hlbiBhIGRhdGUgZm9ybWF0IGZyb20gVHVydm8gaXMgaW52YWxpZFxuICovXG5leHBvcnQgY2xhc3MgVHVydm9EYXRlRm9ybWF0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgdGhpcy5uYW1lID0gJ1R1cnZvRGF0ZUZvcm1hdEVycm9yJ1xuICB9XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Facility mapping types for Turvo location to Veho facility mapping
3
+ */
4
+ export interface VehoTurvoLocationMap {
5
+ facilityCode?: string | null;
6
+ facilityId: string;
7
+ shortCode?: string | null;
8
+ turvoLocationId?: number | null;
9
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjaWxpdHlNYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2ZhY2lsaXR5TWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGYWNpbGl0eSBtYXBwaW5nIHR5cGVzIGZvciBUdXJ2byBsb2NhdGlvbiB0byBWZWhvIGZhY2lsaXR5IG1hcHBpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZWhvVHVydm9Mb2NhdGlvbk1hcCB7XG4gIGZhY2lsaXR5Q29kZT86IHN0cmluZyB8IG51bGxcbiAgZmFjaWxpdHlJZDogc3RyaW5nXG4gIHNob3J0Q29kZT86IHN0cmluZyB8IG51bGxcbiAgdHVydm9Mb2NhdGlvbklkPzogbnVtYmVyIHwgbnVsbFxufVxuIl19