Skip to content

@jayoncode/browser-lifecycle API


@jayoncode/browser-lifecycle API

Classes

BrowserLifecycleError

Defined in: errors/index.ts:14

Base error for all public Browser Lifecycle infrastructure failures.

Extends

  • Error

Extended by

Constructors

Constructor
ts
new BrowserLifecycleError(
   message: string, 
   code: BrowserLifecycleErrorCode, 
   options: BrowserLifecycleErrorOptions): BrowserLifecycleError;

Defined in: errors/index.ts:18

Parameters
ParameterType
messagestring
codeBrowserLifecycleErrorCode
optionsBrowserLifecycleErrorOptions
Returns

BrowserLifecycleError

Overrides
ts
Error.constructor

Properties

PropertyModifierTypeDefined in
codereadonlyBrowserLifecycleErrorCodeerrors/index.ts:15
detailsreadonlyundefined | Readonly<PlainObject>errors/index.ts:16

ConfigurationError

Defined in: errors/index.ts:33

Error thrown when configuration input is invalid.

Extends

Constructors

Constructor
ts
new ConfigurationError(message: string, options: BrowserLifecycleErrorOptions): ConfigurationError;

Defined in: errors/index.ts:34

Parameters
ParameterType
messagestring
optionsBrowserLifecycleErrorOptions
Returns

ConfigurationError

Overrides

BrowserLifecycleError.constructor

Properties

PropertyModifierTypeInherited fromDefined in
codereadonlyBrowserLifecycleErrorCodeBrowserLifecycleError.codeerrors/index.ts:15
detailsreadonlyundefined | Readonly<PlainObject>BrowserLifecycleError.detailserrors/index.ts:16

UnsupportedFeatureError

Defined in: errors/index.ts:43

Error thrown when a required feature is unavailable.

Extends

Constructors

Constructor
ts
new UnsupportedFeatureError(message: string, options: BrowserLifecycleErrorOptions): UnsupportedFeatureError;

Defined in: errors/index.ts:44

Parameters
ParameterType
messagestring
optionsBrowserLifecycleErrorOptions
Returns

UnsupportedFeatureError

Overrides

BrowserLifecycleError.constructor

Properties

PropertyModifierTypeInherited fromDefined in
codereadonlyBrowserLifecycleErrorCodeBrowserLifecycleError.codeerrors/index.ts:15
detailsreadonlyundefined | Readonly<PlainObject>BrowserLifecycleError.detailserrors/index.ts:16

InitializationError

Defined in: errors/index.ts:53

Error thrown when the package cannot initialize correctly.

Extends

Constructors

Constructor
ts
new InitializationError(message: string, options: BrowserLifecycleErrorOptions): InitializationError;

Defined in: errors/index.ts:54

Parameters
ParameterType
messagestring
optionsBrowserLifecycleErrorOptions
Returns

InitializationError

Overrides

BrowserLifecycleError.constructor

Properties

PropertyModifierTypeInherited fromDefined in
codereadonlyBrowserLifecycleErrorCodeBrowserLifecycleError.codeerrors/index.ts:15
detailsreadonlyundefined | Readonly<PlainObject>BrowserLifecycleError.detailserrors/index.ts:16

LifecycleError

Defined in: errors/index.ts:63

Error thrown when a lifecycle transition is invalid.

Extends

Constructors

Constructor
ts
new LifecycleError(message: string, options: BrowserLifecycleErrorOptions): LifecycleError;

Defined in: errors/index.ts:64

Parameters
ParameterType
messagestring
optionsBrowserLifecycleErrorOptions
Returns

LifecycleError

Overrides

BrowserLifecycleError.constructor

Properties

PropertyModifierTypeInherited fromDefined in
codereadonlyBrowserLifecycleErrorCodeBrowserLifecycleError.codeerrors/index.ts:15
detailsreadonlyundefined | Readonly<PlainObject>BrowserLifecycleError.detailserrors/index.ts:16

ModuleRegistryError

Defined in: errors/index.ts:73

Error thrown when the module registry is used incorrectly.

Extends

Constructors

Constructor
ts
new ModuleRegistryError(message: string, options: BrowserLifecycleErrorOptions): ModuleRegistryError;

Defined in: errors/index.ts:74

Parameters
ParameterType
messagestring
optionsBrowserLifecycleErrorOptions
Returns

ModuleRegistryError

Overrides

BrowserLifecycleError.constructor

Properties

PropertyModifierTypeInherited fromDefined in
codereadonlyBrowserLifecycleErrorCodeBrowserLifecycleError.codeerrors/index.ts:15
detailsreadonlyundefined | Readonly<PlainObject>BrowserLifecycleError.detailserrors/index.ts:16

PluginError

Defined in: errors/index.ts:83

Placeholder plugin error used before the plugin system is implemented.

Extends

Constructors

Constructor
ts
new PluginError(message: string, options: BrowserLifecycleErrorOptions): PluginError;

Defined in: errors/index.ts:84

Parameters
ParameterType
messagestring
optionsBrowserLifecycleErrorOptions
Returns

PluginError

Overrides

BrowserLifecycleError.constructor

Properties

PropertyModifierTypeInherited fromDefined in
codereadonlyBrowserLifecycleErrorCodeBrowserLifecycleError.codeerrors/index.ts:15
detailsreadonlyundefined | Readonly<PlainObject>BrowserLifecycleError.detailserrors/index.ts:16

TypedEventEmitter<TEventMap>

Defined in: events/typed-event-emitter.ts:24

Generic typed event emitter used by Browser Lifecycle Manager internals.

Type Parameters

Type Parameter
TEventMap extends EventMap

Constructors

Constructor
ts
new TypedEventEmitter<TEventMap>(options: TypedEventEmitterOptions<TEventMap>): TypedEventEmitter<TEventMap>;

Defined in: events/typed-event-emitter.ts:30

