ff-stream-web

git clone git://archive.git.mtrnord.blog/MTRNord/ff-stream-web.git
Log | Files | Refs | README | LICENSE

commit ed8f026d576a27ef7bb9fcf3d3c44fa0ec0e1a23
parent ee6d25cccd3d7493044f8271710f12159643d649
Author: Marcel <marcel@radzio-sh.de>
Date:   Mon, 25 Sep 2017 16:13:34 +0200

CasualCommit

Diffstat:
Mpackage.json | 5+++++
Msrc/components/Html.js | 9+++++++++
Asrc/components/VideoJs/VideoJs.js | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/routes/home/Home.js | 27++++++++++++++++-----------
Msrc/routes/home/index.js | 2+-
Msrc/routes/index.js | 2+-
Myarn.lock | 191++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
7 files changed, 271 insertions(+), 24 deletions(-)

diff --git a/package.json b/package.json @@ -19,6 +19,7 @@ "classnames": "^2.2.5", "cookie-parser": "^1.4.3", "core-js": "^2.4.1", + "css-loader": "^0.26.4", "express": "^4.14.1", "express-graphql": "^0.6.3", "express-jwt": "^5.1.0", @@ -38,7 +39,11 @@ "sequelize": "^3.30.1", "source-map-support": "^0.4.11", "sqlite3": "^3.1.8", + "style-loader": "^0.16.1", "universal-router": "^2.0.0", + "videojs-chromecast": "^2.0.8", + "videojs-contrib-hls": "^5.4.0", + "videojs-qualityselector": "^0.0.1", "whatwg-fetch": "^2.0.2" }, "devDependencies": { diff --git a/src/components/Html.js b/src/components/Html.js @@ -8,6 +8,10 @@ */ import React, { PropTypes } from 'react'; +import videojsQualityselector from 'videojs-qualityselector/dist/videojs-qualityselector.js'; +import videojsQualityselectorCss from 'videojs-qualityselector/dist/videojs-qualityselector.css'; +import videojs from 'video.js/dist/video.min.js'; +import videojsCss from 'video.js/dist/video-js.min.css'; import { analytics } from '../config'; class Html extends React.Component { @@ -38,6 +42,11 @@ class Html extends React.Component { <meta name="description" content={description} /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="apple-touch-icon" href="apple-touch-icon.png" /> + <script src="//cdn.sc.gl/videojs-hotkeys/latest/videojs.hotkeys.min.js" /> + <script src={videojsQualityselector} /> + <script src={videojs} /> + <link href={videojsCss} rel="stylesheet" /> + <link href={videojsQualityselectorCss} rel="stylesheet" /> {styles.map(style => <style key={style.id} diff --git a/src/components/VideoJs/VideoJs.js b/src/components/VideoJs/VideoJs.js @@ -0,0 +1,59 @@ +import React from 'react'; +import videojsHls from 'videojs-contrib-hls'; + +export default class VideoPlayer extends React.Component { + componentDidMount() { + // instantiate video.js + this.player = videojs(this.videoNode, this.props, () => { + console.log('ready'); + }); + this.player.qualityselector({ + sources: [ + { format: 'highres', src: 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4', type: 'video/mp4' }, + { format: 'hd1080', src: 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4', type: 'video/mp4' }, + { format: 'hd720', src: 'http://www.sample-videos.com/video/mp4/480/big_buck_bunny_480p_1mb.mp4', type: 'video/mp4' }, + { format: 'large', src: '//vjs.zencdn.net/v/oceans.mp4', type: 'video/mp4' }, + { format: 'medium', src: 'http://www.sample-videos.com/video/mp4/480/big_buck_bunny_480p_1mb.mp4', type: 'video/mp4' }, + { format: 'small', src: 'http://www.sample-videos.com/video/mp4/480/big_buck_bunny_480p_1mb.mp4', type: 'video/mp4' }, + { format: 'auto', src: 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4', type: 'video/mp4' }, + ], + formats: [ + { code: 'highres', name: 'High' }, + { code: 'hd1080', name: '1080p' }, + { code: 'hd720', name: '720p' }, + { code: 'large', name: '480p' }, + { code: 'medium', name: '360p' }, + { code: 'small', name: '240p' }, + { code: 'auto', name: 'Auto' }, + ], + + onFormatSelected: (format) => { + console.log(format); + }, + }); + this.player.ready(() => { + this.hotkeys({ + volumeStep: 0.1, + seekStep: 5, + }); + }); + } + + // destroy player on unmount + componentWillUnmount() { + if (this.player) { + this.player.dispose(); + } + } + + // wrap the player in a div with a `data-vjs-player` attribute + // so videojs won't create additional wrapper in the DOM + // see https://github.com/videojs/video.js/pull/3856 + render() { + return ( + <div data-vjs-player> + <video ref={node => this.videoNode = node} className="video-js vjs-default-skin" controls /> + </div> + ); + } +} diff --git a/src/routes/home/Home.js b/src/routes/home/Home.js @@ -10,6 +10,7 @@ import React, { PropTypes } from 'react'; import withStyles from 'isomorphic-style-loader/lib/withStyles'; import s from './Home.css'; +import VideoPlayer from '../../components/VideoJs/VideoJs'; class Home extends React.Component { static propTypes = { @@ -21,20 +22,24 @@ class Home extends React.Component { }; render() { + const videoJsOptions = { + autoplay: false, + controls: true, + sources: [{ + src: 'http://vjs.zencdn.net/v/oceans.mp4', + type: 'video/mp4', + }, + { + src: 'https://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/bipbop_16x9_variant.m3u8', + type: 'application/x-mpegURL', + }, + ], + }; return ( <div className={s.root}> <div className={s.container}> - <h1>React.js News</h1> - {this.props.news.map(item => ( - <article key={item.link} className={s.newsItem}> - <h1 className={s.newsTitle}><a href={item.link}>{item.title}</a></h1> - <div - className={s.newsDesc} - // eslint-disable-next-line react/no-danger - dangerouslySetInnerHTML={{ __html: item.content }} - /> - </article> - ))} + <h1>Live Streams</h1> + <VideoPlayer {...videoJsOptions} /> </div> </div> ); diff --git a/src/routes/home/index.js b/src/routes/home/index.js @@ -31,7 +31,7 @@ export default { const { data } = await resp.json(); if (!data || !data.news) throw new Error('Failed to load the news feed.'); return { - title: 'React Starter Kit', + title: 'Freifunk Streaming', component: <Layout><Home news={data.news} /></Layout>, }; }, diff --git a/src/routes/index.js b/src/routes/index.js @@ -33,7 +33,7 @@ export default { const route = await next(); // Provide default values for title, description etc. - route.title = `${route.title || 'Untitled Page'} - www.reactstarterkit.com`; + route.title = `${route.title || 'Untitled Page'}`; route.description = route.description || ''; return route; diff --git a/yarn.lock b/yarn.lock @@ -54,6 +54,12 @@ acorn@^4.0.4: version "4.0.10" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.10.tgz#598ed8bdd4de8b5a7a7fa2f6d2188ebbf9b1f12c" +aes-decrypter@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/aes-decrypter/-/aes-decrypter-1.0.3.tgz#9c06b8a5435a5ad09db933f8a014afcf184cc34e" + dependencies: + pkcs7 "^0.2.3" + after@0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" @@ -942,7 +948,7 @@ babel-register@^6.22.0: mkdirp "^0.5.1" source-map-support "^0.4.2" -babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0: +babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.9.2: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611" dependencies: @@ -1766,14 +1772,14 @@ css-color-names@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" -css-loader@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.1.tgz#2ba7f20131b93597496b3e9bb500785a49cd29ea" +css-loader@^0.26.4: + version "0.26.4" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.4.tgz#b61e9e30db94303e6ffc892f10ecd09ad025a1fd" dependencies: babel-code-frame "^6.11.0" css-selector-tokenizer "^0.7.0" cssnano ">=2.6.1 <4" - loader-utils "~0.2.2" + loader-utils "^1.0.2" lodash.camelcase "^4.3.0" object-assign "^4.0.1" postcss "^5.0.6" @@ -1781,7 +1787,7 @@ css-loader@^0.26.1: postcss-modules-local-by-default "^1.0.1" postcss-modules-scope "^1.0.0" postcss-modules-values "^1.1.0" - source-list-map "^0.1.4" + source-list-map "^0.1.7" css-rule-stream@^1.1.0: version "1.1.0" @@ -2321,6 +2327,10 @@ es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0. es6-iterator "2" es6-symbol "~3.1" +es5-shim@^4.5.1: + version "4.5.9" + resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.9.tgz#2a1e2b9e583ff5fed0c20a3ee2cbf3f75230a5c0" + es6-iterator@2: version "2.0.0" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" @@ -2784,6 +2794,12 @@ fobject@0.0.3: semver "^4.1.0" when "^3.0.1" +for-each@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4" + dependencies: + is-function "~1.0.0" + for-in@^0.1.5: version "0.1.6" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" @@ -2975,7 +2991,14 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -global@^4.3.0: +global@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.0.tgz#ef7ec4beead579b454f5ebd5e7f303db54f42a2b" + dependencies: + min-document "^2.6.1" + process "~0.5.1" + +global@^4.3.0, global@~4.3.0: version "4.3.1" resolved "https://registry.yarnpkg.com/global/-/global-4.3.1.tgz#5f757908c7cbabce54f386ae440e11e26b7916df" dependencies: @@ -3237,6 +3260,10 @@ indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" +individual@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/individual/-/individual-2.0.0.tgz#833b097dad23294e76117a98fb38e0d9ad61bb97" + inflection@^1.6.0: version "1.12.0" resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" @@ -3366,6 +3393,10 @@ is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" +is-function@^1.0.1, is-function@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -3797,7 +3828,7 @@ loader-runner@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" -loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.7, loader-utils@~0.2.2, loader-utils@~0.2.5: +loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.7, loader-utils@~0.2.5: version "0.2.16" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" dependencies: @@ -3806,6 +3837,14 @@ loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0. json5 "^0.5.0" object-assign "^4.0.1" +loader-utils@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + localtunnel@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-1.8.2.tgz#913051e8328b51f75ad8a22ad1f5c5b8c599a359" @@ -4087,6 +4126,10 @@ lru-cache@~2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.0.4.tgz#b8b61ae09848385ec6768760e39c123e7e39568a" +m3u8-parser@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/m3u8-parser/-/m3u8-parser-2.1.0.tgz#c8170329ec1cd515d0d58bb8b762da9896cb0368" + macaddress@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" @@ -4200,7 +4243,7 @@ mime@1.3.4, "mime@>= 0.0.1", mime@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" -min-document@^2.19.0: +min-document@^2.19.0, min-document@^2.6.1: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" dependencies: @@ -4285,6 +4328,10 @@ mute-stream@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" +mux.js@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/mux.js/-/mux.js-4.1.1.tgz#8a211f614c974c4afdb5ee6588444626accc5774" + nan@^2.3.0, nan@~2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" @@ -4477,7 +4524,7 @@ object-path@^0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5" -object.assign@^4.0.4: +object.assign@^4.0.3, object.assign@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" dependencies: @@ -4636,6 +4683,13 @@ parse-glob@^3.0.4: is-extglob "^1.0.0" is-glob "^2.0.0" +parse-headers@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536" + dependencies: + for-each "^0.3.2" + trim "0.0.1" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -4769,6 +4823,10 @@ pixrem@^3.0.2: postcss "^5.0.0" reduce-css-calc "^1.2.7" +pkcs7@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/pkcs7/-/pkcs7-0.2.3.tgz#22d60666d01065c5f24439098e4a4830452273be" + pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" @@ -5753,6 +5811,12 @@ run-async@^0.1.0: dependencies: once "^1.3.0" +rust-result@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rust-result/-/rust-result-1.0.0.tgz#34c75b2e6dc39fe5875e5bdec85b5e0f91536f72" + dependencies: + individual "^2.0.0" + rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" @@ -5771,6 +5835,12 @@ safe-buffer@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" +safe-json-parse@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-4.0.0.tgz#7c0f578cfccd12d33a71c0e05413e2eca171eaac" + dependencies: + rust-result "^1.0.0" + samsam@^1.1.3: version "1.2.1" resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.2.1.tgz#edd39093a3184370cb859243b2bdf255e7d8ea67" @@ -6011,7 +6081,7 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^0.1.4, source-list-map@~0.1.7: +source-list-map@^0.1.7, source-list-map@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" @@ -6200,6 +6270,12 @@ strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" +style-loader@^0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.16.1.tgz#50e325258d4e78421dd9680636b41e8661595d10" + dependencies: + loader-utils "^1.0.2" + style-search@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" @@ -6453,10 +6529,18 @@ trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" +tsml@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tsml/-/tsml-1.0.1.tgz#89f8218b9d9e257f47d7f6b56d01c5a4d2c68fc3" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -6567,6 +6651,10 @@ url-loader@^0.5.7: loader-utils "0.2.x" mime "1.2.x" +url-toolkit@1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/url-toolkit/-/url-toolkit-1.0.9.tgz#6647c84f931c54e1e61fa3b33e10ad34161ed4d9" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -6649,6 +6737,74 @@ verror@1.3.6: dependencies: extsprintf "1.0.2" +video.js@^5.0.0, video.js@^5.17.0, video.js@^5.19.1, video.js@^5.6.0: + version "5.19.1" + resolved "https://registry.yarnpkg.com/video.js/-/video.js-5.19.1.tgz#5d6407aebd078bf4c4f94183f840a53388c34f25" + dependencies: + babel-runtime "^6.9.2" + global "4.3.0" + safe-json-parse "4.0.0" + tsml "1.0.1" + videojs-font "2.0.0" + videojs-ie8 "1.1.2" + videojs-swf "5.3.0" + videojs-vtt.js "0.12.3" + xhr "2.2.2" + +videojs-chromecast@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/videojs-chromecast/-/videojs-chromecast-2.0.8.tgz#55e2911cf5cc427974c1d8e80d4d22124d152ef9" + dependencies: + global "^4.3.0" + object.assign "^4.0.3" + video.js "^5.0.0" + +videojs-contrib-hls@^5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/videojs-contrib-hls/-/videojs-contrib-hls-5.4.0.tgz#a90e2e7b1447693751e935c2e87cd75be31a7029" + dependencies: + aes-decrypter "1.0.3" + global "^4.3.0" + m3u8-parser "2.1.0" + mux.js "4.1.1" + url-toolkit "1.0.9" + video.js "^5.19.1" + videojs-contrib-media-sources "4.4.2" + webworkify "1.0.2" + +videojs-contrib-media-sources@4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/videojs-contrib-media-sources/-/videojs-contrib-media-sources-4.4.2.tgz#39c4fdaf278fd61e65d9b25513c9723dc3d2a160" + dependencies: + global "^4.3.0" + mux.js "4.1.1" + video.js "^5.17.0" + webworkify "1.0.2" + +videojs-font@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/videojs-font/-/videojs-font-2.0.0.tgz#af7461ef9d4b95e0334bffb78b2f2ff0364a9034" + +videojs-ie8@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/videojs-ie8/-/videojs-ie8-1.1.2.tgz#a23d3d8608ad7192b69c6077fc4eb848998d35d9" + dependencies: + es5-shim "^4.5.1" + +videojs-qualityselector@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/videojs-qualityselector/-/videojs-qualityselector-0.0.1.tgz#c9cc0bf727cd89d6537002d7700afc5822fa5356" + dependencies: + video.js "^5.6.0" + +videojs-swf@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/videojs-swf/-/videojs-swf-5.3.0.tgz#b79408ab4ad5dd8f6f20e8abfc33150b098aab57" + +videojs-vtt.js@0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/videojs-vtt.js/-/videojs-vtt.js-0.12.3.tgz#5ec6606844544790a795e8e396e3f2ab3649a2d6" + vlq@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.1.tgz#14439d711891e682535467f8587c5630e4222a6c" @@ -6738,6 +6894,10 @@ webpack@^2.2.1: webpack-sources "^0.1.4" yargs "^6.0.0" +webworkify@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/webworkify/-/webworkify-1.0.2.tgz#b616a95a6225249bf25a91e96e0942c665155995" + weinre@^2.0.0-pre-I0Z7U9OV: version "2.0.0-pre-I0Z7U9OV" resolved "https://registry.yarnpkg.com/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz#fef8aa223921f7b40bbbbd4c3ed4302f6fd0a813" @@ -6840,6 +7000,15 @@ wtf-8@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" +xhr@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.2.2.tgz#2ee72571869f8686d41559a9ea286c18971435ff" + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + xmlhttprequest-ssl@1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"