Skip to content

feat(media): add symbol-backed media type guards - #2044

Draft
mihar-22 wants to merge 2 commits into
mainfrom
feat/media-type-symbol-checks
Draft

feat(media): add symbol-backed media type guards#2044
mihar-22 wants to merge 2 commits into
mainfrom
feat/media-type-symbol-checks

Conversation

@mihar-22

@mihar-22 mihar-22 commented Aug 11, 2026

Copy link
Copy Markdown
Member

Summary

Add stable, symbol-backed identity checks for the Media facades so consumers can detect Media types without inferring them from playback-engine shape. Mux Data now chooses its hls.js and dash.js integrations from those Media checks while retaining engine-specific metadata validation where mux-embed requires it.

Changes

  • Add public type guards for Dash, hls.js, Mux, native HLS, Vimeo, YouTube, and the SPF simple-HLS Media facades
  • Preserve inherited identities, so MuxMedia is also recognized as HlsJsMedia
  • Add getMediaEngine() as the shared safe utility for reading optional Media engines
  • Replace Mux Data structural engine detection with Media identity checks and cover branded and unbranded cases
  • Remove the now-unused hasMethods predicate from Utils

Testing

  • pnpm -F @videojs/media test (572 passed)
  • pnpm -F @videojs/spf test (1,440 passed, 14 skipped)
  • pnpm -F @videojs/utils test (417 passed, 3 skipped)
  • pnpm -F @videojs/media build
  • pnpm -F @videojs/spf build
  • pnpm -F @videojs/utils build
  • pnpm exec tsgo --noEmit -p packages/media/tsconfig.json
  • pnpm exec tsgo --noEmit -p packages/spf/tsconfig.json
  • pnpm exec tsgo --noEmit -p packages/utils/tsconfig.json
  • pnpm -F site api-docs

pnpm typecheck still reports existing Store/HTML custom-element typing errors outside this diff; the affected Media, SPF, and Utils projects pass their direct typechecks.


Note

Cursor Bugbot is generating a summary for commit b183728. Configure here.

@netlify

netlify Bot commented Aug 11, 2026

Copy link
Copy Markdown

Deploy Preview for vjs10-site ready!

Name Link
🔨 Latest commit b183728
🔍 Latest deploy log https://app.netlify.com/projects/vjs10-site/deploys/6a7b66c9e2f82a00080ea0be
😎 Deploy Preview https://deploy-preview-2044--vjs10-site.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@vercel

vercel Bot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
v10-sandbox Ready Ready Preview Aug 11, 2026 6:16pm

Request Review

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

📦 Bundle Size Report