Parameters
ParameterType
optionsTypedEventEmitterOptions<TEventMap>
Returns

TypedEventEmitter<TEventMap>

Methods

on()
ts
on<TEventName>(event: TEventName, listener: EventListener<TEventMap, TEventName>): EventSubscription<TEventName>;

Defined in: events/typed-event-emitter.ts:43

Registers a persistent listener.

Type Parameters
Type Parameter
TEventName extends string
Parameters
ParameterType
eventTEventName
listenerEventListener<TEventMap, TEventName>
Returns

EventSubscription<TEventName>

off()
ts
off<TEventName>(event: TEventName, listener: EventListener<TEventMap, TEventName>): void;

Defined in: events/typed-event-emitter.ts:54

Removes the first listener matching the provided function reference.

Type Parameters
Type Parameter
TEventName extends string
Parameters
ParameterType
eventTEventName
listenerEventListener<TEventMap, TEventName>
Returns

void

once()
ts
once<TEventName>(event: TEventName, listener: EventListener<TEventMap, TEventName>): EventSubscription<TEventName>;

Defined in: events/typed-event-emitter.ts:68

Registers a one-time listener.

Type Parameters
Type Parameter
TEventName extends string
Parameters
ParameterType
eventTEventName
listenerEventListener<TEventMap, TEventName>
Returns

EventSubscription<TEventName>

emit()
ts
emit<TEventName>(
   event: TEventName, 
   payload: EventPayload<TEventMap, TEventName>, 
options: EmitEventOptions): EventDispatchMetadata<TEventName>;

Defined in: events/typed-event-emitter.ts:79

Emits an event synchronously and returns dispatch metadata.

Type Parameters
Type Parameter
TEventName extends string
Parameters
ParameterType
eventTEventName
payloadEventPayload<TEventMap, TEventName>
optionsEmitEventOptions
Returns

EventDispatchMetadata<TEventName>

listeners()
ts
listeners<TEventName>(event: TEventName): readonly EventListener<TEventMap, TEventName>[];

Defined in: events/typed-event-emitter.ts:91

Returns the active listeners for one event in registration order.

Type Parameters
Type Parameter
TEventName extends string
Parameters
ParameterType
eventTEventName
Returns

readonly EventListener<TEventMap, TEventName>[]

listenerCount()
ts
listenerCount(event?: EventName<TEventMap>): number;

Defined in: events/typed-event-emitter.ts:104

Returns the active listener count for one event or for the full emitter.

Parameters
ParameterType
event?EventName<TEventMap>
Returns

number

hasListeners()
ts
hasListeners(event?: EventName<TEventMap>): boolean;

Defined in: events/typed-event-emitter.ts:115

Returns true when listeners exist for one event or for the entire emitter.

Parameters
ParameterType
event?EventName<TEventMap>
Returns

boolean

removeAll()
ts
removeAll(event?: EventName<TEventMap>): void;

Defined in: events/typed-event-emitter.ts:126

Removes all listeners for one event or for the entire emitter.

Parameters
ParameterType
event?EventName<TEventMap>
Returns

void

destroy()
ts
destroy(): void;

Defined in: events/typed-event-emitter.ts:137

Destroys the emitter and clears all listeners.

Returns

void

definitions()
ts
definitions(): readonly EventDefinition<EventName<TEventMap>>[];

Defined in: events/typed-event-emitter.ts:149

Returns the registered definitions for diagnostics and tests.

Returns

readonly EventDefinition<EventName<TEventMap>>[]

stats()
ts
stats<TEventName>(event: TEventName): EventRegistryStats<TEventName>;

Defined in: events/typed-event-emitter.ts:156

Returns dispatch statistics for one event.

Type Parameters
Type Parameter
TEventName extends string
Parameters
ParameterType
eventTEventName
Returns

EventRegistryStats<TEventName>

Interfaces

PageVisibleEventMetadata

Defined in: core/session/types.ts:68

Metadata carried by page:visible events.

Extends

  • PlainObject

Extended by

Indexable

ts
[key: string]: unknown

Properties

PropertyModifierTypeDefined in
reasonreadonly"initial" | "visibilitychange"core/session/types.ts:69

PageHiddenEventMetadata

Defined in: core/session/types.ts:75

Metadata carried by page:hidden events.

Extends

Indexable

ts
[key: string]: unknown

Properties

PropertyModifierTypeInherited fromDefined in
reasonreadonly"initial" | "visibilitychange"PageVisibleEventMetadata.reasoncore/session/types.ts:69
likelyLastSignalreadonlyboolean-core/session/types.ts:76

BrowserLifecycleTimestamps

Defined in: core/session/types.ts:82

Timestamp metadata exposed in snapshot reads.

Properties

PropertyModifierTypeDefined in
createdAtreadonlynumbercore/session/types.ts:83
disposedAt?readonlynumbercore/session/types.ts:84
lastEventAt?readonlynumbercore/session/types.ts:85
startedAt?readonlynumbercore/session/types.ts:86
stoppedAt?readonlynumbercore/session/types.ts:87
updatedAtreadonlynumbercore/session/types.ts:88

BrowserLifecycleSnapshot

Defined in: core/session/types.ts:94

Public snapshot shape returned by the Session Core.

Properties

PropertyModifierTypeDefined in
activityreadonlyBrowserLifecycleActivityStatecore/session/types.ts:95
attentionreadonlyBrowserLifecycleAttentionStatecore/session/types.ts:96
capabilitiesreadonlyBrowserLifecycleCapabilitiescore/session/types.ts:97
connectivityreadonlyBrowserLifecycleConnectivityStatecore/session/types.ts:98
lifecyclereadonlyBrowserLifecyclePageStatecore/session/types.ts:99
phasereadonlyBrowserLifecyclePhasecore/session/types.ts:100
tabreadonlyBrowserLifecycleTabStatecore/session/types.ts:101
timestampsreadonlyBrowserLifecycleTimestampscore/session/types.ts:102
visibilityreadonlyBrowserLifecycleVisibilityStatecore/session/types.ts:103

