@mirai/core 0.4.625 → 0.4.627
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/Core.ErrorBoundary.js +4 -2
- package/build/Core.ErrorBoundary.js.map +1 -1
- package/build/components/Rates/hooks/useRates.js +2 -3
- package/build/components/Rates/hooks/useRates.js.map +1 -1
- package/build/contexts/EventManager/EventManager.js +21 -8
- package/build/contexts/EventManager/EventManager.js.map +1 -1
- package/build/contexts/PerformanceManager/PerformanceManager.js +13 -24
- package/build/contexts/PerformanceManager/PerformanceManager.js.map +1 -1
- package/build/helpers/trackError.js +121 -7
- package/build/helpers/trackError.js.map +1 -1
- package/build/index.js +11 -1
- package/build/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,8 +15,10 @@ class InternalErrorBoundary extends _react.default.Component {
|
|
|
15
15
|
error: undefined
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
componentDidCatch(error) {
|
|
19
|
-
(0, _helpers.
|
|
18
|
+
componentDidCatch(error, info) {
|
|
19
|
+
(0, _helpers.reportError)(error, {
|
|
20
|
+
componentStack: info === null || info === void 0 ? void 0 : info.componentStack
|
|
21
|
+
});
|
|
20
22
|
this.setState({
|
|
21
23
|
error
|
|
22
24
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Core.ErrorBoundary.js","names":["_propTypes","_interopRequireDefault","require","_react","_helpers","e","__esModule","default","InternalErrorBoundary","React","Component","constructor","props","state","error","undefined","componentDidCatch","
|
|
1
|
+
{"version":3,"file":"Core.ErrorBoundary.js","names":["_propTypes","_interopRequireDefault","require","_react","_helpers","e","__esModule","default","InternalErrorBoundary","React","Component","constructor","props","state","error","undefined","componentDidCatch","info","reportError","componentStack","setState","render","children","displayName","propTypes","PropTypes","node","ErrorBoundary","createElement","exports"],"sources":["../src/Core.ErrorBoundary.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { reportError } from './helpers';\n\nclass InternalErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { error: undefined };\n }\n\n componentDidCatch(error, info) {\n reportError(error, { componentStack: info?.componentStack });\n this.setState({ error });\n }\n\n render() {\n const { children } = this.props;\n const { error } = this.state;\n if (error) throw error;\n return children || null;\n }\n}\n\nInternalErrorBoundary.displayName = 'core:components:ErrorBoundary';\n\nInternalErrorBoundary.propTypes = {\n children: PropTypes.node,\n};\n\nconst ErrorBoundary = (props) => React.createElement(InternalErrorBoundary, props);\n\nErrorBoundary.displayName = InternalErrorBoundary.displayName;\n\nErrorBoundary.propTypes = InternalErrorBoundary.propTypes;\n\nexport { ErrorBoundary };\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAAwC,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExC,MAAMG,qBAAqB,SAASC,cAAK,CAACC,SAAS,CAAC;EAClDC,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IACZ,IAAI,CAACC,KAAK,GAAG;MAAEC,KAAK,EAAEC;IAAU,CAAC;EACnC;EAEAC,iBAAiBA,CAACF,KAAK,EAAEG,IAAI,EAAE;IAC7B,IAAAC,oBAAW,EAACJ,KAAK,EAAE;MAAEK,cAAc,EAAEF,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE;IAAe,CAAC,CAAC;IAC5D,IAAI,CAACC,QAAQ,CAAC;MAAEN;IAAM,CAAC,CAAC;EAC1B;EAEAO,MAAMA,CAAA,EAAG;IACP,MAAQC,QAAQ,GAAK,IAAI,CAACV,KAAK,CAAvBU,QAAQ;IAChB,MAAQR,KAAK,GAAK,IAAI,CAACD,KAAK,CAApBC,KAAK;IACb,IAAIA,KAAK,EAAE,MAAMA,KAAK;IACtB,OAAOQ,QAAQ,IAAI,IAAI;EACzB;AACF;AAEAd,qBAAqB,CAACe,WAAW,GAAG,+BAA+B;AAEnEf,qBAAqB,CAACgB,SAAS,GAAG;EAChCF,QAAQ,EAAEG,kBAAS,CAACC;AACtB,CAAC;AAED,MAAMC,aAAa,GAAIf,KAAK,iBAAKH,cAAK,CAACmB,aAAa,CAACpB,qBAAqB,EAAEI,KAAK,CAAC;AAACiB,OAAA,CAAAF,aAAA,GAAAA,aAAA;AAEnFA,aAAa,CAACJ,WAAW,GAAGf,qBAAqB,CAACe,WAAW;AAE7DI,aAAa,CAACH,SAAS,GAAGhB,qBAAqB,CAACgB,SAAS","ignoreList":[]}
|
|
@@ -310,10 +310,9 @@ const useRates = () => {
|
|
|
310
310
|
(0, _helpers2.replaceUrlParams)(urlParams);
|
|
311
311
|
}
|
|
312
312
|
if (nextPlace && !nextPlace.isHotel) {
|
|
313
|
-
(0, _helpers2.replaceUrlParams)({
|
|
314
|
-
urlParams,
|
|
313
|
+
(0, _helpers2.replaceUrlParams)(_objectSpread(_objectSpread({}, urlParams), {}, {
|
|
315
314
|
idtokenprovider: undefined
|
|
316
|
-
});
|
|
315
|
+
}));
|
|
317
316
|
}
|
|
318
317
|
const params = _objectSpread(_objectSpread(_objectSpread({
|
|
319
318
|
currency
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRates.js","names":["_dataSources","require","_locale","_services","_ui","_react","_helpers","_helpers2","_helpers3","_Rates","_Rates2","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","return","isArray","fetchCall","WARNING","useRates","_useDevice","useDevice","isMobile","mobile","_useLocale","useLocale","translate","_useStore","useStore","set","_useStore$value","_useStore$value$club","club","currency","_useStore$value$finde","finder","_useStore$value$hotel","hotel","id","language","locale","_useStore$value$rates","rates","_useStore$value$rates2","_useStore$value$rates3","cart","storeCart","meta","_useStore$value$occup","occupation","_useStore$value$occup2","maxRooms","urlParams","session","_useStore$value$skele","skeleton","refRoomSelector","useRef","_useState","useState","_useState2","setCart","_useState3","discount","_useState4","clubDiscount","setClubDiscount","_useState5","_useState6","dataSource","setDataSource","_useState7","_useState8","fetching","setFetching","_useState9","_useState0","metaBoard","setMetaBoard","_useState1","_useState10","responseError","setResponseError","_useState11","_useState12","room","setRoom","_useState13","_useState14","strictSearch","setStrictSearch","_finder$calendar","calendar","_finder$occupation","place","promocode","device","multiRoom","useEffect","_ref","_ref$current","current","_ref$current2","_ref$current2$offsetH","offsetHeight","_ref$current2$offsetT","offsetTop","window","scrollTo","top","behavior","undefined","debounceFetch","nextRoom","callback","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","tracking","publish","RATES_RESPONSE","error","event","response","getBoard","then","board","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","checkNotifications","nextDataSource","nextCalendar","nextOccupation","nextPlace","nextPromocode","_nextDataSource$notif","notifications","trackNotification","notificationType","notificationMessage","METRICS","METRICS_EVENTS","RATES_INTERACTION","action","notification_type","notification_message","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","RATES_FILTER_PROMOCODE","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","_ref2","fetchUrlParams","location","search","notification","validateError","NOTIFICATION_VALIDATE","replaceUrlParams","warning","fetch","_ref3","_ref3$nextCalendar","_ref3$nextOccupation","_ref3$nextPlace","_ref3$nextPromocode","_ref4","_ref4$id","_ref4$id2","_ref4$id3","currentId","_ref5","_ref5$id","_ref5$id2","_ref5$id3","nextId","nextClubDiscount","isHotel","_club$variants","variants","currentVariant","find","_ref6","_ref6$id","FINDER","checkin","nights","parties","getFinderParams","idtokenprovider","params","active","selectedIds","map","_ref7","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","debounce","actions","state","exports"],"sources":["../../../../src/components/Rates/hooks/useRates.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceRates } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { debounce, fetchUrlParams } from '../../../helpers';\nimport { EVENT, METRICS_EVENTS, parseToParties, replaceUrlParams } from '../../helpers';\nimport { getBoard, getFinderParams, signout } from '../helpers';\nimport { NOTIFICATION, UTM_SOURCE_NAME } from '../Rates.constants';\nimport { L10N } from '../Rates.l10n';\n\nlet fetchCall = 0;\nconst WARNING = 'warning';\n\nexport const useRates = () => {\n const { isMobile, mobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [], meta } = {},\n occupation: { maxRooms } = {},\n urlParams,\n session,\n skeleton = false,\n },\n } = useStore();\n const refRoomSelector = useRef();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(false);\n const [metaBoard, setMetaBoard] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place, promocode } = finder;\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const multiRoom = occupation?.length > 1;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n skeleton && setFetching(true);\n }, [skeleton]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n window.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n (room !== undefined || multiRoom) && debounceFetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n const callback = async (next) => {\n setMetaBoard();\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n };\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: {\n ...(dataSource || responseError),\n currency,\n finder: { calendar, occupation, place, promocode },\n language,\n session,\n },\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (meta) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => {\n set({ rates: undefined });\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n\n debounceFetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const checkNotifications = (nextDataSource, nextCalendar, nextOccupation, nextPlace, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n const trackNotification = (notificationType, notificationMessage) => {\n Event.publish(EVENT.METRICS, {\n id: METRICS_EVENTS.RATES_INTERACTION,\n action: 'notification_show',\n notification_type: notificationType,\n notification_message: notificationMessage,\n });\n };\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n\n trackNotification(WARNING, 'promo_code_unavailable');\n set({ finder: { calendar: nextCalendar, occupation: nextOccupation, place: nextPlace, promocode: '' } });\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: undefined });\n } else if (nextPromocode !== finder.promocode) {\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: nextPromocode });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n trackNotification(WARNING, 'room_unavailable');\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n trackNotification(WARNING, 'offer_unavailable');\n }\n const { notification } = fetchUrlParams(location.search) || {};\n const validateError = notification && L10N.NOTIFICATION_VALIDATE[notification];\n if (validateError) {\n replaceUrlParams({ notification: undefined });\n Event.publish(EVENT.NOTIFICATION, { warning: true, defaultMessage: translate(validateError) });\n trackNotification(WARNING, 'rate_validation_error');\n }\n };\n\n const fetch = async ({\n nextCalendar = calendar,\n nextRoom,\n nextOccupation = occupation,\n nextPlace = place,\n nextPromocode = finder.promocode,\n } = {}) => {\n if (skeleton) return;\n\n const { id: [currentId] = [] } = place || {};\n const { id: [nextId] = [] } = nextPlace || {};\n let nextClubDiscount;\n if (nextPlace?.isHotel && currentId !== nextId) {\n const { variants = [] } = club;\n const currentVariant = variants.find(({ id = '' } = {}) => id.toString() === nextId.toString());\n nextClubDiscount = currentVariant?.discount;\n if (currentVariant && nextClubDiscount !== clubDiscount) {\n Event.publish(EVENT.RATES_FILTER_CLUB, nextClubDiscount);\n\n return;\n }\n }\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n if (nextPlace && !nextPlace.isHotel) {\n replaceUrlParams({ urlParams, idtokenprovider: undefined });\n }\n\n const params = {\n currency,\n ...urlParams,\n ...(club.active ? { club, clubDiscount } : undefined),\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (nextRoom !== undefined) params.parties = parseToParties([nextOccupation[nextRoom || 0]]);\n\n const lastFetchCall = ++fetchCall;\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (lastFetchCall !== fetchCall) return;\n\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource && nextRoom === undefined) {\n checkNotifications(nextDataSource, nextCalendar, nextOccupation, nextPlace, nextPromocode);\n\n if (nextOccupation?.length > 1 && nextRoom === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n return {\n actions: { setCart, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounceFetch,\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AAAqC,SAAAU,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAgB,gBAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAD,CAAA,GAAAG,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAAvB,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAoB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA3B,CAAA,QAAAwB,CAAA,GAAAxB,CAAA,CAAA4B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAAA,SAAA8B,eAAA/B,CAAA,EAAAD,CAAA,WAAAiC,eAAA,CAAAhC,CAAA,KAAAiC,qBAAA,CAAAjC,CAAA,EAAAD,CAAA,KAAAmC,2BAAA,CAAAlC,CAAA,EAAAD,CAAA,KAAAoC,gBAAA;AAAA,SAAAA,iBAAA,cAAAP,SAAA;AAAA,SAAAM,4BAAAlC,CAAA,EAAAoC,CAAA,QAAApC,CAAA,2BAAAA,CAAA,SAAAqC,iBAAA,CAAArC,CAAA,EAAAoC,CAAA,OAAAnC,CAAA,MAAAqC,QAAA,CAAAX,IAAA,CAAA3B,CAAA,EAAAuC,KAAA,6BAAAtC,CAAA,IAAAD,CAAA,CAAAwC,WAAA,KAAAvC,CAAA,GAAAD,CAAA,CAAAwC,WAAA,CAAAC,IAAA,aAAAxC,CAAA,cAAAA,CAAA,GAAAyC,KAAA,CAAAC,IAAA,CAAA3C,CAAA,oBAAAC,CAAA,+CAAA2C,IAAA,CAAA3C,CAAA,IAAAoC,iBAAA,CAAArC,CAAA,EAAAoC,CAAA;AAAA,SAAAC,kBAAArC,CAAA,EAAAoC,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAApC,CAAA,CAAAa,MAAA,MAAAuB,CAAA,GAAApC,CAAA,CAAAa,MAAA,YAAAd,CAAA,MAAA8C,CAAA,GAAAH,KAAA,CAAAN,CAAA,GAAArC,CAAA,GAAAqC,CAAA,EAAArC,CAAA,IAAA8C,CAAA,CAAA9C,CAAA,IAAAC,CAAA,CAAAD,CAAA,UAAA8C,CAAA;AAAA,SAAAZ,sBAAAjC,CAAA,EAAA8C,CAAA,QAAA7C,CAAA,WAAAD,CAAA,gCAAAyB,MAAA,IAAAzB,CAAA,CAAAyB,MAAA,CAAAsB,QAAA,KAAA/C,CAAA,4BAAAC,CAAA,QAAAF,CAAA,EAAA8C,CAAA,EAAAtB,CAAA,EAAAyB,CAAA,EAAAZ,CAAA,OAAAa,CAAA,OAAA5C,CAAA,iBAAAkB,CAAA,IAAAtB,CAAA,GAAAA,CAAA,CAAA0B,IAAA,CAAA3B,CAAA,GAAAkD,IAAA,QAAAJ,CAAA,QAAA5C,MAAA,CAAAD,CAAA,MAAAA,CAAA,UAAAgD,CAAA,uBAAAA,CAAA,IAAAlD,CAAA,GAAAwB,CAAA,CAAAI,IAAA,CAAA1B,CAAA,GAAAkD,IAAA,MAAAf,CAAA,CAAA3B,IAAA,CAAAV,CAAA,CAAAqB,KAAA,GAAAgB,CAAA,CAAAvB,MAAA,KAAAiC,CAAA,GAAAG,CAAA,iBAAAjD,CAAA,IAAAK,CAAA,OAAAwC,CAAA,GAAA7C,CAAA,yBAAAiD,CAAA,YAAAhD,CAAA,CAAAmD,MAAA,KAAAJ,CAAA,GAAA/C,CAAA,CAAAmD,MAAA,IAAAlD,MAAA,CAAA8C,CAAA,MAAAA,CAAA,2BAAA3C,CAAA,QAAAwC,CAAA,aAAAT,CAAA;AAAA,SAAAJ,gBAAAhC,CAAA,QAAA0C,KAAA,CAAAW,OAAA,CAAArD,CAAA,UAAAA,CAAA;AAErC,IAAIsD,SAAS,GAAG,CAAC;AACjB,MAAMC,OAAO,GAAG,SAAS;AAElB,MAAMC,QAAQ,GAAGA,CAAA,KAAM;EAC5B,MAAAC,UAAA,GAA6B,IAAAC,aAAS,EAAC,CAAC;IAAhCC,QAAQ,GAAAF,UAAA,CAARE,QAAQ;IAAEC,MAAM,GAAAH,UAAA,CAANG,MAAM;EACxB,MAAAC,UAAA,GAAsB,IAAAC,iBAAS,EAAC,CAAC;IAAzBC,SAAS,GAAAF,UAAA,CAATE,SAAS;EACjB,MAAAC,SAAA,GAgBI,IAAAC,qBAAQ,EAAC,CAAC;IAfZC,GAAG,GAAAF,SAAA,CAAHE,GAAG;IAAAC,eAAA,GAAAH,SAAA,CACH5C,KAAK;IAAAgD,oBAAA,GAAAD,eAAA,CACHE,IAAI;IAAJA,IAAI,GAAAD,oBAAA,cAAG,CAAC,CAAC,GAAAA,oBAAA;IACTE,QAAQ,GAAAH,eAAA,CAARG,QAAQ;IAAAC,qBAAA,GAAAJ,eAAA,CACRK,MAAM;IAANA,MAAM,GAAAD,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA;IAAAE,qBAAA,GAAAN,eAAA,CACXO,KAAK;IAALA,KAAK,GAAAD,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA;IACVE,EAAE,GAAAR,eAAA,CAAFQ,EAAE;IACFC,QAAQ,GAAAT,eAAA,CAARS,QAAQ;IACRC,MAAM,GAAAV,eAAA,CAANU,MAAM;IAAAC,qBAAA,GAAAX,eAAA,CACNY,KAAK;IAAAC,sBAAA,GAAAF,qBAAA,cAAmC,CAAC,CAAC,GAAAA,qBAAA;IAAAG,sBAAA,GAAAD,sBAAA,CAAjCE,IAAI;IAAEC,SAAS,GAAAF,sBAAA,cAAG,EAAE,GAAAA,sBAAA;IAAEG,IAAI,GAAAJ,sBAAA,CAAJI,IAAI;IAAAC,qBAAA,GAAAlB,eAAA,CACnCmB,UAAU;IAAAC,sBAAA,GAAAF,qBAAA,cAAiB,CAAC,CAAC,GAAAA,qBAAA;IAAfG,QAAQ,GAAAD,sBAAA,CAARC,QAAQ;IACtBC,SAAS,GAAAtB,eAAA,CAATsB,SAAS;IACTC,OAAO,GAAAvB,eAAA,CAAPuB,OAAO;IAAAC,qBAAA,GAAAxB,eAAA,CACPyB,QAAQ;IAARA,QAAQ,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;EAGpB,MAAME,eAAe,GAAG,IAAAC,aAAM,EAAC,CAAC;EAEhC,MAAAC,SAAA,GAAwB,IAAAC,eAAQ,EAAC,EAAE,CAAC;IAAAC,UAAA,GAAAlE,cAAA,CAAAgE,SAAA;IAA7Bb,IAAI,GAAAe,UAAA;IAAEC,OAAO,GAAAD,UAAA;EACpB,MAAAE,UAAA,GAAwC,IAAAH,eAAQ,EAAC3B,IAAI,CAAC+B,QAAQ,CAAC;IAAAC,UAAA,GAAAtE,cAAA,CAAAoE,UAAA;IAAxDG,YAAY,GAAAD,UAAA;IAAEE,eAAe,GAAAF,UAAA;EACpC,MAAAG,UAAA,GAAoC,IAAAR,eAAQ,EAAC,CAAC;IAAAS,UAAA,GAAA1E,cAAA,CAAAyE,UAAA;IAAvCE,UAAU,GAAAD,UAAA;IAAEE,aAAa,GAAAF,UAAA;EAChC,MAAAG,UAAA,GAAgC,IAAAZ,eAAQ,EAAC,KAAK,CAAC;IAAAa,UAAA,GAAA9E,cAAA,CAAA6E,UAAA;IAAxCE,QAAQ,GAAAD,UAAA;IAAEE,WAAW,GAAAF,UAAA;EAC5B,MAAAG,UAAA,GAAkC,IAAAhB,eAAQ,EAAC,CAAC;IAAAiB,UAAA,GAAAlF,cAAA,CAAAiF,UAAA;IAArCE,SAAS,GAAAD,UAAA;IAAEE,YAAY,GAAAF,UAAA;EAC9B,MAAAG,UAAA,GAA0C,IAAApB,eAAQ,EAAC,CAAC;IAAAqB,WAAA,GAAAtF,cAAA,CAAAqF,UAAA;IAA7CE,aAAa,GAAAD,WAAA;IAAEE,gBAAgB,GAAAF,WAAA;EACtC,MAAAG,WAAA,GAAwB,IAAAxB,eAAQ,EAAC,CAAC;IAAAyB,WAAA,GAAA1F,cAAA,CAAAyF,WAAA;IAA3BE,IAAI,GAAAD,WAAA;IAAEE,OAAO,GAAAF,WAAA;EACpB,MAAAG,WAAA,GAAwC,IAAA5B,eAAQ,EAAC,CAAC;IAAA6B,WAAA,GAAA9F,cAAA,CAAA6F,WAAA;IAA3CE,YAAY,GAAAD,WAAA;IAAEE,eAAe,GAAAF,WAAA;EAEpC,MAAAG,gBAAA,GAA6DxD,MAAM,CAA3DyD,QAAQ;IAARA,QAAQ,GAAAD,gBAAA,cAAG,EAAE,GAAAA,gBAAA;IAAAE,kBAAA,GAAwC1D,MAAM,CAA5Cc,UAAU;IAAVA,UAAU,GAAA4C,kBAAA,cAAG,EAAE,GAAAA,kBAAA;IAAEC,KAAK,GAAgB3D,MAAM,CAA3B2D,KAAK;IAAEC,SAAS,GAAK5D,MAAM,CAApB4D,SAAS;EACxD,MAAMC,MAAM,GAAGzE,MAAM,GAAG,QAAQ,GAAG,gBAAgB;EACnD,MAAM0E,SAAS,GAAG,CAAAhD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEzE,MAAM,IAAG,CAAC;;EAExC;EACA,IAAA0H,gBAAS,EAAC,MAAM;IACd3C,QAAQ,IAAImB,WAAW,CAAC,IAAI,CAAC;EAC/B,CAAC,EAAE,CAACnB,QAAQ,CAAC,CAAC;EAEd,IAAA2C,gBAAS,EAAC,MAAM;IACd,IAAID,SAAS,EAAE;MACb,IAAIZ,IAAI,GAAG,CAAC,EAAE;QACZ,MAAAc,IAAA,GAA8D3C,eAAe,IAAI,CAAC,CAAC;UAAA4C,YAAA,GAAAD,IAAA,CAA3EE,OAAO;UAAAC,aAAA,GAAAF,YAAA,cAAwC,CAAC,CAAC,GAAAA,YAAA;UAAAG,qBAAA,GAAAD,aAAA,CAAtCE,YAAY;UAAZA,YAAY,GAAAD,qBAAA,cAAG,CAAC,GAAAA,qBAAA;UAAAE,qBAAA,GAAAH,aAAA,CAAEI,SAAS;UAATA,SAAS,GAAAD,qBAAA,cAAG,CAAC,GAAAA,qBAAA;QAClDE,MAAM,CAACC,QAAQ,CAAC;UAAEC,GAAG,EAAEH,SAAS,IAAIpF,QAAQ,GAAGkF,YAAY,GAAG,CAAC,CAAC;UAAEM,QAAQ,EAAE;QAAS,CAAC,CAAC;MACzF;MACAxC,aAAa,CAAC,CAAC;IACjB;IAEA,CAACe,IAAI,KAAK0B,SAAS,IAAId,SAAS,KAAKe,aAAa,CAAC;MAAEC,QAAQ,EAAE5B;IAAK,CAAC,CAAC;IACtE;EACF,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,IAAAa,gBAAS,EAAC,MAAM;IACd,MAAMgB,QAAQ,GAAG,MAAOrG,IAAI,IAAK;MAC/BiE,YAAY,CAAC,CAAC;MACdZ,eAAe,CAAC,OAAOrD,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAGkG,SAAS,CAAC;IAC9D,CAAC;IACDI,kBAAK,CAACC,SAAS,CAACC,eAAK,CAACC,iBAAiB,EAAEJ,QAAQ,CAAC;IAElD,OAAO,MAAMC,kBAAK,CAACI,WAAW,CAACF,eAAK,CAACC,iBAAiB,EAAEJ,QAAQ,CAAC;IACjE;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAhB,gBAAS,EAAC,MAAM;IACd,IAAK,CAAC7B,UAAU,KAAK,CAACY,aAAa,IAAI,CAACA,aAAa,CAACuC,QAAQ,CAAC,IAAKnC,IAAI,EAAE;IAE1E8B,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACK,cAAc,EAAE;MAClCC,KAAK,EAAE,CAAC,CAAC1C,aAAa;MACtB2C,KAAK,EAAEP,eAAK,CAACK,cAAc;MAC3BG,QAAQ,EAAAvJ,aAAA,CAAAA,aAAA,KACF+F,UAAU,IAAIY,aAAa;QAC/BhD,QAAQ;QACRE,MAAM,EAAE;UAAEyD,QAAQ;UAAE3C,UAAU;UAAE6C,KAAK;UAAEC;QAAU,CAAC;QAClDxD,QAAQ;QACRc;MAAO;IAEX,CAAC,CAAC;;IAEF;EACF,CAAC,EAAE,CAACgB,UAAU,EAAEY,aAAa,CAAC,CAAC;EAE/B,IAAAiB,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC7B,UAAU,IAAI,CAACvB,SAAS,CAACtE,MAAM,EAAE;IAEtC,IAAAsJ,kBAAQ,EAAC;MAAEjF,IAAI;MAAEwB,UAAU;MAAEvB;IAAU,CAAC,CAAC,CACtCiF,IAAI,CAAEC,KAAK,IAAK;MACf,IAAIjF,IAAI,EAAE;QACRoE,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,YAAY,EAAE;UAChCC,QAAQ,EAAE,IAAI;UACdC,cAAc,EAAEzG,SAAS,CAAC0G,YAAI,CAACC,4BAA4B,EAAE;YAC3DC,UAAU,EAAEC,sBAAe,CAACnF,SAAS,CAACkF,UAAU,CAAC,IAAIlF,SAAS,CAACkF;UACjE,CAAC;QACH,CAAC,CAAC;MACJ;MAEAxD,YAAY,CAACkD,KAAK,CAAC;MACnBnG,GAAG,CAAC;QAAEa,KAAK,EAAEqE;MAAU,CAAC,CAAC;IAC3B,CAAC,CAAC,CACDyB,KAAK,CAAC,MAAM;MACX3G,GAAG,CAAC;QAAEa,KAAK,EAAEqE;MAAU,CAAC,CAAC;IAC3B,CAAC,CAAC;;IAEJ;EACF,CAAC,EAAE,CAAC1C,UAAU,CAAC,CAAC;EAEhB,IAAA6B,gBAAS,EAAC,MAAM;IACd,IAAI,CAACjC,YAAY,IAAI,CAAChC,QAAQ,IAAI,CAACoB,OAAO,IAAIoC,YAAY,KAAKsB,SAAS,EAAE;IAE1ElD,OAAO,CAAC,EAAE,CAAC;IACXyB,OAAO,CAACyB,SAAS,CAAC;IAClBC,aAAa,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAAC/C,YAAY,EAAEhC,QAAQ,EAAEoB,OAAO,EAAEoC,YAAY,CAAC,CAAC;EAEnD,IAAAS,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC1D,MAAM,EAAE;IAEbwE,aAAa,CAAC;MAAEC,QAAQ,EAAE5B;IAAK,CAAC,CAAC;IACjC;EACF,CAAC,EAAE,CAAC7C,MAAM,CAAC,CAAC;EAEZ,MAAMiG,kBAAkB,GAAGA,CAACC,cAAc,EAAEC,YAAY,EAAEC,cAAc,EAAEC,SAAS,EAAEC,aAAa,KAAK;IACrG,MAAAC,qBAAA,GAA+BL,cAAc,CAArCM,aAAa;MAAbA,aAAa,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;IAC1B,MAAME,iBAAiB,GAAGA,CAACC,gBAAgB,EAAEC,mBAAmB,KAAK;MACnEhC,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAAC+B,OAAO,EAAE;QAC3B9G,EAAE,EAAE+G,wBAAc,CAACC,iBAAiB;QACpCC,MAAM,EAAE,mBAAmB;QAC3BC,iBAAiB,EAAEN,gBAAgB;QACnCO,oBAAoB,EAAEN;MACxB,CAAC,CAAC;IACJ,CAAC;IAED,IAAIH,aAAa,CAACU,QAAQ,CAACzB,mBAAY,CAAC0B,mBAAmB,CAAC,IAAIb,aAAa,EAAE;MAC7E3B,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,YAAY,EAAE;QAChCC,QAAQ,EAAE,IAAI;QACdC,cAAc,EAAEzG,SAAS,CAAC0G,YAAI,CAACwB,gCAAgC,EAAE;UAAE7D,SAAS,EAAE+C;QAAc,CAAC;MAC/F,CAAC,CAAC;MAEFG,iBAAiB,CAAC/H,OAAO,EAAE,wBAAwB,CAAC;MACpDW,GAAG,CAAC;QAAEM,MAAM,EAAE;UAAEyD,QAAQ,EAAE+C,YAAY;UAAE1F,UAAU,EAAE2F,cAAc;UAAE9C,KAAK,EAAE+C,SAAS;UAAE9C,SAAS,EAAE;QAAG;MAAE,CAAC,CAAC;MACxGoB,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACwC,sBAAsB,EAAE;QAAE9D,SAAS,EAAEgB;MAAU,CAAC,CAAC;IACvE,CAAC,MAAM,IAAI+B,aAAa,KAAK3G,MAAM,CAAC4D,SAAS,EAAE;MAC7CoB,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACwC,sBAAsB,EAAE;QAAE9D,SAAS,EAAE+C;MAAc,CAAC,CAAC;IAC3E;IACA,IAAIE,aAAa,CAACU,QAAQ,CAACzB,mBAAY,CAAC6B,cAAc,CAAC,IAAI1G,SAAS,CAAC2G,UAAU,EAAE;MAC/E5C,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,YAAY,EAAE;QAChCC,QAAQ,EAAE,IAAI;QACdC,cAAc,EAAEzG,SAAS,CAAC0G,YAAI,CAAC4B,2BAA2B;MAC5D,CAAC,CAAC;MACFf,iBAAiB,CAAC/H,OAAO,EAAE,kBAAkB,CAAC;IAChD;IACA,IAAI8H,aAAa,CAACU,QAAQ,CAACzB,mBAAY,CAACgC,eAAe,CAAC,IAAI7G,SAAS,CAAC8G,QAAQ,EAAE;MAC9E/C,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,YAAY,EAAE;QAChCC,QAAQ,EAAE,IAAI;QACdC,cAAc,EAAEzG,SAAS,CAAC0G,YAAI,CAAC+B,4BAA4B;MAC7D,CAAC,CAAC;MACFlB,iBAAiB,CAAC/H,OAAO,EAAE,mBAAmB,CAAC;IACjD;IACA,MAAAkJ,KAAA,GAAyB,IAAAC,uBAAc,EAACC,QAAQ,CAACC,MAAM,CAAC,IAAI,CAAC,CAAC;MAAtDC,YAAY,GAAAJ,KAAA,CAAZI,YAAY;IACpB,MAAMC,aAAa,GAAGD,YAAY,IAAIpC,YAAI,CAACsC,qBAAqB,CAACF,YAAY,CAAC;IAC9E,IAAIC,aAAa,EAAE;MACjB,IAAAE,0BAAgB,EAAC;QAAEH,YAAY,EAAEzD;MAAU,CAAC,CAAC;MAC7CI,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,YAAY,EAAE;QAAE2C,OAAO,EAAE,IAAI;QAAEzC,cAAc,EAAEzG,SAAS,CAAC+I,aAAa;MAAE,CAAC,CAAC;MAC9FxB,iBAAiB,CAAC/H,OAAO,EAAE,uBAAuB,CAAC;IACrD;EACF,CAAC;EAED,MAAM2J,KAAK,GAAG,eAAAA,CAAA,EAMH;IAAA,IAAAC,KAAA,GAAAvM,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAwI,SAAA,GAAAxI,SAAA,MAAP,CAAC,CAAC;MAAAwM,kBAAA,GAAAD,KAAA,CALJnC,YAAY;MAAZA,YAAY,GAAAoC,kBAAA,cAAGnF,QAAQ,GAAAmF,kBAAA;MACvB9D,QAAQ,GAAA6D,KAAA,CAAR7D,QAAQ;MAAA+D,oBAAA,GAAAF,KAAA,CACRlC,cAAc;MAAdA,cAAc,GAAAoC,oBAAA,cAAG/H,UAAU,GAAA+H,oBAAA;MAAAC,eAAA,GAAAH,KAAA,CAC3BjC,SAAS;MAATA,SAAS,GAAAoC,eAAA,cAAGnF,KAAK,GAAAmF,eAAA;MAAAC,mBAAA,GAAAJ,KAAA,CACjBhC,aAAa;MAAbA,aAAa,GAAAoC,mBAAA,cAAG/I,MAAM,CAAC4D,SAAS,GAAAmF,mBAAA;IAEhC,IAAI3H,QAAQ,EAAE;IAEd,MAAA4H,KAAA,GAAiCrF,KAAK,IAAI,CAAC,CAAC;MAAAsF,QAAA,GAAAD,KAAA,CAApC7I,EAAE;MAAA+I,SAAA,GAAAD,QAAA,cAAgB,EAAE,GAAAA,QAAA;MAAAE,SAAA,GAAA5L,cAAA,CAAA2L,SAAA;MAAfE,SAAS,GAAAD,SAAA;IACtB,MAAAE,KAAA,GAA8B3C,SAAS,IAAI,CAAC,CAAC;MAAA4C,QAAA,GAAAD,KAAA,CAArClJ,EAAE;MAAAoJ,SAAA,GAAAD,QAAA,cAAa,EAAE,GAAAA,QAAA;MAAAE,SAAA,GAAAjM,cAAA,CAAAgM,SAAA;MAAZE,MAAM,GAAAD,SAAA;IACnB,IAAIE,gBAAgB;IACpB,IAAIhD,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEiD,OAAO,IAAIP,SAAS,KAAKK,MAAM,EAAE;MAC9C,MAAAG,cAAA,GAA0B/J,IAAI,CAAtBgK,QAAQ;QAARA,QAAQ,GAAAD,cAAA,cAAG,EAAE,GAAAA,cAAA;MACrB,MAAME,cAAc,GAAGD,QAAQ,CAACE,IAAI,CAAC;QAAA,IAAAC,KAAA,GAAA5N,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAwI,SAAA,GAAAxI,SAAA,MAAe,CAAC,CAAC;UAAA6N,QAAA,GAAAD,KAAA,CAAd7J,EAAE;UAAFA,EAAE,GAAA8J,QAAA,cAAG,EAAE,GAAAA,QAAA;QAAA,OAAY9J,EAAE,CAACrC,QAAQ,CAAC,CAAC,KAAK2L,MAAM,CAAC3L,QAAQ,CAAC,CAAC;MAAA,EAAC;MAC/F4L,gBAAgB,GAAGI,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAElI,QAAQ;MAC3C,IAAIkI,cAAc,IAAIJ,gBAAgB,KAAK5H,YAAY,EAAE;QACvDkD,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACC,iBAAiB,EAAEuE,gBAAgB,CAAC;QAExD;MACF;IACF;IAEA1E,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACgF,MAAM,EAAE;MAAEzG,QAAQ,EAAEmB;IAAU,CAAC,CAAC;IAEpDrC,WAAW,CAAC,IAAI,CAAC;IACjBQ,gBAAgB,CAAC,CAAC;IAElB,IAAI9B,SAAS,GAAG,IAAAiH,uBAAc,EAACC,QAAQ,CAACC,MAAM,CAAC;IAC/C,IAAI,CAACnH,SAAS,CAACkJ,OAAO,IAAI,CAAClJ,SAAS,CAACmJ,MAAM,IAAI,CAACnJ,SAAS,CAACoJ,OAAO,EAAE;MACjEpJ,SAAS,GAAA9E,aAAA,CAAAA,aAAA,KAAQ8E,SAAS,GAAK,IAAAqJ,yBAAe,EAAAnO,aAAA,CAAAA,aAAA,KAAM6D,MAAM;QAAEE;MAAK,EAAE,CAAC,CAAE;MACtE,IAAAsI,0BAAgB,EAACvH,SAAS,CAAC;IAC7B;IACA,IAAIyF,SAAS,IAAI,CAACA,SAAS,CAACiD,OAAO,EAAE;MACnC,IAAAnB,0BAAgB,EAAC;QAAEvH,SAAS;QAAEsJ,eAAe,EAAE3F;MAAU,CAAC,CAAC;IAC7D;IAEA,MAAM4F,MAAM,GAAArO,aAAA,CAAAA,aAAA,CAAAA,aAAA;MACV2D;IAAQ,GACLmB,SAAS,GACRpB,IAAI,CAAC4K,MAAM,GAAG;MAAE5K,IAAI;MAAEiC;IAAa,CAAC,GAAG8C,SAAS;MACpDzE,EAAE;MACFE,MAAM;MACNW,QAAQ;MACR6C,MAAM;MACN/C,UAAU,EAAE2F,cAAc;MAC1B9C,KAAK;MACL+G,WAAW,EAAEhK,IAAI,CAACiK,GAAG,CAAC;QAAA,IAAAC,KAAA,GAAAxO,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAwI,SAAA,GAAAxI,SAAA,MAAc,CAAC,CAAC;UAAbyO,MAAM,GAAAD,KAAA,CAANC,MAAM;QAAA,OAAYA,MAAM;MAAA,EAAC,CAACC,IAAI,CAAC,GAAG,CAAC;MAC5D5J,OAAO;MACPoC;IAAY,EACb;IACD,IAAIwB,QAAQ,KAAKF,SAAS,EAAE4F,MAAM,CAACH,OAAO,GAAG,IAAAU,wBAAc,EAAC,CAACtE,cAAc,CAAC3B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5F,MAAMkG,aAAa,GAAG,EAAElM,SAAS;IACjC,MAAMyH,cAAc,GAAG,MAAM0E,sBAAY,CAACC,GAAG,CAACV,MAAM,CAAC,CAACnE,KAAK,CAACtD,gBAAgB,CAAC;IAC7E,IAAIiI,aAAa,KAAKlM,SAAS,EAAE;IAEjC,IAAIyH,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAE4E,eAAe,EAAE,OAAO,IAAAC,iBAAO,EAAC;MAAEvL,IAAI;MAAEO;IAAS,CAAC,CAAC;IAEvE,IAAImG,cAAc,IAAIzB,QAAQ,KAAKF,SAAS,EAAE;MAC5C0B,kBAAkB,CAACC,cAAc,EAAEC,YAAY,EAAEC,cAAc,EAAEC,SAAS,EAAEC,aAAa,CAAC;MAE1F,IAAI,CAAAF,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEpK,MAAM,IAAG,CAAC,IAAIyI,QAAQ,KAAKF,SAAS,EAAEzB,OAAO,CAAC,CAAC,CAAC;IACtE;IAEAhB,aAAa,CAACoE,cAAc,CAAC;IAC7BhE,WAAW,CAAC,KAAK,CAAC;EACpB,CAAC;EAED,MAAMsC,aAAa,GAAG,IAAAwG,iBAAQ,EAAC3C,KAAK,EAAE,EAAE,CAAC;EAEzC,OAAO;IACL4C,OAAO,EAAE;MAAE5J,OAAO;MAAES,aAAa;MAAEQ,YAAY;MAAEQ,OAAO;MAAEI;IAAgB,CAAC;IAC3EM,MAAM;IACNC,SAAS;IACT4E,KAAK,EAAE7D,aAAa;IACpBxD,eAAe;IACfyB,aAAa;IACbyI,KAAK,EAAE;MAAE7K,IAAI;MAAEoB,YAAY;MAAEI,UAAU;MAAEI,QAAQ;MAAEI,SAAS;MAAEQ,IAAI;MAAEI;IAAa;EACnF,CAAC;AACH,CAAC;AAACkI,OAAA,CAAAxM,QAAA,GAAAA,QAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useRates.js","names":["_dataSources","require","_locale","_services","_ui","_react","_helpers","_helpers2","_helpers3","_Rates","_Rates2","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","return","isArray","fetchCall","WARNING","useRates","_useDevice","useDevice","isMobile","mobile","_useLocale","useLocale","translate","_useStore","useStore","set","_useStore$value","_useStore$value$club","club","currency","_useStore$value$finde","finder","_useStore$value$hotel","hotel","id","language","locale","_useStore$value$rates","rates","_useStore$value$rates2","_useStore$value$rates3","cart","storeCart","meta","_useStore$value$occup","occupation","_useStore$value$occup2","maxRooms","urlParams","session","_useStore$value$skele","skeleton","refRoomSelector","useRef","_useState","useState","_useState2","setCart","_useState3","discount","_useState4","clubDiscount","setClubDiscount","_useState5","_useState6","dataSource","setDataSource","_useState7","_useState8","fetching","setFetching","_useState9","_useState0","metaBoard","setMetaBoard","_useState1","_useState10","responseError","setResponseError","_useState11","_useState12","room","setRoom","_useState13","_useState14","strictSearch","setStrictSearch","_finder$calendar","calendar","_finder$occupation","place","promocode","device","multiRoom","useEffect","_ref","_ref$current","current","_ref$current2","_ref$current2$offsetH","offsetHeight","_ref$current2$offsetT","offsetTop","window","scrollTo","top","behavior","undefined","debounceFetch","nextRoom","callback","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","tracking","publish","RATES_RESPONSE","error","event","response","getBoard","then","board","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","checkNotifications","nextDataSource","nextCalendar","nextOccupation","nextPlace","nextPromocode","_nextDataSource$notif","notifications","trackNotification","notificationType","notificationMessage","METRICS","METRICS_EVENTS","RATES_INTERACTION","action","notification_type","notification_message","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","RATES_FILTER_PROMOCODE","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","_ref2","fetchUrlParams","location","search","notification","validateError","NOTIFICATION_VALIDATE","replaceUrlParams","warning","fetch","_ref3","_ref3$nextCalendar","_ref3$nextOccupation","_ref3$nextPlace","_ref3$nextPromocode","_ref4","_ref4$id","_ref4$id2","_ref4$id3","currentId","_ref5","_ref5$id","_ref5$id2","_ref5$id3","nextId","nextClubDiscount","isHotel","_club$variants","variants","currentVariant","find","_ref6","_ref6$id","FINDER","checkin","nights","parties","getFinderParams","idtokenprovider","params","active","selectedIds","map","_ref7","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","debounce","actions","state","exports"],"sources":["../../../../src/components/Rates/hooks/useRates.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceRates } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { debounce, fetchUrlParams } from '../../../helpers';\nimport { EVENT, METRICS_EVENTS, parseToParties, replaceUrlParams } from '../../helpers';\nimport { getBoard, getFinderParams, signout } from '../helpers';\nimport { NOTIFICATION, UTM_SOURCE_NAME } from '../Rates.constants';\nimport { L10N } from '../Rates.l10n';\n\nlet fetchCall = 0;\nconst WARNING = 'warning';\n\nexport const useRates = () => {\n const { isMobile, mobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [], meta } = {},\n occupation: { maxRooms } = {},\n urlParams,\n session,\n skeleton = false,\n },\n } = useStore();\n const refRoomSelector = useRef();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(false);\n const [metaBoard, setMetaBoard] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place, promocode } = finder;\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const multiRoom = occupation?.length > 1;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n skeleton && setFetching(true);\n }, [skeleton]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n window.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n (room !== undefined || multiRoom) && debounceFetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n const callback = async (next) => {\n setMetaBoard();\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n };\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: {\n ...(dataSource || responseError),\n currency,\n finder: { calendar, occupation, place, promocode },\n language,\n session,\n },\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (meta) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => {\n set({ rates: undefined });\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n\n debounceFetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const checkNotifications = (nextDataSource, nextCalendar, nextOccupation, nextPlace, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n const trackNotification = (notificationType, notificationMessage) => {\n Event.publish(EVENT.METRICS, {\n id: METRICS_EVENTS.RATES_INTERACTION,\n action: 'notification_show',\n notification_type: notificationType,\n notification_message: notificationMessage,\n });\n };\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n\n trackNotification(WARNING, 'promo_code_unavailable');\n set({ finder: { calendar: nextCalendar, occupation: nextOccupation, place: nextPlace, promocode: '' } });\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: undefined });\n } else if (nextPromocode !== finder.promocode) {\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: nextPromocode });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n trackNotification(WARNING, 'room_unavailable');\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n trackNotification(WARNING, 'offer_unavailable');\n }\n const { notification } = fetchUrlParams(location.search) || {};\n const validateError = notification && L10N.NOTIFICATION_VALIDATE[notification];\n if (validateError) {\n replaceUrlParams({ notification: undefined });\n Event.publish(EVENT.NOTIFICATION, { warning: true, defaultMessage: translate(validateError) });\n trackNotification(WARNING, 'rate_validation_error');\n }\n };\n\n const fetch = async ({\n nextCalendar = calendar,\n nextRoom,\n nextOccupation = occupation,\n nextPlace = place,\n nextPromocode = finder.promocode,\n } = {}) => {\n if (skeleton) return;\n\n const { id: [currentId] = [] } = place || {};\n const { id: [nextId] = [] } = nextPlace || {};\n let nextClubDiscount;\n if (nextPlace?.isHotel && currentId !== nextId) {\n const { variants = [] } = club;\n const currentVariant = variants.find(({ id = '' } = {}) => id.toString() === nextId.toString());\n nextClubDiscount = currentVariant?.discount;\n if (currentVariant && nextClubDiscount !== clubDiscount) {\n Event.publish(EVENT.RATES_FILTER_CLUB, nextClubDiscount);\n\n return;\n }\n }\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n if (nextPlace && !nextPlace.isHotel) {\n replaceUrlParams({ ...urlParams, idtokenprovider: undefined });\n }\n\n const params = {\n currency,\n ...urlParams,\n ...(club.active ? { club, clubDiscount } : undefined),\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (nextRoom !== undefined) params.parties = parseToParties([nextOccupation[nextRoom || 0]]);\n\n const lastFetchCall = ++fetchCall;\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (lastFetchCall !== fetchCall) return;\n\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource && nextRoom === undefined) {\n checkNotifications(nextDataSource, nextCalendar, nextOccupation, nextPlace, nextPromocode);\n\n if (nextOccupation?.length > 1 && nextRoom === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n return {\n actions: { setCart, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounceFetch,\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ var _dataSources = require("@mirai/data-sources");
|
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _EventManager = require("./EventManager.constants");
|
|
10
10
|
var _helpers = require("../../components/helpers");
|
|
11
|
+
var _trackError = require("../../helpers/trackError");
|
|
11
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
13
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
14
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -22,15 +23,27 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
|
22
23
|
const EventManager = () => {
|
|
23
24
|
const _useStore = (0, _dataSources.useStore)(),
|
|
24
25
|
_useStore$value = _useStore.value,
|
|
25
|
-
|
|
26
|
-
_useStore$value2$cook = _useStore$value2.cookieBanner,
|
|
27
|
-
_useStore$value2$cook2 = _useStore$value2$cook === void 0 ? {} : _useStore$value2$cook,
|
|
28
|
-
countryInactive = _useStore$value2$cook2.countryInactive,
|
|
29
|
-
_useStore$value2$find = _useStore$value2.finder,
|
|
30
|
-
finder = _useStore$value2$find === void 0 ? {} : _useStore$value2$find,
|
|
31
|
-
_useStore$value2$tags = _useStore$value2.tags,
|
|
32
|
-
tags = _useStore$value2$tags === void 0 ? {} : _useStore$value2$tags,
|
|
26
|
+
value = _useStore$value === void 0 ? {} : _useStore$value,
|
|
33
27
|
set = _useStore.set;
|
|
28
|
+
const _value$cookieBanner = value.cookieBanner,
|
|
29
|
+
_value$cookieBanner2 = _value$cookieBanner === void 0 ? {} : _value$cookieBanner,
|
|
30
|
+
countryInactive = _value$cookieBanner2.countryInactive,
|
|
31
|
+
_value$finder = value.finder,
|
|
32
|
+
finder = _value$finder === void 0 ? {} : _value$finder,
|
|
33
|
+
hotel = value.hotel,
|
|
34
|
+
id = value.id,
|
|
35
|
+
session = value.session,
|
|
36
|
+
_value$tags = value.tags,
|
|
37
|
+
tags = _value$tags === void 0 ? {} : _value$tags,
|
|
38
|
+
type = value.type;
|
|
39
|
+
(0, _react.useEffect)(() => {
|
|
40
|
+
(0, _trackError.configureErrorTracking)({
|
|
41
|
+
hotel,
|
|
42
|
+
id,
|
|
43
|
+
session,
|
|
44
|
+
type
|
|
45
|
+
});
|
|
46
|
+
}, [hotel, id, session, type]);
|
|
34
47
|
(0, _react.useEffect)(() => {
|
|
35
48
|
const handleSetStore = function () {
|
|
36
49
|
var _tags$options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventManager.js","names":["_dataSources","require","_react","_EventManager","_helpers","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","return","isArray","EventManager","_useStore","useStore","_useStore$value","_useStore$value2","_useStore$value2$cook","cookieBanner","_useStore$value2$cook2","countryInactive","_useStore$value2$find","finder","_useStore$value2$tags","tags","set","useEffect","handleSetStore","_tags$options","_ref","undefined","placeId","chainSelectorValue","calendar","currency","commissionCode","hsri","locale","occupation","promocode","origin","_locale$split","split","_locale$split2","language","Event","publish","COMPONENTS_EVENT","LOCALE_CHANGED","place","options","find","_ref2","subscribe","EVENT","SET_STORE","unsubscribe","FINDER_FIELD_CHANGE","handleFinderFieldChange","FINDER_LOADED","COOKIE_BANNER_SKIPPED_BY_COUNTRY","FINDER_CHANGE","exports"],"sources":["../../../src/contexts/EventManager/EventManager.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useEffect } from 'react';\n\nimport { EVENT } from './EventManager.constants';\nimport { EVENT as COMPONENTS_EVENT } from '../../components/helpers';\n\nconst EventManager = () => {\n const { value: { cookieBanner: { countryInactive } = {}, finder = {}, tags = {} } = {}, set } = useStore();\n\n useEffect(() => {\n const handleSetStore = ({\n chainSelectorValue: placeId,\n calendar,\n currency,\n hsri: commissionCode,\n locale,\n occupation,\n promocode,\n } = {}) => {\n const next = {};\n\n if (commissionCode) next.origin = { commissionCode };\n if (calendar?.length && calendar?.length === 2) next.finder = { calendar };\n if (currency) next.currency = currency;\n if (locale) {\n const [language] = locale.split('-');\n next.language = language;\n next.locale = locale;\n Event.publish(COMPONENTS_EVENT.LOCALE_CHANGED, { locale, language });\n }\n if (occupation?.length) next.finder = { ...next.finder, occupation };\n if (promocode !== undefined && promocode !== null) next.finder = { ...next.finder, promocode };\n if (placeId) next.finder = { ...next.finder, place: tags?.options?.find(({ value } = {}) => value === placeId) };\n\n set(next);\n };\n\n Event.subscribe(EVENT.SET_STORE, handleSetStore);\n\n return () => Event.unsubscribe(EVENT.SET_STORE, handleSetStore);\n }, [set, tags]);\n\n useEffect(() => {\n if (!finder) return;\n\n Event.subscribe(COMPONENTS_EVENT.FINDER_FIELD_CHANGE, handleFinderFieldChange);\n\n Event.publish(EVENT.FINDER_LOADED, finder);\n\n return () => Event.unsubscribe(COMPONENTS_EVENT.FINDER_FIELD_CHANGE, handleFinderFieldChange);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!countryInactive) return;\n\n Event.publish(EVENT.COOKIE_BANNER_SKIPPED_BY_COUNTRY);\n }, [countryInactive]);\n\n const handleFinderFieldChange = (value) => Event.publish(EVENT.FINDER_CHANGE, value);\n\n return null;\n};\n\nexport { EventManager };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"EventManager.js","names":["_dataSources","require","_react","_EventManager","_helpers","_trackError","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","return","isArray","EventManager","_useStore","useStore","_useStore$value","set","_value$cookieBanner","cookieBanner","_value$cookieBanner2","countryInactive","_value$finder","finder","hotel","id","session","_value$tags","tags","type","useEffect","configureErrorTracking","handleSetStore","_tags$options","_ref","undefined","placeId","chainSelectorValue","calendar","currency","commissionCode","hsri","locale","occupation","promocode","origin","_locale$split","split","_locale$split2","language","Event","publish","COMPONENTS_EVENT","LOCALE_CHANGED","place","options","find","_ref2","subscribe","EVENT","SET_STORE","unsubscribe","FINDER_FIELD_CHANGE","handleFinderFieldChange","FINDER_LOADED","COOKIE_BANNER_SKIPPED_BY_COUNTRY","FINDER_CHANGE","exports"],"sources":["../../../src/contexts/EventManager/EventManager.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useEffect } from 'react';\n\nimport { EVENT } from './EventManager.constants';\nimport { EVENT as COMPONENTS_EVENT } from '../../components/helpers';\nimport { configureErrorTracking } from '../../helpers/trackError';\n\nconst EventManager = () => {\n const { value = {}, set } = useStore();\n const { cookieBanner: { countryInactive } = {}, finder = {}, hotel, id, session, tags = {}, type } = value;\n\n useEffect(() => {\n configureErrorTracking({ hotel, id, session, type });\n }, [hotel, id, session, type]);\n\n useEffect(() => {\n const handleSetStore = ({\n chainSelectorValue: placeId,\n calendar,\n currency,\n hsri: commissionCode,\n locale,\n occupation,\n promocode,\n } = {}) => {\n const next = {};\n\n if (commissionCode) next.origin = { commissionCode };\n if (calendar?.length && calendar?.length === 2) next.finder = { calendar };\n if (currency) next.currency = currency;\n if (locale) {\n const [language] = locale.split('-');\n next.language = language;\n next.locale = locale;\n Event.publish(COMPONENTS_EVENT.LOCALE_CHANGED, { locale, language });\n }\n if (occupation?.length) next.finder = { ...next.finder, occupation };\n if (promocode !== undefined && promocode !== null) next.finder = { ...next.finder, promocode };\n if (placeId) next.finder = { ...next.finder, place: tags?.options?.find(({ value } = {}) => value === placeId) };\n\n set(next);\n };\n\n Event.subscribe(EVENT.SET_STORE, handleSetStore);\n\n return () => Event.unsubscribe(EVENT.SET_STORE, handleSetStore);\n }, [set, tags]);\n\n useEffect(() => {\n if (!finder) return;\n\n Event.subscribe(COMPONENTS_EVENT.FINDER_FIELD_CHANGE, handleFinderFieldChange);\n\n Event.publish(EVENT.FINDER_LOADED, finder);\n\n return () => Event.unsubscribe(COMPONENTS_EVENT.FINDER_FIELD_CHANGE, handleFinderFieldChange);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!countryInactive) return;\n\n Event.publish(EVENT.COOKIE_BANNER_SKIPPED_BY_COUNTRY);\n }, [countryInactive]);\n\n const handleFinderFieldChange = (value) => Event.publish(EVENT.FINDER_CHANGE, value);\n\n return null;\n};\n\nexport { EventManager };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,7 +18,7 @@ var _Core = require("../../Core.constants");
|
|
|
18
18
|
var _helpers3 = require("../../helpers");
|
|
19
19
|
var _getSuperProps = require("../../helpers/getSuperProps");
|
|
20
20
|
const _excluded = ["performance"],
|
|
21
|
-
_excluded2 = ["
|
|
21
|
+
_excluded2 = ["id"],
|
|
22
22
|
_excluded3 = ["event"];
|
|
23
23
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
24
24
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -69,30 +69,19 @@ const PerformanceManager = () => {
|
|
|
69
69
|
(0, _react.useEffect)(() => {
|
|
70
70
|
const metrics = _services.ServiceFeatures.get('metrics', instanceId);
|
|
71
71
|
const handleMetrics = _ref2 => {
|
|
72
|
-
let
|
|
73
|
-
id = _ref2.id,
|
|
72
|
+
let id = _ref2.id,
|
|
74
73
|
props = _objectWithoutProperties(_ref2, _excluded2);
|
|
75
|
-
if (!id || window.IS_PLAYWRIGHT || window.location.host === 'monalisa.mirai.com') return;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
track(event, _objectSpread(_objectSpread(_objectSpread({}, props), (0, _getSuperProps.getSuperProps)({
|
|
87
|
-
store,
|
|
88
|
-
engineVersion: _package.version
|
|
89
|
-
})), {}, {
|
|
90
|
-
locale,
|
|
91
|
-
mobile: device.mobile,
|
|
92
|
-
session,
|
|
93
|
-
type
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
74
|
+
if (!id || !metrics || window.IS_PLAYWRIGHT || window.location.host === 'monalisa.mirai.com') return;
|
|
75
|
+
const event = id.toUpperCase().trim();
|
|
76
|
+
track(event, _objectSpread(_objectSpread(_objectSpread({}, props), (0, _getSuperProps.getSuperProps)({
|
|
77
|
+
store,
|
|
78
|
+
engineVersion: _package.version
|
|
79
|
+
})), {}, {
|
|
80
|
+
locale,
|
|
81
|
+
mobile: device.mobile,
|
|
82
|
+
session,
|
|
83
|
+
type
|
|
84
|
+
}));
|
|
96
85
|
};
|
|
97
86
|
_dataSources.Event.subscribe(_helpers2.EVENT.METRICS, handleMetrics);
|
|
98
87
|
return () => _dataSources.Event.unsubscribe(_helpers2.EVENT.METRICS, handleMetrics);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PerformanceManager.js","names":["_dataSources","require","_services","_ui","_react","_helpers","_PerformanceManager","_PerformanceManager2","_PerformanceManager3","_package","_helpers2","_Core","_helpers3","_getSuperProps","_excluded","_excluded2","_excluded3","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","return","isArray","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","hasOwnProperty","MAX_COUNTER","_ref","PERFORMANCE","COMPARE","GTM","counter","memoizedPendingEvents","PerformanceManager","device","useDevice","_useMetrics","useMetrics","track","_useStore","useStore","_useStore$value","_useStore$value$perfo","performance","storePerformance","store","_useState","useState","getConsentMode","_useState2","consentMode","setConsentMode","_useState3","_useState4","setPerformance","components","_store$finder","finder","_store$finder2","place","_store$hotel","hotel","instanceId","id","locale","session","type","useEffect","metrics","ServiceFeatures","get","handleMetrics","_ref2","errorMessage","props","window","IS_PLAYWRIGHT","location","host","ServiceAnna","eventName","chain","undefined","event","toUpperCase","trim","getSuperProps","engineVersion","version","mobile","Event","subscribe","COMPONENTS_EVENT","METRICS","unsubscribe","interval","setInterval","nextConsentMode","isGtm","provider","includes","_ref3","nextMemoizedPendingEvents","execute","CONSENT_MODE_ANSWERED","requeue","executeEvent","clearInterval","config","_store$finder3","_store$finder4","_store$finder4$place","_store$finder4$place2","_store$finder4$place3","_store$finder4$place4","_store$finder4$place5","hotelId","isHotel","getPerformance","handleEvent","_ref4","currentConsentMode","availableProviders","map","_ref5","CONSENT_MODE_REQUIRED","entries","EVENTS","_ref6","_ref7","propProvider","_ref7$","callback","parseInt","some","item","_ref8","loadScripts","_ref9","then","find","_ref0","response","label","concat","getPerformanceLabel","console","log","Mirai","urlParameters","fetchUrlParams","search","_ref1","propConsentMode","loadedComponents","scripts","_ref10","_ref11","_ref11$instances","instances","propInstances","gtgEnabled","_ref12","SCRIPTS","_ref12$components","_ref12$init","init","_ref12$once","once","index","domain","loadScript","catch","exports"],"sources":["../../../src/contexts/PerformanceManager/PerformanceManager.jsx"],"sourcesContent":["import { Event, useMetrics, useStore } from '@mirai/data-sources';\nimport { ServiceAnna, ServiceFeatures } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useState } from 'react';\n\nimport { getConsentMode, getPerformanceLabel } from './helpers';\nimport { CONSENT_MODE_ANSWERED, CONSENT_MODE_REQUIRED } from './PerformanceManager.constants';\nimport { EVENTS } from './PerformanceManager.events';\nimport { SCRIPTS } from './PerformanceManager.scripts';\nimport { version } from '../../../package.json';\nimport { EVENT as COMPONENTS_EVENT } from '../../components/helpers';\nimport { PERFORMANCE } from '../../Core.constants';\nimport { fetchUrlParams, getPerformance, loadScript } from '../../helpers';\nimport { getSuperProps } from '../../helpers/getSuperProps';\n\nconst MAX_COUNTER = 5;\nconst { COMPARE, GTM } = PERFORMANCE || {};\n\nlet counter = 0;\nlet memoizedPendingEvents = [];\n\nconst PerformanceManager = () => {\n const device = useDevice();\n const { track } = useMetrics();\n const {\n value: { performance: storePerformance = [], ...store },\n } = useStore();\n\n const [consentMode, setConsentMode] = useState(getConsentMode());\n const [performance, setPerformance] = useState(storePerformance);\n\n const { components, finder: { place } = {}, hotel = {}, id: instanceId, locale, session, type } = store;\n\n useEffect(() => {\n const metrics = ServiceFeatures.get('metrics', instanceId);\n\n const handleMetrics = ({ errorMessage, id, ...props }) => {\n if (!id || window.IS_PLAYWRIGHT || window.location.host === 'monalisa.mirai.com') return;\n\n if (errorMessage) {\n ServiceAnna.track({\n ...props,\n errorMessage,\n eventName: id,\n hotel: hotel.id,\n chain: type === 'chain' ? instanceId : undefined,\n session,\n });\n } else if (metrics) {\n const event = id.toUpperCase().trim();\n track(event, {\n ...props,\n ...getSuperProps({ store, engineVersion: version }),\n locale,\n mobile: device.mobile,\n session,\n type,\n });\n }\n };\n\n Event.subscribe(COMPONENTS_EVENT.METRICS, handleMetrics);\n\n return () => Event.unsubscribe(COMPONENTS_EVENT.METRICS, handleMetrics);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [store]);\n\n useEffect(() => {\n if (consentMode) return;\n\n const interval = setInterval(async () => {\n counter !== undefined && counter++;\n const nextConsentMode = getConsentMode(counter >= MAX_COUNTER);\n const isGtm = (provider) => [COMPARE, GTM].includes(provider);\n\n if (\n (nextConsentMode === undefined &&\n memoizedPendingEvents.filter(({ provider } = {}) => isGtm(provider)).length === 0) ||\n (!nextConsentMode && counter < MAX_COUNTER)\n )\n return;\n\n const nextMemoizedPendingEvents = [];\n memoizedPendingEvents.forEach((event = {}) => {\n const { provider } = event;\n const execute =\n nextConsentMode ||\n (counter >= MAX_COUNTER &&\n CONSENT_MODE_ANSWERED.includes(provider) &&\n (nextConsentMode === false || isGtm(provider)));\n const requeue = nextConsentMode === undefined && !isGtm(provider);\n\n if (execute) {\n executeEvent(event, nextConsentMode);\n\n if (!nextConsentMode && !isGtm(provider)) nextMemoizedPendingEvents.push(event);\n } else if (!execute || requeue) {\n nextMemoizedPendingEvents.push(event);\n }\n });\n memoizedPendingEvents = nextMemoizedPendingEvents;\n if (nextConsentMode !== undefined) {\n counter = undefined;\n setConsentMode(nextConsentMode);\n }\n }, 1000);\n\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [consentMode]);\n\n useEffect(() => {\n const { config, finder: { place: { id: [hotelId] = [], isHotel } = {} } = {} } = store;\n\n if (place) {\n setPerformance(getPerformance(config, isHotel ? hotelId : undefined));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n useEffect(() => {\n const handleEvent = ({ event, ...value }) => {\n if (performance.length === 0) return;\n\n const currentConsentMode = getConsentMode(true);\n\n const availableProviders = performance\n .map(({ type } = {}) => type)\n .filter((type) => !(!currentConsentMode && CONSENT_MODE_ANSWERED.includes(type)))\n .filter((type) => currentConsentMode || !CONSENT_MODE_REQUIRED.includes(type));\n\n Object.entries(EVENTS[event]).forEach(([propProvider, callback = () => {}]) => {\n const provider = parseInt(propProvider);\n const props = { callback, event, provider, value };\n\n if (!currentConsentMode && !availableProviders.includes(provider)) {\n if (counter === undefined && CONSENT_MODE_ANSWERED.includes(provider)) {\n executeEvent(props);\n } else if (!memoizedPendingEvents.some((item) => item.event === event && item.provider === provider)) {\n memoizedPendingEvents.push(props);\n }\n } else executeEvent(props, currentConsentMode);\n });\n };\n\n Object.keys(EVENTS).forEach((event) => Event.subscribe(event, handleEvent));\n\n return () => Object.keys(EVENTS).forEach((event) => Event.unsubscribe(event, handleEvent));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [device, performance, store]);\n\n const executeEvent = ({ provider, callback, value, event } = {}, nextConsentMode = consentMode) => {\n loadScripts(\n performance.filter(({ type } = {}) => type === provider && type !== COMPARE),\n nextConsentMode,\n ).then(() => {\n const config = performance.find(({ type }) => type === provider);\n const response = callback({ ...value, ...config, device, store });\n if (!response) return;\n\n const label = `⚡️ ${getPerformanceLabel(provider)} ${event}`;\n // eslint-disable-next-line no-console\n response.then ? response.then((value) => console.log(label, value)) : console.log(label, response);\n\n if (provider === GTM) {\n window.Mirai.urlParameters = fetchUrlParams(location.search);\n loadScripts(\n performance.filter(({ type } = {}) => type === COMPARE),\n nextConsentMode,\n );\n }\n });\n };\n\n const loadScripts = async (performance = [], propConsentMode = consentMode) => {\n const loadedComponents = Object.keys(components);\n\n const scripts = [];\n performance\n .filter(({ type } = {}) => propConsentMode === true || !CONSENT_MODE_REQUIRED.includes(type))\n .forEach(({ type, instances: propInstances = [], gtgEnabled } = {}) => {\n const { components = [], init = () => {}, once = false } = SCRIPTS[type] || {};\n\n if (components.length === 0 || components.some((item) => loadedComponents.includes(item))) {\n const instances = once ? [propInstances[0]] : propInstances;\n scripts.push(\n ...instances.map((config = {}, index) => ({\n domain: `performance-${getPerformanceLabel(type)}`,\n id: index + 1,\n ...init({ ...config, hotel, index, instanceId, gtgEnabled, loadedComponents, place }),\n type,\n })),\n );\n }\n });\n\n for (let index = 0; index < scripts.length; index++) {\n await loadScript(scripts[index]).catch(() => {});\n }\n };\n\n return null;\n};\n\nexport { PerformanceManager };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PerformanceManager.js","names":["_dataSources","require","_services","_ui","_react","_helpers","_PerformanceManager","_PerformanceManager2","_PerformanceManager3","_package","_helpers2","_Core","_helpers3","_getSuperProps","_excluded","_excluded2","_excluded3","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","return","isArray","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","hasOwnProperty","MAX_COUNTER","_ref","PERFORMANCE","COMPARE","GTM","counter","memoizedPendingEvents","PerformanceManager","device","useDevice","_useMetrics","useMetrics","track","_useStore","useStore","_useStore$value","_useStore$value$perfo","performance","storePerformance","store","_useState","useState","getConsentMode","_useState2","consentMode","setConsentMode","_useState3","_useState4","setPerformance","components","_store$finder","finder","_store$finder2","place","_store$hotel","hotel","instanceId","id","locale","session","type","useEffect","metrics","ServiceFeatures","get","handleMetrics","_ref2","props","window","IS_PLAYWRIGHT","location","host","event","toUpperCase","trim","getSuperProps","engineVersion","version","mobile","Event","subscribe","COMPONENTS_EVENT","METRICS","unsubscribe","interval","setInterval","undefined","nextConsentMode","isGtm","provider","includes","_ref3","nextMemoizedPendingEvents","execute","CONSENT_MODE_ANSWERED","requeue","executeEvent","clearInterval","config","_store$finder3","_store$finder4","_store$finder4$place","_store$finder4$place2","_store$finder4$place3","_store$finder4$place4","_store$finder4$place5","hotelId","isHotel","getPerformance","handleEvent","_ref4","currentConsentMode","availableProviders","map","_ref5","CONSENT_MODE_REQUIRED","entries","EVENTS","_ref6","_ref7","propProvider","_ref7$","callback","parseInt","some","item","_ref8","loadScripts","_ref9","then","find","_ref0","response","label","concat","getPerformanceLabel","console","log","Mirai","urlParameters","fetchUrlParams","search","_ref1","propConsentMode","loadedComponents","scripts","_ref10","_ref11","_ref11$instances","instances","propInstances","gtgEnabled","_ref12","SCRIPTS","_ref12$components","_ref12$init","init","_ref12$once","once","index","domain","loadScript","catch","exports"],"sources":["../../../src/contexts/PerformanceManager/PerformanceManager.jsx"],"sourcesContent":["import { Event, useMetrics, useStore } from '@mirai/data-sources';\nimport { ServiceFeatures } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useState } from 'react';\n\nimport { getConsentMode, getPerformanceLabel } from './helpers';\nimport { CONSENT_MODE_ANSWERED, CONSENT_MODE_REQUIRED } from './PerformanceManager.constants';\nimport { EVENTS } from './PerformanceManager.events';\nimport { SCRIPTS } from './PerformanceManager.scripts';\nimport { version } from '../../../package.json';\nimport { EVENT as COMPONENTS_EVENT } from '../../components/helpers';\nimport { PERFORMANCE } from '../../Core.constants';\nimport { fetchUrlParams, getPerformance, loadScript } from '../../helpers';\nimport { getSuperProps } from '../../helpers/getSuperProps';\n\nconst MAX_COUNTER = 5;\nconst { COMPARE, GTM } = PERFORMANCE || {};\n\nlet counter = 0;\nlet memoizedPendingEvents = [];\n\nconst PerformanceManager = () => {\n const device = useDevice();\n const { track } = useMetrics();\n const {\n value: { performance: storePerformance = [], ...store },\n } = useStore();\n\n const [consentMode, setConsentMode] = useState(getConsentMode());\n const [performance, setPerformance] = useState(storePerformance);\n\n const { components, finder: { place } = {}, hotel = {}, id: instanceId, locale, session, type } = store;\n\n useEffect(() => {\n const metrics = ServiceFeatures.get('metrics', instanceId);\n\n const handleMetrics = ({ id, ...props }) => {\n if (!id || !metrics || window.IS_PLAYWRIGHT || window.location.host === 'monalisa.mirai.com') return;\n\n const event = id.toUpperCase().trim();\n track(event, {\n ...props,\n ...getSuperProps({ store, engineVersion: version }),\n locale,\n mobile: device.mobile,\n session,\n type,\n });\n };\n\n Event.subscribe(COMPONENTS_EVENT.METRICS, handleMetrics);\n\n return () => Event.unsubscribe(COMPONENTS_EVENT.METRICS, handleMetrics);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [store]);\n\n useEffect(() => {\n if (consentMode) return;\n\n const interval = setInterval(async () => {\n counter !== undefined && counter++;\n const nextConsentMode = getConsentMode(counter >= MAX_COUNTER);\n const isGtm = (provider) => [COMPARE, GTM].includes(provider);\n\n if (\n (nextConsentMode === undefined &&\n memoizedPendingEvents.filter(({ provider } = {}) => isGtm(provider)).length === 0) ||\n (!nextConsentMode && counter < MAX_COUNTER)\n )\n return;\n\n const nextMemoizedPendingEvents = [];\n memoizedPendingEvents.forEach((event = {}) => {\n const { provider } = event;\n const execute =\n nextConsentMode ||\n (counter >= MAX_COUNTER &&\n CONSENT_MODE_ANSWERED.includes(provider) &&\n (nextConsentMode === false || isGtm(provider)));\n const requeue = nextConsentMode === undefined && !isGtm(provider);\n\n if (execute) {\n executeEvent(event, nextConsentMode);\n\n if (!nextConsentMode && !isGtm(provider)) nextMemoizedPendingEvents.push(event);\n } else if (!execute || requeue) {\n nextMemoizedPendingEvents.push(event);\n }\n });\n memoizedPendingEvents = nextMemoizedPendingEvents;\n if (nextConsentMode !== undefined) {\n counter = undefined;\n setConsentMode(nextConsentMode);\n }\n }, 1000);\n\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [consentMode]);\n\n useEffect(() => {\n const { config, finder: { place: { id: [hotelId] = [], isHotel } = {} } = {} } = store;\n\n if (place) {\n setPerformance(getPerformance(config, isHotel ? hotelId : undefined));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n useEffect(() => {\n const handleEvent = ({ event, ...value }) => {\n if (performance.length === 0) return;\n\n const currentConsentMode = getConsentMode(true);\n\n const availableProviders = performance\n .map(({ type } = {}) => type)\n .filter((type) => !(!currentConsentMode && CONSENT_MODE_ANSWERED.includes(type)))\n .filter((type) => currentConsentMode || !CONSENT_MODE_REQUIRED.includes(type));\n\n Object.entries(EVENTS[event]).forEach(([propProvider, callback = () => {}]) => {\n const provider = parseInt(propProvider);\n const props = { callback, event, provider, value };\n\n if (!currentConsentMode && !availableProviders.includes(provider)) {\n if (counter === undefined && CONSENT_MODE_ANSWERED.includes(provider)) {\n executeEvent(props);\n } else if (!memoizedPendingEvents.some((item) => item.event === event && item.provider === provider)) {\n memoizedPendingEvents.push(props);\n }\n } else executeEvent(props, currentConsentMode);\n });\n };\n\n Object.keys(EVENTS).forEach((event) => Event.subscribe(event, handleEvent));\n\n return () => Object.keys(EVENTS).forEach((event) => Event.unsubscribe(event, handleEvent));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [device, performance, store]);\n\n const executeEvent = ({ provider, callback, value, event } = {}, nextConsentMode = consentMode) => {\n loadScripts(\n performance.filter(({ type } = {}) => type === provider && type !== COMPARE),\n nextConsentMode,\n ).then(() => {\n const config = performance.find(({ type }) => type === provider);\n const response = callback({ ...value, ...config, device, store });\n if (!response) return;\n\n const label = `⚡️ ${getPerformanceLabel(provider)} ${event}`;\n // eslint-disable-next-line no-console\n response.then ? response.then((value) => console.log(label, value)) : console.log(label, response);\n\n if (provider === GTM) {\n window.Mirai.urlParameters = fetchUrlParams(location.search);\n loadScripts(\n performance.filter(({ type } = {}) => type === COMPARE),\n nextConsentMode,\n );\n }\n });\n };\n\n const loadScripts = async (performance = [], propConsentMode = consentMode) => {\n const loadedComponents = Object.keys(components);\n\n const scripts = [];\n performance\n .filter(({ type } = {}) => propConsentMode === true || !CONSENT_MODE_REQUIRED.includes(type))\n .forEach(({ type, instances: propInstances = [], gtgEnabled } = {}) => {\n const { components = [], init = () => {}, once = false } = SCRIPTS[type] || {};\n\n if (components.length === 0 || components.some((item) => loadedComponents.includes(item))) {\n const instances = once ? [propInstances[0]] : propInstances;\n scripts.push(\n ...instances.map((config = {}, index) => ({\n domain: `performance-${getPerformanceLabel(type)}`,\n id: index + 1,\n ...init({ ...config, hotel, index, instanceId, gtgEnabled, loadedComponents, place }),\n type,\n })),\n );\n }\n });\n\n for (let index = 0; index < scripts.length; index++) {\n await loadScript(scripts[index]).catch(() => {});\n }\n };\n\n return null;\n};\n\nexport { PerformanceManager };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,17 +3,131 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.trackError = void 0;
|
|
7
|
-
var
|
|
6
|
+
exports.trackError = exports.reportError = exports.initializeErrorTracking = exports.configureErrorTracking = void 0;
|
|
7
|
+
var _services = require("@mirai/services");
|
|
8
8
|
var _helpers = require("../components/helpers");
|
|
9
|
-
var
|
|
9
|
+
var _Error$stack;
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
14
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
|
+
const ERROR_TRACKING_FEATURE = 'errorTracking';
|
|
16
|
+
const MAX_REPORTS_PER_MESSAGE = 5;
|
|
17
|
+
const MAX_TRACKED_MESSAGES = 100;
|
|
18
|
+
const RATE_LIMIT_WINDOW_MS = 60000;
|
|
19
|
+
const resolveBase = url => {
|
|
20
|
+
try {
|
|
21
|
+
const _URL = new URL(url),
|
|
22
|
+
origin = _URL.origin,
|
|
23
|
+
pathname = _URL.pathname;
|
|
24
|
+
return "".concat(origin).concat(pathname.replace(/[^/]*$/, ''));
|
|
25
|
+
} catch (_unused) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const CORE_BASE = resolveBase((_Error$stack = new Error().stack) === null || _Error$stack === void 0 || (_Error$stack = _Error$stack.match(/https?:\/\/[^\s)'"]+/)) === null || _Error$stack === void 0 ? void 0 : _Error$stack[0]) || resolveBase(process.env.SERVICE_STATIC && "".concat(process.env.SERVICE_STATIC, "/core/index.js"));
|
|
30
|
+
const reportedErrors = new WeakMap();
|
|
31
|
+
const messageCounts = new Map();
|
|
32
|
+
let errorContext = {};
|
|
33
|
+
let removeGlobalErrorListeners;
|
|
34
|
+
const isErrorTrackingEnabled = () => {
|
|
35
|
+
const id = errorContext.chain || errorContext.hotel;
|
|
36
|
+
return !!id && _services.ServiceFeatures.get(ERROR_TRACKING_FEATURE, id);
|
|
37
|
+
};
|
|
38
|
+
const isCoreUrl = url => !!CORE_BASE && typeof url === 'string' && url.startsWith(CORE_BASE);
|
|
39
|
+
const isStackFrame = line => /^\s*at\s/.test(line) || line.includes('@');
|
|
40
|
+
const stackHasCoreFrame = stack => typeof stack === 'string' && stack.split('\n').some(line => isStackFrame(line) && isCoreUrl((line.match(/https?:\/\/[^\s)'"]+/) || [])[0]));
|
|
41
|
+
const isCoreSource = function () {
|
|
42
|
+
let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
43
|
+
filename = _ref.filename,
|
|
44
|
+
stack = _ref.stack;
|
|
45
|
+
return filename ? isCoreUrl(filename) : stackHasCoreFrame(stack);
|
|
46
|
+
};
|
|
47
|
+
const isDuplicate = (error, now) => {
|
|
48
|
+
if (error === null || typeof error !== 'object' && typeof error !== 'function') return false;
|
|
49
|
+
const lastReported = reportedErrors.get(error);
|
|
50
|
+
if (lastReported && now - lastReported <= RATE_LIMIT_WINDOW_MS) return true;
|
|
51
|
+
reportedErrors.set(error, now);
|
|
52
|
+
return false;
|
|
53
|
+
};
|
|
54
|
+
const isRateLimited = (message, now) => {
|
|
55
|
+
const entry = messageCounts.get(message);
|
|
56
|
+
if (entry && now - entry.since <= RATE_LIMIT_WINDOW_MS) {
|
|
57
|
+
if (entry.count >= MAX_REPORTS_PER_MESSAGE) return true;
|
|
58
|
+
entry.count += 1;
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
if (!entry && messageCounts.size >= MAX_TRACKED_MESSAGES) messageCounts.delete(messageCounts.keys().next().value);
|
|
62
|
+
messageCounts.set(message, {
|
|
63
|
+
count: 1,
|
|
64
|
+
since: now
|
|
65
|
+
});
|
|
66
|
+
return false;
|
|
67
|
+
};
|
|
68
|
+
const configureErrorTracking = function () {
|
|
69
|
+
let _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
70
|
+
hotel = _ref2.hotel,
|
|
71
|
+
id = _ref2.id,
|
|
72
|
+
session = _ref2.session,
|
|
73
|
+
type = _ref2.type;
|
|
74
|
+
errorContext = {
|
|
75
|
+
chain: type === 'chain' ? id : undefined,
|
|
76
|
+
hotel: hotel === null || hotel === void 0 ? void 0 : hotel.id,
|
|
77
|
+
session
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
exports.configureErrorTracking = configureErrorTracking;
|
|
81
|
+
const reportError = function (error) {
|
|
82
|
+
let _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
83
|
+
componentStack = _ref3.componentStack;
|
|
84
|
+
const now = Date.now();
|
|
85
|
+
if (isDuplicate(error, now)) return;
|
|
86
|
+
const errorMessage = (error === null || error === void 0 ? void 0 : error.message) || (typeof error === 'string' ? error : String(error !== null && error !== void 0 ? error : 'Unknown error'));
|
|
87
|
+
if (isRateLimited(errorMessage, now)) return;
|
|
88
|
+
const errorStack = [error === null || error === void 0 ? void 0 : error.stack, componentStack].filter(Boolean).join('\n') || undefined;
|
|
89
|
+
trackError(errorMessage, errorStack);
|
|
90
|
+
};
|
|
91
|
+
exports.reportError = reportError;
|
|
92
|
+
const handleError = function () {
|
|
93
|
+
let _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
94
|
+
error = _ref4.error,
|
|
95
|
+
message = _ref4.message,
|
|
96
|
+
filename = _ref4.filename;
|
|
97
|
+
if (!isCoreSource({
|
|
98
|
+
filename,
|
|
99
|
+
stack: error === null || error === void 0 ? void 0 : error.stack
|
|
100
|
+
})) return;
|
|
101
|
+
reportError(error !== null && error !== void 0 ? error : message);
|
|
102
|
+
};
|
|
103
|
+
const handleUnhandledRejection = function () {
|
|
104
|
+
let _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
105
|
+
reason = _ref5.reason;
|
|
106
|
+
if (!isCoreSource({
|
|
107
|
+
stack: reason === null || reason === void 0 ? void 0 : reason.stack
|
|
108
|
+
})) return;
|
|
109
|
+
reportError(reason);
|
|
110
|
+
};
|
|
111
|
+
const initializeErrorTracking = () => {
|
|
112
|
+
if (removeGlobalErrorListeners) return removeGlobalErrorListeners;
|
|
113
|
+
window.addEventListener('error', handleError);
|
|
114
|
+
window.addEventListener('unhandledrejection', handleUnhandledRejection);
|
|
115
|
+
removeGlobalErrorListeners = () => {
|
|
116
|
+
window.removeEventListener('error', handleError);
|
|
117
|
+
window.removeEventListener('unhandledrejection', handleUnhandledRejection);
|
|
118
|
+
removeGlobalErrorListeners = undefined;
|
|
119
|
+
};
|
|
120
|
+
return removeGlobalErrorListeners;
|
|
121
|
+
};
|
|
122
|
+
exports.initializeErrorTracking = initializeErrorTracking;
|
|
10
123
|
const trackError = (errorMessage, errorStack) => {
|
|
11
124
|
if (typeof errorMessage !== 'string' || errorMessage.trim() === '') return;
|
|
12
|
-
|
|
13
|
-
|
|
125
|
+
if (window.IS_PLAYWRIGHT || window.location.host === 'monalisa.mirai.com' || !isErrorTrackingEnabled()) return;
|
|
126
|
+
_services.ServiceAnna.track(_objectSpread(_objectSpread({}, errorContext), {}, {
|
|
14
127
|
errorMessage,
|
|
15
|
-
errorStack: errorStack ? typeof errorStack === 'object' ? JSON.stringify(errorStack) : String(errorStack) : undefined
|
|
16
|
-
|
|
128
|
+
errorStack: errorStack ? typeof errorStack === 'object' ? JSON.stringify(errorStack) : String(errorStack) : undefined,
|
|
129
|
+
eventName: _helpers.METRICS_EVENTS.ERROR_CORE
|
|
130
|
+
}));
|
|
17
131
|
};
|
|
18
132
|
exports.trackError = trackError;
|
|
19
133
|
//# sourceMappingURL=trackError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackError.js","names":["_dataSources","require","_helpers","_Core","trackError","errorMessage","errorStack","trim","Event","publish","EVENT","METRICS","id","METRICS_EVENTS","ERROR_CORE","JSON","stringify","String","undefined","exports"],"sources":["../../src/helpers/trackError.js"],"sourcesContent":["import { Event } from '@mirai/data-sources';\n\nimport { METRICS_EVENTS } from '../components/helpers';\nimport { EVENT } from '../Core.constants';\n\nexport const trackError = (errorMessage, errorStack) => {\n if (typeof errorMessage !== 'string' || errorMessage.trim() === '') return;\n\n Event.publish(EVENT.METRICS, {\n id: METRICS_EVENTS.ERROR_CORE,\n errorMessage,\n errorStack: errorStack\n ? typeof errorStack === 'object'\n ? JSON.stringify(errorStack)\n : String(errorStack)\n : undefined,\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEO,MAAMG,UAAU,GAAGA,CAACC,YAAY,EAAEC,UAAU,KAAK;EACtD,IAAI,OAAOD,YAAY,KAAK,QAAQ,IAAIA,YAAY,CAACE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;EAEpEC,kBAAK,CAACC,OAAO,CAACC,WAAK,CAACC,OAAO,EAAE;IAC3BC,EAAE,EAAEC,uBAAc,CAACC,UAAU;IAC7BT,YAAY;IACZC,UAAU,EAAEA,UAAU,GAClB,OAAOA,UAAU,KAAK,QAAQ,GAC5BS,IAAI,CAACC,SAAS,CAACV,UAAU,CAAC,GAC1BW,MAAM,CAACX,UAAU,CAAC,GACpBY;EACN,CAAC,CAAC;AACJ,CAAC;AAACC,OAAA,CAAAf,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"trackError.js","names":["_services","require","_helpers","_Error$stack","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ERROR_TRACKING_FEATURE","MAX_REPORTS_PER_MESSAGE","MAX_TRACKED_MESSAGES","RATE_LIMIT_WINDOW_MS","resolveBase","url","_URL","URL","origin","pathname","concat","replace","_unused","undefined","CORE_BASE","Error","stack","match","process","env","SERVICE_STATIC","reportedErrors","WeakMap","messageCounts","Map","errorContext","removeGlobalErrorListeners","isErrorTrackingEnabled","id","chain","hotel","ServiceFeatures","get","isCoreUrl","startsWith","isStackFrame","line","test","includes","stackHasCoreFrame","split","some","isCoreSource","_ref","filename","isDuplicate","error","now","lastReported","set","isRateLimited","message","entry","since","count","size","delete","next","configureErrorTracking","_ref2","session","type","exports","reportError","_ref3","componentStack","Date","errorMessage","errorStack","Boolean","join","trackError","handleError","_ref4","handleUnhandledRejection","_ref5","reason","initializeErrorTracking","window","addEventListener","removeEventListener","trim","IS_PLAYWRIGHT","location","host","ServiceAnna","track","JSON","stringify","eventName","METRICS_EVENTS","ERROR_CORE"],"sources":["../../src/helpers/trackError.js"],"sourcesContent":["import { ServiceAnna, ServiceFeatures } from '@mirai/services';\n\nimport { METRICS_EVENTS } from '../components/helpers';\n\nconst ERROR_TRACKING_FEATURE = 'errorTracking';\nconst MAX_REPORTS_PER_MESSAGE = 5;\nconst MAX_TRACKED_MESSAGES = 100;\nconst RATE_LIMIT_WINDOW_MS = 60000;\n\nconst resolveBase = (url) => {\n try {\n const { origin, pathname } = new URL(url);\n return `${origin}${pathname.replace(/[^/]*$/, '')}`;\n } catch {\n return undefined;\n }\n};\n\nconst CORE_BASE =\n resolveBase(new Error().stack?.match(/https?:\\/\\/[^\\s)'\"]+/)?.[0]) ||\n resolveBase(process.env.SERVICE_STATIC && `${process.env.SERVICE_STATIC}/core/index.js`);\n\nconst reportedErrors = new WeakMap();\nconst messageCounts = new Map();\nlet errorContext = {};\nlet removeGlobalErrorListeners;\n\nconst isErrorTrackingEnabled = () => {\n const id = errorContext.chain || errorContext.hotel;\n return !!id && ServiceFeatures.get(ERROR_TRACKING_FEATURE, id);\n};\n\nconst isCoreUrl = (url) => !!CORE_BASE && typeof url === 'string' && url.startsWith(CORE_BASE);\n\nconst isStackFrame = (line) => /^\\s*at\\s/.test(line) || line.includes('@');\n\nconst stackHasCoreFrame = (stack) =>\n typeof stack === 'string' &&\n stack.split('\\n').some((line) => isStackFrame(line) && isCoreUrl((line.match(/https?:\\/\\/[^\\s)'\"]+/) || [])[0]));\n\nconst isCoreSource = ({ filename, stack } = {}) => (filename ? isCoreUrl(filename) : stackHasCoreFrame(stack));\n\nconst isDuplicate = (error, now) => {\n if (error === null || (typeof error !== 'object' && typeof error !== 'function')) return false;\n const lastReported = reportedErrors.get(error);\n if (lastReported && now - lastReported <= RATE_LIMIT_WINDOW_MS) return true;\n reportedErrors.set(error, now);\n return false;\n};\n\nconst isRateLimited = (message, now) => {\n const entry = messageCounts.get(message);\n if (entry && now - entry.since <= RATE_LIMIT_WINDOW_MS) {\n if (entry.count >= MAX_REPORTS_PER_MESSAGE) return true;\n entry.count += 1;\n return false;\n }\n if (!entry && messageCounts.size >= MAX_TRACKED_MESSAGES) messageCounts.delete(messageCounts.keys().next().value);\n messageCounts.set(message, { count: 1, since: now });\n return false;\n};\n\nexport const configureErrorTracking = ({ hotel, id, session, type } = {}) => {\n errorContext = {\n chain: type === 'chain' ? id : undefined,\n hotel: hotel?.id,\n session,\n };\n};\n\nexport const reportError = (error, { componentStack } = {}) => {\n const now = Date.now();\n if (isDuplicate(error, now)) return;\n\n const errorMessage = error?.message || (typeof error === 'string' ? error : String(error ?? 'Unknown error'));\n\n if (isRateLimited(errorMessage, now)) return;\n\n const errorStack = [error?.stack, componentStack].filter(Boolean).join('\\n') || undefined;\n trackError(errorMessage, errorStack);\n};\n\nconst handleError = ({ error, message, filename } = {}) => {\n if (!isCoreSource({ filename, stack: error?.stack })) return;\n reportError(error ?? message);\n};\n\nconst handleUnhandledRejection = ({ reason } = {}) => {\n if (!isCoreSource({ stack: reason?.stack })) return;\n reportError(reason);\n};\n\nexport const initializeErrorTracking = () => {\n if (removeGlobalErrorListeners) return removeGlobalErrorListeners;\n\n window.addEventListener('error', handleError);\n window.addEventListener('unhandledrejection', handleUnhandledRejection);\n\n removeGlobalErrorListeners = () => {\n window.removeEventListener('error', handleError);\n window.removeEventListener('unhandledrejection', handleUnhandledRejection);\n removeGlobalErrorListeners = undefined;\n };\n\n return removeGlobalErrorListeners;\n};\n\nexport const trackError = (errorMessage, errorStack) => {\n if (typeof errorMessage !== 'string' || errorMessage.trim() === '') return;\n if (window.IS_PLAYWRIGHT || window.location.host === 'monalisa.mirai.com' || !isErrorTrackingEnabled()) return;\n\n ServiceAnna.track({\n ...errorContext,\n errorMessage,\n errorStack: errorStack\n ? typeof errorStack === 'object'\n ? JSON.stringify(errorStack)\n : String(errorStack)\n : undefined,\n eventName: METRICS_EVENTS.ERROR_CORE,\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAAuD,IAAAE,YAAA;AAAA,SAAAC,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAgB,gBAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAD,CAAA,GAAAG,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAAvB,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAoB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA3B,CAAA,QAAAwB,CAAA,GAAAxB,CAAA,CAAA4B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAEvD,MAAM8B,sBAAsB,GAAG,eAAe;AAC9C,MAAMC,uBAAuB,GAAG,CAAC;AACjC,MAAMC,oBAAoB,GAAG,GAAG;AAChC,MAAMC,oBAAoB,GAAG,KAAK;AAElC,MAAMC,WAAW,GAAIC,GAAG,IAAK;EAC3B,IAAI;IACF,MAAAC,IAAA,GAA6B,IAAIC,GAAG,CAACF,GAAG,CAAC;MAAjCG,MAAM,GAAAF,IAAA,CAANE,MAAM;MAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACxB,UAAAC,MAAA,CAAUF,MAAM,EAAAE,MAAA,CAAGD,QAAQ,CAACE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;EACnD,CAAC,CAAC,OAAAC,OAAA,EAAM;IACN,OAAOC,SAAS;EAClB;AACF,CAAC;AAED,MAAMC,SAAS,GACbV,WAAW,EAAAtC,YAAA,GAAC,IAAIiD,KAAK,CAAC,CAAC,CAACC,KAAK,cAAAlD,YAAA,gBAAAA,YAAA,GAAjBA,YAAA,CAAmBmD,KAAK,CAAC,sBAAsB,CAAC,cAAAnD,YAAA,uBAAhDA,YAAA,CAAmD,CAAC,CAAC,CAAC,IAClEsC,WAAW,CAACc,OAAO,CAACC,GAAG,CAACC,cAAc,OAAAV,MAAA,CAAOQ,OAAO,CAACC,GAAG,CAACC,cAAc,mBAAgB,CAAC;AAE1F,MAAMC,cAAc,GAAG,IAAIC,OAAO,CAAC,CAAC;AACpC,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAAC,CAAC;AAC/B,IAAIC,YAAY,GAAG,CAAC,CAAC;AACrB,IAAIC,0BAA0B;AAE9B,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;EACnC,MAAMC,EAAE,GAAGH,YAAY,CAACI,KAAK,IAAIJ,YAAY,CAACK,KAAK;EACnD,OAAO,CAAC,CAACF,EAAE,IAAIG,yBAAe,CAACC,GAAG,CAAChC,sBAAsB,EAAE4B,EAAE,CAAC;AAChE,CAAC;AAED,MAAMK,SAAS,GAAI5B,GAAG,IAAK,CAAC,CAACS,SAAS,IAAI,OAAOT,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAAC6B,UAAU,CAACpB,SAAS,CAAC;AAE9F,MAAMqB,YAAY,GAAIC,IAAI,IAAK,UAAU,CAACC,IAAI,CAACD,IAAI,CAAC,IAAIA,IAAI,CAACE,QAAQ,CAAC,GAAG,CAAC;AAE1E,MAAMC,iBAAiB,GAAIvB,KAAK,IAC9B,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,CAACwB,KAAK,CAAC,IAAI,CAAC,CAACC,IAAI,CAAEL,IAAI,IAAKD,YAAY,CAACC,IAAI,CAAC,IAAIH,SAAS,CAAC,CAACG,IAAI,CAACnB,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAElH,MAAMyB,YAAY,GAAG,SAAAA,CAAA;EAAA,IAAAC,IAAA,GAAA9D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgC,SAAA,GAAAhC,SAAA,MAAuB,CAAC,CAAC;IAAtB+D,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAE5B,KAAK,GAAA2B,IAAA,CAAL3B,KAAK;EAAA,OAAa4B,QAAQ,GAAGX,SAAS,CAACW,QAAQ,CAAC,GAAGL,iBAAiB,CAACvB,KAAK,CAAC;AAAA,CAAC;AAE9G,MAAM6B,WAAW,GAAGA,CAACC,KAAK,EAAEC,GAAG,KAAK;EAClC,IAAID,KAAK,KAAK,IAAI,IAAK,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,UAAW,EAAE,OAAO,KAAK;EAC9F,MAAME,YAAY,GAAG3B,cAAc,CAACW,GAAG,CAACc,KAAK,CAAC;EAC9C,IAAIE,YAAY,IAAID,GAAG,GAAGC,YAAY,IAAI7C,oBAAoB,EAAE,OAAO,IAAI;EAC3EkB,cAAc,CAAC4B,GAAG,CAACH,KAAK,EAAEC,GAAG,CAAC;EAC9B,OAAO,KAAK;AACd,CAAC;AAED,MAAMG,aAAa,GAAGA,CAACC,OAAO,EAAEJ,GAAG,KAAK;EACtC,MAAMK,KAAK,GAAG7B,aAAa,CAACS,GAAG,CAACmB,OAAO,CAAC;EACxC,IAAIC,KAAK,IAAIL,GAAG,GAAGK,KAAK,CAACC,KAAK,IAAIlD,oBAAoB,EAAE;IACtD,IAAIiD,KAAK,CAACE,KAAK,IAAIrD,uBAAuB,EAAE,OAAO,IAAI;IACvDmD,KAAK,CAACE,KAAK,IAAI,CAAC;IAChB,OAAO,KAAK;EACd;EACA,IAAI,CAACF,KAAK,IAAI7B,aAAa,CAACgC,IAAI,IAAIrD,oBAAoB,EAAEqB,aAAa,CAACiC,MAAM,CAACjC,aAAa,CAACnD,IAAI,CAAC,CAAC,CAACqF,IAAI,CAAC,CAAC,CAACpE,KAAK,CAAC;EACjHkC,aAAa,CAAC0B,GAAG,CAACE,OAAO,EAAE;IAAEG,KAAK,EAAE,CAAC;IAAED,KAAK,EAAEN;EAAI,CAAC,CAAC;EACpD,OAAO,KAAK;AACd,CAAC;AAEM,MAAMW,sBAAsB,GAAG,SAAAA,CAAA,EAAuC;EAAA,IAAAC,KAAA,GAAA9E,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgC,SAAA,GAAAhC,SAAA,MAAP,CAAC,CAAC;IAA/BiD,KAAK,GAAA6B,KAAA,CAAL7B,KAAK;IAAEF,EAAE,GAAA+B,KAAA,CAAF/B,EAAE;IAAEgC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAEC,IAAI,GAAAF,KAAA,CAAJE,IAAI;EAC/DpC,YAAY,GAAG;IACbI,KAAK,EAAEgC,IAAI,KAAK,OAAO,GAAGjC,EAAE,GAAGf,SAAS;IACxCiB,KAAK,EAAEA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEF,EAAE;IAChBgC;EACF,CAAC;AACH,CAAC;AAACE,OAAA,CAAAJ,sBAAA,GAAAA,sBAAA;AAEK,MAAMK,WAAW,GAAG,SAAAA,CAACjB,KAAK,EAA8B;EAAA,IAAAkB,KAAA,GAAAnF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgC,SAAA,GAAAhC,SAAA,MAAP,CAAC,CAAC;IAArBoF,cAAc,GAAAD,KAAA,CAAdC,cAAc;EACjD,MAAMlB,GAAG,GAAGmB,IAAI,CAACnB,GAAG,CAAC,CAAC;EACtB,IAAIF,WAAW,CAACC,KAAK,EAAEC,GAAG,CAAC,EAAE;EAE7B,MAAMoB,YAAY,GAAG,CAAArB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEK,OAAO,MAAK,OAAOL,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGhD,MAAM,CAACgD,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,eAAe,CAAC,CAAC;EAE7G,IAAII,aAAa,CAACiB,YAAY,EAAEpB,GAAG,CAAC,EAAE;EAEtC,MAAMqB,UAAU,GAAG,CAACtB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE9B,KAAK,EAAEiD,cAAc,CAAC,CAAC1F,MAAM,CAAC8F,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,IAAIzD,SAAS;EACzF0D,UAAU,CAACJ,YAAY,EAAEC,UAAU,CAAC;AACtC,CAAC;AAACN,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAEF,MAAMS,WAAW,GAAG,SAAAA,CAAA,EAAuC;EAAA,IAAAC,KAAA,GAAA5F,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgC,SAAA,GAAAhC,SAAA,MAAP,CAAC,CAAC;IAA/BiE,KAAK,GAAA2B,KAAA,CAAL3B,KAAK;IAAEK,OAAO,GAAAsB,KAAA,CAAPtB,OAAO;IAAEP,QAAQ,GAAA6B,KAAA,CAAR7B,QAAQ;EAC7C,IAAI,CAACF,YAAY,CAAC;IAAEE,QAAQ;IAAE5B,KAAK,EAAE8B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE9B;EAAM,CAAC,CAAC,EAAE;EACtD+C,WAAW,CAACjB,KAAK,aAALA,KAAK,cAALA,KAAK,GAAIK,OAAO,CAAC;AAC/B,CAAC;AAED,MAAMuB,wBAAwB,GAAG,SAAAA,CAAA,EAAqB;EAAA,IAAAC,KAAA,GAAA9F,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAgC,SAAA,GAAAhC,SAAA,MAAP,CAAC,CAAC;IAAb+F,MAAM,GAAAD,KAAA,CAANC,MAAM;EACxC,IAAI,CAAClC,YAAY,CAAC;IAAE1B,KAAK,EAAE4D,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE5D;EAAM,CAAC,CAAC,EAAE;EAC7C+C,WAAW,CAACa,MAAM,CAAC;AACrB,CAAC;AAEM,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;EAC3C,IAAInD,0BAA0B,EAAE,OAAOA,0BAA0B;EAEjEoD,MAAM,CAACC,gBAAgB,CAAC,OAAO,EAAEP,WAAW,CAAC;EAC7CM,MAAM,CAACC,gBAAgB,CAAC,oBAAoB,EAAEL,wBAAwB,CAAC;EAEvEhD,0BAA0B,GAAGA,CAAA,KAAM;IACjCoD,MAAM,CAACE,mBAAmB,CAAC,OAAO,EAAER,WAAW,CAAC;IAChDM,MAAM,CAACE,mBAAmB,CAAC,oBAAoB,EAAEN,wBAAwB,CAAC;IAC1EhD,0BAA0B,GAAGb,SAAS;EACxC,CAAC;EAED,OAAOa,0BAA0B;AACnC,CAAC;AAACoC,OAAA,CAAAe,uBAAA,GAAAA,uBAAA;AAEK,MAAMN,UAAU,GAAGA,CAACJ,YAAY,EAAEC,UAAU,KAAK;EACtD,IAAI,OAAOD,YAAY,KAAK,QAAQ,IAAIA,YAAY,CAACc,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;EACpE,IAAIH,MAAM,CAACI,aAAa,IAAIJ,MAAM,CAACK,QAAQ,CAACC,IAAI,KAAK,oBAAoB,IAAI,CAACzD,sBAAsB,CAAC,CAAC,EAAE;EAExG0D,qBAAW,CAACC,KAAK,CAAA1G,aAAA,CAAAA,aAAA,KACZ6C,YAAY;IACf0C,YAAY;IACZC,UAAU,EAAEA,UAAU,GAClB,OAAOA,UAAU,KAAK,QAAQ,GAC5BmB,IAAI,CAACC,SAAS,CAACpB,UAAU,CAAC,GAC1BtE,MAAM,CAACsE,UAAU,CAAC,GACpBvD,SAAS;IACb4E,SAAS,EAAEC,uBAAc,CAACC;EAAU,EACrC,CAAC;AACJ,CAAC;AAAC7B,OAAA,CAAAS,UAAA,GAAAA,UAAA","ignoreList":[]}
|
package/build/index.js
CHANGED
|
@@ -33,9 +33,11 @@ window.Mirai = _objectSpread(_objectSpread({}, window.Mirai), {}, {
|
|
|
33
33
|
trackError: _helpers.trackError,
|
|
34
34
|
version: _package.version
|
|
35
35
|
});
|
|
36
|
+
(0, _helpers.initializeErrorTracking)();
|
|
36
37
|
let memoizedRoot;
|
|
37
38
|
window.Mirai.core = async () => {
|
|
38
39
|
if (memoizedRoot) memoizedRoot.unmount();
|
|
40
|
+
(0, _helpers.configureErrorTracking)();
|
|
39
41
|
_dataSources.Event.publish(_Core2.EVENT.CORE_EVENTS_READY);
|
|
40
42
|
const isProduction = process.env.NODE_ENV === 'production';
|
|
41
43
|
const isDevelopment = process.env.NODE_ENV === 'development';
|
|
@@ -51,6 +53,13 @@ window.Mirai.core = async () => {
|
|
|
51
53
|
urlParams
|
|
52
54
|
});
|
|
53
55
|
if (!instance) return;
|
|
56
|
+
(0, _helpers.configureErrorTracking)({
|
|
57
|
+
hotel: {
|
|
58
|
+
id: instance.type === 'chain' ? instance.hotel : instance.id
|
|
59
|
+
},
|
|
60
|
+
id: instance.id,
|
|
61
|
+
type: instance.type
|
|
62
|
+
});
|
|
54
63
|
|
|
55
64
|
// 2. Fetch client-side dataSources
|
|
56
65
|
const cookies = (0, _helpers.fetchCookies)(Object.values(_Core2.COOKIE));
|
|
@@ -113,6 +122,7 @@ window.Mirai.core = async () => {
|
|
|
113
122
|
session,
|
|
114
123
|
urlParams
|
|
115
124
|
});
|
|
125
|
+
(0, _helpers.configureErrorTracking)(store);
|
|
116
126
|
|
|
117
127
|
// 11. Initialize features
|
|
118
128
|
await _services.ServiceFeatures.initialize();
|
|
@@ -140,7 +150,7 @@ window.Mirai.core = async () => {
|
|
|
140
150
|
try {
|
|
141
151
|
!window.ON_DEMAND_INIT && (await window.Mirai.core());
|
|
142
152
|
} catch (error) {
|
|
143
|
-
(0, _helpers.
|
|
153
|
+
(0, _helpers.reportError)(error);
|
|
144
154
|
throw error;
|
|
145
155
|
}
|
|
146
156
|
const _window$Mirai = window.Mirai,
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_dataSources","require","_services","_react","_interopRequireDefault","_client","_contexts","_Core","_Core2","_Core3","_helpers","_package","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","window","Mirai","components","undefined","config","environment","process","env","NODE_ENV","Event","services","booking","SERVICE_BOOKING","club","SERVICE_CLUB","dictionary","SERVICE_DICTIONARY","engine","SERVICE_ENGINE","static","SERVICE_STATIC","user","SERVICE_USER","trackError","version","memoizedRoot","core","unmount","publish","EVENT","CORE_EVENTS_READY","isProduction","isDevelopment","isPreproduction","log","concat","name","console","urlParams","fetchUrlParams","location","search","urlParameters","instance","findInstance","cookies","fetchCookies","values","COOKIE","session","fetchSession","loadEnvironment","findComponents","theme","localeInstance","getLocale","createRoot","el","IS_PLAYWRIGHT","render","createElement","StrictMode","StoreProvider","id","skeleton","type","Core","fetchConfig","language","checkSession","hsri","SYNAPSE_COMMISSION_CODE","fingerprint","_localStorage","localStorage","setItem","fetchExternalSession","store","consolidateStore","ServiceFeatures","initialize","ServiceDictionary","cache","locale","get","ErrorBoundary","MetricsProvider","token","disableMetrics","METRICS","PerformanceManager","EventManager","ready","setTimeout","CORE_READY","ON_DEMAND_INIT","error","message","stack","_window$Mirai","_window$Mirai$compone","_ref","component","includes","addEventListener","event","persisted"],"sources":["../src/index.js"],"sourcesContent":["/* eslint-disable no-console */\nimport { Event, MetricsProvider, StoreProvider } from '@mirai/data-sources';\nimport { ServiceDictionary, ServiceFeatures } from '@mirai/services';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { EventManager, PerformanceManager } from './contexts';\nimport { Core } from './Core';\nimport { COOKIE, EVENT, SYNAPSE_COMMISSION_CODE } from './Core.constants';\nimport { ErrorBoundary } from './Core.ErrorBoundary';\nimport {\n checkSession,\n consolidateStore,\n fetchConfig,\n fetchCookies,\n fetchExternalSession,\n fetchSession,\n fetchUrlParams,\n findComponents,\n findInstance,\n getLocale,\n loadEnvironment,\n theme,\n trackError,\n} from './helpers';\nimport { name, version } from '../package.json';\nimport './helpers/polyfills';\n\nwindow.Mirai = {\n ...window.Mirai,\n components: undefined,\n config: undefined,\n environment: process.env.NODE_ENV,\n Event,\n services: {\n booking: process.env.SERVICE_BOOKING,\n club: process.env.SERVICE_CLUB,\n dictionary: process.env.SERVICE_DICTIONARY,\n engine: process.env.SERVICE_ENGINE,\n static: process.env.SERVICE_STATIC,\n user: process.env.SERVICE_USER,\n },\n trackError,\n version,\n};\n\nlet memoizedRoot;\nwindow.Mirai.core = async () => {\n if (memoizedRoot) memoizedRoot.unmount();\n\n Event.publish(EVENT.CORE_EVENTS_READY);\n\n const isProduction = process.env.NODE_ENV === 'production';\n const isDevelopment = process.env.NODE_ENV === 'development';\n const isPreproduction = process.env.NODE_ENV === 'preproduction';\n const log = `${isProduction ? '🟢' : isPreproduction ? '🟡' : isDevelopment ? '🔴' : '⚫️'} ${name} v${version}`;\n\n console.log(log, 'starting...');\n\n // 1. Find instance\n const urlParams = fetchUrlParams(location.search);\n //Compatibility with 123 compare\n window.Mirai.urlParameters = urlParams;\n\n const instance = findInstance({ urlParams });\n if (!instance) return;\n\n // 2. Fetch client-side dataSources\n const cookies = fetchCookies(Object.values(COOKIE));\n let session = fetchSession(urlParams);\n\n // 3. Analyze environment\n const environment = urlParams.env && isProduction ? loadEnvironment(urlParams.env) : undefined;\n if (environment) return;\n\n // 4. Find components\n const components = findComponents({ ...instance, ...urlParams });\n\n window.Mirai = { ...window.Mirai, components };\n\n // 5. Theming\n theme(urlParams);\n\n const localeInstance = getLocale(instance, urlParams);\n\n memoizedRoot = createRoot(instance.el);\n // 7. 1st render\n window &&\n !window.IS_PLAYWRIGHT &&\n memoizedRoot.render(\n <React.StrictMode>\n <StoreProvider\n value={{ id: instance.id, session, skeleton: true, type: instance.type, urlParams, ...localeInstance }}\n >\n <Core {...{ components }} />\n </StoreProvider>\n </React.StrictMode>,\n );\n\n // 8. Analyze id to fetch its config\n const config = await fetchConfig({ ...instance, language: localeInstance.language });\n if (!config) return;\n window.Mirai.config = config;\n\n // 8. Check session\n if (session && !(await checkSession(instance.id, session, config))) session = undefined;\n if (urlParams.hsri == SYNAPSE_COMMISSION_CODE && urlParams.fingerprint) {\n localStorage?.setItem('MIRAI:FINGERPRINT', urlParams.fingerprint);\n }\n\n // 9. Fetch external session\n session = await fetchExternalSession({ config, cookies, session });\n\n // 10. Consolidate store\n const store = await consolidateStore({ components, config, cookies, instance, session, urlParams });\n\n // 11. Initialize features\n await ServiceFeatures.initialize();\n\n // 12. Initialize dictionary\n if (!ServiceDictionary.cache(store.locale)) await ServiceDictionary.get(store.locale, false);\n\n // 13. Render components\n memoizedRoot.unmount();\n memoizedRoot = createRoot(instance.el);\n memoizedRoot.render(\n <React.StrictMode>\n <ErrorBoundary>\n <MetricsProvider token={!urlParams.disableMetrics ? process.env.METRICS : undefined}>\n <StoreProvider value={store}>\n <PerformanceManager />\n <Core {...{ components }} />\n <EventManager />\n </StoreProvider>\n </MetricsProvider>\n </ErrorBoundary>\n </React.StrictMode>,\n );\n\n // 14. Up & Ready\n window.Mirai.ready = true;\n setTimeout(() => Event.publish(EVENT.CORE_READY, window.Mirai), 0);\n console.log(log, '[READY]', window.Mirai);\n};\n\n(async () => {\n try {\n !window.ON_DEMAND_INIT && (await window.Mirai.core());\n } catch (error) {\n trackError(error?.message || 'core:init', error?.stack);\n\n throw error;\n }\n\n const { components = [], ready } = window.Mirai;\n\n if (ready && components.filter(({ component } = {}) => ['booking', 'checkout', 'rates'].includes(component).length)) {\n window.addEventListener('pageshow', (event) => event.persisted && window.Mirai.core());\n }\n})();\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_dataSources","require","_services","_react","_interopRequireDefault","_client","_contexts","_Core","_Core2","_Core3","_helpers","_package","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","window","Mirai","components","undefined","config","environment","process","env","NODE_ENV","Event","services","booking","SERVICE_BOOKING","club","SERVICE_CLUB","dictionary","SERVICE_DICTIONARY","engine","SERVICE_ENGINE","static","SERVICE_STATIC","user","SERVICE_USER","trackError","version","initializeErrorTracking","memoizedRoot","core","unmount","configureErrorTracking","publish","EVENT","CORE_EVENTS_READY","isProduction","isDevelopment","isPreproduction","log","concat","name","console","urlParams","fetchUrlParams","location","search","urlParameters","instance","findInstance","hotel","id","type","cookies","fetchCookies","values","COOKIE","session","fetchSession","loadEnvironment","findComponents","theme","localeInstance","getLocale","createRoot","el","IS_PLAYWRIGHT","render","createElement","StrictMode","StoreProvider","skeleton","Core","fetchConfig","language","checkSession","hsri","SYNAPSE_COMMISSION_CODE","fingerprint","_localStorage","localStorage","setItem","fetchExternalSession","store","consolidateStore","ServiceFeatures","initialize","ServiceDictionary","cache","locale","get","ErrorBoundary","MetricsProvider","token","disableMetrics","METRICS","PerformanceManager","EventManager","ready","setTimeout","CORE_READY","ON_DEMAND_INIT","error","reportError","_window$Mirai","_window$Mirai$compone","_ref","component","includes","addEventListener","event","persisted"],"sources":["../src/index.js"],"sourcesContent":["/* eslint-disable no-console */\nimport { Event, MetricsProvider, StoreProvider } from '@mirai/data-sources';\nimport { ServiceDictionary, ServiceFeatures } from '@mirai/services';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { EventManager, PerformanceManager } from './contexts';\nimport { Core } from './Core';\nimport { COOKIE, EVENT, SYNAPSE_COMMISSION_CODE } from './Core.constants';\nimport { ErrorBoundary } from './Core.ErrorBoundary';\nimport {\n checkSession,\n configureErrorTracking,\n consolidateStore,\n fetchConfig,\n fetchCookies,\n fetchExternalSession,\n fetchSession,\n fetchUrlParams,\n findComponents,\n findInstance,\n getLocale,\n initializeErrorTracking,\n loadEnvironment,\n reportError,\n theme,\n trackError,\n} from './helpers';\nimport { name, version } from '../package.json';\nimport './helpers/polyfills';\n\nwindow.Mirai = {\n ...window.Mirai,\n components: undefined,\n config: undefined,\n environment: process.env.NODE_ENV,\n Event,\n services: {\n booking: process.env.SERVICE_BOOKING,\n club: process.env.SERVICE_CLUB,\n dictionary: process.env.SERVICE_DICTIONARY,\n engine: process.env.SERVICE_ENGINE,\n static: process.env.SERVICE_STATIC,\n user: process.env.SERVICE_USER,\n },\n trackError,\n version,\n};\n\ninitializeErrorTracking();\n\nlet memoizedRoot;\nwindow.Mirai.core = async () => {\n if (memoizedRoot) memoizedRoot.unmount();\n\n configureErrorTracking();\n\n Event.publish(EVENT.CORE_EVENTS_READY);\n\n const isProduction = process.env.NODE_ENV === 'production';\n const isDevelopment = process.env.NODE_ENV === 'development';\n const isPreproduction = process.env.NODE_ENV === 'preproduction';\n const log = `${isProduction ? '🟢' : isPreproduction ? '🟡' : isDevelopment ? '🔴' : '⚫️'} ${name} v${version}`;\n\n console.log(log, 'starting...');\n\n // 1. Find instance\n const urlParams = fetchUrlParams(location.search);\n //Compatibility with 123 compare\n window.Mirai.urlParameters = urlParams;\n\n const instance = findInstance({ urlParams });\n if (!instance) return;\n\n configureErrorTracking({\n hotel: { id: instance.type === 'chain' ? instance.hotel : instance.id },\n id: instance.id,\n type: instance.type,\n });\n\n // 2. Fetch client-side dataSources\n const cookies = fetchCookies(Object.values(COOKIE));\n let session = fetchSession(urlParams);\n\n // 3. Analyze environment\n const environment = urlParams.env && isProduction ? loadEnvironment(urlParams.env) : undefined;\n if (environment) return;\n\n // 4. Find components\n const components = findComponents({ ...instance, ...urlParams });\n\n window.Mirai = { ...window.Mirai, components };\n\n // 5. Theming\n theme(urlParams);\n\n const localeInstance = getLocale(instance, urlParams);\n\n memoizedRoot = createRoot(instance.el);\n // 7. 1st render\n window &&\n !window.IS_PLAYWRIGHT &&\n memoizedRoot.render(\n <React.StrictMode>\n <StoreProvider\n value={{ id: instance.id, session, skeleton: true, type: instance.type, urlParams, ...localeInstance }}\n >\n <Core {...{ components }} />\n </StoreProvider>\n </React.StrictMode>,\n );\n\n // 8. Analyze id to fetch its config\n const config = await fetchConfig({ ...instance, language: localeInstance.language });\n if (!config) return;\n window.Mirai.config = config;\n\n // 8. Check session\n if (session && !(await checkSession(instance.id, session, config))) session = undefined;\n if (urlParams.hsri == SYNAPSE_COMMISSION_CODE && urlParams.fingerprint) {\n localStorage?.setItem('MIRAI:FINGERPRINT', urlParams.fingerprint);\n }\n\n // 9. Fetch external session\n session = await fetchExternalSession({ config, cookies, session });\n\n // 10. Consolidate store\n const store = await consolidateStore({ components, config, cookies, instance, session, urlParams });\n configureErrorTracking(store);\n\n // 11. Initialize features\n await ServiceFeatures.initialize();\n\n // 12. Initialize dictionary\n if (!ServiceDictionary.cache(store.locale)) await ServiceDictionary.get(store.locale, false);\n\n // 13. Render components\n memoizedRoot.unmount();\n memoizedRoot = createRoot(instance.el);\n memoizedRoot.render(\n <React.StrictMode>\n <ErrorBoundary>\n <MetricsProvider token={!urlParams.disableMetrics ? process.env.METRICS : undefined}>\n <StoreProvider value={store}>\n <PerformanceManager />\n <Core {...{ components }} />\n <EventManager />\n </StoreProvider>\n </MetricsProvider>\n </ErrorBoundary>\n </React.StrictMode>,\n );\n\n // 14. Up & Ready\n window.Mirai.ready = true;\n setTimeout(() => Event.publish(EVENT.CORE_READY, window.Mirai), 0);\n console.log(log, '[READY]', window.Mirai);\n};\n\n(async () => {\n try {\n !window.ON_DEMAND_INIT && (await window.Mirai.core());\n } catch (error) {\n reportError(error);\n\n throw error;\n }\n\n const { components = [], ready } = window.Mirai;\n\n if (ready && components.filter(({ component } = {}) => ['booking', 'checkout', 'rates'].includes(component).length)) {\n window.addEventListener('pageshow', (event) => event.persisted && window.Mirai.core());\n }\n})();\n"],"mappings":"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","ignoreList":[]}
|