@kameleoon/javascript-sdk-core 2.4.6 → 2.5.1

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.
Files changed (190) hide show
  1. package/dist/cacheManager/cacheManager.js +3 -65
  2. package/dist/cacheManager/cacheManager.js.map +1 -1
  3. package/dist/cacheManager/index.js +1 -19
  4. package/dist/cacheManager/index.js.map +1 -1
  5. package/dist/cacheManager/types.js +1 -5
  6. package/dist/campaignConfiguration/campaignConfiguration.d.ts +10 -7
  7. package/dist/campaignConfiguration/campaignConfiguration.js +9 -283
  8. package/dist/campaignConfiguration/campaignConfiguration.js.map +1 -1
  9. package/dist/campaignConfiguration/constants.d.ts +2 -10
  10. package/dist/campaignConfiguration/constants.js +2 -21
  11. package/dist/campaignConfiguration/constants.js.map +1 -1
  12. package/dist/campaignConfiguration/index.js +1 -86
  13. package/dist/campaignConfiguration/index.js.map +1 -1
  14. package/dist/campaignConfiguration/types.d.ts +8 -7
  15. package/dist/campaignConfiguration/types.js +1 -54
  16. package/dist/campaignConfiguration/types.js.map +1 -1
  17. package/dist/clientSettings/clientSettings.d.ts +1 -1
  18. package/dist/clientSettings/clientSettings.js +1 -35
  19. package/dist/clientSettings/clientSettings.js.map +1 -1
  20. package/dist/clientSettings/index.js +1 -19
  21. package/dist/clientSettings/index.js.map +1 -1
  22. package/dist/clientSettings/types.d.ts +1 -1
  23. package/dist/clientSettings/types.js +1 -5
  24. package/dist/clientSettings/types.js.map +1 -1
  25. package/dist/constants.d.ts +13 -4
  26. package/dist/constants.js +2 -36
  27. package/dist/constants.js.map +1 -1
  28. package/dist/eventSource/constants.js +1 -8
  29. package/dist/eventSource/constants.js.map +1 -1
  30. package/dist/eventSource/externalEventSource.js +1 -33
  31. package/dist/eventSource/externalEventSource.js.map +1 -1
  32. package/dist/eventSource/index.js +1 -50
  33. package/dist/eventSource/index.js.map +1 -1
  34. package/dist/eventSource/types.js +1 -5
  35. package/dist/hasher/hasher.js +6 -44
  36. package/dist/hasher/hasher.js.map +1 -1
  37. package/dist/hasher/index.js +1 -12
  38. package/dist/hasher/index.js.map +1 -1
  39. package/dist/hasher/types.d.ts +1 -1
  40. package/dist/hasher/types.js +1 -5
  41. package/dist/hasher/types.js.map +1 -1
  42. package/dist/index.d.ts +3 -3
  43. package/dist/index.js +1 -310
  44. package/dist/index.js.map +1 -1
  45. package/dist/kameleoonClient.d.ts +16 -4
  46. package/dist/kameleoonClient.js +10 -384
  47. package/dist/kameleoonClient.js.map +1 -1
  48. package/dist/kameleoonData/browser.d.ts +8 -3
  49. package/dist/kameleoonData/browser.js +9 -40
  50. package/dist/kameleoonData/browser.js.map +1 -1
  51. package/dist/kameleoonData/conversion.d.ts +2 -2
  52. package/dist/kameleoonData/conversion.js +5 -50
  53. package/dist/kameleoonData/conversion.js.map +1 -1
  54. package/dist/kameleoonData/customData.d.ts +2 -2
  55. package/dist/kameleoonData/customData.js +5 -55
  56. package/dist/kameleoonData/customData.js.map +1 -1
  57. package/dist/kameleoonData/device.d.ts +2 -2
  58. package/dist/kameleoonData/device.js +5 -40
  59. package/dist/kameleoonData/device.js.map +1 -1
  60. package/dist/kameleoonData/index.d.ts +1 -1
  61. package/dist/kameleoonData/index.js +1 -102
  62. package/dist/kameleoonData/index.js.map +1 -1
  63. package/dist/kameleoonData/pageView.d.ts +2 -2
  64. package/dist/kameleoonData/pageView.js +5 -56
  65. package/dist/kameleoonData/pageView.js.map +1 -1
  66. package/dist/kameleoonData/types.d.ts +44 -27
  67. package/dist/kameleoonData/types.js +6 -42
  68. package/dist/kameleoonData/types.js.map +1 -1
  69. package/dist/kameleoonData/userAgent.d.ts +2 -2
  70. package/dist/kameleoonData/userAgent.js +4 -37
  71. package/dist/kameleoonData/userAgent.js.map +1 -1
  72. package/dist/kameleoonError/constants.d.ts +4 -2
  73. package/dist/kameleoonError/constants.js +1 -31
  74. package/dist/kameleoonError/constants.js.map +1 -1
  75. package/dist/kameleoonError/helpers.js +1 -9
  76. package/dist/kameleoonError/helpers.js.map +1 -1
  77. package/dist/kameleoonError/index.js +1 -26
  78. package/dist/kameleoonError/index.js.map +1 -1
  79. package/dist/kameleoonError/kameleoonError.d.ts +3 -3
  80. package/dist/kameleoonError/kameleoonError.js +2 -75
  81. package/dist/kameleoonError/kameleoonError.js.map +1 -1
  82. package/dist/kameleoonError/types.d.ts +2 -0
  83. package/dist/kameleoonError/types.js +1 -31
  84. package/dist/kameleoonError/types.js.map +1 -1
  85. package/dist/kameleoonUtils.js +2 -44
  86. package/dist/kameleoonUtils.js.map +1 -1
  87. package/dist/requester/constants.js +1 -73
  88. package/dist/requester/constants.js.map +1 -1
  89. package/dist/requester/index.js +1 -80
  90. package/dist/requester/index.js.map +1 -1
  91. package/dist/requester/requester.d.ts +4 -5
  92. package/dist/requester/requester.js +1 -106
  93. package/dist/requester/requester.js.map +1 -1
  94. package/dist/requester/types.d.ts +8 -7
  95. package/dist/requester/types.js +1 -16
  96. package/dist/requester/types.js.map +1 -1
  97. package/dist/storage/constants.js +2 -15
  98. package/dist/storage/constants.js.map +1 -1
  99. package/dist/storage/externalStorage.d.ts +1 -1
  100. package/dist/storage/externalStorage.js +1 -40
  101. package/dist/storage/externalStorage.js.map +1 -1
  102. package/dist/storage/index.js +1 -56
  103. package/dist/storage/index.js.map +1 -1
  104. package/dist/storage/types.d.ts +4 -4
  105. package/dist/storage/types.js +1 -5
  106. package/dist/storage/types.js.map +1 -1
  107. package/dist/targeting/conditions/browserCondition.d.ts +13 -0
  108. package/dist/targeting/conditions/browserCondition.js +2 -0
  109. package/dist/targeting/conditions/browserCondition.js.map +1 -0
  110. package/dist/targeting/conditions/conditionFactory.d.ts +1 -1
  111. package/dist/targeting/conditions/conditionFactory.js +1 -30
  112. package/dist/targeting/conditions/conditionFactory.js.map +1 -1
  113. package/dist/targeting/conditions/conversionCondition.d.ts +10 -0
  114. package/dist/targeting/conditions/conversionCondition.js +4 -0
  115. package/dist/targeting/conditions/conversionCondition.js.map +1 -0
  116. package/dist/targeting/conditions/customDataCondition.d.ts +5 -7
  117. package/dist/targeting/conditions/customDataCondition.js +7 -114
  118. package/dist/targeting/conditions/customDataCondition.js.map +1 -1
  119. package/dist/targeting/conditions/deviceCondition.d.ts +9 -0
  120. package/dist/targeting/conditions/deviceCondition.js +2 -0
  121. package/dist/targeting/conditions/deviceCondition.js.map +1 -0
  122. package/dist/targeting/conditions/exclusiveExperimentCondition.d.ts +3 -5
  123. package/dist/targeting/conditions/exclusiveExperimentCondition.js +1 -32
  124. package/dist/targeting/conditions/exclusiveExperimentCondition.js.map +1 -1
  125. package/dist/targeting/conditions/index.d.ts +7 -0
  126. package/dist/targeting/conditions/index.js +1 -46
  127. package/dist/targeting/conditions/index.js.map +1 -1
  128. package/dist/targeting/conditions/pageTitleCondition.d.ts +11 -0
  129. package/dist/targeting/conditions/pageTitleCondition.js +2 -0
  130. package/dist/targeting/conditions/pageTitleCondition.js.map +1 -0
  131. package/dist/targeting/conditions/pageUrlCondition.d.ts +11 -0
  132. package/dist/targeting/conditions/pageUrlCondition.js +2 -0
  133. package/dist/targeting/conditions/pageUrlCondition.js.map +1 -0
  134. package/dist/targeting/conditions/sdkLanguageCondition.d.ts +15 -0
  135. package/dist/targeting/conditions/sdkLanguageCondition.js +2 -0
  136. package/dist/targeting/conditions/sdkLanguageCondition.js.map +1 -0
  137. package/dist/targeting/conditions/targetExperimentCondition.d.ts +3 -4
  138. package/dist/targeting/conditions/targetExperimentCondition.js +1 -63
  139. package/dist/targeting/conditions/targetExperimentCondition.js.map +1 -1
  140. package/dist/targeting/conditions/types.d.ts +25 -6
  141. package/dist/targeting/conditions/types.js +1 -5
  142. package/dist/targeting/conditions/types.js.map +1 -1
  143. package/dist/targeting/conditions/visitorCodeCondition.d.ts +11 -0
  144. package/dist/targeting/conditions/visitorCodeCondition.js +2 -0
  145. package/dist/targeting/conditions/visitorCodeCondition.js.map +1 -0
  146. package/dist/targeting/index.d.ts +2 -2
  147. package/dist/targeting/index.js +1 -80
  148. package/dist/targeting/index.js.map +1 -1
  149. package/dist/targeting/targetingNode.d.ts +3 -1
  150. package/dist/targeting/targetingNode.js +1 -47
  151. package/dist/targeting/targetingNode.js.map +1 -1
  152. package/dist/targeting/targetingTree.d.ts +3 -1
  153. package/dist/targeting/targetingTree.js +34 -135
  154. package/dist/targeting/targetingTree.js.map +1 -1
  155. package/dist/targeting/types.d.ts +24 -9
  156. package/dist/targeting/types.js +1 -100
  157. package/dist/targeting/types.js.map +1 -1
  158. package/dist/types.d.ts +9 -4
  159. package/dist/types.js +12 -41
  160. package/dist/types.js.map +1 -1
  161. package/dist/utilities/constants.d.ts +1 -0
  162. package/dist/utilities/constants.js +1 -8
  163. package/dist/utilities/constants.js.map +1 -1
  164. package/dist/utilities/index.d.ts +1 -0
  165. package/dist/utilities/index.js +1 -12
  166. package/dist/utilities/index.js.map +1 -1
  167. package/dist/utilities/types.d.ts +14 -7
  168. package/dist/utilities/types.js +1 -5
  169. package/dist/utilities/types.js.map +1 -1
  170. package/dist/utilities/utilities.d.ts +12 -8
  171. package/dist/utilities/utilities.js +1 -216
  172. package/dist/utilities/utilities.js.map +1 -1
  173. package/dist/variationConfiguration/index.js +1 -25
  174. package/dist/variationConfiguration/index.js.map +1 -1
  175. package/dist/variationConfiguration/types.d.ts +5 -3
  176. package/dist/variationConfiguration/types.js +1 -5
  177. package/dist/variationConfiguration/types.js.map +1 -1
  178. package/dist/variationConfiguration/variation.d.ts +1 -1
  179. package/dist/variationConfiguration/variation.js +6 -44
  180. package/dist/variationConfiguration/variation.js.map +1 -1
  181. package/dist/variationConfiguration/variationConfiguration.d.ts +4 -4
  182. package/dist/variationConfiguration/variationConfiguration.js +65 -290
  183. package/dist/variationConfiguration/variationConfiguration.js.map +1 -1
  184. package/package.json +1 -1
  185. package/dist/kameleoonData/constants.d.ts +0 -1
  186. package/dist/kameleoonData/constants.js +0 -9
  187. package/dist/kameleoonData/constants.js.map +0 -1
  188. package/dist/kameleoonData/nonce.d.ts +0 -5
  189. package/dist/kameleoonData/nonce.js +0 -32
  190. package/dist/kameleoonData/nonce.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"campaignConfiguration.js","names":["_tsRes","require","_constants","_eventSource","_types","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","CampaignConfiguration","constructor","settings","storage","requester","externalClientConfiguration","targetingCleanupInterval","DEFAULT_CAMPAIGN_CONFIGURATION","targetingData","configurationData","CLEANUP_TARGETING_DATA_INTERVAL","Milliseconds","Minute","lastUpdate","Date","readStorageData","targetingDataLifetime","cleanupIntervalMinutes","targetingDataIntervalId","setInterval","cleanupOutdatedTargetingData","err","clearInterval","initialize","externalEventSource","useCache","shouldUpdate","checkShouldUpdate","updateResult","updateClientConfiguration","ok","configuration","realTimeUpdate","updateConfigurationIntervalId","eventSource","ExternalEventSource","siteCode","updateEventCallback","_timeStamp","configurationUpdateCallback","open","close","bind","updateInterval","Ok","addTargetingData","visitorCode","data","dataItem","lastActivityTime","now","result","updateStorageData","unsentTargetingData","getUnsentData","unsentDataItem","clearUnsentData","onConfigurationUpdate","callback","storedTargetingData","experiments","featureFlags","lastUpdateTime","getTime","updateWindowEdge","currentTime","resultTargetingData","entries","resultValue","item","isDataExpired","throw","read","kameleoonTargetingData","kameleoonConfiguration","parse","timeStamp","featureFlagConfigurations","clientConfigurationResult","getClientConfiguration","toString","write","exports"],"sources":["../../src/campaignConfiguration/campaignConfiguration.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonError } from '../kameleoonError/kameleoonError';\nimport { ClientSettingsType } from '../clientSettings/types';\nimport {\n CLEANUP_TARGETING_DATA_INTERVAL,\n DEFAULT_CAMPAIGN_CONFIGURATION,\n} from './constants';\nimport {\n CampaignConfigurationParametersType,\n ConfigurationDataType,\n ConfigurationType,\n ExperimentItemType,\n FeatureFlagType,\n UnsentTargetingDataType,\n UpdateClientConfigurationParameters,\n} from './types';\nimport { KameleoonDataType } from '../kameleoonData';\nimport { Requester, GetClientConfigurationResultType } from '../requester';\nimport { TargetingDataItemType, TargetingDataType } from '../targeting';\nimport { IStorage, ClientDataType } from '../storage';\nimport {\n ExternalEventSource,\n IEventSource,\n IExternalEventSourceConstructor,\n} from '../eventSource';\nimport { Milliseconds } from '../types';\n\ninterface ICampaignConfiguration {\n initialize: (\n eventSource: IExternalEventSourceConstructor,\n useCache?: boolean,\n ) => Promise<Result<void, KameleoonError>>;\n addTargetingData: (\n visitorCode: string,\n ...data: KameleoonDataType[]\n ) => Result<void, KameleoonError>;\n getUnsentData: (visitorCode: string) => KameleoonDataType[];\n clearUnsentData: (visitorCode: string) => void;\n onConfigurationUpdate: (callback: () => void) => void;\n readonly experiments: ExperimentItemType[];\n readonly storedTargetingData: TargetingDataType;\n readonly featureFlags: FeatureFlagType[];\n readonly configuration: ConfigurationType;\n}\n\nexport class CampaignConfiguration implements ICampaignConfiguration {\n private configurationUpdateCallback?: () => void;\n private updateConfigurationIntervalId: NodeJS.Timer | null = null;\n private targetingDataIntervalId: NodeJS.Timer | null = null;\n private unsentTargetingData: UnsentTargetingDataType = {};\n private targetingData: TargetingDataType =\n DEFAULT_CAMPAIGN_CONFIGURATION.targetingData;\n private configurationData: ConfigurationDataType =\n DEFAULT_CAMPAIGN_CONFIGURATION.configurationData;\n private settings: ClientSettingsType;\n private lastUpdate: Date;\n private storage: IStorage<ClientDataType>;\n private requester: Requester;\n private eventSource?: IEventSource;\n private externalClientConfiguration?: GetClientConfigurationResultType;\n private targetingDataLifetime: number =\n CLEANUP_TARGETING_DATA_INTERVAL * Milliseconds.Minute;\n\n constructor({\n settings,\n storage,\n requester,\n externalClientConfiguration,\n targetingCleanupInterval,\n }: CampaignConfigurationParametersType) {\n this.requester = requester;\n this.settings = settings;\n this.lastUpdate = new Date();\n this.storage = storage;\n this.readStorageData();\n this.externalClientConfiguration = externalClientConfiguration;\n\n if (targetingCleanupInterval) {\n this.targetingDataLifetime =\n targetingCleanupInterval * Milliseconds.Minute;\n\n const cleanupIntervalMinutes =\n targetingCleanupInterval < 0 ? 1 : targetingCleanupInterval;\n\n // --- Note ---\n // We can not make delayed code execution recoverable, as it might lead\n // to targeting data storage size overflow\n try {\n this.targetingDataIntervalId = setInterval(\n () =>\n this.cleanupOutdatedTargetingData.call(this, this.targetingData),\n cleanupIntervalMinutes * Milliseconds.Minute,\n );\n } catch (err) {\n if (this.targetingDataIntervalId) {\n clearInterval(this.targetingDataIntervalId);\n }\n\n throw err;\n }\n }\n }\n\n public async initialize(\n externalEventSource: IExternalEventSourceConstructor,\n useCache?: boolean,\n ): Promise<Result<void, KameleoonError>> {\n const shouldUpdate = this.checkShouldUpdate();\n\n // --- Initial data fetch ---\n if (shouldUpdate) {\n const updateResult = await this.updateClientConfiguration({ useCache });\n\n if (!updateResult.ok) {\n return updateResult;\n }\n }\n\n // --- Note ---\n // Interval is cleaned up in case real time update\n // was activated while initialized client already exists\n if (\n this.configurationData.configuration.realTimeUpdate &&\n !this.externalClientConfiguration\n ) {\n if (this.updateConfigurationIntervalId) {\n clearInterval(this.updateConfigurationIntervalId);\n }\n\n this.eventSource = new ExternalEventSource(\n this.settings.siteCode,\n externalEventSource,\n );\n\n const updateEventCallback = (_timeStamp: number) => {\n this.updateClientConfiguration({ useCache });\n\n if (this.configurationUpdateCallback) {\n this.configurationUpdateCallback();\n }\n };\n\n this.eventSource.open(updateEventCallback);\n } else {\n // --- Note ---\n // Event Source is cleaned up in case real time update\n // was disabled while initialized client already exists\n if (this.eventSource) {\n this.eventSource.close();\n }\n\n if (this.updateConfigurationIntervalId) {\n clearInterval(this.updateConfigurationIntervalId);\n }\n\n // --- Note ---\n // Same as targeting data interval we don't want to make failed configuration\n // retrieval recoverable\n try {\n this.updateConfigurationIntervalId = setInterval(\n () => this.updateClientConfiguration.bind(this)({ useCache }),\n this.settings.updateInterval,\n );\n } catch (err) {\n if (this.updateConfigurationIntervalId) {\n clearInterval(this.updateConfigurationIntervalId);\n }\n\n throw err;\n }\n }\n\n return Ok();\n }\n\n public addTargetingData(\n visitorCode: string,\n ...data: KameleoonDataType[]\n ): Result<void, KameleoonError> {\n if (!(visitorCode in this.targetingData)) {\n this.targetingData[visitorCode] = [];\n }\n\n data.forEach((dataItem) => {\n // --- Note ---\n // Previous check excludes the failure possibility\n (this.targetingData[visitorCode] as TargetingDataItemType[]).push({\n data: dataItem.data,\n lastActivityTime: Date.now(),\n });\n });\n\n // --- Note ---\n // `targetingData` should not refresh `lastUpdate` time\n const result = this.updateStorageData(this.lastUpdate);\n\n if (result.ok) {\n data.forEach((dataItem) => {\n if (!this.unsentTargetingData[visitorCode]) {\n this.unsentTargetingData[visitorCode] = [];\n }\n\n this.unsentTargetingData[visitorCode].push(dataItem);\n });\n }\n\n return result;\n }\n\n public getUnsentData(visitorCode: string): KameleoonDataType[] {\n const unsentDataItem = this.unsentTargetingData[visitorCode];\n\n if (!unsentDataItem) {\n return [];\n }\n\n return unsentDataItem;\n }\n\n public clearUnsentData(visitorCode: string): void {\n this.unsentTargetingData[visitorCode] = [];\n }\n\n public onConfigurationUpdate(callback: () => void): void {\n this.configurationUpdateCallback = callback;\n }\n\n get storedTargetingData(): TargetingDataType {\n return this.targetingData;\n }\n\n get experiments(): ExperimentItemType[] {\n return this.configurationData.experiments;\n }\n\n get featureFlags(): FeatureFlagType[] {\n return this.configurationData.featureFlags;\n }\n\n get configuration(): ConfigurationType {\n return this.configurationData.configuration;\n }\n\n private checkShouldUpdate(): boolean {\n const { featureFlags, experiments, configuration } = this.configurationData;\n const { updateInterval } = this.settings;\n\n if (!featureFlags.length && !experiments.length) {\n return true;\n }\n\n if (configuration.realTimeUpdate) {\n return true;\n }\n\n const lastUpdateTime = this.lastUpdate.getTime();\n const updateWindowEdge = Date.now() - updateInterval;\n\n return lastUpdateTime < updateWindowEdge;\n }\n\n private cleanupOutdatedTargetingData(data: TargetingDataType): void {\n const currentTime = Date.now();\n const resultTargetingData: TargetingDataType = { ...data };\n\n for (const [key, value] of Object.entries(resultTargetingData)) {\n if (value) {\n const resultValue = value.filter((item) => {\n const isDataExpired =\n item.lastActivityTime + this.targetingDataLifetime < currentTime;\n\n return !isDataExpired;\n });\n\n if (resultValue.length) {\n resultTargetingData[key] = resultValue;\n continue;\n }\n }\n\n delete resultTargetingData[key];\n }\n\n this.targetingData = resultTargetingData;\n // --- Note ---\n // `targetingData` should not refresh `lastUpdate` time\n this.updateStorageData(this.lastUpdate).throw();\n }\n\n private readStorageData(): void {\n const result = this.storage.read();\n\n if (result.ok) {\n const { kameleoonTargetingData, kameleoonConfiguration, lastUpdate } =\n result.data;\n\n this.configurationData = kameleoonConfiguration;\n this.targetingData = kameleoonTargetingData;\n this.lastUpdate = new Date(Date.parse(lastUpdate));\n }\n }\n\n private async updateClientConfiguration({\n useCache = false,\n timeStamp,\n }: UpdateClientConfigurationParameters = {}): Promise<\n Result<boolean, KameleoonError>\n > {\n // --- Note ---\n // if `externalClientConfiguration` is passed, fetching is disabled and passed config is used instead\n if (this.externalClientConfiguration) {\n // --- Note ---\n // `featureFlags` field is omitted (v1)\n // instead `featureFlagConfigurations` is used (v2)\n const { configuration, experiments, featureFlagConfigurations } =\n this.externalClientConfiguration;\n\n this.configurationData = {\n configuration,\n experiments,\n featureFlags: featureFlagConfigurations,\n };\n } else {\n const clientConfigurationResult =\n await this.requester.getClientConfiguration(timeStamp);\n\n if (!clientConfigurationResult.ok) {\n const { featureFlags, experiments } = this.configurationData;\n\n if (useCache && featureFlags.length && experiments.length) {\n return Ok(true);\n }\n\n return clientConfigurationResult;\n }\n\n // --- Note ---\n // `featureFlags` field is omitted (v1)\n // instead `featureFlagConfigurations` is used (v2)\n const { configuration, experiments, featureFlagConfigurations } =\n clientConfigurationResult.data;\n\n this.configurationData = {\n configuration,\n experiments,\n featureFlags: featureFlagConfigurations,\n };\n }\n\n const result = this.updateStorageData(new Date());\n\n if (!result.ok) {\n return result;\n }\n\n return Ok(true);\n }\n\n private updateStorageData(lastUpdate: Date): Result<void, KameleoonError> {\n const data: ClientDataType = {\n kameleoonTargetingData: this.targetingData,\n kameleoonConfiguration: this.configurationData,\n lastUpdate: lastUpdate.toString(),\n };\n\n return this.storage.write(data);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"campaignConfiguration.js","names":["a","b","c","Object","defineProperty","value","enumerable","configurable","writable","e","f","prototype","d","g","create","h","m","s","i","type","arg","call","forEach","_invoke","j","k","_typeof","r","resolve","__await","then","Error","o","method","delegate","x","sent","_sent","dispatchException","abrupt","done","iterator","return","TypeError","resultName","next","nextLoc","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","l","completion","reset","n","u","isNaN","length","_regeneratorRuntime","p","q","hasOwnProperty","t","Symbol","v","asyncIterator","w","toStringTag","wrap","y","z","getPrototypeOf","A","B","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","AsyncIterator","async","Promise","keys","reverse","pop","values","prev","charAt","slice","stop","rval","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_defineProperty","_toPrimitive","toPrimitive","String","Number","CampaignConfiguration","settings","storage","requester","externalClientConfiguration","targetingCleanupInterval","DEFAULT_CONFIGURATION_DATA","CLEANUP_TARGETING_DATA_INTERVAL","Milliseconds","Minute","Set","lastUpdate","Date","readStorageData","targetingDataLifetime","cleanupIntervalMinutes","targetingDataIntervalId","setInterval","cleanupOutdatedTargetingData","bind","err","clearInterval","externalEventSource","useCache","shouldUpdate","checkShouldUpdate","updateClientConfiguration","updateResult","ok","configurationData","configuration","realTimeUpdate","updateConfigurationIntervalId","eventSource","ExternalEventSource","siteCode","updateEventCallback","configurationUpdateCallback","open","close","updateInterval","t0","Ok","addTargetingData","visitorCode","targetingData","data","Array","dataItem","Utilities","isCustomData","customData","_objectSpread","lastActivityTime","now","hasCustomDataKey","KameleoonData","CustomData","index","hasDataKey","result","updateStorageData","unsentTargetingData","Map","localCustomDataIndexes","has","set","getUnsentData","clearUnsentData","onConfigurationUpdate","callback","get","experiments","featureFlags","lastUpdateTime","getTime","updateWindowEdge","currentTime","entries","_slicedToArray","kameleoonVisitorData","rest","_objectWithoutProperties","_excluded","isDataExpired","existingData","throw","read","kameleoonTargetingData","kameleoonConfiguration","parse","timeStamp","featureFlagConfigurations","getClientConfiguration","clientConfigurationResult","customDataLocalOnlyIndexes","toString","write","exports"],"sources":["../../src/campaignConfiguration/campaignConfiguration.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonError } from 'src/kameleoonError/kameleoonError';\nimport { ClientSettingsType } from 'src/clientSettings/types';\nimport { KameleoonData, KameleoonDataType } from 'src/kameleoonData';\nimport { Requester, GetClientConfigurationResultType } from 'src/requester';\nimport { TargetingDataType } from 'src/targeting';\nimport { IStorage, ClientDataType } from 'src/storage';\nimport {\n ExternalEventSource,\n IEventSource,\n IExternalEventSourceConstructor,\n} from 'src/eventSource';\nimport { Milliseconds } from 'src/types';\nimport {\n CLEANUP_TARGETING_DATA_INTERVAL,\n DEFAULT_CONFIGURATION_DATA,\n} from './constants';\nimport {\n CampaignConfigurationParametersType,\n ConfigurationDataType,\n ConfigurationType,\n ExperimentItemType,\n FeatureFlagType,\n UnsentTargetingDataType,\n UpdateClientConfigurationParameters,\n} from './types';\nimport { Utilities } from 'src/utilities';\nimport {\n ExistingCustomDataType,\n ExistingDataType,\n} from 'src/kameleoonData/types';\n\ninterface ICampaignConfiguration {\n initialize: (\n eventSource: IExternalEventSourceConstructor,\n useCache?: boolean,\n ) => Promise<Result<void, KameleoonError>>;\n addTargetingData: (\n visitorCode: string,\n ...data: KameleoonDataType[]\n ) => Result<void, KameleoonError>;\n getUnsentData: (\n visitorCode: string,\n ) => UnsentTargetingDataType[string] | undefined;\n clearUnsentData: (visitorCode: string) => void;\n onConfigurationUpdate: (callback: () => void) => void;\n readonly experiments: ExperimentItemType[];\n readonly storedTargetingData: TargetingDataType;\n readonly featureFlags: FeatureFlagType[];\n readonly configuration: ConfigurationType;\n readonly unsentDataVisitors: string[];\n}\n\nexport class CampaignConfiguration implements ICampaignConfiguration {\n private configurationUpdateCallback?: () => void;\n private updateConfigurationIntervalId: NodeJS.Timer | null = null;\n private targetingDataIntervalId: NodeJS.Timer | null = null;\n private unsentTargetingData: UnsentTargetingDataType = {};\n private targetingData: TargetingDataType = {};\n private configurationData: ConfigurationDataType = DEFAULT_CONFIGURATION_DATA;\n private settings: ClientSettingsType;\n private lastUpdate: Date;\n private storage: IStorage<ClientDataType>;\n private requester: Requester;\n private eventSource?: IEventSource;\n private externalClientConfiguration?: GetClientConfigurationResultType;\n private targetingDataLifetime: number =\n CLEANUP_TARGETING_DATA_INTERVAL * Milliseconds.Minute;\n private localCustomDataIndexes: Set<number> = new Set();\n\n constructor({\n settings,\n storage,\n requester,\n externalClientConfiguration,\n targetingCleanupInterval,\n }: CampaignConfigurationParametersType) {\n this.requester = requester;\n this.settings = settings;\n this.lastUpdate = new Date();\n this.storage = storage;\n this.readStorageData();\n this.externalClientConfiguration = externalClientConfiguration;\n\n if (targetingCleanupInterval) {\n this.targetingDataLifetime =\n targetingCleanupInterval * Milliseconds.Minute;\n\n const cleanupIntervalMinutes =\n targetingCleanupInterval < 0 ? 1 : targetingCleanupInterval;\n\n // --- Note ---\n // We can not make delayed code execution recoverable, as it might lead\n // to targeting data storage size overflow\n try {\n this.targetingDataIntervalId = setInterval(\n this.cleanupOutdatedTargetingData.bind(this),\n cleanupIntervalMinutes * Milliseconds.Minute,\n );\n } catch (err) {\n if (this.targetingDataIntervalId) {\n clearInterval(this.targetingDataIntervalId);\n }\n\n throw err;\n }\n }\n }\n\n public async initialize(\n externalEventSource: IExternalEventSourceConstructor,\n useCache?: boolean,\n ): Promise<Result<void, KameleoonError>> {\n const shouldUpdate = this.checkShouldUpdate();\n\n // --- Initial data fetch ---\n if (shouldUpdate) {\n const updateResult = await this.updateClientConfiguration({ useCache });\n\n if (!updateResult.ok) {\n return updateResult;\n }\n }\n\n // --- Note ---\n // Interval is cleaned up in case real time update\n // was activated while initialized client already exists\n if (\n this.configurationData.configuration.realTimeUpdate &&\n !this.externalClientConfiguration\n ) {\n if (this.updateConfigurationIntervalId) {\n clearInterval(this.updateConfigurationIntervalId);\n }\n\n this.eventSource = new ExternalEventSource(\n this.settings.siteCode,\n externalEventSource,\n );\n\n const updateEventCallback = (_timeStamp: number) => {\n this.updateClientConfiguration({ useCache });\n\n if (this.configurationUpdateCallback) {\n this.configurationUpdateCallback();\n }\n };\n\n this.eventSource.open(updateEventCallback);\n } else {\n // --- Note ---\n // Event Source is cleaned up in case real time update\n // was disabled while initialized client already exists\n if (this.eventSource) {\n this.eventSource.close();\n }\n\n if (this.updateConfigurationIntervalId) {\n clearInterval(this.updateConfigurationIntervalId);\n }\n\n // --- Note ---\n // Same as targeting data interval we don't want to make failed configuration\n // retrieval recoverable\n try {\n this.updateConfigurationIntervalId = setInterval(\n () => this.updateClientConfiguration.bind(this)({ useCache }),\n this.settings.updateInterval,\n );\n } catch (err) {\n if (this.updateConfigurationIntervalId) {\n clearInterval(this.updateConfigurationIntervalId);\n }\n\n throw err;\n }\n }\n\n return Ok();\n }\n\n public addTargetingData(\n visitorCode: string,\n ...data: KameleoonDataType[]\n ): Result<void, KameleoonError> {\n if (!(visitorCode in this.targetingData)) {\n this.targetingData[visitorCode] = {};\n }\n\n // --- Note ---\n // Following code is optimized for performance:\n // - We don't want to copy the whole object every time we add new data\n // - So we are manually checking the keys existence and mutating targeting data directly\n // - Numerous type casts are required because we can't narrow down nested `this.targetingData` types by using assertion functions\n data.forEach((dataItem) => {\n // --- Custom data case ---\n if (Utilities.isCustomData(dataItem)) {\n const customData = {\n ...dataItem.data,\n lastActivityTime: Date.now(),\n };\n const hasCustomDataKey =\n KameleoonData.CustomData in this.targetingData[visitorCode];\n\n // -- Change directly if `[key]` exists\n if (hasCustomDataKey) {\n (\n this.targetingData[visitorCode][\n customData.type\n ] as ExistingCustomDataType\n )[customData.index] = customData;\n } else {\n // -- Change data by creating new `[key]` and `[index]`\n this.targetingData[visitorCode] = {\n ...this.targetingData[visitorCode],\n [customData.type]: {\n ...this.targetingData[visitorCode][customData.type],\n [customData.index]: customData,\n },\n };\n }\n // --- Other data types case ---\n } else {\n const data = { ...dataItem.data, lastActivityTime: Date.now() };\n const hasDataKey =\n dataItem.data.type in this.targetingData[visitorCode];\n\n // -- Changing data by `[key]` if it exists\n if (hasDataKey) {\n (this.targetingData[visitorCode][\n dataItem.data.type\n ] as ExistingDataType<typeof dataItem.data.type>) = data;\n } else {\n // -- Change data by creating new `[key]`\n this.targetingData[visitorCode] = {\n ...this.targetingData[visitorCode],\n [dataItem.data.type]: data,\n };\n }\n }\n });\n\n // --- Note ---\n // `targetingData` should not refresh `lastUpdate` time\n const result = this.updateStorageData(this.lastUpdate);\n\n if (result.ok) {\n data.forEach((dataItem) => {\n // --- Note ---\n // We assume `this.unsentTargetingData[visitorCode]` is always defined further in the code\n if (!this.unsentTargetingData[visitorCode]) {\n this.unsentTargetingData[visitorCode] = new Map();\n }\n\n let key: KameleoonData | number;\n\n if (Utilities.isCustomData(dataItem)) {\n if (this.localCustomDataIndexes.has(dataItem.data.index)) {\n return;\n }\n\n key = dataItem.data.index;\n } else {\n key = dataItem.data.type;\n }\n\n this.unsentTargetingData[visitorCode]!.set(key, dataItem);\n });\n }\n\n return result;\n }\n\n public getUnsentData(\n visitorCode: string,\n ): UnsentTargetingDataType[string] | undefined {\n return this.unsentTargetingData[visitorCode];\n }\n\n public clearUnsentData(visitorCode: string): void {\n delete this.unsentTargetingData[visitorCode];\n }\n\n public onConfigurationUpdate(callback: () => void): void {\n this.configurationUpdateCallback = callback;\n }\n\n get unsentDataVisitors(): string[] {\n return Object.keys(this.unsentTargetingData);\n }\n\n get storedTargetingData(): TargetingDataType {\n return this.targetingData;\n }\n\n get experiments(): ExperimentItemType[] {\n return this.configurationData.experiments;\n }\n\n get featureFlags(): FeatureFlagType[] {\n return this.configurationData.featureFlags;\n }\n\n get configuration(): ConfigurationType {\n return this.configurationData.configuration;\n }\n\n private checkShouldUpdate(): boolean {\n const { featureFlags, experiments, configuration } = this.configurationData;\n const { updateInterval } = this.settings;\n\n if (!featureFlags.length && !experiments.length) {\n return true;\n }\n\n if (configuration.realTimeUpdate) {\n return true;\n }\n\n const lastUpdateTime = this.lastUpdate.getTime();\n const updateWindowEdge = Date.now() - updateInterval;\n\n return lastUpdateTime < updateWindowEdge;\n }\n\n private cleanupOutdatedTargetingData(): void {\n const currentTime = Date.now();\n\n for (const [visitorCode, kameleoonVisitorData] of Object.entries(\n this.targetingData,\n )) {\n const { customData, ...rest } = kameleoonVisitorData;\n\n if (customData) {\n for (const [index, dataItem] of Object.entries(customData)) {\n if (dataItem) {\n const isDataExpired =\n dataItem.lastActivityTime + this.targetingDataLifetime <\n currentTime;\n const existingData = kameleoonVisitorData[KameleoonData.CustomData];\n\n if (isDataExpired && existingData) {\n delete existingData[Number(index)];\n }\n\n if (existingData && !Object.keys(existingData).length) {\n delete kameleoonVisitorData[KameleoonData.CustomData];\n }\n }\n }\n }\n\n for (const [key, dataItem] of Object.entries(rest)) {\n const isDataExpired =\n dataItem.lastActivityTime + this.targetingDataLifetime < currentTime;\n\n if (isDataExpired) {\n delete kameleoonVisitorData[key as KameleoonData];\n }\n }\n\n if (!Object.keys(this.targetingData[visitorCode]).length) {\n delete this.targetingData[visitorCode];\n }\n }\n\n // --- Note ---\n // `targetingData` should not refresh `lastUpdate` time\n this.updateStorageData(this.lastUpdate).throw();\n }\n\n private readStorageData(): void {\n const result = this.storage.read();\n\n if (result.ok) {\n const { kameleoonTargetingData, kameleoonConfiguration, lastUpdate } =\n result.data;\n\n this.configurationData = kameleoonConfiguration;\n this.targetingData = kameleoonTargetingData;\n this.lastUpdate = new Date(Date.parse(lastUpdate));\n }\n }\n\n private async updateClientConfiguration({\n useCache = false,\n timeStamp,\n }: UpdateClientConfigurationParameters = {}): Promise<\n Result<boolean, KameleoonError>\n > {\n // --- Note ---\n // if `externalClientConfiguration` is passed, fetching is disabled and passed config is used instead\n if (this.externalClientConfiguration) {\n // --- Note ---\n // `featureFlags` field is omitted (v1)\n // instead `featureFlagConfigurations` is used (v2)\n const { configuration, experiments, featureFlagConfigurations } =\n this.externalClientConfiguration;\n\n this.configurationData = {\n configuration,\n experiments,\n featureFlags: featureFlagConfigurations,\n };\n } else {\n const clientConfigurationResult =\n await this.requester.getClientConfiguration(timeStamp);\n\n if (!clientConfigurationResult.ok) {\n const { featureFlags, experiments } = this.configurationData;\n\n if (useCache && featureFlags.length && experiments.length) {\n return Ok(true);\n }\n\n return clientConfigurationResult;\n }\n\n // --- Note ---\n // `featureFlags` field is omitted (v1)\n // instead `featureFlagConfigurations` is used (v2)\n const { configuration, experiments, featureFlagConfigurations } =\n clientConfigurationResult.data;\n\n this.localCustomDataIndexes = new Set(\n configuration.customDataLocalOnlyIndexes,\n );\n this.configurationData = {\n configuration,\n experiments,\n featureFlags: featureFlagConfigurations,\n };\n }\n\n const result = this.updateStorageData(new Date());\n\n if (!result.ok) {\n return result;\n }\n\n return Ok(true);\n }\n\n private updateStorageData(lastUpdate: Date): Result<void, KameleoonError> {\n const data: ClientDataType = {\n kameleoonTargetingData: this.targetingData,\n kameleoonConfiguration: this.configurationData,\n lastUpdate: lastUpdate.toString(),\n };\n\n return this.storage.write(data);\n }\n}\n"],"mappings":"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"}
@@ -1,14 +1,6 @@
1
+ import { ConfigurationDataType } from 'src/campaignConfiguration';
1
2
  /**
2
3
  * @constant default cleanup interval in minutes
3
4
  * */
4
5
  export declare const CLEANUP_TARGETING_DATA_INTERVAL = 30;
5
- export declare const DEFAULT_CAMPAIGN_CONFIGURATION: {
6
- targetingData: {};
7
- configurationData: {
8
- experiments: never[];
9
- featureFlags: never[];
10
- configuration: {
11
- realTimeUpdate: boolean;
12
- };
13
- };
14
- };
6
+ export declare const DEFAULT_CONFIGURATION_DATA: ConfigurationDataType;
@@ -1,23 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DEFAULT_CAMPAIGN_CONFIGURATION = exports.CLEANUP_TARGETING_DATA_INTERVAL = void 0;
7
- /**
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_CONFIGURATION_DATA=exports.CLEANUP_TARGETING_DATA_INTERVAL=void 0;/**
8
2
  * @constant default cleanup interval in minutes
9
- * */
10
- const CLEANUP_TARGETING_DATA_INTERVAL = 30;
11
- exports.CLEANUP_TARGETING_DATA_INTERVAL = CLEANUP_TARGETING_DATA_INTERVAL;
12
- const DEFAULT_CAMPAIGN_CONFIGURATION = {
13
- targetingData: {},
14
- configurationData: {
15
- experiments: [],
16
- featureFlags: [],
17
- configuration: {
18
- realTimeUpdate: false
19
- }
20
- }
21
- };
22
- exports.DEFAULT_CAMPAIGN_CONFIGURATION = DEFAULT_CAMPAIGN_CONFIGURATION;
3
+ * */var CLEANUP_TARGETING_DATA_INTERVAL=30;exports.CLEANUP_TARGETING_DATA_INTERVAL=30;var DEFAULT_CONFIGURATION_DATA={experiments:[],featureFlags:[],configuration:{realTimeUpdate:!1,customDataLocalOnlyIndexes:[]}};exports.DEFAULT_CONFIGURATION_DATA=DEFAULT_CONFIGURATION_DATA;
23
4
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["CLEANUP_TARGETING_DATA_INTERVAL","exports","DEFAULT_CAMPAIGN_CONFIGURATION","targetingData","configurationData","experiments","featureFlags","configuration","realTimeUpdate"],"sources":["../../src/campaignConfiguration/constants.ts"],"sourcesContent":["/**\n * @constant default cleanup interval in minutes\n * */\nexport const CLEANUP_TARGETING_DATA_INTERVAL = 30;\n\nexport const DEFAULT_CAMPAIGN_CONFIGURATION = {\n targetingData: {},\n configurationData: {\n experiments: [],\n featureFlags: [],\n configuration: {\n realTimeUpdate: false,\n },\n },\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACO,MAAMA,+BAA+B,GAAG,EAAE;AAACC,OAAA,CAAAD,+BAAA,GAAAA,+BAAA;AAE3C,MAAME,8BAA8B,GAAG;EAC5CC,aAAa,EAAE,CAAC,CAAC;EACjBC,iBAAiB,EAAE;IACjBC,WAAW,EAAE,EAAE;IACfC,YAAY,EAAE,EAAE;IAChBC,aAAa,EAAE;MACbC,cAAc,EAAE;IAClB;EACF;AACF,CAAC;AAACP,OAAA,CAAAC,8BAAA,GAAAA,8BAAA"}
1
+ {"version":3,"file":"constants.js","names":["CLEANUP_TARGETING_DATA_INTERVAL","exports","DEFAULT_CONFIGURATION_DATA","experiments","featureFlags","configuration","realTimeUpdate","customDataLocalOnlyIndexes"],"sources":["../../src/campaignConfiguration/constants.ts"],"sourcesContent":["import { ConfigurationDataType } from 'src/campaignConfiguration';\n\n/**\n * @constant default cleanup interval in minutes\n * */\nexport const CLEANUP_TARGETING_DATA_INTERVAL = 30;\n\nexport const DEFAULT_CONFIGURATION_DATA: ConfigurationDataType = {\n experiments: [],\n featureFlags: [],\n configuration: {\n realTimeUpdate: false,\n customDataLocalOnlyIndexes: [],\n },\n};\n"],"mappings":"sJAEA;AACA;AACA,KACO,GAAM,CAAAA,+BAA+B,CAAG,EAAE,CAACC,OAAA,CAAAD,+BAAA,IAE3C,GAAM,CAAAE,0BAAiD,CAAG,CAC/DC,WAAW,CAAE,EAAE,CACfC,YAAY,CAAE,EAAE,CAChBC,aAAa,CAAE,CACbC,cAAc,GAAO,CACrBC,0BAA0B,CAAE,EAC9B,CACF,CAAC,CAACN,OAAA,CAAAC,0BAAA,CAAAA,0BAAA"}
@@ -1,87 +1,2 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "CLEANUP_TARGETING_DATA_INTERVAL", {
7
- enumerable: true,
8
- get: function () {
9
- return _constants.CLEANUP_TARGETING_DATA_INTERVAL;
10
- }
11
- });
12
- Object.defineProperty(exports, "CampaignConfiguration", {
13
- enumerable: true,
14
- get: function () {
15
- return _campaignConfiguration.CampaignConfiguration;
16
- }
17
- });
18
- Object.defineProperty(exports, "CampaignConfigurationType", {
19
- enumerable: true,
20
- get: function () {
21
- return _types.CampaignConfigurationType;
22
- }
23
- });
24
- Object.defineProperty(exports, "ConfigurationDataType", {
25
- enumerable: true,
26
- get: function () {
27
- return _types.ConfigurationDataType;
28
- }
29
- });
30
- Object.defineProperty(exports, "ExperimentItemType", {
31
- enumerable: true,
32
- get: function () {
33
- return _types.ExperimentItemType;
34
- }
35
- });
36
- Object.defineProperty(exports, "FeatureFlagType", {
37
- enumerable: true,
38
- get: function () {
39
- return _types.FeatureFlagType;
40
- }
41
- });
42
- Object.defineProperty(exports, "FeatureVariableType", {
43
- enumerable: true,
44
- get: function () {
45
- return _types.FeatureVariableType;
46
- }
47
- });
48
- Object.defineProperty(exports, "JSONType", {
49
- enumerable: true,
50
- get: function () {
51
- return _types.JSONType;
52
- }
53
- });
54
- Object.defineProperty(exports, "JSONValue", {
55
- enumerable: true,
56
- get: function () {
57
- return _types.JSONValue;
58
- }
59
- });
60
- Object.defineProperty(exports, "RespoolTimeType", {
61
- enumerable: true,
62
- get: function () {
63
- return _types.RespoolTimeType;
64
- }
65
- });
66
- Object.defineProperty(exports, "RuleItemType", {
67
- enumerable: true,
68
- get: function () {
69
- return _types.RuleItemType;
70
- }
71
- });
72
- Object.defineProperty(exports, "RuleType", {
73
- enumerable: true,
74
- get: function () {
75
- return _types.RuleType;
76
- }
77
- });
78
- Object.defineProperty(exports, "VariationByExpositionType", {
79
- enumerable: true,
80
- get: function () {
81
- return _types.VariationByExpositionType;
82
- }
83
- });
84
- var _types = require("./types");
85
- var _campaignConfiguration = require("./campaignConfiguration");
86
- var _constants = require("./constants");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"CLEANUP_TARGETING_DATA_INTERVAL",{enumerable:!0,get:function get(){return _constants.CLEANUP_TARGETING_DATA_INTERVAL}}),Object.defineProperty(exports,"CampaignConfiguration",{enumerable:!0,get:function get(){return _campaignConfiguration.CampaignConfiguration}}),Object.defineProperty(exports,"CampaignConfigurationType",{enumerable:!0,get:function get(){return _types.CampaignConfigurationType}}),Object.defineProperty(exports,"ConfigurationDataType",{enumerable:!0,get:function get(){return _types.ConfigurationDataType}}),Object.defineProperty(exports,"ExperimentItemType",{enumerable:!0,get:function get(){return _types.ExperimentItemType}}),Object.defineProperty(exports,"FeatureFlagType",{enumerable:!0,get:function get(){return _types.FeatureFlagType}}),Object.defineProperty(exports,"FeatureVariableType",{enumerable:!0,get:function get(){return _types.FeatureVariableType}}),Object.defineProperty(exports,"JSONType",{enumerable:!0,get:function get(){return _types.JSONType}}),Object.defineProperty(exports,"JSONValue",{enumerable:!0,get:function get(){return _types.JSONValue}}),Object.defineProperty(exports,"RespoolTimeType",{enumerable:!0,get:function get(){return _types.RespoolTimeType}}),Object.defineProperty(exports,"RuleItemType",{enumerable:!0,get:function get(){return _types.RuleItemType}}),Object.defineProperty(exports,"RuleType",{enumerable:!0,get:function get(){return _types.RuleType}}),Object.defineProperty(exports,"VariationByExpositionType",{enumerable:!0,get:function get(){return _types.VariationByExpositionType}});var _types=require("./types"),_campaignConfiguration=require("./campaignConfiguration"),_constants=require("./constants");
87
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_types","require","_campaignConfiguration","_constants"],"sources":["../../src/campaignConfiguration/index.ts"],"sourcesContent":["export {\n ConfigurationDataType,\n CampaignConfigurationType,\n VariationByExpositionType,\n FeatureVariableType,\n ExperimentItemType,\n RespoolTimeType,\n FeatureFlagType,\n RuleItemType,\n JSONValue,\n RuleType,\n JSONType,\n} from './types';\nexport { CampaignConfiguration } from './campaignConfiguration';\nexport { CLEANUP_TARGETING_DATA_INTERVAL } from './constants';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAaA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/campaignConfiguration/index.ts"],"sourcesContent":["export {\n ConfigurationDataType,\n CampaignConfigurationType,\n VariationByExpositionType,\n FeatureVariableType,\n ExperimentItemType,\n RespoolTimeType,\n FeatureFlagType,\n RuleItemType,\n JSONValue,\n RuleType,\n JSONType,\n} from './types';\nexport { CampaignConfiguration } from './campaignConfiguration';\nexport { CLEANUP_TARGETING_DATA_INTERVAL } from './constants';\n"],"mappings":""}
@@ -1,9 +1,9 @@
1
- import { ClientSettingsType } from '../clientSettings';
2
- import { KameleoonDataType } from '../kameleoonData';
3
- import { Requester, GetClientConfigurationResultType } from '../requester';
4
- import { ClientDataType, IStorage } from '../storage';
5
- import { SegmentType, TargetingDataType } from '../targeting';
6
- import { VariableType } from '../types';
1
+ import { ClientSettingsType } from 'src/clientSettings';
2
+ import { KameleoonData, KameleoonDataType } from 'src/kameleoonData';
3
+ import { Requester, GetClientConfigurationResultType } from 'src/requester';
4
+ import { ClientDataType, IStorage } from 'src/storage';
5
+ import { SegmentType, TargetingDataType } from 'src/targeting';
6
+ import { VariableType } from 'src/types';
7
7
  export type UpdateClientConfigurationParameters = {
8
8
  timeStamp?: number;
9
9
  useCache?: boolean;
@@ -117,13 +117,14 @@ export type ConfigurationDataType = {
117
117
  };
118
118
  export type ConfigurationType = {
119
119
  realTimeUpdate: boolean;
120
+ customDataLocalOnlyIndexes: number[];
120
121
  };
121
122
  export type CampaignConfigurationType = {
122
123
  targetingData: TargetingDataType;
123
124
  configurationData: ConfigurationDataType;
124
125
  };
125
126
  export type UnsentTargetingDataType = {
126
- [visitorCode: string]: KameleoonDataType[];
127
+ [visitorCode: string]: Map<KameleoonData | number, KameleoonDataType> | undefined;
127
128
  };
128
129
  export type CampaignConfigurationParametersType = {
129
130
  settings: ClientSettingsType;
@@ -1,55 +1,2 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RuleType = exports.FeatureStatus = exports.FeatureFlagSdkLanguageType = exports.ExperimentType = exports.ExperimentStatus = void 0;
7
- let ExperimentType = /*#__PURE__*/function (ExperimentType) {
8
- ExperimentType["CLASSIC"] = "CLASSIC";
9
- ExperimentType["SERVER_SIDE"] = "SERVER_SIDE";
10
- ExperimentType["DEVELOPER"] = "DEVELOPER";
11
- ExperimentType["MVT"] = "MVT";
12
- ExperimentType["HYBRID"] = "HYBRID";
13
- return ExperimentType;
14
- }({});
15
- exports.ExperimentType = ExperimentType;
16
- let RuleType = /*#__PURE__*/function (RuleType) {
17
- RuleType["PROGRESSIVE_DELIVERY"] = "PROGRESSIVE_DELIVERY";
18
- RuleType["TARGETED_DELIVERY"] = "TARGETED_DELIVERY";
19
- RuleType["EXPERIMENTATION"] = "EXPERIMENTATION";
20
- return RuleType;
21
- }({});
22
- exports.RuleType = RuleType;
23
- let FeatureFlagSdkLanguageType = /*#__PURE__*/function (FeatureFlagSdkLanguageType) {
24
- FeatureFlagSdkLanguageType["ANDROID"] = "ANDROID";
25
- FeatureFlagSdkLanguageType["SWIFT"] = "SWIFT";
26
- FeatureFlagSdkLanguageType["JAVA"] = "JAVA";
27
- FeatureFlagSdkLanguageType["CSHARP"] = "CSHARP";
28
- FeatureFlagSdkLanguageType["NODEJS"] = "NODEJS";
29
- FeatureFlagSdkLanguageType["PHP"] = "PHP";
30
- FeatureFlagSdkLanguageType["RUBY"] = "RUBY";
31
- FeatureFlagSdkLanguageType["GO"] = "GO";
32
- FeatureFlagSdkLanguageType["FLUTTER"] = "FLUTTER";
33
- FeatureFlagSdkLanguageType["REACTJS"] = "REACTJS";
34
- return FeatureFlagSdkLanguageType;
35
- }({});
36
- exports.FeatureFlagSdkLanguageType = FeatureFlagSdkLanguageType;
37
- let FeatureStatus = /*#__PURE__*/function (FeatureStatus) {
38
- FeatureStatus["ACTIVATED"] = "ACTIVATED";
39
- FeatureStatus["DEACTIVATED"] = "DEACTIVATED";
40
- FeatureStatus["SCHEDULED"] = "SCHEDULED";
41
- return FeatureStatus;
42
- }({});
43
- exports.FeatureStatus = FeatureStatus;
44
- let ExperimentStatus = /*#__PURE__*/function (ExperimentStatus) {
45
- ExperimentStatus["DRAFT"] = "DRAFT";
46
- ExperimentStatus["ACTIVE"] = "ACTIVE";
47
- ExperimentStatus["PAUSED"] = "PAUSED";
48
- ExperimentStatus["SCHEDULED"] = "SCHEDULED";
49
- ExperimentStatus["STOPPED"] = "STOPPED";
50
- ExperimentStatus["USED_AS_PERSONALIZATION"] = "USED_AS_PERSONALIZATION";
51
- ExperimentStatus["DEVIATED"] = "DEVIATED";
52
- return ExperimentStatus;
53
- }({});
54
- exports.ExperimentStatus = ExperimentStatus;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RuleType=exports.FeatureStatus=exports.FeatureFlagSdkLanguageType=exports.ExperimentType=exports.ExperimentStatus=void 0;var ExperimentType=/*#__PURE__*/function(a){return a.CLASSIC="CLASSIC",a.SERVER_SIDE="SERVER_SIDE",a.DEVELOPER="DEVELOPER",a.MVT="MVT",a.HYBRID="HYBRID",a}({});exports.ExperimentType=ExperimentType;var RuleType=/*#__PURE__*/function(a){return a.PROGRESSIVE_DELIVERY="PROGRESSIVE_DELIVERY",a.TARGETED_DELIVERY="TARGETED_DELIVERY",a.EXPERIMENTATION="EXPERIMENTATION",a}({});exports.RuleType=RuleType;var FeatureFlagSdkLanguageType=/*#__PURE__*/function(a){return a.ANDROID="ANDROID",a.SWIFT="SWIFT",a.JAVA="JAVA",a.CSHARP="CSHARP",a.NODEJS="NODEJS",a.PHP="PHP",a.RUBY="RUBY",a.GO="GO",a.FLUTTER="FLUTTER",a.REACTJS="REACTJS",a}({});exports.FeatureFlagSdkLanguageType=FeatureFlagSdkLanguageType;var FeatureStatus=/*#__PURE__*/function(a){return a.ACTIVATED="ACTIVATED",a.DEACTIVATED="DEACTIVATED",a.SCHEDULED="SCHEDULED",a}({});exports.FeatureStatus=FeatureStatus;var ExperimentStatus=/*#__PURE__*/function(a){return a.DRAFT="DRAFT",a.ACTIVE="ACTIVE",a.PAUSED="PAUSED",a.SCHEDULED="SCHEDULED",a.STOPPED="STOPPED",a.USED_AS_PERSONALIZATION="USED_AS_PERSONALIZATION",a.DEVIATED="DEVIATED",a}({});exports.ExperimentStatus=ExperimentStatus;
55
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["ExperimentType","exports","RuleType","FeatureFlagSdkLanguageType","FeatureStatus","ExperimentStatus"],"sources":["../../src/campaignConfiguration/types.ts"],"sourcesContent":["import { ClientSettingsType } from '../clientSettings';\nimport { KameleoonDataType } from '../kameleoonData';\nimport { Requester, GetClientConfigurationResultType } from '../requester';\nimport { ClientDataType, IStorage } from '../storage';\nimport { SegmentType, TargetingDataType } from '../targeting';\nimport { VariableType } from '../types';\n\nexport type UpdateClientConfigurationParameters = {\n timeStamp?: number;\n useCache?: boolean;\n};\n\nexport type ScheduleType = {\n dateStart: string;\n dateEnd: string;\n};\n\nexport type JSONValue =\n | string\n | number\n | boolean\n | { [x: string]: JSONValue }\n | JSONValue[];\n\nexport type JSONType = Record<string | number | symbol, JSONValue> | null;\n\nexport enum ExperimentType {\n CLASSIC = 'CLASSIC',\n SERVER_SIDE = 'SERVER_SIDE',\n DEVELOPER = 'DEVELOPER',\n MVT = 'MVT',\n HYBRID = 'HYBRID',\n}\n\nexport enum RuleType {\n PROGRESSIVE_DELIVERY = 'PROGRESSIVE_DELIVERY',\n TARGETED_DELIVERY = 'TARGETED_DELIVERY',\n EXPERIMENTATION = 'EXPERIMENTATION',\n}\n\nexport enum FeatureFlagSdkLanguageType {\n ANDROID = 'ANDROID',\n SWIFT = 'SWIFT',\n JAVA = 'JAVA',\n CSHARP = 'CSHARP',\n NODEJS = 'NODEJS',\n PHP = 'PHP',\n RUBY = 'RUBY',\n GO = 'GO',\n FLUTTER = 'FLUTTER',\n REACTJS = 'REACTJS',\n}\n\nexport enum FeatureStatus {\n ACTIVATED = 'ACTIVATED',\n DEACTIVATED = 'DEACTIVATED',\n SCHEDULED = 'SCHEDULED',\n}\n\nexport type ExperimentItemType = {\n id: string;\n name: string;\n type: ExperimentType;\n siteId: string;\n siteCode: string;\n status: ExperimentStatus;\n siteEnabled: boolean;\n variations: ExperimentVariationType[];\n deviations: DeviationType[];\n respoolTime: RespoolTimeType[];\n segment: SegmentType | null;\n};\n\nexport type ExperimentVariationType = {\n id: string;\n customJson: string;\n};\n\nexport type DeviationType = {\n variationId: string;\n value: number;\n};\n\nexport type RespoolTimeType = {\n variationId: string;\n value: number;\n};\n\nexport enum ExperimentStatus {\n DRAFT = 'DRAFT',\n ACTIVE = 'ACTIVE',\n PAUSED = 'PAUSED',\n SCHEDULED = 'SCHEDULED',\n STOPPED = 'STOPPED',\n USED_AS_PERSONALIZATION = 'USED_AS_PERSONALIZATION',\n DEVIATED = 'DEVIATED',\n}\n\nexport type FeatureFlagType = {\n id: number;\n featureKey: string;\n variations: FeatureVariationType[];\n defaultVariationKey: string;\n rules: RuleItemType[];\n};\n\nexport type FeatureVariationType = {\n key: string;\n variables: FeatureVariableType[];\n};\n\nexport type FeatureVariableType = {\n key: string;\n type: VariableType;\n value: string | number | boolean;\n};\n\nexport type RuleItemType = {\n type: RuleType;\n id: number;\n respoolTime: number | null;\n order: number;\n exposition: number;\n experimentId: number;\n variationByExposition: VariationByExpositionType[];\n segment: SegmentType | null;\n};\n\nexport type VariationByExpositionType = {\n variationKey: string;\n variationId: number | null;\n exposition: number;\n};\n\nexport type ConfigurationDataType = {\n experiments: ExperimentItemType[];\n featureFlags: FeatureFlagType[];\n configuration: ConfigurationType;\n};\n\nexport type ConfigurationType = {\n realTimeUpdate: boolean;\n};\n\nexport type CampaignConfigurationType = {\n targetingData: TargetingDataType;\n configurationData: ConfigurationDataType;\n};\n\nexport type UnsentTargetingDataType = {\n [visitorCode: string]: KameleoonDataType[];\n};\n\nexport type CampaignConfigurationParametersType = {\n settings: ClientSettingsType;\n storage: IStorage<ClientDataType>;\n requester: Requester;\n externalClientConfiguration?: GetClientConfigurationResultType;\n targetingCleanupInterval?: number;\n};\n"],"mappings":";;;;;;IA0BYA,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAAAC,OAAA,CAAAD,cAAA,GAAAA,cAAA;AAAA,IAQdE,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAAAD,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAAA,IAMRC,0BAA0B,0BAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAAA,OAA1BA,0BAA0B;AAAA;AAAAF,OAAA,CAAAE,0BAAA,GAAAA,0BAAA;AAAA,IAa1BC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAAAH,OAAA,CAAAG,aAAA,GAAAA,aAAA;AAAA,IAmCbC,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAAAJ,OAAA,CAAAI,gBAAA,GAAAA,gBAAA"}
1
+ {"version":3,"file":"types.js","names":["ExperimentType","CLASSIC","SERVER_SIDE","DEVELOPER","MVT","HYBRID","exports","RuleType","PROGRESSIVE_DELIVERY","TARGETED_DELIVERY","EXPERIMENTATION","FeatureFlagSdkLanguageType","ANDROID","SWIFT","JAVA","CSHARP","NODEJS","PHP","RUBY","GO","FLUTTER","REACTJS","FeatureStatus","ACTIVATED","DEACTIVATED","SCHEDULED","ExperimentStatus","DRAFT","ACTIVE","PAUSED","STOPPED","USED_AS_PERSONALIZATION","DEVIATED"],"sources":["../../src/campaignConfiguration/types.ts"],"sourcesContent":["import { ClientSettingsType } from 'src/clientSettings';\nimport { KameleoonData, KameleoonDataType } from 'src/kameleoonData';\nimport { Requester, GetClientConfigurationResultType } from 'src/requester';\nimport { ClientDataType, IStorage } from 'src/storage';\nimport { SegmentType, TargetingDataType } from 'src/targeting';\nimport { VariableType } from 'src/types';\n\nexport type UpdateClientConfigurationParameters = {\n timeStamp?: number;\n useCache?: boolean;\n};\n\nexport type ScheduleType = {\n dateStart: string;\n dateEnd: string;\n};\n\nexport type JSONValue =\n | string\n | number\n | boolean\n | { [x: string]: JSONValue }\n | JSONValue[];\n\nexport type JSONType = Record<string | number | symbol, JSONValue> | null;\n\nexport enum ExperimentType {\n CLASSIC = 'CLASSIC',\n SERVER_SIDE = 'SERVER_SIDE',\n DEVELOPER = 'DEVELOPER',\n MVT = 'MVT',\n HYBRID = 'HYBRID',\n}\n\nexport enum RuleType {\n PROGRESSIVE_DELIVERY = 'PROGRESSIVE_DELIVERY',\n TARGETED_DELIVERY = 'TARGETED_DELIVERY',\n EXPERIMENTATION = 'EXPERIMENTATION',\n}\n\nexport enum FeatureFlagSdkLanguageType {\n ANDROID = 'ANDROID',\n SWIFT = 'SWIFT',\n JAVA = 'JAVA',\n CSHARP = 'CSHARP',\n NODEJS = 'NODEJS',\n PHP = 'PHP',\n RUBY = 'RUBY',\n GO = 'GO',\n FLUTTER = 'FLUTTER',\n REACTJS = 'REACTJS',\n}\n\nexport enum FeatureStatus {\n ACTIVATED = 'ACTIVATED',\n DEACTIVATED = 'DEACTIVATED',\n SCHEDULED = 'SCHEDULED',\n}\n\nexport type ExperimentItemType = {\n id: string;\n name: string;\n type: ExperimentType;\n siteId: string;\n siteCode: string;\n status: ExperimentStatus;\n siteEnabled: boolean;\n variations: ExperimentVariationType[];\n deviations: DeviationType[];\n respoolTime: RespoolTimeType[];\n segment: SegmentType | null;\n};\n\nexport type ExperimentVariationType = {\n id: string;\n customJson: string;\n};\n\nexport type DeviationType = {\n variationId: string;\n value: number;\n};\n\nexport type RespoolTimeType = {\n variationId: string;\n value: number;\n};\n\nexport enum ExperimentStatus {\n DRAFT = 'DRAFT',\n ACTIVE = 'ACTIVE',\n PAUSED = 'PAUSED',\n SCHEDULED = 'SCHEDULED',\n STOPPED = 'STOPPED',\n USED_AS_PERSONALIZATION = 'USED_AS_PERSONALIZATION',\n DEVIATED = 'DEVIATED',\n}\n\nexport type FeatureFlagType = {\n id: number;\n featureKey: string;\n variations: FeatureVariationType[];\n defaultVariationKey: string;\n rules: RuleItemType[];\n};\n\nexport type FeatureVariationType = {\n key: string;\n variables: FeatureVariableType[];\n};\n\nexport type FeatureVariableType = {\n key: string;\n type: VariableType;\n value: string | number | boolean;\n};\n\nexport type RuleItemType = {\n type: RuleType;\n id: number;\n respoolTime: number | null;\n order: number;\n exposition: number;\n experimentId: number;\n variationByExposition: VariationByExpositionType[];\n segment: SegmentType | null;\n};\n\nexport type VariationByExpositionType = {\n variationKey: string;\n variationId: number | null;\n exposition: number;\n};\n\nexport type ConfigurationDataType = {\n experiments: ExperimentItemType[];\n featureFlags: FeatureFlagType[];\n configuration: ConfigurationType;\n};\n\nexport type ConfigurationType = {\n realTimeUpdate: boolean;\n customDataLocalOnlyIndexes: number[];\n};\n\nexport type CampaignConfigurationType = {\n targetingData: TargetingDataType;\n configurationData: ConfigurationDataType;\n};\n\nexport type UnsentTargetingDataType = {\n [visitorCode: string]:\n | Map<KameleoonData | number, KameleoonDataType>\n | undefined;\n};\n\nexport type CampaignConfigurationParametersType = {\n settings: ClientSettingsType;\n storage: IStorage<ClientDataType>;\n requester: Requester;\n externalClientConfiguration?: GetClientConfigurationResultType;\n targetingCleanupInterval?: number;\n};\n"],"mappings":"wMA0BY,CAAAA,cAAc,uBAAdA,CAAc,QAAd,CAAAA,CAAc,CAAAC,OAAA,WAAdD,CAAc,CAAAE,WAAA,eAAdF,CAAc,CAAAG,SAAA,aAAdH,CAAc,CAAAI,GAAA,OAAdJ,CAAc,CAAAK,MAAA,UAAdL,CAAc,MAAAM,OAAA,CAAAN,cAAA,CAAAA,cAAA,IAQd,CAAAO,QAAQ,uBAARA,CAAQ,QAAR,CAAAA,CAAQ,CAAAC,oBAAA,wBAARD,CAAQ,CAAAE,iBAAA,qBAARF,CAAQ,CAAAG,eAAA,mBAARH,CAAQ,MAAAD,OAAA,CAAAC,QAAA,CAAAA,QAAA,IAMR,CAAAI,0BAA0B,uBAA1BA,CAA0B,QAA1B,CAAAA,CAA0B,CAAAC,OAAA,WAA1BD,CAA0B,CAAAE,KAAA,SAA1BF,CAA0B,CAAAG,IAAA,QAA1BH,CAA0B,CAAAI,MAAA,UAA1BJ,CAA0B,CAAAK,MAAA,UAA1BL,CAA0B,CAAAM,GAAA,OAA1BN,CAA0B,CAAAO,IAAA,QAA1BP,CAA0B,CAAAQ,EAAA,MAA1BR,CAA0B,CAAAS,OAAA,WAA1BT,CAA0B,CAAAU,OAAA,WAA1BV,CAA0B,MAAAL,OAAA,CAAAK,0BAAA,CAAAA,0BAAA,IAa1B,CAAAW,aAAa,uBAAbA,CAAa,QAAb,CAAAA,CAAa,CAAAC,SAAA,aAAbD,CAAa,CAAAE,WAAA,eAAbF,CAAa,CAAAG,SAAA,aAAbH,CAAa,MAAAhB,OAAA,CAAAgB,aAAA,CAAAA,aAAA,IAmCb,CAAAI,gBAAgB,uBAAhBA,CAAgB,QAAhB,CAAAA,CAAgB,CAAAC,KAAA,SAAhBD,CAAgB,CAAAE,MAAA,UAAhBF,CAAgB,CAAAG,MAAA,UAAhBH,CAAgB,CAAAD,SAAA,aAAhBC,CAAgB,CAAAI,OAAA,WAAhBJ,CAAgB,CAAAK,uBAAA,2BAAhBL,CAAgB,CAAAM,QAAA,YAAhBN,CAAgB,MAAApB,OAAA,CAAAoB,gBAAA,CAAAA,gBAAA"}
@@ -1,4 +1,4 @@
1
- import { SDKConfigurationType } from '../types';
1
+ import { SDKConfigurationType } from 'src/types';
2
2
  import { ClientSettingsType } from './types';
3
3
  export interface IClientSettings {
4
4
  readonly settings: ClientSettingsType;
@@ -1,36 +1,2 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ClientSettings = void 0;
7
- var _types = require("../types");
8
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
10
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
- class ClientSettings {
12
- constructor(siteCode, configuration) {
13
- _defineProperty(this, "updateInterval", 60 * _types.Milliseconds.Minute);
14
- _defineProperty(this, "environment", void 0);
15
- _defineProperty(this, "siteCode", void 0);
16
- this.siteCode = siteCode;
17
- if (configuration?.environment) {
18
- this.environment = configuration.environment;
19
- }
20
- if (configuration?.updateInterval) {
21
- if (configuration.updateInterval < 1) {
22
- this.updateInterval = 1 * _types.Milliseconds.Minute;
23
- }
24
- this.updateInterval = configuration.updateInterval * _types.Milliseconds.Minute;
25
- }
26
- }
27
- get settings() {
28
- return {
29
- updateInterval: this.updateInterval,
30
- environment: this.environment,
31
- siteCode: this.siteCode
32
- };
33
- }
34
- }
35
- exports.ClientSettings = ClientSettings;
1
+ "use strict";var _types=require("../types");Object.defineProperty(exports,"__esModule",{value:!0}),exports.ClientSettings=void 0;function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){var d=c.call(a,b||"default");if("object"!==_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}var ClientSettings=/*#__PURE__*/function(){function a(b,c){_classCallCheck(this,a),_defineProperty(this,"updateInterval",60*_types.Milliseconds.Minute),_defineProperty(this,"environment",void 0),_defineProperty(this,"siteCode",void 0),this.siteCode=b,null!==c&&void 0!==c&&c.environment&&(this.environment=c.environment),null!==c&&void 0!==c&&c.updateInterval&&(1>c.updateInterval&&(this.updateInterval=1*_types.Milliseconds.Minute),this.updateInterval=c.updateInterval*_types.Milliseconds.Minute)}return _createClass(a,[{key:"settings",get:function get(){return{updateInterval:this.updateInterval,environment:this.environment,siteCode:this.siteCode}}}]),a}();exports.ClientSettings=ClientSettings;
36
2
  //# sourceMappingURL=clientSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientSettings.js","names":["_types","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ClientSettings","constructor","siteCode","configuration","Milliseconds","Minute","environment","updateInterval","settings","exports"],"sources":["../../src/clientSettings/clientSettings.ts"],"sourcesContent":["import { Environment, Milliseconds, SDKConfigurationType } from '../types';\nimport { ClientSettingsType } from './types';\n\nexport interface IClientSettings {\n readonly settings: ClientSettingsType;\n}\n\nexport class ClientSettings implements IClientSettings {\n private updateInterval: number = 60 * Milliseconds.Minute;\n private environment?: Environment;\n private siteCode: string;\n\n constructor(siteCode: string, configuration?: Partial<SDKConfigurationType>) {\n this.siteCode = siteCode;\n\n if (configuration?.environment) {\n this.environment = configuration.environment;\n }\n\n if (configuration?.updateInterval) {\n if (configuration.updateInterval < 1) {\n this.updateInterval = 1 * Milliseconds.Minute;\n }\n\n this.updateInterval = configuration.updateInterval * Milliseconds.Minute;\n }\n }\n\n get settings(): ClientSettingsType {\n return {\n updateInterval: this.updateInterval,\n environment: this.environment,\n siteCode: this.siteCode,\n };\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAA2E,SAAAC,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAOpE,MAAMU,cAAc,CAA4B;EAKrDC,WAAWA,CAACC,QAAgB,EAAEC,aAA6C,EAAE;IAAA1B,eAAA,yBAJ5C,EAAE,GAAG2B,mBAAY,CAACC,MAAM;IAAA5B,eAAA;IAAAA,eAAA;IAKvD,IAAI,CAACyB,QAAQ,GAAGA,QAAQ;IAExB,IAAIC,aAAa,EAAEG,WAAW,EAAE;MAC9B,IAAI,CAACA,WAAW,GAAGH,aAAa,CAACG,WAAW;IAC9C;IAEA,IAAIH,aAAa,EAAEI,cAAc,EAAE;MACjC,IAAIJ,aAAa,CAACI,cAAc,GAAG,CAAC,EAAE;QACpC,IAAI,CAACA,cAAc,GAAG,CAAC,GAAGH,mBAAY,CAACC,MAAM;MAC/C;MAEA,IAAI,CAACE,cAAc,GAAGJ,aAAa,CAACI,cAAc,GAAGH,mBAAY,CAACC,MAAM;IAC1E;EACF;EAEA,IAAIG,QAAQA,CAAA,EAAuB;IACjC,OAAO;MACLD,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCD,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BJ,QAAQ,EAAE,IAAI,CAACA;IACjB,CAAC;EACH;AACF;AAACO,OAAA,CAAAT,cAAA,GAAAA,cAAA"}
1
+ {"version":3,"file":"clientSettings.js","names":["_types","require","Object","defineProperty","exports","value","ClientSettings","_typeof","a","Symbol","iterator","constructor","prototype","_classCallCheck","b","TypeError","_defineProperties","c","d","length","enumerable","configurable","writable","_toPropertyKey","key","_createClass","_defineProperty","_toPrimitive","toPrimitive","call","String","Number","siteCode","configuration","Milliseconds","Minute","environment","updateInterval","get"],"sources":["../../src/clientSettings/clientSettings.ts"],"sourcesContent":["import { Environment, Milliseconds, SDKConfigurationType } from 'src/types';\nimport { ClientSettingsType } from './types';\n\nexport interface IClientSettings {\n readonly settings: ClientSettingsType;\n}\n\nexport class ClientSettings implements IClientSettings {\n private updateInterval: number = 60 * Milliseconds.Minute;\n private environment?: Environment;\n private siteCode: string;\n\n constructor(siteCode: string, configuration?: Partial<SDKConfigurationType>) {\n this.siteCode = siteCode;\n\n if (configuration?.environment) {\n this.environment = configuration.environment;\n }\n\n if (configuration?.updateInterval) {\n if (configuration.updateInterval < 1) {\n this.updateInterval = 1 * Milliseconds.Minute;\n }\n\n this.updateInterval = configuration.updateInterval * Milliseconds.Minute;\n }\n }\n\n get settings(): ClientSettingsType {\n return {\n updateInterval: this.updateInterval,\n environment: this.environment,\n siteCode: this.siteCode,\n };\n }\n}\n"],"mappings":"aAAA,IAAAA,MAAA,CAAAC,OAAA,aAA4EC,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAD,OAAA,CAAAE,cAAA,iBAAAC,QAAAC,CAAA,mCAAAD,OAAA,oBAAAE,MAAA,mBAAAA,MAAA,CAAAC,QAAA,UAAAF,CAAA,gBAAAA,CAAA,WAAAA,CAAA,SAAAA,CAAA,qBAAAC,MAAA,EAAAD,CAAA,CAAAG,WAAA,GAAAF,MAAA,EAAAD,CAAA,GAAAC,MAAA,CAAAG,SAAA,iBAAAJ,CAAA,EAAAD,OAAA,CAAAC,CAAA,WAAAK,gBAAAL,CAAA,CAAAM,CAAA,OAAAN,CAAA,YAAAM,CAAA,YAAAC,SAAA,+CAAAC,kBAAAR,CAAA,CAAAM,CAAA,UAAAG,CAAA,CAAAC,CAAA,GAAAA,CAAA,CAAAJ,CAAA,CAAAK,MAAA,CAAAD,CAAA,GAAAD,CAAA,CAAAH,CAAA,CAAAI,CAAA,EAAAD,CAAA,CAAAG,UAAA,CAAAH,CAAA,CAAAG,UAAA,KAAAH,CAAA,CAAAI,YAAA,cAAAJ,CAAA,GAAAA,CAAA,CAAAK,QAAA,KAAApB,MAAA,CAAAC,cAAA,CAAAK,CAAA,CAAAe,cAAA,CAAAN,CAAA,CAAAO,GAAA,EAAAP,CAAA,WAAAQ,aAAAjB,CAAA,CAAAM,CAAA,CAAAG,CAAA,SAAAH,CAAA,EAAAE,iBAAA,CAAAR,CAAA,CAAAI,SAAA,CAAAE,CAAA,EAAAG,CAAA,EAAAD,iBAAA,CAAAR,CAAA,CAAAS,CAAA,EAAAf,MAAA,CAAAC,cAAA,CAAAK,CAAA,cAAAc,QAAA,MAAAd,CAAA,UAAAkB,gBAAAlB,CAAA,CAAAM,CAAA,CAAAG,CAAA,SAAAH,CAAA,CAAAS,cAAA,CAAAT,CAAA,EAAAA,CAAA,IAAAN,CAAA,CAAAN,MAAA,CAAAC,cAAA,CAAAK,CAAA,CAAAM,CAAA,EAAAT,KAAA,CAAAY,CAAA,CAAAG,UAAA,IAAAC,YAAA,IAAAC,QAAA,MAAAd,CAAA,CAAAM,CAAA,EAAAG,CAAA,CAAAT,CAAA,UAAAe,eAAAf,CAAA,MAAAM,CAAA,CAAAa,YAAA,CAAAnB,CAAA,4BAAAD,OAAA,CAAAO,CAAA,EAAAA,CAAA,CAAAA,CAAA,aAAAa,aAAAnB,CAAA,CAAAM,CAAA,gBAAAP,OAAA,CAAAC,CAAA,UAAAA,CAAA,QAAAA,CAAA,KAAAS,CAAA,CAAAT,CAAA,CAAAC,MAAA,CAAAmB,WAAA,KAAAX,CAAA,eAAAC,CAAA,CAAAD,CAAA,CAAAY,IAAA,CAAArB,CAAA,CAAAM,CAAA,2BAAAP,OAAA,CAAAW,CAAA,SAAAA,CAAA,WAAAH,SAAA,mEAAAD,CAAA,CAAAgB,MAAA,CAAAC,MAAA,EAAAvB,CAAA,KAO/D,CAAAF,cAAc,yBAKzB,SAAAE,EAAYwB,CAAgB,CAAEC,CAA6C,CAAE,CAAApB,eAAA,MAAAL,CAAA,EAAAkB,eAAA,uBAJ5C,EAAE,CAAGQ,mBAAY,CAACC,MAAM,EAAAT,eAAA,4BAAAA,eAAA,yBAKvD,IAAI,CAACM,QAAQ,CAAGA,CAAQ,QAEpBC,CAAa,WAAbA,CAAa,EAAbA,CAAa,CAAEG,WAAW,GAC5B,IAAI,CAACA,WAAW,CAAGH,CAAa,CAACG,WAAW,SAG1CH,CAAa,WAAbA,CAAa,EAAbA,CAAa,CAAEI,cAAc,GACI,CAAC,CAAhCJ,CAAa,CAACI,cAAkB,GAClC,IAAI,CAACA,cAAc,CAAG,CAAC,CAAGH,mBAAY,CAACC,MAAM,EAG/C,IAAI,CAACE,cAAc,CAAGJ,CAAa,CAACI,cAAc,CAAGH,mBAAY,CAACC,MAAM,CAE5E,CAAC,OAAAV,YAAA,CAAAjB,CAAA,GAAAgB,GAAA,YAAAc,GAAA,CAED,SAAAA,IAAA,CAAmC,CACjC,MAAO,CACLD,cAAc,CAAE,IAAI,CAACA,cAAc,CACnCD,WAAW,CAAE,IAAI,CAACA,WAAW,CAC7BJ,QAAQ,CAAE,IAAI,CAACA,QACjB,CACF,CAAC,IAAAxB,CAAA,IAAAJ,OAAA,CAAAE,cAAA,CAAAA,cAAA"}
@@ -1,20 +1,2 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "ClientSettings", {
7
- enumerable: true,
8
- get: function () {
9
- return _clientSettings.ClientSettings;
10
- }
11
- });
12
- Object.defineProperty(exports, "ClientSettingsType", {
13
- enumerable: true,
14
- get: function () {
15
- return _types.ClientSettingsType;
16
- }
17
- });
18
- var _clientSettings = require("./clientSettings");
19
- var _types = require("./types");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ClientSettings",{enumerable:!0,get:function get(){return _clientSettings.ClientSettings}}),Object.defineProperty(exports,"ClientSettingsType",{enumerable:!0,get:function get(){return _types.ClientSettingsType}});var _clientSettings=require("./clientSettings"),_types=require("./types");
20
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_clientSettings","require","_types"],"sources":["../../src/clientSettings/index.ts"],"sourcesContent":["export { ClientSettings } from './clientSettings';\nexport { ClientSettingsType } from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/clientSettings/index.ts"],"sourcesContent":["export { ClientSettings } from './clientSettings';\nexport { ClientSettingsType } from './types';\n"],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { Environment } from '../types';
1
+ import { Environment } from 'src/types';
2
2
  export type ClientSettingsType = {
3
3
  updateInterval: number;
4
4
  environment?: Environment;
@@ -1,6 +1,2 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
6
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../src/clientSettings/types.ts"],"sourcesContent":["import { Environment } from '../types';\n\nexport type ClientSettingsType = {\n updateInterval: number;\n environment?: Environment;\n siteCode: string;\n};\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../src/clientSettings/types.ts"],"sourcesContent":["import { Environment } from 'src/types';\n\nexport type ClientSettingsType = {\n updateInterval: number;\n environment?: Environment;\n siteCode: string;\n};\n"],"mappings":""}
@@ -15,8 +15,17 @@ export declare enum Cookie {
15
15
  * @readonly
16
16
  * @enum {string} an Enum of all the possible Kameleoon SDK types
17
17
  * */
18
- export declare enum SDKType {
19
- NodeJS = "nodejs",
20
- JavaScript = "javascript",
21
- React = "react"
18
+ export declare enum SdkLanguageType {
19
+ ANDROID = "ANDROID",
20
+ SWIFT = "SWIFT",
21
+ JAVA = "JAVA",
22
+ CSHARP = "CSHARP",
23
+ NODEJS = "NODEJS",
24
+ PHP = "PHP",
25
+ RUBY = "RUBY",
26
+ GO = "GO",
27
+ FLUTTER = "FLUTTER",
28
+ REACT = "REACT",
29
+ PYTHON = "PYTHON",
30
+ JAVASCRIPT = "JAVASCRIPT"
22
31
  }