@kameleoon/javascript-sdk-core 4.1.0 → 4.3.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.
Files changed (56) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/clientConfiguration/clientConfiguration.d.ts +7 -6
  3. package/dist/clientConfiguration/clientConfiguration.js +1 -1
  4. package/dist/clientConfiguration/clientConfiguration.js.map +1 -1
  5. package/dist/clientConfiguration/constants.d.ts +3 -2
  6. package/dist/clientConfiguration/constants.js +1 -1
  7. package/dist/clientConfiguration/constants.js.map +1 -1
  8. package/dist/clientConfiguration/index.d.ts +1 -1
  9. package/dist/clientConfiguration/index.js +1 -1
  10. package/dist/clientConfiguration/index.js.map +1 -1
  11. package/dist/clientConfiguration/types.d.ts +3 -0
  12. package/dist/clientConfiguration/types.js.map +1 -1
  13. package/dist/eventManager/eventManager.d.ts +11 -0
  14. package/dist/eventManager/eventManager.js +2 -0
  15. package/dist/eventManager/eventManager.js.map +1 -0
  16. package/dist/eventManager/index.d.ts +2 -0
  17. package/dist/eventManager/index.js +2 -0
  18. package/dist/eventManager/index.js.map +1 -0
  19. package/dist/eventManager/types.d.ts +36 -0
  20. package/dist/eventManager/types.js +2 -0
  21. package/dist/eventManager/types.js.map +1 -0
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.js +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/kameleoonClient.d.ts +15 -4
  26. package/dist/kameleoonClient.js +1 -1
  27. package/dist/kameleoonClient.js.map +1 -1
  28. package/dist/kameleoonClientInterface.d.ts +62 -1
  29. package/dist/kameleoonClientInterface.js.map +1 -1
  30. package/dist/kameleoonError/constants.d.ts +1 -0
  31. package/dist/kameleoonError/constants.js +1 -1
  32. package/dist/kameleoonError/constants.js.map +1 -1
  33. package/dist/kameleoonError/kameleoonError.d.ts +1 -0
  34. package/dist/kameleoonError/kameleoonError.js +1 -1
  35. package/dist/kameleoonError/kameleoonError.js.map +1 -1
  36. package/dist/kameleoonError/types.d.ts +1 -0
  37. package/dist/kameleoonError/types.js +1 -1
  38. package/dist/kameleoonError/types.js.map +1 -1
  39. package/dist/requester/types.d.ts +1 -1
  40. package/dist/requester/types.js.map +1 -1
  41. package/dist/storage/types.d.ts +1 -1
  42. package/dist/storage/types.js.map +1 -1
  43. package/dist/targeting/conditions/customData.d.ts +4 -2
  44. package/dist/targeting/conditions/customData.js +1 -1
  45. package/dist/targeting/conditions/customData.js.map +1 -1
  46. package/dist/targeting/conditions/pageUrl.js.map +1 -1
  47. package/dist/targeting/conditions/previousPage.js +1 -1
  48. package/dist/targeting/conditions/previousPage.js.map +1 -1
  49. package/dist/targeting/conditions/types.d.ts +1 -0
  50. package/dist/targeting/conditions/types.js.map +1 -1
  51. package/dist/targeting/types.d.ts +2 -1
  52. package/dist/targeting/types.js +1 -1
  53. package/dist/targeting/types.js.map +1 -1
  54. package/dist/types.d.ts +24 -2
  55. package/dist/types.js.map +1 -1
  56. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kameleoonError.js","names":["KameleoonError","Error","constructor","type","secondParam","thirdParam","concat","_defineProperty","name","errorType","KameleoonException","Initialization","Credentials","ClientConfiguration","VisitorCodeMaxLength","VisitorCodeEmpty","StorageInitialization","VisitAmount","EventSourceInitialization","RemoteData","MaximumRetriesReached","StorageEmpty","message","ERROR_MESSAGES","CookieParse","NotTargeted","FeatureFlagConfigurationNotFound","NumberParse","VersionParse","SemanticVersionParse","FeatureFlagVariationNotFound","FeatureFlagEnvironmentDisabled","FeatureFlagVariableNotFound","StorageWrite","JSONParse","StorageRead","StorageParse","TargetingCondition","AmongValuesCheck","exhaustCheck","exports"],"sources":["../../src/kameleoonError/kameleoonError.ts"],"sourcesContent":["import { KameleoonStorageKey } from 'src/storage';\nimport { TargetingType } from 'src/targeting';\nimport { ERROR_MESSAGES } from './constants';\nimport { exhaustCheck } from './helpers';\nimport { KameleoonException } from './types';\n\n/**\n * @class\n * KameleoonError - extends standard `Error` by adding custom `type` property with the type of `KameleoonException`\n * */\nexport class KameleoonError extends Error {\n private errorType: KameleoonException;\n\n /**\n * @param {KameleoonException} type - type of KameleoonError represented by `KameleoonException` enum\n * */\n constructor(\n type:\n | KameleoonException.Initialization\n | KameleoonException.Credentials\n | KameleoonException.ClientConfiguration\n | KameleoonException.VisitorCodeMaxLength\n | KameleoonException.VisitorCodeEmpty\n | KameleoonException.VisitAmount\n | KameleoonException.StorageInitialization\n | KameleoonException.EventSourceInitialization\n | KameleoonException.RemoteData\n | KameleoonException.MaximumRetriesReached\n | KameleoonException.StorageEmpty,\n );\n constructor(\n type:\n | KameleoonException.FeatureFlagConfigurationNotFound\n | KameleoonException.FeatureFlagEnvironmentDisabled,\n featureKey: string,\n );\n constructor(\n type:\n | KameleoonException.FeatureFlagConfigurationNotFound\n | KameleoonException.FeatureFlagEnvironmentDisabled,\n featureKey: string,\n environment: string,\n );\n constructor(\n type: KameleoonException.FeatureFlagVariableNotFound,\n variableKey: string,\n visitorCode: string,\n );\n constructor(\n type: KameleoonException.FeatureFlagVariationNotFound,\n variationKey: string,\n visitorCode: string,\n );\n constructor(type: KameleoonException.NotTargeted, visitorCode: string);\n constructor(type: KameleoonException.CookieParse, message: string);\n constructor(\n type: KameleoonException.StorageWrite | KameleoonException.JSONParse,\n err: unknown,\n );\n constructor(type: KameleoonException.StorageRead, storageKey: string);\n constructor(\n type: KameleoonException.StorageParse,\n err: unknown,\n key: KameleoonStorageKey,\n );\n constructor(\n type: KameleoonException.TargetingCondition,\n targetingType: TargetingType,\n );\n constructor(\n type: KameleoonException.AmongValuesCheck,\n err: unknown,\n value: string,\n );\n constructor(\n type:\n | KameleoonException.NumberParse\n | KameleoonException.VersionParse\n | KameleoonException.SemanticVersionParse,\n value: string,\n );\n constructor(\n type: KameleoonException,\n secondParam?:\n | number\n | string\n | unknown\n | KameleoonStorageKey\n | TargetingType,\n thirdParam?: string | KameleoonStorageKey,\n ) {\n super(`Error: ${type}`);\n\n this.name = 'KameleoonError';\n this.errorType = type;\n\n switch (type) {\n case KameleoonException.Initialization:\n case KameleoonException.Credentials:\n case KameleoonException.ClientConfiguration:\n case KameleoonException.VisitorCodeMaxLength:\n case KameleoonException.VisitorCodeEmpty:\n case KameleoonException.StorageInitialization:\n case KameleoonException.VisitAmount:\n case KameleoonException.EventSourceInitialization:\n case KameleoonException.RemoteData:\n case KameleoonException.MaximumRetriesReached:\n case KameleoonException.StorageEmpty:\n this.message = ERROR_MESSAGES[type]();\n break;\n case KameleoonException.CookieParse:\n case KameleoonException.NotTargeted:\n case KameleoonException.FeatureFlagConfigurationNotFound:\n case KameleoonException.NumberParse:\n case KameleoonException.VersionParse:\n case KameleoonException.SemanticVersionParse:\n this.message = ERROR_MESSAGES[type](secondParam as string);\n break;\n case KameleoonException.FeatureFlagVariationNotFound:\n case KameleoonException.FeatureFlagEnvironmentDisabled:\n case KameleoonException.FeatureFlagVariableNotFound:\n this.message = ERROR_MESSAGES[type](\n secondParam as string,\n thirdParam as string,\n );\n break;\n case KameleoonException.StorageWrite:\n case KameleoonException.JSONParse:\n this.message = ERROR_MESSAGES[type](secondParam);\n break;\n case KameleoonException.StorageRead:\n this.message = ERROR_MESSAGES[type](secondParam as KameleoonStorageKey);\n break;\n case KameleoonException.StorageParse:\n this.message = ERROR_MESSAGES[type](\n secondParam,\n thirdParam as KameleoonStorageKey,\n );\n break;\n case KameleoonException.TargetingCondition:\n this.message = ERROR_MESSAGES[type](secondParam as TargetingType);\n break;\n case KameleoonException.AmongValuesCheck:\n this.message = ERROR_MESSAGES[type](secondParam, thirdParam as string);\n break;\n default:\n exhaustCheck(type);\n }\n }\n\n get type(): KameleoonException {\n return this.errorType;\n }\n}\n"],"mappings":"msBAUO,KAAM,CAAAA,cAAc,QAAS,CAAAC,KAAM,CAuExCC,WAAWA,CACTC,CAAwB,CACxBC,CAKiB,CACjBC,CAAyC,CACzC,CACA,KAAK,WAAAC,MAAA,CAAWH,CAAI,CAAE,CAAC,CAAAI,eAAA,0BAEvB,IAAI,CAACC,IAAI,CAAG,gBAAgB,CAC5B,IAAI,CAACC,SAAS,CAAGN,CAAI,CAEbA,CAAI,GACLO,yBAAkB,CAACC,cAAc,EADhCR,CAAI,GAELO,yBAAkB,CAACE,WAAW,EAF7BT,CAAI,GAGLO,yBAAkB,CAACG,mBAAmB,EAHrCV,CAAI,GAILO,yBAAkB,CAACI,oBAAoB,EAJtCX,CAAI,GAKLO,yBAAkB,CAACK,gBAAgB,EALlCZ,CAAI,GAMLO,yBAAkB,CAACM,qBAAqB,EANvCb,CAAI,GAOLO,yBAAkB,CAACO,WAAW,EAP7Bd,CAAI,GAQLO,yBAAkB,CAACQ,yBAAyB,EAR3Cf,CAAI,GASLO,yBAAkB,CAACS,UAAU,EAT5BhB,CAAI,GAULO,yBAAkB,CAACU,qBAAqB,EAVvCjB,CAAI,GAWLO,yBAAkB,CAACW,YAAY,CAClC,IAAI,CAACC,OAAO,CAAGC,yBAAc,CAACpB,CAAI,CAAC,CAAC,CAAC,CAZjCA,CAAI,GAcLO,yBAAkB,CAACc,WAAW,EAd7BrB,CAAI,GAeLO,yBAAkB,CAACe,WAAW,EAf7BtB,CAAI,GAgBLO,yBAAkB,CAACgB,gCAAgC,EAhBlDvB,CAAI,GAiBLO,yBAAkB,CAACiB,WAAW,EAjB7BxB,CAAI,GAkBLO,yBAAkB,CAACkB,YAAY,EAlB9BzB,CAAI,GAmBLO,yBAAkB,CAACmB,oBAAoB,CAC1C,IAAI,CAACP,OAAO,CAAGC,yBAAc,CAACpB,CAAI,CAAC,CAACC,CAAqB,CAAC,CApBtDD,CAAI,GAsBLO,yBAAkB,CAACoB,4BAA4B,EAtB9C3B,CAAI,GAuBLO,yBAAkB,CAACqB,8BAA8B,EAvBhD5B,CAAI,GAwBLO,yBAAkB,CAACsB,2BAA2B,CACjD,IAAI,CAACV,OAAO,CAAGC,yBAAc,CAACpB,CAAI,CAAC,CACjCC,CAAW,CACXC,CACF,CAAC,CA5BGF,CAAI,GA8BLO,yBAAkB,CAACuB,YAAY,EA9B9B9B,CAAI,GA+BLO,yBAAkB,CAACwB,SAAS,CAC/B,IAAI,CAACZ,OAAO,CAAGC,yBAAc,CAACpB,CAAI,CAAC,CAACC,CAAW,CAAC,CAhC5CD,CAAI,GAkCLO,yBAAkB,CAACyB,WAAW,CACjC,IAAI,CAACb,OAAO,CAAGC,yBAAc,CAACpB,CAAI,CAAC,CAACC,CAAkC,CAAC,CAnCnED,CAAI,GAqCLO,yBAAkB,CAAC0B,YAAY,CAClC,IAAI,CAACd,OAAO,CAAGC,yBAAc,CAACpB,CAAI,CAAC,CACjCC,CAAW,CACXC,CACF,CAAC,CAzCGF,CAAI,GA2CLO,yBAAkB,CAAC2B,kBAAkB,CACxC,IAAI,CAACf,OAAO,CAAGC,yBAAc,CAACpB,CAAI,CAAC,CAACC,CAA4B,CAAC,CA5C7DD,CAAI,GA8CLO,yBAAkB,CAAC4B,gBAAgB,CACtC,IAAI,CAAChB,OAAO,CAAGC,yBAAc,CAACpB,CAAI,CAAC,CAACC,CAAW,CAAEC,CAAoB,CAAC,CAGtE,GAAAkC,qBAAY,EAACpC,CAAI,CAEvB,CAEA,GAAI,CAAAA,IAAIA,CAAA,CAAuB,CAC7B,MAAO,KAAI,CAACM,SACd,CACF,CAAC+B,OAAA,CAAAxC,cAAA,CAAAA,cAAA"}
