@flagship.io/react-sdk
Version:
Flagship REACT SDK
1,252 lines (1,045 loc) • 84.5 kB
JavaScript
/******/ (() => { // 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 _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__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./src/constants.ts");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __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_2__.logWarn)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.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_2__.hasSameType)(this.flag.value, defaultValue)) {
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logInfo)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(), (0,_utils__WEBPACK_IMPORTED_MODULE_2__.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 _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FSFlagMetadata.Empty();
}
return new _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.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 _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FSFlagStatus.NOT_FOUND;
}
return _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.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__);
'use client';
const initStat = {
isInitializing: true
};
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 _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./constants */ "./src/constants.ts");
/* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
/* harmony import */ var _FSFlag__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FSFlag */ "./src/FSFlag.ts");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils */ "./src/utils.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_3__.FlagshipContext);
const {
visitor
} = state;
if (!visitor) {
return new _FSFlag__WEBPACK_IMPORTED_MODULE_4__.FSFlag(key, state);
}
return visitor.getFlag(key);
};
const handleContextChange = param => {
const {
updateFunction,
functionName,
visitor,
config
} = param;
if (!visitor) {
(0,_utils__WEBPACK_IMPORTED_MODULE_5__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_6__.noVisitorMessage, functionName);
return;
}
const originalContextClone = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.deepClone)(visitor.context);
updateFunction();
const updatedContext = visitor.context;
if ((0,_utils__WEBPACK_IMPORTED_MODULE_5__.hasContextChanged)(originalContextClone, updatedContext)) {
visitor.fetchFlags();
}
};
const useFlagship = () => {
const {
state
} = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_3__.FlagshipContext);
const {
visitor,
config
} = state;
const fsUpdateContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(context => {
handleContextChange({
config,
visitor,
updateFunction: () => visitor === null || visitor === void 0 ? void 0 : visitor.updateContext(context),
functionName: 'updateContext'
});
}, [visitor]);
const fsClearContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
handleContextChange({
config,
visitor,
updateFunction: () => visitor === null || visitor === void 0 ? void 0 : visitor.clearContext(),
functionName: 'cleanContext'
});
}, [visitor]);
const fsAuthenticate = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(visitorId => {
const functionName = 'authenticate';
if (!visitor) {
(0,_utils__WEBPACK_IMPORTED_MODULE_5__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_6__.noVisitorMessage, functionName);
return;
}
const originalVisitorId = visitor.visitorId;
visitor.authenticate(visitorId);
if (originalVisitorId !== visitorId) {
visitor.fetchFlags();
}
}, [visitor]);
const fsUnauthenticate = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
const functionName = 'unauthenticate';
if (!visitor) {
(0,_utils__WEBPACK_IMPORTED_MODULE_5__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_6__.noVisitorMessage, functionName);
return;
}
const originalVisitorId = visitor.visitorId;
visitor.unauthenticate();
if (originalVisitorId !== visitor.visitorId) {
visitor.fetchFlags();
}
}, [visitor]);
const fsSendHit = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(hit => {
const functionName = 'sendHit';
if (!visitor) {
(0,_utils__WEBPACK_IMPORTED_MODULE_5__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_6__.noVisitorMessage, functionName);
return Promise.resolve();
}
if (Array.isArray(hit)) {
return visitor.sendHits(hit);
}
return visitor.sendHit(hit);
}, [visitor]);
const getFlag = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(key => {
if (!visitor) {
return new _FSFlag__WEBPACK_IMPORTED_MODULE_4__.FSFlag(key, state);
}
return visitor.getFlag(key);
}, [visitor]);
const fetchFlags = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async () => {
if (!visitor) {
(0,_utils__WEBPACK_IMPORTED_MODULE_5__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_6__.noVisitorMessage, 'fetchFlags');
return Promise.resolve();
}
return visitor.fetchFlags();
}, [visitor]);
const setConsent = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(hasConsented => {
if (!visitor) {
(0,_utils__WEBPACK_IMPORTED_MODULE_5__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_6__.noVisitorMessage, 'setConsent');
return;
}
visitor.setConsent(hasConsented);
}, [visitor]);
const close = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
return _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_2__.Flagship.close();
}, []);
const getFlags = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
if (!visitor) {
var _state$flags;
const flags = new Map();
(_state$flags = state.flags) === null || _state$flags === void 0 || _state$flags.forEach((flag, key) => {
flags.set(key, new _FSFlag__WEBPACK_IMPORTED_MODULE_4__.FSFlag(key, state));
});
return new _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_2__.FSFlagCollection({
flags
});
}
return visitor.getFlags();
}, [visitor]);
const collectEAIEventsAsync = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async (...args) => {
if (!visitor) {
return;
}
return visitor.collectEAIEventsAsync(...args);
}, [visitor]);
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: {
...(visitor === null || visitor === void 0 ? void 0 : visitor.context)
},
hasConsented: visitor === null || visitor === void 0 ? void 0 : visitor.hasConsented,
sdkStatus: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_2__.Flagship.getStatus(),
flagsStatus: visitor === null || visitor === void 0 ? void 0 : visitor.flagsStatus,
setConsent,
updateContext: fsUpdateContext,
clearContext: fsClearContext,
authenticate: fsAuthenticate,
unauthenticate: fsUnauthenticate,
sendHits: fsSendHit,
getFlag,
fetchFlags,
close,
getFlags,
collectEAIEventsAsync
}), [visitor, 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 _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__);
/* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
/* harmony import */ var _internalType__WEBPACK_IMPORTED_MODULE_5__ = __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");
'use client';
function FlagshipProvider({
children,
envId,
apiKey,
decisionMode = _flagship_io_js_sdk__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
}) {
var _state$config;
const flags = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.extractFlagsMap)(initialFlagsData, initialCampaigns);
const [state, setState] = (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 stateRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
stateRef.current = state;
const visitorDataRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(visitorData);
// #region functions
const onBucketingLastModified = lastUpdate => {
if (onBucketingUpdated) {
onBucketingUpdated(lastUpdate);
}
setLastModified(lastUpdate);
};
const statusChanged = status => {
if (onSdkStatusChanged) {
onSdkStatusChanged(status);
}
switch (status) {
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_PANIC:
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_INITIALIZED:
createVisitor();
break;
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_NOT_INITIALIZED:
setState(prev => ({
...prev,
config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().getConfig(),
isInitializing: false
}));
break;
}
};
const initSdk = () => {
_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().start(envId, apiKey, {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
decisionMode: decisionMode,
fetchNow,
onSdkStatusChanged: statusChanged,
onBucketingUpdated: onBucketingLastModified,
hitDeduplicationTime,
language,
sdkVersion,
...props
});
};
function initializeState(param) {
setState(currentState => ({
...currentState,
visitor: param.fsVisitor,
config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().getConfig(),
isInitializing: false,
hasVisitorData: !!visitorData
}));
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const onVisitorReady = (fsVisitor, error) => {
if (error) {
(0,_utils__WEBPACK_IMPORTED_MODULE_3__.logError)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().getConfig(), error.message || error, 'onReady');
}
initializeState({
fsVisitor
});
};
const createVisitor = () => {
if (!visitorDataRef.current) {
return;
}
const fsVisitor = _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().newVisitor({
visitorId: visitorDataRef.current.id,
context: visitorDataRef.current.context,
isAuthenticated: visitorDataRef.current.isAuthenticated,
hasConsented: visitorDataRef.current.hasConsented,
initialCampaigns,
initialFlagsData,
onFlagsStatusChanged,
shouldSaveInstance
});
fsVisitor === null || fsVisitor === void 0 || fsVisitor.on('ready', error => {
onVisitorReady(fsVisitor, error);
});
if (!fetchNow) {
initializeState({
fsVisitor
});
}
};
function updateVisitor() {
if (!visitorDataRef.current || _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().getStatus() !== _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_INITIALIZED) {
return;
}
if (!state.visitor || state.visitor.visitorId !== visitorDataRef.current.id && (!visitorDataRef.current.isAuthenticated || visitorDataRef.current.isAuthenticated && state.visitor.anonymousId)) {
var _state$visitor;
(_state$visitor = state.visitor) === null || _state$visitor === void 0 || _state$visitor.cleanup();
createVisitor();
return;
}
if (visitorDataRef.current.hasConsented !== state.visitor.hasConsented) {
var _visitorDataRef$curre;
state.visitor.setConsent((_visitorDataRef$curre = visitorDataRef.current.hasConsented) !== null && _visitorDataRef$curre !== void 0 ? _visitorDataRef$curre : true);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
state.visitor.updateContext(visitorDataRef.current.context);
if (!state.visitor.anonymousId && visitorDataRef.current.isAuthenticated) {
state.visitor.authenticate(visitorDataRef.current.id);
}
if (state.visitor.anonymousId && !visitorDataRef.current.isAuthenticated) {
state.visitor.unauthenticate();
}
state.visitor.fetchFlags();
}
// #endregion
(0,_utils__WEBPACK_IMPORTED_MODULE_3__.useNonInitialEffect)(() => {
if (fetchFlagsOnBucketingUpdated) {
var _state$visitor2;
(_state$visitor2 = state.visitor) === null || _state$visitor2 === void 0 || _state$visitor2.fetchFlags();
}
}, [lastModified]);
(0,_utils__WEBPACK_IMPORTED_MODULE_3__.useNonInitialEffect)(() => {
visitorDataRef.current = visitorData;
updateVisitor();
}, [JSON.stringify(visitorData)]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
initSdk();
}, [envId, apiKey, decisionMode]);
const handleDisplay = () => {
const isFirstInit = !state.visitor;
if (state.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);
};
(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_5__.INTERNAL_EVENTS.FsTriggerRendering, onVariationsForced);
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_5__.INTERNAL_EVENTS.FsTriggerRendering, onVariationsForced);
};
}, [(_state$config = state.config) === null || _state$config === void 0 ? void 0 : _state$config.isQAModeEnabled]);
const onVariationsForced = e => {
const {
detail
} = e;
if (detail.forcedReFetchFlags) {
var _stateRef$current;
(_stateRef$current = stateRef.current) === null || _stateRef$current === void 0 || (_stateRef$current = _stateRef$current.visitor) === null || _stateRef$current === void 0 || _stateRef$current.fetchFlags();
} else {
setState(state => ({
...state,
toggleForcedVariations: !state.toggleForcedVariations
}));
}
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext.Provider, {
value: {
state,
setState
}
}, handleDisplay());
}
/***/ }),
/***/ "./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/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.1.1';
/***/ }),
/***/ "./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 _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';
function logError(config, message, tag) {
if (!config || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.LogLevel.ERROR) {
return;
}
if (typeof config.onLog === 'function') {
config.onLog(_flagship_io_js_sdk__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 < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.LogLevel.INFO) {
return;
}
if (typeof config.onLog === 'function') {
config.onLog(_flagship_io_js_sdk__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 < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.LogLevel.WARNING) {
return;
}
if (typeof config.onLog === 'function') {
config.onLog(_flagship_io_js_sdk__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, _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().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/fails.js");
// Detect IE8's incomplete defineProperty implementation
module.exports = !fails(function () {
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;
});
/***/ }),
/***/ "./node_modules/core-js/internals/document-create-element.js":
/*!*******************************************************************!*\
!*** ./node_modules/core-js/internals/document-create-element.js ***!
\*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
var document = global.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
return EXISTS ? document.createElement(it) : {};
};
/***/ }),
/***/ "./node_modules/core-js/internals/engine-user-agent.js":
/*!*************************************************************!*\
!*** ./node_modules/core-js/internals/engine-user-agent.js ***!
\*************************************************************/
/***/ ((module) => {
module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';
/***/ }),
/***/ "./node_modules/core-js/internals/engine-v8-version.js":
/*!*************************************************************!*\
!*** ./node_modules/core-js/internals/engine-v8-version.js ***!
\*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
var process = global.process;
var Deno = global.Deno;
var versions = process && process.versions || Deno && Deno.version;
var v8 = versions && versions.v8;
var match, version;
if (v8) {
match = v8.split('.');
// in old Chrome, versions of V8 isn't V8 = Chrome / 10
// but their correct versions are not interesting for us
version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
}
// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
// so check `userAgent` even if `.v8` exists, but 0
if (!version && userAgent) {
match = userAgent.match(/Edge\/(\d+)/);
if (!match || match[1] >= 74) {
match = userAgent.match(/Chrome\/(\d+)/);
if (match) version = +match[1];
}
}
module.exports = version;
/***/ }),
/***/ "./node_modules/core-js/internals/fails.js":
/*!*************************************************!*\
!*** ./node_modules/core-js/internals/fails.js ***!
\*************************************************/
/***/ ((module) => {
module.exports = function (exec) {
try {
return !!exec();
} catch (error) {
return true;
}
};
/***/ }),
/***/ "./node_modules/core-js/internals/function-bind-native.js":
/*!****************************************************************!*\
!*** ./node_modules/core-js/internals/function-bind-native.js ***!
\****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
module.exports = !fails(function () {
// eslint-disable-next-line es/no-function-prototype-bind -- safe
var test = (function () { /* empty */ }).bind();
// eslint-disable-next-line no-prototype-builtins -- safe
return typeof test != 'function' || test.hasOwnProperty('prototype');
});
/***/ }),
/***/ "./node_modules/core-js/internals/function-call.js":
/*!*********************************************************!*\
!*** ./node_modules/core-js/internals/function-call.js ***!
\*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ "./node_modules/core-js/internals/function-bind-native.js");
var call = Function.prototype.call;
module.exports = NATIVE_BIND ? call.bind(call) : function () {
return call.apply(call, arguments);
};
/***/ }),
/***/ "./node_modules/core-js/internals/function-name.js":
/*!*********************************************************!*\
!*** ./node_modules/core-js/internals/function-name.js ***!
\*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
var FunctionPrototype = Function.prototype;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
var EXISTS = hasOwn(FunctionPrototype, 'name');
// additional protection from minified / mangled / dropped function names
var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));
module.exports = {
EXISTS: EXISTS,
PROPER: PROPER,
CONFIGURABLE: CONFIGURABLE
};
/***/ }),
/***/ "./node_modules/core-js/internals/function-uncurry-this.js":
/*!*****************************************************************!*\
!*** ./node_modules/core-js/internals/function-uncurry-this.js ***!
\*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ "./node_modules/core-js/internals/function-bind-native.js");
var FunctionPrototype = Function.prototype;
var call = FunctionPrototype.call;
var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);
module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {
return function () {
return call.apply(fn, arguments);
};
};
/***/ }),
/***/ "./node_modules/core-js/internals/get-built-in.js":
/*!********************************************************!*\
!*** ./node_modules/core-js/internals/get-built-in.js ***!
\********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
var aFunction = function (argument) {
return isCallable(argument) ? argument : undefined;
};
module.exports = function (namespace, method) {
return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];
};
/***/ }),
/***/ "./node_modules/core-js/internals/get-method.js":
/*!******************************************************!*\
!*** ./node_modules/core-js/internals/get-method.js ***!
\******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js");
var isNullOrUndefined = __webpack_require__(/*! ../internals/is-null-or-undefined */ "./node_modules/core-js/internals/is-null-or-undefined.js");
// `GetMethod` abstract operation
// https://tc39.es/ecma262/#sec-getmethod
module.exports = function (V, P) {
var func = V[P];
return isNullOrUndefined(func) ? undefined : aCallable(func);
};
/***/ }),
/***/ "./node_modules/core-js/internals/global.js":
/*!**************************************************!*\
!*** ./node_modules/core-js/internals/global.js ***!
\**************************************************/
/***/ (function(module) {
var check = function (it) {
return it && it.Math === Math && it;
};
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
module.exports =
// eslint-disable-next-line es/no-global-this -- safe
check(typeof globalThis == 'object' && globalThis) ||
check(typeof window == 'object' && window) ||
// eslint-disable-next-line no-restricted-globals -- safe
check(typeof self == 'object' && self) ||
check(typeof global == 'object' && global) ||
check(typeof this == 'object' && this) ||
// eslint-disable-next-line no-new-func -- fallback
(function () { return this; })() || Function('return this')();
/***/ }),
/***/ "./node_modules/core-js/internals/has-own-property.js":
/*!************************************************************!*\
!*** ./node_modules/core-js/internals/has-own-property.js ***!
\************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
var hasOwnProperty = uncurryThis({}.hasOwnProperty);
// `HasOwnProperty` abstract operation
// https://tc39.es/ecma262/#sec-hasownproperty
// eslint-disable-next-line es/no-object-hasown -- safe
module.exports = Object.hasOwn || function hasOwn(it, key) {
return hasOwnProperty(toObject(it), key);
};
/***/ }),
/***/ "./node_modules/core-js/internals/hidden-keys.js":
/*!*******************************************************!*\
!*** ./node_modules/core-js/internals/hidden-keys.js ***!
\*******************************************************/
/***/ ((module) => {
module.exports = {};
/***/ }),
/***/ "./node_modules/core-js/internals/ie8-dom-define.js":
/*!**********************************************************!*\
!*** ./node_modules/core-js/internals/ie8-dom-define.js ***!
\**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js");
// Thanks to IE8 for its funny defineProperty
module.exports = !DESCRIPTORS && !fails(function () {
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
return Object.defineProperty(createElement('div'), 'a', {
get: function () { return 7; }
}).a !== 7;
});
/***/ }),
/***/ "./node_modules/core-js/internals/inspect-source.js":
/*!**********************************************************!*\
!*** ./node_modules/core-js/internals/inspect-source.js ***!
\**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js");
var functionToString = uncurryThis(Function.toString);
// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
if (!isCallable(store.inspectSource)) {
store.inspectSource = function (it) {
return functionToString(it);
};
}
module.exports = store.inspectSource;
/***/ }),
/***/ "./node_modules/core-js/internals/internal-state.js":
/*!**********************************************************!*\
!*** ./node_modules/core-js/internals/internal-state.js ***!
\**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var NATIVE_WEAK_MAP =