mts-booking-library 1.4.0 → 2.0.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.
- package/lib/SubscriptionBooking.d.ts +0 -0
 - package/lib/SubscriptionBooking.js +148 -0
 - package/lib/booking/booking.d.ts +12 -9
 - package/lib/booking/booking.js +44 -9
 - package/lib/booking/journeyBooking.d.ts +8 -21
 - package/lib/booking/journeyBooking.js +21 -58
 - package/lib/booking/serviceBooking.d.ts +9 -22
 - package/lib/booking/serviceBooking.js +23 -58
 - package/lib/booking/subscriptionBooking.d.ts +8 -21
 - package/lib/booking/subscriptionBooking.js +20 -55
 - package/lib/booking/tplBooking.d.ts +13 -31
 - package/lib/booking/tplBooking.js +29 -68
 - package/lib/index.d.ts +8 -7
 - package/lib/index.js +3 -3
 - package/lib/mtsStorage.d.ts +1 -3
 - package/lib/mtsStorage.js +4 -5
 - package/lib/types/common/Cart.d.ts +0 -5
 - package/lib/types/common/Payment.d.ts +3 -3
 - package/lib/types/common/Payment.js +1 -1
 - package/lib/types/common/Person.d.ts +8 -8
 - package/lib/types/common/Person.js +3 -3
 - package/lib/types/journeys/JourneyCart.d.ts +14 -9
 - package/lib/types/journeys/JourneyCart.js +1 -1
 - package/lib/types/services/ServiceCart.d.ts +4 -0
 - package/lib/types/tpl/SuperArea.d.ts +6 -0
 - package/lib/types/tpl/TplCart.d.ts +19 -0
 - package/lib/utils/apiCall.js +2 -2
 - package/lib/utils/testUtils.d.ts +8 -0
 - package/lib/utils/testUtils.js +19 -0
 - package/package.json +6 -6
 
| 
         @@ -35,8 +35,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge 
     | 
|
| 
       35 
35 
     | 
    
         
             
                });
         
     | 
| 
       36 
36 
     | 
    
         
             
            };
         
     | 
| 
       37 
37 
     | 
    
         
             
            var __generator = (this && this.__generator) || function (thisArg, body) {
         
     | 
| 
       38 
     | 
    
         
            -
                var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
         
     | 
| 
       39 
     | 
    
         
            -
                return g =  
     | 
| 
      
 38 
     | 
    
         
            +
                var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
         
     | 
| 
      
 39 
     | 
    
         
            +
                return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
         
     | 
| 
       40 
40 
     | 
    
         
             
                function verb(n) { return function (v) { return step([n, v]); }; }
         
     | 
| 
       41 
41 
     | 
    
         
             
                function step(op) {
         
     | 
| 
       42 
42 
     | 
    
         
             
                    if (f) throw new TypeError("Generator is already executing.");
         
     | 
| 
         @@ -99,11 +99,8 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       99 
99 
     | 
    
         
             
                        resellerId: resellerId,
         
     | 
| 
       100 
100 
     | 
    
         
             
                        dbType: dbType
         
     | 
| 
       101 
101 
     | 
    
         
             
                    }) || this;
         
     | 
| 
       102 
     | 
    
         
            -
                    // Set  
     | 
| 
       103 
     | 
    
         
            -
                    var  
     | 
| 
       104 
     | 
    
         
            -
                    if (cartId && restoreState) {
         
     | 
| 
       105 
     | 
    
         
            -
                        _this.cartId = cartId;
         
     | 
| 
       106 
     | 
    
         
            -
                    }
         
     | 
| 
      
 102 
     | 
    
         
            +
                    // Set cartGuid
         
     | 
| 
      
 103 
     | 
    
         
            +
                    var cartGuid = _this.getStorage().getState().cartGuid;
         
     | 
| 
       107 
104 
     | 
    
         
             
                    if (cartGuid && restoreState) {
         
     | 
| 
       108 
105 
     | 
    
         
             
                        _this.cartGuid = cartGuid;
         
     | 
| 
       109 
106 
     | 
    
         
             
                    }
         
     | 
| 
         @@ -120,16 +117,15 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       120 
117 
     | 
    
         
             
                };
         
     | 
| 
       121 
118 
     | 
    
         
             
                TplBooking.prototype.resetBooking = function () {
         
     | 
| 
       122 
119 
     | 
    
         
             
                    this.cart = undefined;
         
     | 
| 
       123 
     | 
    
         
            -
                    this.cartId = undefined;
         
     | 
| 
       124 
120 
     | 
    
         
             
                    this.cartGuid = undefined;
         
     | 
| 
       125 
121 
     | 
    
         
             
                    this.bookingStepsToStatus = new Map();
         
     | 
| 
       126 
122 
     | 
    
         
             
                    this.bookingDueDate = undefined;
         
     | 
| 
       127 
123 
     | 
    
         
             
                    try {
         
     | 
| 
       128 
     | 
    
         
            -
                        this.getStorage().getState(). 
     | 
| 
      
 124 
     | 
    
         
            +
                        this.getStorage().getState().updateCartGuid(undefined);
         
     | 
| 
       129 
125 
     | 
    
         
             
                    }
         
     | 
| 
       130 
126 
     | 
    
         
             
                    catch (e) {
         
     | 
| 
       131 
127 
     | 
    
         
             
                        if (this.config.ENV !== config_1.MTSEnvs.TEST) {
         
     | 
| 
       132 
     | 
    
         
            -
                            throw new Error("Error while deleting  
     | 
| 
      
 128 
     | 
    
         
            +
                            throw new Error("Error while deleting cartGuid from storage");
         
     | 
| 
       133 
129 
     | 
    
         
             
                        }
         
     | 
| 
       134 
130 
     | 
    
         
             
                        console.log(e);
         
     | 
| 
       135 
131 
     | 
    
         
             
                    }
         
     | 
| 
         @@ -145,7 +141,6 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       145 
141 
     | 
    
         
             
                                            cartDueDate.setSeconds(cartDueDate.getSeconds() + cart.bookingDueDateRemainingSeconds);
         
     | 
| 
       146 
142 
     | 
    
         
             
                                            if (cartDueDate > new Date() && !cart.hasIssuedTickets) {
         
     | 
| 
       147 
143 
     | 
    
         
             
                                                _this.cart = cart;
         
     | 
| 
       148 
     | 
    
         
            -
                                                _this.cartId = cart.id;
         
     | 
| 
       149 
144 
     | 
    
         
             
                                                _this.cartGuid = cart.guid;
         
     | 
| 
       150 
145 
     | 
    
         
             
                                                _this.bookingDueDate = cartDueDate; // See Booking class
         
     | 
| 
       151 
146 
     | 
    
         
             
                                                // Update the sellerId. This is particularly important in Linkavel
         
     | 
| 
         @@ -227,18 +222,17 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       227 
222 
     | 
    
         
             
                        });
         
     | 
| 
       228 
223 
     | 
    
         
             
                    });
         
     | 
| 
       229 
224 
     | 
    
         
             
                };
         
     | 
| 
       230 
     | 
    
         
            -
                // TODO: use v3_resources/superAreas
         
     | 
| 
       231 
225 
     | 
    
         
             
                /**
         
     | 
| 
       232 
226 
     | 
    
         
             
                 * This method fetches the list of super areas for a given city. A super area is a region of the city in which
         
     | 
| 
       233 
227 
     | 
    
         
             
                 * the TPL service is available at a certain price.
         
     | 
| 
       234 
228 
     | 
    
         
             
                 * @returns An array of {@link SuperArea} objects representing the SuperAreas if the call is successful, an {@link ErrorResponse} object otherwise.
         
     | 
| 
       235 
229 
     | 
    
         
             
                 */
         
     | 
