From e36bf1432de93c2dcc920d2d5faa5580244d547b Mon Sep 17 00:00:00 2001 From: ritz078 Date: Fri, 31 Jul 2020 03:24:48 +0530 Subject: [PATCH 1/2] chore: upgrade dependencies --- main/controllers/description.ts | 6 - package.json | 20 +- renderer/components/Cast/Cast.tsx | 4 +- renderer/components/Container/Container.tsx | 7 +- renderer/components/DropUI/DropUI.tsx | 4 +- renderer/components/Message/Message.tsx | 6 +- renderer/components/Modal/Modal.tsx | 109 ++-- renderer/components/Settings/Settings.tsx | 6 +- renderer/components/Toast/Toast.tsx | 6 +- .../TorrentDetails/TorrentDetails.tsx | 8 +- renderer/next.config.js | 4 - renderer/pages/_app.tsx | 3 +- renderer/pages/home.tsx | 4 +- renderer/pages/settings.tsx | 4 +- renderer/tsconfig.json | 34 +- renderer/utils/store.ts | 5 +- sample/descriptions.ts | 16 - sample/results.ts | 19 - yarn.lock | 609 +++++++++++------- 19 files changed, 496 insertions(+), 378 deletions(-) delete mode 100644 sample/descriptions.ts delete mode 100644 sample/results.ts diff --git a/main/controllers/description.ts b/main/controllers/description.ts index ceeac510..89b15d1b 100644 --- a/main/controllers/description.ts +++ b/main/controllers/description.ts @@ -2,7 +2,6 @@ import { Request, Response } from "express"; import { parse } from "parse-torrent-title"; import { isMovieOrShow } from "../utils/isMovieOrShow"; import { Description } from "../helpers/Description"; -import { sampleDescriptions } from "../../sample/descriptions"; const tvdb = new Description(); @@ -12,11 +11,6 @@ export async function description( ) { const { name } = req.query; - const sample = sampleDescriptions.filter( - (sample) => sample.title.toLowerCase() === name.toLowerCase() - ); - if (sample.length) return res.json(sample[0]); - const info = parse(name); const response = isMovieOrShow(name) ? await tvdb.find(info) : null; diff --git a/package.json b/package.json index 09f5526d..dd965a9d 100644 --- a/package.json +++ b/package.json @@ -31,16 +31,16 @@ "mime": "^2.4.5", "range-parser": "^1.2.1", "universal-analytics": "^0.4.23", - "uuid": "^8.2.0", + "uuid": "^8.3.0", "vlc-command": "^1.2.0", "webtorrent": "0.108.6" }, "devDependencies": { - "@mdi/js": "^5.2.45", + "@mdi/js": "^5.4.55", "@mdi/react": "^1.3.0", "@types/express": "^4.17.7", - "@types/lodash": "^4.14.157", - "@types/node": "^14.0.23", + "@types/lodash": "^4.14.158", + "@types/node": "^14.0.27", "@types/react": "^16.9.43", "@types/react-table": "^7.0.19", "@types/webtorrent": "^0.107.1", @@ -48,16 +48,16 @@ "buffer": "^5.6.0", "classnames": "^2.2.6", "dotenv": "^8.2.0", - "electron": "^9.0.5", - "electron-builder": "^22.6.1", + "electron": "^9.1.2", + "electron-builder": "^22.8.0", "electron-notarize": "^1.0.0", - "electron-updater": "^4.3.1", + "electron-updater": "^4.3.4", "husky": "^4.2.3", "imagemin-lint-staged": "^0.4.0", "lint-staged": "^10.2.11", "lodash": "^4.17.19", "mitt": "^2.1.0", - "next": "9.4.4", + "next": "9.5.1", "nextron": "^5.15.0", "opensubtitles-api": "^5.1.2", "parse-torrent-title": "^1.3.0", @@ -71,13 +71,13 @@ "react-dom": "16.13.1", "react-dropzone": "^11.0.2", "react-spring": "^8.0.27", - "react-table": "^7.3.0", + "react-table": "^7.3.3", "react-tiny-popover": "^5.1.0", "sass": "^1.26.10", "simplebar-react": "^2.2.1", "srt-webvtt": "^1.0.1", "typescript": "3.9.7", - "webpack": "^4.43.0" + "webpack": "^4.44.1" }, "husky": { "hooks": { diff --git a/renderer/components/Cast/Cast.tsx b/renderer/components/Cast/Cast.tsx index 29d9ec17..2f93628f 100644 --- a/renderer/components/Cast/Cast.tsx +++ b/renderer/components/Cast/Cast.tsx @@ -21,7 +21,7 @@ export interface CastDevice { host: string; } -export const Cast: React.FC = () => { +export const Cast: React.FC = React.memo(() => { const [devices, setDevices] = useState(null); const [show, setShow] = useState(false); const { setSelectedCast, selectedCast } = useContext(SelectedCastContext); @@ -90,4 +90,4 @@ export const Cast: React.FC = () => { ); -}; +}); diff --git a/renderer/components/Container/Container.tsx b/renderer/components/Container/Container.tsx index e91d6dcb..1c75c485 100644 --- a/renderer/components/Container/Container.tsx +++ b/renderer/components/Container/Container.tsx @@ -22,7 +22,7 @@ const path = searchParams.get("path") && decodeURI(searchParams.get("path")); const magnetUri = searchParams.get("magnet") && decodeURI(searchParams.get("magnet")); -export default function () { +export default React.memo(function Container() { const [selectedTorrent, setSelectedTorrent] = useState( null ); @@ -30,7 +30,7 @@ export default function () { store.get("torrents") as Download[] ); - const [color, setColor] = useState(store.get("color")); + const [color, setColor] = useState(store.get("color") as string); const { selectedCast } = useContext(SelectedCastContext); useEffect(() => { @@ -128,6 +128,7 @@ export default function () { const onTorrentDelete = useCallback( (infoHash) => { + // @ts-ignore store.delete(`descriptions.${infoHash}`); setDownloads((_downloads) => @@ -170,4 +171,4 @@ export default function () { ); -} +}); diff --git a/renderer/components/DropUI/DropUI.tsx b/renderer/components/DropUI/DropUI.tsx index 38f6d34d..e8bf7b30 100644 --- a/renderer/components/DropUI/DropUI.tsx +++ b/renderer/components/DropUI/DropUI.tsx @@ -1,6 +1,6 @@ import React, { memo } from "react"; import Icon from "@mdi/react"; -import { mdiFileDownload } from "@mdi/js"; +import { mdiFilePlus } from "@mdi/js"; import styles from "./DropUI.module.scss"; import cn from "classnames"; import { useTransition, animated, config } from "react-spring"; @@ -32,7 +32,7 @@ export const DropUI: React.FC = memo(({ isDragActive }) => { style={props} > diff --git a/renderer/components/Message/Message.tsx b/renderer/components/Message/Message.tsx index 15c0996d..1b3ef3d0 100644 --- a/renderer/components/Message/Message.tsx +++ b/renderer/components/Message/Message.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { memo } from "react"; import { fadeInTranslateY } from "@utils/animations"; import { animated, useTransition } from "react-spring"; import styles from "./Message.module.scss"; @@ -8,7 +8,7 @@ interface IProps { message?: string; } -export const Message: React.FC = ({ show, message, children }) => { +export const Message: React.FC = memo(({ show, message, children }) => { const transitions = fadeInTranslateY(show); return ( @@ -23,4 +23,4 @@ export const Message: React.FC = ({ show, message, children }) => { )} ); -}; +}); diff --git a/renderer/components/Modal/Modal.tsx b/renderer/components/Modal/Modal.tsx index ec64fedb..4fe4bd89 100644 --- a/renderer/components/Modal/Modal.tsx +++ b/renderer/components/Modal/Modal.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useRef, useState } from "react"; +import React, { memo, useEffect, useRef, useState } from "react"; import { animated } from "react-spring"; import ReactDom from "react-dom"; import cn from "classnames"; @@ -13,67 +13,64 @@ interface IProps { fullScreen?: boolean; } -export const Modal: React.FC = ({ - show, - children, - onCloseRequest, - fullScreen, -}) => { - const [isMounted, setIsMounted] = useState(false); - const divRef = useRef(); +export const Modal: React.FC = memo( + ({ show, children, onCloseRequest, fullScreen }) => { + const [isMounted, setIsMounted] = useState(false); + const divRef = useRef(); - useEffect(() => { - setIsMounted(true); - }, []); + useEffect(() => { + setIsMounted(true); + }, []); - useEffect(() => { - divRef.current = document.createElement("div"); - document.body.appendChild(divRef.current); + useEffect(() => { + divRef.current = document.createElement("div"); + document.body.appendChild(divRef.current); - return () => { - document.body.removeChild(divRef.current); - }; - }, []); + return () => { + document.body.removeChild(divRef.current); + }; + }, []); - useEffect(() => { - function closePlayer(e: KeyboardEvent) { - if (e.key === "Escape") { - onCloseRequest(); + useEffect(() => { + function closePlayer(e: KeyboardEvent) { + if (e.key === "Escape") { + onCloseRequest(); + } } - } - document.addEventListener("keydown", closePlayer); + document.addEventListener("keydown", closePlayer); - return () => { - document.removeEventListener("keydown", closePlayer); - }; - }, [show]); + return () => { + document.removeEventListener("keydown", closePlayer); + }; + }, [show]); - const transitions = fadeInTranslateY(show, { - translateX: fullScreen ? 0 : "-50%", - }); + const transitions = fadeInTranslateY(show, { + translateX: fullScreen ? 0 : "-50%", + }); - return ( - isMounted && - ReactDom.createPortal( - transitions.map( - ({ item, key, props }) => - item && ( - - - {children} - - ) - ), - divRef.current - ) - ); -}; + return ( + isMounted && + ReactDom.createPortal( + transitions.map( + ({ item, key, props }) => + item && ( + + + {children} + + ) + ), + divRef.current + ) + ); + } +); diff --git a/renderer/components/Settings/Settings.tsx b/renderer/components/Settings/Settings.tsx index 29a8ead0..e10be1ab 100644 --- a/renderer/components/Settings/Settings.tsx +++ b/renderer/components/Settings/Settings.tsx @@ -6,9 +6,9 @@ import { ipcRenderer, remote } from "electron"; import store from "@utils/store"; import { activeWindow } from "electron-util"; -export default function () { +export default React.memo(function Settings() { const [displayColorPicker, setDisplayColorPicker] = useState(false); - const [color, setColor] = useState(store.get("color")); + const [color, setColor] = useState(store.get("color") as string); const [downloadDir, setDownloadDir] = useState( store.get("downloadDirectory") ); @@ -87,4 +87,4 @@ export default function () { {/**/} ); -} +}); diff --git a/renderer/components/Toast/Toast.tsx b/renderer/components/Toast/Toast.tsx index 616f2e7b..e4554f52 100644 --- a/renderer/components/Toast/Toast.tsx +++ b/renderer/components/Toast/Toast.tsx @@ -6,9 +6,9 @@ import Icon from "@mdi/react"; import { mdiClose } from "@mdi/js"; import mitt from "mitt"; -const emitter: mitt.Emitter = mitt(); +const emitter = mitt(); -export const Toast = () => { +export const Toast = memo(() => { const [show, setShow] = useState(false); const [message, setMessage] = useState(null); @@ -45,7 +45,7 @@ export const Toast = () => { )} ); -}; +}); export const showToast = (msg: string) => { emitter.emit("SHOW_TOAST", msg); diff --git a/renderer/components/TorrentDetails/TorrentDetails.tsx b/renderer/components/TorrentDetails/TorrentDetails.tsx index ee5aec51..423c9f5c 100644 --- a/renderer/components/TorrentDetails/TorrentDetails.tsx +++ b/renderer/components/TorrentDetails/TorrentDetails.tsx @@ -1,4 +1,4 @@ -import React, { useContext, useEffect, useState } from "react"; +import React, { memo, useContext, useEffect, useState } from "react"; import styles from "./TorrentDetails.module.scss"; import { ITorrentDetails } from "../../../types/TorrentDetails"; import { FilesList } from "@components/FilesList"; @@ -21,7 +21,7 @@ interface IProps { infoHash: string; } -export const TorrentDetails: React.FC = ({ infoHash, name }) => { +export const TorrentDetails: React.FC = memo(({ infoHash, name }) => { if (!infoHash) return null; const [torrentDetails, setTorrentDetails] = useState(null); const [description, setDescription] = useState( @@ -44,7 +44,7 @@ export const TorrentDetails: React.FC = ({ infoHash, name }) => { if (!description) { description = await getTorrentDescription(name); store.set("descriptions", { - ...store.get("descriptions"), + ...(store.get("descriptions") as Object), [infoHash]: description, }); } @@ -143,4 +143,4 @@ export const TorrentDetails: React.FC = ({ infoHash, name }) => { )} ); -}; +}); diff --git a/renderer/next.config.js b/renderer/next.config.js index ef2f40d1..fae1d761 100644 --- a/renderer/next.config.js +++ b/renderer/next.config.js @@ -15,8 +15,4 @@ module.exports = { return config; }, - - experimental: { - jsconfigPaths: true, - }, }; diff --git a/renderer/pages/_app.tsx b/renderer/pages/_app.tsx index 94df72cf..09c38449 100644 --- a/renderer/pages/_app.tsx +++ b/renderer/pages/_app.tsx @@ -1,5 +1,6 @@ import "@styles/main.scss"; +import React from "react"; -export default function ({ Component, props }) { +export default function App({ Component, props }) { return ; } diff --git a/renderer/pages/home.tsx b/renderer/pages/home.tsx index 9bbeec52..cd3d4397 100644 --- a/renderer/pages/home.tsx +++ b/renderer/pages/home.tsx @@ -9,7 +9,7 @@ const Container = ssr: false, }); -export default () => { +export default function Home() { const [selectedFile, setSelectedFile] = useState(null); const [selectedCast, setSelectedCast] = useState(null); @@ -25,4 +25,4 @@ export default () => { ); -}; +} diff --git a/renderer/pages/settings.tsx b/renderer/pages/settings.tsx index b3d5951c..cc93ec84 100644 --- a/renderer/pages/settings.tsx +++ b/renderer/pages/settings.tsx @@ -7,6 +7,6 @@ const Container = ssr: false, }); -export default () => { +export default function Settings() { return Container ? :
; -}; +} diff --git a/renderer/tsconfig.json b/renderer/tsconfig.json index 3bb29965..feda43e8 100644 --- a/renderer/tsconfig.json +++ b/renderer/tsconfig.json @@ -3,12 +3,32 @@ "compilerOptions": { "baseUrl": ".", "paths": { - "@utils/*": ["utils/*"], - "@components/*": ["components/*"], - "@styles/*": ["styles/*"], - "@contexts/*": ["contexts/*"], - "@enums/*": ["enums/*"], - "@hooks/*": ["hooks/*"] + "@utils/*": [ + "utils/*" + ], + "@components/*": [ + "components/*" + ], + "@styles/*": [ + "styles/*" + ], + "@contexts/*": [ + "contexts/*" + ], + "@enums/*": [ + "enums/*" + ], + "@hooks/*": [ + "hooks/*" + ] } - } + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "node_modules" + ] } diff --git a/renderer/utils/store.ts b/renderer/utils/store.ts index b9a3c75f..ce5da211 100644 --- a/renderer/utils/store.ts +++ b/renderer/utils/store.ts @@ -1,15 +1,14 @@ import Store from "electron-store"; import { name, version } from "../../package.json"; -import { sampleMagnets } from "../../sample/results"; import { remote, app } from "electron"; import { getDefaultColor } from "@utils/theme"; -const store: Store = new Store({ +const store = new Store({ name, // @ts-ignore projectVersion: version, defaults: { - torrents: sampleMagnets, + torrents: [], descriptions: {}, color: getDefaultColor(), downloadDirectory: (app || remote.app).getPath("downloads"), diff --git a/sample/descriptions.ts b/sample/descriptions.ts deleted file mode 100644 index bd5afefa..00000000 --- a/sample/descriptions.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { ITorrentDescription } from "../types/TorrentDescription"; - -export const sampleDescriptions: ITorrentDescription[] = [ - { - title: "Tears of Steel", - year: "2012", - rated: "N/A", - released: "26 Sep 2012", - runtime: "12 min", - genre: "Short, Sci-Fi", - description: "He just wanted to be awesome in space.", - poster: - "https://m.media-amazon.com/images/M/MV5BMTczMzQzNDE5NV5BMl5BanBnXkFtZTcwNzYwMzQ1OA@@._V1_SX300.jpg", - imdbID: "tt2285752", - }, -]; diff --git a/sample/results.ts b/sample/results.ts deleted file mode 100644 index b551a936..00000000 --- a/sample/results.ts +++ /dev/null @@ -1,19 +0,0 @@ -import pt from "parse-torrent"; - -export const sampleResults = [ - { - name: "Tears of Steel", - magnet: - "magnet:?xt=urn:btih:209c8226b299b308beaf2b9cd3fb49212dbd13ec&dn=Tears+of+Steel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Ftears-of-steel.torrent", - }, - { - name: "The WIRED CD - Rip. Sample. Mash. Share", - magnet: - "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent", - }, -]; - -export const sampleMagnets = sampleResults.map((sr) => { - const { name, infoHash } = pt(sr.magnet); - return { magnet: sr.magnet, name, infoHash }; -}); diff --git a/yarn.lock b/yarn.lock index 21eb799d..53150c95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,50 +7,55 @@ resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== -"@ampproject/toolbox-core@^2.4.0-alpha.1", "@ampproject/toolbox-core@^2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.5.0.tgz#8ea4575f1c0d0048e73f64bf7e5cfc8a8e5bd6ef" - integrity sha512-aQjE8wORKXJ2tLWHuevdSL31zhQdUhC+skyEhESBV/8eOzd7ROaOzR/F43bS7uAhnYta1G0Zd/HqofgN7LRSfw== +"@ampproject/toolbox-core@^2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.5.4.tgz#8554c5398b6d65d240085a6b0abb94f9a3276dce" + integrity sha512-KjHyR0XpQyloTu59IaatU2NCGT5zOhWJtVXQ4Uj/NUaRriN6LlJlzHBxtXmPIb0YHETdD63ITtDvqZizZPYFag== dependencies: - cross-fetch "3.0.4" + cross-fetch "3.0.5" lru-cache "5.1.1" -"@ampproject/toolbox-optimizer@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-optimizer/-/toolbox-optimizer-2.4.0.tgz#16bde73913f8b58a9bf617d37cdc1f21a1222f38" - integrity sha512-Bmb+eMF9/VB3H0qPdZy0V5yPSkWe5RwuGbXiMxzqYdJgmMat+NL75EtozQnlpa0uBlESnOGe7bMojm/SA1ImrA== - dependencies: - "@ampproject/toolbox-core" "^2.4.0-alpha.1" - "@ampproject/toolbox-runtime-version" "^2.4.0-alpha.1" - "@ampproject/toolbox-script-csp" "^2.3.0" - "@ampproject/toolbox-validator-rules" "^2.3.0" +"@ampproject/toolbox-optimizer@2.5.14": + version "2.5.14" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-optimizer/-/toolbox-optimizer-2.5.14.tgz#3235919e730e017ec4e54718e76ca5db8bd003e9" + integrity sha512-UTXKVwDKn/xsNOHYroFUtQRxnukdZuiYj7iM1rCAvRmDT9MqrtMTVG8boGjxt5aHLgCnrUZEMz+8d61iBYZeDQ== + dependencies: + "@ampproject/toolbox-core" "^2.5.4" + "@ampproject/toolbox-runtime-version" "^2.5.4" + "@ampproject/toolbox-script-csp" "^2.5.4" + "@ampproject/toolbox-validator-rules" "^2.5.4" + abort-controller "3.0.0" + cross-fetch "3.0.5" cssnano "4.1.10" + dom-serializer "1.0.1" domhandler "3.0.0" domutils "2.1.0" htmlparser2 "4.1.0" lru-cache "5.1.1" + node-fetch "2.6.0" normalize-html-whitespace "1.0.0" + postcss "7.0.32" postcss-safe-parser "4.0.2" - terser "4.6.13" + terser "4.8.0" -"@ampproject/toolbox-runtime-version@^2.4.0-alpha.1": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.5.0.tgz#671823d749121ffb1b745912a8c2fc8dce27da80" - integrity sha512-mDeHgbxkBag1L/HsH3WhA7rRqoq3H7iiqZ8g/1Mvre4wP1YuN2iOjM/8EJvBJ4JM+UQsu3Kyljc88Mf8FHkSmg== +"@ampproject/toolbox-runtime-version@^2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.5.4.tgz#ed6e77df3832f551337bca3706b5a4e2f36d66f9" + integrity sha512-7vi/F91Zb+h1CwR8/on/JxZhp3Hhz6xJOOHxRA025aUFEFHV5c35B4QbTdt2MObWZrysogXFOT8M95dgU/hsKw== dependencies: - "@ampproject/toolbox-core" "^2.5.0" + "@ampproject/toolbox-core" "^2.5.4" -"@ampproject/toolbox-script-csp@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-script-csp/-/toolbox-script-csp-2.3.0.tgz#374cd0bf69bfdd0f1784064d0de69162722c89af" - integrity sha512-Qba53ohvCH79sYl5O8K5GMSo/372OjuyxNc+XySG26sAsG26WpBKJEE0HTr8rsa//CD3Fc92FieT1gK5U/jK4Q== +"@ampproject/toolbox-script-csp@^2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-script-csp/-/toolbox-script-csp-2.5.4.tgz#d8b7b91a678ae8f263cb36d9b74e441b7d633aad" + integrity sha512-+knTYetI5nWllRZ9wFcj7mYxelkiiFVRAAW/hl0ad8EnKHMH82tRlk40CapEnUHhp6Er5sCYkumQ8dngs3Q4zQ== -"@ampproject/toolbox-validator-rules@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.3.0.tgz#047d8a8106ba777f1df308c19f1c1c41ffea4054" - integrity sha512-S10YIyOKettoRDWoyRymRyjzWZD4/qW7YfHNhHAS13QVneabRcU5MF7vEwkG6dHWx/UdufT5GbqYnvpQRMNt3Q== +"@ampproject/toolbox-validator-rules@^2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.5.4.tgz#7dee3a3edceefea459d060571db8cc6e7bbf0dd6" + integrity sha512-bS7uF+h0s5aiklc/iRaujiSsiladOsZBLrJ6QImJDXvubCAQtvE7om7ShlGSXixkMAO0OVMDWyuwLlEy8V1Ing== dependencies: - cross-fetch "3.0.4" + cross-fetch "3.0.5" "@babel/code-frame@7.8.3", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": version "7.8.3" @@ -1279,20 +1284,20 @@ resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8" integrity sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw== -"@mdi/js@^5.2.45": - version "5.3.45" - resolved "https://registry.yarnpkg.com/@mdi/js/-/js-5.3.45.tgz#c6f523311bf77e339051e24aaa3eddabf565a027" - integrity sha512-r05JoeUhokSERwW6yYi3WcKCBePHHqBvIikOD0X/dWyaZb6gIRth5Lya7VVTItvGo1qlpp8LpMJKmE6o49+G+Q== +"@mdi/js@^5.4.55": + version "5.4.55" + resolved "https://registry.yarnpkg.com/@mdi/js/-/js-5.4.55.tgz#7798c38da36a705ee6d635eb4507be63e914b05f" + integrity sha512-9kWM1mGB8KiiKgGjPV1CRoF4aQifzAegvIR2zODm6VpuXDHDOVn7yOFH4D/K6imKVp9HE02N9uxHuxUKB0gjRg== "@mdi/react@^1.3.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@mdi/react/-/react-1.4.0.tgz#7f6bad1bd8801226d0e5bad91659b215ce68a93f" integrity sha512-OUH9RhfDJPhybQL3owwrSDIXz2yVKXg5lYeOZjyRCiT9wqywNK0FeYyDByOwNIZnnIQoQYmuSrMv+pOX0Uqkmw== -"@next/react-dev-overlay@9.4.4": - version "9.4.4" - resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-9.4.4.tgz#4ae03ac839ff022b3ce5c695bd24b179d4ef459d" - integrity sha512-UUAa8RbH7BeWDPCkagIkR4sUsyvTPlEdFrPZ9kGjf2+p8HkLHpcVY7y+XRnNvJQs4PsAF0Plh20FBz7t54U2iQ== +"@next/react-dev-overlay@9.5.1": + version "9.5.1" + resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-9.5.1.tgz#534e84fbd67f8b2ad0f7b8363ae069943a6b5e12" + integrity sha512-0zQlUocdPWBCFHbfuXL+dg7Rn9YWKrnlJjodNGQsI6CLzXRVa1W72H8Fh6bh8F9pO7ERMiQpnpstMSXPbvFR1Q== dependencies: "@babel/code-frame" "7.8.3" ally.js "1.4.1" @@ -1305,10 +1310,10 @@ stacktrace-parser "0.1.10" strip-ansi "6.0.0" -"@next/react-refresh-utils@9.4.4": - version "9.4.4" - resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-9.4.4.tgz#d94cbb3b354a07f1f5b80e554d6b9e34aba99e41" - integrity sha512-9nKENeWRI6kQk44TbeqleIVtNLfcS3klVUepzl/ZCqzR5Bi06uqBCD277hdVvG/wL1pxA+R/pgJQLqnF5E2wPQ== +"@next/react-refresh-utils@9.5.1": + version "9.5.1" + resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-9.5.1.tgz#fe257fafe1a7f1c0c6e818017fa65b5ee45c5eca" + integrity sha512-A19z/E6f08RXfBRc2STQ+5qo7iSPif7mNcww9dZAVli3Idu4umGP5dbpL71Hz1vyRs1eMUEylXTpXsY2WzY07g== "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" @@ -1442,10 +1447,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== -"@types/lodash@^4.14.157": - version "4.14.157" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.157.tgz#fdac1c52448861dfde1a2e1515dbc46e54926dc8" - integrity sha512-Ft5BNFmv2pHDgxV5JDsndOWTRJ+56zte0ZpYLowp03tW+K+t8u8YMOzAnpuqPgzX6WO1XpDIUm7u04M8vdDiVQ== +"@types/lodash@^4.14.158": + version "4.14.158" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.158.tgz#b38ea8b6fe799acd076d7a8d7ab71c26ef77f785" + integrity sha512-InCEXJNTv/59yO4VSfuvNrZHt7eeNtWQEgnieIA+mIC+MOWM9arOWG2eQ8Vhk6NbOre6/BidiXhkZYeDY9U35w== "@types/long@^4.0.0": version "4.0.1" @@ -1464,7 +1469,7 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== -"@types/node@*", "@types/node@^14.0.23": +"@types/node@*": version "14.0.23" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.23.tgz#676fa0883450ed9da0bb24156213636290892806" integrity sha512-Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw== @@ -1479,6 +1484,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.43.tgz#b60ce047822e526e7a9252e50844eee79d5386ff" integrity sha512-KUyZdkGCnVPuXfsKmDUu2XLui65LZIJ2s0M57noy5e+ixUT2oK33ep7zlvgzI8LElcWqbf8AR+o/3GqAPac2zA== +"@types/node@^14.0.27": + version "14.0.27" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" + integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -1535,10 +1545,10 @@ "@types/prop-types" "*" csstype "^2.2.0" -"@types/semver@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.1.0.tgz#c8c630d4c18cd326beff77404887596f96408408" - integrity sha512-pOKLaubrAEMUItGNpgwl0HMFPrSAFic8oSVIvfu1UwcgGNmNyK9gyhBHKmBnUTwwVvpZfkzUC0GaMgnL6P86uA== +"@types/semver@^7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.1.tgz#7a9a5d595b6d873f338c867dcef64df289468cfa" + integrity sha512-ooD/FJ8EuwlDKOI6D9HWxgIgJjMg2cuziXm/42npDC8y4NjxplBUn9loewZiBNCt44450lHAU0OSb51/UqXeag== dependencies: "@types/node" "*" @@ -1734,6 +1744,13 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +abort-controller@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -1904,23 +1921,23 @@ app-builder-bin@3.5.9: resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.9.tgz#a3ac0c25286bac68357321cb2eaf7128b0bc0a4f" integrity sha512-NSjtqZ3x2kYiDp3Qezsgukx/AUzKPr3Xgf9by4cYt05ILWGAptepeeu0Uv+7MO+41o6ujhLixTou8979JGg2Kg== -app-builder-lib@22.7.0: - version "22.7.0" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.7.0.tgz#ccd3e7ece2d46bc209423a77aa142f74aaf65db0" - integrity sha512-blRKwV8h0ztualXS50ciCTo39tbuDGNS+ldcy8+KLvKXuT6OpYnSJ7M6MSfPT+xWatshMHJV1rJx3Tl+k/Sn/g== +app-builder-lib@22.8.0: + version "22.8.0" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.8.0.tgz#342a8976f50ae35cfd07412dbfd4f6c895b32eac" + integrity sha512-RGaIRjCUrqkmh6QOGsyekQPEOaVynHfmeh8JZuyUymFYUOFdzBbPamkA2nhBVBTkkgfjRHsxK7LhedFKPzvWEQ== dependencies: "7zip-bin" "~5.0.3" "@develar/schema-utils" "~2.6.5" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "22.7.0" - builder-util-runtime "8.7.1" + builder-util "22.8.0" + builder-util-runtime "8.7.2" chromium-pickle-js "^0.2.0" - debug "^4.2.0" + debug "^4.1.1" ejs "^3.1.3" - electron-publish "22.7.0" - fs-extra "^9.0.0" - hosted-git-info "^3.0.4" + electron-publish "22.8.0" + fs-extra "^9.0.1" + hosted-git-info "^3.0.5" is-ci "^2.0.0" isbinaryfile "^4.0.6" js-yaml "^3.14.0" @@ -2037,6 +2054,11 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +ast-types@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48" + integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA== + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -2099,15 +2121,6 @@ axios@^0.19.2: dependencies: follow-redirects "1.5.10" -babel-code-frame@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - babel-loader@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" @@ -2506,7 +2519,17 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.12.0, browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.12.0, browserslist@^4.8.5: +browserslist@4.13.0: + version "4.13.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" + integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ== + dependencies: + caniuse-lite "^1.0.30001093" + electron-to-chromium "^1.3.488" + escalade "^3.0.1" + node-releases "^1.1.58" + +browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.12.0, browserslist@^4.8.5: version "4.12.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== @@ -2554,6 +2577,14 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= +buffer@5.6.0, buffer@^5.2.1, buffer@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + buffer@^4.3.0: version "4.9.2" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" @@ -2563,14 +2594,6 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.2.1, buffer@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - bufferutil@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" @@ -2578,36 +2601,28 @@ bufferutil@^4.0.0: dependencies: node-gyp-build "~3.7.0" -builder-util-runtime@8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.0.tgz#e48ad004835c8284662e8eaf47a53468c66e8e8d" - integrity sha512-G1AqqVM2vYTrSFR982c1NNzwXKrGLQjVjaZaWQdn4O6Z3YKjdMDofw88aD9jpyK9ZXkrCxR0tI3Qe9wNbyTlXg== +builder-util-runtime@8.7.2: + version "8.7.2" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz#d93afc71428a12789b437e13850e1fa7da956d72" + integrity sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA== dependencies: debug "^4.1.1" sax "^1.2.4" -builder-util-runtime@8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz#23c808cddd650d4376a7a1518ec1e80e85c10f00" - integrity sha512-uEBH1nAnTvzjcsrh2XI3qOzJ39h0+9kuIuwj+kCc3a07TZNGShfJcai8fFzL3mNgGjEFxoq+XMssR11r+FOFSg== - dependencies: - debug "^4.2.0" - sax "^1.2.4" - -builder-util@22.7.0: - version "22.7.0" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.7.0.tgz#0776a66e6d6e408a78bed7f17a7ad22516d9e7f0" - integrity sha512-UV3MKL0mwjMq2y9JlBf28Cegpj0CrIXcjGkO0TXn+QZ6Yy9rY6lHOuUvpQ19ct2Qh1o+QSwH3Q1nKUf5viJBBg== +builder-util@22.8.0: + version "22.8.0" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.8.0.tgz#01684085d1f2370b1bd182f69cbd007426f63f64" + integrity sha512-H80P1JzVy3TGpi63x81epQDK24XalL034+jAZlrPb5IhLtYmnNNdxCCAVJvg3VjSISd73Y71O+uhqCxWpqbPHw== dependencies: "7zip-bin" "~5.0.3" "@types/debug" "^4.1.5" "@types/fs-extra" "^9.0.1" app-builder-bin "3.5.9" bluebird-lst "^1.0.9" - builder-util-runtime "8.7.1" - chalk "^4.0.0" - debug "^4.2.0" - fs-extra "^9.0.0" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + debug "^4.1.1" + fs-extra "^9.0.1" is-ci "^2.0.0" js-yaml "^3.14.0" source-map-support "^0.5.19" @@ -2777,6 +2792,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001043: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz#4bb4f1bc2eb304e5e1154da80b93dee3f1cf447e" integrity sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg== +caniuse-lite@^1.0.30001093: + version "1.0.30001109" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001109.tgz#a9f3f26a0c3753b063d7acbb48dfb9c0e46f2b19" + integrity sha512-4JIXRodHzdS3HdK8nSgIqXYLExOvG+D2/EenSvcub2Kp3QEADjo2v2oUn5g0n0D+UNwG9BtwKOyGcSq2qvQXvQ== + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -2816,7 +2836,7 @@ chalk@4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^1.0.0, chalk@^1.1.3: +chalk@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -2871,7 +2891,7 @@ chokidar@2.1.8, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -"chokidar@>=2.0.0 <4.0.0", chokidar@^3.3.0: +"chokidar@>=2.0.0 <4.0.0": version "3.4.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== @@ -2886,6 +2906,21 @@ chokidar@2.1.8, chokidar@^2.1.8: optionalDependencies: fsevents "~2.1.2" +chokidar@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" + integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -3362,13 +3397,12 @@ create-torrent@^4.4.2: run-parallel "^1.0.0" simple-sha1 "^3.0.0" -cross-fetch@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.4.tgz#7bef7020207e684a7638ef5f2f698e24d9eb283c" - integrity sha512-MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw== +cross-fetch@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.5.tgz#2739d2981892e7ab488a7ad03b92df2816e03f4c" + integrity sha512-FFLcLtraisj5eteosnX1gf01qYDCOc4fDy0+euOt8Kn9YBY2NtXL/pCoYPavw24NIQkQqm5ZOLsGD5Zzj0gyew== dependencies: node-fetch "2.6.0" - whatwg-fetch "3.0.0" cross-spawn@^5.0.1: version "5.1.0" @@ -3554,6 +3588,21 @@ cssnano-preset-default@^4.0.7: postcss-svgo "^4.0.2" postcss-unique-selectors "^4.0.1" +cssnano-preset-simple@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-1.1.4.tgz#7b287a31df786348565d02342df71af8f758ac82" + integrity sha512-EYKDo65W+AxMViUijv/hvhbEnxUjmu3V7omcH1MatPOwjRLrAgVArUOE8wTUyc1ePFEtvV8oCT4/QSRJDorm/A== + dependencies: + postcss "^7.0.32" + +cssnano-simple@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-1.0.5.tgz#66ee528f3a4e60754e2625ea9f51ac315f5f0a92" + integrity sha512-NJjx2Er1C3pa75v1GwMKm0w6xAp1GsW2Ql1As4CWPNFxTgYFN5e8wblYeHfna13sANAhyIdSIPqKJjBO4CU5Eg== + dependencies: + cssnano-preset-simple "1.1.4" + postcss "^7.0.32" + cssnano-util-get-arguments@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" @@ -3658,7 +3707,7 @@ debug@=3.1.0: dependencies: ms "2.0.0" -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== @@ -3849,15 +3898,15 @@ dlnacasts@^0.1.0: upnp-mediarenderer-client "^1.2.2" xml2js "^0.4.8" -dmg-builder@22.7.0: - version "22.7.0" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.7.0.tgz#ead7e7c046cbdc52d29d302a4455f6668cdf7d45" - integrity sha512-5Ea2YEz6zSNbyGzZD+O9/MzmaXb6oa15cSKWo4JQ1xP4rorOpte7IOj2jcwYjtc+Los2gu1lvT314OC1OZIWgg== +dmg-builder@22.8.0: + version "22.8.0" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.8.0.tgz#2b17127837ed444db3086317eda5cf8912f6e6a9" + integrity sha512-orePWjcrl97SYLA8F/6UUtbXJSoZCYu5KOP1lVqD4LOomr8bjGDyEVYZmZYcg5WqKmXucdmO6OpqgzH/aRMMuA== dependencies: - app-builder-lib "22.7.0" - builder-util "22.7.0" - fs-extra "^9.0.0" - iconv-lite "^0.5.1" + app-builder-lib "22.8.0" + builder-util "22.8.0" + fs-extra "^9.0.1" + iconv-lite "^0.6.2" js-yaml "^3.14.0" sanitize-filename "^1.6.3" @@ -3884,6 +3933,15 @@ dom-serializer@0, dom-serializer@^0.2.1: domelementtype "^2.0.1" entities "^2.0.0" +dom-serializer@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.0.1.tgz#79695eb49af3cd8abc8d93a73da382deb1ca0795" + integrity sha512-1Aj1Qy3YLbdslkI75QEOfdp9TkQ3o8LRISAzxOibjBs/xWwr1WxZFOQphFkZuepHFGo+kB8e5FVJSS0faAJ4Rw== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.0.0" + entities "^2.0.0" + domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -4019,19 +4077,19 @@ ejs@^3.1.3: dependencies: jake "^10.6.1" -electron-builder@^22.6.1: - version "22.7.0" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.7.0.tgz#a42d08a1654ffc2f7d9e2860829d3cc55d4a0c81" - integrity sha512-t6E3oMutpST64YWbZCg7HodEwJOsnjUF1vnDIHm2MW6CFZPX8tlCK6efqaV66LU0E0Nkp/JH6TE5bCqQ1+VdPQ== +electron-builder@^22.8.0: + version "22.8.0" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.8.0.tgz#d2c9fc5438c834e41fd794a271fca200165a3bad" + integrity sha512-dUv4F3srJouqxhWivtKqSoQP4Df6vYgjooGdzms+iYMTFi9f0b4LlEbr7kgsPvte8zAglee7VOGOODkCRJDkUQ== dependencies: "@types/yargs" "^15.0.5" - app-builder-lib "22.7.0" + app-builder-lib "22.8.0" bluebird-lst "^1.0.9" - builder-util "22.7.0" - builder-util-runtime "8.7.1" - chalk "^4.0.0" - dmg-builder "22.7.0" - fs-extra "^9.0.0" + builder-util "22.8.0" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + dmg-builder "22.8.0" + fs-extra "^9.0.1" is-ci "^2.0.0" lazy-val "^1.0.4" read-config-file "6.0.0" @@ -4057,19 +4115,19 @@ electron-notarize@^1.0.0: debug "^4.1.1" fs-extra "^9.0.1" -electron-publish@22.7.0: - version "22.7.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.7.0.tgz#d92ba7c4007c9ac1dd070593e48028184fb2dc19" - integrity sha512-hmU69xlb6vvAV3QfpHYDlkdZMFdBAgDbptoxbLFrnTq5bOkcL8AaDbvxeoZ4+lvqgs29NwqGpkHo2oN+p/hCfg== +electron-publish@22.8.0: + version "22.8.0" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.8.0.tgz#7f410fe043abc5d3d896c4ee9eea7a43ea352c7d" + integrity sha512-uM0Zdi9hUqqGOrPj478v7toTvV1Kgto1w11rIiI168batiXAJvNLD8VZRfehOrZT0ibUyZlw8FtxoGCrjyHUOw== dependencies: "@types/fs-extra" "^9.0.1" bluebird-lst "^1.0.9" - builder-util "22.7.0" - builder-util-runtime "8.7.1" - chalk "^4.0.0" - fs-extra "^9.0.0" + builder-util "22.8.0" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + fs-extra "^9.0.1" lazy-val "^1.0.4" - mime "^2.4.5" + mime "^2.4.6" electron-serve@^1.0.0: version "1.0.0" @@ -4089,6 +4147,11 @@ electron-to-chromium@^1.3.413: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.418.tgz#840021191f466b803a873e154113620c9f53cec6" integrity sha512-i2QrQtHes5fK/F9QGG5XacM5WKEuR322fxTYF9e8O9Gu0mc0WmjjwGpV8c7Htso6Zf2Di18lc3SIPxmMeRFBug== +electron-to-chromium@^1.3.488: + version "1.3.514" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.514.tgz#107499c28cb3c09fe6a863c19fc2202d5d9e8e41" + integrity sha512-8vb8zKIeGlZigeDzNWWthmGeLzo5CC43Lc+CZshMs7UXFVMPNLtXJGa/txedpu3OJFrXXVheBwp9PqOJJlHQ8w== + electron-unhandled@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/electron-unhandled/-/electron-unhandled-3.0.2.tgz#e14a19c830ccf7b6e755191c8e78d23094d25112" @@ -4099,18 +4162,18 @@ electron-unhandled@^3.0.2: ensure-error "^2.0.0" lodash.debounce "^4.0.8" -electron-updater@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.1.tgz#9d485b6262bc56fcf7ee62b1dc1b3b105a3e96a7" - integrity sha512-UDC5AHCgeiHJYDYWZG/rsl1vdAFKqI/Lm7whN57LKAk8EfhTewhcEHzheRcncLgikMcQL8gFo1KeX51tf5a5Wg== +electron-updater@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.4.tgz#6003f88be9004d7834e4dd757167033d0fc2d29a" + integrity sha512-ekpgxDrYl+Wi24ktO4qfj2CtCABxrmK1C/oekp0tai6q4VR4ZdPkit4CX8+GenvKMme7uMmfPFnLp/vwhP/ThQ== dependencies: - "@types/semver" "^7.1.0" - builder-util-runtime "8.7.0" - fs-extra "^9.0.0" - js-yaml "^3.13.1" + "@types/semver" "^7.3.1" + builder-util-runtime "8.7.2" + fs-extra "^9.0.1" + js-yaml "^3.14.0" lazy-val "^1.0.4" lodash.isequal "^4.5.0" - semver "^7.1.3" + semver "^7.3.2" electron-util@^0.14.2: version "0.14.2" @@ -4120,10 +4183,10 @@ electron-util@^0.14.2: electron-is-dev "^1.1.0" new-github-issue-url "^0.2.1" -electron@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/electron/-/electron-9.0.5.tgz#189ee117cc2a2777cccf40fae0766acec5faae57" - integrity sha512-bnL9H48LuQ250DML8xUscsKiuSu+xv5umXbpBXYJ0BfvYVmFfNbG3jCfhrsH7aP6UcQKVxOG1R/oQExd0EFneQ== +electron@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-9.1.2.tgz#bfa26d6b192ea13abb6f1461371fd731a8358988" + integrity sha512-xEYadr3XqIqJ4ktBPo0lhzPdovv4jLCpiUUGc2M1frUhFhwqXokwhPaTUcE+zfu5+uf/ONDnQApwjzznBsRrgQ== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" @@ -4197,6 +4260,15 @@ enhanced-resolve@^4.1.0: memory-fs "^0.5.0" tapable "^1.0.0" +enhanced-resolve@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + enquirer@^2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381" @@ -4290,6 +4362,11 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" +escalade@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" + integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== + escape-goat@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" @@ -4345,6 +4422,11 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + events@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" @@ -4760,20 +4842,6 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -fork-ts-checker-webpack-plugin@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz#a1642c0d3e65f50c2cc1742e9c0a80f441f86b19" - integrity sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ== - dependencies: - babel-code-frame "^6.22.0" - chalk "^2.4.1" - chokidar "^3.3.0" - micromatch "^3.1.10" - minimatch "^3.0.4" - semver "^5.6.0" - tapable "^1.0.0" - worker-rpc "^0.1.0" - form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -5244,6 +5312,11 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" @@ -5263,12 +5336,12 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== -hosted-git-info@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz#be4973eb1fd2737b11c9c7c19380739bb249f60d" - integrity sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ== +hosted-git-info@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" + integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== dependencies: - lru-cache "^5.1.1" + lru-cache "^6.0.0" hsl-regex@^1.0.0: version "1.0.0" @@ -5382,12 +5455,12 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.1.tgz#b2425d3c7b18f7219f2ca663d103bddb91718d64" - integrity sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q== +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== dependencies: - safer-buffer ">= 2.1.2 < 3" + safer-buffer ">= 2.1.2 < 3.0.0" icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" @@ -5979,11 +6052,6 @@ jpegtran-bin@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - js-yaml@^3.13.1, js-yaml@^3.14.0: version "3.14.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" @@ -6422,6 +6490,13 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + lru@^3.0.0, lru@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lru/-/lru-3.1.0.tgz#ea7fb8546d83733396a13091d76cfeb4c06837d5" @@ -6580,11 +6655,6 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -microevent.ts@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" - integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== - micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -6869,10 +6939,10 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -native-url@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.3.1.tgz#5045c65d0eb4c3ee548d48e3cb50797eec5a3c54" - integrity sha512-VL0XRW8nNBdSpxqZCbLJKrLHmIMn82FZ8pJzriJgyBmErjdEtrUX6eZAJbtHjlkMooEWUV+EtJ0D5tOP3+1Piw== +native-url@0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.3.4.tgz#29c943172aed86c63cee62c8c04db7f5756661f8" + integrity sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA== dependencies: querystring "^0.2.0" @@ -6911,12 +6981,12 @@ next-tick@~1.0.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= -next@9.4.4: - version "9.4.4" - resolved "https://registry.yarnpkg.com/next/-/next-9.4.4.tgz#02ad9fea7f7016b6b42fc83b67835e4a0dd0c99a" - integrity sha512-ZT8bU2SAv5jkFQ+y8py+Rl5RJRJ6DnZDS+VUnB1cIscmtmUhDi7LYED7pYm4MCKkYhPbEEM1Lbpo7fnoZJGWNQ== +next@9.5.1: + version "9.5.1" + resolved "https://registry.yarnpkg.com/next/-/next-9.5.1.tgz#85bd64ca05e7d97310cc15fa9d3b89e38226078a" + integrity sha512-rPjeK8wd5sH/NHdL6Rhi3Mft4onB2+BvnXzS0vhGqdo1IXp26/6Hlpqb1pP+qqwI/HMJ4ms2pSEJQWp+BnyeWw== dependencies: - "@ampproject/toolbox-optimizer" "2.4.0" + "@ampproject/toolbox-optimizer" "2.5.14" "@babel/code-frame" "7.8.3" "@babel/core" "7.7.7" "@babel/plugin-proposal-class-properties" "7.8.3" @@ -6934,25 +7004,29 @@ next@9.4.4: "@babel/preset-typescript" "7.9.0" "@babel/runtime" "7.9.6" "@babel/types" "7.9.6" - "@next/react-dev-overlay" "9.4.4" - "@next/react-refresh-utils" "9.4.4" + "@next/react-dev-overlay" "9.5.1" + "@next/react-refresh-utils" "9.5.1" + ast-types "0.13.2" babel-plugin-syntax-jsx "6.18.0" babel-plugin-transform-define "2.0.0" babel-plugin-transform-react-remove-prop-types "0.4.24" - browserslist "4.12.0" + browserslist "4.13.0" + buffer "5.6.0" cacache "13.0.1" chokidar "2.1.8" css-loader "3.5.3" + cssnano-simple "1.0.5" find-cache-dir "3.3.1" - fork-ts-checker-webpack-plugin "3.1.1" jest-worker "24.9.0" loader-utils "2.0.0" mini-css-extract-plugin "0.8.0" mkdirp "0.5.3" - native-url "0.3.1" + native-url "0.3.4" neo-async "2.6.1" + node-html-parser "^1.2.19" pnp-webpack-plugin "1.6.4" - postcss "7.0.29" + postcss "7.0.32" + process "0.11.10" prop-types "15.7.2" prop-types-exact "1.2.0" react-is "16.13.1" @@ -6965,7 +7039,7 @@ next@9.4.4: use-subscription "1.4.1" watchpack "2.0.0-beta.13" web-vitals "0.2.1" - webpack "4.43.0" + webpack "4.44.0" webpack-sources "1.4.3" nextron@^5.15.0: @@ -6999,6 +7073,13 @@ node-gyp-build@~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-html-parser@^1.2.19: + version "1.2.20" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.2.20.tgz#37e9ebc627dbe3ff446eea4ac93e3d254b7c6ee4" + integrity sha512-1fUpYjAducDrrBSE0etRUV1tM+wSFTudmrslMXuk35wL/L29E7e1CLQn4CNzFLnqtYpmDlWhkD6VUloyHA0dwA== + dependencies: + he "1.1.1" + node-libs-browser@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" @@ -7033,6 +7114,11 @@ node-releases@^1.1.53: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== +node-releases@^1.1.58: + version "1.1.60" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" + integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== + node-ssdp@^2.2.0, node-ssdp@^2.7.1: version "2.9.1" resolved "https://registry.yarnpkg.com/node-ssdp/-/node-ssdp-2.9.1.tgz#2d6ba8e7eff9bf5b338564f91f7ac5d5cdddc55b" @@ -8009,10 +8095,10 @@ postcss@7.0.21: source-map "^0.6.1" supports-color "^6.1.0" -postcss@7.0.29: - version "7.0.29" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.29.tgz#d3a903872bd52280b83bce38cdc83ce55c06129e" - integrity sha512-ba0ApvR3LxGvRMMiUa9n0WR4HjzcYm7tS+ht4/2Nd0NLtHpPIH77fuB9Xh1/yJVz9O/E/95Y/dn8ygWsyffXtw== +postcss@7.0.32, postcss@^7.0.32: + version "7.0.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -8064,7 +8150,7 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: +process@0.11.10, process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= @@ -8371,10 +8457,10 @@ react-spring@^8.0.27: "@babel/runtime" "^7.3.1" prop-types "^15.5.8" -react-table@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/react-table/-/react-table-7.3.0.tgz#f9c78f3a6c7ba5efdea3414b8e5dc54a3cf69466" - integrity sha512-VQlVgvKItkpO+tAtWf/xdn9a8RU8gVqG25Ymrw9PczyBrM2Cr+HivHVQ2VsYWy8SieL0bcCNk3C++mbtWgXLfQ== +react-table@^7.3.3: + version "7.3.3" + resolved "https://registry.yarnpkg.com/react-table/-/react-table-7.3.3.tgz#34bdde5f0f2363b923d1fd93c321a3f2c0aa20c3" + integrity sha512-FG28N93kZ3DtMzeKtyFxKAebQ+WPF9ayGAGEaoaE9hA7F9vrhsTeU1ReKe/nBEs9uc3zm1n/fwDeBUBkZyAK9g== react-tiny-popover@^5.1.0: version "5.1.0" @@ -8804,7 +8890,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -8932,11 +9018,6 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" - integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== - semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" @@ -9780,10 +9861,10 @@ terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser@4.6.13: - version "4.6.13" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.13.tgz#e879a7364a5e0db52ba4891ecde007422c56a916" - integrity sha512-wMvqukYgVpQlymbnNbabVZbtM6PN63AzqexpwJL8tbh/mRT9LE5o+ruVduAGL7D6Fpjl+Q+06U5I9Ul82odAhw== +terser@4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -10346,10 +10427,10 @@ uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.2.0.tgz#cb10dd6b118e2dada7d0cd9730ba7417c93d920e" - integrity sha512-CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q== +uuid@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" + integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -10403,6 +10484,13 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== + dependencies: + chokidar "^2.1.8" + watchpack@2.0.0-beta.13: version "2.0.0-beta.13" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0-beta.13.tgz#9d9b0c094b8402139333e04eb6194643c8384f55" @@ -10420,6 +10508,17 @@ watchpack@^1.6.1: graceful-fs "^4.1.2" neo-async "^2.5.0" +watchpack@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.0" + web-vitals@0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.1.tgz#60782fa690243fe35613759a0c26431f57ba7b2d" @@ -10445,7 +10544,36 @@ webpack-sources@1.4.3, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-s source-list-map "^2.0.0" source-map "~0.6.1" -webpack@4.43.0, webpack@^4.43.0: +webpack@4.44.0: + version "4.44.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.0.tgz#3b08f88a89470175f036f4a9496b8a0428668802" + integrity sha512-wAuJxK123sqAw31SpkPiPW3iKHgFUiKvO7E7UZjtdExcsRe3fgav4mvoMM7vvpjLHVoJ6a0Mtp2fzkoA13e0Zw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +webpack@^4.43.0: version "4.43.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== @@ -10474,6 +10602,35 @@ webpack@4.43.0, webpack@^4.43.0: watchpack "^1.6.1" webpack-sources "^1.4.1" +webpack@^4.44.1: + version "4.44.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21" + integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + webtorrent@0.108.6: version "0.108.6" resolved "https://registry.yarnpkg.com/webtorrent/-/webtorrent-0.108.6.tgz#7e9f8ccc745149ae33c964abb691b22a5c2f49ee" @@ -10521,11 +10678,6 @@ webtorrent@0.108.6: ut_metadata "^3.5.0" ut_pex "^2.0.0" -whatwg-fetch@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" - integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== - whatwg-url@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" @@ -10578,13 +10730,6 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -worker-rpc@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" - integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== - dependencies: - microevent.ts "~0.1.1" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" From c67d128a68b207b0c062acd67e70a1d271d123ed Mon Sep 17 00:00:00 2001 From: ritz078 Date: Sat, 1 Aug 2020 22:23:28 +0530 Subject: [PATCH 2/2] remove sample tprrents --- main/controllers/description.ts | 8 +- package.json | 1 + renderer/components/Cast/Cast.tsx | 2 +- .../components/Container/Container.module.css | 6 - .../Container/Container.module.scss | 25 + renderer/components/Container/Container.tsx | 31 +- renderer/components/Empty/Empty.module.scss | 31 + renderer/components/Empty/Empty.tsx | 35 + renderer/components/Empty/index.ts | 1 + renderer/components/Header/Header.tsx | 82 +- .../TorrentDetails/TorrentDetails.module.scss | 2 +- renderer/styles/main.scss | 1 + renderer/styles/vendor/sweetalert.scss | 1403 +++++++++++++++++ renderer/utils/handleFileSelect.ts | 25 + renderer/utils/handleMagnetSelect.ts | 30 + yarn.lock | 5 + 16 files changed, 1596 insertions(+), 92 deletions(-) delete mode 100644 renderer/components/Container/Container.module.css create mode 100644 renderer/components/Container/Container.module.scss create mode 100644 renderer/components/Empty/Empty.module.scss create mode 100644 renderer/components/Empty/Empty.tsx create mode 100644 renderer/components/Empty/index.ts create mode 100644 renderer/styles/vendor/sweetalert.scss create mode 100644 renderer/utils/handleFileSelect.ts create mode 100644 renderer/utils/handleMagnetSelect.ts diff --git a/main/controllers/description.ts b/main/controllers/description.ts index 89b15d1b..085284a1 100644 --- a/main/controllers/description.ts +++ b/main/controllers/description.ts @@ -12,7 +12,11 @@ export async function description( const { name } = req.query; const info = parse(name); - const response = isMovieOrShow(name) ? await tvdb.find(info) : null; + try { + const response = isMovieOrShow(name) ? await tvdb.find(info) : null; - res.json(response); + res.json(response); + } catch (e) { + res.json(null); + } } diff --git a/package.json b/package.json index dd965a9d..0ccab97b 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "internal-ip": "^6.0.0", "mime": "^2.4.5", "range-parser": "^1.2.1", + "sweetalert2": "^9.17.1", "universal-analytics": "^0.4.23", "uuid": "^8.3.0", "vlc-command": "^1.2.0", diff --git a/renderer/components/Cast/Cast.tsx b/renderer/components/Cast/Cast.tsx index 2f93628f..bc74713b 100644 --- a/renderer/components/Cast/Cast.tsx +++ b/renderer/components/Cast/Cast.tsx @@ -79,7 +79,7 @@ export const Cast: React.FC = React.memo(() => { )} > {(ref) => ( - + + +
+ + ); +}); diff --git a/renderer/components/Empty/index.ts b/renderer/components/Empty/index.ts new file mode 100644 index 00000000..7aa85b1b --- /dev/null +++ b/renderer/components/Empty/index.ts @@ -0,0 +1 @@ +export * from "./Empty"; diff --git a/renderer/components/Header/Header.tsx b/renderer/components/Header/Header.tsx index 4bc4bb57..67124244 100644 --- a/renderer/components/Header/Header.tsx +++ b/renderer/components/Header/Header.tsx @@ -6,14 +6,11 @@ import { Modal } from "@components/Modal"; import { Preferences } from "@components/Preferences"; import store from "@utils/store"; import { remote } from "electron"; -import fs from "fs"; -import { parseFileInfo } from "@utils/parseFileInfo"; import { Download } from "@components/Downloads"; import { Cast, StreamingDevice } from "@components/Cast/Cast"; import { is, openNewGitHubIssue } from "electron-util"; -import parseTorrent from "parse-torrent"; -import { showToast, Toast } from "@components/Toast"; -import MagnetUri from "magnet-uri"; +import { handleFileSelect } from "@utils/handleFileSelect"; +import { handleMagnetSelect } from "@utils/handleMagnetSelect"; interface IProps { onFileSelect: (info: Download) => void; @@ -29,39 +26,19 @@ export const Header: React.FC = memo(({ onFileSelect }) => { }); const Navbar: React.FC = memo(({ onFileSelect }) => { - const [show, setShow] = useState(false); - const inputRef = useRef(null); - - const loadFile = useCallback(() => { - (async function () { - const { filePaths } = await remote.dialog.showOpenDialog( - remote.getCurrentWindow(), - { - properties: ["openFile"], - filters: [ - { - name: "torrent", - extensions: ["torrent"], - }, - ], - message: "Load Torrent File", - } - ); - - if (filePaths.length) { - const info = await parseFileInfo(fs.readFileSync(filePaths[0])); - onFileSelect(info); - } - })(); - }, []); - return (
- - @@ -73,7 +50,7 @@ const Navbar: React.FC = memo(({ onFileSelect }) => { repo: remote.app.name, }) } - title="Create a new GitHub Issue" + title="Open a GitHub Issue" > @@ -91,43 +68,6 @@ const Navbar: React.FC = memo(({ onFileSelect }) => { - - setShow(false)}> -
-

Enter Magnet URL

-
- { - e.stopPropagation(); - e.nativeEvent.stopImmediatePropagation(); - }} - /> - -
-
-
); }); diff --git a/renderer/components/TorrentDetails/TorrentDetails.module.scss b/renderer/components/TorrentDetails/TorrentDetails.module.scss index 35ae587c..f5d8c5f0 100644 --- a/renderer/components/TorrentDetails/TorrentDetails.module.scss +++ b/renderer/components/TorrentDetails/TorrentDetails.module.scss @@ -17,7 +17,7 @@ $posterWidth: 184px; } .poster { - grid-area: 1 / 1 / 10 / 2; + grid-area: 1 / 1 / 9 / 2; height: 100%; border-radius: 2px; overflow: hidden; diff --git a/renderer/styles/main.scss b/renderer/styles/main.scss index 20e05622..6774421b 100644 --- a/renderer/styles/main.scss +++ b/renderer/styles/main.scss @@ -2,6 +2,7 @@ @import "~simplebar/dist/simplebar.min.css"; @import "~plyr/dist/plyr.css"; +@import "./vendor/sweetalert"; body, html { diff --git a/renderer/styles/vendor/sweetalert.scss b/renderer/styles/vendor/sweetalert.scss new file mode 100644 index 00000000..dc192939 --- /dev/null +++ b/renderer/styles/vendor/sweetalert.scss @@ -0,0 +1,1403 @@ +.swal2-popup.swal2-toast { + flex-direction: row; + align-items: center; + width: auto; + padding: 0.625em; + overflow-y: hidden; + background: #19191a; + box-shadow: 0 0 0.625em #d9d9d9; +} +.swal2-popup.swal2-toast .swal2-header { + flex-direction: row; +} +.swal2-popup.swal2-toast .swal2-title { + flex-grow: 1; + justify-content: flex-start; + margin: 0 0.6em; + font-size: 1em; +} +.swal2-popup.swal2-toast .swal2-footer { + margin: 0.5em 0 0; + padding: 0.5em 0 0; + font-size: 0.8em; +} +.swal2-popup.swal2-toast .swal2-close { + position: static; + width: 0.8em; + height: 0.8em; + line-height: 0.8; +} +.swal2-popup.swal2-toast .swal2-content { + justify-content: flex-start; + font-size: 1em; +} +.swal2-popup.swal2-toast .swal2-icon { + width: 2em; + min-width: 2em; + height: 2em; + margin: 0; +} +.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content { + display: flex; + align-items: center; + font-size: 1.8em; + font-weight: 700; +} +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content { + font-size: 0.25em; + } +} +.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring { + width: 2em; + height: 2em; +} +.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^="swal2-x-mark-line"] { + top: 0.875em; + width: 1.375em; +} +.swal2-popup.swal2-toast +.swal2-icon.swal2-error +[class^="swal2-x-mark-line"][class$="left"] { + left: 0.3125em; +} +.swal2-popup.swal2-toast +.swal2-icon.swal2-error +[class^="swal2-x-mark-line"][class$="right"] { + right: 0.3125em; +} +.swal2-popup.swal2-toast .swal2-actions { + flex-basis: auto !important; + width: auto; + height: auto; + margin: 0 0.3125em; +} +.swal2-popup.swal2-toast .swal2-styled { + margin: 0 0.3125em; + padding: 0.3125em 0.625em; + font-size: 1em; +} +.swal2-popup.swal2-toast .swal2-styled:focus { + box-shadow: 0 0 0 1px #19191a, 0 0 0 3px rgba(63, 126, 188, 0.4); +} +.swal2-popup.swal2-toast .swal2-success { + border-color: #a5dc86; +} +.swal2-popup.swal2-toast .swal2-success [class^="swal2-success-circular-line"] { + position: absolute; + width: 1.6em; + height: 3em; + transform: rotate(45deg); + border-radius: 50%; +} +.swal2-popup.swal2-toast +.swal2-success +[class^="swal2-success-circular-line"][class$="left"] { + top: -0.8em; + left: -0.5em; + transform: rotate(-45deg); + transform-origin: 2em 2em; + border-radius: 4em 0 0 4em; +} +.swal2-popup.swal2-toast +.swal2-success +[class^="swal2-success-circular-line"][class$="right"] { + top: -0.25em; + left: 0.9375em; + transform-origin: 0 1.5em; + border-radius: 0 4em 4em 0; +} +.swal2-popup.swal2-toast .swal2-success .swal2-success-ring { + width: 2em; + height: 2em; +} +.swal2-popup.swal2-toast .swal2-success .swal2-success-fix { + top: 0; + left: 0.4375em; + width: 0.4375em; + height: 2.6875em; +} +.swal2-popup.swal2-toast .swal2-success [class^="swal2-success-line"] { + height: 0.3125em; +} +.swal2-popup.swal2-toast +.swal2-success +[class^="swal2-success-line"][class$="tip"] { + top: 1.125em; + left: 0.1875em; + width: 0.75em; +} +.swal2-popup.swal2-toast +.swal2-success +[class^="swal2-success-line"][class$="long"] { + top: 0.9375em; + right: 0.1875em; + width: 1.375em; +} +.swal2-popup.swal2-toast +.swal2-success.swal2-icon-show +.swal2-success-line-tip { + -webkit-animation: swal2-toast-animate-success-line-tip 0.75s; + animation: swal2-toast-animate-success-line-tip 0.75s; +} +.swal2-popup.swal2-toast +.swal2-success.swal2-icon-show +.swal2-success-line-long { + -webkit-animation: swal2-toast-animate-success-line-long 0.75s; + animation: swal2-toast-animate-success-line-long 0.75s; +} +.swal2-popup.swal2-toast.swal2-show { + -webkit-animation: swal2-toast-show 0.5s; + animation: swal2-toast-show 0.5s; +} +.swal2-popup.swal2-toast.swal2-hide { + -webkit-animation: swal2-toast-hide 0.1s forwards; + animation: swal2-toast-hide 0.1s forwards; +} +.swal2-container { + display: flex; + position: fixed; + z-index: 1060; + top: 0; + right: 0; + bottom: 0; + left: 0; + flex-direction: row; + align-items: center; + justify-content: center; + padding: 0.625em; + overflow-x: hidden; + transition: background-color 0.1s; + -webkit-overflow-scrolling: touch; +} +.swal2-container.swal2-backdrop-show, +.swal2-container.swal2-noanimation { + background: rgba(25, 25, 26, 0.75); +} +.swal2-container.swal2-backdrop-hide { + background: 0 0 !important; +} +.swal2-container.swal2-top { + align-items: flex-start; +} +.swal2-container.swal2-top-left, +.swal2-container.swal2-top-start { + align-items: flex-start; + justify-content: flex-start; +} +.swal2-container.swal2-top-end, +.swal2-container.swal2-top-right { + align-items: flex-start; + justify-content: flex-end; +} +.swal2-container.swal2-center { + align-items: center; +} +.swal2-container.swal2-center-left, +.swal2-container.swal2-center-start { + align-items: center; + justify-content: flex-start; +} +.swal2-container.swal2-center-end, +.swal2-container.swal2-center-right { + align-items: center; + justify-content: flex-end; +} +.swal2-container.swal2-bottom { + align-items: flex-end; +} +.swal2-container.swal2-bottom-left, +.swal2-container.swal2-bottom-start { + align-items: flex-end; + justify-content: flex-start; +} +.swal2-container.swal2-bottom-end, +.swal2-container.swal2-bottom-right { + align-items: flex-end; + justify-content: flex-end; +} +.swal2-container.swal2-bottom-end > :first-child, +.swal2-container.swal2-bottom-left > :first-child, +.swal2-container.swal2-bottom-right > :first-child, +.swal2-container.swal2-bottom-start > :first-child, +.swal2-container.swal2-bottom > :first-child { + margin-top: auto; +} +.swal2-container.swal2-grow-fullscreen > .swal2-modal { + display: flex !important; + flex: 1; + align-self: stretch; + justify-content: center; +} +.swal2-container.swal2-grow-row > .swal2-modal { + display: flex !important; + flex: 1; + align-content: center; + justify-content: center; +} +.swal2-container.swal2-grow-column { + flex: 1; + flex-direction: column; +} +.swal2-container.swal2-grow-column.swal2-bottom, +.swal2-container.swal2-grow-column.swal2-center, +.swal2-container.swal2-grow-column.swal2-top { + align-items: center; +} +.swal2-container.swal2-grow-column.swal2-bottom-left, +.swal2-container.swal2-grow-column.swal2-bottom-start, +.swal2-container.swal2-grow-column.swal2-center-left, +.swal2-container.swal2-grow-column.swal2-center-start, +.swal2-container.swal2-grow-column.swal2-top-left, +.swal2-container.swal2-grow-column.swal2-top-start { + align-items: flex-start; +} +.swal2-container.swal2-grow-column.swal2-bottom-end, +.swal2-container.swal2-grow-column.swal2-bottom-right, +.swal2-container.swal2-grow-column.swal2-center-end, +.swal2-container.swal2-grow-column.swal2-center-right, +.swal2-container.swal2-grow-column.swal2-top-end, +.swal2-container.swal2-grow-column.swal2-top-right { + align-items: flex-end; +} +.swal2-container.swal2-grow-column > .swal2-modal { + display: flex !important; + flex: 1; + align-content: center; + justify-content: center; +} +.swal2-container.swal2-no-transition { + transition: none !important; +} +.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) +> .swal2-modal { + margin: auto; +} +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .swal2-container .swal2-modal { + margin: 0 !important; + } +} +.swal2-popup { + display: none; + position: relative; + box-sizing: border-box; + flex-direction: column; + justify-content: center; + width: 32em; + max-width: 100%; + padding: 1.25em; + border-radius: 0.3125em; + background: #131313de; + font-family: inherit; + font-size: 1rem; + border: 1px solid #000000c4; +} +.swal2-popup:focus { + outline: 0; +} +.swal2-popup.swal2-loading { + overflow-y: hidden; +} +.swal2-header { + display: flex; + flex-direction: column; + align-items: center; +} +.swal2-title { + position: relative; + max-width: 100%; + margin: 0 0 0.4em; + padding: 0; + color: #e1e1e1; + font-size: 18px; + font-weight: normal; + text-align: center; + text-transform: none; + word-wrap: break-word; +} +.swal2-actions { + display: flex; + z-index: 1; + flex-wrap: wrap; + align-items: center; + justify-content: center; + width: 100%; + margin: 1.25em auto 0; +} +.swal2-actions:not(.swal2-loading) .swal2-styled[disabled] { + opacity: 0.4; +} +.swal2-actions:not(.swal2-loading) .swal2-styled:hover { + background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); +} +.swal2-actions:not(.swal2-loading) .swal2-styled:active { + background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); +} +.swal2-actions.swal2-loading .swal2-styled.swal2-cancel { + margin-right: 30px; + margin-left: 30px; +} +.swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after { + content: ""; + display: inline-block; + width: 15px; + height: 15px; + margin-left: 5px; + -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal; + animation: swal2-rotate-loading 1.5s linear 0s infinite normal; + border: 3px solid #999; + border-radius: 50%; + border-right-color: transparent; + box-shadow: 1px 1px 1px #fff; +} +.swal2-styled { + margin: 0.3125em; + padding: 0.625em 2em; + box-shadow: none; + font-weight: 500; +} +.swal2-styled:not([disabled]) { + cursor: pointer; +} +.swal2-styled.swal2-confirm { + border: 0; + border-radius: 0.25em; + background: initial; + background-color: #3085d6; + color: #fff; + font-size: 1.0625em; +} +.swal2-styled.swal2-cancel { + border: 0; + border-radius: 0.25em; + background: initial; + background-color: #383838; + color: #fff; + font-size: 1.0625em; +} +.swal2-styled:focus { + outline: 0; + box-shadow: 0 0 0 1px #19191a, 0 0 0 3px rgba(63, 126, 188, 0.4); +} +.swal2-styled::-moz-focus-inner { + border: 0; +} +.swal2-footer { + justify-content: center; + margin: 1.25em 0 0; + padding: 1em 0 0; + border-top: 1px solid #555; + color: #bbb; + font-size: 1em; +} +.swal2-timer-progress-bar-container { + position: absolute; + right: 0; + bottom: 0; + left: 0; + height: 0.25em; + overflow: hidden; + border-bottom-right-radius: 0.3125em; + border-bottom-left-radius: 0.3125em; +} +.swal2-timer-progress-bar { + width: 100%; + height: 0.25em; + background: rgba(225, 225, 225, 0.6); +} +.swal2-image { + max-width: 100%; + margin: 1.25em auto; +} +.swal2-close { + position: absolute; + z-index: 2; + top: 0; + right: 0; + align-items: center; + justify-content: center; + width: 1.2em; + height: 1.2em; + padding: 0; + overflow: hidden; + transition: color 0.1s ease-out; + border: none; + border-radius: 0; + background: 0 0; + color: #ccc; + font-family: serif; + font-size: 2.5em; + line-height: 1.2; + cursor: pointer; +} +.swal2-close:hover { + transform: none; + background: 0 0; + color: #f27474; +} +.swal2-close::-moz-focus-inner { + border: 0; +} +.swal2-content { + z-index: 1; + justify-content: center; + margin: 0; + padding: 0; + color: #e1e1e1; + font-size: 1.125em; + font-weight: 400; + line-height: normal; + text-align: center; + word-wrap: break-word; +} +.swal2-checkbox, +.swal2-file, +.swal2-input, +.swal2-radio, +.swal2-select, +.swal2-textarea { + margin: 1em auto; +} +.swal2-file, +.swal2-input, +.swal2-textarea { + box-sizing: border-box; + width: 100%; + transition: border-color 0.3s, box-shadow 0.3s; + border: 1px solid #525252; + border-radius: 0.1875em; + background: #2727278c; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06); + color: #e1e1e1; + font-size: 1.125em; +} +.swal2-file.swal2-inputerror, +.swal2-input.swal2-inputerror, +.swal2-textarea.swal2-inputerror { + border-color: #f27474 !important; + box-shadow: 0 0 2px #f27474 !important; +} +.swal2-file:focus, +.swal2-input:focus, +.swal2-textarea:focus { + border: 1px solid #b4dbed; + outline: 0; + box-shadow: 0 0 3px #c4e6f5; +} +.swal2-file::-webkit-input-placeholder, +.swal2-input::-webkit-input-placeholder, +.swal2-textarea::-webkit-input-placeholder { + color: #ccc; +} +.swal2-file::-moz-placeholder, +.swal2-input::-moz-placeholder, +.swal2-textarea::-moz-placeholder { + color: #ccc; +} +.swal2-file:-ms-input-placeholder, +.swal2-input:-ms-input-placeholder, +.swal2-textarea:-ms-input-placeholder { + color: #ccc; +} +.swal2-file::-ms-input-placeholder, +.swal2-input::-ms-input-placeholder, +.swal2-textarea::-ms-input-placeholder { + color: #ccc; +} +.swal2-file::placeholder, +.swal2-input::placeholder, +.swal2-textarea::placeholder { + color: #ccc; +} +.swal2-range { + margin: 1em auto; + background: #19191a; +} +.swal2-range input { + width: 80%; +} +.swal2-range output { + width: 20%; + color: #e1e1e1; + font-weight: 600; + text-align: center; +} +.swal2-range input, +.swal2-range output { + height: 2.625em; + padding: 0; + font-size: 1.125em; + line-height: 2.625em; +} +.swal2-input { + height: 42px; + padding: 0 0.75em; +} +.swal2-input[type="number"] { + max-width: 10em; +} +.swal2-file { + background: #323234; + font-size: 1.125em; +} +.swal2-textarea { + height: 6.75em; + padding: 0.75em; +} +.swal2-select { + min-width: 50%; + max-width: 100%; + padding: 0.375em 0.625em; + background: #323234; + color: #e1e1e1; + font-size: 1.125em; +} +.swal2-checkbox, +.swal2-radio { + align-items: center; + justify-content: center; + background: #19191a; + color: #e1e1e1; +} +.swal2-checkbox label, +.swal2-radio label { + margin: 0 0.6em; + font-size: 1.125em; +} +.swal2-checkbox input, +.swal2-radio input { + margin: 0 0.4em; +} +.swal2-validation-message { + display: none; + align-items: center; + justify-content: center; + padding: 0.625em; + overflow: hidden; + background: #292929c9; + color: #e1e1e1; + font-size: 14px; + font-weight: 300; +} +.swal2-validation-message::before { + content: "!"; + display: inline-block; + width: 1.5em; + min-width: 1.5em; + height: 1.5em; + margin: 0 0.625em; + border-radius: 50%; + background-color: #f27474; + color: #fff; + font-weight: 600; + line-height: 1.5em; + text-align: center; +} +.swal2-icon { + position: relative; + box-sizing: content-box; + justify-content: center; + width: 5em; + height: 5em; + margin: 1.25em auto 1.875em; + border: 0.25em solid transparent; + border-radius: 50%; + font-family: inherit; + line-height: 5em; + cursor: default; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.swal2-icon .swal2-icon-content { + display: flex; + align-items: center; + font-size: 3.75em; +} +.swal2-icon.swal2-error { + border-color: #f27474; + color: #f27474; +} +.swal2-icon.swal2-error .swal2-x-mark { + position: relative; + flex-grow: 1; +} +.swal2-icon.swal2-error [class^="swal2-x-mark-line"] { + display: block; + position: absolute; + top: 2.3125em; + width: 2.9375em; + height: 0.3125em; + border-radius: 0.125em; + background-color: #f27474; +} +.swal2-icon.swal2-error [class^="swal2-x-mark-line"][class$="left"] { + left: 1.0625em; + transform: rotate(45deg); +} +.swal2-icon.swal2-error [class^="swal2-x-mark-line"][class$="right"] { + right: 1em; + transform: rotate(-45deg); +} +.swal2-icon.swal2-error.swal2-icon-show { + -webkit-animation: swal2-animate-error-icon 0.5s; + animation: swal2-animate-error-icon 0.5s; +} +.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark { + -webkit-animation: swal2-animate-error-x-mark 0.5s; + animation: swal2-animate-error-x-mark 0.5s; +} +.swal2-icon.swal2-warning { + border-color: #facea8; + color: #f8bb86; +} +.swal2-icon.swal2-info { + border-color: #9de0f6; + color: #3fc3ee; +} +.swal2-icon.swal2-question { + border-color: #c9dae1; + color: #87adbd; +} +.swal2-icon.swal2-success { + border-color: #a5dc86; + color: #a5dc86; +} +.swal2-icon.swal2-success [class^="swal2-success-circular-line"] { + position: absolute; + width: 3.75em; + height: 7.5em; + transform: rotate(45deg); + border-radius: 50%; +} +.swal2-icon.swal2-success +[class^="swal2-success-circular-line"][class$="left"] { + top: -0.4375em; + left: -2.0635em; + transform: rotate(-45deg); + transform-origin: 3.75em 3.75em; + border-radius: 7.5em 0 0 7.5em; +} +.swal2-icon.swal2-success +[class^="swal2-success-circular-line"][class$="right"] { + top: -0.6875em; + left: 1.875em; + transform: rotate(-45deg); + transform-origin: 0 3.75em; + border-radius: 0 7.5em 7.5em 0; +} +.swal2-icon.swal2-success .swal2-success-ring { + position: absolute; + z-index: 2; + top: -0.25em; + left: -0.25em; + box-sizing: content-box; + width: 100%; + height: 100%; + border: 0.25em solid rgba(165, 220, 134, 0.3); + border-radius: 50%; +} +.swal2-icon.swal2-success .swal2-success-fix { + position: absolute; + z-index: 1; + top: 0.5em; + left: 1.625em; + width: 0.4375em; + height: 5.625em; + transform: rotate(-45deg); +} +.swal2-icon.swal2-success [class^="swal2-success-line"] { + display: block; + position: absolute; + z-index: 2; + height: 0.3125em; + border-radius: 0.125em; + background-color: #a5dc86; +} +.swal2-icon.swal2-success [class^="swal2-success-line"][class$="tip"] { + top: 2.875em; + left: 0.8125em; + width: 1.5625em; + transform: rotate(45deg); +} +.swal2-icon.swal2-success [class^="swal2-success-line"][class$="long"] { + top: 2.375em; + right: 0.5em; + width: 2.9375em; + transform: rotate(-45deg); +} +.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip { + -webkit-animation: swal2-animate-success-line-tip 0.75s; + animation: swal2-animate-success-line-tip 0.75s; +} +.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long { + -webkit-animation: swal2-animate-success-line-long 0.75s; + animation: swal2-animate-success-line-long 0.75s; +} +.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right { + -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in; + animation: swal2-rotate-success-circular-line 4.25s ease-in; +} +.swal2-progress-steps { + align-items: center; + margin: 0 0 1.25em; + padding: 0; + background: inherit; + font-weight: 600; +} +.swal2-progress-steps li { + display: inline-block; + position: relative; +} +.swal2-progress-steps .swal2-progress-step { + z-index: 20; + width: 2em; + height: 2em; + border-radius: 2em; + background: #3085d6; + color: #fff; + line-height: 2em; + text-align: center; +} +.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step { + background: #3085d6; +} +.swal2-progress-steps +.swal2-progress-step.swal2-active-progress-step +~ .swal2-progress-step { + background: #58585b; + color: #fff; +} +.swal2-progress-steps +.swal2-progress-step.swal2-active-progress-step +~ .swal2-progress-step-line { + background: #58585b; +} +.swal2-progress-steps .swal2-progress-step-line { + z-index: 10; + width: 2.5em; + height: 0.4em; + margin: 0 -1px; + background: #3085d6; +} +[class^="swal2"] { + -webkit-tap-highlight-color: transparent; +} +.swal2-show { + -webkit-animation: swal2-show 0.3s; + animation: swal2-show 0.3s; +} +.swal2-hide { + -webkit-animation: swal2-hide 0.15s forwards; + animation: swal2-hide 0.15s forwards; +} +.swal2-noanimation { + transition: none; +} +.swal2-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +.swal2-rtl .swal2-close { + right: auto; + left: 0; +} +.swal2-rtl .swal2-timer-progress-bar { + right: 0; + left: auto; +} +@supports (-ms-accelerator: true) { + .swal2-range input { + width: 100% !important; + } + .swal2-range output { + display: none; + } +} +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .swal2-range input { + width: 100% !important; + } + .swal2-range output { + display: none; + } +} +@-moz-document url-prefix() { + .swal2-close:focus { + outline: 2px solid rgba(63, 126, 188, 0.4); + } +} +@-webkit-keyframes swal2-toast-show { + 0% { + transform: translateY(-0.625em) rotateZ(2deg); + } + 33% { + transform: translateY(0) rotateZ(-2deg); + } + 66% { + transform: translateY(0.3125em) rotateZ(2deg); + } + 100% { + transform: translateY(0) rotateZ(0); + } +} +@keyframes swal2-toast-show { + 0% { + transform: translateY(-0.625em) rotateZ(2deg); + } + 33% { + transform: translateY(0) rotateZ(-2deg); + } + 66% { + transform: translateY(0.3125em) rotateZ(2deg); + } + 100% { + transform: translateY(0) rotateZ(0); + } +} +@-webkit-keyframes swal2-toast-hide { + 100% { + transform: rotateZ(1deg); + opacity: 0; + } +} +@keyframes swal2-toast-hide { + 100% { + transform: rotateZ(1deg); + opacity: 0; + } +} +@-webkit-keyframes swal2-toast-animate-success-line-tip { + 0% { + top: 0.5625em; + left: 0.0625em; + width: 0; + } + 54% { + top: 0.125em; + left: 0.125em; + width: 0; + } + 70% { + top: 0.625em; + left: -0.25em; + width: 1.625em; + } + 84% { + top: 1.0625em; + left: 0.75em; + width: 0.5em; + } + 100% { + top: 1.125em; + left: 0.1875em; + width: 0.75em; + } +} +@keyframes swal2-toast-animate-success-line-tip { + 0% { + top: 0.5625em; + left: 0.0625em; + width: 0; + } + 54% { + top: 0.125em; + left: 0.125em; + width: 0; + } + 70% { + top: 0.625em; + left: -0.25em; + width: 1.625em; + } + 84% { + top: 1.0625em; + left: 0.75em; + width: 0.5em; + } + 100% { + top: 1.125em; + left: 0.1875em; + width: 0.75em; + } +} +@-webkit-keyframes swal2-toast-animate-success-line-long { + 0% { + top: 1.625em; + right: 1.375em; + width: 0; + } + 65% { + top: 1.25em; + right: 0.9375em; + width: 0; + } + 84% { + top: 0.9375em; + right: 0; + width: 1.125em; + } + 100% { + top: 0.9375em; + right: 0.1875em; + width: 1.375em; + } +} +@keyframes swal2-toast-animate-success-line-long { + 0% { + top: 1.625em; + right: 1.375em; + width: 0; + } + 65% { + top: 1.25em; + right: 0.9375em; + width: 0; + } + 84% { + top: 0.9375em; + right: 0; + width: 1.125em; + } + 100% { + top: 0.9375em; + right: 0.1875em; + width: 1.375em; + } +} +@-webkit-keyframes swal2-show { + 0% { + transform: scale(0.7); + } + 45% { + transform: scale(1.05); + } + 80% { + transform: scale(0.95); + } + 100% { + transform: scale(1); + } +} +@keyframes swal2-show { + 0% { + transform: scale(0.7); + } + 45% { + transform: scale(1.05); + } + 80% { + transform: scale(0.95); + } + 100% { + transform: scale(1); + } +} +@-webkit-keyframes swal2-hide { + 0% { + transform: scale(1); + opacity: 1; + } + 100% { + transform: scale(0.5); + opacity: 0; + } +} +@keyframes swal2-hide { + 0% { + transform: scale(1); + opacity: 1; + } + 100% { + transform: scale(0.5); + opacity: 0; + } +} +@-webkit-keyframes swal2-animate-success-line-tip { + 0% { + top: 1.1875em; + left: 0.0625em; + width: 0; + } + 54% { + top: 1.0625em; + left: 0.125em; + width: 0; + } + 70% { + top: 2.1875em; + left: -0.375em; + width: 3.125em; + } + 84% { + top: 3em; + left: 1.3125em; + width: 1.0625em; + } + 100% { + top: 2.8125em; + left: 0.8125em; + width: 1.5625em; + } +} +@keyframes swal2-animate-success-line-tip { + 0% { + top: 1.1875em; + left: 0.0625em; + width: 0; + } + 54% { + top: 1.0625em; + left: 0.125em; + width: 0; + } + 70% { + top: 2.1875em; + left: -0.375em; + width: 3.125em; + } + 84% { + top: 3em; + left: 1.3125em; + width: 1.0625em; + } + 100% { + top: 2.8125em; + left: 0.8125em; + width: 1.5625em; + } +} +@-webkit-keyframes swal2-animate-success-line-long { + 0% { + top: 3.375em; + right: 2.875em; + width: 0; + } + 65% { + top: 3.375em; + right: 2.875em; + width: 0; + } + 84% { + top: 2.1875em; + right: 0; + width: 3.4375em; + } + 100% { + top: 2.375em; + right: 0.5em; + width: 2.9375em; + } +} +@keyframes swal2-animate-success-line-long { + 0% { + top: 3.375em; + right: 2.875em; + width: 0; + } + 65% { + top: 3.375em; + right: 2.875em; + width: 0; + } + 84% { + top: 2.1875em; + right: 0; + width: 3.4375em; + } + 100% { + top: 2.375em; + right: 0.5em; + width: 2.9375em; + } +} +@-webkit-keyframes swal2-rotate-success-circular-line { + 0% { + transform: rotate(-45deg); + } + 5% { + transform: rotate(-45deg); + } + 12% { + transform: rotate(-405deg); + } + 100% { + transform: rotate(-405deg); + } +} +@keyframes swal2-rotate-success-circular-line { + 0% { + transform: rotate(-45deg); + } + 5% { + transform: rotate(-45deg); + } + 12% { + transform: rotate(-405deg); + } + 100% { + transform: rotate(-405deg); + } +} +@-webkit-keyframes swal2-animate-error-x-mark { + 0% { + margin-top: 1.625em; + transform: scale(0.4); + opacity: 0; + } + 50% { + margin-top: 1.625em; + transform: scale(0.4); + opacity: 0; + } + 80% { + margin-top: -0.375em; + transform: scale(1.15); + } + 100% { + margin-top: 0; + transform: scale(1); + opacity: 1; + } +} +@keyframes swal2-animate-error-x-mark { + 0% { + margin-top: 1.625em; + transform: scale(0.4); + opacity: 0; + } + 50% { + margin-top: 1.625em; + transform: scale(0.4); + opacity: 0; + } + 80% { + margin-top: -0.375em; + transform: scale(1.15); + } + 100% { + margin-top: 0; + transform: scale(1); + opacity: 1; + } +} +@-webkit-keyframes swal2-animate-error-icon { + 0% { + transform: rotateX(100deg); + opacity: 0; + } + 100% { + transform: rotateX(0); + opacity: 1; + } +} +@keyframes swal2-animate-error-icon { + 0% { + transform: rotateX(100deg); + opacity: 0; + } + 100% { + transform: rotateX(0); + opacity: 1; + } +} +@-webkit-keyframes swal2-rotate-loading { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } +} +@keyframes swal2-rotate-loading { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } +} +body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { + overflow: hidden; +} +body.swal2-height-auto { + height: auto !important; +} +body.swal2-no-backdrop .swal2-container { + top: auto; + right: auto; + bottom: auto; + left: auto; + max-width: calc(100% - 0.625em * 2); + background-color: transparent !important; +} +body.swal2-no-backdrop .swal2-container > .swal2-modal { + box-shadow: 0 0 10px rgba(25, 25, 26, 0.75); +} +body.swal2-no-backdrop .swal2-container.swal2-top { + top: 0; + left: 50%; + transform: translateX(-50%); +} +body.swal2-no-backdrop .swal2-container.swal2-top-left, +body.swal2-no-backdrop .swal2-container.swal2-top-start { + top: 0; + left: 0; +} +body.swal2-no-backdrop .swal2-container.swal2-top-end, +body.swal2-no-backdrop .swal2-container.swal2-top-right { + top: 0; + right: 0; +} +body.swal2-no-backdrop .swal2-container.swal2-center { + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} +body.swal2-no-backdrop .swal2-container.swal2-center-left, +body.swal2-no-backdrop .swal2-container.swal2-center-start { + top: 50%; + left: 0; + transform: translateY(-50%); +} +body.swal2-no-backdrop .swal2-container.swal2-center-end, +body.swal2-no-backdrop .swal2-container.swal2-center-right { + top: 50%; + right: 0; + transform: translateY(-50%); +} +body.swal2-no-backdrop .swal2-container.swal2-bottom { + bottom: 0; + left: 50%; + transform: translateX(-50%); +} +body.swal2-no-backdrop .swal2-container.swal2-bottom-left, +body.swal2-no-backdrop .swal2-container.swal2-bottom-start { + bottom: 0; + left: 0; +} +body.swal2-no-backdrop .swal2-container.swal2-bottom-end, +body.swal2-no-backdrop .swal2-container.swal2-bottom-right { + right: 0; + bottom: 0; +} +@media print { + body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { + overflow-y: scroll !important; + } + body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) + > [aria-hidden="true"] { + display: none; + } + body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) + .swal2-container { + position: static !important; + } +} +body.swal2-toast-shown .swal2-container { + background-color: transparent; +} +body.swal2-toast-shown .swal2-container.swal2-top { + top: 0; + right: auto; + bottom: auto; + left: 50%; + transform: translateX(-50%); +} +body.swal2-toast-shown .swal2-container.swal2-top-end, +body.swal2-toast-shown .swal2-container.swal2-top-right { + top: 0; + right: 0; + bottom: auto; + left: auto; +} +body.swal2-toast-shown .swal2-container.swal2-top-left, +body.swal2-toast-shown .swal2-container.swal2-top-start { + top: 0; + right: auto; + bottom: auto; + left: 0; +} +body.swal2-toast-shown .swal2-container.swal2-center-left, +body.swal2-toast-shown .swal2-container.swal2-center-start { + top: 50%; + right: auto; + bottom: auto; + left: 0; + transform: translateY(-50%); +} +body.swal2-toast-shown .swal2-container.swal2-center { + top: 50%; + right: auto; + bottom: auto; + left: 50%; + transform: translate(-50%, -50%); +} +body.swal2-toast-shown .swal2-container.swal2-center-end, +body.swal2-toast-shown .swal2-container.swal2-center-right { + top: 50%; + right: 0; + bottom: auto; + left: auto; + transform: translateY(-50%); +} +body.swal2-toast-shown .swal2-container.swal2-bottom-left, +body.swal2-toast-shown .swal2-container.swal2-bottom-start { + top: auto; + right: auto; + bottom: 0; + left: 0; +} +body.swal2-toast-shown .swal2-container.swal2-bottom { + top: auto; + right: auto; + bottom: 0; + left: 50%; + transform: translateX(-50%); +} +body.swal2-toast-shown .swal2-container.swal2-bottom-end, +body.swal2-toast-shown .swal2-container.swal2-bottom-right { + top: auto; + right: 0; + bottom: 0; + left: auto; +} +body.swal2-toast-column .swal2-toast { + flex-direction: column; + align-items: stretch; +} +body.swal2-toast-column .swal2-toast .swal2-actions { + flex: 1; + align-self: stretch; + height: 2.2em; + margin-top: 0.3125em; +} +body.swal2-toast-column .swal2-toast .swal2-loading { + justify-content: center; +} +body.swal2-toast-column .swal2-toast .swal2-input { + height: 2em; + margin: 0.3125em auto; + font-size: 1em; +} +body.swal2-toast-column .swal2-toast .swal2-validation-message { + font-size: 1em; +} + +.swal2-actions { + button { + all: unset; + background-color: white; + font-size: 14px; + padding: 8px 10px; + border-radius: 2px !important; + margin: 0 10px; + width: 100px; + text-align: center; + } +} diff --git a/renderer/utils/handleFileSelect.ts b/renderer/utils/handleFileSelect.ts new file mode 100644 index 00000000..066ee2e6 --- /dev/null +++ b/renderer/utils/handleFileSelect.ts @@ -0,0 +1,25 @@ +import { remote } from "electron"; +import { parseFileInfo } from "@utils/parseFileInfo"; +import fs from "fs"; +import { Download } from "@components/Downloads"; + +export async function handleFileSelect(onFileSelect: (info: Download) => void) { + const { filePaths } = await remote.dialog.showOpenDialog( + remote.getCurrentWindow(), + { + properties: ["openFile"], + filters: [ + { + name: "torrent", + extensions: ["torrent"], + }, + ], + message: "Load Torrent File", + } + ); + + if (filePaths.length) { + const info = await parseFileInfo(fs.readFileSync(filePaths[0])); + onFileSelect(info); + } +} diff --git a/renderer/utils/handleMagnetSelect.ts b/renderer/utils/handleMagnetSelect.ts new file mode 100644 index 00000000..07b011c8 --- /dev/null +++ b/renderer/utils/handleMagnetSelect.ts @@ -0,0 +1,30 @@ +import { Download } from "@components/Downloads"; +import Swal from "sweetalert2/dist/sweetalert2"; +import parseTorrent from "parse-torrent"; +import MagnetUri from "magnet-uri"; + +export async function handleMagnetSelect( + onFileSelect: (info: Download) => void +) { + const { value } = await Swal.fire({ + title: "Enter your Magnet URL", + input: "text", + showCancelButton: true, + inputValidator: (value) => { + try { + parseTorrent(value); + } catch (e) { + return e.message; + } + }, + }); + + if (value) { + const { name, infoHash }: MagnetUri.Instance = parseTorrent(value); + onFileSelect({ + name: name as string, + infoHash, + magnet: value, + }); + } +} diff --git a/yarn.lock b/yarn.lock index 53150c95..3839cdc0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9802,6 +9802,11 @@ svgo@^1.0.0, svgo@^1.3.2: unquote "~1.1.1" util.promisify "~1.0.0" +sweetalert2@^9.17.1: + version "9.17.1" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-9.17.1.tgz#3d3c8d2dd8b44aeec6a01bf611be265143586bd1" + integrity sha512-D/VE2lT/bKd64/RBglLUtQ+3nsftzjzIiP2iqN6zPzPwf+2djIY+4k8Bg430zxRUn4DkZzyIuU58q3n0J43lvw== + tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"