BrowserLifecycleEvent<TType, TCurrent, TPrevious, TMetadata>

Defined in: core/session/types.ts:136

Shared event payload contract for normalized public events.

Type Parameters

Type ParameterDefault type
TType extends BrowserLifecycleEventName-
TCurrent-
TPrevious-
TMetadata extends PlainObject | undefinedPlainObject | undefined

Properties

PropertyModifierTypeDefined in
currentreadonlyTCurrentcore/session/types.ts:142
metadatareadonlyTMetadatacore/session/types.ts:143
previousreadonlyTPreviouscore/session/types.ts:144
snapshotreadonlyBrowserLifecycleSnapshotcore/session/types.ts:145
sourcereadonlyBrowserLifecycleEventSourcecore/session/types.ts:146
timestampreadonlynumbercore/session/types.ts:147
typereadonlyTTypecore/session/types.ts:148

BrowserLifecycleEventMap

Defined in: core/session/types.ts:154

Public event payload map used by the Session Core event API.

Properties

PropertyModifierTypeDefined in
activity:detectedreadonlyBrowserLifecycleEvent<"activity:detected", "active", BrowserLifecycleActivityState, | undefined | { activitySource: string; }>core/session/types.ts:155
activity:resetreadonlyBrowserLifecycleEvent<"activity:reset", "active", BrowserLifecycleActivityState, | undefined | { activitySource: string; }>core/session/types.ts:161
connection:offlinereadonlyBrowserLifecycleEvent<"connection:offline", "offline", BrowserLifecycleConnectivityState, | undefined | { advisory: true; reason?: "offline" | "initial"; }>core/session/types.ts:167
connection:onlinereadonlyBrowserLifecycleEvent<"connection:online", "online", BrowserLifecycleConnectivityState, | undefined | { advisory: true; reason?: "online" | "initial"; }>core/session/types.ts:173
connection:reconnectreadonlyBrowserLifecycleEvent<"connection:reconnect", "online", "offline", | undefined | { advisory: true; offlineDuration: number; }>core/session/types.ts:179
page:hiddenreadonlyBrowserLifecycleEvent<"page:hidden", "hidden", BrowserLifecycleVisibilityState, PageHiddenEventMetadata>core/session/types.ts:185
page:resumereadonlyBrowserLifecycleEvent<"page:resume", "active", BrowserLifecyclePageState>core/session/types.ts:191
page:suspendreadonlyBrowserLifecycleEvent<"page:suspend", "hidden" | "frozen" | "terminated", BrowserLifecyclePageState>core/session/types.ts:192
page:visiblereadonlyBrowserLifecycleEvent<"page:visible", "visible", BrowserLifecycleVisibilityState, PageVisibleEventMetadata>core/session/types.ts:197
plugin:errorreadonlyBrowserLifecycleEvent<"plugin:error", "error", undefined | "registered" | "ready", | undefined | { hook?: string; pluginId: string; }>core/session/types.ts:203
plugin:registeredreadonlyBrowserLifecycleEvent<"plugin:registered", "registered", undefined, | undefined | { pluginId: string; }>core/session/types.ts:209
plugin:removedreadonlyBrowserLifecycleEvent<"plugin:removed", "removed", undefined | "registered", | undefined | { pluginId: string; reason?: string; }>core/session/types.ts:215
session:activereadonlyBrowserLifecycleEvent<"session:active", "active", BrowserLifecycleActivityState, | undefined | { activitySource: string; idleDuration?: number; }>core/session/types.ts:221
session:idlereadonlyBrowserLifecycleEvent<"session:idle", "idle", BrowserLifecycleActivityState, | undefined | { idleTimeout: number; lastActivityAt: number; }>core/session/types.ts:231
session:restoredreadonlyBrowserLifecycleEvent<"session:restored", "running" | "stopped", BrowserLifecyclePhase>core/session/types.ts:241
session:startedreadonlyBrowserLifecycleEvent<"session:started", "running", BrowserLifecyclePhase, | undefined | { autoStart: boolean; }>core/session/types.ts:246
session:stoppedreadonlyBrowserLifecycleEvent<"session:stopped", "stopped", BrowserLifecyclePhase, | undefined | { reason: "dispose" | "manual-stop"; }>core/session/types.ts:252
tab:primaryreadonlyBrowserLifecycleEvent<"tab:primary", "primary", BrowserLifecycleTabState, | undefined | { reason?: string; tabId?: string; transport?: string; }>core/session/types.ts:258
tab:secondaryreadonlyBrowserLifecycleEvent<"tab:secondary", "secondary", BrowserLifecycleTabState, | undefined | { reason?: string; tabId?: string; transport?: string; }>core/session/types.ts:264
tab:messagereadonlyBrowserLifecycleEvent<"tab:message", "message", undefined, | undefined | { messageType: string; senderId: string; value?: string; }>core/session/types.ts:270
window:blurreadonlyBrowserLifecycleEvent<"window:blur", "unfocused", BrowserLifecycleAttentionState>core/session/types.ts:281
window:focusreadonlyBrowserLifecycleEvent<"window:focus", "focused", BrowserLifecycleAttentionState>core/session/types.ts:286

BrowserLifecycle

Defined in: core/session/types.ts:311

Public BrowserLifecycle runtime contract.

Methods

dispose()
ts
dispose(): void;

Defined in: core/session/types.ts:312

Returns

void

getCapabilities()
ts
getCapabilities(): Readonly<BrowserLifecycleCapabilities>;

Defined in: core/session/types.ts:313

Returns

Readonly<BrowserLifecycleCapabilities>

getPluginHookLog()
ts
getPluginHookLog(): readonly BrowserLifecyclePluginHookLogEntry[];

Defined in: core/session/types.ts:314

Returns

