@mirai/core 0.4.289 → 0.4.291

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.
@@ -21,7 +21,6 @@ const {
21
21
  GTM
22
22
  } = _Core.PERFORMANCE || {};
23
23
  let counter = 0;
24
- let memoizedEvents = [];
25
24
  let memoizedPendingEvents = [];
26
25
  const PerformanceManager = () => {
27
26
  const device = (0, _ui.useDevice)();
@@ -32,13 +31,12 @@ const PerformanceManager = () => {
32
31
  const {
33
32
  value: {
34
33
  components = {},
35
- performance = [],
34
+ performance: storePerformance = [],
36
35
  ...store
37
36
  }
38
37
  } = (0, _dataSources.useStore)();
39
38
  const [consentMode, setConsentMode] = (0, _react.useState)((0, _helpers.getConsentMode)());
40
- const [ready, setReady] = (0, _react.useState)(false);
41
- const [types, setTypes] = (0, _react.useState)([]);
39
+ const [performance, setPerformance] = (0, _react.useState)(storePerformance);
42
40
  const {
43
41
  hotel = {},
44
42
  finder: {
@@ -85,7 +83,7 @@ const PerformanceManager = () => {
85
83
  // eslint-disable-next-line react-hooks/exhaustive-deps
86
84
  }, []);
87
85
  (0, _react.useEffect)(() => {
88
- if (consentMode && types.length > 0) return;
86
+ if (consentMode) return;
89
87
  const interval = setInterval(async () => {
90
88
  counter !== undefined && counter++;
91
89
  const nextConsentMode = (0, _helpers.getConsentMode)(counter >= MAX_COUNTER);
@@ -96,12 +94,6 @@ const PerformanceManager = () => {
96
94
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
97
95
  return isGtm(provider);
98
96
  }).length === 0 || !nextConsentMode && counter < MAX_COUNTER) return;
99
- await loadScripts(performance.filter(function () {
100
- let {
101
- type
102
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
103
- return type !== COMPARE;
104
- }), nextConsentMode);
105
97
  const nextMemoizedPendingEvents = [];
106
98
  memoizedPendingEvents.forEach(function () {
107
99
  let event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -113,7 +105,7 @@ const PerformanceManager = () => {
113
105
  if (!execute || requeue) {
114
106
  nextMemoizedPendingEvents.push(event);
115
107
  } else {
116
- executeEvent(event);
108
+ executeEvent(event, nextConsentMode);
117
109
  if (!nextConsentMode && !isGtm(provider)) nextMemoizedPendingEvents.push(event);
118
110
  }
119
111
  });
@@ -127,7 +119,6 @@ const PerformanceManager = () => {
127
119
  // eslint-disable-next-line react-hooks/exhaustive-deps
128
120
  }, [consentMode]);
129
121
  (0, _react.useEffect)(() => {
130
- var _getPerformance;
131
122
  const {
132
123
  config,
133
124
  finder: {
@@ -137,27 +128,24 @@ const PerformanceManager = () => {
137
128
  } = {}
138
129
  } = {}
139
130
  } = store;
140
- if (place && ready) loadScripts((_getPerformance = (0, _helpers3.getPerformance)(config, isHotel ? hotelId : undefined)) === null || _getPerformance === void 0 ? void 0 : _getPerformance.filter(function () {
141
- let {
142
- type
143
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
144
- return type !== COMPARE;
145
- }));
131
+ if (place) {
132
+ var _getPerformance;
133
+ setPerformance((_getPerformance = (0, _helpers3.getPerformance)(config, isHotel ? hotelId : undefined)) === null || _getPerformance === void 0 ? void 0 : _getPerformance.filter(function () {
134
+ let {
135
+ type
136
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
137
+ return type !== COMPARE;
138
+ }));
139
+ }
146
140
  // eslint-disable-next-line react-hooks/exhaustive-deps
147
141
  }, [place]);
148
- (0, _react.useEffect)(() => {
149
- if (!ready) return;
150
- memoizedEvents.forEach(event => executeEvent(event));
151
- memoizedEvents = [];
152
- // eslint-disable-next-line react-hooks/exhaustive-deps
153
- }, [ready]);
154
142
  (0, _react.useEffect)(() => {
155
143
  const handleEvent = _ref4 => {
156
144
  let {
157
145
  event,
158
146
  ...value
159
147
  } = _ref4;
160
- const currentConsentMode = (0, _helpers.getConsentMode)();
148
+ const currentConsentMode = (0, _helpers.getConsentMode)(true);
161
149
  const availableProviders = performance.map(function () {
162
150
  let {
163
151
  type
@@ -173,17 +161,19 @@ const PerformanceManager = () => {
173
161
  provider,
174
162
  value
175
163
  };
176
- if (!currentConsentMode && (!availableProviders.includes(provider) || types.length > 0 && !types.includes(provider))) {
177
- if (counter === undefined && ready && _PerformanceManager.CONSENT_MODE_ANSWERED.includes(provider)) executeEvent(props);else if (!memoizedPendingEvents.some(item => item.event === event && item.provider === provider)) {
164
+ if (!currentConsentMode && !availableProviders.includes(provider)) {
165
+ if (counter === undefined && _PerformanceManager.CONSENT_MODE_ANSWERED.includes(provider)) {
166
+ executeEvent(props);
167
+ } else if (!memoizedPendingEvents.some(item => item.event === event && item.provider === provider)) {
178
168
  memoizedPendingEvents.push(props);
179
169
  }
180
- } else if (ready) executeEvent(props);else memoizedEvents.push(props);
170
+ } else executeEvent(props);
181
171
  });
182
172
  };
183
173
  Object.keys(_PerformanceManager2.EVENTS).forEach(event => _dataSources.Event.subscribe(event, handleEvent));
184
174
  return () => Object.keys(_PerformanceManager2.EVENTS).forEach(event => _dataSources.Event.unsubscribe(event, handleEvent));
185
175
  // eslint-disable-next-line react-hooks/exhaustive-deps
186
- }, [device, ready, store]);
176
+ }, [device, performance, store]);
187
177
  const executeEvent = function () {
188
178
  let {
189
179
  provider,
@@ -191,30 +181,38 @@ const PerformanceManager = () => {
191
181
  value,
192
182
  event
193
183
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
194
- const config = performance.find(_ref6 => {
184
+ let nextConsentMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : consentMode;
185
+ loadScripts(performance.filter(function () {
195
186
  let {
196
187
  type
197
- } = _ref6;
198
- return type === provider;
199
- });
200
- const response = callback({
201
- ...value,
202
- ...config,
203
- device,
204
- store
205
- });
206
- if (!response) return;
207
- const label = "\u26A1\uFE0F ".concat((0, _helpers.getPerformanceLabel)(provider), " ").concat(event);
208
- // eslint-disable-next-line no-console
209
- response.then ? response.then(value => console.log(label, value)) : console.log(label, response);
210
- if (provider === GTM) {
211
- loadScripts(performance.filter(function () {
188
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
189
+ return type === provider && type !== COMPARE;
190
+ }), nextConsentMode).then(() => {
191
+ const config = performance.find(_ref6 => {
212
192
  let {
213
193
  type
214
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
215
- return type === COMPARE;
216
- }), consentMode);
217
- }
194
+ } = _ref6;
195
+ return type === provider;
196
+ });
197
+ const response = callback({
198
+ ...value,
199
+ ...config,
200
+ device,
201
+ store
202
+ });
203
+ if (!response) return;
204
+ const label = "\u26A1\uFE0F ".concat((0, _helpers.getPerformanceLabel)(provider), " ").concat(event);
205
+ // eslint-disable-next-line no-console
206
+ response.then ? response.then(value => console.log(label, value)) : console.log(label, response);
207
+ if (provider === GTM) {
208
+ loadScripts(performance.filter(function () {
209
+ let {
210
+ type
211
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
212
+ return type === COMPARE;
213
+ }), nextConsentMode);
214
+ }
215
+ });
218
216
  };
219
217
  const loadScripts = async function () {
220
218
  let performance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -256,15 +254,9 @@ const PerformanceManager = () => {
256
254
  }));
257
255
  }
258
256
  });
259
- setReady(false);
260
- await Promise.all(scripts.map(config => (0, _helpers3.loadScript)(config).catch(() => {})));
261
- setTypes(scripts.map(function () {
262
- let {
263
- type
264
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
265
- return type;
266
- }));
267
- setReady(true);
257
+ for (let index = 0; index < scripts.length; index++) {
258
+ await (0, _helpers3.loadScript)(scripts[index]).catch(() => {});
259
+ }
268
260
  };
269
261
  return null;
270
262
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PerformanceManager.js","names":["_dataSources","require","_services","_ui","_react","_helpers","_PerformanceManager","_PerformanceManager2","_PerformanceManager3","_helpers2","_Core","_helpers3","MAX_COUNTER","COMPARE","GTM","PERFORMANCE","counter","memoizedEvents","memoizedPendingEvents","PerformanceManager","device","useDevice","track","trackRender","useMetrics","value","components","performance","store","useStore","consentMode","setConsentMode","useState","getConsentMode","ready","setReady","types","setTypes","hotel","finder","place","id","instanceId","locale","session","type","useEffect","window","Mirai","urlParameters","fetchUrlParams","location","search","metrics","ServiceFeatures","get","bannedMetrics","Object","entries","filter","_ref","map","_ref2","key","handleMetrics","_ref3","props","IS_PLAYWRIGHT","host","event","toUpperCase","trim","metric","split","includes","KPI_EVENTS","method","hotelId","mobile","Event","subscribe","COMPONENTS_EVENT","METRICS","unsubscribe","length","interval","setInterval","undefined","nextConsentMode","isGtm","provider","arguments","loadScripts","nextMemoizedPendingEvents","forEach","execute","CONSENT_MODE_ANSWERED","requeue","push","executeEvent","clearInterval","_getPerformance","config","isHotel","getPerformance","handleEvent","_ref4","currentConsentMode","availableProviders","CONSENT_MODE_REQUIRED","EVENTS","_ref5","propProvider","callback","parseInt","some","item","keys","find","_ref6","response","label","concat","getPerformanceLabel","then","console","log","propConsentMode","loadedComponents","scripts","instances","propInstances","init","once","SCRIPTS","index","domain","Promise","all","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, KPI_EVENTS } from './PerformanceManager.constants';\nimport { EVENTS } from './PerformanceManager.events';\nimport { SCRIPTS } from './PerformanceManager.scripts';\nimport { EVENT as COMPONENTS_EVENT } from '../../components/helpers';\nimport { PERFORMANCE } from '../../Core.constants';\nimport { fetchUrlParams, getPerformance, loadScript } from '../../helpers';\n\nconst MAX_COUNTER = 5;\nconst { COMPARE, GTM } = PERFORMANCE || {};\n\nlet counter = 0;\nlet memoizedEvents = [];\nlet memoizedPendingEvents = [];\n\nconst PerformanceManager = () => {\n const device = useDevice();\n const { track, trackRender } = useMetrics();\n const {\n value: { components = {}, performance = [], ...store },\n } = useStore();\n\n const [consentMode, setConsentMode] = useState(getConsentMode());\n const [ready, setReady] = useState(false);\n const [types, setTypes] = useState([]);\n\n const { hotel = {}, finder: { place } = {}, id: instanceId, locale, session, type } = store;\n\n useEffect(() => {\n //! TODO: temp fix for 123 compare for first phase\n window.Mirai.urlParameters = fetchUrlParams(location.search);\n\n const metrics = ServiceFeatures.get('metrics', hotel.id) || {};\n const bannedMetrics = Object.entries(metrics)\n .filter(([, value]) => value === false)\n .map(([key]) => key);\n\n const handleMetrics = ({ id, ...props }) => {\n if (!id || window.IS_PLAYWRIGHT || window.location.host === 'monalisa.mirai.com') return;\n const event = id.toUpperCase().trim();\n const [metric] = event.split(':');\n\n if (bannedMetrics.includes(metric) && !KPI_EVENTS.includes(event)) return;\n const method = event.includes('RENDER') ? trackRender : track;\n\n method(event, {\n ...props,\n hotelId: hotel.id,\n instanceId,\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 }, []);\n\n useEffect(() => {\n if (consentMode && types.length > 0) 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 await loadScripts(\n performance.filter(({ type } = {}) => type !== COMPARE),\n nextConsentMode,\n );\n\n const nextMemoizedPendingEvents = [];\n memoizedPendingEvents.forEach((event = {}) => {\n const { provider } = event;\n const execute = nextConsentMode || (counter >= MAX_COUNTER && CONSENT_MODE_ANSWERED.includes(provider));\n const requeue = nextConsentMode === undefined && !isGtm(provider);\n\n if (!execute || requeue) {\n nextMemoizedPendingEvents.push(event);\n } else {\n executeEvent(event);\n\n if (!nextConsentMode && !isGtm(provider)) 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 && ready)\n loadScripts(getPerformance(config, isHotel ? hotelId : undefined)?.filter(({ type } = {}) => type !== COMPARE));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n useEffect(() => {\n if (!ready) return;\n\n memoizedEvents.forEach((event) => executeEvent(event));\n memoizedEvents = [];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ready]);\n\n useEffect(() => {\n const handleEvent = ({ event, ...value }) => {\n const currentConsentMode = getConsentMode();\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 (\n !currentConsentMode &&\n (!availableProviders.includes(provider) || (types.length > 0 && !types.includes(provider)))\n ) {\n if (counter === undefined && ready && CONSENT_MODE_ANSWERED.includes(provider)) executeEvent(props);\n else if (!memoizedPendingEvents.some((item) => item.event === event && item.provider === provider)) {\n memoizedPendingEvents.push(props);\n }\n } else if (ready) executeEvent(props);\n else memoizedEvents.push(props);\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, ready, store]);\n\n const executeEvent = ({ provider, callback, value, event } = {}) => {\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 loadScripts(\n performance.filter(({ type } = {}) => type === COMPARE),\n consentMode,\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 = [] } = {}) => {\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, instanceId, loadedComponents, place }),\n type,\n })),\n );\n }\n });\n\n setReady(false);\n await Promise.all(scripts.map((config) => loadScript(config).catch(() => {})));\n setTypes(scripts.map(({ type } = {}) => type));\n setReady(true);\n };\n\n return null;\n};\n\nexport { PerformanceManager };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,GAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AAEA,MAAMW,WAAW,GAAG,CAAC;AACrB,MAAM;EAAEC,OAAO;EAAEC;AAAI,CAAC,GAAGC,iBAAW,IAAI,CAAC,CAAC;AAE1C,IAAIC,OAAO,GAAG,CAAC;AACf,IAAIC,cAAc,GAAG,EAAE;AACvB,IAAIC,qBAAqB,GAAG,EAAE;AAE9B,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EAC/B,MAAMC,MAAM,GAAG,IAAAC,aAAS,EAAC,CAAC;EAC1B,MAAM;IAAEC,KAAK;IAAEC;EAAY,CAAC,GAAG,IAAAC,uBAAU,EAAC,CAAC;EAC3C,MAAM;IACJC,KAAK,EAAE;MAAEC,UAAU,GAAG,CAAC,CAAC;MAAEC,WAAW,GAAG,EAAE;MAAE,GAAGC;IAAM;EACvD,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,IAAAC,uBAAc,EAAC,CAAC,CAAC;EAChE,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAH,eAAQ,EAAC,KAAK,CAAC;EACzC,MAAM,CAACI,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAL,eAAQ,EAAC,EAAE,CAAC;EAEtC,MAAM;IAAEM,KAAK,GAAG,CAAC,CAAC;IAAEC,MAAM,EAAE;MAAEC;IAAM,CAAC,GAAG,CAAC,CAAC;IAAEC,EAAE,EAAEC,UAAU;IAAEC,MAAM;IAAEC,OAAO;IAAEC;EAAK,CAAC,GAAGjB,KAAK;EAE3F,IAAAkB,gBAAS,EAAC,MAAM;IACd;IACAC,MAAM,CAACC,KAAK,CAACC,aAAa,GAAG,IAAAC,wBAAc,EAACC,QAAQ,CAACC,MAAM,CAAC;IAE5D,MAAMC,OAAO,GAAGC,yBAAe,CAACC,GAAG,CAAC,SAAS,EAAEjB,KAAK,CAACG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAMe,aAAa,GAAGC,MAAM,CAACC,OAAO,CAACL,OAAO,CAAC,CAC1CM,MAAM,CAACC,IAAA;MAAA,IAAC,GAAGnC,KAAK,CAAC,GAAAmC,IAAA;MAAA,OAAKnC,KAAK,KAAK,KAAK;IAAA,EAAC,CACtCoC,GAAG,CAACC,KAAA;MAAA,IAAC,CAACC,GAAG,CAAC,GAAAD,KAAA;MAAA,OAAKC,GAAG;IAAA,EAAC;IAEtB,MAAMC,aAAa,GAAGC,KAAA,IAAsB;MAAA,IAArB;QAAExB,EAAE;QAAE,GAAGyB;MAAM,CAAC,GAAAD,KAAA;MACrC,IAAI,CAACxB,EAAE,IAAIM,MAAM,CAACoB,aAAa,IAAIpB,MAAM,CAACI,QAAQ,CAACiB,IAAI,KAAK,oBAAoB,EAAE;MAClF,MAAMC,KAAK,GAAG5B,EAAE,CAAC6B,WAAW,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC;MACrC,MAAM,CAACC,MAAM,CAAC,GAAGH,KAAK,CAACI,KAAK,CAAC,GAAG,CAAC;MAEjC,IAAIjB,aAAa,CAACkB,QAAQ,CAACF,MAAM,CAAC,IAAI,CAACG,8BAAU,CAACD,QAAQ,CAACL,KAAK,CAAC,EAAE;MACnE,MAAMO,MAAM,GAAGP,KAAK,CAACK,QAAQ,CAAC,QAAQ,CAAC,GAAGnD,WAAW,GAAGD,KAAK;MAE7DsD,MAAM,CAACP,KAAK,EAAE;QACZ,GAAGH,KAAK;QACRW,OAAO,EAAEvC,KAAK,CAACG,EAAE;QACjBC,UAAU;QACVC,MAAM;QACNmC,MAAM,EAAE1D,MAAM,CAAC0D,MAAM;QACrBlC,OAAO;QACPC;MACF,CAAC,CAAC;IACJ,CAAC;IAEDkC,kBAAK,CAACC,SAAS,CAACC,eAAgB,CAACC,OAAO,EAAElB,aAAa,CAAC;IAExD,OAAO,MAAMe,kBAAK,CAACI,WAAW,CAACF,eAAgB,CAACC,OAAO,EAAElB,aAAa,CAAC;IACvE;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAlB,gBAAS,EAAC,MAAM;IACd,IAAIhB,WAAW,IAAIM,KAAK,CAACgD,MAAM,GAAG,CAAC,EAAE;IAErC,MAAMC,QAAQ,GAAGC,WAAW,CAAC,YAAY;MACvCtE,OAAO,KAAKuE,SAAS,IAAIvE,OAAO,EAAE;MAClC,MAAMwE,eAAe,GAAG,IAAAvD,uBAAc,EAACjB,OAAO,IAAIJ,WAAW,CAAC;MAC9D,MAAM6E,KAAK,GAAIC,QAAQ,IAAK,CAAC7E,OAAO,EAAEC,GAAG,CAAC,CAAC4D,QAAQ,CAACgB,QAAQ,CAAC;MAE7D,IACGF,eAAe,KAAKD,SAAS,IAC5BrE,qBAAqB,CAACyC,MAAM,CAAC;QAAA,IAAC;UAAE+B;QAAS,CAAC,GAAAC,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;QAAA,OAAKF,KAAK,CAACC,QAAQ,CAAC;MAAA,EAAC,CAACN,MAAM,KAAK,CAAC,IAClF,CAACI,eAAe,IAAIxE,OAAO,GAAGJ,WAAY,EAE3C;MAEF,MAAMgF,WAAW,CACfjE,WAAW,CAACgC,MAAM,CAAC;QAAA,IAAC;UAAEd;QAAK,CAAC,GAAA8C,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;QAAA,OAAK9C,IAAI,KAAKhC,OAAO;MAAA,EAAC,EACvD2E,eACF,CAAC;MAED,MAAMK,yBAAyB,GAAG,EAAE;MACpC3E,qBAAqB,CAAC4E,OAAO,CAAC,YAAgB;QAAA,IAAfzB,KAAK,GAAAsB,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;QACvC,MAAM;UAAED;QAAS,CAAC,GAAGrB,KAAK;QAC1B,MAAM0B,OAAO,GAAGP,eAAe,IAAKxE,OAAO,IAAIJ,WAAW,IAAIoF,yCAAqB,CAACtB,QAAQ,CAACgB,QAAQ,CAAE;QACvG,MAAMO,OAAO,GAAGT,eAAe,KAAKD,SAAS,IAAI,CAACE,KAAK,CAACC,QAAQ,CAAC;QAEjE,IAAI,CAACK,OAAO,IAAIE,OAAO,EAAE;UACvBJ,yBAAyB,CAACK,IAAI,CAAC7B,KAAK,CAAC;QACvC,CAAC,MAAM;UACL8B,YAAY,CAAC9B,KAAK,CAAC;UAEnB,IAAI,CAACmB,eAAe,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAC,EAAEG,yBAAyB,CAACK,IAAI,CAAC7B,KAAK,CAAC;QACjF;MACF,CAAC,CAAC;MACFnD,qBAAqB,GAAG2E,yBAAyB;MACjD,IAAIL,eAAe,KAAKD,SAAS,EAAE;QACjCvE,OAAO,GAAGuE,SAAS;QACnBxD,cAAc,CAACyD,eAAe,CAAC;MACjC;IACF,CAAC,EAAE,IAAI,CAAC;IAER,OAAO,MAAMY,aAAa,CAACf,QAAQ,CAAC;IACpC;EACF,CAAC,EAAE,CAACvD,WAAW,CAAC,CAAC;EAEjB,IAAAgB,gBAAS,EAAC,MAAM;IAAA,IAAAuD,eAAA;IACd,MAAM;MAAEC,MAAM;MAAE/D,MAAM,EAAE;QAAEC,KAAK,EAAE;UAAEC,EAAE,EAAE,CAACoC,OAAO,CAAC,GAAG,EAAE;UAAE0B;QAAQ,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAG3E,KAAK;IAEtF,IAAIY,KAAK,IAAIN,KAAK,EAChB0D,WAAW,EAAAS,eAAA,GAAC,IAAAG,wBAAc,EAACF,MAAM,EAAEC,OAAO,GAAG1B,OAAO,GAAGU,SAAS,CAAC,cAAAc,eAAA,uBAArDA,eAAA,CAAuD1C,MAAM,CAAC;MAAA,IAAC;QAAEd;MAAK,CAAC,GAAA8C,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;MAAA,OAAK9C,IAAI,KAAKhC,OAAO;IAAA,EAAC,CAAC;IACjH;EACF,CAAC,EAAE,CAAC2B,KAAK,CAAC,CAAC;EAEX,IAAAM,gBAAS,EAAC,MAAM;IACd,IAAI,CAACZ,KAAK,EAAE;IAEZjB,cAAc,CAAC6E,OAAO,CAAEzB,KAAK,IAAK8B,YAAY,CAAC9B,KAAK,CAAC,CAAC;IACtDpD,cAAc,GAAG,EAAE;IACnB;EACF,CAAC,EAAE,CAACiB,KAAK,CAAC,CAAC;EAEX,IAAAY,gBAAS,EAAC,MAAM;IACd,MAAM2D,WAAW,GAAGC,KAAA,IAAyB;MAAA,IAAxB;QAAErC,KAAK;QAAE,GAAG5C;MAAM,CAAC,GAAAiF,KAAA;MACtC,MAAMC,kBAAkB,GAAG,IAAA1E,uBAAc,EAAC,CAAC;MAE3C,MAAM2E,kBAAkB,GAAGjF,WAAW,CACnCkC,GAAG,CAAC;QAAA,IAAC;UAAEhB;QAAK,CAAC,GAAA8C,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;QAAA,OAAK9C,IAAI;MAAA,EAAC,CAC5Bc,MAAM,CAAEd,IAAI,IAAK,EAAE,CAAC8D,kBAAkB,IAAIX,yCAAqB,CAACtB,QAAQ,CAAC7B,IAAI,CAAC,CAAC,CAAC,CAChFc,MAAM,CAAEd,IAAI,IAAK8D,kBAAkB,IAAI,CAACE,yCAAqB,CAACnC,QAAQ,CAAC7B,IAAI,CAAC,CAAC;MAEhFY,MAAM,CAACC,OAAO,CAACoD,2BAAM,CAACzC,KAAK,CAAC,CAAC,CAACyB,OAAO,CAACiB,KAAA,IAAyC;QAAA,IAAxC,CAACC,YAAY,EAAEC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC,CAAC,GAAAF,KAAA;QACxE,MAAMrB,QAAQ,GAAGwB,QAAQ,CAACF,YAAY,CAAC;QACvC,MAAM9C,KAAK,GAAG;UAAE+C,QAAQ;UAAE5C,KAAK;UAAEqB,QAAQ;UAAEjE;QAAM,CAAC;QAElD,IACE,CAACkF,kBAAkB,KAClB,CAACC,kBAAkB,CAAClC,QAAQ,CAACgB,QAAQ,CAAC,IAAKtD,KAAK,CAACgD,MAAM,GAAG,CAAC,IAAI,CAAChD,KAAK,CAACsC,QAAQ,CAACgB,QAAQ,CAAE,CAAC,EAC3F;UACA,IAAI1E,OAAO,KAAKuE,SAAS,IAAIrD,KAAK,IAAI8D,yCAAqB,CAACtB,QAAQ,CAACgB,QAAQ,CAAC,EAAES,YAAY,CAACjC,KAAK,CAAC,CAAC,KAC/F,IAAI,CAAChD,qBAAqB,CAACiG,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAAC/C,KAAK,KAAKA,KAAK,IAAI+C,IAAI,CAAC1B,QAAQ,KAAKA,QAAQ,CAAC,EAAE;YAClGxE,qBAAqB,CAACgF,IAAI,CAAChC,KAAK,CAAC;UACnC;QACF,CAAC,MAAM,IAAIhC,KAAK,EAAEiE,YAAY,CAACjC,KAAK,CAAC,CAAC,KACjCjD,cAAc,CAACiF,IAAI,CAAChC,KAAK,CAAC;MACjC,CAAC,CAAC;IACJ,CAAC;IAEDT,MAAM,CAAC4D,IAAI,CAACP,2BAAM,CAAC,CAAChB,OAAO,CAAEzB,KAAK,IAAKU,kBAAK,CAACC,SAAS,CAACX,KAAK,EAAEoC,WAAW,CAAC,CAAC;IAE3E,OAAO,MAAMhD,MAAM,CAAC4D,IAAI,CAACP,2BAAM,CAAC,CAAChB,OAAO,CAAEzB,KAAK,IAAKU,kBAAK,CAACI,WAAW,CAACd,KAAK,EAAEoC,WAAW,CAAC,CAAC;IAC1F;EACF,CAAC,EAAE,CAACrF,MAAM,EAAEc,KAAK,EAAEN,KAAK,CAAC,CAAC;EAE1B,MAAMuE,YAAY,GAAG,SAAAA,CAAA,EAA+C;IAAA,IAA9C;MAAET,QAAQ;MAAEuB,QAAQ;MAAExF,KAAK;MAAE4C;IAAM,CAAC,GAAAsB,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;IAC7D,MAAMW,MAAM,GAAG3E,WAAW,CAAC2F,IAAI,CAACC,KAAA;MAAA,IAAC;QAAE1E;MAAK,CAAC,GAAA0E,KAAA;MAAA,OAAK1E,IAAI,KAAK6C,QAAQ;IAAA,EAAC;IAChE,MAAM8B,QAAQ,GAAGP,QAAQ,CAAC;MAAE,GAAGxF,KAAK;MAAE,GAAG6E,MAAM;MAAElF,MAAM;MAAEQ;IAAM,CAAC,CAAC;IACjE,IAAI,CAAC4F,QAAQ,EAAE;IAEf,MAAMC,KAAK,mBAAAC,MAAA,CAAS,IAAAC,4BAAmB,EAACjC,QAAQ,CAAC,OAAAgC,MAAA,CAAIrD,KAAK,CAAE;IAC5D;IACAmD,QAAQ,CAACI,IAAI,GAAGJ,QAAQ,CAACI,IAAI,CAAEnG,KAAK,IAAKoG,OAAO,CAACC,GAAG,CAACL,KAAK,EAAEhG,KAAK,CAAC,CAAC,GAAGoG,OAAO,CAACC,GAAG,CAACL,KAAK,EAAED,QAAQ,CAAC;IAElG,IAAI9B,QAAQ,KAAK5E,GAAG,EAAE;MACpB8E,WAAW,CACTjE,WAAW,CAACgC,MAAM,CAAC;QAAA,IAAC;UAAEd;QAAK,CAAC,GAAA8C,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;QAAA,OAAK9C,IAAI,KAAKhC,OAAO;MAAA,EAAC,EACvDiB,WACF,CAAC;IACH;EACF,CAAC;EAED,MAAM8D,WAAW,GAAG,eAAAA,CAAA,EAA2D;IAAA,IAApDjE,WAAW,GAAAgE,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,EAAE;IAAA,IAAEoC,eAAe,GAAApC,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG7D,WAAW;IACxE,MAAMkG,gBAAgB,GAAGvE,MAAM,CAAC4D,IAAI,CAAC3F,UAAU,CAAC;IAEhD,MAAMuG,OAAO,GAAG,EAAE;IAClBtG,WAAW,CACRgC,MAAM,CAAC;MAAA,IAAC;QAAEd;MAAK,CAAC,GAAA8C,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;MAAA,OAAKoC,eAAe,KAAK,IAAI,IAAI,CAAClB,yCAAqB,CAACnC,QAAQ,CAAC7B,IAAI,CAAC;IAAA,EAAC,CAC5FiD,OAAO,CAAC,YAAkD;MAAA,IAAjD;QAAEjD,IAAI;QAAEqF,SAAS,EAAEC,aAAa,GAAG;MAAG,CAAC,GAAAxC,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;MACpD,MAAM;QAAEjE,UAAU,GAAG,EAAE;QAAE0G,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;QAAEC,IAAI,GAAG;MAAM,CAAC,GAAGC,4BAAO,CAACzF,IAAI,CAAC,IAAI,CAAC,CAAC;MAE9E,IAAInB,UAAU,CAAC0D,MAAM,KAAK,CAAC,IAAI1D,UAAU,CAACyF,IAAI,CAAEC,IAAI,IAAKY,gBAAgB,CAACtD,QAAQ,CAAC0C,IAAI,CAAC,CAAC,EAAE;QACzF,MAAMc,SAAS,GAAGG,IAAI,GAAG,CAACF,aAAa,CAAC,CAAC,CAAC,CAAC,GAAGA,aAAa;QAC3DF,OAAO,CAAC/B,IAAI,CACV,GAAGgC,SAAS,CAACrE,GAAG,CAAC;UAAA,IAACyC,MAAM,GAAAX,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;UAAA,IAAE4C,KAAK,GAAA5C,SAAA,CAAAP,MAAA,OAAAO,SAAA,MAAAJ,SAAA;UAAA,OAAM;YACxCiD,MAAM,iBAAAd,MAAA,CAAiB,IAAAC,4BAAmB,EAAC9E,IAAI,CAAC,CAAE;YAClDJ,EAAE,EAAE8F,KAAK,GAAG,CAAC;YACb,GAAGH,IAAI,CAAC;cAAE,GAAG9B,MAAM;cAAEhE,KAAK;cAAEI,UAAU;cAAEsF,gBAAgB;cAAExF;YAAM,CAAC,CAAC;YAClEK;UACF,CAAC;QAAA,CAAC,CACJ,CAAC;MACH;IACF,CAAC,CAAC;IAEJV,QAAQ,CAAC,KAAK,CAAC;IACf,MAAMsG,OAAO,CAACC,GAAG,CAACT,OAAO,CAACpE,GAAG,CAAEyC,MAAM,IAAK,IAAAqC,oBAAU,EAACrC,MAAM,CAAC,CAACsC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9EvG,QAAQ,CAAC4F,OAAO,CAACpE,GAAG,CAAC;MAAA,IAAC;QAAEhB;MAAK,CAAC,GAAA8C,SAAA,CAAAP,MAAA,QAAAO,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;MAAA,OAAK9C,IAAI;IAAA,EAAC,CAAC;IAC9CV,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC;EAED,OAAO,IAAI;AACb,CAAC;AAAC0G,OAAA,CAAA1H,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"file":"PerformanceManager.js","names":["_dataSources","require","_services","_ui","_react","_helpers","_PerformanceManager","_PerformanceManager2","_PerformanceManager3","_helpers2","_Core","_helpers3","MAX_COUNTER","COMPARE","GTM","PERFORMANCE","counter","memoizedPendingEvents","PerformanceManager","device","useDevice","track","trackRender","useMetrics","value","components","performance","storePerformance","store","useStore","consentMode","setConsentMode","useState","getConsentMode","setPerformance","hotel","finder","place","id","instanceId","locale","session","type","useEffect","window","Mirai","urlParameters","fetchUrlParams","location","search","metrics","ServiceFeatures","get","bannedMetrics","Object","entries","filter","_ref","map","_ref2","key","handleMetrics","_ref3","props","IS_PLAYWRIGHT","host","event","toUpperCase","trim","metric","split","includes","KPI_EVENTS","method","hotelId","mobile","Event","subscribe","COMPONENTS_EVENT","METRICS","unsubscribe","interval","setInterval","undefined","nextConsentMode","isGtm","provider","arguments","length","nextMemoizedPendingEvents","forEach","execute","CONSENT_MODE_ANSWERED","requeue","push","executeEvent","clearInterval","config","isHotel","_getPerformance","getPerformance","handleEvent","_ref4","currentConsentMode","availableProviders","CONSENT_MODE_REQUIRED","EVENTS","_ref5","propProvider","callback","parseInt","some","item","keys","loadScripts","then","find","_ref6","response","label","concat","getPerformanceLabel","console","log","propConsentMode","loadedComponents","scripts","instances","propInstances","init","once","SCRIPTS","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, KPI_EVENTS } from './PerformanceManager.constants';\nimport { EVENTS } from './PerformanceManager.events';\nimport { SCRIPTS } from './PerformanceManager.scripts';\nimport { EVENT as COMPONENTS_EVENT } from '../../components/helpers';\nimport { PERFORMANCE } from '../../Core.constants';\nimport { fetchUrlParams, getPerformance, loadScript } from '../../helpers';\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, trackRender } = useMetrics();\n const {\n value: { components = {}, performance: storePerformance = [], ...store },\n } = useStore();\n\n const [consentMode, setConsentMode] = useState(getConsentMode());\n const [performance, setPerformance] = useState(storePerformance);\n\n const { hotel = {}, finder: { place } = {}, id: instanceId, locale, session, type } = store;\n\n useEffect(() => {\n //! TODO: temp fix for 123 compare for first phase\n window.Mirai.urlParameters = fetchUrlParams(location.search);\n\n const metrics = ServiceFeatures.get('metrics', hotel.id) || {};\n const bannedMetrics = Object.entries(metrics)\n .filter(([, value]) => value === false)\n .map(([key]) => key);\n\n const handleMetrics = ({ id, ...props }) => {\n if (!id || window.IS_PLAYWRIGHT || window.location.host === 'monalisa.mirai.com') return;\n const event = id.toUpperCase().trim();\n const [metric] = event.split(':');\n\n if (bannedMetrics.includes(metric) && !KPI_EVENTS.includes(event)) return;\n const method = event.includes('RENDER') ? trackRender : track;\n\n method(event, {\n ...props,\n hotelId: hotel.id,\n instanceId,\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 }, []);\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 = nextConsentMode || (counter >= MAX_COUNTER && CONSENT_MODE_ANSWERED.includes(provider));\n const requeue = nextConsentMode === undefined && !isGtm(provider);\n\n if (!execute || requeue) {\n nextMemoizedPendingEvents.push(event);\n } else {\n executeEvent(event, nextConsentMode);\n\n if (!nextConsentMode && !isGtm(provider)) 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(\n getPerformance(config, isHotel ? hotelId : undefined)?.filter(({ type } = {}) => type !== COMPARE),\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n useEffect(() => {\n const handleEvent = ({ event, ...value }) => {\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);\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 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 = [] } = {}) => {\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, instanceId, 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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"}
@@ -24,7 +24,7 @@ const loadSentry = (dsn, release) => {
24
24
  stack = ''
25
25
  } = {}
26
26
  } = hint || {};
27
- if (message === "Cannot read properties of null (reading 'style')" && stack !== null && stack !== void 0 && stack.includes('HTMLLIElement.changeBackground')) {
27
+ if (message === "Cannot read properties of null (reading 'style')" && stack !== null && stack !== void 0 && stack.includes('HTMLLIElement.changeBackground') || stack !== null && stack !== void 0 && stack.includes('flickity')) {
28
28
  return null;
29
29
  }
30
30
  }
@@ -32,7 +32,7 @@ const loadSentry = (dsn, release) => {
32
32
  },
33
33
  dsn,
34
34
  release,
35
- ignoreErrors: [/^Object captured as exception with keys: code, message$/, /^null is not an object (evaluating 'document.getElementById("cartAbandonment123_send_mail_offer_button").click')$/, /^Java exception was raised during method invocation$/, /^a.target.className.includes is not a function$/, /^undefined is not an object (evaluating 'window.webkit.messageHandlers')$/, /^Java bridge method invocation error$/],
35
+ ignoreErrors: [/^Object captured as exception with keys: code, message$/, /^Object captured as exception with keys: code, message, payload$/, /^null is not an object (evaluating 'document.getElementById("cartAbandonment123_send_mail_offer_button").click')$/, /^Java exception was raised during method invocation$/, /^a.target.className.includes is not a function$/, /^undefined is not an object (evaluating 'window.webkit.messageHandlers')$/, /^Java bridge method invocation error$/, /^a.target.parentNode.parentNode.className.includes is not a function$/, /^undefined is not an object (evaluating 'window.webkit.messageHandlers.print.postMessage')$/, /^undefined is not an object (evaluating 'content.replace')$/, /^Cannot read properties of null (reading 'style')$/],
36
36
  integrations: [new Sentry.Replay({
37
37
  networkDetailAllowUrls: /mirai/g
38
38
  }), new Sentry.GlobalHandlers({
@@ -1 +1 @@
1
- {"version":3,"file":"loadSentry.js","names":["Sentry","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","loadSentry","dsn","release","init","allowUrls","beforeSend","event","hint","console","log","originalException","message","stack","includes","ignoreErrors","integrations","Replay","networkDetailAllowUrls","GlobalHandlers","onerror","onunhandledrejection","tracesSampleRate","replaysSessionSampleRate","replaysOnErrorSampleRate","exports"],"sources":["../../src/helpers/loadSentry.js"],"sourcesContent":["import * as Sentry from '@sentry/react';\n\nexport const loadSentry = (dsn, release) => {\n if (!dsn || !release) return;\n\n Sentry.init({\n allowUrls: [/https?:\\/\\/((static)\\.)?mirai\\.com/],\n beforeSend(event, hint) {\n // eslint-disable-next-line no-console\n console.log({ event, hint });\n\n if (hint !== null) {\n const { originalException: { message = '', stack = '' } = {} } = hint || {};\n if (\n message === `Cannot read properties of null (reading 'style')` &&\n stack?.includes('HTMLLIElement.changeBackground')\n ) {\n return null;\n }\n }\n return event;\n },\n dsn,\n release,\n ignoreErrors: [\n /^Object captured as exception with keys: code, message$/,\n /^null is not an object (evaluating 'document.getElementById(\"cartAbandonment123_send_mail_offer_button\").click')$/,\n /^Java exception was raised during method invocation$/,\n /^a.target.className.includes is not a function$/,\n /^undefined is not an object (evaluating 'window.webkit.messageHandlers')$/,\n /^Java bridge method invocation error$/,\n ],\n integrations: [\n new Sentry.Replay({ networkDetailAllowUrls: /mirai/g }),\n new Sentry.GlobalHandlers({ onerror: false, onunhandledrejection: false }),\n ],\n tracesSampleRate: 0.1, // Capture 100% of the transactions, reduce in production!\n replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production.\n replaysOnErrorSampleRate: 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur.\n });\n\n return Sentry;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAwC,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEjC,MAAMY,UAAU,GAAGA,CAACC,GAAG,EAAEC,OAAO,KAAK;EAC1C,IAAI,CAACD,GAAG,IAAI,CAACC,OAAO,EAAE;EAEtB1B,MAAM,CAAC2B,IAAI,CAAC;IACVC,SAAS,EAAE,CAAC,oCAAoC,CAAC;IACjDC,UAAUA,CAACC,KAAK,EAAEC,IAAI,EAAE;MACtB;MACAC,OAAO,CAACC,GAAG,CAAC;QAAEH,KAAK;QAAEC;MAAK,CAAC,CAAC;MAE5B,IAAIA,IAAI,KAAK,IAAI,EAAE;QACjB,MAAM;UAAEG,iBAAiB,EAAE;YAAEC,OAAO,GAAG,EAAE;YAAEC,KAAK,GAAG;UAAG,CAAC,GAAG,CAAC;QAAE,CAAC,GAAGL,IAAI,IAAI,CAAC,CAAC;QAC3E,IACEI,OAAO,uDAAuD,IAC9DC,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEC,QAAQ,CAAC,gCAAgC,CAAC,EACjD;UACA,OAAO,IAAI;QACb;MACF;MACA,OAAOP,KAAK;IACd,CAAC;IACDL,GAAG;IACHC,OAAO;IACPY,YAAY,EAAE,CACZ,yDAAyD,EACzD,mHAAmH,EACnH,sDAAsD,EACtD,iDAAiD,EACjD,2EAA2E,EAC3E,uCAAuC,CACxC;IACDC,YAAY,EAAE,CACZ,IAAIvC,MAAM,CAACwC,MAAM,CAAC;MAAEC,sBAAsB,EAAE;IAAS,CAAC,CAAC,EACvD,IAAIzC,MAAM,CAAC0C,cAAc,CAAC;MAAEC,OAAO,EAAE,KAAK;MAAEC,oBAAoB,EAAE;IAAM,CAAC,CAAC,CAC3E;IACDC,gBAAgB,EAAE,GAAG;IAAE;IACvBC,wBAAwB,EAAE,GAAG;IAAE;IAC/BC,wBAAwB,EAAE,GAAG,CAAE;EACjC,CAAC,CAAC;EAEF,OAAO/C,MAAM;AACf,CAAC;AAACgD,OAAA,CAAAxB,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"file":"loadSentry.js","names":["Sentry","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","loadSentry","dsn","release","init","allowUrls","beforeSend","event","hint","console","log","originalException","message","stack","includes","ignoreErrors","integrations","Replay","networkDetailAllowUrls","GlobalHandlers","onerror","onunhandledrejection","tracesSampleRate","replaysSessionSampleRate","replaysOnErrorSampleRate","exports"],"sources":["../../src/helpers/loadSentry.js"],"sourcesContent":["import * as Sentry from '@sentry/react';\n\nexport const loadSentry = (dsn, release) => {\n if (!dsn || !release) return;\n\n Sentry.init({\n allowUrls: [/https?:\\/\\/((static)\\.)?mirai\\.com/],\n beforeSend(event, hint) {\n // eslint-disable-next-line no-console\n console.log({ event, hint });\n\n if (hint !== null) {\n const { originalException: { message = '', stack = '' } = {} } = hint || {};\n if (\n (message === `Cannot read properties of null (reading 'style')` &&\n stack?.includes('HTMLLIElement.changeBackground')) ||\n stack?.includes('flickity')\n ) {\n return null;\n }\n }\n return event;\n },\n dsn,\n release,\n ignoreErrors: [\n /^Object captured as exception with keys: code, message$/,\n /^Object captured as exception with keys: code, message, payload$/,\n /^null is not an object (evaluating 'document.getElementById(\"cartAbandonment123_send_mail_offer_button\").click')$/,\n /^Java exception was raised during method invocation$/,\n /^a.target.className.includes is not a function$/,\n /^undefined is not an object (evaluating 'window.webkit.messageHandlers')$/,\n /^Java bridge method invocation error$/,\n /^a.target.parentNode.parentNode.className.includes is not a function$/,\n /^undefined is not an object (evaluating 'window.webkit.messageHandlers.print.postMessage')$/,\n /^undefined is not an object (evaluating 'content.replace')$/,\n /^Cannot read properties of null (reading 'style')$/,\n ],\n integrations: [\n new Sentry.Replay({ networkDetailAllowUrls: /mirai/g }),\n new Sentry.GlobalHandlers({ onerror: false, onunhandledrejection: false }),\n ],\n tracesSampleRate: 0.1, // Capture 100% of the transactions, reduce in production!\n replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production.\n replaysOnErrorSampleRate: 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur.\n });\n\n return Sentry;\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.4.289",
3
+ "version": "0.4.291",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",