1
+ {"version":3,"file":"kameleoonError.js","names":["KameleoonError","Error","constructor","type","secondParam","thirdParam","concat","_defineProperty","name","errorType","KameleoonException","Initialization","Credentials","ClientConfiguration","VisitorCodeMaxLength","VisitorCodeEmpty","StorageInitialization","VisitAmount","EventSourceInitialization","RemoteData","MaximumRetriesReached","StorageEmpty","message","ERROR_MESSAGES","CookieParse","NotTargeted","FeatureFlagConfigurationNotFound","NumberParse","VersionParse","SemanticVersionParse","FeatureFlagVariationNotFound","FeatureFlagEnvironmentDisabled","FeatureFlagVariableNotFound","StorageWrite","JSONParse","StorageRead","StorageParse","TargetingCondition","AmongValuesCheck","RangeCheck","exhaustCheck","exports"],"sources":["../../src/kameleoonError/kameleoonError.ts"],"sourcesContent":["import { KameleoonStorageKey } from 'src/storage';\nimport { TargetingType } from 'src/targeting';\nimport { ERROR_MESSAGES } from './constants';\nimport { exhaustCheck } from './helpers';\nimport { KameleoonException } from './types';\n\n/**\n * @class\n * KameleoonError - extends standard `Error` by adding custom `type` property with the type of `KameleoonException`\n * */\nexport class KameleoonError extends Error {\n private errorType: KameleoonException;\n\n /**\n * @param {KameleoonException} type - type of KameleoonError represented by `KameleoonException` enum\n * */\n constructor(\n type:\n | KameleoonException.Initialization\n | KameleoonException.Credentials\n | KameleoonException.ClientConfiguration\n | KameleoonException.VisitorCodeMaxLength\n | KameleoonException.VisitorCodeEmpty\n | KameleoonException.VisitAmount\n | KameleoonException.StorageInitialization\n | KameleoonException.EventSourceInitialization\n | KameleoonException.RemoteData\n | KameleoonException.MaximumRetriesReached\n | KameleoonException.StorageEmpty,\n );\n constructor(\n type:\n | KameleoonException.FeatureFlagConfigurationNotFound\n | KameleoonException.FeatureFlagEnvironmentDisabled,\n featureKey: string,\n );\n constructor(\n type:\n | KameleoonException.FeatureFlagConfigurationNotFound\n | KameleoonException.FeatureFlagEnvironmentDisabled,\n featureKey: string,\n environment: string,\n );\n constructor(\n type: KameleoonException.FeatureFlagVariableNotFound,\n variableKey: string,\n visitorCode: string,\n );\n constructor(\n type: KameleoonException.FeatureFlagVariationNotFound,\n variationKey: string,\n visitorCode: string,\n );\n constructor(type: KameleoonException.NotTargeted, visitorCode: string);\n constructor(type: KameleoonException.CookieParse, message: string);\n constructor(\n type: KameleoonException.StorageWrite | KameleoonException.JSONParse,\n err: unknown,\n );\n constructor(type: KameleoonException.StorageRead, storageKey: string);\n constructor(\n type: KameleoonException.StorageParse,\n err: unknown,\n key: KameleoonStorageKey,\n );\n constructor(\n type: KameleoonException.TargetingCondition,\n targetingType: TargetingType,\n );\n constructor(\n type: KameleoonException.AmongValuesCheck,\n err: unknown,\n value: string,\n );\n constructor(type: KameleoonException.RangeCheck, value?: number[] | null);\n constructor(\n type:\n | KameleoonException.NumberParse\n | KameleoonException.VersionParse\n | KameleoonException.SemanticVersionParse,\n value: string,\n );\n constructor(\n type: KameleoonException,\n secondParam?:\n | number\n | string\n | unknown\n | KameleoonStorageKey\n | TargetingType,\n thirdParam?: string | KameleoonStorageKey,\n ) {\n super(`Error: ${type}`);\n\n this.name = 'KameleoonError';\n this.errorType = type;\n\n switch (type) {\n case KameleoonException.Initialization:\n case KameleoonException.Credentials:\n case KameleoonException.ClientConfiguration:\n case KameleoonException.VisitorCodeMaxLength:\n case KameleoonException.VisitorCodeEmpty:\n case KameleoonException.StorageInitialization:\n case KameleoonException.VisitAmount:\n case KameleoonException.EventSourceInitialization:\n case KameleoonException.RemoteData:\n case KameleoonException.MaximumRetriesReached:\n case KameleoonException.StorageEmpty:\n this.message = ERROR_MESSAGES[type]();\n break;\n case KameleoonException.CookieParse:\n case KameleoonException.NotTargeted:\n case KameleoonException.FeatureFlagConfigurationNotFound:\n case KameleoonException.NumberParse:\n case KameleoonException.VersionParse:\n case KameleoonException.SemanticVersionParse:\n this.message = ERROR_MESSAGES[type](secondParam as string);\n break;\n case KameleoonException.FeatureFlagVariationNotFound:\n case KameleoonException.FeatureFlagEnvironmentDisabled:\n case KameleoonException.FeatureFlagVariableNotFound:\n this.message = ERROR_MESSAGES[type](\n secondParam as string,\n thirdParam as string,\n );\n break;\n case KameleoonException.StorageWrite:\n case KameleoonException.JSONParse:\n this.message = ERROR_MESSAGES[type](secondParam);\n break;\n case KameleoonException.StorageRead:\n this.message = ERROR_MESSAGES[type](secondParam as KameleoonStorageKey);\n break;\n case KameleoonException.StorageParse:\n this.message = ERROR_MESSAGES[type](\n secondParam,\n thirdParam as KameleoonStorageKey,\n );\n break;\n case KameleoonException.TargetingCondition:\n this.message = ERROR_MESSAGES[type](secondParam as TargetingType);\n break;\n case KameleoonException.AmongValuesCheck:\n this.message = ERROR_MESSAGES[type](secondParam, thirdParam as string);\n break;\n case KameleoonException.RangeCheck:\n this.message = ERROR_MESSAGES[type](\n secondParam as number[] | null | undefined,\n );\n break;\n default:\n exhaustCheck(type);\n }\n }\n\n get type(): KameleoonException {\n return this.errorType;\n }\n}\n"],"mappings":"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"}
@@ -21,6 +21,7 @@ export declare enum KameleoonException {
21
21
  ClientConfiguration = "ClientConfiguration",
22
22
  TargetingCondition = "TargetingCondition",
23
23
  AmongValuesCheck = "AmongValuesCheck",
24
+ RangeCheck = "RangeCheck",
24
25
  Initialization = "Initialization",
25
26
  JSONParse = "JSONParse",
26
27
  NumberParse = "NumberParse",
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonException=void 0;let KameleoonException=exports.KameleoonException=function(a){return a.Credentials="Credentials",a.EventSourceInitialization="EventSourceInitialization",a.FeatureFlagConfigurationNotFound="FeatureFlagConfigurationNotFound",a.FeatureFlagVariableNotFound="FeatureFlagVariableNotFound",a.FeatureFlagVariationNotFound="FeatureFlagVariationNotFound",a.FeatureFlagEnvironmentDisabled="FeatureFlagEnvironmentDisabled",a.NotTargeted="NotTargeted",a.VisitAmount="VisitAmount",a.VisitorCodeMaxLength="VisitorCodeMaxLength",a.VisitorCodeEmpty="VisitorCodeEmpty",a.StorageInitialization="StorageInitialization",a.StorageWrite="StorageWrite",a.StorageRead="StorageRead",a.StorageParse="StorageParse",a.StorageEmpty="StorageEmpty",a.ClientConfiguration="ClientConfiguration",a.TargetingCondition="TargetingCondition",a.AmongValuesCheck="AmongValuesCheck",a.Initialization="Initialization",a.JSONParse="JSONParse",a.NumberParse="NumberParse",a.VersionParse="VersionParse",a.CookieParse="CookieParse",a.SemanticVersionParse="SemanticVersionParse",a.RemoteData="RemoteData",a.MaximumRetriesReached="MaximumRetriesReached",a}({});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonException=void 0;let KameleoonException=exports.KameleoonException=function(a){return a.Credentials="Credentials",a.EventSourceInitialization="EventSourceInitialization",a.FeatureFlagConfigurationNotFound="FeatureFlagConfigurationNotFound",a.FeatureFlagVariableNotFound="FeatureFlagVariableNotFound",a.FeatureFlagVariationNotFound="FeatureFlagVariationNotFound",a.FeatureFlagEnvironmentDisabled="FeatureFlagEnvironmentDisabled",a.NotTargeted="NotTargeted",a.VisitAmount="VisitAmount",a.VisitorCodeMaxLength="VisitorCodeMaxLength",a.VisitorCodeEmpty="VisitorCodeEmpty",a.StorageInitialization="StorageInitialization",a.StorageWrite="StorageWrite",a.StorageRead="StorageRead",a.StorageParse="StorageParse",a.StorageEmpty="StorageEmpty",a.ClientConfiguration="ClientConfiguration",a.TargetingCondition="TargetingCondition",a.AmongValuesCheck="AmongValuesCheck",a.RangeCheck="RangeCheck",a.Initialization="Initialization",a.JSONParse="JSONParse",a.NumberParse="NumberParse",a.VersionParse="VersionParse",a.CookieParse="CookieParse",a.SemanticVersionParse="SemanticVersionParse",a.RemoteData="RemoteData",a.MaximumRetriesReached="MaximumRetriesReached",a}({});
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["KameleoonException","exports","Credentials","EventSourceInitialization","FeatureFlagConfigurationNotFound","FeatureFlagVariableNotFound","FeatureFlagVariationNotFound","FeatureFlagEnvironmentDisabled","NotTargeted","VisitAmount","VisitorCodeMaxLength","VisitorCodeEmpty","StorageInitialization","StorageWrite","StorageRead","StorageParse","StorageEmpty","ClientConfiguration","TargetingCondition","AmongValuesCheck","Initialization","JSONParse","NumberParse","VersionParse","CookieParse","SemanticVersionParse","RemoteData","MaximumRetriesReached"],"sources":["../../src/kameleoonError/types.ts"],"sourcesContent":["/**\n * @readonly\n * @enum {string} an Enum containing all possible variants of exception types `KameleoonError`\n * */\nexport enum KameleoonException {\n Credentials = 'Credentials',\n EventSourceInitialization = 'EventSourceInitialization',\n FeatureFlagConfigurationNotFound = 'FeatureFlagConfigurationNotFound',\n FeatureFlagVariableNotFound = 'FeatureFlagVariableNotFound',\n FeatureFlagVariationNotFound = 'FeatureFlagVariationNotFound',\n FeatureFlagEnvironmentDisabled = 'FeatureFlagEnvironmentDisabled',\n NotTargeted = 'NotTargeted',\n VisitAmount = 'VisitAmount',\n VisitorCodeMaxLength = 'VisitorCodeMaxLength',\n VisitorCodeEmpty = 'VisitorCodeEmpty',\n StorageInitialization = 'StorageInitialization',\n StorageWrite = 'StorageWrite',\n StorageRead = 'StorageRead',\n StorageParse = 'StorageParse',\n StorageEmpty = 'StorageEmpty',\n ClientConfiguration = 'ClientConfiguration',\n TargetingCondition = 'TargetingCondition',\n AmongValuesCheck = 'AmongValuesCheck',\n Initialization = 'Initialization',\n JSONParse = 'JSONParse',\n NumberParse = 'NumberParse',\n VersionParse = 'VersionParse',\n CookieParse = 'CookieParse',\n SemanticVersionParse = 'SemanticVersionParse',\n RemoteData = 'RemoteData',\n MaximumRetriesReached = 'MaximumRetriesReached',\n}\n"],"mappings":"yGAIY,CAAAA,kBAAkB,CAAAC,OAAA,CAAAD,kBAAA,UAAlBA,CAAkB,QAAlB,CAAAA,CAAkB,CAAAE,WAAA,eAAlBF,CAAkB,CAAAG,yBAAA,6BAAlBH,CAAkB,CAAAI,gCAAA,oCAAlBJ,CAAkB,CAAAK,2BAAA,+BAAlBL,CAAkB,CAAAM,4BAAA,gCAAlBN,CAAkB,CAAAO,8BAAA,kCAAlBP,CAAkB,CAAAQ,WAAA,eAAlBR,CAAkB,CAAAS,WAAA,eAAlBT,CAAkB,CAAAU,oBAAA,wBAAlBV,CAAkB,CAAAW,gBAAA,oBAAlBX,CAAkB,CAAAY,qBAAA,yBAAlBZ,CAAkB,CAAAa,YAAA,gBAAlBb,CAAkB,CAAAc,WAAA,eAAlBd,CAAkB,CAAAe,YAAA,gBAAlBf,CAAkB,CAAAgB,YAAA,gBAAlBhB,CAAkB,CAAAiB,mBAAA,uBAAlBjB,CAAkB,CAAAkB,kBAAA,sBAAlBlB,CAAkB,CAAAmB,gBAAA,oBAAlBnB,CAAkB,CAAAoB,cAAA,kBAAlBpB,CAAkB,CAAAqB,SAAA,aAAlBrB,CAAkB,CAAAsB,WAAA,eAAlBtB,CAAkB,CAAAuB,YAAA,gBAAlBvB,CAAkB,CAAAwB,WAAA,eAAlBxB,CAAkB,CAAAyB,oBAAA,wBAAlBzB,CAAkB,CAAA0B,UAAA,cAAlB1B,CAAkB,CAAA2B,qBAAA,yBAAlB3B,CAAkB"}
1
+ {"version":3,"file":"types.js","names":["KameleoonException","exports","Credentials","EventSourceInitialization","FeatureFlagConfigurationNotFound","FeatureFlagVariableNotFound","FeatureFlagVariationNotFound","FeatureFlagEnvironmentDisabled","NotTargeted","VisitAmount","VisitorCodeMaxLength","VisitorCodeEmpty","StorageInitialization","StorageWrite","StorageRead","StorageParse","StorageEmpty","ClientConfiguration","TargetingCondition","AmongValuesCheck","RangeCheck","Initialization","JSONParse","NumberParse","VersionParse","CookieParse","SemanticVersionParse","RemoteData","MaximumRetriesReached"],"sources":["../../src/kameleoonError/types.ts"],"sourcesContent":["/**\n * @readonly\n * @enum {string} an Enum containing all possible variants of exception types `KameleoonError`\n * */\nexport enum KameleoonException {\n Credentials = 'Credentials',\n EventSourceInitialization = 'EventSourceInitialization',\n FeatureFlagConfigurationNotFound = 'FeatureFlagConfigurationNotFound',\n FeatureFlagVariableNotFound = 'FeatureFlagVariableNotFound',\n FeatureFlagVariationNotFound = 'FeatureFlagVariationNotFound',\n FeatureFlagEnvironmentDisabled = 'FeatureFlagEnvironmentDisabled',\n NotTargeted = 'NotTargeted',\n VisitAmount = 'VisitAmount',\n VisitorCodeMaxLength = 'VisitorCodeMaxLength',\n VisitorCodeEmpty = 'VisitorCodeEmpty',\n StorageInitialization = 'StorageInitialization',\n StorageWrite = 'StorageWrite',\n StorageRead = 'StorageRead',\n StorageParse = 'StorageParse',\n StorageEmpty = 'StorageEmpty',\n ClientConfiguration = 'ClientConfiguration',\n TargetingCondition = 'TargetingCondition',\n AmongValuesCheck = 'AmongValuesCheck',\n RangeCheck = 'RangeCheck',\n Initialization = 'Initialization',\n JSONParse = 'JSONParse',\n NumberParse = 'NumberParse',\n VersionParse = 'VersionParse',\n CookieParse = 'CookieParse',\n SemanticVersionParse = 'SemanticVersionParse',\n RemoteData = 'RemoteData',\n MaximumRetriesReached = 'MaximumRetriesReached',\n}\n"],"mappings":"yGAIY,CAAAA,kBAAkB,CAAAC,OAAA,CAAAD,kBAAA,UAAlBA,CAAkB,QAAlB,CAAAA,CAAkB,CAAAE,WAAA,eAAlBF,CAAkB,CAAAG,yBAAA,6BAAlBH,CAAkB,CAAAI,gCAAA,oCAAlBJ,CAAkB,CAAAK,2BAAA,+BAAlBL,CAAkB,CAAAM,4BAAA,gCAAlBN,CAAkB,CAAAO,8BAAA,kCAAlBP,CAAkB,CAAAQ,WAAA,eAAlBR,CAAkB,CAAAS,WAAA,eAAlBT,CAAkB,CAAAU,oBAAA,wBAAlBV,CAAkB,CAAAW,gBAAA,oBAAlBX,CAAkB,CAAAY,qBAAA,yBAAlBZ,CAAkB,CAAAa,YAAA,gBAAlBb,CAAkB,CAAAc,WAAA,eAAlBd,CAAkB,CAAAe,YAAA,gBAAlBf,CAAkB,CAAAgB,YAAA,gBAAlBhB,CAAkB,CAAAiB,mBAAA,uBAAlBjB,CAAkB,CAAAkB,kBAAA,sBAAlBlB,CAAkB,CAAAmB,gBAAA,oBAAlBnB,CAAkB,CAAAoB,UAAA,cAAlBpB,CAAkB,CAAAqB,cAAA,kBAAlBrB,CAAkB,CAAAsB,SAAA,aAAlBtB,CAAkB,CAAAuB,WAAA,eAAlBvB,CAAkB,CAAAwB,YAAA,gBAAlBxB,CAAkB,CAAAyB,WAAA,eAAlBzB,CAAkB,CAAA0B,oBAAA,wBAAlB1B,CAAkB,CAAA2B,UAAA,cAAlB3B,CAAkB,CAAA4B,qBAAA,yBAAlB5B,CAAkB"}
@@ -161,7 +161,7 @@ export type StrictFirstParameterRecord<T> = {
161
161
  [K in keyof T]: `?${Uncapitalize<K & string>}=`;
162
162
  };
163
163
  /**
164
- * @type HeadersType - a type of headers available in the request
164
+ * @type `HeadersType` - a type of headers available in the request
165
165
  * */
166
166
  export type HeadersType = Partial<Record<Header, string>>;
167
167
  export type TrackParametersType = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["HttpMethod","exports","Get","Post","DataApiQuery","VisitEvent","VisitData","DataMap","EVENT_TYPE_KEYS","PARAMETER_KEYS","TRACKING_KEYS","QUERY_KEYS"],"sources":["../../src/requester/types.ts"],"sourcesContent":["import { JSONType } from 'src/clientConfiguration';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n BrowserIndexMap,\n BrowserType,\n OperatingSystemType,\n} from 'src/kameleoonData';\nimport {\n DeviceType,\n KCSType,\n OperatingSystemIndexMap,\n} from 'src/kameleoonData/types';\nimport { Header } from './constants';\nimport { VisitorDataFiltersType } from 'src/utilities';\n\nexport type UrlProviderInitializeParamsType = {\n siteCode: string;\n packageInfo: ExternalPackageInfoType;\n environment?: Environment;\n};\n\nexport type RequesterParamsType = {\n siteCode: string;\n environment?: Environment;\n packageInfo: ExternalPackageInfoType;\n requestDispatcher: IExternalRequestDispatcher;\n};\n\nexport type TrackExperimentParamsType = {\n dataUrl: string;\n variationDataUrl: string;\n visitorCode: string;\n isUnallocated: boolean;\n userAgent?: string;\n isTargetedRule?: boolean;\n};\n\nexport type TrackDataParamsType = {\n visitorCode: string;\n body: string;\n userAgent?: string;\n isMappingIdentifier?: boolean;\n};\n\nexport type GetVisitorDataParamsType = {\n visitorCode: string;\n filters: VisitorDataFiltersType;\n isMappingIdentifier?: boolean;\n};\n\nexport type GetVisitorDataUrlParamsType = {\n visitorCode: string;\n filters: VisitorDataFiltersType;\n isMappingIdentifier?: boolean;\n};\n\ntype EventDataType = {\n sdk?: {\n name: string;\n version: string;\n };\n itp: boolean;\n time: number;\n};\n\ntype CustomDataEventType = {\n data: {\n index: number;\n valuesCountMap: {\n [value: string]: number;\n };\n overwrite: boolean;\n mappingIdentifier: boolean;\n };\n} & EventDataType;\n\ntype ExperimentEventType = {\n data: {\n id: number;\n variationId: number;\n };\n} & EventDataType;\n\ntype ConversionEventType = {\n data: {\n goalId: number;\n revenue: number;\n negative: boolean;\n };\n} & EventDataType;\n\ntype BrowserIndexType = (typeof BrowserIndexMap)[BrowserType];\ntype OperatingSystemIndexType =\n (typeof OperatingSystemIndexMap)[OperatingSystemType];\n\nexport type PageEventType = {\n data: {\n href: string;\n canonicalHref: string | null;\n title: string;\n keyPagesIndices: number[] | [null];\n referrerHref: string | null;\n referrersIndices: number[] | [null];\n };\n} & EventDataType;\n\nexport type GeolocationEventType = {\n data: {\n country: string;\n region: string | null;\n city: string | null;\n postalCode: string | null;\n latitude: number | null;\n longitude: number | null;\n };\n} & EventDataType;\n\nexport type StaticDataEventType = {\n data: {\n visitNumber: number;\n timeSincePreviousVisit: number;\n firstReferrerHref: string | null;\n browser: BrowserType | null;\n browserIndex: BrowserIndexType | null;\n browserVersion: number | null;\n os: OperatingSystemType | null;\n osIndex: OperatingSystemIndexType | null;\n windowWidth: number | null;\n windowHeight: number | null;\n screenWidth: number | null;\n screenHeight: number | null;\n timeZoneId: string | null;\n localeLanguageTag: string | null;\n deviceType: DeviceType | null;\n mappingIdentifier: string | null;\n };\n} & EventDataType;\n\nexport type VisitType = {\n siteCode: string;\n visitorCode: string;\n timeStarted: number;\n customDataEvents?: CustomDataEventType[];\n experimentEvents?: ExperimentEventType[];\n conversionEvents?: ConversionEventType[];\n geolocationEvents?: GeolocationEventType[];\n staticDataEvent?: StaticDataEventType;\n pageEvents?: PageEventType[];\n};\n\nexport type GetVisitorDataResultType = {\n previousVisits?: VisitType[];\n currentVisit?: VisitType;\n kcs?: KCSType;\n};\n\nexport enum HttpMethod {\n Get = 'GET',\n Post = 'POST',\n}\n\nexport enum DataApiQuery {\n VisitEvent,\n VisitData,\n DataMap,\n}\n\nconst EVENT_TYPE_KEYS = [\n 'customData',\n 'staticData',\n 'page',\n 'conversion',\n 'geolocation',\n 'activity',\n 'experiment',\n] as const;\nconst PARAMETER_KEYS = [\n 'valuesCountMap',\n 'mappingValue',\n 'id',\n 'nonce',\n 'country',\n 'environment',\n 'city',\n 'region',\n 'latitude',\n 'geolocation',\n 'longitude',\n 'mappingIdentifier',\n 'postalCode',\n 'sdkName',\n 'sdkVersion',\n 'kcs',\n 'browserIndex',\n 'browserVersion',\n 'siteCode',\n 'visitorCode',\n 'currentVisit',\n 'maxNumberPreviousVisits',\n 'customData',\n 'negative',\n 'revenue',\n 'title',\n 'os',\n 'conversion',\n 'staticData',\n 'osIndex',\n 'browser',\n 'referrersIndices',\n 'overwrite',\n 'index',\n 'href',\n 'experiment',\n 'page',\n 'variationId',\n 'deviceType',\n 'goalId',\n 'ts',\n 'key',\n] as const;\nconst TRACKING_KEYS = ['visit', 'map'] as const;\nconst QUERY_KEYS = ['sse', 'visitor', 'map', 'events'] as const;\n\nexport type TrackingType = Record<\n Capitalize<(typeof TRACKING_KEYS)[number]>,\n string\n>;\nexport type QueryType = Record<Capitalize<(typeof QUERY_KEYS)[number]>, string>;\nexport type ParameterType = Record<\n Capitalize<(typeof PARAMETER_KEYS)[number]>,\n string\n>;\nexport type EventType = Record<\n Capitalize<(typeof EVENT_TYPE_KEYS)[number]>,\n string\n>;\n\nexport type StrictTrackingRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}/`;\n};\nexport type StrictQueryRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}?siteCode=`;\n};\nexport type StrictEventTypeRecord<T> = {\n [K in keyof T]: `eventType=${Uncapitalize<K & string>}`;\n};\nexport type StrictParameterRecord<T> = {\n [K in keyof T]: `&${Uncapitalize<K & string>}=`;\n};\nexport type StrictFirstParameterRecord<T> = {\n [K in keyof T]: `?${Uncapitalize<K & string>}=`;\n};\n\n/**\n * @type HeadersType - a type of headers available in the request\n * */\nexport type HeadersType = Partial<Record<Header, string>>;\n\nexport type TrackParametersType = {\n url: string;\n headers?: HeadersType;\n body: string;\n};\n\n/**\n * @interface an interface of External Request Dispatcher which will be used to perform requests.\n * */\nexport interface IExternalRequestDispatcher {\n /**\n * @method track - send a track request\n * @param {TrackParametersType} parameters - track parameters\n * */\n track: (params: TrackParametersType) => Promise<boolean>;\n /**\n * @method getClientConfiguration - get client configuration\n * @param {string} url - url address\n * @param {HeadersType} headers - headers\n * */\n getClientConfiguration: (\n url: string,\n headers: HeadersType,\n ) => Promise<JSONType>;\n /**\n * @method getRemoteData - get data from remote server of Kameleoon\n * @param {string} url - url address\n * */\n getRemoteData: (url: string) => Promise<JSONType>;\n}\n"],"mappings":"sHA4JY,CAAAA,UAAU,CAAAC,OAAA,CAAAD,UAAA,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAAE,GAAA,OAAVF,CAAU,CAAAG,IAAA,QAAVH,CAAU,MAKVI,YAAY,CAAAH,OAAA,CAAAG,YAAA,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAZA,CAAY,CAAAC,UAAA,iBAAZD,CAAY,CAAZA,CAAY,CAAAE,SAAA,gBAAZF,CAAY,CAAZA,CAAY,CAAAG,OAAA,cAAZH,CAAY,WAMlB,CAAAI,eAAe,CAAG,CACtB,YAAY,CACZ,YAAY,CACZ,MAAM,CACN,YAAY,CACZ,aAAa,CACb,UAAU,CACV,YAAY,CACJ,CACJC,cAAc,CAAG,CACrB,gBAAgB,CAChB,cAAc,CACd,IAAI,CACJ,OAAO,CACP,SAAS,CACT,aAAa,CACb,MAAM,CACN,QAAQ,CACR,UAAU,CACV,aAAa,CACb,WAAW,CACX,mBAAmB,CACnB,YAAY,CACZ,SAAS,CACT,YAAY,CACZ,KAAK,CACL,cAAc,CACd,gBAAgB,CAChB,UAAU,CACV,aAAa,CACb,cAAc,CACd,yBAAyB,CACzB,YAAY,CACZ,UAAU,CACV,SAAS,CACT,OAAO,CACP,IAAI,CACJ,YAAY,CACZ,YAAY,CACZ,SAAS,CACT,SAAS,CACT,kBAAkB,CAClB,WAAW,CACX,OAAO,CACP,MAAM,CACN,YAAY,CACZ,MAAM,CACN,aAAa,CACb,YAAY,CACZ,QAAQ,CACR,IAAI,CACJ,KAAK,CACG,CACJC,aAAa,CAAG,CAAC,OAAO,CAAE,KAAK,CAAU,CACzCC,UAAU,CAAG,CAAC,KAAK,CAAE,SAAS,CAAE,KAAK,CAAE,QAAQ,CAAU"}
