@mirai/core 0.4.223 → 0.4.225
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.Error.js +26 -0
- package/build/Core.Error.js.map +1 -0
- package/build/helpers/loadSentry.js +5 -23
- package/build/helpers/loadSentry.js.map +1 -1
- package/build/index.js +12 -5
- package/build/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Error = void 0;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
const Error = _ref => {
|
|
11
|
+
let {
|
|
12
|
+
children
|
|
13
|
+
} = _ref;
|
|
14
|
+
const {
|
|
15
|
+
Mirai: {
|
|
16
|
+
Sentry
|
|
17
|
+
} = {}
|
|
18
|
+
} = window || {};
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(Sentry ? Sentry.ErrorBoundary : _react.default.Fragment, null, children);
|
|
20
|
+
};
|
|
21
|
+
exports.Error = Error;
|
|
22
|
+
Error.displayName = 'core:components:Error';
|
|
23
|
+
Error.propTypes = {
|
|
24
|
+
children: _propTypes.default.node
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=Core.Error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Core.Error.js","names":["_propTypes","_interopRequireDefault","require","_react","obj","__esModule","default","Error","_ref","children","Mirai","Sentry","window","React","createElement","ErrorBoundary","Fragment","exports","displayName","propTypes","PropTypes","node"],"sources":["../src/Core.Error.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst Error = ({ children }) => {\n const { Mirai: { Sentry } = {} } = window || {};\n\n return React.createElement(Sentry ? Sentry.ErrorBoundary : React.Fragment, null, children);\n};\n\nError.displayName = 'core:components:Error';\n\nError.propTypes = {\n children: PropTypes.node,\n};\n\nexport { Error };\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE1B,MAAMG,KAAK,GAAGC,IAAA,IAAkB;EAAA,IAAjB;IAAEC;EAAS,CAAC,GAAAD,IAAA;EACzB,MAAM;IAAEE,KAAK,EAAE;MAAEC;IAAO,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGC,MAAM,IAAI,CAAC,CAAC;EAE/C,oBAAOC,cAAK,CAACC,aAAa,CAACH,MAAM,GAAGA,MAAM,CAACI,aAAa,GAAGF,cAAK,CAACG,QAAQ,EAAE,IAAI,EAAEP,QAAQ,CAAC;AAC5F,CAAC;AAACQ,OAAA,CAAAV,KAAA,GAAAA,KAAA;AAEFA,KAAK,CAACW,WAAW,GAAG,uBAAuB;AAE3CX,KAAK,CAACY,SAAS,GAAG;EAChBV,QAAQ,EAAEW,kBAAS,CAACC;AACtB,CAAC"}
|
|
@@ -5,10 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.loadSentry = void 0;
|
|
7
7
|
var Sentry = _interopRequireWildcard(require("@sentry/react"));
|
|
8
|
-
var _templateObject;
|
|
9
8
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
9
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
12
10
|
const loadSentry = (dsn, release) => {
|
|
13
11
|
if (!dsn || !release) return;
|
|
14
12
|
Sentry.init({
|
|
@@ -19,32 +17,16 @@ const loadSentry = (dsn, release) => {
|
|
|
19
17
|
event,
|
|
20
18
|
hint
|
|
21
19
|
});
|
|
22
|
-
|
|
23
|
-
const {
|
|
24
|
-
breadcrumbs = [],
|
|
25
|
-
message = ''
|
|
26
|
-
} = event;
|
|
27
|
-
if (!message.startsWith('PCI')) {
|
|
28
|
-
for (let index = breadcrumbs.length - 1; index >= 0; index--) {
|
|
29
|
-
const breadcrumb = breadcrumbs[index];
|
|
30
|
-
if (!breadcrumb) continue;
|
|
31
|
-
if (breadcrumb.level !== 'error' || breadcrumb.category === 'xhr' || breadcrumb.category === 'fetch') {
|
|
32
|
-
launchEvent = false;
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// eslint-disable-next-line no-console
|
|
39
|
-
console.log('launchEvent:', launchEvent);
|
|
40
|
-
return launchEvent ? event : null;
|
|
20
|
+
return event;
|
|
41
21
|
},
|
|
42
|
-
denyUrls: [new RegExp(String.raw(_templateObject || (_templateObject = _taggedTemplateLiteral(["s", "s"], ["\\s", "\\s"])), window.location.origin), 'g'), /elementor/g, /mirai-loader/g, /mirai-room-selection/g, /mirai-club-login/g, /amplify/g, /pushtech/, /wp-includes/g, /hijiffy/g, /hotelmonitor/g, /flickity/g, /bat.bing.com/g, /new.smartrental.com/g, /translate.goog/g],
|
|
43
22
|
dsn,
|
|
44
23
|
release,
|
|
45
|
-
ignoreErrors: [/^
|
|
24
|
+
ignoreErrors: [/^Object captured as exception with keys: code, message$/],
|
|
46
25
|
integrations: [new Sentry.Replay({
|
|
47
26
|
networkDetailAllowUrls: /mirai/g
|
|
27
|
+
}), new Sentry.GlobalHandlers({
|
|
28
|
+
onerror: false,
|
|
29
|
+
onunhandledrejection: false
|
|
48
30
|
})],
|
|
49
31
|
tracesSampleRate: 0.1,
|
|
50
32
|
// Capture 100% of the transactions, reduce in production!
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadSentry.js","names":["Sentry","_interopRequireWildcard","require","
|
|
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","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 return event;\n },\n dsn,\n release,\n ignoreErrors: [/^Object captured as exception with keys: code, message$/],\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,OAAOD,KAAK;IACd,CAAC;IACDL,GAAG;IACHC,OAAO;IACPQ,YAAY,EAAE,CAAC,yDAAyD,CAAC;IACzEC,YAAY,EAAE,CACZ,IAAInC,MAAM,CAACoC,MAAM,CAAC;MAAEC,sBAAsB,EAAE;IAAS,CAAC,CAAC,EACvD,IAAIrC,MAAM,CAACsC,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,OAAO3C,MAAM;AACf,CAAC;AAAC4C,OAAA,CAAApB,UAAA,GAAAA,UAAA"}
|
package/build/index.js
CHANGED
|
@@ -7,6 +7,7 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
|
7
7
|
var _contexts = require("./contexts");
|
|
8
8
|
var _Core = require("./Core");
|
|
9
9
|
var _Core2 = require("./Core.constants");
|
|
10
|
+
var _Core3 = require("./Core.Error");
|
|
10
11
|
var _helpers = require("./helpers");
|
|
11
12
|
var _package = require("../package.json");
|
|
12
13
|
require("./helpers/polyfills");
|
|
@@ -72,7 +73,7 @@ window.Mirai.core = async () => {
|
|
|
72
73
|
const localeInstance = (0, _helpers.getLocale)(instance, urlParams);
|
|
73
74
|
|
|
74
75
|
// 7. 1st render
|
|
75
|
-
window && !window.IS_PLAYWRIGHT && _reactDom.default.render( /*#__PURE__*/_react.default.createElement(_react.default.StrictMode, null, /*#__PURE__*/_react.default.createElement(_dataSources.StoreProvider, {
|
|
76
|
+
window && !window.IS_PLAYWRIGHT && _reactDom.default.render( /*#__PURE__*/_react.default.createElement(_react.default.StrictMode, null, /*#__PURE__*/_react.default.createElement(_Core3.Error, null, /*#__PURE__*/_react.default.createElement(_dataSources.StoreProvider, {
|
|
76
77
|
value: {
|
|
77
78
|
id: instance.id,
|
|
78
79
|
session,
|
|
@@ -83,7 +84,7 @@ window.Mirai.core = async () => {
|
|
|
83
84
|
}
|
|
84
85
|
}, /*#__PURE__*/_react.default.createElement(_Core.Core, {
|
|
85
86
|
components
|
|
86
|
-
}))), instance.el);
|
|
87
|
+
})))), instance.el);
|
|
87
88
|
|
|
88
89
|
// 8. Analyze id to fetch its config
|
|
89
90
|
const config = await (0, _helpers.fetchConfig)({
|
|
@@ -113,13 +114,13 @@ window.Mirai.core = async () => {
|
|
|
113
114
|
if (!_services.ServiceDictionary.cache(store.locale)) await _services.ServiceDictionary.get(store.locale, false);
|
|
114
115
|
|
|
115
116
|
// 13. Render components
|
|
116
|
-
_reactDom.default.render( /*#__PURE__*/_react.default.createElement(_react.default.StrictMode, null, /*#__PURE__*/_react.default.createElement(_dataSources.MetricsProvider, {
|
|
117
|
+
_reactDom.default.render( /*#__PURE__*/_react.default.createElement(_react.default.StrictMode, null, /*#__PURE__*/_react.default.createElement(_Core3.Error, null, /*#__PURE__*/_react.default.createElement(_dataSources.MetricsProvider, {
|
|
117
118
|
token: isProduction ? process.env.METRICS : undefined
|
|
118
119
|
}, /*#__PURE__*/_react.default.createElement(_dataSources.StoreProvider, {
|
|
119
120
|
value: store
|
|
120
121
|
}, /*#__PURE__*/_react.default.createElement(_contexts.PerformanceManager, null), /*#__PURE__*/_react.default.createElement(_Core.Core, {
|
|
121
122
|
components
|
|
122
|
-
}), /*#__PURE__*/_react.default.createElement(_contexts.EventManager, null)))), instance.el);
|
|
123
|
+
}), /*#__PURE__*/_react.default.createElement(_contexts.EventManager, null))))), instance.el);
|
|
123
124
|
|
|
124
125
|
// 14. Up & Ready
|
|
125
126
|
window.Mirai.ready = true;
|
|
@@ -127,7 +128,13 @@ window.Mirai.core = async () => {
|
|
|
127
128
|
console.log(log, '[READY]', window.Mirai);
|
|
128
129
|
};
|
|
129
130
|
(async () => {
|
|
130
|
-
|
|
131
|
+
try {
|
|
132
|
+
await window.Mirai.core();
|
|
133
|
+
} catch (error) {
|
|
134
|
+
var _window$Mirai$Sentry;
|
|
135
|
+
(_window$Mirai$Sentry = window.Mirai.Sentry) === null || _window$Mirai$Sentry === void 0 ? void 0 : _window$Mirai$Sentry.captureException(error);
|
|
136
|
+
throw error;
|
|
137
|
+
}
|
|
131
138
|
const {
|
|
132
139
|
components = [],
|
|
133
140
|
ready
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_dataSources","require","_services","_react","_interopRequireDefault","_reactDom","_contexts","_Core","_Core2","_helpers","_package","obj","__esModule","default","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","version","core","isProduction","isDevelopment","isPreproduction","log","concat","name","console","Sentry","SENTRY","loadSentry","urlParams","fetchUrlParams","location","search","cookies","fetchCookies","Object","values","COOKIE","session","fetchSession","setUser","loadEnvironment","instance","findInstance","findComponents","length","theme","localeInstance","getLocale","IS_PLAYWRIGHT","ReactDOM","render","createElement","StrictMode","StoreProvider","value","id","skeleton","type","Core","el","fetchConfig","language","checkSession","store","consolidateStore","ServiceFeatures","initialize","ServiceDictionary","cache","locale","get","MetricsProvider","token","METRICS","PerformanceManager","EventManager","ready","setTimeout","publish","EVENT","CORE_READY","filter","component","arguments","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 ReactDOM from 'react-dom';\n\nimport { EventManager, PerformanceManager } from './contexts';\nimport { Core } from './Core';\nimport { COOKIE, EVENT } from './Core.constants';\nimport {\n checkSession,\n consolidateStore,\n fetchConfig,\n fetchCookies,\n fetchSession,\n fetchUrlParams,\n findComponents,\n findInstance,\n getLocale,\n loadEnvironment,\n loadSentry,\n theme,\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 version,\n};\n\nwindow.Mirai.core = async () => {\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. Initialize sentry\n let Sentry = window.Mirai.Sentry;\n if (!Sentry && process.env.SENTRY) {\n Sentry = loadSentry(process.env.SENTRY, version);\n window.Mirai.Sentry = Sentry;\n }\n\n // 2. Fetch client-side dataSources\n const urlParams = fetchUrlParams(location.search);\n const cookies = fetchCookies(Object.values(COOKIE));\n let session = fetchSession(urlParams);\n\n if (session && Sentry) Sentry.setUser(session);\n\n // 3. Analyze environment\n const environment = urlParams.env && isProduction ? loadEnvironment(urlParams.env) : undefined;\n if (environment) return;\n\n // 4. Find instance\n const instance = findInstance({ urlParams });\n if (!instance) return;\n\n // 5. Find components\n const components = findComponents();\n if (!components.length) return;\n window.Mirai = { ...window.Mirai, components };\n\n // 6. Theming\n theme(urlParams);\n\n const localeInstance = getLocale(instance, urlParams);\n\n // 7. 1st render\n window &&\n !window.IS_PLAYWRIGHT &&\n ReactDOM.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 instance.el,\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 // 9. Check session\n if (session && !(await checkSession(instance.id, session, config))) session = undefined;\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 ReactDOM.render(\n <React.StrictMode>\n <MetricsProvider token={isProduction ? process.env.METRICS : undefined}>\n <StoreProvider value={store}>\n <PerformanceManager />\n <Core {...{ components }} />\n <EventManager />\n </StoreProvider>\n </MetricsProvider>\n </React.StrictMode>,\n instance.el,\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 await window.Mirai.core();\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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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_dataSources","require","_services","_react","_interopRequireDefault","_reactDom","_contexts","_Core","_Core2","_Core3","_helpers","_package","obj","__esModule","default","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","version","core","isProduction","isDevelopment","isPreproduction","log","concat","name","console","Sentry","SENTRY","loadSentry","urlParams","fetchUrlParams","location","search","cookies","fetchCookies","Object","values","COOKIE","session","fetchSession","setUser","loadEnvironment","instance","findInstance","findComponents","length","theme","localeInstance","getLocale","IS_PLAYWRIGHT","ReactDOM","render","createElement","StrictMode","Error","StoreProvider","value","id","skeleton","type","Core","el","fetchConfig","language","checkSession","store","consolidateStore","ServiceFeatures","initialize","ServiceDictionary","cache","locale","get","MetricsProvider","token","METRICS","PerformanceManager","EventManager","ready","setTimeout","publish","EVENT","CORE_READY","error","_window$Mirai$Sentry","captureException","filter","component","arguments","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 ReactDOM from 'react-dom';\n\nimport { EventManager, PerformanceManager } from './contexts';\nimport { Core } from './Core';\nimport { COOKIE, EVENT } from './Core.constants';\nimport { Error } from './Core.Error';\nimport {\n checkSession,\n consolidateStore,\n fetchConfig,\n fetchCookies,\n fetchSession,\n fetchUrlParams,\n findComponents,\n findInstance,\n getLocale,\n loadEnvironment,\n loadSentry,\n theme,\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 version,\n};\n\nwindow.Mirai.core = async () => {\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. Initialize sentry\n let Sentry = window.Mirai.Sentry;\n if (!Sentry && process.env.SENTRY) {\n Sentry = loadSentry(process.env.SENTRY, version);\n window.Mirai.Sentry = Sentry;\n }\n\n // 2. Fetch client-side dataSources\n const urlParams = fetchUrlParams(location.search);\n const cookies = fetchCookies(Object.values(COOKIE));\n let session = fetchSession(urlParams);\n\n if (session && Sentry) Sentry.setUser(session);\n\n // 3. Analyze environment\n const environment = urlParams.env && isProduction ? loadEnvironment(urlParams.env) : undefined;\n if (environment) return;\n\n // 4. Find instance\n const instance = findInstance({ urlParams });\n if (!instance) return;\n\n // 5. Find components\n const components = findComponents();\n if (!components.length) return;\n window.Mirai = { ...window.Mirai, components };\n\n // 6. Theming\n theme(urlParams);\n\n const localeInstance = getLocale(instance, urlParams);\n\n // 7. 1st render\n window &&\n !window.IS_PLAYWRIGHT &&\n ReactDOM.render(\n <React.StrictMode>\n <Error>\n <StoreProvider\n value={{ id: instance.id, session, skeleton: true, type: instance.type, urlParams, ...localeInstance }}\n >\n <Core {...{ components }} />\n </StoreProvider>\n </Error>\n </React.StrictMode>,\n instance.el,\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 // 9. Check session\n if (session && !(await checkSession(instance.id, session, config))) session = undefined;\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 ReactDOM.render(\n <React.StrictMode>\n <Error>\n <MetricsProvider token={isProduction ? process.env.METRICS : undefined}>\n <StoreProvider value={store}>\n <PerformanceManager />\n <Core {...{ components }} />\n <EventManager />\n </StoreProvider>\n </MetricsProvider>\n </Error>\n </React.StrictMode>,\n instance.el,\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 await window.Mirai.core();\n } catch (error) {\n window.Mirai.Sentry?.captureException(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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"}
|