posthog-js
Version:
Posthog-js allows you to automatically capture usage and send events to PostHog.
82 lines • 3.26 kB
TypeScript
import { PostHog } from './module';
import { SessionIdChangedCallback } from "@posthog/types";
//#region lib/src/extensions/tracing-headers-types.d.ts
/**
* Public config is `string[]` today. Keep `boolean` internally because the
* earliest browser-only `__add_tracing_headers` preview option shipped as a
* boolean, where `true` meant "add tracing headers to every request".
*/
type TracingHeadersHostnames = string[] | boolean | undefined;
/**
* Allow a provider so headers use the current distinct ID after bootstrap,
* identify(), reset(), or other identity changes without re-patching fetch/XHR.
*/
type TracingHeadersDistinctId = string | (() => string | undefined);
//#endregion
//#region lib/src/sessionid.d.ts
declare class SessionIdManager {
private readonly _sessionIdGenerator;
private readonly _windowIdGenerator;
private _config;
private _persistence;
private _windowId;
private _sessionId;
private readonly _window_id_storage_key;
private readonly _primary_window_exists_storage_key;
private _sessionStartTimestamp;
private _pendingBootstrapSession;
private _sessionActivityTimestamp;
private _lastPersistedActivityTimestamp;
private _lastCookieSyncTimestamp;
private _sessionIdChangedHandlers;
private readonly _sessionTimeoutMs;
private _enforceIdleTimeout;
private _beforeUnloadListener;
private _destroyed;
private _eventEmitter;
on(event: 'forcedIdleReset', handler: () => void): () => void;
constructor(instance: PostHog, sessionIdGenerator?: () => string, windowIdGenerator?: () => string);
get sessionTimeoutMs(): number;
onSessionId(callback: SessionIdChangedCallback): () => void;
private _canUseSessionStorage;
private _setWindowId;
private _getWindowId;
private _isActivityChangeBelowGranularity;
private _setSessionId;
private _useCrossTabRefreshHardening;
private _refreshSessionIdFromStorage;
private _flushPendingActivityTimestamp;
private _freshestActivityTimestamp;
private _isSessionIdleAfterCrossTabRefresh;
private _getSessionId;
resetSessionId(): void;
setBootstrapSessionId(sessionID: string, deferUntilNextSession?: boolean): boolean;
/**
* Cleans up resources used by SessionIdManager.
* Should be called when the SessionIdManager is no longer needed to prevent memory leaks.
*/
destroy(): void;
private _listenToReloadWindow;
private _sessionHasBeenIdleTooLong;
checkAndGetSessionAndWindowId(readOnly?: boolean, _timestamp?: number | null, persistenceAlreadySynced?: boolean): {
sessionId: string;
windowId: string;
sessionStartTimestamp: number;
changeReason: {
noSessionId: boolean;
activityTimeout: boolean;
sessionPastMaximumLength: boolean;
crossTabAdoption: boolean;
} | undefined;
lastActivityTimestamp: number;
};
private _resetIdleTimer;
}
//#endregion
//#region lib/src/entrypoints/tracing-headers.d.ts
declare const patchFns: {
_patchFetch: (hostnames: TracingHeadersHostnames, distinctId: TracingHeadersDistinctId, sessionManager?: SessionIdManager) => (() => void);
_patchXHR: (hostnames: TracingHeadersHostnames, distinctId: TracingHeadersDistinctId, sessionManager?: SessionIdManager) => (() => void);
};
//#endregion
export { patchFns as default };