@broadcastingplatforms/player 1.1.0 → 1.4.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.
- package/dist/bp-player.js +231 -204
- package/dist/bp-player.mjs +228 -201
- package/dist/bp-player.standalone.mjs +282 -241
- package/dist/bplive/service.d.ts +3 -1
- package/dist/components/bp-default-ui.d.ts +6 -2
- package/dist/core/player-core.d.ts +5 -3
- package/dist/index.d.ts +1 -0
- package/dist/network/index.d.ts +2 -0
- package/dist/network/interceptor.d.ts +87 -0
- package/dist/network/interceptor.test.d.ts +2 -0
- package/package.json +16 -11
- package/dist/core/events.d.ts +0 -148
package/dist/bplive/service.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BPLiveConfig, BPLiveStreamResponse, BPLiveClipResponse, BPLiveSource, BPLiveStream, BPLiveClip } from './types';
|
|
2
2
|
import type { ResolvedPlayerSource } from '../providers/contract';
|
|
3
3
|
import type { ContentType } from '../core/state';
|
|
4
|
+
import type { NetworkInterceptorController } from '../network/index';
|
|
4
5
|
export interface BPLiveResolvedResult {
|
|
5
6
|
source: ResolvedPlayerSource;
|
|
6
7
|
contentType: ContentType;
|
|
@@ -18,9 +19,10 @@ export declare class BPLiveError extends Error {
|
|
|
18
19
|
export declare class BPLiveService {
|
|
19
20
|
private _config;
|
|
20
21
|
private _authToken;
|
|
22
|
+
private _network;
|
|
21
23
|
private _stream;
|
|
22
24
|
private _clip;
|
|
23
|
-
constructor(config: BPLiveConfig);
|
|
25
|
+
constructor(config: BPLiveConfig, network?: NetworkInterceptorController);
|
|
24
26
|
get config(): BPLiveConfig;
|
|
25
27
|
get authToken(): string | null;
|
|
26
28
|
get stream(): BPLiveStream | null;
|
|
@@ -48,9 +48,13 @@ export declare class BPDefaultUI extends LitElement {
|
|
|
48
48
|
private detectMobile;
|
|
49
49
|
private _getPoster;
|
|
50
50
|
protected firstUpdated(_changedProperties: PropertyValues): void;
|
|
51
|
+
protected willUpdate(_changedProperties: PropertyValues): void;
|
|
51
52
|
protected updated(_changedProperties: PropertyValues): void;
|
|
52
|
-
/**
|
|
53
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Sets content-type eagerly so the correct controls render on first paint,
|
|
55
|
+
* and applies fluid dimension hints from preferredOrientation.
|
|
56
|
+
*/
|
|
57
|
+
private _applySourceHints;
|
|
54
58
|
/** Update video dimension CSS variables */
|
|
55
59
|
private _updateVideoDimensions;
|
|
56
60
|
/** Clear video dimension CSS variables */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { PlayerState, QualityLevel, PresentationMode, ConnectionState, StreamType, PlayerError } from './state';
|
|
2
2
|
import type { ProviderType, PlayerSource, ProviderConfig } from '../providers/contract';
|
|
3
3
|
import { BPLiveService } from '../bplive/service';
|
|
4
|
+
import type { NetworkInterceptorController } from '../network/index';
|
|
4
5
|
export interface PlayerCoreEventMap {
|
|
5
6
|
play: void;
|
|
6
7
|
playing: void;
|
|
@@ -99,6 +100,7 @@ export interface PlayerCore {
|
|
|
99
100
|
readonly state: PlayerState;
|
|
100
101
|
readonly videoElement: HTMLVideoElement | null;
|
|
101
102
|
readonly bpLive: BPLiveService | null;
|
|
103
|
+
readonly network: NetworkInterceptorController;
|
|
102
104
|
/** Whether the player is ready (attached and can accept sources) */
|
|
103
105
|
readonly ready: boolean;
|
|
104
106
|
/** Current provider type based on loaded source */
|
|
@@ -139,12 +141,15 @@ export declare class PlayerCoreImpl implements PlayerCore {
|
|
|
139
141
|
private _eventCleanup;
|
|
140
142
|
private _destroyed;
|
|
141
143
|
private _bpLive;
|
|
144
|
+
private _network;
|
|
142
145
|
private _currentProviderType;
|
|
143
146
|
private _ready;
|
|
147
|
+
private _loadGeneration;
|
|
144
148
|
constructor();
|
|
145
149
|
get state(): PlayerState;
|
|
146
150
|
get videoElement(): HTMLVideoElement | null;
|
|
147
151
|
get bpLive(): BPLiveService | null;
|
|
152
|
+
get network(): NetworkInterceptorController;
|
|
148
153
|
get ready(): boolean;
|
|
149
154
|
get providerType(): ProviderType | null;
|
|
150
155
|
addEventListener<K extends PlayerCoreEventType>(type: K | K[], listener: EventListener<PlayerCoreEventMap[K]>): void;
|
|
@@ -156,9 +161,6 @@ export declare class PlayerCoreImpl implements PlayerCore {
|
|
|
156
161
|
*/
|
|
157
162
|
attach(container: HTMLElement, config?: ProviderConfig): void;
|
|
158
163
|
loadSource(source: string | PlayerSource, container?: HTMLElement, config?: ProviderConfig): Promise<SourceLoadResult | void>;
|
|
159
|
-
/**
|
|
160
|
-
* Destroy the current media element and clean up listeners.
|
|
161
|
-
*/
|
|
162
164
|
private destroyMediaElement;
|
|
163
165
|
private createMediaElement;
|
|
164
166
|
private attachMediaElementListeners;
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export type { PlayerState, QualityLevel, PresentationMode, ConnectionState, Stre
|
|
|
12
12
|
export { StateReceiverMixin, StateReceiverProps, isStateReceiverElement, forEachStateReceiverElement, propagateStateToReceiver, removeStateFromReceiver, } from './core/state-receiver';
|
|
13
13
|
export type { StateReceiverElement, StateReceiverPropertyMap } from './core/state-receiver';
|
|
14
14
|
export type { ProviderType, ProviderConfig, VideoProviderConfig, NanoProviderConfig, LiveKitProviderConfig, PlayerSource, ResolvedPlayerSource, VideoSource, NanoSource, LiveKitSource, PosterSource, PlayerSourceItem, PlayerSources, SourceDescription, } from './providers/contract';
|
|
15
|
+
export type { NetworkInterceptorController, RequestInterceptor, ResponseInterceptor, InterceptableRequest, InterceptableResponse, RequestType, InterceptorRequestInit, InterceptorResponseInit, WaitUntilCallback, InterceptResult, } from './network/index';
|
|
15
16
|
export { BPLiveService, BPLiveError, type BPLiveResolvedResult } from './bplive/service';
|
|
16
17
|
export { isBPLiveSource, isBPLiveStreamSource, isBPLiveClipSource, } from './bplive/types';
|
|
17
18
|
export type { BPLiveConfig, BPLiveSource, BPLiveStreamSource, BPLiveClipSource, BPLiveStream, BPLiveStreamResponse, BPLiveClip, BPLiveClipResponse, BPLiveChannel, BPLiveActiveStream, BPLivePlayerSource, BPLiveLiveKitPlayerSource, BPLiveNanoPlayerSource, BPLiveClipMedia, } from './bplive/types';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { NetworkInterceptorControllerImpl, type NetworkInterceptorController, type RequestInterceptor, type ResponseInterceptor, type InterceptableRequest, type InterceptableResponse, type RequestType, type InterceptorRequestInit, type InterceptorResponseInit, type WaitUntilCallback, type InterceptResult, } from './interceptor';
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
export type RequestType = 'api' | 'manifest' | 'segment' | 'other';
|
|
2
|
+
export interface InterceptorRequestInit {
|
|
3
|
+
url?: string;
|
|
4
|
+
method?: string;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
}
|
|
7
|
+
export interface InterceptorResponseInit {
|
|
8
|
+
status?: number;
|
|
9
|
+
headers?: Record<string, string>;
|
|
10
|
+
body?: unknown;
|
|
11
|
+
}
|
|
12
|
+
export type WaitUntilCallback = ((done: (error?: unknown) => void) => void) | (() => PromiseLike<void>);
|
|
13
|
+
export interface InterceptableRequest {
|
|
14
|
+
readonly url: string;
|
|
15
|
+
readonly method: string;
|
|
16
|
+
readonly type: RequestType;
|
|
17
|
+
readonly headers: Record<string, string>;
|
|
18
|
+
readonly closed: boolean;
|
|
19
|
+
redirect(init: InterceptorRequestInit | string): void;
|
|
20
|
+
respondWith(response: InterceptorResponseInit): void;
|
|
21
|
+
waitUntil(fn: WaitUntilCallback): void;
|
|
22
|
+
waitUntil(promise: PromiseLike<unknown>): void;
|
|
23
|
+
}
|
|
24
|
+
export type RequestInterceptor = (request: InterceptableRequest) => void | PromiseLike<void>;
|
|
25
|
+
export interface InterceptableResponse {
|
|
26
|
+
readonly url: string;
|
|
27
|
+
readonly status: number;
|
|
28
|
+
readonly headers: Record<string, string>;
|
|
29
|
+
readonly body: unknown;
|
|
30
|
+
readonly closed: boolean;
|
|
31
|
+
respondWith(response: InterceptorResponseInit): void;
|
|
32
|
+
waitUntil(fn: WaitUntilCallback): void;
|
|
33
|
+
waitUntil(promise: PromiseLike<unknown>): void;
|
|
34
|
+
}
|
|
35
|
+
export type ResponseInterceptor = (response: InterceptableResponse) => void | PromiseLike<void>;
|
|
36
|
+
export interface NetworkInterceptorController {
|
|
37
|
+
addRequestInterceptor(interceptor: RequestInterceptor): void;
|
|
38
|
+
removeRequestInterceptor(interceptor: RequestInterceptor): void;
|
|
39
|
+
addResponseInterceptor(interceptor: ResponseInterceptor): void;
|
|
40
|
+
removeResponseInterceptor(interceptor: ResponseInterceptor): void;
|
|
41
|
+
intercept(request: {
|
|
42
|
+
url: string;
|
|
43
|
+
method: string;
|
|
44
|
+
type: RequestType;
|
|
45
|
+
headers: Record<string, string>;
|
|
46
|
+
}): Promise<InterceptResult>;
|
|
47
|
+
interceptResponse(response: {
|
|
48
|
+
url: string;
|
|
49
|
+
status: number;
|
|
50
|
+
headers: Record<string, string>;
|
|
51
|
+
body: unknown;
|
|
52
|
+
}): Promise<{
|
|
53
|
+
status: number;
|
|
54
|
+
headers: Record<string, string>;
|
|
55
|
+
body: unknown;
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
export interface InterceptResult {
|
|
59
|
+
url: string;
|
|
60
|
+
headers: Record<string, string>;
|
|
61
|
+
response: InterceptorResponseInit | null;
|
|
62
|
+
}
|
|
63
|
+
export declare class NetworkInterceptorControllerImpl implements NetworkInterceptorController {
|
|
64
|
+
private _requestInterceptors;
|
|
65
|
+
private _responseInterceptors;
|
|
66
|
+
addRequestInterceptor(interceptor: RequestInterceptor): void;
|
|
67
|
+
removeRequestInterceptor(interceptor: RequestInterceptor): void;
|
|
68
|
+
addResponseInterceptor(interceptor: ResponseInterceptor): void;
|
|
69
|
+
removeResponseInterceptor(interceptor: ResponseInterceptor): void;
|
|
70
|
+
intercept(request: {
|
|
71
|
+
url: string;
|
|
72
|
+
method: string;
|
|
73
|
+
type: RequestType;
|
|
74
|
+
headers: Record<string, string>;
|
|
75
|
+
}): Promise<InterceptResult>;
|
|
76
|
+
interceptResponse(response: {
|
|
77
|
+
url: string;
|
|
78
|
+
status: number;
|
|
79
|
+
headers: Record<string, string>;
|
|
80
|
+
body: unknown;
|
|
81
|
+
}): Promise<{
|
|
82
|
+
status: number;
|
|
83
|
+
headers: Record<string, string>;
|
|
84
|
+
body: unknown;
|
|
85
|
+
}>;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=interceptor.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@broadcastingplatforms/player",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Universal video player web component built with Lit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/bp-player.js",
|
|
@@ -22,6 +22,18 @@
|
|
|
22
22
|
"dist/",
|
|
23
23
|
"!**/*.map"
|
|
24
24
|
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "bun run build:types && bun run build:bundle",
|
|
27
|
+
"build:types": "tsc --emitDeclarationOnly",
|
|
28
|
+
"build:bundle": "node build.mjs",
|
|
29
|
+
"build:prod": "NODE_ENV=production bun run build",
|
|
30
|
+
"dev": "concurrently \"tsc --emitDeclarationOnly --watch --preserveWatchOutput\" \"node build.mjs --watch\"",
|
|
31
|
+
"dev:demo": "vite",
|
|
32
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
33
|
+
"typecheck": "tsc --noEmit",
|
|
34
|
+
"test": "vitest run",
|
|
35
|
+
"test:watch": "vitest"
|
|
36
|
+
},
|
|
25
37
|
"dependencies": {
|
|
26
38
|
"better-call": "^1.0.6",
|
|
27
39
|
"custom-media-element": "^1.4.0",
|
|
@@ -36,18 +48,11 @@
|
|
|
36
48
|
"concurrently": "^9.1.2",
|
|
37
49
|
"esbuild": "^0.24.0",
|
|
38
50
|
"typescript": "^5.7.2",
|
|
39
|
-
"vite": "^6.0.5"
|
|
51
|
+
"vite": "^6.0.5",
|
|
52
|
+
"vitest": "^4.1.0"
|
|
40
53
|
},
|
|
41
54
|
"license": "SEE LICENSE IN LICENSE",
|
|
42
55
|
"publishConfig": {
|
|
43
56
|
"access": "public"
|
|
44
|
-
},
|
|
45
|
-
"scripts": {
|
|
46
|
-
"build": "pnpm build:types && pnpm build:bundle",
|
|
47
|
-
"build:types": "tsc --emitDeclarationOnly",
|
|
48
|
-
"build:bundle": "node build.mjs",
|
|
49
|
-
"build:prod": "NODE_ENV=production pnpm build",
|
|
50
|
-
"dev": "concurrently \"tsc --emitDeclarationOnly --watch --preserveWatchOutput\" \"node build.mjs --watch\"",
|
|
51
|
-
"dev:demo": "vite"
|
|
52
57
|
}
|
|
53
|
-
}
|
|
58
|
+
}
|
package/dist/core/events.d.ts
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Player event system with typed events.
|
|
3
|
-
* Inspired by THEOplayer's event architecture.
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Base player event interface.
|
|
7
|
-
*/
|
|
8
|
-
export interface PlayerEvent<TType extends string = string> {
|
|
9
|
-
/** The type of the event. */
|
|
10
|
-
readonly type: TType;
|
|
11
|
-
/** The creation date of the event. */
|
|
12
|
-
readonly date: Date;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Player event types as const for type safety.
|
|
16
|
-
*/
|
|
17
|
-
export declare const PlayerEventType: {
|
|
18
|
-
readonly PLAY: "play";
|
|
19
|
-
readonly PAUSE: "pause";
|
|
20
|
-
readonly PLAYING: "playing";
|
|
21
|
-
readonly WAITING: "waiting";
|
|
22
|
-
readonly ENDED: "ended";
|
|
23
|
-
readonly SEEKING: "seeking";
|
|
24
|
-
readonly SEEKED: "seeked";
|
|
25
|
-
readonly TIME_UPDATE: "timeupdate";
|
|
26
|
-
readonly DURATION_CHANGE: "durationchange";
|
|
27
|
-
readonly LOAD_START: "loadstart";
|
|
28
|
-
readonly LOADED_METADATA: "loadedmetadata";
|
|
29
|
-
readonly LOADED_DATA: "loadeddata";
|
|
30
|
-
readonly CAN_PLAY: "canplay";
|
|
31
|
-
readonly CAN_PLAY_THROUGH: "canplaythrough";
|
|
32
|
-
readonly PROGRESS: "progress";
|
|
33
|
-
readonly EMPTIED: "emptied";
|
|
34
|
-
readonly VOLUME_CHANGE: "volumechange";
|
|
35
|
-
readonly RATE_CHANGE: "ratechange";
|
|
36
|
-
readonly RESIZE: "resize";
|
|
37
|
-
readonly QUALITIES_CHANGE: "qualitieschange";
|
|
38
|
-
readonly QUALITY_CHANGE: "qualitychange";
|
|
39
|
-
readonly TARGET_QUALITY_CHANGED: "targetqualitychanged";
|
|
40
|
-
readonly STATE_CHANGE: "statechange";
|
|
41
|
-
readonly READY: "ready";
|
|
42
|
-
readonly ERROR: "error";
|
|
43
|
-
readonly DESTROY: "destroy";
|
|
44
|
-
};
|
|
45
|
-
export type PlayerEventTypes = typeof PlayerEventType[keyof typeof PlayerEventType];
|
|
46
|
-
export interface PlayEvent extends PlayerEvent<'play'> {
|
|
47
|
-
}
|
|
48
|
-
export interface PauseEvent extends PlayerEvent<'pause'> {
|
|
49
|
-
}
|
|
50
|
-
export interface PlayingEvent extends PlayerEvent<'playing'> {
|
|
51
|
-
}
|
|
52
|
-
export interface WaitingEvent extends PlayerEvent<'waiting'> {
|
|
53
|
-
}
|
|
54
|
-
export interface EndedEvent extends PlayerEvent<'ended'> {
|
|
55
|
-
}
|
|
56
|
-
export interface SeekingEvent extends PlayerEvent<'seeking'> {
|
|
57
|
-
}
|
|
58
|
-
export interface SeekedEvent extends PlayerEvent<'seeked'> {
|
|
59
|
-
}
|
|
60
|
-
export interface TimeUpdateEvent extends PlayerEvent<'timeupdate'> {
|
|
61
|
-
readonly currentTime: number;
|
|
62
|
-
}
|
|
63
|
-
export interface DurationChangeEvent extends PlayerEvent<'durationchange'> {
|
|
64
|
-
readonly duration: number;
|
|
65
|
-
}
|
|
66
|
-
export interface LoadStartEvent extends PlayerEvent<'loadstart'> {
|
|
67
|
-
}
|
|
68
|
-
export interface LoadedMetadataEvent extends PlayerEvent<'loadedmetadata'> {
|
|
69
|
-
}
|
|
70
|
-
export interface LoadedDataEvent extends PlayerEvent<'loadeddata'> {
|
|
71
|
-
}
|
|
72
|
-
export interface CanPlayEvent extends PlayerEvent<'canplay'> {
|
|
73
|
-
}
|
|
74
|
-
export interface CanPlayThroughEvent extends PlayerEvent<'canplaythrough'> {
|
|
75
|
-
}
|
|
76
|
-
export interface ProgressEvent extends PlayerEvent<'progress'> {
|
|
77
|
-
}
|
|
78
|
-
export interface EmptiedEvent extends PlayerEvent<'emptied'> {
|
|
79
|
-
}
|
|
80
|
-
export interface VolumeChangeEvent extends PlayerEvent<'volumechange'> {
|
|
81
|
-
readonly volume: number;
|
|
82
|
-
readonly muted: boolean;
|
|
83
|
-
}
|
|
84
|
-
export interface RateChangeEvent extends PlayerEvent<'ratechange'> {
|
|
85
|
-
readonly playbackRate: number;
|
|
86
|
-
}
|
|
87
|
-
export interface ResizeEvent extends PlayerEvent<'resize'> {
|
|
88
|
-
readonly videoWidth: number;
|
|
89
|
-
readonly videoHeight: number;
|
|
90
|
-
}
|
|
91
|
-
export interface StateChangeEvent extends PlayerEvent<'statechange'> {
|
|
92
|
-
}
|
|
93
|
-
export interface ReadyEvent extends PlayerEvent<'ready'> {
|
|
94
|
-
}
|
|
95
|
-
export interface DestroyEvent extends PlayerEvent<'destroy'> {
|
|
96
|
-
}
|
|
97
|
-
export interface PlayerErrorEvent extends PlayerEvent<'error'> {
|
|
98
|
-
readonly error: Error;
|
|
99
|
-
readonly code?: number;
|
|
100
|
-
readonly message: string;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Maps player event types to their event interfaces.
|
|
104
|
-
*/
|
|
105
|
-
export interface PlayerEventMap {
|
|
106
|
-
play: PlayEvent;
|
|
107
|
-
pause: PauseEvent;
|
|
108
|
-
playing: PlayingEvent;
|
|
109
|
-
waiting: WaitingEvent;
|
|
110
|
-
ended: EndedEvent;
|
|
111
|
-
seeking: SeekingEvent;
|
|
112
|
-
seeked: SeekedEvent;
|
|
113
|
-
timeupdate: TimeUpdateEvent;
|
|
114
|
-
durationchange: DurationChangeEvent;
|
|
115
|
-
loadstart: LoadStartEvent;
|
|
116
|
-
loadedmetadata: LoadedMetadataEvent;
|
|
117
|
-
loadeddata: LoadedDataEvent;
|
|
118
|
-
canplay: CanPlayEvent;
|
|
119
|
-
canplaythrough: CanPlayThroughEvent;
|
|
120
|
-
progress: ProgressEvent;
|
|
121
|
-
emptied: EmptiedEvent;
|
|
122
|
-
volumechange: VolumeChangeEvent;
|
|
123
|
-
ratechange: RateChangeEvent;
|
|
124
|
-
resize: ResizeEvent;
|
|
125
|
-
statechange: StateChangeEvent;
|
|
126
|
-
ready: ReadyEvent;
|
|
127
|
-
error: PlayerErrorEvent;
|
|
128
|
-
destroy: DestroyEvent;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Creates a player event with the given type and optional data.
|
|
132
|
-
*/
|
|
133
|
-
export declare function createPlayerEvent<TType extends keyof PlayerEventMap>(type: TType, data?: Omit<PlayerEventMap[TType], 'type' | 'date'>): PlayerEventMap[TType];
|
|
134
|
-
/**
|
|
135
|
-
* Creates a DOM CustomEvent that wraps a PlayerEvent.
|
|
136
|
-
* Use this when dispatching events through DOM elements.
|
|
137
|
-
*/
|
|
138
|
-
export declare function createCustomEvent<TType extends keyof PlayerEventMap>(type: TType, data?: Omit<PlayerEventMap[TType], 'type' | 'date'>): CustomEvent<PlayerEventMap[TType]>;
|
|
139
|
-
/**
|
|
140
|
-
* Creates a standard DOM Event with bubbles and composed.
|
|
141
|
-
* Use this for simple events that don't need extra data.
|
|
142
|
-
*/
|
|
143
|
-
export declare function createEvent(type: string): Event;
|
|
144
|
-
/**
|
|
145
|
-
* Creates a DOM ErrorEvent with proper structure.
|
|
146
|
-
*/
|
|
147
|
-
export declare function createErrorEvent(error: Error, code?: number): ErrorEvent;
|
|
148
|
-
//# sourceMappingURL=events.d.ts.map
|