@amplitude/analytics-react-native 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/lib/commonjs/config.js +10 -18
  2. package/lib/commonjs/config.js.map +1 -1
  3. package/lib/commonjs/cookie-migration/index.js +3 -5
  4. package/lib/commonjs/cookie-migration/index.js.map +1 -1
  5. package/lib/commonjs/plugins/context.js +8 -2
  6. package/lib/commonjs/plugins/context.js.map +1 -1
  7. package/lib/commonjs/react-native-client.js +7 -11
  8. package/lib/commonjs/react-native-client.js.map +1 -1
  9. package/lib/commonjs/version.js +1 -1
  10. package/lib/commonjs/version.js.map +1 -1
  11. package/lib/module/config.js +1 -5
  12. package/lib/module/config.js.map +1 -1
  13. package/lib/module/cookie-migration/index.js +1 -2
  14. package/lib/module/cookie-migration/index.js.map +1 -1
  15. package/lib/module/plugins/context.js +7 -1
  16. package/lib/module/plugins/context.js.map +1 -1
  17. package/lib/module/react-native-client.js +1 -3
  18. package/lib/module/react-native-client.js.map +1 -1
  19. package/lib/module/version.js +1 -1
  20. package/lib/module/version.js.map +1 -1
  21. package/lib/typescript/config.d.ts +1 -2
  22. package/lib/typescript/config.d.ts.map +1 -1
  23. package/lib/typescript/cookie-migration/index.d.ts.map +1 -1
  24. package/lib/typescript/index.d.ts +1 -1
  25. package/lib/typescript/index.d.ts.map +1 -1
  26. package/lib/typescript/plugins/context.d.ts.map +1 -1
  27. package/lib/typescript/react-native-client.d.ts.map +1 -1
  28. package/lib/typescript/version.d.ts +1 -1
  29. package/package.json +5 -4
  30. package/src/config.ts +7 -5
  31. package/src/cookie-migration/index.ts +1 -2
  32. package/src/plugins/context.ts +7 -1
  33. package/src/react-native-client.ts +1 -3
  34. package/src/version.ts +1 -1
  35. package/lib/commonjs/attribution/campaign-parser.js +0 -74
  36. package/lib/commonjs/attribution/campaign-parser.js.map +0 -1
  37. package/lib/commonjs/attribution/campaign-tracker.js +0 -133
  38. package/lib/commonjs/attribution/campaign-tracker.js.map +0 -1
  39. package/lib/commonjs/attribution/constants.js +0 -47
  40. package/lib/commonjs/attribution/constants.js.map +0 -1
  41. package/lib/commonjs/plugins/identity.js +0 -40
  42. package/lib/commonjs/plugins/identity.js.map +0 -1
  43. package/lib/commonjs/session-manager.js +0 -114
  44. package/lib/commonjs/session-manager.js.map +0 -1
  45. package/lib/commonjs/storage/cookie.js +0 -124
  46. package/lib/commonjs/storage/cookie.js.map +0 -1
  47. package/lib/commonjs/storage/utm-cookie.js +0 -42
  48. package/lib/commonjs/storage/utm-cookie.js.map +0 -1
  49. package/lib/commonjs/transports/fetch.js +0 -34
  50. package/lib/commonjs/transports/fetch.js.map +0 -1
  51. package/lib/commonjs/utils/analytics-connector.js +0 -15
  52. package/lib/commonjs/utils/analytics-connector.js.map +0 -1
  53. package/lib/commonjs/utils/cookie-name.js +0 -23
  54. package/lib/commonjs/utils/cookie-name.js.map +0 -1
  55. package/lib/commonjs/utils/language.js +0 -18
  56. package/lib/commonjs/utils/language.js.map +0 -1
  57. package/lib/commonjs/utils/query-params.js +0 -43
  58. package/lib/commonjs/utils/query-params.js.map +0 -1
  59. package/lib/module/attribution/campaign-parser.js +0 -62
  60. package/lib/module/attribution/campaign-parser.js.map +0 -1
  61. package/lib/module/attribution/campaign-tracker.js +0 -120
  62. package/lib/module/attribution/campaign-tracker.js.map +0 -1
  63. package/lib/module/attribution/constants.js +0 -26
  64. package/lib/module/attribution/constants.js.map +0 -1
  65. package/lib/module/plugins/identity.js +0 -29
  66. package/lib/module/plugins/identity.js.map +0 -1
  67. package/lib/module/session-manager.js +0 -104
  68. package/lib/module/session-manager.js.map +0 -1
  69. package/lib/module/storage/cookie.js +0 -114
  70. package/lib/module/storage/cookie.js.map +0 -1
  71. package/lib/module/storage/utm-cookie.js +0 -32
  72. package/lib/module/storage/utm-cookie.js.map +0 -1
  73. package/lib/module/transports/fetch.js +0 -24
  74. package/lib/module/transports/fetch.js.map +0 -1
  75. package/lib/module/utils/analytics-connector.js +0 -5
  76. package/lib/module/utils/analytics-connector.js.map +0 -1
  77. package/lib/module/utils/cookie-name.js +0 -10
  78. package/lib/module/utils/cookie-name.js.map +0 -1
  79. package/lib/module/utils/language.js +0 -9
  80. package/lib/module/utils/language.js.map +0 -1
  81. package/lib/module/utils/query-params.js +0 -31
  82. package/lib/module/utils/query-params.js.map +0 -1
  83. package/lib/typescript/attribution/campaign-parser.d.ts +0 -10
  84. package/lib/typescript/attribution/campaign-parser.d.ts.map +0 -1
  85. package/lib/typescript/attribution/campaign-tracker.d.ts +0 -74
  86. package/lib/typescript/attribution/campaign-tracker.d.ts.map +0 -1
  87. package/lib/typescript/attribution/constants.d.ts +0 -17
  88. package/lib/typescript/attribution/constants.d.ts.map +0 -1
  89. package/lib/typescript/plugins/identity.d.ts +0 -9
  90. package/lib/typescript/plugins/identity.d.ts.map +0 -1
  91. package/lib/typescript/session-manager.d.ts +0 -28
  92. package/lib/typescript/session-manager.d.ts.map +0 -1
  93. package/lib/typescript/storage/cookie.d.ts +0 -12
  94. package/lib/typescript/storage/cookie.d.ts.map +0 -1
  95. package/lib/typescript/storage/utm-cookie.d.ts +0 -6
  96. package/lib/typescript/storage/utm-cookie.d.ts.map +0 -1
  97. package/lib/typescript/transports/fetch.d.ts +0 -6
  98. package/lib/typescript/transports/fetch.d.ts.map +0 -1
  99. package/lib/typescript/utils/analytics-connector.d.ts +0 -3
  100. package/lib/typescript/utils/analytics-connector.d.ts.map +0 -1
  101. package/lib/typescript/utils/cookie-name.d.ts +0 -3
  102. package/lib/typescript/utils/cookie-name.d.ts.map +0 -1
  103. package/lib/typescript/utils/language.d.ts +0 -2
  104. package/lib/typescript/utils/language.d.ts.map +0 -1
  105. package/lib/typescript/utils/query-params.d.ts +0 -3
  106. package/lib/typescript/utils/query-params.d.ts.map +0 -1
  107. package/src/attribution/campaign-parser.ts +0 -78
  108. package/src/attribution/campaign-tracker.ts +0 -112
  109. package/src/attribution/constants.ts +0 -32
  110. package/src/plugins/identity.ts +0 -21
  111. package/src/session-manager.ts +0 -81
  112. package/src/storage/cookie.ts +0 -97
  113. package/src/storage/utm-cookie.ts +0 -27
  114. package/src/transports/fetch.ts +0 -23
  115. package/src/utils/analytics-connector.ts +0 -5
  116. package/src/utils/cookie-name.ts +0 -9
  117. package/src/utils/language.ts +0 -7
  118. package/src/utils/query-params.ts +0 -26
