@kameleoon/javascript-sdk-core 3.6.0 → 4.0.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.
- package/CHANGELOG.md +369 -0
- package/CHANGELOG_INTERNAL.md +3 -0
- package/dist/cacheManager/cacheManager.js +1 -1
- package/dist/cacheManager/cacheManager.js.map +1 -1
- package/dist/cacheManager/index.js +1 -1
- package/dist/clientConfiguration/clientConfiguration.d.ts +2 -3
- package/dist/clientConfiguration/clientConfiguration.js +1 -1
- package/dist/clientConfiguration/clientConfiguration.js.map +1 -1
- package/dist/clientConfiguration/constants.js +1 -1
- package/dist/clientConfiguration/constants.js.map +1 -1
- package/dist/clientConfiguration/index.js +1 -1
- package/dist/clientConfiguration/types.d.ts +7 -8
- package/dist/clientConfiguration/types.js +1 -1
- package/dist/clientConfiguration/types.js.map +1 -1
- package/dist/clientSettings/clientSettings.js +1 -1
- package/dist/clientSettings/clientSettings.js.map +1 -1
- package/dist/clientSettings/index.js +1 -1
- package/dist/constants.d.ts +0 -8
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/eventSource/constants.js +1 -1
- package/dist/eventSource/constants.js.map +1 -1
- package/dist/eventSource/eventSource.d.ts +17 -0
- package/dist/eventSource/eventSource.js +2 -0
- package/dist/eventSource/eventSource.js.map +1 -0
- package/dist/eventSource/index.d.ts +2 -2
- package/dist/eventSource/index.js +1 -1
- package/dist/eventSource/index.js.map +1 -1
- package/dist/eventSource/types.d.ts +8 -19
- package/dist/eventSource/types.js.map +1 -1
- package/dist/hasher/hasher.js +1 -1
- package/dist/hasher/hasher.js.map +1 -1
- package/dist/hasher/index.js +1 -1
- package/dist/hasher/index.js.map +1 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kameleoonClient.d.ts +2 -207
- package/dist/kameleoonClient.js +1 -1
- package/dist/kameleoonClient.js.map +1 -1
- package/dist/kameleoonClientInterface.d.ts +199 -0
- package/dist/kameleoonClientInterface.js +2 -0
- package/dist/kameleoonClientInterface.js.map +1 -0
- package/dist/kameleoonData/applicationVersion.js +1 -1
- package/dist/kameleoonData/applicationVersion.js.map +1 -1
- package/dist/kameleoonData/browser.js +1 -1
- package/dist/kameleoonData/browser.js.map +1 -1
- package/dist/kameleoonData/constants.js +1 -1
- package/dist/kameleoonData/constants.js.map +1 -1
- package/dist/kameleoonData/conversion.js +1 -1
- package/dist/kameleoonData/conversion.js.map +1 -1
- package/dist/kameleoonData/cookie.js +1 -1
- package/dist/kameleoonData/cookie.js.map +1 -1
- package/dist/kameleoonData/customData.js +1 -1
- package/dist/kameleoonData/customData.js.map +1 -1
- package/dist/kameleoonData/dataManager.js +1 -1
- package/dist/kameleoonData/dataManager.js.map +1 -1
- package/dist/kameleoonData/dataProcessor.d.ts +2 -2
- package/dist/kameleoonData/dataProcessor.js +1 -1
- package/dist/kameleoonData/dataProcessor.js.map +1 -1
- package/dist/kameleoonData/device.js +1 -1
- package/dist/kameleoonData/device.js.map +1 -1
- package/dist/kameleoonData/geolocation.js +1 -1
- package/dist/kameleoonData/geolocation.js.map +1 -1
- package/dist/kameleoonData/helpers.js +1 -1
- package/dist/kameleoonData/helpers.js.map +1 -1
- package/dist/kameleoonData/index.js +1 -1
- package/dist/kameleoonData/operatingSystem.js +1 -1
- package/dist/kameleoonData/operatingSystem.js.map +1 -1
- package/dist/kameleoonData/pageView.js +1 -1
- package/dist/kameleoonData/pageView.js.map +1 -1
- package/dist/kameleoonData/types.d.ts +2 -2
- package/dist/kameleoonData/types.js +1 -1
- package/dist/kameleoonData/types.js.map +1 -1
- package/dist/kameleoonData/userAgent.js +1 -1
- package/dist/kameleoonData/userAgent.js.map +1 -1
- package/dist/kameleoonData/visitsData.js +1 -1
- package/dist/kameleoonData/visitsData.js.map +1 -1
- package/dist/kameleoonError/constants.d.ts +1 -0
- package/dist/kameleoonError/constants.js +1 -1
- package/dist/kameleoonError/constants.js.map +1 -1
- package/dist/kameleoonError/helpers.js.map +1 -1
- package/dist/kameleoonError/index.js +1 -1
- package/dist/kameleoonError/kameleoonError.d.ts +1 -1
- package/dist/kameleoonError/kameleoonError.js +1 -1
- package/dist/kameleoonError/kameleoonError.js.map +1 -1
- package/dist/kameleoonError/types.d.ts +1 -0
- package/dist/kameleoonError/types.js +1 -1
- package/dist/kameleoonError/types.js.map +1 -1
- package/dist/kameleoonUtils.js +1 -1
- package/dist/kameleoonUtils.js.map +1 -1
- package/dist/requester/constants.js +1 -1
- package/dist/requester/constants.js.map +1 -1
- package/dist/requester/index.js +1 -1
- package/dist/requester/requester.js +1 -1
- package/dist/requester/requester.js.map +1 -1
- package/dist/requester/types.js +1 -1
- package/dist/requester/types.js.map +1 -1
- package/dist/storage/constants.js +1 -1
- package/dist/storage/constants.js.map +1 -1
- package/dist/storage/index.d.ts +2 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/storage.d.ts +13 -0
- package/dist/storage/storage.js +2 -0
- package/dist/storage/storage.js.map +1 -0
- package/dist/storage/types.d.ts +15 -30
- package/dist/storage/types.js.map +1 -1
- package/dist/targeting/conditions/applicationVersion.js +1 -1
- package/dist/targeting/conditions/applicationVersion.js.map +1 -1
- package/dist/targeting/conditions/browser.js +1 -1
- package/dist/targeting/conditions/browser.js.map +1 -1
- package/dist/targeting/conditions/conditionFactory.js +1 -1
- package/dist/targeting/conditions/conditionFactory.js.map +1 -1
- package/dist/targeting/conditions/conversion.js +1 -1
- package/dist/targeting/conditions/conversion.js.map +1 -1
- package/dist/targeting/conditions/cookie.js +1 -1
- package/dist/targeting/conditions/cookie.js.map +1 -1
- package/dist/targeting/conditions/customData.js +1 -1
- package/dist/targeting/conditions/customData.js.map +1 -1
- package/dist/targeting/conditions/device.js +1 -1
- package/dist/targeting/conditions/device.js.map +1 -1
- package/dist/targeting/conditions/exclusiveCampaign.js +1 -1
- package/dist/targeting/conditions/exclusiveCampaign.js.map +1 -1
- package/dist/targeting/conditions/firstVisit.js +1 -1
- package/dist/targeting/conditions/firstVisit.js.map +1 -1
- package/dist/targeting/conditions/geolocation.js +1 -1
- package/dist/targeting/conditions/geolocation.js.map +1 -1
- package/dist/targeting/conditions/index.js +1 -1
- package/dist/targeting/conditions/lastVisit.js +1 -1
- package/dist/targeting/conditions/lastVisit.js.map +1 -1
- package/dist/targeting/conditions/newVisitor.js +1 -1
- package/dist/targeting/conditions/newVisitor.js.map +1 -1
- package/dist/targeting/conditions/operatingSystem.js +1 -1
- package/dist/targeting/conditions/operatingSystem.js.map +1 -1
- package/dist/targeting/conditions/pageTitle.js +1 -1
- package/dist/targeting/conditions/pageTitle.js.map +1 -1
- package/dist/targeting/conditions/pageUrl.js +1 -1
- package/dist/targeting/conditions/pageUrl.js.map +1 -1
- package/dist/targeting/conditions/previousPage.js +1 -1
- package/dist/targeting/conditions/previousPage.js.map +1 -1
- package/dist/targeting/conditions/sameDayVisits.js +1 -1
- package/dist/targeting/conditions/sameDayVisits.js.map +1 -1
- package/dist/targeting/conditions/sdkLanguage.js +1 -1
- package/dist/targeting/conditions/sdkLanguage.js.map +1 -1
- package/dist/targeting/conditions/segment.js +1 -1
- package/dist/targeting/conditions/segment.js.map +1 -1
- package/dist/targeting/conditions/targetFeatureFlag.js +1 -1
- package/dist/targeting/conditions/targetFeatureFlag.js.map +1 -1
- package/dist/targeting/conditions/visitedPages.js +1 -1
- package/dist/targeting/conditions/visitedPages.js.map +1 -1
- package/dist/targeting/conditions/visitorCode.js +1 -1
- package/dist/targeting/conditions/visitorCode.js.map +1 -1
- package/dist/targeting/conditions/visits.js +1 -1
- package/dist/targeting/conditions/visits.js.map +1 -1
- package/dist/targeting/index.js +1 -1
- package/dist/targeting/node.js +1 -1
- package/dist/targeting/node.js.map +1 -1
- package/dist/targeting/tree.js +1 -1
- package/dist/targeting/tree.js.map +1 -1
- package/dist/targeting/types.js +1 -1
- package/dist/targeting/types.js.map +1 -1
- package/dist/types.d.ts +14 -26
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/constants.js +1 -1
- package/dist/utilities/constants.js.map +1 -1
- package/dist/utilities/index.js +1 -1
- package/dist/utilities/types.d.ts +7 -7
- package/dist/utilities/types.js +1 -1
- package/dist/utilities/types.js.map +1 -1
- package/dist/utilities/utilities.js +1 -1
- package/dist/utilities/utilities.js.map +1 -1
- package/dist/variationConfiguration/index.js +1 -1
- package/dist/variationConfiguration/variationConfiguration.d.ts +3 -3
- package/dist/variationConfiguration/variationConfiguration.js +1 -1
- package/dist/variationConfiguration/variationConfiguration.js.map +1 -1
- package/dist/visitorCodeManager/constants.d.ts +3 -0
- package/dist/visitorCodeManager/constants.js +2 -0
- package/dist/visitorCodeManager/constants.js.map +1 -0
- package/dist/visitorCodeManager/index.d.ts +2 -0
- package/dist/visitorCodeManager/index.js +1 -1
- package/dist/visitorCodeManager/index.js.map +1 -1
- package/dist/visitorCodeManager/types.d.ts +7 -0
- package/dist/visitorCodeManager/types.js +2 -0
- package/dist/visitorCodeManager/types.js.map +1 -0
- package/dist/visitorCodeManager/visitorCodeManager.d.ts +11 -8
- package/dist/visitorCodeManager/visitorCodeManager.js +1 -1
- package/dist/visitorCodeManager/visitorCodeManager.js.map +1 -1
- package/package.json +4 -8
- package/dist/eventSource/externalEventSource.d.ts +0 -12
- package/dist/eventSource/externalEventSource.js +0 -2
- package/dist/eventSource/externalEventSource.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VariationConfiguration=void 0;var _tsRes=require("ts-res"),_hasher=require("../hasher"),_kameleoonError=require("../kameleoonError"),_utilities=require("../utilities"),_types=require("../clientConfiguration/types")
|
|
1
|
+
"use strict";const _excluded=["exposition"];Object.defineProperty(exports,"__esModule",{value:!0}),exports.VariationConfiguration=void 0;var _tsRes=require("ts-res"),_hasher=require("../hasher"),_kameleoonError=require("../kameleoonError"),_utilities=require("../utilities"),_types=require("../clientConfiguration/types");function _objectWithoutProperties(a,b){if(null==a)return{};var c,d,e=_objectWithoutPropertiesLoose(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],0<=b.indexOf(c)||Object.prototype.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function _objectWithoutPropertiesLoose(a,b){if(null==a)return{};var c,d,e={},f=Object.keys(a);for(d=0;d<f.length;d++)c=f[d],0<=b.indexOf(c)||(e[c]=a[c]);return e}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return 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||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){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)}class VariationConfiguration{constructor(a){_defineProperty(this,"storage",void 0),this.storage=a}markUnsentDataAsSent(a,b){const c=this.storage.read();if(!c.ok&&c.error.type===_kameleoonError.KameleoonException.StorageParse)return c;let d=c.ok?c.data:{};return d[a]||(d[a]={}),d[a][b]=_objectSpread(_objectSpread({},d[a][b]),{},{isSent:!0}),this.storage.write(d)}getUnsentData(a){const b=this.storage.read();if(!b.ok&&b.error.type===_kameleoonError.KameleoonException.StorageParse)return b;const c=b.ok?b.data:{},d=c[a],e=[];if(d)for(const[a,b]of Object.entries(d))b.isSent||e.push({experimentId:+a,variationId:b.variationId,isTargetedRule:b.isTargetedRule});return(0,_tsRes.Ok)(e)}getStoredVariations(a){const b=this.storage.read();if(!b.ok)return b;const c=b.data[a];return c?(0,_tsRes.Ok)(c):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageRead,a))}getVariation(a){let{visitorCode:b,visitorIdentifier:c,featureFlag:d,targetingData:e,packageInfo:f,clientConfiguration:g,dataManager:h,withAssignment:i=!1}=a;const j=_utilities.Utilities.validateVisitorCode(b);if(!j.ok)return(0,_tsRes.Err)(j.error);const{rules:k,featureKey:l,id:m,defaultVariationKey:n}=d;for(const d of k){const{segment:a,experimentId:j,id:k,exposition:o,respoolTime:p,variationByExposition:q}=d,r=_utilities.Utilities.checkTargeting({segment:a,visitorCode:b,experimentId:j,targetingData:e,packageInfo:f,clientConfiguration:g,dataManager:h,variationConfiguration:this});if(!r.ok)return r;if(!r.data)continue;const s=_hasher.Hasher.getHashDouble({visitorIdentifier:c,respoolTime:p,id:k+""});if(s<=o){let a=0;const e=_hasher.Hasher.getHashDouble({visitorIdentifier:c,respoolTime:p,id:j+""});for(const c of q)if(a+=c.exposition,e<=a){i&&this.updateStoredVariations(b,{[j]:{variationId:c.variationId,isTargetedRule:d.type===_types.RuleType.TARGETED_DELIVERY,isSent:!1}});const{exposition:a}=c,e=_objectWithoutProperties(c,_excluded);return(0,_tsRes.Ok)(_objectSpread(_objectSpread({},e),{},{rule:d,featureFlagId:m,featureKey:l,experimentId:j,isTargetedRule:d.type===_types.RuleType.TARGETED_DELIVERY}))}}if(d.type===_types.RuleType.TARGETED_DELIVERY)return(0,_tsRes.Ok)({featureKey:l,featureFlagId:m,experimentId:null,variationKey:n,variationId:null,rule:null,isTargetedRule:!0})}return(0,_tsRes.Ok)({featureKey:l,featureFlagId:m,experimentId:null,variationKey:n,variationId:null,rule:null,isTargetedRule:!1})}updateStoredVariations(a,b){const c=this.storage.read();if(!c.ok&&c.error.type===_kameleoonError.KameleoonException.StorageParse)return c;let d=c.ok?c.data:{};return d[a]?d[a]=_objectSpread(_objectSpread({},d[a]),b):d=_objectSpread(_objectSpread({},d),{},{[a]:_objectSpread({},b)}),this.storage.write(d)}}exports.VariationConfiguration=VariationConfiguration;
|
|
2
2
|
//# sourceMappingURL=variationConfiguration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variationConfiguration.js","names":["VariationConfiguration","a","externalStorage","_classCallCheck","_defineProperty","storage","_createClass","key","value","markUnsentDataAsSent","visitorCode","experimentId","result","read","ok","error","type","KameleoonException","StorageParse","updatedVariationData","data","_objectSpread","isSent","write","getUnsentData","featureExperiment","unsentData","f","g","Object","entries","length","h","_slicedToArray","variationData","push","variationId","isTargetedRule","Ok","getStoredVariations","featureFlagVariations","Err","KameleoonError","StorageRead","getVariation","visitorIdentifier","featureFlag","targetingData","packageInfo","clientConfiguration","dataManager","i","withAssignment","validateResult","Utilities","validateVisitorCode","k","rules","featureKey","featureFlagId","id","defaultVariationKey","p","_createForOfIteratorHelper","s","n","done","rule","segment","exposition","respoolTime","variationByExposition","targetingResult","checkTargeting","variationConfiguration","ruleHash","Hasher","getHashDouble","z","totalDeviation","variationHash","C","variation","updateStoredVariations","RuleType","TARGETED_DELIVERY","restParameters","_objectWithoutProperties","_excluded","e","variationKey","exports"],"sources":["../../src/variationConfiguration/variationConfiguration.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { Hasher } from 'src/hasher';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { IExternalStorage, VariationDataType } from 'src/storage';\nimport { Utilities } from 'src/utilities';\nimport { RuleType } from 'src/clientConfiguration/types';\nimport {\n FeatureFlagVariationType,\n GetVariationParametersType,\n UnsentVariationDataType,\n} from './types';\nimport { FeatureFlagVariationsType } from 'src/storage/types';\n\ninterface IVariationConfiguration {\n /**\n * @method getStoredVariations - obtains campaigns with according variations that are *already assigned* and *stored* in the `variationStorage`.\n */\n getStoredVariations(\n visitorCode: string,\n ): Result<FeatureFlagVariationsType, KameleoonError>;\n /**\n * @method updateStoredVariations - updates stored variations for the visitor\n */\n updateStoredVariations: (\n visitorCode: string,\n variationData: FeatureFlagVariationsType,\n ) => void;\n /**\n * @method getVariation - obtains variation for the rule of the feature flag which is both targeted and has a variation, if no such rule was found, returns empty rule with default `variationKey`, given an option `withAssignment` of `true` will also assign a new variation and save it in the storage\n */\n getVariation: (\n params: GetVariationParametersType,\n ) => Result<FeatureFlagVariationType, KameleoonError>;\n /**\n * @method getUnsentData - obtains the list of unsent variations\n */\n getUnsentData: (\n visitorCode: string,\n ) => Result<UnsentVariationDataType[], KameleoonError>;\n /**\n * @method markUnsentDataAsSent - marks the passed expriment variation as sent\n */\n markUnsentDataAsSent: (\n visitorCode: string,\n experimentId: string,\n ) => Result<void, KameleoonError>;\n}\n\nexport class VariationConfiguration implements IVariationConfiguration {\n private storage: IExternalStorage<VariationDataType>;\n\n constructor(externalStorage: IExternalStorage<VariationDataType>) {\n this.storage = externalStorage;\n }\n\n public markUnsentDataAsSent(\n visitorCode: string,\n experimentId: string,\n ): Result<void, KameleoonError> {\n const result = this.storage.read();\n\n if (!result.ok) {\n // --- Note ---\n // If there is a parsing error we return error\n // But if there is `LocalStorageRead` error it means that\n // data was read successfully and it's empty, which is not problem\n // cause that might be initial `read`\n if (result.error.type === KameleoonException.StorageParse) {\n return result;\n }\n }\n\n let updatedVariationData: VariationDataType = result.ok ? result.data : {};\n\n if (!updatedVariationData[visitorCode]) {\n updatedVariationData[visitorCode] = {};\n }\n\n updatedVariationData[visitorCode][experimentId] = {\n ...updatedVariationData[visitorCode][experimentId],\n isSent: true,\n };\n\n return this.storage.write(updatedVariationData);\n }\n\n public getUnsentData(\n visitorCode: string,\n ): Result<UnsentVariationDataType[], KameleoonError> {\n const result = this.storage.read();\n\n if (!result.ok) {\n // --- Note ---\n // If there is a parsing error we return error\n // But if there is `LocalStorageRead` error it means that\n // data was read successfully and it's empty, which is not problem\n // cause that might be initial `read`\n if (result.error.type === KameleoonException.StorageParse) {\n return result;\n }\n }\n\n const updatedVariationData: VariationDataType = result.ok\n ? result.data\n : {};\n\n const featureExperiment = updatedVariationData[visitorCode];\n\n const unsentData: UnsentVariationDataType[] = [];\n\n if (featureExperiment) {\n for (const [experimentId, variationData] of Object.entries(\n featureExperiment,\n )) {\n if (!variationData.isSent) {\n unsentData.push({\n experimentId: Number(experimentId),\n variationId: variationData.variationId,\n isTargetedRule: variationData.isTargetedRule,\n });\n }\n }\n }\n\n return Ok(unsentData);\n }\n\n public getStoredVariations(\n visitorCode: string,\n ): Result<FeatureFlagVariationsType, KameleoonError> {\n const result = this.storage.read();\n\n if (!result.ok) {\n return result;\n }\n\n const featureFlagVariations = result.data[visitorCode];\n\n if (!featureFlagVariations) {\n return Err(\n new KameleoonError(KameleoonException.StorageRead, visitorCode),\n );\n }\n\n return Ok(featureFlagVariations);\n }\n\n public getVariation({\n visitorCode,\n visitorIdentifier,\n featureFlag,\n targetingData,\n packageInfo,\n clientConfiguration,\n dataManager,\n withAssignment = false,\n }: GetVariationParametersType): Result<\n FeatureFlagVariationType,\n KameleoonError\n > {\n const validateResult = Utilities.validateVisitorCode(visitorCode);\n\n if (!validateResult.ok) {\n return Err(validateResult.error);\n }\n\n const {\n rules,\n featureKey,\n id: featureFlagId,\n defaultVariationKey,\n } = featureFlag;\n\n for (const rule of rules) {\n const {\n segment,\n experimentId,\n id,\n exposition,\n respoolTime,\n variationByExposition,\n } = rule;\n\n // --- Check targeting ---\n const targetingResult = Utilities.checkTargeting({\n segment,\n visitorCode,\n experimentId,\n targetingData,\n packageInfo,\n clientConfiguration,\n dataManager,\n variationConfiguration: this,\n });\n\n if (!targetingResult.ok) {\n return targetingResult;\n }\n\n if (!targetingResult.data) {\n continue;\n }\n\n // --- Note ---\n // Calculate new variation (and assign it if `withAssignment` is `true`)\n // First the the exposed rule is calculated and then the variation inside of it\n const ruleHash = Hasher.getHashDouble({\n visitorIdentifier,\n respoolTime,\n id: String(id),\n });\n\n if (ruleHash <= exposition) {\n let totalDeviation = 0;\n\n const variationHash = Hasher.getHashDouble({\n visitorIdentifier,\n respoolTime,\n id: String(experimentId),\n });\n\n for (const variation of variationByExposition) {\n totalDeviation += variation.exposition;\n\n if (variationHash <= totalDeviation) {\n if (withAssignment) {\n this.updateStoredVariations(visitorCode, {\n [experimentId]: {\n variationId: variation.variationId,\n isTargetedRule: rule.type === RuleType.TARGETED_DELIVERY,\n isSent: false,\n },\n });\n }\n\n const { exposition, ...restParameters } = variation;\n\n return Ok({\n ...restParameters,\n rule,\n featureFlagId,\n featureKey,\n experimentId,\n isTargetedRule: rule.type === RuleType.TARGETED_DELIVERY,\n });\n }\n }\n }\n\n if (rule.type === RuleType.TARGETED_DELIVERY) {\n return Ok({\n featureKey,\n featureFlagId,\n experimentId: null,\n variationKey: defaultVariationKey,\n variationId: null,\n rule: null,\n isTargetedRule: true,\n });\n }\n }\n\n return Ok({\n featureKey,\n featureFlagId,\n experimentId: null,\n variationKey: defaultVariationKey,\n variationId: null,\n rule: null,\n isTargetedRule: false,\n });\n }\n\n public updateStoredVariations(\n visitorCode: string,\n variationData: FeatureFlagVariationsType,\n ): Result<void, KameleoonError> {\n const result = this.storage.read();\n\n if (!result.ok) {\n // --- Note ---\n // If there is a parsing error we return error\n // But if there is `LocalStorageRead` error it means that\n // data was read successfully and it's empty, which is not problem\n // cause that might be initial `read`\n if (result.error.type === KameleoonException.StorageParse) {\n return result;\n }\n }\n\n let updatedVariationData: VariationDataType = result.ok ? result.data : {};\n\n if (updatedVariationData[visitorCode]) {\n updatedVariationData[visitorCode] = {\n ...updatedVariationData[visitorCode],\n ...variationData,\n };\n } else {\n updatedVariationData = {\n ...updatedVariationData,\n [visitorCode]: {\n ...variationData,\n },\n };\n }\n\n return this.storage.write(updatedVariationData);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"variationConfiguration.js","names":["VariationConfiguration","constructor","externalStorage","_defineProperty","storage","markUnsentDataAsSent","visitorCode","experimentId","result","read","ok","error","type","KameleoonException","StorageParse","updatedVariationData","data","_objectSpread","isSent","write","getUnsentData","featureExperiment","unsentData","variationData","Object","entries","push","variationId","isTargetedRule","Ok","getStoredVariations","featureFlagVariations","Err","KameleoonError","StorageRead","getVariation","a","visitorIdentifier","featureFlag","targetingData","packageInfo","clientConfiguration","dataManager","withAssignment","validateResult","Utilities","validateVisitorCode","rules","featureKey","id","featureFlagId","defaultVariationKey","rule","segment","exposition","respoolTime","variationByExposition","targetingResult","checkTargeting","variationConfiguration","ruleHash","Hasher","getHashDouble","totalDeviation","variationHash","variation","updateStoredVariations","RuleType","TARGETED_DELIVERY","restParameters","_objectWithoutProperties","_excluded","variationKey","exports"],"sources":["../../src/variationConfiguration/variationConfiguration.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { Hasher } from 'src/hasher';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { VariationDataType } from 'src/storage';\nimport { Utilities } from 'src/utilities';\nimport { RuleType } from 'src/clientConfiguration/types';\nimport {\n FeatureFlagVariationType,\n GetVariationParametersType,\n UnsentVariationDataType,\n} from './types';\nimport { FeatureFlagVariationsType, IStorage } from 'src/storage/types';\n\ninterface IVariationConfiguration {\n /**\n * @method getStoredVariations - obtains campaigns with according variations that are *already assigned* and *stored* in the `variationStorage`.\n */\n getStoredVariations(\n visitorCode: string,\n ): Result<FeatureFlagVariationsType, KameleoonError>;\n /**\n * @method updateStoredVariations - updates stored variations for the visitor\n */\n updateStoredVariations: (\n visitorCode: string,\n variationData: FeatureFlagVariationsType,\n ) => void;\n /**\n * @method getVariation - obtains variation for the rule of the feature flag which is both targeted and has a variation, if no such rule was found, returns empty rule with default `variationKey`, given an option `withAssignment` of `true` will also assign a new variation and save it in the storage\n */\n getVariation: (\n params: GetVariationParametersType,\n ) => Result<FeatureFlagVariationType, KameleoonError>;\n /**\n * @method getUnsentData - obtains the list of unsent variations\n */\n getUnsentData: (\n visitorCode: string,\n ) => Result<UnsentVariationDataType[], KameleoonError>;\n /**\n * @method markUnsentDataAsSent - marks the passed expriment variation as sent\n */\n markUnsentDataAsSent: (\n visitorCode: string,\n experimentId: string,\n ) => Result<void, KameleoonError>;\n}\n\nexport class VariationConfiguration implements IVariationConfiguration {\n private storage: IStorage<VariationDataType>;\n\n constructor(externalStorage: IStorage<VariationDataType>) {\n this.storage = externalStorage;\n }\n\n public markUnsentDataAsSent(\n visitorCode: string,\n experimentId: string,\n ): Result<void, KameleoonError> {\n const result = this.storage.read();\n\n if (!result.ok) {\n // --- Note ---\n // If there is a parsing error we return error\n // But if there is `LocalStorageRead` error it means that\n // data was read successfully and it's empty, which is not problem\n // cause that might be initial `read`\n if (result.error.type === KameleoonException.StorageParse) {\n return result;\n }\n }\n\n let updatedVariationData: VariationDataType = result.ok ? result.data : {};\n\n if (!updatedVariationData[visitorCode]) {\n updatedVariationData[visitorCode] = {};\n }\n\n updatedVariationData[visitorCode][experimentId] = {\n ...updatedVariationData[visitorCode][experimentId],\n isSent: true,\n };\n\n return this.storage.write(updatedVariationData);\n }\n\n public getUnsentData(\n visitorCode: string,\n ): Result<UnsentVariationDataType[], KameleoonError> {\n const result = this.storage.read();\n\n if (!result.ok) {\n // --- Note ---\n // If there is a parsing error we return error\n // But if there is `LocalStorageRead` error it means that\n // data was read successfully and it's empty, which is not problem\n // cause that might be initial `read`\n if (result.error.type === KameleoonException.StorageParse) {\n return result;\n }\n }\n\n const updatedVariationData: VariationDataType = result.ok\n ? result.data\n : {};\n\n const featureExperiment = updatedVariationData[visitorCode];\n\n const unsentData: UnsentVariationDataType[] = [];\n\n if (featureExperiment) {\n for (const [experimentId, variationData] of Object.entries(\n featureExperiment,\n )) {\n if (!variationData.isSent) {\n unsentData.push({\n experimentId: Number(experimentId),\n variationId: variationData.variationId,\n isTargetedRule: variationData.isTargetedRule,\n });\n }\n }\n }\n\n return Ok(unsentData);\n }\n\n public getStoredVariations(\n visitorCode: string,\n ): Result<FeatureFlagVariationsType, KameleoonError> {\n const result = this.storage.read();\n\n if (!result.ok) {\n return result;\n }\n\n const featureFlagVariations = result.data[visitorCode];\n\n if (!featureFlagVariations) {\n return Err(\n new KameleoonError(KameleoonException.StorageRead, visitorCode),\n );\n }\n\n return Ok(featureFlagVariations);\n }\n\n public getVariation({\n visitorCode,\n visitorIdentifier,\n featureFlag,\n targetingData,\n packageInfo,\n clientConfiguration,\n dataManager,\n withAssignment = false,\n }: GetVariationParametersType): Result<\n FeatureFlagVariationType,\n KameleoonError\n > {\n const validateResult = Utilities.validateVisitorCode(visitorCode);\n\n if (!validateResult.ok) {\n return Err(validateResult.error);\n }\n\n const {\n rules,\n featureKey,\n id: featureFlagId,\n defaultVariationKey,\n } = featureFlag;\n\n for (const rule of rules) {\n const {\n segment,\n experimentId,\n id,\n exposition,\n respoolTime,\n variationByExposition,\n } = rule;\n\n // --- Check targeting ---\n const targetingResult = Utilities.checkTargeting({\n segment,\n visitorCode,\n experimentId,\n targetingData,\n packageInfo,\n clientConfiguration,\n dataManager,\n variationConfiguration: this,\n });\n\n if (!targetingResult.ok) {\n return targetingResult;\n }\n\n if (!targetingResult.data) {\n continue;\n }\n\n // --- Note ---\n // Calculate new variation (and assign it if `withAssignment` is `true`)\n // First the the exposed rule is calculated and then the variation inside of it\n const ruleHash = Hasher.getHashDouble({\n visitorIdentifier,\n respoolTime,\n id: String(id),\n });\n\n if (ruleHash <= exposition) {\n let totalDeviation = 0;\n\n const variationHash = Hasher.getHashDouble({\n visitorIdentifier,\n respoolTime,\n id: String(experimentId),\n });\n\n for (const variation of variationByExposition) {\n totalDeviation += variation.exposition;\n\n if (variationHash <= totalDeviation) {\n if (withAssignment) {\n this.updateStoredVariations(visitorCode, {\n [experimentId]: {\n variationId: variation.variationId,\n isTargetedRule: rule.type === RuleType.TARGETED_DELIVERY,\n isSent: false,\n },\n });\n }\n\n const { exposition, ...restParameters } = variation;\n\n return Ok({\n ...restParameters,\n rule,\n featureFlagId,\n featureKey,\n experimentId,\n isTargetedRule: rule.type === RuleType.TARGETED_DELIVERY,\n });\n }\n }\n }\n\n if (rule.type === RuleType.TARGETED_DELIVERY) {\n return Ok({\n featureKey,\n featureFlagId,\n experimentId: null,\n variationKey: defaultVariationKey,\n variationId: null,\n rule: null,\n isTargetedRule: true,\n });\n }\n }\n\n return Ok({\n featureKey,\n featureFlagId,\n experimentId: null,\n variationKey: defaultVariationKey,\n variationId: null,\n rule: null,\n isTargetedRule: false,\n });\n }\n\n public updateStoredVariations(\n visitorCode: string,\n variationData: FeatureFlagVariationsType,\n ): Result<void, KameleoonError> {\n const result = this.storage.read();\n\n if (!result.ok) {\n // --- Note ---\n // If there is a parsing error we return error\n // But if there is `LocalStorageRead` error it means that\n // data was read successfully and it's empty, which is not problem\n // cause that might be initial `read`\n if (result.error.type === KameleoonException.StorageParse) {\n return result;\n }\n }\n\n let updatedVariationData: VariationDataType = result.ok ? result.data : {};\n\n if (updatedVariationData[visitorCode]) {\n updatedVariationData[visitorCode] = {\n ...updatedVariationData[visitorCode],\n ...variationData,\n };\n } else {\n updatedVariationData = {\n ...updatedVariationData,\n [visitorCode]: {\n ...variationData,\n },\n };\n }\n\n return this.storage.write(updatedVariationData);\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ZERO_MAX_AGE=exports.PATH=exports.DEFAULT_MAX_AGE=void 0;const DEFAULT_MAX_AGE=exports.DEFAULT_MAX_AGE=31536000,ZERO_MAX_AGE=exports.ZERO_MAX_AGE=0,PATH=exports.PATH="/";
|
|
2
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["DEFAULT_MAX_AGE","exports","ZERO_MAX_AGE","PATH"],"sources":["../../src/visitorCodeManager/constants.ts"],"sourcesContent":["export const DEFAULT_MAX_AGE = 60 * 60 * 24 * 365;\nexport const ZERO_MAX_AGE = 0;\nexport const PATH = '/';\n"],"mappings":"0IAAa,CAAAA,eAAe,CAAAC,OAAA,CAAAD,eAAA,SAAqB,CACpCE,YAAY,CAAAD,OAAA,CAAAC,YAAA,CAAG,CAAC,CAChBC,IAAI,CAAAF,OAAA,CAAAE,IAAA,CAAG,GAAG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var _visitorCodeManager=require("./visitorCodeManager");Object.defineProperty(exports,"__esModule",{value:!0})
|
|
1
|
+
"use strict";var _exportNames={VisitorCodeManager:!0};var _types=require("./types");var _constants=require("./constants");var _visitorCodeManager=require("./visitorCodeManager");Object.defineProperty(exports,"__esModule",{value:!0});Object.defineProperty(exports,"VisitorCodeManager",{enumerable:!0,get:function(){return _visitorCodeManager.VisitorCodeManager}});Object.keys(_types).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||a in exports&&exports[a]===_types[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _types[a]}})});Object.keys(_constants).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||a in exports&&exports[a]===_constants[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _constants[a]}})});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_types","require","_constants","_visitorCodeManager","Object","defineProperty","exports","value","enumerable","get","VisitorCodeManager","keys","forEach","a","prototype","hasOwnProperty","call","_exportNames"],"sources":["../../src/visitorCodeManager/index.ts"],"sourcesContent":["export * from './types';\nexport * from './constants';\nexport { VisitorCodeManager } from './visitorCodeManager';\n"],"mappings":"sDAAA,IAAAA,MAAA,CAAAC,OAAA,YACA,IAAAC,UAAA,CAAAD,OAAA,gBACA,IAAAE,mBAAA,CAAAF,OAAA,yBAA0DG,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAH,MAAA,CAAAC,cAAA,CAAAC,OAAA,uBAAAE,UAAA,IAAAC,GAAA,SAAAA,CAAA,SAAAN,mBAAA,CAAAO,kBAAA,IAAAN,MAAA,CAAAO,IAAA,CAAAX,MAAA,EAAAY,OAAA,UAAAC,CAAA,cAAAA,CAAA,iBAAAA,CAAA,EAAAT,MAAA,CAAAU,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,CAAAJ,CAAA,GAAAA,CAAA,IAAAP,OAAA,EAAAA,OAAA,CAAAO,CAAA,IAAAb,MAAA,CAAAa,CAAA,GAAAT,MAAA,CAAAC,cAAA,CAAAC,OAAA,CAAAO,CAAA,EAAAL,UAAA,IAAAC,GAAA,SAAAA,CAAA,SAAAT,MAAA,CAAAa,CAAA,OAAAT,MAAA,CAAAO,IAAA,CAAAT,UAAA,EAAAU,OAAA,UAAAC,CAAA,cAAAA,CAAA,iBAAAA,CAAA,EAAAT,MAAA,CAAAU,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,CAAAJ,CAAA,GAAAA,CAAA,IAAAP,OAAA,EAAAA,OAAA,CAAAO,CAAA,IAAAX,UAAA,CAAAW,CAAA,GAAAT,MAAA,CAAAC,cAAA,CAAAC,OAAA,CAAAO,CAAA,EAAAL,UAAA,IAAAC,GAAA,SAAAA,CAAA,SAAAP,UAAA,CAAAW,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SetDataCallbackParametersType } from '../types';
|
|
2
|
+
export interface IVisitorCodeManager {
|
|
3
|
+
consentRequired: boolean;
|
|
4
|
+
getVisitorCode(defaultVisitorCode?: string): string;
|
|
5
|
+
getData: (key: string) => string | null;
|
|
6
|
+
setData: (params: SetDataCallbackParametersType) => void;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/visitorCodeManager/types.ts"],"sourcesContent":["import { SetDataCallbackParametersType } from 'src/types';\n\nexport interface IVisitorCodeManager {\n consentRequired: boolean;\n getVisitorCode(defaultVisitorCode?: string): string;\n getData: (key: string) => string | null;\n setData: (params: SetDataCallbackParametersType) => void;\n}\n"],"mappings":""}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { SetDataCallbackParametersType } from '../types';
|
|
2
|
+
import { IVisitorCodeManager } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* VisitorCodeManager - a class which manages visitor codes using cookies, offering functions to generate, retrieve,
|
|
5
5
|
* and handle these codes while considering user consent.
|
|
6
6
|
**/
|
|
7
|
-
export declare class VisitorCodeManager {
|
|
7
|
+
export declare class VisitorCodeManager implements IVisitorCodeManager {
|
|
8
8
|
private isConsentRequired;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
private setDataCallback?;
|
|
10
|
+
private getDataCallback?;
|
|
11
|
+
set consentRequired(isRequired: boolean);
|
|
12
|
+
get consentRequired(): boolean;
|
|
13
|
+
set getData(callback: () => string);
|
|
14
|
+
set setData(callback: (params: SetDataCallbackParametersType) => void);
|
|
15
|
+
get setData(): (params: SetDataCallbackParametersType) => void;
|
|
16
|
+
getVisitorCode(defaultVisitorCode?: string): string;
|
|
14
17
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorCodeManager=void 0;var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorCodeManager=void 0;var _constants=require("../constants"),_storage=require("../storage"),_utilities=require("../utilities"),_constants2=require("./constants");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||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){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)}class VisitorCodeManager{constructor(){_defineProperty(this,"isConsentRequired",!1),_defineProperty(this,"setDataCallback",void 0),_defineProperty(this,"getDataCallback",void 0)}set consentRequired(a){this.isConsentRequired=a}get consentRequired(){return this.isConsentRequired}set getData(a){this.getDataCallback=a}set setData(a){this.setDataCallback=a}get setData(){if(this.setDataCallback)return this.setDataCallback;throw new Error("Missing setDataCallback!")}getVisitorCode(a){if(this.getDataCallback&&this.setDataCallback){const b=this.getDataCallback(_storage.KameleoonStorageKey.VisitorCode);if(b)return b;let c=a;return c?_utilities.Utilities.validateVisitorCode(c).throw():c=_utilities.Utilities.generateRandomString(_constants.VISITOR_CODE_LENGTH),this.isConsentRequired||this.setDataCallback({visitorCode:c,key:_storage.KameleoonStorageKey.VisitorCode,maxAge:_constants2.DEFAULT_MAX_AGE,path:_constants2.PATH}),c}throw new Error("Missing getDataCallback && setDataCallback callbacks in getVisitorCode!")}}exports.VisitorCodeManager=VisitorCodeManager;
|
|
2
2
|
//# sourceMappingURL=visitorCodeManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitorCodeManager.js","names":["VisitorCodeManager","
|
|
1
|
+
{"version":3,"file":"visitorCodeManager.js","names":["VisitorCodeManager","constructor","_defineProperty","consentRequired","isRequired","isConsentRequired","getData","callback","getDataCallback","setData","setDataCallback","Error","getVisitorCode","defaultVisitorCode","existingVisitorCode","KameleoonStorageKey","VisitorCode","visitorCode","Utilities","validateVisitorCode","throw","generateRandomString","VISITOR_CODE_LENGTH","key","maxAge","DEFAULT_MAX_AGE","path","PATH","exports"],"sources":["../../src/visitorCodeManager/visitorCodeManager.ts"],"sourcesContent":["import { VISITOR_CODE_LENGTH } from 'src/constants';\nimport { KameleoonStorageKey } from 'src/storage';\nimport { Utilities } from 'src/utilities';\nimport { SetDataCallbackParametersType } from 'src/types';\nimport { IVisitorCodeManager } from './types';\nimport { DEFAULT_MAX_AGE, PATH } from './constants';\n\n/**\n * VisitorCodeManager - a class which manages visitor codes using cookies, offering functions to generate, retrieve,\n * and handle these codes while considering user consent.\n **/\nexport class VisitorCodeManager implements IVisitorCodeManager {\n private isConsentRequired: boolean = false;\n private setDataCallback?: (params: SetDataCallbackParametersType) => void;\n private getDataCallback?: (key: string) => string | null;\n\n set consentRequired(isRequired: boolean) {\n this.isConsentRequired = isRequired;\n }\n\n get consentRequired(): boolean {\n return this.isConsentRequired;\n }\n\n set getData(callback: () => string) {\n this.getDataCallback = callback;\n }\n\n set setData(callback: (params: SetDataCallbackParametersType) => void) {\n this.setDataCallback = callback;\n }\n\n get setData(): (params: SetDataCallbackParametersType) => void {\n if (this.setDataCallback) {\n return this.setDataCallback;\n }\n\n throw new Error('Missing setDataCallback!');\n }\n\n public getVisitorCode(defaultVisitorCode?: string): string {\n if (this.getDataCallback && this.setDataCallback) {\n const existingVisitorCode = this.getDataCallback(\n KameleoonStorageKey.VisitorCode,\n );\n\n if (existingVisitorCode) {\n return existingVisitorCode;\n }\n\n let visitorCode = defaultVisitorCode;\n\n if (visitorCode) {\n Utilities.validateVisitorCode(visitorCode).throw();\n } else {\n visitorCode = Utilities.generateRandomString(VISITOR_CODE_LENGTH);\n }\n\n if (!this.isConsentRequired) {\n this.setDataCallback({\n visitorCode,\n key: KameleoonStorageKey.VisitorCode,\n maxAge: DEFAULT_MAX_AGE,\n path: PATH,\n });\n }\n\n return visitorCode;\n }\n\n throw new Error(\n 'Missing getDataCallback && setDataCallback callbacks in getVisitorCode!',\n );\n }\n}\n"],"mappings":"qvBAWO,KAAM,CAAAA,kBAAkD,CAAAC,YAAA,EAAAC,eAAA,8BAAAA,eAAA,gCAAAA,eAAA,gCAK7D,GAAI,CAAAC,eAAeA,CAACC,CAAmB,CAAE,CACvC,IAAI,CAACC,iBAAiB,CAAGD,CAC3B,CAEA,GAAI,CAAAD,eAAeA,CAAA,CAAY,CAC7B,MAAO,KAAI,CAACE,iBACd,CAEA,GAAI,CAAAC,OAAOA,CAACC,CAAsB,CAAE,CAClC,IAAI,CAACC,eAAe,CAAGD,CACzB,CAEA,GAAI,CAAAE,OAAOA,CAACF,CAAyD,CAAE,CACrE,IAAI,CAACG,eAAe,CAAGH,CACzB,CAEA,GAAI,CAAAE,OAAOA,CAAA,CAAoD,CAC7D,GAAI,IAAI,CAACC,eAAe,CACtB,MAAO,KAAI,CAACA,eAAe,CAG7B,KAAM,IAAI,CAAAC,KAAK,CAAC,0BAA0B,CAC5C,CAEOC,cAAcA,CAACC,CAA2B,CAAU,CACzD,GAAI,IAAI,CAACL,eAAe,EAAI,IAAI,CAACE,eAAe,CAAE,CAChD,KAAM,CAAAI,CAAmB,CAAG,IAAI,CAACN,eAAe,CAC9CO,4BAAmB,CAACC,WACtB,CAAC,CAED,GAAIF,CAAmB,CACrB,MAAO,CAAAA,CAAmB,CAG5B,GAAI,CAAAG,CAAW,CAAGJ,CAAkB,CAiBpC,MAfI,CAAAI,CAAW,CACbC,oBAAS,CAACC,mBAAmB,CAACF,CAAW,CAAC,CAACG,KAAK,CAAC,CAAC,CAElDH,CAAW,CAAGC,oBAAS,CAACG,oBAAoB,CAACC,8BAAmB,CAAC,CAG9D,IAAI,CAACjB,iBAAiB,EACzB,IAAI,CAACK,eAAe,CAAC,CACnBO,WAAW,CAAXA,CAAW,CACXM,GAAG,CAAER,4BAAmB,CAACC,WAAW,CACpCQ,MAAM,CAAEC,2BAAe,CACvBC,IAAI,CAAEC,gBACR,CAAC,CAAC,CAGGV,CACT,CAEA,KAAM,IAAI,CAAAN,KAAK,CACb,yEACF,CACF,CACF,CAACiB,OAAA,CAAA5B,kBAAA,CAAAA,kBAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kameleoon/javascript-sdk-core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Kameleoon JS SDK Core",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,19 +13,15 @@
|
|
|
13
13
|
"build": "npm run clean && npm run build:types && npm run build:js",
|
|
14
14
|
"build:types": "tsc --emitDeclarationOnly && tsc-alias",
|
|
15
15
|
"build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps true",
|
|
16
|
-
"deploy": "
|
|
16
|
+
"deploy": "/bin/bash ../../scripts/deploy.sh javascript-sdk-core",
|
|
17
17
|
"deploy-nexus": "/bin/bash ../../scripts/deploy_nexus.sh javascript-sdk-core",
|
|
18
|
-
"update-
|
|
19
|
-
"
|
|
18
|
+
"update-changelog": "/bin/bash ../../scripts/update_changelog.sh javascript-sdk-core",
|
|
19
|
+
"symlink": "yarn link",
|
|
20
20
|
"test": "NODE_ENV=test && jest",
|
|
21
21
|
"test:watch": "jest --watch",
|
|
22
22
|
"test:coverage": "jest --coverage"
|
|
23
23
|
},
|
|
24
24
|
"homepage": "https://developers.kameleoon.com/react-js-sdk.html",
|
|
25
|
-
"publishConfig": {
|
|
26
|
-
"access": "public",
|
|
27
|
-
"cache": "cache/.npm"
|
|
28
|
-
},
|
|
29
25
|
"keywords": [
|
|
30
26
|
"kameleoon",
|
|
31
27
|
"core",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { IExternalEventSourceConstructor } from './types';
|
|
2
|
-
export interface IEventSource {
|
|
3
|
-
open: (onEvent: (timestamp: number) => void) => void;
|
|
4
|
-
close: () => void;
|
|
5
|
-
}
|
|
6
|
-
export declare class ExternalEventSource implements IEventSource {
|
|
7
|
-
private eventSource;
|
|
8
|
-
private siteCode;
|
|
9
|
-
constructor(siteCode: string, externalEventSource: IExternalEventSourceConstructor);
|
|
10
|
-
open(onEvent: (timestamp: number) => void): void;
|
|
11
|
-
close(): void;
|
|
12
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExternalEventSource=void 0;var _requester=require("../requester"),_constants=require("../requester/constants"),_constants2=require("./constants");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 ExternalEventSource=function(){function a(b,c){_classCallCheck(this,a),_defineProperty(this,"eventSource",void 0),_defineProperty(this,"siteCode",void 0);var d=_requester.URL.SERVER_SENT_EVENTS+_constants.UrlQuery.Sse+b,e=c.initialize(d);this.eventSource=e,this.siteCode=b}return _createClass(a,[{key:"open",value:function open(a){this.eventSource.open({onEvent:a,siteCode:this.siteCode,eventType:_constants2.REAL_TIME_EVENT})}},{key:"close",value:function close(){this.eventSource.close()}}]),a}();exports.ExternalEventSource=ExternalEventSource;
|
|
2
|
-
//# sourceMappingURL=externalEventSource.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"externalEventSource.js","names":["ExternalEventSource","a","siteCode","externalEventSource","_classCallCheck","_defineProperty","url","URL","SERVER_SENT_EVENTS","UrlQuery","Sse","eventSource","initialize","_createClass","key","value","open","onEvent","eventType","REAL_TIME_EVENT","close","exports"],"sources":["../../src/eventSource/externalEventSource.ts"],"sourcesContent":["import { URL } from 'src/requester';\nimport { UrlQuery } from 'src/requester/constants';\nimport { REAL_TIME_EVENT } from './constants';\nimport { IExternalEventSource, IExternalEventSourceConstructor } from './types';\n\nexport interface IEventSource {\n open: (onEvent: (timestamp: number) => void) => void;\n close: () => void;\n}\n\nexport class ExternalEventSource implements IEventSource {\n private eventSource: IExternalEventSource;\n private siteCode: string;\n\n constructor(\n siteCode: string,\n externalEventSource: IExternalEventSourceConstructor,\n ) {\n const url = URL.SERVER_SENT_EVENTS + UrlQuery.Sse + siteCode;\n const eventSource = externalEventSource.initialize(url);\n\n this.eventSource = eventSource;\n this.siteCode = siteCode;\n }\n\n public open(onEvent: (timestamp: number) => void): void {\n this.eventSource.open({\n onEvent,\n siteCode: this.siteCode,\n eventType: REAL_TIME_EVENT,\n });\n }\n\n public close(): void {\n this.eventSource.close();\n }\n}\n"],"mappings":"08CAUa,CAAAA,mBAAmB,YAI9B,SAAAC,EACEC,CAAgB,CAChBC,CAAoD,CACpD,CAAAC,eAAA,MAAAH,CAAA,EAAAI,eAAA,4BAAAA,eAAA,4BACM,CAAAC,CAAG,CAAGC,cAAG,CAACC,kBAAkB,CAAGC,mBAAQ,CAACC,GAAG,CAAGR,CAAQ,CACtDS,CAAW,CAAGR,CAAmB,CAACS,UAAU,CAACN,CAAG,CAAC,CAEvD,IAAI,CAACK,WAAW,CAAGA,CAAW,CAC9B,IAAI,CAACT,QAAQ,CAAGA,CAClB,CAAC,OAAAW,YAAA,CAAAZ,CAAA,GAAAa,GAAA,QAAAC,KAAA,CAED,SAAAC,KAAYC,CAAoC,CAAQ,CACtD,IAAI,CAACN,WAAW,CAACK,IAAI,CAAC,CACpBC,OAAO,CAAPA,CAAO,CACPf,QAAQ,CAAE,IAAI,CAACA,QAAQ,CACvBgB,SAAS,CAAEC,2BACb,CAAC,CACH,CAAC,GAAAL,GAAA,SAAAC,KAAA,CAED,SAAAK,MAAA,CAAqB,CACnB,IAAI,CAACT,WAAW,CAACS,KAAK,EACxB,CAAC,IAAAnB,CAAA,IAAAoB,OAAA,CAAArB,mBAAA,CAAAA,mBAAA"}
|