@amplitude/analytics-browser 0.1.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 (166) hide show
  1. package/README.md +1 -0
  2. package/lib/cjs/attribution.d.ts +11 -0
  3. package/lib/cjs/attribution.d.ts.map +1 -0
  4. package/lib/cjs/attribution.js +76 -0
  5. package/lib/cjs/attribution.js.map +1 -0
  6. package/lib/cjs/browser-client.d.ts +183 -0
  7. package/lib/cjs/browser-client.d.ts.map +1 -0
  8. package/lib/cjs/browser-client.js +298 -0
  9. package/lib/cjs/browser-client.js.map +1 -0
  10. package/lib/cjs/config.d.ts +83 -0
  11. package/lib/cjs/config.d.ts.map +1 -0
  12. package/lib/cjs/config.js +138 -0
  13. package/lib/cjs/config.js.map +1 -0
  14. package/lib/cjs/constants.d.ts +13 -0
  15. package/lib/cjs/constants.d.ts.map +1 -0
  16. package/lib/cjs/constants.js +15 -0
  17. package/lib/cjs/constants.js.map +1 -0
  18. package/lib/cjs/index.d.ts +5 -0
  19. package/lib/cjs/index.d.ts.map +1 -0
  20. package/lib/cjs/index.js +28 -0
  21. package/lib/cjs/index.js.map +1 -0
  22. package/lib/cjs/plugins/context.d.ts +14 -0
  23. package/lib/cjs/plugins/context.d.ts.map +1 -0
  24. package/lib/cjs/plugins/context.js +46 -0
  25. package/lib/cjs/plugins/context.js.map +1 -0
  26. package/lib/cjs/session-manager.d.ts +6 -0
  27. package/lib/cjs/session-manager.d.ts.map +1 -0
  28. package/lib/cjs/session-manager.js +42 -0
  29. package/lib/cjs/session-manager.js.map +1 -0
  30. package/lib/cjs/snippet-index.d.ts +2 -0
  31. package/lib/cjs/snippet-index.d.ts.map +1 -0
  32. package/lib/cjs/snippet-index.js +11 -0
  33. package/lib/cjs/snippet-index.js.map +1 -0
  34. package/lib/cjs/storage/cookie.d.ts +12 -0
  35. package/lib/cjs/storage/cookie.d.ts.map +1 -0
  36. package/lib/cjs/storage/cookie.js +86 -0
  37. package/lib/cjs/storage/cookie.js.map +1 -0
  38. package/lib/cjs/storage/local-storage.d.ts +9 -0
  39. package/lib/cjs/storage/local-storage.d.ts.map +1 -0
  40. package/lib/cjs/storage/local-storage.js +68 -0
  41. package/lib/cjs/storage/local-storage.js.map +1 -0
  42. package/lib/cjs/storage/memory.d.ts +10 -0
  43. package/lib/cjs/storage/memory.d.ts.map +1 -0
  44. package/lib/cjs/storage/memory.js +25 -0
  45. package/lib/cjs/storage/memory.js.map +1 -0
  46. package/lib/cjs/storage/utm-cookie.d.ts +6 -0
  47. package/lib/cjs/storage/utm-cookie.d.ts.map +1 -0
  48. package/lib/cjs/storage/utm-cookie.js +36 -0
  49. package/lib/cjs/storage/utm-cookie.js.map +1 -0
  50. package/lib/cjs/transports/fetch.d.ts +5 -0
  51. package/lib/cjs/transports/fetch.d.ts.map +1 -0
  52. package/lib/cjs/transports/fetch.js +42 -0
  53. package/lib/cjs/transports/fetch.js.map +1 -0
  54. package/lib/cjs/transports/send-beacon.d.ts +5 -0
  55. package/lib/cjs/transports/send-beacon.d.ts.map +1 -0
  56. package/lib/cjs/transports/send-beacon.js +41 -0
  57. package/lib/cjs/transports/send-beacon.js.map +1 -0
  58. package/lib/cjs/transports/xhr.d.ts +6 -0
  59. package/lib/cjs/transports/xhr.d.ts.map +1 -0
  60. package/lib/cjs/transports/xhr.js +46 -0
  61. package/lib/cjs/transports/xhr.js.map +1 -0
  62. package/lib/cjs/utils/language.d.ts +2 -0
  63. package/lib/cjs/utils/language.d.ts.map +1 -0
  64. package/lib/cjs/utils/language.js +12 -0
  65. package/lib/cjs/utils/language.js.map +1 -0
  66. package/lib/cjs/utils/query-params.d.ts +2 -0
  67. package/lib/cjs/utils/query-params.d.ts.map +1 -0
  68. package/lib/cjs/utils/query-params.js +21 -0
  69. package/lib/cjs/utils/query-params.js.map +1 -0
  70. package/lib/cjs/utils/snippet-helper.d.ts +15 -0
  71. package/lib/cjs/utils/snippet-helper.d.ts.map +1 -0
  72. package/lib/cjs/utils/snippet-helper.js +34 -0
  73. package/lib/cjs/utils/snippet-helper.js.map +1 -0
  74. package/lib/cjs/utils/uuid.d.ts +10 -0
  75. package/lib/cjs/utils/uuid.d.ts.map +1 -0
  76. package/lib/cjs/utils/uuid.js +31 -0
  77. package/lib/cjs/utils/uuid.js.map +1 -0
  78. package/lib/cjs/version.d.ts +13 -0
  79. package/lib/cjs/version.d.ts.map +1 -0
  80. package/lib/cjs/version.js +15 -0
  81. package/lib/cjs/version.js.map +1 -0
  82. package/lib/esm/attribution.d.ts +11 -0
  83. package/lib/esm/attribution.d.ts.map +1 -0
  84. package/lib/esm/attribution.js +69 -0
  85. package/lib/esm/attribution.js.map +1 -0
  86. package/lib/esm/browser-client.d.ts +183 -0
  87. package/lib/esm/browser-client.d.ts.map +1 -0
  88. package/lib/esm/browser-client.js +279 -0
  89. package/lib/esm/browser-client.js.map +1 -0
  90. package/lib/esm/config.d.ts +83 -0
  91. package/lib/esm/config.d.ts.map +1 -0
  92. package/lib/esm/config.js +129 -0
  93. package/lib/esm/config.js.map +1 -0
  94. package/lib/esm/constants.d.ts +13 -0
  95. package/lib/esm/constants.d.ts.map +1 -0
  96. package/lib/esm/constants.js +13 -0
  97. package/lib/esm/constants.js.map +1 -0
  98. package/lib/esm/index.d.ts +5 -0
  99. package/lib/esm/index.d.ts.map +1 -0
  100. package/lib/esm/index.js +6 -0
  101. package/lib/esm/index.js.map +1 -0
  102. package/lib/esm/plugins/context.d.ts +14 -0
  103. package/lib/esm/plugins/context.d.ts.map +1 -0
  104. package/lib/esm/plugins/context.js +44 -0
  105. package/lib/esm/plugins/context.js.map +1 -0
  106. package/lib/esm/session-manager.d.ts +6 -0
  107. package/lib/esm/session-manager.d.ts.map +1 -0
  108. package/lib/esm/session-manager.js +36 -0
  109. package/lib/esm/session-manager.js.map +1 -0
  110. package/lib/esm/snippet-index.d.ts +2 -0
  111. package/lib/esm/snippet-index.d.ts.map +1 -0
  112. package/lib/esm/snippet-index.js +9 -0
  113. package/lib/esm/snippet-index.js.map +1 -0
  114. package/lib/esm/storage/cookie.d.ts +12 -0
  115. package/lib/esm/storage/cookie.d.ts.map +1 -0
  116. package/lib/esm/storage/cookie.js +84 -0
  117. package/lib/esm/storage/cookie.js.map +1 -0
  118. package/lib/esm/storage/local-storage.d.ts +9 -0
  119. package/lib/esm/storage/local-storage.d.ts.map +1 -0
  120. package/lib/esm/storage/local-storage.js +66 -0
  121. package/lib/esm/storage/local-storage.js.map +1 -0
  122. package/lib/esm/storage/memory.d.ts +10 -0
  123. package/lib/esm/storage/memory.d.ts.map +1 -0
  124. package/lib/esm/storage/memory.js +23 -0
  125. package/lib/esm/storage/memory.js.map +1 -0
  126. package/lib/esm/storage/utm-cookie.d.ts +6 -0
  127. package/lib/esm/storage/utm-cookie.d.ts.map +1 -0
  128. package/lib/esm/storage/utm-cookie.js +34 -0
  129. package/lib/esm/storage/utm-cookie.js.map +1 -0
  130. package/lib/esm/transports/fetch.d.ts +5 -0
  131. package/lib/esm/transports/fetch.d.ts.map +1 -0
  132. package/lib/esm/transports/fetch.js +40 -0
  133. package/lib/esm/transports/fetch.js.map +1 -0
  134. package/lib/esm/transports/send-beacon.d.ts +5 -0
  135. package/lib/esm/transports/send-beacon.d.ts.map +1 -0
  136. package/lib/esm/transports/send-beacon.js +39 -0
  137. package/lib/esm/transports/send-beacon.js.map +1 -0
  138. package/lib/esm/transports/xhr.d.ts +6 -0
  139. package/lib/esm/transports/xhr.d.ts.map +1 -0
  140. package/lib/esm/transports/xhr.js +44 -0
  141. package/lib/esm/transports/xhr.js.map +1 -0
  142. package/lib/esm/utils/language.d.ts +2 -0
  143. package/lib/esm/utils/language.d.ts.map +1 -0
  144. package/lib/esm/utils/language.js +9 -0
  145. package/lib/esm/utils/language.js.map +1 -0
  146. package/lib/esm/utils/query-params.d.ts +2 -0
  147. package/lib/esm/utils/query-params.d.ts.map +1 -0
  148. package/lib/esm/utils/query-params.js +18 -0
  149. package/lib/esm/utils/query-params.js.map +1 -0
  150. package/lib/esm/utils/snippet-helper.d.ts +15 -0
  151. package/lib/esm/utils/snippet-helper.d.ts.map +1 -0
  152. package/lib/esm/utils/snippet-helper.js +29 -0
  153. package/lib/esm/utils/snippet-helper.js.map +1 -0
  154. package/lib/esm/utils/uuid.d.ts +10 -0
  155. package/lib/esm/utils/uuid.d.ts.map +1 -0
  156. package/lib/esm/utils/uuid.js +28 -0
  157. package/lib/esm/utils/uuid.js.map +1 -0
  158. package/lib/esm/version.d.ts +2 -0
  159. package/lib/esm/version.d.ts.map +1 -0
  160. package/lib/esm/version.js +2 -0
  161. package/lib/esm/version.js.map +1 -0
  162. package/lib/scripts/amplitude-min.js +15 -0
  163. package/lib/scripts/amplitude-min.js.gz +0 -0
  164. package/lib/scripts/amplitude-min.umd.js +15 -0
  165. package/lib/scripts/amplitude-min.umd.js.gz +0 -0
  166. package/package.json +58 -0
