playron 1.0.4 → 1.0.5
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/Docs.d.ts.map +1 -1
- package/dist/core/PlayerCore.d.ts +18 -0
- package/dist/core/PlayerCore.d.ts.map +1 -1
- package/dist/core/PlayronEventEmitter.d.ts +6 -0
- package/dist/core/PlayronEventEmitter.d.ts.map +1 -1
- package/dist/core/cast/ChromecastManager.d.ts +192 -0
- package/dist/core/cast/ChromecastManager.d.ts.map +1 -0
- package/dist/core/drm/DrmManager.d.ts +29 -0
- package/dist/core/drm/DrmManager.d.ts.map +1 -0
- package/dist/core/drm/LicenseManager.d.ts +28 -0
- package/dist/core/drm/LicenseManager.d.ts.map +1 -0
- package/dist/core/drm/adapters/BaseDrmAdapter.d.ts +33 -0
- package/dist/core/drm/adapters/BaseDrmAdapter.d.ts.map +1 -0
- package/dist/core/drm/adapters/FairPlayAdapter.d.ts +23 -0
- package/dist/core/drm/adapters/FairPlayAdapter.d.ts.map +1 -0
- package/dist/core/drm/adapters/PlayReadyAdapter.d.ts +20 -0
- package/dist/core/drm/adapters/PlayReadyAdapter.d.ts.map +1 -0
- package/dist/core/drm/adapters/WidevineAdapter.d.ts +18 -0
- package/dist/core/drm/adapters/WidevineAdapter.d.ts.map +1 -0
- package/dist/core/streaming/SubtitleManager.d.ts +10 -6
- package/dist/core/streaming/SubtitleManager.d.ts.map +1 -1
- package/dist/core/streaming/parsers/TtmlParser.d.ts +46 -0
- package/dist/core/streaming/parsers/TtmlParser.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/layout/SeekBarContainer.d.ts.map +1 -1
- package/dist/playron.cjs.js +58 -53
- package/dist/playron.es.js +14756 -13971
- package/dist/types/config.types.d.ts +17 -0
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/ui/Common/SeekBar.d.ts +17 -1
- package/dist/ui/Common/SeekBar.d.ts.map +1 -1
- package/dist/ui/Controls/ChromecastButton.d.ts +18 -0
- package/dist/ui/Controls/ChromecastButton.d.ts.map +1 -0
- package/dist/ui/Controls/SettingsPanel.d.ts.map +1 -1
- package/dist/ui/Overlay/VideoOverlay.d.ts.map +1 -1
- package/package.json +5 -4
package/dist/Docs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Docs.d.ts","sourceRoot":"","sources":["../src/Docs.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Docs.d.ts","sourceRoot":"","sources":["../src/Docs.tsx"],"names":[],"mappings":"AAktCA,MAAM,CAAC,OAAO,UAAU,IAAI,4CAqH3B"}
|
|
@@ -26,6 +26,8 @@ export declare class PlayerCore {
|
|
|
26
26
|
/** Seconds within which the playhead is considered "at live edge" */
|
|
27
27
|
private atLiveEdgeTolerance;
|
|
28
28
|
private drmConfig;
|
|
29
|
+
private drmManager;
|
|
30
|
+
private castManager;
|
|
29
31
|
constructor(videoElement: HTMLVideoElement);
|
|
30
32
|
/**
|
|
31
33
|
* PlayerCore'u başlat
|
|
@@ -160,6 +162,22 @@ export declare class PlayerCore {
|
|
|
160
162
|
isAirPlayAvailable(): boolean;
|
|
161
163
|
isAirPlayActive(): boolean;
|
|
162
164
|
private destroyAirPlay;
|
|
165
|
+
/**
|
|
166
|
+
* Load the Google Cast SDK and set up the Cast context.
|
|
167
|
+
* Call once — idempotent. Cast device picker becomes available after this.
|
|
168
|
+
*
|
|
169
|
+
* @param appId Cast receiver app ID (defaults to DEFAULT_MEDIA_RECEIVER_APP_ID)
|
|
170
|
+
*/
|
|
171
|
+
setupChromecast(appId?: string): void;
|
|
172
|
+
/** Open the Chromecast device picker. */
|
|
173
|
+
showCastPicker(): Promise<void>;
|
|
174
|
+
/** Stop casting and end the session. */
|
|
175
|
+
stopCasting(): void;
|
|
176
|
+
/** Returns true when at least one Cast device is nearby. */
|
|
177
|
+
isCastAvailable(): boolean;
|
|
178
|
+
/** Returns true when a Cast session is currently active. */
|
|
179
|
+
isCastActive(): boolean;
|
|
180
|
+
private destroyChromecast;
|
|
163
181
|
toggleTheaterMode(): void;
|
|
164
182
|
isTheaterMode(): boolean;
|
|
165
183
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerCore.d.ts","sourceRoot":"","sources":["../../src/core/PlayerCore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"PlayerCore.d.ts","sourceRoot":"","sources":["../../src/core/PlayerCore.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,6 +81,12 @@ export type VirtusEventMap = {
|
|
|
81
81
|
isAvailable: boolean;
|
|
82
82
|
isActive: boolean;
|
|
83
83
|
};
|
|
84
|
+
/** Fires when Chromecast device availability or session state changes */
|
|
85
|
+
'castchange': {
|
|
86
|
+
isAvailable: boolean;
|
|
87
|
+
isActive: boolean;
|
|
88
|
+
state: 'not_connected' | 'connecting' | 'connected' | 'unavailable';
|
|
89
|
+
};
|
|
84
90
|
/** Periodic latency update — only emitted during live playback (~1s interval) */
|
|
85
91
|
'livelatencyupdate': {
|
|
86
92
|
latency: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayronEventEmitter.d.ts","sourceRoot":"","sources":["../../src/core/PlayronEventEmitter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlayronEventEmitter.d.ts","sourceRoot":"","sources":["../../src/core/PlayronEventEmitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChromecastManager
|
|
3
|
+
*
|
|
4
|
+
* Google Cast SDK v3 (CAF) sender integration — no npm package required.
|
|
5
|
+
* The Cast SDK is loaded dynamically from Google's CDN when `setup()` is called.
|
|
6
|
+
*
|
|
7
|
+
* Responsibilities:
|
|
8
|
+
* - Load Cast SDK script lazily from Google CDN
|
|
9
|
+
* - Initialize Cast context with a receiver app ID
|
|
10
|
+
* - Track device availability and session state
|
|
11
|
+
* - Open device picker via requestSession()
|
|
12
|
+
* - Load / sync media on the Cast receiver
|
|
13
|
+
* - Emit castchange callbacks for PlayerCore → UI
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* const cast = new ChromecastManager({
|
|
17
|
+
* appId: chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,
|
|
18
|
+
* onChange: (state) => player.events.emit('castchange', state),
|
|
19
|
+
* });
|
|
20
|
+
* cast.setup(); // load SDK, initialise
|
|
21
|
+
* cast.requestSession(); // open device picker
|
|
22
|
+
* cast.loadMedia(src, 'video/mp4', 0); // push media to receiver
|
|
23
|
+
* cast.syncTime(currentTime); // keep receiver in sync
|
|
24
|
+
* cast.syncVolume(0.8, false); // volume / mute to receiver
|
|
25
|
+
* cast.destroy(); // cleanup listeners / session
|
|
26
|
+
*
|
|
27
|
+
* Google Cast SDK docs:
|
|
28
|
+
* https://developers.google.com/cast/docs/web_sender/integrate
|
|
29
|
+
*/
|
|
30
|
+
declare global {
|
|
31
|
+
interface Window {
|
|
32
|
+
/** Google Cast SDK readiness callback (set BEFORE the script loads). */
|
|
33
|
+
__onGCastApiAvailable?: (isAvailable: boolean, error?: unknown) => void;
|
|
34
|
+
cast?: {
|
|
35
|
+
framework: {
|
|
36
|
+
CastContext: {
|
|
37
|
+
getInstance(): CastContextInstance;
|
|
38
|
+
};
|
|
39
|
+
CastContextEventType: {
|
|
40
|
+
SESSION_STATE_CHANGED: string;
|
|
41
|
+
CAST_STATE_CHANGED: string;
|
|
42
|
+
};
|
|
43
|
+
CastState: {
|
|
44
|
+
NO_DEVICES_AVAILABLE: string;
|
|
45
|
+
NOT_CONNECTED: string;
|
|
46
|
+
CONNECTING: string;
|
|
47
|
+
CONNECTED: string;
|
|
48
|
+
};
|
|
49
|
+
SessionState: {
|
|
50
|
+
SESSION_STARTING: string;
|
|
51
|
+
SESSION_STARTED: string;
|
|
52
|
+
SESSION_START_FAILED: string;
|
|
53
|
+
SESSION_ENDING: string;
|
|
54
|
+
SESSION_ENDED: string;
|
|
55
|
+
SESSION_RESUMED: string;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
chrome?: {
|
|
60
|
+
cast?: {
|
|
61
|
+
media: {
|
|
62
|
+
/** Default Media Receiver App ID ('CC1AD845') */
|
|
63
|
+
DEFAULT_MEDIA_RECEIVER_APP_ID: string;
|
|
64
|
+
MediaInfo: new (contentId: string, contentType: string) => MediaInfoInstance;
|
|
65
|
+
LoadRequest: new (mediaInfo: MediaInfoInstance) => LoadRequestInstance;
|
|
66
|
+
StreamType: {
|
|
67
|
+
BUFFERED: string;
|
|
68
|
+
LIVE: string;
|
|
69
|
+
OTHER: string;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
AutoJoinPolicy: {
|
|
73
|
+
ORIGIN_SCOPED: string;
|
|
74
|
+
TAB_AND_ORIGIN_SCOPED: string;
|
|
75
|
+
PAGE_SCOPED: string;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
interface CastContextInstance {
|
|
81
|
+
setOptions(opts: {
|
|
82
|
+
receiverApplicationId: string;
|
|
83
|
+
autoJoinPolicy?: string;
|
|
84
|
+
}): void;
|
|
85
|
+
requestSession(): Promise<string | void>;
|
|
86
|
+
endCurrentSession(stopCasting: boolean): void;
|
|
87
|
+
getCurrentSession(): CastSessionInstance | null;
|
|
88
|
+
getCastState(): string;
|
|
89
|
+
addEventListener(type: string, handler: (e: CastStateEvent) => void): void;
|
|
90
|
+
removeEventListener(type: string, handler: (e: CastStateEvent) => void): void;
|
|
91
|
+
}
|
|
92
|
+
interface CastStateEvent {
|
|
93
|
+
castState?: string;
|
|
94
|
+
sessionState?: string;
|
|
95
|
+
}
|
|
96
|
+
interface CastSessionInstance {
|
|
97
|
+
getSessionId(): string;
|
|
98
|
+
loadMedia(req: LoadRequestInstance): Promise<void>;
|
|
99
|
+
setVolume(vol: number): Promise<void>;
|
|
100
|
+
setMute(muted: boolean): Promise<void>;
|
|
101
|
+
getMediaSession(): CastMediaSessionInstance | null;
|
|
102
|
+
sendMessage(namespace: string, message: string): Promise<void>;
|
|
103
|
+
}
|
|
104
|
+
interface CastMediaSessionInstance {
|
|
105
|
+
seek(req: {
|
|
106
|
+
currentTime: number;
|
|
107
|
+
type: string;
|
|
108
|
+
}): void;
|
|
109
|
+
sessionId: string;
|
|
110
|
+
}
|
|
111
|
+
interface MediaInfoInstance {
|
|
112
|
+
streamType: string;
|
|
113
|
+
metadata: Record<string, unknown> | null;
|
|
114
|
+
}
|
|
115
|
+
interface LoadRequestInstance {
|
|
116
|
+
currentTime: number;
|
|
117
|
+
autoplay: boolean;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export interface CastState {
|
|
121
|
+
isAvailable: boolean;
|
|
122
|
+
isActive: boolean;
|
|
123
|
+
/** 'not_connected' | 'connecting' | 'connected' | 'unavailable' */
|
|
124
|
+
state: 'not_connected' | 'connecting' | 'connected' | 'unavailable';
|
|
125
|
+
}
|
|
126
|
+
export interface ChromecastManagerOptions {
|
|
127
|
+
/**
|
|
128
|
+
* Cast receiver application ID.
|
|
129
|
+
* Defaults to `DEFAULT_MEDIA_RECEIVER_APP_ID` ('CC1AD845').
|
|
130
|
+
*/
|
|
131
|
+
appId?: string;
|
|
132
|
+
/** Called whenever cast availability or session state changes. */
|
|
133
|
+
onChange: (state: CastState) => void;
|
|
134
|
+
}
|
|
135
|
+
export declare class ChromecastManager {
|
|
136
|
+
private readonly appId;
|
|
137
|
+
private readonly onChange;
|
|
138
|
+
private isAvailable;
|
|
139
|
+
private sessionActive;
|
|
140
|
+
private sdkLoaded;
|
|
141
|
+
/** Bound Cast state-change handler (needed for removeEventListener). */
|
|
142
|
+
private castStateHandler;
|
|
143
|
+
constructor(options: ChromecastManagerOptions);
|
|
144
|
+
/**
|
|
145
|
+
* Load the Google Cast SDK and initialise the Cast context.
|
|
146
|
+
* Safe to call multiple times — idempotent.
|
|
147
|
+
*/
|
|
148
|
+
setup(): void;
|
|
149
|
+
/**
|
|
150
|
+
* Open the Cast device picker dialog.
|
|
151
|
+
* Resolves when the user selects a device (or dismisses).
|
|
152
|
+
*/
|
|
153
|
+
requestSession(): Promise<void>;
|
|
154
|
+
/**
|
|
155
|
+
* End the current Cast session (stop casting).
|
|
156
|
+
* @param stopCasting Whether to stop playback on the receiver (true) or leave it running.
|
|
157
|
+
*/
|
|
158
|
+
endSession(stopCasting?: boolean): void;
|
|
159
|
+
/**
|
|
160
|
+
* Load a media URL on the active Cast receiver.
|
|
161
|
+
* Must be called AFTER a session is established.
|
|
162
|
+
*
|
|
163
|
+
* @param src Fully qualified media URL
|
|
164
|
+
* @param contentType MIME type (e.g. 'application/x-mpegURL', 'video/mp4')
|
|
165
|
+
* @param startTime Playhead position in seconds (default 0)
|
|
166
|
+
* @param isLive Whether the stream is live (affects receiver UI)
|
|
167
|
+
*/
|
|
168
|
+
loadMedia(src: string, contentType?: string, startTime?: number, isLive?: boolean): Promise<void>;
|
|
169
|
+
/**
|
|
170
|
+
* Seek the Cast receiver to the given time.
|
|
171
|
+
* No-op when cast is not active.
|
|
172
|
+
*/
|
|
173
|
+
syncTime(time: number): void;
|
|
174
|
+
/**
|
|
175
|
+
* Sync volume / mute state to the Cast receiver.
|
|
176
|
+
* No-op when cast is not active.
|
|
177
|
+
*/
|
|
178
|
+
syncVolume(volume: number, muted: boolean): Promise<void>;
|
|
179
|
+
/** Returns true if at least one Cast device is available. */
|
|
180
|
+
isCastAvailable(): boolean;
|
|
181
|
+
/** Returns true if a Cast session is currently active. */
|
|
182
|
+
isCastActive(): boolean;
|
|
183
|
+
/** Current cast state snapshot. */
|
|
184
|
+
getState(): CastState;
|
|
185
|
+
/** Remove all event listeners. Does NOT end the cast session. */
|
|
186
|
+
destroy(): void;
|
|
187
|
+
private getContext;
|
|
188
|
+
private initContext;
|
|
189
|
+
private syncState;
|
|
190
|
+
private emitState;
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=ChromecastManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChromecastManager.d.ts","sourceRoot":"","sources":["../../../src/core/cast/ChromecastManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { PlayerConfig } from '../../types/config.types';
|
|
2
|
+
import { PlayronEventEmitter } from '../PlayronEventEmitter';
|
|
3
|
+
export type SelectedKeySystem = 'widevine' | 'fairplay' | 'playready' | null;
|
|
4
|
+
export declare class DrmManager {
|
|
5
|
+
private adapter;
|
|
6
|
+
private selectedKeySystem;
|
|
7
|
+
private readonly emitter;
|
|
8
|
+
private destroyed;
|
|
9
|
+
constructor(emitter: PlayronEventEmitter);
|
|
10
|
+
/**
|
|
11
|
+
* Initialize DRM for the given video element and config.
|
|
12
|
+
*
|
|
13
|
+
* Steps:
|
|
14
|
+
* 1. Probe browser capabilities
|
|
15
|
+
* 2. Select key system (preferred or auto-detect)
|
|
16
|
+
* 3. Create adapter
|
|
17
|
+
* 4. Initialize adapter (probe support, attach to element)
|
|
18
|
+
* 5. Emit drm:keysystem + drm:ready events
|
|
19
|
+
*
|
|
20
|
+
* @returns The selected key system identifier, or null if DRM is disabled/unsupported.
|
|
21
|
+
*/
|
|
22
|
+
initialize(videoElement: HTMLVideoElement, drmConfig: PlayerConfig['drm']): Promise<SelectedKeySystem>;
|
|
23
|
+
/** Returns the selected key system, or null if not initialized. */
|
|
24
|
+
getSelectedKeySystem(): SelectedKeySystem;
|
|
25
|
+
/** Destroy the adapter and release all resources. */
|
|
26
|
+
destroy(): void;
|
|
27
|
+
private createAdapter;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=DrmManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrmManager.d.ts","sourceRoot":"","sources":["../../../src/core/drm/DrmManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;AAS7E,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,mBAAmB;IAMxC;;;;;;;;;;;OAWG;IACG,UAAU,CACd,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAmE7B,mEAAmE;IACnE,oBAAoB,IAAI,iBAAiB;IAIzC,qDAAqD;IACrD,OAAO,IAAI,IAAI;IAgBf,OAAO,CAAC,aAAa;CA4CtB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { LicenseAcquisitionConfig } from '../../types/drm.types';
|
|
2
|
+
/**
|
|
3
|
+
* Fetch the FairPlay Streaming server certificate (DER/ASN.1 binary).
|
|
4
|
+
* Result is cached in memory — certificate is only fetched once per session.
|
|
5
|
+
*
|
|
6
|
+
* @param certificateUrl URL of the FPS certificate (.cer / .der)
|
|
7
|
+
* @param headers Optional HTTP headers (e.g. Authorization)
|
|
8
|
+
*/
|
|
9
|
+
export declare function fetchCertificate(certificateUrl: string, headers?: Record<string, string>): Promise<ArrayBuffer>;
|
|
10
|
+
/**
|
|
11
|
+
* Invalidate the in-memory certificate cache.
|
|
12
|
+
* Call on player destroy or certificate rotation.
|
|
13
|
+
*/
|
|
14
|
+
export declare function clearCertificateCache(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Acquire a DRM license from the license server.
|
|
17
|
+
* Sends `challenge` as the POST body and returns the license bytes.
|
|
18
|
+
*
|
|
19
|
+
* Applies `prepareLicenseRequest` and `parseLicenseResponse` hooks if provided.
|
|
20
|
+
*
|
|
21
|
+
* @param licenseUrl License server URL
|
|
22
|
+
* @param challenge License challenge (SPC for FairPlay, PSSH for Widevine)
|
|
23
|
+
* @param headers Extra HTTP request headers
|
|
24
|
+
* @param withCredentials Include cookies / credentials in the request
|
|
25
|
+
* @param acqConfig Timeout, retry, and hook configuration
|
|
26
|
+
*/
|
|
27
|
+
export declare function acquireLicense(licenseUrl: string, challenge: ArrayBuffer, headers?: Record<string, string>, withCredentials?: boolean, acqConfig?: LicenseAcquisitionConfig): Promise<ArrayBuffer>;
|
|
28
|
+
//# sourceMappingURL=LicenseManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LicenseManager.d.ts","sourceRoot":"","sources":["../../../src/core/drm/LicenseManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAwDtE;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACnC,OAAO,CAAC,WAAW,CAAC,CAmBtB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACpC,eAAe,UAAQ,EACvB,SAAS,GAAE,wBAA6B,GACvC,OAAO,CAAC,WAAW,CAAC,CAqCtB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LicenseAcquisitionConfig } from '../../../types/drm.types';
|
|
2
|
+
export interface DrmAdapterConfig {
|
|
3
|
+
/** License server URL */
|
|
4
|
+
licenseUrl: string;
|
|
5
|
+
/** FairPlay only: URL of the FPS server certificate (.cer / .der) */
|
|
6
|
+
certificateUrl?: string;
|
|
7
|
+
/** Extra HTTP headers sent with every license request */
|
|
8
|
+
headers?: Record<string, string>;
|
|
9
|
+
/** Include cookies in license requests */
|
|
10
|
+
withCredentials?: boolean;
|
|
11
|
+
/** Fine-grained license request configuration */
|
|
12
|
+
licenseAcquisitionConfig?: LicenseAcquisitionConfig;
|
|
13
|
+
/** Called on DRM errors */
|
|
14
|
+
onError?: (code: string, message: string, fatal?: boolean) => void;
|
|
15
|
+
/** Called when the key system is ready and keys are loaded */
|
|
16
|
+
onReady?: () => void;
|
|
17
|
+
}
|
|
18
|
+
export interface BaseDrmAdapter {
|
|
19
|
+
/** EME key system identifier (e.g. 'com.apple.fps') */
|
|
20
|
+
readonly keySystem: string;
|
|
21
|
+
/**
|
|
22
|
+
* Initialize the DRM adapter.
|
|
23
|
+
* - Probe key system support via requestMediaKeySystemAccess
|
|
24
|
+
* - Fetch certificate if needed
|
|
25
|
+
* - Attach to the video element and set up session handling
|
|
26
|
+
*
|
|
27
|
+
* @throws If the key system is not supported or initialization fails
|
|
28
|
+
*/
|
|
29
|
+
initialize(videoElement: HTMLVideoElement): Promise<void>;
|
|
30
|
+
/** Clean up all listeners, sessions, and MediaKeys. */
|
|
31
|
+
destroy(): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=BaseDrmAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseDrmAdapter.d.ts","sourceRoot":"","sources":["../../../../src/core/drm/adapters/BaseDrmAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0CAA0C;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;;;;OAOG;IACH,UAAU,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,uDAAuD;IACvD,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseDrmAdapter, DrmAdapterConfig } from './BaseDrmAdapter';
|
|
2
|
+
import { LicenseAcquisitionConfig } from '../../../types/drm.types';
|
|
3
|
+
export interface FairPlayAdapterConfig extends DrmAdapterConfig {
|
|
4
|
+
/** Required for FairPlay: URL of the FPS server certificate */
|
|
5
|
+
certificateUrl: string;
|
|
6
|
+
licenseAcquisitionConfig?: LicenseAcquisitionConfig;
|
|
7
|
+
}
|
|
8
|
+
export declare class FairPlayAdapter implements BaseDrmAdapter {
|
|
9
|
+
readonly keySystem = "com.apple.fps";
|
|
10
|
+
private readonly config;
|
|
11
|
+
private mediaKeys;
|
|
12
|
+
private videoElement;
|
|
13
|
+
private readonly sessions;
|
|
14
|
+
private destroyed;
|
|
15
|
+
private readonly boundOnEncrypted;
|
|
16
|
+
constructor(config: FairPlayAdapterConfig);
|
|
17
|
+
initialize(videoElement: HTMLVideoElement): Promise<void>;
|
|
18
|
+
private handleEncrypted;
|
|
19
|
+
private handleKeyMessage;
|
|
20
|
+
private handleKeyStatusChange;
|
|
21
|
+
destroy(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=FairPlayAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FairPlayAdapter.d.ts","sourceRoot":"","sources":["../../../../src/core/drm/adapters/FairPlayAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAqBzE,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD;AAED,qBAAa,eAAgB,YAAW,cAAc;IACpD,QAAQ,CAAC,SAAS,mBAAuB;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmC;gBAExD,MAAM,EAAE,qBAAqB;IAOnC,UAAU,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyDjD,eAAe;YAkCf,gBAAgB;IA+B9B,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,IAAI,IAAI;CAwBhB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseDrmAdapter, DrmAdapterConfig } from './BaseDrmAdapter';
|
|
2
|
+
import { LicenseAcquisitionConfig } from '../../../types/drm.types';
|
|
3
|
+
export interface PlayReadyAdapterConfig extends DrmAdapterConfig {
|
|
4
|
+
licenseAcquisitionConfig?: LicenseAcquisitionConfig;
|
|
5
|
+
/** Prefer hardware PlayReady (com.microsoft.playready.hardware) when available. Default: false */
|
|
6
|
+
preferHardware?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare class PlayReadyAdapter implements BaseDrmAdapter {
|
|
9
|
+
readonly keySystem: string;
|
|
10
|
+
private readonly config;
|
|
11
|
+
private destroyed;
|
|
12
|
+
constructor(config: PlayReadyAdapterConfig);
|
|
13
|
+
/**
|
|
14
|
+
* Probe PlayReady support and signal readiness.
|
|
15
|
+
* The actual EME session management is handled by dashjs.
|
|
16
|
+
*/
|
|
17
|
+
initialize(_videoElement: HTMLVideoElement): Promise<void>;
|
|
18
|
+
destroy(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=PlayReadyAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayReadyAdapter.d.ts","sourceRoot":"","sources":["../../../../src/core/drm/adapters/PlayReadyAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAkBzE,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,kGAAkG;IAClG,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,gBAAiB,YAAW,cAAc;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,sBAAsB;IAM1C;;;OAGG;IACG,UAAU,CAAC,aAAa,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhE,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BaseDrmAdapter, DrmAdapterConfig } from './BaseDrmAdapter';
|
|
2
|
+
import { LicenseAcquisitionConfig } from '../../../types/drm.types';
|
|
3
|
+
export interface WidevineAdapterConfig extends DrmAdapterConfig {
|
|
4
|
+
licenseAcquisitionConfig?: LicenseAcquisitionConfig;
|
|
5
|
+
}
|
|
6
|
+
export declare class WidevineAdapter implements BaseDrmAdapter {
|
|
7
|
+
readonly keySystem = "com.widevine.alpha";
|
|
8
|
+
private readonly config;
|
|
9
|
+
private destroyed;
|
|
10
|
+
constructor(config: WidevineAdapterConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Probe Widevine support and signal readiness.
|
|
13
|
+
* The actual EME session management is handled by hls.js / dashjs.
|
|
14
|
+
*/
|
|
15
|
+
initialize(_videoElement: HTMLVideoElement): Promise<void>;
|
|
16
|
+
destroy(): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=WidevineAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidevineAdapter.d.ts","sourceRoot":"","sources":["../../../../src/core/drm/adapters/WidevineAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAkBzE,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD;AAED,qBAAa,eAAgB,YAAW,cAAc;IACpD,QAAQ,CAAC,SAAS,wBAAuB;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,qBAAqB;IAIzC;;;OAGG;IACG,UAAU,CAAC,aAAa,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBhE,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SubtitleManager
|
|
3
3
|
*
|
|
4
|
-
* Handles WebVTT subtitle track loading, scheduling, and DOM rendering.
|
|
4
|
+
* Handles WebVTT and TTML/IMSC subtitle track loading, scheduling, and DOM rendering.
|
|
5
5
|
*
|
|
6
6
|
* Features:
|
|
7
|
-
* - Fetches .vtt files via fetch() with optional auth headers
|
|
8
|
-
* - Parses cues using WebVttParser
|
|
7
|
+
* - Fetches .vtt / .ttml / .xml files via fetch() with optional auth headers
|
|
8
|
+
* - Parses WebVTT cues using WebVttParser
|
|
9
|
+
* - Parses TTML/IMSC cues using TtmlParser (auto-detected by URL or content)
|
|
9
10
|
* - Creates an overlay <div> positioned over the video element
|
|
10
11
|
* - Shows/hides cues based on video currentTime using requestAnimationFrame
|
|
11
12
|
* - Supports multiple tracks + track switching
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
* Usage:
|
|
15
16
|
* const subtitles = new SubtitleManager(videoElement, container);
|
|
16
17
|
* await subtitles.loadTrack({ url: 'subs/en.vtt', label: 'English', language: 'en' });
|
|
18
|
+
* await subtitles.loadTrack({ url: 'subs/en.ttml', label: 'English TTML', language: 'en-ttml' });
|
|
17
19
|
* subtitles.selectTrack('en');
|
|
18
20
|
* subtitles.enable();
|
|
19
21
|
*
|
|
@@ -52,15 +54,17 @@ export declare class SubtitleManager {
|
|
|
52
54
|
*/
|
|
53
55
|
constructor(videoElement: HTMLVideoElement, container: HTMLElement);
|
|
54
56
|
/**
|
|
55
|
-
* Fetch and parse a WebVTT
|
|
57
|
+
* Fetch and parse a subtitle track (WebVTT or TTML/IMSC).
|
|
58
|
+
* Format is auto-detected by URL extension (.ttml/.xml) or content.
|
|
56
59
|
* Can be called multiple times for different languages.
|
|
57
60
|
*/
|
|
58
61
|
loadTrack(info: SubtitleTrackInfo): Promise<void>;
|
|
59
62
|
/**
|
|
60
|
-
* Load a track from pre-fetched
|
|
63
|
+
* Load a track from pre-fetched text (no network fetch).
|
|
64
|
+
* Format is auto-detected: TTML/IMSC if content matches, otherwise WebVTT.
|
|
61
65
|
* Used for HLS subtitle playlists where segments are fetched externally.
|
|
62
66
|
*/
|
|
63
|
-
loadTrackFromText(info: SubtitleTrackInfo,
|
|
67
|
+
loadTrackFromText(info: SubtitleTrackInfo, rawText: string): void;
|
|
64
68
|
/**
|
|
65
69
|
* Select the active subtitle track by language code.
|
|
66
70
|
* Pass null to deactivate subtitles (same as disable()).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubtitleManager.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/SubtitleManager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SubtitleManager.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/SubtitleManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAQH,MAAM,WAAW,iBAAiB;IAChC,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AASD,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,OAAO,CAAS;IAExB,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAA+B;IAC9C,sCAAsC;IACtC,OAAO,CAAC,UAAU,CAA+B;IACjD,mCAAmC;IACnC,OAAO,CAAC,SAAS,CAAuB;IACxC,6CAA6C;IAC7C,OAAO,CAAC,YAAY,CAAK;IAEzB;;;;OAIG;gBACS,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW;IAOlE;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAejE;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY1C,8CAA8C;IAC9C,MAAM,IAAI,IAAI;IAQd,gEAAgE;IAChE,OAAO,IAAI,IAAI;IAWf,+DAA+D;IAC/D,SAAS,IAAI,iBAAiB,EAAE;IAIhC,gDAAgD;IAChD,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC,uDAAuD;IACvD,OAAO,IAAI,IAAI;IAef,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,OAAO;IAqCf,OAAO,CAAC,QAAQ;YAUF,QAAQ;CA4BvB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { VttCue } from './WebVttParser';
|
|
2
|
+
export declare class TtmlParser {
|
|
3
|
+
private frameRate;
|
|
4
|
+
private frameRateNumerator;
|
|
5
|
+
private frameRateDenominator;
|
|
6
|
+
private tickRate;
|
|
7
|
+
private styles;
|
|
8
|
+
private regions;
|
|
9
|
+
/**
|
|
10
|
+
* Parse a TTML/IMSC document and return VttCue[] for use with SubtitleManager.
|
|
11
|
+
* Cues are sorted by startTime.
|
|
12
|
+
*/
|
|
13
|
+
parse(ttmlText: string): VttCue[];
|
|
14
|
+
/**
|
|
15
|
+
* Quick check: is this text a TTML document?
|
|
16
|
+
* Checks for <?xml or <tt namespace prefix.
|
|
17
|
+
*/
|
|
18
|
+
static isTtml(text: string): boolean;
|
|
19
|
+
private readFrameRateParams;
|
|
20
|
+
private parseStyles;
|
|
21
|
+
private parseRegions;
|
|
22
|
+
private parseCues;
|
|
23
|
+
private collectParagraphs;
|
|
24
|
+
private parseParagraph;
|
|
25
|
+
private extractSpans;
|
|
26
|
+
private walkContent;
|
|
27
|
+
private resolveStyle;
|
|
28
|
+
private extractStyleAttrs;
|
|
29
|
+
private parseTime;
|
|
30
|
+
/**
|
|
31
|
+
* Normalize TTML #RRGGBBAA to CSS rgba() — all other formats pass through.
|
|
32
|
+
*/
|
|
33
|
+
private normalizeTtmlColor;
|
|
34
|
+
/**
|
|
35
|
+
* Convert a TTML region's origin/extent to an approximate VTT cue settings string.
|
|
36
|
+
* Only percentage-based values are translated; pixel values are ignored.
|
|
37
|
+
*
|
|
38
|
+
* Example: origin="10% 80%" → "position:10% line:80%"
|
|
39
|
+
*/
|
|
40
|
+
private regionToVttSettings;
|
|
41
|
+
/**
|
|
42
|
+
* Find a descendant element by local name, ignoring XML namespace prefixes.
|
|
43
|
+
*/
|
|
44
|
+
private findElement;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=TtmlParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TtmlParser.d.ts","sourceRoot":"","sources":["../../../../src/core/streaming/parsers/TtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAgC7C,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAK;IAErB,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,OAAO,CAAiC;IAIhD;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAgCjC;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAapC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,cAAc;IA2CtB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,iBAAiB;IA4CzB,OAAO,CAAC,SAAS;IAuEjB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,WAAW;CA0BpB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -25,6 +25,10 @@ export { default as VolumeControl } from './ui/Controls/VolumeControl';
|
|
|
25
25
|
export { default as PlaybackSpeedSelector } from './ui/Controls/PlaybackSpeedSelector';
|
|
26
26
|
export { default as SettingsPanel } from './ui/Controls/SettingsPanel';
|
|
27
27
|
export { ControlsVisibilityContext } from './ui/Player';
|
|
28
|
+
export { default as CastButton } from './ui/Controls/CastButton';
|
|
29
|
+
export { default as ChromecastButton } from './ui/Controls/ChromecastButton';
|
|
30
|
+
export { ChromecastManager } from './core/cast/ChromecastManager';
|
|
31
|
+
export type { CastState, ChromecastManagerOptions } from './core/cast/ChromecastManager';
|
|
28
32
|
export { default as EndCard } from './ui/Overlay/EndCard';
|
|
29
33
|
export { default as KeyboardShortcutsOverlay } from './ui/Overlay/KeyboardShortcutsOverlay';
|
|
30
34
|
export { default as ContextMenu } from './ui/Overlay/ContextMenu';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeekBarContainer.d.ts","sourceRoot":"","sources":["../../src/layout/SeekBarContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,UAAU,qBAAqB;IAC7B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,QAAA,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"SeekBarContainer.d.ts","sourceRoot":"","sources":["../../src/layout/SeekBarContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,UAAU,qBAAqB;IAC7B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,QAAA,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,qBAAqB,CAuB9D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|