@amplitude/analytics-browser 2.43.0 → 2.44.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 (59) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/config.d.ts +1 -1
  3. package/lib/cjs/config.d.ts.map +1 -1
  4. package/lib/cjs/config.js +2 -1
  5. package/lib/cjs/config.js.map +1 -1
  6. package/lib/cjs/plugins/network-connectivity-checker.d.ts.map +1 -1
  7. package/lib/cjs/plugins/network-connectivity-checker.js +3 -0
  8. package/lib/cjs/plugins/network-connectivity-checker.js.map +1 -1
  9. package/lib/cjs/transports/fetch.d.ts +2 -1
  10. package/lib/cjs/transports/fetch.d.ts.map +1 -1
  11. package/lib/cjs/transports/fetch.js +7 -1
  12. package/lib/cjs/transports/fetch.js.map +1 -1
  13. package/lib/cjs/version.d.ts +1 -1
  14. package/lib/cjs/version.js +1 -1
  15. package/lib/cjs/version.js.map +1 -1
  16. package/lib/cjs/video-capture/video-capture.d.ts +4 -1
  17. package/lib/cjs/video-capture/video-capture.d.ts.map +1 -1
  18. package/lib/cjs/video-capture/video-capture.js +12 -6
  19. package/lib/cjs/video-capture/video-capture.js.map +1 -1
  20. package/lib/esm/config.d.ts +1 -1
  21. package/lib/esm/config.d.ts.map +1 -1
  22. package/lib/esm/config.js +2 -1
  23. package/lib/esm/config.js.map +1 -1
  24. package/lib/esm/plugins/network-connectivity-checker.d.ts.map +1 -1
  25. package/lib/esm/plugins/network-connectivity-checker.js +3 -0
  26. package/lib/esm/plugins/network-connectivity-checker.js.map +1 -1
  27. package/lib/esm/transports/fetch.d.ts +2 -1
  28. package/lib/esm/transports/fetch.d.ts.map +1 -1
  29. package/lib/esm/transports/fetch.js +7 -1
  30. package/lib/esm/transports/fetch.js.map +1 -1
  31. package/lib/esm/version.d.ts +1 -1
  32. package/lib/esm/version.js +1 -1
  33. package/lib/esm/version.js.map +1 -1
  34. package/lib/esm/video-capture/video-capture.d.ts +4 -1
  35. package/lib/esm/video-capture/video-capture.d.ts.map +1 -1
  36. package/lib/esm/video-capture/video-capture.js +13 -7
  37. package/lib/esm/video-capture/video-capture.js.map +1 -1
  38. package/lib/scripts/amplitude-bookmarklet-snippet-min.js +1 -1
  39. package/lib/scripts/amplitude-bookmarklet.html +1 -1
  40. package/lib/scripts/amplitude-gtm-min.js +1 -1
  41. package/lib/scripts/amplitude-gtm-min.js.gz +0 -0
  42. package/lib/scripts/amplitude-gtm-min.js.map +1 -1
  43. package/lib/scripts/amplitude-gtm-snippet-min.js +1 -1
  44. package/lib/scripts/amplitude-min.js +1 -1
  45. package/lib/scripts/amplitude-min.js.gz +0 -0
  46. package/lib/scripts/amplitude-min.js.map +1 -1
  47. package/lib/scripts/amplitude-min.umd.js +1 -1
  48. package/lib/scripts/amplitude-min.umd.js.gz +0 -0
  49. package/lib/scripts/amplitude-snippet-instructions.html +1 -1
  50. package/lib/scripts/amplitude-snippet-min.js +1 -1
  51. package/lib/scripts/config.d.ts +1 -1
  52. package/lib/scripts/config.d.ts.map +1 -1
  53. package/lib/scripts/plugins/network-connectivity-checker.d.ts.map +1 -1
  54. package/lib/scripts/transports/fetch.d.ts +2 -1
  55. package/lib/scripts/transports/fetch.d.ts.map +1 -1
  56. package/lib/scripts/version.d.ts +1 -1
  57. package/lib/scripts/video-capture/video-capture.d.ts +4 -1
  58. package/lib/scripts/video-capture/video-capture.d.ts.map +1 -1
  59. package/package.json +9 -9
package/README.md CHANGED
@@ -53,7 +53,7 @@ This SDK is also available through CDN. Copy the script loader below and paste b
53
53
  <!-- README_SNIPPET_BLOCK -->
