@amplitude/analytics-react-native 0.0.1-dev.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.
- package/README.md +0 -0
- package/amplitude-react-native.podspec +21 -0
- package/android/build.gradle +61 -0
- package/android/gradle.properties +3 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/amplitude/reactnative/AmplitudeReactNativeModule.kt +36 -0
- package/android/src/main/java/com/amplitude/reactnative/AmplitudeReactNativePackage.java +28 -0
- package/android/src/main/java/com/amplitude/reactnative/AndroidContextProvider.kt +415 -0
- package/android/src/main/java/com/amplitude/reactnative/AndroidLogger.kt +56 -0
- package/android/src/main/java/com/amplitude/reactnative/Utils.kt +34 -0
- package/ios/AmplitudeReactNative-Bridging-Header.h +5 -0
- package/ios/AmplitudeReactNative.m +7 -0
- package/ios/AmplitudeReactNative.swift +29 -0
- package/ios/AmplitudeReactNative.xcodeproj/project.pbxproj +293 -0
- package/ios/AppleContextProvider.swift +219 -0
- package/lib/commonjs/attribution/campaign-parser.js +74 -0
- package/lib/commonjs/attribution/campaign-parser.js.map +1 -0
- package/lib/commonjs/attribution/campaign-tracker.js +133 -0
- package/lib/commonjs/attribution/campaign-tracker.js.map +1 -0
- package/lib/commonjs/attribution/constants.js +47 -0
- package/lib/commonjs/attribution/constants.js.map +1 -0
- package/lib/commonjs/config.js +257 -0
- package/lib/commonjs/config.js.map +1 -0
- package/lib/commonjs/constants.js +31 -0
- package/lib/commonjs/constants.js.map +1 -0
- package/lib/commonjs/cookie-migration/index.js +74 -0
- package/lib/commonjs/cookie-migration/index.js.map +1 -0
- package/lib/commonjs/index.js +141 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/plugins/context.js +136 -0
- package/lib/commonjs/plugins/context.js.map +1 -0
- package/lib/commonjs/react-native-client.js +362 -0
- package/lib/commonjs/react-native-client.js.map +1 -0
- package/lib/commonjs/session-manager.js +114 -0
- package/lib/commonjs/session-manager.js.map +1 -0
- package/lib/commonjs/storage/cookie.js +124 -0
- package/lib/commonjs/storage/cookie.js.map +1 -0
- package/lib/commonjs/storage/local-storage.js +79 -0
- package/lib/commonjs/storage/local-storage.js.map +1 -0
- package/lib/commonjs/storage/utm-cookie.js +42 -0
- package/lib/commonjs/storage/utm-cookie.js.map +1 -0
- package/lib/commonjs/transports/fetch.js +34 -0
- package/lib/commonjs/transports/fetch.js.map +1 -0
- package/lib/commonjs/transports/send-beacon.js +43 -0
- package/lib/commonjs/transports/send-beacon.js.map +1 -0
- package/lib/commonjs/transports/xhr.js +54 -0
- package/lib/commonjs/transports/xhr.js.map +1 -0
- package/lib/commonjs/typings/browser-snippet.d.js +6 -0
- package/lib/commonjs/typings/browser-snippet.d.js.map +1 -0
- package/lib/commonjs/typings/ua-parser.d.js +2 -0
- package/lib/commonjs/typings/ua-parser.d.js.map +1 -0
- package/lib/commonjs/utils/cookie-name.js +23 -0
- package/lib/commonjs/utils/cookie-name.js.map +1 -0
- package/lib/commonjs/utils/language.js +18 -0
- package/lib/commonjs/utils/language.js.map +1 -0
- package/lib/commonjs/utils/platform.js +21 -0
- package/lib/commonjs/utils/platform.js.map +1 -0
- package/lib/commonjs/utils/query-params.js +36 -0
- package/lib/commonjs/utils/query-params.js.map +1 -0
- package/lib/commonjs/utils/snippet-helper.js +56 -0
- package/lib/commonjs/utils/snippet-helper.js.map +1 -0
- package/lib/commonjs/version.js +9 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/attribution/campaign-parser.js +62 -0
- package/lib/module/attribution/campaign-parser.js.map +1 -0
- package/lib/module/attribution/campaign-tracker.js +120 -0
- package/lib/module/attribution/campaign-tracker.js.map +1 -0
- package/lib/module/attribution/constants.js +26 -0
- package/lib/module/attribution/constants.js.map +1 -0
- package/lib/module/config.js +217 -0
- package/lib/module/config.js.map +1 -0
- package/lib/module/constants.js +13 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/cookie-migration/index.js +56 -0
- package/lib/module/cookie-migration/index.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/plugins/context.js +118 -0
- package/lib/module/plugins/context.js.map +1 -0
- package/lib/module/react-native-client.js +329 -0
- package/lib/module/react-native-client.js.map +1 -0
- package/lib/module/session-manager.js +104 -0
- package/lib/module/session-manager.js.map +1 -0
- package/lib/module/storage/cookie.js +114 -0
- package/lib/module/storage/cookie.js.map +1 -0
- package/lib/module/storage/local-storage.js +67 -0
- package/lib/module/storage/local-storage.js.map +1 -0
- package/lib/module/storage/utm-cookie.js +32 -0
- package/lib/module/storage/utm-cookie.js.map +1 -0
- package/lib/module/transports/fetch.js +24 -0
- package/lib/module/transports/fetch.js.map +1 -0
- package/lib/module/transports/send-beacon.js +33 -0
- package/lib/module/transports/send-beacon.js.map +1 -0
- package/lib/module/transports/xhr.js +44 -0
- package/lib/module/transports/xhr.js.map +1 -0
- package/lib/module/typings/browser-snippet.d.js +2 -0
- package/lib/module/typings/browser-snippet.d.js.map +1 -0
- package/lib/module/typings/ua-parser.d.js +2 -0
- package/lib/module/typings/ua-parser.d.js.map +1 -0
- package/lib/module/utils/cookie-name.js +10 -0
- package/lib/module/utils/cookie-name.js.map +1 -0
- package/lib/module/utils/language.js +9 -0
- package/lib/module/utils/language.js.map +1 -0
- package/lib/module/utils/platform.js +8 -0
- package/lib/module/utils/platform.js.map +1 -0
- package/lib/module/utils/query-params.js +26 -0
- package/lib/module/utils/query-params.js.map +1 -0
- package/lib/module/utils/snippet-helper.js +41 -0
- package/lib/module/utils/snippet-helper.js.map +1 -0
- package/lib/module/version.js +2 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/attribution/campaign-parser.d.ts +10 -0
- package/lib/typescript/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/typescript/attribution/campaign-tracker.d.ts +72 -0
- package/lib/typescript/attribution/campaign-tracker.d.ts.map +1 -0
- package/lib/typescript/attribution/constants.d.ts +17 -0
- package/lib/typescript/attribution/constants.d.ts.map +1 -0
- package/lib/typescript/config.d.ts +90 -0
- package/lib/typescript/config.d.ts.map +1 -0
- package/lib/typescript/constants.d.ts +13 -0
- package/lib/typescript/constants.d.ts.map +1 -0
- package/lib/typescript/cookie-migration/index.d.ts +5 -0
- package/lib/typescript/cookie-migration/index.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +6 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/plugins/context.d.ts +31 -0
- package/lib/typescript/plugins/context.d.ts.map +1 -0
- package/lib/typescript/react-native-client.d.ts +209 -0
- package/lib/typescript/react-native-client.d.ts.map +1 -0
- package/lib/typescript/session-manager.d.ts +28 -0
- package/lib/typescript/session-manager.d.ts.map +1 -0
- package/lib/typescript/storage/cookie.d.ts +12 -0
- package/lib/typescript/storage/cookie.d.ts.map +1 -0
- package/lib/typescript/storage/local-storage.d.ts +10 -0
- package/lib/typescript/storage/local-storage.d.ts.map +1 -0
- package/lib/typescript/storage/utm-cookie.d.ts +6 -0
- package/lib/typescript/storage/utm-cookie.d.ts.map +1 -0
- package/lib/typescript/transports/fetch.d.ts +6 -0
- package/lib/typescript/transports/fetch.d.ts.map +1 -0
- package/lib/typescript/transports/send-beacon.d.ts +6 -0
- package/lib/typescript/transports/send-beacon.d.ts.map +1 -0
- package/lib/typescript/transports/xhr.d.ts +7 -0
- package/lib/typescript/transports/xhr.d.ts.map +1 -0
- package/lib/typescript/utils/cookie-name.d.ts +3 -0
- package/lib/typescript/utils/cookie-name.d.ts.map +1 -0
- package/lib/typescript/utils/language.d.ts +2 -0
- package/lib/typescript/utils/language.d.ts.map +1 -0
- package/lib/typescript/utils/platform.d.ts +3 -0
- package/lib/typescript/utils/platform.d.ts.map +1 -0
- package/lib/typescript/utils/query-params.d.ts +2 -0
- package/lib/typescript/utils/query-params.d.ts.map +1 -0
- package/lib/typescript/utils/snippet-helper.d.ts +16 -0
- package/lib/typescript/utils/snippet-helper.d.ts.map +1 -0
- package/lib/typescript/version.d.ts +2 -0
- package/lib/typescript/version.d.ts.map +1 -0
- package/package.json +93 -0
- package/src/attribution/campaign-parser.ts +78 -0
- package/src/attribution/campaign-tracker.ts +112 -0
- package/src/attribution/constants.ts +32 -0
- package/src/config.ts +210 -0
- package/src/constants.ts +14 -0
- package/src/cookie-migration/index.ts +54 -0
- package/src/index.ts +23 -0
- package/src/plugins/context.ts +106 -0
- package/src/react-native-client.ts +349 -0
- package/src/session-manager.ts +81 -0
- package/src/storage/cookie.ts +95 -0
- package/src/storage/local-storage.ts +67 -0
- package/src/storage/utm-cookie.ts +27 -0
- package/src/transports/fetch.ts +23 -0
- package/src/transports/send-beacon.ts +34 -0
- package/src/transports/xhr.ts +36 -0
- package/src/typings/browser-snippet.d.ts +7 -0
- package/src/typings/ua-parser.d.ts +4 -0
- package/src/utils/cookie-name.ts +9 -0
- package/src/utils/language.ts +7 -0
- package/src/utils/platform.ts +9 -0
- package/src/utils/query-params.ts +21 -0
- package/src/utils/snippet-helper.ts +35 -0
- package/src/version.ts +1 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CampaignTracker = void 0;
|
|
7
|
+
|
|
8
|
+
var _analyticsCore = require("@amplitude/analytics-core");
|
|
9
|
+
|
|
10
|
+
var _cookieName = require("../utils/cookie-name");
|
|
11
|
+
|
|
12
|
+
var _campaignParser = require("./campaign-parser");
|
|
13
|
+
|
|
14
|
+
var _constants = require("./constants");
|
|
15
|
+
|
|
16
|
+
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; }
|
|
17
|
+
|
|
18
|
+
class CampaignTracker {
|
|
19
|
+
constructor(apiKey, options) {
|
|
20
|
+
var _options$excludeRefer, _options$initialEmpty;
|
|
21
|
+
|
|
22
|
+
_defineProperty(this, "storage", void 0);
|
|
23
|
+
|
|
24
|
+
_defineProperty(this, "storageKey", void 0);
|
|
25
|
+
|
|
26
|
+
_defineProperty(this, "parser", void 0);
|
|
27
|
+
|
|
28
|
+
_defineProperty(this, "track", void 0);
|
|
29
|
+
|
|
30
|
+
_defineProperty(this, "onNewCampaign", void 0);
|
|
31
|
+
|
|
32
|
+
_defineProperty(this, "disabled", void 0);
|
|
33
|
+
|
|
34
|
+
_defineProperty(this, "trackNewCampaigns", void 0);
|
|
35
|
+
|
|
36
|
+
_defineProperty(this, "trackPageViews", void 0);
|
|
37
|
+
|
|
38
|
+
_defineProperty(this, "excludeReferrers", void 0);
|
|
39
|
+
|
|
40
|
+
_defineProperty(this, "initialEmptyValue", void 0);
|
|
41
|
+
|
|
42
|
+
this.storage = options.storage;
|
|
43
|
+
this.storageKey = (0, _cookieName.getCookieName)(apiKey, _constants.MKTG);
|
|
44
|
+
this.parser = new _campaignParser.CampaignParser();
|
|
45
|
+
this.track = options.track;
|
|
46
|
+
this.onNewCampaign = options.onNewCampaign;
|
|
47
|
+
this.disabled = Boolean(options.disabled);
|
|
48
|
+
this.trackNewCampaigns = Boolean(options.trackNewCampaigns);
|
|
49
|
+
this.trackPageViews = options.trackPageViews === undefined || Boolean(options.trackPageViews);
|
|
50
|
+
this.excludeReferrers = (_options$excludeRefer = options.excludeReferrers) !== null && _options$excludeRefer !== void 0 ? _options$excludeRefer : [];
|
|
51
|
+
|
|
52
|
+
if (typeof location !== 'undefined') {
|
|
53
|
+
this.excludeReferrers.unshift(location.hostname);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
this.initialEmptyValue = (_options$initialEmpty = options.initialEmptyValue) !== null && _options$initialEmpty !== void 0 ? _options$initialEmpty : _constants.EMPTY_VALUE;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
isNewCampaign(currentCampaign, previousCampaign) {
|
|
60
|
+
const isReferrerExcluded = Boolean(currentCampaign.referring_domain && this.excludeReferrers.includes(currentCampaign.referring_domain));
|
|
61
|
+
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;
|
|
62
|
+
const hasNewReferrer = previousCampaign.referring_domain !== currentCampaign.referring_domain;
|
|
63
|
+
return !isReferrerExcluded && (hasNewUtm || hasNewReferrer);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async saveCampaignToStorage(campaign) {
|
|
67
|
+
await this.storage.set(this.storageKey, campaign);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
async getCampaignFromStorage() {
|
|
71
|
+
return (await this.storage.get(this.storageKey)) || { ..._constants.BASE_CAMPAIGN
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
createCampaignEvent(campaign) {
|
|
76
|
+
const campaignParameters = { // This object definition allows undefined keys to be iterated on
|
|
77
|
+
// in .reduce() to build indentify object
|
|
78
|
+
..._constants.BASE_CAMPAIGN,
|
|
79
|
+
...campaign
|
|
80
|
+
};
|
|
81
|
+
const identifyEvent = Object.entries(campaignParameters).reduce((identify, _ref) => {
|
|
82
|
+
let [key, value] = _ref;
|
|
83
|
+
identify.setOnce(`initial_${key}`, value || this.initialEmptyValue);
|
|
84
|
+
|
|
85
|
+
if (value) {
|
|
86
|
+
return identify.set(key, value);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return identify.unset(key);
|
|
90
|
+
}, new _analyticsCore.Identify());
|
|
91
|
+
const pageViewEvent = {
|
|
92
|
+
event_type: 'Page View',
|
|
93
|
+
event_properties: {
|
|
94
|
+
page_title:
|
|
95
|
+
/* istanbul ignore next */
|
|
96
|
+
typeof document !== 'undefined' && document.title || '',
|
|
97
|
+
page_location:
|
|
98
|
+
/* istanbul ignore next */
|
|
99
|
+
typeof location !== 'undefined' && location.href || '',
|
|
100
|
+
page_path:
|
|
101
|
+
/* istanbul ignore next */
|
|
102
|
+
typeof location !== 'undefined' && location.pathname || ''
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
return { ...(0, _analyticsCore.createIdentifyEvent)(identifyEvent),
|
|
106
|
+
...(this.trackPageViews && pageViewEvent)
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
async send(isNewSession) {
|
|
111
|
+
if (this.disabled) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const currentCampaign = await this.parser.parse();
|
|
116
|
+
const previousCampaign = await this.getCampaignFromStorage();
|
|
117
|
+
|
|
118
|
+
if (!isNewSession) {
|
|
119
|
+
if (!this.trackNewCampaigns || !this.isNewCampaign(currentCampaign, previousCampaign)) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
this.onNewCampaign(currentCampaign);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
await this.track(this.createCampaignEvent(currentCampaign));
|
|
127
|
+
await this.saveCampaignToStorage(currentCampaign);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
exports.CampaignTracker = CampaignTracker;
|
|
133
|
+
//# sourceMappingURL=campaign-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CampaignTracker","constructor","apiKey","options","storage","storageKey","getStorageKey","MKTG","parser","CampaignParser","track","onNewCampaign","disabled","Boolean","trackNewCampaigns","trackPageViews","undefined","excludeReferrers","location","unshift","hostname","initialEmptyValue","EMPTY_VALUE","isNewCampaign","currentCampaign","previousCampaign","isReferrerExcluded","referring_domain","includes","hasNewUtm","utm_campaign","utm_source","utm_medium","utm_term","utm_content","hasNewReferrer","saveCampaignToStorage","campaign","set","getCampaignFromStorage","get","BASE_CAMPAIGN","createCampaignEvent","campaignParameters","identifyEvent","Object","entries","reduce","identify","key","value","setOnce","unset","Identify","pageViewEvent","event_type","event_properties","page_title","document","title","page_location","href","page_path","pathname","createIdentifyEvent","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 = options.trackPageViews === undefined || Boolean(options.trackPageViews);\n this.excludeReferrers = options.excludeReferrers ?? [];\n if (typeof location !== 'undefined') {\n this.excludeReferrers.unshift(location.hostname);\n }\n this.initialEmptyValue = options.initialEmptyValue ?? EMPTY_VALUE;\n }\n\n isNewCampaign(currentCampaign: Campaign, previousCampaign: Campaign) {\n const isReferrerExcluded = Boolean(\n currentCampaign.referring_domain && this.excludeReferrers.includes(currentCampaign.referring_domain),\n );\n const hasNewUtm =\n previousCampaign.utm_campaign !== currentCampaign.utm_campaign ||\n previousCampaign.utm_source !== currentCampaign.utm_source ||\n previousCampaign.utm_medium !== currentCampaign.utm_medium ||\n previousCampaign.utm_term !== currentCampaign.utm_term ||\n previousCampaign.utm_content !== currentCampaign.utm_content;\n const hasNewReferrer = previousCampaign.referring_domain !== currentCampaign.referring_domain;\n\n return !isReferrerExcluded && (hasNewUtm || hasNewReferrer);\n }\n\n 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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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UTM_TERM = exports.UTM_SOURCE = exports.UTM_MEDIUM = exports.UTM_CONTENT = exports.UTM_CAMPAIGN = exports.UTMZ_TERM = exports.UTMZ_SOURCE = exports.UTMZ_MEDIUM = exports.UTMZ_CONTENT = exports.UTMZ_CAMPAIGN = exports.MKTG = exports.GCLID = exports.FBCLID = exports.EMPTY_VALUE = exports.BASE_CAMPAIGN = void 0;
|
|
7
|
+
const UTM_SOURCE = 'utm_source';
|
|
8
|
+
exports.UTM_SOURCE = UTM_SOURCE;
|
|
9
|
+
const UTM_MEDIUM = 'utm_medium';
|
|
10
|
+
exports.UTM_MEDIUM = UTM_MEDIUM;
|
|
11
|
+
const UTM_CAMPAIGN = 'utm_campaign';
|
|
12
|
+
exports.UTM_CAMPAIGN = UTM_CAMPAIGN;
|
|
13
|
+
const UTM_TERM = 'utm_term';
|
|
14
|
+
exports.UTM_TERM = UTM_TERM;
|
|
15
|
+
const UTM_CONTENT = 'utm_content';
|
|
16
|
+
exports.UTM_CONTENT = UTM_CONTENT;
|
|
17
|
+
const UTMZ_SOURCE = 'utmcsr';
|
|
18
|
+
exports.UTMZ_SOURCE = UTMZ_SOURCE;
|
|
19
|
+
const UTMZ_MEDIUM = 'utmcmd';
|
|
20
|
+
exports.UTMZ_MEDIUM = UTMZ_MEDIUM;
|
|
21
|
+
const UTMZ_CAMPAIGN = 'utmccn';
|
|
22
|
+
exports.UTMZ_CAMPAIGN = UTMZ_CAMPAIGN;
|
|
23
|
+
const UTMZ_TERM = 'utmctr';
|
|
24
|
+
exports.UTMZ_TERM = UTMZ_TERM;
|
|
25
|
+
const UTMZ_CONTENT = 'utmcct';
|
|
26
|
+
exports.UTMZ_CONTENT = UTMZ_CONTENT;
|
|
27
|
+
const GCLID = 'gclid';
|
|
28
|
+
exports.GCLID = GCLID;
|
|
29
|
+
const FBCLID = 'fbclid';
|
|
30
|
+
exports.FBCLID = FBCLID;
|
|
31
|
+
const EMPTY_VALUE = 'EMPTY';
|
|
32
|
+
exports.EMPTY_VALUE = EMPTY_VALUE;
|
|
33
|
+
const BASE_CAMPAIGN = {
|
|
34
|
+
utm_source: undefined,
|
|
35
|
+
utm_medium: undefined,
|
|
36
|
+
utm_campaign: undefined,
|
|
37
|
+
utm_term: undefined,
|
|
38
|
+
utm_content: undefined,
|
|
39
|
+
referrer: undefined,
|
|
40
|
+
referring_domain: undefined,
|
|
41
|
+
gclid: undefined,
|
|
42
|
+
fbclid: undefined
|
|
43
|
+
};
|
|
44
|
+
exports.BASE_CAMPAIGN = BASE_CAMPAIGN;
|
|
45
|
+
const MKTG = 'MKTG';
|
|
46
|
+
exports.MKTG = MKTG;
|
|
47
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":";;;;;;AAEO,MAAMA,UAAU,GAAG,YAAnB;;AACA,MAAMC,UAAU,GAAG,YAAnB;;AACA,MAAMC,YAAY,GAAG,cAArB;;AACA,MAAMC,QAAQ,GAAG,UAAjB;;AACA,MAAMC,WAAW,GAAG,aAApB;;AAEA,MAAMC,WAAW,GAAG,QAApB;;AACA,MAAMC,WAAW,GAAG,QAApB;;AACA,MAAMC,aAAa,GAAG,QAAtB;;AACA,MAAMC,SAAS,GAAG,QAAlB;;AACA,MAAMC,YAAY,GAAG,QAArB;;AAEA,MAAMC,KAAK,GAAG,OAAd;;AACA,MAAMC,MAAM,GAAG,QAAf;;AAEA,MAAMC,WAAW,GAAG,OAApB;;AAEA,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;;AAYA,MAAMS,IAAI,GAAG,MAAb"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useReactNativeConfig = exports.getDefaultConfig = exports.createTransport = exports.createFlexibleStorage = exports.createEventsStorage = exports.createDeviceId = exports.createCookieStorage = exports.ReactNativeConfig = void 0;
|
|
7
|
+
|
|
8
|
+
var _analyticsTypes = require("@amplitude/analytics-types");
|
|
9
|
+
|
|
10
|
+
var _analyticsCore = require("@amplitude/analytics-core");
|
|
11
|
+
|
|
12
|
+
var _cookie = require("./storage/cookie");
|
|
13
|
+
|
|
14
|
+
var _fetch = require("./transports/fetch");
|
|
15
|
+
|
|
16
|
+
var _localStorage = require("./storage/local-storage");
|
|
17
|
+
|
|
18
|
+
var _cookieName = require("./utils/cookie-name");
|
|
19
|
+
|
|
20
|
+
var _queryParams = require("./utils/query-params");
|
|
21
|
+
|
|
22
|
+
var _xhr = require("./transports/xhr");
|
|
23
|
+
|
|
24
|
+
var _sendBeacon = require("./transports/send-beacon");
|
|
25
|
+
|
|
26
|
+
var _sessionManager = require("./session-manager");
|
|
27
|
+
|
|
28
|
+
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; }
|
|
29
|
+
|
|
30
|
+
const getDefaultConfig = () => {
|
|
31
|
+
const cookieStorage = new _analyticsCore.MemoryStorage();
|
|
32
|
+
return {
|
|
33
|
+
cookieExpiration: 365,
|
|
34
|
+
cookieSameSite: 'Lax',
|
|
35
|
+
cookieSecure: false,
|
|
36
|
+
cookieStorage,
|
|
37
|
+
disableCookies: false,
|
|
38
|
+
domain: '',
|
|
39
|
+
sessionManager: new _sessionManager.SessionManager(cookieStorage, ''),
|
|
40
|
+
sessionTimeout: 30 * 60 * 1000,
|
|
41
|
+
storageProvider: new _analyticsCore.MemoryStorage(),
|
|
42
|
+
trackingOptions: {
|
|
43
|
+
city: true,
|
|
44
|
+
country: true,
|
|
45
|
+
carrier: true,
|
|
46
|
+
deviceManufacturer: true,
|
|
47
|
+
deviceModel: true,
|
|
48
|
+
dma: true,
|
|
49
|
+
ipAddress: true,
|
|
50
|
+
language: true,
|
|
51
|
+
osName: true,
|
|
52
|
+
osVersion: true,
|
|
53
|
+
platform: true,
|
|
54
|
+
region: true,
|
|
55
|
+
versionName: true
|
|
56
|
+
},
|
|
57
|
+
transportProvider: new _fetch.FetchTransport()
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
exports.getDefaultConfig = getDefaultConfig;
|
|
62
|
+
|
|
63
|
+
class ReactNativeConfig extends _analyticsCore.Config {
|
|
64
|
+
constructor(apiKey, userId, options) {
|
|
65
|
+
var _options$storageProvi, _options$transportPro, _options$cookieStorag, _options$sessionManag, _options$sessionTimeo, _options$cookieExpira, _options$cookieSameSi, _options$cookieSecure, _options$disableCooki, _options$domain, _this$lastEventTime, _options$trackingOpti;
|
|
66
|
+
|
|
67
|
+
const defaultConfig = getDefaultConfig();
|
|
68
|
+
super({ ...options,
|
|
69
|
+
apiKey,
|
|
70
|
+
storageProvider: (_options$storageProvi = options === null || options === void 0 ? void 0 : options.storageProvider) !== null && _options$storageProvi !== void 0 ? _options$storageProvi : defaultConfig.storageProvider,
|
|
71
|
+
transportProvider: (_options$transportPro = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _options$transportPro !== void 0 ? _options$transportPro : defaultConfig.transportProvider
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
_defineProperty(this, "appVersion", void 0);
|
|
75
|
+
|
|
76
|
+
_defineProperty(this, "cookieExpiration", void 0);
|
|
77
|
+
|
|
78
|
+
_defineProperty(this, "cookieSameSite", void 0);
|
|
79
|
+
|
|
80
|
+
_defineProperty(this, "cookieSecure", void 0);
|
|
81
|
+
|
|
82
|
+
_defineProperty(this, "cookieStorage", void 0);
|
|
83
|
+
|
|
84
|
+
_defineProperty(this, "disableCookies", void 0);
|
|
85
|
+
|
|
86
|
+
_defineProperty(this, "domain", void 0);
|
|
87
|
+
|
|
88
|
+
_defineProperty(this, "partnerId", void 0);
|
|
89
|
+
|
|
90
|
+
_defineProperty(this, "sessionTimeout", void 0);
|
|
91
|
+
|
|
92
|
+
_defineProperty(this, "trackingOptions", void 0);
|
|
93
|
+
|
|
94
|
+
_defineProperty(this, "sessionManager", void 0);
|
|
95
|
+
|
|
96
|
+
this.cookieStorage = (_options$cookieStorag = options === null || options === void 0 ? void 0 : options.cookieStorage) !== null && _options$cookieStorag !== void 0 ? _options$cookieStorag : defaultConfig.cookieStorage;
|
|
97
|
+
this.sessionManager = (_options$sessionManag = options === null || options === void 0 ? void 0 : options.sessionManager) !== null && _options$sessionManag !== void 0 ? _options$sessionManag : defaultConfig.sessionManager;
|
|
98
|
+
this.sessionTimeout = (_options$sessionTimeo = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _options$sessionTimeo !== void 0 ? _options$sessionTimeo : defaultConfig.sessionTimeout;
|
|
99
|
+
this.appVersion = options === null || options === void 0 ? void 0 : options.appVersion;
|
|
100
|
+
this.cookieExpiration = (_options$cookieExpira = options === null || options === void 0 ? void 0 : options.cookieExpiration) !== null && _options$cookieExpira !== void 0 ? _options$cookieExpira : defaultConfig.cookieExpiration;
|
|
101
|
+
this.cookieSameSite = (_options$cookieSameSi = options === null || options === void 0 ? void 0 : options.cookieSameSite) !== null && _options$cookieSameSi !== void 0 ? _options$cookieSameSi : defaultConfig.cookieSameSite;
|
|
102
|
+
this.cookieSecure = (_options$cookieSecure = options === null || options === void 0 ? void 0 : options.cookieSecure) !== null && _options$cookieSecure !== void 0 ? _options$cookieSecure : defaultConfig.cookieSecure;
|
|
103
|
+
this.deviceId = options === null || options === void 0 ? void 0 : options.deviceId;
|
|
104
|
+
this.disableCookies = (_options$disableCooki = options === null || options === void 0 ? void 0 : options.disableCookies) !== null && _options$disableCooki !== void 0 ? _options$disableCooki : defaultConfig.disableCookies;
|
|
105
|
+
this.domain = (_options$domain = options === null || options === void 0 ? void 0 : options.domain) !== null && _options$domain !== void 0 ? _options$domain : defaultConfig.domain;
|
|
106
|
+
this.lastEventTime = (_this$lastEventTime = this.lastEventTime) !== null && _this$lastEventTime !== void 0 ? _this$lastEventTime : options === null || options === void 0 ? void 0 : options.lastEventTime;
|
|
107
|
+
this.optOut = Boolean(options === null || options === void 0 ? void 0 : options.optOut);
|
|
108
|
+
this.partnerId = options === null || options === void 0 ? void 0 : options.partnerId;
|
|
109
|
+
this.sessionId = options === null || options === void 0 ? void 0 : options.sessionId;
|
|
110
|
+
this.trackingOptions = (_options$trackingOpti = options === null || options === void 0 ? void 0 : options.trackingOptions) !== null && _options$trackingOpti !== void 0 ? _options$trackingOpti : defaultConfig.trackingOptions;
|
|
111
|
+
this.userId = userId;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
get deviceId() {
|
|
115
|
+
return this.sessionManager.getDeviceId();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
set deviceId(deviceId) {
|
|
119
|
+
this.sessionManager.setDeviceId(deviceId);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
get userId() {
|
|
123
|
+
return this.sessionManager.getUserId();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
set userId(userId) {
|
|
127
|
+
this.sessionManager.setUserId(userId);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
get sessionId() {
|
|
131
|
+
return this.sessionManager.getSessionId();
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
set sessionId(sessionId) {
|
|
135
|
+
this.sessionManager.setSessionId(sessionId);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
get optOut() {
|
|
139
|
+
return this.sessionManager.getOptOut();
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
set optOut(optOut) {
|
|
143
|
+
var _this$sessionManager;
|
|
144
|
+
|
|
145
|
+
(_this$sessionManager = this.sessionManager) === null || _this$sessionManager === void 0 ? void 0 : _this$sessionManager.setOptOut(Boolean(optOut));
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
get lastEventTime() {
|
|
149
|
+
return this.sessionManager.getLastEventTime();
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
set lastEventTime(lastEventTime) {
|
|
153
|
+
this.sessionManager.setLastEventTime(lastEventTime);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
exports.ReactNativeConfig = ReactNativeConfig;
|
|
159
|
+
|
|
160
|
+
const useReactNativeConfig = async (apiKey, userId, options) => {
|
|
161
|
+
var _options$optOut, _await$cookieStorage$, _await$cookieStorage$2, _options$transportPro2;
|
|
162
|
+
|
|
163
|
+
const defaultConfig = getDefaultConfig();
|
|
164
|
+
const cookieStorage = await createCookieStorage(options);
|
|
165
|
+
const cookieName = (0, _cookieName.getCookieName)(apiKey);
|
|
166
|
+
const cookies = await cookieStorage.get(cookieName);
|
|
167
|
+
const queryParams = (0, _queryParams.getQueryParams)();
|
|
168
|
+
const sessionManager = await new _sessionManager.SessionManager(cookieStorage, apiKey).load();
|
|
169
|
+
return new ReactNativeConfig(apiKey, userId !== null && userId !== void 0 ? userId : cookies === null || cookies === void 0 ? void 0 : cookies.userId, { ...options,
|
|
170
|
+
cookieStorage,
|
|
171
|
+
sessionManager,
|
|
172
|
+
deviceId: createDeviceId(cookies === null || cookies === void 0 ? void 0 : cookies.deviceId, options === null || options === void 0 ? void 0 : options.deviceId, queryParams.deviceId),
|
|
173
|
+
optOut: (_options$optOut = options === null || options === void 0 ? void 0 : options.optOut) !== null && _options$optOut !== void 0 ? _options$optOut : Boolean(cookies === null || cookies === void 0 ? void 0 : cookies.optOut),
|
|
174
|
+
sessionId: (_await$cookieStorage$ = (_await$cookieStorage$2 = await cookieStorage.get(cookieName)) === null || _await$cookieStorage$2 === void 0 ? void 0 : _await$cookieStorage$2.sessionId) !== null && _await$cookieStorage$ !== void 0 ? _await$cookieStorage$ : options === null || options === void 0 ? void 0 : options.sessionId,
|
|
175
|
+
storageProvider: await createEventsStorage(options),
|
|
176
|
+
trackingOptions: { ...defaultConfig.trackingOptions,
|
|
177
|
+
...(options === null || options === void 0 ? void 0 : options.trackingOptions)
|
|
178
|
+
},
|
|
179
|
+
transportProvider: (_options$transportPro2 = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _options$transportPro2 !== void 0 ? _options$transportPro2 : createTransport(options === null || options === void 0 ? void 0 : options.transport)
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
exports.useReactNativeConfig = useReactNativeConfig;
|
|
184
|
+
|
|
185
|
+
const createCookieStorage = async function (overrides) {
|
|
186
|
+
let baseConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getDefaultConfig();
|
|
187
|
+
const options = { ...baseConfig,
|
|
188
|
+
...overrides
|
|
189
|
+
};
|
|
190
|
+
const cookieStorage = overrides === null || overrides === void 0 ? void 0 : overrides.cookieStorage;
|
|
191
|
+
|
|
192
|
+
if (!cookieStorage || !(await cookieStorage.isEnabled())) {
|
|
193
|
+
return createFlexibleStorage(options);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return cookieStorage;
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
exports.createCookieStorage = createCookieStorage;
|
|
200
|
+
|
|
201
|
+
const createFlexibleStorage = async options => {
|
|
202
|
+
let storage = new _cookie.CookieStorage({
|
|
203
|
+
domain: options.domain,
|
|
204
|
+
expirationDays: options.cookieExpiration,
|
|
205
|
+
sameSite: options.cookieSameSite,
|
|
206
|
+
secure: options.cookieSecure
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
if (options.disableCookies || !(await storage.isEnabled())) {
|
|
210
|
+
storage = new _localStorage.LocalStorage();
|
|
211
|
+
|
|
212
|
+
if (!(await storage.isEnabled())) {
|
|
213
|
+
storage = new _analyticsCore.MemoryStorage();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return storage;
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
exports.createFlexibleStorage = createFlexibleStorage;
|
|
221
|
+
|
|
222
|
+
const createEventsStorage = async overrides => {
|
|
223
|
+
let eventsStorage = overrides === null || overrides === void 0 ? void 0 : overrides.storageProvider;
|
|
224
|
+
|
|
225
|
+
if (!eventsStorage || !(await eventsStorage.isEnabled())) {
|
|
226
|
+
eventsStorage = new _localStorage.LocalStorage();
|
|
227
|
+
|
|
228
|
+
if (!(await eventsStorage.isEnabled())) {
|
|
229
|
+
eventsStorage = new _analyticsCore.MemoryStorage();
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return eventsStorage;
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
exports.createEventsStorage = createEventsStorage;
|
|
237
|
+
|
|
238
|
+
const createDeviceId = (idFromCookies, idFromOptions, idFromQueryParams) => {
|
|
239
|
+
return idFromOptions || idFromQueryParams || idFromCookies || (0, _analyticsCore.UUID)();
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
exports.createDeviceId = createDeviceId;
|
|
243
|
+
|
|
244
|
+
const createTransport = transport => {
|
|
245
|
+
if (transport === _analyticsTypes.TransportType.XHR) {
|
|
246
|
+
return new _xhr.XHRTransport();
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
if (transport === _analyticsTypes.TransportType.SendBeacon) {
|
|
250
|
+
return new _sendBeacon.SendBeaconTransport();
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return getDefaultConfig().transportProvider;
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
exports.createTransport = createTransport;
|
|
257
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getDefaultConfig","cookieStorage","MemoryStorage","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","SessionManager","sessionTimeout","storageProvider","trackingOptions","city","country","carrier","deviceManufacturer","deviceModel","dma","ipAddress","language","osName","osVersion","platform","region","versionName","transportProvider","FetchTransport","ReactNativeConfig","Config","constructor","apiKey","userId","options","defaultConfig","appVersion","deviceId","lastEventTime","optOut","Boolean","partnerId","sessionId","getDeviceId","setDeviceId","getUserId","setUserId","getSessionId","setSessionId","getOptOut","setOptOut","getLastEventTime","setLastEventTime","useReactNativeConfig","createCookieStorage","cookieName","getCookieName","cookies","get","queryParams","getQueryParams","load","createDeviceId","createEventsStorage","createTransport","transport","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","CookieStorage","expirationDays","sameSite","secure","LocalStorage","eventsStorage","idFromCookies","idFromOptions","idFromQueryParams","UUID","TransportType","XHR","XHRTransport","SendBeacon","SendBeaconTransport"],"sources":["config.ts"],"sourcesContent":["import {\n Event,\n ReactNativeOptions,\n ReactNativeConfig as IReactNativeConfig,\n Storage,\n TrackingOptions,\n TransportType,\n UserSession,\n SessionManager as ISessionManager,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\n\nimport { CookieStorage } from './storage/cookie';\nimport { FetchTransport } from './transports/fetch';\nimport { LocalStorage } from './storage/local-storage';\nimport { getCookieName } from './utils/cookie-name';\nimport { getQueryParams } from './utils/query-params';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\nimport { SessionManager } from './session-manager';\n\nexport const getDefaultConfig = () => {\n const cookieStorage = new MemoryStorage<UserSession>();\n return {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage,\n disableCookies: false,\n domain: '',\n sessionManager: new SessionManager(cookieStorage, ''),\n sessionTimeout: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions: {\n city: true,\n country: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n dma: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n region: true,\n versionName: true,\n },\n transportProvider: new FetchTransport(),\n };\n};\n\nexport class ReactNativeConfig extends Config implements IReactNativeConfig {\n appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n partnerId?: string;\n sessionTimeout: number;\n trackingOptions: TrackingOptions;\n sessionManager: ISessionManager;\n\n constructor(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionManager = options?.sessionManager ?? defaultConfig.sessionManager;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\n }\n}\n\nexport const useReactNativeConfig = async (\n apiKey: string,\n userId?: string,\n options?: ReactNativeOptions,\n): Promise<IReactNativeConfig> => {\n const defaultConfig = getDefaultConfig();\n const cookieStorage = await createCookieStorage(options);\n const cookieName = getCookieName(apiKey);\n const cookies = await cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionManager = await new SessionManager(cookieStorage, apiKey).load();\n\n return new ReactNativeConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionManager,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: (await cookieStorage.get(cookieName))?.sessionId ?? options?.sessionId,\n storageProvider: await createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? createTransport(options?.transport),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: ReactNativeOptions,\n baseConfig = getDefaultConfig(),\n): Promise<Storage<UserSession>> => {\n const options = { ...baseConfig, ...overrides };\n const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !(await cookieStorage.isEnabled())) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = async <T>(options: ReactNativeOptions): Promise<Storage<T>> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !(await storage.isEnabled())) {\n storage = new LocalStorage();\n if (!(await storage.isEnabled())) {\n storage = new MemoryStorage();\n }\n }\n return storage;\n};\n\nexport const createEventsStorage = async (overrides?: ReactNativeOptions): Promise<Storage<Event[]>> => {\n let eventsStorage = overrides?.storageProvider;\n if (!eventsStorage || !(await eventsStorage.isEnabled())) {\n eventsStorage = new LocalStorage();\n if (!(await eventsStorage.isEnabled())) {\n eventsStorage = new MemoryStorage();\n }\n }\n return eventsStorage;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const createTransport = (transport?: TransportType) => {\n if (transport === TransportType.XHR) {\n return new XHRTransport();\n }\n if (transport === TransportType.SendBeacon) {\n return new SendBeaconTransport();\n }\n return getDefaultConfig().transportProvider;\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UTM_TERM = exports.UTM_SOURCE = exports.UTM_MEDIUM = exports.UTM_CONTENT = exports.UTM_CAMPAIGN = exports.UTMZ_TERM = exports.UTMZ_SOURCE = exports.UTMZ_MEDIUM = exports.UTMZ_CONTENT = exports.UTMZ_CAMPAIGN = exports.GCLID = exports.FBCLID = void 0;
|
|
7
|
+
const UTM_SOURCE = 'utm_source';
|
|
8
|
+
exports.UTM_SOURCE = UTM_SOURCE;
|
|
9
|
+
const UTM_MEDIUM = 'utm_medium';
|
|
10
|
+
exports.UTM_MEDIUM = UTM_MEDIUM;
|
|
11
|
+
const UTM_CAMPAIGN = 'utm_campaign';
|
|
12
|
+
exports.UTM_CAMPAIGN = UTM_CAMPAIGN;
|
|
13
|
+
const UTM_TERM = 'utm_term';
|
|
14
|
+
exports.UTM_TERM = UTM_TERM;
|
|
15
|
+
const UTM_CONTENT = 'utm_content';
|
|
16
|
+
exports.UTM_CONTENT = UTM_CONTENT;
|
|
17
|
+
const UTMZ_SOURCE = 'utmcsr';
|
|
18
|
+
exports.UTMZ_SOURCE = UTMZ_SOURCE;
|
|
19
|
+
const UTMZ_MEDIUM = 'utmcmd';
|
|
20
|
+
exports.UTMZ_MEDIUM = UTMZ_MEDIUM;
|
|
21
|
+
const UTMZ_CAMPAIGN = 'utmccn';
|
|
22
|
+
exports.UTMZ_CAMPAIGN = UTMZ_CAMPAIGN;
|
|
23
|
+
const UTMZ_TERM = 'utmctr';
|
|
24
|
+
exports.UTMZ_TERM = UTMZ_TERM;
|
|
25
|
+
const UTMZ_CONTENT = 'utmcct';
|
|
26
|
+
exports.UTMZ_CONTENT = UTMZ_CONTENT;
|
|
27
|
+
const GCLID = 'gclid';
|
|
28
|
+
exports.GCLID = GCLID;
|
|
29
|
+
const FBCLID = 'fbclid';
|
|
30
|
+
exports.FBCLID = FBCLID;
|
|
31
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"],"sources":["constants.ts"],"sourcesContent":["export 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"],"mappings":";;;;;;AAAO,MAAMA,UAAU,GAAG,YAAnB;;AACA,MAAMC,UAAU,GAAG,YAAnB;;AACA,MAAMC,YAAY,GAAG,cAArB;;AACA,MAAMC,QAAQ,GAAG,UAAjB;;AACA,MAAMC,WAAW,GAAG,aAApB;;AAEA,MAAMC,WAAW,GAAG,QAApB;;AACA,MAAMC,WAAW,GAAG,QAApB;;AACA,MAAMC,aAAa,GAAG,QAAtB;;AACA,MAAMC,SAAS,GAAG,QAAlB;;AACA,MAAMC,YAAY,GAAG,QAArB;;AAEA,MAAMC,KAAK,GAAG,OAAd;;AACA,MAAMC,MAAM,GAAG,QAAf"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parseTime = exports.parseOldCookies = exports.decode = void 0;
|
|
7
|
+
|
|
8
|
+
var _cookieName = require("../utils/cookie-name");
|
|
9
|
+
|
|
10
|
+
var _localStorage = require("../storage/local-storage");
|
|
11
|
+
|
|
12
|
+
var _cookie = require("../storage/cookie");
|
|
13
|
+
|
|
14
|
+
const parseOldCookies = async (apiKey, options) => {
|
|
15
|
+
let storage = new _cookie.CookieStorage();
|
|
16
|
+
|
|
17
|
+
if (!(await storage.isEnabled()) || options !== null && options !== void 0 && options.disableCookies) {
|
|
18
|
+
storage = new _localStorage.LocalStorage();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (!(await storage.isEnabled())) {
|
|
22
|
+
return {
|
|
23
|
+
optOut: false
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const oldCookieName = (0, _cookieName.getOldCookieName)(apiKey);
|
|
28
|
+
const cookies = await storage.getRaw(oldCookieName);
|
|
29
|
+
|
|
30
|
+
if (!cookies) {
|
|
31
|
+
return {
|
|
32
|
+
optOut: false
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
await storage.remove(oldCookieName);
|
|
37
|
+
const [deviceId, userId, optOut, sessionId, lastEventTime] = cookies.split('.');
|
|
38
|
+
return {
|
|
39
|
+
deviceId,
|
|
40
|
+
userId: decode(userId),
|
|
41
|
+
sessionId: parseTime(sessionId),
|
|
42
|
+
lastEventTime: parseTime(lastEventTime),
|
|
43
|
+
optOut: Boolean(optOut)
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
exports.parseOldCookies = parseOldCookies;
|
|
48
|
+
|
|
49
|
+
const parseTime = num => {
|
|
50
|
+
const integer = parseInt(num, 32);
|
|
51
|
+
|
|
52
|
+
if (isNaN(integer)) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return integer;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
exports.parseTime = parseTime;
|
|
60
|
+
|
|
61
|
+
const decode = value => {
|
|
62
|
+
if (!atob || !escape || !value) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
try {
|
|
67
|
+
return decodeURIComponent(escape(atob(value)));
|
|
68
|
+
} catch {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
exports.decode = decode;
|
|
74
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parseOldCookies","apiKey","options","storage","CookieStorage","isEnabled","disableCookies","LocalStorage","optOut","oldCookieName","getOldCookieName","cookies","getRaw","remove","deviceId","userId","sessionId","lastEventTime","split","decode","parseTime","Boolean","num","integer","parseInt","isNaN","undefined","value","atob","escape","decodeURIComponent"],"sources":["index.ts"],"sourcesContent":["import { BrowserOptions, Storage, UserSession } from '@amplitude/analytics-types';\nimport { getOldCookieName } from '../utils/cookie-name';\nimport { LocalStorage } from '../storage/local-storage';\nimport { CookieStorage } from '../storage/cookie';\n\nexport const parseOldCookies = async (apiKey: string, options?: BrowserOptions): Promise<UserSession> => {\n let storage: Storage<string> = new CookieStorage<string>();\n if (!(await storage.isEnabled()) || options?.disableCookies) {\n storage = new LocalStorage<string>();\n }\n if (!(await storage.isEnabled())) {\n return {\n optOut: false,\n };\n }\n\n const oldCookieName = getOldCookieName(apiKey);\n const cookies = await storage.getRaw(oldCookieName);\n\n if (!cookies) {\n return {\n optOut: false,\n };\n }\n\n await storage.remove(oldCookieName);\n const [deviceId, userId, optOut, sessionId, lastEventTime] = cookies.split('.');\n return {\n deviceId,\n userId: decode(userId),\n sessionId: parseTime(sessionId),\n lastEventTime: parseTime(lastEventTime),\n optOut: Boolean(optOut),\n };\n};\n\nexport const parseTime = (num: string) => {\n const integer = parseInt(num, 32);\n if (isNaN(integer)) {\n return undefined;\n }\n return integer;\n};\n\nexport const decode = (value?: string): string | undefined => {\n if (!atob || !escape || !value) {\n return undefined;\n }\n try {\n return decodeURIComponent(escape(atob(value)));\n } catch {\n return undefined;\n }\n};\n"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AAEO,MAAMA,eAAe,GAAG,OAAOC,MAAP,EAAuBC,OAAvB,KAA0E;EACvG,IAAIC,OAAwB,GAAG,IAAIC,qBAAJ,EAA/B;;EACA,IAAI,EAAE,MAAMD,OAAO,CAACE,SAAR,EAAR,KAAgCH,OAAhC,aAAgCA,OAAhC,eAAgCA,OAAO,CAAEI,cAA7C,EAA6D;IAC3DH,OAAO,GAAG,IAAII,0BAAJ,EAAV;EACD;;EACD,IAAI,EAAE,MAAMJ,OAAO,CAACE,SAAR,EAAR,CAAJ,EAAkC;IAChC,OAAO;MACLG,MAAM,EAAE;IADH,CAAP;EAGD;;EAED,MAAMC,aAAa,GAAG,IAAAC,4BAAA,EAAiBT,MAAjB,CAAtB;EACA,MAAMU,OAAO,GAAG,MAAMR,OAAO,CAACS,MAAR,CAAeH,aAAf,CAAtB;;EAEA,IAAI,CAACE,OAAL,EAAc;IACZ,OAAO;MACLH,MAAM,EAAE;IADH,CAAP;EAGD;;EAED,MAAML,OAAO,CAACU,MAAR,CAAeJ,aAAf,CAAN;EACA,MAAM,CAACK,QAAD,EAAWC,MAAX,EAAmBP,MAAnB,EAA2BQ,SAA3B,EAAsCC,aAAtC,IAAuDN,OAAO,CAACO,KAAR,CAAc,GAAd,CAA7D;EACA,OAAO;IACLJ,QADK;IAELC,MAAM,EAAEI,MAAM,CAACJ,MAAD,CAFT;IAGLC,SAAS,EAAEI,SAAS,CAACJ,SAAD,CAHf;IAILC,aAAa,EAAEG,SAAS,CAACH,aAAD,CAJnB;IAKLT,MAAM,EAAEa,OAAO,CAACb,MAAD;EALV,CAAP;AAOD,CA7BM;;;;AA+BA,MAAMY,SAAS,GAAIE,GAAD,IAAiB;EACxC,MAAMC,OAAO,GAAGC,QAAQ,CAACF,GAAD,EAAM,EAAN,CAAxB;;EACA,IAAIG,KAAK,CAACF,OAAD,CAAT,EAAoB;IAClB,OAAOG,SAAP;EACD;;EACD,OAAOH,OAAP;AACD,CANM;;;;AAQA,MAAMJ,MAAM,GAAIQ,KAAD,IAAwC;EAC5D,IAAI,CAACC,IAAD,IAAS,CAACC,MAAV,IAAoB,CAACF,KAAzB,EAAgC;IAC9B,OAAOD,SAAP;EACD;;EACD,IAAI;IACF,OAAOI,kBAAkB,CAACD,MAAM,CAACD,IAAI,CAACD,KAAD,CAAL,CAAP,CAAzB;EACD,CAFD,CAEE,MAAM;IACN,OAAOD,SAAP;EACD;AACF,CATM"}
|