@amplitude/analytics-react-native 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/lib/commonjs/config.js +10 -18
  2. package/lib/commonjs/config.js.map +1 -1
  3. package/lib/commonjs/cookie-migration/index.js +3 -5
  4. package/lib/commonjs/cookie-migration/index.js.map +1 -1
  5. package/lib/commonjs/plugins/context.js +8 -2
  6. package/lib/commonjs/plugins/context.js.map +1 -1
  7. package/lib/commonjs/react-native-client.js +7 -11
  8. package/lib/commonjs/react-native-client.js.map +1 -1
  9. package/lib/commonjs/version.js +1 -1
  10. package/lib/commonjs/version.js.map +1 -1
  11. package/lib/module/config.js +1 -5
  12. package/lib/module/config.js.map +1 -1
  13. package/lib/module/cookie-migration/index.js +1 -2
  14. package/lib/module/cookie-migration/index.js.map +1 -1
  15. package/lib/module/plugins/context.js +7 -1
  16. package/lib/module/plugins/context.js.map +1 -1
  17. package/lib/module/react-native-client.js +1 -3
  18. package/lib/module/react-native-client.js.map +1 -1
  19. package/lib/module/version.js +1 -1
  20. package/lib/module/version.js.map +1 -1
  21. package/lib/typescript/config.d.ts +1 -2
  22. package/lib/typescript/config.d.ts.map +1 -1
  23. package/lib/typescript/cookie-migration/index.d.ts.map +1 -1
  24. package/lib/typescript/index.d.ts +1 -1
  25. package/lib/typescript/index.d.ts.map +1 -1
  26. package/lib/typescript/plugins/context.d.ts.map +1 -1
  27. package/lib/typescript/react-native-client.d.ts.map +1 -1
  28. package/lib/typescript/version.d.ts +1 -1
  29. package/package.json +5 -4
  30. package/src/config.ts +7 -5
  31. package/src/cookie-migration/index.ts +1 -2
  32. package/src/plugins/context.ts +7 -1
  33. package/src/react-native-client.ts +1 -3
  34. package/src/version.ts +1 -1
  35. package/lib/commonjs/attribution/campaign-parser.js +0 -74
  36. package/lib/commonjs/attribution/campaign-parser.js.map +0 -1
  37. package/lib/commonjs/attribution/campaign-tracker.js +0 -133
  38. package/lib/commonjs/attribution/campaign-tracker.js.map +0 -1
  39. package/lib/commonjs/attribution/constants.js +0 -47
  40. package/lib/commonjs/attribution/constants.js.map +0 -1
  41. package/lib/commonjs/plugins/identity.js +0 -40
  42. package/lib/commonjs/plugins/identity.js.map +0 -1
  43. package/lib/commonjs/session-manager.js +0 -114
  44. package/lib/commonjs/session-manager.js.map +0 -1
  45. package/lib/commonjs/storage/cookie.js +0 -124
  46. package/lib/commonjs/storage/cookie.js.map +0 -1
  47. package/lib/commonjs/storage/utm-cookie.js +0 -42
  48. package/lib/commonjs/storage/utm-cookie.js.map +0 -1
  49. package/lib/commonjs/transports/fetch.js +0 -34
  50. package/lib/commonjs/transports/fetch.js.map +0 -1
  51. package/lib/commonjs/utils/analytics-connector.js +0 -15
  52. package/lib/commonjs/utils/analytics-connector.js.map +0 -1
  53. package/lib/commonjs/utils/cookie-name.js +0 -23
  54. package/lib/commonjs/utils/cookie-name.js.map +0 -1
  55. package/lib/commonjs/utils/language.js +0 -18
  56. package/lib/commonjs/utils/language.js.map +0 -1
  57. package/lib/commonjs/utils/query-params.js +0 -43
  58. package/lib/commonjs/utils/query-params.js.map +0 -1
  59. package/lib/module/attribution/campaign-parser.js +0 -62
  60. package/lib/module/attribution/campaign-parser.js.map +0 -1
  61. package/lib/module/attribution/campaign-tracker.js +0 -120
  62. package/lib/module/attribution/campaign-tracker.js.map +0 -1
  63. package/lib/module/attribution/constants.js +0 -26
  64. package/lib/module/attribution/constants.js.map +0 -1
  65. package/lib/module/plugins/identity.js +0 -29
  66. package/lib/module/plugins/identity.js.map +0 -1
  67. package/lib/module/session-manager.js +0 -104
  68. package/lib/module/session-manager.js.map +0 -1
  69. package/lib/module/storage/cookie.js +0 -114
  70. package/lib/module/storage/cookie.js.map +0 -1
  71. package/lib/module/storage/utm-cookie.js +0 -32
  72. package/lib/module/storage/utm-cookie.js.map +0 -1
  73. package/lib/module/transports/fetch.js +0 -24
  74. package/lib/module/transports/fetch.js.map +0 -1
  75. package/lib/module/utils/analytics-connector.js +0 -5
  76. package/lib/module/utils/analytics-connector.js.map +0 -1
  77. package/lib/module/utils/cookie-name.js +0 -10
  78. package/lib/module/utils/cookie-name.js.map +0 -1
  79. package/lib/module/utils/language.js +0 -9
  80. package/lib/module/utils/language.js.map +0 -1
  81. package/lib/module/utils/query-params.js +0 -31
  82. package/lib/module/utils/query-params.js.map +0 -1
  83. package/lib/typescript/attribution/campaign-parser.d.ts +0 -10
  84. package/lib/typescript/attribution/campaign-parser.d.ts.map +0 -1
  85. package/lib/typescript/attribution/campaign-tracker.d.ts +0 -74
  86. package/lib/typescript/attribution/campaign-tracker.d.ts.map +0 -1
  87. package/lib/typescript/attribution/constants.d.ts +0 -17
  88. package/lib/typescript/attribution/constants.d.ts.map +0 -1
  89. package/lib/typescript/plugins/identity.d.ts +0 -9
  90. package/lib/typescript/plugins/identity.d.ts.map +0 -1
  91. package/lib/typescript/session-manager.d.ts +0 -28
  92. package/lib/typescript/session-manager.d.ts.map +0 -1
  93. package/lib/typescript/storage/cookie.d.ts +0 -12
  94. package/lib/typescript/storage/cookie.d.ts.map +0 -1
  95. package/lib/typescript/storage/utm-cookie.d.ts +0 -6
  96. package/lib/typescript/storage/utm-cookie.d.ts.map +0 -1
  97. package/lib/typescript/transports/fetch.d.ts +0 -6
  98. package/lib/typescript/transports/fetch.d.ts.map +0 -1
  99. package/lib/typescript/utils/analytics-connector.d.ts +0 -3
  100. package/lib/typescript/utils/analytics-connector.d.ts.map +0 -1
  101. package/lib/typescript/utils/cookie-name.d.ts +0 -3
  102. package/lib/typescript/utils/cookie-name.d.ts.map +0 -1
  103. package/lib/typescript/utils/language.d.ts +0 -2
  104. package/lib/typescript/utils/language.d.ts.map +0 -1
  105. package/lib/typescript/utils/query-params.d.ts +0 -3
  106. package/lib/typescript/utils/query-params.d.ts.map +0 -1
  107. package/src/attribution/campaign-parser.ts +0 -78
  108. package/src/attribution/campaign-tracker.ts +0 -112
  109. package/src/attribution/constants.ts +0 -32
  110. package/src/plugins/identity.ts +0 -21
  111. package/src/session-manager.ts +0 -81
  112. package/src/storage/cookie.ts +0 -97
  113. package/src/storage/utm-cookie.ts +0 -27
  114. package/src/transports/fetch.ts +0 -23
  115. package/src/utils/analytics-connector.ts +0 -5
  116. package/src/utils/cookie-name.ts +0 -9
  117. package/src/utils/language.ts +0 -7
  118. package/src/utils/query-params.ts +0 -26
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.IdentityEventSender = void 0;
7
-
8
- var _analyticsTypes = require("@amplitude/analytics-types");
9
-
10
- var _analyticsConnector = require("../utils/analytics-connector");
11
-
12
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
-
14
- class IdentityEventSender {
15
- constructor() {
16
- _defineProperty(this, "name", 'identity');
17
-
18
- _defineProperty(this, "type", _analyticsTypes.PluginType.BEFORE);
19
-
20
- _defineProperty(this, "identityStore", (0, _analyticsConnector.getAnalyticsConnector)().identityStore);
21
- }
22
-
23
- async execute(context) {
24
- const userProperties = context.user_properties;
25
-
26
- if (userProperties) {
27
- this.identityStore.editIdentity().updateUserProperties(userProperties).commit();
28
- }
29
-
30
- return context;
31
- }
32
-
33
- setup(_) {
34
- return Promise.resolve(undefined);
35
- }
36
-
37
- }
38
-
39
- exports.IdentityEventSender = IdentityEventSender;
40
- //# sourceMappingURL=identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["IdentityEventSender","PluginType","BEFORE","getAnalyticsConnector","identityStore","execute","context","userProperties","user_properties","editIdentity","updateUserProperties","commit","setup","_","Promise","resolve","undefined"],"sources":["identity.ts"],"sourcesContent":["import { BeforePlugin, PluginType, Event, Config } from '@amplitude/analytics-types';\nimport { getAnalyticsConnector } from '../utils/analytics-connector';\n\nexport class IdentityEventSender implements BeforePlugin {\n name = 'identity';\n type = PluginType.BEFORE as const;\n\n identityStore = getAnalyticsConnector().identityStore;\n\n async execute(context: Event): Promise<Event> {\n const userProperties = context.user_properties as Record<string, any>;\n if (userProperties) {\n this.identityStore.editIdentity().updateUserProperties(userProperties).commit();\n }\n return context;\n }\n\n setup(_: Config): Promise<undefined> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEO,MAAMA,mBAAN,CAAkD;EAAA;IAAA,8BAChD,UADgD;;IAAA,8BAEhDC,0BAAA,CAAWC,MAFqC;;IAAA,uCAIvC,IAAAC,yCAAA,IAAwBC,aAJe;EAAA;;EAM1C,MAAPC,OAAO,CAACC,OAAD,EAAiC;IAC5C,MAAMC,cAAc,GAAGD,OAAO,CAACE,eAA/B;;IACA,IAAID,cAAJ,EAAoB;MAClB,KAAKH,aAAL,CAAmBK,YAAnB,GAAkCC,oBAAlC,CAAuDH,cAAvD,EAAuEI,MAAvE;IACD;;IACD,OAAOL,OAAP;EACD;;EAEDM,KAAK,CAACC,CAAD,EAAgC;IACnC,OAAOC,OAAO,CAACC,OAAR,CAAgBC,SAAhB,CAAP;EACD;;AAhBsD"}
@@ -1,114 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SessionManager = void 0;
7
-
8
- var _cookieName = require("./utils/cookie-name");
9
-
10
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
-
12
- class SessionManager {
13
- constructor(storage, apiKey) {
14
- this.storage = storage;
15
-
16
- _defineProperty(this, "storageKey", void 0);
17
-
18
- _defineProperty(this, "cache", void 0);
19
-
20
- _defineProperty(this, "isSessionCacheValid", true);
21
-
22
- this.storageKey = (0, _cookieName.getCookieName)(apiKey);
23
- this.cache = {
24
- optOut: false
25
- };
26
- }
27
- /**
28
- * load() must be called immediately after instantation
29
- *
30
- * ```ts
31
- * await new SessionManager(...).load();
32
- * ```
33
- */
34
-
35
-
36
- async load() {
37
- var _await$this$storage$g;
38
-
39
- this.cache = (_await$this$storage$g = await this.storage.get(this.storageKey)) !== null && _await$this$storage$g !== void 0 ? _await$this$storage$g : {
40
- optOut: false
41
- };
42
- return this;
43
- }
44
-
45
- setSession(session) {
46
- this.cache = { ...this.cache,
47
- ...session
48
- };
49
- void this.storage.set(this.storageKey, this.cache);
50
- }
51
-
52
- getSessionId() {
53
- this.isSessionCacheValid = true;
54
- void this.storage.get(this.storageKey).then(userSession => {
55
- // Checks if session id has been set since the last get
56
- if (this.isSessionCacheValid) {
57
- this.cache.sessionId = userSession === null || userSession === void 0 ? void 0 : userSession.sessionId;
58
- }
59
- });
60
- return this.cache.sessionId;
61
- }
62
-
63
- setSessionId(sessionId) {
64
- // Flags session id has been set
65
- this.isSessionCacheValid = false;
66
- this.setSession({
67
- sessionId
68
- });
69
- }
70
-
71
- getDeviceId() {
72
- return this.cache.deviceId;
73
- }
74
-
75
- setDeviceId(deviceId) {
76
- this.setSession({
77
- deviceId
78
- });
79
- }
80
-
81
- getUserId() {
82
- return this.cache.userId;
83
- }
84
-
85
- setUserId(userId) {
86
- this.setSession({
87
- userId
88
- });
89
- }
90
-
91
- getLastEventTime() {
92
- return this.cache.lastEventTime;
93
- }
94
-
95
- setLastEventTime(lastEventTime) {
96
- this.setSession({
97
- lastEventTime
98
- });
99
- }
100
-
101
- getOptOut() {
102
- return this.cache.optOut;
103
- }
104
-
105
- setOptOut(optOut) {
106
- this.setSession({
107
- optOut
108
- });
109
- }
110
-
111
- }
112
-
113
- exports.SessionManager = SessionManager;
114
- //# sourceMappingURL=session-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["SessionManager","constructor","storage","apiKey","storageKey","getStorageKey","cache","optOut","load","get","setSession","session","set","getSessionId","isSessionCacheValid","then","userSession","sessionId","setSessionId","getDeviceId","deviceId","setDeviceId","getUserId","userId","setUserId","getLastEventTime","lastEventTime","setLastEventTime","getOptOut","setOptOut"],"sources":["session-manager.ts"],"sourcesContent":["import { UserSession, Storage, SessionManager as ISessionManager } from '@amplitude/analytics-types';\nimport { getCookieName as getStorageKey } from './utils/cookie-name';\n\nexport class SessionManager implements ISessionManager {\n storageKey: string;\n cache: UserSession;\n isSessionCacheValid = true;\n\n constructor(private storage: Storage<UserSession>, apiKey: string) {\n this.storageKey = getStorageKey(apiKey);\n this.cache = { optOut: false };\n }\n\n /**\n * load() must be called immediately after instantation\n *\n * ```ts\n * await new SessionManager(...).load();\n * ```\n */\n async load() {\n this.cache = (await this.storage.get(this.storageKey)) ?? {\n optOut: false,\n };\n return this;\n }\n\n setSession(session: Partial<UserSession>) {\n this.cache = { ...this.cache, ...session };\n void this.storage.set(this.storageKey, this.cache);\n }\n\n getSessionId() {\n this.isSessionCacheValid = true;\n void this.storage.get(this.storageKey).then((userSession) => {\n // Checks if session id has been set since the last get\n if (this.isSessionCacheValid) {\n this.cache.sessionId = userSession?.sessionId;\n }\n });\n return this.cache.sessionId;\n }\n\n setSessionId(sessionId: number) {\n // Flags session id has been set\n this.isSessionCacheValid = false;\n this.setSession({ sessionId });\n }\n\n getDeviceId(): string | undefined {\n return this.cache.deviceId;\n }\n\n setDeviceId(deviceId: string): void {\n this.setSession({ deviceId });\n }\n\n getUserId(): string | undefined {\n return this.cache.userId;\n }\n\n setUserId(userId: string): void {\n this.setSession({ userId });\n }\n\n getLastEventTime() {\n return this.cache.lastEventTime;\n }\n\n setLastEventTime(lastEventTime: number) {\n this.setSession({ lastEventTime });\n }\n\n getOptOut(): boolean {\n return this.cache.optOut;\n }\n\n setOptOut(optOut: boolean): void {\n this.setSession({ optOut });\n }\n}\n"],"mappings":";;;;;;;AACA;;;;AAEO,MAAMA,cAAN,CAAgD;EAKrDC,WAAW,CAASC,OAAT,EAAwCC,MAAxC,EAAwD;IAAA,KAA/CD,OAA+C,GAA/CA,OAA+C;;IAAA;;IAAA;;IAAA,6CAF7C,IAE6C;;IACjE,KAAKE,UAAL,GAAkB,IAAAC,yBAAA,EAAcF,MAAd,CAAlB;IACA,KAAKG,KAAL,GAAa;MAAEC,MAAM,EAAE;IAAV,CAAb;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;;;EACY,MAAJC,IAAI,GAAG;IAAA;;IACX,KAAKF,KAAL,4BAAc,MAAM,KAAKJ,OAAL,CAAaO,GAAb,CAAiB,KAAKL,UAAtB,CAApB,yEAA0D;MACxDG,MAAM,EAAE;IADgD,CAA1D;IAGA,OAAO,IAAP;EACD;;EAEDG,UAAU,CAACC,OAAD,EAAgC;IACxC,KAAKL,KAAL,GAAa,EAAE,GAAG,KAAKA,KAAV;MAAiB,GAAGK;IAApB,CAAb;IACA,KAAK,KAAKT,OAAL,CAAaU,GAAb,CAAiB,KAAKR,UAAtB,EAAkC,KAAKE,KAAvC,CAAL;EACD;;EAEDO,YAAY,GAAG;IACb,KAAKC,mBAAL,GAA2B,IAA3B;IACA,KAAK,KAAKZ,OAAL,CAAaO,GAAb,CAAiB,KAAKL,UAAtB,EAAkCW,IAAlC,CAAwCC,WAAD,IAAiB;MAC3D;MACA,IAAI,KAAKF,mBAAT,EAA8B;QAC5B,KAAKR,KAAL,CAAWW,SAAX,GAAuBD,WAAvB,aAAuBA,WAAvB,uBAAuBA,WAAW,CAAEC,SAApC;MACD;IACF,CALI,CAAL;IAMA,OAAO,KAAKX,KAAL,CAAWW,SAAlB;EACD;;EAEDC,YAAY,CAACD,SAAD,EAAoB;IAC9B;IACA,KAAKH,mBAAL,GAA2B,KAA3B;IACA,KAAKJ,UAAL,CAAgB;MAAEO;IAAF,CAAhB;EACD;;EAEDE,WAAW,GAAuB;IAChC,OAAO,KAAKb,KAAL,CAAWc,QAAlB;EACD;;EAEDC,WAAW,CAACD,QAAD,EAAyB;IAClC,KAAKV,UAAL,CAAgB;MAAEU;IAAF,CAAhB;EACD;;EAEDE,SAAS,GAAuB;IAC9B,OAAO,KAAKhB,KAAL,CAAWiB,MAAlB;EACD;;EAEDC,SAAS,CAACD,MAAD,EAAuB;IAC9B,KAAKb,UAAL,CAAgB;MAAEa;IAAF,CAAhB;EACD;;EAEDE,gBAAgB,GAAG;IACjB,OAAO,KAAKnB,KAAL,CAAWoB,aAAlB;EACD;;EAEDC,gBAAgB,CAACD,aAAD,EAAwB;IACtC,KAAKhB,UAAL,CAAgB;MAAEgB;IAAF,CAAhB;EACD;;EAEDE,SAAS,GAAY;IACnB,OAAO,KAAKtB,KAAL,CAAWC,MAAlB;EACD;;EAEDsB,SAAS,CAACtB,MAAD,EAAwB;IAC/B,KAAKG,UAAL,CAAgB;MAAEH;IAAF,CAAhB;EACD;;AA5EoD"}
@@ -1,124 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CookieStorage = void 0;
7
-
8
- var _platform = require("../utils/platform");
9
-
10
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
-
12
- class CookieStorage {
13
- constructor(options) {
14
- _defineProperty(this, "options", void 0);
15
-
16
- this.options = { ...options
17
- };
18
- }
19
-
20
- async isEnabled() {
21
- /* istanbul ignore if */
22
- if ((0, _platform.isNative)() || typeof window === 'undefined') {
23
- return false;
24
- }
25
-
26
- const random = String(Date.now());
27
- const testStrorage = new CookieStorage(this.options);
28
- const testKey = 'AMP_TEST';
29
-
30
- try {
31
- await testStrorage.set(testKey, random);
32
- const value = await testStrorage.get(testKey);
33
- return value === random;
34
- } catch {
35
- /* istanbul ignore next */
36
- return false;
37
- } finally {
38
- await testStrorage.remove(testKey);
39
- }
40
- }
41
-
42
- async get(key) {
43
- let value = await this.getRaw(key);
44
-
45
- if (!value) {
46
- return undefined;
47
- }
48
-
49
- try {
50
- try {
51
- value = decodeURIComponent(atob(value));
52
- } catch {// value not encoded
53
- } // eslint-disable-next-line @typescript-eslint/no-unsafe-return
54
-
55
-
56
- return JSON.parse(value);
57
- } catch {
58
- /* istanbul ignore next */
59
- return undefined;
60
- }
61
- }
62
-
63
- async getRaw(key) {
64
- const cookie = window.document.cookie.split('; ');
65
- const match = cookie.find(c => c.indexOf(key + '=') === 0);
66
-
67
- if (!match) {
68
- return undefined;
69
- }
70
-
71
- return match.substring(key.length + 1);
72
- }
73
-
74
- async set(key, value) {
75
- try {
76
- var _this$options$expirat;
77
-
78
- const expirationDays = (_this$options$expirat = this.options.expirationDays) !== null && _this$options$expirat !== void 0 ? _this$options$expirat : 0;
79
- const expires = value !== null ? expirationDays : -1;
80
- let expireDate = undefined;
81
-
82
- if (expires) {
83
- const date = new Date();
84
- date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);
85
- expireDate = date;
86
- }
87
-
88
- let str = `${key}=${btoa(encodeURIComponent(JSON.stringify(value)))}`;
89
-
90
- if (expireDate) {
91
- str += `; expires=${expireDate.toUTCString()}`;
92
- }
93
-
94
- str += '; path=/';
95
-
96
- if (this.options.domain) {
97
- str += `; domain=${this.options.domain}`;
98
- }
99
-
100
- if (this.options.secure) {
101
- str += '; Secure';
102
- }
103
-
104
- if (this.options.sameSite) {
105
- str += `; SameSite=${this.options.sameSite}`;
106
- }
107
-
108
- window.document.cookie = str;
109
- } catch {//
110
- }
111
- }
112
-
113
- async remove(key) {
114
- await this.set(key, null);
115
- }
116
-
117
- async reset() {
118
- return;
119
- }
120
-
121
- }
122
-
123
- exports.CookieStorage = CookieStorage;
124
- //# sourceMappingURL=cookie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["CookieStorage","constructor","options","isEnabled","isNative","window","random","String","Date","now","testStrorage","testKey","set","value","get","remove","key","getRaw","undefined","decodeURIComponent","atob","JSON","parse","cookie","document","split","match","find","c","indexOf","substring","length","expirationDays","expires","expireDate","date","setTime","getTime","str","btoa","encodeURIComponent","stringify","toUTCString","domain","secure","sameSite","reset"],"sources":["cookie.ts"],"sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\nimport { isNative } from '../utils/platform';\n\nexport class CookieStorage<T> implements Storage<T> {\n options: CookieStorageOptions;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (isNative() || typeof window === 'undefined') {\n return false;\n }\n\n const random = String(Date.now());\n const testStrorage = new CookieStorage<string>(this.options);\n const testKey = 'AMP_TEST';\n try {\n await testStrorage.set(testKey, random);\n const value = await testStrorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStrorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n let value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n try {\n try {\n value = decodeURIComponent(atob(value));\n } catch {\n // value not encoded\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n /* istanbul ignore next */\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n const cookie = window.document.cookie.split('; ');\n const match = cookie.find((c) => c.indexOf(key + '=') === 0);\n if (!match) {\n return undefined;\n }\n return match.substring(key.length + 1);\n }\n\n async set(key: string, value: T | null): Promise<void> {\n try {\n const expirationDays = this.options.expirationDays ?? 0;\n const expires = value !== null ? expirationDays : -1;\n let expireDate: Date | undefined = undefined;\n if (expires) {\n const date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n let str = `${key}=${btoa(encodeURIComponent(JSON.stringify(value)))}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (this.options.domain) {\n str += `; domain=${this.options.domain}`;\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += `; SameSite=${this.options.sameSite}`;\n }\n window.document.cookie = str;\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise<void> {\n await this.set(key, null);\n }\n\n async reset(): Promise<void> {\n return;\n }\n}\n"],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.UTMCookie = void 0;
7
-
8
- var _cookie = require("./cookie");
9
-
10
- class UTMCookie extends _cookie.CookieStorage {
11
- async get(key) {
12
- try {
13
- const value = await this.getRaw(key);
14
-
15
- if (!value) {
16
- return undefined;
17
- }
18
-
19
- const entries = value.split('.').splice(-1)[0].split('|');
20
- return entries.reduce((acc, curr) => {
21
- const [key, value = ''] = curr.split('=', 2);
22
-
23
- if (!value) {
24
- return acc;
25
- }
26
-
27
- acc[key] = decodeURIComponent(value);
28
- return acc;
29
- }, {});
30
- } catch {
31
- return undefined;
32
- }
33
- }
34
-
35
- async set() {
36
- return undefined;
37
- }
38
-
39
- }
40
-
41
- exports.UTMCookie = UTMCookie;
42
- //# sourceMappingURL=utm-cookie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["UTMCookie","CookieStorage","get","key","value","getRaw","undefined","entries","split","splice","reduce","acc","curr","decodeURIComponent","set"],"sources":["utm-cookie.ts"],"sourcesContent":["import { CookieStorage } from './cookie';\n\nexport class UTMCookie extends CookieStorage<Record<string, string | undefined>> {\n async get(key: string): Promise<Record<string, string | undefined> | undefined> {\n try {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n const entries = value.split('.').splice(-1)[0].split('|');\n return entries.reduce<Record<string, string | undefined>>((acc, curr) => {\n const [key, value = ''] = curr.split('=', 2);\n if (!value) {\n return acc;\n }\n acc[key] = decodeURIComponent(value);\n return acc;\n }, {});\n } catch {\n return undefined;\n }\n }\n\n async set(): Promise<void> {\n return undefined;\n }\n}\n"],"mappings":";;;;;;;AAAA;;AAEO,MAAMA,SAAN,SAAwBC,qBAAxB,CAA0E;EACtE,MAAHC,GAAG,CAACC,GAAD,EAAuE;IAC9E,IAAI;MACF,MAAMC,KAAK,GAAG,MAAM,KAAKC,MAAL,CAAYF,GAAZ,CAApB;;MACA,IAAI,CAACC,KAAL,EAAY;QACV,OAAOE,SAAP;MACD;;MACD,MAAMC,OAAO,GAAGH,KAAK,CAACI,KAAN,CAAY,GAAZ,EAAiBC,MAAjB,CAAwB,CAAC,CAAzB,EAA4B,CAA5B,EAA+BD,KAA/B,CAAqC,GAArC,CAAhB;MACA,OAAOD,OAAO,CAACG,MAAR,CAAmD,CAACC,GAAD,EAAMC,IAAN,KAAe;QACvE,MAAM,CAACT,GAAD,EAAMC,KAAK,GAAG,EAAd,IAAoBQ,IAAI,CAACJ,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAA1B;;QACA,IAAI,CAACJ,KAAL,EAAY;UACV,OAAOO,GAAP;QACD;;QACDA,GAAG,CAACR,GAAD,CAAH,GAAWU,kBAAkB,CAACT,KAAD,CAA7B;QACA,OAAOO,GAAP;MACD,CAPM,EAOJ,EAPI,CAAP;IAQD,CAdD,CAcE,MAAM;MACN,OAAOL,SAAP;IACD;EACF;;EAEQ,MAAHQ,GAAG,GAAkB;IACzB,OAAOR,SAAP;EACD;;AAvB8E"}
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FetchTransport = void 0;
7
-
8
- var _analyticsCore = require("@amplitude/analytics-core");
9
-
10
- class FetchTransport extends _analyticsCore.BaseTransport {
11
- async send(serverUrl, payload) {
12
- /* istanbul ignore if */
13
- if (typeof fetch === 'undefined') {
14
- throw new Error('FetchTransport is not supported');
15
- }
16
-
17
- const options = {
18
- headers: {
19
- 'Content-Type': 'application/json',
20
- Accept: '*/*'
21
- },
22
- body: JSON.stringify(payload),
23
- method: 'POST'
24
- };
25
- const response = await fetch(serverUrl, options); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
26
-
27
- const responsePayload = await response.json();
28
- return this.buildResponse(responsePayload);
29
- }
30
-
31
- }
32
-
33
- exports.FetchTransport = FetchTransport;
34
- //# sourceMappingURL=fetch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["FetchTransport","BaseTransport","send","serverUrl","payload","fetch","Error","options","headers","Accept","body","JSON","stringify","method","response","responsePayload","json","buildResponse"],"sources":["fetch.ts"],"sourcesContent":["import { BaseTransport } from '@amplitude/analytics-core';\nimport { Payload, Response, Transport } from '@amplitude/analytics-types';\n\nexport class FetchTransport extends BaseTransport implements Transport {\n async send(serverUrl: string, payload: Payload): Promise<Response | null> {\n /* istanbul ignore if */\n if (typeof fetch === 'undefined') {\n throw new Error('FetchTransport is not supported');\n }\n const options: RequestInit = {\n headers: {\n 'Content-Type': 'application/json',\n Accept: '*/*',\n },\n body: JSON.stringify(payload),\n method: 'POST',\n };\n const response = await fetch(serverUrl, options);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const responsePayload: Record<string, any> = await response.json();\n return this.buildResponse(responsePayload);\n }\n}\n"],"mappings":";;;;;;;AAAA;;AAGO,MAAMA,cAAN,SAA6BC,4BAA7B,CAAgE;EAC3D,MAAJC,IAAI,CAACC,SAAD,EAAoBC,OAApB,EAAgE;IACxE;IACA,IAAI,OAAOC,KAAP,KAAiB,WAArB,EAAkC;MAChC,MAAM,IAAIC,KAAJ,CAAU,iCAAV,CAAN;IACD;;IACD,MAAMC,OAAoB,GAAG;MAC3BC,OAAO,EAAE;QACP,gBAAgB,kBADT;QAEPC,MAAM,EAAE;MAFD,CADkB;MAK3BC,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeR,OAAf,CALqB;MAM3BS,MAAM,EAAE;IANmB,CAA7B;IAQA,MAAMC,QAAQ,GAAG,MAAMT,KAAK,CAACF,SAAD,EAAYI,OAAZ,CAA5B,CAbwE,CAcxE;;IACA,MAAMQ,eAAoC,GAAG,MAAMD,QAAQ,CAACE,IAAT,EAAnD;IACA,OAAO,KAAKC,aAAL,CAAmBF,eAAnB,CAAP;EACD;;AAlBoE"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getAnalyticsConnector = void 0;
7
-
8
- var _analyticsConnector = require("@amplitude/analytics-connector");
9
-
10
- const getAnalyticsConnector = () => {
11
- return _analyticsConnector.AnalyticsConnector.getInstance('$default_instance');
12
- };
13
-
14
- exports.getAnalyticsConnector = getAnalyticsConnector;
15
- //# sourceMappingURL=analytics-connector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getAnalyticsConnector","AnalyticsConnector","getInstance"],"sources":["analytics-connector.ts"],"sourcesContent":["import { AnalyticsConnector } from '@amplitude/analytics-connector';\n\nexport const getAnalyticsConnector = (): AnalyticsConnector => {\n return AnalyticsConnector.getInstance('$default_instance');\n};\n"],"mappings":";;;;;;;AAAA;;AAEO,MAAMA,qBAAqB,GAAG,MAA0B;EAC7D,OAAOC,sCAAA,CAAmBC,WAAnB,CAA+B,mBAA/B,CAAP;AACD,CAFM"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getOldCookieName = exports.getCookieName = void 0;
7
-
8
- var _analyticsCore = require("@amplitude/analytics-core");
9
-
10
- const getCookieName = function (apiKey) {
11
- let postKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
12
- let limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
13
- return [_analyticsCore.AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');
14
- };
15
-
16
- exports.getCookieName = getCookieName;
17
-
18
- const getOldCookieName = apiKey => {
19
- return `${_analyticsCore.AMPLITUDE_PREFIX.toLowerCase()}_${apiKey.substring(0, 6)}`;
20
- };
21
-
22
- exports.getOldCookieName = getOldCookieName;
23
- //# sourceMappingURL=cookie-name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getCookieName","apiKey","postKey","limit","AMPLITUDE_PREFIX","substring","filter","Boolean","join","getOldCookieName","toLowerCase"],"sources":["cookie-name.ts"],"sourcesContent":["import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';\n\nexport const getCookieName = (apiKey: string, postKey = '', limit = 10) => {\n return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');\n};\n\nexport const getOldCookieName = (apiKey: string) => {\n return `${AMPLITUDE_PREFIX.toLowerCase()}_${apiKey.substring(0, 6)}`;\n};\n"],"mappings":";;;;;;;AAAA;;AAEO,MAAMA,aAAa,GAAG,UAACC,MAAD,EAA8C;EAAA,IAA7BC,OAA6B,uEAAnB,EAAmB;EAAA,IAAfC,KAAe,uEAAP,EAAO;EACzE,OAAO,CAACC,+BAAD,EAAmBF,OAAnB,EAA4BD,MAAM,CAACI,SAAP,CAAiB,CAAjB,EAAoBF,KAApB,CAA5B,EAAwDG,MAAxD,CAA+DC,OAA/D,EAAwEC,IAAxE,CAA6E,GAA7E,CAAP;AACD,CAFM;;;;AAIA,MAAMC,gBAAgB,GAAIR,MAAD,IAAoB;EAClD,OAAQ,GAAEG,+BAAA,CAAiBM,WAAjB,EAA+B,IAAGT,MAAM,CAACI,SAAP,CAAiB,CAAjB,EAAoB,CAApB,CAAuB,EAAnE;AACD,CAFM"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getLanguage = void 0;
7
-
8
- const getLanguage = () => {
9
- var _ref, _ref2, _navigator$languages$, _navigator$languages;
10
-
11
- if (typeof navigator === 'undefined') return ''; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
12
-
13
- const userLanguage = navigator.userLanguage;
14
- return (_ref = (_ref2 = (_navigator$languages$ = (_navigator$languages = navigator.languages) === null || _navigator$languages === void 0 ? void 0 : _navigator$languages[0]) !== null && _navigator$languages$ !== void 0 ? _navigator$languages$ : navigator.language) !== null && _ref2 !== void 0 ? _ref2 : userLanguage) !== null && _ref !== void 0 ? _ref : '';
15
- };
16
-
17
- exports.getLanguage = getLanguage;
18
- //# sourceMappingURL=language.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getLanguage","navigator","userLanguage","languages","language"],"sources":["language.ts"],"sourcesContent":["export const getLanguage = (): string => {\n if (typeof navigator === 'undefined') return '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const userLanguage = (navigator as any).userLanguage as string | undefined;\n\n return navigator.languages?.[0] ?? navigator.language ?? userLanguage ?? '';\n};\n"],"mappings":";;;;;;;AAAO,MAAMA,WAAW,GAAG,MAAc;EAAA;;EACvC,IAAI,OAAOC,SAAP,KAAqB,WAAzB,EAAsC,OAAO,EAAP,CADC,CAEvC;;EACA,MAAMC,YAAY,GAAID,SAAD,CAAmBC,YAAxC;EAEA,yEAAOD,SAAS,CAACE,SAAjB,yDAAO,qBAAsB,CAAtB,CAAP,yEAAmCF,SAAS,CAACG,QAA7C,yCAAyDF,YAAzD,uCAAyE,EAAzE;AACD,CANM"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.tryDecodeURIComponent = exports.getQueryParams = void 0;
7
-
8
- const getQueryParams = () => {
9
- /* istanbul ignore if */
10
- if (typeof window === 'undefined') {
11
- return {};
12
- }
13
-
14
- const pairs = window.location.search.substring(1).split('&').filter(Boolean);
15
- const params = pairs.reduce((acc, curr) => {
16
- const query = curr.split('=', 2);
17
- const key = tryDecodeURIComponent(query[0]);
18
- const value = tryDecodeURIComponent(query[1]);
19
-
20
- if (!value) {
21
- return acc;
22
- }
23
-
24
- acc[key] = value;
25
- return acc;
26
- }, {});
27
- return params;
28
- };
29
-
30
- exports.getQueryParams = getQueryParams;
31
-
32
- const tryDecodeURIComponent = function () {
33
- let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
34
-
35
- try {
36
- return decodeURIComponent(value);
37
- } catch {
38
- return '';
39
- }
40
- };
41
-
42
- exports.tryDecodeURIComponent = tryDecodeURIComponent;
43
- //# sourceMappingURL=query-params.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getQueryParams","window","pairs","location","search","substring","split","filter","Boolean","params","reduce","acc","curr","query","key","tryDecodeURIComponent","value","decodeURIComponent"],"sources":["query-params.ts"],"sourcesContent":["export const getQueryParams = (): Record<string, string | undefined> => {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return {};\n }\n const pairs = window.location.search.substring(1).split('&').filter(Boolean);\n const params = pairs.reduce<Record<string, string | undefined>>((acc, curr) => {\n const query = curr.split('=', 2);\n const key = tryDecodeURIComponent(query[0]);\n const value = tryDecodeURIComponent(query[1]);\n if (!value) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n return params;\n};\n\nexport const tryDecodeURIComponent = (value = '') => {\n try {\n return decodeURIComponent(value);\n } catch {\n return '';\n }\n};\n"],"mappings":";;;;;;;AAAO,MAAMA,cAAc,GAAG,MAA0C;EACtE;EACA,IAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;IACjC,OAAO,EAAP;EACD;;EACD,MAAMC,KAAK,GAAGD,MAAM,CAACE,QAAP,CAAgBC,MAAhB,CAAuBC,SAAvB,CAAiC,CAAjC,EAAoCC,KAApC,CAA0C,GAA1C,EAA+CC,MAA/C,CAAsDC,OAAtD,CAAd;EACA,MAAMC,MAAM,GAAGP,KAAK,CAACQ,MAAN,CAAiD,CAACC,GAAD,EAAMC,IAAN,KAAe;IAC7E,MAAMC,KAAK,GAAGD,IAAI,CAACN,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAd;IACA,MAAMQ,GAAG,GAAGC,qBAAqB,CAACF,KAAK,CAAC,CAAD,CAAN,CAAjC;IACA,MAAMG,KAAK,GAAGD,qBAAqB,CAACF,KAAK,CAAC,CAAD,CAAN,CAAnC;;IACA,IAAI,CAACG,KAAL,EAAY;MACV,OAAOL,GAAP;IACD;;IACDA,GAAG,CAACG,GAAD,CAAH,GAAWE,KAAX;IACA,OAAOL,GAAP;EACD,CATc,EASZ,EATY,CAAf;EAUA,OAAOF,MAAP;AACD,CAjBM;;;;AAmBA,MAAMM,qBAAqB,GAAG,YAAgB;EAAA,IAAfC,KAAe,uEAAP,EAAO;;EACnD,IAAI;IACF,OAAOC,kBAAkB,CAACD,KAAD,CAAzB;EACD,CAFD,CAEE,MAAM;IACN,OAAO,EAAP;EACD;AACF,CANM"}
@@ -1,62 +0,0 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- import { UTMCookie } from '../storage/utm-cookie';
4
- import { getQueryParams } from '../utils/query-params';
5
- import { UTM_CAMPAIGN, UTM_CONTENT, UTM_MEDIUM, UTM_SOURCE, UTM_TERM, UTMZ_SOURCE, UTMZ_MEDIUM, UTMZ_CAMPAIGN, UTMZ_TERM, UTMZ_CONTENT, GCLID, FBCLID, BASE_CAMPAIGN } from './constants';
6
- export class CampaignParser {
7
- constructor() {
8
- _defineProperty(this, "utmCookieStorage", new UTMCookie());
9
- }
10
-
11
- async parse() {
12
- return { ...BASE_CAMPAIGN,
13
- ...(await this.getUtmParam()),
14
- ...this.getReferrer(),
15
- ...this.getClickIds()
16
- };
17
- }
18
-
19
- async getUtmParam() {
20
- const params = getQueryParams();
21
- const cookies = (await this.utmCookieStorage.isEnabled()) && (await this.utmCookieStorage.get('__utmz')) || {};
22
- const utmSource = params[UTM_SOURCE] || cookies[UTMZ_SOURCE];
23
- const utmMedium = params[UTM_MEDIUM] || cookies[UTMZ_MEDIUM];
24
- const utmCampaign = params[UTM_CAMPAIGN] || cookies[UTMZ_CAMPAIGN];
25
- const utmTerm = params[UTM_TERM] || cookies[UTMZ_TERM];
26
- const utmContent = params[UTM_CONTENT] || cookies[UTMZ_CONTENT];
27
- return {
28
- utm_source: utmSource,
29
- utm_medium: utmMedium,
30
- utm_campaign: utmCampaign,
31
- utm_term: utmTerm,
32
- utm_content: utmContent
33
- };
34
- }
35
-
36
- getReferrer() {
37
- const data = {
38
- referrer: undefined,
39
- referring_domain: undefined
40
- };
41
-
42
- try {
43
- var _data$referrer$split$, _data$referrer;
44
-
45
- data.referrer = document.referrer || undefined;
46
- data.referring_domain = (_data$referrer$split$ = (_data$referrer = data.referrer) === null || _data$referrer === void 0 ? void 0 : _data$referrer.split('/')[2]) !== null && _data$referrer$split$ !== void 0 ? _data$referrer$split$ : undefined;
47
- } catch {// nothing to track
48
- }
49
-
50
- return data;
51
- }
52
-
53
- getClickIds() {
54
- const params = getQueryParams();
55
- return {
56
- [GCLID]: params[GCLID],
57
- [FBCLID]: params[FBCLID]
58
- };
59
- }
60
-
61
- }
62
- //# sourceMappingURL=campaign-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["UTMCookie","getQueryParams","UTM_CAMPAIGN","UTM_CONTENT","UTM_MEDIUM","UTM_SOURCE","UTM_TERM","UTMZ_SOURCE","UTMZ_MEDIUM","UTMZ_CAMPAIGN","UTMZ_TERM","UTMZ_CONTENT","GCLID","FBCLID","BASE_CAMPAIGN","CampaignParser","parse","getUtmParam","getReferrer","getClickIds","params","cookies","utmCookieStorage","isEnabled","get","utmSource","utmMedium","utmCampaign","utmTerm","utmContent","utm_source","utm_medium","utm_campaign","utm_term","utm_content","data","referrer","undefined","referring_domain","document","split"],"sources":["campaign-parser.ts"],"sourcesContent":["import { UTMCookie } from '../storage/utm-cookie';\nimport { getQueryParams } from '../utils/query-params';\nimport {\n UTM_CAMPAIGN,\n UTM_CONTENT,\n UTM_MEDIUM,\n UTM_SOURCE,\n UTM_TERM,\n UTMZ_SOURCE,\n UTMZ_MEDIUM,\n UTMZ_CAMPAIGN,\n UTMZ_TERM,\n UTMZ_CONTENT,\n GCLID,\n FBCLID,\n BASE_CAMPAIGN,\n} from './constants';\nimport {\n Campaign,\n CampaignParser as ICampaignParser,\n ClickIdParameters,\n ReferrerParameters,\n UTMParameters,\n} from '@amplitude/analytics-types';\n\nexport class CampaignParser implements ICampaignParser {\n utmCookieStorage = new UTMCookie();\n\n async parse(): Promise<Campaign> {\n return {\n ...BASE_CAMPAIGN,\n ...(await this.getUtmParam()),\n ...this.getReferrer(),\n ...this.getClickIds(),\n } as Campaign;\n }\n\n async getUtmParam(): Promise<UTMParameters> {\n const params = getQueryParams();\n const cookies = ((await this.utmCookieStorage.isEnabled()) && (await this.utmCookieStorage.get('__utmz'))) || {};\n\n const utmSource = params[UTM_SOURCE] || cookies[UTMZ_SOURCE];\n const utmMedium = params[UTM_MEDIUM] || cookies[UTMZ_MEDIUM];\n const utmCampaign = params[UTM_CAMPAIGN] || cookies[UTMZ_CAMPAIGN];\n const utmTerm = params[UTM_TERM] || cookies[UTMZ_TERM];\n const utmContent = params[UTM_CONTENT] || cookies[UTMZ_CONTENT];\n\n return {\n utm_source: utmSource,\n utm_medium: utmMedium,\n utm_campaign: utmCampaign,\n utm_term: utmTerm,\n utm_content: utmContent,\n };\n }\n\n getReferrer(): ReferrerParameters {\n const data: ReferrerParameters = {\n referrer: undefined,\n referring_domain: undefined,\n };\n try {\n data.referrer = document.referrer || undefined;\n data.referring_domain = data.referrer?.split('/')[2] ?? undefined;\n } catch {\n // nothing to track\n }\n return data;\n }\n\n getClickIds(): ClickIdParameters {\n const params = getQueryParams();\n return {\n [GCLID]: params[GCLID],\n [FBCLID]: params[FBCLID],\n };\n }\n}\n"],"mappings":";;AAAA,SAASA,SAAT,QAA0B,uBAA1B;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA,SACEC,YADF,EAEEC,WAFF,EAGEC,UAHF,EAIEC,UAJF,EAKEC,QALF,EAMEC,WANF,EAOEC,WAPF,EAQEC,aARF,EASEC,SATF,EAUEC,YAVF,EAWEC,KAXF,EAYEC,MAZF,EAaEC,aAbF,QAcO,aAdP;AAuBA,OAAO,MAAMC,cAAN,CAAgD;EAAA;IAAA,0CAClC,IAAIf,SAAJ,EADkC;EAAA;;EAG1C,MAALgB,KAAK,GAAsB;IAC/B,OAAO,EACL,GAAGF,aADE;MAEL,IAAI,MAAM,KAAKG,WAAL,EAAV,CAFK;MAGL,GAAG,KAAKC,WAAL,EAHE;MAIL,GAAG,KAAKC,WAAL;IAJE,CAAP;EAMD;;EAEgB,MAAXF,WAAW,GAA2B;IAC1C,MAAMG,MAAM,GAAGnB,cAAc,EAA7B;IACA,MAAMoB,OAAO,GAAI,CAAC,MAAM,KAAKC,gBAAL,CAAsBC,SAAtB,EAAP,MAA8C,MAAM,KAAKD,gBAAL,CAAsBE,GAAtB,CAA0B,QAA1B,CAApD,CAAD,IAA8F,EAA9G;IAEA,MAAMC,SAAS,GAAGL,MAAM,CAACf,UAAD,CAAN,IAAsBgB,OAAO,CAACd,WAAD,CAA/C;IACA,MAAMmB,SAAS,GAAGN,MAAM,CAAChB,UAAD,CAAN,IAAsBiB,OAAO,CAACb,WAAD,CAA/C;IACA,MAAMmB,WAAW,GAAGP,MAAM,CAAClB,YAAD,CAAN,IAAwBmB,OAAO,CAACZ,aAAD,CAAnD;IACA,MAAMmB,OAAO,GAAGR,MAAM,CAACd,QAAD,CAAN,IAAoBe,OAAO,CAACX,SAAD,CAA3C;IACA,MAAMmB,UAAU,GAAGT,MAAM,CAACjB,WAAD,CAAN,IAAuBkB,OAAO,CAACV,YAAD,CAAjD;IAEA,OAAO;MACLmB,UAAU,EAAEL,SADP;MAELM,UAAU,EAAEL,SAFP;MAGLM,YAAY,EAAEL,WAHT;MAILM,QAAQ,EAAEL,OAJL;MAKLM,WAAW,EAAEL;IALR,CAAP;EAOD;;EAEDX,WAAW,GAAuB;IAChC,MAAMiB,IAAwB,GAAG;MAC/BC,QAAQ,EAAEC,SADqB;MAE/BC,gBAAgB,EAAED;IAFa,CAAjC;;IAIA,IAAI;MAAA;;MACFF,IAAI,CAACC,QAAL,GAAgBG,QAAQ,CAACH,QAAT,IAAqBC,SAArC;MACAF,IAAI,CAACG,gBAAL,8CAAwBH,IAAI,CAACC,QAA7B,mDAAwB,eAAeI,KAAf,CAAqB,GAArB,EAA0B,CAA1B,CAAxB,yEAAwDH,SAAxD;IACD,CAHD,CAGE,MAAM,CACN;IACD;;IACD,OAAOF,IAAP;EACD;;EAEDhB,WAAW,GAAsB;IAC/B,MAAMC,MAAM,GAAGnB,cAAc,EAA7B;IACA,OAAO;MACL,CAACW,KAAD,GAASQ,MAAM,CAACR,KAAD,CADV;MAEL,CAACC,MAAD,GAAUO,MAAM,CAACP,MAAD;IAFX,CAAP;EAID;;AAnDoD"}