readonly BrowserLifecyclePluginHookLogEntry[]

getPlugins()
ts
getPlugins(): readonly BrowserLifecyclePluginDiagnostic[];

Defined in: core/session/types.ts:315

Returns

readonly BrowserLifecyclePluginDiagnostic[]

getRuntimeDiagnostics()
ts
getRuntimeDiagnostics(): BrowserLifecycleRuntimeDiagnostics;

Defined in: core/session/types.ts:316

Returns

BrowserLifecycleRuntimeDiagnostics

getSnapshot()
ts
getSnapshot(): Readonly<BrowserLifecycleSnapshot>;

Defined in: core/session/types.ts:317

Returns

Readonly<BrowserLifecycleSnapshot>

isRunning()
ts
isRunning(): boolean;

Defined in: core/session/types.ts:318

Returns

boolean

off()
ts
off<TEventName>(event: TEventName, listener: BrowserLifecycleEventListener<TEventName>): void;

Defined in: core/session/types.ts:319

Type Parameters
Type Parameter
TEventName extends BrowserLifecycleEventName
Parameters
ParameterType
eventTEventName
listenerBrowserLifecycleEventListener<TEventName>
Returns

void

on()
ts
on<TEventName>(event: TEventName, listener: BrowserLifecycleEventListener<TEventName>): () => void;

Defined in: core/session/types.ts:323

Type Parameters
Type Parameter
TEventName extends BrowserLifecycleEventName
Parameters
ParameterType
eventTEventName
listenerBrowserLifecycleEventListener<TEventName>
Returns
ts
(): void;
Returns

void

once()
ts
once<TEventName>(event: TEventName, listener: BrowserLifecycleEventListener<TEventName>): () => void;

Defined in: core/session/types.ts:327

Type Parameters
Type Parameter
TEventName extends BrowserLifecycleEventName
Parameters
ParameterType
eventTEventName
listenerBrowserLifecycleEventListener<TEventName>
Returns
ts
(): void;
Returns

void

setPluginEnabled()
ts
setPluginEnabled(pluginId: string, enabled: boolean): void;

Defined in: core/session/types.ts:331

Parameters
ParameterType
pluginIdstring
enabledboolean
Returns

void

start()
ts
start(): void;

Defined in: core/session/types.ts:332

Returns

void

stop()
ts
stop(): void;

Defined in: core/session/types.ts:333

Returns

void

subscribe()
ts
subscribe(listener: BrowserLifecycleSubscriber): () => void;

Defined in: core/session/types.ts:334

Parameters
ParameterType
listenerBrowserLifecycleSubscriber
Returns
ts
(): void;
Returns

void

use()
ts
use(plugin: BrowserLifecyclePlugin): void;

Defined in: core/session/types.ts:335

Parameters
ParameterType
pluginBrowserLifecyclePlugin
Returns

void


BrowserLifecycleEventStat

Defined in: diagnostics/types.ts:7

Per-event dispatch statistics exposed for diagnostics tooling.

Properties

PropertyModifierTypeDefined in
emissionCountreadonlynumberdiagnostics/types.ts:8
errorCountreadonlynumberdiagnostics/types.ts:9
eventreadonlyBrowserLifecycleEventNamediagnostics/types.ts:10
lastDispatchedAt?readonlynumberdiagnostics/types.ts:11
listenerCountreadonlynumberdiagnostics/types.ts:12

BrowserLifecycleRuntimeDiagnostics

Defined in: diagnostics/types.ts:18

Runtime diagnostics snapshot for performance and developer tooling.

Properties

PropertyModifierTypeDefined in
capabilitiesreadonlyReadonly<BrowserLifecycleCapabilities>diagnostics/types.ts:19
debugreadonlybooleandiagnostics/types.ts:20
eventBufferSizereadonlynumberdiagnostics/types.ts:21
eventStatsreadonlyreadonly BrowserLifecycleEventStat[]diagnostics/types.ts:22
isRunningreadonlybooleandiagnostics/types.ts:23
moduleCountreadonlynumberdiagnostics/types.ts:24
phasereadonlyBrowserLifecyclePhasediagnostics/types.ts:25
pluginCountreadonlynumberdiagnostics/types.ts:26
subscriberCountreadonlynumberdiagnostics/types.ts:27
totalEmissionCountreadonlynumberdiagnostics/types.ts:28
totalListenerCountreadonlynumberdiagnostics/types.ts:29

EventDefinition<TEventName>

Defined in: events/types.ts:28

Event definition metadata stored by the internal registry.

Type Parameters

Type ParameterDefault type
TEventName extends stringstring

Properties

PropertyModifierTypeDefined in
description?readonlystringevents/types.ts:29
experimental?readonlybooleanevents/types.ts:30
internal?readonlybooleanevents/types.ts:31
namereadonlyTEventNameevents/types.ts:32
public?readonlybooleanevents/types.ts:33

EventDispatchMetadata<TEventName>

Defined in: events/types.ts:39

Dispatch metadata created for each emission.

Type Parameters

Type ParameterDefault type
TEventName extends stringstring

Properties

PropertyModifierTypeDefined in
dispatchIdreadonlynumberevents/types.ts:40
internalreadonlyundefined | Readonly<Record<string, unknown>>events/types.ts:41
listenerCountreadonlynumberevents/types.ts:42
sourcereadonlystringevents/types.ts:43
timestampreadonlynumberevents/types.ts:44
typereadonlyTEventNameevents/types.ts:45

EventSubscription<TEventName>

Defined in: events/types.ts:59

Cleanup handle returned by subscription methods.

Type Parameters

Type ParameterDefault type
TEventName extends stringstring

Properties

PropertyModifierTypeDefined in
activereadonlybooleanevents/types.ts:60
eventreadonlyTEventNameevents/types.ts:61

Methods

unsubscribe()
ts
unsubscribe(): void;

Defined in: events/types.ts:62

