@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,129 @@
1
+ import { __assign, __extends } from "tslib";
2
+ import { TransportType, } from '@amplitude/analytics-types';
3
+ import { Config, getConfig as _getConfig } from '@amplitude/analytics-core';
4
+ import { CookieStorage } from './storage/cookie';
5
+ import { FetchTransport } from './transports/fetch';
6
+ import { LocalStorage } from './storage/local-storage';
7
+ import { MemoryStorage } from './storage/memory';
8
+ import { getCookieName } from './session-manager';
9
+ import { getQueryParams } from './utils/query-params';
10
+ import { UUID } from './utils/uuid';
11
+ import { XHRTransport } from './transports/xhr';
12
+ import { SendBeaconTransport } from './transports/send-beacon';
13
+ export var defaultConfig = {
14
+ cookieExpiration: 365,
15
+ cookieSameSite: 'Lax',
16
+ cookieSecure: false,
17
+ disableCookies: false,
18
+ domain: '',
19
+ includeGclid: true,
20
+ includeFbclid: true,
21
+ includeReferrer: true,
22
+ includeUtm: true,
23
+ sessionTimeout: 30 * 60 * 1000,
24
+ trackingOptions: {
25
+ city: true,
26
+ country: true,
27
+ carrier: true,
28
+ deviceManufacturer: true,
29
+ deviceModel: true,
30
+ dma: true,
31
+ ipAddress: true,
32
+ language: true,
33
+ osName: true,
34
+ osVersion: true,
35
+ platform: true,
36
+ region: true,
37
+ versionName: true,
38
+ },
39
+ transportProvider: new FetchTransport(),
40
+ };
41
+ var BrowserConfig = /** @class */ (function (_super) {
42
+ __extends(BrowserConfig, _super);
43
+ function BrowserConfig(apiKey, userId, options) {
44
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
45
+ var _this = this;
46
+ var cookieStorage = createCookieStorage(options);
47
+ var storageProvider = createEventsStorage(options);
48
+ var transportProvider = (_a = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _a !== void 0 ? _a : createTransport(options === null || options === void 0 ? void 0 : options.transport);
49
+ var sessionTimeout = (_b = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _b !== void 0 ? _b : defaultConfig.sessionTimeout;
50
+ var trackingOptions = __assign(__assign({}, defaultConfig.trackingOptions), options === null || options === void 0 ? void 0 : options.trackingOptions);
51
+ var cookieName = getCookieName(apiKey);
52
+ var cookies = cookieStorage.get(cookieName);
53
+ var queryParams = getQueryParams();
54
+ _this = _super.call(this, __assign(__assign({}, options), { apiKey: apiKey, storageProvider: storageProvider, transportProvider: transportProvider, userId: userId !== null && userId !== void 0 ? userId : cookies === null || cookies === void 0 ? void 0 : cookies.userId, deviceId: createDeviceId(cookies === null || cookies === void 0 ? void 0 : cookies.deviceId, options === null || options === void 0 ? void 0 : options.deviceId, queryParams.deviceId), sessionId: createSessionId(cookies === null || cookies === void 0 ? void 0 : cookies.sessionId, options === null || options === void 0 ? void 0 : options.sessionId, cookies === null || cookies === void 0 ? void 0 : cookies.lastEventTime, sessionTimeout), optOut: Boolean(cookies === null || cookies === void 0 ? void 0 : cookies.optOut) })) || this;
55
+ _this.cookieExpiration = (_c = options === null || options === void 0 ? void 0 : options.cookieExpiration) !== null && _c !== void 0 ? _c : defaultConfig.cookieExpiration;
56
+ _this.cookieSameSite = (_d = options === null || options === void 0 ? void 0 : options.cookieSameSite) !== null && _d !== void 0 ? _d : defaultConfig.cookieSameSite;
57
+ _this.cookieSecure = (_e = options === null || options === void 0 ? void 0 : options.cookieSecure) !== null && _e !== void 0 ? _e : defaultConfig.cookieSecure;
58
+ _this.cookieStorage = cookieStorage;
59
+ _this.disableCookies = (_f = options === null || options === void 0 ? void 0 : options.disableCookies) !== null && _f !== void 0 ? _f : defaultConfig.disableCookies;
60
+ _this.domain = (_g = options === null || options === void 0 ? void 0 : options.domain) !== null && _g !== void 0 ? _g : defaultConfig.domain;
61
+ _this.includeGclid = (_h = options === null || options === void 0 ? void 0 : options.includeGclid) !== null && _h !== void 0 ? _h : defaultConfig.includeGclid;
62
+ _this.includeFbclid = (_j = options === null || options === void 0 ? void 0 : options.includeFbclid) !== null && _j !== void 0 ? _j : defaultConfig.includeFbclid;
63
+ _this.includeReferrer = (_k = options === null || options === void 0 ? void 0 : options.includeReferrer) !== null && _k !== void 0 ? _k : defaultConfig.includeReferrer;
64
+ _this.includeUtm = (_l = options === null || options === void 0 ? void 0 : options.includeUtm) !== null && _l !== void 0 ? _l : defaultConfig.includeUtm;
65
+ _this.sessionTimeout = sessionTimeout;
66
+ _this.trackingOptions = trackingOptions;
67
+ return _this;
68
+ }
69
+ return BrowserConfig;
70
+ }(Config));
71
+ export { BrowserConfig };
72
+ export var createConfig = function (apiKey, userId, overrides) {
73
+ return new BrowserConfig(apiKey, userId, overrides);
74
+ };
75
+ export var createCookieStorage = function (overrides, baseConfig) {
76
+ if (baseConfig === void 0) { baseConfig = defaultConfig; }
77
+ var options = __assign(__assign({}, baseConfig), overrides);
78
+ var cookieStorage = overrides === null || overrides === void 0 ? void 0 : overrides.cookieStorage;
79
+ if (!cookieStorage || !cookieStorage.isEnabled()) {
80
+ cookieStorage = new CookieStorage({
81
+ domain: options.domain,
82
+ expirationDays: options.cookieExpiration,
83
+ sameSite: options.cookieSameSite,
84
+ secure: options.cookieSecure,
85
+ });
86
+ if (options.disableCookies || !cookieStorage.isEnabled()) {
87
+ cookieStorage = new LocalStorage();
88
+ if (!cookieStorage.isEnabled()) {
89
+ cookieStorage = new MemoryStorage();
90
+ }
91
+ }
92
+ }
93
+ return cookieStorage;
94
+ };
95
+ export var createEventsStorage = function (overrides) {
96
+ var eventsStorage = overrides === null || overrides === void 0 ? void 0 : overrides.storageProvider;
97
+ if (!eventsStorage || !eventsStorage.isEnabled()) {
98
+ eventsStorage = new LocalStorage();
99
+ if (!eventsStorage.isEnabled()) {
100
+ eventsStorage = new MemoryStorage();
101
+ }
102
+ }
103
+ return eventsStorage;
104
+ };
105
+ export var createDeviceId = function (idFromCookies, idFromOptions, idFromQueryParams) {
106
+ return idFromOptions || idFromQueryParams || idFromCookies || UUID();
107
+ };
108
+ export var createSessionId = function (idFromCookies, idFromOptions, lastEventTime, sessionTimeout) {
109
+ if (idFromCookies === void 0) { idFromCookies = 0; }
110
+ if (idFromOptions === void 0) { idFromOptions = 0; }
111
+ if (lastEventTime === void 0) { lastEventTime = 0; }
112
+ if (idFromCookies && Date.now() - lastEventTime < sessionTimeout) {
113
+ return idFromCookies;
114
+ }
115
+ return idFromOptions ? idFromOptions : Date.now();
116
+ };
117
+ export var createTransport = function (transport) {
118
+ if (transport === TransportType.XHR) {
119
+ return new XHRTransport();
120
+ }
121
+ if (transport === TransportType.SendBeacon) {
122
+ return new SendBeaconTransport();
123
+ }
124
+ return defaultConfig.transportProvider;
125
+ };
126
+ export var getConfig = function () {
127
+ return _getConfig();
128
+ };
129
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BrowserOptions,\n BrowserConfig as IBrowserConfig,\n Storage,\n TrackingOptions,\n TransportType,\n UserSession,\n} from '@amplitude/analytics-types';\nimport { Config, getConfig as _getConfig } from '@amplitude/analytics-core';\n\nimport { CookieStorage } from './storage/cookie';\nimport { FetchTransport } from './transports/fetch';\nimport { LocalStorage } from './storage/local-storage';\nimport { MemoryStorage } from './storage/memory';\nimport { getCookieName } from './session-manager';\nimport { getQueryParams } from './utils/query-params';\nimport { UUID } from './utils/uuid';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\n\nexport const defaultConfig = {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n disableCookies: false,\n domain: '',\n includeGclid: true,\n includeFbclid: true,\n includeReferrer: true,\n includeUtm: true,\n sessionTimeout: 30 * 60 * 1000,\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\nexport class BrowserConfig extends Config implements IBrowserConfig {\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n includeUtm: boolean;\n includeReferrer: boolean;\n includeGclid: boolean;\n includeFbclid: boolean;\n sessionTimeout: number;\n trackingOptions: TrackingOptions;\n\n constructor(apiKey: string, userId?: string, options?: BrowserOptions) {\n const cookieStorage = createCookieStorage(options);\n const storageProvider = createEventsStorage(options);\n const transportProvider = options?.transportProvider ?? createTransport(options?.transport);\n const sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n const trackingOptions = { ...defaultConfig.trackingOptions, ...options?.trackingOptions };\n const cookieName = getCookieName(apiKey);\n const cookies = cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n\n super({\n ...options,\n apiKey,\n storageProvider,\n transportProvider,\n userId: userId ?? cookies?.userId,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n sessionId: createSessionId(cookies?.sessionId, options?.sessionId, cookies?.lastEventTime, sessionTimeout),\n optOut: Boolean(cookies?.optOut),\n });\n\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.cookieStorage = cookieStorage;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.includeGclid = options?.includeGclid ?? defaultConfig.includeGclid;\n this.includeFbclid = options?.includeFbclid ?? defaultConfig.includeFbclid;\n this.includeReferrer = options?.includeReferrer ?? defaultConfig.includeReferrer;\n this.includeUtm = options?.includeUtm ?? defaultConfig.includeUtm;\n this.sessionTimeout = sessionTimeout;\n this.trackingOptions = trackingOptions;\n }\n}\n\nexport const createConfig = (apiKey: string, userId?: string, overrides?: BrowserOptions): IBrowserConfig => {\n return new BrowserConfig(apiKey, userId, overrides);\n};\n\nexport const createCookieStorage = (overrides?: BrowserOptions, baseConfig = defaultConfig) => {\n const options = { ...baseConfig, ...overrides };\n let cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !cookieStorage.isEnabled()) {\n cookieStorage = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !cookieStorage.isEnabled()) {\n cookieStorage = new LocalStorage();\n if (!cookieStorage.isEnabled()) {\n cookieStorage = new MemoryStorage();\n }\n }\n }\n return cookieStorage;\n};\n\nexport const createEventsStorage = (overrides?: BrowserOptions) => {\n let eventsStorage = overrides?.storageProvider;\n if (!eventsStorage || !eventsStorage.isEnabled()) {\n eventsStorage = new LocalStorage();\n if (!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 createSessionId = (idFromCookies = 0, idFromOptions = 0, lastEventTime = 0, sessionTimeout: number) => {\n if (idFromCookies && Date.now() - lastEventTime < sessionTimeout) {\n return idFromCookies;\n }\n return idFromOptions ? idFromOptions : Date.now();\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 defaultConfig.transportProvider;\n};\n\nexport const getConfig = () => {\n return _getConfig() as BrowserConfig;\n};\n"]}
@@ -0,0 +1,13 @@
1
+ export declare const UTM_SOURCE = "utm_source";
2
+ export declare const UTM_MEDIUM = "utm_medium";
3
+ export declare const UTM_CAMPAIGN = "utm_campaign";
4
+ export declare const UTM_TERM = "utm_term";
5
+ export declare const UTM_CONTENT = "utm_content";
6
+ export declare const UTMZ_SOURCE = "utmcsr";
7
+ export declare const UTMZ_MEDIUM = "utmcmd";
8
+ export declare const UTMZ_CAMPAIGN = "utmccn";
9
+ export declare const UTMZ_TERM = "utmctr";
10
+ export declare const UTMZ_CONTENT = "utmcct";
11
+ export declare const GCLID = "gclid";
12
+ export declare const FBCLID = "fbclid";
13
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,aAAa,WAAW,CAAC;AACtC,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,MAAM,WAAW,CAAC"}
@@ -0,0 +1,13 @@
1
+ export var UTM_SOURCE = 'utm_source';
2
+ export var UTM_MEDIUM = 'utm_medium';
3
+ export var UTM_CAMPAIGN = 'utm_campaign';
4
+ export var UTM_TERM = 'utm_term';
5
+ export var UTM_CONTENT = 'utm_content';
6
+ export var UTMZ_SOURCE = 'utmcsr';
7
+ export var UTMZ_MEDIUM = 'utmcmd';
8
+ export var UTMZ_CAMPAIGN = 'utmccn';
9
+ export var UTMZ_TERM = 'utmctr';
10
+ export var UTMZ_CONTENT = 'utmcct';
11
+ export var GCLID = 'gclid';
12
+ export var FBCLID = 'fbclid';
13
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,IAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,IAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAC;AAEzC,MAAM,CAAC,IAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,CAAC,IAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,CAAC,IAAM,aAAa,GAAG,QAAQ,CAAC;AACtC,MAAM,CAAC,IAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,MAAM,CAAC,IAAM,YAAY,GAAG,QAAQ,CAAC;AAErC,MAAM,CAAC,IAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC","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"]}
@@ -0,0 +1,5 @@
1
+ export { add, getDeviceId, getSessionId, getUserId, groupIdentify, identify, init, logEvent, remove, revenue, setDeviceId, setGroup, setOptOut, setSessionId, setTransport, setUserId, track, } from './browser-client';
2
+ export { runQueuedFunctions } from './utils/snippet-helper';
3
+ export { Revenue, Identify } from '@amplitude/analytics-core';
4
+ export * as Types from '@amplitude/analytics-types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { add, getDeviceId, getSessionId, getUserId, groupIdentify, identify, init, logEvent, remove, revenue, setDeviceId, setGroup, setOptOut, setSessionId, setTransport, setUserId, track, } from './browser-client';
2
+ export { runQueuedFunctions } from './utils/snippet-helper';
3
+ export { Revenue, Identify } from '@amplitude/analytics-core';
4
+ import * as Types_1 from '@amplitude/analytics-types';
5
+ export { Types_1 as Types };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;yBACvC,4BAA4B;oBAAvC,KAAK","sourcesContent":["export {\n add,\n getDeviceId,\n getSessionId,\n getUserId,\n groupIdentify,\n identify,\n init,\n logEvent,\n remove,\n revenue,\n setDeviceId,\n setGroup,\n setOptOut,\n setSessionId,\n setTransport,\n setUserId,\n track,\n} from './browser-client';\nexport { runQueuedFunctions } from './utils/snippet-helper';\nexport { Revenue, Identify } from '@amplitude/analytics-core';\nexport * as Types from '@amplitude/analytics-types';\n"]}
@@ -0,0 +1,14 @@
1
+ import { BeforePlugin, BrowserConfig, Event, PluginType } from '@amplitude/analytics-types';
2
+ import UAParser from '@amplitude/ua-parser-js';
3
+ export declare class Context implements BeforePlugin {
4
+ name: string;
5
+ type: PluginType.BEFORE;
6
+ config: BrowserConfig;
7
+ eventId: number;
8
+ uaResult: UAParser.IResult;
9
+ library: string;
10
+ constructor();
11
+ setup(config: BrowserConfig): Promise<undefined>;
12
+ execute(context: Event): Promise<Event>;
13
+ }
14
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAS/C,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,SAAa;IACjB,IAAI,oBAA8B;IAKlC,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,SAAK;IACZ,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC3B,OAAO,SAA6B;;IAWpC,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAKhD,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAgCxC"}
@@ -0,0 +1,44 @@
1
+ import { __assign } from "tslib";
2
+ import { PluginType } from '@amplitude/analytics-types';
3
+ import UAParser from '@amplitude/ua-parser-js';
4
+ import { UUID } from '../utils/uuid';
5
+ import { getLanguage } from '../utils/language';
6
+ import { VERSION } from '../version';
7
+ import { checkSessionExpiry, updateLastEventTime } from '../session-manager';
8
+ var BROWSER_PLATFORM = 'Web';
9
+ var IP_ADDRESS = '$remote';
10
+ var Context = /** @class */ (function () {
11
+ function Context() {
12
+ this.name = 'context';
13
+ this.type = PluginType.BEFORE;
14
+ this.eventId = 0;
15
+ this.library = "amplitude-ts/".concat(VERSION);
16
+ var agent;
17
+ /* istanbul ignore else */
18
+ if (typeof navigator !== 'undefined') {
19
+ agent = navigator.userAgent;
20
+ }
21
+ this.uaResult = new UAParser(agent).getResult();
22
+ }
23
+ Context.prototype.setup = function (config) {
24
+ this.config = config;
25
+ return Promise.resolve(undefined);
26
+ };
27
+ Context.prototype.execute = function (context) {
28
+ var _this = this;
29
+ return new Promise(function (resolve) {
30
+ var time = new Date().getTime();
31
+ var osName = _this.uaResult.browser.name;
32
+ var osVersion = _this.uaResult.browser.version;
33
+ var deviceModel = _this.uaResult.device.model || _this.uaResult.os.name;
34
+ var deviceVendor = _this.uaResult.device.vendor;
35
+ checkSessionExpiry(_this.config);
36
+ updateLastEventTime(_this.config, time);
37
+ var contextEvent = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ user_id: _this.config.userId, device_id: _this.config.deviceId, session_id: _this.config.sessionId, time: time }, (_this.config.appVersion && { app_version: _this.config.appVersion })), (_this.config.trackingOptions.platform && { platform: BROWSER_PLATFORM })), (_this.config.trackingOptions.osName && { os_name: osName })), (_this.config.trackingOptions.osVersion && { os_version: osVersion })), (_this.config.trackingOptions.deviceManufacturer && { device_manufacturer: deviceVendor })), (_this.config.trackingOptions.deviceModel && { device_model: deviceModel })), (_this.config.trackingOptions.language && { language: getLanguage() })), (_this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS })), { insert_id: UUID(), partner_id: _this.config.partnerId }), context), { event_id: _this.eventId++, library: _this.library });
38
+ return resolve(contextEvent);
39
+ });
40
+ };
41
+ return Context;
42
+ }());
43
+ export { Context };
44
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":"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","sourcesContent":["import { BeforePlugin, BrowserConfig, Event, PluginType } from '@amplitude/analytics-types';\nimport UAParser from '@amplitude/ua-parser-js';\nimport { UUID } from '../utils/uuid';\nimport { getLanguage } from '../utils/language';\nimport { VERSION } from '../version';\nimport { checkSessionExpiry, updateLastEventTime } from '../session-manager';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\n\nexport class Context implements BeforePlugin {\n name = 'context';\n type = PluginType.BEFORE as const;\n\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n eventId = 0;\n uaResult: UAParser.IResult;\n library = `amplitude-ts/${VERSION}`;\n\n constructor() {\n let agent: string | undefined;\n /* istanbul ignore else */\n if (typeof navigator !== 'undefined') {\n agent = navigator.userAgent;\n }\n this.uaResult = new UAParser(agent).getResult();\n }\n\n setup(config: BrowserConfig): Promise<undefined> {\n this.config = config;\n return Promise.resolve(undefined);\n }\n\n execute(context: Event): Promise<Event> {\n return new Promise((resolve) => {\n const time = new Date().getTime();\n const osName = this.uaResult.browser.name;\n const osVersion = this.uaResult.browser.version;\n const deviceModel = this.uaResult.device.model || this.uaResult.os.name;\n const deviceVendor = this.uaResult.device.vendor;\n\n checkSessionExpiry(this.config);\n updateLastEventTime(this.config, time);\n const contextEvent: Event = {\n user_id: this.config.userId,\n device_id: this.config.deviceId,\n session_id: this.config.sessionId,\n time,\n ...(this.config.appVersion && { app_version: this.config.appVersion }),\n ...(this.config.trackingOptions.platform && { platform: BROWSER_PLATFORM }),\n ...(this.config.trackingOptions.osName && { os_name: osName }),\n ...(this.config.trackingOptions.osVersion && { os_version: osVersion }),\n ...(this.config.trackingOptions.deviceManufacturer && { device_manufacturer: deviceVendor }),\n ...(this.config.trackingOptions.deviceModel && { device_model: deviceModel }),\n ...(this.config.trackingOptions.language && { language: getLanguage() }),\n ...(this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS }),\n insert_id: UUID(),\n partner_id: this.config.partnerId,\n ...context,\n event_id: this.eventId++,\n library: this.library,\n };\n return resolve(contextEvent);\n });\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { BrowserConfig } from '@amplitude/analytics-types';
2
+ export declare const updateCookies: (config: BrowserConfig) => void;
3
+ export declare const updateLastEventTime: (config: BrowserConfig, lastEventTime: number) => void;
4
+ export declare const checkSessionExpiry: (config: BrowserConfig) => void;
5
+ export declare const getCookieName: (apiKey: string) => string;
6
+ //# sourceMappingURL=session-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,eAAO,MAAM,aAAa,WAAY,aAAa,SASlD,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAAY,aAAa,iBAAiB,MAAM,SAS/E,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,aAAa,SAQvD,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,MAAM,WAE3C,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';
2
+ export var updateCookies = function (config) {
3
+ var _a;
4
+ var cookieName = getCookieName(config.apiKey);
5
+ config.cookieStorage.set(cookieName, {
6
+ userId: config.userId,
7
+ deviceId: config.deviceId,
8
+ sessionId: config.sessionId,
9
+ lastEventTime: (_a = config.cookieStorage.get(cookieName)) === null || _a === void 0 ? void 0 : _a.lastEventTime,
10
+ optOut: Boolean(config.optOut),
11
+ });
12
+ };
13
+ export var updateLastEventTime = function (config, lastEventTime) {
14
+ var cookieName = getCookieName(config.apiKey);
15
+ config.cookieStorage.set(cookieName, {
16
+ userId: config.userId,
17
+ deviceId: config.deviceId,
18
+ sessionId: config.sessionId,
19
+ lastEventTime: lastEventTime,
20
+ optOut: Boolean(config.optOut),
21
+ });
22
+ };
23
+ export var checkSessionExpiry = function (config) {
24
+ var _a;
25
+ var cookieName = getCookieName(config.apiKey);
26
+ var lastEventTime = (_a = config.cookieStorage.get(cookieName)) === null || _a === void 0 ? void 0 : _a.lastEventTime;
27
+ var now = Date.now();
28
+ if (lastEventTime && now - lastEventTime >= config.sessionTimeout) {
29
+ config.sessionId = now;
30
+ updateCookies(config);
31
+ }
32
+ };
33
+ export var getCookieName = function (apiKey) {
34
+ return "".concat(AMPLITUDE_PREFIX, "_").concat(apiKey.substring(0, 10));
35
+ };
36
+ //# sourceMappingURL=session-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,MAAqB;;IACjD,IAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAA,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,0CAAE,aAAa;QAClE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,MAAqB,EAAE,aAAqB;IAC9E,IAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,aAAa;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,MAAqB;;IACtD,IAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,IAAM,aAAa,GAAG,MAAA,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,0CAAE,aAAa,CAAC;IAC1E,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,aAAa,IAAI,GAAG,GAAG,aAAa,IAAI,MAAM,CAAC,cAAc,EAAE;QACjE,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;QACvB,aAAa,CAAC,MAAM,CAAC,CAAC;KACvB;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,MAAc;IAC1C,OAAO,UAAG,gBAAgB,cAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC;AAC1D,CAAC,CAAC","sourcesContent":["import { BrowserConfig } from '@amplitude/analytics-types';\nimport { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';\n\nexport const updateCookies = (config: BrowserConfig) => {\n const cookieName = getCookieName(config.apiKey);\n config.cookieStorage.set(cookieName, {\n userId: config.userId,\n deviceId: config.deviceId,\n sessionId: config.sessionId,\n lastEventTime: config.cookieStorage.get(cookieName)?.lastEventTime,\n optOut: Boolean(config.optOut),\n });\n};\n\nexport const updateLastEventTime = (config: BrowserConfig, lastEventTime: number) => {\n const cookieName = getCookieName(config.apiKey);\n config.cookieStorage.set(cookieName, {\n userId: config.userId,\n deviceId: config.deviceId,\n sessionId: config.sessionId,\n lastEventTime: lastEventTime,\n optOut: Boolean(config.optOut),\n });\n};\n\nexport const checkSessionExpiry = (config: BrowserConfig) => {\n const cookieName = getCookieName(config.apiKey);\n const lastEventTime = config.cookieStorage.get(cookieName)?.lastEventTime;\n const now = Date.now();\n if (lastEventTime && now - lastEventTime >= config.sessionTimeout) {\n config.sessionId = now;\n updateCookies(config);\n }\n};\n\nexport const getCookieName = (apiKey: string) => {\n return `${AMPLITUDE_PREFIX}_${apiKey.substring(0, 10)}`;\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=snippet-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippet-index.d.ts","sourceRoot":"","sources":["../../src/snippet-index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import * as amplitude from './index';
2
+ import { runQueuedFunctions } from './utils/snippet-helper';
3
+ globalThis.amplitude = Object.assign(globalThis.amplitude || {}, amplitude);
4
+ if (globalThis.amplitude.invoked) {
5
+ var queue = globalThis.amplitude._q;
6
+ globalThis.amplitude._q = [];
7
+ runQueuedFunctions(amplitude, queue);
8
+ }
9
+ //# sourceMappingURL=snippet-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippet-index.js","sourceRoot":"","sources":["../../src/snippet-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;AAE5E,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE;IAChC,IAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;IACtC,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAC7B,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;CACtC","sourcesContent":["import * as amplitude from './index';\nimport { runQueuedFunctions } from './utils/snippet-helper';\n\nglobalThis.amplitude = Object.assign(globalThis.amplitude || {}, amplitude);\n\nif (globalThis.amplitude.invoked) {\n const queue = globalThis.amplitude._q;\n globalThis.amplitude._q = [];\n runQueuedFunctions(amplitude, queue);\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';
2
+ export declare class CookieStorage<T> implements Storage<T> {
3
+ options: CookieStorageOptions;
4
+ constructor(options?: CookieStorageOptions);
5
+ isEnabled(): boolean;
6
+ get(key: string): T | undefined;
7
+ findByKey(key: string): string | undefined;
8
+ set(key: string, value: T | null, options?: CookieStorageOptions): void;
9
+ remove(key: string): void;
10
+ reset(): void;
11
+ }
12
+ //# sourceMappingURL=cookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,oBAAoB,CAAC;gBAElB,OAAO,CAAC,EAAE,oBAAoB;IAI1C,SAAS;IAqBT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAW/B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAS1C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,oBAAoB;IA6BhE,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,KAAK;CAGN"}
@@ -0,0 +1,84 @@
1
+ import { __assign } from "tslib";
2
+ var CookieStorage = /** @class */ (function () {
3
+ function CookieStorage(options) {
4
+ this.options = __assign({}, options);
5
+ }
6
+ CookieStorage.prototype.isEnabled = function () {
7
+ /* istanbul ignore if */
8
+ if (typeof window === 'undefined') {
9
+ return false;
10
+ }
11
+ var random = String(Date.now());
12
+ var testStrorage = new CookieStorage();
13
+ var testKey = 'AMP_TEST';
14
+ try {
15
+ testStrorage.set(testKey, random);
16
+ var value = testStrorage.get(testKey);
17
+ return value === random;
18
+ }
19
+ catch (_a) {
20
+ /* istanbul ignore next */
21
+ return false;
22
+ }
23
+ finally {
24
+ testStrorage.remove(testKey);
25
+ }
26
+ };
27
+ CookieStorage.prototype.get = function (key) {
28
+ try {
29
+ var value = this.findByKey(key);
30
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
31
+ return value ? JSON.parse(value) : undefined;
32
+ }
33
+ catch (_a) {
34
+ /* istanbul ignore next */
35
+ return undefined;
36
+ }
37
+ };
38
+ CookieStorage.prototype.findByKey = function (key) {
39
+ var cookie = window.document.cookie.split('; ');
40
+ var match = cookie.find(function (c) { return c.indexOf(key + '=') === 0; });
41
+ if (!match) {
42
+ return undefined;
43
+ }
44
+ return match.substring(key.length + 1);
45
+ };
46
+ CookieStorage.prototype.set = function (key, value, options) {
47
+ try {
48
+ var expires = value !== null ? options === null || options === void 0 ? void 0 : options.expirationDays : -1;
49
+ var expireDate = undefined;
50
+ if (expires) {
51
+ var date = new Date();
52
+ date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);
53
+ expireDate = date;
54
+ }
55
+ var str = "".concat(key, "=").concat(JSON.stringify(value));
56
+ if (expireDate) {
57
+ str += "; expires=".concat(expireDate.toUTCString());
58
+ }
59
+ str += '; path=/';
60
+ if (options === null || options === void 0 ? void 0 : options.domain) {
61
+ str += "; domain=".concat(options.domain);
62
+ }
63
+ if (options === null || options === void 0 ? void 0 : options.secure) {
64
+ str += '; Secure';
65
+ }
66
+ if (options === null || options === void 0 ? void 0 : options.sameSite) {
67
+ str += "; SameSite=".concat(options.sameSite);
68
+ }
69
+ window.document.cookie = str;
70
+ }
71
+ catch (_a) {
72
+ //
73
+ }
74
+ };
75
+ CookieStorage.prototype.remove = function (key) {
76
+ this.set(key, null);
77
+ };
78
+ CookieStorage.prototype.reset = function () {
79
+ return;
80
+ };
81
+ return CookieStorage;
82
+ }());
83
+ export { CookieStorage };
84
+ //# sourceMappingURL=cookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":";AAEA;IAGE,uBAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,gBAAQ,OAAO,CAAE,CAAC;IAChC,CAAC;IAED,iCAAS,GAAT;QACE,wBAAwB;QACxB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,IAAM,YAAY,GAAG,IAAI,aAAa,EAAU,CAAC;QACjD,IAAM,OAAO,GAAG,UAAU,CAAC;QAC3B,IAAI;YACF,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,IAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,KAAK,KAAK,MAAM,CAAC;SACzB;QAAC,WAAM;YACN,0BAA0B;YAC1B,OAAO,KAAK,CAAC;SACd;gBAAS;YACR,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,2BAAG,GAAH,UAAI,GAAW;QACb,IAAI;YACF,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAClC,+DAA+D;YAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;SAC9C;QAAC,WAAM;YACN,0BAA0B;YAC1B,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAED,iCAAS,GAAT,UAAU,GAAW;QACnB,IAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAA1B,CAA0B,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,2BAAG,GAAH,UAAI,GAAW,EAAE,KAAe,EAAE,OAA8B;QAC9D,IAAI;YACF,IAAM,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,UAAU,GAAqB,SAAS,CAAC;YAC7C,IAAI,OAAO,EAAE;gBACX,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC7D,UAAU,GAAG,IAAI,CAAC;aACnB;YACD,IAAI,GAAG,GAAG,UAAG,GAAG,cAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAE,CAAC;YAC5C,IAAI,UAAU,EAAE;gBACd,GAAG,IAAI,oBAAa,UAAU,CAAC,WAAW,EAAE,CAAE,CAAC;aAChD;YACD,GAAG,IAAI,UAAU,CAAC;YAClB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;gBACnB,GAAG,IAAI,mBAAY,OAAO,CAAC,MAAM,CAAE,CAAC;aACrC;YACD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;gBACnB,GAAG,IAAI,UAAU,CAAC;aACnB;YACD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE;gBACrB,GAAG,IAAI,qBAAc,OAAO,CAAC,QAAQ,CAAE,CAAC;aACzC;YACD,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;SAC9B;QAAC,WAAM;YACN,EAAE;SACH;IACH,CAAC;IAED,8BAAM,GAAN,UAAO,GAAW;QAChB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,6BAAK,GAAL;QACE,OAAO;IACT,CAAC;IACH,oBAAC;AAAD,CAAC,AApFD,IAoFC","sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\n\nexport class CookieStorage<T> implements Storage<T> {\n options: CookieStorageOptions;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n isEnabled() {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return false;\n }\n\n const random = String(Date.now());\n const testStrorage = new CookieStorage<string>();\n const testKey = 'AMP_TEST';\n try {\n testStrorage.set(testKey, random);\n const value = testStrorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n testStrorage.remove(testKey);\n }\n }\n\n get(key: string): T | undefined {\n try {\n const value = this.findByKey(key);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return value ? JSON.parse(value) : undefined;\n } catch {\n /* istanbul ignore next */\n return undefined;\n }\n }\n\n findByKey(key: string): string | undefined {\n const cookie = window.document.cookie.split('; ');\n const match = cookie.find((c) => c.indexOf(key + '=') === 0);\n if (!match) {\n return undefined;\n }\n return match.substring(key.length + 1);\n }\n\n set(key: string, value: T | null, options?: CookieStorageOptions) {\n try {\n const expires = value !== null ? options?.expirationDays : -1;\n let expireDate: Date | undefined = undefined;\n if (expires) {\n const date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n let str = `${key}=${JSON.stringify(value)}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (options?.domain) {\n str += `; domain=${options.domain}`;\n }\n if (options?.secure) {\n str += '; Secure';\n }\n if (options?.sameSite) {\n str += `; SameSite=${options.sameSite}`;\n }\n window.document.cookie = str;\n } catch {\n //\n }\n }\n\n remove(key: string) {\n this.set(key, null);\n }\n\n reset() {\n return;\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { Storage } from '@amplitude/analytics-types';
2
+ export declare class LocalStorage<T> implements Storage<T> {
3
+ isEnabled(): boolean;
4
+ get(key: string): T | undefined;
5
+ set(key: string, value: T): void;
6
+ remove(key: string): void;
7
+ reset(): void;
8
+ }
9
+ //# sourceMappingURL=local-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAChD,SAAS,IAAI,OAAO;IAqBpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAc/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAQzB,MAAM,CAAC,GAAG,EAAE,MAAM;IAQlB,KAAK;CAON"}
@@ -0,0 +1,66 @@
1
+ var LocalStorage = /** @class */ (function () {
2
+ function LocalStorage() {
3
+ }
4
+ LocalStorage.prototype.isEnabled = function () {
5
+ /* istanbul ignore if */
6
+ if (typeof window === 'undefined') {
7
+ return false;
8
+ }
9
+ var random = String(Date.now());
10
+ var testStrorage = new LocalStorage();
11
+ var testKey = 'AMP_TEST';
12
+ try {
13
+ testStrorage.set(testKey, random);
14
+ var value = testStrorage.get(testKey);
15
+ return value === random;
16
+ }
17
+ catch (_a) {
18
+ /* istanbul ignore next */
19
+ return false;
20
+ }
21
+ finally {
22
+ testStrorage.remove(testKey);
23
+ }
24
+ };
25
+ LocalStorage.prototype.get = function (key) {
26
+ try {
27
+ var value = window.localStorage.getItem(key);
28
+ if (!value) {
29
+ return undefined;
30
+ }
31
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
32
+ return JSON.parse(value);
33
+ }
34
+ catch (_a) {
35
+ /* istanbul ignore next */
36
+ return undefined;
37
+ }
38
+ };
39
+ LocalStorage.prototype.set = function (key, value) {
40
+ try {
41
+ window.localStorage.setItem(key, JSON.stringify(value));
42
+ }
43
+ catch (_a) {
44
+ //
45
+ }
46
+ };
47
+ LocalStorage.prototype.remove = function (key) {
48
+ try {
49
+ window.localStorage.removeItem(key);
50
+ }
51
+ catch (_a) {
52
+ //
53
+ }
54
+ };
55
+ LocalStorage.prototype.reset = function () {
56
+ try {
57
+ window.localStorage.clear();
58
+ }
59
+ catch (_a) {
60
+ //
61
+ }
62
+ };
63
+ return LocalStorage;
64
+ }());
65
+ export { LocalStorage };
66
+ //# sourceMappingURL=local-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAEA;IAAA;IA2DA,CAAC;IA1DC,gCAAS,GAAT;QACE,wBAAwB;QACxB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,IAAM,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAChD,IAAM,OAAO,GAAG,UAAU,CAAC;QAC3B,IAAI;YACF,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,IAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,KAAK,KAAK,MAAM,CAAC;SACzB;QAAC,WAAM;YACN,0BAA0B;YAC1B,OAAO,KAAK,CAAC;SACd;gBAAS;YACR,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,0BAAG,GAAH,UAAI,GAAW;QACb,IAAI;YACF,IAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,SAAS,CAAC;aAClB;YACD,+DAA+D;YAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1B;QAAC,WAAM;YACN,0BAA0B;YAC1B,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAED,0BAAG,GAAH,UAAI,GAAW,EAAE,KAAQ;QACvB,IAAI;YACF,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACzD;QAAC,WAAM;YACN,EAAE;SACH;IACH,CAAC;IAED,6BAAM,GAAN,UAAO,GAAW;QAChB,IAAI;YACF,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACrC;QAAC,WAAM;YACN,EAAE;SACH;IACH,CAAC;IAED,4BAAK,GAAL;QACE,IAAI;YACF,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC7B;QAAC,WAAM;YACN,EAAE;SACH;IACH,CAAC;IACH,mBAAC;AAAD,CAAC,AA3DD,IA2DC","sourcesContent":["import { Storage } from '@amplitude/analytics-types';\n\nexport class LocalStorage<T> implements Storage<T> {\n isEnabled(): boolean {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return false;\n }\n\n const random = String(Date.now());\n const testStrorage = new LocalStorage<string>();\n const testKey = 'AMP_TEST';\n try {\n testStrorage.set(testKey, random);\n const value = testStrorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n testStrorage.remove(testKey);\n }\n }\n\n get(key: string): T | undefined {\n try {\n const value = window.localStorage.getItem(key);\n if (!value) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n /* istanbul ignore next */\n return undefined;\n }\n }\n\n set(key: string, value: T) {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n remove(key: string) {\n try {\n window.localStorage.removeItem(key);\n } catch {\n //\n }\n }\n\n reset() {\n try {\n window.localStorage.clear();\n } catch {\n //\n }\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { Storage } from '@amplitude/analytics-types';
2
+ export declare class MemoryStorage<T> implements Storage<T> {
3
+ memoryStorage: Map<string, T>;
4
+ isEnabled(): boolean;
5
+ get(key: string): T | undefined;
6
+ set(key: string, value: T): void;
7
+ remove(key: string): void;
8
+ reset(): void;
9
+ }
10
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACjD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAa;IAE1C,SAAS,IAAI,OAAO;IAIpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,KAAK;CAGN"}
@@ -0,0 +1,23 @@
1
+ var MemoryStorage = /** @class */ (function () {
2
+ function MemoryStorage() {
3
+ this.memoryStorage = new Map();
4
+ }
5
+ MemoryStorage.prototype.isEnabled = function () {
6
+ return true;
7
+ };
8
+ MemoryStorage.prototype.get = function (key) {
9
+ return this.memoryStorage.get(key);
10
+ };
11
+ MemoryStorage.prototype.set = function (key, value) {
12
+ this.memoryStorage.set(key, value);
13
+ };
14
+ MemoryStorage.prototype.remove = function (key) {
15
+ this.memoryStorage.delete(key);
16
+ };
17
+ MemoryStorage.prototype.reset = function () {
18
+ this.memoryStorage.clear();
19
+ };
20
+ return MemoryStorage;
21
+ }());
22
+ export { MemoryStorage };
23
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"AAEA;IAAA;QACE,kBAAa,GAAmB,IAAI,GAAG,EAAE,CAAC;IAqB5C,CAAC;IAnBC,iCAAS,GAAT;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAAG,GAAH,UAAI,GAAW;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,2BAAG,GAAH,UAAI,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,8BAAM,GAAN,UAAO,GAAW;QAChB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,6BAAK,GAAL;QACE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IACH,oBAAC;AAAD,CAAC,AAtBD,IAsBC","sourcesContent":["import { Storage } from '@amplitude/analytics-types';\n\nexport class MemoryStorage<T> implements Storage<T> {\n memoryStorage: Map<string, T> = new Map();\n\n isEnabled(): boolean {\n return true;\n }\n\n get(key: string): T | undefined {\n return this.memoryStorage.get(key);\n }\n\n set(key: string, value: T) {\n this.memoryStorage.set(key, value);\n }\n\n remove(key: string) {\n this.memoryStorage.delete(key);\n }\n\n reset() {\n this.memoryStorage.clear();\n }\n}\n"]}