1
+ {"version":3,"file":"types.js","names":["HttpMethod","exports","Get","Post","DataApiQuery","VisitEvent","VisitData","DataMap","EVENT_TYPE_KEYS","PARAMETER_KEYS","TRACKING_KEYS","QUERY_KEYS"],"sources":["../../src/requester/types.ts"],"sourcesContent":["import { JSONType } from 'src/clientConfiguration';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n BrowserIndexMap,\n BrowserType,\n OperatingSystemType,\n} from 'src/kameleoonData';\nimport {\n DeviceType,\n KCSType,\n OperatingSystemIndexMap,\n} from 'src/kameleoonData/types';\nimport { Header } from './constants';\nimport { VisitorDataFiltersType } from 'src/utilities';\n\nexport type UrlProviderInitializeParamsType = {\n siteCode: string;\n packageInfo: ExternalPackageInfoType;\n environment?: Environment;\n};\n\nexport type RequesterParamsType = {\n siteCode: string;\n environment?: Environment;\n packageInfo: ExternalPackageInfoType;\n requestDispatcher: IExternalRequestDispatcher;\n};\n\nexport type TrackExperimentParamsType = {\n dataUrl: string;\n variationDataUrl: string;\n visitorCode: string;\n isUnallocated: boolean;\n userAgent?: string;\n isTargetedRule?: boolean;\n};\n\nexport type TrackDataParamsType = {\n visitorCode: string;\n body: string;\n userAgent?: string;\n isMappingIdentifier?: boolean;\n};\n\nexport type GetVisitorDataParamsType = {\n visitorCode: string;\n filters: VisitorDataFiltersType;\n isMappingIdentifier?: boolean;\n};\n\nexport type GetVisitorDataUrlParamsType = {\n visitorCode: string;\n filters: VisitorDataFiltersType;\n isMappingIdentifier?: boolean;\n};\n\ntype EventDataType = {\n sdk?: {\n name: string;\n version: string;\n };\n itp: boolean;\n time: number;\n};\n\ntype CustomDataEventType = {\n data: {\n index: number;\n valuesCountMap: {\n [value: string]: number;\n };\n overwrite: boolean;\n mappingIdentifier: boolean;\n };\n} & EventDataType;\n\ntype ExperimentEventType = {\n data: {\n id: number;\n variationId: number;\n };\n} & EventDataType;\n\ntype ConversionEventType = {\n data: {\n goalId: number;\n revenue: number;\n negative: boolean;\n };\n} & EventDataType;\n\ntype BrowserIndexType = (typeof BrowserIndexMap)[BrowserType];\ntype OperatingSystemIndexType =\n (typeof OperatingSystemIndexMap)[OperatingSystemType];\n\nexport type PageEventType = {\n data: {\n href: string;\n canonicalHref: string | null;\n title: string;\n keyPagesIndices: number[] | [null];\n referrerHref: string | null;\n referrersIndices: number[] | [null];\n };\n} & EventDataType;\n\nexport type GeolocationEventType = {\n data: {\n country: string;\n region: string | null;\n city: string | null;\n postalCode: string | null;\n latitude: number | null;\n longitude: number | null;\n };\n} & EventDataType;\n\nexport type StaticDataEventType = {\n data: {\n visitNumber: number;\n timeSincePreviousVisit: number;\n firstReferrerHref: string | null;\n browser: BrowserType | null;\n browserIndex: BrowserIndexType | null;\n browserVersion: number | null;\n os: OperatingSystemType | null;\n osIndex: OperatingSystemIndexType | null;\n windowWidth: number | null;\n windowHeight: number | null;\n screenWidth: number | null;\n screenHeight: number | null;\n timeZoneId: string | null;\n localeLanguageTag: string | null;\n deviceType: DeviceType | null;\n mappingIdentifier: string | null;\n };\n} & EventDataType;\n\nexport type VisitType = {\n siteCode: string;\n visitorCode: string;\n timeStarted: number;\n customDataEvents?: CustomDataEventType[];\n experimentEvents?: ExperimentEventType[];\n conversionEvents?: ConversionEventType[];\n geolocationEvents?: GeolocationEventType[];\n staticDataEvent?: StaticDataEventType;\n pageEvents?: PageEventType[];\n};\n\nexport type GetVisitorDataResultType = {\n previousVisits?: VisitType[];\n currentVisit?: VisitType;\n kcs?: KCSType;\n};\n\nexport enum HttpMethod {\n Get = 'GET',\n Post = 'POST',\n}\n\nexport enum DataApiQuery {\n VisitEvent,\n VisitData,\n DataMap,\n}\n\nconst EVENT_TYPE_KEYS = [\n 'customData',\n 'staticData',\n 'page',\n 'conversion',\n 'geolocation',\n 'activity',\n 'experiment',\n] as const;\nconst PARAMETER_KEYS = [\n 'valuesCountMap',\n 'mappingValue',\n 'id',\n 'nonce',\n 'country',\n 'environment',\n 'city',\n 'region',\n 'latitude',\n 'geolocation',\n 'longitude',\n 'mappingIdentifier',\n 'postalCode',\n 'sdkName',\n 'sdkVersion',\n 'kcs',\n 'browserIndex',\n 'browserVersion',\n 'siteCode',\n 'visitorCode',\n 'currentVisit',\n 'maxNumberPreviousVisits',\n 'customData',\n 'negative',\n 'revenue',\n 'title',\n 'os',\n 'conversion',\n 'staticData',\n 'osIndex',\n 'browser',\n 'referrersIndices',\n 'overwrite',\n 'index',\n 'href',\n 'experiment',\n 'page',\n 'variationId',\n 'deviceType',\n 'goalId',\n 'ts',\n 'key',\n] as const;\nconst TRACKING_KEYS = ['visit', 'map'] as const;\nconst QUERY_KEYS = ['sse', 'visitor', 'map', 'events'] as const;\n\nexport type TrackingType = Record<\n Capitalize<(typeof TRACKING_KEYS)[number]>,\n string\n>;\nexport type QueryType = Record<Capitalize<(typeof QUERY_KEYS)[number]>, string>;\nexport type ParameterType = Record<\n Capitalize<(typeof PARAMETER_KEYS)[number]>,\n string\n>;\nexport type EventType = Record<\n Capitalize<(typeof EVENT_TYPE_KEYS)[number]>,\n string\n>;\n\nexport type StrictTrackingRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}/`;\n};\nexport type StrictQueryRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}?siteCode=`;\n};\nexport type StrictEventTypeRecord<T> = {\n [K in keyof T]: `eventType=${Uncapitalize<K & string>}`;\n};\nexport type StrictParameterRecord<T> = {\n [K in keyof T]: `&${Uncapitalize<K & string>}=`;\n};\nexport type StrictFirstParameterRecord<T> = {\n [K in keyof T]: `?${Uncapitalize<K & string>}=`;\n};\n\n/**\n * @type `HeadersType` - a type of headers available in the request\n * */\nexport type HeadersType = Partial<Record<Header, string>>;\n\nexport type TrackParametersType = {\n url: string;\n headers?: HeadersType;\n body: string;\n};\n\n/**\n * @interface an interface of External Request Dispatcher which will be used to perform requests.\n * */\nexport interface IExternalRequestDispatcher {\n /**\n * @method track - send a track request\n * @param {TrackParametersType} parameters - track parameters\n * */\n track: (params: TrackParametersType) => Promise<boolean>;\n /**\n * @method getClientConfiguration - get client configuration\n * @param {string} url - url address\n * @param {HeadersType} headers - headers\n * */\n getClientConfiguration: (\n url: string,\n headers: HeadersType,\n ) => Promise<JSONType>;\n /**\n * @method getRemoteData - get data from remote server of Kameleoon\n * @param {string} url - url address\n * */\n getRemoteData: (url: string) => Promise<JSONType>;\n}\n"],"mappings":"sHA4JY,CAAAA,UAAU,CAAAC,OAAA,CAAAD,UAAA,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAAE,GAAA,OAAVF,CAAU,CAAAG,IAAA,QAAVH,CAAU,MAKVI,YAAY,CAAAH,OAAA,CAAAG,YAAA,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAZA,CAAY,CAAAC,UAAA,iBAAZD,CAAY,CAAZA,CAAY,CAAAE,SAAA,gBAAZF,CAAY,CAAZA,CAAY,CAAAG,OAAA,cAAZH,CAAY,WAMlB,CAAAI,eAAe,CAAG,CACtB,YAAY,CACZ,YAAY,CACZ,MAAM,CACN,YAAY,CACZ,aAAa,CACb,UAAU,CACV,YAAY,CACJ,CACJC,cAAc,CAAG,CACrB,gBAAgB,CAChB,cAAc,CACd,IAAI,CACJ,OAAO,CACP,SAAS,CACT,aAAa,CACb,MAAM,CACN,QAAQ,CACR,UAAU,CACV,aAAa,CACb,WAAW,CACX,mBAAmB,CACnB,YAAY,CACZ,SAAS,CACT,YAAY,CACZ,KAAK,CACL,cAAc,CACd,gBAAgB,CAChB,UAAU,CACV,aAAa,CACb,cAAc,CACd,yBAAyB,CACzB,YAAY,CACZ,UAAU,CACV,SAAS,CACT,OAAO,CACP,IAAI,CACJ,YAAY,CACZ,YAAY,CACZ,SAAS,CACT,SAAS,CACT,kBAAkB,CAClB,WAAW,CACX,OAAO,CACP,MAAM,CACN,YAAY,CACZ,MAAM,CACN,aAAa,CACb,YAAY,CACZ,QAAQ,CACR,IAAI,CACJ,KAAK,CACG,CACJC,aAAa,CAAG,CAAC,OAAO,CAAE,KAAK,CAAU,CACzCC,UAAU,CAAG,CAAC,KAAK,CAAE,SAAS,CAAE,KAAK,CAAE,QAAQ,CAAU"}
@@ -28,7 +28,7 @@ export type ConsentDataType = {
28
28
  [visitorCode: string]: boolean;
29
29
  };