@@ -1,120 +0,0 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- import { createIdentifyEvent, Identify } from '@amplitude/analytics-core';
4
- import { getCookieName as getStorageKey } from '../utils/cookie-name';
5
- import { CampaignParser } from './campaign-parser';
6
- import { BASE_CAMPAIGN, EMPTY_VALUE, MKTG } from './constants';
7
- export class CampaignTracker {
8
- constructor(apiKey, options) {
9
- var _options$excludeRefer, _options$initialEmpty;
10
-
11
- _defineProperty(this, "storage", void 0);
12
-
13
- _defineProperty(this, "storageKey", void 0);
14
-
15
- _defineProperty(this, "parser", void 0);
16
-
17
- _defineProperty(this, "track", void 0);
18
-
19
- _defineProperty(this, "onNewCampaign", void 0);
20
-
21
- _defineProperty(this, "disabled", void 0);
22
-
23
- _defineProperty(this, "trackNewCampaigns", void 0);
24
-
25
- _defineProperty(this, "trackPageViews", void 0);
26
-
27
- _defineProperty(this, "excludeReferrers", void 0);
28
-
29
- _defineProperty(this, "initialEmptyValue", void 0);
30
-
31
- this.storage = options.storage;
32
- this.storageKey = getStorageKey(apiKey, MKTG);
33
- this.parser = new CampaignParser();
34
- this.track = options.track;
35
- this.onNewCampaign = options.onNewCampaign;
36
- this.disabled = Boolean(options.disabled);
37
- this.trackNewCampaigns = Boolean(options.trackNewCampaigns);
38
- this.trackPageViews = Boolean(options.trackPageViews);
39
- this.excludeReferrers = (_options$excludeRefer = options.excludeReferrers) !== null && _options$excludeRefer !== void 0 ? _options$excludeRefer : [];
40
-
41
- if (typeof location !== 'undefined') {
42
- this.excludeReferrers.unshift(location.hostname);
43
- }
44
-
45
- this.initialEmptyValue = (_options$initialEmpty = options.initialEmptyValue) !== null && _options$initialEmpty !== void 0 ? _options$initialEmpty : EMPTY_VALUE;
46
- }
47
-
48
- isNewCampaign(currentCampaign, previousCampaign) {
49
- const isReferrerExcluded = Boolean(currentCampaign.referring_domain && this.excludeReferrers.includes(currentCampaign.referring_domain));
50
- const hasNewUtm = previousCampaign.utm_campaign !== currentCampaign.utm_campaign || previousCampaign.utm_source !== currentCampaign.utm_source || previousCampaign.utm_medium !== currentCampaign.utm_medium || previousCampaign.utm_term !== currentCampaign.utm_term || previousCampaign.utm_content !== currentCampaign.utm_content;
51
- const hasNewReferrer = previousCampaign.referring_domain !== currentCampaign.referring_domain;
52
- return !isReferrerExcluded && (hasNewUtm || hasNewReferrer);
53
- }
54
-
55
- async saveCampaignToStorage(campaign) {
56
- await this.storage.set(this.storageKey, campaign);
57
- }
58
-
59
- async getCampaignFromStorage() {
60
- return (await this.storage.get(this.storageKey)) || { ...BASE_CAMPAIGN
61
- };
62
- }
63
-
64
- createCampaignEvent(campaign) {
65
- const campaignParameters = { // This object definition allows undefined keys to be iterated on
66
- // in .reduce() to build indentify object
67
- ...BASE_CAMPAIGN,
68
- ...campaign
69
- };
70
- const identifyEvent = Object.entries(campaignParameters).reduce((identify, _ref) => {
71
- let [key, value] = _ref;
72
- identify.setOnce(`initial_${key}`, value || this.initialEmptyValue);
73
-
74
- if (value) {
75
- return identify.set(key, value);
76
- }
77
-
78
- return identify.unset(key);
79
- }, new Identify());
80
- const pageViewEvent = {
81
- event_type: 'Page View',
82
- event_properties: {
83
- page_title:
84
- /* istanbul ignore next */
85
- typeof document !== 'undefined' && document.title || '',
86
- page_location:
87
- /* istanbul ignore next */
88
- typeof location !== 'undefined' && location.href || '',
89
- page_path:
90
- /* istanbul ignore next */
91
- typeof location !== 'undefined' && location.pathname || ''
92
- }
93
- };
94
- return { ...createIdentifyEvent(identifyEvent),
95
- ...(this.trackPageViews && pageViewEvent)
96
- };
97
- }
98
-
99
- async send(isNewSession) {
100
- if (this.disabled) {
101
- return;
102
- }
103
-
104
- const currentCampaign = await this.parser.parse();
105
- const previousCampaign = await this.getCampaignFromStorage();
106
-
107
- if (!isNewSession) {
108
- if (!this.trackNewCampaigns || !this.isNewCampaign(currentCampaign, previousCampaign)) {
109
- return;
110
- }
111
-
112
- this.onNewCampaign(currentCampaign);
113
- }
114
-
115
- await this.track(this.createCampaignEvent(currentCampaign));
116
- await this.saveCampaignToStorage(currentCampaign);
117
- }
118
-
119
- }
120
- //# sourceMappingURL=campaign-tracker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createIdentifyEvent","Identify","getCookieName","getStorageKey","CampaignParser","BASE_CAMPAIGN","EMPTY_VALUE","MKTG","CampaignTracker","constructor","apiKey","options","storage","storageKey","parser","track","onNewCampaign","disabled","Boolean","trackNewCampaigns","trackPageViews","excludeReferrers","location","unshift","hostname","initialEmptyValue","isNewCampaign","currentCampaign","previousCampaign","isReferrerExcluded","referring_domain","includes","hasNewUtm","utm_campaign","utm_source","utm_medium","utm_term","utm_content","hasNewReferrer","saveCampaignToStorage","campaign","set","getCampaignFromStorage","get","createCampaignEvent","campaignParameters","identifyEvent","Object","entries","reduce","identify","key","value","setOnce","unset","pageViewEvent","event_type","event_properties","page_title","document","title","page_location","href","page_path","pathname","send","isNewSession","parse"],"sources":["campaign-tracker.ts"],"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"],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- export const UTM_SOURCE = 'utm_source';
2
- export const UTM_MEDIUM = 'utm_medium';
3
- export const UTM_CAMPAIGN = 'utm_campaign';
4
- export const UTM_TERM = 'utm_term';
5
- export const UTM_CONTENT = 'utm_content';
6
- export const UTMZ_SOURCE = 'utmcsr';
7
- export const UTMZ_MEDIUM = 'utmcmd';
8
- export const UTMZ_CAMPAIGN = 'utmccn';
9
- export const UTMZ_TERM = 'utmctr';
10
- export const UTMZ_CONTENT = 'utmcct';
11
- export const GCLID = 'gclid';
12
- export const FBCLID = 'fbclid';
13
- export const EMPTY_VALUE = 'EMPTY';
14
- export const BASE_CAMPAIGN = {
15
- utm_source: undefined,
16
- utm_medium: undefined,
17
- utm_campaign: undefined,
18
- utm_term: undefined,
19
- utm_content: undefined,
20
- referrer: undefined,
21
- referring_domain: undefined,
22
- gclid: undefined,
23
- fbclid: undefined
24
- };
25
- export const MKTG = 'MKTG';
26
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["UTM_SOURCE","UTM_MEDIUM","UTM_CAMPAIGN","UTM_TERM","UTM_CONTENT","UTMZ_SOURCE","UTMZ_MEDIUM","UTMZ_CAMPAIGN","UTMZ_TERM","UTMZ_CONTENT","GCLID","FBCLID","EMPTY_VALUE","BASE_CAMPAIGN","utm_source","undefined","utm_medium","utm_campaign","utm_term","utm_content","referrer","referring_domain","gclid","fbclid","MKTG"],"sources":["constants.ts"],"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 GCLID = 'gclid';\nexport const FBCLID = 'fbclid';\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"],"mappings":"AAEA,OAAO,MAAMA,UAAU,GAAG,YAAnB;AACP,OAAO,MAAMC,UAAU,GAAG,YAAnB;AACP,OAAO,MAAMC,YAAY,GAAG,cAArB;AACP,OAAO,MAAMC,QAAQ,GAAG,UAAjB;AACP,OAAO,MAAMC,WAAW,GAAG,aAApB;AAEP,OAAO,MAAMC,WAAW,GAAG,QAApB;AACP,OAAO,MAAMC,WAAW,GAAG,QAApB;AACP,OAAO,MAAMC,aAAa,GAAG,QAAtB;AACP,OAAO,MAAMC,SAAS,GAAG,QAAlB;AACP,OAAO,MAAMC,YAAY,GAAG,QAArB;AAEP,OAAO,MAAMC,KAAK,GAAG,OAAd;AACP,OAAO,MAAMC,MAAM,GAAG,QAAf;AAEP,OAAO,MAAMC,WAAW,GAAG,OAApB;AAEP,OAAO,MAAMC,aAAuB,GAAG;EACrCC,UAAU,EAAEC,SADyB;EAErCC,UAAU,EAAED,SAFyB;EAGrCE,YAAY,EAAEF,SAHuB;EAIrCG,QAAQ,EAAEH,SAJ2B;EAKrCI,WAAW,EAAEJ,SALwB;EAMrCK,QAAQ,EAAEL,SAN2B;EAOrCM,gBAAgB,EAAEN,SAPmB;EAQrCO,KAAK,EAAEP,SAR8B;EASrCQ,MAAM,EAAER;AAT6B,CAAhC;AAYP,OAAO,MAAMS,IAAI,GAAG,MAAb"}
@@ -1,29 +0,0 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- import { PluginType } from '@amplitude/analytics-types';
4
- import { getAnalyticsConnector } from '../utils/analytics-connector';
5
- export class IdentityEventSender {
6
- constructor() {
7
- _defineProperty(this, "name", 'identity');
8
-
9
- _defineProperty(this, "type", PluginType.BEFORE);
10
-
11
- _defineProperty(this, "identityStore", getAnalyticsConnector().identityStore);
12
- }
13
-
14
- async execute(context) {
15
- const userProperties = context.user_properties;
16
-
17
- if (userProperties) {
18
- this.identityStore.editIdentity().updateUserProperties(userProperties).commit();
19
- }
20
-
21
- return context;
22
- }
23
-
24
- setup(_) {
25
- return Promise.resolve(undefined);
26
- }
27
-
28
- }
29
- //# sourceMappingURL=identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["PluginType","getAnalyticsConnector","IdentityEventSender","BEFORE","identityStore","execute","context","userProperties","user_properties","editIdentity","updateUserProperties","commit","setup","_","Promise","resolve","undefined"],"sources":["identity.ts"],"sourcesContent":["import { BeforePlugin, PluginType, Event, Config } from '@amplitude/analytics-types';\nimport { getAnalyticsConnector } from '../utils/analytics-connector';\n\nexport class IdentityEventSender implements BeforePlugin {\n name = 'identity';\n type = PluginType.BEFORE as const;\n\n identityStore = getAnalyticsConnector().identityStore;\n\n async execute(context: Event): Promise<Event> {\n const userProperties = context.user_properties as Record<string, any>;\n if (userProperties) {\n this.identityStore.editIdentity().updateUserProperties(userProperties).commit();\n }\n return context;\n }\n\n setup(_: Config): Promise<undefined> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";;AAAA,SAAuBA,UAAvB,QAAwD,4BAAxD;AACA,SAASC,qBAAT,QAAsC,8BAAtC;AAEA,OAAO,MAAMC,mBAAN,CAAkD;EAAA;IAAA,8BAChD,UADgD;;IAAA,8BAEhDF,UAAU,CAACG,MAFqC;;IAAA,uCAIvCF,qBAAqB,GAAGG,aAJe;EAAA;;EAM1C,MAAPC,OAAO,CAACC,OAAD,EAAiC;IAC5C,MAAMC,cAAc,GAAGD,OAAO,CAACE,eAA/B;;IACA,IAAID,cAAJ,EAAoB;MAClB,KAAKH,aAAL,CAAmBK,YAAnB,GAAkCC,oBAAlC,CAAuDH,cAAvD,EAAuEI,MAAvE;IACD;;IACD,OAAOL,OAAP;EACD;;EAEDM,KAAK,CAACC,CAAD,EAAgC;IACnC,OAAOC,OAAO,CAACC,OAAR,CAAgBC,SAAhB,CAAP;EACD;;AAhBsD"}
@@ -1,104 +0,0 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- import { getCookieName as getStorageKey } from './utils/cookie-name';
4
- export class SessionManager {
5
- constructor(storage, apiKey) {
6
- this.storage = storage;
7
-
8
- _defineProperty(this, "storageKey", void 0);
9
-
10
- _defineProperty(this, "cache", void 0);
11
-
12
- _defineProperty(this, "isSessionCacheValid", true);
13
-
14
- this.storageKey = getStorageKey(apiKey);
15
- this.cache = {
16
- optOut: false
17
- };
18
- }
19
- /**
20
- * load() must be called immediately after instantation
21
- *
22
- * ```ts
23
- * await new SessionManager(...).load();
24
- * ```
25
- */
26
-
27
-
28
- async load() {
29
- var _await$this$storage$g;
30
-
31
- this.cache = (_await$this$storage$g = await this.storage.get(this.storageKey)) !== null && _await$this$storage$g !== void 0 ? _await$this$storage$g : {
32
- optOut: false
33
- };
34
- return this;
35
- }
36
-
37
- setSession(session) {
38
- this.cache = { ...this.cache,
39
- ...session
40
- };
41
- void this.storage.set(this.storageKey, this.cache);
42
- }
43
-
44
- getSessionId() {
45
- this.isSessionCacheValid = true;
46
- void this.storage.get(this.storageKey).then(userSession => {
47
- // Checks if session id has been set since the last get
48
- if (this.isSessionCacheValid) {
49
- this.cache.sessionId = userSession === null || userSession === void 0 ? void 0 : userSession.sessionId;
50
- }
51
- });
52
- return this.cache.sessionId;
53
- }
54
-
55
- setSessionId(sessionId) {
56
- // Flags session id has been set
57
- this.isSessionCacheValid = false;
58
- this.setSession({
59
- sessionId
60
- });
61
- }
62
-
63
- getDeviceId() {
64
- return this.cache.deviceId;
65
- }
66
-
67
- setDeviceId(deviceId) {
68
- this.setSession({
69
- deviceId
70
- });
71
- }
72
-
73
- getUserId() {
74
- return this.cache.userId;
75
- }
76
-
77
- setUserId(userId) {
78
- this.setSession({
79
- userId
80
- });
81
- }
82
-
83
- getLastEventTime() {
84
- return this.cache.lastEventTime;
85
- }
86
-
87
- setLastEventTime(lastEventTime) {
88
- this.setSession({
89
- lastEventTime
90
- });
91
- }
92
-
93
- getOptOut() {
94
- return this.cache.optOut;
95
- }
96
-
97
- setOptOut(optOut) {
98
- this.setSession({
99
- optOut
100
- });
101
- }
102
-
103
- }
104
- //# sourceMappingURL=session-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getCookieName","getStorageKey","SessionManager","constructor","storage","apiKey","storageKey","cache","optOut","load","get","setSession","session","set","getSessionId","isSessionCacheValid","then","userSession","sessionId","setSessionId","getDeviceId","deviceId","setDeviceId","getUserId","userId","setUserId","getLastEventTime","lastEventTime","setLastEventTime","getOptOut","setOptOut"],"sources":["session-manager.ts"],"sourcesContent":["import { UserSession, Storage, SessionManager as ISessionManager } from '@amplitude/analytics-types';\nimport { getCookieName as getStorageKey } from './utils/cookie-name';\n\nexport class SessionManager implements ISessionManager {\n storageKey: string;\n cache: UserSession;\n isSessionCacheValid = true;\n\n constructor(private storage: Storage<UserSession>, apiKey: string) {\n this.storageKey = getStorageKey(apiKey);\n this.cache = { optOut: false };\n }\n\n /**\n * load() must be called immediately after instantation\n *\n * ```ts\n * await new SessionManager(...).load();\n * ```\n */\n async load() {\n this.cache = (await this.storage.get(this.storageKey)) ?? {\n optOut: false,\n };\n return this;\n }\n\n setSession(session: Partial<UserSession>) {\n this.cache = { ...this.cache, ...session };\n void this.storage.set(this.storageKey, this.cache);\n }\n\n getSessionId() {\n this.isSessionCacheValid = true;\n void this.storage.get(this.storageKey).then((userSession) => {\n // Checks if session id has been set since the last get\n if (this.isSessionCacheValid) {\n this.cache.sessionId = userSession?.sessionId;\n }\n });\n return this.cache.sessionId;\n }\n\n setSessionId(sessionId: number) {\n // Flags session id has been set\n this.isSessionCacheValid = false;\n this.setSession({ sessionId });\n }\n\n getDeviceId(): string | undefined {\n return this.cache.deviceId;\n }\n\n setDeviceId(deviceId: string): void {\n this.setSession({ deviceId });\n }\n\n getUserId(): string | undefined {\n return this.cache.userId;\n }\n\n setUserId(userId: string): void {\n this.setSession({ userId });\n }\n\n getLastEventTime() {\n return this.cache.lastEventTime;\n }\n\n setLastEventTime(lastEventTime: number) {\n this.setSession({ lastEventTime });\n }\n\n getOptOut(): boolean {\n return this.cache.optOut;\n }\n\n setOptOut(optOut: boolean): void {\n this.setSession({ optOut });\n }\n}\n"],"mappings":";;AACA,SAASA,aAAa,IAAIC,aAA1B,QAA+C,qBAA/C;AAEA,OAAO,MAAMC,cAAN,CAAgD;EAKrDC,WAAW,CAASC,OAAT,EAAwCC,MAAxC,EAAwD;IAAA,KAA/CD,OAA+C,GAA/CA,OAA+C;;IAAA;;IAAA;;IAAA,6CAF7C,IAE6C;;IACjE,KAAKE,UAAL,GAAkBL,aAAa,CAACI,MAAD,CAA/B;IACA,KAAKE,KAAL,GAAa;MAAEC,MAAM,EAAE;IAAV,CAAb;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;;;EACY,MAAJC,IAAI,GAAG;IAAA;;IACX,KAAKF,KAAL,4BAAc,MAAM,KAAKH,OAAL,CAAaM,GAAb,CAAiB,KAAKJ,UAAtB,CAApB,yEAA0D;MACxDE,MAAM,EAAE;IADgD,CAA1D;IAGA,OAAO,IAAP;EACD;;EAEDG,UAAU,CAACC,OAAD,EAAgC;IACxC,KAAKL,KAAL,GAAa,EAAE,GAAG,KAAKA,KAAV;MAAiB,GAAGK;IAApB,CAAb;IACA,KAAK,KAAKR,OAAL,CAAaS,GAAb,CAAiB,KAAKP,UAAtB,EAAkC,KAAKC,KAAvC,CAAL;EACD;;EAEDO,YAAY,GAAG;IACb,KAAKC,mBAAL,GAA2B,IAA3B;IACA,KAAK,KAAKX,OAAL,CAAaM,GAAb,CAAiB,KAAKJ,UAAtB,EAAkCU,IAAlC,CAAwCC,WAAD,IAAiB;MAC3D;MACA,IAAI,KAAKF,mBAAT,EAA8B;QAC5B,KAAKR,KAAL,CAAWW,SAAX,GAAuBD,WAAvB,aAAuBA,WAAvB,uBAAuBA,WAAW,CAAEC,SAApC;MACD;IACF,CALI,CAAL;IAMA,OAAO,KAAKX,KAAL,CAAWW,SAAlB;EACD;;EAEDC,YAAY,CAACD,SAAD,EAAoB;IAC9B;IACA,KAAKH,mBAAL,GAA2B,KAA3B;IACA,KAAKJ,UAAL,CAAgB;MAAEO;IAAF,CAAhB;EACD;;EAEDE,WAAW,GAAuB;IAChC,OAAO,KAAKb,KAAL,CAAWc,QAAlB;EACD;;EAEDC,WAAW,CAACD,QAAD,EAAyB;IAClC,KAAKV,UAAL,CAAgB;MAAEU;IAAF,CAAhB;EACD;;EAEDE,SAAS,GAAuB;IAC9B,OAAO,KAAKhB,KAAL,CAAWiB,MAAlB;EACD;;EAEDC,SAAS,CAACD,MAAD,EAAuB;IAC9B,KAAKb,UAAL,CAAgB;MAAEa;IAAF,CAAhB;EACD;;EAEDE,gBAAgB,GAAG;IACjB,OAAO,KAAKnB,KAAL,CAAWoB,aAAlB;EACD;;EAEDC,gBAAgB,CAACD,aAAD,EAAwB;IACtC,KAAKhB,UAAL,CAAgB;MAAEgB;IAAF,CAAhB;EACD;;EAEDE,SAAS,GAAY;IACnB,OAAO,KAAKtB,KAAL,CAAWC,MAAlB;EACD;;EAEDsB,SAAS,CAACtB,MAAD,EAAwB;IAC/B,KAAKG,UAAL,CAAgB;MAAEH;IAAF,CAAhB;EACD;;AA5EoD"}
@@ -1,114 +0,0 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- import { isNative } from '../utils/platform';
4
- export class CookieStorage {
5
- constructor(options) {
6
- _defineProperty(this, "options", void 0);
7
-
8
- this.options = { ...options
9
- };
10
- }
11
-
12
- async isEnabled() {
13
- /* istanbul ignore if */
14
- if (isNative() || typeof window === 'undefined') {
15
- return false;
16
- }
17
-
18
- const random = String(Date.now());
19
- const testStrorage = new CookieStorage(this.options);
20
- const testKey = 'AMP_TEST';
21
-
22
- try {
23
- await testStrorage.set(testKey, random);
24
- const value = await testStrorage.get(testKey);
25
- return value === random;
26
- } catch {
27
- /* istanbul ignore next */
28
- return false;
29
- } finally {
30
- await testStrorage.remove(testKey);
31
- }
32
- }
33
-
34
- async get(key) {
35
- let value = await this.getRaw(key);
36
-
37
- if (!value) {
38
- return undefined;
39
- }
40
-
41
- try {
42
- try {
43
- value = decodeURIComponent(atob(value));
44
- } catch {// value not encoded
45
- } // eslint-disable-next-line @typescript-eslint/no-unsafe-return
46
-
47
-
48
- return JSON.parse(value);
49
- } catch {
50
- /* istanbul ignore next */
51
- return undefined;
52
- }
53
- }
54
-
55
- async getRaw(key) {
56
- const cookie = window.document.cookie.split('; ');
57
- const match = cookie.find(c => c.indexOf(key + '=') === 0);
58
-
59
- if (!match) {
60
- return undefined;
61
- }
62
-
63
- return match.substring(key.length + 1);
64
- }
65
-
66
- async set(key, value) {
67
- try {
68
- var _this$options$expirat;
69
-
70
- const expirationDays = (_this$options$expirat = this.options.expirationDays) !== null && _this$options$expirat !== void 0 ? _this$options$expirat : 0;
71
- const expires = value !== null ? expirationDays : -1;
72
- let expireDate = undefined;
73
-
74
- if (expires) {
75
- const date = new Date();
76
- date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);
77
- expireDate = date;
78
- }
79
-
80
- let str = `${key}=${btoa(encodeURIComponent(JSON.stringify(value)))}`;
81
-
82
- if (expireDate) {
83
- str += `; expires=${expireDate.toUTCString()}`;
84
- }
85
-
86
- str += '; path=/';
87
-
88
- if (this.options.domain) {
89
- str += `; domain=${this.options.domain}`;
90
- }
91
-
92
- if (this.options.secure) {
93
- str += '; Secure';
94
- }
95
-
96
- if (this.options.sameSite) {
97
- str += `; SameSite=${this.options.sameSite}`;
98
- }
99
-
100
- window.document.cookie = str;
101
- } catch {//
102
- }
103
- }
104
-
105
- async remove(key) {
106
- await this.set(key, null);
107
- }
108
-
109
- async reset() {
110
- return;
111
- }
112
-
113
- }
114
- //# sourceMappingURL=cookie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["isNative","CookieStorage","constructor","options","isEnabled","window","random","String","Date","now","testStrorage","testKey","set","value","get","remove","key","getRaw","undefined","decodeURIComponent","atob","JSON","parse","cookie","document","split","match","find","c","indexOf","substring","length","expirationDays","expires","expireDate","date","setTime","getTime","str","btoa","encodeURIComponent","stringify","toUTCString","domain","secure","sameSite","reset"],"sources":["cookie.ts"],"sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\nimport { isNative } from '../utils/platform';\n\nexport class CookieStorage<T> implements Storage<T> {\n options: CookieStorageOptions;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n async isEnabled(): Promise<boolean> {\n /* istanbul ignore if */\n if (isNative() || typeof window === 'undefined') {\n return false;\n }\n\n const random = String(Date.now());\n const testStrorage = new CookieStorage<string>(this.options);\n const testKey = 'AMP_TEST';\n try {\n await testStrorage.set(testKey, random);\n const value = await testStrorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStrorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise<T | undefined> {\n let value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n try {\n try {\n value = decodeURIComponent(atob(value));\n } catch {\n // value not encoded\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n /* istanbul ignore next */\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise<string | undefined> {\n const cookie = window.document.cookie.split('; ');\n const match = cookie.find((c) => c.indexOf(key + '=') === 0);\n if (!match) {\n return undefined;\n }\n return match.substring(key.length + 1);\n }\n\n async set(key: string, value: T | null): Promise<void> {\n try {\n const expirationDays = this.options.expirationDays ?? 0;\n const expires = value !== null ? expirationDays : -1;\n let expireDate: Date | undefined = undefined;\n if (expires) {\n const date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n let str = `${key}=${btoa(encodeURIComponent(JSON.stringify(value)))}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (this.options.domain) {\n str += `; domain=${this.options.domain}`;\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += `; SameSite=${this.options.sameSite}`;\n }\n window.document.cookie = str;\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise<void> {\n await this.set(key, null);\n }\n\n async reset(): Promise<void> {\n return;\n }\n}\n"],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import { CookieStorage } from './cookie';
2
- export class UTMCookie extends CookieStorage {
3
- async get(key) {
4
- try {
5
- const value = await this.getRaw(key);
6
-
7
- if (!value) {
8
- return undefined;
9
- }
10
-
11
- const entries = value.split('.').splice(-1)[0].split('|');
12
- return entries.reduce((acc, curr) => {
13
- const [key, value = ''] = curr.split('=', 2);
14
-
15
- if (!value) {
16
- return acc;
17
- }
18
-
19
- acc[key] = decodeURIComponent(value);
20
- return acc;
21
- }, {});
22
- } catch {
23
- return undefined;
24
- }
25
- }
26
-
27
- async set() {
28
- return undefined;
29
- }
30
-
31
- }
32
- //# sourceMappingURL=utm-cookie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["CookieStorage","UTMCookie","get","key","value","getRaw","undefined","entries","split","splice","reduce","acc","curr","decodeURIComponent","set"],"sources":["utm-cookie.ts"],"sourcesContent":["import { CookieStorage } from './cookie';\n\nexport class UTMCookie extends CookieStorage<Record<string, string | undefined>> {\n async get(key: string): Promise<Record<string, string | undefined> | undefined> {\n try {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n const entries = value.split('.').splice(-1)[0].split('|');\n return entries.reduce<Record<string, string | undefined>>((acc, curr) => {\n const [key, value = ''] = curr.split('=', 2);\n if (!value) {\n return acc;\n }\n acc[key] = decodeURIComponent(value);\n return acc;\n }, {});\n } catch {\n return undefined;\n }\n }\n\n async set(): Promise<void> {\n return undefined;\n }\n}\n"],"mappings":"AAAA,SAASA,aAAT,QAA8B,UAA9B;AAEA,OAAO,MAAMC,SAAN,SAAwBD,aAAxB,CAA0E;EACtE,MAAHE,GAAG,CAACC,GAAD,EAAuE;IAC9E,IAAI;MACF,MAAMC,KAAK,GAAG,MAAM,KAAKC,MAAL,CAAYF,GAAZ,CAApB;;MACA,IAAI,CAACC,KAAL,EAAY;QACV,OAAOE,SAAP;MACD;;MACD,MAAMC,OAAO,GAAGH,KAAK,CAACI,KAAN,CAAY,GAAZ,EAAiBC,MAAjB,CAAwB,CAAC,CAAzB,EAA4B,CAA5B,EAA+BD,KAA/B,CAAqC,GAArC,CAAhB;MACA,OAAOD,OAAO,CAACG,MAAR,CAAmD,CAACC,GAAD,EAAMC,IAAN,KAAe;QACvE,MAAM,CAACT,GAAD,EAAMC,KAAK,GAAG,EAAd,IAAoBQ,IAAI,CAACJ,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAA1B;;QACA,IAAI,CAACJ,KAAL,EAAY;UACV,OAAOO,GAAP;QACD;;QACDA,GAAG,CAACR,GAAD,CAAH,GAAWU,kBAAkB,CAACT,KAAD,CAA7B;QACA,OAAOO,GAAP;MACD,CAPM,EAOJ,EAPI,CAAP;IAQD,CAdD,CAcE,MAAM;MACN,OAAOL,SAAP;IACD;EACF;;EAEQ,MAAHQ,GAAG,GAAkB;IACzB,OAAOR,SAAP;EACD;;AAvB8E"}
@@ -1,24 +0,0 @@
1
- import { BaseTransport } from '@amplitude/analytics-core';
2
- export class FetchTransport extends BaseTransport {
3
- async send(serverUrl, payload) {
4
- /* istanbul ignore if */
5
- if (typeof fetch === 'undefined') {
6
- throw new Error('FetchTransport is not supported');
7
- }
8
-
9
- const options = {
10
- headers: {
11
- 'Content-Type': 'application/json',
12
- Accept: '*/*'
13
- },
14
- body: JSON.stringify(payload),
15
- method: 'POST'
16
- };
17
- const response = await fetch(serverUrl, options); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
18
-
19
- const responsePayload = await response.json();
20
- return this.buildResponse(responsePayload);
21
- }
22
-
23
- }
24
- //# sourceMappingURL=fetch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["BaseTransport","FetchTransport","send","serverUrl","payload","fetch","Error","options","headers","Accept","body","JSON","stringify","method","response","responsePayload","json","buildResponse"],"sources":["fetch.ts"],"sourcesContent":["import { BaseTransport } from '@amplitude/analytics-core';\nimport { Payload, Response, Transport } from '@amplitude/analytics-types';\n\nexport class FetchTransport extends BaseTransport implements Transport {\n async send(serverUrl: string, payload: Payload): Promise<Response | null> {\n /* istanbul ignore if */\n if (typeof fetch === 'undefined') {\n throw new Error('FetchTransport is not supported');\n }\n const options: RequestInit = {\n headers: {\n 'Content-Type': 'application/json',\n Accept: '*/*',\n },\n body: JSON.stringify(payload),\n method: 'POST',\n };\n const response = await fetch(serverUrl, options);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const responsePayload: Record<string, any> = await response.json();\n return this.buildResponse(responsePayload);\n }\n}\n"],"mappings":"AAAA,SAASA,aAAT,QAA8B,2BAA9B;AAGA,OAAO,MAAMC,cAAN,SAA6BD,aAA7B,CAAgE;EAC3D,MAAJE,IAAI,CAACC,SAAD,EAAoBC,OAApB,EAAgE;IACxE;IACA,IAAI,OAAOC,KAAP,KAAiB,WAArB,EAAkC;MAChC,MAAM,IAAIC,KAAJ,CAAU,iCAAV,CAAN;IACD;;IACD,MAAMC,OAAoB,GAAG;MAC3BC,OAAO,EAAE;QACP,gBAAgB,kBADT;QAEPC,MAAM,EAAE;MAFD,CADkB;MAK3BC,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeR,OAAf,CALqB;MAM3BS,MAAM,EAAE;IANmB,CAA7B;IAQA,MAAMC,QAAQ,GAAG,MAAMT,KAAK,CAACF,SAAD,EAAYI,OAAZ,CAA5B,CAbwE,CAcxE;;IACA,MAAMQ,eAAoC,GAAG,MAAMD,QAAQ,CAACE,IAAT,EAAnD;IACA,OAAO,KAAKC,aAAL,CAAmBF,eAAnB,CAAP;EACD;;AAlBoE"}
@@ -1,5 +0,0 @@
1
- import { AnalyticsConnector } from '@amplitude/analytics-connector';
2
- export const getAnalyticsConnector = () => {
3
- return AnalyticsConnector.getInstance('$default_instance');
4
- };
5
- //# sourceMappingURL=analytics-connector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["AnalyticsConnector","getAnalyticsConnector","getInstance"],"sources":["analytics-connector.ts"],"sourcesContent":["import { AnalyticsConnector } from '@amplitude/analytics-connector';\n\nexport const getAnalyticsConnector = (): AnalyticsConnector => {\n return AnalyticsConnector.getInstance('$default_instance');\n};\n"],"mappings":"AAAA,SAASA,kBAAT,QAAmC,gCAAnC;AAEA,OAAO,MAAMC,qBAAqB,GAAG,MAA0B;EAC7D,OAAOD,kBAAkB,CAACE,WAAnB,CAA+B,mBAA/B,CAAP;AACD,CAFM"}
@@ -1,10 +0,0 @@
1
- import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';
2
- export const getCookieName = function (apiKey) {
3
- let postKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
4
- let limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
5
- return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');
6
- };
7
- export const getOldCookieName = apiKey => {
8
- return `${AMPLITUDE_PREFIX.toLowerCase()}_${apiKey.substring(0, 6)}`;
9
- };
10
- //# sourceMappingURL=cookie-name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["AMPLITUDE_PREFIX","getCookieName","apiKey","postKey","limit","substring","filter","Boolean","join","getOldCookieName","toLowerCase"],"sources":["cookie-name.ts"],"sourcesContent":["import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';\n\nexport const getCookieName = (apiKey: string, postKey = '', limit = 10) => {\n return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');\n};\n\nexport const getOldCookieName = (apiKey: string) => {\n return `${AMPLITUDE_PREFIX.toLowerCase()}_${apiKey.substring(0, 6)}`;\n};\n"],"mappings":"AAAA,SAASA,gBAAT,QAAiC,2BAAjC;AAEA,OAAO,MAAMC,aAAa,GAAG,UAACC,MAAD,EAA8C;EAAA,IAA7BC,OAA6B,uEAAnB,EAAmB;EAAA,IAAfC,KAAe,uEAAP,EAAO;EACzE,OAAO,CAACJ,gBAAD,EAAmBG,OAAnB,EAA4BD,MAAM,CAACG,SAAP,CAAiB,CAAjB,EAAoBD,KAApB,CAA5B,EAAwDE,MAAxD,CAA+DC,OAA/D,EAAwEC,IAAxE,CAA6E,GAA7E,CAAP;AACD,CAFM;AAIP,OAAO,MAAMC,gBAAgB,GAAIP,MAAD,IAAoB;EAClD,OAAQ,GAAEF,gBAAgB,CAACU,WAAjB,EAA+B,IAAGR,MAAM,CAACG,SAAP,CAAiB,CAAjB,EAAoB,CAApB,CAAuB,EAAnE;AACD,CAFM"}
@@ -1,9 +0,0 @@
1
- export const getLanguage = () => {
2
- var _ref, _ref2, _navigator$languages$, _navigator$languages;
3
-
4
- if (typeof navigator === 'undefined') return ''; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
5
-
6
- const userLanguage = navigator.userLanguage;
7
- return (_ref = (_ref2 = (_navigator$languages$ = (_navigator$languages = navigator.languages) === null || _navigator$languages === void 0 ? void 0 : _navigator$languages[0]) !== null && _navigator$languages$ !== void 0 ? _navigator$languages$ : navigator.language) !== null && _ref2 !== void 0 ? _ref2 : userLanguage) !== null && _ref !== void 0 ? _ref : '';
8
- };
9
- //# sourceMappingURL=language.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getLanguage","navigator","userLanguage","languages","language"],"sources":["language.ts"],"sourcesContent":["export const getLanguage = (): string => {\n if (typeof navigator === 'undefined') return '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const userLanguage = (navigator as any).userLanguage as string | undefined;\n\n return navigator.languages?.[0] ?? navigator.language ?? userLanguage ?? '';\n};\n"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,MAAc;EAAA;;EACvC,IAAI,OAAOC,SAAP,KAAqB,WAAzB,EAAsC,OAAO,EAAP,CADC,CAEvC;;EACA,MAAMC,YAAY,GAAID,SAAD,CAAmBC,YAAxC;EAEA,yEAAOD,SAAS,CAACE,SAAjB,yDAAO,qBAAsB,CAAtB,CAAP,yEAAmCF,SAAS,CAACG,QAA7C,yCAAyDF,YAAzD,uCAAyE,EAAzE;AACD,CANM"}
@@ -1,31 +0,0 @@
1
- export const getQueryParams = () => {
2
- /* istanbul ignore if */
3
- if (typeof window === 'undefined') {
4
- return {};
5
- }
6
-
7
- const pairs = window.location.search.substring(1).split('&').filter(Boolean);
8
- const params = pairs.reduce((acc, curr) => {
9
- const query = curr.split('=', 2);
10
- const key = tryDecodeURIComponent(query[0]);
11
- const value = tryDecodeURIComponent(query[1]);
12
-
13
- if (!value) {
14
- return acc;
15
- }
16
-
17
- acc[key] = value;
18
- return acc;
19
- }, {});
20
- return params;
21
- };
22
- export const tryDecodeURIComponent = function () {
23
- let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
24
-
25
- try {
26
- return decodeURIComponent(value);
27
- } catch {
28
- return '';
29
- }
30
- };
31
- //# sourceMappingURL=query-params.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getQueryParams","window","pairs","location","search","substring","split","filter","Boolean","params","reduce","acc","curr","query","key","tryDecodeURIComponent","value","decodeURIComponent"],"sources":["query-params.ts"],"sourcesContent":["export const getQueryParams = (): Record<string, string | undefined> => {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return {};\n }\n const pairs = window.location.search.substring(1).split('&').filter(Boolean);\n const params = pairs.reduce<Record<string, string | undefined>>((acc, curr) => {\n const query = curr.split('=', 2);\n const key = tryDecodeURIComponent(query[0]);\n const value = tryDecodeURIComponent(query[1]);\n if (!value) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n return params;\n};\n\nexport const tryDecodeURIComponent = (value = '') => {\n try {\n return decodeURIComponent(value);\n } catch {\n return '';\n }\n};\n"],"mappings":"AAAA,OAAO,MAAMA,cAAc,GAAG,MAA0C;EACtE;EACA,IAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;IACjC,OAAO,EAAP;EACD;;EACD,MAAMC,KAAK,GAAGD,MAAM,CAACE,QAAP,CAAgBC,MAAhB,CAAuBC,SAAvB,CAAiC,CAAjC,EAAoCC,KAApC,CAA0C,GAA1C,EAA+CC,MAA/C,CAAsDC,OAAtD,CAAd;EACA,MAAMC,MAAM,GAAGP,KAAK,CAACQ,MAAN,CAAiD,CAACC,GAAD,EAAMC,IAAN,KAAe;IAC7E,MAAMC,KAAK,GAAGD,IAAI,CAACN,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAd;IACA,MAAMQ,GAAG,GAAGC,qBAAqB,CAACF,KAAK,CAAC,CAAD,CAAN,CAAjC;IACA,MAAMG,KAAK,GAAGD,qBAAqB,CAACF,KAAK,CAAC,CAAD,CAAN,CAAnC;;IACA,IAAI,CAACG,KAAL,EAAY;MACV,OAAOL,GAAP;IACD;;IACDA,GAAG,CAACG,GAAD,CAAH,GAAWE,KAAX;IACA,OAAOL,GAAP;EACD,CATc,EASZ,EATY,CAAf;EAUA,OAAOF,MAAP;AACD,CAjBM;AAmBP,OAAO,MAAMM,qBAAqB,GAAG,YAAgB;EAAA,IAAfC,KAAe,uEAAP,EAAO;;EACnD,IAAI;IACF,OAAOC,kBAAkB,CAACD,KAAD,CAAzB;EACD,CAFD,CAEE,MAAM;IACN,OAAO,EAAP;EACD;AACF,CANM"}
@@ -1,10 +0,0 @@
1
- import { UTMCookie } from '../storage/utm-cookie';
2
- import { Campaign, CampaignParser as ICampaignParser, ClickIdParameters, ReferrerParameters, UTMParameters } from '@amplitude/analytics-types';
3
- export declare class CampaignParser implements ICampaignParser {
4
- utmCookieStorage: UTMCookie;
5
- parse(): Promise<Campaign>;
6
- getUtmParam(): Promise<UTMParameters>;
7
- getReferrer(): ReferrerParameters;
8
- getClickIds(): ClickIdParameters;
9
- }
10
- //# sourceMappingURL=campaign-parser.d.ts.map
@@ -1 +0,0 @@
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"}