videojs-contrib-quality-levels
Advanced tools
Comparing version 4.0.0 to 4.1.0
@@ -1,2 +0,2 @@ | ||
/*! @name videojs-contrib-quality-levels @version 4.0.0 @license Apache-2.0 */ | ||
/*! @name videojs-contrib-quality-levels @version 4.1.0 @license Apache-2.0 */ | ||
'use strict'; | ||
@@ -55,3 +55,2 @@ | ||
}, | ||
/** | ||
@@ -65,7 +64,5 @@ * Enable or disable the QualityLevel. | ||
} | ||
}); | ||
return level; | ||
} | ||
} | ||
@@ -93,4 +90,3 @@ | ||
*/ | ||
class QualityLevelList extends videojs__default['default'].EventTarget { | ||
class QualityLevelList extends videojs__default["default"].EventTarget { | ||
/** | ||
@@ -105,2 +101,3 @@ * Creates a QualityLevelList. | ||
list.selectedIndex_ = -1; | ||
/** | ||
@@ -112,3 +109,2 @@ * Get the index of the currently selected QualityLevel. | ||
*/ | ||
Object.defineProperty(list, 'selectedIndex', { | ||
@@ -118,4 +114,4 @@ get() { | ||
} | ||
}); | ||
}); | ||
/** | ||
@@ -127,3 +123,2 @@ * Get the length of the list of QualityLevels. | ||
*/ | ||
Object.defineProperty(list, 'length', { | ||
@@ -133,9 +128,7 @@ get() { | ||
} | ||
}); | ||
list[Symbol.iterator] = () => list.levels_.values(); | ||
return list; | ||
} | ||
/** | ||
@@ -154,14 +147,11 @@ * Adds a quality level to the list. | ||
*/ | ||
addQualityLevel(representation) { | ||
let qualityLevel = this.getQualityLevelById(representation.id); // Do not add duplicate quality levels | ||
let qualityLevel = this.getQualityLevelById(representation.id); | ||
// Do not add duplicate quality levels | ||
if (qualityLevel) { | ||
return qualityLevel; | ||
} | ||
const index = this.levels_.length; | ||
qualityLevel = new QualityLevel(representation); | ||
if (!('' + index in this)) { | ||
@@ -172,6 +162,4 @@ Object.defineProperty(this, index, { | ||
} | ||
}); | ||
} | ||
this.levels_.push(qualityLevel); | ||
@@ -184,2 +172,3 @@ this.trigger({ | ||
} | ||
/** | ||
@@ -192,11 +181,7 @@ * Removes a quality level from the list. | ||
*/ | ||
removeQualityLevel(qualityLevel) { | ||
let removed = null; | ||
for (let i = 0, l = this.length; i < l; i++) { | ||
if (this[i] === qualityLevel) { | ||
removed = this.levels_.splice(i, 1)[0]; | ||
if (this.selectedIndex_ === i) { | ||
@@ -207,7 +192,5 @@ this.selectedIndex_ = -1; | ||
} | ||
break; | ||
} | ||
} | ||
if (removed) { | ||
@@ -219,5 +202,5 @@ this.trigger({ | ||
} | ||
return removed; | ||
} | ||
/** | ||
@@ -230,8 +213,5 @@ * Searches for a QualityLevel with the given id. | ||
*/ | ||
getQualityLevelById(id) { | ||
for (let i = 0, l = this.length; i < l; i++) { | ||
const level = this[i]; | ||
if (level.id === id) { | ||
@@ -241,5 +221,5 @@ return level; | ||
} | ||
return null; | ||
} | ||
/** | ||
@@ -250,4 +230,2 @@ * Resets the list of QualityLevels to empty | ||
*/ | ||
dispose() { | ||
@@ -257,4 +235,4 @@ this.selectedIndex_ = -1; | ||
} | ||
} | ||
} | ||
/** | ||
@@ -265,4 +243,2 @@ * change - The selected QualityLevel has changed. | ||
*/ | ||
QualityLevelList.prototype.allowedEvents_ = { | ||
@@ -272,4 +248,5 @@ change: 'change', | ||
removequalitylevel: 'removequalitylevel' | ||
}; // emulate attribute EventHandler support to allow for feature detection | ||
}; | ||
// emulate attribute EventHandler support to allow for feature detection | ||
for (const event in QualityLevelList.prototype.allowedEvents_) { | ||
@@ -279,3 +256,3 @@ QualityLevelList.prototype['on' + event] = null; | ||
var version = "4.0.0"; | ||
var version = "4.1.0"; | ||
@@ -290,7 +267,5 @@ /** | ||
*/ | ||
const initPlugin = function (player, options) { | ||
const originalPluginFn = player.qualityLevels; | ||
const qualityLevelList = new QualityLevelList(); | ||
const disposeHandler = function () { | ||
@@ -301,10 +276,8 @@ qualityLevelList.dispose(); | ||
}; | ||
player.on('dispose', disposeHandler); | ||
player.qualityLevels = () => qualityLevelList; | ||
player.qualityLevels.VERSION = version; | ||
return qualityLevelList; | ||
}; | ||
/** | ||
@@ -321,13 +294,12 @@ * A video.js plugin. | ||
*/ | ||
const qualityLevels = function (options) { | ||
return initPlugin(this, videojs__default['default'].obj.merge({}, options)); | ||
}; // Register the plugin with video.js. | ||
return initPlugin(this, videojs__default["default"].obj.merge({}, options)); | ||
}; | ||
// Register the plugin with video.js. | ||
videojs__default["default"].registerPlugin('qualityLevels', qualityLevels); | ||
videojs__default['default'].registerPlugin('qualityLevels', qualityLevels); // Include the version number. | ||
// Include the version number. | ||
qualityLevels.VERSION = version; | ||
module.exports = qualityLevels; |
@@ -1,2 +0,2 @@ | ||
/*! @name videojs-contrib-quality-levels @version 4.0.0 @license Apache-2.0 */ | ||
/*! @name videojs-contrib-quality-levels @version 4.1.0 @license Apache-2.0 */ | ||
import videojs from 'video.js'; | ||
@@ -49,3 +49,2 @@ | ||
}, | ||
/** | ||
@@ -59,7 +58,5 @@ * Enable or disable the QualityLevel. | ||
} | ||
}); | ||
return level; | ||
} | ||
} | ||
@@ -87,3 +84,2 @@ | ||
*/ | ||
class QualityLevelList extends videojs.EventTarget { | ||
@@ -99,2 +95,3 @@ /** | ||
list.selectedIndex_ = -1; | ||
/** | ||
@@ -106,3 +103,2 @@ * Get the index of the currently selected QualityLevel. | ||
*/ | ||
Object.defineProperty(list, 'selectedIndex', { | ||
@@ -112,4 +108,4 @@ get() { | ||
} | ||
}); | ||
}); | ||
/** | ||
@@ -121,3 +117,2 @@ * Get the length of the list of QualityLevels. | ||
*/ | ||
Object.defineProperty(list, 'length', { | ||
@@ -127,9 +122,7 @@ get() { | ||
} | ||
}); | ||
list[Symbol.iterator] = () => list.levels_.values(); | ||
return list; | ||
} | ||
/** | ||
@@ -148,14 +141,11 @@ * Adds a quality level to the list. | ||
*/ | ||
addQualityLevel(representation) { | ||
let qualityLevel = this.getQualityLevelById(representation.id); // Do not add duplicate quality levels | ||
let qualityLevel = this.getQualityLevelById(representation.id); | ||
// Do not add duplicate quality levels | ||
if (qualityLevel) { | ||
return qualityLevel; | ||
} | ||
const index = this.levels_.length; | ||
qualityLevel = new QualityLevel(representation); | ||
if (!('' + index in this)) { | ||
@@ -166,6 +156,4 @@ Object.defineProperty(this, index, { | ||
} | ||
}); | ||
} | ||
this.levels_.push(qualityLevel); | ||
@@ -178,2 +166,3 @@ this.trigger({ | ||
} | ||
/** | ||
@@ -186,11 +175,7 @@ * Removes a quality level from the list. | ||
*/ | ||
removeQualityLevel(qualityLevel) { | ||
let removed = null; | ||
for (let i = 0, l = this.length; i < l; i++) { | ||
if (this[i] === qualityLevel) { | ||
removed = this.levels_.splice(i, 1)[0]; | ||
if (this.selectedIndex_ === i) { | ||
@@ -201,7 +186,5 @@ this.selectedIndex_ = -1; | ||
} | ||
break; | ||
} | ||
} | ||
if (removed) { | ||
@@ -213,5 +196,5 @@ this.trigger({ | ||
} | ||
return removed; | ||
} | ||
/** | ||
@@ -224,8 +207,5 @@ * Searches for a QualityLevel with the given id. | ||
*/ | ||
getQualityLevelById(id) { | ||
for (let i = 0, l = this.length; i < l; i++) { | ||
const level = this[i]; | ||
if (level.id === id) { | ||
@@ -235,5 +215,5 @@ return level; | ||
} | ||
return null; | ||
} | ||
/** | ||
@@ -244,4 +224,2 @@ * Resets the list of QualityLevels to empty | ||
*/ | ||
dispose() { | ||
@@ -251,4 +229,4 @@ this.selectedIndex_ = -1; | ||
} | ||
} | ||
} | ||
/** | ||
@@ -259,4 +237,2 @@ * change - The selected QualityLevel has changed. | ||
*/ | ||
QualityLevelList.prototype.allowedEvents_ = { | ||
@@ -266,4 +242,5 @@ change: 'change', | ||
removequalitylevel: 'removequalitylevel' | ||
}; // emulate attribute EventHandler support to allow for feature detection | ||
}; | ||
// emulate attribute EventHandler support to allow for feature detection | ||
for (const event in QualityLevelList.prototype.allowedEvents_) { | ||
@@ -273,3 +250,3 @@ QualityLevelList.prototype['on' + event] = null; | ||
var version = "4.0.0"; | ||
var version = "4.1.0"; | ||
@@ -284,7 +261,5 @@ /** | ||
*/ | ||
const initPlugin = function (player, options) { | ||
const originalPluginFn = player.qualityLevels; | ||
const qualityLevelList = new QualityLevelList(); | ||
const disposeHandler = function () { | ||
@@ -295,10 +270,8 @@ qualityLevelList.dispose(); | ||
}; | ||
player.on('dispose', disposeHandler); | ||
player.qualityLevels = () => qualityLevelList; | ||
player.qualityLevels.VERSION = version; | ||
return qualityLevelList; | ||
}; | ||
/** | ||
@@ -315,13 +288,12 @@ * A video.js plugin. | ||
*/ | ||
const qualityLevels = function (options) { | ||
return initPlugin(this, videojs.obj.merge({}, options)); | ||
}; // Register the plugin with video.js. | ||
}; | ||
// Register the plugin with video.js. | ||
videojs.registerPlugin('qualityLevels', qualityLevels); | ||
videojs.registerPlugin('qualityLevels', qualityLevels); // Include the version number. | ||
// Include the version number. | ||
qualityLevels.VERSION = version; | ||
export default qualityLevels; | ||
export { qualityLevels as default }; |
@@ -1,2 +0,2 @@ | ||
/*! @name videojs-contrib-quality-levels @version 4.0.0 @license Apache-2.0 */ | ||
/*! @name videojs-contrib-quality-levels @version 4.1.0 @license Apache-2.0 */ | ||
(function (global, factory) { | ||
@@ -6,3 +6,3 @@ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('video.js')) : | ||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.videojsContribQualityLevels = factory(global.videojs)); | ||
}(this, (function (videojs) { 'use strict'; | ||
})(this, (function (videojs) { 'use strict'; | ||
@@ -58,3 +58,2 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } | ||
}, | ||
/** | ||
@@ -68,7 +67,5 @@ * Enable or disable the QualityLevel. | ||
} | ||
}); | ||
return level; | ||
} | ||
} | ||
@@ -96,4 +93,3 @@ | ||
*/ | ||
class QualityLevelList extends videojs__default['default'].EventTarget { | ||
class QualityLevelList extends videojs__default["default"].EventTarget { | ||
/** | ||
@@ -108,2 +104,3 @@ * Creates a QualityLevelList. | ||
list.selectedIndex_ = -1; | ||
/** | ||
@@ -115,3 +112,2 @@ * Get the index of the currently selected QualityLevel. | ||
*/ | ||
Object.defineProperty(list, 'selectedIndex', { | ||
@@ -121,4 +117,4 @@ get() { | ||
} | ||
}); | ||
}); | ||
/** | ||
@@ -130,3 +126,2 @@ * Get the length of the list of QualityLevels. | ||
*/ | ||
Object.defineProperty(list, 'length', { | ||
@@ -136,9 +131,7 @@ get() { | ||
} | ||
}); | ||
list[Symbol.iterator] = () => list.levels_.values(); | ||
return list; | ||
} | ||
/** | ||
@@ -157,14 +150,11 @@ * Adds a quality level to the list. | ||
*/ | ||
addQualityLevel(representation) { | ||
let qualityLevel = this.getQualityLevelById(representation.id); // Do not add duplicate quality levels | ||
let qualityLevel = this.getQualityLevelById(representation.id); | ||
// Do not add duplicate quality levels | ||
if (qualityLevel) { | ||
return qualityLevel; | ||
} | ||
const index = this.levels_.length; | ||
qualityLevel = new QualityLevel(representation); | ||
if (!('' + index in this)) { | ||
@@ -175,6 +165,4 @@ Object.defineProperty(this, index, { | ||
} | ||
}); | ||
} | ||
this.levels_.push(qualityLevel); | ||
@@ -187,2 +175,3 @@ this.trigger({ | ||
} | ||
/** | ||
@@ -195,11 +184,7 @@ * Removes a quality level from the list. | ||
*/ | ||
removeQualityLevel(qualityLevel) { | ||
let removed = null; | ||
for (let i = 0, l = this.length; i < l; i++) { | ||
if (this[i] === qualityLevel) { | ||
removed = this.levels_.splice(i, 1)[0]; | ||
if (this.selectedIndex_ === i) { | ||
@@ -210,7 +195,5 @@ this.selectedIndex_ = -1; | ||
} | ||
break; | ||
} | ||
} | ||
if (removed) { | ||
@@ -222,5 +205,5 @@ this.trigger({ | ||
} | ||
return removed; | ||
} | ||
/** | ||
@@ -233,8 +216,5 @@ * Searches for a QualityLevel with the given id. | ||
*/ | ||
getQualityLevelById(id) { | ||
for (let i = 0, l = this.length; i < l; i++) { | ||
const level = this[i]; | ||
if (level.id === id) { | ||
@@ -244,5 +224,5 @@ return level; | ||
} | ||
return null; | ||
} | ||
/** | ||
@@ -253,4 +233,2 @@ * Resets the list of QualityLevels to empty | ||
*/ | ||
dispose() { | ||
@@ -260,4 +238,4 @@ this.selectedIndex_ = -1; | ||
} | ||
} | ||
} | ||
/** | ||
@@ -268,4 +246,2 @@ * change - The selected QualityLevel has changed. | ||
*/ | ||
QualityLevelList.prototype.allowedEvents_ = { | ||
@@ -275,4 +251,5 @@ change: 'change', | ||
removequalitylevel: 'removequalitylevel' | ||
}; // emulate attribute EventHandler support to allow for feature detection | ||
}; | ||
// emulate attribute EventHandler support to allow for feature detection | ||
for (const event in QualityLevelList.prototype.allowedEvents_) { | ||
@@ -282,3 +259,3 @@ QualityLevelList.prototype['on' + event] = null; | ||
var version = "4.0.0"; | ||
var version = "4.1.0"; | ||
@@ -293,7 +270,5 @@ /** | ||
*/ | ||
const initPlugin = function (player, options) { | ||
const originalPluginFn = player.qualityLevels; | ||
const qualityLevelList = new QualityLevelList(); | ||
const disposeHandler = function () { | ||
@@ -304,10 +279,8 @@ qualityLevelList.dispose(); | ||
}; | ||
player.on('dispose', disposeHandler); | ||
player.qualityLevels = () => qualityLevelList; | ||
player.qualityLevels.VERSION = version; | ||
return qualityLevelList; | ||
}; | ||
/** | ||
@@ -324,11 +297,10 @@ * A video.js plugin. | ||
*/ | ||
const qualityLevels = function (options) { | ||
return initPlugin(this, videojs__default['default'].obj.merge({}, options)); | ||
}; // Register the plugin with video.js. | ||
return initPlugin(this, videojs__default["default"].obj.merge({}, options)); | ||
}; | ||
// Register the plugin with video.js. | ||
videojs__default["default"].registerPlugin('qualityLevels', qualityLevels); | ||
videojs__default['default'].registerPlugin('qualityLevels', qualityLevels); // Include the version number. | ||
// Include the version number. | ||
qualityLevels.VERSION = version; | ||
@@ -338,2 +310,2 @@ | ||
}))); | ||
})); |
@@ -1,2 +0,2 @@ | ||
/*! @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 4.1.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.1.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": "4.0.0", | ||
"version": "4.1.0", | ||
"description": "Exposes a list of quality levels available for the source.", | ||
"main": "dist/videojs-contrib-quality-levels.cjs.js", | ||
"types": "dist/types/plugin.d.ts", | ||
"jsnext:main": "src/plugin.js", | ||
@@ -17,2 +18,3 @@ "generator-videojs-plugin": { | ||
"build:js": "rollup -c scripts/rollup.config.js", | ||
"build:types": "tsc", | ||
"clean": "shx rm -rf ./dist ./test/dist ./cjs ./es && shx mkdir -p ./dist ./test/dist ./cjs ./es", | ||
@@ -34,3 +36,4 @@ "postclean": "shx mkdir -p ./dist ./test/dist", | ||
"watch:js": "npm run build:js -- -w", | ||
"prepublishOnly": "npm-run-all build-prod && vjsverify --verbose --skip-es-check" | ||
"prepublishOnly": "npm-run-all build-prod && vjsverify --verbose --skip-es-check", | ||
"prepare": "husky install" | ||
}, | ||
@@ -79,3 +82,3 @@ "keywords": [ | ||
"doctoc": "^1.3.1", | ||
"husky": "^1.0.0-rc.13", | ||
"husky": "^8.0.3", | ||
"jsdoc": "^3.6.11", | ||
@@ -92,2 +95,3 @@ "karma": "^6.3.2", | ||
"sinon": "^9.1.0", | ||
"typescript": "^5.4.2", | ||
"video.js": "^8", | ||
@@ -104,13 +108,7 @@ "videojs-generate-karma-config": "~8.0.0", | ||
}, | ||
"husky": { | ||
"hooks": { | ||
"pre-commit": "lint-staged", | ||
"pre-push": "npm run test" | ||
} | ||
}, | ||
"browser": "dist/videojs-contrib-quality-levels.js", | ||
"engines": { | ||
"node": ">=14", | ||
"npm": ">=6" | ||
"node": ">=16", | ||
"npm": ">=8" | ||
} | ||
} |
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
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
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
24
1384
66600
25
1