@flagship.io/react-sdk 3.0.6-alpha.0 → 3.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71,7 +71,7 @@ var Flag = /*#__PURE__*/function () {
71
71
  }
72
72
 
73
73
  if (this.NotSameType()) {
74
- (0,_utils__WEBPACK_IMPORTED_MODULE_4__.logInfo)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_2___default().getConfig(), (0,_utils__WEBPACK_IMPORTED_MODULE_4__.sprintf)(_constants__WEBPACK_IMPORTED_MODULE_3__.GET_FLAG_CAST_ERROR, this.key), "getValue");
74
+ (0,_utils__WEBPACK_IMPORTED_MODULE_4__.logInfo)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_2___default().getConfig(), (0,_utils__WEBPACK_IMPORTED_MODULE_4__.sprintf)(_constants__WEBPACK_IMPORTED_MODULE_3__.GET_FLAG_CAST_ERROR, this.key), 'getValue');
75
75
  return this.defaultValue;
76
76
  }
77
77
 
@@ -80,14 +80,12 @@ var Flag = /*#__PURE__*/function () {
80
80
  }, {
81
81
  key: "exists",
82
82
  value: function exists() {
83
- var _this$flag2;
84
-
85
83
  if (!this.flag) {
86
84
  (0,_utils__WEBPACK_IMPORTED_MODULE_4__.logWarn)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_2___default().getConfig(), _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'exists');
87
85
  return false;
88
86
  }
89
87
 
90
- return !!((_this$flag2 = this.flag) !== null && _this$flag2 !== void 0 && _this$flag2.campaignId && this.flag.variationId && this.flag.variationGroupId);
88
+ return !!(this.flag.campaignId && this.flag.variationId && this.flag.variationGroupId);
91
89
  }
92
90
  }, {
93
91
  key: "userExposed",
@@ -101,8 +99,6 @@ var Flag = /*#__PURE__*/function () {
101
99
  }, {
102
100
  key: "metadata",
103
101
  get: function get() {
104
- var _this$flag3, _this$flag4, _this$flag5, _this$flag6, _this$flag7, _this$flag8;
105
-
106
102
  var functionName = 'metadata';
107
103
 
108
104
  if (!this.flag) {
@@ -116,12 +112,12 @@ var Flag = /*#__PURE__*/function () {
116
112
  }
117
113
 
118
114
  return new _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_2__.FlagMetadata({
119
- campaignId: ((_this$flag3 = this.flag) === null || _this$flag3 === void 0 ? void 0 : _this$flag3.campaignId) || '',
120
- variationGroupId: ((_this$flag4 = this.flag) === null || _this$flag4 === void 0 ? void 0 : _this$flag4.variationGroupId) || '',
121
- variationId: ((_this$flag5 = this.flag) === null || _this$flag5 === void 0 ? void 0 : _this$flag5.variationId) || '',
122
- isReference: !!((_this$flag6 = this.flag) !== null && _this$flag6 !== void 0 && _this$flag6.isReference),
123
- campaignType: ((_this$flag7 = this.flag) === null || _this$flag7 === void 0 ? void 0 : _this$flag7.campaignType) || '',
124
- slug: (_this$flag8 = this.flag) === null || _this$flag8 === void 0 ? void 0 : _this$flag8.slug
115
+ campaignId: this.flag.campaignId,
116
+ variationGroupId: this.flag.variationGroupId,
117
+ variationId: this.flag.variationId,
118
+ isReference: !!this.flag.isReference,
119
+ campaignType: this.flag.campaignType,
120
+ slug: this.flag.slug
125
121
  });
126
122
  }
127
123
  }]);
@@ -326,7 +322,7 @@ var FlagshipProvider = function FlagshipProvider(_ref) {
326
322
 
327
323
  var onVisitorReady = function onVisitorReady(fsVisitor, error) {
328
324
  if (error) {
329
- (0,_utils__WEBPACK_IMPORTED_MODULE_18__.logError)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_17__.Flagship.getConfig(), error.message || error, "onReady");
325
+ (0,_utils__WEBPACK_IMPORTED_MODULE_18__.logError)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_17__.Flagship.getConfig(), error.message || error, 'onReady');
330
326
  return;
331
327
  }
332
328
 
@@ -361,7 +357,7 @@ var FlagshipProvider = function FlagshipProvider(_ref) {
361
357
  initialModifications: initialModifications,
362
358
  initialFlagsData: initialFlagsData
363
359
  });
364
- fsVisitor === null || fsVisitor === void 0 ? void 0 : fsVisitor.on("ready", function (error) {
360
+ fsVisitor === null || fsVisitor === void 0 ? void 0 : fsVisitor.on('ready', function (error) {
365
361
  onVisitorReady(fsVisitor, error);
366
362
  });
367
363
 
@@ -612,9 +608,9 @@ var fsModificationsSync = function fsModificationsSync(args) {
612
608
  });
613
609
  return flags;
614
610
  };
615
- /**
616
- * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.
617
- * @deprecated use useFsFlag instead
611
+ /**
612
+ * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.
613
+ * @deprecated use useFsFlag instead
618
614
  */
619
615
 
620
616
 
@@ -634,9 +630,9 @@ var useFsModifications = function useFsModifications(params, activateAll) {
634
630
  activateAll: activateAll
635
631
  });
636
632
  };
637
- /**
638
- * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.
639
- * @deprecated use useFsFlag instead
633
+ /**
634
+ * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.
635
+ * @deprecated use useFsFlag instead
640
636
  */
641
637
 
642
638
  var useFsModification = function useFsModification(params) {
@@ -682,10 +678,10 @@ var fsModificationInfoSync = function fsModificationInfoSync(args) {
682
678
 
683
679
  return null;
684
680
  };
685
- /**
686
- * Get the campaign modification information value matching the given key.
687
- * @param {string} key key which identify the modification.
688
- * @deprecated use useFsFlag instead
681
+ /**
682
+ * Get the campaign modification information value matching the given key.
683
+ * @param {string} key key which identify the modification.
684
+ * @deprecated use useFsFlag instead
689
685
  */
690
686
 
691
687
 
@@ -742,11 +738,11 @@ var fsActivate = /*#__PURE__*/function () {
742
738
  return _ref.apply(this, arguments);
743
739
  };
744
740
  }();
745
- /**
746
- * This hook returns a flag object by its key. If no flag match the given key an empty flag will be returned.
747
- * @param key
748
- * @param defaultValue
749
- * @returns
741
+ /**
742
+ * This hook returns a flag object by its key. If no flag match the given key an empty flag will be returned.
743
+ * @param key
744
+ * @param defaultValue
745
+ * @returns
750
746
  */
751
747
 
752
748
 
@@ -762,11 +758,11 @@ var useFsFlag = function useFsFlag(key, defaultValue) {
762
758
 
763
759
  return visitor.getFlag(key, defaultValue);
764
760
  };
765
- /**
766
- * Report this user has seen this modification. Report this user has seen these modifications.
767
- * @param params
768
- * @deprecated use useFsFlag instead
769
- * @returns
761
+ /**
762
+ * Report this user has seen this modification. Report this user has seen these modifications.
763
+ * @param params
764
+ * @deprecated use useFsFlag instead
765
+ * @returns
770
766
  */
771
767
 
