@mirai/core 0.4.12 → 0.4.13

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.
@@ -15,6 +15,7 @@ var _PerformanceManager3 = require("./PerformanceManager.scripts");
15
15
  var _helpers2 = require("../../components/helpers");
16
16
  var _Core = require("../../Core.constants");
17
17
  var _helpers3 = require("../../helpers");
18
+ let memoizedEvents = [];
18
19
  const PerformanceManager = () => {
19
20
  const device = (0, _ui.useDevice)();
20
21
  const {
@@ -30,7 +31,6 @@ const PerformanceManager = () => {
30
31
  } = (0, _dataSources.useStore)();
31
32
  const [consentMode, setConsentMode] = (0, _react.useState)((0, _helpers.getConsentMode)());
32
33
  const [ready, setReady] = (0, _react.useState)(false);
33
- const eventsRef = (0, _react.useRef)([]);
34
34
  const {
35
35
  hotel,
36
36
  finder: {
@@ -78,16 +78,12 @@ const PerformanceManager = () => {
78
78
  if (consentMode) return;
79
79
  const interval = setInterval(() => {
80
80
  const nextConsentMode = (0, _helpers.getConsentMode)();
81
- if (nextConsentMode !== undefined) {
82
- if (nextConsentMode) {
83
- var _eventsRef$current;
84
- clearInterval(interval);
85
- loadScripts(performance, nextConsentMode);
86
- eventsRef === null || eventsRef === void 0 ? void 0 : (_eventsRef$current = eventsRef.current) === null || _eventsRef$current === void 0 ? void 0 : _eventsRef$current.forEach(event => executeEvent(event));
87
- eventsRef.current = [];
88
- }
89
- setConsentMode(nextConsentMode);
90
- }
81
+ if (!nextConsentMode) return;
82
+ clearInterval(interval);
83
+ loadScripts(performance, nextConsentMode);
84
+ memoizedEvents.forEach(event => executeEvent(event));
85
+ memoizedEvents = [];
86
+ setConsentMode(nextConsentMode);
91
87
  }, 1000);
92
88
  return () => clearInterval(interval);
93
89
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -130,38 +126,38 @@ const PerformanceManager = () => {
130
126
  }).filter(type => consentMode === true || !_PerformanceManager.CONSENT_MODE_REQUIRED.includes(type));
131
127
  Object.entries(_PerformanceManager2.EVENTS[event]).forEach(_ref5 => {
132
128
  let [provider, callback = () => {}] = _ref5;
133
- const data = {
129
+ const props = {
134
130
  callback,
135
131
  event,
136
132
  provider,
137
133
  value
138
134
  };
139
135
  if (!availableProviders.includes(parseInt(provider))) {
140
- var _eventsRef$current2;
141
- eventsRef === null || eventsRef === void 0 ? void 0 : (_eventsRef$current2 = eventsRef.current) === null || _eventsRef$current2 === void 0 ? void 0 : _eventsRef$current2.push(data);
136
+ memoizedEvents.push(props);
142
137
  return;
143
138
  }
144
- executeEvent(data);
139
+ if (!consentMode) memoizedEvents.push(props);
140
+ executeEvent(props);
145
141
  });
146
142
  };
147
143
  Object.keys(_PerformanceManager2.EVENTS).forEach(event => _dataSources.Event.subscribe(event, handleEvent));
148
144
  return () => Object.keys(_PerformanceManager2.EVENTS).forEach(event => _dataSources.Event.unsubscribe(event, handleEvent));
149
145
  // eslint-disable-next-line react-hooks/exhaustive-deps
150
146
  }, [consentMode, device, ready, store]);
151
- const executeEvent = _ref6 => {
147
+ const executeEvent = function () {
152
148
  let {
153
149
  provider,
154
150
  callback,
155
151
  value,
156
152
  event
157
- } = _ref6;
158
- const config = performance.find(_ref7 => {
153
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
154
+ const config = performance.find(_ref6 => {
159
155
  let {
160
156
  type
161
- } = _ref7;
157
+ } = _ref6;
162
158
  return type === parseInt(provider);
163
159
  });
164
- const data = callback({
160
+ const response = callback({
165
161
  ...value,
166
162
  ...config,
167
163
  device,
@@ -169,7 +165,7 @@ const PerformanceManager = () => {
169
165
  });
170
166
  const label = "\u26A1\uFE0F ".concat((0, _helpers.getPerformanceLabel)(provider), " ").concat(event);
171
167
  // eslint-disable-next-line no-console
172
- data.then ? data.then(value => console.log(label, value)) : console.log(label, data);
168
+ response.then ? response.then(value => console.log(label, value)) : console.log(label, response);
173
169
  };
174
170
  const loadScripts = async function () {
175
171
  let performance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -1 +1 @@
1
- {"version":3,"file":"PerformanceManager.js","names":["_dataSources","require","_services","_ui","_react","_helpers","_PerformanceManager","_PerformanceManager2","_PerformanceManager3","_helpers2","_Core","_helpers3","PerformanceManager","device","useDevice","track","trackRender","useMetrics","value","components","performance","store","useStore","consentMode","setConsentMode","useState","getConsentMode","ready","setReady","eventsRef","useRef","hotel","finder","place","id","instanceId","locale","session","type","useEffect","metrics","ServiceFeatures","get","bannedMetrics","Object","entries","filter","_ref","map","_ref2","key","handleMetrics","_ref3","props","window","IS_PLAYWRIGHT","location","host","event","toUpperCase","trim","metric","split","includes","KPI_EVENTS","method","hotelId","mobile","Event","subscribe","COMPONENTS_EVENT","METRICS","unsubscribe","interval","setInterval","nextConsentMode","undefined","_eventsRef$current","clearInterval","loadScripts","current","forEach","executeEvent","handleEvent","EVENT","CORE_READY","config","isHotel","getPerformance","setTimeout","publish","PERFORMANCE_READY","_ref4","availableProviders","arguments","length","CONSENT_MODE_REQUIRED","EVENTS","_ref5","provider","callback","data","parseInt","_eventsRef$current2","push","keys","_ref6","find","_ref7","label","concat","getPerformanceLabel","then","console","log","propConsentMode","loadedComponents","scripts","instances","propInstances","init","once","SCRIPTS","some","item","index","domain","Promise","all","loadScript","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, useRef, useState } from 'react';\n\nimport { getConsentMode, getPerformanceLabel } from './helpers';\nimport { 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 { EVENT } from '../../Core.constants';\nimport { getPerformance, loadScript } from '../../helpers';\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\n const eventsRef = useRef([]);\n\n const { hotel, finder: { place } = {}, id: instanceId, locale, session, type } = store;\n\n useEffect(() => {\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(() => {\n const nextConsentMode = getConsentMode();\n\n if (nextConsentMode !== undefined) {\n if (nextConsentMode) {\n clearInterval(interval);\n loadScripts(performance, nextConsentMode);\n eventsRef?.current?.forEach((event) => executeEvent(event));\n eventsRef.current = [];\n }\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 handleEvent = () => loadScripts(performance);\n\n Event.subscribe(EVENT.CORE_READY, handleEvent);\n\n return () => Event.unsubscribe(EVENT.CORE_READY, handleEvent);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [performance]);\n\n useEffect(() => {\n const {\n config,\n finder: { place: { id: [hotelId] = [], isHotel } = {} },\n } = store;\n\n if (place && ready) loadScripts(getPerformance(config, isHotel ? hotelId : undefined));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n useEffect(() => {\n // ! TODO: why we should delay the event...\n if (ready) setTimeout(() => Event.publish(EVENT.PERFORMANCE_READY, 10));\n }, [ready]);\n\n useEffect(() => {\n if (!ready) return;\n\n const handleEvent = ({ event, ...value }) => {\n const availableProviders = performance\n .map(({ type } = {}) => type)\n .filter((type) => consentMode === true || !CONSENT_MODE_REQUIRED.includes(type));\n\n Object.entries(EVENTS[event]).forEach(([provider, callback = () => {}]) => {\n const data = { callback, event, provider, value };\n if (!availableProviders.includes(parseInt(provider))) {\n eventsRef?.current?.push(data);\n\n return;\n }\n\n executeEvent(data);\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 }, [consentMode, device, ready, store]);\n\n const executeEvent = ({ provider, callback, value, event }) => {\n const config = performance.find(({ type }) => type === parseInt(provider));\n const data = callback({ ...value, ...config, device, store });\n\n const label = `⚡️ ${getPerformanceLabel(provider)} ${event}`;\n // eslint-disable-next-line no-console\n data.then ? data.then((value) => console.log(label, value)) : console.log(label, data);\n };\n\n const loadScripts = async (performance = [], propConsentMode = consentMode) => {\n const loadedComponents = Object.keys(components);\n\n // ! TODO: Load all instances scripts or just the first one.\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, loadedComponents }),\n })),\n );\n }\n });\n setReady(false);\n\n await Promise.all(scripts.map((config) => loadScript(config)));\n\n setReady(true);\n };\n\n return null;\n};\n\nexport { PerformanceManager };\n"],"mappings":"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"}
1
+ {"version":3,"file":"PerformanceManager.js","names":["_dataSources","require","_services","_ui","_react","_helpers","_PerformanceManager","_PerformanceManager2","_PerformanceManager3","_helpers2","_Core","_helpers3","memoizedEvents","PerformanceManager","device","useDevice","track","trackRender","useMetrics","value","components","performance","store","useStore","consentMode","setConsentMode","useState","getConsentMode","ready","setReady","hotel","finder","place","id","instanceId","locale","session","type","useEffect","metrics","ServiceFeatures","get","bannedMetrics","Object","entries","filter","_ref","map","_ref2","key","handleMetrics","_ref3","props","window","IS_PLAYWRIGHT","location","host","event","toUpperCase","trim","metric","split","includes","KPI_EVENTS","method","hotelId","mobile","Event","subscribe","COMPONENTS_EVENT","METRICS","unsubscribe","interval","setInterval","nextConsentMode","clearInterval","loadScripts","forEach","executeEvent","handleEvent","EVENT","CORE_READY","config","isHotel","getPerformance","undefined","setTimeout","publish","PERFORMANCE_READY","_ref4","availableProviders","arguments","length","CONSENT_MODE_REQUIRED","EVENTS","_ref5","provider","callback","parseInt","push","keys","find","_ref6","response","label","concat","getPerformanceLabel","then","console","log","propConsentMode","loadedComponents","scripts","instances","propInstances","init","once","SCRIPTS","some","item","index","domain","Promise","all","loadScript","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_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 { EVENT } from '../../Core.constants';\nimport { getPerformance, loadScript } from '../../helpers';\n\nlet memoizedEvents = [];\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\n const { hotel, finder: { place } = {}, id: instanceId, locale, session, type } = store;\n\n useEffect(() => {\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(() => {\n const nextConsentMode = getConsentMode();\n if (!nextConsentMode) return;\n\n clearInterval(interval);\n loadScripts(performance, nextConsentMode);\n memoizedEvents.forEach((event) => executeEvent(event));\n memoizedEvents = [];\n setConsentMode(nextConsentMode);\n }, 1000);\n\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [consentMode]);\n\n useEffect(() => {\n const handleEvent = () => loadScripts(performance);\n\n Event.subscribe(EVENT.CORE_READY, handleEvent);\n\n return () => Event.unsubscribe(EVENT.CORE_READY, handleEvent);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [performance]);\n\n useEffect(() => {\n const {\n config,\n finder: { place: { id: [hotelId] = [], isHotel } = {} },\n } = store;\n\n if (place && ready) loadScripts(getPerformance(config, isHotel ? hotelId : undefined));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n useEffect(() => {\n // ! TODO: why we should delay the event...\n if (ready) setTimeout(() => Event.publish(EVENT.PERFORMANCE_READY, 10));\n }, [ready]);\n\n useEffect(() => {\n if (!ready) return;\n\n const handleEvent = ({ event, ...value }) => {\n const availableProviders = performance\n .map(({ type } = {}) => type)\n .filter((type) => consentMode === true || !CONSENT_MODE_REQUIRED.includes(type));\n\n Object.entries(EVENTS[event]).forEach(([provider, callback = () => {}]) => {\n const props = { callback, event, provider, value };\n if (!availableProviders.includes(parseInt(provider))) {\n memoizedEvents.push(props);\n return;\n }\n if (!consentMode) memoizedEvents.push(props);\n\n 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 }, [consentMode, device, ready, store]);\n\n const executeEvent = ({ provider, callback, value, event } = {}) => {\n const config = performance.find(({ type }) => type === parseInt(provider));\n const response = callback({ ...value, ...config, device, store });\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\n const loadScripts = async (performance = [], propConsentMode = consentMode) => {\n const loadedComponents = Object.keys(components);\n\n // ! TODO: Load all instances scripts or just the first one.\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, loadedComponents }),\n })),\n );\n }\n });\n\n setReady(false);\n await Promise.all(scripts.map((config) => loadScript(config)));\n setReady(true);\n };\n\n return null;\n};\n\nexport { PerformanceManager };\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.12",
3
+ "version": "0.4.13",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",