@@ -0,0 +1,69 @@
1
+ import { __assign, __read } from "tslib";
2
+ import { Identify, identify } from '@amplitude/analytics-core';
3
+ import { UTM_CAMPAIGN, UTM_CONTENT, UTM_MEDIUM, UTM_SOURCE, UTM_TERM, UTMZ_SOURCE, UTMZ_MEDIUM, UTMZ_CAMPAIGN, UTMZ_TERM, UTMZ_CONTENT, GCLID, FBCLID, } from './constants';
4
+ import { UTMCookie } from './storage/utm-cookie';
5
+ import { getQueryParams } from './utils/query-params';
6
+ export var trackAttributions = function (config) {
7
+ var attribution = __assign(__assign(__assign(__assign({}, (config.includeUtm && getUtmParam())), (config.includeReferrer && getReferrer())), (config.includeGclid && getGclid())), (config.includeFbclid && getFbclid()));
8
+ if (Object.keys(attribution).length === 0) {
9
+ return;
10
+ }
11
+ var id = new Identify();
12
+ Object.entries(attribution).forEach(function (_a) {
13
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
14
+ if (value) {
15
+ id.setOnce("initial_".concat(key), value);
16
+ id.set(key, value);
17
+ }
18
+ });
19
+ void identify(undefined, undefined, id);
20
+ };
21
+ export var getUtmParam = function () {
22
+ var params = getQueryParams();
23
+ var utmStorage = new UTMCookie();
24
+ var cookies = (utmStorage.isEnabled() && utmStorage.get('__utmz')) || {};
25
+ var utmSource = params[UTM_SOURCE] || cookies[UTMZ_SOURCE];
26
+ var utmMedium = params[UTM_MEDIUM] || cookies[UTMZ_MEDIUM];
27
+ var utmCampaign = params[UTM_CAMPAIGN] || cookies[UTMZ_CAMPAIGN];
28
+ var utmTerm = params[UTM_TERM] || cookies[UTMZ_TERM];
29
+ var utmContent = params[UTM_CONTENT] || cookies[UTMZ_CONTENT];
30
+ var data = {};
31
+ if (utmSource)
32
+ data.utm_source = utmSource;
33
+ if (utmMedium)
34
+ data.utm_medium = utmMedium;
35
+ if (utmCampaign)
36
+ data.utm_campaign = utmCampaign;
37
+ if (utmTerm)
38
+ data.utm_term = utmTerm;
39
+ if (utmContent)
40
+ data.utm_content = utmContent;
41
+ return data;
42
+ };
43
+ export var getReferrer = function () {
44
+ var _a;
45
+ var data = {};
46
+ try {
47
+ var referrer = document.referrer || undefined;
48
+ var referringDomain = (_a = referrer === null || referrer === void 0 ? void 0 : referrer.split('/')[2]) !== null && _a !== void 0 ? _a : undefined;
49
+ if (referrer !== undefined)
50
+ data.referrer = referrer;
51
+ if (referringDomain !== undefined)
52
+ data.referring_domain = referringDomain;
53
+ }
54
+ catch (_b) {
55
+ //
56
+ }
57
+ return data;
58
+ };
59
+ export var getGclid = function () {
60
+ var _a;
61
+ var params = getQueryParams();
62
+ return __assign({}, (params[GCLID] && (_a = {}, _a[GCLID] = params[GCLID], _a)));
63
+ };
64
+ export var getFbclid = function () {
65
+ var _a;
66
+ var params = getQueryParams();
67
+ return __assign({}, (params[FBCLID] && (_a = {}, _a[FBCLID] = params[FBCLID], _a)));
68
+ };
69
+ //# sourceMappingURL=attribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../src/attribution.ts"],"names":[],"mappings":"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","sourcesContent":["import { Identify, identify } from '@amplitude/analytics-core';\nimport { BrowserConfig, UTMData } from '@amplitude/analytics-types';\nimport {\n UTM_CAMPAIGN,\n UTM_CONTENT,\n UTM_MEDIUM,\n UTM_SOURCE,\n UTM_TERM,\n UTMZ_SOURCE,\n UTMZ_MEDIUM,\n UTMZ_CAMPAIGN,\n UTMZ_TERM,\n UTMZ_CONTENT,\n GCLID,\n FBCLID,\n} from './constants';\nimport { UTMCookie } from './storage/utm-cookie';\nimport { getQueryParams } from './utils/query-params';\n\nexport const trackAttributions = (config: BrowserConfig) => {\n const attribution = {\n ...(config.includeUtm && getUtmParam()),\n ...(config.includeReferrer && getReferrer()),\n ...(config.includeGclid && getGclid()),\n ...(config.includeFbclid && getFbclid()),\n };\n\n if (Object.keys(attribution).length === 0) {\n return;\n }\n\n const id = new Identify();\n Object.entries(attribution).forEach(([key, value]: [string, string]) => {\n if (value) {\n id.setOnce(`initial_${key}`, value);\n id.set(key, value);\n }\n });\n void identify(undefined, undefined, id);\n};\n\nexport const getUtmParam = (): UTMData => {\n const params = getQueryParams();\n const utmStorage = new UTMCookie();\n const cookies = (utmStorage.isEnabled() && utmStorage.get('__utmz')) || {};\n\n const utmSource = params[UTM_SOURCE] || cookies[UTMZ_SOURCE];\n const utmMedium = params[UTM_MEDIUM] || cookies[UTMZ_MEDIUM];\n const utmCampaign = params[UTM_CAMPAIGN] || cookies[UTMZ_CAMPAIGN];\n const utmTerm = params[UTM_TERM] || cookies[UTMZ_TERM];\n const utmContent = params[UTM_CONTENT] || cookies[UTMZ_CONTENT];\n\n const data: UTMData = {};\n if (utmSource) data.utm_source = utmSource;\n if (utmMedium) data.utm_medium = utmMedium;\n if (utmCampaign) data.utm_campaign = utmCampaign;\n if (utmTerm) data.utm_term = utmTerm;\n if (utmContent) data.utm_content = utmContent;\n return data;\n};\n\nexport const getReferrer = () => {\n const data: Record<string, string | undefined> = {};\n try {\n const referrer = document.referrer || undefined;\n const referringDomain = referrer?.split('/')[2] ?? undefined;\n\n if (referrer !== undefined) data.referrer = referrer;\n if (referringDomain !== undefined) data.referring_domain = referringDomain;\n } catch {\n //\n }\n return data;\n};\n\nexport const getGclid = () => {\n const params = getQueryParams();\n return {\n ...(params[GCLID] && { [GCLID]: params[GCLID] }),\n };\n};\n\nexport const getFbclid = () => {\n const params = getQueryParams();\n return {\n ...(params[FBCLID] && { [FBCLID]: params[FBCLID] }),\n };\n};\n"]}
@@ -0,0 +1,183 @@
1
+ import { Identify, Revenue } from '@amplitude/analytics-core';
2
+ import { AmplitudeReturn, BrowserOptions, EventOptions, Plugin, Result, TransportType } from '@amplitude/analytics-types';
3
+ /**
4
+ * Initializes the Amplitude SDK with your apiKey, userId and optional configurations.
5
+ * This method must be called before any other operations.
6
+ *
7
+ * ```typescript
8
+ * await init(API_KEY, USER_ID, options).promise;
9
+ * ```
10
+ */
11
+ export declare const init: (apiKey: string, userId?: string | undefined, options?: BrowserOptions | undefined) => AmplitudeReturn<void>;
12
+ /**
13
+ * Adds a new plugin.
14
+ *
15
+ * ```typescript
16
+ * const plugin = {...};
17
+ * amplitude.add(plugin);
18
+ * ```
19
+ */
20
+ export declare const add: (plugin: Plugin) => AmplitudeReturn<void>;
21
+ /**
22
+ * Removes a plugin.
23
+ *
24
+ * ```typescript
25
+ * amplitude.remove('myPlugin');
26
+ * ```
27
+ */
28
+ export declare const remove: (pluginName: string) => AmplitudeReturn<void>;
29
+ /**
30
+ * Returns current user ID.
31
+ *
32
+ * ```typescript
33
+ * const userId = getUserId();
34
+ * ```
35
+ */
36
+ export declare const getUserId: () => string | undefined;
37
+ /**
38
+ * Sets a new user ID.
39
+ *
40
+ * ```typescript
41
+ * setUserId('userId');
42
+ * ```
43
+ */
44
+ export declare const setUserId: (userId: string) => void;
45
+ /**
46
+ * Returns current device ID.
47
+ *
48
+ * ```typescript
49
+ * const deviceId = getDeviceId();
50
+ * ```
51
+ */
52
+ export declare const getDeviceId: () => string | undefined;
53
+ /**
54
+ * Sets a new device ID.
55
+ * When setting a custom device ID, make sure the value is sufficiently unique.
56
+ * A uuid is recommended.
57
+ *
58
+ * ```typescript
59
+ * setDeviceId('deviceId');
60
+ * ```
61
+ */
62
+ export declare const setDeviceId: (deviceId: string) => void;
63
+ /**
64
+ * Returns current session ID.
65
+ *
66
+ * ```typescript
67
+ * const sessionId = getSessionId();
68
+ * ```
69
+ */
70
+ export declare const getSessionId: () => number | undefined;
71
+ /**
72
+ * Sets a new session ID.
73
+ * When settign a custom session ID, make sure the value is in milliseconds since epoch (Unix Timestamp).
74
+ *
75
+ * ```typescript
76
+ * setSessionId(Date.now());
77
+ * ```
78
+ */
79
+ export declare const setSessionId: (sessionId: number) => void;
80
+ /**
81
+ * Sets a new optOut config value. This toggles event tracking on/off.
82
+ *
83
+ *```typescript
84
+ * // Stops tracking
85
+ * setOptOut(true);
86
+ *
87
+ * // Starts/resumes tracking
88
+ * setOptOut(false);
89
+ * ```
90
+ */
91
+ export declare const setOptOut: (optOut: boolean) => void;
92
+ /**
93
+ * Sets the network transport type for events.
94
+ *
95
+ * ```typescript
96
+ * // Use Fetch API
97
+ * setTransport('fetch');
98
+ *
99
+ * // Use XMLHttpRequest API
100
+ * setTransport('xhr');
101
+ *
102
+ * // Use navigator.sendBeacon API
103
+ * setTransport('beacon');
104
+ * ```
105
+ */
106
+ export declare const setTransport: (transport: TransportType) => void;
107
+ /**
108
+ * Tracks user-defined event, with specified type, optional event properties and optional overwrites.
109
+ *
110
+ * ```typescript
111
+ * // event tracking with event type only
112
+ * track('Page Load');
113
+ *
114
+ * // event tracking with event type and additional event properties
115
+ * track('Page Load', { loadTime: 1000 });
116
+ *
117
+ * // event tracking with event type, additional event properties, and overwritten event options
118
+ * track('Page Load', { loadTime: 1000 }, { sessionId: -1 });
119
+ *
120
+ * // alternatively, this tracking method is awaitable
121
+ * const result = await track('Page Load').promise;
122
+ * console.log(result.event); // {...}
123
+ * console.log(result.code); // 200
124
+ * console.log(result.message); // "Event tracked successfully"
125
+ * ```
126
+ */
127
+ export declare const track: (eventType: string, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptions | undefined) => AmplitudeReturn<Result>;
128
+ /**
129
+ * Alis for track()
130
+ */
131
+ export declare const logEvent: (eventType: string, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptions | undefined) => AmplitudeReturn<Result>;
132
+ /**
133
+ * Sends an identify event containing user property operations
134
+ *
135
+ * ```typescript
136
+ * const id = new Identify();
137
+ * id.set('colors', ['rose', 'gold']);
138
+ * identify(id);
139
+ *
140
+ * // alternatively, this tracking method is awaitable
141
+ * const result = await identify(id).promise;
142
+ * console.log(result.event); // {...}
143
+ * console.log(result.code); // 200
144
+ * console.log(result.message); // "Event tracked successfully"
145
+ * ```
146
+ */
147
+ export declare const identify: (identify: Identify, eventOptions?: EventOptions | undefined) => AmplitudeReturn<Result>;
148
+ /**
149
+ * Sends a group identify event containing group property operations.
150
+ *
151
+ * ```typescript
152
+ * const id = new Identify();
153
+ * id.set('skills', ['js', 'ts']);
154
+ * const groupType = 'org';
155
+ * const groupName = 'engineering';
156
+ * groupIdentify(groupType, groupName, id);
157
+ *
158
+ * // alternatively, this tracking method is awaitable
159
+ * const result = await groupIdentify(groupType, groupName, id).promise;
160
+ * console.log(result.event); // {...}
161
+ * console.log(result.code); // 200
162
+ * console.log(result.message); // "Event tracked successfully"
163
+ * ```
164
+ */
165
+ export declare const groupIdentify: (groupType: string, groupName: string | string[], identify: Identify, eventOptions?: EventOptions | undefined) => AmplitudeReturn<Result>;
166
+ export declare const setGroup: (groupType: string, groupName: string | string[]) => AmplitudeReturn<Result>;
167
+ /**
168
+ * Sends a revenue event containing revenue property operations.
169
+ *
170
+ * ```typescript
171
+ * const rev = new Revenue();
172
+ * rev.setRevenue(100);
173
+ * revenue(rev);
174
+ *
175
+ * // alternatively, this tracking method is awaitable
176
+ * const result = await revenue(rev).promise;
177
+ * console.log(result.event); // {...}
178
+ * console.log(result.code); // 200
179
+ * console.log(result.message); // "Event tracked successfully"
180
+ * ```
181
+ */
182
+ export declare const revenue: (revenue: Revenue, eventOptions?: EventOptions | undefined) => AmplitudeReturn<Result>;
183
+ //# sourceMappingURL=browser-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,QAAQ,EACR,OAAO,EAIR,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,EAEf,cAAc,EACd,YAAY,EACZ,MAAM,EACN,MAAM,EACN,aAAa,EACd,MAAM,4BAA4B,CAAC;AAOpC;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,WAAY,MAAM,wEAA8C,gBAAgB,IAAI,CAYpG,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG,WAAY,MAAM,KAAG,gBAAgB,IAAI,CAIxD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,eAAgB,MAAM,KAAG,gBAAgB,IAAI,CAI/D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,0BAErB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,WAAY,MAAM,SAIvC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,0BAEvB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,aAAc,MAAM,SAI3C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,0BAExB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,cAAe,MAAM,SAI7C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,WAAY,OAAO,SAIxC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,cAAe,aAAa,SAIpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,KAAK,cACL,MAAM,iGAGhB,gBAAgB,MAAM,CAIxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,cAZR,MAAM,iGAGhB,gBAAgB,MAAM,CASI,CAAC;AAE9B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,aAAc,QAAQ,8CAAgC,gBAAgB,MAAM,CAShG,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,cACb,MAAM,aACN,MAAM,GAAG,MAAM,EAAE,YAClB,QAAQ,8CAEjB,gBAAgB,MAAM,CASxB,CAAC;AAEF,eAAO,MAAM,QAAQ,cAAe,MAAM,aAAa,MAAM,GAAG,MAAM,EAAE,KAAG,gBAAgB,MAAM,CAIhG,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO,YAAa,OAAO,8CAAgC,gBAAgB,MAAM,CAS7F,CAAC"}
@@ -0,0 +1,279 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ import { add as _add, groupIdentify as _groupIdentify, Destination, identify as _identify, revenue as _revenue, init as _init, setOptOut as _setOptOut, Identify, Revenue, track as _track, setGroup as _setGroup, remove as _remove, } from '@amplitude/analytics-core';
3
+ import { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';
4
+ import { Context } from './plugins/context';
5
+ import { createConfig, createTransport, getConfig } from './config';
6
+ import { trackAttributions } from './attribution';
7
+ import { updateCookies } from './session-manager';
8
+ /**
9
+ * Initializes the Amplitude SDK with your apiKey, userId and optional configurations.
10
+ * This method must be called before any other operations.
11
+ *
12
+ * ```typescript
13
+ * await init(API_KEY, USER_ID, options).promise;
14
+ * ```
15
+ */
16
+ export var init = function (apiKey, userId, options) {
17
+ return {
18
+ promise: (function () { return __awaiter(void 0, void 0, void 0, function () {
19
+ var browserOptions, config;
20
+ return __generator(this, function (_a) {
21
+ switch (_a.label) {
22
+ case 0:
23
+ browserOptions = createConfig(apiKey, userId, options);
24
+ config = _init(browserOptions);
25
+ updateCookies(config);
26
+ return [4 /*yield*/, _add(new Context())];
27
+ case 1:
28
+ _a.sent();
29
+ return [4 /*yield*/, _add(new Destination())];
30
+ case 2:
31
+ _a.sent();
32
+ trackAttributions(config);
33
+ return [2 /*return*/];
34
+ }
35
+ });
36
+ }); })(),
37
+ };
38
+ };
39
+ /**
40
+ * Adds a new plugin.
41
+ *
42
+ * ```typescript
43
+ * const plugin = {...};
44
+ * amplitude.add(plugin);
45
+ * ```
46
+ */
47
+ export var add = function (plugin) {
48
+ return {
49
+ promise: _add(plugin),
50
+ };
51
+ };
52
+ /**
53
+ * Removes a plugin.
54
+ *
55
+ * ```typescript
56
+ * amplitude.remove('myPlugin');
57
+ * ```
58
+ */
59
+ export var remove = function (pluginName) {
60
+ return {
61
+ promise: _remove(pluginName),
62
+ };
63
+ };
64
+ /**
65
+ * Returns current user ID.
66
+ *
67
+ * ```typescript
68
+ * const userId = getUserId();
69
+ * ```
70
+ */
71
+ export var getUserId = function () {
72
+ return getConfig().userId;
73
+ };
74
+ /**
75
+ * Sets a new user ID.
76
+ *
77
+ * ```typescript
78
+ * setUserId('userId');
79
+ * ```
80
+ */
81
+ export var setUserId = function (userId) {
82
+ var config = getConfig();
83
+ config.userId = userId;
84
+ updateCookies(config);
85
+ };
86
+ /**
87
+ * Returns current device ID.
88
+ *
89
+ * ```typescript
90
+ * const deviceId = getDeviceId();
91
+ * ```
92
+ */
93
+ export var getDeviceId = function () {
94
+ return getConfig().deviceId;
95
+ };
96
+ /**
97
+ * Sets a new device ID.
98
+ * When setting a custom device ID, make sure the value is sufficiently unique.
99
+ * A uuid is recommended.
100
+ *
101
+ * ```typescript
102
+ * setDeviceId('deviceId');
103
+ * ```
104
+ */
105
+ export var setDeviceId = function (deviceId) {
106
+ var config = getConfig();
107
+ config.deviceId = deviceId;
108
+ updateCookies(config);
109
+ };
110
+ /**
111
+ * Returns current session ID.
112
+ *
113
+ * ```typescript
114
+ * const sessionId = getSessionId();
115
+ * ```
116
+ */
117
+ export var getSessionId = function () {
118
+ return getConfig().sessionId;
119
+ };
120
+ /**
121
+ * Sets a new session ID.
122
+ * When settign a custom session ID, make sure the value is in milliseconds since epoch (Unix Timestamp).
123
+ *
124
+ * ```typescript
125
+ * setSessionId(Date.now());
126
+ * ```
127
+ */
128
+ export var setSessionId = function (sessionId) {
129
+ var config = getConfig();
130
+ config.sessionId = sessionId;
131
+ updateCookies(config);
132
+ };
133
+ /**
134
+ * Sets a new optOut config value. This toggles event tracking on/off.
135
+ *
136
+ *```typescript
137
+ * // Stops tracking
138
+ * setOptOut(true);
139
+ *
140
+ * // Starts/resumes tracking
141
+ * setOptOut(false);
142
+ * ```
143
+ */
144
+ export var setOptOut = function (optOut) {
145
+ _setOptOut(optOut);
146
+ var config = getConfig();
147
+ updateCookies(config);
148
+ };
149
+ /**
150
+ * Sets the network transport type for events.
151
+ *
152
+ * ```typescript
153
+ * // Use Fetch API
154
+ * setTransport('fetch');
155
+ *
156
+ * // Use XMLHttpRequest API
157
+ * setTransport('xhr');
158
+ *
159
+ * // Use navigator.sendBeacon API
160
+ * setTransport('beacon');
161
+ * ```
162
+ */
163
+ export var setTransport = function (transport) {
164
+ var config = getConfig();
165
+ var transportProvider = createTransport(transport);
166
+ config.transportProvider = transportProvider;
167
+ };
168
+ /**
169
+ * Tracks user-defined event, with specified type, optional event properties and optional overwrites.
170
+ *
171
+ * ```typescript
172
+ * // event tracking with event type only
173
+ * track('Page Load');
174
+ *
175
+ * // event tracking with event type and additional event properties
176
+ * track('Page Load', { loadTime: 1000 });
177
+ *
178
+ * // event tracking with event type, additional event properties, and overwritten event options
179
+ * track('Page Load', { loadTime: 1000 }, { sessionId: -1 });
180
+ *
181
+ * // alternatively, this tracking method is awaitable
182
+ * const result = await track('Page Load').promise;
183
+ * console.log(result.event); // {...}
184
+ * console.log(result.code); // 200
185
+ * console.log(result.message); // "Event tracked successfully"
186
+ * ```
187
+ */
188
+ export var track = function (eventType, eventProperties, eventOptions) {
189
+ return {
190
+ promise: _track(eventType, eventProperties, eventOptions),
191
+ };
192
+ };
193
+ /**
194
+ * Alis for track()
195
+ */
196
+ export var logEvent = track;
197
+ /**
198
+ * Sends an identify event containing user property operations
199
+ *
200
+ * ```typescript
201
+ * const id = new Identify();
202
+ * id.set('colors', ['rose', 'gold']);
203
+ * identify(id);
204
+ *
205
+ * // alternatively, this tracking method is awaitable
206
+ * const result = await identify(id).promise;
207
+ * console.log(result.event); // {...}
208
+ * console.log(result.code); // 200
209
+ * console.log(result.message); // "Event tracked successfully"
210
+ * ```
211
+ */
212
+ export var identify = function (identify, eventOptions) {
213
+ if (isInstanceProxy(identify)) {
214
+ var queue = identify._q;
215
+ identify._q = [];
216
+ identify = convertProxyObjectToRealObject(new Identify(), queue);
217
+ }
218
+ return {
219
+ promise: _identify(undefined, undefined, identify, eventOptions),
220
+ };
221
+ };
222
+ /**
223
+ * Sends a group identify event containing group property operations.
224
+ *
225
+ * ```typescript
226
+ * const id = new Identify();
227
+ * id.set('skills', ['js', 'ts']);
228
+ * const groupType = 'org';
229
+ * const groupName = 'engineering';
230
+ * groupIdentify(groupType, groupName, id);
231
+ *
232
+ * // alternatively, this tracking method is awaitable
233
+ * const result = await groupIdentify(groupType, groupName, id).promise;
234
+ * console.log(result.event); // {...}
235
+ * console.log(result.code); // 200
236
+ * console.log(result.message); // "Event tracked successfully"
237
+ * ```
238
+ */
239
+ export var groupIdentify = function (groupType, groupName, identify, eventOptions) {
240
+ if (isInstanceProxy(identify)) {
241
+ var queue = identify._q;
242
+ identify._q = [];
243
+ identify = convertProxyObjectToRealObject(new Identify(), queue);
244
+ }
245
+ return {
246
+ promise: _groupIdentify(undefined, undefined, groupType, groupName, identify, eventOptions),
247
+ };
248
+ };
249
+ export var setGroup = function (groupType, groupName) {
250
+ return {
251
+ promise: _setGroup(groupType, groupName),
252
+ };
253
+ };
254
+ /**
255
+ * Sends a revenue event containing revenue property operations.
256
+ *
257
+ * ```typescript
258
+ * const rev = new Revenue();
259
+ * rev.setRevenue(100);
260
+ * revenue(rev);
261
+ *
262
+ * // alternatively, this tracking method is awaitable
263
+ * const result = await revenue(rev).promise;
264
+ * console.log(result.event); // {...}
265
+ * console.log(result.code); // 200
266
+ * console.log(result.message); // "Event tracked successfully"
267
+ * ```
268
+ */
269
+ export var revenue = function (revenue, eventOptions) {
270
+ if (isInstanceProxy(revenue)) {
271
+ var queue = revenue._q;
272
+ revenue._q = [];
273
+ revenue = convertProxyObjectToRealObject(new Revenue(), queue);
274
+ }
275
+ return {
276
+ promise: _revenue(revenue, eventOptions),
277
+ };
278
+ };
279
+ //# sourceMappingURL=browser-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-client.js","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n add as _add,\n groupIdentify as _groupIdentify,\n Destination,\n identify as _identify,\n revenue as _revenue,\n init as _init,\n setOptOut as _setOptOut,\n Identify,\n Revenue,\n track as _track,\n setGroup as _setGroup,\n remove as _remove,\n} from '@amplitude/analytics-core';\nimport {\n AmplitudeReturn,\n BrowserConfig,\n BrowserOptions,\n EventOptions,\n Plugin,\n Result,\n TransportType,\n} from '@amplitude/analytics-types';\nimport { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';\nimport { Context } from './plugins/context';\nimport { createConfig, createTransport, getConfig } from './config';\nimport { trackAttributions } from './attribution';\nimport { updateCookies } from './session-manager';\n\n/**\n * Initializes the Amplitude SDK with your apiKey, userId and optional configurations.\n * This method must be called before any other operations.\n *\n * ```typescript\n * await init(API_KEY, USER_ID, options).promise;\n * ```\n */\nexport const init = (apiKey: string, userId?: string, options?: BrowserOptions): AmplitudeReturn<void> => {\n return {\n promise: (async () => {\n const browserOptions = createConfig(apiKey, userId, options);\n const config = _init(browserOptions) as BrowserConfig;\n updateCookies(config);\n\n await _add(new Context());\n await _add(new Destination());\n trackAttributions(config);\n })(),\n };\n};\n\n/**\n * Adds a new plugin.\n *\n * ```typescript\n * const plugin = {...};\n * amplitude.add(plugin);\n * ```\n */\nexport const add = (plugin: Plugin): AmplitudeReturn<void> => {\n return {\n promise: _add(plugin),\n };\n};\n\n/**\n * Removes a plugin.\n *\n * ```typescript\n * amplitude.remove('myPlugin');\n * ```\n */\nexport const remove = (pluginName: string): AmplitudeReturn<void> => {\n return {\n promise: _remove(pluginName),\n };\n};\n\n/**\n * Returns current user ID.\n *\n * ```typescript\n * const userId = getUserId();\n * ```\n */\nexport const getUserId = () => {\n return getConfig().userId;\n};\n\n/**\n * Sets a new user ID.\n *\n * ```typescript\n * setUserId('userId');\n * ```\n */\nexport const setUserId = (userId: string) => {\n const config = getConfig();\n config.userId = userId;\n updateCookies(config);\n};\n\n/**\n * Returns current device ID.\n *\n * ```typescript\n * const deviceId = getDeviceId();\n * ```\n */\nexport const getDeviceId = () => {\n return getConfig().deviceId;\n};\n\n/**\n * Sets a new device ID.\n * When setting a custom device ID, make sure the value is sufficiently unique.\n * A uuid is recommended.\n *\n * ```typescript\n * setDeviceId('deviceId');\n * ```\n */\nexport const setDeviceId = (deviceId: string) => {\n const config = getConfig();\n config.deviceId = deviceId;\n updateCookies(config);\n};\n\n/**\n * Returns current session ID.\n *\n * ```typescript\n * const sessionId = getSessionId();\n * ```\n */\nexport const getSessionId = () => {\n return getConfig().sessionId;\n};\n\n/**\n * Sets a new session ID.\n * When settign a custom session ID, make sure the value is in milliseconds since epoch (Unix Timestamp).\n *\n * ```typescript\n * setSessionId(Date.now());\n * ```\n */\nexport const setSessionId = (sessionId: number) => {\n const config = getConfig();\n config.sessionId = sessionId;\n updateCookies(config);\n};\n\n/**\n * Sets a new optOut config value. This toggles event tracking on/off.\n *\n *```typescript\n * // Stops tracking\n * setOptOut(true);\n *\n * // Starts/resumes tracking\n * setOptOut(false);\n * ```\n */\nexport const setOptOut = (optOut: boolean) => {\n _setOptOut(optOut);\n const config = getConfig();\n updateCookies(config);\n};\n\n/**\n * Sets the network transport type for events.\n *\n * ```typescript\n * // Use Fetch API\n * setTransport('fetch');\n *\n * // Use XMLHttpRequest API\n * setTransport('xhr');\n *\n * // Use navigator.sendBeacon API\n * setTransport('beacon');\n * ```\n */\nexport const setTransport = (transport: TransportType) => {\n const config = getConfig();\n const transportProvider = createTransport(transport);\n config.transportProvider = transportProvider;\n};\n\n/**\n * Tracks user-defined event, with specified type, optional event properties and optional overwrites.\n *\n * ```typescript\n * // event tracking with event type only\n * track('Page Load');\n *\n * // event tracking with event type and additional event properties\n * track('Page Load', { loadTime: 1000 });\n *\n * // event tracking with event type, additional event properties, and overwritten event options\n * track('Page Load', { loadTime: 1000 }, { sessionId: -1 });\n *\n * // alternatively, this tracking method is awaitable\n * const result = await track('Page Load').promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const track = (\n eventType: string,\n eventProperties?: Record<string, any>,\n eventOptions?: EventOptions,\n): AmplitudeReturn<Result> => {\n return {\n promise: _track(eventType, eventProperties, eventOptions),\n };\n};\n\n/**\n * Alis for track()\n */\nexport const logEvent = track;\n\n/**\n * Sends an identify event containing user property operations\n *\n * ```typescript\n * const id = new Identify();\n * id.set('colors', ['rose', 'gold']);\n * identify(id);\n *\n * // alternatively, this tracking method is awaitable\n * const result = await identify(id).promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const identify = (identify: Identify, eventOptions?: EventOptions): AmplitudeReturn<Result> => {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return {\n promise: _identify(undefined, undefined, identify, eventOptions),\n };\n};\n\n/**\n * Sends a group identify event containing group property operations.\n *\n * ```typescript\n * const id = new Identify();\n * id.set('skills', ['js', 'ts']);\n * const groupType = 'org';\n * const groupName = 'engineering';\n * groupIdentify(groupType, groupName, id);\n *\n * // alternatively, this tracking method is awaitable\n * const result = await groupIdentify(groupType, groupName, id).promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const groupIdentify = (\n groupType: string,\n groupName: string | string[],\n identify: Identify,\n eventOptions?: EventOptions,\n): AmplitudeReturn<Result> => {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return {\n promise: _groupIdentify(undefined, undefined, groupType, groupName, identify, eventOptions),\n };\n};\n\nexport const setGroup = (groupType: string, groupName: string | string[]): AmplitudeReturn<Result> => {\n return {\n promise: _setGroup(groupType, groupName),\n };\n};\n\n/**\n * Sends a revenue event containing revenue property operations.\n *\n * ```typescript\n * const rev = new Revenue();\n * rev.setRevenue(100);\n * revenue(rev);\n *\n * // alternatively, this tracking method is awaitable\n * const result = await revenue(rev).promise;\n * console.log(result.event); // {...}\n * console.log(result.code); // 200\n * console.log(result.message); // \"Event tracked successfully\"\n * ```\n */\nexport const revenue = (revenue: Revenue, eventOptions?: EventOptions): AmplitudeReturn<Result> => {\n if (isInstanceProxy(revenue)) {\n const queue = revenue._q;\n revenue._q = [];\n revenue = convertProxyObjectToRealObject(new Revenue(), queue);\n }\n return {\n promise: _revenue(revenue, eventOptions),\n };\n};\n"]}
@@ -0,0 +1,83 @@
1
+ import { BrowserOptions, BrowserConfig as IBrowserConfig, Storage, TrackingOptions, TransportType, UserSession } from '@amplitude/analytics-types';
2
+ import { Config } from '@amplitude/analytics-core';
3
+ import { FetchTransport } from './transports/fetch';
4
+ import { XHRTransport } from './transports/xhr';
5
+ import { SendBeaconTransport } from './transports/send-beacon';
6
+ export declare const defaultConfig: {
7
+ cookieExpiration: number;
8
+ cookieSameSite: string;
9
+ cookieSecure: boolean;
10
+ disableCookies: boolean;
11
+ domain: string;
12
+ includeGclid: boolean;
13
+ includeFbclid: boolean;
14
+ includeReferrer: boolean;
15
+ includeUtm: boolean;
16
+ sessionTimeout: number;
17
+ trackingOptions: {
18
+ city: boolean;
19
+ country: boolean;
20
+ carrier: boolean;
21
+ deviceManufacturer: boolean;
22
+ deviceModel: boolean;
23
+ dma: boolean;
24
+ ipAddress: boolean;
25
+ language: boolean;
26
+ osName: boolean;
27
+ osVersion: boolean;
28
+ platform: boolean;
29
+ region: boolean;
30
+ versionName: boolean;
31
+ };
32
+ transportProvider: FetchTransport;
33
+ };
34
+ export declare class BrowserConfig extends Config implements IBrowserConfig {
35
+ cookieExpiration: number;
36
+ cookieSameSite: string;
37
+ cookieSecure: boolean;
38
+ cookieStorage: Storage<UserSession>;
39
+ disableCookies: boolean;
40
+ domain: string;
41
+ includeUtm: boolean;
42
+ includeReferrer: boolean;
43
+ includeGclid: boolean;
44
+ includeFbclid: boolean;
45
+ sessionTimeout: number;
46
+ trackingOptions: TrackingOptions;
47
+ constructor(apiKey: string, userId?: string, options?: BrowserOptions);
48
+ }
49
+ export declare const createConfig: (apiKey: string, userId?: string | undefined, overrides?: BrowserOptions | undefined) => IBrowserConfig;
50
+ export declare const createCookieStorage: (overrides?: BrowserOptions | undefined, baseConfig?: {
51
+ cookieExpiration: number;
52
+ cookieSameSite: string;
53
+ cookieSecure: boolean;
54
+ disableCookies: boolean;
55
+ domain: string;
56
+ includeGclid: boolean;
57
+ includeFbclid: boolean;
58
+ includeReferrer: boolean;
59
+ includeUtm: boolean;
60
+ sessionTimeout: number;
61
+ trackingOptions: {
62
+ city: boolean;
63
+ country: boolean;
64
+ carrier: boolean;
65
+ deviceManufacturer: boolean;
66
+ deviceModel: boolean;
67
+ dma: boolean;
68
+ ipAddress: boolean;
69
+ language: boolean;
70
+ osName: boolean;
71
+ osVersion: boolean;
72
+ platform: boolean;
73
+ region: boolean;
74
+ versionName: boolean;
75
+ };
76
+ transportProvider: FetchTransport;
77
+ }) => Storage<UserSession>;
78
+ export declare const createEventsStorage: (overrides?: BrowserOptions | undefined) => Storage<import("@amplitude/analytics-types").Event[]>;
79
+ export declare const createDeviceId: (idFromCookies?: string | undefined, idFromOptions?: string | undefined, idFromQueryParams?: string | undefined) => string;
80
+ export declare const createSessionId: (idFromCookies: number | undefined, idFromOptions: number | undefined, lastEventTime: number | undefined, sessionTimeout: number) => number;
81
+ export declare const createTransport: (transport?: TransportType | undefined) => FetchTransport | XHRTransport | SendBeaconTransport;
82
+ export declare const getConfig: () => BrowserConfig;
83
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,aAAa,IAAI,cAAc,EAC/B,OAAO,EACP,eAAe,EACf,aAAa,EACb,WAAW,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAA2B,MAAM,2BAA2B,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMpD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BzB,CAAC;AAEF,qBAAa,aAAc,SAAQ,MAAO,YAAW,cAAc;IACjE,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;gBAErB,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;CAkCtE;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,0EAAgD,cAE1F,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAkB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,mGAS/B,CAAC;AAEF,eAAO,MAAM,cAAc,4HAE1B,CAAC;AAEF,eAAO,MAAM,eAAe,4HAA6E,MAAM,WAK9G,CAAC;AAEF,eAAO,MAAM,eAAe,gGAQ3B,CAAC;AAEF,eAAO,MAAM,SAAS,qBAErB,CAAC"}