@amplitude/analytics-client-common 0.1.0 → 0.2.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 (41) hide show
  1. package/lib/cjs/attribution/campaign-parser.d.ts +1 -3
  2. package/lib/cjs/attribution/campaign-parser.d.ts.map +1 -1
  3. package/lib/cjs/attribution/campaign-parser.js +15 -41
  4. package/lib/cjs/attribution/campaign-parser.js.map +1 -1
  5. package/lib/cjs/attribution/campaign-tracker.d.ts +2 -2
  6. package/lib/cjs/attribution/campaign-tracker.d.ts.map +1 -1
  7. package/lib/cjs/attribution/campaign-tracker.js +5 -8
  8. package/lib/cjs/attribution/campaign-tracker.js.map +1 -1
  9. package/lib/cjs/attribution/constants.d.ts +0 -5
  10. package/lib/cjs/attribution/constants.d.ts.map +1 -1
  11. package/lib/cjs/attribution/constants.js +6 -6
  12. package/lib/cjs/attribution/constants.js.map +1 -1
  13. package/lib/cjs/index.d.ts +1 -1
  14. package/lib/cjs/index.d.ts.map +1 -1
  15. package/lib/cjs/index.js +3 -3
  16. package/lib/cjs/index.js.map +1 -1
  17. package/lib/esm/attribution/campaign-parser.d.ts +1 -3
  18. package/lib/esm/attribution/campaign-parser.d.ts.map +1 -1
  19. package/lib/esm/attribution/campaign-parser.js +16 -42
  20. package/lib/esm/attribution/campaign-parser.js.map +1 -1
  21. package/lib/esm/attribution/campaign-tracker.d.ts +2 -2
  22. package/lib/esm/attribution/campaign-tracker.d.ts.map +1 -1
  23. package/lib/esm/attribution/campaign-tracker.js +6 -9
  24. package/lib/esm/attribution/campaign-tracker.js.map +1 -1
  25. package/lib/esm/attribution/constants.d.ts +0 -5
  26. package/lib/esm/attribution/constants.d.ts.map +1 -1
  27. package/lib/esm/attribution/constants.js +5 -5
  28. package/lib/esm/attribution/constants.js.map +1 -1
  29. package/lib/esm/index.d.ts +1 -1
  30. package/lib/esm/index.d.ts.map +1 -1
  31. package/lib/esm/index.js +1 -1
  32. package/lib/esm/index.js.map +1 -1
  33. package/package.json +4 -4
  34. package/lib/cjs/storage/utm-cookie.d.ts +0 -6
  35. package/lib/cjs/storage/utm-cookie.d.ts.map +0 -1
  36. package/lib/cjs/storage/utm-cookie.js +0 -50
  37. package/lib/cjs/storage/utm-cookie.js.map +0 -1
  38. package/lib/esm/storage/utm-cookie.d.ts +0 -6
  39. package/lib/esm/storage/utm-cookie.d.ts.map +0 -1
  40. package/lib/esm/storage/utm-cookie.js +0 -48
  41. package/lib/esm/storage/utm-cookie.js.map +0 -1
@@ -1,9 +1,7 @@
1
- import { UTMCookie } from '../storage/utm-cookie';
2
1
  import { Campaign, CampaignParser as ICampaignParser, ClickIdParameters, ReferrerParameters, UTMParameters } from '@amplitude/analytics-types';
3
2
  export declare class CampaignParser implements ICampaignParser {
4
- utmCookieStorage: UTMCookie;
5
3
  parse(): Promise<Campaign>;
6
- getUtmParam(): Promise<UTMParameters>;
4
+ getUtmParam(): UTMParameters;
7
5
  getReferrer(): ReferrerParameters;
8
6
  getClickIds(): ClickIdParameters;
9
7
  }
@@ -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;AAsBlD,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;CAYjC"}
1
+ {"version":3,"file":"campaign-parser.d.ts","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,QAAQ,EACR,cAAc,IAAI,eAAe,EACjC,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,qBAAa,cAAe,YAAW,eAAe;IAC9C,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;IAShC,WAAW,IAAI,aAAa;IAkB5B,WAAW,IAAI,kBAAkB;IAcjC,WAAW,IAAI,iBAAiB;CAYjC"}
@@ -1,58 +1,32 @@
1
1
  Object.defineProperty(exports, "__esModule", { value: true });
2
2
  exports.CampaignParser = void 0;
3
3
  var tslib_1 = require("tslib");
4
- var utm_cookie_1 = require("../storage/utm-cookie");
5
4
  var query_params_1 = require("../query-params");
6
5
  var constants_1 = require("./constants");
7
6
  var CampaignParser = /** @class */ (function () {
8
7
  function CampaignParser() {
9
- this.utmCookieStorage = new utm_cookie_1.UTMCookie();
10
8
  }
11
9
  CampaignParser.prototype.parse = function () {
12
10
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
13
- var _a;
14
- return (0, tslib_1.__generator)(this, function (_b) {
15
- switch (_b.label) {
16
- case 0:
17
- _a = [(0, tslib_1.__assign)({}, constants_1.BASE_CAMPAIGN)];
18
- return [4 /*yield*/, this.getUtmParam()];
19
- case 1: return [2 /*return*/, tslib_1.__assign.apply(void 0, [tslib_1.__assign.apply(void 0, [tslib_1.__assign.apply(void 0, _a.concat([(_b.sent())])), this.getReferrer()]), this.getClickIds()])];
20
- }
11
+ return (0, tslib_1.__generator)(this, function (_a) {
12
+ return [2 /*return*/, (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, constants_1.BASE_CAMPAIGN), this.getUtmParam()), this.getReferrer()), this.getClickIds())];
21
13
  });
22
14
  });
23
15
  };
