ts-video-player 0.1.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.
Files changed (251) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +438 -0
  3. package/dist/cdn.d.ts +10 -0
  4. package/dist/cdn.d.ts.map +1 -0
  5. package/dist/cdn.min.js +1046 -0
  6. package/dist/cdn.min.js.map +54 -0
  7. package/dist/cdn.test.d.ts +2 -0
  8. package/dist/cdn.test.d.ts.map +1 -0
  9. package/dist/chunk-36x4yhjn.js +765 -0
  10. package/dist/chunk-36x4yhjn.js.map +12 -0
  11. package/dist/chunk-eajts2jv.js +4243 -0
  12. package/dist/chunk-eajts2jv.js.map +42 -0
  13. package/dist/chunk-z1ehbz9f.js +380 -0
  14. package/dist/chunk-z1ehbz9f.js.map +19 -0
  15. package/dist/config.d.ts +9 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/core/audio-gain.d.ts +67 -0
  18. package/dist/core/audio-gain.d.ts.map +1 -0
  19. package/dist/core/caption-styles.d.ts +121 -0
  20. package/dist/core/caption-styles.d.ts.map +1 -0
  21. package/dist/core/chapters.d.ts +150 -0
  22. package/dist/core/chapters.d.ts.map +1 -0
  23. package/dist/core/error-overlay.d.ts +71 -0
  24. package/dist/core/error-overlay.d.ts.map +1 -0
  25. package/dist/core/events.d.ts +119 -0
  26. package/dist/core/events.d.ts.map +1 -0
  27. package/dist/core/features.d.ts +64 -0
  28. package/dist/core/features.d.ts.map +1 -0
  29. package/dist/core/i18n.d.ts +132 -0
  30. package/dist/core/i18n.d.ts.map +1 -0
  31. package/dist/core/index.d.ts +37 -0
  32. package/dist/core/index.d.ts.map +1 -0
  33. package/dist/core/live.d.ts +130 -0
  34. package/dist/core/live.d.ts.map +1 -0
  35. package/dist/core/media-session.d.ts +38 -0
  36. package/dist/core/media-session.d.ts.map +1 -0
  37. package/dist/core/orientation.d.ts +22 -0
  38. package/dist/core/orientation.d.ts.map +1 -0
  39. package/dist/core/popover.d.ts +42 -0
  40. package/dist/core/popover.d.ts.map +1 -0
  41. package/dist/core/remote-playback.d.ts +195 -0
  42. package/dist/core/remote-playback.d.ts.map +1 -0
  43. package/dist/core/settings-menu.d.ts +132 -0
  44. package/dist/core/settings-menu.d.ts.map +1 -0
  45. package/dist/core/spinner.d.ts +67 -0
  46. package/dist/core/spinner.d.ts.map +1 -0
  47. package/dist/core/state.d.ts +142 -0
  48. package/dist/core/state.d.ts.map +1 -0
  49. package/dist/core/text-tracks.d.ts +162 -0
  50. package/dist/core/text-tracks.d.ts.map +1 -0
  51. package/dist/core/themes.d.ts +213 -0
  52. package/dist/core/themes.d.ts.map +1 -0
  53. package/dist/core/thumbnails.d.ts +124 -0
  54. package/dist/core/thumbnails.d.ts.map +1 -0
  55. package/dist/core/tooltips.d.ts +100 -0
  56. package/dist/core/tooltips.d.ts.map +1 -0
  57. package/dist/elements/base.d.ts +3 -0
  58. package/dist/elements/base.d.ts.map +1 -0
  59. package/dist/elements/index.d.ts +33 -0
  60. package/dist/elements/index.d.ts.map +1 -0
  61. package/dist/elements/index.js +55 -0
  62. package/dist/elements/index.js.map +9 -0
  63. package/dist/elements/media-airplay-button.d.ts +13 -0
  64. package/dist/elements/media-airplay-button.d.ts.map +1 -0
  65. package/dist/elements/media-error-display.d.ts +13 -0
  66. package/dist/elements/media-error-display.d.ts.map +1 -0
  67. package/dist/elements/media-fullscreen-button.d.ts +13 -0
  68. package/dist/elements/media-fullscreen-button.d.ts.map +1 -0
  69. package/dist/elements/media-live-button.d.ts +13 -0
  70. package/dist/elements/media-live-button.d.ts.map +1 -0
  71. package/dist/elements/media-mute-button.d.ts +13 -0
  72. package/dist/elements/media-mute-button.d.ts.map +1 -0
  73. package/dist/elements/media-pip-button.d.ts +13 -0
  74. package/dist/elements/media-pip-button.d.ts.map +1 -0
  75. package/dist/elements/media-play-button.d.ts +14 -0
  76. package/dist/elements/media-play-button.d.ts.map +1 -0
  77. package/dist/elements/media-playback-rate-button.d.ts +10 -0
  78. package/dist/elements/media-playback-rate-button.d.ts.map +1 -0
  79. package/dist/elements/media-preview-time.d.ts +18 -0
  80. package/dist/elements/media-preview-time.d.ts.map +1 -0
  81. package/dist/elements/media-progress-bar.d.ts +16 -0
  82. package/dist/elements/media-progress-bar.d.ts.map +1 -0
  83. package/dist/elements/media-remote-playback-button.d.ts +16 -0
  84. package/dist/elements/media-remote-playback-button.d.ts.map +1 -0
  85. package/dist/elements/media-seek-button.d.ts +9 -0
  86. package/dist/elements/media-seek-button.d.ts.map +1 -0
  87. package/dist/elements/media-settings-menu.d.ts +32 -0
  88. package/dist/elements/media-settings-menu.d.ts.map +1 -0
  89. package/dist/elements/media-time-display.d.ts +21 -0
  90. package/dist/elements/media-time-display.d.ts.map +1 -0
  91. package/dist/elements/media-time-group.d.ts +22 -0
  92. package/dist/elements/media-time-group.d.ts.map +1 -0
  93. package/dist/elements/media-time-separator.d.ts +13 -0
  94. package/dist/elements/media-time-separator.d.ts.map +1 -0
  95. package/dist/elements/media-volume-slider.d.ts +16 -0
  96. package/dist/elements/media-volume-slider.d.ts.map +1 -0
  97. package/dist/elements/utils.d.ts +27 -0
  98. package/dist/elements/utils.d.ts.map +1 -0
  99. package/dist/elements/video-player.d.ts +23 -0
  100. package/dist/elements/video-player.d.ts.map +1 -0
  101. package/dist/elements/video-skin.d.ts +23 -0
  102. package/dist/elements/video-skin.d.ts.map +1 -0
  103. package/dist/features/captions.d.ts +8 -0
  104. package/dist/features/captions.d.ts.map +1 -0
  105. package/dist/features/create-player.d.ts +45 -0
  106. package/dist/features/create-player.d.ts.map +1 -0
  107. package/dist/features/fullscreen.d.ts +8 -0
  108. package/dist/features/fullscreen.d.ts.map +1 -0
  109. package/dist/features/gestures.d.ts +8 -0
  110. package/dist/features/gestures.d.ts.map +1 -0
  111. package/dist/features/index.d.ts +26 -0
  112. package/dist/features/index.d.ts.map +1 -0
  113. package/dist/features/index.js +31 -0
  114. package/dist/features/index.js.map +9 -0
  115. package/dist/features/keyboard.d.ts +8 -0
  116. package/dist/features/keyboard.d.ts.map +1 -0
  117. package/dist/features/pip.d.ts +8 -0
  118. package/dist/features/pip.d.ts.map +1 -0
  119. package/dist/features/playback.d.ts +8 -0
  120. package/dist/features/playback.d.ts.map +1 -0
  121. package/dist/features/quality.d.ts +8 -0
  122. package/dist/features/quality.d.ts.map +1 -0
  123. package/dist/features/types.d.ts +26 -0
  124. package/dist/features/types.d.ts.map +1 -0
  125. package/dist/features/volume.d.ts +8 -0
  126. package/dist/features/volume.d.ts.map +1 -0
  127. package/dist/index.d.ts +84 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +8149 -0
  130. package/dist/index.js.map +31 -0
  131. package/dist/layouts/index.d.ts +58 -0
  132. package/dist/layouts/index.d.ts.map +1 -0
  133. package/dist/player.d.ts +90 -0
  134. package/dist/player.d.ts.map +1 -0
  135. package/dist/plugins/ads.d.ts +311 -0
  136. package/dist/plugins/ads.d.ts.map +1 -0
  137. package/dist/plugins/analytics.d.ts +203 -0
  138. package/dist/plugins/analytics.d.ts.map +1 -0
  139. package/dist/plugins/end-screen.d.ts +184 -0
  140. package/dist/plugins/end-screen.d.ts.map +1 -0
  141. package/dist/plugins/index.d.ts +13 -0
  142. package/dist/plugins/index.d.ts.map +1 -0
  143. package/dist/plugins/index.js +20 -0
  144. package/dist/plugins/index.js.map +9 -0
  145. package/dist/plugins/skip-segments.d.ts +159 -0
  146. package/dist/plugins/skip-segments.d.ts.map +1 -0
  147. package/dist/plugins/watermark.d.ts +157 -0
  148. package/dist/plugins/watermark.d.ts.map +1 -0
  149. package/dist/providers/base.d.ts +56 -0
  150. package/dist/providers/base.d.ts.map +1 -0
  151. package/dist/providers/dash.d.ts +94 -0
  152. package/dist/providers/dash.d.ts.map +1 -0
  153. package/dist/providers/hls.d.ts +182 -0
  154. package/dist/providers/hls.d.ts.map +1 -0
  155. package/dist/providers/html5.d.ts +64 -0
  156. package/dist/providers/html5.d.ts.map +1 -0
  157. package/dist/providers/index.d.ts +41 -0
  158. package/dist/providers/index.d.ts.map +1 -0
  159. package/dist/providers/vimeo.d.ts +157 -0
  160. package/dist/providers/vimeo.d.ts.map +1 -0
  161. package/dist/providers/youtube.d.ts +134 -0
  162. package/dist/providers/youtube.d.ts.map +1 -0
  163. package/dist/stx/index.d.ts +59 -0
  164. package/dist/stx/index.d.ts.map +1 -0
  165. package/dist/stx/index.js +480 -0
  166. package/dist/stx/index.js.map +11 -0
  167. package/dist/types.d.ts +724 -0
  168. package/dist/types.d.ts.map +1 -0
  169. package/dist/ui/components.d.ts +121 -0
  170. package/dist/ui/components.d.ts.map +1 -0
  171. package/dist/ui/index.d.ts +9 -0
  172. package/dist/ui/index.d.ts.map +1 -0
  173. package/dist/ui/index.js +16 -0
  174. package/dist/ui/index.js.map +9 -0
  175. package/package.json +109 -0
  176. package/src/cdn.test.ts +10 -0
  177. package/src/cdn.ts +60 -0
  178. package/src/config.ts +25 -0
  179. package/src/core/audio-gain.ts +171 -0
  180. package/src/core/caption-styles.ts +568 -0
  181. package/src/core/chapters.ts +551 -0
  182. package/src/core/error-overlay.ts +354 -0
  183. package/src/core/events.ts +552 -0
  184. package/src/core/features.ts +287 -0
  185. package/src/core/i18n.ts +590 -0
  186. package/src/core/index.ts +249 -0
  187. package/src/core/live.ts +472 -0
  188. package/src/core/media-session.ts +137 -0
  189. package/src/core/orientation.ts +57 -0
  190. package/src/core/popover.ts +143 -0
  191. package/src/core/remote-playback.ts +661 -0
  192. package/src/core/settings-menu.ts +630 -0
  193. package/src/core/spinner.ts +310 -0
  194. package/src/core/state.ts +476 -0
  195. package/src/core/text-tracks.ts +599 -0
  196. package/src/core/themes.ts +607 -0
  197. package/src/core/thumbnails.ts +457 -0
  198. package/src/core/tooltips.ts +370 -0
  199. package/src/elements/base.ts +2 -0
  200. package/src/elements/index.ts +82 -0
  201. package/src/elements/media-airplay-button.ts +78 -0
  202. package/src/elements/media-error-display.ts +47 -0
  203. package/src/elements/media-fullscreen-button.ts +72 -0
  204. package/src/elements/media-live-button.ts +65 -0
  205. package/src/elements/media-mute-button.ts +69 -0
  206. package/src/elements/media-pip-button.ts +66 -0
  207. package/src/elements/media-play-button.ts +69 -0
  208. package/src/elements/media-playback-rate-button.ts +59 -0
  209. package/src/elements/media-preview-time.ts +75 -0
  210. package/src/elements/media-progress-bar.ts +200 -0
  211. package/src/elements/media-remote-playback-button.ts +108 -0
  212. package/src/elements/media-seek-button.ts +50 -0
  213. package/src/elements/media-settings-menu.ts +302 -0
  214. package/src/elements/media-time-display.ts +99 -0
  215. package/src/elements/media-time-group.ts +41 -0
  216. package/src/elements/media-time-separator.ts +35 -0
  217. package/src/elements/media-volume-slider.ts +140 -0
  218. package/src/elements/utils.ts +82 -0
  219. package/src/elements/video-player.ts +175 -0
  220. package/src/elements/video-skin.ts +127 -0
  221. package/src/features/captions.ts +56 -0
  222. package/src/features/create-player.ts +91 -0
  223. package/src/features/fullscreen.ts +44 -0
  224. package/src/features/gestures.ts +44 -0
  225. package/src/features/index.ts +44 -0
  226. package/src/features/keyboard.ts +89 -0
  227. package/src/features/pip.ts +47 -0
  228. package/src/features/playback.ts +68 -0
  229. package/src/features/quality.ts +19 -0
  230. package/src/features/types.ts +28 -0
  231. package/src/features/volume.ts +46 -0
  232. package/src/index.ts +635 -0
  233. package/src/layouts/index.ts +672 -0
  234. package/src/player.ts +821 -0
  235. package/src/plugins/ads.ts +1045 -0
  236. package/src/plugins/analytics.ts +673 -0
  237. package/src/plugins/end-screen.ts +793 -0
  238. package/src/plugins/index.ts +61 -0
  239. package/src/plugins/skip-segments.ts +537 -0
  240. package/src/plugins/watermark.ts +537 -0
  241. package/src/providers/base.ts +197 -0
  242. package/src/providers/dash.ts +588 -0
  243. package/src/providers/hls.ts +624 -0
  244. package/src/providers/html5.ts +473 -0
  245. package/src/providers/index.ts +97 -0
  246. package/src/providers/vimeo.ts +533 -0
  247. package/src/providers/youtube.ts +542 -0
  248. package/src/stx/index.ts +606 -0
  249. package/src/types.ts +874 -0
  250. package/src/ui/components.ts +910 -0
  251. package/src/ui/index.ts +29 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * ts-video-player UI Components
