@kameleoon/javascript-sdk-core 3.3.0 → 3.4.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.js","names":["Utilities","a","_classCallCheck","_createClass","key","value","checkTargeting","segment","visitorCode","targetingData","experimentId","variationConfiguration","clientConfiguration","packageInfo","dataManager","conditionsData","firstLevel","length","Ok","Err","KameleoonError","KameleoonException","Initialization","variations","assignedVariationsResult","getStoredVariations","ok","data","targetingTree","getTree","trees","segments","ruleMap","hasTargetingType","TargetingType","SEGMENT","TARGET_FEATURE_FLAG","result","evaluate","variationData","sdkInfo","validateVisitorCode","VisitorCodeEmpty","VISITOR_CODE_MAX_LENGTH","VisitorCodeMaxLength","getDataUrl","b","updateUrl","url","shouldSendConversionData","type","KameleoonData","Conversion","isConsentProvided","resultUrl","push","UrlParameter","Nonce","getNonce","unsentData","getUnsentData","size","i","j","_createForOfIteratorHelper","values","s","n","done","item","Array","isArray","forEach","arrayItem","e","f","join","getVariationDataUrlAndSentExperimentIds","variationDataUrlList","sentExperimentIds","Set","isTargetedRule","UrlEventType","Experiment","Id","VariationId","variationId","add","variationDataUrl","experimentIds","from","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","c","d","g","h","k","l","m","o","p","q","r","t","u","v","w","x","wrap","y","prev","next","featureFlagVariation","requester","isOfflineModeOn","offlineTrackingStorage","rule","userAgent","getUserAgent","dataUrl","resultVariationId","_slicedToArray","abrupt","isUnallocated","parameters","trackExperiment","sent","clearUnsentData","clearUnsentDataByKey","markUnsentDataAsSent","addItemToOfflineTracking","storage","isExperiment","stop","convertTimeUnit","time","timeUnit","timeMap","_defineProperty","TimeUnit","Minute","Milliseconds","Hour","Day","Week","Month","parseFeatureVariable","variable","VariableType","BOOLEAN","STRING","NUMBER","numberValue","Number","isNaN","NumberParse","JSON","jsonValue","parse","err","JSONParse","exhaustCheck","parseVisitorData","filters","currentVisit","previousVisits","browserFilter","browser","customDataFilter","customData","operatingSystemFilter","operatingSystem","conversionsFilter","conversions","deviceFilter","device","geolocationFilter","geolocation","experimentsFilter","experiments","pageViewFilter","pageViews","visits","_toConsumableArray","visitorData","resultData","PageView","_listFromVisits","Browser","_fromVisits","visit","experimentData","experimentEvents","experimentEvent","A","id","isSent","updateStoredVariations","Device","GeolocationData","CustomData","OperatingSystem","visitsData","collectedVisitsData","VisitsData","_fromRemoteVisits","parseRegExp","split","_","expression","flags","RegExp","storedData","storedTargetingData","userAgentData","UserAgent","isCustomData","dataItem","insertInOrderedListMutably","list","element","order","includes","index","findIndex","Order","Ascending","splice","updateCache","cacheManager","cacheData","getAliveItem","newCacheData","_objectSpread","expirationTime","Date","now","CACHE_ITEM_LIFETIME","Second","lifetime","getTrackingCode","trackingCache","resultString","updatedCacheData","Object","entries","concat","isMappingIdentifier","sendOfflineTracking","body","trackData","cleanup","onSuccess","randomNumber","hexLength","HEX_CHARACTERS","nonce","Math","floor","random","substring","compareSemVer","version","compareVersion","operator","versionResult","validateVersion","compareVersionResult","error","major","minor","patch","compareMajor","compareMinor","comparePatch","isMajorEqual","isMinorEqual","isPatchEqual","VersionMatchType","EQUAL","GREATER","LOWER","generateRandomString","characters","randomCharacterArray","readResult","read","requestParameters","successfulTimestamps","timestamp","params","_objectWithoutProperties","_excluded","t0","finish","deleteFromOfflineTracking","timestamps","newItem","getTime","newRequestParameters","writeResult","write","newParameters","filter","versionParts","map","parseInt","some","SemanticVersionParse","slice","exports"],"sources":["../../src/utilities/utilities.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport {\n KameleoonError,\n KameleoonException,\n exhaustCheck,\n} from 'src/kameleoonError';\nimport {\n FeatureVariableResultType,\n Milliseconds,\n TrackingCacheItemType,\n VariableType,\n} from 'src/types';\nimport { FeatureVariableType, JSONType } from 'src/clientConfiguration';\nimport {\n Browser,\n Conversion,\n CustomData,\n DataManager,\n Device,\n GeolocationData,\n KameleoonData,\n KameleoonDataType,\n OperatingSystem,\n PageView,\n VisitsData,\n} from 'src/kameleoonData';\nimport { CACHE_ITEM_LIFETIME } from 'src/constants';\nimport { CacheManager } from 'src/cacheManager';\nimport {\n TrackExperimentParamsType,\n TrackDataParamsType,\n VisitType,\n UrlParameter,\n UrlEventType,\n} from 'src/requester';\nimport { VersionMatchType, TargetingType } from 'src/targeting';\nimport { KameleoonVisitorDataType } from 'src/kameleoonData/types';\nimport { FeatureFlagVariationsType } from 'src/storage/types';\nimport { VISITOR_CODE_MAX_LENGTH, HEX_CHARACTERS } from './constants';\nimport {\n CheckTargetingParametersType,\n ManageCacheParametersType,\n TrackDataParametersType,\n TrackRuleParametersType,\n AddToOfflineTrackingParametersType,\n SendOfflineTrackingParametersType,\n DeleteFromOfflineTrackingParametersType,\n ParseVisitorDataParametersType,\n InsertInOrderedListParametersType,\n Order,\n TimeUnit,\n GetDataUrlParametersType,\n GetVariationDataUrlParametersType,\n ParseVisitorDataResultType,\n} from './types';\n\nexport class Utilities {\n static checkTargeting({\n segment,\n visitorCode,\n targetingData,\n experimentId,\n variationConfiguration,\n clientConfiguration,\n packageInfo,\n dataManager,\n }: CheckTargetingParametersType): Result<boolean, KameleoonError> {\n if (!segment || !segment.conditionsData.firstLevel.length) {\n return Ok(true);\n }\n\n if (!variationConfiguration) {\n return Err(new KameleoonError(KameleoonException.Initialization));\n }\n\n let variations: FeatureFlagVariationsType = {};\n\n const assignedVariationsResult =\n variationConfiguration.getStoredVariations(visitorCode);\n\n if (assignedVariationsResult.ok) {\n variations = assignedVariationsResult.data;\n }\n\n const targetingTree = dataManager.getTree(segment);\n\n let trees = undefined;\n let segments = undefined;\n let ruleMap = undefined;\n\n // --- Note ---\n // Only getting trees and segments targeting type\n if (targetingTree.hasTargetingType(TargetingType.SEGMENT)) {\n trees = dataManager.trees;\n segments = clientConfiguration.segments;\n }\n\n // --- Note ---\n // Only constructing rule map for targeting type\n if (targetingTree.hasTargetingType(TargetingType.TARGET_FEATURE_FLAG)) {\n ruleMap = clientConfiguration.ruleMap;\n }\n\n const result = targetingTree.evaluate({\n variationData: variations,\n sdkInfo: packageInfo,\n segments,\n ruleMap,\n trees,\n targetingData,\n experimentId,\n visitorCode,\n });\n\n return result;\n }\n\n static validateVisitorCode(\n visitorCode: string,\n ): Result<void, KameleoonError> {\n if (visitorCode.length === 0) {\n return Err(new KameleoonError(KameleoonException.VisitorCodeEmpty));\n }\n\n if (visitorCode.length > VISITOR_CODE_MAX_LENGTH) {\n return Err(new KameleoonError(KameleoonException.VisitorCodeMaxLength));\n }\n\n return Ok();\n }\n\n static getDataUrl({\n visitorCode,\n dataManager,\n isConsentProvided,\n }: GetDataUrlParametersType): string {\n const unsentData = dataManager.getUnsentData(visitorCode);\n const resultUrl: string[] = [];\n\n if (!unsentData || !unsentData.size) {\n return '';\n }\n\n function updateUrl(data: KameleoonDataType): void {\n if (!data.url) {\n return;\n }\n\n const shouldSendAllData = isConsentProvided;\n const shouldSendConversionData =\n data.data.type === KameleoonData.Conversion;\n\n if (shouldSendAllData || shouldSendConversionData) {\n resultUrl.push(\n data.url + UrlParameter.Nonce + Utilities.getNonce() + '\\n',\n );\n }\n }\n\n for (const item of unsentData.values()) {\n if (Array.isArray(item)) {\n item.forEach((arrayItem) => updateUrl(arrayItem));\n } else {\n updateUrl(item);\n }\n }\n\n return resultUrl.join('');\n }\n\n static getVariationDataUrlAndSentExperimentIds({\n visitorCode,\n isConsentProvided,\n variationConfiguration,\n }: GetVariationDataUrlParametersType): [string, string[]] {\n const variationDataUrlList: string[] = [];\n const sentExperimentIds = new Set<string>();\n const unsentData = variationConfiguration.getUnsentData(visitorCode);\n\n if (unsentData.ok && unsentData.data.length) {\n unsentData.data.forEach((item) => {\n if (item.isTargetedRule || isConsentProvided) {\n variationDataUrlList.push(\n UrlEventType.Experiment +\n UrlParameter.Id +\n item.experimentId +\n UrlParameter.VariationId +\n item.variationId +\n UrlParameter.Nonce +\n Utilities.getNonce() +\n '\\n',\n );\n\n sentExperimentIds.add(String(item.experimentId));\n }\n });\n }\n\n const variationDataUrl = variationDataUrlList.join('');\n const experimentIds = Array.from(sentExperimentIds);\n\n return [variationDataUrl, experimentIds];\n }\n\n static async trackFeatureExperiment({\n featureFlagVariation,\n dataManager,\n visitorCode,\n requester,\n isOfflineModeOn,\n isConsentProvided,\n offlineTrackingStorage,\n variationConfiguration,\n }: TrackRuleParametersType): Promise<void> {\n const { variationId, rule, isTargetedRule } = featureFlagVariation;\n\n const userAgent = this.getUserAgent(visitorCode, dataManager);\n\n const dataUrl = this.getDataUrl({\n visitorCode,\n dataManager,\n isConsentProvided,\n });\n\n const resultVariationId = variationId || 0;\n\n // --- Note ---\n // Experiment id is not needed for unallocated visitors\n // So we just use 0 as a fallback\n const experimentId = rule ? rule.experimentId : 0;\n\n const [variationDataUrl, sentExperimentIds] =\n this.getVariationDataUrlAndSentExperimentIds({\n visitorCode,\n isConsentProvided,\n variationConfiguration,\n });\n\n if (!isConsentProvided && !dataUrl && !rule) {\n return;\n }\n\n const isUnallocated = variationId === null;\n\n const parameters = {\n visitorCode,\n dataUrl,\n variationDataUrl,\n experimentId,\n variationId: resultVariationId,\n userAgent,\n isUnallocated,\n };\n\n const result = await requester.trackExperiment(parameters);\n\n if (result.ok) {\n if (!isConsentProvided) {\n dataManager.clearUnsentDataByKey(visitorCode, KameleoonData.Conversion);\n } else {\n dataManager.clearUnsentData(visitorCode);\n }\n\n sentExperimentIds.forEach((experimentId) => {\n variationConfiguration.markUnsentDataAsSent(visitorCode, experimentId);\n });\n }\n\n if (!result.ok && isOfflineModeOn) {\n this.addItemToOfflineTracking({\n item: parameters,\n storage: offlineTrackingStorage,\n isExperiment: true,\n });\n }\n }\n\n static convertTimeUnit(time: number, timeUnit: TimeUnit): number {\n const timeMap = {\n [TimeUnit.Minute]: Milliseconds.Minute,\n [TimeUnit.Hour]: Milliseconds.Hour,\n [TimeUnit.Day]: Milliseconds.Day,\n [TimeUnit.Week]: Milliseconds.Week,\n [TimeUnit.Month]: Milliseconds.Month,\n };\n\n return time / timeMap[timeUnit];\n }\n\n static parseFeatureVariable(\n variable: FeatureVariableType,\n ): Result<FeatureVariableResultType, KameleoonError> {\n const { type, value } = variable;\n\n switch (type) {\n case VariableType.BOOLEAN:\n return Ok({\n type,\n value: Boolean(value),\n });\n case VariableType.STRING:\n return Ok({\n type,\n value: String(value),\n });\n case VariableType.NUMBER:\n const numberValue = Number(value);\n\n if (Number.isNaN(numberValue)) {\n return Err(\n new KameleoonError(KameleoonException.NumberParse, String(value)),\n );\n }\n\n return Ok({\n type,\n value: numberValue,\n });\n case VariableType.JSON:\n try {\n const jsonValue: JSONType = JSON.parse(String(variable.value));\n\n return Ok({\n type,\n value: jsonValue,\n });\n } catch (err) {\n return Err(new KameleoonError(KameleoonException.JSONParse, err));\n }\n default:\n exhaustCheck(type);\n }\n }\n\n static parseVisitorData({\n data,\n filters,\n visitorCode,\n variationConfiguration,\n }: ParseVisitorDataParametersType): ParseVisitorDataResultType {\n const { currentVisit, previousVisits } = data;\n const {\n browser: browserFilter,\n customData: customDataFilter,\n operatingSystem: operatingSystemFilter,\n conversions: conversionsFilter,\n device: deviceFilter,\n geolocation: geolocationFilter,\n experiments: experimentsFilter,\n pageViews: pageViewFilter,\n } = filters;\n\n let visits: VisitType[] = [];\n\n if (currentVisit) {\n visits.push(currentVisit);\n }\n\n if (previousVisits) {\n visits.push(...previousVisits);\n }\n\n if (!visits) {\n return { visitorData: [] };\n }\n\n const resultData: KameleoonDataType[] = [];\n\n if (pageViewFilter) {\n const pageViews = PageView._listFromVisits(visits);\n\n if (pageViews.length) {\n resultData.push(...pageViews);\n }\n }\n\n // --- Browser ---\n if (browserFilter) {\n const browser = Browser._fromVisits(visits);\n\n if (browser) {\n resultData.push(browser);\n }\n }\n\n // --- Experiments ---\n if (experimentsFilter) {\n const experimentData: FeatureFlagVariationsType = {};\n\n // --- Note ---\n // Going backwards to get the latest experiment data\n for (let i = visits.length - 1; i >= 0; i--) {\n const visit = visits[i];\n\n if (!visit.experimentEvents) {\n continue;\n }\n\n for (const experimentEvent of visit.experimentEvents) {\n const { id, variationId } = experimentEvent.data;\n\n experimentData[id] = {\n variationId,\n isTargetedRule: false,\n isSent: false,\n };\n }\n }\n\n variationConfiguration.updateStoredVariations(\n visitorCode,\n experimentData,\n );\n }\n\n // --- Device ---\n if (deviceFilter) {\n const device = Device._fromVisits(visits);\n\n if (device) {\n resultData.push(device);\n }\n }\n\n // --- Geolocation ---\n if (geolocationFilter) {\n const geolocation = GeolocationData._fromVisits(visits);\n\n if (geolocation) {\n resultData.push(geolocation);\n }\n }\n\n // --- Custom data ---\n if (customDataFilter) {\n resultData.push(...CustomData._listFromVisits(visits));\n }\n\n // --- Operating system ---\n if (operatingSystemFilter) {\n const operatingSystem = OperatingSystem._fromVisits(visits);\n\n if (operatingSystem) {\n resultData.push(operatingSystem);\n }\n }\n\n // --- Conversions ---\n if (conversionsFilter) {\n resultData.push(...Conversion._listFromVisits(visits));\n }\n\n // --- Visits ---\n let visitsData: VisitsData | undefined;\n\n const collectedVisitsData = VisitsData._fromRemoteVisits(\n visits,\n Boolean(currentVisit),\n );\n\n if (collectedVisitsData) {\n visitsData = collectedVisitsData;\n }\n\n return { visitorData: resultData, visitsData };\n }\n\n static parseRegExp(value: string): RegExp {\n if (value[0] === '/') {\n const [_, expression, flags] = value.split('/');\n\n return new RegExp(expression, flags);\n }\n\n return new RegExp(value);\n }\n\n static getUserAgent(\n visitorCode: string,\n dataManager: DataManager,\n ): string | undefined {\n const storedData = dataManager.storedTargetingData;\n\n const targetingData: KameleoonVisitorDataType | undefined =\n storedData && storedData[visitorCode];\n\n if (targetingData) {\n const userAgentData = targetingData[KameleoonData.UserAgent];\n\n if (userAgentData) {\n return userAgentData.value;\n }\n }\n\n return undefined;\n }\n\n static isCustomData(dataItem: KameleoonDataType): dataItem is CustomData {\n return dataItem.data.type === KameleoonData.CustomData;\n }\n\n /**\n * Insert element in ordered list, if element already exists in list, does nothing\n * @param list - list to insert element\n * @param element - element to insert\n * @param order - order of list\n */\n static insertInOrderedListMutably({\n list,\n element,\n order,\n }: InsertInOrderedListParametersType): void {\n if (list.includes(element)) {\n return;\n }\n\n const index = list.findIndex((item) =>\n order === Order.Ascending ? item >= element : item <= element,\n );\n\n if (index === -1) {\n list.push(element);\n } else {\n list.splice(index, 0, element);\n }\n }\n\n static updateCache({\n cacheManager,\n visitorCode,\n experimentId,\n variationId,\n }: ManageCacheParametersType): void {\n const cacheData = cacheManager.getAliveItem(visitorCode);\n\n const newCacheData = cacheData ? { ...cacheData } : {};\n\n newCacheData[experimentId] = {\n variationId,\n expirationTime: Date.now() + CACHE_ITEM_LIFETIME * Milliseconds.Second,\n };\n\n cacheManager.add({\n key: visitorCode,\n data: newCacheData,\n lifetime: CACHE_ITEM_LIFETIME,\n });\n }\n\n static getTrackingCode(\n trackingCache: CacheManager<TrackingCacheItemType>,\n visitorCode: string,\n ): string {\n let resultString = 'window.kameleoonQueue=window.kameleoonQueue||[];';\n\n const cacheData = trackingCache.getAliveItem(visitorCode);\n\n if (!cacheData) {\n return resultString;\n }\n\n const updatedCacheData: TrackingCacheItemType = {};\n\n Object.entries(cacheData).forEach(\n ([experimentId, { variationId, expirationTime }]) => {\n if (expirationTime > Date.now()) {\n resultString += `window.kameleoonQueue.push(['Experiments.assignVariation',${experimentId},${variationId}]);`;\n resultString += `window.kameleoonQueue.push(['Experiments.trigger',${experimentId},true]);`;\n\n updatedCacheData[Number(experimentId)] = {\n variationId,\n expirationTime,\n };\n }\n },\n );\n\n // --- Note ---\n // Cache is updated with only alive experiments\n trackingCache.add({\n key: visitorCode,\n data: updatedCacheData,\n lifetime: CACHE_ITEM_LIFETIME,\n });\n\n return resultString;\n }\n\n static async trackData({\n visitorCode,\n dataManager,\n requester,\n isOfflineModeOn,\n offlineTrackingStorage,\n isConsentProvided,\n isMappingIdentifier,\n }: TrackDataParametersType): Promise<void> {\n await this.sendOfflineTracking({\n requester,\n storage: offlineTrackingStorage,\n });\n\n const dataUrl = this.getDataUrl({\n visitorCode,\n dataManager,\n isConsentProvided,\n });\n\n if (!isConsentProvided && !dataUrl) {\n return;\n }\n\n const userAgent = this.getUserAgent(visitorCode, dataManager);\n\n const parameters: TrackDataParamsType = {\n visitorCode,\n body: dataUrl,\n userAgent,\n isMappingIdentifier,\n };\n\n const result = await requester.trackData(parameters);\n\n const cleanup = () =>\n isConsentProvided\n ? dataManager.clearUnsentData(visitorCode)\n : dataManager.clearUnsentDataByKey(\n visitorCode,\n KameleoonData.Conversion,\n );\n\n if (result.ok) {\n cleanup();\n }\n\n if (!result.ok && isOfflineModeOn) {\n this.addItemToOfflineTracking({\n item: parameters,\n storage: offlineTrackingStorage,\n isExperiment: false,\n onSuccess: cleanup,\n });\n }\n }\n\n static getNonce(): string {\n const hexLength = HEX_CHARACTERS.length;\n let nonce: string = '';\n\n for (let i = 0; i < hexLength; i++) {\n const randomNumber = Math.floor(Math.random() * hexLength);\n nonce += HEX_CHARACTERS.substring(randomNumber, randomNumber + 1);\n }\n\n return nonce;\n }\n\n static compareSemVer({\n version,\n compareVersion,\n operator,\n }: {\n version: string;\n compareVersion: string;\n operator: VersionMatchType;\n }): Result<boolean, KameleoonError> {\n const versionResult = this.validateVersion(version);\n const compareVersionResult = this.validateVersion(compareVersion);\n\n if (!versionResult.ok) {\n return Err(versionResult.error);\n }\n\n if (!compareVersionResult.ok) {\n return Err(compareVersionResult.error);\n }\n\n const [major, minor, patch] = versionResult.data;\n const [compareMajor, compareMinor, comparePatch] =\n compareVersionResult.data;\n\n const [isMajorEqual, isMinorEqual, isPatchEqual] = [\n major === compareMajor,\n minor === compareMinor,\n patch === comparePatch,\n ];\n\n switch (operator) {\n case VersionMatchType.EQUAL:\n return Ok(isMajorEqual && isMinorEqual && isPatchEqual);\n case VersionMatchType.GREATER:\n return Ok(\n major > compareMajor ||\n (isMajorEqual && minor > compareMinor) ||\n (isMajorEqual && isMinorEqual && patch > comparePatch),\n );\n case VersionMatchType.LOWER:\n return Ok(\n major < compareMajor ||\n (isMajorEqual && minor < compareMinor) ||\n (isMajorEqual && isMinorEqual && patch < comparePatch),\n );\n default:\n exhaustCheck(operator);\n }\n }\n\n static generateRandomString(length: number): string {\n const characters = 'abcdefghijklmnopqrstuvwxyz0123456789';\n const randomCharacterArray: string[] = [];\n\n if (length < 0) {\n return '';\n }\n\n for (let i = 0; i < length; i++) {\n randomCharacterArray.push(\n characters[Math.floor(Math.random() * characters.length)],\n );\n }\n\n return randomCharacterArray.join('');\n }\n\n static async sendOfflineTracking({\n requester,\n storage,\n }: SendOfflineTrackingParametersType) {\n const readResult = storage.read();\n\n if (readResult.ok && readResult.data.requestParameters) {\n const { requestParameters } = readResult.data;\n const successfulTimestamps: number[] = [];\n\n // --- Note ---\n // `for..of` + `await` is used to make sure that failed requests are sent one by one\n // without risk of getting the same timestamp at the server, which might happen, for example,\n // with `.forEach` or `.map` starting requests in async callbacks at the same time\n for (const parameters of requestParameters) {\n const { timestamp, isExperiment, ...params } = parameters;\n let result: Result<boolean, KameleoonError>;\n\n if (isExperiment) {\n result = await requester.trackExperiment(\n params as TrackExperimentParamsType,\n );\n } else {\n result = await requester.trackData(params as TrackDataParamsType);\n }\n\n result.ok && result.data && successfulTimestamps.push(timestamp);\n }\n\n this.deleteFromOfflineTracking({\n storage,\n timestamps: successfulTimestamps,\n });\n }\n }\n\n private static addItemToOfflineTracking({\n item,\n isExperiment,\n storage,\n onSuccess,\n }: AddToOfflineTrackingParametersType): void {\n const readResult = storage.read();\n\n const data = readResult.ok ? readResult.data : {};\n\n const { requestParameters } = data;\n\n const newItem = {\n ...item,\n timestamp: new Date().getTime(),\n isExperiment,\n };\n\n const newRequestParameters = requestParameters\n ? [...requestParameters, newItem]\n : [newItem];\n\n const writeResult = storage.write({\n requestParameters: newRequestParameters,\n });\n\n if (writeResult.ok && onSuccess) {\n onSuccess();\n }\n }\n\n private static deleteFromOfflineTracking({\n timestamps,\n storage,\n }: DeleteFromOfflineTrackingParametersType): void {\n const readResult = storage.read();\n\n if (readResult.ok) {\n const { requestParameters } = readResult.data;\n\n const newParameters = requestParameters?.filter(\n (item) => !timestamps.includes(item.timestamp),\n );\n\n storage.write({ requestParameters: newParameters });\n }\n }\n\n private static validateVersion(\n version: string,\n ): Result<[number, number, number], KameleoonError> {\n const versionParts = version.split('.').map((x) => parseInt(x, 10));\n\n while (versionParts.length < 3) {\n versionParts.push(0);\n }\n\n if (versionParts.some((item) => isNaN(item))) {\n return Err(\n new KameleoonError(KameleoonException.SemanticVersionParse, version),\n );\n }\n\n return Ok(versionParts.slice(0, 3) as [number, number, number]);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"utilities.js","names":["Utilities","a","_classCallCheck","_createClass","key","value","checkTargeting","segment","visitorCode","targetingData","experimentId","variationConfiguration","clientConfiguration","packageInfo","dataManager","conditionsData","firstLevel","length","Ok","Err","KameleoonError","KameleoonException","Initialization","variations","assignedVariationsResult","getStoredVariations","ok","data","targetingTree","getTree","trees","segments","ruleMap","hasTargetingType","TargetingType","SEGMENT","TARGET_FEATURE_FLAG","result","evaluate","variationData","sdkInfo","validateVisitorCode","VisitorCodeEmpty","VISITOR_CODE_MAX_LENGTH","VisitorCodeMaxLength","getDataUrl","b","updateUrl","url","shouldSendConversionData","type","KameleoonData","Conversion","isConsentProvided","resultUrl","push","UrlParameter","Nonce","getNonce","unsentData","getUnsentData","size","i","j","_createForOfIteratorHelper","values","s","n","done","item","Array","isArray","forEach","arrayItem","e","f","join","getVariationDataUrlAndSentExperimentIds","variationDataUrlList","sentExperimentIds","Set","isTargetedRule","UrlEventType","Experiment","Id","VariationId","variationId","add","variationDataUrl","experimentIds","from","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","c","d","g","h","k","l","m","o","p","q","r","t","u","v","w","x","wrap","y","prev","next","featureFlagVariation","requester","isOfflineModeOn","offlineTrackingStorage","rule","userAgent","getUserAgent","dataUrl","resultVariationId","_slicedToArray","abrupt","isUnallocated","parameters","trackExperiment","sent","clearUnsentData","clearUnsentDataByKey","markUnsentDataAsSent","addItemToOfflineTracking","storage","isExperiment","stop","convertTimeUnit","time","timeUnit","timeMap","_defineProperty","TimeUnit","Minute","Milliseconds","Hour","Day","Week","Month","parseFeatureVariable","variable","VariableType","BOOLEAN","STRING","NUMBER","numberValue","Number","isNaN","NumberParse","JSON","jsonValue","parse","err","JSONParse","exhaustCheck","parseVisitorData","filters","currentVisit","previousVisits","browserFilter","browser","customDataFilter","customData","operatingSystemFilter","operatingSystem","conversionsFilter","conversions","deviceFilter","device","geolocationFilter","geolocation","experimentsFilter","experiments","pageViewFilter","pageViews","visits","_toConsumableArray","visitorData","resultData","PageView","_listFromVisits","Browser","_fromVisits","visit","experimentData","experimentEvents","experimentEvent","A","id","isSent","updateStoredVariations","Device","GeolocationData","CustomData","OperatingSystem","visitsData","collectedVisitsData","VisitsData","_fromRemoteVisits","parseRegExp","split","_","expression","flags","RegExp","storedData","storedTargetingData","userAgentData","UserAgent","isCustomData","dataItem","insertInOrderedListMutably","list","element","order","includes","index","findIndex","Order","Ascending","splice","updateCache","cacheManager","cacheData","getAliveItem","newCacheData","_objectSpread","expirationTime","Date","now","CACHE_ITEM_LIFETIME","Second","lifetime","getTrackingCode","trackingCache","resultString","updatedCacheData","Object","entries","concat","isMappingIdentifier","sendOfflineTracking","body","trackData","cleanup","onSuccess","randomNumber","hexLength","HEX_CHARACTERS","nonce","Math","floor","random","substring","compareSemVer","version","compareVersion","operator","versionResult","validateVersion","compareVersionResult","error","major","minor","patch","compareMajor","compareMinor","comparePatch","isMajorEqual","isMinorEqual","isPatchEqual","VersionMatchType","EQUAL","GREATER","LOWER","generateRandomString","characters","randomCharacterArray","readResult","read","requestParameters","successfulTimestamps","timestamp","params","_objectWithoutProperties","_excluded","t0","finish","deleteFromOfflineTracking","timestamps","newItem","getTime","newRequestParameters","writeResult","write","newParameters","filter","versionParts","map","parseInt","some","SemanticVersionParse","slice","exports"],"sources":["../../src/utilities/utilities.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport {\n KameleoonError,\n KameleoonException,\n exhaustCheck,\n} from 'src/kameleoonError';\nimport {\n FeatureVariableResultType,\n Milliseconds,\n TrackingCacheItemType,\n VariableType,\n} from 'src/types';\nimport { FeatureVariableType, JSONType } from 'src/clientConfiguration';\nimport {\n Browser,\n Conversion,\n CustomData,\n DataManager,\n Device,\n GeolocationData,\n KameleoonData,\n KameleoonDataType,\n OperatingSystem,\n PageView,\n VisitsData,\n} from 'src/kameleoonData';\nimport { CACHE_ITEM_LIFETIME } from 'src/constants';\nimport { CacheManager } from 'src/cacheManager';\nimport {\n TrackExperimentParamsType,\n TrackDataParamsType,\n VisitType,\n UrlParameter,\n UrlEventType,\n} from 'src/requester';\nimport { VersionMatchType, TargetingType } from 'src/targeting';\nimport { KameleoonVisitorDataType } from 'src/kameleoonData/types';\nimport { FeatureFlagVariationsType } from 'src/storage/types';\nimport { VISITOR_CODE_MAX_LENGTH, HEX_CHARACTERS } from './constants';\nimport {\n CheckTargetingParametersType,\n ManageCacheParametersType,\n TrackDataParametersType,\n TrackRuleParametersType,\n AddToOfflineTrackingParametersType,\n SendOfflineTrackingParametersType,\n DeleteFromOfflineTrackingParametersType,\n ParseVisitorDataParametersType,\n InsertInOrderedListParametersType,\n Order,\n TimeUnit,\n GetDataUrlParametersType,\n GetVariationDataUrlParametersType,\n ParseVisitorDataResultType,\n} from './types';\n\nexport class Utilities {\n static checkTargeting({\n segment,\n visitorCode,\n targetingData,\n experimentId,\n variationConfiguration,\n clientConfiguration,\n packageInfo,\n dataManager,\n }: CheckTargetingParametersType): Result<boolean, KameleoonError> {\n if (!segment || !segment.conditionsData.firstLevel.length) {\n return Ok(true);\n }\n\n if (!variationConfiguration) {\n return Err(new KameleoonError(KameleoonException.Initialization));\n }\n\n let variations: FeatureFlagVariationsType = {};\n\n const assignedVariationsResult =\n variationConfiguration.getStoredVariations(visitorCode);\n\n if (assignedVariationsResult.ok) {\n variations = assignedVariationsResult.data;\n }\n\n const targetingTree = dataManager.getTree(segment);\n\n let trees = undefined;\n let segments = undefined;\n let ruleMap = undefined;\n\n // --- Note ---\n // Only getting trees and segments targeting type\n if (targetingTree.hasTargetingType(TargetingType.SEGMENT)) {\n trees = dataManager.trees;\n segments = clientConfiguration.segments;\n }\n\n // --- Note ---\n // Only constructing rule map for targeting type\n if (targetingTree.hasTargetingType(TargetingType.TARGET_FEATURE_FLAG)) {\n ruleMap = clientConfiguration.ruleMap;\n }\n\n const result = targetingTree.evaluate({\n variationData: variations,\n sdkInfo: packageInfo,\n segments,\n ruleMap,\n trees,\n targetingData,\n experimentId,\n visitorCode,\n });\n\n return result;\n }\n\n static validateVisitorCode(\n visitorCode: string,\n ): Result<void, KameleoonError> {\n if (visitorCode.length === 0) {\n return Err(new KameleoonError(KameleoonException.VisitorCodeEmpty));\n }\n\n if (visitorCode.length > VISITOR_CODE_MAX_LENGTH) {\n return Err(new KameleoonError(KameleoonException.VisitorCodeMaxLength));\n }\n\n return Ok();\n }\n\n static getDataUrl({\n visitorCode,\n dataManager,\n isConsentProvided,\n }: GetDataUrlParametersType): string {\n const unsentData = dataManager.getUnsentData(visitorCode);\n const resultUrl: string[] = [];\n\n if (!unsentData || !unsentData.size) {\n return '';\n }\n\n function updateUrl(data: KameleoonDataType): void {\n if (!data.url) {\n return;\n }\n\n const shouldSendAllData = isConsentProvided;\n const shouldSendConversionData =\n data.data.type === KameleoonData.Conversion;\n\n if (shouldSendAllData || shouldSendConversionData) {\n resultUrl.push(\n data.url + UrlParameter.Nonce + Utilities.getNonce() + '\\n',\n );\n }\n }\n\n for (const item of unsentData.values()) {\n if (Array.isArray(item)) {\n item.forEach((arrayItem) => updateUrl(arrayItem));\n } else {\n updateUrl(item);\n }\n }\n\n return resultUrl.join('');\n }\n\n static getVariationDataUrlAndSentExperimentIds({\n visitorCode,\n isConsentProvided,\n variationConfiguration,\n }: GetVariationDataUrlParametersType): [string, string[]] {\n const variationDataUrlList: string[] = [];\n const sentExperimentIds = new Set<string>();\n const unsentData = variationConfiguration.getUnsentData(visitorCode);\n\n if (unsentData.ok && unsentData.data.length) {\n unsentData.data.forEach((item) => {\n if (item.isTargetedRule || isConsentProvided) {\n variationDataUrlList.push(\n UrlEventType.Experiment +\n UrlParameter.Id +\n item.experimentId +\n UrlParameter.VariationId +\n item.variationId +\n UrlParameter.Nonce +\n Utilities.getNonce() +\n '\\n',\n );\n\n sentExperimentIds.add(String(item.experimentId));\n }\n });\n }\n\n const variationDataUrl = variationDataUrlList.join('');\n const experimentIds = Array.from(sentExperimentIds);\n\n return [variationDataUrl, experimentIds];\n }\n\n static async trackFeatureExperiment({\n featureFlagVariation,\n dataManager,\n visitorCode,\n requester,\n isOfflineModeOn,\n isConsentProvided,\n offlineTrackingStorage,\n variationConfiguration,\n }: TrackRuleParametersType): Promise<void> {\n const { variationId, rule, isTargetedRule } = featureFlagVariation;\n\n const userAgent = this.getUserAgent(visitorCode, dataManager);\n\n const dataUrl = this.getDataUrl({\n visitorCode,\n dataManager,\n isConsentProvided,\n });\n\n const resultVariationId = variationId || 0;\n\n // --- Note ---\n // Experiment id is not needed for unallocated visitors\n // So we just use 0 as a fallback\n const experimentId = rule ? rule.experimentId : 0;\n\n const [variationDataUrl, sentExperimentIds] =\n this.getVariationDataUrlAndSentExperimentIds({\n visitorCode,\n isConsentProvided,\n variationConfiguration,\n });\n\n if (!isConsentProvided && !dataUrl && !rule) {\n return;\n }\n\n const isUnallocated = variationId === null;\n\n const parameters = {\n visitorCode,\n dataUrl,\n variationDataUrl,\n experimentId,\n variationId: resultVariationId,\n userAgent,\n isUnallocated,\n };\n\n const result = await requester.trackExperiment(parameters);\n\n if (result.ok) {\n if (!isConsentProvided) {\n dataManager.clearUnsentDataByKey(visitorCode, KameleoonData.Conversion);\n } else {\n dataManager.clearUnsentData(visitorCode);\n }\n\n sentExperimentIds.forEach((experimentId) => {\n variationConfiguration.markUnsentDataAsSent(visitorCode, experimentId);\n });\n }\n\n if (!result.ok && isOfflineModeOn) {\n this.addItemToOfflineTracking({\n item: parameters,\n storage: offlineTrackingStorage,\n isExperiment: true,\n });\n }\n }\n\n static convertTimeUnit(time: number, timeUnit: TimeUnit): number {\n const timeMap = {\n [TimeUnit.Minute]: Milliseconds.Minute,\n [TimeUnit.Hour]: Milliseconds.Hour,\n [TimeUnit.Day]: Milliseconds.Day,\n [TimeUnit.Week]: Milliseconds.Week,\n [TimeUnit.Month]: Milliseconds.Month,\n };\n\n return time / timeMap[timeUnit];\n }\n\n static parseFeatureVariable(\n variable: FeatureVariableType,\n ): Result<FeatureVariableResultType, KameleoonError> {\n const { key, type, value } = variable;\n\n switch (type) {\n case VariableType.BOOLEAN:\n return Ok({\n key,\n type,\n value: Boolean(value),\n });\n case VariableType.STRING:\n return Ok({\n key,\n type,\n value: String(value),\n });\n case VariableType.NUMBER:\n const numberValue = Number(value);\n\n if (Number.isNaN(numberValue)) {\n return Err(\n new KameleoonError(KameleoonException.NumberParse, String(value)),\n );\n }\n\n return Ok({\n key,\n type,\n value: numberValue,\n });\n case VariableType.JSON:\n try {\n const jsonValue: JSONType = JSON.parse(String(variable.value));\n\n return Ok({\n key,\n type,\n value: jsonValue,\n });\n } catch (err) {\n return Err(new KameleoonError(KameleoonException.JSONParse, err));\n }\n default:\n exhaustCheck(type);\n }\n }\n\n static parseVisitorData({\n data,\n filters,\n visitorCode,\n variationConfiguration,\n }: ParseVisitorDataParametersType): ParseVisitorDataResultType {\n const { currentVisit, previousVisits } = data;\n const {\n browser: browserFilter,\n customData: customDataFilter,\n operatingSystem: operatingSystemFilter,\n conversions: conversionsFilter,\n device: deviceFilter,\n geolocation: geolocationFilter,\n experiments: experimentsFilter,\n pageViews: pageViewFilter,\n } = filters;\n\n let visits: VisitType[] = [];\n\n if (currentVisit) {\n visits.push(currentVisit);\n }\n\n if (previousVisits) {\n visits.push(...previousVisits);\n }\n\n if (!visits) {\n return { visitorData: [] };\n }\n\n const resultData: KameleoonDataType[] = [];\n\n if (pageViewFilter) {\n const pageViews = PageView._listFromVisits(visits);\n\n if (pageViews.length) {\n resultData.push(...pageViews);\n }\n }\n\n // --- Browser ---\n if (browserFilter) {\n const browser = Browser._fromVisits(visits);\n\n if (browser) {\n resultData.push(browser);\n }\n }\n\n // --- Experiments ---\n if (experimentsFilter) {\n const experimentData: FeatureFlagVariationsType = {};\n\n // --- Note ---\n // Going backwards to get the latest experiment data\n for (let i = visits.length - 1; i >= 0; i--) {\n const visit = visits[i];\n\n if (!visit.experimentEvents) {\n continue;\n }\n\n for (const experimentEvent of visit.experimentEvents) {\n const { id, variationId } = experimentEvent.data;\n\n experimentData[id] = {\n variationId,\n isTargetedRule: false,\n isSent: false,\n };\n }\n }\n\n variationConfiguration.updateStoredVariations(\n visitorCode,\n experimentData,\n );\n }\n\n // --- Device ---\n if (deviceFilter) {\n const device = Device._fromVisits(visits);\n\n if (device) {\n resultData.push(device);\n }\n }\n\n // --- Geolocation ---\n if (geolocationFilter) {\n const geolocation = GeolocationData._fromVisits(visits);\n\n if (geolocation) {\n resultData.push(geolocation);\n }\n }\n\n // --- Custom data ---\n if (customDataFilter) {\n resultData.push(...CustomData._listFromVisits(visits));\n }\n\n // --- Operating system ---\n if (operatingSystemFilter) {\n const operatingSystem = OperatingSystem._fromVisits(visits);\n\n if (operatingSystem) {\n resultData.push(operatingSystem);\n }\n }\n\n // --- Conversions ---\n if (conversionsFilter) {\n resultData.push(...Conversion._listFromVisits(visits));\n }\n\n // --- Visits ---\n let visitsData: VisitsData | undefined;\n\n const collectedVisitsData = VisitsData._fromRemoteVisits(\n visits,\n Boolean(currentVisit),\n );\n\n if (collectedVisitsData) {\n visitsData = collectedVisitsData;\n }\n\n return { visitorData: resultData, visitsData };\n }\n\n static parseRegExp(value: string): RegExp {\n if (value[0] === '/') {\n const [_, expression, flags] = value.split('/');\n\n return new RegExp(expression, flags);\n }\n\n return new RegExp(value);\n }\n\n static getUserAgent(\n visitorCode: string,\n dataManager: DataManager,\n ): string | undefined {\n const storedData = dataManager.storedTargetingData;\n\n const targetingData: KameleoonVisitorDataType | undefined =\n storedData && storedData[visitorCode];\n\n if (targetingData) {\n const userAgentData = targetingData[KameleoonData.UserAgent];\n\n if (userAgentData) {\n return userAgentData.value;\n }\n }\n\n return undefined;\n }\n\n static isCustomData(dataItem: KameleoonDataType): dataItem is CustomData {\n return dataItem.data.type === KameleoonData.CustomData;\n }\n\n /**\n * Insert element in ordered list, if element already exists in list, does nothing\n * @param list - list to insert element\n * @param element - element to insert\n * @param order - order of list\n */\n static insertInOrderedListMutably({\n list,\n element,\n order,\n }: InsertInOrderedListParametersType): void {\n if (list.includes(element)) {\n return;\n }\n\n const index = list.findIndex((item) =>\n order === Order.Ascending ? item >= element : item <= element,\n );\n\n if (index === -1) {\n list.push(element);\n } else {\n list.splice(index, 0, element);\n }\n }\n\n static updateCache({\n cacheManager,\n visitorCode,\n experimentId,\n variationId,\n }: ManageCacheParametersType): void {\n const cacheData = cacheManager.getAliveItem(visitorCode);\n\n const newCacheData = cacheData ? { ...cacheData } : {};\n\n newCacheData[experimentId] = {\n variationId,\n expirationTime: Date.now() + CACHE_ITEM_LIFETIME * Milliseconds.Second,\n };\n\n cacheManager.add({\n key: visitorCode,\n data: newCacheData,\n lifetime: CACHE_ITEM_LIFETIME,\n });\n }\n\n static getTrackingCode(\n trackingCache: CacheManager<TrackingCacheItemType>,\n visitorCode: string,\n ): string {\n let resultString = 'window.kameleoonQueue=window.kameleoonQueue||[];';\n\n const cacheData = trackingCache.getAliveItem(visitorCode);\n\n if (!cacheData) {\n return resultString;\n }\n\n const updatedCacheData: TrackingCacheItemType = {};\n\n Object.entries(cacheData).forEach(\n ([experimentId, { variationId, expirationTime }]) => {\n if (expirationTime > Date.now()) {\n resultString += `window.kameleoonQueue.push(['Experiments.assignVariation',${experimentId},${variationId}]);`;\n resultString += `window.kameleoonQueue.push(['Experiments.trigger',${experimentId},true]);`;\n\n updatedCacheData[Number(experimentId)] = {\n variationId,\n expirationTime,\n };\n }\n },\n );\n\n // --- Note ---\n // Cache is updated with only alive experiments\n trackingCache.add({\n key: visitorCode,\n data: updatedCacheData,\n lifetime: CACHE_ITEM_LIFETIME,\n });\n\n return resultString;\n }\n\n static async trackData({\n visitorCode,\n dataManager,\n requester,\n isOfflineModeOn,\n offlineTrackingStorage,\n isConsentProvided,\n isMappingIdentifier,\n }: TrackDataParametersType): Promise<void> {\n await this.sendOfflineTracking({\n requester,\n storage: offlineTrackingStorage,\n });\n\n const dataUrl = this.getDataUrl({\n visitorCode,\n dataManager,\n isConsentProvided,\n });\n\n if (!isConsentProvided && !dataUrl) {\n return;\n }\n\n const userAgent = this.getUserAgent(visitorCode, dataManager);\n\n const parameters: TrackDataParamsType = {\n visitorCode,\n body: dataUrl,\n userAgent,\n isMappingIdentifier,\n };\n\n const result = await requester.trackData(parameters);\n\n const cleanup = () =>\n isConsentProvided\n ? dataManager.clearUnsentData(visitorCode)\n : dataManager.clearUnsentDataByKey(\n visitorCode,\n KameleoonData.Conversion,\n );\n\n if (result.ok) {\n cleanup();\n }\n\n if (!result.ok && isOfflineModeOn) {\n this.addItemToOfflineTracking({\n item: parameters,\n storage: offlineTrackingStorage,\n isExperiment: false,\n onSuccess: cleanup,\n });\n }\n }\n\n static getNonce(): string {\n const hexLength = HEX_CHARACTERS.length;\n let nonce: string = '';\n\n for (let i = 0; i < hexLength; i++) {\n const randomNumber = Math.floor(Math.random() * hexLength);\n nonce += HEX_CHARACTERS.substring(randomNumber, randomNumber + 1);\n }\n\n return nonce;\n }\n\n static compareSemVer({\n version,\n compareVersion,\n operator,\n }: {\n version: string;\n compareVersion: string;\n operator: VersionMatchType;\n }): Result<boolean, KameleoonError> {\n const versionResult = this.validateVersion(version);\n const compareVersionResult = this.validateVersion(compareVersion);\n\n if (!versionResult.ok) {\n return Err(versionResult.error);\n }\n\n if (!compareVersionResult.ok) {\n return Err(compareVersionResult.error);\n }\n\n const [major, minor, patch] = versionResult.data;\n const [compareMajor, compareMinor, comparePatch] =\n compareVersionResult.data;\n\n const [isMajorEqual, isMinorEqual, isPatchEqual] = [\n major === compareMajor,\n minor === compareMinor,\n patch === comparePatch,\n ];\n\n switch (operator) {\n case VersionMatchType.EQUAL:\n return Ok(isMajorEqual && isMinorEqual && isPatchEqual);\n case VersionMatchType.GREATER:\n return Ok(\n major > compareMajor ||\n (isMajorEqual && minor > compareMinor) ||\n (isMajorEqual && isMinorEqual && patch > comparePatch),\n );\n case VersionMatchType.LOWER:\n return Ok(\n major < compareMajor ||\n (isMajorEqual && minor < compareMinor) ||\n (isMajorEqual && isMinorEqual && patch < comparePatch),\n );\n default:\n exhaustCheck(operator);\n }\n }\n\n static generateRandomString(length: number): string {\n const characters = 'abcdefghijklmnopqrstuvwxyz0123456789';\n const randomCharacterArray: string[] = [];\n\n if (length < 0) {\n return '';\n }\n\n for (let i = 0; i < length; i++) {\n randomCharacterArray.push(\n characters[Math.floor(Math.random() * characters.length)],\n );\n }\n\n return randomCharacterArray.join('');\n }\n\n static async sendOfflineTracking({\n requester,\n storage,\n }: SendOfflineTrackingParametersType) {\n const readResult = storage.read();\n\n if (readResult.ok && readResult.data.requestParameters) {\n const { requestParameters } = readResult.data;\n const successfulTimestamps: number[] = [];\n\n // --- Note ---\n // `for..of` + `await` is used to make sure that failed requests are sent one by one\n // without risk of getting the same timestamp at the server, which might happen, for example,\n // with `.forEach` or `.map` starting requests in async callbacks at the same time\n for (const parameters of requestParameters) {\n const { timestamp, isExperiment, ...params } = parameters;\n let result: Result<boolean, KameleoonError>;\n\n if (isExperiment) {\n result = await requester.trackExperiment(\n params as TrackExperimentParamsType,\n );\n } else {\n result = await requester.trackData(params as TrackDataParamsType);\n }\n\n result.ok && result.data && successfulTimestamps.push(timestamp);\n }\n\n this.deleteFromOfflineTracking({\n storage,\n timestamps: successfulTimestamps,\n });\n }\n }\n\n private static addItemToOfflineTracking({\n item,\n isExperiment,\n storage,\n onSuccess,\n }: AddToOfflineTrackingParametersType): void {\n const readResult = storage.read();\n\n const data = readResult.ok ? readResult.data : {};\n\n const { requestParameters } = data;\n\n const newItem = {\n ...item,\n timestamp: new Date().getTime(),\n isExperiment,\n };\n\n const newRequestParameters = requestParameters\n ? [...requestParameters, newItem]\n : [newItem];\n\n const writeResult = storage.write({\n requestParameters: newRequestParameters,\n });\n\n if (writeResult.ok && onSuccess) {\n onSuccess();\n }\n }\n\n private static deleteFromOfflineTracking({\n timestamps,\n storage,\n }: DeleteFromOfflineTrackingParametersType): void {\n const readResult = storage.read();\n\n if (readResult.ok) {\n const { requestParameters } = readResult.data;\n\n const newParameters = requestParameters?.filter(\n (item) => !timestamps.includes(item.timestamp),\n );\n\n storage.write({ requestParameters: newParameters });\n }\n }\n\n private static validateVersion(\n version: string,\n ): Result<[number, number, number], KameleoonError> {\n const versionParts = version.split('.').map((x) => parseInt(x, 10));\n\n while (versionParts.length < 3) {\n versionParts.push(0);\n }\n\n if (versionParts.some((item) => isNaN(item))) {\n return Err(\n new KameleoonError(KameleoonException.SemanticVersionParse, version),\n );\n }\n\n return Ok(versionParts.slice(0, 3) as [number, number, number]);\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kameleoon/javascript-sdk-core",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "Kameleoon JS SDK Core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",