videojs-contrib-quality-levels
Advanced tools
Comparing version 3.0.0 to 4.0.0
@@ -0,1 +1,15 @@ | ||
<a name="4.0.0"></a> | ||
# [4.0.0](https://github.com/videojs/videojs-contrib-quality-levels/compare/v3.0.0...v4.0.0) (2023-03-31) | ||
### Features | ||
* make quality level list iterable (#136) ([c054f8c](https://github.com/videojs/videojs-contrib-quality-levels/commit/c054f8c)), closes [#136](https://github.com/videojs/videojs-contrib-quality-levels/issues/136) | ||
* update to support only Video.js 8 and eliminate deprecation warnings (#138) ([ccab6ca](https://github.com/videojs/videojs-contrib-quality-levels/commit/ccab6ca)), closes [#138](https://github.com/videojs/videojs-contrib-quality-levels/issues/138) | ||
### BREAKING CHANGES | ||
* This breaks compatibility with all versions of Internet Explorer. | ||
* With this change, videojs-contrib-quality-levels supports only Video.js 8 and newer. | ||
<a name="3.0.0"></a> | ||
@@ -2,0 +16,0 @@ # [3.0.0](https://github.com/videojs/videojs-contrib-quality-levels/compare/v2.2.1...v3.0.0) (2022-12-22) |
@@ -1,2 +0,2 @@ | ||
/*! @name videojs-contrib-quality-levels @version 3.0.0 @license Apache-2.0 */ | ||
/*! @name videojs-contrib-quality-levels @version 4.0.0 @license Apache-2.0 */ | ||
'use strict'; | ||
@@ -93,2 +93,5 @@ | ||
class QualityLevelList extends videojs__default['default'].EventTarget { | ||
/** | ||
* Creates a QualityLevelList. | ||
*/ | ||
constructor() { | ||
@@ -126,2 +129,5 @@ super(); | ||
}); | ||
list[Symbol.iterator] = () => list.levels_.values(); | ||
return list; | ||
@@ -173,3 +179,3 @@ } | ||
* | ||
* @param {QualityLevel} remove QualityLevel to remove to the list. | ||
* @param {QualityLevel} qualityLevel The QualityLevel to remove from the list. | ||
* @return {QualityLevel|null} the QualityLevel removed or null if nothing removed | ||
@@ -256,5 +262,4 @@ * @method removeQualityLevel | ||
var version = "3.0.0"; | ||
var version = "4.0.0"; | ||
const registerPlugin = videojs__default['default'].registerPlugin || videojs__default['default'].plugin; | ||
/** | ||
@@ -266,3 +271,3 @@ * Initialization function for the qualityLevels plugin. Sets up the QualityLevelList and | ||
* @param {Object} options Plugin options object. | ||
* @function initPlugin | ||
* @return {QualityLevelList} a list of QualityLevels | ||
*/ | ||
@@ -296,3 +301,3 @@ | ||
* @param {Object} options Plugin options object | ||
* @function qualityLevels | ||
* @return {QualityLevelList} a list of QualityLevels | ||
*/ | ||
@@ -302,7 +307,7 @@ | ||
const qualityLevels = function (options) { | ||
return initPlugin(this, videojs__default['default'].mergeOptions({}, options)); | ||
return initPlugin(this, videojs__default['default'].obj.merge({}, options)); | ||
}; // Register the plugin with video.js. | ||
registerPlugin('qualityLevels', qualityLevels); // Include the version number. | ||
videojs__default['default'].registerPlugin('qualityLevels', qualityLevels); // Include the version number. | ||
@@ -309,0 +314,0 @@ qualityLevels.VERSION = version; |
@@ -1,2 +0,2 @@ | ||
/*! @name videojs-contrib-quality-levels @version 3.0.0 @license Apache-2.0 */ | ||
/*! @name videojs-contrib-quality-levels @version 4.0.0 @license Apache-2.0 */ | ||
import videojs from 'video.js'; | ||
@@ -87,2 +87,5 @@ | ||
class QualityLevelList extends videojs.EventTarget { | ||
/** | ||
* Creates a QualityLevelList. | ||
*/ | ||
constructor() { | ||
@@ -120,2 +123,5 @@ super(); | ||
}); | ||
list[Symbol.iterator] = () => list.levels_.values(); | ||
return list; | ||
@@ -167,3 +173,3 @@ } | ||
* | ||
* @param {QualityLevel} remove QualityLevel to remove to the list. | ||
* @param {QualityLevel} qualityLevel The QualityLevel to remove from the list. | ||
* @return {QualityLevel|null} the QualityLevel removed or null if nothing removed | ||
@@ -250,5 +256,4 @@ * @method removeQualityLevel | ||
var version = "3.0.0"; | ||
var version = "4.0.0"; | ||
const registerPlugin = videojs.registerPlugin || videojs.plugin; | ||
/** | ||
@@ -260,3 +265,3 @@ * Initialization function for the qualityLevels plugin. Sets up the QualityLevelList and | ||
* @param {Object} options Plugin options object. | ||
* @function initPlugin | ||
* @return {QualityLevelList} a list of QualityLevels | ||
*/ | ||
@@ -290,3 +295,3 @@ | ||
* @param {Object} options Plugin options object | ||
* @function qualityLevels | ||
* @return {QualityLevelList} a list of QualityLevels | ||
*/ | ||
@@ -296,7 +301,7 @@ | ||
const qualityLevels = function (options) { | ||
return initPlugin(this, videojs.mergeOptions({}, options)); | ||
return initPlugin(this, videojs.obj.merge({}, options)); | ||
}; // Register the plugin with video.js. | ||
registerPlugin('qualityLevels', qualityLevels); // Include the version number. | ||
videojs.registerPlugin('qualityLevels', qualityLevels); // Include the version number. | ||
@@ -303,0 +308,0 @@ qualityLevels.VERSION = version; |
@@ -1,2 +0,2 @@ | ||
/*! @name videojs-contrib-quality-levels @version 3.0.0 @license Apache-2.0 */ | ||
/*! @name videojs-contrib-quality-levels @version 4.0.0 @license Apache-2.0 */ | ||
(function (global, factory) { | ||
@@ -95,2 +95,5 @@ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('video.js')) : | ||
class QualityLevelList extends videojs__default['default'].EventTarget { | ||
/** | ||
* Creates a QualityLevelList. | ||
*/ | ||
constructor() { | ||
@@ -128,2 +131,5 @@ super(); | ||
}); | ||
list[Symbol.iterator] = () => list.levels_.values(); | ||
return list; | ||
@@ -175,3 +181,3 @@ } | ||
* | ||
* @param {QualityLevel} remove QualityLevel to remove to the list. | ||
* @param {QualityLevel} qualityLevel The QualityLevel to remove from the list. | ||
* @return {QualityLevel|null} the QualityLevel removed or null if nothing removed | ||
@@ -258,5 +264,4 @@ * @method removeQualityLevel | ||
var version = "3.0.0"; | ||
var version = "4.0.0"; | ||
const registerPlugin = videojs__default['default'].registerPlugin || videojs__default['default'].plugin; | ||
/** | ||
@@ -268,3 +273,3 @@ * Initialization function for the qualityLevels plugin. Sets up the QualityLevelList and | ||
* @param {Object} options Plugin options object. | ||
* @function initPlugin | ||
* @return {QualityLevelList} a list of QualityLevels | ||
*/ | ||
@@ -298,3 +303,3 @@ | ||
* @param {Object} options Plugin options object | ||
* @function qualityLevels | ||
* @return {QualityLevelList} a list of QualityLevels | ||
*/ | ||
@@ -304,7 +309,7 @@ | ||
const qualityLevels = function (options) { | ||
return initPlugin(this, videojs__default['default'].mergeOptions({}, options)); | ||
return initPlugin(this, videojs__default['default'].obj.merge({}, options)); | ||
}; // Register the plugin with video.js. | ||
registerPlugin('qualityLevels', qualityLevels); // Include the version number. | ||
videojs__default['default'].registerPlugin('qualityLevels', qualityLevels); // Include the version number. | ||
@@ -311,0 +316,0 @@ qualityLevels.VERSION = version; |
@@ -1,2 +0,2 @@ | ||
/*! @name videojs-contrib-quality-levels @version 3.0.0 @license Apache-2.0 */ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).videojsContribQualityLevels=t(e.videojs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=t(e);class i{constructor(e){let t=this;return t.id=e.id,t.label=t.id,t.width=e.width,t.height=e.height,t.bitrate=e.bandwidth,t.frameRate=e.frameRate,t.enabled_=e.enabled,Object.defineProperty(t,"enabled",{get:()=>t.enabled_(),set(e){t.enabled_(e)}}),t}}class n extends l.default.EventTarget{constructor(){super();let e=this;return e.levels_=[],e.selectedIndex_=-1,Object.defineProperty(e,"selectedIndex",{get:()=>e.selectedIndex_}),Object.defineProperty(e,"length",{get:()=>e.levels_.length}),e}addQualityLevel(e){let t=this.getQualityLevelById(e.id);if(t)return t;const l=this.levels_.length;return t=new i(e),""+l in this||Object.defineProperty(this,l,{get(){return this.levels_[l]}}),this.levels_.push(t),this.trigger({qualityLevel:t,type:"addqualitylevel"}),t}removeQualityLevel(e){let t=null;for(let l=0,i=this.length;l<i;l++)if(this[l]===e){t=this.levels_.splice(l,1)[0],this.selectedIndex_===l?this.selectedIndex_=-1:this.selectedIndex_>l&&this.selectedIndex_--;break}return t&&this.trigger({qualityLevel:e,type:"removequalitylevel"}),t}getQualityLevelById(e){for(let t=0,l=this.length;t<l;t++){const l=this[t];if(l.id===e)return l}return null}dispose(){this.selectedIndex_=-1,this.levels_.length=0}}n.prototype.allowedEvents_={change:"change",addqualitylevel:"addqualitylevel",removequalitylevel:"removequalitylevel"};for(const e in n.prototype.allowedEvents_)n.prototype["on"+e]=null;var s="3.0.0";const d=l.default.registerPlugin||l.default.plugin,r=function(e){return function(e,t){const l=e.qualityLevels,i=new n,d=function(){i.dispose(),e.qualityLevels=l,e.off("dispose",d)};return e.on("dispose",d),e.qualityLevels=()=>i,e.qualityLevels.VERSION=s,i}(this,l.default.mergeOptions({},e))};return d("qualityLevels",r),r.VERSION=s,r})); | ||
/*! @name videojs-contrib-quality-levels @version 4.0.0 @license Apache-2.0 */ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).videojsContribQualityLevels=t(e.videojs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=t(e);class i{constructor(e){let t=this;return t.id=e.id,t.label=t.id,t.width=e.width,t.height=e.height,t.bitrate=e.bandwidth,t.frameRate=e.frameRate,t.enabled_=e.enabled,Object.defineProperty(t,"enabled",{get:()=>t.enabled_(),set(e){t.enabled_(e)}}),t}}class s extends l.default.EventTarget{constructor(){super();let e=this;return e.levels_=[],e.selectedIndex_=-1,Object.defineProperty(e,"selectedIndex",{get:()=>e.selectedIndex_}),Object.defineProperty(e,"length",{get:()=>e.levels_.length}),e[Symbol.iterator]=()=>e.levels_.values(),e}addQualityLevel(e){let t=this.getQualityLevelById(e.id);if(t)return t;const l=this.levels_.length;return t=new i(e),""+l in this||Object.defineProperty(this,l,{get(){return this.levels_[l]}}),this.levels_.push(t),this.trigger({qualityLevel:t,type:"addqualitylevel"}),t}removeQualityLevel(e){let t=null;for(let l=0,i=this.length;l<i;l++)if(this[l]===e){t=this.levels_.splice(l,1)[0],this.selectedIndex_===l?this.selectedIndex_=-1:this.selectedIndex_>l&&this.selectedIndex_--;break}return t&&this.trigger({qualityLevel:e,type:"removequalitylevel"}),t}getQualityLevelById(e){for(let t=0,l=this.length;t<l;t++){const l=this[t];if(l.id===e)return l}return null}dispose(){this.selectedIndex_=-1,this.levels_.length=0}}s.prototype.allowedEvents_={change:"change",addqualitylevel:"addqualitylevel",removequalitylevel:"removequalitylevel"};for(const e in s.prototype.allowedEvents_)s.prototype["on"+e]=null;var n="4.0.0";const d=function(e){return function(e,t){const l=e.qualityLevels,i=new s,d=function(){i.dispose(),e.qualityLevels=l,e.off("dispose",d)};return e.on("dispose",d),e.qualityLevels=()=>i,e.qualityLevels.VERSION=n,i}(this,l.default.obj.merge({},e))};return l.default.registerPlugin("qualityLevels",d),d.VERSION=n,d})); |
{ | ||
"name": "videojs-contrib-quality-levels", | ||
"version": "3.0.0", | ||
"version": "4.0.0", | ||
"description": "Exposes a list of quality levels available for the source.", | ||
@@ -67,3 +67,3 @@ "main": "dist/videojs-contrib-quality-levels.cjs.js", | ||
"peerDependencies": { | ||
"video.js": "^6 || ^7 || ^8" | ||
"video.js": "^8" | ||
}, | ||
@@ -90,3 +90,3 @@ "devDependencies": { | ||
"sinon": "^9.1.0", | ||
"video.js": "^6 || ^7 || ^8", | ||
"video.js": "^8", | ||
"videojs-generate-karma-config": "~8.0.0", | ||
@@ -93,0 +93,0 @@ "videojs-generate-rollup-config": "^7.0.0", |
@@ -17,3 +17,2 @@ # videojs-contrib-quality-levels | ||
- [Installation](#installation) | ||
- [Installation](#installation-1) | ||
- [Using](#using) | ||
@@ -90,4 +89,3 @@ - [Supporting Quality Levels for your source](#supporting-quality-levels-for-your-source) | ||
return function() { | ||
for (var i = 0; i < qualityLevels.length; i++) { | ||
let qualityLevel = qualityLevels[i]; | ||
for (let qualityLevel of qualityLevels) { | ||
if (qualityLevel.height >= 720) { | ||
@@ -94,0 +92,0 @@ qualityLevel.enabled = enable720; |
@@ -5,5 +5,2 @@ import videojs from 'video.js'; | ||
// vjs 5/6 support | ||
const registerPlugin = videojs.registerPlugin || videojs.plugin; | ||
/** | ||
@@ -15,3 +12,3 @@ * Initialization function for the qualityLevels plugin. Sets up the QualityLevelList and | ||
* @param {Object} options Plugin options object. | ||
* @function initPlugin | ||
* @return {QualityLevelList} a list of QualityLevels | ||
*/ | ||
@@ -46,10 +43,10 @@ const initPlugin = function(player, options) { | ||
* @param {Object} options Plugin options object | ||
* @function qualityLevels | ||
* @return {QualityLevelList} a list of QualityLevels | ||
*/ | ||
const qualityLevels = function(options) { | ||
return initPlugin(this, videojs.mergeOptions({}, options)); | ||
return initPlugin(this, videojs.obj.merge({}, options)); | ||
}; | ||
// Register the plugin with video.js. | ||
registerPlugin('qualityLevels', qualityLevels); | ||
videojs.registerPlugin('qualityLevels', qualityLevels); | ||
@@ -56,0 +53,0 @@ // Include the version number. |
@@ -25,2 +25,5 @@ import videojs from 'video.js'; | ||
class QualityLevelList extends videojs.EventTarget { | ||
/** | ||
* Creates a QualityLevelList. | ||
*/ | ||
constructor() { | ||
@@ -58,2 +61,4 @@ super(); | ||
list[Symbol.iterator] = () => list.levels_.values(); | ||
return list; | ||
@@ -108,3 +113,3 @@ } | ||
* | ||
* @param {QualityLevel} remove QualityLevel to remove to the list. | ||
* @param {QualityLevel} qualityLevel The QualityLevel to remove from the list. | ||
* @return {QualityLevel|null} the QualityLevel removed or null if nothing removed | ||
@@ -111,0 +116,0 @@ * @method removeQualityLevel |
@@ -45,1 +45,16 @@ import document from 'global/document'; | ||
}); | ||
QUnit.test('player qualityLevels method returns the proper object', function(assert) { | ||
const qualityLevels = this.player.qualityLevels(); | ||
assert.equal( | ||
qualityLevels.length, | ||
0, | ||
'the returned object contained the length property with the proper value' | ||
); | ||
assert.equal( | ||
qualityLevels.selectedIndex, | ||
-1, | ||
'the returned object contained the selectedIndex property with the proper value' | ||
); | ||
}); |
@@ -12,2 +12,6 @@ import QUnit from 'qunit'; | ||
QUnit.test('the QualityLevelList is iterable', function(assert) { | ||
assert.ok(Symbol.iterator in this.qualityLevels, 'is iterable'); | ||
}); | ||
QUnit.test('Properly adds QualityLevels to the QualityLevelList', function(assert) { | ||
@@ -14,0 +18,0 @@ let addCount = 0; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
68844
1246
0
211