30
30
  /**
31
- * @type StorageDataType - an enumeration type which represents a data stored on SDK storage
31
+ * @type `StorageDataType` - an enumeration type which represents a data stored on SDK storage
32
32
  *
33
33
  * `string` represents visitor code storage with only one string value
34
34
  * */
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../src/storage/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { ConfigurationDataType } from 'src/clientConfiguration';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { KameleoonStorageKey } from './constants';\nimport {\n TrackDataParamsType,\n TrackExperimentParamsType,\n} from 'src/requester/types';\n\nexport type ClientDataType = {\n data: ConfigurationDataType;\n lastUpdate: string;\n};\n\nexport type FeatureFlagVariationsType = {\n [experimentId: string]: {\n variationId: number;\n isTargetedRule: boolean;\n isSent: boolean;\n };\n};\n\nexport type VariationDataType = {\n [visitorCode: string]: FeatureFlagVariationsType;\n};\n\ntype OfflineTrackingParameters =\n | TrackDataParamsType\n | TrackExperimentParamsType;\n\nexport type OfflineTracking = {\n requestParameters?: Array<\n OfflineTrackingParameters & { timestamp: number; isExperiment: boolean }\n >;\n};\n\nexport type ConsentDataType = {\n [visitorCode: string]: boolean;\n};\n\n/**\n * @type StorageDataType - an enumeration type which represents a data stored on SDK storage\n *\n * `string` represents visitor code storage with only one string value\n * */\nexport type StorageDataType =\n | ClientDataType\n | VariationDataType\n | OfflineTracking\n | ConsentDataType\n | string;\n\n/**\n * @interface an interface of External Storage which must be implemented to be used as external storage an SDK\n * */\nexport interface IExternalStorage<T = StorageDataType> {\n /**\n * @method read - reads data from the storage\n * @param {string} key - a key, which different SDK data blocks are stored under\n * @returns {T | null} representation of generic Kameleoon data type `T` or `null` if the storage was read successfully but it's empty\n * */\n read: (key: string) => T | null;\n /**\n * @method write - writes data to storage\n * @param {string} key - a key, which different SDK data blocks are stored under\n * @param {T} data - representation of generic Kameleoon data type\n * @returns {void}\n * */\n write: (key: string, data: T) => void;\n}\n\n/**\n * @interface an interface which serves as a wrapper over `IExternalStorage` for internal SDK usage\n * */\nexport interface IStorage<T> {\n readonly key: KameleoonStorageKey;\n read: () => Result<T, KameleoonError>;\n write: (data: T) => Result<void, KameleoonError>;\n update: (data: Partial<T>) => Result<void, KameleoonError>;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../src/storage/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { ConfigurationDataType } from 'src/clientConfiguration';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { KameleoonStorageKey } from './constants';\nimport {\n TrackDataParamsType,\n TrackExperimentParamsType,\n} from 'src/requester/types';\n\nexport type ClientDataType = {\n data: ConfigurationDataType;\n lastUpdate: string;\n};\n\nexport type FeatureFlagVariationsType = {\n [experimentId: string]: {\n variationId: number;\n isTargetedRule: boolean;\n isSent: boolean;\n };\n};\n\nexport type VariationDataType = {\n [visitorCode: string]: FeatureFlagVariationsType;\n};\n\ntype OfflineTrackingParameters =\n | TrackDataParamsType\n | TrackExperimentParamsType;\n\nexport type OfflineTracking = {\n requestParameters?: Array<\n OfflineTrackingParameters & { timestamp: number; isExperiment: boolean }\n >;\n};\n\nexport type ConsentDataType = {\n [visitorCode: string]: boolean;\n};\n\n/**\n * @type `StorageDataType` - an enumeration type which represents a data stored on SDK storage\n *\n * `string` represents visitor code storage with only one string value\n * */\nexport type StorageDataType =\n | ClientDataType\n | VariationDataType\n | OfflineTracking\n | ConsentDataType\n | string;\n\n/**\n * @interface an interface of External Storage which must be implemented to be used as external storage an SDK\n * */\nexport interface IExternalStorage<T = StorageDataType> {\n /**\n * @method read - reads data from the storage\n * @param {string} key - a key, which different SDK data blocks are stored under\n * @returns {T | null} representation of generic Kameleoon data type `T` or `null` if the storage was read successfully but it's empty\n * */\n read: (key: string) => T | null;\n /**\n * @method write - writes data to storage\n * @param {string} key - a key, which different SDK data blocks are stored under\n * @param {T} data - representation of generic Kameleoon data type\n * @returns {void}\n * */\n write: (key: string, data: T) => void;\n}\n\n/**\n * @interface an interface which serves as a wrapper over `IExternalStorage` for internal SDK usage\n * */\nexport interface IStorage<T> {\n readonly key: KameleoonStorageKey;\n read: () => Result<T, KameleoonError>;\n write: (data: T) => Result<void, KameleoonError>;\n update: (data: Partial<T>) => Result<void, KameleoonError>;\n}\n"],"mappings":""}
@@ -1,14 +1,16 @@
1
1
  import { Result } from 'ts-res';
2
2
  import { KameleoonError } from '../../kameleoonError';
3
- import { EvaluationDataType } from '../../targeting/types';
3
+ import { EvaluationDataType } from '../../targeting';
4
4
  import { ConditionDataType, ICondition } from './types';
5
5
  export declare class CustomData implements ICondition {
6
6
  private customDataIndex;
7
7
  private matchType?;
8
8
  private conditionValue?;
9
9
  private error?;
10
- constructor({ customDataIndex, valueMatchType, value }: ConditionDataType);
10
+ private range?;
11
+ constructor({ customDataIndex, valueMatchType, value, range, }: ConditionDataType);
11
12
  evaluate({ targetingData, }: EvaluationDataType): Result<boolean, KameleoonError>;
12
13
  private checkCondition;
13
14
  private parseArray;
15
+ private parseRange;
14
16
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CustomData=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_utilities=require("../../utilities"),_types=require("../types");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 CustomData{constructor(a){let{customDataIndex:b,valueMatchType:c,value:d}=a;_defineProperty(this,"customDataIndex",void 0),_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"error",void 0),this.customDataIndex=b?+b:null,this.matchType=c,this.conditionValue=d}evaluate(a){let{targetingData:b}=a;if("number"==typeof this.customDataIndex){var c;const a=null===b||void 0===b||null===(c=b[_kameleoonData.KameleoonData.CustomData])||void 0===c?void 0:c[this.customDataIndex];if(a){const{value:b}=a,c=this.checkCondition(b);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(c)}}return(0,_tsRes.Ok)(this.matchType===_types.ValueMatchType.UNDEFINED)}checkCondition(a){if("string"!=typeof this.conditionValue&&this.matchType!==_types.ValueMatchType.TRUE&&this.matchType!==_types.ValueMatchType.FALSE)return!1;const b=this.conditionValue;if(this.matchType===_types.ValueMatchType.AMONG_VALUES){const c=this.parseArray(b);if(!c.ok)return this.error=c.error,!1;const d=new Set(c.data);return Array.isArray(a)?a.some(a=>d.has(a)):c.data.includes(a)}if(Array.isArray(a))return a.some(a=>this.checkCondition(a));switch(this.matchType){case _types.ValueMatchType.CONTAINS:return a.includes(b);case _types.ValueMatchType.EXACT:return a===this.conditionValue;case _types.ValueMatchType.REGULAR_EXPRESSION:return _utilities.Utilities.parseRegExp(b).test(a);case _types.ValueMatchType.LOWER:return+a<+this.conditionValue;case _types.ValueMatchType.EQUAL:return+a===+this.conditionValue;case _types.ValueMatchType.GREATER:return+a>+this.conditionValue;case _types.ValueMatchType.TRUE:return"true"===a.toLowerCase();case _types.ValueMatchType.FALSE:return"false"===a.toLowerCase();default:return!1}}parseArray(a){try{const b=JSON.parse(a);if(Array.isArray(b))return(0,_tsRes.Ok)(b)}catch(b){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.AmongValuesCheck,b,a))}return(0,_tsRes.Ok)([])}}exports.CustomData=CustomData;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CustomData=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_=require("./.."),_utilities=require("../../utilities");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 CustomData{constructor(a){let{customDataIndex:b,valueMatchType:c,value:d,range:e}=a;_defineProperty(this,"customDataIndex",void 0),_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"error",void 0),_defineProperty(this,"range",void 0),this.customDataIndex=b?+b:null,this.matchType=c,this.conditionValue=d,this.range=e}evaluate(a){let{targetingData:b}=a;if("number"==typeof this.customDataIndex){var c;const a=null===b||void 0===b||null===(c=b[_kameleoonData.KameleoonData.CustomData])||void 0===c?void 0:c[this.customDataIndex];if(a){const{value:b}=a,c=this.checkCondition(b);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(c)}}return(0,_tsRes.Ok)(this.matchType===_.ValueMatchType.UNDEFINED)}checkCondition(a){if("string"!=typeof this.conditionValue&&this.matchType!==_.ValueMatchType.TRUE&&this.matchType!==_.ValueMatchType.FALSE&&this.matchType!==_.ValueMatchType.RANGE)return!1;const b=this.conditionValue;if(this.matchType===_.ValueMatchType.AMONG_VALUES){const c=this.parseArray(b);if(!c.ok)return this.error=c.error,!1;const d=new Set(c.data);return Array.isArray(a)?a.some(a=>d.has(a)):c.data.includes(a)}if(this.matchType===_.ValueMatchType.RANGE){const b=this.parseRange(this.range);if(!b.ok)return this.error=b.error,!1;const[c,d]=b.data,e=a=>a>=c&&a<=d;return Array.isArray(a)?a.some(a=>e(+a)):e(+a)}if(Array.isArray(a))return a.some(a=>this.checkCondition(a));switch(this.matchType){case _.ValueMatchType.CONTAINS:return a.includes(b);case _.ValueMatchType.EXACT:return a===this.conditionValue;case _.ValueMatchType.REGULAR_EXPRESSION:return _utilities.Utilities.parseRegExp(b).test(a);case _.ValueMatchType.LOWER:return+a<+this.conditionValue;case _.ValueMatchType.EQUAL:return+a===+this.conditionValue;case _.ValueMatchType.GREATER:return+a>+this.conditionValue;case _.ValueMatchType.TRUE:return"true"===a.toLowerCase();case _.ValueMatchType.FALSE:return"false"===a.toLowerCase();default:return!1}}parseArray(a){try{const b=JSON.parse(a);if(Array.isArray(b))return(0,_tsRes.Ok)(b)}catch(b){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.AmongValuesCheck,b,a))}return(0,_tsRes.Ok)([])}parseRange(a){return a&&2===a.length?(0,_tsRes.Ok)(a):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.RangeCheck,a))}}exports.CustomData=CustomData;
2
2
  //# sourceMappingURL=customData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"customData.js","names":["CustomData","constructor","a","customDataIndex","valueMatchType","value","_defineProperty","matchType","conditionValue","evaluate","targetingData","c","customData","KameleoonData","customDataValue","result","checkCondition","error","Err","Ok","ValueMatchType","UNDEFINED","TRUE","FALSE","AMONG_VALUES","parseArray","ok","resultData","Set","data","Array","isArray","some","has","includes","CONTAINS","EXACT","REGULAR_EXPRESSION","Utilities","parseRegExp","test","LOWER","EQUAL","GREATER","toLowerCase","JSON","parse","err","KameleoonError","KameleoonException","AmongValuesCheck","exports"],"sources":["../../../src/targeting/conditions/customData.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { CustomDataType, KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { Utilities } from 'src/utilities';\nimport { EvaluationDataType, ValueMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class CustomData implements ICondition {\n private customDataIndex: number | null;\n private matchType?: ValueMatchType | null;\n private conditionValue?: string | null;\n private error?: KameleoonError;\n\n constructor({ customDataIndex, valueMatchType, value }: ConditionDataType) {\n this.customDataIndex = customDataIndex ? Number(customDataIndex) : null;\n this.matchType = valueMatchType;\n this.conditionValue = value;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n if (typeof this.customDataIndex === 'number') {\n const customData =\n targetingData?.[KameleoonData.CustomData]?.[this.customDataIndex];\n\n if (customData) {\n const { value: customDataValue } = customData;\n const result = this.checkCondition(customDataValue);\n\n if (this.error) {\n return Err(this.error);\n }\n\n return Ok(result);\n }\n }\n\n return Ok(this.matchType === ValueMatchType.UNDEFINED);\n }\n\n private checkCondition(\n customDataValue: CustomDataType['value'] | string,\n ): boolean {\n if (\n typeof this.conditionValue !== 'string' &&\n this.matchType !== ValueMatchType.TRUE &&\n this.matchType !== ValueMatchType.FALSE\n ) {\n return false;\n }\n\n // --- Note ---\n // `ValueMatchType.TRUE` and `ValueMatchType.FALSE` do not use condition value\n // so we can safely assume that `this.conditionValue` is a string at this point\n const conditionValue = this.conditionValue as string;\n\n // --- Note ---\n // `AMONG_VALUES` is checked separately to avoid recursion overhead\n // for `JSON.parse` inside `this.parseArray`\n if (this.matchType === ValueMatchType.AMONG_VALUES) {\n const result = this.parseArray(conditionValue);\n\n if (!result.ok) {\n this.error = result.error;\n\n return false;\n }\n\n const resultData = new Set(result.data);\n\n return Array.isArray(customDataValue)\n ? customDataValue.some((value) => resultData.has(value))\n : result.data.includes(customDataValue);\n }\n\n if (Array.isArray(customDataValue)) {\n return customDataValue.some((value) => this.checkCondition(value));\n }\n\n switch (this.matchType) {\n case ValueMatchType.CONTAINS:\n return customDataValue.includes(conditionValue);\n case ValueMatchType.EXACT:\n return customDataValue === this.conditionValue;\n case ValueMatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(conditionValue).test(customDataValue);\n case ValueMatchType.LOWER:\n return Number(customDataValue) < Number(this.conditionValue);\n case ValueMatchType.EQUAL:\n return Number(customDataValue) === Number(this.conditionValue);\n case ValueMatchType.GREATER:\n return Number(customDataValue) > Number(this.conditionValue);\n case ValueMatchType.TRUE:\n return customDataValue.toLowerCase() === 'true';\n case ValueMatchType.FALSE:\n return customDataValue.toLowerCase() === 'false';\n default:\n return false;\n }\n }\n\n private parseArray(value: string): Result<string[], KameleoonError> {\n try {\n const result = JSON.parse(value);\n\n if (Array.isArray(result)) {\n return Ok(result);\n }\n } catch (err) {\n return Err(\n new KameleoonError(KameleoonException.AmongValuesCheck, err, value),\n );\n }\n\n return Ok([]);\n }\n}\n"],"mappings":"6xBAOO,KAAM,CAAAA,UAAiC,CAM5CC,WAAWA,CAAAC,CAAA,CAAgE,IAA/D,CAAEC,eAAe,CAAfA,CAAe,CAAEC,cAAc,CAAdA,CAAc,CAAEC,KAAK,CAALA,CAAyB,CAAC,CAAAH,CAAA,CAAAI,eAAA,gCAAAA,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,sBACvE,IAAI,CAACH,eAAe,CAAGA,CAAe,EAAUA,CAAe,CAAI,IAAI,CACvE,IAAI,CAACI,SAAS,CAAGH,CAAc,CAC/B,IAAI,CAACI,cAAc,CAAGH,CACxB,CAEOI,QAAQA,CAAAP,CAAA,CAEyC,IAFxC,CACdQ,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,GAAoC,QAAQ,EAAxC,MAAO,KAAI,CAACC,eAA4B,CAAE,KAAAQ,CAAA,CAC5C,KAAM,CAAAC,CAAU,QACdF,CAAa,WAAbA,CAAa,UAAAC,CAAA,CAAbD,CAAa,CAAGG,4BAAa,CAACb,UAAU,CAAC,YAAAW,CAAA,QAAzCA,CAAA,CAA4C,IAAI,CAACR,eAAe,CAAC,CAEnE,GAAIS,CAAU,CAAE,MACR,CAAEP,KAAK,CAAES,CAAgB,CAAC,CAAGF,CAAU,CACvCG,CAAM,CAAG,IAAI,CAACC,cAAc,CAACF,CAAe,CAAC,OAE/C,KAAI,CAACG,KAAK,CACL,GAAAC,UAAG,EAAC,IAAI,CAACD,KAAK,CAAC,CAGjB,GAAAE,SAAE,EAACJ,CAAM,CAClB,CACF,CAEA,MAAO,GAAAI,SAAE,EAAC,IAAI,CAACZ,SAAS,GAAKa,qBAAc,CAACC,SAAS,CACvD,CAEQL,cAAcA,CACpBF,CAAiD,CACxC,CACT,GACiC,QAAQ,EAAvC,MAAO,KAAI,CAACN,cAA2B,EACvC,IAAI,CAACD,SAAS,GAAKa,qBAAc,CAACE,IAAI,EACtC,IAAI,CAACf,SAAS,GAAKa,qBAAc,CAACG,KAAK,CAEvC,SAMF,KAAM,CAAAf,CAAc,CAAG,IAAI,CAACA,cAAwB,CAKpD,GAAI,IAAI,CAACD,SAAS,GAAKa,qBAAc,CAACI,YAAY,CAAE,CAClD,KAAM,CAAAT,CAAM,CAAG,IAAI,CAACU,UAAU,CAACjB,CAAc,CAAC,CAE9C,GAAI,CAACO,CAAM,CAACW,EAAE,CAGZ,MAFA,KAAI,CAACT,KAAK,CAAGF,CAAM,CAACE,KAAK,IAK3B,KAAM,CAAAU,CAAU,CAAG,GAAI,CAAAC,GAAG,CAACb,CAAM,CAACc,IAAI,CAAC,CAEvC,MAAO,CAAAC,KAAK,CAACC,OAAO,CAACjB,CAAe,CAAC,CACjCA,CAAe,CAACkB,IAAI,CAAE3B,CAAK,EAAKsB,CAAU,CAACM,GAAG,CAAC5B,CAAK,CAAC,CAAC,CACtDU,CAAM,CAACc,IAAI,CAACK,QAAQ,CAACpB,CAAe,CAC1C,CAEA,GAAIgB,KAAK,CAACC,OAAO,CAACjB,CAAe,CAAC,CAChC,MAAO,CAAAA,CAAe,CAACkB,IAAI,CAAE3B,CAAK,EAAK,IAAI,CAACW,cAAc,CAACX,CAAK,CAAC,CAAC,CAGpE,OAAQ,IAAI,CAACE,SAAS,EACpB,IAAK,CAAAa,qBAAc,CAACe,QAAQ,CAC1B,MAAO,CAAArB,CAAe,CAACoB,QAAQ,CAAC1B,CAAc,CAAC,CACjD,IAAK,CAAAY,qBAAc,CAACgB,KAAK,CACvB,MAAO,CAAAtB,CAAe,GAAK,IAAI,CAACN,cAAc,CAChD,IAAK,CAAAY,qBAAc,CAACiB,kBAAkB,CACpC,MAAO,CAAAC,oBAAS,CAACC,WAAW,CAAC/B,CAAc,CAAC,CAACgC,IAAI,CAAC1B,CAAe,CAAC,CACpE,IAAK,CAAAM,qBAAc,CAACqB,KAAK,CACvB,MAAO,CAAO3B,CAAe,EAAW,IAAI,CAACN,cAAe,CAC9D,IAAK,CAAAY,qBAAc,CAACsB,KAAK,CACvB,MAAO,CAAO5B,CAAe,IAAa,IAAI,CAACN,cAAe,CAChE,IAAK,CAAAY,qBAAc,CAACuB,OAAO,CACzB,MAAO,CAAO7B,CAAe,EAAW,IAAI,CAACN,cAAe,CAC9D,IAAK,CAAAY,qBAAc,CAACE,IAAI,CACtB,MAAyC,MAAM,GAAxCR,CAAe,CAAC8B,WAAW,CAAC,CAAY,CACjD,IAAK,CAAAxB,qBAAc,CAACG,KAAK,CACvB,MAAyC,OAAO,GAAzCT,CAAe,CAAC8B,WAAW,CAAC,CAAa,CAClD,QACE,QACJ,CACF,CAEQnB,UAAUA,CAACpB,CAAa,CAAoC,CAClE,GAAI,CACF,KAAM,CAAAU,CAAM,CAAG8B,IAAI,CAACC,KAAK,CAACzC,CAAK,CAAC,CAEhC,GAAIyB,KAAK,CAACC,OAAO,CAAChB,CAAM,CAAC,CACvB,MAAO,GAAAI,SAAE,EAACJ,CAAM,CAEpB,CAAE,MAAOgC,CAAG,CAAE,CACZ,MAAO,GAAA7B,UAAG,EACR,GAAI,CAAA8B,8BAAc,CAACC,kCAAkB,CAACC,gBAAgB,CAAEH,CAAG,CAAE1C,CAAK,CACpE,CACF,CAEA,MAAO,GAAAc,SAAE,EAAC,EAAE,CACd,CACF,CAACgC,OAAA,CAAAnD,UAAA,CAAAA,UAAA"}
