From 939222cd7a2bd6ebca310daa92490f3fb07b0ede Mon Sep 17 00:00:00 2001 From: Genar Trias Ortiz Date: Mon, 30 Dec 2019 02:32:10 +0100 Subject: [PATCH 1/2] playing with workers and threads --- config/webpack.config.dev.js | 2 + package.json | 2 + src/store/configureStore.ts | 6 ++- src/store/middlewares/exposed-collection.ts | 5 +++ src/store/middlewares/test.ts | 5 +++ src/store/middlewares/workers.ts | 14 ++++++ src/utils/logger.ts | 10 ++++- yarn.lock | 47 ++++++++++++++++++++- 8 files changed, 86 insertions(+), 5 deletions(-) create mode 100644 src/store/middlewares/exposed-collection.ts create mode 100644 src/store/middlewares/test.ts create mode 100644 src/store/middlewares/workers.ts diff --git a/config/webpack.config.dev.js b/config/webpack.config.dev.js index 37274ad5..9aff44dc 100644 --- a/config/webpack.config.dev.js +++ b/config/webpack.config.dev.js @@ -8,6 +8,7 @@ const eslintFormatter = require('react-dev-utils/eslintFormatter'); const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); const getClientEnvironment = require('./env'); const paths = require('./paths'); +const ThreadsPlugin = require('threads-plugin'); const { InjectManifest } = require('workbox-webpack-plugin'); // Webpack uses `publicPath` to determine where the app is being served from. @@ -204,6 +205,7 @@ module.exports = { swSrc: path.join('src', 'service-worker.js'), swDest: path.join('service-worker.js') }), + new ThreadsPlugin(), // Makes some environment variables available to the JS code, for example: // if (process.env.NODE_ENV === 'development') { ... }. See `./env.js`. // This is necessary to emit hot updates (currently CSS only): diff --git a/package.json b/package.json index 4f7010bf..9f1b5456 100644 --- a/package.json +++ b/package.json @@ -95,6 +95,8 @@ "source-map-loader": "^0.2.4", "style-loader": "0.19.0", "tailwindcss": "^1.1.3", + "threads": "^1.0.0", + "threads-plugin": "^1.2.0", "url-loader": "0.6.2", "uuid": "^3.3.2", "webpack": "^4.29.0", diff --git a/src/store/configureStore.ts b/src/store/configureStore.ts index 2838392c..5736a58c 100644 --- a/src/store/configureStore.ts +++ b/src/store/configureStore.ts @@ -23,12 +23,13 @@ import rootSaga from '../sagas/rootSaga' // Custom middlewares import alerts from './middlewares/alerts' import exports from './middlewares/exports' +import workers from './middlewares/workers' const mql = window.matchMedia(`(min-width: 800px)`) type StoreState = {} -export default function configureStore() { +const configureStore = () => { const testingMiddlewares: Array = [] if (process.env.NODE_ENV === 'development') { @@ -41,6 +42,7 @@ export default function configureStore() { thunk, alerts, exports, + workers, routerMiddleware(history) // for dispatching history actions ] @@ -81,3 +83,5 @@ export default function configureStore() { return store } + +export default configureStore diff --git a/src/store/middlewares/exposed-collection.ts b/src/store/middlewares/exposed-collection.ts new file mode 100644 index 00000000..d987b3a8 --- /dev/null +++ b/src/store/middlewares/exposed-collection.ts @@ -0,0 +1,5 @@ +import { expose } from 'threads' + +import collection from '../../reducers/collection' + +expose(collection) diff --git a/src/store/middlewares/test.ts b/src/store/middlewares/test.ts new file mode 100644 index 00000000..96761936 --- /dev/null +++ b/src/store/middlewares/test.ts @@ -0,0 +1,5 @@ +import { expose } from 'threads' + +expose(() => { + console.log('running in worker') +}) diff --git a/src/store/middlewares/workers.ts b/src/store/middlewares/workers.ts new file mode 100644 index 00000000..4906bea6 --- /dev/null +++ b/src/store/middlewares/workers.ts @@ -0,0 +1,14 @@ +import { spawn, Worker } from 'threads' + +const workers = (store: any) => (next: any) => async (action: any) => { + const collection = await spawn(new Worker('./exposed-collection')) + const newState = await collection( + store.getState().collection, + action + ) + + console.log(newState) + return next(action) +} + +export default workers diff --git a/src/utils/logger.ts b/src/utils/logger.ts index 4ff42de3..17eb3c67 100644 --- a/src/utils/logger.ts +++ b/src/utils/logger.ts @@ -1,4 +1,4 @@ -import logger from 'bragi-browser' +/* import logger from 'bragi-browser' if (process.env.NODE_ENV !== 'development') { logger.transports.empty() @@ -7,4 +7,10 @@ if (process.env.NODE_ENV !== 'development') { logger.transports.get('console').property('showMeta', false) logger.transports.get('console').property('showColors', false) -export default logger +export default logger */ + +export default { + log: (...args: any) => { + console.log(args) + } +} diff --git a/yarn.lock b/yarn.lock index faa0dc2d..c97a7372 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3966,7 +3966,7 @@ callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" -callsites@^3.0.0: +callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -5952,6 +5952,11 @@ eslint@^5.6.1: table "^5.2.3" text-table "^0.2.0" +esm@^3.2.25: + version "3.2.25" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== + esmangle-evaluator@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/esmangle-evaluator/-/esmangle-evaluator-1.0.1.tgz#620d866ef4861b3311f75766d52a8572bb3c6336" @@ -8238,6 +8243,13 @@ is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -10721,6 +10733,11 @@ object.values@^1.0.4, object.values@^1.1.0: function-bind "^1.1.1" has "^1.0.3" +observable-fns@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/observable-fns/-/observable-fns-0.5.0.tgz#9b71bb3e1a6ac9840b3922b67de0092773230177" + integrity sha512-BWmxvFppAKRWWTYns+yW3RaoXLTkSVF1cnLNe06opO4/C4VVfZgRkwSEBLOAA6bcTNM1zDDRz2T+l52cPNuaZQ== + obuf@^1.0.0, obuf@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -14505,7 +14522,7 @@ symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" -symbol-observable@^1.0.3, symbol-observable@^1.2.0: +symbol-observable@^1.0.3, symbol-observable@^1.1.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -14684,6 +14701,25 @@ thirty-two@^1.0.1: resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a" integrity sha1-TKL//AKlEpDSdEueP1V2k8prYno= +threads-plugin@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/threads-plugin/-/threads-plugin-1.2.0.tgz#eab508733ef31806c3ba28b8c058fbfb1261c565" + integrity sha512-sWJbMh7T+59hVr0MgwseNgVLuK53dNVvu4n+1C3/X3zEIkI/rwkwpaNML20fyKvwjTjLwWblwQpx6Gu+VJjBog== + dependencies: + loader-utils "^1.1.0" + +threads@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/threads/-/threads-1.0.0.tgz#d4ae092673f566cc650f25aca8bccd749bafbffd" + integrity sha512-E4qjYS3Za59Y+SVu4GNrnFwL4HbpimY9Co+In0PW5hSljIRo3z8b8ZmRy5V2f6J1fK6GsoVFSR61lzqmPnfKwQ== + dependencies: + callsites "^3.1.0" + debug "^4.1.1" + is-observable "^1.1.0" + observable-fns "^0.5.0" + optionalDependencies: + tiny-worker ">= 2" + throat@^4.0.0, throat@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" @@ -14767,6 +14803,13 @@ tiny-warning@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" +"tiny-worker@>= 2": + version "2.3.0" + resolved "https://registry.yarnpkg.com/tiny-worker/-/tiny-worker-2.3.0.tgz#715ae34304c757a9af573ae9a8e3967177e6011e" + integrity sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g== + dependencies: + esm "^3.2.25" + tinycolor2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" -- GitLab From dfef974a6878e1885d3649fb025c118361cdc119 Mon Sep 17 00:00:00 2001 From: Genar Trias Ortiz Date: Wed, 8 Jan 2020 01:59:35 +0100 Subject: [PATCH 2/2] almost there --- package.json | 3 +- src/reducers/collection.spec.ts | 4 +- src/reducers/index.ts | 40 ++++----- src/reducers/index.worker.ts | 32 ++++++++ src/reducers/mockedRouter.ts | 20 +++++ src/store/applyWorker.ts | 84 +++++++++++++++++++ src/store/configureStore.ts | 12 ++- src/store/middlewares/test.ts | 5 -- src/store/middlewares/workers.ts | 2 +- src/utils/logger.ts | 3 + yarn.lock | 135 ++++++------------------------- 11 files changed, 200 insertions(+), 140 deletions(-) create mode 100644 src/reducers/index.worker.ts create mode 100644 src/reducers/mockedRouter.ts create mode 100644 src/store/applyWorker.ts delete mode 100644 src/store/middlewares/test.ts diff --git a/package.json b/package.json index 9f1b5456..f74758fc 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "case-sensitive-paths-webpack-plugin": "2.1.1", "chalk": "1.1.3", "classnames": "^2.2.6", - "connected-react-router": "^6.0.0", + "connected-react-router": "^6.6.1", "css-loader": "^3.2.0", "deepmerge": "^3.2.0", "dotenv": "4.0.0", @@ -87,6 +87,7 @@ "redux-perf-middleware": "^1.2.2", "redux-saga": "^1.0.2", "redux-saga-test-plan": "^4.0.0-rc.3", + "redux-worker": "^0.1.2", "resolve": "1.6.0", "rxdb": "^8.0.2", "rxjs": "^6.3.3", diff --git a/src/reducers/collection.spec.ts b/src/reducers/collection.spec.ts index d4773c3d..d6b141db 100644 --- a/src/reducers/collection.spec.ts +++ b/src/reducers/collection.spec.ts @@ -4,8 +4,8 @@ import Media from '../entities/Media' import MediaId from '../entities/MediaId' import ArtistId from '../entities/ArtistId' -jest.mock('../entities/MediaId'); -jest.mock('../entities/ArtistId'); +jest.mock('../entities/MediaId') +jest.mock('../entities/ArtistId') describe('collection reducer', () => { it('should return the initial state', () => { diff --git a/src/reducers/index.ts b/src/reducers/index.ts index 7f2f108c..dc7945ca 100644 --- a/src/reducers/index.ts +++ b/src/reducers/index.ts @@ -2,28 +2,30 @@ import { combineReducers } from 'redux' import { i18nReducer } from 'react-redux-i18n' import { connectRouter } from 'connected-react-router' -import app from './app' -import artist from './artist' -import player from './player' -import playlist from './playlist' -import collection from './collection' -import connection from './connection' -import search from './search' -import settings from './settings' -import queue from './queue' +import { defaultState as app } from './app' +import { defaultState as artist } from './artist' +import { defaultState as player } from './player' +import { defaultState as playlist } from './playlist' +import { defaultState as collection } from './collection' +import { defaultState as connection } from './connection' +import { defaultState as search } from './search' +import { defaultState as settings } from './settings' +import { defaultState as queue } from './queue' +import mockedRouter from './mockedRouter' type State = any export default (history: any): State => combineReducers({ - app, - artist, - player, - playlist, - collection, - connection, - search, - settings, - queue, + app: () => app, + artist: () => artist, + player: () => player, + playlist: () => playlist, + collection: () => collection, + connection: () => connection, + search: () => search, + settings: () => settings, + queue: () => queue, i18n: i18nReducer, - router: connectRouter(history), + // router: connectRouter(history), + router: mockedRouter }) diff --git a/src/reducers/index.worker.ts b/src/reducers/index.worker.ts new file mode 100644 index 00000000..1915f901 --- /dev/null +++ b/src/reducers/index.worker.ts @@ -0,0 +1,32 @@ +import { combineReducers } from 'redux' +import { i18nReducer } from 'react-redux-i18n' +import { createWorker } from 'redux-worker' + +import app from './app' +import artist from './artist' +import player from './player' +import playlist from './playlist' +import collection from './collection' +import connection from './connection' +import search from './search' +import settings from './settings' +import queue from './queue' +import mockedRouter from './mockedRouter' + +const worker = createWorker() +const reducers = combineReducers({ + app, + artist, + player, + playlist, + collection, + connection, + search, + settings, + queue, + i18n: i18nReducer, + router: mockedRouter +}) +worker.registerReducer(reducers) + +export default worker diff --git a/src/reducers/mockedRouter.ts b/src/reducers/mockedRouter.ts new file mode 100644 index 00000000..e7a19357 --- /dev/null +++ b/src/reducers/mockedRouter.ts @@ -0,0 +1,20 @@ +export type State = { + location: { + pathname: string + }, + action: string +} + +export const defaultState = { + location: { + pathname: '' + }, + action: '' +} + +export default (state: State = defaultState, action: any): State => { + switch (action.type) { + default: + return state + } +} diff --git a/src/store/applyWorker.ts b/src/store/applyWorker.ts new file mode 100644 index 00000000..6b6a6d06 --- /dev/null +++ b/src/store/applyWorker.ts @@ -0,0 +1,84 @@ +const defer = function() { + let result = {}; + result.promise = new Promise(function(resolve, reject) { + result.resolve = resolve; + result.reject = reject; + }); + return result; +}; + +const applyWorker = (worker) => { + return createStore => (reducer, initialState, enhancer) => { + if (!(worker instanceof Worker)) { + console.error('Expect input to be a Web Worker. Fall back to normal store.'); + return createStore(reducer, initialState, enhancer); + } + + // New reducer for workified store + let replacementReducer = (state, action) => { + if (action.state) { + return action.state; + } + return state; + } + + // Start task id; + let taskId = 0; + let taskCompleteCallbacks = {}; + + // Create store using new reducer + let store = createStore(replacementReducer, reducer({}, {}), enhancer); + + // Store reference of old dispatcher + let next = store.dispatch; + + // Replace dispatcher + store.dispatch = (action) => { + if (typeof action.type === 'string') { + if (window.disableWebWorker) { + return next({ + type: action.type, + state: reducer(store.getState(), action) + }); + } + worker.postMessage(action); + } + + if (typeof action.task === 'string') { + let task = Object.assign({}, action, { _taskId: taskId }); + let deferred = defer(); + + taskCompleteCallbacks[ taskId ] = deferred + taskId++; + worker.postMessage(task); + return deferred.promise; + } + } + + store.isWorker = true; + + // Add worker events listener + worker.addEventListener('message', function(e) { + let action = e.data; + + console.log('action received to worker: ', action) + + if (typeof action.type === 'string') { + next(action); + } + + if (typeof action._taskId === 'number') { + let wrapped = taskCompleteCallbacks[ action._taskId ]; + + if (wrapped) { + wrapped.resolve(action); + delete taskCompleteCallbacks[ action._taskId ]; + } + } + }); + + return store; + } +} + +export default applyWorker diff --git a/src/store/configureStore.ts b/src/store/configureStore.ts index 5736a58c..b05fe15b 100644 --- a/src/store/configureStore.ts +++ b/src/store/configureStore.ts @@ -4,8 +4,10 @@ import createSagaMiddleware from 'redux-saga' import thunk from 'redux-thunk' import promise from 'redux-promise' import perflogger from 'redux-perf-middleware' +import { Worker } from 'threads' import history from './configureHistory' +import applyWorker from './applyWorker' import { loadTranslations, @@ -23,7 +25,10 @@ import rootSaga from '../sagas/rootSaga' // Custom middlewares import alerts from './middlewares/alerts' import exports from './middlewares/exports' -import workers from './middlewares/workers' +// import workers from './middlewares/workers' + + +const worker = new Worker('../reducers/index.worker') const mql = window.matchMedia(`(min-width: 800px)`) @@ -42,7 +47,7 @@ const configureStore = () => { thunk, alerts, exports, - workers, + // workers, routerMiddleware(history) // for dispatching history actions ] @@ -54,7 +59,8 @@ const configureStore = () => { const store = createStore( rootReducer(history), composeEnhancers( - applyMiddleware(...middlewares, sagaMiddleware) + applyMiddleware(...middlewares, sagaMiddleware), + applyWorker(worker) ) ) diff --git a/src/store/middlewares/test.ts b/src/store/middlewares/test.ts deleted file mode 100644 index 96761936..00000000 --- a/src/store/middlewares/test.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { expose } from 'threads' - -expose(() => { - console.log('running in worker') -}) diff --git a/src/store/middlewares/workers.ts b/src/store/middlewares/workers.ts index 4906bea6..298edaed 100644 --- a/src/store/middlewares/workers.ts +++ b/src/store/middlewares/workers.ts @@ -7,7 +7,7 @@ const workers = (store: any) => (next: any) => async (action: any) => { action ) - console.log(newState) + console.log('newState: ', newState) return next(action) } diff --git a/src/utils/logger.ts b/src/utils/logger.ts index 17eb3c67..8af39754 100644 --- a/src/utils/logger.ts +++ b/src/utils/logger.ts @@ -12,5 +12,8 @@ export default logger */ export default { log: (...args: any) => { console.log(args) + }, + warn: (...args: any) => { + console.log(args) } } diff --git a/yarn.lock b/yarn.lock index c97a7372..97c1e8fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1762,7 +1762,6 @@ "@types/bittorrent-protocol@*": version "2.2.4" resolved "https://registry.yarnpkg.com/@types/bittorrent-protocol/-/bittorrent-protocol-2.2.4.tgz#7dc0716924bc6a904753d39846ad235c7dab4641" - integrity sha512-FwFRTziWvEdMDWTzK6AvuWPSjpcgnlh+FBBzTVQlVSYf5fLYN0KdFi0bUCg+zqXU9nkcovlKOZWg3MWDPLwrDQ== dependencies: "@types/node" "*" @@ -1840,7 +1839,6 @@ "@types/magnet-uri@*": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/magnet-uri/-/magnet-uri-5.1.2.tgz#7860417399d52ddc0be1021d570b4ac93ffc133e" - integrity sha512-bXFPXskwHoEYP6t8rq4nWchOlbUzXkyhnfCVZmq+zb25R5pWkasw7BmTIqDKQ6RAQmq89jll1v23yLa/SvPfAw== dependencies: "@types/node" "*" @@ -1855,14 +1853,12 @@ "@types/parse-torrent-file@*": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/parse-torrent-file/-/parse-torrent-file-4.0.2.tgz#40c96fc075aec256514807c6c381d11d9035bd9e" - integrity sha512-EzdzpcN0sStQ35sUV2SChTJErLsbotsxZ/RYeR9gf3zXKlPLKaA7aIAoS/nuLRvfxH8mbrWQmXSw76alKecSdg== dependencies: "@types/node" "*" "@types/parse-torrent@*": version "5.8.3" resolved "https://registry.yarnpkg.com/@types/parse-torrent/-/parse-torrent-5.8.3.tgz#ff4e987d09ad27ccc1c8893b3a2c6a31a3bc4042" - integrity sha512-c0xAjnpov+Xk/2HTtpaBm0tukNIAoZoxrqgTDwSaIu6IVCynY+2YD9zcQNk2P6H4atcXzD78/LI2CQzLlMmAJg== dependencies: "@types/magnet-uri" "*" "@types/node" "*" @@ -1898,7 +1894,6 @@ "@types/react-modal@^3.10.1": version "3.10.1" resolved "https://registry.yarnpkg.com/@types/react-modal/-/react-modal-3.10.1.tgz#77cfe83167d29beb940c602788eb0751903df539" - integrity sha512-u8MTXPFxfsY2zsWfAwQIS315zwM716vO4WFjGiexKEOgappMjmKQaApmUoMH4SKijeEFIjxnaAyCyGJXyUIvdg== dependencies: "@types/react" "*" @@ -1973,7 +1968,6 @@ "@types/simple-peer@*": version "9.6.0" resolved "https://registry.yarnpkg.com/@types/simple-peer/-/simple-peer-9.6.0.tgz#b5828d835b7f42dde27db584ba127e7a9f9072f4" - integrity sha512-X2y6s+vE/3j03hkI90oqld2JH2J/m1L7yFCYYPyFV/whrOK1h4neYvJL3GIE+UcACJacXZqzdmDKudwec18RbA== dependencies: "@types/node" "*" @@ -1988,7 +1982,6 @@ "@types/webtorrent@^0.107.1": version "0.107.1" resolved "https://registry.yarnpkg.com/@types/webtorrent/-/webtorrent-0.107.1.tgz#1aeec48b6386b162e1a210c188fadca75f2fa0bd" - integrity sha512-T9ql/DvVzEl7rznKrjCIXEI69Hy8JFHh0j18HbvHNZ21YWCwhR+NL6IQiie0eGb8QtVV4Cb7kKjZWoI7O9V4tg== dependencies: "@types/bittorrent-protocol" "*" "@types/node" "*" @@ -2318,7 +2311,6 @@ add-dom-event-listener@^1.1.0: addr-to-ip-port@^1.0.1, addr-to-ip-port@^1.4.2: version "1.5.1" resolved "https://registry.yarnpkg.com/addr-to-ip-port/-/addr-to-ip-port-1.5.1.tgz#bfada13fd6aeeeac19f1e9f7d84b4bbab45e5208" - integrity sha512-bA+dyydTNuQtrEDJ0g9eR7XabNhvrM5yZY0hvTbNK3yvoeC73ZqMES6E1cEqH9WPxs4uMtMsOjfwS4FmluhsAA== address@1.0.3: version "1.0.3" @@ -3153,6 +3145,14 @@ babel-plugin-transform-undefined-to-void@^6.9.4: version "6.9.4" resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" +babel-polyfill@^6.6.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + babel-preset-jest@^23.2.0: version "23.2.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" @@ -3216,7 +3216,7 @@ babel-preset-react-app@^9.0.0: babel-plugin-macros "2.6.1" babel-plugin-transform-react-remove-prop-types "0.4.24" -babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: +babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.6.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: @@ -3325,7 +3325,6 @@ bcrypt-pbkdf@^1.0.0: bencode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/bencode/-/bencode-2.0.1.tgz#667a6a31c5e038d558608333da6b7c94e836c85b" - integrity sha512-2uhEl8FdjSBUyb69qDTgOEeeqDTa+n3yMQzLW0cOzNf1Ow5bwcg3idf+qsWisIKRH8Bk8oC7UXL8irRcPA8ZEQ== dependencies: safe-buffer "^5.1.1" @@ -3352,7 +3351,6 @@ binary-extensions@^1.0.0: binary-search@^1.3.4: version "1.3.6" resolved "https://registry.yarnpkg.com/binary-search/-/binary-search-1.3.6.tgz#e32426016a0c5092f0f3598836a1c7da3560565c" - integrity sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA== bindings@^1.5.0: version "1.5.0" @@ -3369,12 +3367,10 @@ bip66@^1.1.5: bitfield@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bitfield/-/bitfield-3.0.0.tgz#b2d32c707866d42f016ae9bd8469999a9f51b59c" - integrity sha512-hJmWKucJQfdSkQPDPBKmWogM9s8+NOSzDT9QVbJbjinXaQ0bJKPu/cn98qRWy3PDNWtKw4XaoUP3XruGRIKEgg== bittorrent-dht@^9.0.0: version "9.0.3" resolved "https://registry.yarnpkg.com/bittorrent-dht/-/bittorrent-dht-9.0.3.tgz#bdcac9383bdc5e2a459eef6418332f3ae182d63f" - integrity sha512-6FISjApL62THEMyptDm0kPTAnInBn8Sft3dK/JZcCI07LRIpIP+3Z6gle6xJUhyRVs6K5HmXAtaRatFsOEySOg== dependencies: bencode "^2.0.0" debug "^4.1.1" @@ -3390,12 +3386,10 @@ bittorrent-dht@^9.0.0: bittorrent-peerid@^1.0.2: version "1.3.2" resolved "https://registry.yarnpkg.com/bittorrent-peerid/-/bittorrent-peerid-1.3.2.tgz#aca9ff812ec099c882079bec60b5558a3adb56fa" - integrity sha512-3xPhNfklf4xzxFVw9Y7W5dnGNhubVF0r8BK3imIsB6E3aDA4d6WhsceK1Yusos0TiiB9QZrdCsVXVqs26sFMxw== bittorrent-protocol@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/bittorrent-protocol/-/bittorrent-protocol-3.1.1.tgz#2d5a615a5de471bf22934a2bf3f423ad760b8932" - integrity sha512-kthSXghQ9DRQ4Lrjr1ceyIeEMeL5x9WiaSrQyR+5Nrr3g9QY6MvDeq+KLQz17R6094iDmT/LgFbQYAPj09/oUA== dependencies: bencode "^2.0.0" bitfield "^3.0.0" @@ -3408,7 +3402,6 @@ bittorrent-protocol@^3.0.0: bittorrent-tracker@^9.0.0: version "9.14.4" resolved "https://registry.yarnpkg.com/bittorrent-tracker/-/bittorrent-tracker-9.14.4.tgz#0d9661560e6fec37689dfc5045142772eac05536" - integrity sha512-2Y/MNRjYhysD6t4r38z7l1WTT7g23IAqRWZRsj7xnnpciFn4xE4qiKmyFwA4gtbFGAZ14K3DdaqZbiQsC3PEfQ== dependencies: bencode "^2.0.0" bittorrent-peerid "^1.0.2" @@ -3448,12 +3441,10 @@ blakejs@^1.1.0: blob-to-buffer@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/blob-to-buffer/-/blob-to-buffer-1.2.8.tgz#78eeeb332f1280ed0ca6fb2b60693a8c6d36903a" - integrity sha512-re0AIxakF504MgeMtIyJkVcZ8T5aUxtp/QmTMlmjyb3P44E1BEv5x3LATBGApWAJATyXHtkXRD+gWTmeyYLiQA== block-stream2@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/block-stream2/-/block-stream2-2.0.0.tgz#680b9d357ca8b9d5637f4ec8a41fb5968029108f" - integrity sha512-1oI+RHHUEo64xomy1ozLgVJetFlHkIfQfJzTBQrj6xWnEMEPooeo2fZoqFjp0yzfHMBrgxwgh70tKp6T17+i3g== dependencies: readable-stream "^3.4.0" @@ -3474,7 +3465,6 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.8, bn.js@^4.4.0: bn.js@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.0.0.tgz#5c3d398021b3ddb548c1296a16f857e908f35c70" - integrity sha512-bVwDX8AF+72fIUNuARelKAlQUNtPOfG2fRxorbVvFk4zpHbqLrPdOGfVg5vrKwVzLLePqPBiATaOZNELQzmS0A== body-parser@1.18.2: version "1.18.2" @@ -3663,7 +3653,6 @@ browserify-des@^1.0.0: browserify-package-json@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/browserify-package-json/-/browserify-package-json-1.0.1.tgz#98dde8aa5c561fd6d3fe49bbaa102b74b396fdea" - integrity sha1-mN3oqlxWH9bT/km7qhArdLOW/eo= browserify-rsa@^4.0.0: version "4.0.1" @@ -3809,12 +3798,10 @@ bser@^2.0.0: buffer-alloc-unsafe@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== buffer-alloc@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" @@ -3826,7 +3813,6 @@ buffer-equal@0.0.1: buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= buffer-from@1.1.0: version "1.1.0" @@ -3870,7 +3856,6 @@ buffer@^5.2.1, buffer@^5.4.2, buffer@^5.4.3: bufferutil@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" - integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== dependencies: node-gyp-build "~3.7.0" @@ -4168,7 +4153,6 @@ chownr@^1.1.1: chrome-dgram@^3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/chrome-dgram/-/chrome-dgram-3.0.4.tgz#aa785f23d1fc71c8619e8af166db7b9dc21a4f3e" - integrity sha512-G8rOANSvSRC4hGny/K/ec1gXtNuZGzryFeoev49u0J4g/qws7H25vMKQlbD9izuedFVHwXFTdKQG62Tf/7Cmwg== dependencies: inherits "^2.0.1" run-series "^1.1.2" @@ -4176,14 +4160,12 @@ chrome-dgram@^3.0.2: chrome-dns@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/chrome-dns/-/chrome-dns-1.0.1.tgz#6870af680a40d2c4b2efc2154a378793f5a4ce4b" - integrity sha512-HqsYJgIc8ljJJOqOzLphjAs79EUuWSX3nzZi2LNkzlw3GIzAeZbaSektC8iT/tKvLqZq8yl1GJu5o6doA4TRbg== dependencies: chrome-net "^3.3.2" chrome-net@^3.3.2, chrome-net@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/chrome-net/-/chrome-net-3.3.3.tgz#09b40337d97fa857ac44ee9a2d82a66e43863401" - integrity sha512-11jL8+Ogna8M5TEdyalE8IG6cpaFEU3YcaxAj3YjZKjRM/PeT70pZbrUY+xoGwqiEJZwJE4Td2CvGxUvS9ytKQ== dependencies: inherits "^2.0.1" @@ -4196,7 +4178,6 @@ chrome-trace-event@^1.0.2: chunk-store-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chunk-store-stream/-/chunk-store-stream-4.1.0.tgz#5e135cfb0c77a02657a27783c985b328ad09ae29" - integrity sha512-GjkZ16bFKMFnb8LrGZXAPeRoLXZTLu9ges6LCErJe28bMp6zKLxjWuJ7TYzR0jWq9nwo58hXG3BXZYy66Vze0Q== dependencies: block-stream2 "^2.0.0" readable-stream "^3.4.0" @@ -4483,7 +4464,6 @@ commoner@^0.10.1: compact2string@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/compact2string/-/compact2string-1.4.1.tgz#8d34929055f8300a13cfc030ad1832e2e53c2e25" - integrity sha512-3D+EY5nsRhqnOwDxveBv5T8wGo4DEvYxjDtPGmdOX+gfr5gE92c2RC0w2wa+xEefm07QuVqqcF3nZJUZ92l/og== dependencies: ipaddr.js ">= 0.1.5" @@ -4551,9 +4531,10 @@ connect-history-api-fallback@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" -connected-react-router@^6.0.0: +connected-react-router@^6.6.1: version "6.6.1" resolved "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.6.1.tgz#f6b7717abf959393fab6756c8d43af1a57d622da" + integrity sha512-a/SE3HgpZABCxr083bfAMpgZwUzlv1RkmOV71+D4I77edoR/peg7uJMHOgqWnXXqGD7lo3Y2ZgUlXtMhcv8FeA== dependencies: immutable "^3.8.1" prop-types "^15.7.2" @@ -4665,6 +4646,10 @@ core-js@^2.4.0, core-js@^2.4.1, core-js@^2.6.5: version "2.6.10" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" +core-js@^2.5.0: + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + core-js@^3.0.1, core-js@^3.0.4: version "3.4.2" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.4.2.tgz#ee2b1a60b50388d8ddcda8cdb44a92c7a9ea76df" @@ -4780,7 +4765,6 @@ create-react-context@^0.3.0: create-torrent@^4.0.0: version "4.4.1" resolved "https://registry.yarnpkg.com/create-torrent/-/create-torrent-4.4.1.tgz#0f4068ce375ad69d1fe13bc8aad01a42cd69ebc6" - integrity sha512-LuoXnCRMKEo3KR3jEbCRpP3Nu2TUhLTlb/axP9+rl+ouhBpxTaHaTTN1bdUS2x2VK3wWyCBl1OZHyHhlRBntWg== dependencies: bencode "^2.0.0" block-stream2 "^2.0.0" @@ -5016,7 +5000,6 @@ decode-uri-component@^0.2.0: decompress-response@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== dependencies: mimic-response "^2.0.0" @@ -5955,7 +5938,6 @@ eslint@^5.6.1: esm@^3.2.25: version "3.2.25" resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" - integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== esmangle-evaluator@^1.0.0: version "1.0.1" @@ -6464,7 +6446,6 @@ filesize@3.6.1: filestream@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/filestream/-/filestream-5.0.0.tgz#79015f3bae95ad0f47ef818694846f085087b92e" - integrity sha512-5H3RqSaJp12THfZiNWodYM7TiKfQvrpX+EIOrB1XvCceTys4yvfEIl8wDp+/yI8qj6Bxym8m0NYWwVXDAet/+A== dependencies: readable-stream "^3.4.0" typedarray-to-buffer "^3.0.0" @@ -6726,7 +6707,6 @@ fragment-cache@^0.2.1: freelist@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/freelist/-/freelist-1.0.3.tgz#006775509f3935701784d3ed2fc9f12c9df1bab2" - integrity sha1-AGd1UJ85NXAXhNPtL8nxLJ3xurI= fresh@0.5.2: version "0.5.2" @@ -6742,7 +6722,6 @@ from2@^2.1.0: fs-chunk-store@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/fs-chunk-store/-/fs-chunk-store-2.0.1.tgz#2eb94755d9d46515acc54095d1998c29e121cf99" - integrity sha512-V9PXz33rhq6E9lFmvmElmLyvEvnSeryU/TzfHnCEIpEU6Y/2Fyc4xEeeneV/pUgKG1mRAKSU+DBtHyO2GQ2EBA== dependencies: random-access-file "^2.0.1" randombytes "^2.0.3" @@ -6901,7 +6880,6 @@ generate-object-property@^1.1.0: get-browser-rtc@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.0.2.tgz#bbcd40c8451a7ed4ef5c373b8169a409dd1d11d9" - integrity sha1-u81AyEUaftTvXDc7gWmkCd0dEdk= get-caller-file@^1.0.1: version "1.0.3" @@ -6926,7 +6904,6 @@ get-stdin@^4.0.1: get-stdin@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" - integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== get-stream@^3.0.0: version "3.0.0" @@ -7466,7 +7443,6 @@ http-errors@~1.7.2: http-parser-js@^0.4.3: version "0.4.13" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" - integrity sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc= http-proxy-middleware@~0.17.4: version "0.17.4" @@ -7558,7 +7534,6 @@ ignore@^4.0.6: immediate-chunk-store@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/immediate-chunk-store/-/immediate-chunk-store-2.1.0.tgz#3dbd3b5cc77182526188a8da47e38488a6627336" - integrity sha512-QshP0SFpsy/bHQBjYMgzCcnLoqTj6PHFg8ZkPi2WbTw1qddNy0puuPDaFlXyrsZAdWMT3QziPDMzfj+mzCVMYg== dependencies: queue-microtask "^1.1.2" @@ -7832,7 +7807,6 @@ ip-regex@^2.0.0: ip-set@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/ip-set/-/ip-set-1.0.2.tgz#be4f119f82c124836455993dfcd554639c7007de" - integrity sha512-Mb6kv78bTi4RNAIIWL8Bbre7hXOR2pNUi3j8FaQkLaitf/ZWxkq3/iIwXNYk2ACO3IMfdVdQrOkUtwZblO7uBA== dependencies: ip "^1.1.3" @@ -7851,7 +7825,6 @@ ipaddr.js@1.9.0: "ipaddr.js@>= 0.1.5", ipaddr.js@^1.0.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== ipfs-block@~0.8.1: version "0.8.1" @@ -8013,7 +7986,6 @@ is-arrayish@^0.3.1: is-ascii@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-ascii/-/is-ascii-1.0.0.tgz#f02ad0259a0921cd199ff21ce1b09e0f6b4e3929" - integrity sha1-8CrQJZoJIc0Zn/Ic4bCeD2tOOSk= is-binary-path@^1.0.0: version "1.0.1" @@ -8130,7 +8102,6 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: is-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-file/-/is-file-1.0.0.tgz#28a44cfbd9d3db193045f22b65fce8edf9620596" - integrity sha1-KKRM+9nT2xkwRfIrZfzo7fliBZY= is-finite@^1.0.0: version "1.0.2" @@ -8246,7 +8217,6 @@ is-obj@^1.0.1: is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== dependencies: symbol-observable "^1.1.0" @@ -9086,7 +9056,6 @@ jsx-to-string@^1.4.0: junk@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" - integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== just-kebab-case@^1.1.0: version "1.1.0" @@ -9099,14 +9068,12 @@ just-map-keys@^1.1.0: k-bucket@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-5.0.0.tgz#ef7a401fcd4c37cd31dceaa6ae4440ca91055e01" - integrity sha512-r/q+wV/Kde62/tk+rqyttEJn6h0jR7x+incdMVSYTqK73zVxVrzJa70kJL49cIKen8XjIgUZKSvk8ktnrQbK4w== dependencies: randombytes "^2.0.3" k-rpc-socket@^1.7.2: version "1.11.1" resolved "https://registry.yarnpkg.com/k-rpc-socket/-/k-rpc-socket-1.11.1.tgz#f14b4b240a716c6cad7b6434b21716dbd7c7b0e8" - integrity sha512-8xtA8oqbZ6v1Niryp2/g4GxW16EQh5MvrUylQoOG+zcrDff5CKttON2XUXvMwlIHq4/2zfPVFiinAccJ+WhxoA== dependencies: bencode "^2.0.0" chrome-dgram "^3.0.2" @@ -9116,7 +9083,6 @@ k-rpc-socket@^1.7.2: k-rpc@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/k-rpc/-/k-rpc-5.1.0.tgz#af2052de2e84994d55da3032175da5dad8640174" - integrity sha512-FGc+n70Hcjoa/X2JTwP+jMIOpBz+pkRffHnSl9yrYiwUxg3FIgD50+u1ePfJUOnRCnx6pbjmVk5aAeB1wIijuQ== dependencies: k-bucket "^5.0.0" k-rpc-socket "^1.7.2" @@ -9194,7 +9160,6 @@ labeled-stream-splicer@^1.0.0: last-one-wins@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/last-one-wins/-/last-one-wins-1.0.4.tgz#c1bfd0cbcb46790ec9156b8d1aee8fcb86cda22a" - integrity sha1-wb/Qy8tGeQ7JFWuNGu6Py4bNoio= lazy-cache@^0.2.3: version "0.2.7" @@ -9320,7 +9285,6 @@ lines-and-columns@^1.1.6: load-ip-set@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/load-ip-set/-/load-ip-set-2.1.0.tgz#2d50b737cae41de4e413d213991d4083a3e1784b" - integrity sha512-taz7U6B+F7Zq90dfIKwqsB1CrFKelSEmMGC68OUqem8Cgd1QZygQBYb2Fk9i6muBSfH4xwF/Pjt4KKlAdOyWZw== dependencies: ip-set "^1.0.0" netmask "^1.0.6" @@ -9615,7 +9579,6 @@ lru-cache@^5.1.1: lru@^3.0.0, lru@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lru/-/lru-3.1.0.tgz#ea7fb8546d83733396a13091d76cfeb4c06837d5" - integrity sha1-6n+4VG2DczOWoTCR12z+tMBoN9U= dependencies: inherits "^2.0.1" @@ -9642,7 +9605,6 @@ magic-string@^0.22.4: magnet-uri@^5.1.3: version "5.2.4" resolved "https://registry.yarnpkg.com/magnet-uri/-/magnet-uri-5.2.4.tgz#7afe5b736af04445aff744c93a890a3710077688" - integrity sha512-VYaJMxhr8B9BrCiNINUsuhaEe40YnG+AQBwcqUKO66lSVaI9I3A1iH/6EmEwRI8OYUg5Gt+4lLE7achg676lrg== dependencies: thirty-two "^1.0.1" uniq "^1.0.1" @@ -9750,7 +9712,6 @@ media-typer@^1.1.0: mediasource@^2.1.0, mediasource@^2.2.2: version "2.3.0" resolved "https://registry.yarnpkg.com/mediasource/-/mediasource-2.3.0.tgz#4c7b49e7ea4fb88f1cc181d8fcf0d94649271dc6" - integrity sha512-fqm86UwHvAnneIv40Uy1sDQaFtAByq/k0SQ3uCtbnEeSQNT1s5TDHCZOD1VmYCHwfY1jL2NjoZVwzZKYqy3L7A== dependencies: inherits "^2.0.1" readable-stream "^3.0.0" @@ -9779,7 +9740,6 @@ memoizerific@^1.11.3: memory-chunk-store@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/memory-chunk-store/-/memory-chunk-store-1.3.0.tgz#ae99e7e3b58b52db43d49d94722930d39459d0c4" - integrity sha512-6LsOpHKKhxYrLhHmOJdBCUtSO7op5rUs1pag0fhjHo0QiXRyna0bwYf4EmQuL7InUeF2J7dUMPr6VMogRyf9NA== memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" @@ -9946,7 +9906,6 @@ mimic-fn@^1.0.0: mimic-response@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.0.0.tgz#996a51c60adf12cb8a87d7fb8ef24c2f3d5ebb46" - integrity sha512-8ilDoEapqA4uQ3TwS0jakGONKXVJqpy+RpM+3b7pLdOjghCrEiGp9SRkFbUHAmZW9vdnrENWHjaweIoTIJExSQ== min-document@^2.19.0: version "2.19.0" @@ -10099,14 +10058,12 @@ move-concurrently@^1.0.1: mp4-box-encoding@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/mp4-box-encoding/-/mp4-box-encoding-1.4.1.tgz#19b31804c896bc1adf1c21b497bcf951aa3b9098" - integrity sha512-2/PRtGGiqPc/VEhbm7xAQ+gbb7yzHjjMAv6MpAifr5pCpbh3fQUdj93uNgwPiTppAGu8HFKe3PeU+OdRyAxStA== dependencies: uint64be "^2.0.2" mp4-stream@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mp4-stream/-/mp4-stream-3.1.0.tgz#7a0800b50759b28fa4757cdb4ab6a49517543cd7" - integrity sha512-ZQQjf0VEiqPucwRvmT3e0pfZfMSE3nc5ngGUiN1+2VMxCtrInrlAjZ2K6jpNmxSZ/roiQne/ovYJYTeOvZDXPw== dependencies: mp4-box-encoding "^1.3.0" next-event "^1.0.0" @@ -10199,7 +10156,6 @@ multihashing-async@~0.7.0: multistream@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.0.0.tgz#c771b6d17d169138b6abcb15f0061170e3c09cea" - integrity sha512-t0C8MAtH/d3Y+5nooEtUMWli92lVw9Jhx4uOhRl5GAwS5vc+YTmp/VXNJNsCBAMeEyK/6zhbk6x9JE3AiCvo4g== dependencies: readable-stream "^3.4.0" @@ -10331,7 +10287,6 @@ nested-object-assign@^1.0.3: netmask@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" - integrity sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU= netrc@0.1.4: version "0.1.4" @@ -10340,7 +10295,6 @@ netrc@0.1.4: next-event@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-event/-/next-event-1.0.0.tgz#e7778acde2e55802e0ad1879c39cf6f75eda61d8" - integrity sha1-53eKzeLlWALgrRh5w5z2917aYdg= next-tick@1: version "1.0.0" @@ -10394,7 +10348,6 @@ node-forge@~0.9.1: node-gyp-build@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" - integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== node-gyp@^3.8.0: version "3.8.0" @@ -10736,7 +10689,6 @@ object.values@^1.0.4, object.values@^1.1.0: observable-fns@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/observable-fns/-/observable-fns-0.5.0.tgz#9b71bb3e1a6ac9840b3922b67de0092773230177" - integrity sha512-BWmxvFppAKRWWTYns+yW3RaoXLTkSVF1cnLNe06opO4/C4VVfZgRkwSEBLOAA6bcTNM1zDDRz2T+l52cPNuaZQ== obuf@^1.0.0, obuf@^1.1.1: version "1.1.2" @@ -10921,7 +10873,6 @@ p-try@^2.0.0: package-json-versionify@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/package-json-versionify/-/package-json-versionify-1.0.4.tgz#5860587a944873a6b7e6d26e8e51ffb22315bf17" - integrity sha1-WGBYepRIc6a35tJujlH/siMVvxc= dependencies: browserify-package-json "^1.0.0" @@ -11027,7 +10978,6 @@ parse-json@^5.0.0: parse-numeric-range@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz#b4f09d413c7adbcd987f6e9233c7b4b210c938e4" - integrity sha1-tPCdQTx6282Yf26SM8e0shDJOOQ= parse-passwd@^1.0.0: version "1.0.0" @@ -11036,7 +10986,6 @@ parse-passwd@^1.0.0: parse-torrent@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/parse-torrent/-/parse-torrent-7.0.1.tgz#669c51a95363550055c7de0957741d6a05575daf" - integrity sha512-FdF1kBImRLt+ICV4NTz8L+sI2hFlPXAq1tXuw21gKz8EuThyVUFJ/wPfBEyYQrvnBpmGf7cM/LVSOhMRe8MrKw== dependencies: bencode "^2.0.0" blob-to-buffer "^1.2.6" @@ -11185,7 +11134,6 @@ performance-now@^2.1.0: piece-length@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/piece-length/-/piece-length-2.0.1.tgz#dbed4e78976955f34466d0a65304d0cb21914ac9" - integrity sha512-dBILiDmm43y0JPISWEmVGKBETQjwJe6mSU9GND+P9KW0SJGUwoU/odyH1nbalOP9i8WSYuqf1lQnaj92Bhw+Ug== pify@^2.0.0: version "2.3.0" @@ -12014,7 +11962,6 @@ querystringify@^2.1.1: queue-microtask@^1.1.0, queue-microtask@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.1.2.tgz#139bf8186db0c545017ec66c2664ac646d5c571e" - integrity sha512-F9wwNePtXrzZenAB3ax0Y8TSKGvuB7Qw16J30hspEUTbfUM+H827XyN3rlpwhVmtm5wuZtbKIHjOnwDn7MUxWQ== quote-stream@^1.0.1, quote-stream@~1.0.2: version "1.0.2" @@ -12054,7 +12001,6 @@ randexp@0.4.6: random-access-file@^2.0.1: version "2.1.3" resolved "https://registry.yarnpkg.com/random-access-file/-/random-access-file-2.1.3.tgz#642c4b29e39c7dd91609a2e912f174d70fd4f82a" - integrity sha512-AE0Z1ywR5gIkzACMC1lCsR6LP8g4ynNm7oYWYdKPSSU6Y3H+mGDJxBqfcV9B9KstfHNemhfX3nYmx99ZC9f/yg== dependencies: mkdirp "^0.5.1" random-access-storage "^1.1.1" @@ -12062,14 +12008,12 @@ random-access-file@^2.0.1: random-access-storage@^1.1.1: version "1.4.0" resolved "https://registry.yarnpkg.com/random-access-storage/-/random-access-storage-1.4.0.tgz#cbe5b5ccfb38680aac7b78a050d9f0a5ef36841f" - integrity sha512-7oszloM/+PdqWp/oFGyL6SeI14liqo8AAisHAZQGkWdHISyAnngKjNPL0JYIazeLxbHPY6oed2yUffowdq/o6A== dependencies: inherits "^2.0.3" random-iterate@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/random-iterate/-/random-iterate-1.0.1.tgz#f7d97d92dee6665ec5f6da08c7f963cad4b2ac99" - integrity sha1-99l9kt7mZl7F9toIx/ljytSyrJk= random-token@0.0.8: version "0.0.8" @@ -12107,7 +12051,6 @@ range-parser@^1.2.0, range-parser@^1.2.1, range-parser@~1.2.0, range-parser@~1.2 range-slice-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/range-slice-stream/-/range-slice-stream-2.0.0.tgz#1f25fc7a2cacf9ccd140c46f9cf670a1a7fe3ce6" - integrity sha512-PPYLwZ63lXi6Tv2EZ8w3M4FzC0rVqvxivaOVS8pXSp5FMIHFnvi4MWHL3UdFLhwSy50aNtJsgjY0mBC6oFL26Q== dependencies: readable-stream "^3.0.2" @@ -12405,7 +12348,6 @@ react-helmet-async@^1.0.2: react-horizontal-scrolling-menu@^0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/react-horizontal-scrolling-menu/-/react-horizontal-scrolling-menu-0.7.3.tgz#78f05d0cbcf50dad5bc18e0eb0db6b3162ef5944" - integrity sha512-U+RkMg1LRtvECjIU6x/krvPPjiqqAHSHynE/cYONYWMB66a0RmD5qQuS1I0H44Os5ox6b64l3SFBgCYprcVDOg== react-hot-loader@^4.6.3: version "4.12.18" @@ -12467,7 +12409,6 @@ react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: react-modal@^3.11.1: version "3.11.1" resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.11.1.tgz#2a0d6877c9e98f123939ea92d2bb4ad7fa5a17f9" - integrity sha512-8uN744Yq0X2lbfSLxsEEc2UV3RjSRb4yDVxRQ1aGzPo86QjNOwhQSukDb8U8kR+636TRTvfMren10fgOjAy9eA== dependencies: exenv "^1.2.0" prop-types "^15.5.10" @@ -12477,7 +12418,6 @@ react-modal@^3.11.1: react-player@^1.14.2: version "1.14.2" resolved "https://registry.yarnpkg.com/react-player/-/react-player-1.14.2.tgz#666f2de883c4c251fe316ce267f2d11f2f201e31" - integrity sha512-t3R1szFSA1mkd66R4OSYwONjy1tETySoFYgsFzskhin9WCnypdPOuj5N5+uiuAInSg5ueznxoMGndl3JSoXYlQ== dependencies: deepmerge "^4.0.0" load-script "^1.0.0" @@ -12510,7 +12450,6 @@ react-redux-i18n@^1.9.3: react-redux@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.3.tgz#717a3d7bbe3a1b2d535c94885ce04cdc5a33fc79" - integrity sha512-uI1wca+ECG9RoVkWQFF4jDMqmaw0/qnvaSvOoL/GA4dNxf6LoV8sUAcNDvE5NWKs4hFpn0t6wswNQnY3f7HT3w== dependencies: "@babel/runtime" "^7.5.5" hoist-non-react-statics "^3.3.0" @@ -12842,7 +12781,6 @@ rechoir@^0.6.2: record-cache@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/record-cache/-/record-cache-1.1.0.tgz#f8a467a691a469584b26e88d36b18afdb3932037" - integrity sha512-u8rbtLEJV7HRacl/ZYwSBFD8NFyB3PfTTfGLP37IW3hftQCwu6z4Q2RLyxo1YJUNRTEzJfpLpGwVuEYdaIkG9Q== recursive-readdir@2.2.2: version "2.2.2" @@ -12903,6 +12841,13 @@ redux-thunk@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" +redux-worker@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/redux-worker/-/redux-worker-0.1.2.tgz#e617c39a18c50c3c48491f5b73373b0bcb7ea45d" + dependencies: + babel-polyfill "^6.6.1" + babel-runtime "^6.6.1" + redux@^3.6.0, redux@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" @@ -12941,6 +12886,10 @@ regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" @@ -13024,7 +12973,6 @@ remove@^0.1.5: render-media@^3.0.0: version "3.4.0" resolved "https://registry.yarnpkg.com/render-media/-/render-media-3.4.0.tgz#3e19cff3dc06da3b7431dda5aad4912e6dee60d8" - integrity sha512-0BTIvIBS4xdC/qPpoj8ZsdZ/YoQhn+DutUqBkur1yUs5SnDoruiAtaHFJhxle8pREnNN/kT8E8fkftgMkJ8Tvg== dependencies: debug "^4.1.1" is-ascii "^1.0.0" @@ -13242,7 +13190,6 @@ rimraf@2.6.3, rimraf@~2.6.2: rimraf@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b" - integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg== dependencies: glob "^7.1.3" @@ -13293,12 +13240,10 @@ run-async@^2.2.0: run-parallel-limit@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.0.5.tgz#c29a4fd17b4df358cb52a8a697811a63c984f1b7" - integrity sha512-NsY+oDngvrvMxKB3G8ijBzIema6aYbQMD2bHOamvN52BysbIGTnEY2xsNyfrcr9GhY995/t/0nQN3R3oZvaDlg== run-parallel@^1.0.0, run-parallel@^1.1.2, run-parallel@^1.1.6: version "1.1.9" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" @@ -13309,12 +13254,10 @@ run-queue@^1.0.0, run-queue@^1.0.3: run-series@^1.0.2, run-series@^1.1.2: version "1.1.8" resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.8.tgz#2c4558f49221e01cd6371ff4e0a1e203e460fc36" - integrity sha512-+GztYEPRpIsQoCSraWHDBs9WVy4eVME16zhOtDB4H9J4xN0XRhknnmLOl+4gRgZtu8dpp9N/utSPjKH/xmDzXg== rusha@^0.8.1: version "0.8.13" resolved "https://registry.yarnpkg.com/rusha/-/rusha-0.8.13.tgz#9a084e7b860b17bff3015b92c67a6a336191513a" - integrity sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo= rx-lite-aggregates@^4.0.8: version "4.0.8" @@ -13751,12 +13694,10 @@ signed-varint@^2.0.1: simple-concat@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" - integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= simple-get@^3.0.0, simple-get@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" - integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== dependencies: decompress-response "^4.2.0" once "^1.3.1" @@ -13765,7 +13706,6 @@ simple-get@^3.0.0, simple-get@^3.0.1: simple-peer@^9.0.0: version "9.6.2" resolved "https://registry.yarnpkg.com/simple-peer/-/simple-peer-9.6.2.tgz#42418e77cf8f9184e4fa22ef1017b195c2bf84d7" - integrity sha512-EOKoImCaqtNvXIntxT1CBBK/3pVi7tMAoJ3shdyd9qk3zLm3QPiRLb/sPC1G2xvKJkJc5fkQjCXqRZ0AknwTig== dependencies: debug "^4.0.1" get-browser-rtc "^1.0.0" @@ -13776,7 +13716,6 @@ simple-peer@^9.0.0: simple-sha1@^3.0.0, simple-sha1@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/simple-sha1/-/simple-sha1-3.0.1.tgz#b34c3c978d74ac4baf99b6555c1e6736e0d6e700" - integrity sha512-q7ehqWfHc1VhOm7sW099YDZ4I0yYX7rqyhqqhHV1IYeUTjPOhHyD3mXvv8k2P+rO7+7c8R4/D+8ffzC9BE7Cqg== dependencies: queue-microtask "^1.1.2" rusha "^0.8.1" @@ -13790,7 +13729,6 @@ simple-swizzle@^0.2.2: simple-websocket@^8.0.0: version "8.1.1" resolved "https://registry.yarnpkg.com/simple-websocket/-/simple-websocket-8.1.1.tgz#4fd68cb1301c1253b2607cfe0950a8be37e6116a" - integrity sha512-06I3cwOD5Q3LdVd6qfyDGp1U9eau9x9qniSL3b/aDgM5bsJX4nZfCuii2UCFcTfrDq0jCXF4NQ/38qeC8CJZTg== dependencies: debug "^4.1.1" queue-microtask "^1.1.0" @@ -14048,7 +13986,6 @@ spdy@^3.4.1: speedometer@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-1.1.0.tgz#a30b13abda45687a1a76977012c060f2ac8a7934" - integrity sha512-z/wAiTESw2XVPssY2XRcme4niTc4S5FkkJ4gknudtVoc33Zil8TdTxHy5torRcgqMqksJV2Yz8HQcvtbsnw0mQ== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -14071,7 +14008,6 @@ split@0.3.1: split@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== dependencies: through "2" @@ -14221,14 +14157,12 @@ stream-splicer@^1.1.0: stream-to-blob-url@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stream-to-blob-url/-/stream-to-blob-url-3.0.0.tgz#48dcaba85fab2d6c3795d38eb97a07741653f1dc" - integrity sha512-Mu1iPvbBkzdUPCZ+J+XBr/oagjOBfj4vpErHRIe08QzWeILSDtF5LXo6v44HeQFpx7dfqcBKjGUbSNCJ+38zqQ== dependencies: stream-to-blob "^2.0.0" stream-to-blob@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/stream-to-blob/-/stream-to-blob-2.0.0.tgz#3b71d5445eaf69025556237d2dfd0fc66fd142e7" - integrity sha512-E+YitTtIHo7RQ4Cmgl+EzlMpqvLroTynRgt4t0pI4y5oz/piqlBQB8NFXLIWcjGOsKw+THnImrdpWcOCVxK25Q== stream-to-pull-stream@^1.7.2: version "1.7.3" @@ -14240,7 +14174,6 @@ stream-to-pull-stream@^1.7.2: stream-with-known-length-to-buffer@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/stream-with-known-length-to-buffer/-/stream-with-known-length-to-buffer-1.0.3.tgz#6bcfcfecc33bd91deda375ca4738f99ec7cd541b" - integrity sha512-4Wi2v47HMkNdRWrlFJNlIsrhV6z6nCyVKVAIiq14MAnc7wILEAINmn96IiPWTcXzT8y2S6yfBoX++MUxqiovag== dependencies: once "^1.3.3" @@ -14329,7 +14262,6 @@ string.prototype.trimright@^2.1.0: string2compact@^1.1.1, string2compact@^1.2.5: version "1.3.0" resolved "https://registry.yarnpkg.com/string2compact/-/string2compact-1.3.0.tgz#22d946127b082d1203c51316af60117a337423c3" - integrity sha512-004ulKKANDuQilQsNxy2lisrpMG0qUJxBU+2YCEF7KziRyNR0Nredm2qk0f1V82nva59H3y9GWeHXE63HzGRFw== dependencies: addr-to-ip-port "^1.0.1" ipaddr.js "^1.0.1" @@ -14699,19 +14631,16 @@ then-read-stream@^2.0.8: thirty-two@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a" - integrity sha1-TKL//AKlEpDSdEueP1V2k8prYno= threads-plugin@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/threads-plugin/-/threads-plugin-1.2.0.tgz#eab508733ef31806c3ba28b8c058fbfb1261c565" - integrity sha512-sWJbMh7T+59hVr0MgwseNgVLuK53dNVvu4n+1C3/X3zEIkI/rwkwpaNML20fyKvwjTjLwWblwQpx6Gu+VJjBog== dependencies: loader-utils "^1.1.0" threads@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/threads/-/threads-1.0.0.tgz#d4ae092673f566cc650f25aca8bccd749bafbffd" - integrity sha512-E4qjYS3Za59Y+SVu4GNrnFwL4HbpimY9Co+In0PW5hSljIRo3z8b8ZmRy5V2f6J1fK6GsoVFSR61lzqmPnfKwQ== dependencies: callsites "^3.1.0" debug "^4.1.1" @@ -14769,7 +14698,6 @@ through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4: thunky@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== thunky@^1.0.2: version "1.0.2" @@ -14806,7 +14734,6 @@ tiny-warning@^1.0.2: "tiny-worker@>= 2": version "2.3.0" resolved "https://registry.yarnpkg.com/tiny-worker/-/tiny-worker-2.3.0.tgz#715ae34304c757a9af573ae9a8e3967177e6011e" - integrity sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g== dependencies: esm "^3.2.25" @@ -14877,7 +14804,6 @@ toposort@^1.0.0: torrent-discovery@^9.1.1: version "9.2.1" resolved "https://registry.yarnpkg.com/torrent-discovery/-/torrent-discovery-9.2.1.tgz#afeac808487f5180be98ce2f3e4b0abc93c7b6b7" - integrity sha512-bjKkbTEkcoZTXF8nhcRu6UWqbkpUsehd/6umoZqjgj/dM8nD3O7wNkPZrmls+vVf+2LT9ejZMlNUvZCqSe8cqg== dependencies: bittorrent-dht "^9.0.0" bittorrent-tracker "^9.0.0" @@ -14887,7 +14813,6 @@ torrent-discovery@^9.1.1: torrent-piece@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/torrent-piece/-/torrent-piece-2.0.0.tgz#6598ae67d93699e887f178db267ba16d89d7ec9b" - integrity sha512-H/Z/yCuvZJj1vl1IQHI8dvF2QrUuXRJoptT5DW5967/dsLpXlCg+uyhFR5lfNj5mNaYePUbKtnL+qKWZGXv4Nw== tough-cookie@^2.3.1, tough-cookie@^2.3.3, tough-cookie@^2.3.4: version "2.5.0" @@ -15094,7 +15019,6 @@ uglify-to-browserify@~1.0.0: uint64be@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/uint64be/-/uint64be-2.0.2.tgz#ef4a179752fe8f9ddaa29544ecfc13490031e8e5" - integrity sha512-9QqdvpGQTXgxthP+lY4e/gIBy+RuqcBaC6JVwT5I3bDLgT/btL6twZMR0pI3/Fgah9G/pdwzIprE5gL6v9UvyQ== dependencies: buffer-alloc "^1.1.0" @@ -15173,7 +15097,6 @@ unload@2.1.1: unordered-array-remove@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz#c546e8f88e317a0cf2644c97ecb57dba66d250ef" - integrity sha1-xUbo+I4xegzyZEyX7LV9umbSUO8= unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" @@ -15285,7 +15208,6 @@ use@^3.1.0: ut_metadata@^3.3.0: version "3.5.0" resolved "https://registry.yarnpkg.com/ut_metadata/-/ut_metadata-3.5.0.tgz#02d954bbbbf48c8563510ff2dae9f65f6b4f5fa3" - integrity sha512-eqiRaDYiDl94uVB9oR8Yor+xl0rSKUovsqDxMt+hXzJt1yLYAo0HksVLlSiPPwkXBGFpERQADPanCi0EGhixnw== dependencies: bencode "^2.0.0" bitfield "^3.0.0" @@ -15295,7 +15217,6 @@ ut_metadata@^3.3.0: ut_pex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ut_pex/-/ut_pex-2.0.0.tgz#d0c6f2d3d5ee98f38ee004ee852b390d1e7c9ac8" - integrity sha512-Uc0IxXGlES1DfeG+ITUISAvCF4Uldj7tt/n7s3TBt0KyXqDViOO26X5WfwXtUpEwn8fyZyerzf/YOK4rIZ2S3Q== dependencies: bencode "^2.0.0" compact2string "^1.2.0" @@ -15304,7 +15225,6 @@ ut_pex@^2.0.0: utf-8-validate@^5.0.1: version "5.0.2" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3" - integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw== dependencies: node-gyp-build "~3.7.0" @@ -15424,7 +15344,6 @@ verror@1.10.0: videostream@^3.2.0: version "3.2.1" resolved "https://registry.yarnpkg.com/videostream/-/videostream-3.2.1.tgz#643688ad4bfbf37570d421e3196b7e0ad38eeebc" - integrity sha512-Z4EcsX9aYNJZD1M+0jCeQ0t+5ETlHE88B2SF1fCuVxfn+XxHGJVec6tbHGqpULk4esOOLJEipAScOCDGHk+teQ== dependencies: binary-search "^1.3.4" mediasource "^2.2.2" @@ -15655,7 +15574,6 @@ websocket-extensions@>=0.1.1: webtorrent@^0.107.17: version "0.107.17" resolved "https://registry.yarnpkg.com/webtorrent/-/webtorrent-0.107.17.tgz#26e8cd71aab0d62adc0b33850953aeed4570011d" - integrity sha512-Oe7d3+jpmPRDAc645PccIJPYa2w3n3BEiMU7J/Q76QSPF3SDUK8jO7keUCC2qk4ckcbdkb98bYK6/uK7M8vsRA== dependencies: addr-to-ip-port "^1.4.2" bitfield "^3.0.0" @@ -15998,7 +15916,6 @@ ws@^5.2.0: ws@^7.0.0: version "7.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.1.tgz#03ed52423cd744084b2cf42ed197c8b65a936b8e" - integrity sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A== xml-name-validator@^3.0.0: version "3.0.0" -- GitLab