@broadcastingplatforms/player 1.3.0 → 1.4.1
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 +199 -199
- package/dist/bp-player.mjs +195 -195
- package/dist/bp-player.standalone.mjs +156 -156
- package/dist/bplive/service.d.ts +3 -1
- package/dist/bplive/service.test.d.ts +2 -0
- package/dist/bplive/types.test.d.ts +2 -0
- package/dist/components/video-rendition-list.test.d.ts +2 -0
- package/dist/core/player-core.d.ts +4 -0
- package/dist/core/player-core.test.d.ts +2 -0
- package/dist/core/state-receiver.test.d.ts +2 -0
- package/dist/core/state.test.d.ts +2 -0
- package/dist/events/EventUtils.test.d.ts +2 -0
- 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/dist/util/attribute.test.d.ts +2 -0
- package/dist/util/converters.test.d.ts +2 -0
- package/package.json +7 -3
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;
|
|
@@ -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,6 +141,7 @@ 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;
|
|
144
147
|
private _loadGeneration;
|
|
@@ -146,6 +149,7 @@ export declare class PlayerCoreImpl implements PlayerCore {
|
|
|
146
149
|
get state(): PlayerState;
|
|
147
150
|
get videoElement(): HTMLVideoElement | null;
|
|
148
151
|
get bpLive(): BPLiveService | null;
|
|
152
|
+
get network(): NetworkInterceptorController;
|
|
149
153
|
get ready(): boolean;
|
|
150
154
|
get providerType(): ProviderType | null;
|
|
151
155
|
addEventListener<K extends PlayerCoreEventType>(type: K | K[], listener: EventListener<PlayerCoreEventMap[K]>): void;
|
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.1",
|
|
4
4
|
"description": "Universal video player web component built with Lit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/bp-player.js",
|
|
@@ -30,7 +30,9 @@
|
|
|
30
30
|
"dev": "concurrently \"tsc --emitDeclarationOnly --watch --preserveWatchOutput\" \"node build.mjs --watch\"",
|
|
31
31
|
"dev:demo": "vite",
|
|
32
32
|
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
33
|
-
"typecheck": "tsc --noEmit"
|
|
33
|
+
"typecheck": "tsc --noEmit",
|
|
34
|
+
"test": "vitest run",
|
|
35
|
+
"test:watch": "vitest"
|
|
34
36
|
},
|
|
35
37
|
"dependencies": {
|
|
36
38
|
"better-call": "^1.0.6",
|
|
@@ -45,8 +47,10 @@
|
|
|
45
47
|
"@types/node": "^22.10.2",
|
|
46
48
|
"concurrently": "^9.1.2",
|
|
47
49
|
"esbuild": "^0.24.0",
|
|
50
|
+
"happy-dom": "^17.4.4",
|
|
48
51
|
"typescript": "^5.7.2",
|
|
49
|
-
"vite": "^6.0.5"
|
|
52
|
+
"vite": "^6.0.5",
|
|
53
|
+
"vitest": "^4.1.0"
|
|
50
54
|
},
|
|
51
55
|
"license": "SEE LICENSE IN LICENSE",
|
|
52
56
|
"publishConfig": {
|