@amplitude/analytics-browser 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/attribution/campaign-parser.d.ts +2 -2
  3. package/lib/cjs/attribution/campaign-parser.d.ts.map +1 -1
  4. package/lib/cjs/attribution/campaign-parser.js +42 -15
  5. package/lib/cjs/attribution/campaign-parser.js.map +1 -1
  6. package/lib/cjs/attribution/campaign-tracker.d.ts +2 -2
  7. package/lib/cjs/attribution/campaign-tracker.d.ts.map +1 -1
  8. package/lib/cjs/attribution/campaign-tracker.js +29 -7
  9. package/lib/cjs/attribution/campaign-tracker.js.map +1 -1
  10. package/lib/cjs/browser-client.d.ts +21 -9
  11. package/lib/cjs/browser-client.d.ts.map +1 -1
  12. package/lib/cjs/browser-client.js +27 -10
  13. package/lib/cjs/browser-client.js.map +1 -1
  14. package/lib/cjs/config.d.ts +8 -4
  15. package/lib/cjs/config.d.ts.map +1 -1
  16. package/lib/cjs/config.js +198 -79
  17. package/lib/cjs/config.js.map +1 -1
  18. package/lib/cjs/cookie-migration/index.d.ts +1 -1
  19. package/lib/cjs/cookie-migration/index.d.ts.map +1 -1
  20. package/lib/cjs/cookie-migration/index.js +42 -27
  21. package/lib/cjs/cookie-migration/index.js.map +1 -1
  22. package/lib/cjs/index.d.ts +1 -1
  23. package/lib/cjs/index.d.ts.map +1 -1
  24. package/lib/cjs/index.js +2 -1
  25. package/lib/cjs/index.js.map +1 -1
  26. package/lib/cjs/plugins/context.d.ts.map +1 -1
  27. package/lib/cjs/plugins/context.js +21 -16
  28. package/lib/cjs/plugins/context.js.map +1 -1
  29. package/lib/cjs/session-manager.d.ts +11 -3
  30. package/lib/cjs/session-manager.d.ts.map +1 -1
  31. package/lib/cjs/session-manager.js +41 -11
  32. package/lib/cjs/session-manager.js.map +1 -1
  33. package/lib/cjs/storage/cookie.d.ts +6 -6
  34. package/lib/cjs/storage/cookie.d.ts.map +1 -1
  35. package/lib/cjs/storage/cookie.js +122 -67
  36. package/lib/cjs/storage/cookie.js.map +1 -1
  37. package/lib/cjs/storage/local-storage.d.ts +6 -6
  38. package/lib/cjs/storage/local-storage.d.ts.map +1 -1
  39. package/lib/cjs/storage/local-storage.js +95 -50
  40. package/lib/cjs/storage/local-storage.js.map +1 -1
  41. package/lib/cjs/storage/utm-cookie.d.ts +2 -2
  42. package/lib/cjs/storage/utm-cookie.d.ts.map +1 -1
  43. package/lib/cjs/storage/utm-cookie.js +32 -18
  44. package/lib/cjs/storage/utm-cookie.js.map +1 -1
  45. package/lib/cjs/utils/snippet-helper.js.map +1 -1
  46. package/lib/cjs/version.d.ts +1 -1
  47. package/lib/cjs/version.js +1 -1
  48. package/lib/cjs/version.js.map +1 -1
  49. package/lib/esm/attribution/campaign-parser.d.ts +2 -2
  50. package/lib/esm/attribution/campaign-parser.d.ts.map +1 -1
  51. package/lib/esm/attribution/campaign-parser.js +43 -16
  52. package/lib/esm/attribution/campaign-parser.js.map +1 -1
  53. package/lib/esm/attribution/campaign-tracker.d.ts +2 -2
  54. package/lib/esm/attribution/campaign-tracker.d.ts.map +1 -1
  55. package/lib/esm/attribution/campaign-tracker.js +29 -7
  56. package/lib/esm/attribution/campaign-tracker.js.map +1 -1
  57. package/lib/esm/browser-client.d.ts +21 -9
  58. package/lib/esm/browser-client.d.ts.map +1 -1
  59. package/lib/esm/browser-client.js +26 -9
  60. package/lib/esm/browser-client.js.map +1 -1
  61. package/lib/esm/config.d.ts +8 -4
  62. package/lib/esm/config.d.ts.map +1 -1
  63. package/lib/esm/config.js +196 -79
  64. package/lib/esm/config.js.map +1 -1
  65. package/lib/esm/cookie-migration/index.d.ts +1 -1
  66. package/lib/esm/cookie-migration/index.d.ts.map +1 -1
  67. package/lib/esm/cookie-migration/index.js +42 -28
  68. package/lib/esm/cookie-migration/index.js.map +1 -1
  69. package/lib/esm/index.d.ts +1 -1
  70. package/lib/esm/index.d.ts.map +1 -1
  71. package/lib/esm/index.js +1 -1
  72. package/lib/esm/index.js.map +1 -1
  73. package/lib/esm/plugins/context.d.ts.map +1 -1
  74. package/lib/esm/plugins/context.js +22 -17
  75. package/lib/esm/plugins/context.js.map +1 -1
  76. package/lib/esm/session-manager.d.ts +11 -3
  77. package/lib/esm/session-manager.d.ts.map +1 -1
  78. package/lib/esm/session-manager.js +42 -12
  79. package/lib/esm/session-manager.js.map +1 -1
  80. package/lib/esm/storage/cookie.d.ts +6 -6
  81. package/lib/esm/storage/cookie.d.ts.map +1 -1
  82. package/lib/esm/storage/cookie.js +123 -68
  83. package/lib/esm/storage/cookie.js.map +1 -1
  84. package/lib/esm/storage/local-storage.d.ts +6 -6
  85. package/lib/esm/storage/local-storage.d.ts.map +1 -1
  86. package/lib/esm/storage/local-storage.js +95 -50
  87. package/lib/esm/storage/local-storage.js.map +1 -1
  88. package/lib/esm/storage/utm-cookie.d.ts +2 -2
  89. package/lib/esm/storage/utm-cookie.d.ts.map +1 -1
  90. package/lib/esm/storage/utm-cookie.js +33 -19
  91. package/lib/esm/storage/utm-cookie.js.map +1 -1
  92. package/lib/esm/utils/snippet-helper.js.map +1 -1
  93. package/lib/esm/version.d.ts +1 -1
  94. package/lib/esm/version.js +1 -1
  95. package/lib/esm/version.js.map +1 -1
  96. package/lib/scripts/amplitude-min.js +1 -1
  97. package/lib/scripts/amplitude-min.js.gz +0 -0
  98. package/lib/scripts/amplitude-min.umd.js +1 -1
  99. package/lib/scripts/amplitude-min.umd.js.gz +0 -0
  100. package/lib/scripts/amplitude-snippet-instructions.html +1 -1
  101. package/lib/scripts/amplitude-snippet-min.js +1 -1
  102. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":";;AAEA;IAAA;IA+DA,CAAC;IA9DC,gCAAS,GAAT;QACE,wBAAwB;QACxB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,IAAM,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAChD,IAAM,OAAO,GAAG,UAAU,CAAC;QAC3B,IAAI;YACF,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,IAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,KAAK,KAAK,MAAM,CAAC;SACzB;QAAC,WAAM;YACN,0BAA0B;YAC1B,OAAO,KAAK,CAAC;SACd;gBAAS;YACR,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,0BAAG,GAAH,UAAI,GAAW;QACb,IAAI;YACF,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,SAAS,CAAC;aAClB;YACD,+DAA+D;YAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1B;QAAC,WAAM;YACN,0BAA0B;YAC1B,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAED,6BAAM,GAAN,UAAO,GAAW;QAChB,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IACvD,CAAC;IAED,0BAAG,GAAH,UAAI,GAAW,EAAE,KAAQ;QACvB,IAAI;YACF,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACzD;QAAC,WAAM;YACN,EAAE;SACH;IACH,CAAC;IAED,6BAAM,GAAN,UAAO,GAAW;QAChB,IAAI;YACF,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACrC;QAAC,WAAM;YACN,EAAE;SACH;IACH,CAAC;IAED,4BAAK,GAAL;QACE,IAAI;YACF,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC7B;QAAC,WAAM;YACN,EAAE;SACH;IACH,CAAC;IACH,mBAAC;AAAD,CAAC,AA/DD,IA+DC;AA/DY,oCAAY","sourcesContent":["import { Storage } from '@amplitude/analytics-types';\n\nexport class LocalStorage<T> implements Storage<T> {\n isEnabled(): boolean {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return false;\n }\n\n const random = String(Date.now());\n const testStrorage = new LocalStorage<string>();\n const testKey = 'AMP_TEST';\n try {\n testStrorage.set(testKey, random);\n const value = testStrorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n testStrorage.remove(testKey);\n }\n }\n\n get(key: string): T | undefined {\n try {\n const value = this.getRaw(key);\n if (!value) {\n return undefined;\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 getRaw(key: string) {\n return window.localStorage.getItem(key) || undefined;\n }\n\n set(key: string, value: T) {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n remove(key: string) {\n try {\n window.localStorage.removeItem(key);\n } catch {\n //\n }\n }\n\n reset() {\n try {\n window.localStorage.clear();\n } catch {\n //\n }\n }\n}\n"]}
1
+ {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":";;;AAEA;IAAA;IA+DA,CAAC;IA9DO,gCAAS,GAAf;;;;;;wBACE,wBAAwB;wBACxB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;4BACjC,sBAAO,KAAK,EAAC;yBACd;wBAEK,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC5B,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;wBACzC,OAAO,GAAG,UAAU,CAAC;;;;wBAEzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;wBACzB,qBAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAA;;wBAAtC,KAAK,GAAG,SAA8B;wBAC5C,sBAAO,KAAK,KAAK,MAAM,EAAC;;;wBAExB,0BAA0B;wBAC1B,sBAAO,KAAK,EAAC;4BAEb,qBAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;;wBAAjC,SAAiC,CAAC;;;;;;KAErC;IAEK,0BAAG,GAAT,UAAU,GAAW;;;;;;;wBAEH,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAA9B,KAAK,GAAG,SAAsB;wBACpC,IAAI,CAAC,KAAK,EAAE;4BACV,sBAAO,SAAS,EAAC;yBAClB;wBACD,+DAA+D;wBAC/D,sBAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC;;;wBAEzB,0BAA0B;wBAC1B,sBAAO,SAAS,EAAC;;;;;KAEpB;IAEK,6BAAM,GAAZ,UAAa,GAAW;;;gBACtB,sBAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,EAAC;;;KACtD;IAEK,0BAAG,GAAT,UAAU,GAAW,EAAE,KAAQ;;;gBAC7B,IAAI;oBACF,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;iBACzD;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IAEK,6BAAM,GAAZ,UAAa,GAAW;;;gBACtB,IAAI;oBACF,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iBACrC;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IAEK,4BAAK,GAAX;;;gBACE,IAAI;oBACF,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;iBAC7B;gBAAC,WAAM;oBACN,EAAE;iBACH;;;;KACF;IACH,mBAAC;AAAD,CAAC,AA/DD,IA+DC;AA/DY,oCAAY","sourcesContent":["import { Storage } from '@amplitude/analytics-types';\n\nexport class LocalStorage<T> implements Storage<T> {\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return false;\n }\n\n const random = String(Date.now());\n const testStorage = new LocalStorage<string>();\n const testKey = 'AMP_TEST';\n try {\n await testStorage.set(testKey, random);\n const value = await testStorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n try {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\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 return window.localStorage.getItem(key) || undefined;\n }\n\n async set(key: string, value: T): Promise<void> {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise<void> {\n try {\n window.localStorage.removeItem(key);\n } catch {\n //\n }\n }\n\n async reset(): Promise<void> {\n try {\n window.localStorage.clear();\n } catch {\n //\n }\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { CookieStorage } from './cookie';
2
2
  export declare class UTMCookie extends CookieStorage<Record<string, string | undefined>> {
3
- get(key: string): Record<string, string | undefined> | undefined;
4
- set(): undefined;
3
+ get(key: string): Promise<Record<string, string | undefined> | undefined>;
4
+ set(): Promise<void>;
5
5
  }
6
6
  //# sourceMappingURL=utm-cookie.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utm-cookie.d.ts","sourceRoot":"","sources":["../../../src/storage/utm-cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,qBAAa,SAAU,SAAQ,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9E,GAAG,CAAC,GAAG,EAAE,MAAM;IAoBf,GAAG;CAGJ"}
1
+ {"version":3,"file":"utm-cookie.d.ts","sourceRoot":"","sources":["../../../src/storage/utm-cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,qBAAa,SAAU,SAAQ,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAoBzE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAG3B"}
@@ -8,27 +8,41 @@ var UTMCookie = /** @class */ (function (_super) {
8
8
  return _super !== null && _super.apply(this, arguments) || this;
9
9
  }
10
10
  UTMCookie.prototype.get = function (key) {
11
- try {
12
- var value = this.getRaw(key);
13
- if (!value) {
14
- return undefined;
15
- }
16
- var entries = value.split('.').splice(-1)[0].split('|');
17
- return entries.reduce(function (acc, curr) {
18
- var _a = (0, tslib_1.__read)(curr.split('=', 2), 2), key = _a[0], _b = _a[1], value = _b === void 0 ? '' : _b;
19
- if (!value) {
20
- return acc;
11
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
12
+ var value, entries, _a;
13
+ return (0, tslib_1.__generator)(this, function (_b) {
14
+ switch (_b.label) {
15
+ case 0:
16
+ _b.trys.push([0, 2, , 3]);
17
+ return [4 /*yield*/, this.getRaw(key)];
18
+ case 1:
19
+ value = _b.sent();
20
+ if (!value) {
21
+ return [2 /*return*/, undefined];
22
+ }
23
+ entries = value.split('.').splice(-1)[0].split('|');
24
+ return [2 /*return*/, entries.reduce(function (acc, curr) {
25
+ var _a = (0, tslib_1.__read)(curr.split('=', 2), 2), key = _a[0], _b = _a[1], value = _b === void 0 ? '' : _b;
26
+ if (!value) {
27
+ return acc;
28
+ }
29
+ acc[key] = decodeURIComponent(value);
30
+ return acc;
31
+ }, {})];
32
+ case 2:
33
+ _a = _b.sent();
34
+ return [2 /*return*/, undefined];
35
+ case 3: return [2 /*return*/];
21
36
  }
22
- acc[key] = decodeURIComponent(value);
23
- return acc;
24
- }, {});
25
- }
26
- catch (_a) {
27
- return undefined;
28
- }
37
+ });
38
+ });
29
39
  };
30
40
  UTMCookie.prototype.set = function () {
31
- return undefined;
41
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
42
+ return (0, tslib_1.__generator)(this, function (_a) {
43
+ return [2 /*return*/, undefined];
44
+ });
45
+ });
32
46
  };
33
47
  return UTMCookie;
34
48
  }(cookie_1.CookieStorage));
@@ -1 +1 @@
1
- {"version":3,"file":"utm-cookie.js","sourceRoot":"","sources":["../../../src/storage/utm-cookie.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAEzC;IAA+B,0CAAiD;IAAhF;;IAwBA,CAAC;IAvBC,uBAAG,GAAH,UAAI,GAAW;QACb,IAAI;YACF,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,SAAS,CAAC;aAClB;YACD,IAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1D,OAAO,OAAO,CAAC,MAAM,CAAqC,UAAC,GAAG,EAAE,IAAI;gBAC5D,IAAA,KAAA,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAA,EAArC,GAAG,QAAA,EAAE,UAAU,EAAV,KAAK,mBAAG,EAAE,KAAsB,CAAC;gBAC7C,IAAI,CAAC,KAAK,EAAE;oBACV,OAAO,GAAG,CAAC;iBACZ;gBACD,GAAG,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACrC,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;SACR;QAAC,WAAM;YACN,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAED,uBAAG,GAAH;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,gBAAC;AAAD,CAAC,AAxBD,CAA+B,sBAAa,GAwB3C;AAxBY,8BAAS","sourcesContent":["import { CookieStorage } from './cookie';\n\nexport class UTMCookie extends CookieStorage<Record<string, string | undefined>> {\n get(key: string) {\n try {\n const value = 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 set() {\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"utm-cookie.js","sourceRoot":"","sources":["../../../src/storage/utm-cookie.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAEzC;IAA+B,0CAAiD;IAAhF;;IAwBA,CAAC;IAvBO,uBAAG,GAAT,UAAU,GAAW;;;;;;;wBAEH,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAA9B,KAAK,GAAG,SAAsB;wBACpC,IAAI,CAAC,KAAK,EAAE;4BACV,sBAAO,SAAS,EAAC;yBAClB;wBACK,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC1D,sBAAO,OAAO,CAAC,MAAM,CAAqC,UAAC,GAAG,EAAE,IAAI;gCAC5D,IAAA,KAAA,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAA,EAArC,GAAG,QAAA,EAAE,UAAU,EAAV,KAAK,mBAAG,EAAE,KAAsB,CAAC;gCAC7C,IAAI,CAAC,KAAK,EAAE;oCACV,OAAO,GAAG,CAAC;iCACZ;gCACD,GAAG,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gCACrC,OAAO,GAAG,CAAC;4BACb,CAAC,EAAE,EAAE,CAAC,EAAC;;;wBAEP,sBAAO,SAAS,EAAC;;;;;KAEpB;IAEK,uBAAG,GAAT;;;gBACE,sBAAO,SAAS,EAAC;;;KAClB;IACH,gBAAC;AAAD,CAAC,AAxBD,CAA+B,sBAAa,GAwB3C;AAxBY,8BAAS","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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"snippet-helper.js","sourceRoot":"","sources":["../../../src/utils/snippet-helper.ts"],"names":[],"mappings":";;AAEA;;;GAGG;AACI,IAAM,kBAAkB,GAAG,UAAC,QAAgB,EAAE,KAAiB;IACpE,IAAA,sCAA8B,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEF;;;GAGG;AACI,IAAM,8BAA8B,GAAG,UAAI,QAAW,EAAE,KAAiB;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,IAAA,KAA0B,KAAK,CAAC,CAAC,CAAC,EAAhC,MAAI,UAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAa,CAAC;QACzC,IAAM,EAAE,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAe,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;YAC5B,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAA4B,CAAC;YACnE,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;gBACjC,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC;aAC1B;SACF;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAZW,QAAA,8BAA8B,kCAYzC;AAEF;;GAEG;AACI,IAAM,eAAe,GAAG,UAAC,QAAiB;IAC/C,IAAM,aAAa,GAAG,QAAyB,CAAC;IAChD,OAAO,aAAa,IAAI,aAAa,CAAC,EAAE,KAAK,SAAS,CAAC;AACzD,CAAC,CAAC;AAHW,QAAA,eAAe,mBAG1B","sourcesContent":["import { AmplitudeReturn, InstanceProxy, QueueProxy, Result } from '@amplitude/analytics-types';\n\n/**\n * Applies the proxied functions on the proxied amplitude snippet to an instance of the real object.\n * @ignore\n */\nexport const runQueuedFunctions = (instance: object, queue: QueueProxy) => {\n convertProxyObjectToRealObject(instance, queue);\n};\n\n/**\n * Applies the proxied functions on the proxied object to an instance of the real object.\n * Used to convert proxied Identify and Revenue objects.\n */\nexport const convertProxyObjectToRealObject = <T>(instance: T, queue: QueueProxy): T => {\n for (let i = 0; i < queue.length; i++) {\n const { name, args, resolve } = queue[i];\n const fn = instance && instance[name as keyof T];\n if (typeof fn === 'function') {\n const result = fn.apply(instance, args) as AmplitudeReturn<Result>;\n if (typeof resolve === 'function') {\n resolve(result?.promise);\n }\n }\n }\n return instance;\n};\n\n/**\n * Check if the param is snippet proxy\n */\nexport const isInstanceProxy = (instance: unknown): instance is InstanceProxy => {\n const instanceProxy = instance as InstanceProxy;\n return instanceProxy && instanceProxy._q !== undefined;\n};\n"]}
1
+ {"version":3,"file":"snippet-helper.js","sourceRoot":"","sources":["../../../src/utils/snippet-helper.ts"],"names":[],"mappings":";;AAEA;;;GAGG;AACI,IAAM,kBAAkB,GAAG,UAAC,QAAgB,EAAE,KAAiB;IACpE,IAAA,sCAA8B,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEF;;;GAGG;AACI,IAAM,8BAA8B,GAAG,UAAI,QAAW,EAAE,KAAiB;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,IAAA,KAA0B,KAAK,CAAC,CAAC,CAAC,EAAhC,MAAI,UAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAa,CAAC;QACzC,IAAM,EAAE,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAe,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;YAC5B,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAqC,CAAC;YAC5E,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;gBACjC,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC;aAC1B;SACF;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAZW,QAAA,8BAA8B,kCAYzC;AAEF;;GAEG;AACI,IAAM,eAAe,GAAG,UAAC,QAAiB;IAC/C,IAAM,aAAa,GAAG,QAAyB,CAAC;IAChD,OAAO,aAAa,IAAI,aAAa,CAAC,EAAE,KAAK,SAAS,CAAC;AACzD,CAAC,CAAC;AAHW,QAAA,eAAe,mBAG1B","sourcesContent":["import { AmplitudeReturn, InstanceProxy, QueueProxy, Result } from '@amplitude/analytics-types';\n\n/**\n * Applies the proxied functions on the proxied amplitude snippet to an instance of the real object.\n * @ignore\n */\nexport const runQueuedFunctions = (instance: object, queue: QueueProxy) => {\n convertProxyObjectToRealObject(instance, queue);\n};\n\n/**\n * Applies the proxied functions on the proxied object to an instance of the real object.\n * Used to convert proxied Identify and Revenue objects.\n */\nexport const convertProxyObjectToRealObject = <T>(instance: T, queue: QueueProxy): T => {\n for (let i = 0; i < queue.length; i++) {\n const { name, args, resolve } = queue[i];\n const fn = instance && instance[name as keyof T];\n if (typeof fn === 'function') {\n const result = fn.apply(instance, args) as AmplitudeReturn<Promise<Result>>;\n if (typeof resolve === 'function') {\n resolve(result?.promise);\n }\n }\n }\n return instance;\n};\n\n/**\n * Check if the param is snippet proxy\n */\nexport const isInstanceProxy = (instance: unknown): instance is InstanceProxy => {\n const instanceProxy = instance as InstanceProxy;\n return instanceProxy && instanceProxy._q !== undefined;\n};\n"]}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.6.0";
1
+ export declare const VERSION = "0.7.1";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,4 +1,4 @@
1
1
  Object.defineProperty(exports, "__esModule", { value: true });
2
2
  exports.VERSION = void 0;
3
- exports.VERSION = '0.6.0';
3
+ exports.VERSION = '0.7.1';
4
4
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;AAAa,QAAA,OAAO,GAAG,OAAO,CAAC","sourcesContent":["export const VERSION = '0.6.0';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;AAAa,QAAA,OAAO,GAAG,OAAO,CAAC","sourcesContent":["export const VERSION = '0.7.1';\n"]}
@@ -2,8 +2,8 @@ import { UTMCookie } from '../storage/utm-cookie';
2
2
  import { Campaign, CampaignParser as ICampaignParser, ClickIdParameters, ReferrerParameters, UTMParameters } from '@amplitude/analytics-types';
3
3
  export declare class CampaignParser implements ICampaignParser {
4
4
  utmCookieStorage: UTMCookie;
5
- parse(): Campaign;
6
- getUtmParam(): UTMParameters;
5
+ parse(): Promise<Campaign>;
6
+ getUtmParam(): Promise<UTMParameters>;
7
7
  getReferrer(): ReferrerParameters;
8
8
  getClickIds(): ClickIdParameters;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-parser.d.ts","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAiBlD,OAAO,EACL,QAAQ,EACR,cAAc,IAAI,eAAe,EACjC,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,qBAAa,cAAe,YAAW,eAAe;IACpD,gBAAgB,YAAmB;IAEnC,KAAK,IAAI,QAAQ;IASjB,WAAW,IAAI,aAAa;IAmB5B,WAAW,IAAI,kBAAkB;IAcjC,WAAW,IAAI,iBAAiB;CAOjC"}
1
+ {"version":3,"file":"campaign-parser.d.ts","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAiBlD,OAAO,EACL,QAAQ,EACR,cAAc,IAAI,eAAe,EACjC,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,qBAAa,cAAe,YAAW,eAAe;IACpD,gBAAgB,YAAmB;IAE7B,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;IAS1B,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAmB3C,WAAW,IAAI,kBAAkB;IAcjC,WAAW,IAAI,iBAAiB;CAOjC"}
@@ -1,4 +1,4 @@
1
- import { __assign } from "tslib";
1
+ import { __assign, __awaiter, __generator } from "tslib";
2
2
  import { UTMCookie } from '../storage/utm-cookie';
3
3
  import { getQueryParams } from '../utils/query-params';
4
4
  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';
@@ -7,23 +7,50 @@ var CampaignParser = /** @class */ (function () {
7
7
  this.utmCookieStorage = new UTMCookie();
8
8
  }
9
9
  CampaignParser.prototype.parse = function () {
10
- return __assign(__assign(__assign(__assign({}, BASE_CAMPAIGN), this.getUtmParam()), this.getReferrer()), this.getClickIds());
10
+ return __awaiter(this, void 0, void 0, function () {
11
+ var _a;
12
+ return __generator(this, function (_b) {
13
+ switch (_b.label) {
14
+ case 0:
15
+ _a = [__assign({}, BASE_CAMPAIGN)];
16
+ return [4 /*yield*/, this.getUtmParam()];
17
+ case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_b.sent())])), this.getReferrer()]), this.getClickIds()])];
18
+ }
19
+ });
20
+ });
11
21
  };
12
22
  CampaignParser.prototype.getUtmParam = function () {
13
- var params = getQueryParams();
14
- var cookies = (this.utmCookieStorage.isEnabled() && this.utmCookieStorage.get('__utmz')) || {};
15
- var utmSource = params[UTM_SOURCE] || cookies[UTMZ_SOURCE];
16
- var utmMedium = params[UTM_MEDIUM] || cookies[UTMZ_MEDIUM];
17
- var utmCampaign = params[UTM_CAMPAIGN] || cookies[UTMZ_CAMPAIGN];
18
- var utmTerm = params[UTM_TERM] || cookies[UTMZ_TERM];
19
- var utmContent = params[UTM_CONTENT] || cookies[UTMZ_CONTENT];
20
- return {
21
- utm_source: utmSource,
22
- utm_medium: utmMedium,
23
- utm_campaign: utmCampaign,
24
- utm_term: utmTerm,
25
- utm_content: utmContent,
26
- };
23
+ return __awaiter(this, void 0, void 0, function () {
24
+ var params, cookies, _a, utmSource, utmMedium, utmCampaign, utmTerm, utmContent;
25
+ return __generator(this, function (_b) {
26
+ switch (_b.label) {
27
+ case 0:
28
+ params = getQueryParams();
29
+ return [4 /*yield*/, this.utmCookieStorage.isEnabled()];
30
+ case 1:
31
+ _a = (_b.sent());
32
+ if (!_a) return [3 /*break*/, 3];
33
+ return [4 /*yield*/, this.utmCookieStorage.get('__utmz')];
34
+ case 2:
35
+ _a = (_b.sent());
36
+ _b.label = 3;
37
+ case 3:
38
+ cookies = (_a) || {};
39
+ utmSource = params[UTM_SOURCE] || cookies[UTMZ_SOURCE];
40
+ utmMedium = params[UTM_MEDIUM] || cookies[UTMZ_MEDIUM];
41
+ utmCampaign = params[UTM_CAMPAIGN] || cookies[UTMZ_CAMPAIGN];
42
+ utmTerm = params[UTM_TERM] || cookies[UTMZ_TERM];
43
+ utmContent = params[UTM_CONTENT] || cookies[UTMZ_CONTENT];
44
+ return [2 /*return*/, {
45
+ utm_source: utmSource,
46
+ utm_medium: utmMedium,
47
+ utm_campaign: utmCampaign,
48
+ utm_term: utmTerm,
49
+ utm_content: utmContent,
50
+ }];
51
+ }
52
+ });
53
+ });
27
54
  };
28
55
  CampaignParser.prototype.getReferrer = function () {
29
56
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-parser.js","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,EACT,YAAY,EACZ,KAAK,EACL,MAAM,EACN,aAAa,GACd,MAAM,aAAa,CAAC;AASrB;IAAA;QACE,qBAAgB,GAAG,IAAI,SAAS,EAAE,CAAC;IAmDrC,CAAC;IAjDC,8BAAK,GAAL;QACE,+CACK,aAAa,GACb,IAAI,CAAC,WAAW,EAAE,GAClB,IAAI,CAAC,WAAW,EAAE,GAClB,IAAI,CAAC,WAAW,EAAE,EACrB;IACJ,CAAC;IAED,oCAAW,GAAX;QACE,IAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,IAAM,OAAO,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAEjG,IAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;QACnE,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;QACvD,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;QAEhE,OAAO;YACL,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,WAAW;YACzB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,UAAU;SACxB,CAAC;IACJ,CAAC;IAED,oCAAW,GAAX;;QACE,IAAM,IAAI,GAAuB;YAC/B,QAAQ,EAAE,SAAS;YACnB,gBAAgB,EAAE,SAAS;SAC5B,CAAC;QACF,IAAI;YACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC;YAC/C,IAAI,CAAC,gBAAgB,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mCAAI,SAAS,CAAC;SACnE;QAAC,WAAM;YACN,mBAAmB;SACpB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAW,GAAX;;QACE,IAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC;YACE,GAAC,KAAK,IAAG,MAAM,CAAC,KAAK,CAAC;YACtB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;eACxB;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,AApDD,IAoDC","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 parse(): Campaign {\n return {\n ...BASE_CAMPAIGN,\n ...this.getUtmParam(),\n ...this.getReferrer(),\n ...this.getClickIds(),\n };\n }\n\n getUtmParam(): UTMParameters {\n const params = getQueryParams();\n const cookies = (this.utmCookieStorage.isEnabled() && 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"]}
1
+ {"version":3,"file":"campaign-parser.js","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,EACT,YAAY,EACZ,KAAK,EACL,MAAM,EACN,aAAa,GACd,MAAM,aAAa,CAAC;AASrB;IAAA;QACE,qBAAgB,GAAG,IAAI,SAAS,EAAE,CAAC;IAmDrC,CAAC;IAjDO,8BAAK,GAAX;;;;;;2CAEO,aAAa;wBACZ,qBAAM,IAAI,CAAC,WAAW,EAAE,EAAA;4BAF9B,sBAAO,kFAEF,CAAC,SAAwB,CAAC,KAC1B,IAAI,CAAC,WAAW,EAAE,IAClB,IAAI,CAAC,WAAW,EAAE,EACV,EAAC;;;;KACf;IAEK,oCAAW,GAAjB;;;;;;wBACQ,MAAM,GAAG,cAAc,EAAE,CAAC;wBACd,qBAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAA;;wBAAxC,KAAA,CAAC,SAAuC,CAAC,CAAA;iCAAzC,wBAAyC;wBAAK,qBAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAA;;wBAA1C,KAAA,CAAC,SAAyC,CAAC,CAAA;;;wBAAnG,OAAO,GAAG,IAA0F,IAAI,EAAE;wBAE1G,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;wBACvD,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;wBACvD,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;wBAC7D,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;wBACjD,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;wBAEhE,sBAAO;gCACL,UAAU,EAAE,SAAS;gCACrB,UAAU,EAAE,SAAS;gCACrB,YAAY,EAAE,WAAW;gCACzB,QAAQ,EAAE,OAAO;gCACjB,WAAW,EAAE,UAAU;6BACxB,EAAC;;;;KACH;IAED,oCAAW,GAAX;;QACE,IAAM,IAAI,GAAuB;YAC/B,QAAQ,EAAE,SAAS;YACnB,gBAAgB,EAAE,SAAS;SAC5B,CAAC;QACF,IAAI;YACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC;YAC/C,IAAI,CAAC,gBAAgB,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mCAAI,SAAS,CAAC;SACnE;QAAC,WAAM;YACN,mBAAmB;SACpB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAW,GAAX;;QACE,IAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC;YACE,GAAC,KAAK,IAAG,MAAM,CAAC,KAAK,CAAC;YACtB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;eACxB;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,AApDD,IAoDC","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"]}
@@ -12,8 +12,8 @@ export declare class CampaignTracker implements ICampaignTracker {
12
12
  initialEmptyValue: string;
13
13
  constructor(apiKey: string, options: CampaignTrackerOptions);
14
14
  isNewCampaign(currentCampaign: Campaign, previousCampaign: Campaign): boolean;
15
- saveCampaignToStorage(campaign: Campaign): void;
16
- getCampaignFromStorage(): Campaign;
15
+ saveCampaignToStorage(campaign: Campaign): Promise<void>;
16
+ getCampaignFromStorage(): Promise<Campaign>;
17
17
  createCampaignEvent(campaign: Campaign): {
18
18
  event_type: string;
19
19
  event_properties?: {
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-tracker.d.ts","sourceRoot":"","sources":["../../../src/attribution/campaign-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,cAAc,IAAI,eAAe,EACjC,eAAe,IAAI,gBAAgB,EACnC,qBAAqB,EACrB,sBAAsB,EAEvB,MAAM,4BAA4B,CAAC;AAKpC,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;IAE/C,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;gBAEd,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IAiB3D,aAAa,CAAC,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ;IAenE,qBAAqB,CAAC,QAAQ,EAAE,QAAQ;IAIxC,sBAAsB,IAAI,QAAQ;IAIlC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6BhC,IAAI,CAAC,YAAY,EAAE,OAAO;CAejC"}
1
+ {"version":3,"file":"campaign-tracker.d.ts","sourceRoot":"","sources":["../../../src/attribution/campaign-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,cAAc,IAAI,eAAe,EACjC,eAAe,IAAI,gBAAgB,EACnC,qBAAqB,EACrB,sBAAsB,EAEvB,MAAM,4BAA4B,CAAC;AAKpC,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;IAE/C,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;gBAEd,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IAiB3D,aAAa,CAAC,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ;IAe7D,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,sBAAsB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIjD,mBAAmB,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6BhC,IAAI,CAAC,YAAY,EAAE,OAAO;CAejC"}
@@ -13,7 +13,7 @@ var CampaignTracker = /** @class */ (function () {
13
13
  this.onNewCampaign = options.onNewCampaign;
14
14
  this.disabled = Boolean(options.disabled);
15
15
  this.trackNewCampaigns = Boolean(options.trackNewCampaigns);
16
- this.trackPageViews = options.trackPageViews === undefined || Boolean(options.trackPageViews);
16
+ this.trackPageViews = Boolean(options.trackPageViews);
17
17
  this.excludeReferrers = (_a = options.excludeReferrers) !== null && _a !== void 0 ? _a : [];
18
18
  if (typeof location !== 'undefined') {
19
19
  this.excludeReferrers.unshift(location.hostname);
@@ -31,10 +31,26 @@ var CampaignTracker = /** @class */ (function () {
31
31
  return !isReferrerExcluded && (hasNewUtm || hasNewReferrer);
32
32
  };
33
33
  CampaignTracker.prototype.saveCampaignToStorage = function (campaign) {
34
- this.storage.set(this.storageKey, campaign);
34
+ return __awaiter(this, void 0, void 0, function () {
35
+ return __generator(this, function (_a) {
36
+ switch (_a.label) {
37
+ case 0: return [4 /*yield*/, this.storage.set(this.storageKey, campaign)];
38
+ case 1:
39
+ _a.sent();
40
+ return [2 /*return*/];
41
+ }
42
+ });
43
+ });
35
44
  };
36
45
  CampaignTracker.prototype.getCampaignFromStorage = function () {
37
- return this.storage.get(this.storageKey) || __assign({}, BASE_CAMPAIGN);
46
+ return __awaiter(this, void 0, void 0, function () {
47
+ return __generator(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0: return [4 /*yield*/, this.storage.get(this.storageKey)];
50
+ case 1: return [2 /*return*/, (_a.sent()) || __assign({}, BASE_CAMPAIGN)];
51
+ }
52
+ });
53
+ });
38
54
  };
39
55
  CampaignTracker.prototype.createCampaignEvent = function (campaign) {
40
56
  var _this = this;
@@ -66,8 +82,12 @@ var CampaignTracker = /** @class */ (function () {
66
82
  if (this.disabled) {
67
83
  return [2 /*return*/];
68
84
  }
69
- currentCampaign = this.parser.parse();
70
- previousCampaign = this.getCampaignFromStorage();
85
+ return [4 /*yield*/, this.parser.parse()];
86
+ case 1:
87
+ currentCampaign = _a.sent();
88
+ return [4 /*yield*/, this.getCampaignFromStorage()];
89
+ case 2:
90
+ previousCampaign = _a.sent();
71
91
  if (!isNewSession) {
72
92
  if (!this.trackNewCampaigns || !this.isNewCampaign(currentCampaign, previousCampaign)) {
73
93
  return [2 /*return*/];
@@ -75,9 +95,11 @@ var CampaignTracker = /** @class */ (function () {
75
95
  this.onNewCampaign(currentCampaign);
76
96
  }
77
97
  return [4 /*yield*/, this.track(this.createCampaignEvent(currentCampaign))];
78
- case 1:
98
+ case 3:
99
+ _a.sent();
100
+ return [4 /*yield*/, this.saveCampaignToStorage(currentCampaign)];
101
+ case 4:
79
102
  _a.sent();
80
- this.saveCampaignToStorage(currentCampaign);
81
103
  return [2 /*return*/];
82
104
  }
83
105
  });
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-tracker.js","sourceRoot":"","sources":["../../../src/attribution/campaign-tracker.ts"],"names":[],"mappings":"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","sourcesContent":["import { createIdentifyEvent, Identify } from '@amplitude/analytics-core';\nimport {\n Storage,\n Campaign,\n CampaignParser as ICampaignParser,\n CampaignTracker as ICampaignTracker,\n CampaignTrackFunction,\n CampaignTrackerOptions,\n BaseEvent,\n} from '@amplitude/analytics-types';\nimport { getCookieName as getStorageKey } from '../utils/cookie-name';\nimport { CampaignParser } from './campaign-parser';\nimport { BASE_CAMPAIGN, EMPTY_VALUE, MKTG } from './constants';\n\nexport class CampaignTracker implements ICampaignTracker {\n storage: Storage<Campaign>;\n storageKey: string;\n parser: ICampaignParser;\n track: CampaignTrackFunction;\n onNewCampaign: (campaign: Campaign) => unknown;\n\n disabled: boolean;\n trackNewCampaigns: boolean;\n trackPageViews: boolean;\n excludeReferrers: string[];\n initialEmptyValue: string;\n\n constructor(apiKey: string, options: CampaignTrackerOptions) {\n this.storage = options.storage;\n this.storageKey = getStorageKey(apiKey, MKTG);\n this.parser = new CampaignParser();\n this.track = options.track;\n this.onNewCampaign = options.onNewCampaign;\n\n this.disabled = Boolean(options.disabled);\n this.trackNewCampaigns = Boolean(options.trackNewCampaigns);\n this.trackPageViews = options.trackPageViews === undefined || Boolean(options.trackPageViews);\n this.excludeReferrers = options.excludeReferrers ?? [];\n if (typeof location !== 'undefined') {\n this.excludeReferrers.unshift(location.hostname);\n }\n this.initialEmptyValue = options.initialEmptyValue ?? EMPTY_VALUE;\n }\n\n isNewCampaign(currentCampaign: Campaign, previousCampaign: Campaign) {\n const isReferrerExcluded = Boolean(\n currentCampaign.referring_domain && this.excludeReferrers.includes(currentCampaign.referring_domain),\n );\n const hasNewUtm =\n previousCampaign.utm_campaign !== currentCampaign.utm_campaign ||\n previousCampaign.utm_source !== currentCampaign.utm_source ||\n previousCampaign.utm_medium !== currentCampaign.utm_medium ||\n previousCampaign.utm_term !== currentCampaign.utm_term ||\n previousCampaign.utm_content !== currentCampaign.utm_content;\n const hasNewReferrer = previousCampaign.referring_domain !== currentCampaign.referring_domain;\n\n return !isReferrerExcluded && (hasNewUtm || hasNewReferrer);\n }\n\n saveCampaignToStorage(campaign: Campaign) {\n this.storage.set(this.storageKey, campaign);\n }\n\n getCampaignFromStorage(): Campaign {\n return this.storage.get(this.storageKey) || { ...BASE_CAMPAIGN };\n }\n\n createCampaignEvent(campaign: Campaign) {\n const campaignParameters: Campaign = {\n // This object definition allows undefined keys to be iterated on\n // in .reduce() to build indentify object\n ...BASE_CAMPAIGN,\n ...campaign,\n };\n const identifyEvent = Object.entries(campaignParameters).reduce((identify, [key, value]) => {\n identify.setOnce(`initial_${key}`, value || this.initialEmptyValue);\n if (value) {\n return identify.set(key, value);\n }\n return identify.unset(key);\n }, new Identify());\n\n const pageViewEvent: BaseEvent = {\n event_type: 'Page View',\n event_properties: {\n page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n },\n };\n return {\n ...createIdentifyEvent(identifyEvent),\n ...(this.trackPageViews && pageViewEvent),\n };\n }\n\n async send(isNewSession: boolean) {\n if (this.disabled) {\n return;\n }\n const currentCampaign = this.parser.parse();\n const previousCampaign = this.getCampaignFromStorage();\n if (!isNewSession) {\n if (!this.trackNewCampaigns || !this.isNewCampaign(currentCampaign, previousCampaign)) {\n return;\n }\n this.onNewCampaign(currentCampaign);\n }\n await this.track(this.createCampaignEvent(currentCampaign));\n this.saveCampaignToStorage(currentCampaign);\n }\n}\n"]}
1
+ {"version":3,"file":"campaign-tracker.js","sourceRoot":"","sources":["../../../src/attribution/campaign-tracker.ts"],"names":[],"mappings":"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","sourcesContent":["import { createIdentifyEvent, Identify } from '@amplitude/analytics-core';\nimport {\n Storage,\n Campaign,\n CampaignParser as ICampaignParser,\n CampaignTracker as ICampaignTracker,\n CampaignTrackFunction,\n CampaignTrackerOptions,\n BaseEvent,\n} from '@amplitude/analytics-types';\nimport { getCookieName as getStorageKey } from '../utils/cookie-name';\nimport { CampaignParser } from './campaign-parser';\nimport { BASE_CAMPAIGN, EMPTY_VALUE, MKTG } from './constants';\n\nexport class CampaignTracker implements ICampaignTracker {\n storage: Storage<Campaign>;\n storageKey: string;\n parser: ICampaignParser;\n track: CampaignTrackFunction;\n onNewCampaign: (campaign: Campaign) => unknown;\n\n disabled: boolean;\n trackNewCampaigns: boolean;\n trackPageViews: boolean;\n excludeReferrers: string[];\n initialEmptyValue: string;\n\n constructor(apiKey: string, options: CampaignTrackerOptions) {\n this.storage = options.storage;\n this.storageKey = getStorageKey(apiKey, MKTG);\n this.parser = new CampaignParser();\n this.track = options.track;\n this.onNewCampaign = options.onNewCampaign;\n\n this.disabled = Boolean(options.disabled);\n this.trackNewCampaigns = Boolean(options.trackNewCampaigns);\n this.trackPageViews = Boolean(options.trackPageViews);\n this.excludeReferrers = options.excludeReferrers ?? [];\n if (typeof location !== 'undefined') {\n this.excludeReferrers.unshift(location.hostname);\n }\n this.initialEmptyValue = options.initialEmptyValue ?? EMPTY_VALUE;\n }\n\n isNewCampaign(currentCampaign: Campaign, previousCampaign: Campaign) {\n const isReferrerExcluded = Boolean(\n currentCampaign.referring_domain && this.excludeReferrers.includes(currentCampaign.referring_domain),\n );\n const hasNewUtm =\n previousCampaign.utm_campaign !== currentCampaign.utm_campaign ||\n previousCampaign.utm_source !== currentCampaign.utm_source ||\n previousCampaign.utm_medium !== currentCampaign.utm_medium ||\n previousCampaign.utm_term !== currentCampaign.utm_term ||\n previousCampaign.utm_content !== currentCampaign.utm_content;\n const hasNewReferrer = previousCampaign.referring_domain !== currentCampaign.referring_domain;\n\n return !isReferrerExcluded && (hasNewUtm || hasNewReferrer);\n }\n\n async saveCampaignToStorage(campaign: Campaign): Promise<void> {\n await this.storage.set(this.storageKey, campaign);\n }\n\n async getCampaignFromStorage(): Promise<Campaign> {\n return (await this.storage.get(this.storageKey)) || { ...BASE_CAMPAIGN };\n }\n\n createCampaignEvent(campaign: Campaign) {\n const campaignParameters: Campaign = {\n // This object definition allows undefined keys to be iterated on\n // in .reduce() to build indentify object\n ...BASE_CAMPAIGN,\n ...campaign,\n };\n const identifyEvent = Object.entries(campaignParameters).reduce((identify, [key, value]) => {\n identify.setOnce(`initial_${key}`, value || this.initialEmptyValue);\n if (value) {\n return identify.set(key, value);\n }\n return identify.unset(key);\n }, new Identify());\n\n const pageViewEvent: BaseEvent = {\n event_type: 'Page View',\n event_properties: {\n page_title: /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n page_location: /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n page_path: /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n },\n };\n return {\n ...createIdentifyEvent(identifyEvent),\n ...(this.trackPageViews && pageViewEvent),\n };\n }\n\n async send(isNewSession: boolean) {\n if (this.disabled) {\n return;\n }\n const currentCampaign = await this.parser.parse();\n const previousCampaign = await this.getCampaignFromStorage();\n if (!isNewSession) {\n if (!this.trackNewCampaigns || !this.isNewCampaign(currentCampaign, previousCampaign)) {\n return;\n }\n this.onNewCampaign(currentCampaign);\n }\n await this.track(this.createCampaignEvent(currentCampaign));\n await this.saveCampaignToStorage(currentCampaign);\n }\n}\n"]}
@@ -24,7 +24,7 @@ export declare class AmplitudeBrowser extends AmplitudeCore<BrowserConfig> {
24
24
  * await init(API_KEY, USER_ID, options).promise;
25
25
  * ```
26
26
  */
27
- export declare const init: (apiKey: string, userId?: string | undefined, options?: (BrowserOptions & AdditionalBrowserOptions) | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<void>;
27
+ export declare const init: (apiKey: string, userId?: string | undefined, options?: (BrowserOptions & AdditionalBrowserOptions) | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Promise<void>>;
28
28
  /**
29
29
  * Adds a new plugin.
30
30
  *
@@ -33,7 +33,7 @@ export declare const init: (apiKey: string, userId?: string | undefined, options
33
33
  * amplitude.add(plugin);
34
34
  * ```
35
35
  */
36
- export declare const add: (plugin: import("@amplitude/analytics-types").Plugin) => import("@amplitude/analytics-types").AmplitudeReturn<void>;
36
+ export declare const add: (plugin: import("@amplitude/analytics-types").Plugin) => import("@amplitude/analytics-types").AmplitudeReturn<Promise<void>>;
37
37
  /**
38
38
  * Removes a plugin.
39
39
  *
@@ -41,7 +41,7 @@ export declare const add: (plugin: import("@amplitude/analytics-types").Plugin)
41
41
  * amplitude.remove('myPlugin');
42
42
  * ```
43
43
  */
44
- export declare const remove: (pluginName: string) => import("@amplitude/analytics-types").AmplitudeReturn<void>;
44
+ export declare const remove: (pluginName: string) => import("@amplitude/analytics-types").AmplitudeReturn<Promise<void>>;
45
45
  /**
46
46
  * Tracks user-defined event, with specified type, optional event properties and optional overwrites.
47
47
  *
@@ -62,11 +62,11 @@ export declare const remove: (pluginName: string) => import("@amplitude/analytic
62
62
  * console.log(result.message); // "Event tracked successfully"
63
63
  * ```
64
64
  */
65
- export declare const track: (eventInput: string | import("@amplitude/analytics-types").BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptions | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Result>;
65
+ export declare const track: (eventInput: string | import("@amplitude/analytics-types").BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptions | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Promise<Result>>;
66
66
  /**
67
67
  * Alias for track()
68
68
  */
69
- export declare const logEvent: (eventInput: string | import("@amplitude/analytics-types").BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptions | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Result>;
69
+ export declare const logEvent: (eventInput: string | import("@amplitude/analytics-types").BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptions | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Promise<Result>>;
70
70
  /**
71
71
  * Sends an identify event containing user property operations
72
72
  *
@@ -82,7 +82,7 @@ export declare const logEvent: (eventInput: string | import("@amplitude/analytic
82
82
  * console.log(result.message); // "Event tracked successfully"
83
83
  * ```
84
84
  */
85
- export declare const identify: (identify: IIdentify, eventOptions?: EventOptions | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Result>;
85
+ export declare const identify: (identify: IIdentify, eventOptions?: EventOptions | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Promise<Result>>;
86
86
  /**
87
87
  * Sends a group identify event containing group property operations.
88
88
  *
@@ -100,8 +100,8 @@ export declare const identify: (identify: IIdentify, eventOptions?: EventOptions
100
100
  * console.log(result.message); // "Event tracked successfully"
101
101
  * ```
102
102
  */
103
- export declare const groupIdentify: (groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Result>;
104
- export declare const setGroup: (groupType: string, groupName: string | string[]) => import("@amplitude/analytics-types").AmplitudeReturn<Result>;
103
+ export declare const groupIdentify: (groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Promise<Result>>;
104
+ export declare const setGroup: (groupType: string, groupName: string | string[]) => import("@amplitude/analytics-types").AmplitudeReturn<Promise<Result>>;
105
105
  /**
106
106
  * Sends a revenue event containing revenue property operations.
107
107
  *
@@ -117,7 +117,7 @@ export declare const setGroup: (groupType: string, groupName: string | string[])
117
117
  * console.log(result.message); // "Event tracked successfully"
118
118
  * ```
119
119
  */
120
- export declare const revenue: (revenue: IRevenue, eventOptions?: EventOptions | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Result>;
120
+ export declare const revenue: (revenue: IRevenue, eventOptions?: EventOptions | undefined) => import("@amplitude/analytics-types").AmplitudeReturn<Promise<Result>>;
121
121
  /**
122
122
  * Returns current user ID.
123
123
  *
@@ -206,4 +206,16 @@ export declare const setOptOut: (optOut: boolean) => void;
206
206
  * ```
207
207
  */
208
208
  export declare const setTransport: (transport: TransportType) => void;
209
+ /**
210
+ * Flush and send all the events which haven't been sent.
211
+ *
212
+ *```typescript
213
+ * // Send all the unsent events
214
+ * flush();
215
+ *
216
+ * // alternatively, this tracking method is awaitable
217
+ * await flush().promise;
218
+ * ```
219
+ */
220
+ export declare const flush: () => import("@amplitude/analytics-types").AmplitudeReturn<Promise<void>>;
209
221
  //# sourceMappingURL=browser-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiD,MAAM,2BAA2B,CAAC;AACzG,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,aAAa,EACb,cAAc,EAEd,YAAY,EACZ,QAAQ,IAAI,SAAS,EACrB,MAAM,EACN,OAAO,IAAI,QAAQ,EACnB,aAAa,EACd,MAAM,4BAA4B,CAAC;AAOpC,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,aAAa,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,wBAAwB;IAoCzF,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,yBAAyB,EAAE,YAAY,UAAQ;IAehG,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAIpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAI5B,kBAAkB;IAKlB,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;IAI9B,SAAS,CAAC,MAAM,EAAE,OAAO;IAIzB,YAAY,CAAC,SAAS,EAAE,aAAa;IAIrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAS3E,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,QAAQ,EAAE,SAAS,EACnB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,CAAC;IASlB,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;CAQvD;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,gLAA0C,CAAC;AAE5D;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG,qHAAyC,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,oFAA4C,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,KAAK,mOAA2C,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,QAAQ,mOAA8C,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,gIAA8C,CAAC;AAEpE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,iLAAmD,CAAC;AAC9E,eAAO,MAAM,QAAQ,mHAA8C,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO,8HAA6C,CAAC;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,0BAAgC,CAAC;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,WAlMF,MAAM,GAAG,SAAS,SAkMgB,CAAC;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,0BAAkC,CAAC;AAE3D;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,aA9MA,MAAM,SA8M4B,CAAC;AAE3D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,YAAyC,CAAC;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,0BAAmC,CAAC;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,cA/NC,MAAM,SA+N4B,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,WAxOF,OAAO,SAwO2B,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,cApPC,aAAa,SAoPqB,CAAC"}
1
+ {"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiD,MAAM,2BAA2B,CAAC;AACzG,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,aAAa,EACb,cAAc,EAEd,YAAY,EACZ,QAAQ,IAAI,SAAS,EACrB,MAAM,EACN,OAAO,IAAI,QAAQ,EACnB,aAAa,EACd,MAAM,4BAA4B,CAAC;AAOpC,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,aAAa,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,wBAAwB;IAoCzF,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,yBAAyB,EAAE,YAAY,UAAQ;IAehG,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAIpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAI5B,kBAAkB;IAKlB,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;IAI9B,SAAS,CAAC,MAAM,EAAE,OAAO;IAIzB,YAAY,CAAC,SAAS,EAAE,aAAa;IAIrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAS3E,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,QAAQ,EAAE,SAAS,EACnB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,CAAC;IASlB,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;CAQvD;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,yLAA0C,CAAC;AAE5D;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG,8HAAyC,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,6FAA4C,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,KAAK,4OAA2C,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,QAAQ,4OAA8C,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,yIAA8C,CAAC;AAEpE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,0LAAmD,CAAC;AAC9E,eAAO,MAAM,QAAQ,4HAA8C,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO,uIAA6C,CAAC;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,0BAAgC,CAAC;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,WAlMF,MAAM,GAAG,SAAS,SAkMgB,CAAC;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,0BAAkC,CAAC;AAE3D;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,aA9MA,MAAM,SA8M4B,CAAC;AAE3D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,YAAyC,CAAC;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,0BAAmC,CAAC;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,cA/NC,MAAM,SA+N4B,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,WAxOF,OAAO,SAwO2B,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,cApPC,aAAa,SAoPqB,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,KAAK,2EAA2C,CAAC"}
@@ -16,11 +16,14 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
16
16
  var oldCookies, browserOptions, isNewSession;
17
17
  return __generator(this, function (_d) {
18
18
  switch (_d.label) {
19
- case 0:
20
- oldCookies = parseOldCookies(apiKey, options);
21
- browserOptions = useBrowserConfig(apiKey, userId || oldCookies.userId, __assign(__assign({}, options), { deviceId: (_a = oldCookies.deviceId) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.deviceId, sessionId: (_b = oldCookies.sessionId) !== null && _b !== void 0 ? _b : options === null || options === void 0 ? void 0 : options.sessionId, optOut: (_c = options === null || options === void 0 ? void 0 : options.optOut) !== null && _c !== void 0 ? _c : oldCookies.optOut, lastEventTime: oldCookies.lastEventTime }));
22
- return [4 /*yield*/, _super.prototype.init.call(this, undefined, undefined, browserOptions)];
19
+ case 0: return [4 /*yield*/, parseOldCookies(apiKey, options)];
23
20
  case 1:
21
+ oldCookies = _d.sent();
22
+ return [4 /*yield*/, useBrowserConfig(apiKey, userId || oldCookies.userId, __assign(__assign({}, options), { deviceId: (_a = oldCookies.deviceId) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.deviceId, sessionId: (_b = oldCookies.sessionId) !== null && _b !== void 0 ? _b : options === null || options === void 0 ? void 0 : options.sessionId, optOut: (_c = options === null || options === void 0 ? void 0 : options.optOut) !== null && _c !== void 0 ? _c : oldCookies.optOut, lastEventTime: oldCookies.lastEventTime }))];
23
+ case 2:
24
+ browserOptions = _d.sent();
25
+ return [4 /*yield*/, _super.prototype.init.call(this, undefined, undefined, browserOptions)];
26
+ case 3:
24
27
  _d.sent();
25
28
  isNewSession = false;
26
29
  if (!this.config.sessionId ||
@@ -34,16 +37,16 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
34
37
  // Step 4: Install plugins
35
38
  // Do not track any events before this
36
39
  return [4 /*yield*/, this.add(new Context())];
37
- case 2:
40
+ case 4:
38
41
  // Step 4: Install plugins
39
42
  // Do not track any events before this
40
43
  _d.sent();
41
44
  return [4 /*yield*/, this.add(new Destination())];
42
- case 3:
45
+ case 5:
43
46
  _d.sent();
44
47
  // Step 5: Track attributions
45
48
  return [4 /*yield*/, this.runAttributionStrategy(options === null || options === void 0 ? void 0 : options.attribution, isNewSession)];
46
- case 4:
49
+ case 6:
47
50
  // Step 5: Track attributions
48
51
  _d.sent();
49
52
  return [2 /*return*/];
@@ -60,10 +63,12 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
60
63
  case 0:
61
64
  track = this.track.bind(this);
62
65
  onNewCampaign = this.setSessionId.bind(this, Date.now());
63
- storage = createFlexibleStorage(this.config);
66
+ return [4 /*yield*/, createFlexibleStorage(this.config)];
67
+ case 1:
68
+ storage = _a.sent();
64
69
  campaignTracker = new CampaignTracker(this.config.apiKey, __assign(__assign({}, attributionConfig), { storage: storage, track: track, onNewCampaign: onNewCampaign }));
65
70
  return [4 /*yield*/, campaignTracker.send(isNewSession)];
66
- case 1:
71
+ case 2:
67
72
  _a.sent();
68
73
  return [2 /*return*/];
69
74
  }
@@ -316,4 +321,16 @@ export var setOptOut = client.setOptOut.bind(client);
316
321
  * ```
317
322
  */
318
323
  export var setTransport = client.setTransport.bind(client);
324
+ /**
325
+ * Flush and send all the events which haven't been sent.
326
+ *
327
+ *```typescript
328
+ * // Send all the unsent events
329
+ * flush();
330
+ *
331
+ * // alternatively, this tracking method is awaitable
332
+ * await flush().promise;
333
+ * ```
334
+ */
335
+ export var flush = returnWrapper(client.flush.bind(client));
319
336
  //# sourceMappingURL=browser-client.js.map