3
+ *
4
+ * UI components for building video player interfaces.
5
+ *
6
+ * @module ui/components
7
+ */
8
+ import type { Player, PlayerState, UIComponent, SliderOptions, MenuItem } from '../types';
9
+ /**
10
+ * Base class for UI components
11
+ */
12
+ export declare abstract class BaseComponent implements UIComponent {
13
+ abstract name: string;
14
+ protected player: Player | null;
15
+ protected element: HTMLElement | null;
16
+ protected unsubscribes: Array<() => void>;
17
+ render(player: Player): HTMLElement;
18
+ protected abstract createElement(): HTMLElement;
19
+ protected abstract attachEvents(): void;
20
+ protected subscribeToState(): void;
21
+ update(_state: PlayerState): void;
22
+ destroy(): void;
23
+ protected el<T extends HTMLElement>(tag: string, attrs?: Record<string, string>, children?: (HTMLElement | string)[]): T;
24
+ }
25
+ export declare class PlayButton extends BaseComponent {
26
+ name: string;
27
+ protected createElement(): HTMLElement;
28
+ protected attachEvents(): void;
29
+ protected subscribeToState(): void;
30
+ update(state: PlayerState): void;
31
+ private getIcon;
32
+ }
33
+ export declare class MuteButton extends BaseComponent {
34
+ name: string;
35
+ protected createElement(): HTMLElement;
36
+ protected attachEvents(): void;
37
+ update(state: PlayerState): void;
38
+ private getIcon;
39
+ }
40
+ export declare class FullscreenButton extends BaseComponent {
41
+ name: string;
42
+ protected createElement(): HTMLElement;
43
+ protected attachEvents(): void;
44
+ update(state: PlayerState): void;
45
+ private getIcon;
46
+ }
47
+ export declare class PiPButton extends BaseComponent {
48
+ name: string;
49
+ protected createElement(): HTMLElement;
50
+ protected attachEvents(): void;
51
+ update(state: PlayerState): void;
52
+ private getIcon;
53
+ }
54
+ export declare class TimeDisplay extends BaseComponent {
55
+ name: string;
56
+ private showRemaining;
57
+ protected createElement(): HTMLElement;
58
+ protected attachEvents(): void;
59
+ update(state: PlayerState): void;
60
+ }
61
+ export declare class Slider extends BaseComponent {
62
+ name: string;
63
+ private options;
64
+ private track;
65
+ private fill;
66
+ private thumb;
67
+ private isDragging;
68
+ private boundPointerMove;
69
+ private boundPointerUp;
70
+ constructor(options: SliderOptions);
71
+ protected createElement(): HTMLElement;
72
+ protected attachEvents(): void;
73
+ private onPointerDown;
74
+ private onPointerMove;
75
+ private onPointerUp;
76
+ private onKeyDown;
77
+ private updateFromPointer;
78
+ setValue(value: number): void;
79
+ private updateVisual;
80
+ destroy(): void;
81
+ }
82
+ export declare class ProgressBar extends BaseComponent {
83
+ name: string;
84
+ private slider;
85
+ private buffered;
86
+ private isSeeking;
87
+ protected createElement(): HTMLElement;
88
+ protected attachEvents(): void;
89
+ update(state: PlayerState): void;
90
+ destroy(): void;
91
+ }
92
+ export declare class VolumeSlider extends BaseComponent {
93
+ name: string;
94
+ private slider;
95
+ protected createElement(): HTMLElement;
96
+ protected attachEvents(): void;
97
+ update(state: PlayerState): void;
98
+ destroy(): void;
99
+ }
100
+ export declare class Menu extends BaseComponent {
101
+ name: string;
102
+ private items;
103
+ private isOpen;
104
+ private menuEl;
105
+ private onSelect?;
106
+ constructor(items: MenuItem[], onSelect?: (item: MenuItem) => void);
107
+ protected createElement(): HTMLElement;
108
+ private renderItems;
109
+ protected attachEvents(): void;
110
+ toggle(): void;
111
+ open(): void;
112
+ close(): void;
113
+ setItems(items: MenuItem[]): void;
114
+ private getIcon;
115
+ }
116
+ /**
117
+ * Format time in seconds to MM:SS or HH:MM:SS
118
+ */
119
+ export declare function formatTime(seconds: number): string;
120
+ export declare const UI_STYLES = "\n.ts-video-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n padding: 8px;\n background: transparent;\n border: none;\n color: white;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n\n.ts-video-btn:hover {\n opacity: 0.8;\n}\n\n.ts-video-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.ts-video-time {\n font-size: 14px;\n color: white;\n font-variant-numeric: tabular-nums;\n user-select: none;\n cursor: pointer;\n}\n\n.ts-video-slider {\n position: relative;\n width: 100%;\n height: 20px;\n cursor: pointer;\n}\n\n.ts-video-slider__track {\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 4px;\n background: rgba(255, 255, 255, 0.3);\n border-radius: 2px;\n transform: translateY(-50%);\n}\n\n.ts-video-slider__fill {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n background: #fff;\n border-radius: 2px;\n}\n\n.ts-video-slider__thumb {\n position: absolute;\n top: 50%;\n width: 12px;\n height: 12px;\n background: #fff;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n transition: transform 0.1s;\n}\n\n.ts-video-slider:hover .ts-video-slider__thumb {\n transform: translate(-50%, -50%) scale(1.2);\n}\n\n.ts-video-progress {\n flex: 1;\n margin: 0 12px;\n}\n\n.ts-video-progress__buffered {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n background: rgba(255, 255, 255, 0.4);\n border-radius: 2px;\n}\n\n.ts-video-volume {\n width: 80px;\n}\n\n.ts-video-menu {\n position: relative;\n}\n\n.ts-video-menu__content {\n position: absolute;\n bottom: 100%;\n right: 0;\n min-width: 150px;\n max-height: 200px;\n overflow-y: auto;\n background: rgba(28, 28, 28, 0.95);\n border-radius: 4px;\n padding: 4px 0;\n opacity: 0;\n visibility: hidden;\n transform: translateY(10px);\n transition: opacity 0.2s, transform 0.2s, visibility 0.2s;\n}\n\n.ts-video-menu--open .ts-video-menu__content {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n\n.ts-video-menu__item {\n display: block;\n width: 100%;\n padding: 8px 16px;\n background: none;\n border: none;\n color: white;\n text-align: left;\n cursor: pointer;\n font-size: 14px;\n}\n\n.ts-video-menu__item:hover {\n background: rgba(255, 255, 255, 0.1);\n}\n\n.ts-video-menu__item--checked::before {\n content: '\u2713';\n margin-right: 8px;\n}\n\n.ts-video-menu__item--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n";
121
+ //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/ui/components.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * ts-video-player UI
3
+ *
4
+ * UI components for building custom video player interfaces.
5
+ *
6
+ * @module ui
7
+ */
8
+ export { BaseComponent, PlayButton, MuteButton, FullscreenButton, PiPButton, TimeDisplay, Slider, ProgressBar, VolumeSlider, Menu, formatTime, UI_STYLES, } from './components';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,aAAa,EAEb,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,SAAS,EAET,WAAW,EAEX,MAAM,EACN,WAAW,EACX,YAAY,EAEZ,IAAI,EAEJ,UAAU,EAEV,SAAS,GACV,MAAM,cAAc,CAAA"}
@@ -0,0 +1,16 @@
1
+ export {
2
+ formatTime,
3
+ VolumeSlider,
4
+ UI_STYLES,
5
+ TimeDisplay,
6
+ Slider,
7
+ ProgressBar,
8
+ PlayButton,
9
+ PiPButton,
10
+ MuteButton,
11
+ Menu,
12
+ FullscreenButton,
13
+ BaseComponent
14
+ };
15
+
16
+ //# debugId=1ABA40A6ABCD40F964756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "1ABA40A6ABCD40F964756E2164756E21",
8
+ "names": []
9
+ }
package/package.json ADDED
@@ -0,0 +1,109 @@
1
+ {
2
+ "name": "ts-video-player",
3
+ "version": "0.1.0",
4
+ "description": "A modern, framework-agnostic video player with deep stx integration",
5
+ "author": "Chris Breuer <chris@stacksjs.org>",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "sideEffects": [
12
+ "./dist/cdn.min.js"
13
+ ],
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.js"
18
+ },
19
+ "./elements": {
20
+ "types": "./dist/elements/index.d.ts",
21
+ "import": "./dist/elements/index.js"
22
+ },
23
+ "./features": {
24
+ "types": "./dist/features/index.d.ts",
25
+ "import": "./dist/features/index.js"
26
+ },
27
+ "./cdn": {
28
+ "import": "./dist/cdn.min.js"
29
+ },
30
+ "./core": {
31
+ "types": "./dist/core/index.d.ts"
32
+ },
33
+ "./stx": {
34
+ "types": "./dist/stx/index.d.ts",
35
+ "import": "./dist/stx/index.js"
36
+ },
37
+ "./plugins": {
38
+ "types": "./dist/plugins/index.d.ts",
39
+ "import": "./dist/plugins/index.js"
40
+ },
41
+ "./providers/*": {
42
+ "types": "./dist/providers/*.d.ts",
43
+ "import": "./dist/providers/*.js"
44
+ },
45
+ "./ui": {
46
+ "types": "./dist/ui/index.d.ts",
47
+ "import": "./dist/ui/index.js"
48
+ },
49
+ "./styles/*": "./dist/styles/*"
50
+ },
51
+ "files": [
52
+ "dist",
53
+ "src"
54
+ ],
55
+ "scripts": {
56
+ "build": "bun run build.ts",
57
+ "dev": "bun --watch src/index.ts",
58
+ "test": "bun test",
59
+ "typecheck": "tsc --noEmit",
60
+ "lint": "bunx --bun pickier .",
61
+ "lint:fix": "bunx --bun pickier . --fix"
62
+ },
63
+ "devDependencies": {
64
+ "@types/bun": "latest",
65
+ "typescript": "^5.7.0"
66
+ },
67
+ "peerDependencies": {
68
+ "stx": ">=0.65.0"
69
+ },
70
+ "peerDependenciesMeta": {
71
+ "stx": {
72
+ "optional": true
73
+ }
74
+ },
75
+ "keywords": [
76
+ "video",
77
+ "player",
78
+ "media",
79
+ "hls",
80
+ "dash",
81
+ "youtube",
82
+ "vimeo",
83
+ "stx",
84
+ "web-components",
85
+ "accessibility",
86
+ "streaming",
87
+ "captions",
88
+ "subtitles",
89
+ "thumbnails",
90
+ "chapters",
91
+ "airplay",
92
+ "chromecast",
93
+ "analytics",
94
+ "ads",
95
+ "vast",
96
+ "vpaid",
97
+ "watermark",
98
+ "i18n",
99
+ "themes"
100
+ ],
101
+ "repository": {
102
+ "type": "git",
103
+ "url": "https://github.com/stacksjs/ts-video-player"
104
+ },
105
+ "bugs": {
106
+ "url": "https://github.com/stacksjs/ts-video-player/issues"
107
+ },
108
+ "homepage": "https://github.com/stacksjs/ts-video-player#readme"
109
+ }
@@ -0,0 +1,10 @@
1
+ import { describe, expect, it } from 'bun:test'
2
+
3
+ describe('CDN entry', () => {
4
+ it('keeps browser registration isolated from server runtimes', async () => {
5
+ const previous = (globalThis as { window?: unknown }).window
6
+ delete (globalThis as { window?: unknown }).window
7
+ await expect(import(`./cdn?server=${Date.now()}`)).resolves.toBeDefined()
8
+ if (previous !== undefined) (globalThis as { window?: unknown }).window = previous
9
+ })
10
+ })
package/src/cdn.ts ADDED
@@ -0,0 +1,60 @@
1
+ /**
2
+ * ts-video-player CDN Entry Point
3
+ *
4
+ * Registers the library on `window.VideoPlayer` for script-tag usage.
5
+ * This file has side effects and should be listed in package.json sideEffects.
6
+ *
7
+ * @module cdn
8
+ */
9
+
10
+ import { createPlayer, Player } from './player'
11
+ import { EventEmitter } from './core/events'
12
+ import { StateStore } from './core/state'
13
+ import { HTML5Provider } from './providers/html5'
14
+ import { YouTubeProvider } from './providers/youtube'
15
+ import { HLSProvider } from './providers/hls'
16
+ import { DASHProvider } from './providers/dash'
17
+ import { applyTheme, presetThemes } from './core/themes'
18
+ import { I18n, t } from './core/i18n'
19
+ import { layouts, createLayoutManager } from './layouts'
20
+ import {
21
+ VideoAnalytics, analyticsPlugin,
22
+ AdsManager, adsPlugin,
23
+ SkipSegmentsManager, skipSegmentsPlugin,
24
+ EndScreenManager, endScreenPlugin,
25
+ WatermarkManager, watermarkPlugin,
26
+ } from './plugins'
27
+ import { registerElements } from './elements'
28
+
29
+ if (typeof window !== 'undefined') {
30
+ registerElements();
31
+ (window as any).VideoPlayer = {
32
+ createPlayer,
33
+ Player,
34
+ EventEmitter,
35
+ StateStore,
36
+ HTML5Provider,
37
+ YouTubeProvider,
38
+ HLSProvider,
39
+ DASHProvider,
40
+ applyTheme,
41
+ presetThemes,
42
+ I18n,
43
+ t,
44
+ layouts,
45
+ createLayoutManager,
46
+ registerElements,
47
+ plugins: {
48
+ VideoAnalytics,
49
+ analyticsPlugin,
50
+ AdsManager,
51
+ adsPlugin,
52
+ SkipSegmentsManager,
53
+ skipSegmentsPlugin,
54
+ EndScreenManager,
55
+ endScreenPlugin,
56
+ WatermarkManager,
57
+ watermarkPlugin,
58
+ },
59
+ }
60
+ }
package/src/config.ts ADDED
@@ -0,0 +1,25 @@
1
+ interface VideoConfig {
2
+ verbose: boolean
3
+ [key: string]: unknown
4
+ }
5
+ import { loadConfig } from 'bunfig'
6
+
7
+ export const defaultConfig: VideoConfig = {
8
+ verbose: true,
9
+ }
10
+
11
+ // Lazy-loaded config to avoid top-level await (enables bun --compile)
12
+ let _config: VideoConfig | null = null
13
+
14
+ export async function getConfig(): Promise<VideoConfig> {
15
+ if (!_config) {
16
+ _config = await loadConfig({
17
+ name: 'video',
18
+ defaultConfig,
19
+ })
20
+ }
21
+ return _config
22
+ }
23
+
24
+ // For backwards compatibility - synchronous access with default fallback
25
+ export const config: VideoConfig = defaultConfig
@@ -0,0 +1,171 @@
1
+ /**
2
+ * ts-video-player Audio Gain
3
+ *
4
+ * Audio gain/boost using Web Audio API.
5
+ *
6
+ * @module core/audio-gain
7
+ */
8
+
9
+ // =============================================================================
10
+ // Types
11
+ // =============================================================================
12
+
13
+ export interface AudioGainAdapter {
14
+ /** Current gain value (1.0 = normal, >1.0 = boosted) */
15
+ readonly currentGain: number
16
+ /** Whether audio gain is supported */
17
+ readonly supported: boolean
18
+ /** Set the gain value */
19
+ setGain(gain: number): void
20
+ /** Remove gain (reset to 1.0) */
21
+ removeGain(): void
22
+ /** Destroy the gain node */
23
+ destroy(): void
24
+ }
25
+
26
+ // =============================================================================
27
+ // Audio Gain Implementation
28
+ // =============================================================================
29
+
30
+ /**
31
+ * Audio gain controller using Web Audio API
32
+ */
33
+ export class AudioGain implements AudioGainAdapter {
34
+ private media: HTMLMediaElement
35
+ private audioContext: AudioContext | null = null
36
+ private sourceNode: MediaElementAudioSourceNode | null = null
37
+ private gainNode: GainNode | null = null
38
+ private _currentGain = 1
39
+
40
+ constructor(media: HTMLMediaElement) {
41
+ this.media = media
42
+ }
43
+
44
+ get currentGain(): number {
45
+ return this._currentGain
46
+ }
47
+
48
+ get supported(): boolean {
49
+ return typeof AudioContext !== 'undefined' || typeof (window as any).webkitAudioContext !== 'undefined'
50
+ }
51
+
52
+ /**
53
+ * Set the gain value
54
+ *
55
+ * @param gain - Gain value (1.0 = normal, 2.0 = 2x volume)
56
+ */
57
+ setGain(gain: number): void {
58
+ if (!this.supported) return
59
+
60
+ // Clamp gain to reasonable range
61
+ const clampedGain = Math.max(0, Math.min(10, gain))
62
+
63
+ // If gain is 1, just remove the effect
64
+ if (clampedGain === 1 && this._currentGain !== 1) {
65
+ this.removeGain()
66
+ return
67
+ }
68
+
69
+ // Create audio context if needed
70
+ if (!this.audioContext) {
71
+ this.createAudioContext()
72
+ }
73
+
74
+ if (!this.gainNode) return
75
+
76
+ this._currentGain = clampedGain
77
+ this.gainNode.gain.value = clampedGain
78
+ }
79
+
80
+ /**
81
+ * Remove gain (reset to 1.0)
82
+ */
83
+ removeGain(): void {
84
+ this._currentGain = 1
85
+
86
+ if (this.gainNode) {
87
+ this.gainNode.gain.value = 1
88
+ }
89
+
90
+ // Optionally disconnect to save resources
91
+ // this.disconnectNodes()
92
+ }
93
+
94
+ /**
95
+ * Destroy the audio context and nodes
96
+ */
97
+ destroy(): void {
98
+ this.disconnectNodes()
99
+
100
+ if (this.audioContext) {
101
+ this.audioContext.close().catch(() => {})
102
+ this.audioContext = null
103
+ }
104
+
105
+ this._currentGain = 1
106
+ }
107
+
108
+ private createAudioContext(): void {
109
+ try {
110
+ // Create audio context
111
+ const AudioContextClass = window.AudioContext || (window as any).webkitAudioContext
112
+ this.audioContext = new AudioContextClass()
113
+
114
+ // Create source node from media element
115
+ this.sourceNode = this.audioContext.createMediaElementSource(this.media)
116
+
117
+ // Create gain node
118
+ this.gainNode = this.audioContext.createGain()
119
+ this.gainNode.gain.value = this._currentGain
120
+
121
+ // Connect: source -> gain -> destination
122
+ this.sourceNode.connect(this.gainNode)
123
+ this.gainNode.connect(this.audioContext.destination)
124
+ } catch (error) {
125
+ console.warn('[ts-video-player] Failed to create audio gain context:', error)
126
+ }
127
+ }
128
+
129
+ private disconnectNodes(): void {
130
+ try {
131
+ this.sourceNode?.disconnect()
132
+ this.gainNode?.disconnect()
133
+ } catch {
134
+ // Ignore disconnect errors
135
+ }
136
+
137
+ this.sourceNode = null
138
+ this.gainNode = null
139
+ }
140
+ }
141
+
142
+ // =============================================================================
143
+ // Factory
144
+ // =============================================================================
145
+
146
+ /**
147
+ * Create an audio gain controller for a media element
148
+ */
149
+ export function createAudioGain(media: HTMLMediaElement): AudioGainAdapter {
150
+ return new AudioGain(media)
151
+ }
152
+
153
+ // =============================================================================
154
+ // Presets
155
+ // =============================================================================
156
+
157
+ /**
158
+ * Common gain presets
159
+ */
160
+ export const GAIN_PRESETS = {
161
+ normal: 1.0,
162
+ boost_small: 1.5,
163
+ boost_medium: 2.0,
164
+ boost_large: 3.0,
165
+ boost_max: 5.0,
166
+ } as const
167
+
168
+ /**
169
+ * Available gain steps for UI
170
+ */
171
+ export const GAIN_STEPS = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 4, 5] as const