@kameleoon/javascript-sdk-core 2.4.2 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  export declare abstract class Nonce {
2
2
  protected nonce: string;
3
3
  constructor();
4
- private getNonce;
4
+ protected getNonce(): string;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nonce.js","names":["_constants","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","Nonce","constructor","nonce","getNonce","hexLength","HEX_CHARACTERS","length","i","randomNumber","Math","floor","random","substring","exports"],"sources":["../../src/kameleoonData/nonce.ts"],"sourcesContent":["import { HEX_CHARACTERS } from './constants';\n\nexport abstract class Nonce {\n // --- Note ---\n // nonce — «number that can only be used once»\n // is a hex valid string for the one-time use, which helps\n // tracking mechanism to differ one tracking event from another\n protected nonce: string;\n\n constructor() {\n this.nonce = this.getNonce();\n }\n\n private getNonce(): string {\n const hexLength = HEX_CHARACTERS.length;\n let nonce: string = '';\n\n for (let i = 0; i < hexLength; i++) {\n const randomNumber = Math.floor(Math.random() * hexLength);\n nonce += HEX_CHARACTERS.substring(randomNumber, randomNumber + 1);\n }\n\n return nonce;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAA6C,SAAAC,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAEtC,MAAeU,KAAK,CAAC;EAC1B;EACA;EACA;EACA;;EAGAC,WAAWA,CAAA,EAAG;IAAAxB,eAAA;IACZ,IAAI,CAACyB,KAAK,GAAG,IAAI,CAACC,QAAQ,EAAE;EAC9B;EAEQA,QAAQA,CAAA,EAAW;IACzB,MAAMC,SAAS,GAAGC,yBAAc,CAACC,MAAM;IACvC,IAAIJ,KAAa,GAAG,EAAE;IAEtB,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,SAAS,EAAEG,CAAC,EAAE,EAAE;MAClC,MAAMC,YAAY,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAGP,SAAS,CAAC;MAC1DF,KAAK,IAAIG,yBAAc,CAACO,SAAS,CAACJ,YAAY,EAAEA,YAAY,GAAG,CAAC,CAAC;IACnE;IAEA,OAAON,KAAK;EACd;AACF;AAACW,OAAA,CAAAb,KAAA,GAAAA,KAAA"}
1
+ {"version":3,"file":"nonce.js","names":["_constants","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","Nonce","constructor","nonce","getNonce","hexLength","HEX_CHARACTERS","length","i","randomNumber","Math","floor","random","substring","exports"],"sources":["../../src/kameleoonData/nonce.ts"],"sourcesContent":["import { HEX_CHARACTERS } from './constants';\n\nexport abstract class Nonce {\n // --- Note ---\n // nonce — «number that can only be used once»\n // is a hex valid string for the one-time use, which helps\n // tracking mechanism to differ one tracking event from another\n protected nonce: string;\n\n constructor() {\n this.nonce = this.getNonce();\n }\n\n protected getNonce(): string {\n const hexLength = HEX_CHARACTERS.length;\n let nonce: string = '';\n\n for (let i = 0; i < hexLength; i++) {\n const randomNumber = Math.floor(Math.random() * hexLength);\n nonce += HEX_CHARACTERS.substring(randomNumber, randomNumber + 1);\n }\n\n return nonce;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAA6C,SAAAC,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAEtC,MAAeU,KAAK,CAAC;EAC1B;EACA;EACA;EACA;;EAGAC,WAAWA,CAAA,EAAG;IAAAxB,eAAA;IACZ,IAAI,CAACyB,KAAK,GAAG,IAAI,CAACC,QAAQ,EAAE;EAC9B;EAEUA,QAAQA,CAAA,EAAW;IAC3B,MAAMC,SAAS,GAAGC,yBAAc,CAACC,MAAM;IACvC,IAAIJ,KAAa,GAAG,EAAE;IAEtB,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,SAAS,EAAEG,CAAC,EAAE,EAAE;MAClC,MAAMC,YAAY,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAGP,SAAS,CAAC;MAC1DF,KAAK,IAAIG,yBAAc,CAACO,SAAS,CAACJ,YAAY,EAAEA,YAAY,GAAG,CAAC,CAAC;IACnE;IAEA,OAAON,KAAK;EACd;AACF;AAACW,OAAA,CAAAb,KAAA,GAAAA,KAAA"}
@@ -65,8 +65,8 @@ class Requester extends _nonce.Nonce {
65
65
  callback
66
66
  }) {
67
67
  const url = this.getTrackingUrl(visitorCode);
68
- const unallocatedAddition = !body ? _constants.UrlEventType.Activity + _constants.UrlParameter.Nonce + this.nonce : '';
69
- const bodyAddition = isUnallocated ? unallocatedAddition : _constants.UrlEventType.Experiment + _constants.UrlParameter.Id + experimentId + _constants.UrlParameter.VariationId + variationId + _constants.UrlParameter.Nonce + this.nonce;
68
+ const unallocatedAddition = !body ? _constants.UrlEventType.Activity + _constants.UrlParameter.Nonce + this.getNonce() : '';
69
+ const bodyAddition = isUnallocated ? unallocatedAddition : _constants.UrlEventType.Experiment + _constants.UrlParameter.Id + experimentId + _constants.UrlParameter.VariationId + variationId + _constants.UrlParameter.Nonce + this.getNonce();
70
70
  const extendedBody = bodyAddition ? body + '\n' + bodyAddition : body;
71
71
  const headers = userAgent ? {
72
72
  [_constants.Header.UserAgent]: userAgent
@@ -1 +1 @@
1
- {"version":3,"file":"requester.js","names":["_tsRes","require","_kameleoonError","_constants","_nonce","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","Requester","Nonce","constructor","siteCode","environment","packageInfo","requestDispatcher","getClientConfiguration","timeStamp","environmentParam","UrlParameter","Environment","timeStampParam","Ts","requestUrl","URL","CLIENT_CONFIGURATION","UrlQuery","Mobile","response","Ok","error","Err","getRemoteData","DATA_MAP","Key","encodeURI","KameleoonError","KameleoonException","RemoteData","getVisitorData","visitorCode","VISIT_DATA","VisitorCode","MaxNumberPreviousVisits","CustomData","CurrentVisit","trackExperiment","variationId","experimentId","isUnallocated","body","userAgent","callback","url","getTrackingUrl","unallocatedAddition","UrlEventType","Activity","nonce","bodyAddition","Experiment","Id","VariationId","extendedBody","headers","Header","UserAgent","track","trackData","type","version","VISIT_EVENT","encodeURIComponent","SdkName","SdkVersion","exports"],"sources":["../../src/requester/requester.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { Environment, ExternalPackageInfoType } from '../types';\nimport { KameleoonError, KameleoonException } from '../kameleoonError';\nimport { URL, UrlParameter, Header, UrlQuery, UrlEventType } from './constants';\nimport {\n GetClientConfigurationResultType,\n RequesterParamsType,\n TrackDataParamsType,\n TrackExperimentParamsType,\n IExternalRequestDispatcher,\n GetVisitorDataResultType,\n} from './types';\nimport { JSONType } from '../campaignConfiguration';\nimport { Nonce } from '../kameleoonData/nonce';\n\nexport interface IRequester {\n getClientConfiguration: () => Promise<\n Result<GetClientConfigurationResultType, KameleoonError>\n >;\n getRemoteData: (key: string) => Promise<Result<JSONType, KameleoonError>>;\n trackExperiment: ({\n variationId,\n visitorCode,\n experimentId,\n isUnallocated,\n callback,\n body,\n }: TrackExperimentParamsType) => Promise<void>;\n trackData: ({ visitorCode, body }: TrackDataParamsType) => Promise<void>;\n}\n\nexport class Requester extends Nonce implements IRequester {\n private siteCode: string;\n private environment?: Environment;\n private requestDispatcher: IExternalRequestDispatcher;\n private packageInfo: ExternalPackageInfoType;\n\n constructor({\n siteCode,\n environment,\n packageInfo,\n requestDispatcher,\n }: RequesterParamsType) {\n super();\n\n this.requestDispatcher = requestDispatcher;\n this.siteCode = siteCode;\n this.environment = environment;\n this.packageInfo = packageInfo;\n }\n\n public async getClientConfiguration(\n timeStamp?: number,\n ): Promise<Result<GetClientConfigurationResultType, KameleoonError>> {\n const environmentParam = this.environment\n ? UrlParameter.Environment + this.environment\n : '';\n const timeStampParam = timeStamp ? UrlParameter.Ts + timeStamp : '';\n\n const requestUrl =\n URL.CLIENT_CONFIGURATION +\n UrlQuery.Mobile +\n this.siteCode +\n environmentParam +\n timeStampParam;\n\n try {\n const response = await this.requestDispatcher.getClientConfiguration(\n requestUrl,\n );\n\n return Ok(response as GetClientConfigurationResultType);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getRemoteData(\n key: string,\n ): Promise<Result<JSONType, KameleoonError>> {\n const requestUrl: string =\n URL.DATA_MAP + this.siteCode + UrlParameter.Key + encodeURI(key);\n\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n\n if (!response) {\n return Err(new KameleoonError(KameleoonException.RemoteData));\n }\n\n return Ok(response);\n }\n\n public async getVisitorData(\n visitorCode: string,\n ): Promise<Result<GetVisitorDataResultType, KameleoonError>> {\n const requestUrl: string =\n URL.VISIT_DATA +\n this.siteCode +\n UrlParameter.VisitorCode +\n visitorCode +\n UrlParameter.MaxNumberPreviousVisits +\n 1 +\n UrlParameter.CustomData +\n true +\n UrlParameter.CurrentVisit +\n true;\n\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n\n if (!response) {\n return Err(new KameleoonError(KameleoonException.RemoteData));\n }\n\n return Ok(response as GetVisitorDataResultType);\n }\n\n public async trackExperiment({\n variationId,\n visitorCode,\n experimentId,\n isUnallocated,\n body,\n userAgent,\n callback,\n }: TrackExperimentParamsType): Promise<void> {\n const url = this.getTrackingUrl(visitorCode);\n\n const unallocatedAddition = !body\n ? UrlEventType.Activity + UrlParameter.Nonce + this.nonce\n : '';\n const bodyAddition = isUnallocated\n ? unallocatedAddition\n : UrlEventType.Experiment +\n UrlParameter.Id +\n experimentId +\n UrlParameter.VariationId +\n variationId +\n UrlParameter.Nonce +\n this.nonce;\n const extendedBody = bodyAddition ? body + '\\n' + bodyAddition : body;\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: extendedBody,\n });\n\n if (response && callback) {\n callback();\n }\n }\n\n public async trackData({\n visitorCode,\n body,\n userAgent,\n }: TrackDataParamsType): Promise<void> {\n const url = this.getTrackingUrl(visitorCode);\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n this.requestDispatcher.track({\n url,\n headers,\n body,\n });\n }\n\n private getTrackingUrl(visitorCode: string): string {\n const { type, version } = this.packageInfo;\n\n return (\n URL.VISIT_EVENT +\n this.siteCode +\n UrlParameter.VisitorCode +\n encodeURIComponent(visitorCode) +\n UrlParameter.SdkName +\n type +\n UrlParameter.SdkVersion +\n version\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"requester.js","names":["_tsRes","require","_kameleoonError","_constants","_nonce","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","Requester","Nonce","constructor","siteCode","environment","packageInfo","requestDispatcher","getClientConfiguration","timeStamp","environmentParam","UrlParameter","Environment","timeStampParam","Ts","requestUrl","URL","CLIENT_CONFIGURATION","UrlQuery","Mobile","response","Ok","error","Err","getRemoteData","DATA_MAP","Key","encodeURI","KameleoonError","KameleoonException","RemoteData","getVisitorData","visitorCode","VISIT_DATA","VisitorCode","MaxNumberPreviousVisits","CustomData","CurrentVisit","trackExperiment","variationId","experimentId","isUnallocated","body","userAgent","callback","url","getTrackingUrl","unallocatedAddition","UrlEventType","Activity","getNonce","bodyAddition","Experiment","Id","VariationId","extendedBody","headers","Header","UserAgent","track","trackData","type","version","VISIT_EVENT","encodeURIComponent","SdkName","SdkVersion","exports"],"sources":["../../src/requester/requester.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { Environment, ExternalPackageInfoType } from '../types';\nimport { KameleoonError, KameleoonException } from '../kameleoonError';\nimport { URL, UrlParameter, Header, UrlQuery, UrlEventType } from './constants';\nimport {\n GetClientConfigurationResultType,\n RequesterParamsType,\n TrackDataParamsType,\n TrackExperimentParamsType,\n IExternalRequestDispatcher,\n GetVisitorDataResultType,\n} from './types';\nimport { JSONType } from '../campaignConfiguration';\nimport { Nonce } from '../kameleoonData/nonce';\n\nexport interface IRequester {\n getClientConfiguration: () => Promise<\n Result<GetClientConfigurationResultType, KameleoonError>\n >;\n getRemoteData: (key: string) => Promise<Result<JSONType, KameleoonError>>;\n trackExperiment: ({\n variationId,\n visitorCode,\n experimentId,\n isUnallocated,\n callback,\n body,\n }: TrackExperimentParamsType) => Promise<void>;\n trackData: ({ visitorCode, body }: TrackDataParamsType) => Promise<void>;\n}\n\nexport class Requester extends Nonce implements IRequester {\n private siteCode: string;\n private environment?: Environment;\n private requestDispatcher: IExternalRequestDispatcher;\n private packageInfo: ExternalPackageInfoType;\n\n constructor({\n siteCode,\n environment,\n packageInfo,\n requestDispatcher,\n }: RequesterParamsType) {\n super();\n\n this.requestDispatcher = requestDispatcher;\n this.siteCode = siteCode;\n this.environment = environment;\n this.packageInfo = packageInfo;\n }\n\n public async getClientConfiguration(\n timeStamp?: number,\n ): Promise<Result<GetClientConfigurationResultType, KameleoonError>> {\n const environmentParam = this.environment\n ? UrlParameter.Environment + this.environment\n : '';\n const timeStampParam = timeStamp ? UrlParameter.Ts + timeStamp : '';\n\n const requestUrl =\n URL.CLIENT_CONFIGURATION +\n UrlQuery.Mobile +\n this.siteCode +\n environmentParam +\n timeStampParam;\n\n try {\n const response = await this.requestDispatcher.getClientConfiguration(\n requestUrl,\n );\n\n return Ok(response as GetClientConfigurationResultType);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getRemoteData(\n key: string,\n ): Promise<Result<JSONType, KameleoonError>> {\n const requestUrl: string =\n URL.DATA_MAP + this.siteCode + UrlParameter.Key + encodeURI(key);\n\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n\n if (!response) {\n return Err(new KameleoonError(KameleoonException.RemoteData));\n }\n\n return Ok(response);\n }\n\n public async getVisitorData(\n visitorCode: string,\n ): Promise<Result<GetVisitorDataResultType, KameleoonError>> {\n const requestUrl: string =\n URL.VISIT_DATA +\n this.siteCode +\n UrlParameter.VisitorCode +\n visitorCode +\n UrlParameter.MaxNumberPreviousVisits +\n 1 +\n UrlParameter.CustomData +\n true +\n UrlParameter.CurrentVisit +\n true;\n\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n\n if (!response) {\n return Err(new KameleoonError(KameleoonException.RemoteData));\n }\n\n return Ok(response as GetVisitorDataResultType);\n }\n\n public async trackExperiment({\n variationId,\n visitorCode,\n experimentId,\n isUnallocated,\n body,\n userAgent,\n callback,\n }: TrackExperimentParamsType): Promise<void> {\n const url = this.getTrackingUrl(visitorCode);\n\n const unallocatedAddition = !body\n ? UrlEventType.Activity + UrlParameter.Nonce + this.getNonce()\n : '';\n const bodyAddition = isUnallocated\n ? unallocatedAddition\n : UrlEventType.Experiment +\n UrlParameter.Id +\n experimentId +\n UrlParameter.VariationId +\n variationId +\n UrlParameter.Nonce +\n this.getNonce();\n const extendedBody = bodyAddition ? body + '\\n' + bodyAddition : body;\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: extendedBody,\n });\n\n if (response && callback) {\n callback();\n }\n }\n\n public async trackData({\n visitorCode,\n body,\n userAgent,\n }: TrackDataParamsType): Promise<void> {\n const url = this.getTrackingUrl(visitorCode);\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n this.requestDispatcher.track({\n url,\n headers,\n body,\n });\n }\n\n private getTrackingUrl(visitorCode: string): string {\n const { type, version } = this.packageInfo;\n\n return (\n URL.VISIT_EVENT +\n this.siteCode +\n UrlParameter.VisitorCode +\n encodeURIComponent(visitorCode) +\n UrlParameter.SdkName +\n type +\n UrlParameter.SdkVersion +\n version\n );\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAUA,IAAAG,MAAA,GAAAH,OAAA;AAA+C,SAAAI,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAkBxC,MAAMU,SAAS,SAASC,YAAK,CAAuB;EAMzDC,WAAWA,CAAC;IACVC,QAAQ;IACRC,WAAW;IACXC,WAAW;IACXC;EACmB,CAAC,EAAE;IACtB,KAAK,EAAE;IAAC7B,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAER,IAAI,CAAC6B,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACH,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,WAAW,GAAGA,WAAW;EAChC;EAEA,MAAaE,sBAAsBA,CACjCC,SAAkB,EACiD;IACnE,MAAMC,gBAAgB,GAAG,IAAI,CAACL,WAAW,GACrCM,uBAAY,CAACC,WAAW,GAAG,IAAI,CAACP,WAAW,GAC3C,EAAE;IACN,MAAMQ,cAAc,GAAGJ,SAAS,GAAGE,uBAAY,CAACG,EAAE,GAAGL,SAAS,GAAG,EAAE;IAEnE,MAAMM,UAAU,GACdC,cAAG,CAACC,oBAAoB,GACxBC,mBAAQ,CAACC,MAAM,GACf,IAAI,CAACf,QAAQ,GACbM,gBAAgB,GAChBG,cAAc;IAEhB,IAAI;MACF,MAAMO,QAAQ,GAAG,MAAM,IAAI,CAACb,iBAAiB,CAACC,sBAAsB,CAClEO,UAAU,CACX;MAED,OAAO,IAAAM,SAAE,EAACD,QAAQ,CAAqC;IACzD,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd,OAAO,IAAAC,UAAG,EAACD,KAAK,CAAmB;IACrC;EACF;EAEA,MAAaE,aAAaA,CACxB5C,GAAW,EACgC;IAC3C,MAAMmC,UAAkB,GACtBC,cAAG,CAACS,QAAQ,GAAG,IAAI,CAACrB,QAAQ,GAAGO,uBAAY,CAACe,GAAG,GAAGC,SAAS,CAAC/C,GAAG,CAAC;IAElE,MAAMwC,QAAQ,GAAG,MAAM,IAAI,CAACb,iBAAiB,CAACiB,aAAa,CAACT,UAAU,CAAC;IAEvE,IAAI,CAACK,QAAQ,EAAE;MACb,OAAO,IAAAG,UAAG,EAAC,IAAIK,8BAAc,CAACC,kCAAkB,CAACC,UAAU,CAAC,CAAC;IAC/D;IAEA,OAAO,IAAAT,SAAE,EAACD,QAAQ,CAAC;EACrB;EAEA,MAAaW,cAAcA,CACzBC,WAAmB,EACwC;IAC3D,MAAMjB,UAAkB,GACtBC,cAAG,CAACiB,UAAU,GACd,IAAI,CAAC7B,QAAQ,GACbO,uBAAY,CAACuB,WAAW,GACxBF,WAAW,GACXrB,uBAAY,CAACwB,uBAAuB,GACpC,CAAC,GACDxB,uBAAY,CAACyB,UAAU,GACvB,IAAI,GACJzB,uBAAY,CAAC0B,YAAY,GACzB,IAAI;IAEN,MAAMjB,QAAQ,GAAG,MAAM,IAAI,CAACb,iBAAiB,CAACiB,aAAa,CAACT,UAAU,CAAC;IAEvE,IAAI,CAACK,QAAQ,EAAE;MACb,OAAO,IAAAG,UAAG,EAAC,IAAIK,8BAAc,CAACC,kCAAkB,CAACC,UAAU,CAAC,CAAC;IAC/D;IAEA,OAAO,IAAAT,SAAE,EAACD,QAAQ,CAA6B;EACjD;EAEA,MAAakB,eAAeA,CAAC;IAC3BC,WAAW;IACXP,WAAW;IACXQ,YAAY;IACZC,aAAa;IACbC,IAAI;IACJC,SAAS;IACTC;EACyB,CAAC,EAAiB;IAC3C,MAAMC,GAAG,GAAG,IAAI,CAACC,cAAc,CAACd,WAAW,CAAC;IAE5C,MAAMe,mBAAmB,GAAG,CAACL,IAAI,GAC7BM,uBAAY,CAACC,QAAQ,GAAGtC,uBAAY,CAACT,KAAK,GAAG,IAAI,CAACgD,QAAQ,EAAE,GAC5D,EAAE;IACN,MAAMC,YAAY,GAAGV,aAAa,GAC9BM,mBAAmB,GACnBC,uBAAY,CAACI,UAAU,GACvBzC,uBAAY,CAAC0C,EAAE,GACfb,YAAY,GACZ7B,uBAAY,CAAC2C,WAAW,GACxBf,WAAW,GACX5B,uBAAY,CAACT,KAAK,GAClB,IAAI,CAACgD,QAAQ,EAAE;IACnB,MAAMK,YAAY,GAAGJ,YAAY,GAAGT,IAAI,GAAG,IAAI,GAAGS,YAAY,GAAGT,IAAI;IAErE,MAAMc,OAAO,GAAGb,SAAS,GACrB;MACE,CAACc,iBAAM,CAACC,SAAS,GAAGf;IACtB,CAAC,GACD/C,SAAS;IAEb,MAAMwB,QAAQ,GAAG,MAAM,IAAI,CAACb,iBAAiB,CAACoD,KAAK,CAAC;MAClDd,GAAG;MACHW,OAAO;MACPd,IAAI,EAAEa;IACR,CAAC,CAAC;IAEF,IAAInC,QAAQ,IAAIwB,QAAQ,EAAE;MACxBA,QAAQ,EAAE;IACZ;EACF;EAEA,MAAagB,SAASA,CAAC;IACrB5B,WAAW;IACXU,IAAI;IACJC;EACmB,CAAC,EAAiB;IACrC,MAAME,GAAG,GAAG,IAAI,CAACC,cAAc,CAACd,WAAW,CAAC;IAE5C,MAAMwB,OAAO,GAAGb,SAAS,GACrB;MACE,CAACc,iBAAM,CAACC,SAAS,GAAGf;IACtB,CAAC,GACD/C,SAAS;IAEb,IAAI,CAACW,iBAAiB,CAACoD,KAAK,CAAC;MAC3Bd,GAAG;MACHW,OAAO;MACPd;IACF,CAAC,CAAC;EACJ;EAEQI,cAAcA,CAACd,WAAmB,EAAU;IAClD,MAAM;MAAE6B,IAAI;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACxD,WAAW;IAE1C,OACEU,cAAG,CAAC+C,WAAW,GACf,IAAI,CAAC3D,QAAQ,GACbO,uBAAY,CAACuB,WAAW,GACxB8B,kBAAkB,CAAChC,WAAW,CAAC,GAC/BrB,uBAAY,CAACsD,OAAO,GACpBJ,IAAI,GACJlD,uBAAY,CAACuD,UAAU,GACvBJ,OAAO;EAEX;AACF;AAACK,OAAA,CAAAlE,SAAA,GAAAA,SAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kameleoon/javascript-sdk-core",
3
- "version": "2.4.2",
3
+ "version": "2.4.3",
4
4
  "description": "Kameleoon JS SDK Core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",