772
768
  var useFsActivate = /*#__PURE__*/function () {
@@ -846,8 +842,8 @@ var useFlagship = function useFlagship() {
846
842
 
847
843
  visitor.unauthenticate();
848
844
  };
849
- /**
850
- * Send a Hit to Flagship servers for reporting.
845
+ /**
846
+ * Send a Hit to Flagship servers for reporting.
851
847
  */
852
848
 
853
849
 
@@ -861,8 +857,8 @@ var useFlagship = function useFlagship() {
861
857
 
862
858
  return visitor.sendHit(hit);
863
859
  };
864
- /**
865
- * Send a Hit to Flagship servers for reporting.
860
+ /**
861
+ * Send a Hit to Flagship servers for reporting.
866
862
  */
867
863
 
868
864
 
@@ -1178,7 +1174,8 @@ function hasSameType(flagValue, defaultValue) {
1178
1174
  }
1179
1175
 
1180
1176
  return true;
1181
- }
1177
+ } // eslint-disable-next-line @typescript-eslint/no-explicit-any
1178
+
1182
1179
  function sprintf(format) {
1183
1180
  var formatted = format;
1184
1181
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.node.js","mappings":"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","sources":["webpack://@flagship.io/react-sdk/./src/Flag.ts","webpack://@flagship.io/react-sdk/./src/FlagshipContext.tsx","webpack://@flagship.io/react-sdk/./src/FlagshipHooks.tsx","webpack://@flagship.io/react-sdk/./src/constants.ts","webpack://@flagship.io/react-sdk/./src/utils.tsx","webpack://@flagship.io/react-sdk/external commonjs \"@flagship.io/js-sdk\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.filter.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.from.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.slice.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.function.name.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.map.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.get-own-property-descriptor.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.get-own-property-descriptors.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.keys.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.to-string.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.promise.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.regexp.constructor.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.regexp.exec.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.regexp.to-string.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.string.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.string.replace.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.description.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/web.dom-collections.for-each.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/web.dom-collections.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"react\"","webpack://@flagship.io/react-sdk/external commonjs \"regenerator-runtime/runtime.js\"","webpack://@flagship.io/react-sdk/webpack/bootstrap","webpack://@flagship.io/react-sdk/webpack/runtime/compat get default export","webpack://@flagship.io/react-sdk/webpack/runtime/define property getters","webpack://@flagship.io/react-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@flagship.io/react-sdk/webpack/runtime/make namespace object","webpack://@flagship.io/react-sdk/./src/index.tsx"],"sourcesContent":["import Flagship, { FlagDTO, FlagMetadata, IFlag, IFlagMetadata, LogLevel } from '@flagship.io/js-sdk'\r\nimport { GET_FLAG_CAST_ERROR, GET_METADATA_CAST_ERROR, noVisitorMessage } from './constants'\r\nimport { hasSameType, logInfo, logWarn, sprintf } from './utils'\r\n\r\nexport class Flag<T> implements IFlag<T> {\r\n private defaultValue:T\r\n private flagsData: Map<string, FlagDTO> | undefined\r\n private key: string\r\n private flag?: FlagDTO\r\n constructor (defaultValue:T, key: string, flagsData: Map<string, FlagDTO> | undefined) {\r\n if (!flagsData) {\r\n logWarn(Flagship.getConfig(), noVisitorMessage, 'GetFlag')\r\n }\r\n this.defaultValue = defaultValue\r\n this.key = key\r\n this.flag = flagsData?.get(key)\r\n }\r\n\r\n private NotSameType(){\r\n return this.defaultValue !== null && this.defaultValue !== undefined && !hasSameType(this.flag?.value, this.defaultValue)\r\n }\r\n\r\n getValue (): T {\r\n if (!this.flag) {\r\n logWarn(Flagship.getConfig(), noVisitorMessage, 'getValue')\r\n return this.defaultValue\r\n }\r\n\r\n if (this.NotSameType()) {\r\n logInfo(\r\n Flagship.getConfig(),\r\n sprintf(GET_FLAG_CAST_ERROR, this.key),\r\n \"getValue\"\r\n )\r\n return this.defaultValue\r\n }\r\n return this.flag.value\r\n }\r\n\r\n exists ():boolean {\r\n if (!this.flag) {\r\n logWarn(Flagship.getConfig(), noVisitorMessage, 'exists')\r\n return false\r\n }\r\n return !!(this.flag?.campaignId && this.flag.variationId && this.flag.variationGroupId)\r\n }\r\n\r\n userExposed (): Promise<void> {\r\n if (!this.flag) {\r\n logWarn(Flagship.getConfig(), noVisitorMessage, 'userExposed')\r\n }\r\n \r\n return Promise.resolve()\r\n }\r\n\r\n get metadata ():IFlagMetadata {\r\n const functionName = 'metadata'\r\n if (!this.flag) {\r\n logWarn(Flagship.getConfig(), noVisitorMessage, functionName)\r\n return FlagMetadata.Empty()\r\n }\r\n if (this.NotSameType()) {\r\n logInfo(\r\n Flagship.getConfig(),\r\n sprintf(GET_METADATA_CAST_ERROR, this.key),\r\n functionName\r\n )\r\n return FlagMetadata.Empty()\r\n }\r\n\r\n return new FlagMetadata({\r\n campaignId: this.flag?.campaignId || '',\r\n variationGroupId: this.flag?.variationGroupId || '',\r\n variationId: this.flag?.variationId || '',\r\n isReference: !!this.flag?.isReference,\r\n campaignType: this.flag?.campaignType || '',\r\n slug: this.flag?.slug\r\n })\r\n }\r\n}\r\n","// eslint-disable-next-line no-use-before-define\r\nimport React, {\r\n useState,\r\n useEffect,\r\n ReactNode,\r\n createContext,\r\n Dispatch,\r\n SetStateAction,\r\n useRef,\r\n} from \"react\";\r\nimport {\r\n BucketingDTO,\r\n CampaignDTO,\r\n FlagDTO,\r\n Flagship,\r\n FlagshipStatus,\r\n IFlagshipConfig,\r\n primitive,\r\n Visitor,\r\n} from \"@flagship.io/js-sdk\";\r\nimport {\r\n getModificationsFromCampaigns,\r\n logError,\r\n useNonInitialEffect,\r\n uuidV4,\r\n} from \"./utils\";\r\n\r\nexport interface FsStatus {\r\n /**\r\n * Boolean. When true, the SDK is still not ready to render your App otherwise it'll use default modifications.\r\n */\r\n isLoading: boolean;\r\n /**\r\n * Boolean. true after it has fully finished initialization tasks, false otherwise.\r\n */\r\n isSdkReady: boolean;\r\n\r\n lastModified?: Date;\r\n /**\r\n * Boolean. When true the flagship visitor instance is truthy, false otherwise.\r\n */\r\n isVisitorDefined?: boolean;\r\n /**\r\n * String or null. The last update date occurred on the flagship visitor instance.\r\n */\r\n lastRefresh?: string;\r\n /**\r\n * String or null. When null no initialization succeed yet. When string contains stringified date of last successful initialization.\r\n */\r\n firstInitSuccess?: string;\r\n}\r\nexport interface FsState {\r\n visitor?: Visitor;\r\n config?: IFlagshipConfig;\r\n modifications?: Map<string, FlagDTO>;\r\n status: FsStatus;\r\n initialCampaigns?: CampaignDTO[];\r\n initialModifications?: Map<string, FlagDTO> | FlagDTO[];\r\n}\r\n\r\nexport type VisitorData = {\r\n id?: string;\r\n context?: Record<string, primitive>;\r\n isAuthenticated?: boolean;\r\n hasConsented?: boolean;\r\n};\r\ninterface FsContext {\r\n state: FsState;\r\n setState?: Dispatch<SetStateAction<FsState>>;\r\n}\r\n\r\nexport interface FlagshipProviderProps extends IFlagshipConfig {\r\n /**\r\n * This is the data to identify the current visitor using your app\r\n */\r\n visitorData: VisitorData | null;\r\n envId: string;\r\n apiKey: string;\r\n /**\r\n * This component will be rendered when Flagship is loading at first initialization only.\r\n * By default, the value is undefined. It means it will display your app and it might\r\n * display default modifications value for a very short moment.\r\n */\r\n loadingComponent?: ReactNode;\r\n children?: ReactNode;\r\n\r\n /**\r\n * Callback function called when the SDK starts initialization.\r\n */\r\n onInitStart?(): void;\r\n /**\r\n * Callback function called when the SDK ends initialization.\r\n */\r\n onInitDone?(): void;\r\n /**\r\n * Callback function called when the SDK is updated. For example, after a synchronize is triggered or visitor context has changed.\r\n */\r\n onUpdate?(params: {\r\n fsModifications: Map<string, FlagDTO>;\r\n config: IFlagshipConfig;\r\n status: FsStatus;\r\n }): void;\r\n /**\r\n * This is an object of the data received when fetching bucketing endpoint.\r\n * Providing this prop will make bucketing ready to use and the first polling will immediatly check for an update.\r\n * If the shape of an element is not correct, an error log will give the reason why.\r\n */\r\n initialBucketing?: BucketingDTO;\r\n initialCampaigns?: CampaignDTO[];\r\n /**\r\n * This is a set of flag data provided to avoid the SDK to have an empty cache during the first initialization.\r\n * @deprecated use initialFlagsData instead\r\n */\r\n initialModifications?: Map<string, FlagDTO> | FlagDTO[];\r\n\r\n /**\r\n * This is a set of flag data provided to avoid the SDK to have an empty cache during the first initialization.\r\n */\r\n initialFlagsData?: Map<string, FlagDTO> | FlagDTO[];\r\n /**\r\n * If true, it'll automatically call synchronizeModifications when the bucketing file has updated\r\n */\r\n fetchFlagsOnBucketingUpdated?: boolean;\r\n}\r\n\r\nconst initStat: FsState = {\r\n status: { isLoading: true, isSdkReady: false },\r\n};\r\n\r\nexport const FlagshipContext = createContext<FsContext>({\r\n state: { ...initStat },\r\n});\r\n\r\nexport const FlagshipProvider: React.FC<FlagshipProviderProps> = ({\r\n children,\r\n fetchNow,\r\n envId,\r\n apiKey,\r\n decisionMode,\r\n decisionApiUrl,\r\n timeout,\r\n logLevel,\r\n statusChangedCallback,\r\n logManager,\r\n pollingInterval,\r\n visitorData,\r\n onInitStart,\r\n onInitDone,\r\n onBucketingSuccess,\r\n onBucketingFail,\r\n loadingComponent,\r\n onBucketingUpdated,\r\n onUpdate,\r\n enableClientCache,\r\n initialBucketing,\r\n initialCampaigns,\r\n initialModifications,\r\n initialFlagsData,\r\n fetchFlagsOnBucketingUpdated,\r\n activateDeduplicationTime,\r\n hitDeduplicationTime,\r\n visitorCacheImplementation,\r\n hitCacheImplementation,\r\n disableCache,\r\n language,\r\n}: FlagshipProviderProps) => {\r\n let modifications = new Map<string, FlagDTO>();\r\n if (initialFlagsData && initialFlagsData.forEach) {\r\n initialFlagsData.forEach((flag) => {\r\n modifications.set(flag.key, flag);\r\n });\r\n } else if (initialModifications && initialModifications.forEach) {\r\n initialModifications.forEach((modification) => {\r\n modifications.set(modification.key, modification);\r\n });\r\n } else if (initialCampaigns) {\r\n modifications = getModificationsFromCampaigns(initialCampaigns);\r\n }\r\n\r\n const [state, setState] = useState<FsState>({ ...initStat, modifications });\r\n const [lastModified, setLastModified] = useState<Date>();\r\n const stateRef = useRef<FsState>();\r\n stateRef.current = state;\r\n\r\n useNonInitialEffect(() => {\r\n if (fetchFlagsOnBucketingUpdated) {\r\n state.visitor?.fetchFlags();\r\n }\r\n }, [lastModified]);\r\n\r\n useNonInitialEffect(() => {\r\n createVisitor(true);\r\n }, [JSON.stringify(visitorData)]);\r\n\r\n useEffect(() => {\r\n initSdk();\r\n }, [envId, apiKey, decisionMode]);\r\n\r\n function initializeState(param: {\r\n fsVisitor: Visitor;\r\n isLoading: boolean;\r\n isSdkReady: boolean;\r\n }) {\r\n const newStatus: FsStatus = {\r\n isSdkReady: param.isSdkReady,\r\n isLoading: param.isLoading,\r\n isVisitorDefined: !!param.fsVisitor,\r\n lastRefresh: new Date().toISOString(),\r\n };\r\n\r\n setState((currentState) => {\r\n if (!currentState.status.firstInitSuccess) {\r\n newStatus.firstInitSuccess = new Date().toISOString();\r\n }\r\n\r\n return {\r\n ...currentState,\r\n visitor: param.fsVisitor,\r\n modifications: param.fsVisitor.modifications,\r\n config: Flagship.getConfig(),\r\n status: {\r\n ...currentState.status,\r\n ...newStatus,\r\n },\r\n };\r\n });\r\n\r\n return newStatus;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const onVisitorReady = (fsVisitor: Visitor, error: any) => {\r\n if (error) {\r\n logError(Flagship.getConfig(), error.message || error, \"onReady\");\r\n return;\r\n }\r\n\r\n const newStatus = initializeState({\r\n fsVisitor,\r\n isSdkReady: true,\r\n isLoading: false,\r\n });\r\n\r\n if (onUpdate) {\r\n onUpdate({\r\n fsModifications: fsVisitor.modifications,\r\n config: Flagship.getConfig(),\r\n status: newStatus,\r\n });\r\n }\r\n };\r\n\r\n const createVisitor = (fetchFlags = false) => {\r\n if (!visitorData) {\r\n return;\r\n }\r\n\r\n const fsVisitor = Flagship.newVisitor({\r\n visitorId: visitorData.id,\r\n context: visitorData.context,\r\n isAuthenticated: visitorData.isAuthenticated,\r\n hasConsented: visitorData.hasConsented,\r\n initialCampaigns,\r\n initialModifications,\r\n initialFlagsData,\r\n });\r\n\r\n fsVisitor?.on(\"ready\", (error) => {\r\n onVisitorReady(fsVisitor, error);\r\n });\r\n\r\n if (!fetchNow && fsVisitor && !fetchFlags) {\r\n initializeState({\r\n fsVisitor,\r\n isSdkReady: true,\r\n isLoading: false,\r\n });\r\n }\r\n if (fetchFlags && !fetchNow) {\r\n fsVisitor?.fetchFlags();\r\n }\r\n };\r\n const statusChanged = (status: FlagshipStatus) => {\r\n if (statusChangedCallback) {\r\n statusChangedCallback(status);\r\n }\r\n\r\n switch (status) {\r\n case FlagshipStatus.STARTING:\r\n if (status === FlagshipStatus.STARTING && onInitStart) {\r\n onInitStart();\r\n }\r\n break;\r\n case FlagshipStatus.READY_PANIC_ON:\r\n case FlagshipStatus.READY:\r\n if (onInitDone) {\r\n onInitDone();\r\n }\r\n\r\n createVisitor();\r\n\r\n break;\r\n case FlagshipStatus.NOT_INITIALIZED:\r\n setState((prev) => ({ ...prev, config: Flagship.getConfig() }));\r\n break;\r\n }\r\n };\r\n\r\n const onBucketingLastModified = (lastUpdate: Date) => {\r\n if (onBucketingUpdated) {\r\n onBucketingUpdated(lastUpdate);\r\n }\r\n setLastModified(lastUpdate);\r\n };\r\n\r\n const initSdk = () => {\r\n Flagship.start(envId, apiKey, {\r\n decisionMode,\r\n fetchNow,\r\n timeout,\r\n logLevel,\r\n statusChangedCallback: statusChanged,\r\n logManager,\r\n pollingInterval,\r\n onBucketingFail,\r\n onBucketingSuccess,\r\n enableClientCache,\r\n decisionApiUrl,\r\n onBucketingUpdated: onBucketingLastModified,\r\n initialBucketing,\r\n activateDeduplicationTime,\r\n hitDeduplicationTime,\r\n visitorCacheImplementation,\r\n hitCacheImplementation,\r\n disableCache,\r\n language,\r\n });\r\n };\r\n const handleDisplay = (): React.ReactNode => {\r\n const isFirstInit = !state.visitor;\r\n if (state.status.isLoading && loadingComponent && isFirstInit && fetchNow) {\r\n return <>{loadingComponent}</>;\r\n }\r\n return <>{children}</>;\r\n };\r\n return (\r\n <FlagshipContext.Provider value={{ state, setState }}>\r\n {handleDisplay()}\r\n </FlagshipContext.Provider>\r\n );\r\n};\r\n\r\nFlagshipProvider.defaultProps = {\r\n activateDeduplicationTime: 2,\r\n hitDeduplicationTime: 2,\r\n fetchNow: true,\r\n language: 1,\r\n};\r\n","import { useContext } from 'react'\r\nimport {\r\n FlagDTO,\r\n HitAbstract,\r\n HitShape,\r\n IFlag,\r\n IFlagshipConfig,\r\n IHit,\r\n Modification,\r\n modificationsRequested,\r\n primitive,\r\n Visitor\r\n} from '@flagship.io/js-sdk'\r\nimport { FlagshipContext, FsState, FsStatus } from './FlagshipContext'\r\nimport { logError, logWarn } from './utils'\r\nimport { Flag } from './Flag'\r\nimport { noVisitorDefault, noVisitorMessage } from './constants'\r\n\r\nconst checkType = (value: unknown, defaultValue: unknown) =>\r\n (typeof value === 'object' &&\r\n typeof defaultValue === 'object' &&\r\n Array.isArray(value) === Array.isArray(defaultValue)) ||\r\n typeof value === typeof defaultValue\r\n\r\nconst fsModificationsSync = <T extends unknown>(args: {\r\n functionName: string;\r\n params: modificationsRequested<T>[];\r\n activateAll?: boolean;\r\n state: FsState;\r\n visitor?: Visitor;\r\n config?: IFlagshipConfig;\r\n}): Record<string, T> => {\r\n const { visitor, params, activateAll, state, functionName, config } = args\r\n if (visitor) {\r\n return visitor.getModificationsSync(params, activateAll)\r\n }\r\n\r\n const check =\r\n !state.status.isSdkReady &&\r\n !!state.modifications &&\r\n state.modifications.size > 0\r\n const flags: Record<string, T> = {}\r\n\r\n if (check) {\r\n params.forEach((item) => {\r\n const modification = state.modifications?.get(item.key)\r\n\r\n if (modification && checkType(modification?.value, item.defaultValue)) {\r\n flags[item.key] = modification.value\r\n } else {\r\n flags[item.key] = item.defaultValue\r\n }\r\n })\r\n return flags\r\n }\r\n\r\n logWarn(config, noVisitorDefault, functionName)\r\n params.forEach((item) => {\r\n flags[item.key] = item.defaultValue\r\n })\r\n return flags\r\n}\r\n\r\n/**\r\n * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.\r\n * @deprecated use useFsFlag instead\r\n */\r\nexport const useFsModifications = <T extends unknown>(\r\n params: modificationsRequested<T>[],\r\n activateAll?: boolean\r\n): Record<string, T> => {\r\n const { state } = useContext(FlagshipContext)\r\n const { visitor, config } = state\r\n const functionName = 'useFsModifications'\r\n\r\n return fsModificationsSync({\r\n functionName,\r\n state,\r\n visitor,\r\n config,\r\n params,\r\n activateAll\r\n })\r\n}\r\n\r\n/**\r\n * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.\r\n * @deprecated use useFsFlag instead\r\n */\r\nexport const useFsModification: {\r\n <T>(params: modificationsRequested<T>): T;\r\n} = (params) => {\r\n const { state } = useContext(FlagshipContext)\r\n const { visitor, config } = state\r\n const functionName = 'useFsModifications'\r\n\r\n if (visitor) {\r\n return visitor.getModificationSync(params)\r\n }\r\n\r\n const modification = state.modifications?.get(params.key)\r\n\r\n if (\r\n !state.status.isSdkReady &&\r\n modification &&\r\n checkType(modification?.value, params.defaultValue)\r\n ) {\r\n return modification.value\r\n }\r\n\r\n logWarn(config, noVisitorDefault, functionName)\r\n return params.defaultValue\r\n}\r\n\r\nconst fsModificationInfoSync = (args: {\r\n key: string;\r\n state: FsState;\r\n visitor?: Visitor;\r\n}) => {\r\n const { key, visitor, state } = args\r\n if (visitor) {\r\n return visitor.getModificationInfoSync(key)\r\n }\r\n const modification = state.modifications?.get(key)\r\n if (!state.status.isSdkReady && modification) {\r\n return modification\r\n }\r\n return null\r\n}\r\n\r\n/**\r\n * Get the campaign modification information value matching the given key.\r\n * @param {string} key key which identify the modification.\r\n * @deprecated use useFsFlag instead\r\n */\r\nexport const useFsModificationInfo: { (key: string): Modification | null } = (\r\n key: string\r\n) => {\r\n const { state } = useContext(FlagshipContext)\r\n const { visitor } = state\r\n return fsModificationInfoSync({ key, state, visitor })\r\n}\r\n\r\nconst fsActivate = async (\r\n params: { key: string }[] | string[],\r\n functionName: string,\r\n visitor?: Visitor,\r\n config?: IFlagshipConfig\r\n) => {\r\n try {\r\n if (!visitor) {\r\n logWarn(config, noVisitorMessage, functionName)\r\n return\r\n }\r\n await visitor.activateModifications(params)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n } catch (error: any) {\r\n logWarn(config, error.message || error, functionName)\r\n }\r\n}\r\n\r\n/**\r\n * This hook returns a flag object by its key. If no flag match the given key an empty flag will be returned.\r\n * @param key\r\n * @param defaultValue\r\n * @returns\r\n */\r\nexport const useFsFlag = <T extends unknown>(\r\n key: string,\r\n defaultValue: T\r\n): IFlag<T> => {\r\n const { state } = useContext(FlagshipContext)\r\n const { visitor } = state\r\n \r\n if (!visitor) {\r\n return new Flag(defaultValue, key, state.modifications)\r\n }\r\n\r\n return visitor.getFlag(key, defaultValue)\r\n}\r\n\r\n/**\r\n * Report this user has seen this modification. Report this user has seen these modifications.\r\n * @param params\r\n * @deprecated use useFsFlag instead\r\n * @returns\r\n */\r\nexport const useFsActivate: {\r\n (keys: { key: string }[]): Promise<void>;\r\n (keys: string[]): Promise<void>;\r\n} = async (params) => {\r\n const { state } = useContext(FlagshipContext)\r\n const { visitor, config } = state\r\n const functionName = 'useFsModifications'\r\n\r\n await fsActivate(params, functionName, visitor, config)\r\n}\r\n\r\nexport type UseFlagshipParams<T> = {\r\n modifications: {\r\n requested: modificationsRequested<T>[];\r\n activateAll?: boolean;\r\n };\r\n};\r\n\r\nexport type UseFlagshipOutput = {\r\n visitorId?: string;\r\n anonymousId?: string | null;\r\n context?: Record<string, primitive>;\r\n hasConsented?: boolean;\r\n /**\r\n * Set if visitor has consented for protected data usage.\r\n * @param hasConsented True if the visitor has consented false otherwise.\r\n */\r\n setConsent: (hasConsented: boolean) => void;\r\n modifications: Modification[];\r\n flagsData: FlagDTO[];\r\n status: FsStatus;\r\n /**\r\n *\r\n * @param params\r\n * @param activateAll\r\n * @deprecated use getFlag instead\r\n */\r\n getModifications<T>(\r\n params: modificationsRequested<T>[],\r\n activateAll?: boolean\r\n ): Record<string, T>;\r\n\r\n /**\r\n *\r\n * @param key\r\n * @deprecated use getFlag instead\r\n */\r\n getModificationInfo(key: string): Modification | null;\r\n\r\n /**\r\n * @deprecated use fetchFlags instead\r\n */\r\n synchronizeModifications(): Promise<void>;\r\n /**\r\n * @deprecated use getFlag instead\r\n */\r\n activateModification: {\r\n (keys: { key: string }[]): Promise<void>;\r\n (keys: string[]): Promise<void>;\r\n };\r\n /**\r\n * Update the visitor context values, matching the given keys, used for targeting.\r\n * A new context value associated with this key will be created if there is no previous matching value.\r\n * Context keys must be String, and values types must be one of the following : Number, Boolean, String.\r\n * @param context collection of keys, values.\r\n */\r\n updateContext(context: Record<string, primitive>): void;\r\n /**\r\n * clear the actual visitor context\r\n */\r\n clearContext(): void;\r\n /**\r\n * Authenticate anonymous visitor\r\n * @param visitorId\r\n */\r\n authenticate(visitorId: string): void;\r\n /**\r\n * This function change authenticated Visitor to anonymous visitor\r\n * @param visitorId\r\n */\r\n unauthenticate(): void;\r\n hit: {\r\n send: {\r\n (hit: HitAbstract): Promise<void>;\r\n (hit: IHit): Promise<void>;\r\n (hit: HitShape): Promise<void>;\r\n (hit: HitAbstract | IHit | HitShape): Promise<void>;\r\n };\r\n sendMultiple: {\r\n (hit: HitAbstract[]): Promise<void>;\r\n (hit: IHit[]): Promise<void>;\r\n (hit: HitShape[]): Promise<void>;\r\n (hit: HitAbstract[] | IHit[] | HitShape[]): Promise<void>;\r\n };\r\n };\r\n /**\r\n * Retrieve a Flag object by its key. If no flag match the given key an empty flag will be returned.\r\n * @param key flag key\r\n * @param defaultValue\r\n */\r\n getFlag<T>(key: string, defaultValue: T): IFlag<T>;\r\n fetchFlags: () => Promise<void>;\r\n};\r\n\r\nexport const useFlagship = (): UseFlagshipOutput => {\r\n const { state } = useContext(FlagshipContext)\r\n const { visitor, config } = state\r\n\r\n const fsUpdateContext = (context: Record<string, primitive>): void => {\r\n const functionName = 'updateContext'\r\n if (!visitor) {\r\n logError(config, noVisitorMessage, functionName)\r\n return\r\n }\r\n visitor.clearContext()\r\n visitor.updateContext(context)\r\n }\r\n\r\n const fsClearContext = (): void => {\r\n const functionName = 'cleanContext'\r\n if (!visitor) {\r\n logError(config, noVisitorMessage, functionName)\r\n return\r\n }\r\n visitor.clearContext()\r\n }\r\n\r\n const fsAuthenticate = (visitorId: string): void => {\r\n const functionName = 'authenticate'\r\n if (!visitor) {\r\n logError(config, noVisitorMessage, functionName)\r\n return\r\n }\r\n visitor.authenticate(visitorId)\r\n }\r\n\r\n const fsUnauthenticate = (): void => {\r\n const functionName = 'unauthenticate'\r\n if (!visitor) {\r\n logError(config, noVisitorMessage, functionName)\r\n return\r\n }\r\n visitor.unauthenticate()\r\n }\r\n\r\n /**\r\n * Send a Hit to Flagship servers for reporting.\r\n */\r\n const fsSendHit: {\r\n (hit: HitAbstract | IHit | HitShape): Promise<void>;\r\n } = (hit) => {\r\n const functionName = 'sendHit'\r\n if (!visitor) {\r\n logError(config, noVisitorMessage, functionName)\r\n return Promise.resolve()\r\n }\r\n return visitor.sendHit(hit)\r\n }\r\n\r\n /**\r\n * Send a Hit to Flagship servers for reporting.\r\n */\r\n const fsSendHits: {\r\n (hit: HitAbstract[] | IHit[] | HitShape[]): Promise<void>;\r\n } = (hit) => {\r\n const functionName = 'sendHits'\r\n if (!visitor) {\r\n logError(config, noVisitorMessage, functionName)\r\n return Promise.resolve()\r\n }\r\n return visitor.sendHits(hit)\r\n }\r\n\r\n let modifications = visitor?.getModificationsArray()\r\n if (!state.status.isSdkReady && state.modifications) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n modifications = Array.from(state.modifications, ([_key, item]) => item)\r\n }\r\n\r\n const activateModification: {\r\n (keys: { key: string }[]): Promise<void>;\r\n (keys: string[]): Promise<void>;\r\n } = async (params) => {\r\n const functionName = 'activateModification'\r\n await fsActivate(params, functionName, visitor, config)\r\n }\r\n const synchronizeModifications = async () => {\r\n if (!visitor) {\r\n logWarn(config, noVisitorMessage, 'synchronizeModifications')\r\n return\r\n }\r\n await visitor.synchronizeModifications()\r\n }\r\n\r\n const getModifications = <T extends unknown>(\r\n params: modificationsRequested<T>[],\r\n activateAll?: boolean\r\n ) => {\r\n const functionName = 'getModifications'\r\n return fsModificationsSync({\r\n functionName,\r\n state,\r\n visitor,\r\n config,\r\n params,\r\n activateAll\r\n })\r\n }\r\n\r\n const getModificationInfo: { (key: string): Modification | null } = (\r\n key: string\r\n ) => {\r\n return fsModificationInfoSync({ key, state, visitor })\r\n }\r\n\r\n function getFlag<T> (key: string, defaultValue: T): IFlag<T> {\r\n if (!visitor) {\r\n return new Flag(defaultValue, key, state.modifications)\r\n }\r\n return visitor.getFlag(key, defaultValue)\r\n }\r\n\r\n function fetchFlags (): Promise<void> {\r\n if (!visitor) {\r\n logWarn(config, noVisitorMessage, 'fetchFlags')\r\n return Promise.resolve()\r\n }\r\n return visitor.fetchFlags()\r\n }\r\n\r\n function setConsent (hasConsented: boolean): void {\r\n if (!visitor) {\r\n logWarn(config, noVisitorMessage, 'setConsent')\r\n return\r\n }\r\n visitor.setConsent(hasConsented)\r\n }\r\n\r\n return {\r\n visitorId: visitor?.visitorId,\r\n anonymousId: visitor?.anonymousId,\r\n context: { ...visitor?.context },\r\n hasConsented: visitor?.hasConsented,\r\n setConsent,\r\n updateContext: fsUpdateContext,\r\n clearContext: fsClearContext,\r\n authenticate: fsAuthenticate,\r\n unauthenticate: fsUnauthenticate,\r\n status: state.status,\r\n activateModification,\r\n synchronizeModifications,\r\n getModifications,\r\n modifications: modifications || [],\r\n flagsData: visitor?.getFlagsDataArray() || [],\r\n getModificationInfo,\r\n hit: {\r\n send: fsSendHit,\r\n sendMultiple: fsSendHits\r\n },\r\n getFlag,\r\n fetchFlags\r\n }\r\n}\r\n","export const noVisitorMessage = 'flagship Visitor not initialized.'\r\nexport const noVisitorDefault = 'fsVisitor not initialized, returns default value'\r\n\r\n export const GET_FLAG_CAST_ERROR ='Flag for key {0} has a different type. Default value is returned.'\r\n export const GET_METADATA_CAST_ERROR = 'Flag for key {0} has a different type with defaultValue, an empty metadata object is returned'\r\n","import {\r\n CampaignDTO,\r\n IFlagshipConfig,\r\n LogLevel,\r\n Modification\r\n} from '@flagship.io/js-sdk'\r\nimport { EffectCallback, DependencyList, useEffect, useRef } from 'react'\r\n\r\nexport function logError (\r\n config: IFlagshipConfig | undefined,\r\n message: string,\r\n tag: string\r\n): void {\r\n if (\r\n !config ||\r\n !config.logManager ||\r\n typeof config.logManager.error !== 'function' ||\r\n !config.logLevel ||\r\n config.logLevel < LogLevel.ERROR\r\n ) {\r\n return\r\n }\r\n\r\n config.logManager.error(message, tag)\r\n}\r\n\r\nexport function logInfo (\r\n config: IFlagshipConfig | undefined,\r\n message: string,\r\n tag: string\r\n): void {\r\n if (\r\n !config ||\r\n !config.logManager ||\r\n typeof config.logManager.info !== 'function' ||\r\n !config.logLevel ||\r\n config.logLevel < LogLevel.INFO\r\n ) {\r\n return\r\n }\r\n config.logManager.info(message, tag)\r\n}\r\n\r\nexport function logWarn (\r\n config: IFlagshipConfig | undefined,\r\n message: string,\r\n tag: string\r\n): void {\r\n if (\r\n !config ||\r\n !config.logManager ||\r\n typeof config.logManager.warning !== 'function' ||\r\n !config.logLevel ||\r\n config.logLevel < LogLevel.WARNING\r\n ) {\r\n return\r\n }\r\n config.logManager.warning(message, tag)\r\n}\r\n\r\n\r\nexport const getModificationsFromCampaigns = (\r\n campaigns: Array<CampaignDTO>\r\n): Map<string, Modification> => {\r\n const modifications = new Map<string, Modification>()\r\n if (!campaigns || !Array.isArray(campaigns)) {\r\n return modifications\r\n }\r\n campaigns.forEach((campaign) => {\r\n const object = campaign.variation.modifications.value\r\n for (const key in object) {\r\n const value = object[key]\r\n modifications.set(key, {\r\n key,\r\n campaignId: campaign.id,\r\n variationGroupId: campaign.variationGroupId,\r\n variationId: campaign.variation.id,\r\n isReference: campaign.variation.reference,\r\n value\r\n })\r\n }\r\n })\r\n return modifications\r\n}\r\n\r\nexport function uuidV4 (): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\r\n /[xy]/g,\r\n function (char) {\r\n const rand = (Math.random() * 16) | 0\r\n const value = char === 'x' ? rand : (rand & 0x3) | 0x8\r\n return value.toString(16)\r\n }\r\n )\r\n}\r\n\r\nexport function useNonInitialEffect (\r\n effect: EffectCallback,\r\n deps?: DependencyList\r\n): void {\r\n const initialRender = useRef(true)\r\n\r\n useEffect(() => {\r\n if (initialRender.current) {\r\n initialRender.current = false\r\n return\r\n }\r\n\r\n if (typeof effect === 'function') {\r\n return effect()\r\n }\r\n }, deps)\r\n}\r\n\r\nexport function hasSameType (flagValue:unknown, defaultValue:unknown):boolean {\r\n if (typeof flagValue !== typeof defaultValue) {\r\n return false\r\n }\r\n if (typeof flagValue === 'object' && typeof defaultValue === 'object' &&\r\n Array.isArray(flagValue) !== Array.isArray(defaultValue)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\nexport function sprintf (format: string, ...value: any[]): string {\r\n let formatted = format\r\n for (let i = 0; i < value.length; i++) {\r\n const element = value[i]\r\n formatted = formatted.replace(new RegExp(`\\\\{${i}\\\\}`, 'g'), element)\r\n }\r\n return formatted\r\n}","module.exports = require(\"@flagship.io/js-sdk\");","module.exports = require(\"core-js/modules/es.array.filter.js\");","module.exports = require(\"core-js/modules/es.array.from.js\");","module.exports = require(\"core-js/modules/es.array.iterator.js\");","module.exports = require(\"core-js/modules/es.array.slice.js\");","module.exports = require(\"core-js/modules/es.function.name.js\");","module.exports = require(\"core-js/modules/es.map.js\");","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptor.js\");","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptors.js\");","module.exports = require(\"core-js/modules/es.object.keys.js\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"core-js/modules/es.promise.js\");","module.exports = require(\"core-js/modules/es.regexp.constructor.js\");","module.exports = require(\"core-js/modules/es.regexp.exec.js\");","module.exports = require(\"core-js/modules/es.regexp.to-string.js\");","module.exports = require(\"core-js/modules/es.string.iterator.js\");","module.exports = require(\"core-js/modules/es.string.replace.js\");","module.exports = require(\"core-js/modules/es.symbol.description.js\");","module.exports = require(\"core-js/modules/es.symbol.iterator.js\");","module.exports = require(\"core-js/modules/es.symbol.js\");","module.exports = require(\"core-js/modules/web.dom-collections.for-each.js\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");","module.exports = require(\"react\");","module.exports = require(\"regenerator-runtime/runtime.js\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export * from './FlagshipContext'\r\nexport * from '@flagship.io/js-sdk'\r\nexport * from './FlagshipHooks'"],"names":["Flagship","FlagMetadata","GET_FLAG_CAST_ERROR","GET_METADATA_CAST_ERROR","noVisitorMessage","hasSameType","logInfo","logWarn","sprintf","Flag","defaultValue","key","flagsData","getConfig","flag","get","undefined","value","NotSameType","campaignId","variationId","variationGroupId","Promise","resolve","functionName","Empty","isReference","campaignType","slug","React","useState","useEffect","createContext","useRef","FlagshipStatus","getModificationsFromCampaigns","logError","useNonInitialEffect","initStat","status","isLoading","isSdkReady","FlagshipContext","state","FlagshipProvider","children","fetchNow","envId","apiKey","decisionMode","decisionApiUrl","timeout","logLevel","statusChangedCallback","logManager","pollingInterval","visitorData","onInitStart","onInitDone","onBucketingSuccess","onBucketingFail","loadingComponent","onBucketingUpdated","onUpdate","enableClientCache","initialBucketing","initialCampaigns","initialModifications","initialFlagsData","fetchFlagsOnBucketingUpdated","activateDeduplicationTime","hitDeduplicationTime","visitorCacheImplementation","hitCacheImplementation","disableCache","language","modifications","Map","forEach","set","modification","setState","lastModified","setLastModified","stateRef","current","visitor","fetchFlags","createVisitor","JSON","stringify","initSdk","initializeState","param","newStatus","isVisitorDefined","fsVisitor","lastRefresh","Date","toISOString","currentState","firstInitSuccess","config","onVisitorReady","error","message","fsModifications","newVisitor","visitorId","id","context","isAuthenticated","hasConsented","on","statusChanged","STARTING","READY_PANIC_ON","READY","NOT_INITIALIZED","prev","onBucketingLastModified","lastUpdate","start","handleDisplay","isFirstInit","defaultProps","useContext","noVisitorDefault","checkType","Array","isArray","fsModificationsSync","args","params","activateAll","getModificationsSync","check","size","flags","item","useFsModifications","useFsModification","getModificationSync","fsModificationInfoSync","getModificationInfoSync","useFsModificationInfo","fsActivate","activateModifications","useFsFlag","getFlag","useFsActivate","useFlagship","fsUpdateContext","clearContext","updateContext","fsClearContext","fsAuthenticate","authenticate","fsUnauthenticate","unauthenticate","fsSendHit","hit","sendHit","fsSendHits","sendHits","getModificationsArray","from","_key","activateModification","synchronizeModifications","getModifications","getModificationInfo","setConsent","anonymousId","getFlagsDataArray","send","sendMultiple","LogLevel","tag","ERROR","info","INFO","warning","WARNING","campaigns","campaign","object","variation","reference","uuidV4","replace","char","rand","Math","random","toString","effect","deps","initialRender","flagValue","format","formatted","i","element","RegExp"],"sourceRoot":""}
1
+ {"version":3,"file":"index.node.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAEO,IAAMS,IAAb;AAKI,gBAAaC,YAAb,EAA6BC,GAA7B,EAA0CC,SAA1C,EAAuF;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACrF,QAAI,CAACA,SAAL,EAAgB;AACdL,MAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyC,SAAzC,CAAP;AACD;;AACD,SAAKM,YAAL,GAAoBA,YAApB;AACA,SAAKC,GAAL,GAAWA,GAAX;AACA,SAAKG,IAAL,GAAYF,SAAZ,aAAYA,SAAZ,uBAAYA,SAAS,CAAEG,GAAX,CAAeJ,GAAf,CAAZ;AACD;;AAZL;AAAA;AAAA,WAcI,uBAAuB;AAAA;;AACrB,aAAO,KAAKD,YAAL,KAAsB,IAAtB,IAA8B,KAAKA,YAAL,KAAsBM,SAApD,IAAiE,CAACX,mDAAW,eAAC,KAAKS,IAAN,+CAAC,WAAWG,KAAZ,EAAmB,KAAKP,YAAxB,CAApF;AACD;AAhBL;AAAA;AAAA,WAkBI,oBAAe;AACb,UAAI,CAAC,KAAKI,IAAV,EAAgB;AACdP,QAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyC,UAAzC,CAAP;AACA,eAAO,KAAKM,YAAZ;AACD;;AAED,UAAI,KAAKQ,WAAL,EAAJ,EAAwB;AACtBZ,QAAAA,+CAAO,CACLN,oEAAA,EADK,EAELQ,+CAAO,CAACN,2DAAD,EAAsB,KAAKS,GAA3B,CAFF,EAGL,UAHK,CAAP;AAKA,eAAO,KAAKD,YAAZ;AACD;;AACD,aAAO,KAAKI,IAAL,CAAUG,KAAjB;AACD;AAjCL;AAAA;AAAA,WAmCI,kBAAkB;AAChB,UAAI,CAAC,KAAKH,IAAV,EAAgB;AACdP,QAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyC,QAAzC,CAAP;AACA,eAAO,KAAP;AACD;;AACD,aAAO,CAAC,EAAE,KAAKU,IAAL,CAAUK,UAAV,IAAwB,KAAKL,IAAL,CAAUM,WAAlC,IAAiD,KAAKN,IAAL,CAAUO,gBAA7D,CAAR;AACD;AAzCL;AAAA;AAAA,WA2CI,uBAA8B;AAC5B,UAAI,CAAC,KAAKP,IAAV,EAAgB;AACdP,QAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyC,aAAzC,CAAP;AACD;;AAED,aAAOkB,OAAO,CAACC,OAAR,EAAP;AACD;AAjDL;AAAA;AAAA,SAmDI,eAA8B;AAC5B,UAAMC,YAAY,GAAG,UAArB;;AACA,UAAI,CAAC,KAAKV,IAAV,EAAgB;AACdP,QAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyCoB,YAAzC,CAAP;AACA,eAAOvB,mEAAA,EAAP;AACD;;AACD,UAAI,KAAKiB,WAAL,EAAJ,EAAwB;AACtBZ,QAAAA,+CAAO,CACLN,oEAAA,EADK,EAELQ,+CAAO,CAACL,+DAAD,EAA0B,KAAKQ,GAA/B,CAFF,EAGLa,YAHK,CAAP;AAKA,eAAOvB,mEAAA,EAAP;AACD;;AAED,aAAO,IAAIA,6DAAJ,CAAiB;AACtBkB,QAAAA,UAAU,EAAE,KAAKL,IAAL,CAAUK,UADA;AAEtBE,QAAAA,gBAAgB,EAAE,KAAKP,IAAL,CAAUO,gBAFN;AAGtBD,QAAAA,WAAW,EAAE,KAAKN,IAAL,CAAUM,WAHD;AAItBM,QAAAA,WAAW,EAAE,CAAC,CAAC,KAAKZ,IAAL,CAAUY,WAJH;AAKtBC,QAAAA,YAAY,EAAE,KAAKb,IAAL,CAAUa,YALF;AAMtBC,QAAAA,IAAI,EAAE,KAAKd,IAAL,CAAUc;AANM,OAAjB,CAAP;AAQD;AA1EL;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AACA;AASA;AAUA;AAwGA,IAAMU,QAAiB,GAAG;AACxBC,EAAAA,MAAM,EAAE;AAAEC,IAAAA,SAAS,EAAE,IAAb;AAAmBC,IAAAA,UAAU,EAAE;AAA/B;AADgB,CAA1B;AAIO,IAAMC,eAAe,gBAAGV,qDAAa,CAAY;AACtDW,EAAAA,KAAK,oBAAOL,QAAP;AADiD,CAAZ,CAArC;AAIA,IAAMM,gBAAiD,GAAG,SAApDA,gBAAoD,OAgCpC;AAAA,MA/B3BC,QA+B2B,QA/B3BA,QA+B2B;AAAA,MA9B3BC,QA8B2B,QA9B3BA,QA8B2B;AAAA,MA7B3BC,KA6B2B,QA7B3BA,KA6B2B;AAAA,MA5B3BC,MA4B2B,QA5B3BA,MA4B2B;AAAA,MA3B3BC,YA2B2B,QA3B3BA,YA2B2B;AAAA,MA1B3BC,cA0B2B,QA1B3BA,cA0B2B;AAAA,MAzB3BC,OAyB2B,QAzB3BA,OAyB2B;AAAA,MAxB3BC,QAwB2B,QAxB3BA,QAwB2B;AAAA,MAvB3BC,qBAuB2B,QAvB3BA,qBAuB2B;AAAA,MAtB3BC,UAsB2B,QAtB3BA,UAsB2B;AAAA,MArB3BC,eAqB2B,QArB3BA,eAqB2B;AAAA,MApB3BC,WAoB2B,QApB3BA,WAoB2B;AAAA,MAnB3BC,WAmB2B,QAnB3BA,WAmB2B;AAAA,MAlB3BC,UAkB2B,QAlB3BA,UAkB2B;AAAA,MAjB3BC,kBAiB2B,QAjB3BA,kBAiB2B;AAAA,MAhB3BC,eAgB2B,QAhB3BA,eAgB2B;AAAA,MAf3BC,gBAe2B,QAf3BA,gBAe2B;AAAA,MAd3BC,kBAc2B,QAd3BA,kBAc2B;AAAA,MAb3BC,QAa2B,QAb3BA,QAa2B;AAAA,MAZ3BC,iBAY2B,QAZ3BA,iBAY2B;AAAA,MAX3BC,gBAW2B,QAX3BA,gBAW2B;AAAA,MAV3BC,gBAU2B,QAV3BA,gBAU2B;AAAA,MAT3BC,oBAS2B,QAT3BA,oBAS2B;AAAA,MAR3BC,gBAQ2B,QAR3BA,gBAQ2B;AAAA,MAP3BC,4BAO2B,QAP3BA,4BAO2B;AAAA,MAN3BC,yBAM2B,QAN3BA,yBAM2B;AAAA,MAL3BC,oBAK2B,QAL3BA,oBAK2B;AAAA,MAJ3BC,0BAI2B,QAJ3BA,0BAI2B;AAAA,MAH3BC,sBAG2B,QAH3BA,sBAG2B;AAAA,MAF3BC,YAE2B,QAF3BA,YAE2B;AAAA,MAD3BC,QAC2B,QAD3BA,QAC2B;AAC3B,MAAIC,aAAa,GAAG,IAAIC,GAAJ,EAApB;;AACA,MAAIT,gBAAgB,IAAIA,gBAAgB,CAACU,OAAzC,EAAkD;AAChDV,IAAAA,gBAAgB,CAACU,OAAjB,CAAyB,UAAChE,IAAD,EAAU;AACjC8D,MAAAA,aAAa,CAACG,GAAd,CAAkBjE,IAAI,CAACH,GAAvB,EAA4BG,IAA5B;AACD,KAFD;AAGD,GAJD,MAIO,IAAIqD,oBAAoB,IAAIA,oBAAoB,CAACW,OAAjD,EAA0D;AAC/DX,IAAAA,oBAAoB,CAACW,OAArB,CAA6B,UAACE,YAAD,EAAkB;AAC7CJ,MAAAA,aAAa,CAACG,GAAd,CAAkBC,YAAY,CAACrE,GAA/B,EAAoCqE,YAApC;AACD,KAFD;AAGD,GAJM,MAIA,IAAId,gBAAJ,EAAsB;AAC3BU,IAAAA,aAAa,GAAGzC,sEAA6B,CAAC+B,gBAAD,CAA7C;AACD;;AAED,kBAA0BpC,gDAAQ,iCAAeQ,QAAf;AAAyBsC,IAAAA,aAAa,EAAbA;AAAzB,KAAlC;AAAA;AAAA,MAAOjC,KAAP;AAAA,MAAcsC,QAAd;;AACA,mBAAwCnD,gDAAQ,EAAhD;AAAA;AAAA,MAAOoD,YAAP;AAAA,MAAqBC,eAArB;;AACA,MAAMC,QAAQ,GAAGnD,8CAAM,EAAvB;AACAmD,EAAAA,QAAQ,CAACC,OAAT,GAAmB1C,KAAnB;AAEAN,EAAAA,4DAAmB,CAAC,YAAM;AACxB,QAAIgC,4BAAJ,EAAkC;AAAA;;AAChC,wBAAA1B,KAAK,CAAC2C,OAAN,kEAAeC,UAAf;AACD;AACF,GAJkB,EAIhB,CAACL,YAAD,CAJgB,CAAnB;AAMA7C,EAAAA,4DAAmB,CAAC,YAAM;AACxBmD,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAFkB,EAEhB,CAACC,IAAI,CAACC,SAAL,CAAelC,WAAf,CAAD,CAFgB,CAAnB;AAIAzB,EAAAA,iDAAS,CAAC,YAAM;AACd4D,IAAAA,OAAO;AACR,GAFQ,EAEN,CAAC5C,KAAD,EAAQC,MAAR,EAAgBC,YAAhB,CAFM,CAAT;;AAIA,WAAS2C,eAAT,CAA0BC,KAA1B,EAIG;AACD,QAAMC,SAAmB,GAAG;AAC1BrD,MAAAA,UAAU,EAAEoD,KAAK,CAACpD,UADQ;AAE1BD,MAAAA,SAAS,EAAEqD,KAAK,CAACrD,SAFS;AAG1BuD,MAAAA,gBAAgB,EAAE,CAAC,CAACF,KAAK,CAACG,SAHA;AAI1BC,MAAAA,WAAW,EAAE,IAAIC,IAAJ,GAAWC,WAAX;AAJa,KAA5B;AAOAlB,IAAAA,QAAQ,CAAC,UAACmB,YAAD,EAAkB;AACzB,UAAI,CAACA,YAAY,CAAC7D,MAAb,CAAoB8D,gBAAzB,EAA2C;AACzCP,QAAAA,SAAS,CAACO,gBAAV,GAA6B,IAAIH,IAAJ,GAAWC,WAAX,EAA7B;AACD;;AAED,6CACKC,YADL;AAEEd,QAAAA,OAAO,EAAEO,KAAK,CAACG,SAFjB;AAGEpB,QAAAA,aAAa,EAAEiB,KAAK,CAACG,SAAN,CAAgBpB,aAHjC;AAIE0B,QAAAA,MAAM,EAAEtG,oEAAA,EAJV;AAKEuC,QAAAA,MAAM,kCACD6D,YAAY,CAAC7D,MADZ,GAEDuD,SAFC;AALR;AAUD,KAfO,CAAR;AAiBA,WAAOA,SAAP;AACD,GA/D0B,CAiE3B;;;AACA,MAAMS,cAAc,GAAG,SAAjBA,cAAiB,CAACP,SAAD,EAAqBQ,KAArB,EAAoC;AACzD,QAAIA,KAAJ,EAAW;AACTpE,MAAAA,iDAAQ,CAACpC,oEAAA,EAAD,EAAuBwG,KAAK,CAACC,OAAN,IAAiBD,KAAxC,EAA+C,SAA/C,CAAR;AACA;AACD;;AAED,QAAMV,SAAS,GAAGF,eAAe,CAAC;AAChCI,MAAAA,SAAS,EAATA,SADgC;AAEhCvD,MAAAA,UAAU,EAAE,IAFoB;AAGhCD,MAAAA,SAAS,EAAE;AAHqB,KAAD,CAAjC;;AAMA,QAAIuB,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAAC;AACP2C,QAAAA,eAAe,EAAEV,SAAS,CAACpB,aADpB;AAEP0B,QAAAA,MAAM,EAAEtG,oEAAA,EAFD;AAGPuC,QAAAA,MAAM,EAAEuD;AAHD,OAAD,CAAR;AAKD;AACF,GAnBD;;AAqBA,MAAMN,aAAa,GAAG,SAAhBA,aAAgB,GAAwB;AAAA,QAAvBD,UAAuB,uEAAV,KAAU;;AAC5C,QAAI,CAAC/B,WAAL,EAAkB;AAChB;AACD;;AAED,QAAMwC,SAAS,GAAGhG,qEAAA,CAAoB;AACpC4G,MAAAA,SAAS,EAAEpD,WAAW,CAACqD,EADa;AAEpCC,MAAAA,OAAO,EAAEtD,WAAW,CAACsD,OAFe;AAGpCC,MAAAA,eAAe,EAAEvD,WAAW,CAACuD,eAHO;AAIpCC,MAAAA,YAAY,EAAExD,WAAW,CAACwD,YAJU;AAKpC9C,MAAAA,gBAAgB,EAAhBA,gBALoC;AAMpCC,MAAAA,oBAAoB,EAApBA,oBANoC;AAOpCC,MAAAA,gBAAgB,EAAhBA;AAPoC,KAApB,CAAlB;AAUA4B,IAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEiB,EAAX,CAAc,OAAd,EAAuB,UAACT,KAAD,EAAW;AAChCD,MAAAA,cAAc,CAACP,SAAD,EAAYQ,KAAZ,CAAd;AACD,KAFD;;AAIA,QAAI,CAAC1D,QAAD,IAAakD,SAAb,IAA0B,CAACT,UAA/B,EAA2C;AACzCK,MAAAA,eAAe,CAAC;AACdI,QAAAA,SAAS,EAATA,SADc;AAEdvD,QAAAA,UAAU,EAAE,IAFE;AAGdD,QAAAA,SAAS,EAAE;AAHG,OAAD,CAAf;AAKD;;AACD,QAAI+C,UAAU,IAAI,CAACzC,QAAnB,EAA6B;AAC3BkD,MAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAET,UAAX;AACD;AACF,GA7BD;;AA8BA,MAAM2B,aAAa,GAAG,SAAhBA,aAAgB,CAAC3E,MAAD,EAA4B;AAChD,QAAIc,qBAAJ,EAA2B;AACzBA,MAAAA,qBAAqB,CAACd,MAAD,CAArB;AACD;;AAED,YAAQA,MAAR;AACE,WAAKL,yEAAL;AACE,YAAIK,MAAM,KAAKL,yEAAX,IAAsCuB,WAA1C,EAAuD;AACrDA,UAAAA,WAAW;AACZ;;AACD;;AACF,WAAKvB,+EAAL;AACA,WAAKA,sEAAL;AACE,YAAIwB,UAAJ,EAAgB;AACdA,UAAAA,UAAU;AACX;;AAED8B,QAAAA,aAAa;AAEb;;AACF,WAAKtD,gFAAL;AACE+C,QAAAA,QAAQ,CAAC,UAACsC,IAAD;AAAA,iDAAgBA,IAAhB;AAAsBjB,YAAAA,MAAM,EAAEtG,oEAAA;AAA9B;AAAA,SAAD,CAAR;AACA;AAjBJ;AAmBD,GAxBD;;AA0BA,MAAMwH,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACC,UAAD,EAAsB;AACpD,QAAI3D,kBAAJ,EAAwB;AACtBA,MAAAA,kBAAkB,CAAC2D,UAAD,CAAlB;AACD;;AACDtC,IAAAA,eAAe,CAACsC,UAAD,CAAf;AACD,GALD;;AAOA,MAAM9B,OAAO,GAAG,SAAVA,OAAU,GAAM;AACpB3F,IAAAA,gEAAA,CAAe+C,KAAf,EAAsBC,MAAtB,EAA8B;AAC5BC,MAAAA,YAAY,EAAZA,YAD4B;AAE5BH,MAAAA,QAAQ,EAARA,QAF4B;AAG5BK,MAAAA,OAAO,EAAPA,OAH4B;AAI5BC,MAAAA,QAAQ,EAARA,QAJ4B;AAK5BC,MAAAA,qBAAqB,EAAE6D,aALK;AAM5B5D,MAAAA,UAAU,EAAVA,UAN4B;AAO5BC,MAAAA,eAAe,EAAfA,eAP4B;AAQ5BK,MAAAA,eAAe,EAAfA,eAR4B;AAS5BD,MAAAA,kBAAkB,EAAlBA,kBAT4B;AAU5BK,MAAAA,iBAAiB,EAAjBA,iBAV4B;AAW5Bd,MAAAA,cAAc,EAAdA,cAX4B;AAY5BY,MAAAA,kBAAkB,EAAE0D,uBAZQ;AAa5BvD,MAAAA,gBAAgB,EAAhBA,gBAb4B;AAc5BK,MAAAA,yBAAyB,EAAzBA,yBAd4B;AAe5BC,MAAAA,oBAAoB,EAApBA,oBAf4B;AAgB5BC,MAAAA,0BAA0B,EAA1BA,0BAhB4B;AAiB5BC,MAAAA,sBAAsB,EAAtBA,sBAjB4B;AAkB5BC,MAAAA,YAAY,EAAZA,YAlB4B;AAmB5BC,MAAAA,QAAQ,EAARA;AAnB4B,KAA9B;AAqBD,GAtBD;;AAuBA,MAAMgD,aAAa,GAAG,SAAhBA,aAAgB,GAAuB;AAC3C,QAAMC,WAAW,GAAG,CAACjF,KAAK,CAAC2C,OAA3B;;AACA,QAAI3C,KAAK,CAACJ,MAAN,CAAaC,SAAb,IAA0BqB,gBAA1B,IAA8C+D,WAA9C,IAA6D9E,QAAjE,EAA2E;AACzE,0BAAO,4HAAGe,gBAAH,CAAP;AACD;;AACD,wBAAO,4HAAGhB,QAAH,CAAP;AACD,GAND;;AAOA,sBACE,4DAAC,eAAD,CAAiB,QAAjB;AAA0B,SAAK,EAAE;AAAEF,MAAAA,KAAK,EAALA,KAAF;AAASsC,MAAAA,QAAQ,EAARA;AAAT;AAAjC,KACG0C,aAAa,EADhB,CADF;AAKD,CAzNM;AA2NP/E,gBAAgB,CAACiF,YAAjB,GAAgC;AAC9BvD,EAAAA,yBAAyB,EAAE,CADG;AAE9BC,EAAAA,oBAAoB,EAAE,CAFQ;AAG9BzB,EAAAA,QAAQ,EAAE,IAHoB;AAI9B6B,EAAAA,QAAQ,EAAE;AAJoB,CAAhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/VA;AAaA;AACA;AACA;AACA;;AAEA,IAAMqD,SAAS,GAAG,SAAZA,SAAY,CAAC/G,KAAD,EAAiBP,YAAjB;AAAA,SACf,QAAOO,KAAP,MAAiB,QAAjB,IACC,QAAOP,YAAP,MAAwB,QADzB,IAECuH,KAAK,CAACC,OAAN,CAAcjH,KAAd,MAAyBgH,KAAK,CAACC,OAAN,CAAcxH,YAAd,CAF3B,IAGA,QAAOO,KAAP,cAAwBP,YAAxB,CAJgB;AAAA,CAAlB;;AAMA,IAAMyH,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAoBC,IAApB,EAOH;AACvB,MAAQ9C,OAAR,GAAsE8C,IAAtE,CAAQ9C,OAAR;AAAA,MAAiB+C,MAAjB,GAAsED,IAAtE,CAAiBC,MAAjB;AAAA,MAAyBC,WAAzB,GAAsEF,IAAtE,CAAyBE,WAAzB;AAAA,MAAsC3F,KAAtC,GAAsEyF,IAAtE,CAAsCzF,KAAtC;AAAA,MAA6CnB,YAA7C,GAAsE4G,IAAtE,CAA6C5G,YAA7C;AAAA,MAA2D8E,MAA3D,GAAsE8B,IAAtE,CAA2D9B,MAA3D;;AACA,MAAIhB,OAAJ,EAAa;AACX,WAAOA,OAAO,CAACiD,oBAAR,CAA6BF,MAA7B,EAAqCC,WAArC,CAAP;AACD;;AAED,MAAME,KAAK,GACT,CAAC7F,KAAK,CAACJ,MAAN,CAAaE,UAAd,IACA,CAAC,CAACE,KAAK,CAACiC,aADR,IAEAjC,KAAK,CAACiC,aAAN,CAAoB6D,IAApB,GAA2B,CAH7B;AAIA,MAAMC,KAAwB,GAAG,EAAjC;;AAEA,MAAIF,KAAJ,EAAW;AACTH,IAAAA,MAAM,CAACvD,OAAP,CAAe,UAAC6D,IAAD,EAAU;AAAA;;AACvB,UAAM3D,YAAY,2BAAGrC,KAAK,CAACiC,aAAT,yDAAG,qBAAqB7D,GAArB,CAAyB4H,IAAI,CAAChI,GAA9B,CAArB;;AAEA,UAAIqE,YAAY,IAAIgD,SAAS,CAAChD,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAE/D,KAAf,EAAsB0H,IAAI,CAACjI,YAA3B,CAA7B,EAAuE;AACrEgI,QAAAA,KAAK,CAACC,IAAI,CAAChI,GAAN,CAAL,GAAkBqE,YAAY,CAAC/D,KAA/B;AACD,OAFD,MAEO;AACLyH,QAAAA,KAAK,CAACC,IAAI,CAAChI,GAAN,CAAL,GAAkBgI,IAAI,CAACjI,YAAvB;AACD;AACF,KARD;AASA,WAAOgI,KAAP;AACD;;AAEDnI,EAAAA,gDAAO,CAAC+F,MAAD,EAASyB,yDAAT,EAA2BvG,YAA3B,CAAP;AACA6G,EAAAA,MAAM,CAACvD,OAAP,CAAe,UAAC6D,IAAD,EAAU;AACvBD,IAAAA,KAAK,CAACC,IAAI,CAAChI,GAAN,CAAL,GAAkBgI,IAAI,CAACjI,YAAvB;AACD,GAFD;AAGA,SAAOgI,KAAP;AACD,CArCD;AAuCA;AACA;AACA;AACA;;;AACO,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAChCP,MADgC,EAEhCC,WAFgC,EAGV;AACtB,oBAAkBR,kDAAU,CAACpF,8DAAD,CAA5B;AAAA,MAAQC,KAAR,eAAQA,KAAR;;AACA,MAAQ2C,OAAR,GAA4B3C,KAA5B,CAAQ2C,OAAR;AAAA,MAAiBgB,MAAjB,GAA4B3D,KAA5B,CAAiB2D,MAAjB;AACA,MAAM9E,YAAY,GAAG,oBAArB;AAEA,SAAO2G,mBAAmB,CAAC;AACzB3G,IAAAA,YAAY,EAAZA,YADyB;AAEzBmB,IAAAA,KAAK,EAALA,KAFyB;AAGzB2C,IAAAA,OAAO,EAAPA,OAHyB;AAIzBgB,IAAAA,MAAM,EAANA,MAJyB;AAKzB+B,IAAAA,MAAM,EAANA,MALyB;AAMzBC,IAAAA,WAAW,EAAXA;AANyB,GAAD,CAA1B;AAQD,CAhBM;AAkBP;AACA;AACA;AACA;;AACO,IAAMO,iBAEZ,GAAG,SAFSA,iBAET,CAACR,MAAD,EAAY;AAAA;;AACd,qBAAkBP,kDAAU,CAACpF,8DAAD,CAA5B;AAAA,MAAQC,KAAR,gBAAQA,KAAR;;AACA,MAAQ2C,OAAR,GAA4B3C,KAA5B,CAAQ2C,OAAR;AAAA,MAAiBgB,MAAjB,GAA4B3D,KAA5B,CAAiB2D,MAAjB;AACA,MAAM9E,YAAY,GAAG,oBAArB;;AAEA,MAAI8D,OAAJ,EAAa;AACX,WAAOA,OAAO,CAACwD,mBAAR,CAA4BT,MAA5B,CAAP;AACD;;AAED,MAAMrD,YAAY,4BAAGrC,KAAK,CAACiC,aAAT,0DAAG,sBAAqB7D,GAArB,CAAyBsH,MAAM,CAAC1H,GAAhC,CAArB;;AAEA,MACE,CAACgC,KAAK,CAACJ,MAAN,CAAaE,UAAd,IACAuC,YADA,IAEAgD,SAAS,CAAChD,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAE/D,KAAf,EAAsBoH,MAAM,CAAC3H,YAA7B,CAHX,EAIE;AACA,WAAOsE,YAAY,CAAC/D,KAApB;AACD;;AAEDV,EAAAA,gDAAO,CAAC+F,MAAD,EAASyB,yDAAT,EAA2BvG,YAA3B,CAAP;AACA,SAAO6G,MAAM,CAAC3H,YAAd;AACD,CAvBM;;AAyBP,IAAMqI,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACX,IAAD,EAIzB;AAAA;;AACJ,MAAQzH,GAAR,GAAgCyH,IAAhC,CAAQzH,GAAR;AAAA,MAAa2E,OAAb,GAAgC8C,IAAhC,CAAa9C,OAAb;AAAA,MAAsB3C,KAAtB,GAAgCyF,IAAhC,CAAsBzF,KAAtB;;AACA,MAAI2C,OAAJ,EAAa;AACX,WAAOA,OAAO,CAAC0D,uBAAR,CAAgCrI,GAAhC,CAAP;AACD;;AACD,MAAMqE,YAAY,4BAAGrC,KAAK,CAACiC,aAAT,0DAAG,sBAAqB7D,GAArB,CAAyBJ,GAAzB,CAArB;;AACA,MAAI,CAACgC,KAAK,CAACJ,MAAN,CAAaE,UAAd,IAA4BuC,YAAhC,EAA8C;AAC5C,WAAOA,YAAP;AACD;;AACD,SAAO,IAAP;AACD,CAdD;AAgBA;AACA;AACA;AACA;AACA;;;AACO,IAAMiE,qBAA6D,GAAG,SAAhEA,qBAAgE,CAC3EtI,GAD2E,EAExE;AACH,qBAAkBmH,kDAAU,CAACpF,8DAAD,CAA5B;AAAA,MAAQC,KAAR,gBAAQA,KAAR;;AACA,MAAQ2C,OAAR,GAAoB3C,KAApB,CAAQ2C,OAAR;AACA,SAAOyD,sBAAsB,CAAC;AAAEpI,IAAAA,GAAG,EAAHA,GAAF;AAAOgC,IAAAA,KAAK,EAALA,KAAP;AAAc2C,IAAAA,OAAO,EAAPA;AAAd,GAAD,CAA7B;AACD,CANM;;AAQP,IAAM4D,UAAU;AAAA,qEAAG,iBACjBb,MADiB,EAEjB7G,YAFiB,EAGjB8D,OAHiB,EAIjBgB,MAJiB;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,gBAOVhB,OAPU;AAAA;AAAA;AAAA;;AAQb/E,YAAAA,gDAAO,CAAC+F,MAAD,EAASlG,yDAAT,EAA2BoB,YAA3B,CAAP;AARa;;AAAA;AAAA;AAAA,mBAWT8D,OAAO,CAAC6D,qBAAR,CAA8Bd,MAA9B,CAXS;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAcf9H,YAAAA,gDAAO,CAAC+F,MAAD,EAAS,YAAMG,OAAN,eAAT,EAAiCjF,YAAjC,CAAP;;AAde;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAAV0H,UAAU;AAAA;AAAA;AAAA,GAAhB;AAkBA;AACA;AACA;AACA;AACA;AACA;;;AACO,IAAME,SAAS,GAAG,SAAZA,SAAY,CACvBzI,GADuB,EAEvBD,YAFuB,EAGV;AACb,qBAAkBoH,kDAAU,CAACpF,8DAAD,CAA5B;AAAA,MAAQC,KAAR,gBAAQA,KAAR;;AACA,MAAQ2C,OAAR,GAAoB3C,KAApB,CAAQ2C,OAAR;;AAEA,MAAI,CAACA,OAAL,EAAc;AACZ,WAAO,IAAI7E,wCAAJ,CAASC,YAAT,EAAuBC,GAAvB,EAA4BgC,KAAK,CAACiC,aAAlC,CAAP;AACD;;AAED,SAAOU,OAAO,CAAC+D,OAAR,CAAgB1I,GAAhB,EAAqBD,YAArB,CAAP;AACD,CAZM;AAcP;AACA;AACA;AACA;AACA;AACA;;AACO,IAAM4I,aAGZ;AAAA,sEAAG,kBAAOjB,MAAP;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,2BACgBP,kDAAU,CAACpF,8DAAD,CAD1B,EACMC,KADN,gBACMA,KADN;AAEM2C,YAAAA,OAFN,GAE0B3C,KAF1B,CAEM2C,OAFN,EAEegB,MAFf,GAE0B3D,KAF1B,CAEe2D,MAFf;AAGI9E,YAAAA,YAHJ,GAGmB,oBAHnB;AAAA;AAAA,mBAKI0H,UAAU,CAACb,MAAD,EAAS7G,YAAT,EAAuB8D,OAAvB,EAAgCgB,MAAhC,CALd;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAHYgD,aAGZ;AAAA;AAAA;AAAA,GAHM;AAwGA,IAAMC,WAAW,GAAG,SAAdA,WAAc,GAAyB;AAClD,qBAAkBzB,kDAAU,CAACpF,8DAAD,CAA5B;AAAA,MAAQC,KAAR,gBAAQA,KAAR;;AACA,MAAQ2C,OAAR,GAA4B3C,KAA5B,CAAQ2C,OAAR;AAAA,MAAiBgB,MAAjB,GAA4B3D,KAA5B,CAAiB2D,MAAjB;;AAEA,MAAMkD,eAAe,GAAG,SAAlBA,eAAkB,CAAC1C,OAAD,EAA8C;AACpE,QAAMtF,YAAY,GAAG,eAArB;;AACA,QAAI,CAAC8D,OAAL,EAAc;AACZlD,MAAAA,iDAAQ,CAACkE,MAAD,EAASlG,yDAAT,EAA2BoB,YAA3B,CAAR;AACA;AACD;;AACD8D,IAAAA,OAAO,CAACmE,YAAR;AACAnE,IAAAA,OAAO,CAACoE,aAAR,CAAsB5C,OAAtB;AACD,GARD;;AAUA,MAAM6C,cAAc,GAAG,SAAjBA,cAAiB,GAAY;AACjC,QAAMnI,YAAY,GAAG,cAArB;;AACA,QAAI,CAAC8D,OAAL,EAAc;AACZlD,MAAAA,iDAAQ,CAACkE,MAAD,EAASlG,yDAAT,EAA2BoB,YAA3B,CAAR;AACA;AACD;;AACD8D,IAAAA,OAAO,CAACmE,YAAR;AACD,GAPD;;AASA,MAAMG,cAAc,GAAG,SAAjBA,cAAiB,CAAChD,SAAD,EAA6B;AAClD,QAAMpF,YAAY,GAAG,cAArB;;AACA,QAAI,CAAC8D,OAAL,EAAc;AACZlD,MAAAA,iDAAQ,CAACkE,MAAD,EAASlG,yDAAT,EAA2BoB,YAA3B,CAAR;AACA;AACD;;AACD8D,IAAAA,OAAO,CAACuE,YAAR,CAAqBjD,SAArB;AACD,GAPD;;AASA,MAAMkD,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAY;AACnC,QAAMtI,YAAY,GAAG,gBAArB;;AACA,QAAI,CAAC8D,OAAL,EAAc;AACZlD,MAAAA,iDAAQ,CAACkE,MAAD,EAASlG,yDAAT,EAA2BoB,YAA3B,CAAR;AACA;AACD;;AACD8D,IAAAA,OAAO,CAACyE,cAAR;AACD,GAPD;AASA;AACF;AACA;;;AACE,MAAMC,SAEL,GAAG,SAFEA,SAEF,CAACC,GAAD,EAAS;AACX,QAAMzI,YAAY,GAAG,SAArB;;AACA,QAAI,CAAC8D,OAAL,EAAc;AACZlD,MAAAA,iDAAQ,CAACkE,MAAD,EAASlG,yDAAT,EAA2BoB,YAA3B,CAAR;AACA,aAAOF,OAAO,CAACC,OAAR,EAAP;AACD;;AACD,WAAO+D,OAAO,CAAC4E,OAAR,CAAgBD,GAAhB,CAAP;AACD,GATD;AAWA;AACF;AACA;;;AACE,MAAME,UAEL,GAAG,SAFEA,UAEF,CAACF,GAAD,EAAS;AACX,QAAMzI,YAAY,GAAG,UAArB;;AACA,QAAI,CAAC8D,OAAL,EAAc;AACZlD,MAAAA,iDAAQ,CAACkE,MAAD,EAASlG,yDAAT,EAA2BoB,YAA3B,CAAR;AACA,aAAOF,OAAO,CAACC,OAAR,EAAP;AACD;;AACD,WAAO+D,OAAO,CAAC8E,QAAR,CAAiBH,GAAjB,CAAP;AACD,GATD;;AAWA,MAAIrF,aAAa,GAAGU,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAE+E,qBAAT,EAApB;;AACA,MAAI,CAAC1H,KAAK,CAACJ,MAAN,CAAaE,UAAd,IAA4BE,KAAK,CAACiC,aAAtC,EAAqD;AACnD;AACAA,IAAAA,aAAa,GAAGqD,KAAK,CAACqC,IAAN,CAAW3H,KAAK,CAACiC,aAAjB,EAAgC;AAAA;AAAA,UAAE2F,IAAF;AAAA,UAAQ5B,IAAR;;AAAA,aAAkBA,IAAlB;AAAA,KAAhC,CAAhB;AACD;;AAED,MAAM6B,oBAGL;AAAA,wEAAG,kBAAOnC,MAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AACI7G,cAAAA,YADJ,GACmB,sBADnB;AAAA;AAAA,qBAEI0H,UAAU,CAACb,MAAD,EAAS7G,YAAT,EAAuB8D,OAAvB,EAAgCgB,MAAhC,CAFd;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAHKkE,oBAGL;AAAA;AAAA;AAAA,KAHD;;AAOA,MAAMC,wBAAwB;AAAA,wEAAG;AAAA;AAAA;AAAA;AAAA;AAAA,kBAC1BnF,OAD0B;AAAA;AAAA;AAAA;;AAE7B/E,cAAAA,gDAAO,CAAC+F,MAAD,EAASlG,yDAAT,EAA2B,0BAA3B,CAAP;AAF6B;;AAAA;AAAA;AAAA,qBAKzBkF,OAAO,CAACmF,wBAAR,EALyB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAxBA,wBAAwB;AAAA;AAAA;AAAA,KAA9B;;AAQA,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CACvBrC,MADuB,EAEvBC,WAFuB,EAGpB;AACH,QAAM9G,YAAY,GAAG,kBAArB;AACA,WAAO2G,mBAAmB,CAAC;AACzB3G,MAAAA,YAAY,EAAZA,YADyB;AAEzBmB,MAAAA,KAAK,EAALA,KAFyB;AAGzB2C,MAAAA,OAAO,EAAPA,OAHyB;AAIzBgB,MAAAA,MAAM,EAANA,MAJyB;AAKzB+B,MAAAA,MAAM,EAANA,MALyB;AAMzBC,MAAAA,WAAW,EAAXA;AANyB,KAAD,CAA1B;AAQD,GAbD;;AAeA,MAAMqC,mBAA2D,GAAG,SAA9DA,mBAA8D,CAClEhK,GADkE,EAE/D;AACH,WAAOoI,sBAAsB,CAAC;AAAEpI,MAAAA,GAAG,EAAHA,GAAF;AAAOgC,MAAAA,KAAK,EAALA,KAAP;AAAc2C,MAAAA,OAAO,EAAPA;AAAd,KAAD,CAA7B;AACD,GAJD;;AAMA,WAAS+D,OAAT,CAAqB1I,GAArB,EAAkCD,YAAlC,EAA6D;AAC3D,QAAI,CAAC4E,OAAL,EAAc;AACZ,aAAO,IAAI7E,wCAAJ,CAASC,YAAT,EAAuBC,GAAvB,EAA4BgC,KAAK,CAACiC,aAAlC,CAAP;AACD;;AACD,WAAOU,OAAO,CAAC+D,OAAR,CAAgB1I,GAAhB,EAAqBD,YAArB,CAAP;AACD;;AAED,WAAS6E,UAAT,GAAsC;AACpC,QAAI,CAACD,OAAL,EAAc;AACZ/E,MAAAA,gDAAO,CAAC+F,MAAD,EAASlG,yDAAT,EAA2B,YAA3B,CAAP;AACA,aAAOkB,OAAO,CAACC,OAAR,EAAP;AACD;;AACD,WAAO+D,OAAO,CAACC,UAAR,EAAP;AACD;;AAED,WAASqF,UAAT,CAAqB5D,YAArB,EAAkD;AAChD,QAAI,CAAC1B,OAAL,EAAc;AACZ/E,MAAAA,gDAAO,CAAC+F,MAAD,EAASlG,yDAAT,EAA2B,YAA3B,CAAP;AACA;AACD;;AACDkF,IAAAA,OAAO,CAACsF,UAAR,CAAmB5D,YAAnB;AACD;;AAED,SAAO;AACLJ,IAAAA,SAAS,EAAEtB,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEsB,SADf;AAELiE,IAAAA,WAAW,EAAEvF,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEuF,WAFjB;AAGL/D,IAAAA,OAAO,oBAAOxB,OAAP,aAAOA,OAAP,uBAAOA,OAAO,CAAEwB,OAAhB,CAHF;AAILE,IAAAA,YAAY,EAAE1B,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAE0B,YAJlB;AAKL4D,IAAAA,UAAU,EAAVA,UALK;AAMLlB,IAAAA,aAAa,EAAEF,eANV;AAOLC,IAAAA,YAAY,EAAEE,cAPT;AAQLE,IAAAA,YAAY,EAAED,cART;AASLG,IAAAA,cAAc,EAAED,gBATX;AAULvH,IAAAA,MAAM,EAAEI,KAAK,CAACJ,MAVT;AAWLiI,IAAAA,oBAAoB,EAApBA,oBAXK;AAYLC,IAAAA,wBAAwB,EAAxBA,wBAZK;AAaLC,IAAAA,gBAAgB,EAAhBA,gBAbK;AAcL9F,IAAAA,aAAa,EAAEA,aAAa,IAAI,EAd3B;AAeLhE,IAAAA,SAAS,EAAE,CAAA0E,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEwF,iBAAT,OAAgC,EAftC;AAgBLH,IAAAA,mBAAmB,EAAnBA,mBAhBK;AAiBLV,IAAAA,GAAG,EAAE;AACHc,MAAAA,IAAI,EAAEf,SADH;AAEHgB,MAAAA,YAAY,EAAEb;AAFX,KAjBA;AAqBLd,IAAAA,OAAO,EAAPA,OArBK;AAsBL9D,IAAAA,UAAU,EAAVA;AAtBK,GAAP;AAwBD,CA9JM;;;;;;;;;;;;;;;;;ACnSA,IAAMnF,gBAAgB,GAAG,mCAAzB;AACA,IAAM2H,gBAAgB,GAAG,kDAAzB;AAEE,IAAM7H,mBAAmB,GAAE,mEAA3B;AACA,IAAMC,uBAAuB,GAAG,+FAAhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJT;AAMA;AAEO,SAASiC,QAAT,CACLkE,MADK,EAELG,OAFK,EAGLyE,GAHK,EAIC;AACN,MACE,CAAC5E,MAAD,IACA,CAACA,MAAM,CAAChD,UADR,IAEA,OAAOgD,MAAM,CAAChD,UAAP,CAAkBkD,KAAzB,KAAmC,UAFnC,IAGA,CAACF,MAAM,CAAClD,QAHR,IAIAkD,MAAM,CAAClD,QAAP,GAAkB6H,gEALpB,EAME;AACA;AACD;;AAED3E,EAAAA,MAAM,CAAChD,UAAP,CAAkBkD,KAAlB,CAAwBC,OAAxB,EAAiCyE,GAAjC;AACD;AAEM,SAAS5K,OAAT,CACLgG,MADK,EAELG,OAFK,EAGLyE,GAHK,EAIC;AACN,MACE,CAAC5E,MAAD,IACA,CAACA,MAAM,CAAChD,UADR,IAEA,OAAOgD,MAAM,CAAChD,UAAP,CAAkB8H,IAAzB,KAAkC,UAFlC,IAGA,CAAC9E,MAAM,CAAClD,QAHR,IAIAkD,MAAM,CAAClD,QAAP,GAAkB6H,+DALpB,EAME;AACA;AACD;;AACD3E,EAAAA,MAAM,CAAChD,UAAP,CAAkB8H,IAAlB,CAAuB3E,OAAvB,EAAgCyE,GAAhC;AACD;AAEM,SAAS3K,OAAT,CACL+F,MADK,EAELG,OAFK,EAGLyE,GAHK,EAIC;AACN,MACE,CAAC5E,MAAD,IACA,CAACA,MAAM,CAAChD,UADR,IAEA,OAAOgD,MAAM,CAAChD,UAAP,CAAkBgI,OAAzB,KAAqC,UAFrC,IAGA,CAAChF,MAAM,CAAClD,QAHR,IAIAkD,MAAM,CAAClD,QAAP,GAAkB6H,kEALpB,EAME;AACA;AACD;;AACD3E,EAAAA,MAAM,CAAChD,UAAP,CAAkBgI,OAAlB,CAA0B7E,OAA1B,EAAmCyE,GAAnC;AACD;AAEM,IAAM/I,6BAA6B,GAAG,SAAhCA,6BAAgC,CAC3CqJ,SAD2C,EAEb;AAC9B,MAAM5G,aAAa,GAAG,IAAIC,GAAJ,EAAtB;;AACA,MAAI,CAAC2G,SAAD,IAAc,CAACvD,KAAK,CAACC,OAAN,CAAcsD,SAAd,CAAnB,EAA6C;AAC3C,WAAO5G,aAAP;AACD;;AACD4G,EAAAA,SAAS,CAAC1G,OAAV,CAAkB,UAAC2G,QAAD,EAAc;AAC9B,QAAMC,MAAM,GAAGD,QAAQ,CAACE,SAAT,CAAmB/G,aAAnB,CAAiC3D,KAAhD;;AACA,SAAK,IAAMN,GAAX,IAAkB+K,MAAlB,EAA0B;AACxB,UAAMzK,KAAK,GAAGyK,MAAM,CAAC/K,GAAD,CAApB;AACAiE,MAAAA,aAAa,CAACG,GAAd,CAAkBpE,GAAlB,EAAuB;AACrBA,QAAAA,GAAG,EAAHA,GADqB;AAErBQ,QAAAA,UAAU,EAAEsK,QAAQ,CAAC5E,EAFA;AAGrBxF,QAAAA,gBAAgB,EAAEoK,QAAQ,CAACpK,gBAHN;AAIrBD,QAAAA,WAAW,EAAEqK,QAAQ,CAACE,SAAT,CAAmB9E,EAJX;AAKrBnF,QAAAA,WAAW,EAAE+J,QAAQ,CAACE,SAAT,CAAmBC,SALX;AAMrB3K,QAAAA,KAAK,EAALA;AANqB,OAAvB;AAQD;AACF,GAbD;AAcA,SAAO2D,aAAP;AACD,CAtBM;AAwBA,SAASiH,MAAT,GAA2B;AAChC,SAAO,uCAAuCC,OAAvC,CACL,OADK,EAEL,UAAUC,IAAV,EAAgB;AACd,QAAMC,IAAI,GAAIC,IAAI,CAACC,MAAL,KAAgB,EAAjB,GAAuB,CAApC;AACA,QAAMjL,KAAK,GAAG8K,IAAI,KAAK,GAAT,GAAeC,IAAf,GAAuBA,IAAI,GAAG,GAAR,GAAe,GAAnD;AACA,WAAO/K,KAAK,CAACkL,QAAN,CAAe,EAAf,CAAP;AACD,GANI,CAAP;AAQD;AAEM,SAAS9J,mBAAT,CACL+J,MADK,EAELC,IAFK,EAGC;AACN,MAAMC,aAAa,GAAGrK,8CAAM,CAAC,IAAD,CAA5B;AAEAF,EAAAA,iDAAS,CAAC,YAAM;AACd,QAAIuK,aAAa,CAACjH,OAAlB,EAA2B;AACzBiH,MAAAA,aAAa,CAACjH,OAAd,GAAwB,KAAxB;AACA;AACD;;AAED,QAAI,OAAO+G,MAAP,KAAkB,UAAtB,EAAkC;AAChC,aAAOA,MAAM,EAAb;AACD;AACF,GATQ,EASNC,IATM,CAAT;AAUD;AAEM,SAAShM,WAAT,CAAsBkM,SAAtB,EAAyC7L,YAAzC,EAAuE;AAC5E,MAAI,QAAO6L,SAAP,cAA4B7L,YAA5B,CAAJ,EAA8C;AAC5C,WAAO,KAAP;AACD;;AACD,MAAI,QAAO6L,SAAP,MAAqB,QAArB,IAAiC,QAAO7L,YAAP,MAAwB,QAAzD,IACJuH,KAAK,CAACC,OAAN,CAAcqE,SAAd,MAA6BtE,KAAK,CAACC,OAAN,CAAcxH,YAAd,CAD7B,EAEE;AACA,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD,EAED;;AACO,SAASF,OAAT,CAAkBgM,MAAlB,EAA2D;AAChE,MAAIC,SAAS,GAAGD,MAAhB;;AACA,OAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,qDAAjB,EAAkCA,CAAC,EAAnC,EAAuC;AACrC,QAAMC,OAAO,GAASD,CAAT,gCAASA,CAAT,6BAASA,CAAT,KAAb;AACAD,IAAAA,SAAS,GAAGA,SAAS,CAACX,OAAV,CAAkB,IAAIc,MAAJ,cAAiBF,CAAjB,UAAyB,GAAzB,CAAlB,EAAiDC,OAAjD,CAAZ;AACD;;AACD,SAAOF,SAAP;AACD;;;;;;;;;;ACrID;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;AACA","sources":["webpack://@flagship.io/react-sdk/./src/Flag.ts","webpack://@flagship.io/react-sdk/./src/FlagshipContext.tsx","webpack://@flagship.io/react-sdk/./src/FlagshipHooks.tsx","webpack://@flagship.io/react-sdk/./src/constants.ts","webpack://@flagship.io/react-sdk/./src/utils.tsx","webpack://@flagship.io/react-sdk/external commonjs \"@flagship.io/js-sdk\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.filter.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.from.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.slice.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.function.name.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.map.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.get-own-property-descriptor.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.get-own-property-descriptors.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.keys.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.to-string.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.promise.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.regexp.constructor.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.regexp.exec.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.regexp.to-string.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.string.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.string.replace.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.description.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/web.dom-collections.for-each.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/web.dom-collections.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"react\"","webpack://@flagship.io/react-sdk/external commonjs \"regenerator-runtime/runtime.js\"","webpack://@flagship.io/react-sdk/webpack/bootstrap","webpack://@flagship.io/react-sdk/webpack/runtime/compat get default export","webpack://@flagship.io/react-sdk/webpack/runtime/define property getters","webpack://@flagship.io/react-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@flagship.io/react-sdk/webpack/runtime/make namespace object","webpack://@flagship.io/react-sdk/./src/index.tsx"],"sourcesContent":["import Flagship, { FlagDTO, FlagMetadata, IFlag, IFlagMetadata } from '@flagship.io/js-sdk'\nimport { GET_FLAG_CAST_ERROR, GET_METADATA_CAST_ERROR, noVisitorMessage } from './constants'\nimport { hasSameType, logInfo, logWarn, sprintf } from './utils'\n\nexport class Flag<T> implements IFlag<T> {\n private defaultValue:T\n private flagsData: Map<string, FlagDTO> | undefined\n private key: string\n private flag?: FlagDTO\n constructor (defaultValue:T, key: string, flagsData: Map<string, FlagDTO> | undefined) {\n if (!flagsData) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'GetFlag')\n }\n this.defaultValue = defaultValue\n this.key = key\n this.flag = flagsData?.get(key)\n }\n\n private NotSameType () {\n return this.defaultValue !== null && this.defaultValue !== undefined && !hasSameType(this.flag?.value, this.defaultValue)\n }\n\n getValue (): T {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'getValue')\n return this.defaultValue\n }\n\n if (this.NotSameType()) {\n logInfo(\n Flagship.getConfig(),\n sprintf(GET_FLAG_CAST_ERROR, this.key),\n 'getValue'\n )\n return this.defaultValue\n }\n return this.flag.value\n }\n\n exists ():boolean {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'exists')\n return false\n }\n return !!(this.flag.campaignId && this.flag.variationId && this.flag.variationGroupId)\n }\n\n userExposed (): Promise<void> {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'userExposed')\n }\n\n return Promise.resolve()\n }\n\n get metadata ():IFlagMetadata {\n const functionName = 'metadata'\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, functionName)\n return FlagMetadata.Empty()\n }\n if (this.NotSameType()) {\n logInfo(\n Flagship.getConfig(),\n sprintf(GET_METADATA_CAST_ERROR, this.key),\n functionName\n )\n return FlagMetadata.Empty()\n }\n\n return new FlagMetadata({\n campaignId: this.flag.campaignId,\n variationGroupId: this.flag.variationGroupId,\n variationId: this.flag.variationId,\n isReference: !!this.flag.isReference,\n campaignType: this.flag.campaignType as string,\n slug: this.flag.slug\n })\n }\n}\n","// eslint-disable-next-line no-use-before-define\nimport React, {\n useState,\n useEffect,\n ReactNode,\n createContext,\n Dispatch,\n SetStateAction,\n useRef\n} from 'react'\nimport {\n BucketingDTO,\n CampaignDTO,\n FlagDTO,\n Flagship,\n FlagshipStatus,\n IFlagshipConfig,\n primitive,\n Visitor\n} from '@flagship.io/js-sdk'\nimport {\n getModificationsFromCampaigns,\n logError,\n useNonInitialEffect\n} from './utils'\n\nexport interface FsStatus {\n /**\n * Boolean. When true, the SDK is still not ready to render your App otherwise it'll use default modifications.\n */\n isLoading: boolean;\n /**\n * Boolean. true after it has fully finished initialization tasks, false otherwise.\n */\n isSdkReady: boolean;\n\n lastModified?: Date;\n /**\n * Boolean. When true the flagship visitor instance is truthy, false otherwise.\n */\n isVisitorDefined?: boolean;\n /**\n * String or null. The last update date occurred on the flagship visitor instance.\n */\n lastRefresh?: string;\n /**\n * String or null. When null no initialization succeed yet. When string contains stringified date of last successful initialization.\n */\n firstInitSuccess?: string;\n}\nexport interface FsState {\n visitor?: Visitor;\n config?: IFlagshipConfig;\n modifications?: Map<string, FlagDTO>;\n status: FsStatus;\n initialCampaigns?: CampaignDTO[];\n initialModifications?: Map<string, FlagDTO> | FlagDTO[];\n}\n\nexport type VisitorData = {\n id?: string;\n context?: Record<string, primitive>;\n isAuthenticated?: boolean;\n hasConsented?: boolean;\n};\ninterface FsContext {\n state: FsState;\n setState?: Dispatch<SetStateAction<FsState>>;\n}\n\nexport interface FlagshipProviderProps extends IFlagshipConfig {\n /**\n * This is the data to identify the current visitor using your app\n */\n visitorData: VisitorData | null;\n envId: string;\n apiKey: string;\n /**\n * This component will be rendered when Flagship is loading at first initialization only.\n * By default, the value is undefined. It means it will display your app and it might\n * display default modifications value for a very short moment.\n */\n loadingComponent?: ReactNode;\n children?: ReactNode;\n\n /**\n * Callback function called when the SDK starts initialization.\n */\n onInitStart?(): void;\n /**\n * Callback function called when the SDK ends initialization.\n */\n onInitDone?(): void;\n /**\n * Callback function called when the SDK is updated. For example, after a synchronize is triggered or visitor context has changed.\n */\n onUpdate?(params: {\n fsModifications: Map<string, FlagDTO>;\n config: IFlagshipConfig;\n status: FsStatus;\n }): void;\n /**\n * This is an object of the data received when fetching bucketing endpoint.\n * Providing this prop will make bucketing ready to use and the first polling will immediatly check for an update.\n * If the shape of an element is not correct, an error log will give the reason why.\n */\n initialBucketing?: BucketingDTO;\n initialCampaigns?: CampaignDTO[];\n /**\n * This is a set of flag data provided to avoid the SDK to have an empty cache during the first initialization.\n * @deprecated use initialFlagsData instead\n */\n initialModifications?: Map<string, FlagDTO> | FlagDTO[];\n\n /**\n * This is a set of flag data provided to avoid the SDK to have an empty cache during the first initialization.\n */\n initialFlagsData?: Map<string, FlagDTO> | FlagDTO[];\n /**\n * If true, it'll automatically call synchronizeModifications when the bucketing file has updated\n */\n fetchFlagsOnBucketingUpdated?: boolean;\n}\n\nconst initStat: FsState = {\n status: { isLoading: true, isSdkReady: false }\n}\n\nexport const FlagshipContext = createContext<FsContext>({\n state: { ...initStat }\n})\n\nexport const FlagshipProvider: React.FC<FlagshipProviderProps> = ({\n children,\n fetchNow,\n envId,\n apiKey,\n decisionMode,\n decisionApiUrl,\n timeout,\n logLevel,\n statusChangedCallback,\n logManager,\n pollingInterval,\n visitorData,\n onInitStart,\n onInitDone,\n onBucketingSuccess,\n onBucketingFail,\n loadingComponent,\n onBucketingUpdated,\n onUpdate,\n enableClientCache,\n initialBucketing,\n initialCampaigns,\n initialModifications,\n initialFlagsData,\n fetchFlagsOnBucketingUpdated,\n activateDeduplicationTime,\n hitDeduplicationTime,\n visitorCacheImplementation,\n hitCacheImplementation,\n disableCache,\n language\n}: FlagshipProviderProps) => {\n let modifications = new Map<string, FlagDTO>()\n if (initialFlagsData && initialFlagsData.forEach) {\n initialFlagsData.forEach((flag) => {\n modifications.set(flag.key, flag)\n })\n } else if (initialModifications && initialModifications.forEach) {\n initialModifications.forEach((modification) => {\n modifications.set(modification.key, modification)\n })\n } else if (initialCampaigns) {\n modifications = getModificationsFromCampaigns(initialCampaigns)\n }\n\n const [state, setState] = useState<FsState>({ ...initStat, modifications })\n const [lastModified, setLastModified] = useState<Date>()\n const stateRef = useRef<FsState>()\n stateRef.current = state\n\n useNonInitialEffect(() => {\n if (fetchFlagsOnBucketingUpdated) {\n state.visitor?.fetchFlags()\n }\n }, [lastModified])\n\n useNonInitialEffect(() => {\n createVisitor(true)\n }, [JSON.stringify(visitorData)])\n\n useEffect(() => {\n initSdk()\n }, [envId, apiKey, decisionMode])\n\n function initializeState (param: {\n fsVisitor: Visitor;\n isLoading: boolean;\n isSdkReady: boolean;\n }) {\n const newStatus: FsStatus = {\n isSdkReady: param.isSdkReady,\n isLoading: param.isLoading,\n isVisitorDefined: !!param.fsVisitor,\n lastRefresh: new Date().toISOString()\n }\n\n setState((currentState) => {\n if (!currentState.status.firstInitSuccess) {\n newStatus.firstInitSuccess = new Date().toISOString()\n }\n\n return {\n ...currentState,\n visitor: param.fsVisitor,\n modifications: param.fsVisitor.modifications,\n config: Flagship.getConfig(),\n status: {\n ...currentState.status,\n ...newStatus\n }\n }\n })\n\n return newStatus\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onVisitorReady = (fsVisitor: Visitor, error: any) => {\n if (error) {\n logError(Flagship.getConfig(), error.message || error, 'onReady')\n return\n }\n\n const newStatus = initializeState({\n fsVisitor,\n isSdkReady: true,\n isLoading: false\n })\n\n if (onUpdate) {\n onUpdate({\n fsModifications: fsVisitor.modifications,\n config: Flagship.getConfig(),\n status: newStatus\n })\n }\n }\n\n const createVisitor = (fetchFlags = false) => {\n if (!visitorData) {\n return\n }\n\n const fsVisitor = Flagship.newVisitor({\n visitorId: visitorData.id,\n context: visitorData.context,\n isAuthenticated: visitorData.isAuthenticated,\n hasConsented: visitorData.hasConsented,\n initialCampaigns,\n initialModifications,\n initialFlagsData\n })\n\n fsVisitor?.on('ready', (error) => {\n onVisitorReady(fsVisitor, error)\n })\n\n if (!fetchNow && fsVisitor && !fetchFlags) {\n initializeState({\n fsVisitor,\n isSdkReady: true,\n isLoading: false\n })\n }\n if (fetchFlags && !fetchNow) {\n fsVisitor?.fetchFlags()\n }\n }\n const statusChanged = (status: FlagshipStatus) => {\n if (statusChangedCallback) {\n statusChangedCallback(status)\n }\n\n switch (status) {\n case FlagshipStatus.STARTING:\n if (status === FlagshipStatus.STARTING && onInitStart) {\n onInitStart()\n }\n break\n case FlagshipStatus.READY_PANIC_ON:\n case FlagshipStatus.READY:\n if (onInitDone) {\n onInitDone()\n }\n\n createVisitor()\n\n break\n case FlagshipStatus.NOT_INITIALIZED:\n setState((prev) => ({ ...prev, config: Flagship.getConfig() }))\n break\n }\n }\n\n const onBucketingLastModified = (lastUpdate: Date) => {\n if (onBucketingUpdated) {\n onBucketingUpdated(lastUpdate)\n }\n setLastModified(lastUpdate)\n }\n\n const initSdk = () => {\n Flagship.start(envId, apiKey, {\n decisionMode,\n fetchNow,\n timeout,\n logLevel,\n statusChangedCallback: statusChanged,\n logManager,\n pollingInterval,\n onBucketingFail,\n onBucketingSuccess,\n enableClientCache,\n decisionApiUrl,\n onBucketingUpdated: onBucketingLastModified,\n initialBucketing,\n activateDeduplicationTime,\n hitDeduplicationTime,\n visitorCacheImplementation,\n hitCacheImplementation,\n disableCache,\n language\n })\n }\n const handleDisplay = (): React.ReactNode => {\n const isFirstInit = !state.visitor\n if (state.status.isLoading && loadingComponent && isFirstInit && fetchNow) {\n return <>{loadingComponent}</>\n }\n return <>{children}</>\n }\n return (\n <FlagshipContext.Provider value={{ state, setState }}>\n {handleDisplay()}\n </FlagshipContext.Provider>\n )\n}\n\nFlagshipProvider.defaultProps = {\n activateDeduplicationTime: 2,\n hitDeduplicationTime: 2,\n fetchNow: true,\n language: 1\n}\n","import { useContext } from 'react'\nimport {\n FlagDTO,\n HitAbstract,\n HitShape,\n IFlag,\n IFlagshipConfig,\n IHit,\n Modification,\n modificationsRequested,\n primitive,\n Visitor\n} from '@flagship.io/js-sdk'\nimport { FlagshipContext, FsState, FsStatus } from './FlagshipContext'\nimport { logError, logWarn } from './utils'\nimport { Flag } from './Flag'\nimport { noVisitorDefault, noVisitorMessage } from './constants'\n\nconst checkType = (value: unknown, defaultValue: unknown) =>\n (typeof value === 'object' &&\n typeof defaultValue === 'object' &&\n Array.isArray(value) === Array.isArray(defaultValue)) ||\n typeof value === typeof defaultValue\n\nconst fsModificationsSync = <T extends unknown>(args: {\n functionName: string;\n params: modificationsRequested<T>[];\n activateAll?: boolean;\n state: FsState;\n visitor?: Visitor;\n config?: IFlagshipConfig;\n}): Record<string, T> => {\n const { visitor, params, activateAll, state, functionName, config } = args\n if (visitor) {\n return visitor.getModificationsSync(params, activateAll)\n }\n\n const check =\n !state.status.isSdkReady &&\n !!state.modifications &&\n state.modifications.size > 0\n const flags: Record<string, T> = {}\n\n if (check) {\n params.forEach((item) => {\n const modification = state.modifications?.get(item.key)\n\n if (modification && checkType(modification?.value, item.defaultValue)) {\n flags[item.key] = modification.value\n } else {\n flags[item.key] = item.defaultValue\n }\n })\n return flags\n }\n\n logWarn(config, noVisitorDefault, functionName)\n params.forEach((item) => {\n flags[item.key] = item.defaultValue\n })\n return flags\n}\n\n/**\n * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.\n * @deprecated use useFsFlag instead\n */\nexport const useFsModifications = <T extends unknown>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n): Record<string, T> => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n return fsModificationsSync({\n functionName,\n state,\n visitor,\n config,\n params,\n activateAll\n })\n}\n\n/**\n * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.\n * @deprecated use useFsFlag instead\n */\nexport const useFsModification: {\n <T>(params: modificationsRequested<T>): T;\n} = (params) => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n if (visitor) {\n return visitor.getModificationSync(params)\n }\n\n const modification = state.modifications?.get(params.key)\n\n if (\n !state.status.isSdkReady &&\n modification &&\n checkType(modification?.value, params.defaultValue)\n ) {\n return modification.value\n }\n\n logWarn(config, noVisitorDefault, functionName)\n return params.defaultValue\n}\n\nconst fsModificationInfoSync = (args: {\n key: string;\n state: FsState;\n visitor?: Visitor;\n}) => {\n const { key, visitor, state } = args\n if (visitor) {\n return visitor.getModificationInfoSync(key)\n }\n const modification = state.modifications?.get(key)\n if (!state.status.isSdkReady && modification) {\n return modification\n }\n return null\n}\n\n/**\n * Get the campaign modification information value matching the given key.\n * @param {string} key key which identify the modification.\n * @deprecated use useFsFlag instead\n */\nexport const useFsModificationInfo: { (key: string): Modification | null } = (\n key: string\n) => {\n const { state } = useContext(FlagshipContext)\n const { visitor } = state\n return fsModificationInfoSync({ key, state, visitor })\n}\n\nconst fsActivate = async (\n params: { key: string }[] | string[],\n functionName: string,\n visitor?: Visitor,\n config?: IFlagshipConfig\n) => {\n try {\n if (!visitor) {\n logWarn(config, noVisitorMessage, functionName)\n return\n }\n await visitor.activateModifications(params)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n logWarn(config, error.message || error, functionName)\n }\n}\n\n/**\n * This hook returns a flag object by its key. If no flag match the given key an empty flag will be returned.\n * @param key\n * @param defaultValue\n * @returns\n */\nexport const useFsFlag = <T extends unknown>(\n key: string,\n defaultValue: T\n): IFlag<T> => {\n const { state } = useContext(FlagshipContext)\n const { visitor } = state\n\n if (!visitor) {\n return new Flag(defaultValue, key, state.modifications)\n }\n\n return visitor.getFlag(key, defaultValue)\n}\n\n/**\n * Report this user has seen this modification. Report this user has seen these modifications.\n * @param params\n * @deprecated use useFsFlag instead\n * @returns\n */\nexport const useFsActivate: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n} = async (params) => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n await fsActivate(params, functionName, visitor, config)\n}\n\nexport type UseFlagshipParams<T> = {\n modifications: {\n requested: modificationsRequested<T>[];\n activateAll?: boolean;\n };\n};\n\nexport type UseFlagshipOutput = {\n visitorId?: string;\n anonymousId?: string | null;\n context?: Record<string, primitive>;\n hasConsented?: boolean;\n /**\n * Set if visitor has consented for protected data usage.\n * @param hasConsented True if the visitor has consented false otherwise.\n */\n setConsent: (hasConsented: boolean) => void;\n modifications: Modification[];\n flagsData: FlagDTO[];\n status: FsStatus;\n /**\n *\n * @param params\n * @param activateAll\n * @deprecated use getFlag instead\n */\n getModifications<T>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n ): Record<string, T>;\n\n /**\n *\n * @param key\n * @deprecated use getFlag instead\n */\n getModificationInfo(key: string): Modification | null;\n\n /**\n * @deprecated use fetchFlags instead\n */\n synchronizeModifications(): Promise<void>;\n /**\n * @deprecated use getFlag instead\n */\n activateModification: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n };\n /**\n * Update the visitor context values, matching the given keys, used for targeting.\n * A new context value associated with this key will be created if there is no previous matching value.\n * Context keys must be String, and values types must be one of the following : Number, Boolean, String.\n * @param context collection of keys, values.\n */\n updateContext(context: Record<string, primitive>): void;\n /**\n * clear the actual visitor context\n */\n clearContext(): void;\n /**\n * Authenticate anonymous visitor\n * @param visitorId\n */\n authenticate(visitorId: string): void;\n /**\n * This function change authenticated Visitor to anonymous visitor\n * @param visitorId\n */\n unauthenticate(): void;\n hit: {\n send: {\n (hit: HitAbstract): Promise<void>;\n (hit: IHit): Promise<void>;\n (hit: HitShape): Promise<void>;\n (hit: HitAbstract | IHit | HitShape): Promise<void>;\n };\n sendMultiple: {\n (hit: HitAbstract[]): Promise<void>;\n (hit: IHit[]): Promise<void>;\n (hit: HitShape[]): Promise<void>;\n (hit: HitAbstract[] | IHit[] | HitShape[]): Promise<void>;\n };\n };\n /**\n * Retrieve a Flag object by its key. If no flag match the given key an empty flag will be returned.\n * @param key flag key\n * @param defaultValue\n */\n getFlag<T>(key: string, defaultValue: T): IFlag<T>;\n fetchFlags: () => Promise<void>;\n};\n\nexport const useFlagship = (): UseFlagshipOutput => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n\n const fsUpdateContext = (context: Record<string, primitive>): void => {\n const functionName = 'updateContext'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.clearContext()\n visitor.updateContext(context)\n }\n\n const fsClearContext = (): void => {\n const functionName = 'cleanContext'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.clearContext()\n }\n\n const fsAuthenticate = (visitorId: string): void => {\n const functionName = 'authenticate'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.authenticate(visitorId)\n }\n\n const fsUnauthenticate = (): void => {\n const functionName = 'unauthenticate'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.unauthenticate()\n }\n\n /**\n * Send a Hit to Flagship servers for reporting.\n */\n const fsSendHit: {\n (hit: HitAbstract | IHit | HitShape): Promise<void>;\n } = (hit) => {\n const functionName = 'sendHit'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return Promise.resolve()\n }\n return visitor.sendHit(hit)\n }\n\n /**\n * Send a Hit to Flagship servers for reporting.\n */\n const fsSendHits: {\n (hit: HitAbstract[] | IHit[] | HitShape[]): Promise<void>;\n } = (hit) => {\n const functionName = 'sendHits'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return Promise.resolve()\n }\n return visitor.sendHits(hit)\n }\n\n let modifications = visitor?.getModificationsArray()\n if (!state.status.isSdkReady && state.modifications) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n modifications = Array.from(state.modifications, ([_key, item]) => item)\n }\n\n const activateModification: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n } = async (params) => {\n const functionName = 'activateModification'\n await fsActivate(params, functionName, visitor, config)\n }\n const synchronizeModifications = async () => {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'synchronizeModifications')\n return\n }\n await visitor.synchronizeModifications()\n }\n\n const getModifications = <T extends unknown>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n ) => {\n const functionName = 'getModifications'\n return fsModificationsSync({\n functionName,\n state,\n visitor,\n config,\n params,\n activateAll\n })\n }\n\n const getModificationInfo: { (key: string): Modification | null } = (\n key: string\n ) => {\n return fsModificationInfoSync({ key, state, visitor })\n }\n\n function getFlag<T> (key: string, defaultValue: T): IFlag<T> {\n if (!visitor) {\n return new Flag(defaultValue, key, state.modifications)\n }\n return visitor.getFlag(key, defaultValue)\n }\n\n function fetchFlags (): Promise<void> {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'fetchFlags')\n return Promise.resolve()\n }\n return visitor.fetchFlags()\n }\n\n function setConsent (hasConsented: boolean): void {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'setConsent')\n return\n }\n visitor.setConsent(hasConsented)\n }\n\n return {\n visitorId: visitor?.visitorId,\n anonymousId: visitor?.anonymousId,\n context: { ...visitor?.context },\n hasConsented: visitor?.hasConsented,\n setConsent,\n updateContext: fsUpdateContext,\n clearContext: fsClearContext,\n authenticate: fsAuthenticate,\n unauthenticate: fsUnauthenticate,\n status: state.status,\n activateModification,\n synchronizeModifications,\n getModifications,\n modifications: modifications || [],\n flagsData: visitor?.getFlagsDataArray() || [],\n getModificationInfo,\n hit: {\n send: fsSendHit,\n sendMultiple: fsSendHits\n },\n getFlag,\n fetchFlags\n }\n}\n","export const noVisitorMessage = 'flagship Visitor not initialized.'\nexport const noVisitorDefault = 'fsVisitor not initialized, returns default value'\n\n export const GET_FLAG_CAST_ERROR ='Flag for key {0} has a different type. Default value is returned.'\n export const GET_METADATA_CAST_ERROR = 'Flag for key {0} has a different type with defaultValue, an empty metadata object is returned'\n","import {\n CampaignDTO,\n IFlagshipConfig,\n LogLevel,\n Modification\n} from '@flagship.io/js-sdk'\nimport { EffectCallback, DependencyList, useEffect, useRef } from 'react'\n\nexport function logError (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.error !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.ERROR\n ) {\n return\n }\n\n config.logManager.error(message, tag)\n}\n\nexport function logInfo (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.info !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.INFO\n ) {\n return\n }\n config.logManager.info(message, tag)\n}\n\nexport function logWarn (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.warning !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.WARNING\n ) {\n return\n }\n config.logManager.warning(message, tag)\n}\n\nexport const getModificationsFromCampaigns = (\n campaigns: Array<CampaignDTO>\n): Map<string, Modification> => {\n const modifications = new Map<string, Modification>()\n if (!campaigns || !Array.isArray(campaigns)) {\n return modifications\n }\n campaigns.forEach((campaign) => {\n const object = campaign.variation.modifications.value\n for (const key in object) {\n const value = object[key]\n modifications.set(key, {\n key,\n campaignId: campaign.id,\n variationGroupId: campaign.variationGroupId,\n variationId: campaign.variation.id,\n isReference: campaign.variation.reference,\n value\n })\n }\n })\n return modifications\n}\n\nexport function uuidV4 (): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\n /[xy]/g,\n function (char) {\n const rand = (Math.random() * 16) | 0\n const value = char === 'x' ? rand : (rand & 0x3) | 0x8\n return value.toString(16)\n }\n )\n}\n\nexport function useNonInitialEffect (\n effect: EffectCallback,\n deps?: DependencyList\n): void {\n const initialRender = useRef(true)\n\n useEffect(() => {\n if (initialRender.current) {\n initialRender.current = false\n return\n }\n\n if (typeof effect === 'function') {\n return effect()\n }\n }, deps)\n}\n\nexport function hasSameType (flagValue:unknown, defaultValue:unknown):boolean {\n if (typeof flagValue !== typeof defaultValue) {\n return false\n }\n if (typeof flagValue === 'object' && typeof defaultValue === 'object' &&\n Array.isArray(flagValue) !== Array.isArray(defaultValue)\n ) {\n return false\n }\n return true\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function sprintf (format: string, ...value: any[]): string {\n let formatted = format\n for (let i = 0; i < value.length; i++) {\n const element = value[i]\n formatted = formatted.replace(new RegExp(`\\\\{${i}\\\\}`, 'g'), element)\n }\n return formatted\n}\n","module.exports = require(\"@flagship.io/js-sdk\");","module.exports = require(\"core-js/modules/es.array.filter.js\");","module.exports = require(\"core-js/modules/es.array.from.js\");","module.exports = require(\"core-js/modules/es.array.iterator.js\");","module.exports = require(\"core-js/modules/es.array.slice.js\");","module.exports = require(\"core-js/modules/es.function.name.js\");","module.exports = require(\"core-js/modules/es.map.js\");","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptor.js\");","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptors.js\");","module.exports = require(\"core-js/modules/es.object.keys.js\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"core-js/modules/es.promise.js\");","module.exports = require(\"core-js/modules/es.regexp.constructor.js\");","module.exports = require(\"core-js/modules/es.regexp.exec.js\");","module.exports = require(\"core-js/modules/es.regexp.to-string.js\");","module.exports = require(\"core-js/modules/es.string.iterator.js\");","module.exports = require(\"core-js/modules/es.string.replace.js\");","module.exports = require(\"core-js/modules/es.symbol.description.js\");","module.exports = require(\"core-js/modules/es.symbol.iterator.js\");","module.exports = require(\"core-js/modules/es.symbol.js\");","module.exports = require(\"core-js/modules/web.dom-collections.for-each.js\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");","module.exports = require(\"react\");","module.exports = require(\"regenerator-runtime/runtime.js\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export * from './FlagshipContext'\nexport * from '@flagship.io/js-sdk'\nexport * from './FlagshipHooks'\n"],"names":["Flagship","FlagMetadata","GET_FLAG_CAST_ERROR","GET_METADATA_CAST_ERROR","noVisitorMessage","hasSameType","logInfo","logWarn","sprintf","Flag","defaultValue","key","flagsData","getConfig","flag","get","undefined","value","NotSameType","campaignId","variationId","variationGroupId","Promise","resolve","functionName","Empty","isReference","campaignType","slug","React","useState","useEffect","createContext","useRef","FlagshipStatus","getModificationsFromCampaigns","logError","useNonInitialEffect","initStat","status","isLoading","isSdkReady","FlagshipContext","state","FlagshipProvider","children","fetchNow","envId","apiKey","decisionMode","decisionApiUrl","timeout","logLevel","statusChangedCallback","logManager","pollingInterval","visitorData","onInitStart","onInitDone","onBucketingSuccess","onBucketingFail","loadingComponent","onBucketingUpdated","onUpdate","enableClientCache","initialBucketing","initialCampaigns","initialModifications","initialFlagsData","fetchFlagsOnBucketingUpdated","activateDeduplicationTime","hitDeduplicationTime","visitorCacheImplementation","hitCacheImplementation","disableCache","language","modifications","Map","forEach","set","modification","setState","lastModified","setLastModified","stateRef","current","visitor","fetchFlags","createVisitor","JSON","stringify","initSdk","initializeState","param","newStatus","isVisitorDefined","fsVisitor","lastRefresh","Date","toISOString","currentState","firstInitSuccess","config","onVisitorReady","error","message","fsModifications","newVisitor","visitorId","id","context","isAuthenticated","hasConsented","on","statusChanged","STARTING","READY_PANIC_ON","READY","NOT_INITIALIZED","prev","onBucketingLastModified","lastUpdate","start","handleDisplay","isFirstInit","defaultProps","useContext","noVisitorDefault","checkType","Array","isArray","fsModificationsSync","args","params","activateAll","getModificationsSync","check","size","flags","item","useFsModifications","useFsModification","getModificationSync","fsModificationInfoSync","getModificationInfoSync","useFsModificationInfo","fsActivate","activateModifications","useFsFlag","getFlag","useFsActivate","useFlagship","fsUpdateContext","clearContext","updateContext","fsClearContext","fsAuthenticate","authenticate","fsUnauthenticate","unauthenticate","fsSendHit","hit","sendHit","fsSendHits","sendHits","getModificationsArray","from","_key","activateModification","synchronizeModifications","getModifications","getModificationInfo","setConsent","anonymousId","getFlagsDataArray","send","sendMultiple","LogLevel","tag","ERROR","info","INFO","warning","WARNING","campaigns","campaign","object","variation","reference","uuidV4","replace","char","rand","Math","random","toString","effect","deps","initialRender","flagValue","format","formatted","i","element","RegExp"],"sourceRoot":""}
package/dist/utils.js CHANGED
@@ -30,22 +30,22 @@ export function logWarn(config, message, tag) {
30
30
  }
31
31
  config.logManager.warning(message, tag);
32
32
  }