24
16
  CampaignParser.prototype.getUtmParam = function () {
25
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
26
- var params, cookies, _a, utmSource, utmMedium, utmCampaign, utmTerm, utmContent;
27
- return (0, tslib_1.__generator)(this, function (_b) {
28
- switch (_b.label) {
29
- case 0:
30
- params = (0, query_params_1.getQueryParams)();
31
- return [4 /*yield*/, this.utmCookieStorage.isEnabled()];
32
- case 1:
33
- _a = (_b.sent());
34
- if (!_a) return [3 /*break*/, 3];
35
- return [4 /*yield*/, this.utmCookieStorage.get('__utmz')];
36
- case 2:
37
- _a = (_b.sent());
38
- _b.label = 3;
39
- case 3:
40
- cookies = (_a) || {};
41
- utmSource = params[constants_1.UTM_SOURCE] || cookies[constants_1.UTMZ_SOURCE];
42
- utmMedium = params[constants_1.UTM_MEDIUM] || cookies[constants_1.UTMZ_MEDIUM];
43
- utmCampaign = params[constants_1.UTM_CAMPAIGN] || cookies[constants_1.UTMZ_CAMPAIGN];
44
- utmTerm = params[constants_1.UTM_TERM] || cookies[constants_1.UTMZ_TERM];
45
- utmContent = params[constants_1.UTM_CONTENT] || cookies[constants_1.UTMZ_CONTENT];
46
- return [2 /*return*/, {
47
- utm_source: utmSource,
48
- utm_medium: utmMedium,
49
- utm_campaign: utmCampaign,
50
- utm_term: utmTerm,
51
- utm_content: utmContent,
52
- }];
53
- }
54
- });
55
- });
17
+ var params = (0, query_params_1.getQueryParams)();
18
+ var utmSource = params[constants_1.UTM_SOURCE];
19
+ var utmMedium = params[constants_1.UTM_MEDIUM];
20
+ var utmCampaign = params[constants_1.UTM_CAMPAIGN];
21
+ var utmTerm = params[constants_1.UTM_TERM];
22
+ var utmContent = params[constants_1.UTM_CONTENT];
23
+ return {
24
+ utm_source: utmSource,
25
+ utm_medium: utmMedium,
26
+ utm_campaign: utmCampaign,
27
+ utm_term: utmTerm,
28
+ utm_content: utmContent,
29
+ };
56
30
  };