🎨 @videojs/html — 29 small size changes
Path Base initial PR initial Initial diff Lazy diff
/video/minimal-skin 55.52 kB 55.55 kB +24 B (+0.0%) 0 B
/audio/minimal-skin 44.29 kB 44.23 kB -54 B (-0.1%) 0 B
/live-audio/minimal-skin.tailwind 36.03 kB 36.08 kB +52 B (+0.1%) 0 B
/live-audio/player 7.01 kB 7.02 kB +3 B (+0.0%) 0 B
/ui/audio-track-radio-group 10.56 kB 10.57 kB +3 B (+0.0%) 0 B
/ui/buffering-indicator 8.04 kB 8.04 kB -1 B (-0.0%)
/ui/captions-radio-group 10.62 kB 10.62 kB -2 B (-0.0%) 0 B
/ui/error-dialog 11.20 kB 11.20 kB -2 B (-0.0%) 0 B
/ui/playback-rate-radio-group 10.34 kB 10.34 kB +1 B (+0.0%) 0 B
/ui/popover 7.78 kB 7.77 kB -3 B (-0.0%)
/ui/poster 8.40 kB 8.39 kB -11 B (-0.1%) 0 B
/ui/quality-radio-group 11.12 kB 11.11 kB -3 B (-0.0%) 0 B
/ui/status-announcer 10.14 kB 10.14 kB +1 B (+0.0%) 0 B
/ui/status-indicator 13.03 kB 13.03 kB -1 B (-0.0%) 0 B
/ui/thumbnail 9.17 kB 9.16 kB -8 B (-0.1%)
/ui/volume-indicator 13.03 kB 13.03 kB +1 B (+0.0%) 0 B
/media/dash-video 211.36 kB 211.44 kB +80 B (+0.0%)
/media/hlsjs-video 140.20 kB 140.11 kB -94 B (-0.1%)
/media/mux-audio 140.92 kB 140.99 kB +71 B (+0.0%)
/media/mux-video 141.13 kB 141.30 kB +180 B (+0.1%)
/media/native-hls-video 7.51 kB 7.53 kB +21 B (+0.3%)
/media/simple-hls-audio-only 21.59 kB 21.65 kB +56 B (+0.3%)
/media/simple-hls-video 27.08 kB 27.06 kB -19 B (-0.1%)
/media/vimeo-video 12.58 kB 12.59 kB +13 B (+0.1%)
/media/youtube-video 6.67 kB 6.69 kB +18 B (+0.3%)
/video (default) 55.88 kB 55.93 kB +49 B (+0.1%) 0 B
/video (default + hls) 194.04 kB 193.84 kB -201 B (-0.1%) 0 B
/video (minimal + hls) 193.53 kB 193.71 kB +190 B (+0.1%) 0 B
/audio (minimal) 44.32 kB 44.27 kB -51 B (-0.1%) 0 B
Presets (7)
Entry Initial Lazy
/video (default) 55.93 kB 56.93 kB
/video (default + hls) 193.84 kB 56.93 kB
/video (minimal) 55.57 kB 56.93 kB
/video (minimal + hls) 193.71 kB 56.93 kB
/audio (default) 48.12 kB 56.93 kB
/audio (minimal) 44.27 kB 56.93 kB
/background 5.59 kB 56.93 kB
Media (13)
Entry Initial Lazy
/media/background-video 1.14 kB
/media/container 2.58 kB 56.93 kB
/media/dash-video 211.44 kB
/media/google-cast 6.44 kB
/media/hlsjs-video 140.11 kB
/media/mux-audio 140.99 kB
/media/mux-data 26.69 kB
/media/mux-video 141.30 kB
/media/native-hls-video 7.53 kB
/media/simple-hls-audio-only 21.65 kB
/media/simple-hls-video 27.06 kB
/media/vimeo-video 12.59 kB
/media/youtube-video 6.69 kB
Players (5)
Entry Initial Lazy
/video/player 10.02 kB 56.93 kB
/audio/player 6.99 kB 56.93 kB
/background/player 5.32 kB 56.93 kB
/live-video/player 9.42 kB 56.93 kB
/live-audio/player 7.02 kB 56.93 kB
Skins (30)
Entry Type Initial Lazy
/video/minimal-skin.css css 5.92 kB
/video/skin.css css 5.92 kB
/video/minimal-skin js 55.55 kB 56.93 kB
/video/minimal-skin.tailwind js 56.12 kB 56.93 kB
/video/skin js 55.93 kB 56.93 kB
/video/skin.tailwind js 56.64 kB 56.93 kB
/audio/minimal-skin.css css 4.11 kB
/audio/skin.css css 4.05 kB
/audio/minimal-skin js 44.23 kB 56.93 kB
/audio/minimal-skin.tailwind js 44.80 kB 56.93 kB
/audio/skin js 48.09 kB 56.93 kB
/audio/skin.tailwind js 48.56 kB 56.93 kB
/background/skin.css css 133 B
/background/skin js 1.14 kB
/live-video/minimal-skin.css css 5.92 kB
/live-video/skin.css css 5.92 kB
/live-video/minimal-skin js 51.83 kB 56.93 kB
/live-video/minimal-skin.tailwind js 52.42 kB 56.93 kB
/live-video/skin js 54.44 kB 56.93 kB
/live-video/skin.tailwind js 54.94 kB 56.93 kB
/live-audio/minimal-skin.css css 4.11 kB
/live-audio/skin.css css 4.05 kB
/live-audio/minimal-skin js 36.63 kB 56.93 kB
/live-audio/minimal-skin.tailwind js 36.08 kB 56.93 kB
/live-audio/skin js 40.56 kB 56.93 kB
/live-audio/skin.tailwind js 40.06 kB 56.93 kB
/global.css css 183 B
/shared.css css 104 B
/tailwind.css css 161 B
/skin-element js 1.45 kB
UI Components (39)
Entry Initial Lazy
/ui/airplay-button 10.79 kB 56.93 kB
/ui/alert-dialog 4.14 kB
/ui/alert-dialog-close 1.94 kB
/ui/alert-dialog-description 1.61 kB
/ui/alert-dialog-title 1.61 kB
/ui/audio-track-radio-group 10.57 kB 56.93 kB
/ui/buffering-indicator 8.04 kB
/ui/captions-button 11.06 kB 56.93 kB
/ui/captions-radio-group 10.62 kB 56.93 kB
/ui/cast-button 10.77 kB 56.93 kB
/ui/compounds 36.16 kB 56.93 kB
/ui/controls 8.21 kB 56.93 kB
/ui/error-dialog 11.20 kB 56.93 kB
/ui/fullscreen-button 10.74 kB 56.93 kB
/ui/hotkey 9.32 kB
/ui/menu 20.64 kB 56.93 kB
/ui/mute-button 10.75 kB 56.93 kB
/ui/pip-button 10.73 kB 56.93 kB
/ui/play-button 10.73 kB 56.93 kB
/ui/playback-rate-button 10.93 kB 56.93 kB
/ui/playback-rate-radio-group 10.34 kB 56.93 kB
/ui/popover 7.77 kB
/ui/poster 8.39 kB 56.93 kB
/ui/quality-radio-group 11.11 kB 56.93 kB
/ui/seek-button 10.79 kB 56.93 kB
/ui/seek-indicator 12.51 kB
/ui/seek-indicator-value 1.02 kB
/ui/slider 11.61 kB 56.93 kB
/ui/status-announcer 10.14 kB 56.93 kB
/ui/status-indicator 13.03 kB 56.93 kB
/ui/status-indicator-value 1.02 kB
/ui/thumbnail 9.16 kB
/ui/time 10.53 kB 56.93 kB
/ui/time-slider 14.51 kB 56.93 kB
/ui/tooltip 9.06 kB 56.93 kB
/ui/volume-indicator 13.03 kB 56.93 kB
/ui/volume-indicator-fill 1.03 kB
/ui/volume-indicator-value 1.02 kB
/ui/volume-slider 12.22 kB 56.93 kB
⚛️ @videojs/react — 56 small size changes
Path Base initial PR initial Initial diff Lazy diff
/media/dash-video 209.68 kB 209.76 kB +87 B (+0.0%)
/media/hlsjs-video 138.60 kB 138.61 kB +4 B (+0.0%)
/media/mux-audio 139.38 kB 139.42 kB +44 B (+0.0%)
/media/mux-data 25.47 kB 25.47 kB -7 B (-0.0%)
/media/mux-video 139.43 kB 139.65 kB +229 B (+0.2%)
/media/native-hls-video 5.75 kB 5.78 kB +36 B (+0.6%)
/media/simple-hls-audio-only 19.89 kB 19.92 kB +34 B (+0.2%)
/media/simple-hls-video 25.41 kB 25.45 kB +46 B (+0.2%)
/media/vimeo-video 10.75 kB 10.79 kB +39 B (+0.4%)
/media/youtube-video 4.78 kB 4.80 kB +16 B (+0.3%)
/video/minimal-skin 43.46 kB 43.45 kB -9 B (-0.0%) 0 B
/video/minimal-skin.tailwind 49.71 kB 49.75 kB +38 B (+0.1%) 0 B
/video/skin 43.38 kB 43.43 kB +49 B (+0.1%) 0 B
/video/skin.tailwind 49.71 kB 49.73 kB +20 B (+0.0%) 0 B
/audio/minimal-skin 35.82 kB 35.82 kB -2 B (-0.0%) 0 B
/audio/minimal-skin.tailwind 38.35 kB 38.38 kB +23 B (+0.1%) 0 B
/audio/skin 35.79 kB 35.77 kB -14 B (-0.0%) 0 B
/audio/skin.tailwind 40.15 kB 40.17 kB +19 B (+0.0%) 0 B
/background/skin 273 B 272 B -1 B (-0.4%)
/live-video/minimal-skin 38.52 kB 38.51 kB -6 B (-0.0%) 0 B
/live-video/minimal-skin.tailwind 44.70 kB 44.68 kB -20 B (-0.0%) 0 B
/live-video/skin 38.53 kB 38.50 kB -25 B (-0.1%) 0 B
/live-video/skin.tailwind 44.82 kB 44.83 kB +13 B (+0.0%) 0 B
/live-audio/minimal-skin 26.40 kB 26.41 kB +2 B (+0.0%) 0 B
/live-audio/minimal-skin.tailwind 29.71 kB 29.73 kB +25 B (+0.1%) 0 B
/live-audio/skin 26.45 kB 26.46 kB +13 B (+0.0%) 0 B
/live-audio/skin.tailwind 29.86 kB 29.83 kB -30 B (-0.1%) 0 B
/ui/airplay-button 10.04 kB 10.04 kB +3 B (+0.0%) 0 B
/ui/alert-dialog 3.25 kB 3.25 kB +4 B (+0.1%)
/ui/audio-track 7.49 kB 7.49 kB +5 B (+0.1%) 0 B
/ui/captions-button 10.01 kB 10.01 kB -1 B (-0.0%) 0 B
/ui/controls 6.98 kB 6.97 kB -1 B (-0.0%)
/ui/fullscreen-button 9.98 kB 9.98 kB -2 B (-0.0%) 0 B
/ui/live-button 8.42 kB 8.42 kB +1 B (+0.0%) 0 B
/ui/menu 20.62 kB 20.66 kB +37 B (+0.2%) 0 B
/ui/mute-button 9.98 kB 9.97 kB -2 B (-0.0%) 0 B
/ui/play-button 9.95 kB 9.95 kB +2 B (+0.0%) 0 B
/ui/playback-rate-button 9.96 kB 9.97 kB +5 B (+0.0%) 0 B
/ui/popover 7.47 kB 7.47 kB -2 B (-0.0%)
/ui/poster 6.86 kB 6.86 kB +4 B (+0.1%)
/ui/seek-button 10.00 kB 9.99 kB -3 B (-0.0%) 0 B
/ui/seek-indicator 11.80 kB 11.80 kB +3 B (+0.0%)
/ui/slider 11.96 kB 11.96 kB -5 B (-0.0%) 0 B
/ui/status-announcer 9.68 kB 9.68 kB -1 B (-0.0%) 0 B
/ui/status-indicator 12.27 kB 12.26 kB -2 B (-0.0%) 0 B
/ui/thumbnail 8.07 kB 8.08 kB +6 B (+0.1%)
/ui/time 9.47 kB 9.47 kB +4 B (+0.0%) 0 B
/ui/tooltip 8.21 kB 8.22 kB +7 B (+0.1%)
/ui/volume-indicator 12.37 kB 12.37 kB +1 B (+0.0%) 0 B
/ui/volume-slider 11.39 kB 11.40 kB +3 B (+0.0%) 0 B
/video (default) 43.48 kB 43.47 kB -4 B (-0.0%) 0 B
/video (default + hls) 180.41 kB 180.37 kB -42 B (-0.0%) 0 B
/video (minimal) 43.58 kB 43.61 kB +35 B (+0.1%) 0 B
/video (minimal + hls) 180.64 kB 180.49 kB -154 B (-0.1%) 0 B
/audio (default) 35.90 kB 35.88 kB -22 B (-0.1%) 0 B
/audio (minimal) 35.93 kB 35.96 kB +35 B (+0.1%) 0 B
Presets (7)
Entry Initial Lazy
/video (default) 43.47 kB 56.93 kB
/video (default + hls) 180.37 kB 56.93 kB
/video (minimal) 43.61 kB 56.93 kB
/video (minimal + hls) 180.49 kB 56.93 kB
/audio (default) 35.88 kB 56.93 kB
/audio (minimal) 35.96 kB 56.93 kB
/background 581 B
Media (12)
Entry Initial
/media/background-video 394 B
/media/dash-video 209.76 kB
/media/google-cast 5.34 kB
/media/hlsjs-video 138.61 kB
/media/mux-audio 139.42 kB
/media/mux-data 25.47 kB
/media/mux-video 139.65 kB
/media/native-hls-video 5.78 kB
/media/simple-hls-audio-only 19.92 kB
/media/simple-hls-video 25.45 kB
/media/vimeo-video 10.79 kB
/media/youtube-video 4.80 kB
Skins (27)
Entry Type Initial Lazy
/tailwind.css css 161 B
/video/minimal-skin.css css 5.81 kB
/video/skin.css css 5.81 kB
/video/minimal-skin js 43.45 kB 56.93 kB
/video/minimal-skin.tailwind js 49.75 kB 56.93 kB
/video/skin js 43.43 kB 56.93 kB
/video/skin.tailwind js 49.73 kB 56.93 kB
/audio/minimal-skin.css css 3.97 kB
/audio/skin.css css 3.90 kB
/audio/minimal-skin js 35.82 kB 56.93 kB
/audio/minimal-skin.tailwind js 38.38 kB 56.93 kB
/audio/skin js 35.77 kB 56.93 kB
/audio/skin.tailwind js 40.17 kB 56.93 kB
/background/skin.css css 90 B
/background/skin js 272 B
/live-video/minimal-skin.css css 5.81 kB
/live-video/skin.css css 5.81 kB
/live-video/minimal-skin js 38.51 kB 56.93 kB
/live-video/minimal-skin.tailwind js 44.68 kB 56.93 kB
/live-video/skin js 38.50 kB 56.93 kB
/live-video/skin.tailwind js 44.83 kB 56.93 kB
/live-audio/minimal-skin.css css 3.97 kB
/live-audio/skin.css css 3.90 kB
/live-audio/minimal-skin js 26.41 kB 56.93 kB
/live-audio/minimal-skin.tailwind js 29.73 kB 56.93 kB
/live-audio/skin js 26.46 kB 56.93 kB
/live-audio/skin.tailwind js 29.83 kB 56.93 kB
UI Components (33)
Entry Initial Lazy
/ui/airplay-button 10.04 kB 56.93 kB
/ui/alert-dialog 3.25 kB
/ui/audio-track 7.49 kB 56.93 kB
/ui/buffering-indicator 7.26 kB
/ui/captions-button 10.01 kB 56.93 kB
/ui/captions-radio-group 7.62 kB 56.93 kB
/ui/cast-button 10.02 kB 56.93 kB
/ui/controls 6.97 kB
/ui/error-dialog 9.98 kB 56.93 kB
/ui/fullscreen-button 9.98 kB 56.93 kB
/ui/gesture 7.37 kB
/ui/hotkey 7.81 kB
/ui/live-button 8.42 kB 56.93 kB
/ui/menu 20.66 kB 56.93 kB
/ui/mute-button 9.97 kB 56.93 kB
/ui/pip-button 9.98 kB 56.93 kB
/ui/play-button 9.95 kB 56.93 kB
/ui/playback-rate 6.79 kB
/ui/playback-rate-button 9.97 kB 56.93 kB
/ui/popover 7.47 kB
/ui/poster 6.86 kB
/ui/quality 8.01 kB 56.93 kB
/ui/seek-button 9.99 kB 56.93 kB
/ui/seek-indicator 11.80 kB
/ui/slider 11.96 kB 56.93 kB
/ui/status-announcer 9.68 kB 56.93 kB
/ui/status-indicator 12.26 kB 56.93 kB
/ui/thumbnail 8.08 kB
/ui/time 9.47 kB 56.93 kB
/ui/time-slider 12.08 kB 56.93 kB
/ui/tooltip 8.22 kB
/ui/volume-indicator 12.37 kB 56.93 kB
/ui/volume-slider 11.40 kB 56.93 kB
🧩 @videojs/core — 3 small size changes
Path Base initial PR initial Initial diff Lazy diff
. 11.77 kB 11.78 kB +7 B (+0.1%)
/dom 20.00 kB 19.99 kB -7 B (-0.0%)
/i18n 3.11 kB 3.13 kB +21 B (+0.7%) 0 B
Entries (76)
Entry Initial Lazy
. 11.78 kB
/dom 19.99 kB
/components 900 B
/i18n 3.13 kB 56.93 kB
/i18n/locales/all 35.05 kB
/i18n/locales/ar 1.22 kB
/i18n/locales/az 1.09 kB
/i18n/locales/bg 1.29 kB
/i18n/locales/bn 1.28 kB
/i18n/locales/bs 1.00 kB
/i18n/locales/ca 1.07 kB
/i18n/locales/cs 1.07 kB
/i18n/locales/cy 1.02 kB
/i18n/locales/da 1006 B
/i18n/locales/de 1.09 kB
/i18n/locales/el 1.49 kB
/i18n/locales/en 785 B
/i18n/locales/es 1018 B
/i18n/locales/et 1.05 kB
/i18n/locales/eu 1.03 kB
/i18n/locales/fa 1.22 kB
/i18n/locales/fi 1.04 kB
/i18n/locales/fr 1.07 kB
/i18n/locales/gd 1.10 kB
/i18n/locales/gl 1022 B
/i18n/locales/he 1.14 kB
/i18n/locales/hi 1.30 kB
/i18n/locales/hr 1.02 kB
/i18n/locales/hu 1.10 kB
/i18n/locales/id 919 B
/i18n/locales/it 1.01 kB
/i18n/locales/ja 1.18 kB
/i18n/locales/ko 1.14 kB
/i18n/locales/lt 1.02 kB
/i18n/locales/lv 1.09 kB
/i18n/locales/mr 1.30 kB
/i18n/locales/nb 987 B
/i18n/locales/ne 1.29 kB
/i18n/locales/nl 1.00 kB
/i18n/locales/nn 987 B
/i18n/locales/oc 1.08 kB
/i18n/locales/pl 1.14 kB
/i18n/locales/pt 1.03 kB
/i18n/locales/pt-BR 1.03 kB
/i18n/locales/pt-PT 1.01 kB
/i18n/locales/ro 1.07 kB
/i18n/locales/ru 1.40 kB
/i18n/locales/sk 1.10 kB
/i18n/locales/sl 1.04 kB
/i18n/locales/sr 1.07 kB
/i18n/locales/sv 1.01 kB
/i18n/locales/te 1.32 kB
/i18n/locales/th 1.29 kB
/i18n/locales/tr 1.08 kB
/i18n/locales/uk 1.41 kB
/i18n/locales/vi 1.11 kB
/i18n/locales/zh 1.02 kB
/i18n/locales/zh-CN 1.02 kB
/i18n/locales/zh-TW 1.02 kB
/i18n/text/airplay 101 B
/i18n/text/buttons 137 B
/i18n/text/captions 93 B
/i18n/text/cast 114 B
/i18n/text/common 90 B
/i18n/text/container 75 B
/i18n/text/errors 285 B
/i18n/text/fullscreen 98 B
/i18n/text/live 126 B
/i18n/text/menu 249 B
/i18n/text/pip 101 B
/i18n/text/playback 80 B
/i18n/text/seek 105 B
/i18n/text/slider 65 B
/i18n/text/status 222 B
/i18n/text/time 280 B
/i18n/text/volume 133 B
🏷️ @videojs/element — no changes
Entries (2)
Entry Initial
. 996 B
/context 943 B
📦 @videojs/store — 1 small size change
Path Base initial PR initial Initial diff Lazy diff
. 1.71 kB 1.72 kB +1 B (+0.1%)
Entries (3)
Entry Initial
. 1.72 kB
/html 703 B
/react 366 B
🔧 @videojs/utils — 3 small size changes
Path Base initial PR initial Initial diff Lazy diff
/events 320 B 319 B -1 B (-0.3%)
/predicate 297 B 265 B -32 B (-10.8%)
/style 188 B 190 B +2 B (+1.1%)
Entries (13)
Entry Initial
/array 104 B
/dom 3.29 kB
/events 319 B
/function 369 B
/i18n 44 B
/jwt 176 B
/object 508 B
/predicate 265 B
/percent 281 B
/string 239 B
/style 190 B
/time 1.01 kB
/number 158 B
📦 @videojs/jsx — no changes
Entries (3)
Entry Initial
. 393 B
/jsx-runtime 371 B
/jsx-dev-runtime 375 B
📦 @videojs/media — 7 small size changes
Path Base initial PR initial Initial diff Lazy diff
. 1.04 kB 1.07 kB +29 B (+2.7%)
/dom/dash 209.38 kB 209.21 kB -170 B (-0.1%)
/dom/hls-js 138.13 kB 138.14 kB +10 B (+0.0%)
/dom/mux 161.61 kB 161.63 kB +17 B (+0.0%)
/dom/native-hls 5.26 kB 5.33 kB +71 B (+1.3%)
/dom/vimeo 10.19 kB 10.22 kB +27 B (+0.3%)
/dom/youtube 4.17 kB 4.21 kB +39 B (+0.9%)
Entries (15)
Entry Initial
. 1.07 kB
/dom 121 B
/dom/audio-host 1.10 kB
/dom/custom-media-element 2.09 kB
/dom/dash 209.21 kB
/dom/google-cast 4.06 kB
/dom/hls-js 138.14 kB
/dom/media-host 1.20 kB
/dom/media-played-ranges 576 B
/dom/mux 161.63 kB
/dom/native-hls 5.33 kB
/dom/video-host 1.39 kB
/dom/vimeo 10.22 kB
/dom/youtube 4.21 kB
/media-tracks 1.98 kB
📦 @videojs/spf — 4 small size changes
Path Base initial PR initial Initial diff Lazy diff
/hls 20.86 kB 20.86 kB +5 B (+0.0%)
/background-video 14.77 kB 14.76 kB -3 B (-0.0%)
/simple-hls 24.92 kB 24.95 kB +26 B (+0.1%)
/simple-hls-audio-only 19.39 kB 19.49 kB +98 B (+0.5%)
Entries (7)
Entry Initial
. 4.53 kB
/dom 6.57 kB
/hls 20.86 kB
/media-tracks 504 B
/background-video 14.76 kB
/simple-hls 24.95 kB
/simple-hls-audio-only 19.49 kB

ℹ️ How to interpret

Each entry is independently bundled, minified, and brotli-compressed. Initial size includes its static import graph; lazy dynamic chunks are reported separately.

Entries are not additive because their dependency graphs overlap. Preset rows represent realistic combined bundles.

Changes of 300 B or less across initial, lazy, and total size are collapsed, not discarded.

Run pnpm size locally to check current initial sizes.

@mihar-22
mihar-22 marked this pull request as ready for review August 11, 2026 18:15
@mihar-22
mihar-22 requested a review from luwes August 11, 2026 18:15
@mihar-22
mihar-22 marked this pull request as draft August 11, 2026 18:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant