Files
oxmcandClaude Sonnet 5 7e995693b0 Upgrade to video.js 8, add real ads/EME, fix v8-incompatible plugins
- Bump video.js 7 -> 8.24.0 and all plugins to v8-compatible latest
  (contrib-ads, contrib-eme, errors, youtube, vjsdownload, playlist-ui,
  http-streaming, hls-quality-selector, hotkeys); drop unused/dead deps
  (videojs-flash, videojs-ads-markers, videojs-ssa's old dead entry).
- Add real ad support in src/module/ads/ad.js: Google IMA (videojs-ima)
  and a hand-rolled VAST-parsing 'ownAds' provider for a self-hosted ad
  server, replacing the old fake JSON-inventory exampleAds scaffold.
- Make videojs-contrib-eme genuinely optional: built as its own lazy-loaded
  chunk (bundle/vjs-player-bundle-eme.min.js), only fetched when a video
  actually requests DRM (data-eme="true").
- Add a singleInstance player mode: one reused Video.js player across many
  <video> elements (poster-thumbnail triggers swap src into it) vs the
  default one-player-per-element behavior.
- Rewrite src/module/share, src/module/overlay, src/module/ssa from their
  real ES6 sources (or manually de-transpiled dist, for ssa) because
  video.js 8's Component/Plugin are now native ES6 classes and the
  published dist builds invoke them via the old Babel `Class.call(this)`
  down-level pattern, which throws under v8. Verified all three in a real
  video.js 8 runtime via headless Chrome.
- Fix a watermark.js bug where a module-scoped DOM node was shared across
  every player on a page, so only the last-initialized one kept its mark.
- Split player.js out of the plugin bundle into its own file
  (bundle/vjs-player.min.js), loaded as a separate final script by
  player-init.js, fixing a double-declaration crash when a page loaded
  both the bundle and a separately-hosted player.js.
- Add bundle-files.js as the single source of truth for both bundlers;
  bundle-dev.js now produces an unminified build for local debugging.
  bundle-prod.js strips license comments from minified output and writes
  them to bundle/LICENSES.txt instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-29 02:49:35 -07:00

109 lines
1.6 KiB
Plaintext
Executable File

# Custom files
bundle/
bundle-dev/
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# Next.js build output
.next
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port