Returns

void


EventDispatchContext<TEventMap, TEventName>

Defined in: events/types.ts:68

Internal dispatch context passed to error handlers.

Type Parameters

Type Parameter
TEventMap extends EventMap
TEventName extends EventName<TEventMap>

Properties

PropertyModifierTypeDefined in
metadatareadonlyEventDispatchMetadata<TEventName>events/types.ts:72
payloadreadonlyEventPayload<TEventMap, TEventName>events/types.ts:73

EmitEventOptions

Defined in: events/types.ts:87

Public emit options for metadata creation.

Properties

PropertyModifierTypeDefined in
internal?readonlyReadonly<Record<string, unknown>>events/types.ts:88
source?readonlystringevents/types.ts:89

EventRegistryStats<TEventName>

Defined in: events/types.ts:95

Statistics tracked by the internal event registry.

Type Parameters

Type ParameterDefault type
TEventName extends stringstring

Properties

PropertyModifierTypeDefined in
definitionreadonlyundefined | EventDefinition<TEventName>events/types.ts:96
emissionCountreadonlynumberevents/types.ts:97
errorCountreadonlynumberevents/types.ts:98
lastDispatchedAtreadonlyundefined | numberevents/types.ts:99
lastDispatchSourcereadonlyundefined | stringevents/types.ts:100
listenerCountreadonlynumberevents/types.ts:101

TypedEventEmitterOptions<TEventMap>

Defined in: events/types.ts:107

Constructor options for the typed event emitter.

Type Parameters

Type Parameter
TEventMap extends EventMap

Properties

PropertyModifierTypeDefined in
definitions?readonlyreadonly EventDefinition<Extract<keyof TEventMap, string>>[]events/types.ts:108
onListenerError?readonlyEventListenerErrorHandler<TEventMap>events/types.ts:109
timeProvider?readonly() => numberevents/types.ts:110

BrowserLifecyclePluginLifecycleTransition

Defined in: plugins/types.ts:27

Recorded plugin lifecycle transition for diagnostics.

Properties

PropertyModifierTypeDefined in
durationMs?readonlynumberplugins/types.ts:28
fromreadonly| undefined | BrowserLifecyclePluginPhaseplugins/types.ts:29
timestampreadonlynumberplugins/types.ts:30
toreadonlyBrowserLifecyclePluginPhaseplugins/types.ts:31

BrowserLifecyclePluginDiagnostic

Defined in: plugins/types.ts:37

Diagnostic snapshot for one registered plugin.

Properties

PropertyModifierTypeDefined in
author?readonlystringplugins/types.ts:38
dependenciesreadonlyreadonly string[]plugins/types.ts:39
description?readonlystringplugins/types.ts:40
enabledreadonlybooleanplugins/types.ts:41
hookCountreadonlynumberplugins/types.ts:42
idreadonlystringplugins/types.ts:43
lifecyclereadonlyBrowserLifecyclePluginPhaseplugins/types.ts:44
loadedAt?readonlynumberplugins/types.ts:45
name?readonlystringplugins/types.ts:46
previousLifecycle?readonlyBrowserLifecyclePluginPhaseplugins/types.ts:47
priorityreadonlynumberplugins/types.ts:48
registeredAtreadonlynumberplugins/types.ts:49
registrationOrderreadonlynumberplugins/types.ts:50
transitionCountreadonlynumberplugins/types.ts:51
transitionsreadonlyreadonly BrowserLifecyclePluginLifecycleTransition[]plugins/types.ts:52
version?readonlystringplugins/types.ts:53

BrowserLifecyclePluginHookLogEntry

Defined in: plugins/types.ts:59

Recorded plugin hook execution for debugging and playground tooling.

Properties

PropertyModifierTypeDefined in
durationMsreadonlynumberplugins/types.ts:60
eventType?readonlyBrowserLifecycleEventNameplugins/types.ts:61
hookreadonlyBrowserLifecyclePluginHookNameplugins/types.ts:62
idreadonlystringplugins/types.ts:63
pluginIdreadonlystringplugins/types.ts:64
sourcereadonly"plugin-runtime"plugins/types.ts:65
timestampreadonlynumberplugins/types.ts:66

BrowserFeatureEnvironment

Defined in: types/index.ts:42

Minimal feature-detection environment used to keep capability checks SSR-safe and testable.

Properties

PropertyModifierTypeDefined in
AbortController?readonlyunknowntypes/index.ts:43
BroadcastChannel?readonlyunknowntypes/index.ts:44
document?readonlyRecord<string, unknown> & { hasFocus?: () => boolean; hidden?: boolean; visibilityState?: string; }types/index.ts:45
navigator?readonlyRecord<string, unknown> & { onLine?: boolean; }types/index.ts:52
requestIdleCallback?readonlyunknowntypes/index.ts:57
window?readonlyRecord<string, unknown> & { addEventListener?: void; removeEventListener?: void; }types/index.ts:58

BrowserLifecycleCapabilities

Defined in: types/index.ts:75

Public capability snapshot returned by infrastructure feature detection.

Properties

PropertyModifierTypeDefined in
abortControllerreadonlybooleantypes/index.ts:76
broadcastChannelreadonlybooleantypes/index.ts:77
connectivityreadonlybooleantypes/index.ts:78
focusreadonlybooleantypes/index.ts:79
idlereadonlybooleantypes/index.ts:80
pageLifecyclereadonlybooleantypes/index.ts:81
requestIdleCallbackreadonlybooleantypes/index.ts:82
visibilityreadonlybooleantypes/index.ts:83

BrowserLifecyclePlugin

Defined in: types/index.ts:89

Plugin contract executed by the Session Core plugin runtime.

Properties

