@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
ConfigurationErrorInitializationErrorLifecycleErrorModuleRegistryErrorPluginErrorUnsupportedFeatureError
Constructors
Constructor
new BrowserLifecycleError(
message: string,
code: BrowserLifecycleErrorCode,
options: BrowserLifecycleErrorOptions): BrowserLifecycleError;Defined in: errors/index.ts:18
Parameters
| Parameter | Type |
|---|---|
message | string |
code | BrowserLifecycleErrorCode |
options | BrowserLifecycleErrorOptions |
Returns
Overrides
Error.constructorProperties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
code | readonly | BrowserLifecycleErrorCode | errors/index.ts:15 |
details | readonly | undefined | Readonly<PlainObject> | errors/index.ts:16 |
ConfigurationError
Defined in: errors/index.ts:33
Error thrown when configuration input is invalid.
Extends
Constructors
Constructor
new ConfigurationError(message: string, options: BrowserLifecycleErrorOptions): ConfigurationError;Defined in: errors/index.ts:34
Parameters
| Parameter | Type |
|---|---|
message | string |
options | BrowserLifecycleErrorOptions |
Returns
Overrides
BrowserLifecycleError.constructor
Properties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
code | readonly | BrowserLifecycleErrorCode | BrowserLifecycleError.code | errors/index.ts:15 |
details | readonly | undefined | Readonly<PlainObject> | BrowserLifecycleError.details | errors/index.ts:16 |
UnsupportedFeatureError
Defined in: errors/index.ts:43
Error thrown when a required feature is unavailable.
Extends
Constructors
Constructor
new UnsupportedFeatureError(message: string, options: BrowserLifecycleErrorOptions): UnsupportedFeatureError;Defined in: errors/index.ts:44
Parameters
| Parameter | Type |
|---|---|
message | string |
options | BrowserLifecycleErrorOptions |
Returns
Overrides
BrowserLifecycleError.constructor
Properties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
code | readonly | BrowserLifecycleErrorCode | BrowserLifecycleError.code | errors/index.ts:15 |
details | readonly | undefined | Readonly<PlainObject> | BrowserLifecycleError.details | errors/index.ts:16 |
InitializationError
Defined in: errors/index.ts:53
Error thrown when the package cannot initialize correctly.
Extends
Constructors
Constructor
new InitializationError(message: string, options: BrowserLifecycleErrorOptions): InitializationError;Defined in: errors/index.ts:54
Parameters
| Parameter | Type |
|---|---|
message | string |
options | BrowserLifecycleErrorOptions |
Returns
Overrides
BrowserLifecycleError.constructor
Properties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
code | readonly | BrowserLifecycleErrorCode | BrowserLifecycleError.code | errors/index.ts:15 |
details | readonly | undefined | Readonly<PlainObject> | BrowserLifecycleError.details | errors/index.ts:16 |
LifecycleError
Defined in: errors/index.ts:63
Error thrown when a lifecycle transition is invalid.
Extends
Constructors
Constructor
new LifecycleError(message: string, options: BrowserLifecycleErrorOptions): LifecycleError;Defined in: errors/index.ts:64
Parameters
| Parameter | Type |
|---|---|
message | string |
options | BrowserLifecycleErrorOptions |
Returns
Overrides
BrowserLifecycleError.constructor
Properties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
code | readonly | BrowserLifecycleErrorCode | BrowserLifecycleError.code | errors/index.ts:15 |
details | readonly | undefined | Readonly<PlainObject> | BrowserLifecycleError.details | errors/index.ts:16 |
ModuleRegistryError
Defined in: errors/index.ts:73
Error thrown when the module registry is used incorrectly.
Extends
Constructors
Constructor
new ModuleRegistryError(message: string, options: BrowserLifecycleErrorOptions): ModuleRegistryError;Defined in: errors/index.ts:74
Parameters
| Parameter | Type |
|---|---|
message | string |
options | BrowserLifecycleErrorOptions |
Returns
Overrides
BrowserLifecycleError.constructor
Properties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
code | readonly | BrowserLifecycleErrorCode | BrowserLifecycleError.code | errors/index.ts:15 |
details | readonly | undefined | Readonly<PlainObject> | BrowserLifecycleError.details | errors/index.ts:16 |
PluginError
Defined in: errors/index.ts:83
Placeholder plugin error used before the plugin system is implemented.
Extends
Constructors
Constructor
new PluginError(message: string, options: BrowserLifecycleErrorOptions): PluginError;Defined in: errors/index.ts:84
Parameters
| Parameter | Type |
|---|---|
message | string |
options | BrowserLifecycleErrorOptions |
Returns
Overrides
BrowserLifecycleError.constructor
Properties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
code | readonly | BrowserLifecycleErrorCode | BrowserLifecycleError.code | errors/index.ts:15 |
details | readonly | undefined | Readonly<PlainObject> | BrowserLifecycleError.details | errors/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
new TypedEventEmitter<TEventMap>(options: TypedEventEmitterOptions<TEventMap>): TypedEventEmitter<TEventMap>;Defined in: events/typed-event-emitter.ts:30
Parameters
| Parameter | Type |
|---|---|
options | TypedEventEmitterOptions<TEventMap> |
Returns
TypedEventEmitter<TEventMap>
Methods
on()
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
| Parameter | Type |
|---|---|
event | TEventName |
listener | EventListener<TEventMap, TEventName> |
Returns
EventSubscription<TEventName>
off()
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
| Parameter | Type |
|---|---|
event | TEventName |
listener | EventListener<TEventMap, TEventName> |
Returns
void
once()
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
| Parameter | Type |
|---|---|
event | TEventName |
listener | EventListener<TEventMap, TEventName> |
Returns
EventSubscription<TEventName>
emit()
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
| Parameter | Type |
|---|---|
event | TEventName |
payload | EventPayload<TEventMap, TEventName> |
options | EmitEventOptions |
Returns
EventDispatchMetadata<TEventName>
listeners()
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
| Parameter | Type |
|---|---|
event | TEventName |
Returns
readonly EventListener<TEventMap, TEventName>[]
listenerCount()
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
| Parameter | Type |
|---|---|
event? | EventName<TEventMap> |
Returns
number
hasListeners()
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
| Parameter | Type |
|---|---|
event? | EventName<TEventMap> |
Returns
boolean
removeAll()
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
| Parameter | Type |
|---|---|
event? | EventName<TEventMap> |
Returns
void
destroy()
destroy(): void;Defined in: events/typed-event-emitter.ts:137
Destroys the emitter and clears all listeners.
Returns
void
definitions()
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()
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
| Parameter | Type |
|---|---|
event | TEventName |
Returns
EventRegistryStats<TEventName>
Interfaces
PageVisibleEventMetadata
Defined in: core/session/types.ts:68
Metadata carried by page:visible events.
Extends
PlainObject
Extended by
Indexable
[key: string]: unknownProperties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
reason | readonly | "initial" | "visibilitychange" | core/session/types.ts:69 |
PageHiddenEventMetadata
Defined in: core/session/types.ts:75
Metadata carried by page:hidden events.
Extends
Indexable
[key: string]: unknownProperties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
reason | readonly | "initial" | "visibilitychange" | PageVisibleEventMetadata.reason | core/session/types.ts:69 |
likelyLastSignal | readonly | boolean | - | core/session/types.ts:76 |
BrowserLifecycleTimestamps
Defined in: core/session/types.ts:82
Timestamp metadata exposed in snapshot reads.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
createdAt | readonly | number | core/session/types.ts:83 |
disposedAt? | readonly | number | core/session/types.ts:84 |
lastEventAt? | readonly | number | core/session/types.ts:85 |
startedAt? | readonly | number | core/session/types.ts:86 |
stoppedAt? | readonly | number | core/session/types.ts:87 |
updatedAt | readonly | number | core/session/types.ts:88 |
BrowserLifecycleSnapshot
Defined in: core/session/types.ts:94
Public snapshot shape returned by the Session Core.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
activity | readonly | BrowserLifecycleActivityState | core/session/types.ts:95 |
attention | readonly | BrowserLifecycleAttentionState | core/session/types.ts:96 |
capabilities | readonly | BrowserLifecycleCapabilities | core/session/types.ts:97 |
connectivity | readonly | BrowserLifecycleConnectivityState | core/session/types.ts:98 |
lifecycle | readonly | BrowserLifecyclePageState | core/session/types.ts:99 |
phase | readonly | BrowserLifecyclePhase | core/session/types.ts:100 |
tab | readonly | BrowserLifecycleTabState | core/session/types.ts:101 |
timestamps | readonly | BrowserLifecycleTimestamps | core/session/types.ts:102 |
visibility | readonly | BrowserLifecycleVisibilityState | core/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 Parameter | Default type |
|---|---|
TType extends BrowserLifecycleEventName | - |
TCurrent | - |
TPrevious | - |
TMetadata extends PlainObject | undefined | PlainObject | undefined |
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
current | readonly | TCurrent | core/session/types.ts:142 |
metadata | readonly | TMetadata | core/session/types.ts:143 |
previous | readonly | TPrevious | core/session/types.ts:144 |
snapshot | readonly | BrowserLifecycleSnapshot | core/session/types.ts:145 |
source | readonly | BrowserLifecycleEventSource | core/session/types.ts:146 |
timestamp | readonly | number | core/session/types.ts:147 |
type | readonly | TType | core/session/types.ts:148 |
BrowserLifecycleEventMap
Defined in: core/session/types.ts:154
Public event payload map used by the Session Core event API.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
activity:detected | readonly | BrowserLifecycleEvent<"activity:detected", "active", BrowserLifecycleActivityState, | undefined | { activitySource: string; }> | core/session/types.ts:155 |
activity:reset | readonly | BrowserLifecycleEvent<"activity:reset", "active", BrowserLifecycleActivityState, | undefined | { activitySource: string; }> | core/session/types.ts:161 |
connection:offline | readonly | BrowserLifecycleEvent<"connection:offline", "offline", BrowserLifecycleConnectivityState, | undefined | { advisory: true; reason?: "offline" | "initial"; }> | core/session/types.ts:167 |
connection:online | readonly | BrowserLifecycleEvent<"connection:online", "online", BrowserLifecycleConnectivityState, | undefined | { advisory: true; reason?: "online" | "initial"; }> | core/session/types.ts:173 |
connection:reconnect | readonly | BrowserLifecycleEvent<"connection:reconnect", "online", "offline", | undefined | { advisory: true; offlineDuration: number; }> | core/session/types.ts:179 |
page:hidden | readonly | BrowserLifecycleEvent<"page:hidden", "hidden", BrowserLifecycleVisibilityState, PageHiddenEventMetadata> | core/session/types.ts:185 |
page:resume | readonly | BrowserLifecycleEvent<"page:resume", "active", BrowserLifecyclePageState> | core/session/types.ts:191 |
page:suspend | readonly | BrowserLifecycleEvent<"page:suspend", "hidden" | "frozen" | "terminated", BrowserLifecyclePageState> | core/session/types.ts:192 |
page:visible | readonly | BrowserLifecycleEvent<"page:visible", "visible", BrowserLifecycleVisibilityState, PageVisibleEventMetadata> | core/session/types.ts:197 |
plugin:error | readonly | BrowserLifecycleEvent<"plugin:error", "error", undefined | "registered" | "ready", | undefined | { hook?: string; pluginId: string; }> | core/session/types.ts:203 |
plugin:registered | readonly | BrowserLifecycleEvent<"plugin:registered", "registered", undefined, | undefined | { pluginId: string; }> | core/session/types.ts:209 |
plugin:removed | readonly | BrowserLifecycleEvent<"plugin:removed", "removed", undefined | "registered", | undefined | { pluginId: string; reason?: string; }> | core/session/types.ts:215 |
session:active | readonly | BrowserLifecycleEvent<"session:active", "active", BrowserLifecycleActivityState, | undefined | { activitySource: string; idleDuration?: number; }> | core/session/types.ts:221 |
session:idle | readonly | BrowserLifecycleEvent<"session:idle", "idle", BrowserLifecycleActivityState, | undefined | { idleTimeout: number; lastActivityAt: number; }> | core/session/types.ts:231 |
session:restored | readonly | BrowserLifecycleEvent<"session:restored", "running" | "stopped", BrowserLifecyclePhase> | core/session/types.ts:241 |
session:started | readonly | BrowserLifecycleEvent<"session:started", "running", BrowserLifecyclePhase, | undefined | { autoStart: boolean; }> | core/session/types.ts:246 |
session:stopped | readonly | BrowserLifecycleEvent<"session:stopped", "stopped", BrowserLifecyclePhase, | undefined | { reason: "dispose" | "manual-stop"; }> | core/session/types.ts:252 |
tab:primary | readonly | BrowserLifecycleEvent<"tab:primary", "primary", BrowserLifecycleTabState, | undefined | { reason?: string; tabId?: string; transport?: string; }> | core/session/types.ts:258 |
tab:secondary | readonly | BrowserLifecycleEvent<"tab:secondary", "secondary", BrowserLifecycleTabState, | undefined | { reason?: string; tabId?: string; transport?: string; }> | core/session/types.ts:264 |
tab:message | readonly | BrowserLifecycleEvent<"tab:message", "message", undefined, | undefined | { messageType: string; senderId: string; value?: string; }> | core/session/types.ts:270 |
window:blur | readonly | BrowserLifecycleEvent<"window:blur", "unfocused", BrowserLifecycleAttentionState> | core/session/types.ts:281 |
window:focus | readonly | BrowserLifecycleEvent<"window:focus", "focused", BrowserLifecycleAttentionState> | core/session/types.ts:286 |
BrowserLifecycle
Defined in: core/session/types.ts:311
Public BrowserLifecycle runtime contract.
Methods
dispose()
dispose(): void;Defined in: core/session/types.ts:312
Returns
void
getCapabilities()
getCapabilities(): Readonly<BrowserLifecycleCapabilities>;Defined in: core/session/types.ts:313
Returns
Readonly<BrowserLifecycleCapabilities>
getPluginHookLog()
getPluginHookLog(): readonly BrowserLifecyclePluginHookLogEntry[];Defined in: core/session/types.ts:314
Returns
readonly BrowserLifecyclePluginHookLogEntry[]
getPlugins()
getPlugins(): readonly BrowserLifecyclePluginDiagnostic[];Defined in: core/session/types.ts:315
Returns
readonly BrowserLifecyclePluginDiagnostic[]
getRuntimeDiagnostics()
getRuntimeDiagnostics(): BrowserLifecycleRuntimeDiagnostics;Defined in: core/session/types.ts:316
Returns
BrowserLifecycleRuntimeDiagnostics
getSnapshot()
getSnapshot(): Readonly<BrowserLifecycleSnapshot>;Defined in: core/session/types.ts:317
Returns
Readonly<BrowserLifecycleSnapshot>
isRunning()
isRunning(): boolean;Defined in: core/session/types.ts:318
Returns
boolean
off()
off<TEventName>(event: TEventName, listener: BrowserLifecycleEventListener<TEventName>): void;Defined in: core/session/types.ts:319
Type Parameters
| Type Parameter |
|---|
TEventName extends BrowserLifecycleEventName |
Parameters
| Parameter | Type |
|---|---|
event | TEventName |
listener | BrowserLifecycleEventListener<TEventName> |
Returns
void
on()
on<TEventName>(event: TEventName, listener: BrowserLifecycleEventListener<TEventName>): () => void;Defined in: core/session/types.ts:323
Type Parameters
| Type Parameter |
|---|
TEventName extends BrowserLifecycleEventName |
Parameters
| Parameter | Type |
|---|---|
event | TEventName |
listener | BrowserLifecycleEventListener<TEventName> |
Returns
(): void;Returns
void
once()
once<TEventName>(event: TEventName, listener: BrowserLifecycleEventListener<TEventName>): () => void;Defined in: core/session/types.ts:327
Type Parameters
| Type Parameter |
|---|
TEventName extends BrowserLifecycleEventName |
Parameters
| Parameter | Type |
|---|---|
event | TEventName |
listener | BrowserLifecycleEventListener<TEventName> |
Returns
(): void;Returns
void
setPluginEnabled()
setPluginEnabled(pluginId: string, enabled: boolean): void;Defined in: core/session/types.ts:331
Parameters
| Parameter | Type |
|---|---|
pluginId | string |
enabled | boolean |
Returns
void
start()
start(): void;Defined in: core/session/types.ts:332
Returns
void
stop()
stop(): void;Defined in: core/session/types.ts:333
Returns
void
subscribe()
subscribe(listener: BrowserLifecycleSubscriber): () => void;Defined in: core/session/types.ts:334
Parameters
| Parameter | Type |
|---|---|
listener | BrowserLifecycleSubscriber |
Returns
(): void;Returns
void
use()
use(plugin: BrowserLifecyclePlugin): void;Defined in: core/session/types.ts:335
Parameters
| Parameter | Type |
|---|---|
plugin | BrowserLifecyclePlugin |
Returns
void
BrowserLifecycleEventStat
Defined in: diagnostics/types.ts:7
Per-event dispatch statistics exposed for diagnostics tooling.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
emissionCount | readonly | number | diagnostics/types.ts:8 |
errorCount | readonly | number | diagnostics/types.ts:9 |
event | readonly | BrowserLifecycleEventName | diagnostics/types.ts:10 |
lastDispatchedAt? | readonly | number | diagnostics/types.ts:11 |
listenerCount | readonly | number | diagnostics/types.ts:12 |
BrowserLifecycleRuntimeDiagnostics
Defined in: diagnostics/types.ts:18
Runtime diagnostics snapshot for performance and developer tooling.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
capabilities | readonly | Readonly<BrowserLifecycleCapabilities> | diagnostics/types.ts:19 |
debug | readonly | boolean | diagnostics/types.ts:20 |
eventBufferSize | readonly | number | diagnostics/types.ts:21 |
eventStats | readonly | readonly BrowserLifecycleEventStat[] | diagnostics/types.ts:22 |
isRunning | readonly | boolean | diagnostics/types.ts:23 |
moduleCount | readonly | number | diagnostics/types.ts:24 |
phase | readonly | BrowserLifecyclePhase | diagnostics/types.ts:25 |
pluginCount | readonly | number | diagnostics/types.ts:26 |
subscriberCount | readonly | number | diagnostics/types.ts:27 |
totalEmissionCount | readonly | number | diagnostics/types.ts:28 |
totalListenerCount | readonly | number | diagnostics/types.ts:29 |
EventDefinition<TEventName>
Defined in: events/types.ts:28
Event definition metadata stored by the internal registry.
Type Parameters
| Type Parameter | Default type |
|---|---|
TEventName extends string | string |
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
description? | readonly | string | events/types.ts:29 |
experimental? | readonly | boolean | events/types.ts:30 |
internal? | readonly | boolean | events/types.ts:31 |
name | readonly | TEventName | events/types.ts:32 |
public? | readonly | boolean | events/types.ts:33 |
EventDispatchMetadata<TEventName>
Defined in: events/types.ts:39
Dispatch metadata created for each emission.
Type Parameters
| Type Parameter | Default type |
|---|---|
TEventName extends string | string |
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
dispatchId | readonly | number | events/types.ts:40 |
internal | readonly | undefined | Readonly<Record<string, unknown>> | events/types.ts:41 |
listenerCount | readonly | number | events/types.ts:42 |
source | readonly | string | events/types.ts:43 |
timestamp | readonly | number | events/types.ts:44 |
type | readonly | TEventName | events/types.ts:45 |
EventSubscription<TEventName>
Defined in: events/types.ts:59
Cleanup handle returned by subscription methods.
Type Parameters
| Type Parameter | Default type |
|---|---|
TEventName extends string | string |
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
active | readonly | boolean | events/types.ts:60 |
event | readonly | TEventName | events/types.ts:61 |
Methods
unsubscribe()
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
| Property | Modifier | Type | Defined in |
|---|---|---|---|
metadata | readonly | EventDispatchMetadata<TEventName> | events/types.ts:72 |
payload | readonly | EventPayload<TEventMap, TEventName> | events/types.ts:73 |
EmitEventOptions
Defined in: events/types.ts:87
Public emit options for metadata creation.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
internal? | readonly | Readonly<Record<string, unknown>> | events/types.ts:88 |
source? | readonly | string | events/types.ts:89 |
EventRegistryStats<TEventName>
Defined in: events/types.ts:95
Statistics tracked by the internal event registry.
Type Parameters
| Type Parameter | Default type |
|---|---|
TEventName extends string | string |
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
definition | readonly | undefined | EventDefinition<TEventName> | events/types.ts:96 |
emissionCount | readonly | number | events/types.ts:97 |
errorCount | readonly | number | events/types.ts:98 |
lastDispatchedAt | readonly | undefined | number | events/types.ts:99 |
lastDispatchSource | readonly | undefined | string | events/types.ts:100 |
listenerCount | readonly | number | events/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
| Property | Modifier | Type | Defined in |
|---|---|---|---|
definitions? | readonly | readonly EventDefinition<Extract<keyof TEventMap, string>>[] | events/types.ts:108 |
onListenerError? | readonly | EventListenerErrorHandler<TEventMap> | events/types.ts:109 |
timeProvider? | readonly | () => number | events/types.ts:110 |
BrowserLifecyclePluginLifecycleTransition
Defined in: plugins/types.ts:27
Recorded plugin lifecycle transition for diagnostics.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
durationMs? | readonly | number | plugins/types.ts:28 |
from | readonly | | undefined | BrowserLifecyclePluginPhase | plugins/types.ts:29 |
timestamp | readonly | number | plugins/types.ts:30 |
to | readonly | BrowserLifecyclePluginPhase | plugins/types.ts:31 |
BrowserLifecyclePluginDiagnostic
Defined in: plugins/types.ts:37
Diagnostic snapshot for one registered plugin.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
author? | readonly | string | plugins/types.ts:38 |
dependencies | readonly | readonly string[] | plugins/types.ts:39 |
description? | readonly | string | plugins/types.ts:40 |
enabled | readonly | boolean | plugins/types.ts:41 |
hookCount | readonly | number | plugins/types.ts:42 |
id | readonly | string | plugins/types.ts:43 |
lifecycle | readonly | BrowserLifecyclePluginPhase | plugins/types.ts:44 |
loadedAt? | readonly | number | plugins/types.ts:45 |
name? | readonly | string | plugins/types.ts:46 |
previousLifecycle? | readonly | BrowserLifecyclePluginPhase | plugins/types.ts:47 |
priority | readonly | number | plugins/types.ts:48 |
registeredAt | readonly | number | plugins/types.ts:49 |
registrationOrder | readonly | number | plugins/types.ts:50 |
transitionCount | readonly | number | plugins/types.ts:51 |
transitions | readonly | readonly BrowserLifecyclePluginLifecycleTransition[] | plugins/types.ts:52 |
version? | readonly | string | plugins/types.ts:53 |
BrowserLifecyclePluginHookLogEntry
Defined in: plugins/types.ts:59
Recorded plugin hook execution for debugging and playground tooling.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
durationMs | readonly | number | plugins/types.ts:60 |
eventType? | readonly | BrowserLifecycleEventName | plugins/types.ts:61 |
hook | readonly | BrowserLifecyclePluginHookName | plugins/types.ts:62 |
id | readonly | string | plugins/types.ts:63 |
pluginId | readonly | string | plugins/types.ts:64 |
source | readonly | "plugin-runtime" | plugins/types.ts:65 |
timestamp | readonly | number | plugins/types.ts:66 |
BrowserFeatureEnvironment
Defined in: types/index.ts:42
Minimal feature-detection environment used to keep capability checks SSR-safe and testable.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
AbortController? | readonly | unknown | types/index.ts:43 |
BroadcastChannel? | readonly | unknown | types/index.ts:44 |
document? | readonly | Record<string, unknown> & { hasFocus?: () => boolean; hidden?: boolean; visibilityState?: string; } | types/index.ts:45 |
navigator? | readonly | Record<string, unknown> & { onLine?: boolean; } | types/index.ts:52 |
requestIdleCallback? | readonly | unknown | types/index.ts:57 |
window? | readonly | Record<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
| Property | Modifier | Type | Defined in |
|---|---|---|---|
abortController | readonly | boolean | types/index.ts:76 |
broadcastChannel | readonly | boolean | types/index.ts:77 |
connectivity | readonly | boolean | types/index.ts:78 |
focus | readonly | boolean | types/index.ts:79 |
idle | readonly | boolean | types/index.ts:80 |
pageLifecycle | readonly | boolean | types/index.ts:81 |
requestIdleCallback | readonly | boolean | types/index.ts:82 |
visibility | readonly | boolean | types/index.ts:83 |
BrowserLifecyclePlugin
Defined in: types/index.ts:89
Plugin contract executed by the Session Core plugin runtime.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
author? | readonly | string | types/index.ts:90 |
dependencies? | readonly | readonly string[] | types/index.ts:91 |
description? | readonly | string | types/index.ts:92 |
enabled? | readonly | boolean | types/index.ts:93 |
id | readonly | string | types/index.ts:94 |
name? | readonly | string | types/index.ts:95 |
onDestroy? | readonly | (context: BrowserLifecyclePluginRuntimeContext) => void | types/index.ts:96 |
onEvent? | readonly | (event: BrowserLifecycleEventName, payload: unknown) => void | types/index.ts:97 |
onRegister? | readonly | (context: BrowserLifecyclePluginRuntimeContext) => void | types/index.ts:102 |
onStart? | readonly | (context: BrowserLifecyclePluginRuntimeContext) => void | types/index.ts:103 |
onStop? | readonly | (context: BrowserLifecyclePluginRuntimeContext) => void | types/index.ts:104 |
priority? | readonly | number | types/index.ts:105 |
version? | readonly | string | types/index.ts:106 |
BrowserLifecyclePluginRuntimeContext
Defined in: types/index.ts:112
Read-only context passed to plugin lifecycle hooks.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
capabilities | readonly | BrowserLifecycleCapabilities | types/index.ts:113 |
configuration | readonly | ResolvedBrowserLifecycleConfig | types/index.ts:114 |
getSnapshot | readonly | () => Readonly<BrowserLifecycleSnapshot> | types/index.ts:116 |
BrowserLifecycleCrossTabConfigInput
Defined in: types/index.ts:122
Optional cross-tab configuration overrides.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
channelName? | readonly | string | types/index.ts:123 |
heartbeatInterval? | readonly | number | types/index.ts:124 |
leaderTimeout? | readonly | number | types/index.ts:125 |
BrowserLifecycleCrossTabConfig
Defined in: types/index.ts:131
Resolved cross-tab configuration used internally after validation.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
channelName | readonly | string | types/index.ts:132 |
enabled | readonly | boolean | types/index.ts:133 |
heartbeatInterval | readonly | number | types/index.ts:134 |
leaderTimeout | readonly | number | types/index.ts:135 |
BrowserLifecycleConfig
Defined in: types/index.ts:141
Public configuration accepted by the package during the core infrastructure phase.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
activityDebounce? | readonly | number | types/index.ts:142 |
activityEvents? | readonly | | "default" | readonly BrowserLifecycleActivityEventName[] | types/index.ts:143 |
autoStart? | readonly | boolean | types/index.ts:144 |
crossTab? | readonly | | boolean | BrowserLifecycleCrossTabConfigInput | types/index.ts:145 |
debug? | readonly | boolean | types/index.ts:146 |
emitInitialState? | readonly | boolean | types/index.ts:147 |
eventBufferSize? | readonly | number | types/index.ts:148 |
idleTimeout? | readonly | number | false | types/index.ts:149 |
plugins? | readonly | readonly BrowserLifecyclePlugin[] | types/index.ts:150 |
ResolvedBrowserLifecycleConfig
Defined in: types/index.ts:156
Immutable resolved configuration returned by the configuration system.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
activityDebounce | readonly | number | types/index.ts:157 |
activityEvents | readonly | readonly BrowserLifecycleActivityEventName[] | types/index.ts:158 |
autoStart | readonly | boolean | types/index.ts:159 |
crossTab | readonly | BrowserLifecycleCrossTabConfig | types/index.ts:160 |
debug | readonly | boolean | types/index.ts:161 |
emitInitialState | readonly | boolean | types/index.ts:162 |
eventBufferSize | readonly | number | types/index.ts:163 |
idleTimeout | readonly | number | false | types/index.ts:164 |
plugins | readonly | readonly BrowserLifecyclePlugin[] | types/index.ts:165 |
BrowserLifecycleValidationIssue
Defined in: types/index.ts:171
Internal validation issue shape used for detailed configuration errors.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
message | readonly | string | types/index.ts:172 |
path | readonly | string | types/index.ts:173 |
Type Aliases
BrowserLifecyclePhase
type BrowserLifecyclePhase = "created" | "disposed" | "running" | "stopped";Defined in: core/session/types.ts:19
Public lifecycle phases exposed by the Session Core.
BrowserLifecycleAttentionState
type BrowserLifecycleAttentionState = "focused" | "unknown" | "unfocused";Defined in: core/session/types.ts:29
Normalized attention state placeholder for current and future modules.
BrowserLifecycleActivityState
type BrowserLifecycleActivityState = "active" | "idle" | "unknown";Defined in: core/session/types.ts:34
Normalized activity state placeholder for current and future modules.
BrowserLifecycleConnectivityState
type BrowserLifecycleConnectivityState = "offline" | "online" | "unknown";Defined in: core/session/types.ts:39
Normalized advisory connectivity state placeholder for current and future modules.
BrowserLifecyclePageState
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
type BrowserLifecycleTabState = "primary" | "secondary" | "single" | "unknown";Defined in: core/session/types.ts:50
Normalized tab role placeholder for current and future modules.
BrowserLifecycleEventSource
type BrowserLifecycleEventSource =
| "activity"
| "connectivity"
| "focus"
| "internal"
| "lifecycle"
| "plugin"
| "transport"
| "visibility";Defined in: core/session/types.ts:55
Public event source categories.
BrowserLifecycleEventName
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>
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
| Parameter | Type |
|---|---|
event | DeepReadonly<BrowserLifecycleEventMap[TEventName]> |
Returns
void
BrowserLifecycleSubscriber()
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
| Parameter | Type |
|---|---|
event | DeepReadonly<BrowserLifecycleEventMap[BrowserLifecycleEventName]> |
snapshot | DeepReadonly<BrowserLifecycleSnapshot> |
Returns
void
EventMap
type EventMap = object;Defined in: events/types.ts:5
Generic event map used by the typed event infrastructure.
EventName<TEventMap>
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>
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
type EventInternalMetadata = Readonly<Record<string, unknown>>;Defined in: events/types.ts:23
Internal metadata bag reserved for diagnostics and future instrumentation.
EventListener()<TEventMap, TEventName>
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
| Parameter | Type |
|---|---|
payload | EventPayload<TEventMap, TEventName> |
metadata | EventDispatchMetadata<TEventName> |
Returns
void
EventListenerErrorHandler()<TEventMap>
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
| Parameter | Type |
|---|---|
error | unknown |
context | EventDispatchContext<TEventMap, EventName<TEventMap>> |
Returns
void
BrowserLifecyclePluginPhase
type BrowserLifecyclePluginPhase =
| "registered"
| "initialized"
| "started"
| "running"
| "stopped"
| "destroyed";Defined in: plugins/types.ts:10
Lifecycle phases tracked for each registered plugin.
BrowserLifecyclePluginHookName
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
type BrowserLifecyclePluginContext = BrowserLifecyclePluginRuntimeContext;Defined in: plugins/types.ts:22
Read-only context passed to plugin lifecycle hooks.
BrowserLifecycleActivityEventName
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
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()
function createBrowserLifecycle(config: BrowserLifecycleConfig): BrowserLifecycle;Defined in: browser-lifecycle.ts:10
Creates a BrowserLifecycle runtime instance.
Parameters
| Parameter | Type |
|---|---|
config | BrowserLifecycleConfig |
Returns
supportsVisibility()
function supportsVisibility(environment: BrowserFeatureEnvironment): boolean;Defined in: browser/features/index.ts:6
Returns true when the environment supports the Page Visibility API.
Parameters
| Parameter | Type |
|---|---|
environment | BrowserFeatureEnvironment |
Returns
boolean
supportsBroadcastChannel()
function supportsBroadcastChannel(environment: BrowserFeatureEnvironment): boolean;Defined in: browser/features/index.ts:21
Returns true when the environment supports BroadcastChannel.
Parameters
| Parameter | Type |
|---|---|
environment | BrowserFeatureEnvironment |
Returns
boolean
supportsPageLifecycle()
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
| Parameter | Type |
|---|---|
environment | BrowserFeatureEnvironment |
Returns
boolean
supportsRequestIdleCallback()
function supportsRequestIdleCallback(environment: BrowserFeatureEnvironment): boolean;Defined in: browser/features/index.ts:45
Returns true when the environment supports requestIdleCallback.
Parameters
| Parameter | Type |
|---|---|
environment | BrowserFeatureEnvironment |
Returns
boolean
supportsIdle()
function supportsIdle(environment: BrowserFeatureEnvironment): boolean;Defined in: browser/features/index.ts:54
Returns true when the environment supports idle activity observation.
Parameters
| Parameter | Type |
|---|---|
environment | BrowserFeatureEnvironment |
Returns
boolean
supportsConnectivity()
function supportsConnectivity(environment: BrowserFeatureEnvironment): boolean;Defined in: browser/features/index.ts:74
Returns true when the environment supports advisory connectivity observation.
Parameters
| Parameter | Type |
|---|---|
environment | BrowserFeatureEnvironment |
Returns
boolean
supportsFocus()
function supportsFocus(environment: BrowserFeatureEnvironment): boolean;Defined in: browser/features/index.ts:94
Returns true when the environment supports window focus observation.
Parameters
| Parameter | Type |
|---|---|
environment | BrowserFeatureEnvironment |
Returns
boolean
supportsAbortController()
function supportsAbortController(environment: BrowserFeatureEnvironment): boolean;Defined in: browser/features/index.ts:114
Returns true when the environment supports AbortController.
Parameters
| Parameter | Type |
|---|---|
environment | BrowserFeatureEnvironment |
Returns
boolean
detectBrowserLifecycleCapabilities()
function detectBrowserLifecycleCapabilities(environment: BrowserFeatureEnvironment): BrowserLifecycleCapabilities;Defined in: browser/features/index.ts:123
Detects the package capability surface without relying on browser sniffing.
Parameters
| Parameter | Type |
|---|---|
environment | BrowserFeatureEnvironment |
Returns
getDefaultBrowserLifecycleConfig()
function getDefaultBrowserLifecycleConfig(): ResolvedBrowserLifecycleConfig;Defined in: core/config/index.ts:40
Returns an immutable copy of the default configuration.
Returns
ResolvedBrowserLifecycleConfig
validateBrowserLifecycleConfig()
function validateBrowserLifecycleConfig(input: unknown): asserts input is BrowserLifecycleConfig;Defined in: core/config/index.ts:47
Validates a potential Browser Lifecycle configuration object.
Parameters
| Parameter | Type |
|---|---|
input | unknown |
Returns
asserts input is BrowserLifecycleConfig
createBrowserLifecycleConfig()
function createBrowserLifecycleConfig(input: BrowserLifecycleConfig): ResolvedBrowserLifecycleConfig;Defined in: core/config/index.ts:64
Creates an immutable resolved configuration object.
Parameters
| Parameter | Type |
|---|---|
input | BrowserLifecycleConfig |
Returns
ResolvedBrowserLifecycleConfig
mergeBrowserLifecycleConfig()
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
| Parameter | Type |
|---|---|
base | BrowserLifecycleConfig |
override | BrowserLifecycleConfig |
Returns
ResolvedBrowserLifecycleConfig
getPluginIds()
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
| Parameter | Type |
|---|---|
config | ResolvedBrowserLifecycleConfig |
Returns
readonly string[]
assert()
function assert(condition: unknown, message: string): asserts condition;Defined in: utils/index.ts:6
Asserts that a condition is truthy.
Parameters
| Parameter | Type |
|---|---|
condition | unknown |
message | string |
Returns
asserts condition
noop()
function noop(): void;Defined in: utils/index.ts:15
No-op helper for optional callback defaults.
Returns
void
isBrowser()
function isBrowser(): boolean;Defined in: utils/index.ts:20
Returns true when the current runtime looks like a browser environment.
Returns
boolean
isFunction()
function isFunction(value: unknown): value is (args: readonly unknown[]) => unknown;Defined in: utils/index.ts:29
Returns true when a value is callable.
Parameters
| Parameter | Type |
|---|---|
value | unknown |
Returns
value is (args: readonly unknown[]) => unknown
isObject()
function isObject(value: unknown): value is PlainObject;Defined in: utils/index.ts:36
Returns true when a value is a non-null object.
Parameters
| Parameter | Type |
|---|---|
value | unknown |
Returns
value is PlainObject
deepFreeze()
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
| Parameter | Type |
|---|---|
value | TValue |
Returns
DeepReadonly<TValue>
mergeObjects()
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
| Parameter | Type |
|---|---|
base | TBase |
override | TOverride |
Returns
TBase & TOverride