54
54
  ```html
55
55
  <script type="text/javascript">
56
- !function(){"use strict";!function(e,t){var r=e.amplitude||{_q:[],_iq:{}};if(r.invoked)e.console&&console.error&&console.error("Amplitude snippet has been loaded.");else{var n=function(e,t){e.prototype[t]=function(){return this._q.push({name:t,args:Array.prototype.slice.call(arguments,0)}),this}},s=function(e,t,r){return function(n){e._q.push({name:t,args:Array.prototype.slice.call(r,0),resolve:n})}},o=function(e,t,r){e[t]=function(){if(r)return{promise:new Promise(s(e,t,Array.prototype.slice.call(arguments)))};!function(e,t,r){e._q.push({name:t,args:Array.prototype.slice.call(r,0)})}(e,t,Array.prototype.slice.call(arguments))}},i=function(e){for(var t=0;t<y.length;t++)o(e,y[t],!1);for(var r=0;r<g.length;r++)o(e,g[r],!0)};r.invoked=!0;var c=t.createElement("script");c.type="text/javascript",c.integrity="sha384-WhHYGd9Ls3uobdx1SdciXqGhvP64TxZQTKlmT3USH2RJXo/3NGxdsZ0w+9IbzP66",c.crossOrigin="anonymous",c.async=!0,c.src="https://cdn.amplitude.com/libs/analytics-browser-2.43.0-min.js.gz",c.onload=function(){e.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK")};var a=t.getElementsByTagName("script")[0];a.parentNode.insertBefore(c,a);for(var u=function(){return this._q=[],this},l=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove","getUserProperties"],p=0;p<l.length;p++)n(u,l[p]);r.Identify=u;for(var d=function(){return this._q=[],this},f=["getEventProperties","setProductId","setQuantity","setPrice","setRevenue","setRevenueType","setReceipt","setReceiptSig","setCurrency","setEventProperties"],v=0;v<f.length;v++)n(d,f[v]);r.Revenue=d;var y=["getDeviceId","setDeviceId","getSessionId","setSessionId","getUserId","setUserId","setOptOut","setTransport","reset","extendSession"],g=["init","add","remove","track","logEvent","identify","groupIdentify","setGroup","revenue","flush"];i(r),r.createInstance=function(e){return r._iq[e]={_q:[]},i(r._iq[e]),r._iq[e]},e.amplitude=r}}(window,document)}();
56
+ !function(){"use strict";!function(e,t){var r=e.amplitude||{_q:[],_iq:{}};if(r.invoked)e.console&&console.error&&console.error("Amplitude snippet has been loaded.");else{var n=function(e,t){e.prototype[t]=function(){return this._q.push({name:t,args:Array.prototype.slice.call(arguments,0)}),this}},s=function(e,t,r){return function(n){e._q.push({name:t,args:Array.prototype.slice.call(r,0),resolve:n})}},o=function(e,t,r){e[t]=function(){if(r)return{promise:new Promise(s(e,t,Array.prototype.slice.call(arguments)))};!function(e,t,r){e._q.push({name:t,args:Array.prototype.slice.call(r,0)})}(e,t,Array.prototype.slice.call(arguments))}},i=function(e){for(var t=0;t<y.length;t++)o(e,y[t],!1);for(var r=0;r<g.length;r++)o(e,g[r],!0)};r.invoked=!0;var c=t.createElement("script");c.type="text/javascript",c.integrity="sha384-ASq3J5gv3Xzlldkl3znXZNKyIqvr5Bua7IkzNE2sb1cFAs7uOl8RJOBLgOrY5jot",c.crossOrigin="anonymous",c.async=!0,c.src="https://cdn.amplitude.com/libs/analytics-browser-2.44.0-min.js.gz",c.onload=function(){e.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK")};var a=t.getElementsByTagName("script")[0];a.parentNode.insertBefore(c,a);for(var u=function(){return this._q=[],this},l=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove","getUserProperties"],p=0;p<l.length;p++)n(u,l[p]);r.Identify=u;for(var d=function(){return this._q=[],this},v=["getEventProperties","setProductId","setQuantity","setPrice","setRevenue","setRevenueType","setReceipt","setReceiptSig","setCurrency","setEventProperties"],f=0;f<v.length;f++)n(d,v[f]);r.Revenue=d;var y=["getDeviceId","setDeviceId","getSessionId","setSessionId","getUserId","setUserId","setOptOut","setTransport","reset","extendSession"],g=["init","add","remove","track","logEvent","identify","groupIdentify","setGroup","revenue","flush"];i(r),r.createInstance=function(e){return r._iq[e]={_q:[]},i(r._iq[e]),r._iq[e]},e.amplitude=r}}(window,document)}();
57
57
 
58
58
  amplitude.init("<YOUR_API_KEY>");
59
59
  </script>
@@ -40,7 +40,7 @@ export declare class BrowserConfig extends Config implements IBrowserConfig {
40
40
  topLevelDomain?: string | undefined;
41
41
  enableRequestBodyCompression: boolean;
42
42
  customEnrichment?: boolean | CustomEnrichmentOptions | undefined;
43
- readonly version = "2.43.0";
43
+ readonly version = "2.44.0";
44
44
  protected _cookieStorage: Storage<UserSession>;
45
45
  protected _deviceId?: string;
46
46
  protected _lastEventId?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
package/lib/cjs/config.js CHANGED
@@ -388,6 +388,7 @@ var createTransport = function (transport) {
388
388
  var type = typeof transport === 'object' ? transport.type : transport;
389
389
  var headers = typeof transport === 'object' ? transport.headers : undefined;
390
390
  var enableKeepalive = typeof transport === 'object' ? transport.enableKeepalive : undefined;
391
+ var referrerPolicy = typeof transport === 'object' ? transport.referrerPolicy : undefined;
391
392
  if (type === 'xhr') {
392
393
  return new xhr_1.XHRTransport(headers);
393
394
  }
@@ -397,7 +398,7 @@ var createTransport = function (transport) {
397
398
  }
398
399
  // Keep a browser-local fetch transport for gzip support.
399
400
  // TODO: Merge back to core FetchTransport after React Native supports gzip.
400
- return new fetch_1.FetchTransport(headers, enableKeepalive);
401
+ return new fetch_1.FetchTransport(headers, enableKeepalive, referrerPolicy);
401
402
  };
402
403
  exports.createTransport = createTransport;
403
404
  var getTopLevelDomain = function (url, diagnosticsClient) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Config,\n Logger,\n ILogger,\n LogLevel,\n Event,\n Storage,\n IngestionMetadata,\n ServerZoneType,\n OfflineDisabled,\n Plan,\n IdentityStorageType,\n TransportTypeOrOptions,\n MemoryStorage,\n UUID,\n CookieStorage,\n getCookieName,\n getQueryParams,\n UserSession,\n BrowserOptions,\n BrowserConfig as IBrowserConfig,\n DefaultTrackingOptions,\n TrackingOptions,\n AutocaptureOptions,\n CookieOptions,\n RemoteConfigOptions,\n NetworkTrackingOptions,\n CustomEnrichmentOptions,\n IIdentify,\n IDiagnosticsClient,\n isDomainEqual,\n CookieStorageConfig,\n decodeCookieValue,\n} from '@amplitude/analytics-core';\n\nimport { LocalStorage } from './storage/local-storage';\nimport { SessionStorage } from './storage/session-storage';\nimport { XHRTransport } from './transports/xhr';\nimport { FetchTransport } from './transports/fetch';\nimport { SendBeaconTransport } from './transports/send-beacon';\nimport { parseLegacyCookies } from './cookie-migration';\nimport { DEFAULT_IDENTITY_STORAGE, DEFAULT_SERVER_ZONE } from './constants';\nimport { AmplitudeBrowser } from './browser-client';\nimport { VERSION } from './version';\nimport { getDomain, KNOWN_2LDS } from './attribution/helpers';\n\n// Exported for testing purposes only. Do not expose to public interface.\nexport class BrowserConfig extends Config implements IBrowserConfig {\n public readonly version = VERSION;\n protected _cookieStorage: Storage<UserSession>;\n protected _deviceId?: string;\n protected _lastEventId?: number;\n protected _lastEventTime?: number;\n protected _optOut = false;\n protected _sessionId?: number;\n protected _deferredSessionId?: number;\n protected _userId?: string;\n protected _pageCounter?: number;\n protected _debugLogsEnabled?: boolean;\n constructor(\n public apiKey: string,\n public appVersion?: string,\n cookieStorage: Storage<UserSession> = new MemoryStorage(),\n public cookieOptions: CookieOptions = {\n domain: '',\n expiration: 365,\n sameSite: 'Lax' as const,\n secure: false,\n upgrade: true,\n },\n public defaultTracking?: boolean | DefaultTrackingOptions,\n public autocapture?: boolean | AutocaptureOptions,\n deviceId?: string,\n public flushIntervalMillis: number = 1000,\n public flushMaxRetries: number = 5,\n public flushQueueSize: number = 30,\n public identityStorage: IdentityStorageType = DEFAULT_IDENTITY_STORAGE,\n public ingestionMetadata?: IngestionMetadata,\n public instanceName?: string,\n lastEventId?: number,\n lastEventTime?: number,\n public loggerProvider: ILogger = new Logger(),\n public logLevel: LogLevel = LogLevel.Warn,\n public minIdLength?: number,\n public offline: boolean | typeof OfflineDisabled = false,\n optOut = false,\n public partnerId?: string,\n public plan?: Plan,\n public serverUrl: string = '',\n public serverZone: ServerZoneType = DEFAULT_SERVER_ZONE,\n sessionId?: number,\n deferredSessionId?: number,\n public sessionTimeout: number = 30 * 60 * 1000,\n public storageProvider: Storage<Event[]> = new LocalStorage({ loggerProvider }),\n public trackingOptions: Required<TrackingOptions> = {\n ipAddress: true,\n language: true,\n platform: true,\n },\n public transport: TransportTypeOrOptions = 'fetch',\n public useBatch: boolean = false,\n public fetchRemoteConfig: boolean = true,\n userId?: string,\n pageCounter?: number,\n debugLogsEnabled?: boolean,\n public networkTrackingOptions?: NetworkTrackingOptions,\n public identify?: IIdentify,\n public enableDiagnostics: boolean = true,\n public diagnosticsSampleRate: number = 0,\n public diagnosticsClient?: IDiagnosticsClient,\n public remoteConfig?: RemoteConfigOptions,\n public topLevelDomain?: string,\n public enableRequestBodyCompression: boolean = false,\n public customEnrichment?: boolean | CustomEnrichmentOptions,\n ) {\n super({ apiKey, storageProvider, transportProvider: createTransport(transport) });\n this._cookieStorage = cookieStorage;\n this.deviceId = deviceId;\n this.lastEventId = lastEventId;\n this.lastEventTime = lastEventTime;\n this.optOut = optOut;\n this.deferredSessionId = deferredSessionId;\n this.sessionId = sessionId;\n this.pageCounter = pageCounter;\n this.userId = userId;\n this.debugLogsEnabled = debugLogsEnabled;\n this.loggerProvider.enable(debugLogsEnabled ? LogLevel.Debug : this.logLevel);\n this.networkTrackingOptions = networkTrackingOptions;\n this.identify = identify;\n this.enableDiagnostics = enableDiagnostics;\n this.diagnosticsSampleRate = diagnosticsSampleRate;\n this.diagnosticsClient = diagnosticsClient;\n\n // Note: The canonical logic for determining fetchRemoteConfig is in shouldFetchRemoteConfig().\n // This logic is duplicated here to maintain the BrowserConfig constructor contract and ensure\n // the config object has the correct fetchRemoteConfig value set on its properties.\n // The value passed to this constructor should already be computed via shouldFetchRemoteConfig().\n const _fetchRemoteConfig = remoteConfig?.fetchRemoteConfig ?? fetchRemoteConfig;\n this.remoteConfig = this.remoteConfig || {};\n this.remoteConfig.fetchRemoteConfig = _fetchRemoteConfig;\n this.fetchRemoteConfig = _fetchRemoteConfig;\n\n this.topLevelDomain = topLevelDomain || getDomain();\n }\n\n get cookieStorage() {\n return this._cookieStorage;\n }\n\n set cookieStorage(cookieStorage: Storage<UserSession>) {\n if (this._cookieStorage !== cookieStorage) {\n this._cookieStorage = cookieStorage;\n this.updateStorage();\n }\n }\n\n get deviceId() {\n return this._deviceId;\n }\n\n set deviceId(deviceId: string | undefined) {\n if (this._deviceId !== deviceId) {\n this._deviceId = deviceId;\n this.updateStorage();\n }\n }\n\n get userId() {\n return this._userId;\n }\n\n set userId(userId: string | undefined) {\n if (this._userId !== userId) {\n this._userId = userId;\n this.updateStorage();\n }\n }\n\n get sessionId() {\n return this._sessionId;\n }\n\n set sessionId(sessionId: number | undefined) {\n if (this._sessionId !== sessionId) {\n this._sessionId = sessionId;\n // Clear deferredSessionId when sessionId is set to prevent stale values\n // from overriding legitimate sessionIds on subsequent page loads\n if (sessionId !== undefined && this._deferredSessionId !== undefined) {\n this._deferredSessionId = undefined;\n }\n this.updateStorage();\n }\n }\n\n get deferredSessionId() {\n return this._deferredSessionId;\n }\n\n set deferredSessionId(deferredSessionId: number | undefined) {\n if (this._deferredSessionId !== deferredSessionId && deferredSessionId !== this.sessionId) {\n this._deferredSessionId = deferredSessionId;\n this.updateStorage();\n }\n }\n\n get optOut() {\n return this._optOut;\n }\n\n set optOut(optOut: boolean) {\n if (this._optOut !== optOut) {\n this._optOut = optOut;\n this.updateStorage();\n }\n }\n\n get lastEventTime() {\n return this._lastEventTime;\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n if (this._lastEventTime !== lastEventTime) {\n this._lastEventTime = lastEventTime;\n this.updateStorage();\n }\n }\n\n get lastEventId() {\n return this._lastEventId;\n }\n\n set lastEventId(lastEventId: number | undefined) {\n if (this._lastEventId !== lastEventId) {\n this._lastEventId = lastEventId;\n this.updateStorage();\n }\n }\n\n get pageCounter() {\n return this._pageCounter;\n }\n\n set pageCounter(pageCounter: number | undefined) {\n if (this._pageCounter !== pageCounter) {\n this._pageCounter = pageCounter;\n this.updateStorage();\n }\n }\n\n set debugLogsEnabled(debugLogsEnabled: boolean | undefined) {\n if (this._debugLogsEnabled !== debugLogsEnabled) {\n this._debugLogsEnabled = debugLogsEnabled;\n this.updateStorage();\n }\n }\n\n private updateStorage() {\n const cache = {\n deviceId: this._deviceId,\n userId: this._userId,\n sessionId: this._sessionId,\n deferredSessionId: this._deferredSessionId,\n optOut: this._optOut,\n lastEventTime: this._lastEventTime,\n lastEventId: this._lastEventId,\n pageCounter: this._pageCounter,\n debugLogsEnabled: this._debugLogsEnabled,\n cookieDomain: undefined as string | undefined,\n };\n\n if (this.cookieStorage instanceof CookieStorage) {\n cache.cookieDomain = this.cookieStorage.options.domain;\n }\n\n void this.cookieStorage.set(getCookieName(this.apiKey), cache);\n }\n}\n\n/**\n * Early-initialized configuration values that are determined before useBrowserConfig is called.\n * These are created early to support DiagnosticsClient and RemoteConfigClient initialization.\n */\nexport interface EarlyConfig {\n /** Logger instance - shared across DiagnosticsClient, RemoteConfigClient, and BrowserConfig */\n loggerProvider: ILogger;\n /** Server zone for API endpoints */\n serverZone: ServerZoneType;\n /** Whether diagnostics is enabled (may come from remote config) */\n enableDiagnostics: boolean;\n /** Diagnostics sample rate (may come from remote config) */\n diagnosticsSampleRate: number;\n}\n\nexport const useBrowserConfig = async (\n apiKey: string,\n options: BrowserOptions = {},\n amplitudeInstance: AmplitudeBrowser,\n diagnosticsClient?: IDiagnosticsClient,\n earlyConfig?: EarlyConfig,\n): Promise<IBrowserConfig> => {\n // Step 1: Create identity storage instance\n const identityStorage = options.identityStorage || DEFAULT_IDENTITY_STORAGE;\n let defaultCookieDomain = '';\n\n // use the getTopLevelDomain function to find the TLD only if identity storage\n // is cookie (because getTopLevelDomain() uses cookies) AND cookie option domain is not set\n if (\n identityStorage === DEFAULT_IDENTITY_STORAGE &&\n !options.cookieOptions?.domain &&\n options.cookieOptions?.domain !== ''\n ) {\n defaultCookieDomain = await getTopLevelDomain(undefined, diagnosticsClient);\n }\n const cookieOptions = {\n domain: options.cookieOptions?.domain ?? defaultCookieDomain,\n expiration: 365,\n sameSite: 'Lax' as const,\n secure: false,\n upgrade: true,\n ...options.cookieOptions,\n };\n\n const cookieConfig: CookieStorageConfig = {\n // if more than one cookie with the same key exists,\n // look for the cookie that has the domain attribute set to cookieOptions.domain\n duplicateResolverFn: (value: string): boolean => {\n const decodedValue = decodeCookieValue(value);\n if (!decodedValue) {\n return false;\n }\n const parsed = JSON.parse(decodedValue) as UserSession;\n return isDomainEqual(parsed.cookieDomain, cookieOptions.domain);\n },\n diagnosticsClient: diagnosticsClient,\n };\n const cookieStorage = createCookieStorage<UserSession>(options.identityStorage, cookieOptions, cookieConfig);\n\n // Step 1: Parse cookies using identity storage instance\n const legacyCookies = await parseLegacyCookies(apiKey, cookieStorage, options.cookieOptions?.upgrade ?? true);\n const previousCookies = await cookieStorage.get(getCookieName(apiKey));\n const queryParams = getQueryParams();\n\n // Check if ampTimestamp is present and valid\n const ampTimestamp = queryParams.ampTimestamp ? Number(queryParams.ampTimestamp) : undefined;\n const isWithinTimeLimit = ampTimestamp ? Date.now() < ampTimestamp : true;\n\n // Step 3: Reconcile user identity\n const deviceId =\n options.deviceId ??\n (isWithinTimeLimit ? queryParams.ampDeviceId ?? queryParams.deviceId : undefined) ??\n previousCookies?.deviceId ??\n legacyCookies.deviceId ??\n UUID();\n const lastEventId = previousCookies?.lastEventId ?? legacyCookies.lastEventId;\n const lastEventTime = previousCookies?.lastEventTime ?? legacyCookies.lastEventTime;\n const optOut = options.optOut ?? previousCookies?.optOut ?? legacyCookies.optOut;\n const sessionId = previousCookies?.sessionId ?? legacyCookies.sessionId;\n const deferredSessionId = previousCookies?.deferredSessionId;\n const userId = options.userId ?? previousCookies?.userId ?? legacyCookies.userId;\n amplitudeInstance.previousSessionDeviceId = previousCookies?.deviceId ?? legacyCookies.deviceId;\n amplitudeInstance.previousSessionUserId = previousCookies?.userId ?? legacyCookies.userId;\n\n const trackingOptions = {\n ipAddress: options.trackingOptions?.ipAddress ?? true,\n language: options.trackingOptions?.language ?? true,\n platform: options.trackingOptions?.platform ?? true,\n };\n const pageCounter = previousCookies?.pageCounter;\n const debugLogsEnabled = previousCookies?.debugLogsEnabled;\n\n // Override default tracking options if autocapture is set\n if (options.autocapture !== undefined) {\n options.defaultTracking = options.autocapture;\n }\n\n const browserConfig = new BrowserConfig(\n apiKey,\n options.appVersion,\n cookieStorage,\n cookieOptions,\n options.defaultTracking,\n options.autocapture,\n deviceId,\n options.flushIntervalMillis,\n options.flushMaxRetries,\n options.flushQueueSize,\n identityStorage,\n options.ingestionMetadata,\n options.instanceName,\n lastEventId,\n lastEventTime,\n // Use earlyConfig.loggerProvider to ensure consistent logger across DiagnosticsClient/RemoteConfigClient/BrowserConfig\n earlyConfig?.loggerProvider ?? options.loggerProvider,\n options.logLevel,\n options.minIdLength,\n options.offline,\n optOut,\n options.partnerId,\n options.plan,\n options.serverUrl,\n // Use earlyConfig.serverZone to ensure consistent serverZone\n earlyConfig?.serverZone ?? options.serverZone,\n sessionId,\n deferredSessionId,\n options.sessionTimeout,\n options.storageProvider,\n trackingOptions,\n options.transport,\n options.useBatch,\n options.fetchRemoteConfig,\n userId,\n pageCounter,\n debugLogsEnabled,\n options.networkTrackingOptions,\n options.identify,\n // Use earlyConfig values (already has remote config applied), otherwise fall back to options\n earlyConfig?.enableDiagnostics ?? options.enableDiagnostics,\n earlyConfig?.diagnosticsSampleRate ?? amplitudeInstance._diagnosticsSampleRate,\n diagnosticsClient,\n options.remoteConfig,\n defaultCookieDomain,\n options.enableRequestBodyCompression,\n options.customEnrichment,\n );\n\n if (!(await browserConfig.storageProvider.isEnabled())) {\n browserConfig.loggerProvider.warn(\n `Storage provider ${browserConfig.storageProvider.constructor.name} is not enabled. Falling back to MemoryStorage.`,\n );\n browserConfig.storageProvider = new MemoryStorage();\n }\n\n return browserConfig;\n};\n\nexport const createCookieStorage = <T>(\n identityStorage: IdentityStorageType = DEFAULT_IDENTITY_STORAGE,\n cookieOptions: CookieOptions = {},\n cookieConfig?: CookieStorageConfig,\n) => {\n switch (identityStorage) {\n case 'localStorage':\n return new LocalStorage<T>();\n case 'sessionStorage':\n return new SessionStorage<T>();\n case 'none':\n return new MemoryStorage<T>();\n case 'cookie':\n default:\n return new CookieStorage<T>(\n {\n ...cookieOptions,\n expirationDays: cookieOptions.expiration,\n },\n cookieConfig,\n );\n }\n};\n\n/**\n * Determines whether to fetch remote config based on options.\n * Extracted to allow early determination before useBrowserConfig is called.\n */\nexport const shouldFetchRemoteConfig = (options: BrowserOptions = {}): boolean => {\n if (options.remoteConfig?.fetchRemoteConfig === true) {\n // set to true if remoteConfig explicitly set to true\n return true;\n } else if (options.remoteConfig?.fetchRemoteConfig === false || options.fetchRemoteConfig === false) {\n // set to false if either are set to false explicitly\n return false;\n } else {\n // default to true if both undefined\n return true;\n }\n};\n\nexport const createTransport = (transport?: TransportTypeOrOptions) => {\n const type = typeof transport === 'object' ? transport.type : transport;\n const headers = typeof transport === 'object' ? transport.headers : undefined;\n const enableKeepalive = typeof transport === 'object' ? transport.enableKeepalive : undefined;\n\n if (type === 'xhr') {\n return new XHRTransport(headers);\n }\n if (type === 'beacon') {\n // SendBeacon does not support custom headers\n return new SendBeaconTransport();\n }\n // Keep a browser-local fetch transport for gzip support.\n // TODO: Merge back to core FetchTransport after React Native supports gzip.\n return new FetchTransport(headers, enableKeepalive);\n};\n\nexport const getTopLevelDomain = async (url?: string, diagnosticsClient?: IDiagnosticsClient) => {\n if (\n !(await new CookieStorage<number>(undefined, { diagnosticsClient }).isEnabled()) ||\n (!url && (typeof location === 'undefined' || !location.hostname))\n ) {\n return '';\n }\n const host = url ?? location.hostname;\n\n const parts = host.split('.');\n\n // if hostname has less than 2 parts, it's not a registrable domain\n // and the browser won't allow setting domain-scoped cookies for it so return empty string\n if (parts.length === 1) {\n return '';\n }\n\n const levels = [];\n let skipLevel = 1;\n\n // if the hostname ends with a TLD we know is in the Public Suffix List\n // then the last two parts are definitely not writable as a domain\n if (KNOWN_2LDS.find((tld) => host.endsWith(`.${tld}`))) {\n skipLevel = 2;\n }\n\n for (let i = parts.length - skipLevel - 1; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n try {\n const result = await CookieStorage.isDomainWritable(domain);\n\n // if the transaction succeeded, the domain is valid\n if (result) {\n return '.' + domain;\n }\n } catch (e) {\n /* istanbul ignore if */\n if (diagnosticsClient) {\n diagnosticsClient.recordEvent('cookies.tld.failure', {\n reason: `Unexpected exception checking domain is writable: ${domain}`,\n error: e instanceof Error ? e.message : String(e),\n });\n }\n }\n }\n\n // if the transaction failed, the domain is invalid\n // record a diagnostic event\n if (diagnosticsClient) {\n diagnosticsClient.recordEvent('cookies.tld.failure', {\n reason: `Could not determine TLD for host ${host}`,\n });\n }\n\n // return an empty string to indicate that we couldn't determine the TLD\n // so fallback to host-only cookies (scoped to the current host)\n return '';\n};\n"]}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Config,\n Logger,\n ILogger,\n LogLevel,\n Event,\n Storage,\n IngestionMetadata,\n ServerZoneType,\n OfflineDisabled,\n Plan,\n IdentityStorageType,\n TransportTypeOrOptions,\n MemoryStorage,\n UUID,\n CookieStorage,\n getCookieName,\n getQueryParams,\n UserSession,\n BrowserOptions,\n BrowserConfig as IBrowserConfig,\n DefaultTrackingOptions,\n TrackingOptions,\n AutocaptureOptions,\n CookieOptions,\n RemoteConfigOptions,\n NetworkTrackingOptions,\n CustomEnrichmentOptions,\n IIdentify,\n IDiagnosticsClient,\n isDomainEqual,\n CookieStorageConfig,\n decodeCookieValue,\n} from '@amplitude/analytics-core';\n\nimport { LocalStorage } from './storage/local-storage';\nimport { SessionStorage } from './storage/session-storage';\nimport { XHRTransport } from './transports/xhr';\nimport { FetchTransport } from './transports/fetch';\nimport { SendBeaconTransport } from './transports/send-beacon';\nimport { parseLegacyCookies } from './cookie-migration';\nimport { DEFAULT_IDENTITY_STORAGE, DEFAULT_SERVER_ZONE } from './constants';\nimport { AmplitudeBrowser } from './browser-client';\nimport { VERSION } from './version';\nimport { getDomain, KNOWN_2LDS } from './attribution/helpers';\n\n// Exported for testing purposes only. Do not expose to public interface.\nexport class BrowserConfig extends Config implements IBrowserConfig {\n public readonly version = VERSION;\n protected _cookieStorage: Storage<UserSession>;\n protected _deviceId?: string;\n protected _lastEventId?: number;\n protected _lastEventTime?: number;\n protected _optOut = false;\n protected _sessionId?: number;\n protected _deferredSessionId?: number;\n protected _userId?: string;\n protected _pageCounter?: number;\n protected _debugLogsEnabled?: boolean;\n constructor(\n public apiKey: string,\n public appVersion?: string,\n cookieStorage: Storage<UserSession> = new MemoryStorage(),\n public cookieOptions: CookieOptions = {\n domain: '',\n expiration: 365,\n sameSite: 'Lax' as const,\n secure: false,\n upgrade: true,\n },\n public defaultTracking?: boolean | DefaultTrackingOptions,\n public autocapture?: boolean | AutocaptureOptions,\n deviceId?: string,\n public flushIntervalMillis: number = 1000,\n public flushMaxRetries: number = 5,\n public flushQueueSize: number = 30,\n public identityStorage: IdentityStorageType = DEFAULT_IDENTITY_STORAGE,\n public ingestionMetadata?: IngestionMetadata,\n public instanceName?: string,\n lastEventId?: number,\n lastEventTime?: number,\n public loggerProvider: ILogger = new Logger(),\n public logLevel: LogLevel = LogLevel.Warn,\n public minIdLength?: number,\n public offline: boolean | typeof OfflineDisabled = false,\n optOut = false,\n public partnerId?: string,\n public plan?: Plan,\n public serverUrl: string = '',\n public serverZone: ServerZoneType = DEFAULT_SERVER_ZONE,\n sessionId?: number,\n deferredSessionId?: number,\n public sessionTimeout: number = 30 * 60 * 1000,\n public storageProvider: Storage<Event[]> = new LocalStorage({ loggerProvider }),\n public trackingOptions: Required<TrackingOptions> = {\n ipAddress: true,\n language: true,\n platform: true,\n },\n public transport: TransportTypeOrOptions = 'fetch',\n public useBatch: boolean = false,\n public fetchRemoteConfig: boolean = true,\n userId?: string,\n pageCounter?: number,\n debugLogsEnabled?: boolean,\n public networkTrackingOptions?: NetworkTrackingOptions,\n public identify?: IIdentify,\n public enableDiagnostics: boolean = true,\n public diagnosticsSampleRate: number = 0,\n public diagnosticsClient?: IDiagnosticsClient,\n public remoteConfig?: RemoteConfigOptions,\n public topLevelDomain?: string,\n public enableRequestBodyCompression: boolean = false,\n public customEnrichment?: boolean | CustomEnrichmentOptions,\n ) {\n super({ apiKey, storageProvider, transportProvider: createTransport(transport) });\n this._cookieStorage = cookieStorage;\n this.deviceId = deviceId;\n this.lastEventId = lastEventId;\n this.lastEventTime = lastEventTime;\n this.optOut = optOut;\n this.deferredSessionId = deferredSessionId;\n this.sessionId = sessionId;\n this.pageCounter = pageCounter;\n this.userId = userId;\n this.debugLogsEnabled = debugLogsEnabled;\n this.loggerProvider.enable(debugLogsEnabled ? LogLevel.Debug : this.logLevel);\n this.networkTrackingOptions = networkTrackingOptions;\n this.identify = identify;\n this.enableDiagnostics = enableDiagnostics;\n this.diagnosticsSampleRate = diagnosticsSampleRate;\n this.diagnosticsClient = diagnosticsClient;\n\n // Note: The canonical logic for determining fetchRemoteConfig is in shouldFetchRemoteConfig().\n // This logic is duplicated here to maintain the BrowserConfig constructor contract and ensure\n // the config object has the correct fetchRemoteConfig value set on its properties.\n // The value passed to this constructor should already be computed via shouldFetchRemoteConfig().\n const _fetchRemoteConfig = remoteConfig?.fetchRemoteConfig ?? fetchRemoteConfig;\n this.remoteConfig = this.remoteConfig || {};\n this.remoteConfig.fetchRemoteConfig = _fetchRemoteConfig;\n this.fetchRemoteConfig = _fetchRemoteConfig;\n\n this.topLevelDomain = topLevelDomain || getDomain();\n }\n\n get cookieStorage() {\n return this._cookieStorage;\n }\n\n set cookieStorage(cookieStorage: Storage<UserSession>) {\n if (this._cookieStorage !== cookieStorage) {\n this._cookieStorage = cookieStorage;\n this.updateStorage();\n }\n }\n\n get deviceId() {\n return this._deviceId;\n }\n\n set deviceId(deviceId: string | undefined) {\n if (this._deviceId !== deviceId) {\n this._deviceId = deviceId;\n this.updateStorage();\n }\n }\n\n get userId() {\n return this._userId;\n }\n\n set userId(userId: string | undefined) {\n if (this._userId !== userId) {\n this._userId = userId;\n this.updateStorage();\n }\n }\n\n get sessionId() {\n return this._sessionId;\n }\n\n set sessionId(sessionId: number | undefined) {\n if (this._sessionId !== sessionId) {\n this._sessionId = sessionId;\n // Clear deferredSessionId when sessionId is set to prevent stale values\n // from overriding legitimate sessionIds on subsequent page loads\n if (sessionId !== undefined && this._deferredSessionId !== undefined) {\n this._deferredSessionId = undefined;\n }\n this.updateStorage();\n }\n }\n\n get deferredSessionId() {\n return this._deferredSessionId;\n }\n\n set deferredSessionId(deferredSessionId: number | undefined) {\n if (this._deferredSessionId !== deferredSessionId && deferredSessionId !== this.sessionId) {\n this._deferredSessionId = deferredSessionId;\n this.updateStorage();\n }\n }\n\n get optOut() {\n return this._optOut;\n }\n\n set optOut(optOut: boolean) {\n if (this._optOut !== optOut) {\n this._optOut = optOut;\n this.updateStorage();\n }\n }\n\n get lastEventTime() {\n return this._lastEventTime;\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n if (this._lastEventTime !== lastEventTime) {\n this._lastEventTime = lastEventTime;\n this.updateStorage();\n }\n }\n\n get lastEventId() {\n return this._lastEventId;\n }\n\n set lastEventId(lastEventId: number | undefined) {\n if (this._lastEventId !== lastEventId) {\n this._lastEventId = lastEventId;\n this.updateStorage();\n }\n }\n\n get pageCounter() {\n return this._pageCounter;\n }\n\n set pageCounter(pageCounter: number | undefined) {\n if (this._pageCounter !== pageCounter) {\n this._pageCounter = pageCounter;\n this.updateStorage();\n }\n }\n\n set debugLogsEnabled(debugLogsEnabled: boolean | undefined) {\n if (this._debugLogsEnabled !== debugLogsEnabled) {\n this._debugLogsEnabled = debugLogsEnabled;\n this.updateStorage();\n }\n }\n\n private updateStorage() {\n const cache = {\n deviceId: this._deviceId,\n userId: this._userId,\n sessionId: this._sessionId,\n deferredSessionId: this._deferredSessionId,\n optOut: this._optOut,\n lastEventTime: this._lastEventTime,\n lastEventId: this._lastEventId,\n pageCounter: this._pageCounter,\n debugLogsEnabled: this._debugLogsEnabled,\n cookieDomain: undefined as string | undefined,\n };\n\n if (this.cookieStorage instanceof CookieStorage) {\n cache.cookieDomain = this.cookieStorage.options.domain;\n }\n\n void this.cookieStorage.set(getCookieName(this.apiKey), cache);\n }\n}\n\n/**\n * Early-initialized configuration values that are determined before useBrowserConfig is called.\n * These are created early to support DiagnosticsClient and RemoteConfigClient initialization.\n */\nexport interface EarlyConfig {\n /** Logger instance - shared across DiagnosticsClient, RemoteConfigClient, and BrowserConfig */\n loggerProvider: ILogger;\n /** Server zone for API endpoints */\n serverZone: ServerZoneType;\n /** Whether diagnostics is enabled (may come from remote config) */\n enableDiagnostics: boolean;\n /** Diagnostics sample rate (may come from remote config) */\n diagnosticsSampleRate: number;\n}\n\nexport const useBrowserConfig = async (\n apiKey: string,\n options: BrowserOptions = {},\n amplitudeInstance: AmplitudeBrowser,\n diagnosticsClient?: IDiagnosticsClient,\n earlyConfig?: EarlyConfig,\n): Promise<IBrowserConfig> => {\n // Step 1: Create identity storage instance\n const identityStorage = options.identityStorage || DEFAULT_IDENTITY_STORAGE;\n let defaultCookieDomain = '';\n\n // use the getTopLevelDomain function to find the TLD only if identity storage\n // is cookie (because getTopLevelDomain() uses cookies) AND cookie option domain is not set\n if (\n identityStorage === DEFAULT_IDENTITY_STORAGE &&\n !options.cookieOptions?.domain &&\n options.cookieOptions?.domain !== ''\n ) {\n defaultCookieDomain = await getTopLevelDomain(undefined, diagnosticsClient);\n }\n const cookieOptions = {\n domain: options.cookieOptions?.domain ?? defaultCookieDomain,\n expiration: 365,\n sameSite: 'Lax' as const,\n secure: false,\n upgrade: true,\n ...options.cookieOptions,\n };\n\n const cookieConfig: CookieStorageConfig = {\n // if more than one cookie with the same key exists,\n // look for the cookie that has the domain attribute set to cookieOptions.domain\n duplicateResolverFn: (value: string): boolean => {\n const decodedValue = decodeCookieValue(value);\n if (!decodedValue) {\n return false;\n }\n const parsed = JSON.parse(decodedValue) as UserSession;\n return isDomainEqual(parsed.cookieDomain, cookieOptions.domain);\n },\n diagnosticsClient: diagnosticsClient,\n };\n const cookieStorage = createCookieStorage<UserSession>(options.identityStorage, cookieOptions, cookieConfig);\n\n // Step 1: Parse cookies using identity storage instance\n const legacyCookies = await parseLegacyCookies(apiKey, cookieStorage, options.cookieOptions?.upgrade ?? true);\n const previousCookies = await cookieStorage.get(getCookieName(apiKey));\n const queryParams = getQueryParams();\n\n // Check if ampTimestamp is present and valid\n const ampTimestamp = queryParams.ampTimestamp ? Number(queryParams.ampTimestamp) : undefined;\n const isWithinTimeLimit = ampTimestamp ? Date.now() < ampTimestamp : true;\n\n // Step 3: Reconcile user identity\n const deviceId =\n options.deviceId ??\n (isWithinTimeLimit ? queryParams.ampDeviceId ?? queryParams.deviceId : undefined) ??\n previousCookies?.deviceId ??\n legacyCookies.deviceId ??\n UUID();\n const lastEventId = previousCookies?.lastEventId ?? legacyCookies.lastEventId;\n const lastEventTime = previousCookies?.lastEventTime ?? legacyCookies.lastEventTime;\n const optOut = options.optOut ?? previousCookies?.optOut ?? legacyCookies.optOut;\n const sessionId = previousCookies?.sessionId ?? legacyCookies.sessionId;\n const deferredSessionId = previousCookies?.deferredSessionId;\n const userId = options.userId ?? previousCookies?.userId ?? legacyCookies.userId;\n amplitudeInstance.previousSessionDeviceId = previousCookies?.deviceId ?? legacyCookies.deviceId;\n amplitudeInstance.previousSessionUserId = previousCookies?.userId ?? legacyCookies.userId;\n\n const trackingOptions = {\n ipAddress: options.trackingOptions?.ipAddress ?? true,\n language: options.trackingOptions?.language ?? true,\n platform: options.trackingOptions?.platform ?? true,\n };\n const pageCounter = previousCookies?.pageCounter;\n const debugLogsEnabled = previousCookies?.debugLogsEnabled;\n\n // Override default tracking options if autocapture is set\n if (options.autocapture !== undefined) {\n options.defaultTracking = options.autocapture;\n }\n\n const browserConfig = new BrowserConfig(\n apiKey,\n options.appVersion,\n cookieStorage,\n cookieOptions,\n options.defaultTracking,\n options.autocapture,\n deviceId,\n options.flushIntervalMillis,\n options.flushMaxRetries,\n options.flushQueueSize,\n identityStorage,\n options.ingestionMetadata,\n options.instanceName,\n lastEventId,\n lastEventTime,\n // Use earlyConfig.loggerProvider to ensure consistent logger across DiagnosticsClient/RemoteConfigClient/BrowserConfig\n earlyConfig?.loggerProvider ?? options.loggerProvider,\n options.logLevel,\n options.minIdLength,\n options.offline,\n optOut,\n options.partnerId,\n options.plan,\n options.serverUrl,\n // Use earlyConfig.serverZone to ensure consistent serverZone\n earlyConfig?.serverZone ?? options.serverZone,\n sessionId,\n deferredSessionId,\n options.sessionTimeout,\n options.storageProvider,\n trackingOptions,\n options.transport,\n options.useBatch,\n options.fetchRemoteConfig,\n userId,\n pageCounter,\n debugLogsEnabled,\n options.networkTrackingOptions,\n options.identify,\n // Use earlyConfig values (already has remote config applied), otherwise fall back to options\n earlyConfig?.enableDiagnostics ?? options.enableDiagnostics,\n earlyConfig?.diagnosticsSampleRate ?? amplitudeInstance._diagnosticsSampleRate,\n diagnosticsClient,\n options.remoteConfig,\n defaultCookieDomain,\n options.enableRequestBodyCompression,\n options.customEnrichment,\n );\n\n if (!(await browserConfig.storageProvider.isEnabled())) {\n browserConfig.loggerProvider.warn(\n `Storage provider ${browserConfig.storageProvider.constructor.name} is not enabled. Falling back to MemoryStorage.`,\n );\n browserConfig.storageProvider = new MemoryStorage();\n }\n\n return browserConfig;\n};\n\nexport const createCookieStorage = <T>(\n identityStorage: IdentityStorageType = DEFAULT_IDENTITY_STORAGE,\n cookieOptions: CookieOptions = {},\n cookieConfig?: CookieStorageConfig,\n) => {\n switch (identityStorage) {\n case 'localStorage':\n return new LocalStorage<T>();\n case 'sessionStorage':\n return new SessionStorage<T>();\n case 'none':\n return new MemoryStorage<T>();\n case 'cookie':\n default:\n return new CookieStorage<T>(\n {\n ...cookieOptions,\n expirationDays: cookieOptions.expiration,\n },\n cookieConfig,\n );\n }\n};\n\n/**\n * Determines whether to fetch remote config based on options.\n * Extracted to allow early determination before useBrowserConfig is called.\n */\nexport const shouldFetchRemoteConfig = (options: BrowserOptions = {}): boolean => {\n if (options.remoteConfig?.fetchRemoteConfig === true) {\n // set to true if remoteConfig explicitly set to true\n return true;\n } else if (options.remoteConfig?.fetchRemoteConfig === false || options.fetchRemoteConfig === false) {\n // set to false if either are set to false explicitly\n return false;\n } else {\n // default to true if both undefined\n return true;\n }\n};\n\nexport const createTransport = (transport?: TransportTypeOrOptions) => {\n const type = typeof transport === 'object' ? transport.type : transport;\n const headers = typeof transport === 'object' ? transport.headers : undefined;\n const enableKeepalive = typeof transport === 'object' ? transport.enableKeepalive : undefined;\n const referrerPolicy = typeof transport === 'object' ? transport.referrerPolicy : undefined;\n\n if (type === 'xhr') {\n return new XHRTransport(headers);\n }\n if (type === 'beacon') {\n // SendBeacon does not support custom headers\n return new SendBeaconTransport();\n }\n // Keep a browser-local fetch transport for gzip support.\n // TODO: Merge back to core FetchTransport after React Native supports gzip.\n return new FetchTransport(headers, enableKeepalive, referrerPolicy);\n};\n\nexport const getTopLevelDomain = async (url?: string, diagnosticsClient?: IDiagnosticsClient) => {\n if (\n !(await new CookieStorage<number>(undefined, { diagnosticsClient }).isEnabled()) ||\n (!url && (typeof location === 'undefined' || !location.hostname))\n ) {\n return '';\n }\n const host = url ?? location.hostname;\n\n const parts = host.split('.');\n\n // if hostname has less than 2 parts, it's not a registrable domain\n // and the browser won't allow setting domain-scoped cookies for it so return empty string\n if (parts.length === 1) {\n return '';\n }\n\n const levels = [];\n let skipLevel = 1;\n\n // if the hostname ends with a TLD we know is in the Public Suffix List\n // then the last two parts are definitely not writable as a domain\n if (KNOWN_2LDS.find((tld) => host.endsWith(`.${tld}`))) {\n skipLevel = 2;\n }\n\n for (let i = parts.length - skipLevel - 1; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n try {\n const result = await CookieStorage.isDomainWritable(domain);\n\n // if the transaction succeeded, the domain is valid\n if (result) {\n return '.' + domain;\n }\n } catch (e) {\n /* istanbul ignore if */\n if (diagnosticsClient) {\n diagnosticsClient.recordEvent('cookies.tld.failure', {\n reason: `Unexpected exception checking domain is writable: ${domain}`,\n error: e instanceof Error ? e.message : String(e),\n });\n }\n }\n }\n\n // if the transaction failed, the domain is invalid\n // record a diagnostic event\n if (diagnosticsClient) {\n diagnosticsClient.recordEvent('cookies.tld.failure', {\n reason: `Could not determine TLD for host ${host}`,\n });\n }\n\n // return an empty string to indicate that we couldn't determine the TLD\n // so fallback to host-only cookies (scoped to the current host)\n return '';\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"network-connectivity-checker.d.ts","sourceRoot":"","sources":["../../../src/plugins/network-connectivity-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,YAAY,EAAgC,MAAM,2BAA2B,CAAC;AAOvG,eAAO,MAAM,gCAAgC,QAAO,YA6DnD,CAAC"}
1
+ {"version":3,"file":"network-connectivity-checker.d.ts","sourceRoot":"","sources":["../../../src/plugins/network-connectivity-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,YAAY,EAAgC,MAAM,2BAA2B,CAAC;AAOvG,eAAO,MAAM,gCAAgC,QAAO,YAgEnD,CAAC"}
@@ -35,6 +35,9 @@ var networkConnectivityCheckerPlugin = function () {
35
35
  }
36
36
  config.offline = !navigator.onLine;
37
37
  addNetworkListener('online', function () {
38
+ if (config.offline === false) {
39
+ return;
40
+ }
38
41
  config.loggerProvider.debug('Network connectivity changed to online.');
39
42
  config.offline = false;
40
43
  // Flush immediately will cause ERR_NETWORK_CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"network-connectivity-checker.js","sourceRoot":"","sources":["../../../src/plugins/network-connectivity-checker.ts"],"names":[],"mappings":";;;;AAAA,4DAAuG;AAOhG,IAAM,gCAAgC,GAAG;IAC9C,IAAM,IAAI,GAAG,2CAA2C,CAAC;IACzD,IAAM,IAAI,GAAG,QAAiB,CAAC;IAC/B,IAAM,WAAW,GAAG,IAAA,+BAAc,GAAE,CAAC;IACrC,IAAI,cAAc,GAAoB,EAAE,CAAC;IAEzC,IAAM,kBAAkB,GAAG,UAAC,IAA0B,EAAE,OAAmB;QACzE,0BAA0B;QAC1B,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,EAAE;YACjC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7C,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,MAAA;gBACJ,OAAO,SAAA;aACR,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IAEF,IAAM,sBAAsB,GAAG;QAC7B,cAAc,CAAC,OAAO,CAAC,UAAC,EAAiB;gBAAf,IAAI,UAAA,EAAE,OAAO,aAAA;YACrC,0BAA0B;YAC1B,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,cAAc,GAAG,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,IAAM,KAAK,GAAG,UAAO,MAAqB,EAAE,SAAwB;;YAClE,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;gBACpC,MAAM,CAAC,cAAc,CAAC,KAAK,CACzB,qFAAqF,CACtF,CAAC;gBACF,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,sBAAO;aACR;YAED,MAAM,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;YAEnC,kBAAkB,CAAC,QAAQ,EAAE;gBAC3B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACvE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,mDAAmD;gBACnD,UAAU,CAAC;oBACT,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,kBAAkB,CAAC,SAAS,EAAE;gBAC5B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACxE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,CAAC,CAAC,CAAC;;;SACJ,CAAC;IAEF,IAAM,QAAQ,GAAG;;YACf,sBAAsB,EAAE,CAAC;;;SAC1B,CAAC;IAEF,OAAO;QACL,IAAI,MAAA;QACJ,IAAI,MAAA;QACJ,KAAK,OAAA;QACL,QAAQ,UAAA;KACT,CAAC;AACJ,CAAC,CAAC;AA7DW,QAAA,gCAAgC,oCA6D3C","sourcesContent":["import { getGlobalScope, BeforePlugin, BrowserClient, BrowserConfig } from '@amplitude/analytics-core';\n\ninterface EventListener {\n type: 'online' | 'offline';\n handler: () => void;\n}\n\nexport const networkConnectivityCheckerPlugin = (): BeforePlugin => {\n const name = '@amplitude/plugin-network-checker-browser';\n const type = 'before' as const;\n const globalScope = getGlobalScope();\n let eventListeners: EventListener[] = [];\n\n const addNetworkListener = (type: 'online' | 'offline', handler: () => void) => {\n /* istanbul ignore next */\n if (globalScope?.addEventListener) {\n globalScope?.addEventListener(type, handler);\n eventListeners.push({\n type,\n handler,\n });\n }\n };\n\n const removeNetworkListeners = () => {\n eventListeners.forEach(({ type, handler }) => {\n /* istanbul ignore next */\n globalScope?.removeEventListener(type, handler);\n });\n eventListeners = [];\n };\n\n const setup = async (config: BrowserConfig, amplitude: BrowserClient) => {\n if (typeof navigator === 'undefined') {\n config.loggerProvider.debug(\n 'Network connectivity checker plugin is disabled because navigator is not available.',\n );\n config.offline = false;\n return;\n }\n\n config.offline = !navigator.onLine;\n\n addNetworkListener('online', () => {\n config.loggerProvider.debug('Network connectivity changed to online.');\n config.offline = false;\n // Flush immediately will cause ERR_NETWORK_CHANGED\n setTimeout(() => {\n amplitude.flush();\n }, config.flushIntervalMillis);\n });\n\n addNetworkListener('offline', () => {\n config.loggerProvider.debug('Network connectivity changed to offline.');\n config.offline = true;\n });\n };\n\n const teardown = async () => {\n removeNetworkListeners();\n };\n\n return {\n name,\n type,\n setup,\n teardown,\n };\n};\n"]}
1
+ {"version":3,"file":"network-connectivity-checker.js","sourceRoot":"","sources":["../../../src/plugins/network-connectivity-checker.ts"],"names":[],"mappings":";;;;AAAA,4DAAuG;AAOhG,IAAM,gCAAgC,GAAG;IAC9C,IAAM,IAAI,GAAG,2CAA2C,CAAC;IACzD,IAAM,IAAI,GAAG,QAAiB,CAAC;IAC/B,IAAM,WAAW,GAAG,IAAA,+BAAc,GAAE,CAAC;IACrC,IAAI,cAAc,GAAoB,EAAE,CAAC;IAEzC,IAAM,kBAAkB,GAAG,UAAC,IAA0B,EAAE,OAAmB;QACzE,0BAA0B;QAC1B,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,EAAE;YACjC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7C,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,MAAA;gBACJ,OAAO,SAAA;aACR,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IAEF,IAAM,sBAAsB,GAAG;QAC7B,cAAc,CAAC,OAAO,CAAC,UAAC,EAAiB;gBAAf,IAAI,UAAA,EAAE,OAAO,aAAA;YACrC,0BAA0B;YAC1B,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,cAAc,GAAG,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,IAAM,KAAK,GAAG,UAAO,MAAqB,EAAE,SAAwB;;YAClE,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;gBACpC,MAAM,CAAC,cAAc,CAAC,KAAK,CACzB,qFAAqF,CACtF,CAAC;gBACF,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,sBAAO;aACR;YAED,MAAM,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;YAEnC,kBAAkB,CAAC,QAAQ,EAAE;gBAC3B,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;oBAC5B,OAAO;iBACR;gBACD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACvE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,mDAAmD;gBACnD,UAAU,CAAC;oBACT,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,kBAAkB,CAAC,SAAS,EAAE;gBAC5B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACxE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,CAAC,CAAC,CAAC;;;SACJ,CAAC;IAEF,IAAM,QAAQ,GAAG;;YACf,sBAAsB,EAAE,CAAC;;;SAC1B,CAAC;IAEF,OAAO;QACL,IAAI,MAAA;QACJ,IAAI,MAAA;QACJ,KAAK,OAAA;QACL,QAAQ,UAAA;KACT,CAAC;AACJ,CAAC,CAAC;AAhEW,QAAA,gCAAgC,oCAgE3C","sourcesContent":["import { getGlobalScope, BeforePlugin, BrowserClient, BrowserConfig } from '@amplitude/analytics-core';\n\ninterface EventListener {\n type: 'online' | 'offline';\n handler: () => void;\n}\n\nexport const networkConnectivityCheckerPlugin = (): BeforePlugin => {\n const name = '@amplitude/plugin-network-checker-browser';\n const type = 'before' as const;\n const globalScope = getGlobalScope();\n let eventListeners: EventListener[] = [];\n\n const addNetworkListener = (type: 'online' | 'offline', handler: () => void) => {\n /* istanbul ignore next */\n if (globalScope?.addEventListener) {\n globalScope?.addEventListener(type, handler);\n eventListeners.push({\n type,\n handler,\n });\n }\n };\n\n const removeNetworkListeners = () => {\n eventListeners.forEach(({ type, handler }) => {\n /* istanbul ignore next */\n globalScope?.removeEventListener(type, handler);\n });\n eventListeners = [];\n };\n\n const setup = async (config: BrowserConfig, amplitude: BrowserClient) => {\n if (typeof navigator === 'undefined') {\n config.loggerProvider.debug(\n 'Network connectivity checker plugin is disabled because navigator is not available.',\n );\n config.offline = false;\n return;\n }\n\n config.offline = !navigator.onLine;\n\n addNetworkListener('online', () => {\n if (config.offline === false) {\n return;\n }\n config.loggerProvider.debug('Network connectivity changed to online.');\n config.offline = false;\n // Flush immediately will cause ERR_NETWORK_CHANGED\n setTimeout(() => {\n amplitude.flush();\n }, config.flushIntervalMillis);\n });\n\n addNetworkListener('offline', () => {\n config.loggerProvider.debug('Network connectivity changed to offline.');\n config.offline = true;\n });\n };\n\n const teardown = async () => {\n removeNetworkListeners();\n };\n\n return {\n name,\n type,\n setup,\n teardown,\n };\n};\n"]}
@@ -3,7 +3,8 @@ export declare const KEEPALIVE_MAX_BODY_SIZE_BYTES: number;
3
3
  export declare class FetchTransport extends BaseTransport implements Transport {
4
4
  private customHeaders;
5
5
  private enableKeepalive;
6
- constructor(customHeaders?: Record<string, string>, enableKeepalive?: boolean);
6
+ private referrerPolicy?;
7
+ constructor(customHeaders?: Record<string, string>, enableKeepalive?: boolean, referrerPolicy?: ReferrerPolicy);
7
8
  send(serverUrl: string, payload: Payload, shouldCompressUploadBody?: boolean): Promise<Response | null>;
8
9
  }
9
10
  //# sourceMappingURL=fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/transports/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAIb,OAAO,EACP,QAAQ,EACR,SAAS,EACV,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,6BAA6B,QAAY,CAAC;AAKvD,qBAAa,cAAe,SAAQ,aAAc,YAAW,SAAS;IACpE,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,eAAe,CAAU;gBAErB,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAAE,eAAe,CAAC,EAAE,OAAO;IAO3E,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,UAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAgD5G"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/transports/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAIb,OAAO,EACP,QAAQ,EACR,SAAS,EACV,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,6BAA6B,QAAY,CAAC;AAKvD,qBAAa,cAAe,SAAQ,aAAc,YAAW,SAAS;IACpE,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAE5B,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,cAAc;IAU5G,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,UAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAoD5G"}
@@ -10,12 +10,15 @@ exports.KEEPALIVE_MAX_BODY_SIZE_BYTES = 16 * 1024;
10
10
  // once React Native SDK supports request body gzip.
11
11
  var FetchTransport = /** @class */ (function (_super) {
12
12
  tslib_1.__extends(FetchTransport, _super);
13
- function FetchTransport(customHeaders, enableKeepalive) {
13
+ function FetchTransport(customHeaders, enableKeepalive, referrerPolicy) {
14
14
  if (customHeaders === void 0) { customHeaders = {}; }
15
15
  var _this = _super.call(this) || this;
16
16
  _this.customHeaders = customHeaders;
17
17
  // Enabled unless explicitly disabled.
18
18
  _this.enableKeepalive = enableKeepalive !== false;
19
+ // Enable this to control Referer header behavior for fetch requests.
20
+ // Otherwise, leave it as the default browser behavior.
21
+ _this.referrerPolicy = referrerPolicy;
19
22
  return _this;
20
23
  }
21
24
  FetchTransport.prototype.send = function (serverUrl, payload, shouldCompressUploadBody) {
@@ -56,6 +59,9 @@ var FetchTransport = /** @class */ (function (_super) {
56
59
  method: 'POST',
57
60
  keepalive: this.enableKeepalive && bodySize <= exports.KEEPALIVE_MAX_BODY_SIZE_BYTES,
58
61
  };
62
+ if (this.referrerPolicy) {
63
+ options.referrerPolicy = this.referrerPolicy;
64
+ }
59
65
  return [4 /*yield*/, fetch(serverUrl, options)];
60
66
  case 3:
61
67
  response = _a.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/transports/fetch.ts"],"names":[],"mappings":";;;;AAAA,4DAQmC;AAEnC,+HAA+H;AAClH,QAAA,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD,gEAAgE;AAChE,qFAAqF;AACrF,oDAAoD;AACpD;IAAoC,0CAAa;IAI/C,wBAAY,aAA0C,EAAE,eAAyB;QAArE,8BAAA,EAAA,kBAA0C;QAAtD,YACE,iBAAO,SAIR;QAHC,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,sCAAsC;QACtC,KAAI,CAAC,eAAe,GAAG,eAAe,KAAK,KAAK,CAAC;;IACnD,CAAC;IAEK,6BAAI,GAAV,UAAW,SAAiB,EAAE,OAAgB,EAAE,wBAAgC;QAAhC,yCAAA,EAAA,gCAAgC;;;;;;wBAC9E,wBAAwB;wBACxB,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;4BAChC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;yBACpD;wBAEK,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBACrC,kBAAkB,GACtB,wBAAwB;4BACxB,UAAU,CAAC,MAAM,IAAI,gDAA+B;4BACpD,IAAA,6CAA4B,GAAE,CAAC;wBAE7B,IAAI,GAAyB,UAAU,CAAC;wBACxC,OAAO,GAA2B;4BACpC,cAAc,EAAE,kBAAkB;4BAClC,MAAM,EAAE,KAAK;yBACd,CAAC;6BAEE,kBAAkB,EAAlB,wBAAkB;wBACD,qBAAM,IAAA,0CAAyB,EAAC,UAAU,CAAC,EAAA;;wBAAxD,UAAU,GAAG,SAA2C;wBAC9D,IAAI,UAAU,EAAE;4BACd,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;4BACrC,IAAI,GAAG,UAAU,CAAC;yBACnB;;;wBAEH,OAAO,yCACF,IAAI,CAAC,aAAa,GAClB,OAAO,CACX,CAAC;wBAEI,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;wBAEpE,OAAO,GAAgB;4BAC3B,OAAO,SAAA;4BACP,IAAI,MAAA;4BACJ,MAAM,EAAE,MAAM;4BACd,SAAS,EAAE,IAAI,CAAC,eAAe,IAAI,QAAQ,IAAI,qCAA6B;yBAC7E,CAAC;wBAEe,qBAAM,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAA;;wBAA1C,QAAQ,GAAG,SAA+B;wBAC3B,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAApC,YAAY,GAAG,SAAqB;wBAC1C,IAAI;4BACF,iEAAiE;4BACjE,sBAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAC;yBACrD;wBAAC,WAAM;4BACN,sBAAO,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAC;yBACtD;;;;;KACF;IACH,qBAAC;AAAD,CAAC,AA3DD,CAAoC,8BAAa,GA2DhD;AA3DY,wCAAc","sourcesContent":["import {\n BaseTransport,\n compressToGzipArrayBuffer,\n isCompressionStreamAvailable,\n MIN_GZIP_UPLOAD_BODY_SIZE_BYTES,\n Payload,\n Response,\n Transport,\n} from '@amplitude/analytics-core';\n\n// Conservative 1/4 of the shared 64 KiB keepalive budget. Why 16K: https://github.com/amplitude/Amplitude-TypeScript/pull/1781\nexport const KEEPALIVE_MAX_BODY_SIZE_BYTES = 16 * 1024;\n\n// Temporary browser-specific fetch transport with gzip support.\n// TODO: Merge this implementation back into @amplitude/analytics-core FetchTransport\n// once React Native SDK supports request body gzip.\nexport class FetchTransport extends BaseTransport implements Transport {\n private customHeaders: Record<string, string>;\n private enableKeepalive: boolean;\n\n constructor(customHeaders: Record<string, string> = {}, enableKeepalive?: boolean) {\n super();\n this.customHeaders = customHeaders;\n // Enabled unless explicitly disabled.\n this.enableKeepalive = enableKeepalive !== false;\n }\n\n async send(serverUrl: string, payload: Payload, shouldCompressUploadBody = false): Promise<Response | null> {\n /* istanbul ignore if */\n if (typeof fetch === 'undefined') {\n throw new Error('FetchTransport is not supported');\n }\n\n const bodyString = JSON.stringify(payload);\n const shouldCompressBody =\n shouldCompressUploadBody &&\n bodyString.length >= MIN_GZIP_UPLOAD_BODY_SIZE_BYTES &&\n isCompressionStreamAvailable();\n\n let body: string | ArrayBuffer = bodyString;\n let headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n Accept: '*/*',\n };\n\n if (shouldCompressBody) {\n const compressed = await compressToGzipArrayBuffer(bodyString);\n if (compressed) {\n headers['Content-Encoding'] = 'gzip';\n body = compressed;\n }\n }\n headers = {\n ...this.customHeaders,\n ...headers,\n };\n\n const bodySize = typeof body === 'string' ? body.length : body.byteLength;\n\n const options: RequestInit = {\n headers,\n body,\n method: 'POST',\n keepalive: this.enableKeepalive && bodySize <= KEEPALIVE_MAX_BODY_SIZE_BYTES,\n };\n\n const response = await fetch(serverUrl, options);\n const responseText = await response.text();\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return this.buildResponse(JSON.parse(responseText));\n } catch {\n return this.buildResponse({ code: response.status });\n }\n }\n}\n"]}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/transports/fetch.ts"],"names":[],"mappings":";;;;AAAA,4DAQmC;AAEnC,+HAA+H;AAClH,QAAA,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD,gEAAgE;AAChE,qFAAqF;AACrF,oDAAoD;AACpD;IAAoC,0CAAa;IAK/C,wBAAY,aAA0C,EAAE,eAAyB,EAAE,cAA+B;QAAtG,8BAAA,EAAA,kBAA0C;QAAtD,YACE,iBAAO,SAOR;QANC,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,sCAAsC;QACtC,KAAI,CAAC,eAAe,GAAG,eAAe,KAAK,KAAK,CAAC;QACjD,qEAAqE;QACrE,uDAAuD;QACvD,KAAI,CAAC,cAAc,GAAG,cAAc,CAAC;;IACvC,CAAC;IAEK,6BAAI,GAAV,UAAW,SAAiB,EAAE,OAAgB,EAAE,wBAAgC;QAAhC,yCAAA,EAAA,gCAAgC;;;;;;wBAC9E,wBAAwB;wBACxB,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;4BAChC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;yBACpD;wBAEK,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBACrC,kBAAkB,GACtB,wBAAwB;4BACxB,UAAU,CAAC,MAAM,IAAI,gDAA+B;4BACpD,IAAA,6CAA4B,GAAE,CAAC;wBAE7B,IAAI,GAAyB,UAAU,CAAC;wBACxC,OAAO,GAA2B;4BACpC,cAAc,EAAE,kBAAkB;4BAClC,MAAM,EAAE,KAAK;yBACd,CAAC;6BAEE,kBAAkB,EAAlB,wBAAkB;wBACD,qBAAM,IAAA,0CAAyB,EAAC,UAAU,CAAC,EAAA;;wBAAxD,UAAU,GAAG,SAA2C;wBAC9D,IAAI,UAAU,EAAE;4BACd,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;4BACrC,IAAI,GAAG,UAAU,CAAC;yBACnB;;;wBAEH,OAAO,yCACF,IAAI,CAAC,aAAa,GAClB,OAAO,CACX,CAAC;wBAEI,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;wBAEpE,OAAO,GAAgB;4BAC3B,OAAO,SAAA;4BACP,IAAI,MAAA;4BACJ,MAAM,EAAE,MAAM;4BACd,SAAS,EAAE,IAAI,CAAC,eAAe,IAAI,QAAQ,IAAI,qCAA6B;yBAC7E,CAAC;wBAEF,IAAI,IAAI,CAAC,cAAc,EAAE;4BACvB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;yBAC9C;wBAEgB,qBAAM,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAA;;wBAA1C,QAAQ,GAAG,SAA+B;wBAC3B,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAApC,YAAY,GAAG,SAAqB;wBAC1C,IAAI;4BACF,iEAAiE;4BACjE,sBAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAC;yBACrD;wBAAC,WAAM;4BACN,sBAAO,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAC;yBACtD;;;;;KACF;IACH,qBAAC;AAAD,CAAC,AAnED,CAAoC,8BAAa,GAmEhD;AAnEY,wCAAc","sourcesContent":["import {\n BaseTransport,\n compressToGzipArrayBuffer,\n isCompressionStreamAvailable,\n MIN_GZIP_UPLOAD_BODY_SIZE_BYTES,\n Payload,\n Response,\n Transport,\n} from '@amplitude/analytics-core';\n\n// Conservative 1/4 of the shared 64 KiB keepalive budget. Why 16K: https://github.com/amplitude/Amplitude-TypeScript/pull/1781\nexport const KEEPALIVE_MAX_BODY_SIZE_BYTES = 16 * 1024;\n\n// Temporary browser-specific fetch transport with gzip support.\n// TODO: Merge this implementation back into @amplitude/analytics-core FetchTransport\n// once React Native SDK supports request body gzip.\nexport class FetchTransport extends BaseTransport implements Transport {\n private customHeaders: Record<string, string>;\n private enableKeepalive: boolean;\n private referrerPolicy?: ReferrerPolicy;\n\n constructor(customHeaders: Record<string, string> = {}, enableKeepalive?: boolean, referrerPolicy?: ReferrerPolicy) {\n super();\n this.customHeaders = customHeaders;\n // Enabled unless explicitly disabled.\n this.enableKeepalive = enableKeepalive !== false;\n // Enable this to control Referer header behavior for fetch requests.\n // Otherwise, leave it as the default browser behavior.\n this.referrerPolicy = referrerPolicy;\n }\n\n async send(serverUrl: string, payload: Payload, shouldCompressUploadBody = false): Promise<Response | null> {\n /* istanbul ignore if */\n if (typeof fetch === 'undefined') {\n throw new Error('FetchTransport is not supported');\n }\n\n const bodyString = JSON.stringify(payload);\n const shouldCompressBody =\n shouldCompressUploadBody &&\n bodyString.length >= MIN_GZIP_UPLOAD_BODY_SIZE_BYTES &&\n isCompressionStreamAvailable();\n\n let body: string | ArrayBuffer = bodyString;\n let headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n Accept: '*/*',\n };\n\n if (shouldCompressBody) {\n const compressed = await compressToGzipArrayBuffer(bodyString);\n if (compressed) {\n headers['Content-Encoding'] = 'gzip';\n body = compressed;\n }\n }\n headers = {\n ...this.customHeaders,\n ...headers,\n };\n\n const bodySize = typeof body === 'string' ? body.length : body.byteLength;\n\n const options: RequestInit = {\n headers,\n body,\n method: 'POST',\n keepalive: this.enableKeepalive && bodySize <= KEEPALIVE_MAX_BODY_SIZE_BYTES,\n };\n\n if (this.referrerPolicy) {\n options.referrerPolicy = this.referrerPolicy;\n }\n\n const response = await fetch(serverUrl, options);\n const responseText = await response.text();\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return this.buildResponse(JSON.parse(responseText));\n } catch {\n return this.buildResponse({ code: response.status });\n }\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "2.43.0";
1
+ export declare const VERSION = "2.44.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '2.43.0';
4
+ exports.VERSION = '2.44.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["export const VERSION = '2.43.0';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["export const VERSION = '2.44.0';\n"]}
@@ -57,6 +57,8 @@ export type VideoCaptureOptions = {
57
57
  vendor?: VideoVendor;
58
58
  extraEventProperties?: Record<string, string | number | boolean>;
59
59
  };
60
+ type UntrackVideoResult = () => void;
61
+ export type TrackVideoResult = UntrackVideoResult | Error;
60
62
  /**
61
63
  * Track video analytics events for an HTML video element or embedded video player.js instance.
62
64
  *
@@ -68,5 +70,6 @@ export type VideoCaptureOptions = {
68
70
  * @param options - The options for the video capture.
69
71
  * @returns A function to stop the video capture.
70
72
  */
71
- export declare function trackVideo(amplitude: BrowserClient, videoEl: HTMLVideoElement | EmbeddedVideoPlayer, options?: VideoCaptureOptions): () => void;
73
+ export declare function trackVideo(amplitude: BrowserClient, videoEl: HTMLVideoElement | EmbeddedVideoPlayer, options?: VideoCaptureOptions): TrackVideoResult;
74
+ export {};
72
75
  //# sourceMappingURL=video-capture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"video-capture.d.ts","sourceRoot":"","sources":["../../../src/video-capture/video-capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEvH,qBAAa,YAAY;IASX,OAAO,CAAC,QAAQ,CAAC,SAAS;IARtC,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,oBAAoB,CAAiD;IAE7E,OAAO,CAAC,SAAS,CAAsE;IACvF,OAAO,CAAC,iBAAiB,CAAsB;gBAElB,SAAS,EAAE,aAAa;IAErD;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY;IAKzD;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,YAAY;IAK7D;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY;IAK7C;;;;;OAKG;IACH,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,YAAY;IAK7F;;;OAGG;IACH,mBAAmB,IAAI,YAAY;IAanC;;;OAGG;IACH,mBAAmB,IAAI,YAAY;IAkBnC;;;;OAIG;IACH,KAAK,IAAI,YAAY;IA2BrB,IAAI;CAIL;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAClE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,gBAAgB,GAAG,mBAAmB,EAC/C,OAAO,GAAE,mBAAwB,GAChC,MAAM,IAAI,CAiBZ"}
1
+ {"version":3,"file":"video-capture.d.ts","sourceRoot":"","sources":["../../../src/video-capture/video-capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EACb,mBAAmB,EACnB,WAAW,EAEZ,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,YAAY;IASX,OAAO,CAAC,QAAQ,CAAC,SAAS;IARtC,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,oBAAoB,CAAiD;IAE7E,OAAO,CAAC,SAAS,CAAsE;IACvF,OAAO,CAAC,iBAAiB,CAAsB;gBAElB,SAAS,EAAE,aAAa;IAErD;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY;IAKzD;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,YAAY;IAK7D;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY;IAK7C;;;;;OAKG;IACH,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,YAAY;IAK7F;;;OAGG;IACH,mBAAmB,IAAI,YAAY;IAanC;;;OAGG;IACH,mBAAmB,IAAI,YAAY;IAkBnC;;;;OAIG;IACH,KAAK,IAAI,YAAY;IA2BrB,IAAI;CAIL;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAClE,CAAC;AAEF,KAAK,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,KAAK,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,gBAAgB,GAAG,mBAAmB,EAC/C,OAAO,GAAE,mBAAwB,GAChC,gBAAgB,CA0BlB"}
@@ -59,7 +59,7 @@ var VideoCapture = /** @class */ (function () {
59
59
  var _this = this;
60
60
  this.listeners.push(function (previousState, nextState) {
61
61
  if (previousState.playbackState !== 'playing' && nextState.playbackState === 'playing') {
62
- // placeholder for Heartbeat Start Event
62
+ // TODO: placeholder for Heartbeat Start Event
63
63
  _this.amplitude.track('Video Content Started', tslib_1.__assign(tslib_1.__assign({}, nextState.lastEvent), _this.extraEventProperties));
64
64
  }
65
65
  });
@@ -141,11 +141,17 @@ function trackVideo(amplitude, videoEl, options) {
141
141
  if (options.vendor) {
142
142
  videoCapture.withVendor(options.vendor);
143
143
  }
144
- videoCapture
145
- .withExtraEventProperties((_a = options.extraEventProperties) !== null && _a !== void 0 ? _a : {})
146
- .captureVideoStarted()
147
- .captureVideoStopped()
148
- .start();
144
+ var extraEventProperties = (_a = options.extraEventProperties) !== null && _a !== void 0 ? _a : {};
145
+ try {
146
+ videoCapture
147
+ .withExtraEventProperties(tslib_1.__assign({ view_session_id: (0, analytics_core_1.UUID)() }, extraEventProperties))
148
+ .captureVideoStarted()
149
+ .captureVideoStopped()
150
+ .start();
151
+ }
152
+ catch (error) {
153
+ return error;
154
+ }
149
155
  return function () { return videoCapture.stop(); };
150
156
  }
151
157
  exports.trackVideo = trackVideo;
@@ -1 +1 @@
1
- {"version":3,"file":"video-capture.js","sourceRoot":"","sources":["../../../src/video-capture/video-capture.ts"],"names":[],"mappings":"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","sourcesContent":["import { VideoState, VideoObserver, BrowserClient, EmbeddedVideoPlayer, VideoVendor } from '@amplitude/analytics-core';\n\nexport class VideoCapture {\n private videoEl: HTMLVideoElement | null = null;\n private embeddedVideoPlayer: EmbeddedVideoPlayer | null = null;\n private vendor?: VideoVendor;\n private extraEventProperties: Record<string, string | number | boolean> = {};\n\n private listeners: ((previousState: VideoState, nextState: VideoState) => void)[] = [];\n private onRemoveListeners: (() => void)[] = [];\n\n constructor(private readonly amplitude: BrowserClient) {}\n\n /**\n * Specify a video element to capture events from\n *\n * @param videoEl - The HTML video element to capture events from.\n * @returns The VideoCapture instance.\n */\n withVideoElement(videoEl: HTMLVideoElement): VideoCapture {\n this.videoEl = videoEl;\n return this;\n }\n\n /**\n * Specify an embedded video player.js instance to capture events from\n * @param player - The embedded video player.js instance to capture events from.\n * @returns The VideoCapture instance.\n */\n withEmbeddedPlayer(player: EmbeddedVideoPlayer): VideoCapture {\n this.embeddedVideoPlayer = player;\n return this;\n }\n\n /**\n * Specify a vendor to capture extra vendor-specific event properties\n *\n * @param vendor - The vendor of the video player. Currently only \"mux\" is supported.\n * @returns The VideoCapture instance.\n */\n withVendor(vendor: VideoVendor): VideoCapture {\n this.vendor = vendor;\n return this;\n }\n\n /**\n * Specify extra event properties to include in all captured events\n *\n * @param properties - The extra event properties to include in the Amplitude event.\n * @returns The VideoCapture instance.\n */\n withExtraEventProperties(properties: Record<string, string | number | boolean>): VideoCapture {\n this.extraEventProperties = properties;\n return this;\n }\n\n /**\n * Track a \"Video Content Started\" event every time the video starts playing\n * @returns The VideoCapture instance.\n */\n captureVideoStarted(): VideoCapture {\n this.listeners.push((previousState, nextState) => {\n if (previousState.playbackState !== 'playing' && nextState.playbackState === 'playing') {\n // placeholder for Heartbeat Start Event\n this.amplitude.track('Video Content Started', {\n ...nextState.lastEvent,\n ...this.extraEventProperties,\n });\n }\n });\n return this;\n }\n\n /**\n * Track a \"Video Content Stopped\" event every time the video stops playing\n * @returns The VideoCapture instance.\n */\n captureVideoStopped(): VideoCapture {\n this.listeners.push((previousState, nextState) => {\n if (previousState.playbackState === 'playing' && nextState.playbackState !== 'playing') {\n // placeholder for Heartbeat Stop Event\n this.amplitude.track('Video Content Stopped', {\n ...nextState.lastEvent,\n watch_duration: nextState.watchTime,\n ...this.extraEventProperties,\n });\n }\n });\n return this;\n }\n\n // Placeholder: may need a generic state change listener to capture unusual events or to have\n // more control over the event tracking.\n // withStateChangeListener(listener: (previousState: VideoState, nextState: VideoState) => void): VideoCapture {\n\n /**\n * Start capturing analytics events for the video element\n * @returns The VideoCapture instance.\n * @throws An error if the video element is not specified.\n */\n start(): VideoCapture {\n const videoEl = this.videoEl ?? this.embeddedVideoPlayer;\n if (!videoEl) {\n throw new Error(\n 'Video element not specified. Use withVideoElement() or withEmbeddedPlayer() to specify the video element.',\n );\n }\n if (this.videoEl && this.embeddedVideoPlayer) {\n throw new Error(\n 'Both video element and embedded video player specified. Use only one of withVideoElement() or withEmbeddedPlayer() to specify the video element.',\n );\n }\n const videoObserver = new VideoObserver({\n videoEl,\n onStateChange: (previousState, nextState) => {\n this.listeners.forEach((listener) => listener(previousState, nextState));\n },\n vendor: this.vendor,\n isEmbedded: !!this.embeddedVideoPlayer,\n });\n\n this.onRemoveListeners.push(() => {\n videoObserver.destroy();\n });\n return this;\n }\n\n stop() {\n this.onRemoveListeners.forEach((listener) => listener());\n this.onRemoveListeners = [];\n }\n}\n\nexport type VideoCaptureOptions = {\n vendor?: VideoVendor;\n extraEventProperties?: Record<string, string | number | boolean>;\n};\n\n/**\n * Track video analytics events for an HTML video element or embedded video player.js instance.\n *\n * Captures Video Started and Video Stopped events.\n *\n * @experimental This function is experimental and may not be stable.\n * @param amplitude - The Amplitude client instance.\n * @param videoEl - The HTML video element or embedded video player.js instance to capture events from.\n * @param options - The options for the video capture.\n * @returns A function to stop the video capture.\n */\nexport function trackVideo(\n amplitude: BrowserClient,\n videoEl: HTMLVideoElement | EmbeddedVideoPlayer,\n options: VideoCaptureOptions = {},\n): () => void {\n const videoCapture = new VideoCapture(amplitude);\n if (videoEl instanceof HTMLVideoElement) {\n videoCapture.withVideoElement(videoEl);\n } else {\n videoCapture.withEmbeddedPlayer(videoEl);\n }\n if (options.vendor) {\n videoCapture.withVendor(options.vendor);\n }\n videoCapture\n .withExtraEventProperties(options.extraEventProperties ?? {})\n .captureVideoStarted()\n .captureVideoStopped()\n .start();\n\n return () => videoCapture.stop();\n}\n"]}
1
+ {"version":3,"file":"video-capture.js","sourceRoot":"","sources":["../../../src/video-capture/video-capture.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n VideoState,\n VideoObserver,\n BrowserClient,\n EmbeddedVideoPlayer,\n VideoVendor,\n UUID,\n} from '@amplitude/analytics-core';\n\nexport class VideoCapture {\n private videoEl: HTMLVideoElement | null = null;\n private embeddedVideoPlayer: EmbeddedVideoPlayer | null = null;\n private vendor?: VideoVendor;\n private extraEventProperties: Record<string, string | number | boolean> = {};\n\n private listeners: ((previousState: VideoState, nextState: VideoState) => void)[] = [];\n private onRemoveListeners: (() => void)[] = [];\n\n constructor(private readonly amplitude: BrowserClient) {}\n\n /**\n * Specify a video element to capture events from\n *\n * @param videoEl - The HTML video element to capture events from.\n * @returns The VideoCapture instance.\n */\n withVideoElement(videoEl: HTMLVideoElement): VideoCapture {\n this.videoEl = videoEl;\n return this;\n }\n\n /**\n * Specify an embedded video player.js instance to capture events from\n * @param player - The embedded video player.js instance to capture events from.\n * @returns The VideoCapture instance.\n */\n withEmbeddedPlayer(player: EmbeddedVideoPlayer): VideoCapture {\n this.embeddedVideoPlayer = player;\n return this;\n }\n\n /**\n * Specify a vendor to capture extra vendor-specific event properties\n *\n * @param vendor - The vendor of the video player. Currently only \"mux\" is supported.\n * @returns The VideoCapture instance.\n */\n withVendor(vendor: VideoVendor): VideoCapture {\n this.vendor = vendor;\n return this;\n }\n\n /**\n * Specify extra event properties to include in all captured events\n *\n * @param properties - The extra event properties to include in the Amplitude event.\n * @returns The VideoCapture instance.\n */\n withExtraEventProperties(properties: Record<string, string | number | boolean>): VideoCapture {\n this.extraEventProperties = properties;\n return this;\n }\n\n /**\n * Track a \"Video Content Started\" event every time the video starts playing\n * @returns The VideoCapture instance.\n */\n captureVideoStarted(): VideoCapture {\n this.listeners.push((previousState, nextState) => {\n if (previousState.playbackState !== 'playing' && nextState.playbackState === 'playing') {\n // TODO: placeholder for Heartbeat Start Event\n this.amplitude.track('Video Content Started', {\n ...nextState.lastEvent,\n ...this.extraEventProperties,\n });\n }\n });\n return this;\n }\n\n /**\n * Track a \"Video Content Stopped\" event every time the video stops playing\n * @returns The VideoCapture instance.\n */\n captureVideoStopped(): VideoCapture {\n this.listeners.push((previousState, nextState) => {\n if (previousState.playbackState === 'playing' && nextState.playbackState !== 'playing') {\n // placeholder for Heartbeat Stop Event\n this.amplitude.track('Video Content Stopped', {\n ...nextState.lastEvent,\n watch_duration: nextState.watchTime,\n ...this.extraEventProperties,\n });\n }\n });\n return this;\n }\n\n // Placeholder: may need a generic state change listener to capture unusual events or to have\n // more control over the event tracking.\n // withStateChangeListener(listener: (previousState: VideoState, nextState: VideoState) => void): VideoCapture {\n\n /**\n * Start capturing analytics events for the video element\n * @returns The VideoCapture instance.\n * @throws An error if the video element is not specified.\n */\n start(): VideoCapture {\n const videoEl = this.videoEl ?? this.embeddedVideoPlayer;\n if (!videoEl) {\n throw new Error(\n 'Video element not specified. Use withVideoElement() or withEmbeddedPlayer() to specify the video element.',\n );\n }\n if (this.videoEl && this.embeddedVideoPlayer) {\n throw new Error(\n 'Both video element and embedded video player specified. Use only one of withVideoElement() or withEmbeddedPlayer() to specify the video element.',\n );\n }\n const videoObserver = new VideoObserver({\n videoEl,\n onStateChange: (previousState, nextState) => {\n this.listeners.forEach((listener) => listener(previousState, nextState));\n },\n vendor: this.vendor,\n isEmbedded: !!this.embeddedVideoPlayer,\n });\n\n this.onRemoveListeners.push(() => {\n videoObserver.destroy();\n });\n return this;\n }\n\n stop() {\n this.onRemoveListeners.forEach((listener) => listener());\n this.onRemoveListeners = [];\n }\n}\n\nexport type VideoCaptureOptions = {\n vendor?: VideoVendor;\n extraEventProperties?: Record<string, string | number | boolean>;\n};\n\ntype UntrackVideoResult = () => void;\n\nexport type TrackVideoResult = UntrackVideoResult | Error;\n\n/**\n * Track video analytics events for an HTML video element or embedded video player.js instance.\n *\n * Captures Video Started and Video Stopped events.\n *\n * @experimental This function is experimental and may not be stable.\n * @param amplitude - The Amplitude client instance.\n * @param videoEl - The HTML video element or embedded video player.js instance to capture events from.\n * @param options - The options for the video capture.\n * @returns A function to stop the video capture.\n */\nexport function trackVideo(\n amplitude: BrowserClient,\n videoEl: HTMLVideoElement | EmbeddedVideoPlayer,\n options: VideoCaptureOptions = {},\n): TrackVideoResult {\n const videoCapture = new VideoCapture(amplitude);\n if (videoEl instanceof HTMLVideoElement) {\n videoCapture.withVideoElement(videoEl);\n } else {\n videoCapture.withEmbeddedPlayer(videoEl);\n }\n if (options.vendor) {\n videoCapture.withVendor(options.vendor);\n }\n const extraEventProperties = options.extraEventProperties ?? {};\n\n try {\n videoCapture\n .withExtraEventProperties({\n view_session_id: UUID(),\n ...extraEventProperties,\n })\n .captureVideoStarted()\n .captureVideoStopped()\n .start();\n } catch (error) {\n return error as Error;\n }\n\n return () => videoCapture.stop();\n}\n"]}
@@ -40,7 +40,7 @@ export declare class BrowserConfig extends Config implements IBrowserConfig {
40
40
  topLevelDomain?: string | undefined;
41
41
  enableRequestBodyCompression: boolean;
42
42
  customEnrichment?: boolean | CustomEnrichmentOptions | undefined;
43
- readonly version = "2.43.0";
43
+ readonly version = "2.44.0";
44
44
  protected _cookieStorage: Storage<UserSession>;
45
45
  protected _deviceId?: string;
46
46
  protected _lastEventId?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAEN,OAAO,EACP,QAAQ,EACR,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,IAAI,EACJ,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EAEb,aAAa,EAGb,WAAW,EACX,cAAc,EACd,aAAa,IAAI,cAAc,EAC/B,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAElB,mBAAmB,EAEpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAKpD,qBAAa,aAAc,SAAQ,MAAO,YAAW,cAAc;IAaxD,MAAM,EAAE,MAAM;IACd,UAAU,CAAC;IAEX,aAAa,EAAE,aAAa;IAO5B,eAAe,CAAC;IAChB,WAAW,CAAC;IAEZ,mBAAmB,EAAE,MAAM;IAC3B,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,CAAC;IAClB,YAAY,CAAC;IAGb,cAAc,EAAE,OAAO;IACvB,QAAQ,EAAE,QAAQ;IAClB,WAAW,CAAC;IACZ,OAAO,EAAE,OAAO,GAAG,OAAO,eAAe;IAEzC,SAAS,CAAC;IACV,IAAI,CAAC;IACL,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,cAAc;IAG1B,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACjC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC;IAK1C,SAAS,EAAE,sBAAsB;IACjC,QAAQ,EAAE,OAAO;IACjB,iBAAiB,EAAE,OAAO;IAI1B,sBAAsB,CAAC;IACvB,QAAQ,CAAC;IACT,iBAAiB,EAAE,OAAO;IAC1B,qBAAqB,EAAE,MAAM;IAC7B,iBAAiB,CAAC;IAClB,YAAY,CAAC;IACb,cAAc,CAAC;IACf,4BAA4B,EAAE,OAAO;IACrC,gBAAgB,CAAC;IAjE1B,SAAgB,OAAO,YAAW;IAClC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;gBAE7B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,oBAAQ,EAC1B,aAAa,GAAE,OAAO,CAAC,WAAW,CAAuB,EAClD,aAAa,GAAE,aAMrB,EACM,eAAe,CAAC,8CAAkC,EAClD,WAAW,CAAC,0CAA8B,EACjD,QAAQ,CAAC,EAAE,MAAM,EACV,mBAAmB,GAAE,MAAa,EAClC,eAAe,GAAE,MAAU,EAC3B,cAAc,GAAE,MAAW,EAC3B,eAAe,GAAE,mBAA8C,EAC/D,iBAAiB,CAAC,+BAAmB,EACrC,YAAY,CAAC,oBAAQ,EAC5B,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EACf,cAAc,GAAE,OAAsB,EACtC,QAAQ,GAAE,QAAwB,EAClC,WAAW,CAAC,oBAAQ,EACpB,OAAO,GAAE,OAAO,GAAG,OAAO,eAAuB,EACxD,MAAM,UAAQ,EACP,SAAS,CAAC,oBAAQ,EAClB,IAAI,CAAC,kBAAM,EACX,SAAS,GAAE,MAAW,EACtB,UAAU,GAAE,cAAoC,EACvD,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,EACnB,cAAc,GAAE,MAAuB,EACvC,eAAe,GAAE,OAAO,CAAC,KAAK,EAAE,CAAwC,EACxE,eAAe,GAAE,QAAQ,CAAC,eAAe,CAI/C,EACM,SAAS,GAAE,sBAAgC,EAC3C,QAAQ,GAAE,OAAe,EACzB,iBAAiB,GAAE,OAAc,EACxC,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,OAAO,EACnB,sBAAsB,CAAC,oCAAwB,EAC/C,QAAQ,CAAC,uBAAW,EACpB,iBAAiB,GAAE,OAAc,EACjC,qBAAqB,GAAE,MAAU,EACjC,iBAAiB,CAAC,gCAAoB,EACtC,YAAY,CAAC,iCAAqB,EAClC,cAAc,CAAC,oBAAQ,EACvB,4BAA4B,GAAE,OAAe,EAC7C,gBAAgB,CAAC,+CAAmC;IAgC7D,IAAI,aAAa,IAIgB,OAAO,CAAC,WAAW,CAAC,CAFpD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,EAKpD;IAED,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAKxC;IAED,IAAI,MAAM,IAIS,MAAM,GAAG,SAAS,CAFpC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAKpC;IAED,IAAI,SAAS,IAIY,MAAM,GAAG,SAAS,CAF1C;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAU1C;IAED,IAAI,iBAAiB,IAIoB,MAAM,GAAG,SAAS,CAF1D;IAED,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,EAK1D;IAED,IAAI,MAAM,IAIS,OAAO,CAFzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAKzB;IAED,IAAI,aAAa,IAIgB,MAAM,GAAG,SAAS,CAFlD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAKlD;IAED,IAAI,WAAW,IAIc,MAAM,GAAG,SAAS,CAF9C;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAK9C;IAED,IAAI,WAAW,IAIc,MAAM,GAAG,SAAS,CAF9C;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAK9C;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,GAAG,SAAS,EAKzD;IAED,OAAO,CAAC,aAAa;CAoBtB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,+FAA+F;IAC/F,cAAc,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,cAAc,CAAC;IAC3B,mEAAmE;IACnE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4DAA4D;IAC5D,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,gBAAgB,WACnB,MAAM,0DAEK,gBAAgB,sBACf,kBAAkB,gBACxB,WAAW,KACxB,QAAQ,cAAc,CAsIxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,wBACb,mBAAmB,kBACrB,aAAa,iBACb,mBAAmB,8EAmBnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,aAAa,cAAc,KAAQ,OAWtE,CAAC;AAEF,eAAO,MAAM,eAAe,eAAgB,sBAAsB,wDAgBjE,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAgB,MAAM,sBAAsB,kBAAkB,oBA4D3F,CAAC"}
package/lib/esm/config.js CHANGED
@@ -382,6 +382,7 @@ export var createTransport = function (transport) {
382
382
  var type = typeof transport === 'object' ? transport.type : transport;
383
383
  var headers = typeof transport === 'object' ? transport.headers : undefined;
384
384
  var enableKeepalive = typeof transport === 'object' ? transport.enableKeepalive : undefined;
385
+ var referrerPolicy = typeof transport === 'object' ? transport.referrerPolicy : undefined;
385
386
  if (type === 'xhr') {
386
387
  return new XHRTransport(headers);
387
388
  }
@@ -391,7 +392,7 @@ export var createTransport = function (transport) {
391
392
  }
392
393
  // Keep a browser-local fetch transport for gzip support.
393
394
  // TODO: Merge back to core FetchTransport after React Native supports gzip.
394
- return new FetchTransport(headers, enableKeepalive);
395
+ return new FetchTransport(headers, enableKeepalive, referrerPolicy);
395
396
  };
396
397
  export var getTopLevelDomain = function (url, diagnosticsClient) { return __awaiter(void 0, void 0, void 0, function () {
397
398
  var host, parts, levels, skipLevel, i, i, domain, result, e_1;