PropertyModifierTypeDefined in
author?readonlystringtypes/index.ts:90
dependencies?readonlyreadonly string[]types/index.ts:91
description?readonlystringtypes/index.ts:92
enabled?readonlybooleantypes/index.ts:93
idreadonlystringtypes/index.ts:94
name?readonlystringtypes/index.ts:95
onDestroy?readonly(context: BrowserLifecyclePluginRuntimeContext) => voidtypes/index.ts:96
onEvent?readonly(event: BrowserLifecycleEventName, payload: unknown) => voidtypes/index.ts:97
onRegister?readonly(context: BrowserLifecyclePluginRuntimeContext) => voidtypes/index.ts:102
onStart?readonly(context: BrowserLifecyclePluginRuntimeContext) => voidtypes/index.ts:103
onStop?readonly(context: BrowserLifecyclePluginRuntimeContext) => voidtypes/index.ts:104
priority?readonlynumbertypes/index.ts:105
version?readonlystringtypes/index.ts:106

BrowserLifecyclePluginRuntimeContext

Defined in: types/index.ts:112

Read-only context passed to plugin lifecycle hooks.

Properties

PropertyModifierTypeDefined in
capabilitiesreadonlyBrowserLifecycleCapabilitiestypes/index.ts:113
configurationreadonlyResolvedBrowserLifecycleConfigtypes/index.ts:114
getSnapshotreadonly() => Readonly<BrowserLifecycleSnapshot>types/index.ts:116

BrowserLifecycleCrossTabConfigInput

Defined in: types/index.ts:122

Optional cross-tab configuration overrides.

Properties

PropertyModifierTypeDefined in
channelName?readonlystringtypes/index.ts:123
heartbeatInterval?readonlynumbertypes/index.ts:124
leaderTimeout?readonlynumbertypes/index.ts:125

BrowserLifecycleCrossTabConfig

Defined in: types/index.ts:131

Resolved cross-tab configuration used internally after validation.

Properties

PropertyModifierTypeDefined in
channelNamereadonlystringtypes/index.ts:132
enabledreadonlybooleantypes/index.ts:133
heartbeatIntervalreadonlynumbertypes/index.ts:134
leaderTimeoutreadonlynumbertypes/index.ts:135

BrowserLifecycleConfig

Defined in: types/index.ts:141

Public configuration accepted by the package during the core infrastructure phase.

Properties

PropertyModifierTypeDefined in
activityDebounce?readonlynumbertypes/index.ts:142
activityEvents?readonly| "default" | readonly BrowserLifecycleActivityEventName[]types/index.ts:143
autoStart?readonlybooleantypes/index.ts:144
crossTab?readonly| boolean | BrowserLifecycleCrossTabConfigInputtypes/index.ts:145
debug?readonlybooleantypes/index.ts:146
emitInitialState?readonlybooleantypes/index.ts:147
eventBufferSize?readonlynumbertypes/index.ts:148
idleTimeout?readonlynumber | falsetypes/index.ts:149
plugins?readonlyreadonly BrowserLifecyclePlugin[]types/index.ts:150

ResolvedBrowserLifecycleConfig

Defined in: types/index.ts:156

Immutable resolved configuration returned by the configuration system.

Properties

PropertyModifierTypeDefined in
activityDebouncereadonlynumbertypes/index.ts:157
activityEventsreadonlyreadonly BrowserLifecycleActivityEventName[]types/index.ts:158
autoStartreadonlybooleantypes/index.ts:159
crossTabreadonlyBrowserLifecycleCrossTabConfigtypes/index.ts:160
debugreadonlybooleantypes/index.ts:161
emitInitialStatereadonlybooleantypes/index.ts:162
eventBufferSizereadonlynumbertypes/index.ts:163
idleTimeoutreadonlynumber | falsetypes/index.ts:164
pluginsreadonlyreadonly BrowserLifecyclePlugin[]types/index.ts:165

BrowserLifecycleValidationIssue

Defined in: types/index.ts:171

Internal validation issue shape used for detailed configuration errors.

Properties

PropertyModifierTypeDefined in
messagereadonlystringtypes/index.ts:172
pathreadonlystringtypes/index.ts:173

Type Aliases

BrowserLifecyclePhase

ts
type BrowserLifecyclePhase = "created" | "disposed" | "running" | "stopped";

Defined in: core/session/types.ts:19

Public lifecycle phases exposed by the Session Core.


BrowserLifecycleAttentionState

ts
type BrowserLifecycleAttentionState = "focused" | "unknown" | "unfocused";

Defined in: core/session/types.ts:29

Normalized attention state placeholder for current and future modules.


BrowserLifecycleActivityState

ts
type BrowserLifecycleActivityState = "active" | "idle" | "unknown";

Defined in: core/session/types.ts:34

Normalized activity state placeholder for current and future modules.


BrowserLifecycleConnectivityState

ts
type BrowserLifecycleConnectivityState = "offline" | "online" | "unknown";

Defined in: core/session/types.ts:39

Normalized advisory connectivity state placeholder for current and future modules.


BrowserLifecyclePageState

ts
type BrowserLifecyclePageState = 
  | "active"
  | "discarded"
  | "frozen"
  | "hidden"
  | "passive"
  | "terminated"
  | "unknown";

Defined in: core/session/types.ts:44

Normalized lifecycle state placeholder for current and future modules.


BrowserLifecycleTabState

ts
type BrowserLifecycleTabState = "primary" | "secondary" | "single" | "unknown";

Defined in: core/session/types.ts:50

Normalized tab role placeholder for current and future modules.


BrowserLifecycleEventSource

ts
type BrowserLifecycleEventSource = 
  | "activity"
  | "connectivity"
  | "focus"
  | "internal"
  | "lifecycle"
  | "plugin"
  | "transport"
  | "visibility";

Defined in: core/session/types.ts:55

Public event source categories.


BrowserLifecycleEventName