57
31
  CampaignParser.prototype.getReferrer = function () {
58
32
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-parser.js","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":";;;AAAA,oDAAkD;AAClD,gDAAiD;AACjD,yCAmBqB;AASrB;IAAA;QACE,qBAAgB,GAAG,IAAI,sBAAS,EAAE,CAAC;IAwDrC,CAAC;IAtDO,8BAAK,GAAX;;;;;;wDAEO,yBAAa;wBACZ,qBAAM,IAAI,CAAC,WAAW,EAAE,EAAA;4BAF9B,sBAAO,0GAEF,CAAC,SAAwB,CAAC,KAC1B,IAAI,CAAC,WAAW,EAAE,IAClB,IAAI,CAAC,WAAW,EAAE,EACV,EAAC;;;;KACf;IAEK,oCAAW,GAAjB;;;;;;wBACQ,MAAM,GAAG,IAAA,6BAAc,GAAE,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,sBAAU,CAAC,IAAI,OAAO,CAAC,uBAAW,CAAC,CAAC;wBACvD,SAAS,GAAG,MAAM,CAAC,sBAAU,CAAC,IAAI,OAAO,CAAC,uBAAW,CAAC,CAAC;wBACvD,WAAW,GAAG,MAAM,CAAC,wBAAY,CAAC,IAAI,OAAO,CAAC,yBAAa,CAAC,CAAC;wBAC7D,OAAO,GAAG,MAAM,CAAC,oBAAQ,CAAC,IAAI,OAAO,CAAC,qBAAS,CAAC,CAAC;wBACjD,UAAU,GAAG,MAAM,CAAC,uBAAW,CAAC,IAAI,OAAO,CAAC,wBAAY,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,IAAA,6BAAc,GAAE,CAAC;QAChC;YACE,GAAC,iBAAK,IAAG,MAAM,CAAC,iBAAK,CAAC;YACtB,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;YACxB,GAAC,iBAAK,IAAG,MAAM,CAAC,iBAAK,CAAC;YACtB,GAAC,uBAAW,IAAG,MAAM,CAAC,uBAAW,CAAC;YAClC,GAAC,mBAAO,IAAG,MAAM,CAAC,mBAAO,CAAC;YAC1B,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;YACxB,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;eACxB;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,AAzDD,IAyDC;AAzDY,wCAAc","sourcesContent":["import { UTMCookie } from '../storage/utm-cookie';\nimport { getQueryParams } from '../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 DCLID,\n MSCLKID,\n TWCLID,\n TTCLID,\n KO_CLICK_ID,\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 [DCLID]: params[DCLID],\n [FBCLID]: params[FBCLID],\n [GCLID]: params[GCLID],\n [KO_CLICK_ID]: params[KO_CLICK_ID],\n [MSCLKID]: params[MSCLKID],\n [TTCLID]: params[TTCLID],\n [TWCLID]: params[TWCLID],\n };\n }\n}\n"]}
1
+ {"version":3,"file":"campaign-parser.js","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AACjD,yCAcqB;AASrB;IAAA;IAsDA,CAAC;IArDO,8BAAK,GAAX;;;gBACE,sBAAO,4FACF,yBAAa,GACb,IAAI,CAAC,WAAW,EAAE,GAClB,IAAI,CAAC,WAAW,EAAE,GAClB,IAAI,CAAC,WAAW,EAAE,CACV,EAAC;;;KACf;IAED,oCAAW,GAAX;QACE,IAAM,MAAM,GAAG,IAAA,6BAAc,GAAE,CAAC;QAEhC,IAAM,SAAS,GAAG,MAAM,CAAC,sBAAU,CAAC,CAAC;QACrC,IAAM,SAAS,GAAG,MAAM,CAAC,sBAAU,CAAC,CAAC;QACrC,IAAM,WAAW,GAAG,MAAM,CAAC,wBAAY,CAAC,CAAC;QACzC,IAAM,OAAO,GAAG,MAAM,CAAC,oBAAQ,CAAC,CAAC;QACjC,IAAM,UAAU,GAAG,MAAM,CAAC,uBAAW,CAAC,CAAC;QAEvC,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,IAAA,6BAAc,GAAE,CAAC;QAChC;YACE,GAAC,iBAAK,IAAG,MAAM,CAAC,iBAAK,CAAC;YACtB,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;YACxB,GAAC,iBAAK,IAAG,MAAM,CAAC,iBAAK,CAAC;YACtB,GAAC,uBAAW,IAAG,MAAM,CAAC,uBAAW,CAAC;YAClC,GAAC,mBAAO,IAAG,MAAM,CAAC,mBAAO,CAAC;YAC1B,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;YACxB,GAAC,kBAAM,IAAG,MAAM,CAAC,kBAAM,CAAC;eACxB;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,AAtDD,IAsDC;AAtDY,wCAAc","sourcesContent":["import { getQueryParams } from '../query-params';\nimport {\n UTM_CAMPAIGN,\n UTM_CONTENT,\n UTM_MEDIUM,\n UTM_SOURCE,\n UTM_TERM,\n GCLID,\n FBCLID,\n BASE_CAMPAIGN,\n DCLID,\n MSCLKID,\n TWCLID,\n TTCLID,\n KO_CLICK_ID,\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 async parse(): Promise<Campaign> {\n return {\n ...BASE_CAMPAIGN,\n ...this.getUtmParam(),\n ...this.getReferrer(),\n ...this.getClickIds(),\n } as Campaign;\n }\n\n getUtmParam(): UTMParameters {\n const params = getQueryParams();\n\n const utmSource = params[UTM_SOURCE];\n const utmMedium = params[UTM_MEDIUM];\n const utmCampaign = params[UTM_CAMPAIGN];\n const utmTerm = params[UTM_TERM];\n const utmContent = params[UTM_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 [DCLID]: params[DCLID],\n [FBCLID]: params[FBCLID],\n [GCLID]: params[GCLID],\n [KO_CLICK_ID]: params[KO_CLICK_ID],\n [MSCLKID]: params[MSCLKID],\n [TTCLID]: params[TTCLID],\n [TWCLID]: params[TWCLID],\n };\n }\n}\n"]}
@@ -11,7 +11,7 @@ export declare class CampaignTracker implements ICampaignTracker {
11
11
  excludeReferrers: string[];
12
12
  initialEmptyValue: string;
13
13
  constructor(apiKey: string, options: CampaignTrackerOptions);
14
- isNewCampaign(currentCampaign: Campaign, previousCampaign: Campaign): boolean;
14
+ isNewCampaign(current: Campaign, previous: Campaign): boolean;
15
15
  saveCampaignToStorage(campaign: Campaign): Promise<void>;
16
16
  getCampaignFromStorage(): Promise<Campaign>;
17
17
  createCampaignEvent(campaign: Campaign): {
@@ -64,7 +64,7 @@ export declare class CampaignTracker implements ICampaignTracker {
64
64
  session_id?: number | undefined;
65
65
  insert_id?: string | undefined;
66
66
  plan?: import("@amplitude/analytics-types").Plan | undefined;
67
- ingestion_metadata?: import("@amplitude/analytics-types/lib/ingestion-metadata").IngestionMetadataEventProperty | undefined;
67
+ ingestion_metadata?: import("@amplitude/analytics-types/lib/esm/ingestion-metadata").IngestionMetadataEventProperty | undefined;
68
68
  partner_id?: string | undefined;
69
69
  extra?: {
70
70
  [key: string]: any;
@@ -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;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"}
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,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAY7C,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"}
@@ -22,15 +22,12 @@ var CampaignTracker = /** @class */ (function () {
22
22
  }
23
23
  this.initialEmptyValue = (_b = options.initialEmptyValue) !== null && _b !== void 0 ? _b : constants_1.EMPTY_VALUE;
24
24
  }
25
- CampaignTracker.prototype.isNewCampaign = function (currentCampaign, previousCampaign) {
25
+ CampaignTracker.prototype.isNewCampaign = function (current, previous) {
26
+ var _referrer = current.referrer, currentCampaign = (0, tslib_1.__rest)(current, ["referrer"]);
27
+ var _previous_referrer = previous.referrer, previousCampaign = (0, tslib_1.__rest)(previous, ["referrer"]);
26
28
  var isReferrerExcluded = Boolean(currentCampaign.referring_domain && this.excludeReferrers.includes(currentCampaign.referring_domain));
27
- var hasNewUtm = previousCampaign.utm_campaign !== currentCampaign.utm_campaign ||
28
- previousCampaign.utm_source !== currentCampaign.utm_source ||
29
- previousCampaign.utm_medium !== currentCampaign.utm_medium ||
30
- previousCampaign.utm_term !== currentCampaign.utm_term ||
31
- previousCampaign.utm_content !== currentCampaign.utm_content;
32
- var hasNewReferrer = previousCampaign.referring_domain !== currentCampaign.referring_domain;
33
- return !isReferrerExcluded && (hasNewUtm || hasNewReferrer);
29
+ var hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);
30
+ return !isReferrerExcluded && hasNewCampaign;
34
31
  };
35
32
  CampaignTracker.prototype.saveCampaignToStorage = function (campaign) {
36
33
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
@@ -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 '../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"]}
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 '../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(current: Campaign, previous: Campaign) {\n const { referrer: _referrer, ...currentCampaign } = current;\n const { referrer: _previous_referrer, ...previousCampaign } = previous;\n\n const isReferrerExcluded = Boolean(\n currentCampaign.referring_domain && this.excludeReferrers.includes(currentCampaign.referring_domain),\n );\n const hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);\n\n return !isReferrerExcluded && hasNewCampaign;\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"]}
@@ -4,11 +4,6 @@ export declare const UTM_MEDIUM = "utm_medium";
4
4
  export declare const UTM_CAMPAIGN = "utm_campaign";
5
5
  export declare const UTM_TERM = "utm_term";
6
6
  export declare const UTM_CONTENT = "utm_content";
7
- export declare const UTMZ_SOURCE = "utmcsr";
8
- export declare const UTMZ_MEDIUM = "utmcmd";
9
- export declare const UTMZ_CAMPAIGN = "utmccn";
10
- export declare const UTMZ_TERM = "utmctr";
11
- export declare const UTMZ_CONTENT = "utmcct";
12
7
  export declare const DCLID = "dclid";
13
8
  export declare const FBCLID = "fbclid";
14
9
  export declare const GCLID = "gclid";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,aAAa,WAAW,CAAC;AACtC,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,QAU3B,CAAC;AAEF,eAAO,MAAM,IAAI,SAAS,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,QAe3B,CAAC;AAEF,eAAO,MAAM,IAAI,SAAS,CAAC"}
@@ -1,15 +1,10 @@
1
1
  Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.MKTG = exports.BASE_CAMPAIGN = exports.EMPTY_VALUE = exports.TWCLID = exports.TTCLID = exports.MSCLKID = exports.KO_CLICK_ID = exports.GCLID = exports.FBCLID = exports.DCLID = exports.UTMZ_CONTENT = exports.UTMZ_TERM = exports.UTMZ_CAMPAIGN = exports.UTMZ_MEDIUM = exports.UTMZ_SOURCE = exports.UTM_CONTENT = exports.UTM_TERM = exports.UTM_CAMPAIGN = exports.UTM_MEDIUM = exports.UTM_SOURCE = void 0;
2
+ exports.MKTG = exports.BASE_CAMPAIGN = exports.EMPTY_VALUE = exports.TWCLID = exports.TTCLID = exports.MSCLKID = exports.KO_CLICK_ID = exports.GCLID = exports.FBCLID = exports.DCLID = exports.UTM_CONTENT = exports.UTM_TERM = exports.UTM_CAMPAIGN = exports.UTM_MEDIUM = exports.UTM_SOURCE = void 0;
3
3
  exports.UTM_SOURCE = 'utm_source';
4
4
  exports.UTM_MEDIUM = 'utm_medium';
5
5
  exports.UTM_CAMPAIGN = 'utm_campaign';
6
6
  exports.UTM_TERM = 'utm_term';
7
7
  exports.UTM_CONTENT = 'utm_content';
8
- exports.UTMZ_SOURCE = 'utmcsr';
9
- exports.UTMZ_MEDIUM = 'utmcmd';
10
- exports.UTMZ_CAMPAIGN = 'utmccn';
11
- exports.UTMZ_TERM = 'utmctr';
12
- exports.UTMZ_CONTENT = 'utmcct';
13
8
  exports.DCLID = 'dclid';
14
9
  exports.FBCLID = 'fbclid';
15
10
  exports.GCLID = 'gclid';
@@ -26,8 +21,13 @@ exports.BASE_CAMPAIGN = {
26
21
  utm_content: undefined,
27
22
  referrer: undefined,
28
23
  referring_domain: undefined,
24
+ dclid: undefined,
29
25
  gclid: undefined,
30
26
  fbclid: undefined,
27
+ ko_click_id: undefined,
28
+ msclkid: undefined,
29
+ ttclid: undefined,
30
+ twclid: undefined,
31
31
  };
32
32
  exports.MKTG = 'MKTG';
33
33
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":";;AAEa,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,WAAW,GAAG,aAAa,CAAC;AAE5B,QAAA,WAAW,GAAG,QAAQ,CAAC;AACvB,QAAA,WAAW,GAAG,QAAQ,CAAC;AACvB,QAAA,aAAa,GAAG,QAAQ,CAAC;AACzB,QAAA,SAAS,GAAG,QAAQ,CAAC;AACrB,QAAA,YAAY,GAAG,QAAQ,CAAC;AAExB,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAElB,QAAA,WAAW,GAAG,OAAO,CAAC;AAEtB,QAAA,aAAa,GAAa;IACrC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,SAAS;IACnB,gBAAgB,EAAE,SAAS;IAC3B,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;CAClB,CAAC;AAEW,QAAA,IAAI,GAAG,MAAM,CAAC","sourcesContent":["import { Campaign } from '@amplitude/analytics-types';\n\nexport const UTM_SOURCE = 'utm_source';\nexport const UTM_MEDIUM = 'utm_medium';\nexport const UTM_CAMPAIGN = 'utm_campaign';\nexport const UTM_TERM = 'utm_term';\nexport const UTM_CONTENT = 'utm_content';\n\nexport const UTMZ_SOURCE = 'utmcsr';\nexport const UTMZ_MEDIUM = 'utmcmd';\nexport const UTMZ_CAMPAIGN = 'utmccn';\nexport const UTMZ_TERM = 'utmctr';\nexport const UTMZ_CONTENT = 'utmcct';\n\nexport const DCLID = 'dclid';\nexport const FBCLID = 'fbclid';\nexport const GCLID = 'gclid';\nexport const KO_CLICK_ID = 'ko_click_id';\nexport const MSCLKID = 'msclkid';\nexport const TTCLID = 'ttclid';\nexport const TWCLID = 'twclid';\n\nexport const EMPTY_VALUE = 'EMPTY';\n\nexport const BASE_CAMPAIGN: Campaign = {\n utm_source: undefined,\n utm_medium: undefined,\n utm_campaign: undefined,\n utm_term: undefined,\n utm_content: undefined,\n referrer: undefined,\n referring_domain: undefined,\n gclid: undefined,\n fbclid: undefined,\n};\n\nexport const MKTG = 'MKTG';\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":";;AAEa,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,WAAW,GAAG,aAAa,CAAC;AAE5B,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAElB,QAAA,WAAW,GAAG,OAAO,CAAC;AAEtB,QAAA,aAAa,GAAa;IACrC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,SAAS;IACnB,gBAAgB,EAAE,SAAS;IAC3B,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;CAClB,CAAC;AAEW,QAAA,IAAI,GAAG,MAAM,CAAC","sourcesContent":["import { Campaign } from '@amplitude/analytics-types';\n\nexport const UTM_SOURCE = 'utm_source';\nexport const UTM_MEDIUM = 'utm_medium';\nexport const UTM_CAMPAIGN = 'utm_campaign';\nexport const UTM_TERM = 'utm_term';\nexport const UTM_CONTENT = 'utm_content';\n\nexport const DCLID = 'dclid';\nexport const FBCLID = 'fbclid';\nexport const GCLID = 'gclid';\nexport const KO_CLICK_ID = 'ko_click_id';\nexport const MSCLKID = 'msclkid';\nexport const TTCLID = 'ttclid';\nexport const TWCLID = 'twclid';\n\nexport const EMPTY_VALUE = 'EMPTY';\n\nexport const BASE_CAMPAIGN: Campaign = {\n utm_source: undefined,\n utm_medium: undefined,\n utm_campaign: undefined,\n utm_term: undefined,\n utm_content: undefined,\n referrer: undefined,\n referring_domain: undefined,\n dclid: undefined,\n gclid: undefined,\n fbclid: undefined,\n ko_click_id: undefined,\n msclkid: undefined,\n ttclid: undefined,\n twclid: undefined,\n};\n\nexport const MKTG = 'MKTG';\n"]}
@@ -3,10 +3,10 @@ export { CampaignTracker } from './attribution/campaign-tracker';
3
3
  export { getQueryParams } from './query-params';
4
4
  export { getCookieName, getOldCookieName } from './cookie-name';
5
5
  export { CookieStorage } from './storage/cookie';
6
- export { UTMCookie } from './storage/utm-cookie';
7
6
  export { SessionManager } from './session-manager';
8
7
  export { FetchTransport } from './transports/fetch';
9
8
  export { getAnalyticsConnector } from './analytics-connector';
10
9
  export { IdentityEventSender } from './plugins/identity';
11
10
  export { getLanguage } from './language';
11
+ export { BASE_CAMPAIGN } from './attribution/constants';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC"}
package/lib/cjs/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.getLanguage = exports.IdentityEventSender = exports.getAnalyticsConnector = exports.FetchTransport = exports.SessionManager = exports.UTMCookie = exports.CookieStorage = exports.getOldCookieName = exports.getCookieName = exports.getQueryParams = exports.CampaignTracker = exports.CampaignParser = void 0;
2
+ exports.BASE_CAMPAIGN = exports.getLanguage = exports.IdentityEventSender = exports.getAnalyticsConnector = exports.FetchTransport = exports.SessionManager = exports.CookieStorage = exports.getOldCookieName = exports.getCookieName = exports.getQueryParams = exports.CampaignTracker = exports.CampaignParser = void 0;
3
3
  var campaign_parser_1 = require("./attribution/campaign-parser");
4
4
  Object.defineProperty(exports, "CampaignParser", { enumerable: true, get: function () { return campaign_parser_1.CampaignParser; } });
5
5
  var campaign_tracker_1 = require("./attribution/campaign-tracker");
@@ -11,8 +11,6 @@ Object.defineProperty(exports, "getCookieName", { enumerable: true, get: functio
11
11
  Object.defineProperty(exports, "getOldCookieName", { enumerable: true, get: function () { return cookie_name_1.getOldCookieName; } });
12
12
  var cookie_1 = require("./storage/cookie");
13
13
  Object.defineProperty(exports, "CookieStorage", { enumerable: true, get: function () { return cookie_1.CookieStorage; } });
14
- var utm_cookie_1 = require("./storage/utm-cookie");
15
- Object.defineProperty(exports, "UTMCookie", { enumerable: true, get: function () { return utm_cookie_1.UTMCookie; } });
16
14
  var session_manager_1 = require("./session-manager");
17
15
  Object.defineProperty(exports, "SessionManager", { enumerable: true, get: function () { return session_manager_1.SessionManager; } });
18
16
  var fetch_1 = require("./transports/fetch");
@@ -23,4 +21,6 @@ var identity_1 = require("./plugins/identity");
23
21
  Object.defineProperty(exports, "IdentityEventSender", { enumerable: true, get: function () { return identity_1.IdentityEventSender; } });
24
22
  var language_1 = require("./language");
25
23
  Object.defineProperty(exports, "getLanguage", { enumerable: true, get: function () { return language_1.getLanguage; } });
24
+ var constants_1 = require("./attribution/constants");
25
+ Object.defineProperty(exports, "BASE_CAMPAIGN", { enumerable: true, get: function () { return constants_1.BASE_CAMPAIGN; } });
26
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;AAAA,iEAA+D;AAAtD,iHAAA,cAAc,OAAA;AACvB,mEAAiE;AAAxD,mHAAA,eAAe,OAAA;AACxB,+CAAgD;AAAvC,8GAAA,cAAc,OAAA;AACvB,6CAAgE;AAAvD,4GAAA,aAAa,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AACxC,2CAAiD;AAAxC,uGAAA,aAAa,OAAA;AACtB,mDAAiD;AAAxC,uGAAA,SAAS,OAAA;AAClB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,4CAAoD;AAA3C,uGAAA,cAAc,OAAA;AACvB,6DAA8D;AAArD,4HAAA,qBAAqB,OAAA;AAC9B,+CAAyD;AAAhD,+GAAA,mBAAmB,OAAA;AAC5B,uCAAyC;AAAhC,uGAAA,WAAW,OAAA","sourcesContent":["export { CampaignParser } from './attribution/campaign-parser';\nexport { CampaignTracker } from './attribution/campaign-tracker';\nexport { getQueryParams } from './query-params';\nexport { getCookieName, getOldCookieName } from './cookie-name';\nexport { CookieStorage } from './storage/cookie';\nexport { UTMCookie } from './storage/utm-cookie';\nexport { SessionManager } from './session-manager';\nexport { FetchTransport } from './transports/fetch';\nexport { getAnalyticsConnector } from './analytics-connector';\nexport { IdentityEventSender } from './plugins/identity';\nexport { getLanguage } from './language';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;AAAA,iEAA+D;AAAtD,iHAAA,cAAc,OAAA;AACvB,mEAAiE;AAAxD,mHAAA,eAAe,OAAA;AACxB,+CAAgD;AAAvC,8GAAA,cAAc,OAAA;AACvB,6CAAgE;AAAvD,4GAAA,aAAa,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AACxC,2CAAiD;AAAxC,uGAAA,aAAa,OAAA;AACtB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,4CAAoD;AAA3C,uGAAA,cAAc,OAAA;AACvB,6DAA8D;AAArD,4HAAA,qBAAqB,OAAA;AAC9B,+CAAyD;AAAhD,+GAAA,mBAAmB,OAAA;AAC5B,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AACpB,qDAAwD;AAA/C,0GAAA,aAAa,OAAA","sourcesContent":["export { CampaignParser } from './attribution/campaign-parser';\nexport { CampaignTracker } from './attribution/campaign-tracker';\nexport { getQueryParams } from './query-params';\nexport { getCookieName, getOldCookieName } from './cookie-name';\nexport { CookieStorage } from './storage/cookie';\nexport { SessionManager } from './session-manager';\nexport { FetchTransport } from './transports/fetch';\nexport { getAnalyticsConnector } from './analytics-connector';\nexport { IdentityEventSender } from './plugins/identity';\nexport { getLanguage } from './language';\nexport { BASE_CAMPAIGN } from './attribution/constants';\n"]}
@@ -1,9 +1,7 @@
1
- import { UTMCookie } from '../storage/utm-cookie';
2
1
  import { Campaign, CampaignParser as ICampaignParser, ClickIdParameters, ReferrerParameters, UTMParameters } from '@amplitude/analytics-types';
3
2
  export declare class CampaignParser implements ICampaignParser {
4
- utmCookieStorage: UTMCookie;
5
3
  parse(): Promise<Campaign>;
6
- getUtmParam(): Promise<UTMParameters>;
4
+ getUtmParam(): UTMParameters;
7
5
  getReferrer(): ReferrerParameters;
8
6
  getClickIds(): ClickIdParameters;
9
7
  }
@@ -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;AAsBlD,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;CAYjC"}
1
+ {"version":3,"file":"campaign-parser.d.ts","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,QAAQ,EACR,cAAc,IAAI,eAAe,EACjC,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,qBAAa,cAAe,YAAW,eAAe;IAC9C,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;IAShC,WAAW,IAAI,aAAa;IAkB5B,WAAW,IAAI,kBAAkB;IAcjC,WAAW,IAAI,iBAAiB;CAYjC"}
@@ -1,56 +1,30 @@
1
1
  import { __assign, __awaiter, __generator } from "tslib";
2
- import { UTMCookie } from '../storage/utm-cookie';
3
2
  import { getQueryParams } from '../query-params';
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, DCLID, MSCLKID, TWCLID, TTCLID, KO_CLICK_ID, } from './constants';
3
+ import { UTM_CAMPAIGN, UTM_CONTENT, UTM_MEDIUM, UTM_SOURCE, UTM_TERM, GCLID, FBCLID, BASE_CAMPAIGN, DCLID, MSCLKID, TWCLID, TTCLID, KO_CLICK_ID, } from './constants';
5
4
  var CampaignParser = /** @class */ (function () {
6
5
  function CampaignParser() {
7
- this.utmCookieStorage = new UTMCookie();
8
6
  }
9
7
  CampaignParser.prototype.parse = function () {
10
8
  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
- }
9
+ return __generator(this, function (_a) {
10
+ return [2 /*return*/, __assign(__assign(__assign(__assign({}, BASE_CAMPAIGN), this.getUtmParam()), this.getReferrer()), this.getClickIds())];
19
11
  });
20
12
  });
21
13
  };
22
14
  CampaignParser.prototype.getUtmParam = function () {
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
- });
15
+ var params = getQueryParams();
16
+ var utmSource = params[UTM_SOURCE];
17
+ var utmMedium = params[UTM_MEDIUM];
18
+ var utmCampaign = params[UTM_CAMPAIGN];
19
+ var utmTerm = params[UTM_TERM];
20
+ var utmContent = params[UTM_CONTENT];
21
+ return {
22
+ utm_source: utmSource,
23
+ utm_medium: utmMedium,
24
+ utm_campaign: utmCampaign,
25
+ utm_term: utmTerm,
26
+ utm_content: utmContent,
27
+ };
54
28
  };
55
29
  CampaignParser.prototype.getReferrer = function () {
56
30
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-parser.js","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { UTMCookie } from '../storage/utm-cookie';\nimport { getQueryParams } from '../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 DCLID,\n MSCLKID,\n TWCLID,\n TTCLID,\n KO_CLICK_ID,\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 [DCLID]: params[DCLID],\n [FBCLID]: params[FBCLID],\n [GCLID]: params[GCLID],\n [KO_CLICK_ID]: params[KO_CLICK_ID],\n [MSCLKID]: params[MSCLKID],\n [TTCLID]: params[TTCLID],\n [TWCLID]: params[TWCLID],\n };\n }\n}\n"]}
1
+ {"version":3,"file":"campaign-parser.js","sourceRoot":"","sources":["../../../src/attribution/campaign-parser.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,KAAK,EACL,MAAM,EACN,aAAa,EACb,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,WAAW,GACZ,MAAM,aAAa,CAAC;AASrB;IAAA;IAsDA,CAAC;IArDO,8BAAK,GAAX;;;gBACE,sBAAO,wCACF,aAAa,GACb,IAAI,CAAC,WAAW,EAAE,GAClB,IAAI,CAAC,WAAW,EAAE,GAClB,IAAI,CAAC,WAAW,EAAE,CACV,EAAC;;;KACf;IAED,oCAAW,GAAX;QACE,IAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAEhC,IAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,IAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,IAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAEvC,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;YACxB,GAAC,KAAK,IAAG,MAAM,CAAC,KAAK,CAAC;YACtB,GAAC,WAAW,IAAG,MAAM,CAAC,WAAW,CAAC;YAClC,GAAC,OAAO,IAAG,MAAM,CAAC,OAAO,CAAC;YAC1B,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;YACxB,GAAC,MAAM,IAAG,MAAM,CAAC,MAAM,CAAC;eACxB;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,AAtDD,IAsDC","sourcesContent":["import { getQueryParams } from '../query-params';\nimport {\n UTM_CAMPAIGN,\n UTM_CONTENT,\n UTM_MEDIUM,\n UTM_SOURCE,\n UTM_TERM,\n GCLID,\n FBCLID,\n BASE_CAMPAIGN,\n DCLID,\n MSCLKID,\n TWCLID,\n TTCLID,\n KO_CLICK_ID,\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 async parse(): Promise<Campaign> {\n return {\n ...BASE_CAMPAIGN,\n ...this.getUtmParam(),\n ...this.getReferrer(),\n ...this.getClickIds(),\n } as Campaign;\n }\n\n getUtmParam(): UTMParameters {\n const params = getQueryParams();\n\n const utmSource = params[UTM_SOURCE];\n const utmMedium = params[UTM_MEDIUM];\n const utmCampaign = params[UTM_CAMPAIGN];\n const utmTerm = params[UTM_TERM];\n const utmContent = params[UTM_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 [DCLID]: params[DCLID],\n [FBCLID]: params[FBCLID],\n [GCLID]: params[GCLID],\n [KO_CLICK_ID]: params[KO_CLICK_ID],\n [MSCLKID]: params[MSCLKID],\n [TTCLID]: params[TTCLID],\n [TWCLID]: params[TWCLID],\n };\n }\n}\n"]}
@@ -11,7 +11,7 @@ export declare class CampaignTracker implements ICampaignTracker {
11
11
  excludeReferrers: string[];
12
12
  initialEmptyValue: string;
13
13
  constructor(apiKey: string, options: CampaignTrackerOptions);
14
- isNewCampaign(currentCampaign: Campaign, previousCampaign: Campaign): boolean;
14
+ isNewCampaign(current: Campaign, previous: Campaign): boolean;
15
15
  saveCampaignToStorage(campaign: Campaign): Promise<void>;
16
16
  getCampaignFromStorage(): Promise<Campaign>;
17
17
  createCampaignEvent(campaign: Campaign): {
@@ -64,7 +64,7 @@ export declare class CampaignTracker implements ICampaignTracker {
64
64
  session_id?: number | undefined;
65
65
  insert_id?: string | undefined;
66
66
  plan?: import("@amplitude/analytics-types").Plan | undefined;
67
- ingestion_metadata?: import("@amplitude/analytics-types/lib/ingestion-metadata").IngestionMetadataEventProperty | undefined;
67
+ ingestion_metadata?: import("@amplitude/analytics-types/lib/esm/ingestion-metadata").IngestionMetadataEventProperty | undefined;
68
68
  partner_id?: string | undefined;
69
69
  extra?: {
70
70
  [key: string]: any;
@@ -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;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"}
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,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAY7C,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"}
@@ -1,4 +1,4 @@
1
- import { __assign, __awaiter, __generator, __read } from "tslib";
1
+ import { __assign, __awaiter, __generator, __read, __rest } from "tslib";
2
2
  import { createIdentifyEvent, Identify } from '@amplitude/analytics-core';
3
3
  import { getCookieName as getStorageKey } from '../cookie-name';
4
4
  import { CampaignParser } from './campaign-parser';
@@ -20,15 +20,12 @@ var CampaignTracker = /** @class */ (function () {
20
20
  }
21
21
  this.initialEmptyValue = (_b = options.initialEmptyValue) !== null && _b !== void 0 ? _b : EMPTY_VALUE;
22
22
  }
23
- CampaignTracker.prototype.isNewCampaign = function (currentCampaign, previousCampaign) {
23
+ CampaignTracker.prototype.isNewCampaign = function (current, previous) {
24
+ var _referrer = current.referrer, currentCampaign = __rest(current, ["referrer"]);
25
+ var _previous_referrer = previous.referrer, previousCampaign = __rest(previous, ["referrer"]);
24
26
  var isReferrerExcluded = Boolean(currentCampaign.referring_domain && this.excludeReferrers.includes(currentCampaign.referring_domain));
25
- var hasNewUtm = previousCampaign.utm_campaign !== currentCampaign.utm_campaign ||
26
- previousCampaign.utm_source !== currentCampaign.utm_source ||
27
- previousCampaign.utm_medium !== currentCampaign.utm_medium ||
28
- previousCampaign.utm_term !== currentCampaign.utm_term ||
29
- previousCampaign.utm_content !== currentCampaign.utm_content;
30
- var hasNewReferrer = previousCampaign.referring_domain !== currentCampaign.referring_domain;
31
- return !isReferrerExcluded && (hasNewUtm || hasNewReferrer);
27
+ var hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);
28
+ return !isReferrerExcluded && hasNewCampaign;
32
29
  };
33
30
  CampaignTracker.prototype.saveCampaignToStorage = function (campaign) {
34
31
  return __awaiter(this, void 0, void 0, function () {
@@ -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 '../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"]}
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 '../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(current: Campaign, previous: Campaign) {\n const { referrer: _referrer, ...currentCampaign } = current;\n const { referrer: _previous_referrer, ...previousCampaign } = previous;\n\n const isReferrerExcluded = Boolean(\n currentCampaign.referring_domain && this.excludeReferrers.includes(currentCampaign.referring_domain),\n );\n const hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);\n\n return !isReferrerExcluded && hasNewCampaign;\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"]}
@@ -4,11 +4,6 @@ export declare const UTM_MEDIUM = "utm_medium";
4
4
  export declare const UTM_CAMPAIGN = "utm_campaign";
5
5
  export declare const UTM_TERM = "utm_term";
6
6
  export declare const UTM_CONTENT = "utm_content";
7
- export declare const UTMZ_SOURCE = "utmcsr";
8
- export declare const UTMZ_MEDIUM = "utmcmd";
9
- export declare const UTMZ_CAMPAIGN = "utmccn";
10
- export declare const UTMZ_TERM = "utmctr";
11
- export declare const UTMZ_CONTENT = "utmcct";
12
7
  export declare const DCLID = "dclid";
13
8
  export declare const FBCLID = "fbclid";
14
9
  export declare const GCLID = "gclid";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,aAAa,WAAW,CAAC;AACtC,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,QAU3B,CAAC;AAEF,eAAO,MAAM,IAAI,SAAS,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,QAe3B,CAAC;AAEF,eAAO,MAAM,IAAI,SAAS,CAAC"}
@@ -3,11 +3,6 @@ export var UTM_MEDIUM = 'utm_medium';
3
3
  export var UTM_CAMPAIGN = 'utm_campaign';
4
4
  export var UTM_TERM = 'utm_term';
5
5
  export var UTM_CONTENT = 'utm_content';
6
- export var UTMZ_SOURCE = 'utmcsr';
7
- export var UTMZ_MEDIUM = 'utmcmd';
8
- export var UTMZ_CAMPAIGN = 'utmccn';
9
- export var UTMZ_TERM = 'utmctr';
10
- export var UTMZ_CONTENT = 'utmcct';
11
6
  export var DCLID = 'dclid';
12
7
  export var FBCLID = 'fbclid';
13
8
  export var GCLID = 'gclid';
@@ -24,8 +19,13 @@ export var BASE_CAMPAIGN = {
24
19
  utm_content: undefined,
25
20
  referrer: undefined,
26
21
  referring_domain: undefined,
22
+ dclid: undefined,
27
23
  gclid: undefined,
28
24
  fbclid: undefined,
25
+ ko_click_id: undefined,
26
+ msclkid: undefined,
27
+ ttclid: undefined,
28
+ twclid: undefined,
29
29
  };
30
30
  export var MKTG = 'MKTG';
31
31
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,IAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,IAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,IAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAC;AAEzC,MAAM,CAAC,IAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,CAAC,IAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,CAAC,IAAM,aAAa,GAAG,QAAQ,CAAC;AACtC,MAAM,CAAC,IAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,MAAM,CAAC,IAAM,YAAY,GAAG,QAAQ,CAAC;AAErC,MAAM,CAAC,IAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAE/B,MAAM,CAAC,IAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,MAAM,CAAC,IAAM,aAAa,GAAa;IACrC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,SAAS;IACnB,gBAAgB,EAAE,SAAS;IAC3B,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,MAAM,CAAC,IAAM,IAAI,GAAG,MAAM,CAAC","sourcesContent":["import { Campaign } from '@amplitude/analytics-types';\n\nexport const UTM_SOURCE = 'utm_source';\nexport const UTM_MEDIUM = 'utm_medium';\nexport const UTM_CAMPAIGN = 'utm_campaign';\nexport const UTM_TERM = 'utm_term';\nexport const UTM_CONTENT = 'utm_content';\n\nexport const UTMZ_SOURCE = 'utmcsr';\nexport const UTMZ_MEDIUM = 'utmcmd';\nexport const UTMZ_CAMPAIGN = 'utmccn';\nexport const UTMZ_TERM = 'utmctr';\nexport const UTMZ_CONTENT = 'utmcct';\n\nexport const DCLID = 'dclid';\nexport const FBCLID = 'fbclid';\nexport const GCLID = 'gclid';\nexport const KO_CLICK_ID = 'ko_click_id';\nexport const MSCLKID = 'msclkid';\nexport const TTCLID = 'ttclid';\nexport const TWCLID = 'twclid';\n\nexport const EMPTY_VALUE = 'EMPTY';\n\nexport const BASE_CAMPAIGN: Campaign = {\n utm_source: undefined,\n utm_medium: undefined,\n utm_campaign: undefined,\n utm_term: undefined,\n utm_content: undefined,\n referrer: undefined,\n referring_domain: undefined,\n gclid: undefined,\n fbclid: undefined,\n};\n\nexport const MKTG = 'MKTG';\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/attribution/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,IAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,IAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,IAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAC;AAEzC,MAAM,CAAC,IAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAE/B,MAAM,CAAC,IAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,MAAM,CAAC,IAAM,aAAa,GAAa;IACrC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,SAAS;IACnB,gBAAgB,EAAE,SAAS;IAC3B,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,MAAM,CAAC,IAAM,IAAI,GAAG,MAAM,CAAC","sourcesContent":["import { Campaign } from '@amplitude/analytics-types';\n\nexport const UTM_SOURCE = 'utm_source';\nexport const UTM_MEDIUM = 'utm_medium';\nexport const UTM_CAMPAIGN = 'utm_campaign';\nexport const UTM_TERM = 'utm_term';\nexport const UTM_CONTENT = 'utm_content';\n\nexport const DCLID = 'dclid';\nexport const FBCLID = 'fbclid';\nexport const GCLID = 'gclid';\nexport const KO_CLICK_ID = 'ko_click_id';\nexport const MSCLKID = 'msclkid';\nexport const TTCLID = 'ttclid';\nexport const TWCLID = 'twclid';\n\nexport const EMPTY_VALUE = 'EMPTY';\n\nexport const BASE_CAMPAIGN: Campaign = {\n utm_source: undefined,\n utm_medium: undefined,\n utm_campaign: undefined,\n utm_term: undefined,\n utm_content: undefined,\n referrer: undefined,\n referring_domain: undefined,\n dclid: undefined,\n gclid: undefined,\n fbclid: undefined,\n ko_click_id: undefined,\n msclkid: undefined,\n ttclid: undefined,\n twclid: undefined,\n};\n\nexport const MKTG = 'MKTG';\n"]}
@@ -3,10 +3,10 @@ export { CampaignTracker } from './attribution/campaign-tracker';
3
3
  export { getQueryParams } from './query-params';
4
4
  export { getCookieName, getOldCookieName } from './cookie-name';
5
5
  export { CookieStorage } from './storage/cookie';
6
- export { UTMCookie } from './storage/utm-cookie';
7
6
  export { SessionManager } from './session-manager';
8
7
  export { FetchTransport } from './transports/fetch';
9
8
  export { getAnalyticsConnector } from './analytics-connector';
10
9
  export { IdentityEventSender } from './plugins/identity';
11
10
  export { getLanguage } from './language';
11
+ export { BASE_CAMPAIGN } from './attribution/constants';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC"}
package/lib/esm/index.js CHANGED
@@ -3,10 +3,10 @@ export { CampaignTracker } from './attribution/campaign-tracker';
3
3
  export { getQueryParams } from './query-params';
4
4
  export { getCookieName, getOldCookieName } from './cookie-name';
5
5
  export { CookieStorage } from './storage/cookie';
6
- export { UTMCookie } from './storage/utm-cookie';
7
6
  export { SessionManager } from './session-manager';
8
7
  export { FetchTransport } from './transports/fetch';
9
8
  export { getAnalyticsConnector } from './analytics-connector';
10
9
  export { IdentityEventSender } from './plugins/identity';
11
10
  export { getLanguage } from './language';
11
+ export { BASE_CAMPAIGN } from './attribution/constants';
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC","sourcesContent":["export { CampaignParser } from './attribution/campaign-parser';\nexport { CampaignTracker } from './attribution/campaign-tracker';\nexport { getQueryParams } from './query-params';\nexport { getCookieName, getOldCookieName } from './cookie-name';\nexport { CookieStorage } from './storage/cookie';\nexport { UTMCookie } from './storage/utm-cookie';\nexport { SessionManager } from './session-manager';\nexport { FetchTransport } from './transports/fetch';\nexport { getAnalyticsConnector } from './analytics-connector';\nexport { IdentityEventSender } from './plugins/identity';\nexport { getLanguage } from './language';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["export { CampaignParser } from './attribution/campaign-parser';\nexport { CampaignTracker } from './attribution/campaign-tracker';\nexport { getQueryParams } from './query-params';\nexport { getCookieName, getOldCookieName } from './cookie-name';\nexport { CookieStorage } from './storage/cookie';\nexport { SessionManager } from './session-manager';\nexport { FetchTransport } from './transports/fetch';\nexport { getAnalyticsConnector } from './analytics-connector';\nexport { IdentityEventSender } from './plugins/identity';\nexport { getLanguage } from './language';\nexport { BASE_CAMPAIGN } from './attribution/constants';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amplitude/analytics-client-common",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "",
5
5
  "author": "Amplitude Inc",
6
6
  "homepage": "https://github.com/amplitude/Amplitude-TypeScript",
@@ -33,12 +33,12 @@
33
33
  "url": "https://github.com/amplitude/Amplitude-TypeScript/issues"
34
34
  },
35
35
  "dependencies": {
36
- "@amplitude/analytics-core": "^0.9.1",
37
- "@amplitude/analytics-types": "^0.10.0",
36
+ "@amplitude/analytics-core": "^0.9.3",
37
+ "@amplitude/analytics-types": "^0.10.2",
38
38
  "tslib": "^2.3.1"
39
39
  },
40
40
  "files": [
41
41
  "lib"
42
42
  ],
43
- "gitHead": "fff912bc630dc8cd98b5b2a89c2cf8611d557903"
43
+ "gitHead": "3fe5920040401c833941f18b031687d26cb2a552"
44
44
  }
@@ -1,6 +0,0 @@
1
- import { CookieStorage } from './cookie';
2
- export declare class UTMCookie extends CookieStorage<Record<string, string | undefined>> {
3
- get(key: string): Promise<Record<string, string | undefined> | undefined>;
4
- set(): Promise<void>;
5
- }
6
- //# sourceMappingURL=utm-cookie.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,50 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.UTMCookie = void 0;
3
- var tslib_1 = require("tslib");
4
- var cookie_1 = require("./cookie");
5
- var UTMCookie = /** @class */ (function (_super) {
6
- (0, tslib_1.__extends)(UTMCookie, _super);
7
- function UTMCookie() {
8
- return _super !== null && _super.apply(this, arguments) || this;
9
- }
10
- UTMCookie.prototype.get = function (key) {
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*/];
36
- }
37
- });
38
- });
39
- };
40
- UTMCookie.prototype.set = function () {
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
- });
46
- };
47
- return UTMCookie;
48
- }(cookie_1.CookieStorage));
49
- exports.UTMCookie = UTMCookie;
50
- //# sourceMappingURL=utm-cookie.js.map
@@ -1 +0,0 @@
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,6 +0,0 @@
1
- import { CookieStorage } from './cookie';
2
- export declare class UTMCookie extends CookieStorage<Record<string, string | undefined>> {
3
- get(key: string): Promise<Record<string, string | undefined> | undefined>;
4
- set(): Promise<void>;
5
- }
6
- //# sourceMappingURL=utm-cookie.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,48 +0,0 @@
1
- import { __awaiter, __extends, __generator, __read } from "tslib";
2
- import { CookieStorage } from './cookie';
3
- var UTMCookie = /** @class */ (function (_super) {
4
- __extends(UTMCookie, _super);
5
- function UTMCookie() {
6
- return _super !== null && _super.apply(this, arguments) || this;
7
- }
8
- UTMCookie.prototype.get = function (key) {
9
- return __awaiter(this, void 0, void 0, function () {
10
- var value, entries, _a;
11
- return __generator(this, function (_b) {
12
- switch (_b.label) {
13
- case 0:
14
- _b.trys.push([0, 2, , 3]);
15
- return [4 /*yield*/, this.getRaw(key)];
16
- case 1:
17
- value = _b.sent();
18
- if (!value) {
19
- return [2 /*return*/, undefined];
20
- }
21
- entries = value.split('.').splice(-1)[0].split('|');
22
- return [2 /*return*/, entries.reduce(function (acc, curr) {
23
- var _a = __read(curr.split('=', 2), 2), key = _a[0], _b = _a[1], value = _b === void 0 ? '' : _b;
24
- if (!value) {
25
- return acc;
26
- }
27
- acc[key] = decodeURIComponent(value);
28
- return acc;
29
- }, {})];
30
- case 2:
31
- _a = _b.sent();
32
- return [2 /*return*/, undefined];
33
- case 3: return [2 /*return*/];
34
- }
35
- });
36
- });
37
- };
38
- UTMCookie.prototype.set = function () {
39
- return __awaiter(this, void 0, void 0, function () {
40
- return __generator(this, function (_a) {
41
- return [2 /*return*/, undefined];
42
- });
43
- });
44
- };
45
- return UTMCookie;
46
- }(CookieStorage));
47
- export { UTMCookie };
48
- //# sourceMappingURL=utm-cookie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utm-cookie.js","sourceRoot":"","sources":["../../../src/storage/utm-cookie.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;IAA+B,6BAAiD;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,OAAoB,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,aAAa,GAwB3C","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"]}