| 
       236 
     | 
    
         
            -
                TplBooking.prototype.getSuperAreas = function ( 
     | 
| 
      
 230 
     | 
    
         
            +
                TplBooking.prototype.getSuperAreas = function (request) {
         
     | 
| 
       237 
231 
     | 
    
         
             
                    return __awaiter(this, void 0, void 0, function () {
         
     | 
| 
       238 
232 
     | 
    
         
             
                        var searchParams, url;
         
     | 
| 
       239 
233 
     | 
    
         
             
                        return __generator(this, function (_a) {
         
     | 
| 
       240 
     | 
    
         
            -
                            searchParams = new URLSearchParams({ cityId: cityId.toString() });
         
     | 
| 
       241 
     | 
    
         
            -
                            url = "".concat(this.config.API_ENDPOINT, "/ 
     | 
| 
      
 234 
     | 
    
         
            +
                            searchParams = new URLSearchParams(__assign(__assign({ includeBasicInfo: "true", includeAreaIds: "false", includeTariffIds: "false", includeRouteIds: "false" }, (request.cityId && { cityId: request.cityId.toString() })), (request.tripId && { tripId: request.tripId.toString() })));
         
     | 
| 
      
 235 
     | 
    
         
            +
                            url = "".concat(this.config.API_ENDPOINT, "/v3_resources/superAreas?").concat(searchParams);
         
     | 
| 
       242 
236 
     | 
    
         
             
                            return [2 /*return*/, this.callGetApi(url).then(function (response) {
         
     | 
| 
       243 
237 
     | 
    
         
             
                                    return (0, ErrorResponse_1.objectIsMTSErrorResponse)(response)
         
     | 
| 
       244 
238 
     | 
    
         
             
                                        ? response
         
     | 
| 
         @@ -320,36 +314,32 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       320 
314 
     | 
    
         
             
                };
         
     | 
| 
       321 
315 
     | 
    
         
             
                /**
         
     | 
| 
       322 
316 
     | 
    
         
             
                 * This method allows to create a TPL cart.
         
     | 
| 
       323 
     | 
    
         
            -
                 * @param tariffIdToQuantity A map that associates a tariff id (the one chosen by the user) to the number of tickets to buy for that tariff.
         
     | 
| 
       324 
     | 
    
         
            -
                 * @param currency The currency in which the ticket is priced.
         
     | 
| 
       325 
     | 
    
         
            -
                 * @param startDate The start date of the ticket. This is optional and should be used only for subscriptions.
         
     | 
| 
       326 
     | 
    
         
            -
                 * @param isCurrentPeriod Whether the subscription is for the current period. This is optional and should be used only for subscriptions.
         
     | 
| 
       327 
     | 
    
         
            -
                 * @param renewSubscriptionTicketPNR The PNR of the subscription ticket to renew. This is optional and should be used only for subscriptions.
         
     | 
| 
       328 
317 
     | 
    
         
             
                 */
         
     | 
| 
       329 
     | 
    
         
            -
                TplBooking.prototype.createTplCart = function ( 
     | 
| 
      
 318 
     | 
    
         
            +
                TplBooking.prototype.createTplCart = function (tplCart) {
         
     | 
| 
       330 
319 
     | 
    
         
             
                    return __awaiter(this, void 0, void 0, function () {
         
     | 
| 
       331 
320 
     | 
    
         
             
                        var url, processedTariffIdToQuantity, request;
         
     | 
| 
       332 
321 
     | 
    
         
             
                        var _this = this;
         
     | 
| 
       333 
322 
     | 
    
         
             
                        return __generator(this, function (_a) {
         
     | 
| 
       334 
323 
     | 
    
         
             
                            url = "".concat(this.config.API_ENDPOINT, "/v3_booking/tpl/carts");
         
     | 
| 
       335 
324 
     | 
    
         
             
                            processedTariffIdToQuantity = {};
         
     | 
| 
       336 
     | 
    
         
            -
                            tariffIdToQuantity.forEach(function (value, key) {
         
     | 
| 
      
 325 
     | 
    
         
            +
                            tplCart.tariffIdToQuantity.forEach(function (value, key) {
         
     | 
| 
       337 
326 
     | 
    
         
             
                                processedTariffIdToQuantity[key] = value;
         
     | 
| 
       338 
327 
     | 
    
         
             
                            });
         
     | 
| 
       339 
     | 
    
         
            -
                            request = __assign(__assign(__assign({ tariffIdToQuantity: processedTariffIdToQuantity, currency: currency }, (startDate !== undefined && { startDate: startDate })), (isCurrentPeriod !== undefined && { isCurrentPeriod: isCurrentPeriod })), (renewSubscriptionTicketPNR !== undefined && { 
     | 
| 
      
 328 
     | 
    
         
            +
                            request = __assign(__assign(__assign(__assign(__assign({ tariffIdToQuantity: processedTariffIdToQuantity, currency: tplCart.currency }, (tplCart.startDate !== undefined && { startDate: tplCart.startDate })), (tplCart.isCurrentPeriod !== undefined && { isCurrentPeriod: tplCart.isCurrentPeriod })), (tplCart.renewSubscriptionTicketPNR !== undefined && {
         
     | 
| 
      
 329 
     | 
    
         
            +
                                renewSubscriptionTicketPNR: tplCart.renewSubscriptionTicketPNR
         
     | 
| 
      
 330 
     | 
    
         
            +
                            })), (tplCart.otaResellerId !== undefined && { otaResellerId: tplCart.otaResellerId })), (tplCart.otaTicketPicture !== undefined && { otaTicketPicture: tplCart.otaTicketPicture }));
         
     | 
| 
       340 
331 
     | 
    
         
             
                            // Call the API
         
     | 
| 
       341 
332 
     | 
    
         
             
                            return [2 /*return*/, this.callPostApi(url, request).then(function (response) {
         
     | 
| 
       342 
333 
     | 
    
         
             
                                    // Check for errors
         
     | 
| 
       343 
334 
     | 
    
         
             
                                    if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
         
     | 
| 
       344 
     | 
    
         
            -
                                        // If there was an error, reset  
     | 
| 
      
 335 
     | 
    
         
            +
                                        // If there was an error, reset cartGuid and remove it from the mts-storage
         
     | 
| 
       345 
336 
     | 
    
         
             
                                        _this.resetBooking();
         
     | 
| 
       346 
337 
     | 
    
         
             
                                        return response;
         
     | 
| 
       347 
338 
     | 
    
         
             
                                    }
         
     | 
| 
       348 
339 
     | 
    
         
             
                                    _this.cart = response.cart;
         
     | 
| 
       349 
     | 
    
         
            -
                                    _this.cartId = response.cart.id;
         
     | 
| 
       350 
340 
     | 
    
         
             
                                    _this.cartGuid = response.cart.guid;
         
     | 
| 
       351 
     | 
    
         
            -
                                    // Save the  
     | 
| 
       352 
     | 
    
         
            -
                                    _this.getStorage().getState(). 
     | 
| 
      
 341 
     | 
    
         
            +
                                    // Save the cartGuid in the mts-storage
         
     | 
| 
      
 342 
     | 
    
         
            +
                                    _this.getStorage().getState().updateCartGuid(response.cart.guid);
         
     | 
| 
       353 
343 
     | 
    
         
             
                                    // Fill the booking process status
         
     | 
| 
       354 
344 
     | 
    
         
             
                                    _this.bookingStepsToStatus = (0, processBookingSteps_1.processBookingSteps)(response.cart.stepsToStatus);
         
     | 
| 
       355 
345 
     | 
    
         
             
                                    var cartDueDate = new Date();
         
     | 
| 
         @@ -362,7 +352,7 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       362 
352 
     | 
    
         
             
                        });
         
     | 
| 
       363 
353 
     | 
    
         
             
                    });
         
     | 
| 
       364 
354 
     | 
    
         
             
                };
         
     | 
| 
       365 
     | 
    
         
            -
                //#region  
     | 
| 
      
 355 
     | 
    
         
            +
                //#region PersonDetails data API
         
     | 
| 
       366 
356 
     | 
    
         
             
                /**
         
     | 
| 
       367 
357 
     | 
    
         
             
                 * @description This method shall be called when the user wants to retrieve information about the buyer and the passengers.
         
     | 
| 
       368 
358 
     | 
    
         
             
                 * @returns An object of type {@link GetBuyerPassengersDetailsResponse} containing the buyer and the passengers information,
         
     | 
| 
         @@ -396,39 +386,6 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       396 
386 
     | 
    
         
             
                        });
         
     | 
| 
       397 
387 
     | 
    
         
             
                    });
         
     | 
| 
       398 
388 
     | 
    
         
             
                };
         
     | 
| 
       399 
     | 
    
         
            -
                /**
         
     | 
| 
       400 
     | 
    
         
            -
                 * @description This method shall be called when the user wants to retrieve information about an esisting buyer.
         
     | 
| 
       401 
     | 
    
         
            -
                 * @param {GetBuyerRequest} request The object containing the parameters to search the buyer.
         
     | 
| 
       402 
     | 
    
         
            -
                 * @returns An object of type {@link Buyer} containing the buyer information, or an {@link ErrorResponse} object in case of error.
         
     | 
| 
       403 
     | 
    
         
            -
                 */
         
     | 
| 
       404 
     | 
    
         
            -
                TplBooking.prototype.getBuyer = function (request) {
         
     | 
| 
       405 
     | 
    
         
            -
                    return __awaiter(this, void 0, void 0, function () {
         
     | 
| 
       406 
     | 
    
         
            -
                        var buyerPassengersDetails, searchParams, url;
         
     | 
| 
       407 
     | 
    
         
            -
                        var _a;
         
     | 
| 
       408 
     | 
    
         
            -
                        return __generator(this, function (_b) {
         
     | 
| 
       409 
     | 
    
         
            -
                            // First check that it is possible to call this API
         
     | 
| 
       410 
     | 
    
         
            -
                            if (!this.cart) {
         
     | 
| 
       411 
     | 
    
         
            -
                                throw Error("Cart is not initialized yet");
         
     | 
| 
       412 
     | 
    
         
            -
                            }
         
     | 
| 
       413 
     | 
    
         
            -
                            buyerPassengersDetails = this.bookingStepsToStatus.get(booking_1.Booking.BookingSteps.BUYER_PASSENGERS);
         
     | 
| 
       414 
     | 
    
         
            -
                            if (!buyerPassengersDetails || !buyerPassengersDetails[0]) {
         
     | 
| 
       415 
     | 
    
         
            -
                                throw Error("The status of the cart does not allow to call this API");
         
     | 
| 
       416 
     | 
    
         
            -
                            }
         
     | 
| 
       417 
     | 
    
         
            -
                            if (!request.personId && !request.personCode && !request.phoneNumber) {
         
     | 
| 
       418 
     | 
    
         
            -
                                throw Error("At least one of the parameters personId, personCode or phoneNumber must be set");
         
     | 
| 
       419 
     | 
    
         
            -
                            }
         
     | 
| 
       420 
     | 
    
         
            -
                            searchParams = new URLSearchParams(__assign(__assign(__assign({}, (request.personId && { personId: (_a = request.personId) === null || _a === void 0 ? void 0 : _a.toString() })), (request.personCode && { personCode: request.personCode })), (request.phoneNumber && { phoneNumber: request.phoneNumber })));
         
     | 
| 
       421 
     | 
    
         
            -
                            url = "".concat(this.config.API_ENDPOINT, "/v3_customers/persons?").concat(searchParams);
         
     | 
| 
       422 
     | 
    
         
            -
                            return [2 /*return*/, this.callGetApi(url).then(function (response) {
         
     | 
| 
       423 
     | 
    
         
            -
                                    // Check for errors
         
     | 
| 
       424 
     | 
    
         
            -
                                    if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
         
     | 
| 
       425 
     | 
    
         
            -
                                        return response;
         
     | 
| 
       426 
     | 
    
         
            -
                                    }
         
     | 
| 
       427 
     | 
    
         
            -
                                    return response.persons[0];
         
     | 
| 
       428 
     | 
    
         
            -
                                })];
         
     | 
| 
       429 
     | 
    
         
            -
                        });
         
     | 
| 
       430 
     | 
    
         
            -
                    });
         
     | 
| 
       431 
     | 
    
         
            -
                };
         
     | 
| 
       432 
389 
     | 
    
         
             
                /**
         
     | 
| 
       433 
390 
     | 
    
         
             
                 * @description This method shall be called when the user wants to update the buyer information.
         
     | 
| 
       434 
391 
     | 
    
         
             
                 * @param buyerDetails The object containing the buyer information.
         
     | 
| 
         @@ -522,7 +479,7 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       522 
479 
     | 
    
         
             
                                    _c.label = 5;
         
     | 
| 
       523 
480 
     | 
    
         
             
                                case 5:
         
     | 
| 
       524 
481 
     | 
    
         
             
                                    url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction");
         
     | 
| 
       525 
     | 
    
         
            -
                                    return [2 /*return*/, this.callPostApi(url, __assign(__assign({}, request), {  
     | 
| 
      
 482 
     | 
    
         
            +
                                    return [2 /*return*/, this.callPostApi(url, __assign(__assign({}, request), { cartGuid: this.cartGuid })).then(function (response) {
         
     | 
| 
       526 
483 
     | 
    
         
             
                                            var _a, _b;
         
     | 
| 
       527 
484 
     | 
    
         
             
                                            if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
         
     | 
| 
       528 
485 
     | 
    
         
             
                                                return response;
         
     | 
| 
         @@ -557,7 +514,10 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       557 
514 
     | 
    
         
             
                            if (!discountsStep || !discountsStep[0]) {
         
     | 
| 
       558 
515 
     | 
    
         
             
                                throw Error("The status of the cart does not allow to call this API");
         
     | 
| 
       559 
516 
     | 
    
         
             
                            }
         
     | 
| 
       560 
     | 
    
         
            -
                            queryParams = new URLSearchParams({ 
     | 
| 
      
 517 
     | 
    
         
            +
                            queryParams = new URLSearchParams({
         
     | 
| 
      
 518 
     | 
    
         
            +
                                tripId: tripId.toString(),
         
     | 
| 
      
 519 
     | 
    
         
            +
                                cartGuid: this.cartGuid
         
     | 
| 
      
 520 
     | 
    
         
            +
                            });
         
     | 
| 
       561 
521 
     | 
    
         
             
                            url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/reduction?").concat(queryParams);
         
     | 
| 
       562 
522 
     | 
    
         
             
                            return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
         
     | 
| 
       563 
523 
     | 
    
         
             
                                    var _a, _b, _c;
         
     | 
| 
         @@ -626,7 +586,7 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       626 
586 
     | 
    
         
             
                                    _c.label = 5;
         
     | 
| 
       627 
587 
     | 
    
         
             
                                case 5:
         
     | 
| 
       628 
588 
     | 
    
         
             
                                    url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet");
         
     | 
| 
       629 
     | 
    
         
            -
                                    return [2 /*return*/, this.callPostApi(url, {  
     | 
| 
      
 589 
     | 
    
         
            +
                                    return [2 /*return*/, this.callPostApi(url, { cartGuid: this.cartGuid }).then(function (response) {
         
     | 
| 
       630 
590 
     | 
    
         
             
                                            var _a, _b;
         
     | 
| 
       631 
591 
     | 
    
         
             
                                            if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(response)) {
         
     | 
| 
       632 
592 
     | 
    
         
             
                                                return response;
         
     | 
| 
         @@ -656,7 +616,9 @@ var TplBooking = /** @class */ (function (_super) { 
     | 
|
| 
       656 
616 
     | 
    
         
             
                            if ((0, utils_1.isNullOrWhiteSpace)(this.cartGuid)) {
         
     | 
| 
       657 
617 
     | 
    
         
             
                                throw Error("Cart is not initialized yet");
         
     | 
| 
       658 
618 
     | 
    
         
             
                            }
         
     | 
| 
       659 
     | 
    
         
            -
                            queryParams = new URLSearchParams({ 
     | 
| 
      
 619 
     | 
    
         
            +
                            queryParams = new URLSearchParams({
         
     | 
| 
      
 620 
     | 
    
         
            +
                                cartGuid: this.cartGuid
         
     | 
| 
      
 621 
     | 
    
         
            +
                            });
         
     | 
| 
       660 
622 
     | 
    
         
             
                            url = "".concat(this.config.API_ENDPOINT, "/v3_booking/carts/payment/wallet?").concat(queryParams);
         
     | 
| 
       661 
623 
     | 
    
         
             
                            return [2 /*return*/, this.callDeleteApi(url).then(function (response) {
         
     | 
| 
       662 
624 
     | 
    
         
             
                                    var _a, _b, _c;
         
     | 
| 
         @@ -768,11 +730,10 @@ exports.TplBooking = TplBooking; 
     | 
|
| 
       768 
730 
     | 
    
         
             
                            case 3: return [2 /*return*/, booking];
         
     | 
| 
       769 
731 
     | 
    
         
             
                            case 4:
         
     | 
| 
       770 
732 
     | 
    
         
             
                                error_1 = _c.sent();
         
     | 
| 
       771 
     | 
    
         
            -
                                // Check if the error is due to an expired cart. In this case, delete the  
     | 
| 
      
 733 
     | 
    
         
            +
                                // Check if the error is due to an expired cart. In this case, delete the cartGuid from the mts-storage
         
     | 
| 
       772 
734 
     | 
    
         
             
                                // This error can occur when the user refreshes the page and the cart has expired
         
     | 
| 
       773 
735 
     | 
    
         
             
                                if ((0, ErrorResponse_1.objectIsMTSErrorResponse)(error_1) && error_1.mtsCode === 40053) {
         
     | 
| 
       774 
     | 
    
         
            -
                                    booking.getStorage().getState(). 
     | 
| 
       775 
     | 
    
         
            -
                                    booking.cartId = undefined;
         
     | 
| 
      
 736 
     | 
    
         
            +
                                    booking.getStorage().getState().updateCartGuid(undefined);
         
     | 
| 
       776 
737 
     | 
    
         
             
                                    booking.cartGuid = undefined;
         
     | 
| 
       777 
738 
     | 
    
         
             
                                    return [2 /*return*/, booking];
         
     | 
| 
       778 
739 
     | 
    
         
             
                                }
         
     | 
    
        package/lib/index.d.ts
    CHANGED
    
    | 
         @@ -4,13 +4,14 @@ export { ServiceBooking } from "./booking/serviceBooking"; 
     | 
|
| 
       4 
4 
     | 
    
         
             
            export { SubscriptionBooking } from "./booking/subscriptionBooking";
         
     | 
| 
       5 
5 
     | 
    
         
             
            export { TplBooking } from "./booking/tplBooking";
         
     | 
| 
       6 
6 
     | 
    
         
             
            export { useMtsBookingState } from "./mtsStorage";
         
     | 
| 
       7 
     | 
    
         
            -
            export { Person,  
     | 
| 
       8 
     | 
    
         
            -
            export { GetBuyerPassengersDetailsResponse,  
     | 
| 
      
 7 
     | 
    
         
            +
            export { Person, PersonDetails, DEFAULT_PERSON, initializePerson } from "./types/common/Person";
         
     | 
| 
      
 8 
     | 
    
         
            +
            export { GetBuyerPassengersDetailsResponse, GetPersonRequest, GetPassenger, BuyerDataStatus, EditPassengerRequestType, EditPassengersDetailsRequest } from "./types/common/Person";
         
     | 
| 
       9 
9 
     | 
    
         
             
            export { Tariff, TariffsMatrix, TariffSummary, TariffType, TermsType, PassengerTariff, ExtraTariff } from "./types/common/Tariffs";
         
     | 
| 
       10 
     | 
    
         
            -
            export { Reduction, AddReductionRequest } from "./types/common/Reduction";
         
     | 
| 
       11 
     | 
    
         
            -
            export { Gateway, GetSellerGatewaysResponse, GetPaymentInformationFromGatewayResponse,  
     | 
| 
       12 
     | 
    
         
            -
            export { ReductionType } from "./types/common/Reduction";
         
     | 
| 
      
 10 
     | 
    
         
            +
            export { ReductionType, Reduction, AddReductionRequest } from "./types/common/Reduction";
         
     | 
| 
      
 11 
     | 
    
         
            +
            export { Gateway, GetSellerGatewaysResponse, GetPaymentInformationFromGatewayResponse, IssueCartResponse, GatewayTypes, PaymentMethods } from "./types/common/Payment";
         
     | 
| 
       13 
12 
     | 
    
         
             
            export { ErrorResponse, objectIsMTSErrorResponse } from "./types/ErrorResponse";
         
     | 
| 
      
 13 
     | 
    
         
            +
            export { City } from "./types/common/City";
         
     | 
| 
      
 14 
     | 
    
         
            +
            export { Extra, GetExtrasResponse, GetExtrasForBookingResponse } from "./types/common/Extra";
         
     | 
| 
       14 
15 
     | 
    
         
             
            export { BusLayoutCell, BusMatrix, BusCellTypes, SeatStatus } from "./types/journeys/BusMatrix";
         
     | 
| 
       15 
16 
     | 
    
         
             
            export { JourneyCart, JourneyBookingType, CreateJourneyCartRequest, TripBookingInfo, DEFAULT_CREATE_JOURNEY_CART } from "./types/journeys/JourneyCart";
         
     | 
| 
       16 
17 
     | 
    
         
             
            export { JourneyInfo } from "./types/journeys/JourneyInfo";
         
     | 
| 
         @@ -22,8 +23,8 @@ export { Service, ServiceTrip } from "./types/services/Service"; 
     | 
|
| 
       22 
23 
     | 
    
         
             
            export { ServiceCart, ServiceBookingType, CreateServiceCartRequest } from "./types/services/ServiceCart";
         
     | 
| 
       23 
24 
     | 
    
         
             
            export { ServiceInfo } from "./types/services/ServiceInfo";
         
     | 
| 
       24 
25 
     | 
    
         
             
            export { GetTariffsResponse } from "./types/tpl/GetTariffsResponse";
         
     | 
| 
       25 
     | 
    
         
            -
            export { SuperArea } from "./types/tpl/SuperArea";
         
     | 
| 
       26 
     | 
    
         
            -
            export { TplCart, TplBookingType, TplBookingInfo } from "./types/tpl/TplCart";
         
     | 
| 
      
 26 
     | 
    
         
            +
            export { SuperArea, GetSuperAreasRequest } from "./types/tpl/SuperArea";
         
     | 
| 
      
 27 
     | 
    
         
            +
            export { CreateTplCartRequest, TplCart, TplBookingType, TplBookingInfo } from "./types/tpl/TplCart";
         
     | 
| 
       27 
28 
     | 
    
         
             
            export { Subscription } from "./types/subscriptions/Subscriptions";
         
     | 
| 
       28 
29 
     | 
    
         
             
            export { GetSubscriptionAvailabilityRequest, GetSubscriptionAvailabilityResponse, SubscriptionCalendarDayPeriodInfo } from "./types/subscriptions/SubscriptionAvailabilities";
         
     | 
| 
       29 
30 
     | 
    
         
             
            export { SubscriptionCart, SubscriptionBookingType, CreateSubscriptionCartRequest, SubscriptionPeriod } from "./types/subscriptions/SubscriptionCart";
         
     | 
    
        package/lib/index.js
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            "use strict";
         
     | 
| 
       2 
2 
     | 
    
         
             
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
       3 
     | 
    
         
            -
            exports.DEFAULT_JOURNEY_SEARCH = exports.DEFAULT_CREATE_JOURNEY_CART = exports.SeatStatus = exports.BusCellTypes = exports.objectIsMTSErrorResponse = exports. 
     | 
| 
      
 3 
     | 
    
         
            +
            exports.DEFAULT_JOURNEY_SEARCH = exports.DEFAULT_CREATE_JOURNEY_CART = exports.SeatStatus = exports.BusCellTypes = exports.objectIsMTSErrorResponse = exports.PaymentMethods = exports.GatewayTypes = exports.ReductionType = exports.BuyerDataStatus = exports.initializePerson = exports.DEFAULT_PERSON = exports.useMtsBookingState = exports.TplBooking = exports.SubscriptionBooking = exports.ServiceBooking = exports.JourneyBooking = exports.Booking = void 0;
         
     | 
| 
       4 
4 
     | 
    
         
             
            //#region Export Booking classes
         
     | 
| 
       5 
5 
     | 
    
         
             
            var booking_1 = require("./booking/booking");
         
     | 
| 
       6 
6 
     | 
    
         
             
            Object.defineProperty(exports, "Booking", { enumerable: true, get: function () { return booking_1.Booking; } });
         
     | 
| 
         @@ -24,11 +24,11 @@ Object.defineProperty(exports, "DEFAULT_PERSON", { enumerable: true, get: functi 
     | 
|
| 
       24 
24 
     | 
    
         
             
            Object.defineProperty(exports, "initializePerson", { enumerable: true, get: function () { return Person_1.initializePerson; } });
         
     | 
| 
       25 
25 
     | 
    
         
             
            var Person_2 = require("./types/common/Person");
         
     | 
| 
       26 
26 
     | 
    
         
             
            Object.defineProperty(exports, "BuyerDataStatus", { enumerable: true, get: function () { return Person_2.BuyerDataStatus; } });
         
     | 
| 
      
 27 
     | 
    
         
            +
            var Reduction_1 = require("./types/common/Reduction");
         
     | 
| 
      
 28 
     | 
    
         
            +
            Object.defineProperty(exports, "ReductionType", { enumerable: true, get: function () { return Reduction_1.ReductionType; } });
         
     | 
| 
       27 
29 
     | 
    
         
             
            var Payment_1 = require("./types/common/Payment");
         
     | 
| 
       28 
30 
     | 
    
         
             
            Object.defineProperty(exports, "GatewayTypes", { enumerable: true, get: function () { return Payment_1.GatewayTypes; } });
         
     | 
| 
       29 
31 
     | 
    
         
             
            Object.defineProperty(exports, "PaymentMethods", { enumerable: true, get: function () { return Payment_1.PaymentMethods; } });
         
     | 
| 
       30 
     | 
    
         
            -
            var Reduction_1 = require("./types/common/Reduction");
         
     | 
| 
       31 
     | 
    
         
            -
            Object.defineProperty(exports, "ReductionType", { enumerable: true, get: function () { return Reduction_1.ReductionType; } });
         
     | 
| 
       32 
32 
     | 
    
         
             
            var ErrorResponse_1 = require("./types/ErrorResponse");
         
     | 
| 
       33 
33 
     | 
    
         
             
            Object.defineProperty(exports, "objectIsMTSErrorResponse", { enumerable: true, get: function () { return ErrorResponse_1.objectIsMTSErrorResponse; } });
         
     | 
| 
       34 
34 
     | 
    
         
             
            //#endregion
         
     | 
    
        package/lib/mtsStorage.d.ts
    CHANGED
    
    | 
         @@ -1,10 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            type MtsBookingState = {
         
     | 
| 
       2 
     | 
    
         
            -
                /** @deprecated Please use {@link MtsBookingState.cartGuid} instead, where possible */
         
     | 
| 
       3 
     | 
    
         
            -
                cartId: number | undefined;
         
     | 
| 
       4 
2 
     | 
    
         
             
                cartGuid: string | undefined;
         
     | 
| 
       5 
3 
     | 
    
         
             
            };
         
     | 
| 
       6 
4 
     | 
    
         
             
            type MtsBookingAction = {
         
     | 
| 
       7 
     | 
    
         
            -
                 
     | 
| 
      
 5 
     | 
    
         
            +
                updateCartGuid: (cartGuid: MtsBookingState["cartGuid"]) => void;
         
     | 
| 
       8 
6 
     | 
    
         
             
                resetState: () => void;
         
     | 
| 
       9 
7 
     | 
    
         
             
            };
         
     | 
| 
       10 
8 
     | 
    
         
             
            export declare const useMtsBookingLocalState: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<MtsBookingState & MtsBookingAction>, "persist"> & {
         
     | 
    
        package/lib/mtsStorage.js
    CHANGED
    
    | 
         @@ -16,17 +16,16 @@ var async_storage_1 = require("@react-native-async-storage/async-storage"); 
     | 
|
| 
       16 
16 
     | 
    
         
             
            var zustand_1 = require("zustand");
         
     | 
| 
       17 
17 
     | 
    
         
             
            var middleware_1 = require("zustand/middleware");
         
     | 
| 
       18 
18 
     | 
    
         
             
            var INITIAL_STATE = {
         
     | 
| 
       19 
     | 
    
         
            -
                cartId: 0,
         
     | 
| 
       20 
19 
     | 
    
         
             
                cartGuid: undefined
         
     | 
| 
       21 
20 
     | 
    
         
             
            };
         
     | 
| 
       22 
     | 
    
         
            -
            var useMtsBookingAsyncState = (0, zustand_1.create)((0, middleware_1.persist)(function (set) { return (__assign(__assign({}, INITIAL_STATE), {  
     | 
| 
       23 
     | 
    
         
            -
                    return set(function () { return ({  
     | 
| 
      
 21 
     | 
    
         
            +
            var useMtsBookingAsyncState = (0, zustand_1.create)((0, middleware_1.persist)(function (set) { return (__assign(__assign({}, INITIAL_STATE), { updateCartGuid: function (cartGuid) {
         
     | 
| 
      
 22 
     | 
    
         
            +
                    return set(function () { return ({ cartGuid: cartGuid }); });
         
     | 
| 
       24 
23 
     | 
    
         
             
                }, resetState: function () { return set(function () { return INITIAL_STATE; }); } })); }, {
         
     | 
| 
       25 
24 
     | 
    
         
             
                name: "mts-booking-storage",
         
     | 
| 
       26 
25 
     | 
    
         
             
                storage: (0, middleware_1.createJSONStorage)(function () { return async_storage_1.default; })
         
     | 
| 
       27 
26 
     | 
    
         
             
            }));
         
     | 
| 
       28 
     | 
    
         
            -
            exports.useMtsBookingLocalState = (0, zustand_1.create)((0, middleware_1.persist)(function (set) { return (__assign(__assign({}, INITIAL_STATE), {  
     | 
| 
       29 
     | 
    
         
            -
                    return set(function () { return ({  
     | 
| 
      
 27 
     | 
    
         
            +
            exports.useMtsBookingLocalState = (0, zustand_1.create)((0, middleware_1.persist)(function (set) { return (__assign(__assign({}, INITIAL_STATE), { updateCartGuid: function (cartGuid) {
         
     | 
| 
      
 28 
     | 
    
         
            +
                    return set(function () { return ({ cartGuid: cartGuid }); });
         
     | 
| 
       30 
29 
     | 
    
         
             
                }, resetState: function () { return set(function () { return INITIAL_STATE; }); } })); }, {
         
     | 
| 
       31 
30 
     | 
    
         
             
                name: "mts-booking-storage",
         
     | 
| 
       32 
31 
     | 
    
         
             
                storage: (0, middleware_1.createJSONStorage)(function () { return localStorage; })
         
     | 
| 
         @@ -16,11 +16,6 @@ export declare enum SellingMethod { 
     | 
|
| 
       16 
16 
     | 
    
         
             
             * - TplCart: {@link TplCart}
         
     | 
| 
       17 
17 
     | 
    
         
             
             */
         
     | 
| 
       18 
18 
     | 
    
         
             
            export type Cart = {
         
     | 
| 
       19 
     | 
    
         
            -
                /**
         
     | 
| 
       20 
     | 
    
         
            -
                 * The id of the cart
         
     | 
| 
       21 
     | 
    
         
            -
                 * @deprecated Please use {@link Cart.guid} instead
         
     | 
| 
       22 
     | 
    
         
            -
                 */
         
     | 
| 
       23 
     | 
    
         
            -
                id: number;
         
     | 
| 
       24 
19 
     | 
    
         
             
                /** The guid of the cart */
         
     | 
| 
       25 
20 
     | 
    
         
             
                guid: string;
         
     | 
| 
       26 
21 
     | 
    
         
             
                /** The id of the seller of the tickets in the cart */
         
     | 
| 
         @@ -55,7 +55,7 @@ export declare enum GatewayTypes { 
     | 
|
| 
       55 
55 
     | 
    
         
             
            }
         
     | 
| 
       56 
56 
     | 
    
         
             
            /**
         
     | 
| 
       57 
57 
     | 
    
         
             
             * This enum contains the possible values for the `paymentMethod` parameter of the
         
     | 
| 
       58 
     | 
    
         
            -
             * {@link Booking. 
     | 
| 
      
 58 
     | 
    
         
            +
             * {@link Booking.issueCart} function.
         
     | 
| 
       59 
59 
     | 
    
         
             
             */
         
     | 
| 
       60 
60 
     | 
    
         
             
            export declare enum PaymentMethods {
         
     | 
| 
       61 
61 
     | 
    
         
             
                /** Pay with card at the Seller/Reseller counter */
         
     | 
| 
         @@ -83,7 +83,7 @@ export type Wallet = { 
     | 
|
| 
       83 
83 
     | 
    
         
             
                walletTransactions: any[];
         
     | 
| 
       84 
84 
     | 
    
         
             
            };
         
     | 
| 
       85 
85 
     | 
    
         
             
            /**
         
     | 
| 
       86 
     | 
    
         
            -
             * @description This type represents the response of the {@link Booking. 
     | 
| 
      
 86 
     | 
    
         
            +
             * @description This type represents the response of the {@link Booking.issueCart} API.
         
     | 
| 
       87 
87 
     | 
    
         
             
             * @param {Wallet} wallet If the booking was performed by a reseller, this field contains the wallet with the updated balance.
         
     | 
| 
       88 
88 
     | 
    
         
             
             * @param {string} ticketsSentToEmail This field contains the email address to which the tickets were sent.
         
     | 
| 
       89 
89 
     | 
    
         
             
             * If the buyer email was specified, this field will contain the buyer email. Otherwise, if the reseller performed the booking, this
         
     | 
| 
         @@ -91,7 +91,7 @@ export type Wallet = { 
     | 
|
| 
       91 
91 
     | 
    
         
             
             * the MTS email.
         
     | 
| 
       92 
92 
     | 
    
         
             
             * @param {string[]} PNRs An array of PNRs associated with the booking.
         
     | 
| 
       93 
93 
     | 
    
         
             
             */
         
     | 
| 
       94 
     | 
    
         
            -
            export type  
     | 
| 
      
 94 
     | 
    
         
            +
            export type IssueCartResponse = {
         
     | 
| 
       95 
95 
     | 
    
         
             
                wallet: Wallet | null;
         
     | 
| 
       96 
96 
     | 
    
         
             
                ticketsSentToEmail: string;
         
     | 
| 
       97 
97 
     | 
    
         
             
                pnrs: string[];
         
     | 
| 
         @@ -13,7 +13,7 @@ var GatewayTypes; 
     | 
|
| 
       13 
13 
     | 
    
         
             
            })(GatewayTypes || (exports.GatewayTypes = GatewayTypes = {}));
         
     | 
| 
       14 
14 
     | 
    
         
             
            /**
         
     | 
| 
       15 
15 
     | 
    
         
             
             * This enum contains the possible values for the `paymentMethod` parameter of the
         
     | 
| 
       16 
     | 
    
         
            -
             * {@link Booking. 
     | 
| 
      
 16 
     | 
    
         
            +
             * {@link Booking.issueCart} function.
         
     | 
| 
       17 
17 
     | 
    
         
             
             */
         
     | 
| 
       18 
18 
     | 
    
         
             
            var PaymentMethods;
         
     | 
| 
       19 
19 
     | 
    
         
             
            (function (PaymentMethods) {
         
     | 
| 
         @@ -18,19 +18,19 @@ export type Person = { 
     | 
|
| 
       18 
18 
     | 
    
         
             
                /** The notes for this person. */
         
     | 
| 
       19 
19 
     | 
    
         
             
                notes?: string;
         
     | 
| 
       20 
20 
     | 
    
         
             
            };
         
     | 
| 
       21 
     | 
    
         
            -
            export type  
     | 
| 
      
 21 
     | 
    
         
            +
            export type PersonDetails = Person & {
         
     | 
| 
       22 
22 
     | 
    
         
             
                /** The social security number of the buyer, if provided. */
         
     | 
| 
       23 
23 
     | 
    
         
             
                socialSecurityNumber: string | null;
         
     | 
| 
       24 
24 
     | 
    
         
             
            };
         
     | 
| 
       25 
25 
     | 
    
         
             
            export declare const DEFAULT_PERSON: Person;
         
     | 
| 
       26 
26 
     | 
    
         
             
            export declare const initializePerson: (person?: Person | undefined | null) => Person;
         
     | 
| 
       27 
27 
     | 
    
         
             
            /**
         
     | 
| 
       28 
     | 
    
         
            -
             * @description Represents the request for the {@link Booking. 
     | 
| 
      
 28 
     | 
    
         
            +
             * @description Represents the request for the {@link Booking.getPerson} method.
         
     | 
| 
       29 
29 
     | 
    
         
             
             * @property {number} personId - The unique identifier of the buyer.
         
     | 
| 
       30 
30 
     | 
    
         
             
             * @property {string} personCode - The person code of the person (the old linkAvelCardNumber)
         
     | 
| 
       31 
31 
     | 
    
         
             
             * @property {string} phoneNumber - The phone number of the person.
         
     | 
| 
       32 
32 
     | 
    
         
             
             */
         
     | 
| 
       33 
     | 
    
         
            -
            export type  
     | 
| 
      
 33 
     | 
    
         
            +
            export type GetPersonRequest = {
         
     | 
| 
       34 
34 
     | 
    
         
             
                personId?: number;
         
     | 
| 
       35 
35 
     | 
    
         
             
                personCode?: string;
         
     | 
| 
       36 
36 
     | 
    
         
             
                phoneNumber?: string;
         
     | 
| 
         @@ -53,11 +53,11 @@ export type GetPassenger = Person & { 
     | 
|
| 
       53 
53 
     | 
    
         
             
                returnTariffs: Map<number, PassengerTariff[]> | null;
         
     | 
| 
       54 
54 
     | 
    
         
             
            };
         
     | 
| 
       55 
55 
     | 
    
         
             
            export declare enum BuyerDataStatus {
         
     | 
| 
       56 
     | 
    
         
            -
                /** The buyer data are optional.  
     | 
| 
      
 56 
     | 
    
         
            +
                /** The buyer data are optional. PersonDetails form shall be displayed, but the user can skip it. */
         
     | 
| 
       57 
57 
     | 
    
         
             
                OPTIONAL = 0,
         
     | 
| 
       58 
     | 
    
         
            -
                /** The buyer data are required.  
     | 
| 
      
 58 
     | 
    
         
            +
                /** The buyer data are required. PersonDetails form shall be displayed and the user cannot skip it. */
         
     | 
| 
       59 
59 
     | 
    
         
             
                REQUIRED = 1,
         
     | 
| 
       60 
     | 
    
         
            -
                /** The buyer data cannot be specified.  
     | 
| 
      
 60 
     | 
    
         
            +
                /** The buyer data cannot be specified. PersonDetails form shall not be displayed. */
         
     | 
| 
       61 
61 
     | 
    
         
             
                CANNOT_BE_SPECIFIED = 2
         
     | 
| 
       62 
62 
     | 
    
         
             
            }
         
     | 
| 
       63 
63 
     | 
    
         
             
            /**
         
     | 
| 
         @@ -67,7 +67,7 @@ export type GetBuyerPassengersDetailsResponse = { 
     | 
|
| 
       67 
67 
     | 
    
         
             
                /** Whether the form for the buyer data is required, optional or cannot be specified. */
         
     | 
| 
       68 
68 
     | 
    
         
             
                buyerDataStatus: BuyerDataStatus;
         
     | 
| 
       69 
69 
     | 
    
         
             
                /** The {@link Person} object representing the buyer. */
         
     | 
| 
       70 
     | 
    
         
            -
                buyer:  
     | 
| 
      
 70 
     | 
    
         
            +
                buyer: PersonDetails | null;
         
     | 
| 
       71 
71 
     | 
    
         
             
                /** An array of {@link GetPassenger} objects representing the passengers. */
         
     | 
| 
       72 
72 
     | 
    
         
             
                passengers: GetPassenger[] | null;
         
     | 
| 
       73 
73 
     | 
    
         
             
            };
         
     | 
| 
         @@ -92,5 +92,5 @@ export type EditPassengersDetailsRequest = { 
     | 
|
| 
       92 
92 
     | 
    
         
             
                 * The {@link Person} object representing the buyer.
         
     | 
| 
       93 
93 
     | 
    
         
             
                 * It should be null if the buyer data cannot be specified (see {@link GetBuyerPassengersDetailsResponse.buyerDataStatus}).
         
     | 
| 
       94 
94 
     | 
    
         
             
                 */
         
     | 
| 
       95 
     | 
    
         
            -
                buyer:  
     | 
| 
      
 95 
     | 
    
         
            +
                buyer: PersonDetails | null;
         
     | 
| 
       96 
96 
     | 
    
         
             
            };
         
     | 
| 
         @@ -18,10 +18,10 @@ var initializePerson = function (person) { 
     | 
|
| 
       18 
18 
     | 
    
         
             
            exports.initializePerson = initializePerson;
         
     | 
| 
       19 
19 
     | 
    
         
             
            var BuyerDataStatus;
         
     | 
| 
       20 
20 
     | 
    
         
             
            (function (BuyerDataStatus) {
         
     | 
| 
       21 
     | 
    
         
            -
                /** The buyer data are optional.  
     | 
| 
      
 21 
     | 
    
         
            +
                /** The buyer data are optional. PersonDetails form shall be displayed, but the user can skip it. */
         
     | 
| 
       22 
22 
     | 
    
         
             
                BuyerDataStatus[BuyerDataStatus["OPTIONAL"] = 0] = "OPTIONAL";
         
     | 
| 
       23 
     | 
    
         
            -
                /** The buyer data are required.  
     | 
| 
      
 23 
     | 
    
         
            +
                /** The buyer data are required. PersonDetails form shall be displayed and the user cannot skip it. */
         
     | 
| 
       24 
24 
     | 
    
         
             
                BuyerDataStatus[BuyerDataStatus["REQUIRED"] = 1] = "REQUIRED";
         
     | 
| 
       25 
     | 
    
         
            -
                /** The buyer data cannot be specified.  
     | 
| 
      
 25 
     | 
    
         
            +
                /** The buyer data cannot be specified. PersonDetails form shall not be displayed. */
         
     | 
| 
       26 
26 
     | 
    
         
             
                BuyerDataStatus[BuyerDataStatus["CANNOT_BE_SPECIFIED"] = 2] = "CANNOT_BE_SPECIFIED";
         
     | 
| 
       27 
27 
     | 
    
         
             
            })(BuyerDataStatus || (exports.BuyerDataStatus = BuyerDataStatus = {}));
         
     | 
| 
         @@ -17,21 +17,26 @@ export type TripBookingInfo = { 
     | 
|
| 
       17 
17 
     | 
    
         
             
                destinationStopId: number;
         
     | 
| 
       18 
18 
     | 
    
         
             
                /** A record containing tariff ids as keys and their respective quantities as values. */
         
     | 
| 
       19 
19 
     | 
    
         
             
                tariffIdToQuantity: Record<number, number>;
         
     | 
| 
      
 20 
     | 
    
         
            +
                /** The id of the OTA Reseller that sold the ticket */
         
     | 
| 
      
 21 
     | 
    
         
            +
                otaResellerId?: number;
         
     | 
| 
      
 22 
     | 
    
         
            +
                /** A string in base64 representing the picture of the ticket that was sold */
         
     | 
| 
      
 23 
     | 
    
         
            +
                otaTicketPicture?: string;
         
     | 
| 
       20 
24 
     | 
    
         
             
            };
         
     | 
| 
       21 
25 
     | 
    
         
             
            /**
         
     | 
| 
       22 
     | 
    
         
            -
             * @description This is the object to be passed to  
     | 
| 
       23 
     | 
    
         
            -
             *
         
     | 
| 
       24 
     | 
    
         
            -
             * @property {number|undefined} [cartId=0] - The unique identifier for the cart (optional).
         
     | 
| 
       25 
     | 
    
         
            -
             * @property {Booking.Currencies} currency - The currency in which the journey is priced.
         
     | 
| 
       26 
     | 
    
         
            -
             * @property {TripBookingInfo[]} outboundJourney - Information about outbound journeys. This is an array of {@link TripBookingInfo} objects.
         
     | 
| 
       27 
     | 
    
         
            -
             * Note that when searching for journeys, the `trips` property of the {@link JourneySearchResult} object contains an array of {@link Trip} objects.
         
     | 
| 
       28 
     | 
    
         
            -
             * Each trip should be mapped into a {@link TripBookingInfo} object.
         
     | 
| 
       29 
     | 
    
         
            -
             * @property {TripBookingInfo[] | null} returnJourney - Information about return journeys (optional, can be null). See outboundJourney.
         
     | 
| 
      
 26 
     | 
    
         
            +
             * @description This is the object to be passed to {@link JourneyBooking.createJourneyCart}, containing information about the selected service.
         
     | 
| 
       30 
27 
     | 
    
         
             
             */
         
     | 
| 
       31 
28 
     | 
    
         
             
            export type CreateJourneyCartRequest = {
         
     | 
| 
       32 
     | 
    
         
            -
                 
     | 
| 
      
 29 
     | 
    
         
            +
                /** The unique identifier for the cart. This should be passed during the change process to link the new ticket to the already existing change cart */
         
     | 
| 
      
 30 
     | 
    
         
            +
                cartGuid?: string;
         
     | 
| 
      
 31 
     | 
    
         
            +
                /** The currency in which the journey is priced */
         
     | 
| 
       33 
32 
     | 
    
         
             
                currency: Booking.Currencies;
         
     | 
| 
      
 33 
     | 
    
         
            +
                /**
         
     | 
| 
      
 34 
     | 
    
         
            +
                 * Information about outbound journeys. This is an array of {@link TripBookingInfo} objects.
         
     | 
| 
      
 35 
     | 
    
         
            +
                 * Note that when searching for journeys, the `trips` property of the {@link JourneySearchResult} object contains an array of {@link Trip} objects.
         
     | 
| 
      
 36 
     | 
    
         
            +
                 * Each trip should be mapped into a {@link TripBookingInfo} object.
         
     | 
| 
      
 37 
     | 
    
         
            +
                 */
         
     | 
| 
       34 
38 
     | 
    
         
             
                outboundJourney: TripBookingInfo[];
         
     | 
| 
      
 39 
     | 
    
         
            +
                /** Information about return journeys (optional, can be null). See outboundJourney. */
         
     | 
| 
       35 
40 
     | 
    
         
             
                returnJourney: TripBookingInfo[] | null;
         
     | 
| 
       36 
41 
     | 
    
         
             
            };
         
     | 
| 
       37 
42 
     | 
    
         
             
            export declare const DEFAULT_CREATE_JOURNEY_CART: CreateJourneyCartRequest;
         
     | 
| 
         @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); 
     | 
|
| 
       3 
3 
     | 
    
         
             
            exports.DEFAULT_CREATE_JOURNEY_CART = void 0;
         
     | 
| 
       4 
4 
     | 
    
         
             
            var booking_1 = require("../../booking/booking");
         
     | 
| 
       5 
5 
     | 
    
         
             
            exports.DEFAULT_CREATE_JOURNEY_CART = {
         
     | 
| 
       6 
     | 
    
         
            -
                 
     | 
| 
      
 6 
     | 
    
         
            +
                cartGuid: undefined,
         
     | 
| 
       7 
7 
     | 
    
         
             
                currency: booking_1.Booking.Currencies.EUR,
         
     | 
| 
       8 
8 
     | 
    
         
             
                outboundJourney: [],
         
     | 
| 
       9 
9 
     | 
    
         
             
                returnJourney: null
         
     | 
| 
         @@ -19,6 +19,10 @@ export type CreateServiceCartRequest = { 
     | 
|
| 
       19 
19 
     | 
    
         
             
                    date?: string;
         
     | 
| 
       20 
20 
     | 
    
         
             
                    /** The unique identifier for the trip (optional). */
         
     | 
| 
       21 
21 
     | 
    
         
             
                    tripId?: number;
         
     | 
| 
      
 22 
     | 
    
         
            +
                    /** The id of the OTA Reseller that sold the ticket */
         
     | 
| 
      
 23 
     | 
    
         
            +
                    otaResellerId?: number;
         
     | 
| 
      
 24 
     | 
    
         
            +
                    /** A string in base64 representing the picture of the ticket that was sold */
         
     | 
| 
      
 25 
     | 
    
         
            +
                    otaTicketPicture?: string;
         
     | 
| 
       22 
26 
     | 
    
         
             
                };
         
     | 
| 
       23 
27 
     | 
    
         
             
            };
         
     | 
| 
       24 
28 
     | 
    
         
             
            /**
         
     | 
| 
         @@ -11,3 +11,9 @@ export type SuperArea = { 
     | 
|
| 
       11 
11 
     | 
    
         
             
                shortName: string;
         
     | 
| 
       12 
12 
     | 
    
         
             
                description: string;
         
     | 
| 
       13 
13 
     | 
    
         
             
            };
         
     | 
| 
      
 14 
     | 
    
         
            +
            export type GetSuperAreasRequest = {
         
     | 
| 
      
 15 
     | 
    
         
            +
                /** The id of the city (as returned by the {@link TplBooking.getCities} method). If present, only the super areas associated with this city will be returned. */
         
     | 
| 
      
 16 
     | 
    
         
            +
                cityId?: number;
         
     | 
| 
      
 17 
     | 
    
         
            +
                /** The id of the trip. If present, only the super areas associated with this trip will be returned. This is used by the app. */
         
     | 
| 
      
 18 
     | 
    
         
            +
                tripId?: number;
         
     | 
| 
      
 19 
     | 
    
         
            +
            };
         
     | 
| 
         @@ -1,6 +1,25 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import { Booking } from "../../booking/booking";
         
     | 
| 
       2 
2 
     | 
    
         
             
            import { Cart } from "../common/Cart";
         
     | 
| 
       3 
3 
     | 
    
         
             
            import { TariffSummary } from "../common/Tariffs";
         
     | 
| 
      
 4 
     | 
    
         
            +
            /**
         
     | 
| 
      
 5 
     | 
    
         
            +
             * @description This is the object to be passed to {@link TplBooking.createTplCart}, containing information about the selected tpl service.
         
     | 
| 
      
 6 
     | 
    
         
            +
             */
         
     | 
| 
      
 7 
     | 
    
         
            +
            export type CreateTplCartRequest = {
         
     | 
| 
      
 8 
     | 
    
         
            +
                /** The currency in which the ticket is priced. */
         
     | 
| 
      
 9 
     | 
    
         
            +
                currency: Booking.Currencies;
         
     | 
| 
      
 10 
     | 
    
         
            +
                /** A map that associates a tariff id (the one chosen by the user) to the number of tickets to buy for that tariff. */
         
     | 
| 
      
 11 
     | 
    
         
            +
                tariffIdToQuantity: Map<number, number>;
         
     | 
| 
      
 12 
     | 
    
         
            +
                /** The start date of the ticket. This is optional and should be used only for subscriptions */
         
     | 
| 
      
 13 
     | 
    
         
            +
                startDate?: string;
         
     | 
| 
      
 14 
     | 
    
         
            +
                /** Whether the subscription is for the current period. This is optional and should be used only for subscriptions. */
         
     | 
| 
      
 15 
     | 
    
         
            +
                isCurrentPeriod?: boolean;
         
     | 
| 
      
 16 
     | 
    
         
            +
                /** The PNR of the subscription ticket to renew. This is optional and should be used only for subscriptions. */
         
     | 
| 
      
 17 
     | 
    
         
            +
                renewSubscriptionTicketPNR?: string;
         
     | 
| 
      
 18 
     | 
    
         
            +
                /** The id of the OTA Reseller that sold the ticket */
         
     | 
| 
      
 19 
     | 
    
         
            +
                otaResellerId?: number;
         
     | 
| 
      
 20 
     | 
    
         
            +
                /** A string in base64 representing the picture of the ticket that was sold */
         
     | 
| 
      
 21 
     | 
    
         
            +
                otaTicketPicture?: string;
         
     | 
| 
      
 22 
     | 
    
         
            +
            };
         
     | 
| 
       4 
23 
     | 
    
         
             
            /**
         
     | 
| 
       5 
24 
     | 
    
         
             
             * @description Represents a `TplCart`, which extends the {@link Cart} type by including additional
         
     | 
| 
       6 
25 
     | 
    
         
             
             * information about the bookings
         
     | 
    
        package/lib/utils/apiCall.js
    CHANGED
    
    | 
         @@ -27,8 +27,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge 
     | 
|
| 
       27 
27 
     | 
    
         
             
                });
         
     | 
| 
       28 
28 
     | 
    
         
             
            };
         
     | 
| 
       29 
29 
     | 
    
         
             
            var __generator = (this && this.__generator) || function (thisArg, body) {
         
     | 
| 
       30 
     | 
    
         
            -
                var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
         
     | 
| 
       31 
     | 
    
         
            -
                return g =  
     | 
| 
      
 30 
     | 
    
         
            +
                var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
         
     | 
| 
      
 31 
     | 
    
         
            +
                return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
         
     | 
| 
       32 
32 
     | 
    
         
             
                function verb(n) { return function (v) { return step([n, v]); }; }
         
     | 
| 
       33 
33 
     | 
    
         
             
                function step(op) {
         
     | 
| 
       34 
34 
     | 
    
         
             
                    if (f) throw new TypeError("Generator is already executing.");
         
     | 
| 
         @@ -0,0 +1,8 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /**
         
     | 
| 
      
 2 
     | 
    
         
            +
             * This method return the ISO string of the date without GMT. An ISO string looks like this: YYYY-MM-DDThh:mm:ss.mmmZ
         
     | 
| 
      
 3 
     | 
    
         
            +
             * @param {Date | string} date the date to convert
         
     | 
| 
      
 4 
     | 
    
         
            +
             * @param {boolean} [removeTimezone=true] if true, the timezone will be removed from the ISO string, meaning
         
     | 
| 
      
 5 
     | 
    
         
            +
             * that the string will look like this: YYYY-MM-DDThh:mm:ss.mmm
         
     | 
| 
      
 6 
     | 
    
         
            +
             * @returns {string} the ISO string
         
     | 
| 
      
 7 
     | 
    
         
            +
             */
         
     | 
| 
      
 8 
     | 
    
         
            +
            export declare const getISOStringWithoutGMT: (date: Date | string | null | undefined, removeTimezone?: boolean) => string | null;
         
     | 
| 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            "use strict";
         
     | 
| 
      
 2 
     | 
    
         
            +
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
      
 3 
     | 
    
         
            +
            exports.getISOStringWithoutGMT = void 0;
         
     | 
| 
      
 4 
     | 
    
         
            +
            /**
         
     | 
| 
      
 5 
     | 
    
         
            +
             * This method return the ISO string of the date without GMT. An ISO string looks like this: YYYY-MM-DDThh:mm:ss.mmmZ
         
     | 
| 
      
 6 
     | 
    
         
            +
             * @param {Date | string} date the date to convert
         
     | 
| 
      
 7 
     | 
    
         
            +
             * @param {boolean} [removeTimezone=true] if true, the timezone will be removed from the ISO string, meaning
         
     | 
| 
      
 8 
     | 
    
         
            +
             * that the string will look like this: YYYY-MM-DDThh:mm:ss.mmm
         
     | 
| 
      
 9 
     | 
    
         
            +
             * @returns {string} the ISO string
         
     | 
| 
      
 10 
     | 
    
         
            +
             */
         
     | 
| 
      
 11 
     | 
    
         
            +
            var getISOStringWithoutGMT = function (date, removeTimezone) {
         
     | 
| 
      
 12 
     | 
    
         
            +
                if (removeTimezone === void 0) { removeTimezone = true; }
         
     | 
| 
      
 13 
     | 
    
         
            +
                if (!date)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    return null;
         
     | 
| 
      
 15 
     | 
    
         
            +
                var newDate = new Date(date);
         
     | 
| 
      
 16 
     | 
    
         
            +
                var isoString = new Date(newDate.valueOf() - newDate.getTimezoneOffset() * 60000).toISOString();
         
     | 
| 
      
 17 
     | 
    
         
            +
                return removeTimezone ? isoString.slice(0, -1) : isoString;
         
     | 
| 
      
 18 
     | 
    
         
            +
            };
         
     | 
| 
      
 19 
     | 
    
         
            +
            exports.getISOStringWithoutGMT = getISOStringWithoutGMT;
         
     | 
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "mts-booking-library",
         
     | 
| 
       3 
     | 
    
         
            -
              "version": " 
     | 
| 
      
 3 
     | 
    
         
            +
              "version": "2.0.0",
         
     | 
| 
       4 
4 
     | 
    
         
             
              "description": "Library for using MyTicketSolution Booking API",
         
     | 
| 
       5 
5 
     | 
    
         
             
              "main": "lib/index.js",
         
     | 
| 
       6 
6 
     | 
    
         
             
              "types": "lib/index.d.ts",
         
     | 
| 
         @@ -16,11 +16,11 @@ 
     | 
|
| 
       16 
16 
     | 
    
         
             
              },
         
     | 
| 
       17 
17 
     | 
    
         
             
              "license": "ISC",
         
     | 
| 
       18 
18 
     | 
    
         
             
              "devDependencies": {
         
     | 
| 
       19 
     | 
    
         
            -
                "@types/jest": "^29.5. 
     | 
| 
      
 19 
     | 
    
         
            +
                "@types/jest": "^29.5.13",
         
     | 
| 
       20 
20 
     | 
    
         
             
                "jest": "^29.7.0",
         
     | 
| 
       21 
21 
     | 
    
         
             
                "prettier": "^3.3.3",
         
     | 
| 
       22 
     | 
    
         
            -
                "ts-jest": "^29.2. 
     | 
| 
       23 
     | 
    
         
            -
                "typescript": "^5. 
     | 
| 
      
 22 
     | 
    
         
            +
                "ts-jest": "^29.2.5",
         
     | 
| 
      
 23 
     | 
    
         
            +
                "typescript": "^5.6.2"
         
     | 
| 
       24 
24 
     | 
    
         
             
              },
         
     | 
| 
       25 
25 
     | 
    
         
             
              "files": [
         
     | 
| 
       26 
26 
     | 
    
         
             
                "lib/**/*"
         
     | 
| 
         @@ -31,8 +31,8 @@ 
     | 
|
| 
       31 
31 
     | 
    
         
             
              ],
         
     | 
| 
       32 
32 
     | 
    
         
             
              "author": "Infoservice s.r.l.",
         
     | 
| 
       33 
33 
     | 
    
         
             
              "dependencies": {
         
     | 
| 
       34 
     | 
    
         
            -
                "@react-native-async-storage/async-storage": "^ 
     | 
| 
       35 
     | 
    
         
            -
                "axios": "^1.7. 
     | 
| 
      
 34 
     | 
    
         
            +
                "@react-native-async-storage/async-storage": "^2.0.0",
         
     | 
| 
      
 35 
     | 
    
         
            +
                "axios": "^1.7.7",
         
     | 
| 
       36 
36 
     | 
    
         
             
                "dotenv": "^16.4.5",
         
     | 
| 
       37 
37 
     | 
    
         
             
                "node-localstorage": "^3.0.5",
         
     | 
| 
       38 
38 
     | 
    
         
             
                "zustand": "^4.5.5"
         
     |