ts
type BrowserLifecycleEventName = 
  | "activity:detected"
  | "activity:reset"
  | "connection:offline"
  | "connection:online"
  | "connection:reconnect"
  | "page:hidden"
  | "page:resume"
  | "page:suspend"
  | "page:visible"
  | "plugin:error"
  | "plugin:registered"
  | "plugin:removed"
  | "session:active"
  | "session:idle"
  | "session:restored"
  | "session:started"
  | "session:stopped"
  | "tab:primary"
  | "tab:secondary"
  | "tab:message"
  | "window:blur"
  | "window:focus";

Defined in: core/session/types.ts:109

Public event names reserved by Browser Lifecycle Manager.


BrowserLifecycleEventListener()<TEventName>

ts
type BrowserLifecycleEventListener<TEventName> = (event: DeepReadonly<BrowserLifecycleEventMap[TEventName]>) => void;

Defined in: core/session/types.ts:296

Named event listener used by the public BrowserLifecycle object.

Type Parameters

Type Parameter
TEventName extends BrowserLifecycleEventName

Parameters

ParameterType
eventDeepReadonly<BrowserLifecycleEventMap[TEventName]>

Returns

void


BrowserLifecycleSubscriber()

ts
type BrowserLifecycleSubscriber = (event: DeepReadonly<BrowserLifecycleEventMap[BrowserLifecycleEventName]>, snapshot: DeepReadonly<BrowserLifecycleSnapshot>) => void;

Defined in: core/session/types.ts:303

Full event feed subscriber used for logging and adapter layers.

Parameters

ParameterType
eventDeepReadonly<BrowserLifecycleEventMap[BrowserLifecycleEventName]>
snapshotDeepReadonly<BrowserLifecycleSnapshot>

Returns

void


EventMap

ts
type EventMap = object;

Defined in: events/types.ts:5

Generic event map used by the typed event infrastructure.


EventName<TEventMap>

ts
type EventName<TEventMap> = Extract<keyof TEventMap, string>;

Defined in: events/types.ts:10

Valid event names for a given event map.

Type Parameters

Type Parameter
TEventMap extends EventMap

EventPayload<TEventMap, TEventName>

ts
type EventPayload<TEventMap, TEventName> = TEventMap[TEventName];

Defined in: events/types.ts:15

Payload type associated with an event name.

Type Parameters

Type Parameter
TEventMap extends EventMap
TEventName extends EventName<TEventMap>

EventInternalMetadata

ts
type EventInternalMetadata = Readonly<Record<string, unknown>>;

Defined in: events/types.ts:23

Internal metadata bag reserved for diagnostics and future instrumentation.


EventListener()<TEventMap, TEventName>

ts
type EventListener<TEventMap, TEventName> = (payload: EventPayload<TEventMap, TEventName>, metadata: EventDispatchMetadata<TEventName>) => void;

Defined in: events/types.ts:51

Listener signature used throughout the infrastructure.

Type Parameters

Type Parameter
TEventMap extends EventMap
TEventName extends EventName<TEventMap>

Parameters

ParameterType
payloadEventPayload<TEventMap, TEventName>
metadataEventDispatchMetadata<TEventName>

Returns

void


EventListenerErrorHandler()<TEventMap>

ts
type EventListenerErrorHandler<TEventMap> = (error: unknown, context: EventDispatchContext<TEventMap, EventName<TEventMap>>) => void;

Defined in: events/types.ts:79

Error handler used to isolate listener failures.

Type Parameters

Type Parameter
TEventMap extends EventMap

Parameters

ParameterType
errorunknown
contextEventDispatchContext<TEventMap, EventName<TEventMap>>

Returns

void


BrowserLifecyclePluginPhase

ts
type BrowserLifecyclePluginPhase = 
  | "registered"
  | "initialized"
  | "started"
  | "running"
  | "stopped"
  | "destroyed";

Defined in: plugins/types.ts:10

Lifecycle phases tracked for each registered plugin.


BrowserLifecyclePluginHookName

ts
type BrowserLifecyclePluginHookName = "onDestroy" | "onEvent" | "onRegister" | "onStart" | "onStop";

Defined in: plugins/types.ts:16

Supported plugin hook names executed by the Session Core plugin runtime.


BrowserLifecyclePluginContext

ts
type BrowserLifecyclePluginContext = BrowserLifecyclePluginRuntimeContext;

Defined in: plugins/types.ts:22

Read-only context passed to plugin lifecycle hooks.


BrowserLifecycleActivityEventName

ts
type BrowserLifecycleActivityEventName = 
  | "focus"
  | "keydown"
  | "mousedown"
  | "mousemove"
  | "pointerdown"
  | "pointermove"
  | "touchmove"
  | "touchstart"
  | "visibilitychange";

Defined in: types/index.ts:4

Valid activity events for idle detection inputs.


BrowserLifecycleErrorCode

ts
type BrowserLifecycleErrorCode = 
  | "configuration_error"
  | "initialization_error"
  | "lifecycle_error"
  | "module_registry_error"
  | "plugin_error"
  | "unsupported_feature_error";

Defined in: types/index.ts:18

Supported error codes for the public infrastructure surface.

Functions

createBrowserLifecycle()

ts
function createBrowserLifecycle(config: BrowserLifecycleConfig): BrowserLifecycle;

Defined in: browser-lifecycle.ts:10

Creates a BrowserLifecycle runtime instance.

Parameters

ParameterType
configBrowserLifecycleConfig

Returns

BrowserLifecycle


supportsVisibility()

ts
function supportsVisibility(environment: BrowserFeatureEnvironment): boolean;

Defined in: browser/features/index.ts:6

Returns true when the environment supports the Page Visibility API.

Parameters

ParameterType
environmentBrowserFeatureEnvironment

Returns

boolean


supportsBroadcastChannel()

ts
function supportsBroadcastChannel(environment: BrowserFeatureEnvironment): boolean;

Defined in: browser/features/index.ts:21

Returns true when the environment supports BroadcastChannel.

Parameters

ParameterType
environmentBrowserFeatureEnvironment

