UNPKG

@flagship.io/react-sdk

Version:
1,156 lines (1,034 loc) 97.2 kB
/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "./src/FSFlag.ts": /*!***********************!*\ !*** ./src/FSFlag.ts ***! \***********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ FSFlag: () => (/* binding */ FSFlag) /* harmony export */ }); /* harmony import */ var core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.flags.js */ "./node_modules/core-js/modules/es.regexp.flags.js"); /* harmony import */ var core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./deps */ "@flagship.io/js-sdk"); /* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_deps__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./src/constants.ts"); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/utils.ts"); function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } 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); } class FSFlag { constructor(key, state) { _defineProperty(this, "key", void 0); _defineProperty(this, "flag", void 0); const flagsData = state.flags; if (!state.hasVisitorData) { (0,_utils__WEBPACK_IMPORTED_MODULE_1__.logWarn)(_deps__WEBPACK_IMPORTED_MODULE_2__.Flagship.getConfig(), _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'GetFlag'); } this.key = key; this.flag = flagsData === null || flagsData === void 0 ? void 0 : flagsData.get(key); } getValue(defaultValue) { if (!this.flag) { return defaultValue; } if (this.flag.value === null || this.flag.value === undefined) { return defaultValue; } if (defaultValue !== null && defaultValue !== undefined && !(0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasSameType)(this.flag.value, defaultValue)) { (0,_utils__WEBPACK_IMPORTED_MODULE_1__.logInfo)(_deps__WEBPACK_IMPORTED_MODULE_2__.Flagship.getConfig(), (0,_utils__WEBPACK_IMPORTED_MODULE_1__.sprintf)(_constants__WEBPACK_IMPORTED_MODULE_3__.GET_FLAG_CAST_ERROR, this.key), 'getValue'); return defaultValue; } return this.flag.value; } exists() { if (!this.flag) { return false; } return !!(this.flag.campaignId && this.flag.variationId && this.flag.variationGroupId); } async visitorExposed() { // do nothing } get metadata() { if (!this.flag) { return _deps__WEBPACK_IMPORTED_MODULE_2__.FSFlagMetadata.Empty(); } return new _deps__WEBPACK_IMPORTED_MODULE_2__.FSFlagMetadata({ campaignId: this.flag.campaignId, campaignName: this.flag.campaignName, variationGroupId: this.flag.variationGroupId, variationGroupName: this.flag.variationGroupName, variationId: this.flag.variationId, variationName: this.flag.variationName, isReference: !!this.flag.isReference, campaignType: this.flag.campaignType, slug: this.flag.slug }); } get status() { if (!this.exists()) { return _deps__WEBPACK_IMPORTED_MODULE_2__.FSFlagStatus.NOT_FOUND; } return _deps__WEBPACK_IMPORTED_MODULE_2__.FSFlagStatus.FETCHED; } } /***/ }), /***/ "./src/FlagshipContext.tsx": /*!*********************************!*\ !*** ./src/FlagshipContext.tsx ***! \*********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ FlagshipContext: () => (/* binding */ FlagshipContext), /* harmony export */ initStat: () => (/* binding */ initStat) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk"); /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__); "use client"; const initStat = { isInitializing: true, sdkStatus: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_NOT_INITIALIZED }; const FlagshipContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({ state: { ...initStat } }); /***/ }), /***/ "./src/FlagshipHooks.ts": /*!******************************!*\ !*** ./src/FlagshipHooks.ts ***! \******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useFlagship: () => (/* binding */ useFlagship), /* harmony export */ useFsFlag: () => (/* binding */ useFsFlag) /* harmony export */ }); /* harmony import */ var core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.flags.js */ "./node_modules/core-js/modules/es.regexp.flags.js"); /* harmony import */ var core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./deps */ "@flagship.io/js-sdk"); /* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_deps__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ "./src/constants.ts"); /* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx"); /* harmony import */ var _FSFlag__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FSFlag */ "./src/FSFlag.ts"); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./src/utils.ts"); /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./hooks */ "./src/hooks.ts"); 'use client'; /** * This hook returns a flag object by its key. If no flag match the given key an empty flag will be returned. * @param key * @param defaultValue * @returns */ const useFsFlag = key => { const { state } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_2__.FlagshipContext); const { visitor } = state; if (!visitor) { return new _FSFlag__WEBPACK_IMPORTED_MODULE_3__.FSFlag(key, state); } return visitor.getFlag(key); }; const handleContextChange = param => { const { updateFunction, functionName, visitor, config } = param; if (!visitor) { (0,_utils__WEBPACK_IMPORTED_MODULE_4__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, functionName); return; } const originalContextClone = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.deepClone)(visitor.context); updateFunction(); const updatedContext = visitor.context; if ((0,_utils__WEBPACK_IMPORTED_MODULE_4__.hasContextChanged)(originalContextClone, updatedContext)) { visitor.fetchFlags(); } }; const useFlagship = () => { const { state } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_2__.FlagshipContext); const { visitor, config } = state; const visitorRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_6__.useLatestRef)(visitor); const configRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_6__.useLatestRef)(config); const stateRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_6__.useLatestRef)(state); const visitorContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({ ...(visitor === null || visitor === void 0 ? void 0 : visitor.context) }), [JSON.stringify(visitor === null || visitor === void 0 ? void 0 : visitor.context)]); const fsUpdateContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(context => { handleContextChange({ config: configRef.current, visitor: visitorRef.current, updateFunction: () => { var _visitorRef$current; return (_visitorRef$current = visitorRef.current) === null || _visitorRef$current === void 0 ? void 0 : _visitorRef$current.updateContext(context); }, functionName: 'updateContext' }); }, []); const fsClearContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => { handleContextChange({ config: configRef.current, visitor: visitorRef.current, updateFunction: () => { var _visitorRef$current2; return (_visitorRef$current2 = visitorRef.current) === null || _visitorRef$current2 === void 0 ? void 0 : _visitorRef$current2.clearContext(); }, functionName: 'cleanContext' }); }, []); const fsAuthenticate = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(visitorId => { const functionName = 'authenticate'; const currentVisitor = visitorRef.current; if (!currentVisitor) { (0,_utils__WEBPACK_IMPORTED_MODULE_4__.logError)(configRef.current, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, functionName); return; } const originalVisitorId = currentVisitor.visitorId; currentVisitor.authenticate(visitorId); if (originalVisitorId !== visitorId) { currentVisitor.fetchFlags(); } }, []); const fsUnauthenticate = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => { const functionName = 'unauthenticate'; const currentVisitor = visitorRef.current; if (!currentVisitor) { (0,_utils__WEBPACK_IMPORTED_MODULE_4__.logError)(configRef.current, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, functionName); return; } const originalVisitorId = currentVisitor.visitorId; currentVisitor.unauthenticate(); if (originalVisitorId !== currentVisitor.visitorId) { currentVisitor.fetchFlags(); } }, []); const fsSendHit = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(hit => { const functionName = 'sendHit'; const currentVisitor = visitorRef.current; if (!currentVisitor) { (0,_utils__WEBPACK_IMPORTED_MODULE_4__.logError)(configRef.current, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, functionName); return Promise.resolve(); } if (Array.isArray(hit)) { return currentVisitor.sendHits(hit); } return currentVisitor.sendHit(hit); }, []); const getFlag = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(key => { const currentVisitor = visitorRef.current; if (!currentVisitor) { return new _FSFlag__WEBPACK_IMPORTED_MODULE_3__.FSFlag(key, stateRef.current); } return currentVisitor.getFlag(key); }, []); const fetchFlags = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async () => { const currentVisitor = visitorRef.current; if (!currentVisitor) { (0,_utils__WEBPACK_IMPORTED_MODULE_4__.logWarn)(configRef.current, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, 'fetchFlags'); return Promise.resolve(); } return currentVisitor.fetchFlags(); }, []); const setConsent = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(hasConsented => { const currentVisitor = visitorRef.current; if (!currentVisitor) { (0,_utils__WEBPACK_IMPORTED_MODULE_4__.logWarn)(configRef.current, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, 'setConsent'); return; } currentVisitor.setConsent(hasConsented); }, []); const close = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => { return _deps__WEBPACK_IMPORTED_MODULE_7__.Flagship.close(); }, []); const getFlags = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => { const currentVisitor = visitorRef.current; if (!currentVisitor) { var _stateRef$current$fla; const flags = new Map(); (_stateRef$current$fla = stateRef.current.flags) === null || _stateRef$current$fla === void 0 || _stateRef$current$fla.forEach((flag, key) => { flags.set(key, new _FSFlag__WEBPACK_IMPORTED_MODULE_3__.FSFlag(key, stateRef.current)); }); return new _deps__WEBPACK_IMPORTED_MODULE_7__.FSFlagCollection({ flags }); } return currentVisitor.getFlags(); }, []); const collectEAIEventsAsync = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async (...args) => { const currentVisitor = visitorRef.current; if (!currentVisitor) { return; } return currentVisitor.collectEAIEventsAsync(...args); }, []); return (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({ visitorId: visitor === null || visitor === void 0 ? void 0 : visitor.visitorId, anonymousId: visitor === null || visitor === void 0 ? void 0 : visitor.anonymousId, context: visitorContext, hasConsented: visitor === null || visitor === void 0 ? void 0 : visitor.hasConsented, sdkStatus: state.sdkStatus, flagsStatus: state.flagsStatus, setConsent, updateContext: fsUpdateContext, clearContext: fsClearContext, authenticate: fsAuthenticate, unauthenticate: fsUnauthenticate, sendHits: fsSendHit, getFlag, fetchFlags, close, getFlags, collectEAIEventsAsync }), [visitor === null || visitor === void 0 ? void 0 : visitor.visitorId, visitor === null || visitor === void 0 ? void 0 : visitor.anonymousId, visitor === null || visitor === void 0 ? void 0 : visitor.hasConsented, visitorContext, state.sdkStatus, state.flagsStatus, setConsent, fsUpdateContext, fsClearContext, fsAuthenticate, fsUnauthenticate, fsSendHit, getFlag, fetchFlags, close, getFlags, collectEAIEventsAsync]); }; /***/ }), /***/ "./src/FlagshipProvider.tsx": /*!**********************************!*\ !*** ./src/FlagshipProvider.tsx ***! \**********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ FlagshipProvider: () => (/* binding */ FlagshipProvider) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./deps */ "@flagship.io/js-sdk"); /* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deps__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx"); /* harmony import */ var _internalType__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./internalType */ "./src/internalType.ts"); /* harmony import */ var _sdkVersion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sdkVersion */ "./src/sdkVersion.ts"); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils.ts"); /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks */ "./src/hooks.ts"); "use client"; function FlagshipProvider({ children, envId, apiKey, decisionMode = _deps__WEBPACK_IMPORTED_MODULE_1__.DecisionMode.DECISION_API, visitorData, loadingComponent, onSdkStatusChanged, onBucketingUpdated, initialCampaigns, initialFlagsData, fetchFlagsOnBucketingUpdated, hitDeduplicationTime = 2, fetchNow = true, language = 1, sdkVersion = _sdkVersion__WEBPACK_IMPORTED_MODULE_2__.version, onFlagsStatusChanged, shouldSaveInstance, ...props }) { const flags = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => (0,_utils__WEBPACK_IMPORTED_MODULE_3__.extractFlagsMap)(initialFlagsData, initialCampaigns), [initialFlagsData, initialCampaigns]); const [flagshipState, setFlagshipState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ ..._FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.initStat, flags, hasVisitorData: !!visitorData }); const [lastModified, setLastModified] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); const flagshipVisitorRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { flagshipVisitorRef.current = flagshipState.visitor; }, [flagshipState.visitor]); const propsRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useLatestRef)(props); const configRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useLatestRef)({ fetchNow, hitDeduplicationTime, language, sdkVersion }); const callbacksRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useLatestRef)({ onSdkStatusChanged, onBucketingUpdated, onFlagsStatusChanged }); const visitorDataMemo = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => visitorData, [visitorData === null || visitorData === void 0 ? void 0 : visitorData.id, visitorData === null || visitorData === void 0 ? void 0 : visitorData.isAuthenticated, visitorData === null || visitorData === void 0 ? void 0 : visitorData.hasConsented, JSON.stringify(visitorData === null || visitorData === void 0 ? void 0 : visitorData.context)]); // #region functions const handleBucketingUpdate = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(lastUpdate => { if (callbacksRef.current.onBucketingUpdated) { callbacksRef.current.onBucketingUpdated(lastUpdate); } setLastModified(lastUpdate); }, []); const handleFlagsStatusChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({ status, reason }) => { var _callbacksRef$current, _callbacksRef$current2; (_callbacksRef$current = (_callbacksRef$current2 = callbacksRef.current).onFlagsStatusChanged) === null || _callbacksRef$current === void 0 || _callbacksRef$current.call(_callbacksRef$current2, { status, reason }); setFlagshipState(currentState => ({ ...currentState, flagsStatus: { status, reason } })); }, []); const initializeVisitorState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(param => { setFlagshipState(currentState => ({ ...currentState, visitor: param.fsVisitor, config: _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(), isInitializing: false, hasVisitorData: !!visitorDataMemo, sdkStatus: param.sdkStatus })); }, [!!visitorDataMemo]); const handleVisitorReady = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((fsVisitor, error, sdkStatus) => { if (error) { (0,_utils__WEBPACK_IMPORTED_MODULE_3__.logError)(_deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(), error.message || error, "onReady"); } initializeVisitorState({ fsVisitor, sdkStatus }); }, [initializeVisitorState]); const createFlagshipVisitor = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(sdkStatus => { if (!visitorDataMemo) { return; } const fsVisitor = _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.newVisitor({ visitorId: visitorDataMemo.id, context: visitorDataMemo.context, isAuthenticated: visitorDataMemo.isAuthenticated, hasConsented: visitorDataMemo.hasConsented, initialCampaigns, initialFlagsData, onFlagsStatusChanged: handleFlagsStatusChange, shouldSaveInstance }); fsVisitor === null || fsVisitor === void 0 || fsVisitor.on("ready", error => { handleVisitorReady(fsVisitor, error, sdkStatus); }); if (!fetchNow) { initializeVisitorState({ fsVisitor, sdkStatus }); } }, [initialCampaigns, initialFlagsData, handleFlagsStatusChange, shouldSaveInstance, fetchNow, handleVisitorReady, initializeVisitorState, visitorDataMemo]); const handleSdkStatusChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(sdkStatus => { if (callbacksRef.current.onSdkStatusChanged) { callbacksRef.current.onSdkStatusChanged(sdkStatus); } switch (sdkStatus) { case _deps__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_PANIC: case _deps__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_INITIALIZED: createFlagshipVisitor(sdkStatus); break; case _deps__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_NOT_INITIALIZED: setFlagshipState(prev => ({ ...prev, config: _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(), isInitializing: false, sdkStatus })); break; } }, [createFlagshipVisitor]); const handleSdkStatusChangeRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useLatestRef)(handleSdkStatusChange); const handleBucketingUpdateRef = (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.useLatestRef)(handleBucketingUpdate); const initializeFlagshipSdk = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => { _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.start(envId, apiKey, { // eslint-disable-next-line @typescript-eslint/no-explicit-any decisionMode: decisionMode, fetchNow: configRef.current.fetchNow, onSdkStatusChanged: (...args) => handleSdkStatusChangeRef.current(...args), onBucketingUpdated: (...args) => handleBucketingUpdateRef.current(...args), hitDeduplicationTime: configRef.current.hitDeduplicationTime, language: configRef.current.language, sdkVersion: configRef.current.sdkVersion, ...propsRef.current }); }, [envId, apiKey, decisionMode, props.isQAModeEnabled]); const updateFlagshipVisitor = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => { if (!visitorDataMemo || _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getStatus() !== _deps__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_INITIALIZED) { return; } const currentVisitor = flagshipVisitorRef.current; if ((0,_hooks__WEBPACK_IMPORTED_MODULE_5__.shouldRecreateVisitor)(currentVisitor, visitorDataMemo.id, visitorDataMemo.isAuthenticated)) { currentVisitor === null || currentVisitor === void 0 || currentVisitor.cleanup(); createFlagshipVisitor(_deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getStatus()); return; } // Update existing visitor if (currentVisitor) { (0,_hooks__WEBPACK_IMPORTED_MODULE_5__.updateVisitorData)(currentVisitor, visitorDataMemo.id, visitorDataMemo.context, visitorDataMemo.hasConsented, visitorDataMemo.isAuthenticated); } }, [createFlagshipVisitor, visitorDataMemo]); // #endregion (0,_utils__WEBPACK_IMPORTED_MODULE_3__.useNonInitialEffect)(() => { if (fetchFlagsOnBucketingUpdated) { var _flagshipVisitorRef$c; (_flagshipVisitorRef$c = flagshipVisitorRef.current) === null || _flagshipVisitorRef$c === void 0 || _flagshipVisitorRef$c.fetchFlags(); } }, [lastModified, fetchFlagsOnBucketingUpdated]); (0,_utils__WEBPACK_IMPORTED_MODULE_3__.useNonInitialEffect)(() => { updateFlagshipVisitor(); }, [updateFlagshipVisitor]); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { initializeFlagshipSdk(); }, [initializeFlagshipSdk]); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { return () => { var _flagshipVisitorRef$c2; (_flagshipVisitorRef$c2 = flagshipVisitorRef.current) === null || _flagshipVisitorRef$c2 === void 0 || _flagshipVisitorRef$c2.cleanup(); _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.close(); }; }, []); const handleDisplay = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => { const isFirstInit = !flagshipState.visitor; if (flagshipState.isInitializing && loadingComponent && isFirstInit && fetchNow) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, loadingComponent); } return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, children); }, [flagshipState.isInitializing, flagshipState.visitor, loadingComponent, fetchNow, children]); const handleForcedVariations = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(e => { const { detail } = e; if (detail.forcedReFetchFlags) { var _flagshipVisitorRef$c3; (_flagshipVisitorRef$c3 = flagshipVisitorRef.current) === null || _flagshipVisitorRef$c3 === void 0 || _flagshipVisitorRef$c3.fetchFlags(); } else { setFlagshipState(state => ({ ...state, toggleForcedVariations: !state.toggleForcedVariations })); } }, []); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { var _window, _window$addEventListe; (_window = window) === null || _window === void 0 || (_window$addEventListe = _window.addEventListener) === null || _window$addEventListe === void 0 || _window$addEventListe.call(_window, _internalType__WEBPACK_IMPORTED_MODULE_6__.INTERNAL_EVENTS.FsTriggerRendering, handleForcedVariations); globalThis.__abTastyOnTriggerRender__ = arg => { const event = { detail: arg }; handleForcedVariations(event); }; return () => { var _window2, _window2$removeEventL; return (_window2 = window) === null || _window2 === void 0 || (_window2$removeEventL = _window2.removeEventListener) === null || _window2$removeEventL === void 0 ? void 0 : _window2$removeEventL.call(_window2, _internalType__WEBPACK_IMPORTED_MODULE_6__.INTERNAL_EVENTS.FsTriggerRendering, handleForcedVariations); }; }, [handleForcedVariations]); const contextValue = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({ state: flagshipState, setState: setFlagshipState }), [flagshipState]); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext.Provider, { value: contextValue }, handleDisplay); } /***/ }), /***/ "./src/FlagshipProviderSSR.tsx": /*!*************************************!*\ !*** ./src/FlagshipProviderSSR.tsx ***! \*************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ FlagshipProviderSSR: () => (/* binding */ FlagshipProviderSSR) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./deps */ "@flagship.io/js-sdk"); /* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deps__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _FlagshipProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FlagshipProvider */ "./src/FlagshipProvider.tsx"); /* harmony import */ var _sdkVersion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sdkVersion */ "./src/sdkVersion.ts"); function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } async function initFlagship({ envId, apiKey, config }) { if (_deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getStatus() !== _deps__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_NOT_INITIALIZED) { return _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship; } await _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.start(envId, apiKey, { ...config, fetchNow: false, sdkVersion: _sdkVersion__WEBPACK_IMPORTED_MODULE_2__.version }); return _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship; } /** * FlagshipProviderSSR is a server-side rendering component for Flagship. * It initializes the Flagship SDK and provides the necessary context for rendering. * This component is designed to be used in server-side environments where you need to fetch and provide * Flagship data before rendering the React application. * @returns */ async function FlagshipProviderSSR({ children, envId, apiKey, decisionMode = _deps__WEBPACK_IMPORTED_MODULE_1__.DecisionMode.DECISION_API, visitorData, loadingComponent, onSdkStatusChanged, onBucketingUpdated, fetchFlagsOnBucketingUpdated, hitDeduplicationTime = 2, fetchNow = false, onFlagsStatusChanged, shouldSaveInstance, ...props }) { const language = 1; const fs = await initFlagship({ envId, apiKey, config: { ...props, decisionMode: decisionMode, initialBucketing: props.initialBucketing, hitDeduplicationTime, language } }); let initialFlagsData = props.initialFlagsData; if (!props.initialFlagsData && !props.initialCampaigns) { const visitor = fs.newVisitor({ visitorId: visitorData === null || visitorData === void 0 ? void 0 : visitorData.id, context: visitorData === null || visitorData === void 0 ? void 0 : visitorData.context, isAuthenticated: visitorData === null || visitorData === void 0 ? void 0 : visitorData.isAuthenticated, hasConsented: visitorData === null || visitorData === void 0 ? void 0 : visitorData.hasConsented, onFlagsStatusChanged, shouldSaveInstance }); await visitor.fetchFlags(); initialFlagsData = visitor.getFlags().toJSON(); } return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_FlagshipProvider__WEBPACK_IMPORTED_MODULE_3__.FlagshipProvider, _extends({ envId: envId, apiKey: apiKey, decisionMode: decisionMode, visitorData: visitorData, loadingComponent: loadingComponent, onSdkStatusChanged: onSdkStatusChanged, onBucketingUpdated: onBucketingUpdated, initialFlagsData: initialFlagsData, fetchFlagsOnBucketingUpdated: fetchFlagsOnBucketingUpdated, hitDeduplicationTime: hitDeduplicationTime, fetchNow: fetchNow, language: language, sdkVersion: _sdkVersion__WEBPACK_IMPORTED_MODULE_2__.version, onFlagsStatusChanged: onFlagsStatusChanged, shouldSaveInstance: shouldSaveInstance }, props), children); } /***/ }), /***/ "./src/constants.ts": /*!**************************!*\ !*** ./src/constants.ts ***! \**************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ GET_FLAG_CAST_ERROR: () => (/* binding */ GET_FLAG_CAST_ERROR), /* harmony export */ GET_METADATA_CAST_ERROR: () => (/* binding */ GET_METADATA_CAST_ERROR), /* harmony export */ noVisitorDefault: () => (/* binding */ noVisitorDefault), /* harmony export */ noVisitorMessage: () => (/* binding */ noVisitorMessage) /* harmony export */ }); const noVisitorMessage = 'flagship Visitor not initialized.'; const noVisitorDefault = 'fsVisitor not initialized, returns default value'; const GET_FLAG_CAST_ERROR = 'Flag for key {0} has a different type. Default value is returned.'; const GET_METADATA_CAST_ERROR = 'Flag for key {0} has a different type with defaultValue, an empty metadata object is returned'; /***/ }), /***/ "./src/deps.ts": /*!*********************!*\ !*** ./src/deps.ts ***! \*********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk"); /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__); /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); /***/ }), /***/ "./src/hooks.ts": /*!**********************!*\ !*** ./src/hooks.ts ***! \**********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ getAuthenticationAction: () => (/* binding */ getAuthenticationAction), /* harmony export */ shouldRecreateVisitor: () => (/* binding */ shouldRecreateVisitor), /* harmony export */ shouldUpdateConsent: () => (/* binding */ shouldUpdateConsent), /* harmony export */ updateVisitorData: () => (/* binding */ updateVisitorData), /* harmony export */ useLatestRef: () => (/* binding */ useLatestRef) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); 'use client'; function useLatestRef(value) { const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(value); ref.current = value; return ref; } function shouldRecreateVisitor(currentVisitor, visitorId, isAuthenticated) { if (!currentVisitor) { return true; } const hasIdChanged = currentVisitor.visitorId !== visitorId; return hasIdChanged && (!isAuthenticated || isAuthenticated && !!currentVisitor.anonymousId); } function shouldUpdateConsent(currentVisitor, hasConsented) { return currentVisitor.hasConsented !== hasConsented; } function getAuthenticationAction(currentVisitor, isAuthenticated) { if (!currentVisitor.anonymousId && isAuthenticated) { return "authenticate"; } if (currentVisitor.anonymousId && !isAuthenticated) { return "unauthenticate"; } return null; } function updateVisitorData(visitor, visitorId, context, hasConsented, isAuthenticated) { if (shouldUpdateConsent(visitor, hasConsented)) { visitor.setConsent(hasConsented !== null && hasConsented !== void 0 ? hasConsented : true); } visitor.updateContext(context); const authAction = getAuthenticationAction(visitor, isAuthenticated); if (authAction === "authenticate") { visitor.authenticate(visitorId); } else if (authAction === "unauthenticate") { visitor.unauthenticate(); } visitor.fetchFlags(); } /***/ }), /***/ "./src/internalType.ts": /*!*****************************!*\ !*** ./src/internalType.ts ***! \*****************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ INTERNAL_EVENTS: () => (/* binding */ INTERNAL_EVENTS) /* harmony export */ }); let INTERNAL_EVENTS = /*#__PURE__*/function (INTERNAL_EVENTS) { INTERNAL_EVENTS["FsTriggerRendering"] = "FS_TRIGGER_RENDERING"; return INTERNAL_EVENTS; }({}); /***/ }), /***/ "./src/sdkVersion.ts": /*!***************************!*\ !*** ./src/sdkVersion.ts ***! \***************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ version: () => (/* binding */ version) /* harmony export */ }); // Generated by genversion. const version = '5.2.4'; /***/ }), /***/ "./src/utils.ts": /*!**********************!*\ !*** ./src/utils.ts ***! \**********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ deepClone: () => (/* binding */ deepClone), /* harmony export */ extractFlagsMap: () => (/* binding */ extractFlagsMap), /* harmony export */ getFlagsFromCampaigns: () => (/* binding */ getFlagsFromCampaigns), /* harmony export */ hasContextChanged: () => (/* binding */ hasContextChanged), /* harmony export */ hasSameType: () => (/* binding */ hasSameType), /* harmony export */ hexToValue: () => (/* binding */ hexToValue), /* harmony export */ logError: () => (/* binding */ logError), /* harmony export */ logInfo: () => (/* binding */ logInfo), /* harmony export */ logWarn: () => (/* binding */ logWarn), /* harmony export */ sprintf: () => (/* binding */ sprintf), /* harmony export */ useNonInitialEffect: () => (/* binding */ useNonInitialEffect), /* harmony export */ uuidV4: () => (/* binding */ uuidV4) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./deps */ "@flagship.io/js-sdk"); /* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deps__WEBPACK_IMPORTED_MODULE_1__); 'use client'; function logError(config, message, tag) { if (!config || !config.logLevel || config.logLevel < _deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.ERROR) { return; } if (typeof config.onLog === 'function') { config.onLog(_deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.ERROR, tag, message); } if (config.logManager && typeof config.logManager.error === 'function') { config.logManager.error(message, tag); } } function logInfo(config, message, tag) { if (!config || !config.logLevel || config.logLevel < _deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.INFO) { return; } if (typeof config.onLog === 'function') { config.onLog(_deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.INFO, tag, message); } if (config.logManager && typeof config.logManager.info === 'function') { config.logManager.info(message, tag); } } function logWarn(config, message, tag) { if (!config || !config.logLevel || config.logLevel < _deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.WARNING) { return; } if (typeof config.onLog === 'function') { config.onLog(_deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.WARNING, tag, message); } if (config.logManager && typeof config.logManager.warning === 'function') { config.logManager.warning(message, tag); } } const getFlagsFromCampaigns = campaigns => { const flags = new Map(); if (!campaigns || !Array.isArray(campaigns)) { return flags; } campaigns.forEach(campaign => { const object = campaign.variation.modifications.value; for (const key in object) { const value = object[key]; flags.set(key, { key, campaignId: campaign.id, campaignName: campaign.name || '', variationGroupId: campaign.variationGroupId, variationGroupName: campaign.variationGroupName || '', variationId: campaign.variation.id, variationName: campaign.variation.name || '', isReference: campaign.variation.reference, slug: campaign.slug || '', value }); } }); return flags; }; function uuidV4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (char) { const rand = Math.random() * 16 | 0; const value = char === 'x' ? rand : rand & 0x3 | 0x8; return value.toString(16); }); } function useNonInitialEffect(effect, deps) { const initialRender = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(true); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { if (initialRender.current) { initialRender.current = false; return; } if (typeof effect === 'function') { return effect(); } }, deps); } function hasSameType(flagValue, defaultValue) { if (typeof flagValue !== typeof defaultValue) { return false; } if (typeof flagValue === 'object' && typeof defaultValue === 'object' && Array.isArray(flagValue) !== Array.isArray(defaultValue)) { return false; } return true; } // eslint-disable-next-line @typescript-eslint/no-explicit-any function sprintf(format, ...value) { let formatted = format; for (let i = 0; i < value.length; i++) { const element = value[i]; formatted = formatted.replace(new RegExp(`\\{${i}\\}`, 'g'), element); } return formatted; } function hexToValue(hex, config) { if (typeof hex !== 'string') { logError(config, `Invalid hex string: ${hex}`, 'hexToValue'); return null; } let jsonString = ''; for (let i = 0; i < hex.length; i += 2) { const hexChar = hex.slice(i, i + 2); const charCode = parseInt(hexChar, 16); if (isNaN(charCode)) { logError(config, `Invalid hex character: ${hexChar}`, 'hexToValue'); return null; } jsonString += String.fromCharCode(charCode); } try { const value = JSON.parse(jsonString); return value; // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error) { logError(config, `Error while parsing JSON: ${error === null || error === void 0 ? void 0 : error.message}`, 'hexToValue'); return null; } } function extractFlagsMap(initialFlagsData, initialCampaigns) { let flags = new Map(); if (Array.isArray(initialFlagsData)) { initialFlagsData.forEach(flag => { var _hexToValue; flags.set(flag.key, { key: flag.key, campaignId: flag.campaignId, campaignName: flag.campaignName, variationGroupId: flag.variationGroupId, variationGroupName: flag.variationGroupName, variationId: flag.variationId, variationName: flag.variationName, isReference: flag.isReference, campaignType: flag.campaignType, slug: flag.slug, value: (_hexToValue = hexToValue(flag.hex, _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig())) === null || _hexToValue === void 0 ? void 0 : _hexToValue.v }); }); } else if (initialCampaigns) { flags = getFlagsFromCampaigns(initialCampaigns); } return flags; } function deepClone(obj) { return JSON.parse(JSON.stringify(obj)); } function hasContextChanged(original, updated) { return JSON.stringify(original) !== JSON.stringify(updated); } /***/ }), /***/ "@flagship.io/js-sdk": /*!**************************************!*\ !*** external "@flagship.io/js-sdk" ***! \**************************************/ /***/ ((module) => { module.exports = require("@flagship.io/js-sdk"); /***/ }), /***/ "react": /*!************************!*\ !*** external "react" ***! \************************/ /***/ ((module) => { module.exports = require("react"); /***/ }), /***/ "./node_modules/core-js/internals/a-callable.js": /*!******************************************************!*\ !*** ./node_modules/core-js/internals/a-callable.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js"); var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "./node_modules/core-js/internals/try-to-string.js"); var $TypeError = TypeError; // `Assert: IsCallable(argument) is true` module.exports = function (argument) { if (isCallable(argument)) return argument; throw new $TypeError(tryToString(argument) + ' is not a function'); }; /***/ }), /***/ "./node_modules/core-js/internals/an-object.js": /*!*****************************************************!*\ !*** ./node_modules/core-js/internals/an-object.js ***! \*****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); var $String = String; var $TypeError = TypeError; // `Assert: Type(argument) is Object` module.exports = function (argument) { if (isObject(argument)) return argument; throw new $TypeError($String(argument) + ' is not an object'); }; /***/ }), /***/ "./node_modules/core-js/internals/create-non-enumerable-property.js": /*!**************************************************************************!*\ !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***! \**************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); module.exports = DESCRIPTORS ? function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /***/ "./node_modules/core-js/internals/create-property-descriptor.js": /*!**********************************************************************!*\ !*** ./node_modules/core-js/internals/create-property-descriptor.js ***! \**********************************************************************/ /***/ ((module) => { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /***/ "./node_modules/core-js/internals/define-built-in-accessor.js": /*!********************************************************************!*\ !*** ./node_modules/core-js/internals/define-built-in-accessor.js ***! \********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var makeBuiltIn = __webpack_require__(/*! ../internals/make-built-in */ "./node_modules/core-js/internals/make-built-in.js"); var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); module.exports = function (target, name, descriptor) { if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); return defineProperty.f(target, name, descriptor); }; /***/ }), /***/ "./node_modules/core-js/internals/define-global-property.js": /*!******************************************************************!*\ !*** ./node_modules/core-js/internals/define-global-property.js ***! \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; module.exports = function (key, value) { try { defineProperty(global, key, { value: value, configurable: true, writable: true }); } catch (error) { global[key] = value; } return value; }; /***/ }), /***/ "./node_modules/core-js/internals/descriptors.js": /*!*******************************************************!*\ !*** ./node_modules/core-js/internals/descriptors.js ***! \*******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fai