33
- export var getModificationsFromCampaigns = function (campaigns) {
34
- var modifications = new Map();
33
+ export const getModificationsFromCampaigns = (campaigns) => {
34
+ const modifications = new Map();
35
35
  if (!campaigns || !Array.isArray(campaigns)) {
36
36
  return modifications;
37
37
  }
38
- campaigns.forEach(function (campaign) {
39
- var object = campaign.variation.modifications.value;
40
- for (var key in object) {
41
- var value = object[key];
38
+ campaigns.forEach((campaign) => {
39
+ const object = campaign.variation.modifications.value;
40
+ for (const key in object) {
41
+ const value = object[key];
42
42
  modifications.set(key, {
43
- key: key,
43
+ key,
44
44
  campaignId: campaign.id,
45
45
  variationGroupId: campaign.variationGroupId,
46
46
  variationId: campaign.variation.id,
47
47
  isReference: campaign.variation.reference,
48
- value: value
48
+ value
49
49
  });
50
50
  }
51
51
  });
@@ -53,14 +53,14 @@ export var getModificationsFromCampaigns = function (campaigns) {
53
53
  };
54
54
  export function uuidV4() {
55
55
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (char) {
56
- var rand = (Math.random() * 16) | 0;
57
- var value = char === 'x' ? rand : (rand & 0x3) | 0x8;
56
+ const rand = (Math.random() * 16) | 0;
57
+ const value = char === 'x' ? rand : (rand & 0x3) | 0x8;
58
58
  return value.toString(16);
59
59
  });
60
60
  }
61
61
  export function useNonInitialEffect(effect, deps) {
62
- var initialRender = useRef(true);
63
- useEffect(function () {
62
+ const initialRender = useRef(true);
63
+ useEffect(() => {
64
64
  if (initialRender.current) {
65
65
  initialRender.current = false;
66
66
  return;
@@ -80,15 +80,12 @@ export function hasSameType(flagValue, defaultValue) {
80
80
  }
81
81
  return true;
82
82
  }
83
- export function sprintf(format) {
84
- var value = [];
85
- for (var _i = 1; _i < arguments.length; _i++) {
86
- value[_i - 1] = arguments[_i];
87
- }
88
- var formatted = format;
89
- for (var i = 0; i < value.length; i++) {
90
- var element = value[i];
91
- formatted = formatted.replace(new RegExp("\\{" + i + "\\}", 'g'), element);
83
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
+ export function sprintf(format, ...value) {
85
+ let formatted = format;
86
+ for (let i = 0; i < value.length; i++) {
87
+ const element = value[i];
88
+ formatted = formatted.replace(new RegExp(`\\{${i}\\}`, 'g'), element);
92
89
  }
93
90
  return formatted;
94
91
  }