Returns

boolean


supportsPageLifecycle()

ts
function supportsPageLifecycle(environment: BrowserFeatureEnvironment): boolean;

Defined in: browser/features/index.ts:30

Returns true when the environment supports the pagehide and pageshow lifecycle hooks.

Parameters

ParameterType
environmentBrowserFeatureEnvironment

Returns

boolean


supportsRequestIdleCallback()

ts
function supportsRequestIdleCallback(environment: BrowserFeatureEnvironment): boolean;

Defined in: browser/features/index.ts:45

Returns true when the environment supports requestIdleCallback.

Parameters

ParameterType
environmentBrowserFeatureEnvironment

Returns

boolean


supportsIdle()

ts
function supportsIdle(environment: BrowserFeatureEnvironment): boolean;

Defined in: browser/features/index.ts:54

Returns true when the environment supports idle activity observation.

Parameters

ParameterType
environmentBrowserFeatureEnvironment

Returns

boolean


supportsConnectivity()

ts
function supportsConnectivity(environment: BrowserFeatureEnvironment): boolean;

Defined in: browser/features/index.ts:74

Returns true when the environment supports advisory connectivity observation.

Parameters

ParameterType
environmentBrowserFeatureEnvironment

Returns

boolean


supportsFocus()

ts
function supportsFocus(environment: BrowserFeatureEnvironment): boolean;

Defined in: browser/features/index.ts:94

Returns true when the environment supports window focus observation.

Parameters

ParameterType
environmentBrowserFeatureEnvironment

Returns

boolean


supportsAbortController()

ts
function supportsAbortController(environment: BrowserFeatureEnvironment): boolean;

Defined in: browser/features/index.ts:114

Returns true when the environment supports AbortController.

Parameters

ParameterType
environmentBrowserFeatureEnvironment

Returns

boolean


detectBrowserLifecycleCapabilities()

ts
function detectBrowserLifecycleCapabilities(environment: BrowserFeatureEnvironment): BrowserLifecycleCapabilities;

Defined in: browser/features/index.ts:123

Detects the package capability surface without relying on browser sniffing.

Parameters

ParameterType
environmentBrowserFeatureEnvironment

Returns

BrowserLifecycleCapabilities


getDefaultBrowserLifecycleConfig()

ts
function getDefaultBrowserLifecycleConfig(): ResolvedBrowserLifecycleConfig;

Defined in: core/config/index.ts:40

Returns an immutable copy of the default configuration.

Returns

ResolvedBrowserLifecycleConfig


validateBrowserLifecycleConfig()

ts
function validateBrowserLifecycleConfig(input: unknown): asserts input is BrowserLifecycleConfig;

Defined in: core/config/index.ts:47

Validates a potential Browser Lifecycle configuration object.

Parameters

ParameterType
inputunknown

Returns

asserts input is BrowserLifecycleConfig


createBrowserLifecycleConfig()

ts
function createBrowserLifecycleConfig(input: BrowserLifecycleConfig): ResolvedBrowserLifecycleConfig;

Defined in: core/config/index.ts:64

Creates an immutable resolved configuration object.

Parameters

ParameterType
inputBrowserLifecycleConfig

Returns

ResolvedBrowserLifecycleConfig


mergeBrowserLifecycleConfig()

ts
function mergeBrowserLifecycleConfig(base: BrowserLifecycleConfig, override: BrowserLifecycleConfig): ResolvedBrowserLifecycleConfig;

Defined in: core/config/index.ts:342

Creates an immutable configuration object by layering overrides on top of a base config.

Parameters

ParameterType
baseBrowserLifecycleConfig
overrideBrowserLifecycleConfig

Returns

ResolvedBrowserLifecycleConfig


getPluginIds()

ts
function getPluginIds(config: ResolvedBrowserLifecycleConfig): readonly string[];

Defined in: core/config/index.ts:360

Returns a readonly copy of plugin ids for diagnostics and tests.

Parameters

ParameterType
configResolvedBrowserLifecycleConfig

Returns

readonly string[]


assert()

ts
function assert(condition: unknown, message: string): asserts condition;

Defined in: utils/index.ts:6

Asserts that a condition is truthy.

Parameters

ParameterType
conditionunknown
messagestring

Returns

asserts condition


noop()

ts
function noop(): void;

Defined in: utils/index.ts:15

No-op helper for optional callback defaults.

Returns

void


isBrowser()

ts
function isBrowser(): boolean;

Defined in: utils/index.ts:20

Returns true when the current runtime looks like a browser environment.

Returns

boolean


isFunction()

ts
function isFunction(value: unknown): value is (args: readonly unknown[]) => unknown;

Defined in: utils/index.ts:29

Returns true when a value is callable.

Parameters

ParameterType
valueunknown

Returns

value is (args: readonly unknown[]) => unknown


isObject()

ts
function isObject(value: unknown): value is PlainObject;

Defined in: utils/index.ts:36

Returns true when a value is a non-null object.

Parameters

ParameterType
valueunknown

Returns

value is PlainObject


deepFreeze()

ts
function deepFreeze<TValue>(value: TValue): DeepReadonly<TValue>;

Defined in: utils/index.ts:43

Deeply freezes an object tree and returns a readonly view.

Type Parameters

Type Parameter
TValue

Parameters

ParameterType
valueTValue

Returns

DeepReadonly<TValue>


mergeObjects()

ts
function mergeObjects<TBase, TOverride>(base: TBase, override: TOverride): TBase & TOverride;

Defined in: utils/index.ts:50

Merges two plain objects recursively while replacing arrays and scalar values.

Type Parameters

Type Parameter
TBase extends PlainObject
TOverride extends PlainObject

Parameters

ParameterType
baseTBase
overrideTOverride

Returns

TBase & TOverride

JOC is a JayOnCode monorepo of @jayoncode/* packages. Docs sync from source via TypeDoc and sync scripts.