UNPKG

@flagship.io/js-sdk

Version:
1,595 lines (1,309 loc) 563 kB
/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 34: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var isCallable = __webpack_require__(4901); module.exports = function (it) { return typeof it == 'object' ? it !== null : isCallable(it); }; /***/ }), /***/ 44: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; __webpack_require__(9463); __webpack_require__(3418); __webpack_require__(3792); __webpack_require__(4782); __webpack_require__(7495); var _interopRequireDefault = __webpack_require__(4994); exports.__esModule = true; exports.SharedActionTracking = void 0; __webpack_require__(2008); __webpack_require__(2062); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(9293)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(3693)); var _FlagshipConstant = __webpack_require__(2932); var _index = __webpack_require__(5588); var _type = __webpack_require__(6421); var _utils = __webpack_require__(6517); var _Event = __webpack_require__(8796); function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } class SharedActionTracking { constructor({ sdkConfig }) { (0, _defineProperty2.default)(this, "visitor", null); this.trustedNonces = {}; this.sdkConfig = sdkConfig; } generateNonce() { if (!(0, _utils.isBrowser)() || !this.visitor || !this.visitor.hasConsented) { return undefined; } const nonce = Math.random().toString(36).substring(2) + Date.now().toString(36); this.trustedNonces[nonce] = false; return nonce; } initialize(visitor) { var _window2; this.visitor = visitor; this.initTimestamp = Date.now(); if (!(0, _utils.isBrowser)()) { return; } if (this.onMessageReceived) { var _window; (_window = window) == null || _window.removeEventListener('message', this.onMessageReceived); } this.onMessageReceived = event => { this.handleMessage(event); }; (_window2 = window) == null || _window2.addEventListener('message', this.onMessageReceived); } processHit(hit) { var _this = this; return (0, _asyncToGenerator2.default)(function* () { var _this$visitor, _this$visitor2, _this$visitor3; if ((hit == null ? void 0 : hit.ec) !== _index.EventCategory.ACTION_TRACKING || !hit.ea) { (0, _utils.logDebugSprintf)(_this.sdkConfig, _FlagshipConstant.ACTION_TRACKING, _FlagshipConstant.ACTION_TRACKING_INVALID_HIT, hit); return; } const eventHit = new _Event.Event({ category: hit.ec, action: hit.ea, label: hit.el, value: hit.ev, visitorId: (_this$visitor = _this.visitor) == null ? void 0 : _this$visitor.visitorId, anonymousId: (_this$visitor2 = _this.visitor) == null ? void 0 : _this$visitor2.anonymousId, isActionTrackingHit: true }); (_this$visitor3 = _this.visitor) == null || _this$visitor3.addInTrackingManager(eventHit); (0, _utils.logDebugSprintf)(_this.sdkConfig, _FlagshipConstant.ACTION_TRACKING, _FlagshipConstant.ACTION_TRACKING_HIT_RECEIVED, hit); })(); } handleMessage(event) { var _this$visitor4; if (!(event != null && event.data) || (event == null ? void 0 : event.origin) !== window.location.origin || !((_this$visitor4 = this.visitor) != null && _this$visitor4.hasConsented)) { return; } const payload = event.data; if (payload.action !== _type.SharedActionSource.ABT_TAG_TRACK_ACTION || !payload.nonce) { return; } const nonce = payload.nonce; if (this.trustedNonces[nonce] === undefined || this.trustedNonces[nonce]) { (0, _utils.logDebugSprintf)(this.sdkConfig, _FlagshipConstant.ACTION_TRACKING, _FlagshipConstant.ACTION_TRACKING_INVALID_NONCE, nonce); return; } this.trustedNonces[nonce] = true; const hits = payload.data; if (!hits || !hits.length) { return; } var _iterator = _createForOfIteratorHelper(hits), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { const hit = _step.value; this.processHit(hit); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } dispatchEventHits(hits) { if (!this.shouldProcessHits(hits)) { return; } const nonce = this.getNonce(); if (!nonce) { return; } const hitsToDispatch = this.filterHitsToDispatch(hits); if (!hitsToDispatch.length) { return; } this.postHits(hitsToDispatch, nonce); } shouldProcessHits(hits) { return (0, _utils.isBrowser)() && !!this.visitor && !!hits && hits.length > 0; } getNonce() { var _window$ABTasty, _window$ABTasty$_getA; return (_window$ABTasty = window.ABTasty) == null || (_window$ABTasty = _window$ABTasty.api) == null || (_window$ABTasty = _window$ABTasty.internal) == null || (_window$ABTasty$_getA = _window$ABTasty._getActionTrackingNonce) == null ? void 0 : _window$ABTasty$_getA.call(_window$ABTasty); } filterHitsToDispatch(hits) { return hits.filter(hit => { var _this$visitor5, _this$visitor6; const isHitPostInit = this.initTimestamp && hit.createdAt >= this.initTimestamp; const isHitForVisitor = hit.visitorId === ((_this$visitor5 = this.visitor) == null ? void 0 : _this$visitor5.visitorId) || hit.visitorId === ((_this$visitor6 = this.visitor) == null ? void 0 : _this$visitor6.anonymousId); return hit.data.ec === _index.EventCategory.ACTION_TRACKING && isHitPostInit && isHitForVisitor; }).map(hit => hit.data); } postHits(hitsToDispatch, nonce) { var _window3; const payload = { action: _type.SharedActionSource.ABT_WEB_SDK_TRACK_ACTION, data: hitsToDispatch, nonce, timestamp: Date.now() }; (_window3 = window) == null || _window3.postMessage(payload, window.location.origin); (0, _utils.logDebugSprintf)(this.sdkConfig, _FlagshipConstant.ACTION_TRACKING, _FlagshipConstant.ACTION_TRACKING_DISPATCHED, hitsToDispatch); } } exports.SharedActionTracking = SharedActionTracking; /***/ }), /***/ 79: /***/ ((module) => { function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 81: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var call = __webpack_require__(9565); var aCallable = __webpack_require__(9306); var anObject = __webpack_require__(8551); var tryToString = __webpack_require__(6823); var getIteratorMethod = __webpack_require__(851); var $TypeError = TypeError; module.exports = function (argument, usingIterator) { var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); throw new $TypeError(tryToString(argument) + ' is not iterable'); }; /***/ }), /***/ 82: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(4994); exports.__esModule = true; exports.ApiManager = void 0; var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(9293)); var _DecisionManager = __webpack_require__(5232); class ApiManager extends _DecisionManager.DecisionManager { getCampaignsAsync(visitor) { var _this = this; return (0, _asyncToGenerator2.default)(function* () { return _this.getDecisionApiCampaignsAsync(visitor); })(); } } exports.ApiManager = ApiManager; /***/ }), /***/ 280: /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var $ = __webpack_require__(6518); var getBuiltIn = __webpack_require__(7751); var IS_PURE = __webpack_require__(6395); var NativePromiseConstructor = __webpack_require__(550); var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(916).CONSTRUCTOR); var promiseResolve = __webpack_require__(3438); var PromiseConstructorWrapper = getBuiltIn('Promise'); var CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; // `Promise.resolve` method // https://tc39.es/ecma262/#sec-promise.resolve $({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, { resolve: function resolve(x) { return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x); } }); /***/ }), /***/ 283: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var uncurryThis = __webpack_require__(9504); var fails = __webpack_require__(9039); var isCallable = __webpack_require__(4901); var hasOwn = __webpack_require__(9297); var DESCRIPTORS = __webpack_require__(3724); var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(350).CONFIGURABLE); var inspectSource = __webpack_require__(3706); var InternalStateModule = __webpack_require__(1181); var enforceInternalState = InternalStateModule.enforce; var getInternalState = InternalStateModule.get; var $String = String; // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; var stringSlice = uncurryThis(''.slice); var replace = uncurryThis(''.replace); var join = uncurryThis([].join); var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; }); var TEMPLATE = String(String).split('String'); var makeBuiltIn = module.exports = function (value, name, options) { if (stringSlice($String(name), 0, 7) === 'Symbol(') { name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; } if (options && options.getter) name = 'get ' + name; if (options && options.setter) name = 'set ' + name; if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); else value.name = name; } if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { defineProperty(value, 'length', { value: options.arity }); } try { if (options && hasOwn(options, 'constructor') && options.constructor) { if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable } else if (value.prototype) value.prototype = undefined; } catch (error) { /* empty */ } var state = enforceInternalState(value); if (!hasOwn(state, 'source')) { state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); } return value; }; // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative // eslint-disable-next-line no-extend-native -- required Function.prototype.toString = makeBuiltIn(function toString() { return isCallable(this) && getInternalState(this).source || inspectSource(this); }, 'toString'); /***/ }), /***/ 298: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* eslint-disable es/no-object-getownpropertynames -- safe */ var classof = __webpack_require__(4576); var toIndexedObject = __webpack_require__(5397); var $getOwnPropertyNames = (__webpack_require__(8480).f); var arraySlice = __webpack_require__(7680); var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; var getWindowNames = function (it) { try { return $getOwnPropertyNames(it); } catch (error) { return arraySlice(windowNames); } }; // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window module.exports.f = function getOwnPropertyNames(it) { return windowNames && classof(it) === 'Window' ? getWindowNames(it) : $getOwnPropertyNames(toIndexedObject(it)); }; /***/ }), /***/ 350: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var DESCRIPTORS = __webpack_require__(3724); var hasOwn = __webpack_require__(9297); 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 }; /***/ }), /***/ 397: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var getBuiltIn = __webpack_require__(7751); module.exports = getBuiltIn('document', 'documentElement'); /***/ }), /***/ 421: /***/ ((module) => { "use strict"; module.exports = {}; /***/ }), /***/ 436: /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var $ = __webpack_require__(6518); var IS_PURE = __webpack_require__(6395); var IS_NODE = __webpack_require__(6193); var globalThis = __webpack_require__(2195); var call = __webpack_require__(9565); var defineBuiltIn = __webpack_require__(6840); var setPrototypeOf = __webpack_require__(2967); var setToStringTag = __webpack_require__(687); var setSpecies = __webpack_require__(7633); var aCallable = __webpack_require__(9306); var isCallable = __webpack_require__(4901); var isObject = __webpack_require__(34); var anInstance = __webpack_require__(679); var speciesConstructor = __webpack_require__(2293); var task = (__webpack_require__(9225).set); var microtask = __webpack_require__(1955); var hostReportErrors = __webpack_require__(3138); var perform = __webpack_require__(1103); var Queue = __webpack_require__(8265); var InternalStateModule = __webpack_require__(1181); var NativePromiseConstructor = __webpack_require__(550); var PromiseConstructorDetection = __webpack_require__(916); var newPromiseCapabilityModule = __webpack_require__(6043); var PROMISE = 'Promise'; var FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR; var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); var setInternalState = InternalStateModule.set; var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; var PromiseConstructor = NativePromiseConstructor; var PromisePrototype = NativePromisePrototype; var TypeError = globalThis.TypeError; var document = globalThis.document; var process = globalThis.process; var newPromiseCapability = newPromiseCapabilityModule.f; var newGenericPromiseCapability = newPromiseCapability; var DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent); var UNHANDLED_REJECTION = 'unhandledrejection'; var REJECTION_HANDLED = 'rejectionhandled'; var PENDING = 0; var FULFILLED = 1; var REJECTED = 2; var HANDLED = 1; var UNHANDLED = 2; var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; // helpers var isThenable = function (it) { var then; return isObject(it) && isCallable(then = it.then) ? then : false; }; var callReaction = function (reaction, state) { var value = state.value; var ok = state.state === FULFILLED; var handler = ok ? reaction.ok : reaction.fail; var resolve = reaction.resolve; var reject = reaction.reject; var domain = reaction.domain; var result, then, exited; try { if (handler) { if (!ok) { if (state.rejection === UNHANDLED) onHandleUnhandled(state); state.rejection = HANDLED; } if (handler === true) result = value; else { if (domain) domain.enter(); result = handler(value); // can throw if (domain) { domain.exit(); exited = true; } } if (result === reaction.promise) { reject(new TypeError('Promise-chain cycle')); } else if (then = isThenable(result)) { call(then, result, resolve, reject); } else resolve(result); } else reject(value); } catch (error) { if (domain && !exited) domain.exit(); reject(error); } }; var notify = function (state, isReject) { if (state.notified) return; state.notified = true; microtask(function () { var reactions = state.reactions; var reaction; while (reaction = reactions.get()) { callReaction(reaction, state); } state.notified = false; if (isReject && !state.rejection) onUnhandled(state); }); }; var dispatchEvent = function (name, promise, reason) { var event, handler; if (DISPATCH_EVENT) { event = document.createEvent('Event'); event.promise = promise; event.reason = reason; event.initEvent(name, false, true); globalThis.dispatchEvent(event); } else event = { promise: promise, reason: reason }; if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event); else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); }; var onUnhandled = function (state) { call(task, globalThis, function () { var promise = state.facade; var value = state.value; var IS_UNHANDLED = isUnhandled(state); var result; if (IS_UNHANDLED) { result = perform(function () { if (IS_NODE) { process.emit('unhandledRejection', value, promise); } else dispatchEvent(UNHANDLED_REJECTION, promise, value); }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; if (result.error) throw result.value; } }); }; var isUnhandled = function (state) { return state.rejection !== HANDLED && !state.parent; }; var onHandleUnhandled = function (state) { call(task, globalThis, function () { var promise = state.facade; if (IS_NODE) { process.emit('rejectionHandled', promise); } else dispatchEvent(REJECTION_HANDLED, promise, state.value); }); }; var bind = function (fn, state, unwrap) { return function (value) { fn(state, value, unwrap); }; }; var internalReject = function (state, value, unwrap) { if (state.done) return; state.done = true; if (unwrap) state = unwrap; state.value = value; state.state = REJECTED; notify(state, true); }; var internalResolve = function (state, value, unwrap) { if (state.done) return; state.done = true; if (unwrap) state = unwrap; try { if (state.facade === value) throw new TypeError("Promise can't be resolved itself"); var then = isThenable(value); if (then) { microtask(function () { var wrapper = { done: false }; try { call(then, value, bind(internalResolve, wrapper, state), bind(internalReject, wrapper, state) ); } catch (error) { internalReject(wrapper, error, state); } }); } else { state.value = value; state.state = FULFILLED; notify(state, false); } } catch (error) { internalReject({ done: false }, error, state); } }; // constructor polyfill if (FORCED_PROMISE_CONSTRUCTOR) { // 25.4.3.1 Promise(executor) PromiseConstructor = function Promise(executor) { anInstance(this, PromisePrototype); aCallable(executor); call(Internal, this); var state = getInternalPromiseState(this); try { executor(bind(internalResolve, state), bind(internalReject, state)); } catch (error) { internalReject(state, error); } }; PromisePrototype = PromiseConstructor.prototype; // eslint-disable-next-line no-unused-vars -- required for `.length` Internal = function Promise(executor) { setInternalState(this, { type: PROMISE, done: false, notified: false, parent: false, reactions: new Queue(), rejection: false, state: PENDING, value: null }); }; // `Promise.prototype.then` method // https://tc39.es/ecma262/#sec-promise.prototype.then Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) { var state = getInternalPromiseState(this); var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); state.parent = true; reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; reaction.fail = isCallable(onRejected) && onRejected; reaction.domain = IS_NODE ? process.domain : undefined; if (state.state === PENDING) state.reactions.add(reaction); else microtask(function () { callReaction(reaction, state); }); return reaction.promise; }); OwnPromiseCapability = function () { var promise = new Internal(); var state = getInternalPromiseState(promise); this.promise = promise; this.resolve = bind(internalResolve, state); this.reject = bind(internalReject, state); }; newPromiseCapabilityModule.f = newPromiseCapability = function (C) { return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); }; if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) { nativeThen = NativePromisePrototype.then; if (!NATIVE_PROMISE_SUBCLASSING) { // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { var that = this; return new PromiseConstructor(function (resolve, reject) { call(nativeThen, that, resolve, reject); }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640 }, { unsafe: true }); } // make `.constructor === Promise` work for native promise-based APIs try { delete NativePromisePrototype.constructor; } catch (error) { /* empty */ } // make `instanceof Promise` work for native promise-based APIs if (setPrototypeOf) { setPrototypeOf(NativePromisePrototype, PromisePrototype); } } } // `Promise` constructor // https://tc39.es/ecma262/#sec-promise-executor $({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { Promise: PromiseConstructor }); setToStringTag(PromiseConstructor, PROMISE, false, true); setSpecies(PROMISE); /***/ }), /***/ 448: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(4994); exports.__esModule = true; exports.FSFlagCollection = void 0; __webpack_require__(3418); __webpack_require__(3792); __webpack_require__(6033); __webpack_require__(3362); __webpack_require__(9479); __webpack_require__(1415); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(9293)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(3693)); var _utils = __webpack_require__(6517); var _FsFlags = __webpack_require__(4707); var _FlagshipConstant = __webpack_require__(2932); /** * Represents a collection of flags. */ class FSFlagCollection { /** * Creates a new instance of FSFlagCollection. * @param param - The parameter object. * @param param.visitor - The visitor delegate. * @param param.flags - The initial flags. */ constructor(param) { (0, _defineProperty2.default)(this, "_keys", new Set()); const visitor = param.visitor, flags = param.flags; this._visitor = visitor; this._flags = flags || new Map(); if (this._flags.size === 0) { this._keys = new Set(visitor == null ? void 0 : visitor.flagsData.keys()); this._keys.forEach(key => { this._flags.set(key, new _FsFlags.FSFlag({ key, visitor })); }); } else { this._keys = new Set(this._flags.keys()); } } /** * @inheritdoc */ get size() { return this._keys.size; } /** * @inheritdoc */ get(key) { const flag = this._flags.get(key); if (!flag) { var _this$_visitor; if ((_this$_visitor = this._visitor) != null && _this$_visitor.config) { (0, _utils.logWarningSprintf)(this._visitor.config, _FlagshipConstant.GET_FLAG, _FlagshipConstant.GET_FLAG_NOT_FOUND, this._visitor.visitorId, key); } return new _FsFlags.FSFlag({ key }); } return flag; } /** * @inheritdoc */ has(key) { return this._keys.has(key); } /** * @inheritdoc */ keys() { return this._keys; } /** * @inheritdoc */ [Symbol.iterator]() { let index = 0; const keysArray = Array.from(this._keys); return { next: () => { if (index < keysArray.length) { const key = keysArray[index++]; return { value: [key, this._flags.get(key)], done: false }; } else { return { value: null, done: true }; } } }; } /** * @inheritdoc */ filter(predicate) { const flags = new Map(); this._flags.forEach((flag, key) => { if (predicate(flag, key, this)) { flags.set(key, flag); } }); return new FSFlagCollection({ visitor: this._visitor, flags }); } /** * @inheritdoc */ exposeAll() { var _this = this; return (0, _asyncToGenerator2.default)(function* () { yield Promise.all(Array.from(_this._flags.values(), flag => flag.visitorExposed())); })(); } /** * @inheritdoc */ getMetadata() { const metadata = new Map(); this._flags.forEach((flag, key) => { metadata.set(key, flag.metadata); }); return metadata; } /** * @inheritdoc */ toJSON() { const serializedData = []; this._flags.forEach((flag, key) => { const metadata = flag.metadata; serializedData.push({ key, campaignId: metadata.campaignId, campaignName: metadata.campaignName, variationGroupId: metadata.variationGroupId, variationGroupName: metadata.variationGroupName, variationId: metadata.variationId, variationName: metadata.variationName, isReference: metadata.isReference, campaignType: metadata.campaignType, slug: metadata.slug, hex: (0, _utils.valueToHex)({ v: flag.getValue(null, false) }) }); }); return serializedData; } forEach(callbackfn) { this._flags.forEach((flag, key) => { callbackfn(flag, key, this); }); } } exports.FSFlagCollection = FSFlagCollection; /***/ }), /***/ 509: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; __webpack_require__(2008); __webpack_require__(1278); var _interopRequireDefault = __webpack_require__(4994); exports.__esModule = true; exports.BucketingConfig = void 0; var _defineProperty2 = _interopRequireDefault(__webpack_require__(3693)); var _index = __webpack_require__(5394); var _DecisionMode = __webpack_require__(8884); var _FlagshipConfig = __webpack_require__(7999); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } class BucketingConfig extends _FlagshipConfig.FlagshipConfig { constructor(param) { var _param$pollingInterva; super(_objectSpread(_objectSpread({}, param), {}, { decisionMode: _DecisionMode.DecisionMode.BUCKETING })); this.pollingInterval = (_param$pollingInterva = param == null ? void 0 : param.pollingInterval) != null ? _param$pollingInterva : _index.DEFAULT_POLLING_INTERVAL; this.onBucketingUpdated = param == null ? void 0 : param.onBucketingUpdated; this.fetchThirdPartyData = param == null ? void 0 : param.fetchThirdPartyData; } } exports.BucketingConfig = BucketingConfig; /***/ }), /***/ 511: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var isRegExp = __webpack_require__(788); var $TypeError = TypeError; module.exports = function (it) { if (isRegExp(it)) { throw new $TypeError("The method doesn't accept regular expressions"); } return it; }; /***/ }), /***/ 533: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; // https://github.com/tc39/proposal-string-pad-start-end var uncurryThis = __webpack_require__(9504); var toLength = __webpack_require__(8014); var toString = __webpack_require__(655); var $repeat = __webpack_require__(2333); var requireObjectCoercible = __webpack_require__(7750); var repeat = uncurryThis($repeat); var stringSlice = uncurryThis(''.slice); var ceil = Math.ceil; // `String.prototype.{ padStart, padEnd }` methods implementation var createMethod = function (IS_END) { return function ($this, maxLength, fillString) { var S = toString(requireObjectCoercible($this)); var intMaxLength = toLength(maxLength); var stringLength = S.length; var fillStr = fillString === undefined ? ' ' : toString(fillString); var fillLen, stringFiller; if (intMaxLength <= stringLength || fillStr === '') return S; fillLen = intMaxLength - stringLength; stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length)); if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen); return IS_END ? S + stringFiller : stringFiller + S; }; }; module.exports = { // `String.prototype.padStart` method // https://tc39.es/ecma262/#sec-string.prototype.padstart start: createMethod(false), // `String.prototype.padEnd` method // https://tc39.es/ecma262/#sec-string.prototype.padend end: createMethod(true) }; /***/ }), /***/ 537: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var NativePromiseConstructor = __webpack_require__(550); var checkCorrectnessOfIteration = __webpack_require__(4428); var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(916).CONSTRUCTOR); module.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) { NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ }); }); /***/ }), /***/ 550: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var globalThis = __webpack_require__(2195); module.exports = globalThis.Promise; /***/ }), /***/ 564: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; exports.__esModule = true; exports.TrackingManagerConfig = void 0; var _index = __webpack_require__(5394); var _utils = __webpack_require__(6517); class TrackingManagerConfig { constructor(param) { this.batchIntervals = param == null ? void 0 : param.batchIntervals; this.poolMaxSize = param == null ? void 0 : param.poolMaxSize; this._batchStrategy = this.getCacheStrategy(param == null ? void 0 : param.cacheStrategy); } getCacheStrategy(cacheStrategy) { if (typeof cacheStrategy === 'number') { return cacheStrategy; } return (0, _utils.isBrowser)() ? _index.CacheStrategy.CONTINUOUS_CACHING : _index.CacheStrategy.PERIODIC_CACHING; } get batchIntervals() { return this._batchIntervals; } set batchIntervals(v) { if (typeof v !== 'number' || v < 0 || v > 10800) { v = (0, _utils.isBrowser)() ? _index.DEFAULT_BROWSER_TIME_INTERVAL : _index.DEFAULT_SERVER_TIME_INTERVAL; } this._batchIntervals = v; } get poolMaxSize() { return this._poolMaxSize; } set poolMaxSize(v) { if (typeof v !== 'number' || v < 5) { v = (0, _utils.isBrowser)() ? _index.DEFAULT_BROWSER_POOL_MAX_SIZE : _index.DEFAULT_SERVER_POOL_MAX_SIZE; } this._poolMaxSize = v; } get cacheStrategy() { return this._batchStrategy; } } exports.TrackingManagerConfig = TrackingManagerConfig; /***/ }), /***/ 568: /***/ ((__unused_webpack_module, exports) => { "use strict"; exports.__esModule = true; exports.EventCategory = void 0; let EventCategory = exports.EventCategory = /*#__PURE__*/function (EventCategory) { EventCategory["ACTION_TRACKING"] = "Action Tracking"; EventCategory["USER_ENGAGEMENT"] = "User Engagement"; return EventCategory; }({}); /***/ }), /***/ 597: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var fails = __webpack_require__(9039); var wellKnownSymbol = __webpack_require__(8227); var V8_VERSION = __webpack_require__(9519); var SPECIES = wellKnownSymbol('species'); module.exports = function (METHOD_NAME) { // We can't use this feature detection in V8 since it causes // deoptimization and serious performance degradation // https://github.com/zloirock/core-js/issues/677 return V8_VERSION >= 51 || !fails(function () { var array = []; var constructor = array.constructor = {}; constructor[SPECIES] = function () { return { foo: 1 }; }; return array[METHOD_NAME](Boolean).foo !== 1; }); }; /***/ }), /***/ 616: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var fails = __webpack_require__(9039); 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'); }); /***/ }), /***/ 655: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var classof = __webpack_require__(6955); var $String = String; module.exports = function (argument) { if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); return $String(argument); }; /***/ }), /***/ 679: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var isPrototypeOf = __webpack_require__(1625); var $TypeError = TypeError; module.exports = function (it, Prototype) { if (isPrototypeOf(Prototype, it)) return it; throw new $TypeError('Incorrect invocation'); }; /***/ }), /***/ 687: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var defineProperty = (__webpack_require__(4913).f); var hasOwn = __webpack_require__(9297); var wellKnownSymbol = __webpack_require__(8227); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); module.exports = function (target, TAG, STATIC) { if (target && !STATIC) target = target.prototype; if (target && !hasOwn(target, TO_STRING_TAG)) { defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); } }; /***/ }), /***/ 741: /***/ ((module) => { "use strict"; var ceil = Math.ceil; var floor = Math.floor; // `Math.trunc` method // https://tc39.es/ecma262/#sec-math.trunc // eslint-disable-next-line es/no-math-trunc -- safe module.exports = Math.trunc || function trunc(x) { var n = +x; return (n > 0 ? floor : ceil)(n); }; /***/ }), /***/ 757: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var getBuiltIn = __webpack_require__(7751); var isCallable = __webpack_require__(4901); var isPrototypeOf = __webpack_require__(1625); var USE_SYMBOL_AS_UID = __webpack_require__(7040); var $Object = Object; module.exports = USE_SYMBOL_AS_UID ? function (it) { return typeof it == 'symbol'; } : function (it) { var $Symbol = getBuiltIn('Symbol'); return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); }; /***/ }), /***/ 788: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var isObject = __webpack_require__(34); var classof = __webpack_require__(4576); var wellKnownSymbol = __webpack_require__(8227); var MATCH = wellKnownSymbol('match'); // `IsRegExp` abstract operation // https://tc39.es/ecma262/#sec-isregexp module.exports = function (it) { var isRegExp; return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp'); }; /***/ }), /***/ 851: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var classof = __webpack_require__(6955); var getMethod = __webpack_require__(5966); var isNullOrUndefined = __webpack_require__(4117); var Iterators = __webpack_require__(6269); var wellKnownSymbol = __webpack_require__(8227); var ITERATOR = wellKnownSymbol('iterator'); module.exports = function (it) { if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)]; }; /***/ }), /***/ 916: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var globalThis = __webpack_require__(2195); var NativePromiseConstructor = __webpack_require__(550); var isCallable = __webpack_require__(4901); var isForced = __webpack_require__(2796); var inspectSource = __webpack_require__(3706); var wellKnownSymbol = __webpack_require__(8227); var ENVIRONMENT = __webpack_require__(4215); var IS_PURE = __webpack_require__(6395); var V8_VERSION = __webpack_require__(9519); var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; var SPECIES = wellKnownSymbol('species'); var SUBCLASSING = false; var NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent); var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () { var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor); var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 // We can't detect it synchronously, so just check versions if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; // We can't use @@species feature detection in V8 since it causes // deoptimization and performance degradation // https://github.com/zloirock/core-js/issues/679 if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { // Detect correctness of subclassing with @@species support var promise = new NativePromiseConstructor(function (resolve) { resolve(1); }); var FakePromise = function (exec) { exec(function () { /* empty */ }, function () { /* empty */ }); }; var constructor = promise.constructor = {}; constructor[SPECIES] = FakePromise; SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; if (!SUBCLASSING) return true; // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT; }); module.exports = { CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR, REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT, SUBCLASSING: SUBCLASSING }; /***/ }), /***/ 1034: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var call = __webpack_require__(9565); var hasOwn = __webpack_require__(9297); var isPrototypeOf = __webpack_require__(1625); var regExpFlags = __webpack_require__(7979); var RegExpPrototype = RegExp.prototype; module.exports = function (R) { var flags = R.flags; return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) ? call(regExpFlags, R) : flags; }; /***/ }), /***/ 1056: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var defineProperty = (__webpack_require__(4913).f); module.exports = function (Target, Source, key) { key in Target || defineProperty(Target, key, { configurable: true, get: function () { return Source[key]; }, set: function (it) { Source[key] = it; } }); }; /***/ }), /***/ 1071: /***/ ((__unused_webpack_module, exports) => { "use strict"; exports.__esModule = true; /***/ }), /***/ 1072: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var internalObjectKeys = __webpack_require__(1828); var enumBugKeys = __webpack_require__(8727); // `Object.keys` method // https://tc39.es/ecma262/#sec-object.keys // eslint-disable-next-line es/no-object-keys -- safe module.exports = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys); }; /***/ }), /***/ 1088: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var $ = __webpack_require__(6518); var call = __webpack_require__(9565); var IS_PURE = __webpack_require__(6395); var FunctionName = __webpack_require__(350); var isCallable = __webpack_require__(4901); var createIteratorConstructor = __webpack_require__(3994); var getPrototypeOf = __webpack_require__(2787); var setPrototypeOf = __webpack_require__(2967); var setToStringTag = __webpack_require__(687); var createNonEnumerableProperty = __webpack_require__(6699); var defineBuiltIn = __webpack_require__(6840); var wellKnownSymbol = __webpack_require__(8227); var Iterators = __webpack_require__(6269); var IteratorsCore = __webpack_require__(7657); var PROPER_FUNCTION_NAME = FunctionName.PROPER; var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; var IteratorPrototype = IteratorsCore.IteratorPrototype; var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; var ITERATOR = wellKnownSymbol('iterator'); var KEYS = 'keys'; var VALUES = 'values'; var ENTRIES = 'entries'; var returnThis = function () { return this; }; module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { createIteratorConstructor(IteratorConstructor, NAME, next); var getIterationMethod = function (KIND) { if (KIND === DEFAULT && defaultIterator) return defaultIterator; if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND]; switch (KIND) { case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; } return function () { return new IteratorConstructor(this); }; }; var TO_STRING_TAG = NAME + ' Iterator'; var INCORRECT_VALUES_NAME = false; var IterablePrototype = Iterable.prototype; var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT]; var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; var CurrentIteratorPrototype, methods, KEY; // fix native if (anyNativeIterator) { CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { if (setPrototypeOf) { setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis); } } // Set @@toStringTag to native iterators setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; } } // fix Array.prototype.{ values, @@iterator }.name in V8 / FF if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) { if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { createNonEnumerableProperty(IterablePrototype, 'name', VALUES); } else { INCORRECT_VALUES_NAME = true; defaultIterator = function values() { return call(nativeIterator, this); }; } } // export additional methods if (DEFAULT) { methods = { values: getIterationMethod(VALUES), keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), entries: getIterationMethod(ENTRIES) }; if (FORCED) for (KEY in methods) { if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { defineBuiltIn(IterablePrototype, KEY, methods[KEY]); } } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); } // define iterator if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); } Iterators[NAME] = defaultIterator; return methods; }; /***/ }), /***/ 1103: /***/ ((module) => { "use strict"; module.exports = function (exec) { try { return { error: false, value: exec() }; } catch (error) { return { error: true, value: error }; } }; /***/ }), /***/ 1120: /***/ ((__unused_webpack_module, exports) => { "use strict"; exports.__esModule = true; exports.VisitorProfileCache = void 0; class VisitorProfileCache { constructor(sdkConfig) { this._sdkConfig = sdkConfig; } saveVisitorProfile() { // } loadVisitorProfile() { // return null; } } exports.VisitorProfileCache = VisitorProfileCache; /***/ }), /***/ 1156: /***/ ((module) => { function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 1181: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var NATIVE_WEAK_MAP = __webpack_require__(8622); var globalThis = __webpack_require__(2195); var isObject = __webpack_require__(34); var createNonEnumerableProperty = __webpack_require__(6699); var hasOwn = __webpack_require__(9297); var shared = __webpack_require__(7629); var sharedKey = __webpack_require__(6119); var hiddenKeys = __webpack_require__(421); var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; var TypeError = globalThis.TypeError; var WeakMap = globalThis.WeakMap; var set, get, has; var enforce = function (it) { return has(it) ? get(it) : set(it, {}); }; var getterFor = function (TYPE) { return function (it) { var state; if (!isObject(it) || (state = get(it)).type !== TYPE) { throw new TypeError('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; if (NATIVE_WEAK_MAP || shared.state) { var store = shared.state || (shared.state = new WeakMap()); /* eslint-disable no-self-assign -- prototype methods protection */ store.get = store.get; store.has = store.has; store.set = store.set; /*