mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge pull request #1024 from MrTimscampi/polyfill-lint
Throw linting errors if using non-polyfilled APIs
This commit is contained in:
commit
4bef70edcc
17 changed files with 222 additions and 56 deletions
|
@ -22,6 +22,7 @@ extends:
|
||||||
- plugin:import/errors
|
- plugin:import/errors
|
||||||
- plugin:import/warnings
|
- plugin:import/warnings
|
||||||
- plugin:eslint-comments/recommended
|
- plugin:eslint-comments/recommended
|
||||||
|
- plugin:compat/recommended
|
||||||
|
|
||||||
globals:
|
globals:
|
||||||
# Browser globals
|
# Browser globals
|
||||||
|
@ -85,3 +86,86 @@ rules:
|
||||||
promise/no-return-wrap: ["warn"]
|
promise/no-return-wrap: ["warn"]
|
||||||
# TODO: Remove after ES6 migration is complete
|
# TODO: Remove after ES6 migration is complete
|
||||||
import/no-unresolved: ["warn"]
|
import/no-unresolved: ["warn"]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
polyfills:
|
||||||
|
# Native Promises Only
|
||||||
|
- Promise
|
||||||
|
# whatwg-fetch
|
||||||
|
- fetch
|
||||||
|
# document-register-element
|
||||||
|
- document.registerElement
|
||||||
|
# resize-observer-polyfill
|
||||||
|
- ResizeObserver
|
||||||
|
# fast-text-encoding
|
||||||
|
- TextEncoder
|
||||||
|
# intersection-observer
|
||||||
|
- IntersectionObserver
|
||||||
|
# Core-js
|
||||||
|
- Object.assign
|
||||||
|
- Object.is
|
||||||
|
- Object.setPrototypeOf
|
||||||
|
- Object.toString
|
||||||
|
- Object.freeze
|
||||||
|
- Object.seal
|
||||||
|
- Object.preventExtensions
|
||||||
|
- Object.isFrozen
|
||||||
|
- Object.isSealed
|
||||||
|
- Object.isExtensible
|
||||||
|
- Object.getOwnPropertyDescriptor
|
||||||
|
- Object.getPrototypeOf
|
||||||
|
- Object.keys
|
||||||
|
- Object.getOwnPropertyNames
|
||||||
|
- Function.name
|
||||||
|
- Function.hasInstance
|
||||||
|
- Array.from
|
||||||
|
- Array.arrayOf
|
||||||
|
- Array.copyWithin
|
||||||
|
- Array.fill
|
||||||
|
- Array.find
|
||||||
|
- Array.findIndex
|
||||||
|
- Array.iterator
|
||||||
|
- String.fromCodePoint
|
||||||
|
- String.raw
|
||||||
|
- String.iterator
|
||||||
|
- String.codePointAt
|
||||||
|
- String.endsWith
|
||||||
|
- String.includes
|
||||||
|
- String.repeat
|
||||||
|
- String.startsWith
|
||||||
|
- String.trim
|
||||||
|
- String.anchor
|
||||||
|
- String.big
|
||||||
|
- String.blink
|
||||||
|
- String.bold
|
||||||
|
- String.fixed
|
||||||
|
- String.fontcolor
|
||||||
|
- String.fontsize
|
||||||
|
- String.italics
|
||||||
|
- String.link
|
||||||
|
- String.small
|
||||||
|
- String.strike
|
||||||
|
- String.sub
|
||||||
|
- String.sup
|
||||||
|
- RegExp
|
||||||
|
- Number
|
||||||
|
- Math
|
||||||
|
- Date
|
||||||
|
- async
|
||||||
|
- Symbol
|
||||||
|
- Map
|
||||||
|
- Set
|
||||||
|
- WeakMap
|
||||||
|
- WeakSet
|
||||||
|
- ArrayBuffer
|
||||||
|
- DataView
|
||||||
|
- Int8Array
|
||||||
|
- Uint8Array
|
||||||
|
- Uint8ClampedArray
|
||||||
|
- Int16Array
|
||||||
|
- Uint16Array
|
||||||
|
- Int32Array
|
||||||
|
- Uint32Array
|
||||||
|
- Float32Array
|
||||||
|
- Float64Array
|
||||||
|
- Reflect
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
"cssnano": "^4.1.10",
|
"cssnano": "^4.1.10",
|
||||||
"del": "^5.1.0",
|
"del": "^5.1.0",
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^6.8.0",
|
||||||
|
"eslint-plugin-compat": "^3.5.1",
|
||||||
"eslint-plugin-eslint-comments": "^3.1.2",
|
"eslint-plugin-eslint-comments": "^3.1.2",
|
||||||
"eslint-plugin-import": "^2.20.2",
|
"eslint-plugin-import": "^2.20.2",
|
||||||
"eslint-plugin-promise": "^4.2.1",
|
"eslint-plugin-promise": "^4.2.1",
|
||||||
|
@ -58,9 +59,11 @@
|
||||||
"core-js": "^3.6.4",
|
"core-js": "^3.6.4",
|
||||||
"date-fns": "^2.11.1",
|
"date-fns": "^2.11.1",
|
||||||
"document-register-element": "^1.14.3",
|
"document-register-element": "^1.14.3",
|
||||||
|
"fast-text-encoding": "^1.0.1",
|
||||||
"flv.js": "^1.5.0",
|
"flv.js": "^1.5.0",
|
||||||
"hls.js": "^0.13.1",
|
"hls.js": "^0.13.1",
|
||||||
"howler": "^2.1.3",
|
"howler": "^2.1.3",
|
||||||
|
"intersection-observer": "^0.7.0",
|
||||||
"jellyfin-noto": "https://github.com/jellyfin/jellyfin-noto",
|
"jellyfin-noto": "https://github.com/jellyfin/jellyfin-noto",
|
||||||
"jquery": "^3.4.1",
|
"jquery": "^3.4.1",
|
||||||
"jstree": "^3.3.7",
|
"jstree": "^3.3.7",
|
||||||
|
|
|
@ -129,3 +129,13 @@ var date_fns_locale = require("date-fns/locale");
|
||||||
_define("date-fns/locale", function () {
|
_define("date-fns/locale", function () {
|
||||||
return date_fns_locale;
|
return date_fns_locale;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var fast_text_encoding = require("fast-text-encoding");
|
||||||
|
_define("fast-text-encoding", function () {
|
||||||
|
return fast_text_encoding;
|
||||||
|
});
|
||||||
|
|
||||||
|
var intersection_observer = require("intersection-observer");
|
||||||
|
_define("intersection-observer", function () {
|
||||||
|
return intersection_observer;
|
||||||
|
});
|
||||||
|
|
|
@ -268,6 +268,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMaxBandwidth() {
|
function getMaxBandwidth() {
|
||||||
|
/* eslint-disable compat/compat */
|
||||||
if (navigator.connection) {
|
if (navigator.connection) {
|
||||||
var max = navigator.connection.downlinkMax;
|
var max = navigator.connection.downlinkMax;
|
||||||
if (max && max > 0 && max < Number.POSITIVE_INFINITY) {
|
if (max && max > 0 && max < Number.POSITIVE_INFINITY) {
|
||||||
|
@ -279,6 +280,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
return max;
|
return max;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* eslint-enable compat/compat */
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -351,8 +351,6 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings"], f
|
||||||
var deviceName;
|
var deviceName;
|
||||||
var appName = "Jellyfin Web";
|
var appName = "Jellyfin Web";
|
||||||
var appVersion = "10.5.0";
|
var appVersion = "10.5.0";
|
||||||
var visibilityChange;
|
|
||||||
var visibilityState;
|
|
||||||
|
|
||||||
var appHost = {
|
var appHost = {
|
||||||
getWindowState: function () {
|
getWindowState: function () {
|
||||||
|
@ -426,40 +424,26 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings"], f
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var doc = self.document;
|
|
||||||
var isHidden = false;
|
var isHidden = false;
|
||||||
|
var hidden;
|
||||||
|
var visibilityChange;
|
||||||
|
|
||||||
if (doc) {
|
if (typeof document.hidden !== "undefined") { /* eslint-disable-line compat/compat */
|
||||||
if (void 0 !== doc.visibilityState) {
|
hidden = "hidden";
|
||||||
visibilityChange = "visibilitychange";
|
visibilityChange = "visibilitychange";
|
||||||
visibilityState = "hidden";
|
} else if (typeof document.webkitHidden !== "undefined") {
|
||||||
|
hidden = "webkitHidden";
|
||||||
|
visibilityChange = "webkitvisibilitychange";
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener(visibilityChange, function () {
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
|
if (document[hidden]) {
|
||||||
|
onAppHidden();
|
||||||
} else {
|
} else {
|
||||||
if (void 0 !== doc.mozHidden) {
|
onAppVisible();
|
||||||
visibilityChange = "mozvisibilitychange";
|
|
||||||
visibilityState = "mozVisibilityState";
|
|
||||||
} else {
|
|
||||||
if (void 0 !== doc.msHidden) {
|
|
||||||
visibilityChange = "msvisibilitychange";
|
|
||||||
visibilityState = "msVisibilityState";
|
|
||||||
} else {
|
|
||||||
if (void 0 !== doc.webkitHidden) {
|
|
||||||
visibilityChange = "webkitvisibilitychange";
|
|
||||||
visibilityState = "webkitVisibilityState";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}, false);
|
||||||
|
|
||||||
if (doc) {
|
|
||||||
doc.addEventListener(visibilityChange, function () {
|
|
||||||
if (document[visibilityState]) {
|
|
||||||
onAppHidden();
|
|
||||||
} else {
|
|
||||||
onAppVisible();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (self.addEventListener) {
|
if (self.addEventListener) {
|
||||||
self.addEventListener("focus", onAppVisible);
|
self.addEventListener("focus", onAppVisible);
|
||||||
|
|
|
@ -31,7 +31,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||||
}
|
}
|
||||||
|
|
||||||
function enableHlsShakaPlayer(item, mediaSource, mediaType) {
|
function enableHlsShakaPlayer(item, mediaSource, mediaType) {
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
if (!!window.MediaSource && !!MediaSource.isTypeSupported) {
|
if (!!window.MediaSource && !!MediaSource.isTypeSupported) {
|
||||||
|
|
||||||
if (canPlayNativeHls()) {
|
if (canPlayNativeHls()) {
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', 'userSettings', 'require', 'css!./style'], function (lazyLoader, imageFetcher, layoutManager, browser, appSettings, userSettings, require) {
|
define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', 'userSettings', 'require', 'css!./style'], function (lazyLoader, imageFetcher, layoutManager, browser, appSettings, userSettings, require) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var requestIdleCallback = window.requestIdleCallback || function (fn) {
|
|
||||||
fn();
|
|
||||||
};
|
|
||||||
|
|
||||||
var self = {};
|
var self = {};
|
||||||
|
|
||||||
function fillImage(elem, source, enableEffects) {
|
function fillImage(elem, source, enableEffects) {
|
||||||
|
|
|
@ -184,7 +184,7 @@ require(['apphost'], function (appHost) {
|
||||||
function allowInput() {
|
function allowInput() {
|
||||||
|
|
||||||
// This would be nice but always seems to return true with electron
|
// This would be nice but always seems to return true with electron
|
||||||
if (!isElectron && document.hidden) {
|
if (!isElectron && document.hidden) { /* eslint-disable-line compat/compat */
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -254,7 +254,7 @@ require(['apphost'], function (appHost) {
|
||||||
var inputLoopTimer;
|
var inputLoopTimer;
|
||||||
function runInputLoop() {
|
function runInputLoop() {
|
||||||
// Get the latest gamepad state.
|
// Get the latest gamepad state.
|
||||||
var gamepads = navigator.getGamepads();
|
var gamepads = navigator.getGamepads(); /* eslint-disable-line compat/compat */
|
||||||
for (var i = 0, len = gamepads.length; i < len; i++) {
|
for (var i = 0, len = gamepads.length; i < len; i++) {
|
||||||
var gamepad = gamepads[i];
|
var gamepad = gamepads[i];
|
||||||
if (!gamepad) {
|
if (!gamepad) {
|
||||||
|
@ -362,7 +362,7 @@ require(['apphost'], function (appHost) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function isGamepadConnected() {
|
function isGamepadConnected() {
|
||||||
var gamepads = navigator.getGamepads();
|
var gamepads = navigator.getGamepads(); /* eslint-disable-line compat/compat */
|
||||||
for (var i = 0, len = gamepads.length; i < len; i++) {
|
for (var i = 0, len = gamepads.length; i < len; i++) {
|
||||||
var gamepad = gamepads[i];
|
var gamepad = gamepads[i];
|
||||||
if (gamepad && gamepad.connected) {
|
if (gamepad && gamepad.connected) {
|
||||||
|
@ -373,6 +373,7 @@ require(['apphost'], function (appHost) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function onFocusOrGamepadAttach(e) {
|
function onFocusOrGamepadAttach(e) {
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
if (isGamepadConnected() && document.hasFocus()) {
|
if (isGamepadConnected() && document.hasFocus()) {
|
||||||
console.log("Gamepad connected! Starting input loop");
|
console.log("Gamepad connected! Starting input loop");
|
||||||
startInputLoop();
|
startInputLoop();
|
||||||
|
@ -380,6 +381,7 @@ require(['apphost'], function (appHost) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function onFocusOrGamepadDetach(e) {
|
function onFocusOrGamepadDetach(e) {
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
if (!isGamepadConnected() || !document.hasFocus()) {
|
if (!isGamepadConnected() || !document.hasFocus()) {
|
||||||
console.log("Gamepad disconnected! No other gamepads are connected, stopping input loop");
|
console.log("Gamepad disconnected! No other gamepads are connected, stopping input loop");
|
||||||
stopInputLoop();
|
stopInputLoop();
|
||||||
|
|
|
@ -159,7 +159,9 @@ function attachGamepadScript(e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// No need to check for gamepads manually at load time, the eventhandler will be fired for that
|
// No need to check for gamepads manually at load time, the eventhandler will be fired for that
|
||||||
window.addEventListener("gamepadconnected", attachGamepadScript);
|
if (navigator.getGamepads) { /* eslint-disable-line compat/compat */
|
||||||
|
window.addEventListener("gamepadconnected", attachGamepadScript);
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
enable: enable,
|
enable: enable,
|
||||||
|
|
|
@ -352,6 +352,7 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter",
|
||||||
document.body.appendChild(textArea);
|
document.body.appendChild(textArea);
|
||||||
textArea.focus();
|
textArea.focus();
|
||||||
textArea.select();
|
textArea.select();
|
||||||
|
|
||||||
if (document.execCommand("copy")) {
|
if (document.execCommand("copy")) {
|
||||||
require(["toast"], function (toast) {
|
require(["toast"], function (toast) {
|
||||||
toast(globalize.translate("CopyStreamURLSuccess"));
|
toast(globalize.translate("CopyStreamURLSuccess"));
|
||||||
|
@ -361,14 +362,19 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter",
|
||||||
}
|
}
|
||||||
document.body.removeChild(textArea);
|
document.body.removeChild(textArea);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
if (navigator.clipboard === undefined) {
|
if (navigator.clipboard === undefined) {
|
||||||
textAreaCopy();
|
textAreaCopy();
|
||||||
} else {
|
} else {
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
navigator.clipboard.writeText(downloadHref).then(function () {
|
navigator.clipboard.writeText(downloadHref).then(function () {
|
||||||
require(["toast"], function (toast) {
|
require(["toast"], function (toast) {
|
||||||
toast(globalize.translate("CopyStreamURLSuccess"));
|
toast(globalize.translate("CopyStreamURLSuccess"));
|
||||||
});
|
});
|
||||||
}, textAreaCopy);
|
}).catch(function () {
|
||||||
|
textAreaCopy();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
getResolveFunction(resolve, id)();
|
getResolveFunction(resolve, id)();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -4,10 +4,6 @@ define(['visibleinviewport', 'dom', 'browser'], function (visibleinviewport, dom
|
||||||
var thresholdX;
|
var thresholdX;
|
||||||
var thresholdY;
|
var thresholdY;
|
||||||
|
|
||||||
var requestIdleCallback = window.requestIdleCallback || function (fn) {
|
|
||||||
fn();
|
|
||||||
};
|
|
||||||
|
|
||||||
function resetThresholds() {
|
function resetThresholds() {
|
||||||
|
|
||||||
var threshold = 0.3;
|
var threshold = 0.3;
|
||||||
|
|
|
@ -6,6 +6,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
|
||||||
document.removeEventListener('keydown', onOneDocumentClick);
|
document.removeEventListener('keydown', onOneDocumentClick);
|
||||||
|
|
||||||
if (window.Notification) {
|
if (window.Notification) {
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
Notification.requestPermission();
|
Notification.requestPermission();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,6 +27,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetRegistration() {
|
function resetRegistration() {
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
var serviceWorker = navigator.serviceWorker;
|
var serviceWorker = navigator.serviceWorker;
|
||||||
if (serviceWorker) {
|
if (serviceWorker) {
|
||||||
serviceWorker.ready.then(function (registration) {
|
serviceWorker.ready.then(function (registration) {
|
||||||
|
|
|
@ -17,6 +17,7 @@ define(['playbackManager', 'layoutManager', 'events'], function (playbackManager
|
||||||
var isLocalVideo = player.isLocalPlayer && !player.isExternalPlayer && playbackManager.isPlayingVideo(player);
|
var isLocalVideo = player.isLocalPlayer && !player.isExternalPlayer && playbackManager.isPlayingVideo(player);
|
||||||
|
|
||||||
if (isLocalVideo && layoutManager.mobile) {
|
if (isLocalVideo && layoutManager.mobile) {
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
var lockOrientation = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation || (screen.orientation && screen.orientation.lock);
|
var lockOrientation = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation || (screen.orientation && screen.orientation.lock);
|
||||||
|
|
||||||
if (lockOrientation) {
|
if (lockOrientation) {
|
||||||
|
@ -40,6 +41,7 @@ define(['playbackManager', 'layoutManager', 'events'], function (playbackManager
|
||||||
|
|
||||||
if (orientationLocked && !playbackStopInfo.nextMediaType) {
|
if (orientationLocked && !playbackStopInfo.nextMediaType) {
|
||||||
|
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
var unlockOrientation = screen.unlockOrientation || screen.mozUnlockOrientation || screen.msUnlockOrientation || (screen.orientation && screen.orientation.unlock);
|
var unlockOrientation = screen.unlockOrientation || screen.mozUnlockOrientation || screen.msUnlockOrientation || (screen.orientation && screen.orientation.unlock);
|
||||||
|
|
||||||
if (unlockOrientation) {
|
if (unlockOrientation) {
|
||||||
|
|
|
@ -1152,7 +1152,7 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
||||||
case "GamepadDPadLeft":
|
case "GamepadDPadLeft":
|
||||||
case "GamepadLeftThumbstickLeft":
|
case "GamepadLeftThumbstickLeft":
|
||||||
// Ignores gamepad events that are always triggered, even when not focused.
|
// Ignores gamepad events that are always triggered, even when not focused.
|
||||||
if (document.hasFocus()) {
|
if (document.hasFocus()) { /* eslint-disable-line compat/compat */
|
||||||
playbackManager.rewind(currentPlayer);
|
playbackManager.rewind(currentPlayer);
|
||||||
showOsd();
|
showOsd();
|
||||||
}
|
}
|
||||||
|
@ -1161,7 +1161,7 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
||||||
case "GamepadDPadRight":
|
case "GamepadDPadRight":
|
||||||
case "GamepadLeftThumbstickRight":
|
case "GamepadLeftThumbstickRight":
|
||||||
// Ignores gamepad events that are always triggered, even when not focused.
|
// Ignores gamepad events that are always triggered, even when not focused.
|
||||||
if (document.hasFocus()) {
|
if (document.hasFocus()) { /* eslint-disable-line compat/compat */
|
||||||
playbackManager.fastForward(currentPlayer);
|
playbackManager.fastForward(currentPlayer);
|
||||||
showOsd();
|
showOsd();
|
||||||
}
|
}
|
||||||
|
|
|
@ -292,6 +292,7 @@ define([], function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof document !== 'undefined') {
|
if (typeof document !== 'undefined') {
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
if (('ontouchstart' in window) || (navigator.maxTouchPoints > 0)) {
|
if (('ontouchstart' in window) || (navigator.maxTouchPoints > 0)) {
|
||||||
browser.touch = true;
|
browser.touch = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -615,13 +615,17 @@ var AppInfo = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
function registerServiceWorker() {
|
function registerServiceWorker() {
|
||||||
if (navigator.serviceWorker && "cordova" !== self.appMode && "android" !== self.appMode) {
|
/* eslint-disable compat/compat */
|
||||||
|
if (navigator.serviceWorker && self.appMode !== "cordova" && self.appMode !== "android") {
|
||||||
try {
|
try {
|
||||||
navigator.serviceWorker.register("serviceworker.js");
|
navigator.serviceWorker.register("serviceworker.js");
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("error registering serviceWorker: " + err);
|
console.error("error registering serviceWorker: " + err);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
console.warn("serviceWorker unsupported");
|
||||||
}
|
}
|
||||||
|
/* eslint-enable compat/compat */
|
||||||
}
|
}
|
||||||
|
|
||||||
function onWebComponentsReady(browser) {
|
function onWebComponentsReady(browser) {
|
||||||
|
@ -700,6 +704,8 @@ var AppInfo = {};
|
||||||
"date-fns",
|
"date-fns",
|
||||||
"page",
|
"page",
|
||||||
"polyfill",
|
"polyfill",
|
||||||
|
"fast-text-encoding",
|
||||||
|
"intersection-observer",
|
||||||
"classlist-polyfill"
|
"classlist-polyfill"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -709,6 +715,8 @@ var AppInfo = {};
|
||||||
});
|
});
|
||||||
|
|
||||||
require(["polyfill"]);
|
require(["polyfill"]);
|
||||||
|
require(["fast-text-encoding"]);
|
||||||
|
require(["intersection-observer"]);
|
||||||
require(["classlist-polyfill"]);
|
require(["classlist-polyfill"]);
|
||||||
|
|
||||||
// Expose jQuery globally
|
// Expose jQuery globally
|
||||||
|
|
82
yarn.lock
82
yarn.lock
|
@ -710,7 +710,7 @@
|
||||||
"@babel/types" "^7.4.4"
|
"@babel/types" "^7.4.4"
|
||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
|
|
||||||
"@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
|
"@babel/runtime@^7.7.7", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
|
||||||
version "7.9.2"
|
version "7.9.2"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06"
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06"
|
||||||
integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==
|
integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==
|
||||||
|
@ -1471,6 +1471,11 @@ assign-symbols@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
|
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
|
||||||
integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
|
integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
|
||||||
|
|
||||||
|
ast-metadata-inferer@^0.1.1:
|
||||||
|
version "0.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.1.1.tgz#66e24fae9d30ca961fac4880b7fc466f09b25165"
|
||||||
|
integrity sha512-hc9w8Qrgg9Lf9iFcZVhNjUnhrd2BBpTlyCnegPVvCe6O0yMrF57a6Cmh7k+xUsfUOMh9wajOL5AsGOBNEyTCcw==
|
||||||
|
|
||||||
astral-regex@^1.0.0:
|
astral-regex@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
|
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
|
||||||
|
@ -1965,6 +1970,16 @@ browserslist@^4.0.0, browserslist@^4.11.0, browserslist@^4.6.4, browserslist@^4.
|
||||||
node-releases "^1.1.52"
|
node-releases "^1.1.52"
|
||||||
pkg-up "^3.1.0"
|
pkg-up "^3.1.0"
|
||||||
|
|
||||||
|
browserslist@^4.8.2:
|
||||||
|
version "4.11.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b"
|
||||||
|
integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==
|
||||||
|
dependencies:
|
||||||
|
caniuse-lite "^1.0.30001038"
|
||||||
|
electron-to-chromium "^1.3.390"
|
||||||
|
node-releases "^1.1.53"
|
||||||
|
pkg-up "^2.0.0"
|
||||||
|
|
||||||
bs-recipes@1.3.4:
|
bs-recipes@1.3.4:
|
||||||
version "1.3.4"
|
version "1.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585"
|
resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585"
|
||||||
|
@ -2210,11 +2225,21 @@ caniuse-db@^1.0.30000639:
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001036.tgz#8761fb6cd423ef2d3f8d96a21d898932252dc477"
|
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001036.tgz#8761fb6cd423ef2d3f8d96a21d898932252dc477"
|
||||||
integrity sha512-plRkihXQyiDaFUXC7x/jAIXXTKiiaWvfAagsruh/vmstnRQ+a2a95HyENxiTr5WrkPSvmFUIvsRUalVFyeh2/w==
|
integrity sha512-plRkihXQyiDaFUXC7x/jAIXXTKiiaWvfAagsruh/vmstnRQ+a2a95HyENxiTr5WrkPSvmFUIvsRUalVFyeh2/w==
|
||||||
|
|
||||||
|
caniuse-db@^1.0.30001017:
|
||||||
|
version "1.0.30001039"
|
||||||
|
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001039.tgz#b5e8c3bb07a144341644729fa2a5eb2c0deaf47d"
|
||||||
|
integrity sha512-XVk5KMAi8/DI28tQXKuq1PDyuPoD9Ypnda3ctF04TlB+LYIb+bgHq0ZDfNOn0+4cwLENJC0093Vuf0dhkjXQ7Q==
|
||||||
|
|
||||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001036:
|
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001036:
|
||||||
version "1.0.30001036"
|
version "1.0.30001036"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001036.tgz#930ea5272010d8bf190d859159d757c0b398caf0"
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001036.tgz#930ea5272010d8bf190d859159d757c0b398caf0"
|
||||||
integrity sha512-jU8CIFIj2oR7r4W+5AKcsvWNVIb6Q6OZE3UsrXrZBHFtreT4YgTeOJtTucp+zSedEpTi3L5wASSP0LYIE3if6w==
|
integrity sha512-jU8CIFIj2oR7r4W+5AKcsvWNVIb6Q6OZE3UsrXrZBHFtreT4YgTeOJtTucp+zSedEpTi3L5wASSP0LYIE3if6w==
|
||||||
|
|
||||||
|
caniuse-lite@^1.0.30001038:
|
||||||
|
version "1.0.30001039"
|
||||||
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001039.tgz#b3814a1c38ffeb23567f8323500c09526a577bbe"
|
||||||
|
integrity sha512-SezbWCTT34eyFoWHgx8UWso7YtvtM7oosmFoXbCkdC6qJzRfBTeTgE9REtKtiuKXuMwWTZEvdnFNGAyVMorv8Q==
|
||||||
|
|
||||||
caseless@~0.12.0:
|
caseless@~0.12.0:
|
||||||
version "0.12.0"
|
version "0.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
||||||
|
@ -3637,6 +3662,11 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.380:
|
||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.382.tgz#cad02da655c33f7a3d6ca7525bd35c17e90f3a8f"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.382.tgz#cad02da655c33f7a3d6ca7525bd35c17e90f3a8f"
|
||||||
integrity sha512-gJfxOcgnBlXhfnUUObsq3n3ReU8CT6S8je97HndYRkKsNZMJJ38zO/pI5aqO7L3Myfq+E3pqPyKK/ynyLEQfBA==
|
integrity sha512-gJfxOcgnBlXhfnUUObsq3n3ReU8CT6S8je97HndYRkKsNZMJJ38zO/pI5aqO7L3Myfq+E3pqPyKK/ynyLEQfBA==
|
||||||
|
|
||||||
|
electron-to-chromium@^1.3.390:
|
||||||
|
version "1.3.397"
|
||||||
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.397.tgz#db640c2e67b08d590a504c20b56904537aa2bafa"
|
||||||
|
integrity sha512-zcUd1p/7yzTSdWkCTrqGvbnEOASy96d0RJL/lc5BDJoO23Z3G/VHd0yIPbguDU9n8QNUTCigLO7oEdtOb7fp2A==
|
||||||
|
|
||||||
elliptic@^6.0.0:
|
elliptic@^6.0.0:
|
||||||
version "6.5.2"
|
version "6.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
|
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
|
||||||
|
@ -3895,6 +3925,19 @@ eslint-module-utils@^2.4.1:
|
||||||
debug "^2.6.9"
|
debug "^2.6.9"
|
||||||
pkg-dir "^2.0.0"
|
pkg-dir "^2.0.0"
|
||||||
|
|
||||||
|
eslint-plugin-compat@^3.5.1:
|
||||||
|
version "3.5.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-3.5.1.tgz#09f9c05dcfa9b5cd69345d7ab333749813ed8b14"
|
||||||
|
integrity sha512-dhfW12vZxxKLEVhrPoblmEopgwpYU2Sd4GdXj5OSfbQ+as9+1aY+S5pqnJYJvXXNWFFJ6aspLkCyk4NMQ/pgtA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.7.7"
|
||||||
|
ast-metadata-inferer "^0.1.1"
|
||||||
|
browserslist "^4.8.2"
|
||||||
|
caniuse-db "^1.0.30001017"
|
||||||
|
lodash.memoize "4.1.2"
|
||||||
|
mdn-browser-compat-data "^1.0.3"
|
||||||
|
semver "^6.3.0"
|
||||||
|
|
||||||
eslint-plugin-eslint-comments@^3.1.2:
|
eslint-plugin-eslint-comments@^3.1.2:
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz#4ef6c488dbe06aa1627fea107b3e5d059fc8a395"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz#4ef6c488dbe06aa1627fea107b3e5d059fc8a395"
|
||||||
|
@ -4239,7 +4282,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
|
||||||
assign-symbols "^1.0.0"
|
assign-symbols "^1.0.0"
|
||||||
is-extendable "^1.0.1"
|
is-extendable "^1.0.1"
|
||||||
|
|
||||||
extend@^3.0.0, extend@~3.0.2:
|
extend@3.0.2, extend@^3.0.0, extend@~3.0.2:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||||
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
||||||
|
@ -4326,6 +4369,11 @@ fast-levenshtein@~2.0.6:
|
||||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||||
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
|
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
|
||||||
|
|
||||||
|
fast-text-encoding@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.1.tgz#4a428566f74fc55ebdd447555b1eb4d9cf514455"
|
||||||
|
integrity sha512-x4FEgaz3zNRtJfLFqJmHWxkMDDvXVtaznj2V9jiP8ACUJrUgist4bP9FmDL2Vew2Y9mEQI/tG4GqabaitYp9CQ==
|
||||||
|
|
||||||
fastq@^1.6.0:
|
fastq@^1.6.0:
|
||||||
version "1.6.1"
|
version "1.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.1.tgz#4570c74f2ded173e71cf0beb08ac70bb85826791"
|
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.1.tgz#4570c74f2ded173e71cf0beb08ac70bb85826791"
|
||||||
|
@ -5938,6 +5986,11 @@ interpret@1.2.0, interpret@^1.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
|
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
|
||||||
integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
|
integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
|
||||||
|
|
||||||
|
intersection-observer@^0.7.0:
|
||||||
|
version "0.7.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.7.0.tgz#ee16bee978db53516ead2f0a8154b09b400bbdc9"
|
||||||
|
integrity sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg==
|
||||||
|
|
||||||
into-stream@^3.1.0:
|
into-stream@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6"
|
resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6"
|
||||||
|
@ -6690,10 +6743,6 @@ levn@^0.3.0, levn@~0.3.0:
|
||||||
prelude-ls "~1.1.2"
|
prelude-ls "~1.1.2"
|
||||||
type-check "~0.3.2"
|
type-check "~0.3.2"
|
||||||
|
|
||||||
"libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf":
|
|
||||||
version "4.0.0"
|
|
||||||
resolved "https://github.com/jellyfin/JavascriptSubtitlesOctopus#7e6b75dcab9f7dad12719983510d05242803707c"
|
|
||||||
|
|
||||||
"libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-cordova":
|
"libass-wasm@https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-cordova":
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://github.com/jellyfin/JavascriptSubtitlesOctopus#b38056588bfaebc18a8353cb1757de0a815ac879"
|
resolved "https://github.com/jellyfin/JavascriptSubtitlesOctopus#b38056588bfaebc18a8353cb1757de0a815ac879"
|
||||||
|
@ -6909,7 +6958,7 @@ lodash.keys@^3.0.0:
|
||||||
lodash.isarguments "^3.0.0"
|
lodash.isarguments "^3.0.0"
|
||||||
lodash.isarray "^3.0.0"
|
lodash.isarray "^3.0.0"
|
||||||
|
|
||||||
lodash.memoize@^4.1.2:
|
lodash.memoize@4.1.2, lodash.memoize@^4.1.2:
|
||||||
version "4.1.2"
|
version "4.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
|
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
|
||||||
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
|
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
|
||||||
|
@ -7194,6 +7243,13 @@ mdast-util-compact@^1.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
unist-util-visit "^1.1.0"
|
unist-util-visit "^1.1.0"
|
||||||
|
|
||||||
|
mdn-browser-compat-data@^1.0.3:
|
||||||
|
version "1.0.16"
|
||||||
|
resolved "https://registry.yarnpkg.com/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.16.tgz#64f79c50d730108390205ed16e781e702ee1e16d"
|
||||||
|
integrity sha512-g3bkROyUKH5avfQ2Ou2ejtyfGNe7++Axv89+czZuS5EetQsvM1Cw8P/zDoq3SpE72tIrhhVJ74901q15J2Hm4A==
|
||||||
|
dependencies:
|
||||||
|
extend "3.0.2"
|
||||||
|
|
||||||
mdn-data@2.0.4:
|
mdn-data@2.0.4:
|
||||||
version "2.0.4"
|
version "2.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
|
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
|
||||||
|
@ -7664,6 +7720,11 @@ node-releases@^1.1.52:
|
||||||
dependencies:
|
dependencies:
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
|
node-releases@^1.1.53:
|
||||||
|
version "1.1.53"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4"
|
||||||
|
integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==
|
||||||
|
|
||||||
node-sass@^4.13.1, node-sass@^4.8.3:
|
node-sass@^4.13.1, node-sass@^4.8.3:
|
||||||
version "4.13.1"
|
version "4.13.1"
|
||||||
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.1.tgz#9db5689696bb2eec2c32b98bfea4c7a2e992d0a3"
|
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.1.tgz#9db5689696bb2eec2c32b98bfea4c7a2e992d0a3"
|
||||||
|
@ -8485,6 +8546,13 @@ pkg-dir@^3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
find-up "^3.0.0"
|
find-up "^3.0.0"
|
||||||
|
|
||||||
|
pkg-up@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
|
||||||
|
integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
|
||||||
|
dependencies:
|
||||||
|
find-up "^2.1.0"
|
||||||
|
|
||||||
pkg-up@^3.1.0:
|
pkg-up@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"
|
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue