@mirai/core 0.3.153 → 0.3.155
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/build/components/Rates/components/Item/Item.Rates.js +5 -1
- package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
- package/build/components/Rates/components/Item/components/RateDetails/RateDetails.js +9 -6
- package/build/components/Rates/components/Item/components/RateDetails/RateDetails.js.map +1 -1
- package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.constants.js +12 -0
- package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.constants.js.map +1 -0
- package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.js +57 -0
- package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.js.map +1 -0
- package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.module.css +25 -0
- package/build/components/Rates/components/Item/components/TooltipDates/index.js +17 -0
- package/build/components/Rates/components/Item/components/TooltipDates/index.js.map +1 -0
- package/build/components/Rates/components/Item/components/index.js +11 -0
- package/build/components/Rates/components/Item/components/index.js.map +1 -1
- package/build/components/Signup/Signup.js +4 -2
- package/build/components/Signup/Signup.js.map +1 -1
- package/build/components/Signup/Signup.module.css +13 -0
- package/build/components/Signup/__tests__/__snapshots__/Signup.test.js.snap +731 -719
- package/build/services/Rates/rates.js +6 -0
- package/build/services/Rates/rates.js.map +1 -1
- package/package.json +1 -1
|
@@ -83,6 +83,11 @@ const rates = function () {
|
|
|
83
83
|
currencyCode: hotelCurrency,
|
|
84
84
|
firstChildInterval = {},
|
|
85
85
|
measureUnit: unit,
|
|
86
|
+
messages: {
|
|
87
|
+
availabilityMessage: {
|
|
88
|
+
increments
|
|
89
|
+
} = {}
|
|
90
|
+
} = {},
|
|
86
91
|
roomTypes,
|
|
87
92
|
showLocalTaxes: fees,
|
|
88
93
|
userCountry: country,
|
|
@@ -97,6 +102,7 @@ const rates = function () {
|
|
|
97
102
|
country,
|
|
98
103
|
currency: hotelCurrency,
|
|
99
104
|
externalSignout: authorization && type === _constants.EXTERNAL.TYPE && (club === null || club === void 0 ? void 0 : (_club$clubLogin = club.clubLogin) === null || _club$clubLogin === void 0 ? void 0 : _club$clubLogin.status) !== _constants.VALID,
|
|
105
|
+
increments: increments || undefined,
|
|
100
106
|
infantAge: infantAge !== null ? infantAge : undefined,
|
|
101
107
|
items: items.map(function () {
|
|
102
108
|
let {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rates.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","DOUBLE","SINGLE","BED_TYPE","FEATURE","PESTANA","rates","session","authorization","clubDiscount","locale","occupation","userCurrency","others","arguments","length","undefined","Promise","resolve","reject","_club$clubLogin","idtokenprovider","id","checkin","nights","club","authentication","type","rest","language","split","params","Object","entries","applyClubDiscount","cid","sha1","concat","KEY_HASH","currency","accessClubToken","lang","parseExternalToken","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","unavailability","parseUnavailability","checkIn","currencyCode","hotelCurrency","firstChildInterval","measureUnit","unit","roomTypes","showLocalTaxes","fees","userCountry","country","vatIncluded","taxes","ServiceCurrency","exchange","items","values","infantAge","lowerBound","clubConditions","ServiceFeatures","get","EXTERNAL","URL","DEFAULT_LANGUAGE","externalSignout","TYPE","clubLogin","status","VALID","map","amountAvailable","availability","name","newInfoRoom","info","occupationOptions","description","roomTypeInfo","bedDistributions","bedType","galleryMedia","url3D","video","urlVideo","photos","roomSize","size","occupationQuantities","numFirstRangeChildren","minRange","numSecondRangeChildren","maxRange","numAdults","adults","numBabies","babies","totalChildren","children","posibilities","nightsDeal","maxOccupation","amenities","parseAmenities","bedDisposition","BED_DISPOSITION","bedTypes","reduce","next","forEach","amount","includes","parseBoards","images","photoAltDescription","alt","urlLarge","large","urlMediumRect","thumbnail","media","ages","item","UNIT","taxesType","getTaxesType","tracking","parseTracking","exports"],"sources":["../../../src/services/Rates/rates.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency, ServiceFeatures } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { BED_DISPOSITION, BED_TYPE, DEFAULT_LANGUAGE, EXTERNAL, KEY_HASH, UNIT, VALID } from './constants';\nimport {\n getTaxesType,\n parseAmenities,\n parseBoards,\n parseExternalToken,\n parseTracking,\n parseUnavailability,\n} from './helpers';\n\nconst { DOUBLE, SINGLE } = BED_TYPE;\n\nconst FEATURE = { PESTANA: 'pestana' };\n\nexport const rates = ({\n session: { authorization } = {},\n clubDiscount,\n locale,\n occupation,\n userCurrency,\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n const {\n idtokenprovider: id,\n checkin,\n nights,\n club: { authentication: { type } = {} } = {},\n ...rest\n } = others || {};\n\n const language = locale?.split('-')[0];\n\n const params = Object.entries({\n applyClubDiscount: clubDiscount,\n checkin,\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n currency: userCurrency,\n idtokenprovider: id,\n nights,\n ...rest,\n accessClubToken: authorization,\n lang: language,\n ...parseExternalToken(rest),\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_availability_v2.json?${new URLSearchParams(params)}`,\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const unavailability = parseUnavailability({ ...response, checkIn: checkin, nights, occupation });\n if (unavailability) return reject(unavailability);\n\n const {\n club,\n currencyCode: hotelCurrency,\n firstChildInterval = {},\n measureUnit: unit,\n roomTypes,\n showLocalTaxes: fees,\n userCountry: country,\n vatIncluded: taxes,\n } = response;\n\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n const items = Object.values(roomTypes);\n const infantAge = firstChildInterval?.lowerBound;\n\n resolve({\n clubConditions: ServiceFeatures.get(FEATURE.PESTANA, id)\n ? EXTERNAL.URL[language] || EXTERNAL.URL[DEFAULT_LANGUAGE]\n : undefined,\n country,\n currency: hotelCurrency,\n externalSignout: authorization && type === EXTERNAL.TYPE && club?.clubLogin?.status !== VALID,\n infantAge: infantAge !== null ? infantAge : undefined,\n items: items.map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const {\n description,\n roomTypeInfo: {\n bedDistributions: bedType = [],\n galleryMedia: { url3D, video: urlVideo } = {},\n photos,\n roomSize: size,\n } = {},\n } = info;\n\n const {\n occupationQuantities: {\n numFirstRangeChildren: minRange = 0,\n numSecondRangeChildren: maxRange = 0,\n numAdults: adults = 0,\n numBabies: babies = 0,\n totalChildren: children = 0,\n } = {},\n posibilities: [{ nights: nightsDeal } = {}] = [],\n rates,\n } = Object.values(occupationOptions)[0] || {};\n\n const maxOccupation = adults + children;\n\n return {\n amenities: parseAmenities(info),\n availability,\n bedDisposition: bedType.map((type) => BED_DISPOSITION[type]),\n bedTypes: bedType.reduce((result, next) => {\n BED_DISPOSITION[next].forEach(({ amount, type } = {}) => {\n if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;\n });\n\n return result;\n }, []),\n ...parseBoards({ currency, fees, hotelCurrency, rates, taxes }),\n description,\n images: photos?.map(({ photoAltDescription: alt, urlLarge: large, urlMediumRect: thumbnail } = {}) => ({\n alt,\n large,\n thumbnail,\n })),\n name,\n nightsDeal,\n maxOccupation,\n media: url3D || urlVideo ? { url3D, urlVideo } : undefined,\n occupation: maxOccupation\n ? [\n adults > 0 ? { type: 2, amount: adults } : undefined,\n children > 0 ? { type: 3, ages: [minRange, maxRange], amount: children } : undefined,\n babies > 0 ? { type: 4, amount: babies } : undefined,\n ].filter((item) => !!item)\n : [],\n size: size ? `${size} ${UNIT[unit].size}` : undefined,\n };\n },\n ),\n taxesType: getTaxesType(response),\n tracking: parseTracking(response),\n });\n });\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rates.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","DOUBLE","SINGLE","BED_TYPE","FEATURE","PESTANA","rates","session","authorization","clubDiscount","locale","occupation","userCurrency","others","arguments","length","undefined","Promise","resolve","reject","_club$clubLogin","idtokenprovider","id","checkin","nights","club","authentication","type","rest","language","split","params","Object","entries","applyClubDiscount","cid","sha1","concat","KEY_HASH","currency","accessClubToken","lang","parseExternalToken","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","unavailability","parseUnavailability","checkIn","currencyCode","hotelCurrency","firstChildInterval","measureUnit","unit","messages","availabilityMessage","increments","roomTypes","showLocalTaxes","fees","userCountry","country","vatIncluded","taxes","ServiceCurrency","exchange","items","values","infantAge","lowerBound","clubConditions","ServiceFeatures","get","EXTERNAL","URL","DEFAULT_LANGUAGE","externalSignout","TYPE","clubLogin","status","VALID","map","amountAvailable","availability","name","newInfoRoom","info","occupationOptions","description","roomTypeInfo","bedDistributions","bedType","galleryMedia","url3D","video","urlVideo","photos","roomSize","size","occupationQuantities","numFirstRangeChildren","minRange","numSecondRangeChildren","maxRange","numAdults","adults","numBabies","babies","totalChildren","children","posibilities","nightsDeal","maxOccupation","amenities","parseAmenities","bedDisposition","BED_DISPOSITION","bedTypes","reduce","next","forEach","amount","includes","parseBoards","images","photoAltDescription","alt","urlLarge","large","urlMediumRect","thumbnail","media","ages","item","UNIT","taxesType","getTaxesType","tracking","parseTracking","exports"],"sources":["../../../src/services/Rates/rates.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency, ServiceFeatures } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { BED_DISPOSITION, BED_TYPE, DEFAULT_LANGUAGE, EXTERNAL, KEY_HASH, UNIT, VALID } from './constants';\nimport {\n getTaxesType,\n parseAmenities,\n parseBoards,\n parseExternalToken,\n parseTracking,\n parseUnavailability,\n} from './helpers';\n\nconst { DOUBLE, SINGLE } = BED_TYPE;\n\nconst FEATURE = { PESTANA: 'pestana' };\n\nexport const rates = ({\n session: { authorization } = {},\n clubDiscount,\n locale,\n occupation,\n userCurrency,\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n const {\n idtokenprovider: id,\n checkin,\n nights,\n club: { authentication: { type } = {} } = {},\n ...rest\n } = others || {};\n\n const language = locale?.split('-')[0];\n\n const params = Object.entries({\n applyClubDiscount: clubDiscount,\n checkin,\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n currency: userCurrency,\n idtokenprovider: id,\n nights,\n ...rest,\n accessClubToken: authorization,\n lang: language,\n ...parseExternalToken(rest),\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_availability_v2.json?${new URLSearchParams(params)}`,\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const unavailability = parseUnavailability({ ...response, checkIn: checkin, nights, occupation });\n if (unavailability) return reject(unavailability);\n\n const {\n club,\n currencyCode: hotelCurrency,\n firstChildInterval = {},\n measureUnit: unit,\n messages: { availabilityMessage: { increments } = {} } = {},\n roomTypes,\n showLocalTaxes: fees,\n userCountry: country,\n vatIncluded: taxes,\n } = response;\n\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n const items = Object.values(roomTypes);\n const infantAge = firstChildInterval?.lowerBound;\n\n resolve({\n clubConditions: ServiceFeatures.get(FEATURE.PESTANA, id)\n ? EXTERNAL.URL[language] || EXTERNAL.URL[DEFAULT_LANGUAGE]\n : undefined,\n country,\n currency: hotelCurrency,\n externalSignout: authorization && type === EXTERNAL.TYPE && club?.clubLogin?.status !== VALID,\n increments: increments || undefined,\n infantAge: infantAge !== null ? infantAge : undefined,\n items: items.map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const {\n description,\n roomTypeInfo: {\n bedDistributions: bedType = [],\n galleryMedia: { url3D, video: urlVideo } = {},\n photos,\n roomSize: size,\n } = {},\n } = info;\n\n const {\n occupationQuantities: {\n numFirstRangeChildren: minRange = 0,\n numSecondRangeChildren: maxRange = 0,\n numAdults: adults = 0,\n numBabies: babies = 0,\n totalChildren: children = 0,\n } = {},\n posibilities: [{ nights: nightsDeal } = {}] = [],\n rates,\n } = Object.values(occupationOptions)[0] || {};\n\n const maxOccupation = adults + children;\n\n return {\n amenities: parseAmenities(info),\n availability,\n bedDisposition: bedType.map((type) => BED_DISPOSITION[type]),\n bedTypes: bedType.reduce((result, next) => {\n BED_DISPOSITION[next].forEach(({ amount, type } = {}) => {\n if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;\n });\n\n return result;\n }, []),\n ...parseBoards({ currency, fees, hotelCurrency, rates, taxes }),\n description,\n images: photos?.map(({ photoAltDescription: alt, urlLarge: large, urlMediumRect: thumbnail } = {}) => ({\n alt,\n large,\n thumbnail,\n })),\n name,\n nightsDeal,\n maxOccupation,\n media: url3D || urlVideo ? { url3D, urlVideo } : undefined,\n occupation: maxOccupation\n ? [\n adults > 0 ? { type: 2, amount: adults } : undefined,\n children > 0 ? { type: 3, ages: [minRange, maxRange], amount: children } : undefined,\n babies > 0 ? { type: 4, amount: babies } : undefined,\n ].filter((item) => !!item)\n : [],\n size: size ? `${size} ${UNIT[unit].size}` : undefined,\n };\n },\n ),\n taxesType: getTaxesType(response),\n tracking: parseTracking(response),\n });\n });\n"],"mappings":"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"}
|