1
+ {"version":3,"file":"customData.js","names":["CustomData","constructor","a","customDataIndex","valueMatchType","value","range","_defineProperty","matchType","conditionValue","evaluate","targetingData","c","customData","KameleoonData","customDataValue","result","checkCondition","error","Err","Ok","ValueMatchType","UNDEFINED","TRUE","FALSE","RANGE","AMONG_VALUES","parseArray","ok","resultData","Set","data","Array","isArray","some","has","includes","parseRange","lowerBound","upperBound","isInRange","CONTAINS","EXACT","REGULAR_EXPRESSION","Utilities","parseRegExp","test","LOWER","EQUAL","GREATER","toLowerCase","JSON","parse","err","KameleoonError","KameleoonException","AmongValuesCheck","array","length","RangeCheck","exports"],"sources":["../../../src/targeting/conditions/customData.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { CustomDataType, KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { EvaluationDataType, ValueMatchType } from 'src/targeting';\nimport { Utilities } from 'src/utilities';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class CustomData implements ICondition {\n private customDataIndex: number | null;\n private matchType?: ValueMatchType | null;\n private conditionValue?: string | null;\n private error?: KameleoonError;\n private range?: number[] | null;\n\n constructor({\n customDataIndex,\n valueMatchType,\n value,\n range,\n }: ConditionDataType) {\n this.customDataIndex = customDataIndex ? Number(customDataIndex) : null;\n this.matchType = valueMatchType;\n this.conditionValue = value;\n this.range = range;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n if (typeof this.customDataIndex === 'number') {\n const customData =\n targetingData?.[KameleoonData.CustomData]?.[this.customDataIndex];\n\n if (customData) {\n const { value: customDataValue } = customData;\n const result = this.checkCondition(customDataValue);\n\n if (this.error) {\n return Err(this.error);\n }\n\n return Ok(result);\n }\n }\n\n return Ok(this.matchType === ValueMatchType.UNDEFINED);\n }\n\n private checkCondition(\n customDataValue: CustomDataType['value'] | string,\n ): boolean {\n if (\n typeof this.conditionValue !== 'string' &&\n this.matchType !== ValueMatchType.TRUE &&\n this.matchType !== ValueMatchType.FALSE &&\n this.matchType !== ValueMatchType.RANGE\n ) {\n return false;\n }\n\n // --- Note ---\n // `TRUE`/`FALSE`/`RANGE` do not use condition value\n // so we can safely assume that `this.conditionValue` is a string at this point\n // for other match types\n const conditionValue = this.conditionValue as string;\n\n // --- Note ---\n // `AMONG_VALUES` and `RANGE` are checked separately to avoid recursion overhead\n // for `JSON.parse` inside `this.parseArray`\n if (this.matchType === ValueMatchType.AMONG_VALUES) {\n const result = this.parseArray(conditionValue);\n\n if (!result.ok) {\n this.error = result.error;\n\n return false;\n }\n\n const resultData = new Set(result.data);\n\n return Array.isArray(customDataValue)\n ? customDataValue.some((value) => resultData.has(value))\n : result.data.includes(customDataValue);\n }\n\n if (this.matchType === ValueMatchType.RANGE) {\n const result = this.parseRange(this.range);\n\n if (!result.ok) {\n this.error = result.error;\n\n return false;\n }\n\n const [lowerBound, upperBound] = result.data;\n\n const isInRange = (value: number) =>\n value >= lowerBound && value <= upperBound;\n\n return Array.isArray(customDataValue)\n ? customDataValue.some((value) => isInRange(Number(value)))\n : isInRange(Number(customDataValue));\n }\n\n if (Array.isArray(customDataValue)) {\n return customDataValue.some((value) => this.checkCondition(value));\n }\n\n switch (this.matchType) {\n case ValueMatchType.CONTAINS:\n return customDataValue.includes(conditionValue);\n case ValueMatchType.EXACT:\n return customDataValue === this.conditionValue;\n case ValueMatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(conditionValue).test(customDataValue);\n case ValueMatchType.LOWER:\n return Number(customDataValue) < Number(this.conditionValue);\n case ValueMatchType.EQUAL:\n return Number(customDataValue) === Number(this.conditionValue);\n case ValueMatchType.GREATER:\n return Number(customDataValue) > Number(this.conditionValue);\n case ValueMatchType.TRUE:\n return customDataValue.toLowerCase() === 'true';\n case ValueMatchType.FALSE:\n return customDataValue.toLowerCase() === 'false';\n default:\n return false;\n }\n }\n\n private parseArray(value: string): Result<string[], KameleoonError> {\n try {\n const result = JSON.parse(value);\n\n if (Array.isArray(result)) {\n return Ok(result);\n }\n } catch (err) {\n return Err(\n new KameleoonError(KameleoonException.AmongValuesCheck, err, value),\n );\n }\n\n return Ok([]);\n }\n\n private parseRange(\n array?: number[] | null,\n ): Result<[number, number], KameleoonError> {\n if (!array || array.length !== 2) {\n return Err(new KameleoonError(KameleoonException.RangeCheck, array));\n }\n\n return Ok(array as [number, number]);\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pageUrl.js","names":["PageUrl","constructor","a","matchType","url","_defineProperty","conditionValue","evaluate","targetingData","pageViewData","KameleoonData","PageView","Ok","Object","keys","some","checkCondition","MatchType","CONTAINS","includes","EXACT","REGULAR_EXPRESSION","Utilities","parseRegExp","test","exports"],"sources":["../../../src/targeting/conditions/pageUrl.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { exhaustCheck, KameleoonError } from 'src/kameleoonError';\nimport { Utilities } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class PageUrl implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: string | null;\n\n constructor({ matchType, url }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = url;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const pageViewData = targetingData?.[KameleoonData.PageView];\n\n if (pageViewData) {\n return Ok(\n Object.keys(pageViewData).some((url) => this.checkCondition(url)),\n );\n }\n\n return Ok(false);\n }\n\n private checkCondition(url: string): boolean {\n if (!this.matchType || !this.conditionValue) {\n return false;\n }\n\n switch (this.matchType) {\n case MatchType.CONTAINS:\n return url.includes(this.conditionValue);\n case MatchType.EXACT:\n return url === this.conditionValue;\n case MatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(this.conditionValue).test(url);\n default:\n return false;\n }\n }\n}\n"],"mappings":"0uBAOO,KAAM,CAAAA,OAA8B,CAIzCC,WAAWA,CAAAC,CAAA,CAAwC,IAAvC,CAAEC,SAAS,CAATA,CAAS,CAAEC,GAAG,CAAHA,CAAuB,CAAC,CAAAF,CAAA,CAAAG,eAAA,0BAAAA,eAAA,+BAC/C,IAAI,CAACF,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACG,cAAc,CAAGF,CACxB,CAEOG,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAY,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,QAAQ,CAAC,CAAC,MAEzD,CAAAF,CAAY,CACP,GAAAG,SAAE,EACPC,MAAM,CAACC,IAAI,CAACL,CAAY,CAAC,CAACM,IAAI,CAAEX,CAAG,EAAK,IAAI,CAACY,cAAc,CAACZ,CAAG,CAAC,CAClE,CAAC,CAGI,GAAAQ,SAAE,IAAM,CACjB,CAEQI,cAAcA,CAACZ,CAAW,CAAW,CAC3C,GAAI,CAAC,IAAI,CAACD,SAAS,EAAI,CAAC,IAAI,CAACG,cAAc,CACzC,SAGF,OAAQ,IAAI,CAACH,SAAS,EACpB,IAAK,CAAAc,gBAAS,CAACC,QAAQ,CACrB,MAAO,CAAAd,CAAG,CAACe,QAAQ,CAAC,IAAI,CAACb,cAAc,CAAC,CAC1C,IAAK,CAAAW,gBAAS,CAACG,KAAK,CAClB,MAAO,CAAAhB,CAAG,GAAK,IAAI,CAACE,cAAc,CACpC,IAAK,CAAAW,gBAAS,CAACI,kBAAkB,CAC/B,MAAO,CAAAC,oBAAS,CAACC,WAAW,CAAC,IAAI,CAACjB,cAAc,CAAC,CAACkB,IAAI,CAACpB,CAAG,CAAC,CAC7D,QACE,QACJ,CACF,CACF,CAACqB,OAAA,CAAAzB,OAAA,CAAAA,OAAA"}
1
+ {"version":3,"file":"pageUrl.js","names":["PageUrl","constructor","a","matchType","url","_defineProperty","conditionValue","evaluate","targetingData","pageViewData","KameleoonData","PageView","Ok","Object","keys","some","checkCondition","MatchType","CONTAINS","includes","EXACT","REGULAR_EXPRESSION","Utilities","parseRegExp","test","exports"],"sources":["../../../src/targeting/conditions/pageUrl.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class PageUrl implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: string | null;\n\n constructor({ matchType, url }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = url;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const pageViewData = targetingData?.[KameleoonData.PageView];\n\n if (pageViewData) {\n return Ok(\n Object.keys(pageViewData).some((url) => this.checkCondition(url)),\n );\n }\n\n return Ok(false);\n }\n\n private checkCondition(url: string): boolean {\n if (!this.matchType || !this.conditionValue) {\n return false;\n }\n\n switch (this.matchType) {\n case MatchType.CONTAINS:\n return url.includes(this.conditionValue);\n case MatchType.EXACT:\n return url === this.conditionValue;\n case MatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(this.conditionValue).test(url);\n default:\n return false;\n }\n }\n}\n"],"mappings":"0uBAOO,KAAM,CAAAA,OAA8B,CAIzCC,WAAWA,CAAAC,CAAA,CAAwC,IAAvC,CAAEC,SAAS,CAATA,CAAS,CAAEC,GAAG,CAAHA,CAAuB,CAAC,CAAAF,CAAA,CAAAG,eAAA,0BAAAA,eAAA,+BAC/C,IAAI,CAACF,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACG,cAAc,CAAGF,CACxB,CAEOG,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAY,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,QAAQ,CAAC,CAAC,MAEzD,CAAAF,CAAY,CACP,GAAAG,SAAE,EACPC,MAAM,CAACC,IAAI,CAACL,CAAY,CAAC,CAACM,IAAI,CAAEX,CAAG,EAAK,IAAI,CAACY,cAAc,CAACZ,CAAG,CAAC,CAClE,CAAC,CAGI,GAAAQ,SAAE,IAAM,CACjB,CAEQI,cAAcA,CAACZ,CAAW,CAAW,CAC3C,GAAI,CAAC,IAAI,CAACD,SAAS,EAAI,CAAC,IAAI,CAACG,cAAc,CACzC,SAGF,OAAQ,IAAI,CAACH,SAAS,EACpB,IAAK,CAAAc,gBAAS,CAACC,QAAQ,CACrB,MAAO,CAAAd,CAAG,CAACe,QAAQ,CAAC,IAAI,CAACb,cAAc,CAAC,CAC1C,IAAK,CAAAW,gBAAS,CAACG,KAAK,CAClB,MAAO,CAAAhB,CAAG,GAAK,IAAI,CAACE,cAAc,CACpC,IAAK,CAAAW,gBAAS,CAACI,kBAAkB,CAC/B,MAAO,CAAAC,oBAAS,CAACC,WAAW,CAAC,IAAI,CAACjB,cAAc,CAAC,CAACkB,IAAI,CAACpB,CAAG,CAAC,CAC7D,QACE,QACJ,CACF,CACF,CAACqB,OAAA,CAAAzB,OAAA,CAAAA,OAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PreviousPage=void 0;var _tsRes=require("ts-res"),_utilities=require("../../utilities"),_kameleoonData=require("../../kameleoonData"),_types=require("../types");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 PreviousPage{constructor(a){let{matchType:b,url:c}=a;_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"matchType",void 0),this.conditionValue=c,this.matchType=b}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.PageView];if(!c)return(0,_tsRes.Ok)(!1);const d=this.getSecondLatestPageView(Object.values(c));if(!d)return(0,_tsRes.Ok)(!1);const e=d.urlAddress;return(0,_tsRes.Ok)(this.checkCondition(e))}checkCondition(a){if(!this.matchType||!this.conditionValue)return!1;switch(this.matchType){case _types.MatchType.CONTAINS:return a.includes(this.conditionValue);case _types.MatchType.EXACT:return a===this.conditionValue;case _types.MatchType.REGULAR_EXPRESSION:return _utilities.Utilities.parseRegExp(this.conditionValue).test(a);default:return!1}}getSecondLatestPageView(a){if(2>a.length)return;let b,c;return a.forEach(a=>{var d,e;const f=a.timestamps[a.timestamps.length-1],g=a.timestamps[a.timestamps.length-2];if(!b&&!c)return b=a,void(g&&(c=a));const h=null!==(d=b.timestamps[b.timestamps.length-1])&&void 0!==d?d:0;if(f>h){var i,j;c=b,b=a;const d=null===(i=c)||void 0===i?void 0:i.timestamps[(null===(j=c)||void 0===j?void 0:j.timestamps.length)-1];return void(g&&g>d&&(c=a))}let k;if(b.urlAddress===(null===(e=c)||void 0===e?void 0:e.urlAddress))k=c.timestamps[c.timestamps.length-2];else{var l,m,n;k=null!==(l=null===(m=c)||void 0===m?void 0:m.timestamps[(null===(n=c)||void 0===n?void 0:n.timestamps.length)-1])&&void 0!==l?l:0}f&&f>k&&(c=a)}),c}}exports.PreviousPage=PreviousPage;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PreviousPage=void 0;var _tsRes=require("ts-res"),_utilities=require("../../utilities"),_kameleoonData=require("../../kameleoonData"),_types=require("../types");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 PreviousPage{constructor(a){let{matchType:b,url:c}=a;_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"matchType",void 0),this.conditionValue=c,this.matchType=b}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.PageView];if(!c)return(0,_tsRes.Ok)(!1);const d=this.getSecondLatestPageView(Object.values(c));if(!d)return(0,_tsRes.Ok)(!1);const e=d.urlAddress;return(0,_tsRes.Ok)(this.checkCondition(e))}checkCondition(a){if(!this.matchType||!this.conditionValue)return!1;switch(this.matchType){case _types.MatchType.CONTAINS:return a.includes(this.conditionValue);case _types.MatchType.EXACT:return a===this.conditionValue;case _types.MatchType.REGULAR_EXPRESSION:return _utilities.Utilities.parseRegExp(this.conditionValue).test(a);default:return!1}}getSecondLatestPageView(a){if(2>a.length)return;let b,c;return a.forEach(a=>{const d=a.timestamps[a.timestamps.length-1];if(!b)return void(b=a);const e=b.timestamps[b.timestamps.length-1];if(d>e)return c=b,void(b=a);const f=c?c.timestamps[c.timestamps.length-1]:0;d>f&&(c=a)}),c}}exports.PreviousPage=PreviousPage;
2
2
  //# sourceMappingURL=previousPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"previousPage.js","names":["PreviousPage","constructor","a","matchType","url","_defineProperty","conditionValue","evaluate","targetingData","pageViewsData","KameleoonData","PageView","Ok","secondLatestPageView","getSecondLatestPageView","Object","values","urlAddress","checkCondition","MatchType","CONTAINS","includes","EXACT","REGULAR_EXPRESSION","Utilities","parseRegExp","test","length","latestPV","secondPV","forEach","currentPV","d","e","currentLatestTs","timestamps","currentSecondTs","latestTs","i","j","secondTs","l","m","n","exports"],"sources":["../../../src/targeting/conditions/previousPage.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { Utilities } from 'src/utilities';\nimport { KameleoonData, PageViewDataType } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class PreviousPage implements ICondition {\n private conditionValue?: string | null;\n private matchType?: MatchType | null;\n\n constructor({ matchType, url }: ConditionDataType) {\n this.conditionValue = url;\n this.matchType = matchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const pageViewsData = targetingData?.[KameleoonData.PageView];\n\n if (!pageViewsData) {\n return Ok(false);\n }\n\n // --- Note ---\n // There is more concise way to find previous latest page, but it's less performant,\n // here we only ever check two latest timestamps of page and use one loop\n const secondLatestPageView = this.getSecondLatestPageView(\n Object.values(pageViewsData),\n );\n\n if (!secondLatestPageView) {\n return Ok(false);\n }\n\n const url = secondLatestPageView.urlAddress;\n\n return Ok(this.checkCondition(url));\n }\n\n private checkCondition(url: string): boolean {\n if (!this.matchType || !this.conditionValue) {\n return false;\n }\n\n switch (this.matchType) {\n case MatchType.CONTAINS:\n return url.includes(this.conditionValue);\n case MatchType.EXACT:\n return url === this.conditionValue;\n case MatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(this.conditionValue).test(url);\n default:\n return false;\n }\n }\n\n private getSecondLatestPageView(\n pageViewsData: PageViewDataType[],\n ): PageViewDataType | undefined {\n if (pageViewsData.length < 2) {\n return undefined;\n }\n\n // --- Note ---\n // Arguments and variables named with abbreviations for better readability\n // `second` in this context is `second to latest`\n let latestPV: PageViewDataType | undefined;\n let secondPV: PageViewDataType | undefined;\n\n pageViewsData.forEach((currentPV) => {\n const currentLatestTs =\n currentPV.timestamps[currentPV.timestamps.length - 1];\n const currentSecondTs =\n currentPV.timestamps[currentPV.timestamps.length - 2];\n\n // -- Initial check\n if (!latestPV && !secondPV) {\n latestPV = currentPV;\n\n if (currentSecondTs) {\n secondPV = currentPV;\n }\n\n return;\n }\n\n const latestTs =\n latestPV!.timestamps[latestPV!.timestamps.length - 1] ?? 0;\n\n // -- Covering a case where latest needs to be updated\n if (currentLatestTs > latestTs) {\n secondPV = latestPV;\n latestPV = currentPV;\n\n const secondTs = secondPV?.timestamps[secondPV?.timestamps.length - 1];\n\n // -- Second may need to be updated after latest\n if (currentSecondTs && currentSecondTs > secondTs!) {\n secondPV = currentPV;\n }\n\n return;\n }\n\n // -- Covering a case where only second needs to be updated\n let secondTs: number;\n\n // -- Second and latest can be the same page\n if (latestPV!.urlAddress === secondPV?.urlAddress) {\n // --- Note ---\n // If latest is equal to second, there are at least two timestamps in array\n secondTs = secondPV.timestamps[secondPV.timestamps.length - 2];\n } else {\n secondTs = secondPV?.timestamps[secondPV?.timestamps.length - 1] ?? 0;\n }\n\n // -- Second may need to be updated\n if (currentLatestTs && currentLatestTs > secondTs!) {\n secondPV = currentPV;\n }\n });\n\n return secondPV;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"previousPage.js","names":["PreviousPage","constructor","a","matchType","url","_defineProperty","conditionValue","evaluate","targetingData","pageViewsData","KameleoonData","PageView","Ok","secondLatestPageView","getSecondLatestPageView","Object","values","urlAddress","checkCondition","MatchType","CONTAINS","includes","EXACT","REGULAR_EXPRESSION","Utilities","parseRegExp","test","length","latestPV","secondPV","forEach","currentPV","currentLatestTs","timestamps","latestTs","secondTs","exports"],"sources":["../../../src/targeting/conditions/previousPage.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { Utilities } from 'src/utilities';\nimport { KameleoonData, PageViewDataType } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class PreviousPage implements ICondition {\n private conditionValue?: string | null;\n private matchType?: MatchType | null;\n\n constructor({ matchType, url }: ConditionDataType) {\n this.conditionValue = url;\n this.matchType = matchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const pageViewsData = targetingData?.[KameleoonData.PageView];\n\n if (!pageViewsData) {\n return Ok(false);\n }\n\n // --- Note ---\n // There is more concise way to find previous latest page, but it's less performant,\n // here we only ever check two latest timestamps of page and use one loop\n // The second latest can't be equal to the latest\n const secondLatestPageView = this.getSecondLatestPageView(\n Object.values(pageViewsData),\n );\n\n if (!secondLatestPageView) {\n return Ok(false);\n }\n\n const url = secondLatestPageView.urlAddress;\n\n return Ok(this.checkCondition(url));\n }\n\n private checkCondition(url: string): boolean {\n if (!this.matchType || !this.conditionValue) {\n return false;\n }\n\n switch (this.matchType) {\n case MatchType.CONTAINS:\n return url.includes(this.conditionValue);\n case MatchType.EXACT:\n return url === this.conditionValue;\n case MatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(this.conditionValue).test(url);\n default:\n return false;\n }\n }\n\n private getSecondLatestPageView(\n pageViewsData: PageViewDataType[],\n ): PageViewDataType | undefined {\n if (pageViewsData.length < 2) {\n return undefined;\n }\n\n // --- Note ---\n // Arguments and variables named with abbreviations for better readability\n // `second` in this context is `second to latest`\n let latestPV: PageViewDataType | undefined;\n let secondPV: PageViewDataType | undefined;\n\n pageViewsData.forEach((currentPV) => {\n const currentLatestTs =\n currentPV.timestamps[currentPV.timestamps.length - 1];\n\n // -- Initial check\n if (!latestPV) {\n latestPV = currentPV;\n return;\n }\n\n const latestTs = latestPV.timestamps[latestPV!.timestamps.length - 1];\n\n // -- Covering a case where latest needs to be updated\n if (currentLatestTs > latestTs) {\n secondPV = latestPV;\n latestPV = currentPV;\n\n return;\n }\n\n // -- Covering a case where only second needs to be updated\n const secondTs = secondPV\n ? secondPV.timestamps[secondPV.timestamps.length - 1]\n : 0;\n\n // -- Second may need to be updated\n if (currentLatestTs > secondTs) {\n secondPV = currentPV;\n }\n });\n\n return secondPV;\n }\n}\n"],"mappings":"+uBAOO,KAAM,CAAAA,YAAmC,CAI9CC,WAAWA,CAAAC,CAAA,CAAwC,IAAvC,CAAEC,SAAS,CAATA,CAAS,CAAEC,GAAG,CAAHA,CAAuB,CAAC,CAAAF,CAAA,CAAAG,eAAA,+BAAAA,eAAA,0BAC/C,IAAI,CAACC,cAAc,CAAGF,CAAG,CACzB,IAAI,CAACD,SAAS,CAAGA,CACnB,CAEOI,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAa,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,QAAQ,CAAC,CAE7D,GAAI,CAACF,CAAa,CAChB,MAAO,GAAAG,SAAE,IAAM,CAAC,CAOlB,KAAM,CAAAC,CAAoB,CAAG,IAAI,CAACC,uBAAuB,CACvDC,MAAM,CAACC,MAAM,CAACP,CAAa,CAC7B,CAAC,CAED,GAAI,CAACI,CAAoB,CACvB,MAAO,GAAAD,SAAE,IAAM,CAAC,CAGlB,KAAM,CAAAR,CAAG,CAAGS,CAAoB,CAACI,UAAU,CAE3C,MAAO,GAAAL,SAAE,EAAC,IAAI,CAACM,cAAc,CAACd,CAAG,CAAC,CACpC,CAEQc,cAAcA,CAACd,CAAW,CAAW,CAC3C,GAAI,CAAC,IAAI,CAACD,SAAS,EAAI,CAAC,IAAI,CAACG,cAAc,CACzC,SAGF,OAAQ,IAAI,CAACH,SAAS,EACpB,IAAK,CAAAgB,gBAAS,CAACC,QAAQ,CACrB,MAAO,CAAAhB,CAAG,CAACiB,QAAQ,CAAC,IAAI,CAACf,cAAc,CAAC,CAC1C,IAAK,CAAAa,gBAAS,CAACG,KAAK,CAClB,MAAO,CAAAlB,CAAG,GAAK,IAAI,CAACE,cAAc,CACpC,IAAK,CAAAa,gBAAS,CAACI,kBAAkB,CAC/B,MAAO,CAAAC,oBAAS,CAACC,WAAW,CAAC,IAAI,CAACnB,cAAc,CAAC,CAACoB,IAAI,CAACtB,CAAG,CAAC,CAC7D,QACE,QACJ,CACF,CAEQU,uBAAuBA,CAC7BL,CAAiC,CACH,CAC9B,GAA2B,CAAC,CAAxBA,CAAa,CAACkB,MAAU,CAC1B,OACD,GAKG,CAAAC,CAAsC,CACtCC,CAAsC,CAiC1C,MA/BA,CAAApB,CAAa,CAACqB,OAAO,CAAEC,CAAS,EAAK,CACnC,KAAM,CAAAC,CAAe,CACnBD,CAAS,CAACE,UAAU,CAACF,CAAS,CAACE,UAAU,CAACN,MAAM,CAAG,CAAC,CAAC,CAGvD,GAAI,CAACC,CAAQ,CAEX,YADAA,CAAQ,CAAGG,CAAS,EAItB,KAAM,CAAAG,CAAQ,CAAGN,CAAQ,CAACK,UAAU,CAACL,CAAQ,CAAEK,UAAU,CAACN,MAAM,CAAG,CAAC,CAAC,CAGrE,GAAIK,CAAe,CAAGE,CAAQ,CAI5B,MAHA,CAAAL,CAAQ,CAAGD,CAAQ,MACnBA,CAAQ,CAAGG,CAAS,EAMtB,KAAM,CAAAI,CAAQ,CAAGN,CAAQ,CACrBA,CAAQ,CAACI,UAAU,CAACJ,CAAQ,CAACI,UAAU,CAACN,MAAM,CAAG,CAAC,CAAC,CACnD,CAAC,CAGDK,CAAe,CAAGG,CAAQ,GAC5BN,CAAQ,CAAGE,CAAS,CAExB,CAAC,CAAC,CAEKF,CACT,CACF,CAACO,OAAA,CAAApC,YAAA,CAAAA,YAAA"}
@@ -46,6 +46,7 @@ export type ConditionDataType = {
46
46
  goalId?: number | null;
47
47
  sdkLanguage?: SdkLanguageType | null;
48
48
  visitorCode?: string | null;
49
+ range?: number[] | null;
49
50
  lowerBound?: number;
50
51
  upperBound?: number;
51
52
  keyMomentId?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/targeting/conditions/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { SdkLanguageType } from 'src/constants';\nimport { BrowserType, DeviceType } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport {\n EvaluationDataType,\n MatchType,\n MatchTypeTest,\n MatchTypeVariation,\n NameMatchType,\n TargetingType,\n ValueMatchType,\n VersionMatchType,\n VisitorType,\n} from 'src/targeting/types';\nimport { OperatingSystemType } from 'src/kameleoonData/types';\nimport { TimeUnit } from 'src/utilities';\n\nexport interface ICondition {\n evaluate: (data: EvaluationDataType) => Result<boolean, KameleoonError>;\n}\n\nexport type ConditionType = ICondition;\n\nexport type ConditionDataType = {\n id: number;\n targetingType: TargetingType;\n isInclude: boolean | null;\n weight: number;\n customDataIndex?: string | null;\n pageCount?: number | null;\n value?: string | null;\n valueMatchType?: ValueMatchType | null;\n experiment?: number | null;\n variation?: number | null;\n visitCount?: number | null;\n variationKey?: string | null;\n featureFlagId?: number | null;\n ruleId?: number | null;\n variationMatchType?: MatchTypeVariation | null;\n testMatchType?: MatchTypeTest | null;\n matchType?: MatchType | null;\n device?: DeviceType | null;\n browser?: BrowserType | null;\n os?: OperatingSystemType | null;\n name?: string | null;\n nameMatchType?: NameMatchType | null;\n country?: string | null;\n region?: string | null;\n city?: string | null;\n segmentId?: number | null;\n version?: string | null;\n versionMatchType?: VersionMatchType | null;\n visitorType?: VisitorType | null;\n count?: number | null;\n unitOfTime?: TimeUnit | null;\n title?: string | null;\n url?: string | null;\n goalId?: number | null;\n sdkLanguage?: SdkLanguageType | null;\n visitorCode?: string | null;\n lowerBound?: number;\n upperBound?: number;\n keyMomentId?: number;\n};\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/targeting/conditions/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { SdkLanguageType } from 'src/constants';\nimport { BrowserType, DeviceType } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport {\n EvaluationDataType,\n MatchType,\n MatchTypeTest,\n MatchTypeVariation,\n NameMatchType,\n TargetingType,\n ValueMatchType,\n VersionMatchType,\n VisitorType,\n} from 'src/targeting/types';\nimport { OperatingSystemType } from 'src/kameleoonData/types';\nimport { TimeUnit } from 'src/utilities';\n\nexport interface ICondition {\n evaluate: (data: EvaluationDataType) => Result<boolean, KameleoonError>;\n}\n\nexport type ConditionType = ICondition;\n\nexport type ConditionDataType = {\n id: number;\n targetingType: TargetingType;\n isInclude: boolean | null;\n weight: number;\n customDataIndex?: string | null;\n pageCount?: number | null;\n value?: string | null;\n valueMatchType?: ValueMatchType | null;\n experiment?: number | null;\n variation?: number | null;\n visitCount?: number | null;\n variationKey?: string | null;\n featureFlagId?: number | null;\n ruleId?: number | null;\n variationMatchType?: MatchTypeVariation | null;\n testMatchType?: MatchTypeTest | null;\n matchType?: MatchType | null;\n device?: DeviceType | null;\n browser?: BrowserType | null;\n os?: OperatingSystemType | null;\n name?: string | null;\n nameMatchType?: NameMatchType | null;\n country?: string | null;\n region?: string | null;\n city?: string | null;\n segmentId?: number | null;\n version?: string | null;\n versionMatchType?: VersionMatchType | null;\n visitorType?: VisitorType | null;\n count?: number | null;\n unitOfTime?: TimeUnit | null;\n title?: string | null;\n url?: string | null;\n goalId?: number | null;\n sdkLanguage?: SdkLanguageType | null;\n visitorCode?: string | null;\n range?: number[] | null;\n lowerBound?: number;\n upperBound?: number;\n keyMomentId?: number;\n};\n"],"mappings":""}
@@ -67,7 +67,8 @@ export declare enum ValueMatchType {
67
67
  LOWER = "LOWER",
68
68
  GREATER = "GREATER",
69
69
  UNDEFINED = "UNDEFINED",
70
- AMONG_VALUES = "AMONG_VALUES"
70
+ AMONG_VALUES = "AMONG_VALUES",
71
+ RANGE = "RANGE"
71
72
  }
72
73
  export declare enum VisitorType {
73
74
  NEW = "NEW",
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorType=exports.VersionMatchType=exports.ValueMatchType=exports.TargetingType=exports.Operator=exports.NameMatchType=exports.MatchTypeVariation=exports.MatchTypeTest=exports.MatchType=void 0;let Operator=exports.Operator=function(a){return a.And="AND",a.Or="OR",a}({}),ValueMatchType=exports.ValueMatchType=function(a){return a.TRUE="TRUE",a.FALSE="FALSE",a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.EQUAL="EQUAL",a.LOWER="LOWER",a.GREATER="GREATER",a.UNDEFINED="UNDEFINED",a.AMONG_VALUES="AMONG_VALUES",a}({}),VisitorType=exports.VisitorType=function(a){return a.NEW="NEW",a.RETURNING="RETURNING",a}({}),MatchTypeVariation=exports.MatchTypeVariation=function(a){return a.ANY="ANY",a.EXACT="EXACT",a}({}),MatchTypeTest=exports.MatchTypeTest=function(a){return a.ALL="ALL",a.TEST="TEST",a.PERSO="PERSO",a}({}),MatchType=exports.MatchType=function(a){return a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.GREATER="GREATER",a.EQUAL="EQUAL",a.LOWER="LOWER",a}({}),VersionMatchType=exports.VersionMatchType=function(a){return a.GREATER="GREATER",a.EQUAL="EQUAL",a.LOWER="LOWER",a}({}),NameMatchType=exports.NameMatchType=function(a){return a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.OPTIONAL="OPTIONAL",a}({}),TargetingType=exports.TargetingType=function(a){return a.PAGE_URL="PAGE_URL",a.PAGE_TITLE="PAGE_TITLE",a.LANDING_PAGE="LANDING_PAGE",a.ORIGIN="ORIGIN",a.ORIGIN_TYPE="ORIGIN_TYPE",a.REFERRERS="REFERRERS",a.NEW_VISITORS="NEW_VISITORS",a.INTERESTS="INTERESTS",a.BROWSER_LANGUAGE="BROWSER_LANGUAGE",a.GEOLOCATION="GEOLOCATION",a.DEVICE_TYPE="DEVICE_TYPE",a.SCREEN_DIMENSION="SCREEN_DIMENSION",a.VISITOR_IP="VISITOR_IP",a.AD_BLOCKER="AD_BLOCKER",a.PREVIOUS_PAGE="PREVIOUS_PAGE",a.KEY_PAGES="KEY_PAGES",a.PAGE_VIEWS="PAGE_VIEWS",a.FIRST_VISIT="FIRST_VISIT",a.LAST_VISIT="LAST_VISIT",a.ACTIVE_SESSION="ACTIVE_SESSION",a.TIME_SINCE_PAGE_LOAD="TIME_SINCE_PAGE_LOAD",a.SAME_DAY_VISITS="SAME_DAY_VISITS",a.VISITS="VISITS",a.VISITS_BY_PAGE="VISITS_BY_PAGE",a.VISITOR_CODE="VISITOR_CODE",a.SDK_LANGUAGE="SDK_LANGUAGE",a.INTERNAL_SEARCH_KEYWORDS="INTERNAL_SEARCH_KEYWORDS",a.TABS_ON_SITE="TABS_ON_SITE",a.CONVERSION_PROBABILITY="CONVERSION_PROBABILITY",a.HEAT_SLICE="HEAT_SLICE",a.SKY_STATUS="SKY_STATUS",a.TEMPERATURE="TEMPERATURE",a.DAY_NIGHT="DAY_NIGHT",a.FORECAST_SKY_STATUS="FORECAST_SKY_STATUS",a.FORECAST_TEMPERATURE="FORECAST_TEMPERATURE",a.DAY_OF_WEEK="DAY_OF_WEEK",a.TIME_RANGE="TIME_RANGE",a.HOUR_MINUTE_RANGE="HOUR_MINUTE_RANGE",a.JS_CODE="JS_CODE",a.COOKIE="COOKIE",a.EVENT="EVENT",a.BROWSER="BROWSER",a.OPERATING_SYSTEM="OPERATING_SYSTEM",a.DOM_ELEMENT="DOM_ELEMENT",a.MOUSE_OUT="MOUSE_OUT",a.TARGET_EXPERIMENT="TARGET_EXPERIMENT",a.TARGET_FEATURE_FLAG="TARGET_FEATURE_FLAG",a.TARGET_PERSONALIZATION="TARGET_PERSONALIZATION",a.EXCLUSIVE_EXPERIMENT="EXCLUSIVE_EXPERIMENT",a.EXCLUSIVE_FEATURE_FLAG="EXCLUSIVE_FEATURE_FLAG",a.CONVERSIONS="CONVERSIONS",a.CUSTOM_DATUM="CUSTOM_DATUM",a.YSANCE_SEGMENT="YSANCE_SEGMENT",a.SEGMENT="SEGMENT",a.YSANCE_ATTRIBUT="YSANCE_ATTRIBUT",a.TEALIUM_BADGE="TEALIUM_BADGE",a.TEALIUM_AUDIENCE="TEALIUM_AUDIENCE",a.PRICE_OF_DISPLAYED_PAGE="PRICE_OF_DISPLAYED_PAGE",a.NUMBER_OF_VISITED_PAGES="NUMBER_OF_VISITED_PAGES",a.VISITED_PAGES="VISITED_PAGES",a.CUSTOM="CUSTOM",a.EXPLICIT_TRIGGER="EXPLICIT_TRIGGER",a.APPLICATION_VERSION="APPLICATION_VERSION",a}({});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorType=exports.VersionMatchType=exports.ValueMatchType=exports.TargetingType=exports.Operator=exports.NameMatchType=exports.MatchTypeVariation=exports.MatchTypeTest=exports.MatchType=void 0;let Operator=exports.Operator=function(a){return a.And="AND",a.Or="OR",a}({}),ValueMatchType=exports.ValueMatchType=function(a){return a.TRUE="TRUE",a.FALSE="FALSE",a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.EQUAL="EQUAL",a.LOWER="LOWER",a.GREATER="GREATER",a.UNDEFINED="UNDEFINED",a.AMONG_VALUES="AMONG_VALUES",a.RANGE="RANGE",a}({}),VisitorType=exports.VisitorType=function(a){return a.NEW="NEW",a.RETURNING="RETURNING",a}({}),MatchTypeVariation=exports.MatchTypeVariation=function(a){return a.ANY="ANY",a.EXACT="EXACT",a}({}),MatchTypeTest=exports.MatchTypeTest=function(a){return a.ALL="ALL",a.TEST="TEST",a.PERSO="PERSO",a}({}),MatchType=exports.MatchType=function(a){return a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.GREATER="GREATER",a.EQUAL="EQUAL",a.LOWER="LOWER",a}({}),VersionMatchType=exports.VersionMatchType=function(a){return a.GREATER="GREATER",a.EQUAL="EQUAL",a.LOWER="LOWER",a}({}),NameMatchType=exports.NameMatchType=function(a){return a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.OPTIONAL="OPTIONAL",a}({}),TargetingType=exports.TargetingType=function(a){return a.PAGE_URL="PAGE_URL",a.PAGE_TITLE="PAGE_TITLE",a.LANDING_PAGE="LANDING_PAGE",a.ORIGIN="ORIGIN",a.ORIGIN_TYPE="ORIGIN_TYPE",a.REFERRERS="REFERRERS",a.NEW_VISITORS="NEW_VISITORS",a.INTERESTS="INTERESTS",a.BROWSER_LANGUAGE="BROWSER_LANGUAGE",a.GEOLOCATION="GEOLOCATION",a.DEVICE_TYPE="DEVICE_TYPE",a.SCREEN_DIMENSION="SCREEN_DIMENSION",a.VISITOR_IP="VISITOR_IP",a.AD_BLOCKER="AD_BLOCKER",a.PREVIOUS_PAGE="PREVIOUS_PAGE",a.KEY_PAGES="KEY_PAGES",a.PAGE_VIEWS="PAGE_VIEWS",a.FIRST_VISIT="FIRST_VISIT",a.LAST_VISIT="LAST_VISIT",a.ACTIVE_SESSION="ACTIVE_SESSION",a.TIME_SINCE_PAGE_LOAD="TIME_SINCE_PAGE_LOAD",a.SAME_DAY_VISITS="SAME_DAY_VISITS",a.VISITS="VISITS",a.VISITS_BY_PAGE="VISITS_BY_PAGE",a.VISITOR_CODE="VISITOR_CODE",a.SDK_LANGUAGE="SDK_LANGUAGE",a.INTERNAL_SEARCH_KEYWORDS="INTERNAL_SEARCH_KEYWORDS",a.TABS_ON_SITE="TABS_ON_SITE",a.CONVERSION_PROBABILITY="CONVERSION_PROBABILITY",a.HEAT_SLICE="HEAT_SLICE",a.SKY_STATUS="SKY_STATUS",a.TEMPERATURE="TEMPERATURE",a.DAY_NIGHT="DAY_NIGHT",a.FORECAST_SKY_STATUS="FORECAST_SKY_STATUS",a.FORECAST_TEMPERATURE="FORECAST_TEMPERATURE",a.DAY_OF_WEEK="DAY_OF_WEEK",a.TIME_RANGE="TIME_RANGE",a.HOUR_MINUTE_RANGE="HOUR_MINUTE_RANGE",a.JS_CODE="JS_CODE",a.COOKIE="COOKIE",a.EVENT="EVENT",a.BROWSER="BROWSER",a.OPERATING_SYSTEM="OPERATING_SYSTEM",a.DOM_ELEMENT="DOM_ELEMENT",a.MOUSE_OUT="MOUSE_OUT",a.TARGET_EXPERIMENT="TARGET_EXPERIMENT",a.TARGET_FEATURE_FLAG="TARGET_FEATURE_FLAG",a.TARGET_PERSONALIZATION="TARGET_PERSONALIZATION",a.EXCLUSIVE_EXPERIMENT="EXCLUSIVE_EXPERIMENT",a.EXCLUSIVE_FEATURE_FLAG="EXCLUSIVE_FEATURE_FLAG",a.CONVERSIONS="CONVERSIONS",a.CUSTOM_DATUM="CUSTOM_DATUM",a.YSANCE_SEGMENT="YSANCE_SEGMENT",a.SEGMENT="SEGMENT",a.YSANCE_ATTRIBUT="YSANCE_ATTRIBUT",a.TEALIUM_BADGE="TEALIUM_BADGE",a.TEALIUM_AUDIENCE="TEALIUM_AUDIENCE",a.PRICE_OF_DISPLAYED_PAGE="PRICE_OF_DISPLAYED_PAGE",a.NUMBER_OF_VISITED_PAGES="NUMBER_OF_VISITED_PAGES",a.VISITED_PAGES="VISITED_PAGES",a.CUSTOM="CUSTOM",a.EXPLICIT_TRIGGER="EXPLICIT_TRIGGER",a.APPLICATION_VERSION="APPLICATION_VERSION",a}({});
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["Operator","exports","And","Or","ValueMatchType","TRUE","FALSE","EXACT","CONTAINS","REGULAR_EXPRESSION","EQUAL","LOWER","GREATER","UNDEFINED","AMONG_VALUES","VisitorType","NEW","RETURNING","MatchTypeVariation","ANY","MatchTypeTest","ALL","TEST","PERSO","MatchType","VersionMatchType","NameMatchType","OPTIONAL","TargetingType","PAGE_URL","PAGE_TITLE","LANDING_PAGE","ORIGIN","ORIGIN_TYPE","REFERRERS","NEW_VISITORS","INTERESTS","BROWSER_LANGUAGE","GEOLOCATION","DEVICE_TYPE","SCREEN_DIMENSION","VISITOR_IP","AD_BLOCKER","PREVIOUS_PAGE","KEY_PAGES","PAGE_VIEWS","FIRST_VISIT","LAST_VISIT","ACTIVE_SESSION","TIME_SINCE_PAGE_LOAD","SAME_DAY_VISITS","VISITS","VISITS_BY_PAGE","VISITOR_CODE","SDK_LANGUAGE","INTERNAL_SEARCH_KEYWORDS","TABS_ON_SITE","CONVERSION_PROBABILITY","HEAT_SLICE","SKY_STATUS","TEMPERATURE","DAY_NIGHT","FORECAST_SKY_STATUS","FORECAST_TEMPERATURE","DAY_OF_WEEK","TIME_RANGE","HOUR_MINUTE_RANGE","JS_CODE","COOKIE","EVENT","BROWSER","OPERATING_SYSTEM","DOM_ELEMENT","MOUSE_OUT","TARGET_EXPERIMENT","TARGET_FEATURE_FLAG","TARGET_PERSONALIZATION","EXCLUSIVE_EXPERIMENT","EXCLUSIVE_FEATURE_FLAG","CONVERSIONS","CUSTOM_DATUM","YSANCE_SEGMENT","SEGMENT","YSANCE_ATTRIBUT","TEALIUM_BADGE","TEALIUM_AUDIENCE","PRICE_OF_DISPLAYED_PAGE","NUMBER_OF_VISITED_PAGES","VISITED_PAGES","CUSTOM","EXPLICIT_TRIGGER","APPLICATION_VERSION"],"sources":["../../src/targeting/types.ts"],"sourcesContent":["import { MappedRuleType } from 'src/clientConfiguration/types';\nimport { KameleoonVisitorDataType } from 'src/kameleoonData/types';\nimport { FeatureFlagVariationsType } from 'src/storage/types';\nimport { ExternalPackageInfoType } from 'src/types';\nimport { ConditionDataType, ConditionType } from './conditions';\nimport { Node } from './node';\nimport { Tree } from './tree';\n\nexport enum Operator {\n And = 'AND',\n Or = 'OR',\n}\n\nexport type NonLeafNodeType = {\n left: Node;\n right: Node;\n value: Operator;\n};\n\nexport type LeafNodeType = {\n left: undefined;\n right: undefined;\n value: ConditionType;\n};\n\nexport type NodeValueType = ConditionType | Operator;\n\nexport type ConditionLevelType = {\n orOperators: boolean[];\n conditions: ConditionDataType[];\n};\n\nexport type SegmentType = {\n id: string;\n name: string;\n conditionsData: {\n firstLevelOrOperators: boolean[];\n firstLevel: ConditionLevelType[];\n };\n};\n\nexport type NestedConditionGroupType = {\n operators: Operator[];\n conditions: ConditionDataType[];\n};\n\nexport type GroupedSegmentsType = {\n topLevelOperators: Operator[];\n nestedConditions: NestedConditionGroupType[];\n};\n\nexport type VisitorReference = string;\n\nexport type TargetingDataType = {\n [visitorCode: string]: KameleoonVisitorDataType | VisitorReference;\n};\n\nexport type DereferencedTargetingDataType = {\n [visitorCode: string]: KameleoonVisitorDataType;\n};\n\nexport type EvaluationDataType = {\n targetingData?: KameleoonVisitorDataType;\n variationData: FeatureFlagVariationsType;\n ruleMap?: Map<number, MappedRuleType>;\n sdkInfo: ExternalPackageInfoType;\n experimentId: number | null;\n visitorCode: string;\n segments?: Map<string, SegmentType>;\n trees?: Map<string, Tree>;\n};\n\nexport enum ValueMatchType {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n EXACT = 'EXACT',\n CONTAINS = 'CONTAINS',\n REGULAR_EXPRESSION = 'REGULAR_EXPRESSION',\n EQUAL = 'EQUAL',\n LOWER = 'LOWER',\n GREATER = 'GREATER',\n UNDEFINED = 'UNDEFINED',\n AMONG_VALUES = 'AMONG_VALUES',\n}\n\nexport enum VisitorType {\n NEW = 'NEW',\n RETURNING = 'RETURNING',\n}\n\nexport enum MatchTypeVariation {\n ANY = 'ANY',\n EXACT = 'EXACT',\n}\n\nexport enum MatchTypeTest {\n ALL = 'ALL',\n TEST = 'TEST',\n PERSO = 'PERSO',\n}\n\n// --- Note ---\n// Starting the merge of `matchType` with the release of new conditions\n// Now it contains a couple of sub types, in future API version all match types\n// will be accumulated in this enum\nexport enum MatchType {\n // -- Sub Type One\n EXACT = 'EXACT',\n CONTAINS = 'CONTAINS',\n REGULAR_EXPRESSION = 'REGULAR_EXPRESSION',\n // -- Sub Type Two\n GREATER = 'GREATER',\n EQUAL = 'EQUAL',\n LOWER = 'LOWER',\n}\n\nexport enum VersionMatchType {\n GREATER = 'GREATER',\n EQUAL = 'EQUAL',\n LOWER = 'LOWER',\n}\n\nexport enum NameMatchType {\n EXACT = 'EXACT',\n CONTAINS = 'CONTAINS',\n REGULAR_EXPRESSION = 'REGULAR_EXPRESSION',\n OPTIONAL = 'OPTIONAL',\n}\n\nexport enum TargetingType {\n PAGE_URL = 'PAGE_URL',\n PAGE_TITLE = 'PAGE_TITLE',\n LANDING_PAGE = 'LANDING_PAGE',\n ORIGIN = 'ORIGIN',\n ORIGIN_TYPE = 'ORIGIN_TYPE',\n REFERRERS = 'REFERRERS',\n NEW_VISITORS = 'NEW_VISITORS',\n INTERESTS = 'INTERESTS',\n BROWSER_LANGUAGE = 'BROWSER_LANGUAGE',\n GEOLOCATION = 'GEOLOCATION',\n DEVICE_TYPE = 'DEVICE_TYPE',\n SCREEN_DIMENSION = 'SCREEN_DIMENSION',\n VISITOR_IP = 'VISITOR_IP',\n AD_BLOCKER = 'AD_BLOCKER',\n PREVIOUS_PAGE = 'PREVIOUS_PAGE',\n KEY_PAGES = 'KEY_PAGES',\n PAGE_VIEWS = 'PAGE_VIEWS',\n FIRST_VISIT = 'FIRST_VISIT',\n LAST_VISIT = 'LAST_VISIT',\n ACTIVE_SESSION = 'ACTIVE_SESSION',\n TIME_SINCE_PAGE_LOAD = 'TIME_SINCE_PAGE_LOAD',\n SAME_DAY_VISITS = 'SAME_DAY_VISITS',\n VISITS = 'VISITS',\n VISITS_BY_PAGE = 'VISITS_BY_PAGE',\n VISITOR_CODE = 'VISITOR_CODE',\n SDK_LANGUAGE = 'SDK_LANGUAGE',\n INTERNAL_SEARCH_KEYWORDS = 'INTERNAL_SEARCH_KEYWORDS',\n TABS_ON_SITE = 'TABS_ON_SITE',\n CONVERSION_PROBABILITY = 'CONVERSION_PROBABILITY',\n HEAT_SLICE = 'HEAT_SLICE',\n SKY_STATUS = 'SKY_STATUS',\n TEMPERATURE = 'TEMPERATURE',\n DAY_NIGHT = 'DAY_NIGHT',\n FORECAST_SKY_STATUS = 'FORECAST_SKY_STATUS',\n FORECAST_TEMPERATURE = 'FORECAST_TEMPERATURE',\n DAY_OF_WEEK = 'DAY_OF_WEEK',\n TIME_RANGE = 'TIME_RANGE',\n HOUR_MINUTE_RANGE = 'HOUR_MINUTE_RANGE',\n JS_CODE = 'JS_CODE',\n COOKIE = 'COOKIE',\n EVENT = 'EVENT',\n BROWSER = 'BROWSER',\n OPERATING_SYSTEM = 'OPERATING_SYSTEM',\n DOM_ELEMENT = 'DOM_ELEMENT',\n MOUSE_OUT = 'MOUSE_OUT',\n TARGET_EXPERIMENT = 'TARGET_EXPERIMENT',\n TARGET_FEATURE_FLAG = 'TARGET_FEATURE_FLAG',\n TARGET_PERSONALIZATION = 'TARGET_PERSONALIZATION',\n EXCLUSIVE_EXPERIMENT = 'EXCLUSIVE_EXPERIMENT',\n EXCLUSIVE_FEATURE_FLAG = 'EXCLUSIVE_FEATURE_FLAG',\n CONVERSIONS = 'CONVERSIONS',\n CUSTOM_DATUM = 'CUSTOM_DATUM',\n YSANCE_SEGMENT = 'YSANCE_SEGMENT',\n SEGMENT = 'SEGMENT',\n YSANCE_ATTRIBUT = 'YSANCE_ATTRIBUT',\n TEALIUM_BADGE = 'TEALIUM_BADGE',\n TEALIUM_AUDIENCE = 'TEALIUM_AUDIENCE',\n PRICE_OF_DISPLAYED_PAGE = 'PRICE_OF_DISPLAYED_PAGE',\n NUMBER_OF_VISITED_PAGES = 'NUMBER_OF_VISITED_PAGES',\n VISITED_PAGES = 'VISITED_PAGES',\n CUSTOM = 'CUSTOM',\n EXPLICIT_TRIGGER = 'EXPLICIT_TRIGGER',\n APPLICATION_VERSION = 'APPLICATION_VERSION',\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"types.js","names":["Operator","exports","And","Or","ValueMatchType","TRUE","FALSE","EXACT","CONTAINS","REGULAR_EXPRESSION","EQUAL","LOWER","GREATER","UNDEFINED","AMONG_VALUES","RANGE","VisitorType","NEW","RETURNING","MatchTypeVariation","ANY","MatchTypeTest","ALL","TEST","PERSO","MatchType","VersionMatchType","NameMatchType","OPTIONAL","TargetingType","PAGE_URL","PAGE_TITLE","LANDING_PAGE","ORIGIN","ORIGIN_TYPE","REFERRERS","NEW_VISITORS","INTERESTS","BROWSER_LANGUAGE","GEOLOCATION","DEVICE_TYPE","SCREEN_DIMENSION","VISITOR_IP","AD_BLOCKER","PREVIOUS_PAGE","KEY_PAGES","PAGE_VIEWS","FIRST_VISIT","LAST_VISIT","ACTIVE_SESSION","TIME_SINCE_PAGE_LOAD","SAME_DAY_VISITS","VISITS","VISITS_BY_PAGE","VISITOR_CODE","SDK_LANGUAGE","INTERNAL_SEARCH_KEYWORDS","TABS_ON_SITE","CONVERSION_PROBABILITY","HEAT_SLICE","SKY_STATUS","TEMPERATURE","DAY_NIGHT","FORECAST_SKY_STATUS","FORECAST_TEMPERATURE","DAY_OF_WEEK","TIME_RANGE","HOUR_MINUTE_RANGE","JS_CODE","COOKIE","EVENT","BROWSER","OPERATING_SYSTEM","DOM_ELEMENT","MOUSE_OUT","TARGET_EXPERIMENT","TARGET_FEATURE_FLAG","TARGET_PERSONALIZATION","EXCLUSIVE_EXPERIMENT","EXCLUSIVE_FEATURE_FLAG","CONVERSIONS","CUSTOM_DATUM","YSANCE_SEGMENT","SEGMENT","YSANCE_ATTRIBUT","TEALIUM_BADGE","TEALIUM_AUDIENCE","PRICE_OF_DISPLAYED_PAGE","NUMBER_OF_VISITED_PAGES","VISITED_PAGES","CUSTOM","EXPLICIT_TRIGGER","APPLICATION_VERSION"],"sources":["../../src/targeting/types.ts"],"sourcesContent":["import { MappedRuleType } from 'src/clientConfiguration/types';\nimport { KameleoonVisitorDataType } from 'src/kameleoonData/types';\nimport { FeatureFlagVariationsType } from 'src/storage/types';\nimport { ExternalPackageInfoType } from 'src/types';\nimport { ConditionDataType, ConditionType } from './conditions';\nimport { Node } from './node';\nimport { Tree } from './tree';\n\nexport enum Operator {\n And = 'AND',\n Or = 'OR',\n}\n\nexport type NonLeafNodeType = {\n left: Node;\n right: Node;\n value: Operator;\n};\n\nexport type LeafNodeType = {\n left: undefined;\n right: undefined;\n value: ConditionType;\n};\n\nexport type NodeValueType = ConditionType | Operator;\n\nexport type ConditionLevelType = {\n orOperators: boolean[];\n conditions: ConditionDataType[];\n};\n\nexport type SegmentType = {\n id: string;\n name: string;\n conditionsData: {\n firstLevelOrOperators: boolean[];\n firstLevel: ConditionLevelType[];\n };\n};\n\nexport type NestedConditionGroupType = {\n operators: Operator[];\n conditions: ConditionDataType[];\n};\n\nexport type GroupedSegmentsType = {\n topLevelOperators: Operator[];\n nestedConditions: NestedConditionGroupType[];\n};\n\nexport type VisitorReference = string;\n\nexport type TargetingDataType = {\n [visitorCode: string]: KameleoonVisitorDataType | VisitorReference;\n};\n\nexport type DereferencedTargetingDataType = {\n [visitorCode: string]: KameleoonVisitorDataType;\n};\n\nexport type EvaluationDataType = {\n targetingData?: KameleoonVisitorDataType;\n variationData: FeatureFlagVariationsType;\n ruleMap?: Map<number, MappedRuleType>;\n sdkInfo: ExternalPackageInfoType;\n experimentId: number | null;\n visitorCode: string;\n segments?: Map<string, SegmentType>;\n trees?: Map<string, Tree>;\n};\n\nexport enum ValueMatchType {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n EXACT = 'EXACT',\n CONTAINS = 'CONTAINS',\n REGULAR_EXPRESSION = 'REGULAR_EXPRESSION',\n EQUAL = 'EQUAL',\n LOWER = 'LOWER',\n GREATER = 'GREATER',\n UNDEFINED = 'UNDEFINED',\n AMONG_VALUES = 'AMONG_VALUES',\n RANGE = 'RANGE',\n}\n\nexport enum VisitorType {\n NEW = 'NEW',\n RETURNING = 'RETURNING',\n}\n\nexport enum MatchTypeVariation {\n ANY = 'ANY',\n EXACT = 'EXACT',\n}\n\nexport enum MatchTypeTest {\n ALL = 'ALL',\n TEST = 'TEST',\n PERSO = 'PERSO',\n}\n\n// --- Note ---\n// Starting the merge of `matchType` with the release of new conditions\n// Now it contains a couple of sub types, in future API version all match types\n// will be accumulated in this enum\nexport enum MatchType {\n // -- Sub Type One\n EXACT = 'EXACT',\n CONTAINS = 'CONTAINS',\n REGULAR_EXPRESSION = 'REGULAR_EXPRESSION',\n // -- Sub Type Two\n GREATER = 'GREATER',\n EQUAL = 'EQUAL',\n LOWER = 'LOWER',\n}\n\nexport enum VersionMatchType {\n GREATER = 'GREATER',\n EQUAL = 'EQUAL',\n LOWER = 'LOWER',\n}\n\nexport enum NameMatchType {\n EXACT = 'EXACT',\n CONTAINS = 'CONTAINS',\n REGULAR_EXPRESSION = 'REGULAR_EXPRESSION',\n OPTIONAL = 'OPTIONAL',\n}\n\nexport enum TargetingType {\n PAGE_URL = 'PAGE_URL',\n PAGE_TITLE = 'PAGE_TITLE',\n LANDING_PAGE = 'LANDING_PAGE',\n ORIGIN = 'ORIGIN',\n ORIGIN_TYPE = 'ORIGIN_TYPE',\n REFERRERS = 'REFERRERS',\n NEW_VISITORS = 'NEW_VISITORS',\n INTERESTS = 'INTERESTS',\n BROWSER_LANGUAGE = 'BROWSER_LANGUAGE',\n GEOLOCATION = 'GEOLOCATION',\n DEVICE_TYPE = 'DEVICE_TYPE',\n SCREEN_DIMENSION = 'SCREEN_DIMENSION',\n VISITOR_IP = 'VISITOR_IP',\n AD_BLOCKER = 'AD_BLOCKER',\n PREVIOUS_PAGE = 'PREVIOUS_PAGE',\n KEY_PAGES = 'KEY_PAGES',\n PAGE_VIEWS = 'PAGE_VIEWS',\n FIRST_VISIT = 'FIRST_VISIT',\n LAST_VISIT = 'LAST_VISIT',\n ACTIVE_SESSION = 'ACTIVE_SESSION',\n TIME_SINCE_PAGE_LOAD = 'TIME_SINCE_PAGE_LOAD',\n SAME_DAY_VISITS = 'SAME_DAY_VISITS',\n VISITS = 'VISITS',\n VISITS_BY_PAGE = 'VISITS_BY_PAGE',\n VISITOR_CODE = 'VISITOR_CODE',\n SDK_LANGUAGE = 'SDK_LANGUAGE',\n INTERNAL_SEARCH_KEYWORDS = 'INTERNAL_SEARCH_KEYWORDS',\n TABS_ON_SITE = 'TABS_ON_SITE',\n CONVERSION_PROBABILITY = 'CONVERSION_PROBABILITY',\n HEAT_SLICE = 'HEAT_SLICE',\n SKY_STATUS = 'SKY_STATUS',\n TEMPERATURE = 'TEMPERATURE',\n DAY_NIGHT = 'DAY_NIGHT',\n FORECAST_SKY_STATUS = 'FORECAST_SKY_STATUS',\n FORECAST_TEMPERATURE = 'FORECAST_TEMPERATURE',\n DAY_OF_WEEK = 'DAY_OF_WEEK',\n TIME_RANGE = 'TIME_RANGE',\n HOUR_MINUTE_RANGE = 'HOUR_MINUTE_RANGE',\n JS_CODE = 'JS_CODE',\n COOKIE = 'COOKIE',\n EVENT = 'EVENT',\n BROWSER = 'BROWSER',\n OPERATING_SYSTEM = 'OPERATING_SYSTEM',\n DOM_ELEMENT = 'DOM_ELEMENT',\n MOUSE_OUT = 'MOUSE_OUT',\n TARGET_EXPERIMENT = 'TARGET_EXPERIMENT',\n TARGET_FEATURE_FLAG = 'TARGET_FEATURE_FLAG',\n TARGET_PERSONALIZATION = 'TARGET_PERSONALIZATION',\n EXCLUSIVE_EXPERIMENT = 'EXCLUSIVE_EXPERIMENT',\n EXCLUSIVE_FEATURE_FLAG = 'EXCLUSIVE_FEATURE_FLAG',\n CONVERSIONS = 'CONVERSIONS',\n CUSTOM_DATUM = 'CUSTOM_DATUM',\n YSANCE_SEGMENT = 'YSANCE_SEGMENT',\n SEGMENT = 'SEGMENT',\n YSANCE_ATTRIBUT = 'YSANCE_ATTRIBUT',\n TEALIUM_BADGE = 'TEALIUM_BADGE',\n TEALIUM_AUDIENCE = 'TEALIUM_AUDIENCE',\n PRICE_OF_DISPLAYED_PAGE = 'PRICE_OF_DISPLAYED_PAGE',\n NUMBER_OF_VISITED_PAGES = 'NUMBER_OF_VISITED_PAGES',\n VISITED_PAGES = 'VISITED_PAGES',\n CUSTOM = 'CUSTOM',\n EXPLICIT_TRIGGER = 'EXPLICIT_TRIGGER',\n APPLICATION_VERSION = 'APPLICATION_VERSION',\n}\n"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -105,11 +105,11 @@ export type JSONVariableType = {
105
105
  value: JSONType;
106
106
  };
107
107
  /**
108
- * @type FeatureVariableResultType - tuple of possible feature variable result types, each possible variation is an object containing `key`, `type` and `value` fields, `type` can be checked against `VariableType` enum, if the `type` is `VariableType.BOOLEAN` then the `value` type will be `boolean` and so on.
108
+ * @type `FeatureVariableResultType` - tuple of possible feature variable result types, each possible variation is an object containing `key`, `type` and `value` fields, `type` can be checked against `VariableType` enum, if the `type` is `VariableType.BOOLEAN` then the `value` type will be `boolean` and so on.
109
109
  * */
110
110
  export type FeatureVariableResultType = BooleanVariableType | NumberVariableType | StringVariableType | JSONVariableType;
111
111
  /**
112
- * @type FeatureFlagVariableType - tuple of possible feature variable result types, each possible variation is an object containing `type` and `value` fields, `type` can be checked against `VariableType` enum, if the `type` is `VariableType.BOOLEAN` then the `value` type will be `boolean` and so on.
112
+ * @type `FeatureFlagVariableType` - tuple of possible feature variable result types, each possible variation is an object containing `type` and `value` fields, `type` can be checked against `VariableType` enum, if the `type` is `VariableType.BOOLEAN` then the `value` type will be `boolean` and so on.
113
113
  * */
114
114
  export type FeatureFlagVariableType = Omit<FeatureVariableResultType, 'key'>;
115
115
  /**
@@ -149,10 +149,32 @@ export type RemoteVisitorDataParamsType = {
149
149
  filters?: VisitorDataFiltersType;
150
150
  isUniqueIdentifier?: boolean;
151
151
  };
152
+ export type GetFeatureVariablesParamsType = {
153
+ visitorCode: string;
154
+ featureKey: string;
155
+ variationKey: string;
156
+ };
152
157
  export type FeatureFlagType = {
153
158
  id: number;
154
159
  key: string;
155
160
  };
161
+ /**
162
+ * @type `KameleoonVariableType` - tuple of possible feature variable result types, each possible variation is an object containing `key`, `type` and `value` fields, `type` can be checked against `VariableType` enum, if the `type` is `VariableType.BOOLEAN` then the `value` type will be `boolean` and so on.
163
+ * */
164
+ export type KameleoonVariableType = FeatureVariableResultType;
165
+ /**
166
+ * @type `KameleoonVariationType` - object containing information about the variation and its variables
167
+ * @param {string} key - key of the variation
168
+ * @param {number | null} id - id of the variation or `null` if the visitor hit default variation
169
+ * @param {number | null} experimentId - id of the experiment or `null` if the visitor hit default variation
170
+ * @param {KameleoonVariableType[]} variables - array of variables for the variation
171
+ * */
172
+ export type KameleoonVariationType = {
173
+ key: string;
174
+ id: number | null;
175
+ experimentId: number | null;
176
+ variables: KameleoonVariableType[];
177
+ };
156
178
  /**
157
179
  * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
158
180
  * @param {string} featureKey - key of the feature flag to look for, can be found on Kameleoon Platform
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["Environment","exports","Production","Staging","Development","VariableType","BOOLEAN","NUMBER","STRING","JSON","Milliseconds","Second","Minute","Hour","Day","Week","Month"],"sources":["../src/types.ts"],"sourcesContent":["import { ConfigurationDataType, JSONType } from './clientConfiguration/types';\nimport { SdkLanguageType } from './constants';\nimport { IExternalEventSource } from './eventSource';\nimport { IExternalRequestDispatcher } from './requester';\nimport { IExternalStorage } from './storage';\nimport { VisitorDataFiltersType } from './utilities';\nimport { IVisitorCodeManager } from './visitorCodeManager';\n\n/**\n * @param {number} updateInterval - update interval in _minutes_ for sdk configuration, minimum value is 1 minute\n * @defaultvalue 60\n *\n * @param {Environment} environment - feature flag environment\n * @defaultvalue Environment.Production\n *\n * @param {number | undefined} targetingDataCleanupInterval - interval in _minutes_ for cleaning up targeting data, minimum value is 1 minute\n * Note: if not specified, default value will be used\n * @defaultvalue\n * - JavaScript SDK: `undefined` (no cleanup)\n * - React/React Native SDK: `undefined` (no cleanup)\n * - NodeJS SDK: `30`\n *\n * @param {string | undefined} domain - domain which cookie belongs to\n * @param {number | undefined} requestTimeout - timeout in _milliseconds_ for requests\n * @defaultvalue `10_000` (10 seconds)\n * */\nexport type SDKConfigurationType = {\n updateInterval?: number;\n environment?: Environment;\n targetingDataCleanupInterval?: number;\n requestTimeout?: number;\n domain?: string;\n};\n\n/**\n * @param {string} siteCode - client's siteCode defined on Kameleoon platform\n * @param {Partial<SDKConfigurationType>} configuration - client's configuration\n * @param {InternalSDKConfigurationType} internalConfiguration - internal configuration for sdk core to be initialized with certain parameters to certain type of JavaScript SDK\n * */\nexport type SDKCoreParameters = {\n siteCode: string;\n configuration?: Partial<SDKConfigurationType>;\n internalConfiguration: InternalSDKConfigurationType;\n};\n\n/**\n * @param {SdkLanguageType} type - type of the SDK\n * @param {string} version - version of the package\n * */\nexport type ExternalPackageInfoType = {\n type: SdkLanguageType;\n version: string;\n};\n\n/**\n * @param {IExternalStorage | undefined} externalStorage - external file system storage implemented outside client initialization\n * @param {IExternalEventSourceConstructor | undefined} externalEventSource - constructor for building external event source implementation\n * @param {ExternalPackageInfoType} externalPackageInfo - external package info, used to get package version and name\n * @param {ConfigurationDataType} externalClientConfiguration - external fetched client configuration\n * @param {IExternalRequestDispatcher} externalRequestDispatcher - external request dispatcher, used to track data or get data\n * @param {IVisitorCodeManager} externalVisitorCodeManager - external visitor code manager, used to get or generate visitor code\n * @param {number} targetingDataCleanupInterval - interval in *minutes* for cleaning up targeting data, minimum value is 1 minute\n * */\nexport type InternalSDKConfigurationType = {\n externalStorage: IExternalStorage;\n externalEventSource: IExternalEventSource;\n externalVisitorCodeManager: IVisitorCodeManager;\n externalPackageInfo: ExternalPackageInfoType;\n externalRequestDispatcher: IExternalRequestDispatcher;\n externalClientConfiguration?: ConfigurationDataType;\n};\n\n/**\n * @readonly\n * @enum {string} an Enum containing all possible variants of environment, passed as an argument to KameleoonClient `configuration`s `environment` field\n * */\nexport enum Environment {\n Production = 'production',\n Staging = 'staging',\n Development = 'development',\n}\n\n/**\n * @readonly\n * @enum {string} an Enum containing all possible variants of feature variable types\n * */\nexport enum VariableType {\n BOOLEAN = 'BOOLEAN',\n NUMBER = 'NUMBER',\n STRING = 'STRING',\n JSON = 'JSON',\n}\n\nexport type BooleanVariableType = {\n key: string;\n type: VariableType.BOOLEAN;\n value: boolean;\n};\n\nexport type NumberVariableType = {\n key: string;\n type: VariableType.NUMBER;\n value: number;\n};\n\nexport type StringVariableType = {\n key: string;\n type: VariableType.STRING;\n value: string;\n};\n\nexport type JSONVariableType = {\n key: string;\n type: VariableType.JSON;\n value: JSONType;\n};\n\n/**\n * @type FeatureVariableResultType - tuple of possible feature variable result types, each possible variation is an object containing `key`, `type` and `value` fields, `type` can be checked against `VariableType` enum, if the `type` is `VariableType.BOOLEAN` then the `value` type will be `boolean` and so on.\n * */\nexport type FeatureVariableResultType =\n | BooleanVariableType\n | NumberVariableType\n | StringVariableType\n | JSONVariableType;\n\n/**\n * @type FeatureFlagVariableType - tuple of possible feature variable result types, each possible variation is an object containing `type` and `value` fields, `type` can be checked against `VariableType` enum, if the `type` is `VariableType.BOOLEAN` then the `value` type will be `boolean` and so on.\n * */\nexport type FeatureFlagVariableType = Omit<FeatureVariableResultType, 'key'>;\n\n/**\n * @readonly\n * @enum {number} a helper Enum for getting milliseconds for a second/minute/hour/day/week/month.\n * Month is considered in average of 30 days\n * */\nexport enum Milliseconds {\n Second = 1000,\n Minute = 60 * Milliseconds.Second,\n Hour = 60 * Milliseconds.Minute,\n Day = 24 * Milliseconds.Hour,\n Week = 7 * Milliseconds.Day,\n Month = 30 * Milliseconds.Day,\n}\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {number} goalId - an id of a goal to track\n * @param {number | undefined} revenue - an optional parameter for revenue, default value is `0`\n * @param {boolean | undefined} isUniqueIdentifier - an optional parameter for specifying if the visitorCode is a unique identifier, default value is `false`\n * */\nexport type TrackConversionParamsType = {\n visitorCode: string;\n goalId: number;\n revenue?: number;\n isUniqueIdentifier?: boolean;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {boolean | undefined} shouldAddData - optional parameter for adding retrieved data to the storage like `addData` method does, default value is `true`\n * @param {VisitorDataFiltersType | undefined} filters - optional parameter for specifying the filters for which data should be retrieved from what visit, by default only current and latest previous visits' `customData` is retrieved\n * @param {boolean | undefined} isUniqueIdentifier - an optional parameter for specifying if the visitorCode is a unique identifier, default value is `false`\n * */\nexport type RemoteVisitorDataParamsType = {\n visitorCode: string;\n shouldAddData?: boolean;\n filters?: VisitorDataFiltersType;\n isUniqueIdentifier?: boolean;\n};\n\nexport type FeatureFlagType = {\n id: number;\n key: string;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {string} featureKey - key of the feature flag to look for, can be found on Kameleoon Platform\n * @param {string} variableKey - key of the variable to be found for a feature flag with provided `featureKey`, can be found on Kameleoon Platform\n * */\nexport type GetFeatureFlagVariableParamsType = {\n visitorCode: string;\n featureKey: string;\n variableKey: string;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identification string, can't exceed 255 characters length\n * @param {number} customDataIndex - index of the custom data in the warehouse audience\n * @param {string | undefined} warehouseKey - unique key to identify the warehouse data (usually internal user ID)\n * If not specified, the `visitorCode` will be used as a `warehouseKey`\n * */\nexport type GetVisitorWarehouseAudienceParamsType = {\n visitorCode: string;\n customDataIndex: number;\n warehouseKey?: string;\n};\n\nexport type WarehouseAudienceType = {\n // --- Note ---\n // Using `unknown` type here because we don't care about the type of the value\n warehouseAudiences: Record<string, unknown>;\n};\n\nexport type TrackingCacheItemType = {\n [experimentId: number]: { variationId: number; expirationTime: number };\n};\n\nexport type SetDataCallbackParametersType = {\n visitorCode: string;\n maxAge: number;\n path: string;\n key: string;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {boolean} consent - a value representing the legal consent status. - 'true' indicates the\n * visitor has given legal consent. - 'false' indicates the visitor has withdrawn or not\n * provided legal consent.\n * @param {(visitorCode: string) => void} setData - a callback to set a visitor code in cookie\n * */\nexport type SetUserConsentParametersType = {\n visitorCode: string;\n consent: boolean;\n setData: ({\n visitorCode,\n maxAge,\n path,\n }: SetDataCallbackParametersType) => void;\n};\n"],"mappings":"4IA4EY,CAAAA,WAAW,CAAAC,OAAA,CAAAD,WAAA,UAAXA,CAAW,QAAX,CAAAA,CAAW,CAAAE,UAAA,cAAXF,CAAW,CAAAG,OAAA,WAAXH,CAAW,CAAAI,WAAA,eAAXJ,CAAW,MAUXK,YAAY,CAAAJ,OAAA,CAAAI,YAAA,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAAC,OAAA,WAAZD,CAAY,CAAAE,MAAA,UAAZF,CAAY,CAAAG,MAAA,UAAZH,CAAY,CAAAI,IAAA,QAAZJ,CAAY,MAkDZK,YAAY,CAAAT,OAAA,CAAAS,YAAA,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAZA,CAAY,CAAAC,MAAA,gBAAZD,CAAY,CAAZA,CAAY,CAAAE,MAAA,CAEb,EAAE,CAAGF,CAAY,CAACC,MAAM,WAFvBD,CAAY,CAAZA,CAAY,CAAAG,IAAA,CAGf,EAAE,CAAGH,CAAY,CAACE,MAAM,SAHrBF,CAAY,CAAZA,CAAY,CAAAI,GAAA,CAIhB,EAAE,CAAGJ,CAAY,CAACG,IAAI,QAJlBH,CAAY,CAAZA,CAAY,CAAAK,IAAA,CAKf,CAAC,CAAGL,CAAY,CAACI,GAAG,SALjBJ,CAAY,CAAZA,CAAY,CAAAM,KAAA,CAMd,EAAE,CAAGN,CAAY,CAACI,GAAG,UANnBJ,CAAY"}
1
+ {"version":3,"file":"types.js","names":["Environment","exports","Production","Staging","Development","VariableType","BOOLEAN","NUMBER","STRING","JSON","Milliseconds","Second","Minute","Hour","Day","Week","Month"],"sources":["../src/types.ts"],"sourcesContent":["import { ConfigurationDataType, JSONType } from './clientConfiguration/types';\nimport { SdkLanguageType } from './constants';\nimport { IExternalEventSource } from './eventSource';\nimport { IExternalRequestDispatcher } from './requester';\nimport { IExternalStorage } from './storage';\nimport { VisitorDataFiltersType } from './utilities';\nimport { IVisitorCodeManager } from './visitorCodeManager';\n\n/**\n * @param {number} updateInterval - update interval in _minutes_ for sdk configuration, minimum value is 1 minute\n * @defaultvalue 60\n *\n * @param {Environment} environment - feature flag environment\n * @defaultvalue Environment.Production\n *\n * @param {number | undefined} targetingDataCleanupInterval - interval in _minutes_ for cleaning up targeting data, minimum value is 1 minute\n * Note: if not specified, default value will be used\n * @defaultvalue\n * - JavaScript SDK: `undefined` (no cleanup)\n * - React/React Native SDK: `undefined` (no cleanup)\n * - NodeJS SDK: `30`\n *\n * @param {string | undefined} domain - domain which cookie belongs to\n * @param {number | undefined} requestTimeout - timeout in _milliseconds_ for requests\n * @defaultvalue `10_000` (10 seconds)\n * */\nexport type SDKConfigurationType = {\n updateInterval?: number;\n environment?: Environment;\n targetingDataCleanupInterval?: number;\n requestTimeout?: number;\n domain?: string;\n};\n\n/**\n * @param {string} siteCode - client's siteCode defined on Kameleoon platform\n * @param {Partial<SDKConfigurationType>} configuration - client's configuration\n * @param {InternalSDKConfigurationType} internalConfiguration - internal configuration for sdk core to be initialized with certain parameters to certain type of JavaScript SDK\n * */\nexport type SDKCoreParameters = {\n siteCode: string;\n configuration?: Partial<SDKConfigurationType>;\n internalConfiguration: InternalSDKConfigurationType;\n};\n\n/**\n * @param {SdkLanguageType} type - type of the SDK\n * @param {string} version - version of the package\n * */\nexport type ExternalPackageInfoType = {\n type: SdkLanguageType;\n version: string;\n};\n\n/**\n * @param {IExternalStorage | undefined} externalStorage - external file system storage implemented outside client initialization\n * @param {IExternalEventSourceConstructor | undefined} externalEventSource - constructor for building external event source implementation\n * @param {ExternalPackageInfoType} externalPackageInfo - external package info, used to get package version and name\n * @param {ConfigurationDataType} externalClientConfiguration - external fetched client configuration\n * @param {IExternalRequestDispatcher} externalRequestDispatcher - external request dispatcher, used to track data or get data\n * @param {IVisitorCodeManager} externalVisitorCodeManager - external visitor code manager, used to get or generate visitor code\n * @param {number} targetingDataCleanupInterval - interval in *minutes* for cleaning up targeting data, minimum value is 1 minute\n * */\nexport type InternalSDKConfigurationType = {\n externalStorage: IExternalStorage;\n externalEventSource: IExternalEventSource;\n externalVisitorCodeManager: IVisitorCodeManager;\n externalPackageInfo: ExternalPackageInfoType;\n externalRequestDispatcher: IExternalRequestDispatcher;\n externalClientConfiguration?: ConfigurationDataType;\n};\n\n/**\n * @readonly\n * @enum {string} an Enum containing all possible variants of environment, passed as an argument to KameleoonClient `configuration`s `environment` field\n * */\nexport enum Environment {\n Production = 'production',\n Staging = 'staging',\n Development = 'development',\n}\n\n/**\n * @readonly\n * @enum {string} an Enum containing all possible variants of feature variable types\n * */\nexport enum VariableType {\n BOOLEAN = 'BOOLEAN',\n NUMBER = 'NUMBER',\n STRING = 'STRING',\n JSON = 'JSON',\n}\n\nexport type BooleanVariableType = {\n key: string;\n type: VariableType.BOOLEAN;\n value: boolean;\n};\n\nexport type NumberVariableType = {\n key: string;\n type: VariableType.NUMBER;\n value: number;\n};\n\nexport type StringVariableType = {\n key: string;\n type: VariableType.STRING;\n value: string;\n};\n\nexport type JSONVariableType = {\n key: string;\n type: VariableType.JSON;\n value: JSONType;\n};\n\n/**\n * @type `FeatureVariableResultType` - tuple of possible feature variable result types, each possible variation is an object containing `key`, `type` and `value` fields, `type` can be checked against `VariableType` enum, if the `type` is `VariableType.BOOLEAN` then the `value` type will be `boolean` and so on.\n * */\nexport type FeatureVariableResultType =\n | BooleanVariableType\n | NumberVariableType\n | StringVariableType\n | JSONVariableType;\n\n/**\n * @type `FeatureFlagVariableType` - tuple of possible feature variable result types, each possible variation is an object containing `type` and `value` fields, `type` can be checked against `VariableType` enum, if the `type` is `VariableType.BOOLEAN` then the `value` type will be `boolean` and so on.\n * */\nexport type FeatureFlagVariableType = Omit<FeatureVariableResultType, 'key'>;\n\n/**\n * @readonly\n * @enum {number} a helper Enum for getting milliseconds for a second/minute/hour/day/week/month.\n * Month is considered in average of 30 days\n * */\nexport enum Milliseconds {\n Second = 1000,\n Minute = 60 * Milliseconds.Second,\n Hour = 60 * Milliseconds.Minute,\n Day = 24 * Milliseconds.Hour,\n Week = 7 * Milliseconds.Day,\n Month = 30 * Milliseconds.Day,\n}\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {number} goalId - an id of a goal to track\n * @param {number | undefined} revenue - an optional parameter for revenue, default value is `0`\n * @param {boolean | undefined} isUniqueIdentifier - an optional parameter for specifying if the visitorCode is a unique identifier, default value is `false`\n * */\nexport type TrackConversionParamsType = {\n visitorCode: string;\n goalId: number;\n revenue?: number;\n isUniqueIdentifier?: boolean;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {boolean | undefined} shouldAddData - optional parameter for adding retrieved data to the storage like `addData` method does, default value is `true`\n * @param {VisitorDataFiltersType | undefined} filters - optional parameter for specifying the filters for which data should be retrieved from what visit, by default only current and latest previous visits' `customData` is retrieved\n * @param {boolean | undefined} isUniqueIdentifier - an optional parameter for specifying if the visitorCode is a unique identifier, default value is `false`\n * */\nexport type RemoteVisitorDataParamsType = {\n visitorCode: string;\n shouldAddData?: boolean;\n filters?: VisitorDataFiltersType;\n isUniqueIdentifier?: boolean;\n};\n\nexport type GetFeatureVariablesParamsType = {\n visitorCode: string;\n featureKey: string;\n variationKey: string;\n};\n\nexport type FeatureFlagType = {\n id: number;\n key: string;\n};\n\n/**\n * @type `KameleoonVariableType` - tuple of possible feature variable result types, each possible variation is an object containing `key`, `type` and `value` fields, `type` can be checked against `VariableType` enum, if the `type` is `VariableType.BOOLEAN` then the `value` type will be `boolean` and so on.\n * */\nexport type KameleoonVariableType = FeatureVariableResultType;\n\n/**\n * @type `KameleoonVariationType` - object containing information about the variation and its variables\n * @param {string} key - key of the variation\n * @param {number | null} id - id of the variation or `null` if the visitor hit default variation\n * @param {number | null} experimentId - id of the experiment or `null` if the visitor hit default variation\n * @param {KameleoonVariableType[]} variables - array of variables for the variation\n * */\nexport type KameleoonVariationType = {\n key: string;\n id: number | null;\n experimentId: number | null;\n variables: KameleoonVariableType[];\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {string} featureKey - key of the feature flag to look for, can be found on Kameleoon Platform\n * @param {string} variableKey - key of the variable to be found for a feature flag with provided `featureKey`, can be found on Kameleoon Platform\n * */\nexport type GetFeatureFlagVariableParamsType = {\n visitorCode: string;\n featureKey: string;\n variableKey: string;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identification string, can't exceed 255 characters length\n * @param {number} customDataIndex - index of the custom data in the warehouse audience\n * @param {string | undefined} warehouseKey - unique key to identify the warehouse data (usually internal user ID)\n * If not specified, the `visitorCode` will be used as a `warehouseKey`\n * */\nexport type GetVisitorWarehouseAudienceParamsType = {\n visitorCode: string;\n customDataIndex: number;\n warehouseKey?: string;\n};\n\nexport type WarehouseAudienceType = {\n // --- Note ---\n // Using `unknown` type here because we don't care about the type of the value\n warehouseAudiences: Record<string, unknown>;\n};\n\nexport type TrackingCacheItemType = {\n [experimentId: number]: { variationId: number; expirationTime: number };\n};\n\nexport type SetDataCallbackParametersType = {\n visitorCode: string;\n maxAge: number;\n path: string;\n key: string;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {boolean} consent - a value representing the legal consent status. - 'true' indicates the\n * visitor has given legal consent. - 'false' indicates the visitor has withdrawn or not\n * provided legal consent.\n * @param {(visitorCode: string) => void} setData - a callback to set a visitor code in cookie\n * */\nexport type SetUserConsentParametersType = {\n visitorCode: string;\n consent: boolean;\n setData: ({\n visitorCode,\n maxAge,\n path,\n }: SetDataCallbackParametersType) => void;\n};\n"],"mappings":"4IA4EY,CAAAA,WAAW,CAAAC,OAAA,CAAAD,WAAA,UAAXA,CAAW,QAAX,CAAAA,CAAW,CAAAE,UAAA,cAAXF,CAAW,CAAAG,OAAA,WAAXH,CAAW,CAAAI,WAAA,eAAXJ,CAAW,MAUXK,YAAY,CAAAJ,OAAA,CAAAI,YAAA,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAAC,OAAA,WAAZD,CAAY,CAAAE,MAAA,UAAZF,CAAY,CAAAG,MAAA,UAAZH,CAAY,CAAAI,IAAA,QAAZJ,CAAY,MAkDZK,YAAY,CAAAT,OAAA,CAAAS,YAAA,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAZA,CAAY,CAAAC,MAAA,gBAAZD,CAAY,CAAZA,CAAY,CAAAE,MAAA,CAEb,EAAE,CAAGF,CAAY,CAACC,MAAM,WAFvBD,CAAY,CAAZA,CAAY,CAAAG,IAAA,CAGf,EAAE,CAAGH,CAAY,CAACE,MAAM,SAHrBF,CAAY,CAAZA,CAAY,CAAAI,GAAA,CAIhB,EAAE,CAAGJ,CAAY,CAACG,IAAI,QAJlBH,CAAY,CAAZA,CAAY,CAAAK,IAAA,CAKf,CAAC,CAAGL,CAAY,CAACI,GAAG,SALjBJ,CAAY,CAAZA,CAAY,CAAAM,KAAA,CAMd,EAAE,CAAGN,CAAY,CAACI,GAAG,UANnBJ,CAAY"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kameleoon/javascript-sdk-core",
3
- "version": "4.1.0",
3
+ "version": "4.3.0",
4
4
  "description": "Kameleoon JS SDK Core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",