From 55ccfbf414daebeb7e535352d72da78eeca2c9e9 Mon Sep 17 00:00:00 2001 From: mere Date: Thu, 27 Jul 2023 09:16:20 +0000 Subject: [PATCH 001/102] Translated using Weblate (Romanian) Currently translated at 100.0% (704 of 704 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ro/ --- static/locales/ro.yaml | 95 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 94 insertions(+), 1 deletion(-) diff --git a/static/locales/ro.yaml b/static/locales/ro.yaml index 43130019c..887d7ac84 100644 --- a/static/locales/ro.yaml +++ b/static/locales/ro.yaml @@ -99,6 +99,9 @@ Subscriptions: Disabled Automatic Fetching: Ai dezactivat obținerea automată de abonamente. Reîmprospătează abonamentele pentru a le vedea aici. Subscriptions Tabs: Filele Abonamente + All Subscription Tabs Hidden: Toate filele de abonament sunt ascunse. Pentru a vedea + conținutul aici, vă rugăm să afișați unele file din secțiunea "{subsection}” din + "{settingsSection}”. Trending: Trending: 'Tendințe' Trending Tabs: File în tendințe @@ -302,11 +305,14 @@ Settings: sigur că doriți să eliminați toate abonamentele și profilurile? Acest lucru nu poate fi anulat.' Automatically Remove Video Meta Files: Îndepărtați automat fișierele meta video + Save Watched Videos With Last Viewed Playlist: Salvați videoclipurile vizionate + cu ultima listă de redare vizualizată Subscription Settings: Subscription Settings: 'Setări de abonament' Hide Videos on Watch: 'Ascunde videoclipurile la vizionare' Fetch Feeds from RSS: 'Preluare de fluxuri din RSS' Manage Subscriptions: 'Gestionați abonamentele' + Fetch Automatically: Preluați feedul automat Data Settings: Data Settings: 'Setări de date' Select Import Type: 'Selectează tipul de import' @@ -355,6 +361,9 @@ Settings: se omite All playlists has been successfully exported: Toate listele de redare au fost exportate cu succes + Playlist File: Fișier listă de redare + History File: Fișier istoric + Subscription File: Fișier abonament Advanced Settings: {} The app needs to restart for changes to take effect. Restart and apply change?: Aplicația trebuie repornită pentru ca modificările să intre în vigoare. Reporniți și aplicați @@ -384,6 +393,27 @@ Settings: Hide Comments: Ascunde comentariile Hide Live Streams: Ascunde stream-urile live Hide Sharing Actions: Ascunde butoanele de sharing + Hide Chapters: Ascundeți capitolele + Display Titles Without Excessive Capitalisation: Afișați titluri fără majuscule + excesive + Sections: + Subscriptions Page: Pagina de abonamente + Side Bar: Bară laterală + Channel Page: Pagina canalului + Watch Page: Pagina de vizionare + General: General + Hide Channel Podcasts: Ascundeți podcasturile canalului + Hide Subscriptions Shorts: Ascundeți Abonamente Shorts + Hide Channel Releases: Ascunde lansările canalului + Hide Subscriptions Videos: Ascundeți Abonamente Videoclipuri + Hide Subscriptions Live: Ascundeți Abonamente Live + Hide Channels: Ascundeți videoclipurile din canale + Hide Channel Community: Ascunde comunitatea canalului + Hide Channel Shorts: Ascundeți canalul Shorts + Hide Featured Channels: Ascundeți canalele recomandate + Hide Channels Placeholder: Numele canalului sau ID-ul + Hide Channel Playlists: Ascunde playlisturile canalului + Hide Upcoming Premieres: Ascundeți premierele viitoare SponsorBlock Settings: Notify when sponsor segment is skipped: Notificare atunci când segmentul sponsorului este sărit @@ -398,6 +428,7 @@ Settings: Prompt To Skip: Întreabă pentru a sării Do Nothing: Nu fă nimic Category Color: Culoarea categoriilor + UseDeArrowTitles: Utilizați titlurile video DeArrow Proxy Settings: Error getting network information. Is your proxy configured properly?: Eroare la obținerea informațiilor despre rețea. Proxy-ul este configurat corect? @@ -437,6 +468,12 @@ Settings: Set Password To Prevent Access: Setați o parolă pentru a împiedica accesul la setări Set Password: Setați parola + Experimental Settings: + Warning: Aceste setări sunt experimentale, ele pot cauza blocări atunci când sunt + activate. Este foarte recomandat să faceți copii de rezervă. Folosiți pe propria + răspundere! + Replace HTTP Cache: Înlocuiți cache HTTP + Experimental Settings: Setări experimentale About: #On About page About: 'Despre' @@ -547,6 +584,10 @@ Channel: Featured Channels: 'Canale recomandate' Joined: S-a alăturat pe Location: Locație + Details: Detalii + Tags: + Search for: Căutați "{tag}" + Tags: Tags Community: Community: Comunitate This channel currently does not have any posts: Acest canal nu are momentan nicio @@ -555,6 +596,21 @@ Channel: canal are restricții de vârstă și momentan nu poate fi vizionat în FreeTube. This channel does not exist: Acest canal nu există This channel does not allow searching: Acest canal nu permite căutarea + Live: + Live: Live + This channel does not currently have any live streams: Acest canal nu are momentan + niciun live stream + Shorts: + This channel does not currently have any shorts: Acest canal nu are momentan shorts + Podcasts: + Podcasts: Podcasturi + This channel does not currently have any podcasts: Acest canal nu are momentan + nici un podcast + Releases: + Releases: Lansări + This channel does not currently have any releases: Acest canal nu are momentan + nicio lansare + Channel Tabs: Filele canalului Video: Mark As Watched: 'Marcați ca vizionat' Remove From History: 'Eliminați din istoric' @@ -694,6 +750,12 @@ Video: Premieres on: Premieră pe Premieres in: Are premiera în Scroll to Bottom: Derulați până jos + Upcoming: Urmează + 'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': Chatul + live nu este disponibil pentru acest flux. Este posibil să fi fost dezactivat + de persoana care a încărcat. + Premieres: Premiere + Show Super Chat Comment: Afișați comentariul Super Chat Videos: #& Sort By Sort By: @@ -768,6 +830,8 @@ Comments: From {channelName}: de la {channelName} Pinned by: Lipit de Member: Membru + Hearted: Inima + View {replyCount} replies: '{replyCount} răspunsuri' Up Next: 'În continuare' # Toast Messages @@ -818,6 +882,8 @@ Tooltips: metodei implicite pentru a prelua feed-ul de abonament. RSS este mai rapid și previne blocarea IP-ului, dar nu oferă anumite informații, cum ar fi durata videoclipului sau starea live + Fetch Automatically: Când activat, FreeTube va prelua automat feed-ul de abonament + când se deschide o fereastră nouă și când schimbați profilul. External Player Settings: Custom External Player Arguments: Orice argumente personalizate din linia de comandă, separate prin punct și virgulă (";"), pe care doriți să le transmiteți playerului @@ -849,6 +915,12 @@ Tooltips: (tasta Command pe Mac) și faceți clic cu butonul stâng al mouse-ului pentru a reveni rapid la rata de redare implicită (1x, cu excepția cazului în care aceasta a fost modificată în setări). + Allow DASH AV1 formats: Formatele DASH AV1 pot arăta mai bine decât formatele + DASH H.264. Formatele DASH AV1 necesită mai multă putere pentru redare! Nu sunt + disponibile pe toate videoclipurile, în acele cazuri playerul va folosi în schimb + formatele DASH H.264. + Skip by Scrolling Over Video Player: Utilizați rotița de derulare pentru a trece + prin videoclip, stil MPV. General Settings: External Link Handling: "Alegeți comportamentul implicit atunci când se face clic pe un link care nu poate fi deschis în FreeTube.\nÎn mod implicit, FreeTube @@ -865,6 +937,20 @@ Tooltips: Preferred API Backend: Alegeți backend-ul pe care FreeTube îl folosește pentru a obține date. API-ul local este un extractor incorporat. API-ul Invidious necesită un server Invidious la care să vă conectați. + Distraction Free Settings: + Hide Channels: Introduceți un nume de canal sau un ID de canal pentru a ascunde + toate videoclipurile, listele de redare și canalul în sine pentru a nu apărea + în căutare, în tendințe, în cele mai populare și recomandate. Numele canalului + introdus trebuie să se potrivească complet și să țină cont de majuscule și minuscule. + Hide Subscriptions Live: Această setare este înlocuită de setarea "{appWideSetting}” + la nivel de aplicație, în secțiunea „{subsection}” din „{settingsSection}” + Experimental Settings: + Replace HTTP Cache: Dezactivează memoria cache HTTP bazată pe disc Electron și + activează un cache de imagini personalizat în memorie. Va duce la o utilizare + crescută a memoriei RAM. + SponsorBlock Settings: + UseDeArrowTitles: Înlocuiți titlurile video cu titluri trimise de utilizator de + la DeArrow. External link opening has been disabled in the general settings: Deschiderea linkurilor externe a fost dezactivată în setările generale Starting download: Se începe descărcarea a "{videoTitle}" @@ -877,6 +963,8 @@ Age Restricted: Type: Channel: Canal Video: Video + This {videoOrPlaylist} is age restricted: Acest {videoOrPlaylist} are restricții + de vârstă Channels: Channels: Canale Title: Listă de canale @@ -887,7 +975,7 @@ Channels: Unsubscribed: '{channelName} a fost eliminat din lista ta de abonamente' Unsubscribe Prompt: Ești sigur că dorești să te dezabonezi de la "{channelName}"? Screenshot Success: Capturi de ecran salvate ca "{filePath}" -Screenshot Error: Captura de ecran a eșuat +Screenshot Error: Captura de ecran a eșuat {error} Preferences: Preferințe Chapters: Chapters: Capitole @@ -899,3 +987,8 @@ Clipboard: Cannot access clipboard without a secure connection: Nu se poate accesa clipboard-ul fără o conexiune securizată Copy failed: Copierea în clipboard a eșuat +Hashtag: + Hashtag: Hashtag + This hashtag does not currently have any videos: Acest hashtag nu are momentan niciun + videoclip +Ok: OK From b2cbef7f8c152bec00de8d8d67d16bb94f174577 Mon Sep 17 00:00:00 2001 From: Luna Jernberg Date: Fri, 28 Jul 2023 05:39:27 +0000 Subject: [PATCH 002/102] Translated using Weblate (Swedish) Currently translated at 100.0% (704 of 704 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sv/ --- static/locales/sv.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/static/locales/sv.yaml b/static/locales/sv.yaml index f4c9526d4..7ef3405d4 100644 --- a/static/locales/sv.yaml +++ b/static/locales/sv.yaml @@ -97,6 +97,9 @@ Subscriptions: Disabled Automatic Fetching: Du har avaktiverat automatisk prenumerationshämtning. Uppdatera prenumerationerna för att se dem här. Empty Channels: Dina prenumererade kanaler har inga filmer. + Subscriptions Tabs: Prenumerations Flik + All Subscription Tabs Hidden: Alla prenumerationsflikar är dolda. För att se innehåll + här, vänligen avdölj några flikar i avsnittet "{subsection}" i "{settingsSection}". Trending: Trending: 'Populärt' Movies: Filmer @@ -406,8 +409,14 @@ Settings: General: Allmänt Channel Page: Kanal sida Watch Page: Titta sida + Subscriptions Page: Prenumerationssida Hide Channel Community: Dölj Kanal gemenskap Hide Channel Playlists: Dölj Kanal spellistor + Hide Channel Podcasts: Dölj kanal podcasts + Hide Channel Releases: Dölj kanal släpp + Hide Subscriptions Videos: Dölj prenumerationsvideor + Hide Subscriptions Shorts: Dölj prenumerationsshorts + Hide Subscriptions Live: Dölj prenumerations Live-sändningar The app needs to restart for changes to take effect. Restart and apply change?: Starta om FreeTube nu för att tillämpa ändringarna? Proxy Settings: @@ -631,6 +640,14 @@ Channel: Live: Live This channel does not currently have any live streams: Den här kanalen har för närvarande inga liveströmmar + Releases: + Releases: Släpp + This channel does not currently have any releases: Den här kanalen har för närvarande + inga släpp + Podcasts: + Podcasts: Podcasts + This channel does not currently have any podcasts: Den här kanalen har för närvarande + inga podcasts Video: Mark As Watched: 'Markera som sedd' Remove From History: 'Ta bort från historik' @@ -925,6 +942,8 @@ Tooltips: Hide Channels: Ange ett kanalnamn eller kanal-ID för att dölja alla videor, spellistor och själva kanalen från att visas i sökningar, trender, populäraste och rekommenderade. Det angivna kanalnamnet måste vara en fullständig matchning och är skiftlägeskänsligt. + Hide Subscriptions Live: Den här inställningen åsidosätts av den program omfattande + "{appWideSetting}"-inställningen, i avsnittet "{subsection}" i "{settingsSection}" Experimental Settings: Replace HTTP Cache: Inaktiverar Electrons diskbaserade HTTP-cache och aktiverar en anpassad bildcache i minnet. Kommer att leda till ökad RAM-användning. From 47f69fcb02374c8e3abe848872bad403c32e8e67 Mon Sep 17 00:00:00 2001 From: trostboot Date: Fri, 28 Jul 2023 09:56:40 +0200 Subject: [PATCH 003/102] Fix playlists for external players with no index support (#3797) * Fix playlists for players with no index support * Fix typo --- src/renderer/store/modules/utils.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/renderer/store/modules/utils.js b/src/renderer/store/modules/utils.js index 8edf388fb..9027c138d 100644 --- a/src/renderer/store/modules/utils.js +++ b/src/renderer/store/modules/utils.js @@ -585,7 +585,12 @@ const actions = { } } - args.push(`${cmdArgs.playlistUrl}https://youtube.com/playlist?list=${payload.playlistId}`) + // If the player supports opening playlists but not indexes, send only the video URL if an index is specified + if (cmdArgs.playlistIndex == null && payload.playlistIndex != null && payload.playlistIndex !== '') { + args.push(`${cmdArgs.videoUrl}https://youtube.com/watch?v=${payload.videoId}`) + } else { + args.push(`${cmdArgs.playlistUrl}https://youtube.com/playlist?list=${payload.playlistId}`) + } } else { if (payload.playlistId != null && payload.playlistId !== '' && !ignoreWarnings) { showExternalPlayerUnsupportedActionToast(externalPlayer, 'opening playlists') From b1fa24857e9339b67b780fc7e5bc032d0ed5e83d Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Sat, 29 Jul 2023 16:17:19 +0800 Subject: [PATCH 004/102] Bump electron-builder from 23.6.0 to 24.6.3 (#3815) --- package.json | 2 +- yarn.lock | 395 ++++++++++++++++++++++++--------------------------- 2 files changed, 186 insertions(+), 211 deletions(-) diff --git a/package.json b/package.json index 792338d70..608ed371f 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "css-loader": "^6.8.1", "css-minimizer-webpack-plugin": "^5.0.1", "electron": "^22.3.18", - "electron-builder": "^23.6.0", + "electron-builder": "^24.6.3", "eslint": "^8.45.0", "eslint-config-prettier": "^8.8.0", "eslint-config-standard": "^17.1.0", diff --git a/yarn.lock b/yarn.lock index 469122f11..4d83c4c2f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1095,6 +1095,16 @@ dependencies: postcss "^8.4.19" +"@electron/asar@^3.2.1": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.4.tgz#7e8635a3c4f6d8b3f8ae6efaf5ecb9fbf3bd9864" + integrity sha512-lykfY3TJRRWFeTxccEKdf1I6BLl2Plw81H0bbp4Fc5iEc67foDCa5pjJQULVgo0wF+Dli75f3xVcdb/67FFZ/g== + dependencies: + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + "@electron/get@^2.0.0": version "2.0.2" resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.2.tgz#ae2a967b22075e9c25aaf00d5941cd79c21efd7e" @@ -1110,15 +1120,35 @@ optionalDependencies: global-agent "^3.0.0" -"@electron/universal@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.2.1.tgz#3c2c4ff37063a4e9ab1e6ff57db0bc619bc82339" - integrity sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ== +"@electron/notarize@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-1.2.4.tgz#a7d38773f4cad40df111a5edc64037e5d768ea1e" + integrity sha512-W5GQhJEosFNafewnS28d3bpQ37/s91CDWqxVchHfmv2dQSTWpOzNlUVQwYzC1ay5bChRV/A9BTL68yj0Pa+TSg== dependencies: + debug "^4.1.1" + fs-extra "^9.0.1" + +"@electron/osx-sign@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.0.4.tgz#8e91442846471636ca0469426a82b253b9170151" + integrity sha512-xfhdEcIOfAZg7scZ9RQPya1G1lWo8/zMCwUXAulq0SfY7ONIW+b9qGyKdMyuMctNYwllrIS+vmxfijSfjeh97g== + dependencies: + compare-version "^0.1.2" + debug "^4.3.4" + fs-extra "^10.0.0" + isbinaryfile "^4.0.8" + minimist "^1.2.6" + plist "^3.0.5" + +"@electron/universal@1.3.4": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.3.4.tgz#bccd94b635d7c85eeed5eabba457eb4ed2be2777" + integrity sha512-BdhBgm2ZBnYyYRLRgOjM5VHkyFItsbggJ0MHycOjKWdFGYwK97ZFXH54dTvUWEfha81vfvwr5On6XBjt99uDcg== + dependencies: + "@electron/asar" "^3.2.1" "@malept/cross-spawn-promise" "^1.1.0" - asar "^3.1.0" debug "^4.3.1" - dir-compare "^2.4.0" + dir-compare "^3.0.0" fs-extra "^9.0.1" minimatch "^3.0.4" plist "^3.0.4" @@ -1484,21 +1514,13 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/fs-extra@^9.0.11": +"@types/fs-extra@9.0.13", "@types/fs-extra@^9.0.11": version "9.0.13" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== dependencies: "@types/node" "*" -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - "@types/html-minifier-terser@^6.0.0": version "6.1.0" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" @@ -1557,11 +1579,6 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== -"@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - "@types/minimist@^1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" @@ -1656,13 +1673,6 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== -"@types/yargs@^17.0.1": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" - integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^17.0.8": version "17.0.13" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" @@ -1875,6 +1885,11 @@ resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.6.tgz#8a1524eb5bd5e965c1e3735476f0262469f71440" integrity sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg== +"@xmldom/xmldom@^0.8.8": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" + integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -2011,36 +2026,38 @@ app-builder-bin@4.0.0: resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-4.0.0.tgz#1df8e654bd1395e4a319d82545c98667d7eed2f0" integrity sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA== -app-builder-lib@23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-23.6.0.tgz#03cade02838c077db99d86212d61c5fc1d6da1a8" - integrity sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA== +app-builder-lib@24.6.3: + version "24.6.3" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-24.6.3.tgz#5fe7027ec81ea35d5875a6e193c95cbb932eaa2e" + integrity sha512-++0Zp7vcCHfXMBGVj7luFxpqvMPk5mcWeTuw7OK0xNAaNtYQTTN0d9YfWRsb1MvviTOOhyHeULWz1CaixrdrDg== dependencies: "7zip-bin" "~5.1.1" "@develar/schema-utils" "~2.6.5" - "@electron/universal" "1.2.1" + "@electron/notarize" "^1.2.3" + "@electron/osx-sign" "^1.0.4" + "@electron/universal" "1.3.4" "@malept/flatpak-bundler" "^0.4.0" + "@types/fs-extra" "9.0.13" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "23.6.0" - builder-util-runtime "9.1.1" + builder-util "24.5.0" + builder-util-runtime "9.2.1" chromium-pickle-js "^0.2.0" debug "^4.3.4" - ejs "^3.1.7" - electron-osx-sign "^0.6.0" - electron-publish "23.6.0" + ejs "^3.1.8" + electron-publish "24.5.0" form-data "^4.0.0" fs-extra "^10.1.0" hosted-git-info "^4.1.0" is-ci "^3.0.0" - isbinaryfile "^4.0.10" + isbinaryfile "^5.0.0" js-yaml "^4.1.0" lazy-val "^1.0.5" - minimatch "^3.1.2" - read-config-file "6.2.0" + minimatch "^5.1.1" + read-config-file "6.3.2" sanitize-filename "^1.6.3" - semver "^7.3.7" - tar "^6.1.11" + semver "^7.3.8" + tar "^6.1.12" temp-file "^3.4.0" argparse@^2.0.1: @@ -2106,18 +2123,6 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -asar@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473" - integrity sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ== - dependencies: - chromium-pickle-js "^0.2.0" - commander "^5.0.0" - glob "^7.1.6" - minimatch "^3.0.4" - optionalDependencies: - "@types/glob" "^7.1.1" - asn1@~0.2.3: version "0.2.6" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" @@ -2253,7 +2258,7 @@ bluebird-lst@^1.0.9: dependencies: bluebird "^3.5.5" -bluebird@^3.1.1, bluebird@^3.5.0, bluebird@^3.5.5: +bluebird@^3.1.1, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -2328,33 +2333,15 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4 node-releases "^2.0.12" update-browserslist-db "^1.0.11" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= -buffer-equal@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= +buffer-equal@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90" + integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== buffer-from@^1.0.0: version "1.1.2" @@ -2369,31 +2356,30 @@ buffer@^5.1.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builder-util-runtime@9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz#2da7b34e78a64ad14ccd070d6eed4662d893bd60" - integrity sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw== +builder-util-runtime@9.2.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.2.1.tgz#3184dcdf7ed6c47afb8df733813224ced4f624fd" + integrity sha512-2rLv/uQD2x+dJ0J3xtsmI12AlRyk7p45TEbE/6o/fbb633e/S3pPgm+ct+JHsoY7r39dKHnGEFk/AASRFdnXmA== dependencies: debug "^4.3.4" sax "^1.2.4" -builder-util@23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-23.6.0.tgz#1880ec6da7da3fd6fa19b8bd71df7f39e8d17dd9" - integrity sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ== +builder-util@24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-24.5.0.tgz#8683c9a7a1c5c9f9a4c4d2789ecca0e47dddd3f9" + integrity sha512-STnBmZN/M5vGcv01u/K8l+H+kplTaq4PAIn3yeuufUKSpcdro0DhJWxPI81k5XcNfC//bjM3+n9nr8F9uV4uAQ== dependencies: "7zip-bin" "~5.1.1" "@types/debug" "^4.1.6" - "@types/fs-extra" "^9.0.11" app-builder-bin "4.0.0" bluebird-lst "^1.0.9" - builder-util-runtime "9.1.1" - chalk "^4.1.1" + builder-util-runtime "9.2.1" + chalk "^4.1.2" cross-spawn "^7.0.3" debug "^4.3.4" - fs-extra "^10.0.0" + fs-extra "^10.1.0" http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" is-ci "^3.0.0" js-yaml "^4.1.0" source-map-support "^0.5.19" @@ -2517,7 +2503,7 @@ chalk@^2.0.0, chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.1: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2641,11 +2627,6 @@ colorette@^2.0.10, colorette@^2.0.14: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= - combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -2653,13 +2634,6 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= - dependencies: - graceful-readlink ">= 1.0.0" - commander@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" @@ -2720,6 +2694,14 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +config-file-ts@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/config-file-ts/-/config-file-ts-0.2.4.tgz#6c0741fbe118a7cf786c65f139030f0448a2cc99" + integrity sha512-cKSW0BfrSaAUnxpgvpXPLaaW/umg4bqg4k3GO1JqlRfpx+d5W0GDXznCMkWotJQek5Mmz1MJVChQnz3IVaeMZQ== + dependencies: + glob "^7.1.6" + typescript "^4.0.2" + connect-history-api-fallback@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" @@ -2983,7 +2965,7 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -debug@2.6.9, debug@^2.6.8: +debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3105,15 +3087,13 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -dir-compare@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz#785c41dc5f645b34343a4eafc50b79bac7f11631" - integrity sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA== +dir-compare@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-3.3.0.tgz#2c749f973b5c4b5d087f11edaae730db31788416" + integrity sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg== dependencies: - buffer-equal "1.0.0" - colors "1.0.3" - commander "2.9.0" - minimatch "3.0.4" + buffer-equal "^1.0.0" + minimatch "^3.0.4" dir-glob@^3.0.1: version "3.0.1" @@ -3122,15 +3102,15 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dmg-builder@23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-23.6.0.tgz#d39d3871bce996f16c07d2cafe922d6ecbb2a948" - integrity sha512-jFZvY1JohyHarIAlTbfQOk+HnceGjjAdFjVn3n8xlDWKsYNqbO4muca6qXEZTfGXeQMG7TYim6CeS5XKSfSsGA== +dmg-builder@24.6.3: + version "24.6.3" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-24.6.3.tgz#508a9516e30b294d18ec466ce3f61b496aa40c0b" + integrity sha512-O7KNT7OKqtV54fMYUpdlyTOCP5DoPuRMLqMTgxxV2PO8Hj/so6zOl5o8GTs8pdDkeAhJzCFOUNB3BDhgXbUbJg== dependencies: - app-builder-lib "23.6.0" - builder-util "23.6.0" - builder-util-runtime "9.1.1" - fs-extra "^10.0.0" + app-builder-lib "24.6.3" + builder-util "24.5.0" + builder-util-runtime "9.2.1" + fs-extra "^10.1.0" iconv-lite "^0.6.2" js-yaml "^4.1.0" optionalDependencies: @@ -3279,30 +3259,29 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -ejs@^3.1.7: - version "3.1.8" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" - integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== +ejs@^3.1.8: + version "3.1.9" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== dependencies: jake "^10.8.5" -electron-builder@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-23.6.0.tgz#c79050cbdce90ed96c5feb67c34e9e0a21b5331b" - integrity sha512-y8D4zO+HXGCNxFBV/JlyhFnoQ0Y0K7/sFH+XwIbj47pqaW8S6PGYQbjoObolKBR1ddQFPt4rwp4CnwMJrW3HAw== +electron-builder@^24.6.3: + version "24.6.3" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-24.6.3.tgz#f4f69dd4fae9f80bc9c1ec74d6fe47565ec50cd5" + integrity sha512-O6PqhRXwfxCNTXI4BlhELSeYYO6/tqlxRuy+4+xKBokQvwDDjDgZMMoSgAmanVSCuzjE7MZldI9XYrKFk+EQDw== dependencies: - "@types/yargs" "^17.0.1" - app-builder-lib "23.6.0" - builder-util "23.6.0" - builder-util-runtime "9.1.1" - chalk "^4.1.1" - dmg-builder "23.6.0" - fs-extra "^10.0.0" + app-builder-lib "24.6.3" + builder-util "24.5.0" + builder-util-runtime "9.2.1" + chalk "^4.1.2" + dmg-builder "24.6.3" + fs-extra "^10.1.0" is-ci "^3.0.0" lazy-val "^1.0.5" - read-config-file "6.2.0" - simple-update-notifier "^1.0.7" - yargs "^17.5.1" + read-config-file "6.3.2" + simple-update-notifier "2.0.0" + yargs "^17.6.2" electron-context-menu@^3.6.1: version "3.6.1" @@ -3327,28 +3306,16 @@ electron-is-dev@^2.0.0: resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-2.0.0.tgz#833487a069b8dad21425c67a19847d9064ab19bd" integrity sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA== -electron-osx-sign@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz#9b69c191d471d9458ef5b1e4fdd52baa059f1bb8" - integrity sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg== - dependencies: - bluebird "^3.5.0" - compare-version "^0.1.2" - debug "^2.6.8" - isbinaryfile "^3.0.2" - minimist "^1.2.0" - plist "^3.0.1" - -electron-publish@23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-23.6.0.tgz#ac9b469e0b07752eb89357dd660e5fb10b3d1ce9" - integrity sha512-jPj3y+eIZQJF/+t5SLvsI5eS4mazCbNYqatv5JihbqOstIM13k0d1Z3vAWntvtt13Itl61SO6seicWdioOU5dg== +electron-publish@24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-24.5.0.tgz#492a4d7caa232e88ee3c18f5c3b4dc637e5e1b3a" + integrity sha512-zwo70suH15L15B4ZWNDoEg27HIYoPsGJUF7xevLJLSI7JUPC8l2yLBdLGwqueJ5XkDL7ucYyRZzxJVR8ElV9BA== dependencies: "@types/fs-extra" "^9.0.11" - builder-util "23.6.0" - builder-util-runtime "9.1.1" - chalk "^4.1.1" - fs-extra "^10.0.0" + builder-util "24.5.0" + builder-util-runtime "9.2.1" + chalk "^4.1.2" + fs-extra "^10.1.0" lazy-val "^1.0.5" mime "^2.5.2" @@ -4431,11 +4398,6 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= - graphemer@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" @@ -4683,7 +4645,7 @@ http2-wrapper@^1.0.0-beta.5.2: quick-lru "^5.1.1" resolve-alpn "^1.0.0" -https-proxy-agent@^5.0.0: +https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -5108,18 +5070,16 @@ isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isbinaryfile@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - -isbinaryfile@^4.0.10: +isbinaryfile@^4.0.8: version "4.0.10" resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== +isbinaryfile@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.0.tgz#034b7e54989dab8986598cbcea41f66663c65234" + integrity sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -5742,13 +5702,6 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -5763,6 +5716,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^5.1.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimatch@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" @@ -5791,6 +5751,11 @@ minipass@^3.0.0: dependencies: yallist "^4.0.0" +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + "minipass@^5.0.0 || ^6.0.2": version "6.0.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" @@ -6300,7 +6265,7 @@ pkg-dir@^7.0.0: dependencies: find-up "^6.3.0" -plist@^3.0.1, plist@^3.0.4: +plist@^3.0.4: version "3.0.5" resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.5.tgz#2cbeb52d10e3cdccccf0c11a63a85d830970a987" integrity sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA== @@ -6308,6 +6273,15 @@ plist@^3.0.1, plist@^3.0.4: base64-js "^1.5.1" xmlbuilder "^9.0.7" +plist@^3.0.5: + version "3.1.0" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" + integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== + dependencies: + "@xmldom/xmldom" "^0.8.8" + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + pluralize@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" @@ -6709,11 +6683,12 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -read-config-file@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz#71536072330bcd62ba814f91458b12add9fc7ade" - integrity sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg== +read-config-file@6.3.2: + version "6.3.2" + resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.3.2.tgz#556891aa6ffabced916ed57457cb192e61880411" + integrity sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q== dependencies: + config-file-ts "^0.2.4" dotenv "^9.0.2" dotenv-expand "^5.1.0" js-yaml "^4.1.0" @@ -7156,18 +7131,13 @@ semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: +semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" -semver@~7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -7294,12 +7264,12 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== -simple-update-notifier@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz#7edf75c5bdd04f88828d632f762b2bc32996a9cc" - integrity sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew== +simple-update-notifier@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb" + integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w== dependencies: - semver "~7.0.0" + semver "^7.5.3" slash@^3.0.0: version "3.0.0" @@ -7754,14 +7724,14 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar@^6.1.11: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== +tar@^6.1.12: + version "6.1.15" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" + integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^3.0.0" + minipass "^5.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" @@ -7952,6 +7922,11 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" +typescript@^4.0.2: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + uhyphen@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/uhyphen/-/uhyphen-0.1.0.tgz#3cc22afa790daa802b9f6789f3583108d5b4a08c" @@ -8528,7 +8503,7 @@ xml-name-validator@^4.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -xmlbuilder@>=11.0.1: +xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: version "15.1.1" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== @@ -8577,15 +8552,15 @@ yargs-parser@^20.2.9: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.5.1: - version "17.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" - integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== +yargs@^17.6.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" escalade "^3.1.1" @@ -8593,7 +8568,7 @@ yargs@^17.5.1: require-directory "^2.1.1" string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^21.0.0" + yargs-parser "^21.1.1" yauzl@^2.10.0: version "2.10.0" From 01930e46f6db0ef0b1872d7fffd8c546a3999ebc Mon Sep 17 00:00:00 2001 From: trostboot Date: Sat, 29 Jul 2023 12:24:55 +0200 Subject: [PATCH 005/102] Add basic support for PotPlayer, MPC-HC, MPC-BE (#3798) * Add basic support for mpc-hc/be, sort list * Add startOffset handling for mpc-hc family * Add basic PotPlayer support * Fix indentations * Undo entry sorting --- src/renderer/store/modules/utils.js | 5 ++- static/external-player-map.json | 54 +++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/renderer/store/modules/utils.js b/src/renderer/store/modules/utils.js index 9027c138d..014b475a2 100644 --- a/src/renderer/store/modules/utils.js +++ b/src/renderer/store/modules/utils.js @@ -529,7 +529,10 @@ const actions = { if (payload.watchProgress > 0 && payload.watchProgress < payload.videoLength - 10) { if (typeof cmdArgs.startOffset === 'string') { - if (cmdArgs.startOffset.endsWith('=')) { + if (cmdArgs.defaultExecutable.startsWith('mpc')) { + // For mpc-hc and mpc-be, which require startOffset to be in milliseconds + args.push(cmdArgs.startOffset, (Math.trunc(payload.watchProgress) * 1000)) + } else if (cmdArgs.startOffset.endsWith('=')) { // For players using `=` in arguments // e.g. vlc --start-time=xxxxx args.push(`${cmdArgs.startOffset}${payload.watchProgress}`) diff --git a/static/external-player-map.json b/static/external-player-map.json index 0885eb40b..a58f95495 100644 --- a/static/external-player-map.json +++ b/static/external-player-map.json @@ -76,5 +76,59 @@ "playlistShuffle": null, "playlistLoop": null } + }, + { + "name": "MPC-BE", + "nameTranslationKey": "Settings.External Player Settings.Players.MPC-BE.Name", + "value": "mpc-be", + "cmdArguments": { + "defaultExecutable": "mpc-be64", + "defaultCustomArguments": null, + "supportsYtdlProtocol": true, + "videoUrl": "", + "playlistUrl": "", + "startOffset": "/start", + "playbackRate": null, + "playlistIndex": null, + "playlistReverse": null, + "playlistShuffle": null, + "playlistLoop": null + } + }, + { + "name": "MPC-HC", + "nameTranslationKey": "Settings.External Player Settings.Players.MPC-HC.Name", + "value": "mpc-hc", + "cmdArguments": { + "defaultExecutable": "mpc-hc64", + "defaultCustomArguments": null, + "supportsYtdlProtocol": true, + "videoUrl": "", + "playlistUrl": "", + "startOffset": "/start", + "playbackRate": null, + "playlistIndex": null, + "playlistReverse": null, + "playlistShuffle": null, + "playlistLoop": null + } + }, + { + "name": "PotPlayer", + "nameTranslationKey": "Settings.External Player Settings.Players.PotPlayer.Name", + "value": "potplayer", + "cmdArguments": { + "defaultExecutable": "potplayermini64", + "defaultCustomArguments": null, + "supportsYtdlProtocol": false, + "videoUrl": "", + "playlistUrl": null, + "startOffset": "/seek=", + "playbackRate": null, + "playlistIndex": null, + "playlistReverse": null, + "playlistShuffle": null, + "playlistLoop": null + } } ] From 381a29a1658db7458c6e90bbd1ed591862d60f8f Mon Sep 17 00:00:00 2001 From: Kom nake Date: Sat, 29 Jul 2023 16:32:30 +0000 Subject: [PATCH 006/102] Translated using Weblate (Bengali) Currently translated at 10.3% (73 of 704 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bn/ --- static/locales/bn.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/static/locales/bn.yaml b/static/locales/bn.yaml index 760975720..167f8f1e5 100644 --- a/static/locales/bn.yaml +++ b/static/locales/bn.yaml @@ -60,12 +60,14 @@ Search Filters: Videos: 'ভিডিও' Channels: 'চ্যানেল' #& Playlists + Movies: চলচিত্র Duration: Duration: 'সময়কাল' All Durations: 'সকল দৈর্ঘ্যের' Short (< 4 minutes): 'ছোট (<৪ মিনিট)' Long (> 20 minutes): 'লম্বা (> ২০ মিনিট)' # On Search Page + Medium (4 - 20 minutes): মধ্যম (৪ - ২০ মিনিট) Search Results: 'অনুসন্ধান ফলাফল' Fetching results. Please wait: 'ফলাফল আনা হচ্ছে, একটু অপেক্ষা করো' Fetch more results: 'আরো ফলাফল আনো' @@ -75,6 +77,7 @@ Subscriptions: # On Subscriptions Page Subscriptions: 'সদস্যতা' Latest Subscriptions: 'শেষ সদস্যতা' + Error Channels: ত্রুটিপূর্ণ চ্যানেল Trending: Trending: 'চলছে' History: @@ -94,3 +97,18 @@ Channel: Video: {} Tooltips: {} Open New Window: নতুন জানালা খুলো +New Window: নতুন জানালা +Search Bar: + Clear Input: ইনপুট পরিষ্কার করো +Global: + Videos: ভিডিও + Shorts: খাটো + Live: সরাসরি +External link opening has been disabled in the general settings: সাধারণ পছন্দসমূহে + বহিঃসংযোগ খোলা নিষ্ক্রিয় রাখা হয়েছে +Are you sure you want to open this link?: তুমি কি এই সংযোগটি খোলার ব্যাপারে নিশ্চিত? +Preferences: পছন্দসমূহ +Age Restricted: + Type: + Channel: চ্যানেল + Video: ভিডিও From b04b0ff91e6302f7cf89788ade615b4b0eaa7c58 Mon Sep 17 00:00:00 2001 From: Gabriel Camargo Date: Sun, 30 Jul 2023 01:56:25 +0000 Subject: [PATCH 007/102] Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.2% (699 of 704 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt_BR/ --- static/locales/pt-BR.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/static/locales/pt-BR.yaml b/static/locales/pt-BR.yaml index ca5863d93..00baf3759 100644 --- a/static/locales/pt-BR.yaml +++ b/static/locales/pt-BR.yaml @@ -421,6 +421,10 @@ Settings: Hide Channel Playlists: Ocultar listas de reprodução de canais Hide Channel Community: Ocultar comunidade do canal Hide Channel Shorts: Ocultar Shorts do Canal + Hide Channel Podcasts: Ocultar podcasts do canal + Hide Channel Releases: Ocultar lançamentos do canal + Hide Subscriptions Videos: Ocultar vídeos de inscrições + Hide Subscriptions Shorts: Ocultar Shorts de Inscrições The app needs to restart for changes to take effect. Restart and apply change?: O aplicativo necessita reiniciar para as mudanças fazerem efeito. Reiniciar e aplicar mudança? @@ -602,6 +606,14 @@ Channel: Shorts: This channel does not currently have any shorts: Este canal não tem atualmente nenhum short + Podcasts: + Podcasts: Podcasts + This channel does not currently have any podcasts: Este canal não possui podcasts + no momento + Releases: + Releases: Lançamentos + This channel does not currently have any releases: Este canal não tem nenhum lançamento + no momento Video: Mark As Watched: 'Marcar como assistido' Remove From History: 'Remover do histórico' From 56e1f5a63bea76486bd4607101190efba52794fd Mon Sep 17 00:00:00 2001 From: Alexthegib Date: Sun, 30 Jul 2023 09:44:29 +0000 Subject: [PATCH 008/102] Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (704 of 704 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt_PT/ --- static/locales/pt-PT.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/static/locales/pt-PT.yaml b/static/locales/pt-PT.yaml index ba18605a2..029ef1275 100644 --- a/static/locales/pt-PT.yaml +++ b/static/locales/pt-PT.yaml @@ -97,6 +97,10 @@ Subscriptions: Disabled Automatic Fetching: Desativou a atualização automática de subscrições. Atualize as subscrições para as ver aqui. Empty Channels: Os canais subscritos não têm, atualmente, quaisquer vídeos. + Subscriptions Tabs: Separadores de subscrições + All Subscription Tabs Hidden: Todos os separadores de subscrição estão ocultos. + Para ver o conteúdo aqui, desoculte alguns separadores na secção "{subsecção}" + em "{settingsSection}". Trending: Trending: Tendências Trending Tabs: Separador de tendências @@ -348,8 +352,12 @@ Settings: Channel Page: Página do canal Watch Page: Ver página General: Geral + Subscriptions Page: Página de subscrições Hide Channel Releases: Ocultar as libertações do canal Hide Channel Podcasts: Ocultar podcasts do canal + Hide Subscriptions Videos: Ocultar subscrições Vídeos + Hide Subscriptions Shorts: Ocultar subscrições Shorts + Hide Subscriptions Live: Ocultar subscrições em direto Data Settings: Data Settings: Definições de dados Select Import Type: Escolher tipo de importação @@ -890,6 +898,8 @@ Tooltips: os vídeos, listas de reprodução e o próprio canal de aparecerem na pesquisa, tendências, mais populares e recomendados. O nome do canal introduzido tem de corresponder na totalidade e é sensível a maiúsculas e minúsculas. + Hide Subscriptions Live: Esta definição é substituída pela definição de toda a + aplicação "{appWideSetting}", na secção "{subsection}" da "{settingsSection}" SponsorBlock Settings: UseDeArrowTitles: Substituir títulos de vídeo por títulos enviados pelo utilizador a partir do DeArrow. From b36d1654adc905f2d25c6b6bfb9d0b9d540ce3d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 07:12:36 -0400 Subject: [PATCH 009/102] Bump youtubei.js from 5.6.0 to 5.8.0 (#3832) Bumps [youtubei.js](https://github.com/LuanRT/YouTube.js) from 5.6.0 to 5.8.0. - [Release notes](https://github.com/LuanRT/YouTube.js/releases) - [Changelog](https://github.com/LuanRT/YouTube.js/blob/main/CHANGELOG.md) - [Commits](https://github.com/LuanRT/YouTube.js/compare/v5.6.0...v5.8.0) --- updated-dependencies: - dependency-name: youtubei.js dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 608ed371f..81459737d 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "vue-router": "^3.6.5", "vue-tiny-slider": "^0.1.39", "vuex": "^3.6.2", - "youtubei.js": "^5.6.0" + "youtubei.js": "^5.8.0" }, "devDependencies": { "@babel/core": "^7.22.9", diff --git a/yarn.lock b/yarn.lock index 4d83c4c2f..5ce1c45de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8588,10 +8588,10 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -youtubei.js@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/youtubei.js/-/youtubei.js-5.6.0.tgz#0dab5ecec3722ffbfdd3a53be4ee34e605988116" - integrity sha512-7kvqUJcMzG2khfX7m6qyje1SF71yAZ9RIVIwVcQ+GEJ34qwFhTm+tCp2cOdxjD5x4NMLVwYOtmvIgMNXoPlVlQ== +youtubei.js@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/youtubei.js/-/youtubei.js-5.8.0.tgz#4c6dc898b6a2c6cbf91f95932be18e981e394e2d" + integrity sha512-xMQxbhy0TMpLvJnGbLnqAE9RhiLCwBuVrsTyVd0ZFX6o98fmJmddcE1qeRIagNGNr16BmofqtsbGXIfpZprFhA== dependencies: jintr "^1.1.0" linkedom "^0.14.12" From 7c764c05ac141707f2f0155ec468bbe831fac776 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 07:14:45 -0400 Subject: [PATCH 010/102] Bump eslint-plugin-vue from 9.15.1 to 9.16.1 (#3831) Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 9.15.1 to 9.16.1. - [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases) - [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v9.15.1...v9.16.1) --- updated-dependencies: - dependency-name: eslint-plugin-vue dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 81459737d..b38daaee0 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-unicorn": "^48.0.0", - "eslint-plugin-vue": "^9.15.1", + "eslint-plugin-vue": "^9.16.1", "eslint-plugin-vuejs-accessibility": "^2.1.0", "eslint-plugin-yml": "^1.8.0", "html-webpack-plugin": "^5.5.3", diff --git a/yarn.lock b/yarn.lock index 5ce1c45de..eb005aa5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1153,7 +1153,7 @@ minimatch "^3.0.4" plist "^3.0.4" -"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.3.0", "@eslint-community/eslint-utils@^4.4.0": +"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== @@ -3683,17 +3683,17 @@ eslint-plugin-unicorn@^48.0.0: semver "^7.5.4" strip-indent "^3.0.0" -eslint-plugin-vue@^9.15.1: - version "9.15.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.15.1.tgz#3c09e0edab444b5d4d9239a12a645a0e2e2ea5be" - integrity sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A== +eslint-plugin-vue@^9.16.1: + version "9.16.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.16.1.tgz#3508d9279d797b40889db76da2fd26524e9144e6" + integrity sha512-2FtnTqazA6aYONfDuOZTk0QzwhAwi7Z4+uJ7+GHeGxcKapjqWlDsRWDenvyG/utyOfAS5bVRmAG3cEWiYEz2bA== dependencies: - "@eslint-community/eslint-utils" "^4.3.0" + "@eslint-community/eslint-utils" "^4.4.0" natural-compare "^1.4.0" - nth-check "^2.0.1" - postcss-selector-parser "^6.0.9" - semver "^7.3.5" - vue-eslint-parser "^9.3.0" + nth-check "^2.1.1" + postcss-selector-parser "^6.0.13" + semver "^7.5.4" + vue-eslint-parser "^9.3.1" xml-name-validator "^4.0.0" eslint-plugin-vuejs-accessibility@^2.1.0: @@ -5927,10 +5927,10 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== +nth-check@^2.0.1, nth-check@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" @@ -6516,7 +6516,7 @@ postcss-scss@^4.0.6: resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.6.tgz#5d62a574b950a6ae12f2aa89b60d63d9e4432bfd" integrity sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ== -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== @@ -8182,7 +8182,7 @@ vue-devtools@^5.1.4: resolved "https://registry.yarnpkg.com/vue-devtools/-/vue-devtools-5.1.4.tgz#265a7458ade2affb291739176964256b597fa302" integrity sha512-EBAEXvAHUinsPzoSiElps0JgtLXUnJXKIJbP6nfdz/R63VdKBMfJ34/rFip+4iT7iMbVS5lA4W6N1jq4Hj4LCg== -vue-eslint-parser@^9.0.1, vue-eslint-parser@^9.3.0, vue-eslint-parser@^9.3.1: +vue-eslint-parser@^9.0.1, vue-eslint-parser@^9.3.1: version "9.3.1" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz#429955e041ae5371df5f9e37ebc29ba046496182" integrity sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g== From 87d3370c0640d5e4ed6f411add5621fb67658600 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 07:17:08 -0400 Subject: [PATCH 011/102] Bump eslint-config-prettier from 8.8.0 to 8.9.0 (#3826) Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.8.0 to 8.9.0. - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.8.0...v8.9.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b38daaee0..20a2e21ec 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "electron": "^22.3.18", "electron-builder": "^24.6.3", "eslint": "^8.45.0", - "eslint-config-prettier": "^8.8.0", + "eslint-config-prettier": "^8.9.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsonc": "^2.9.0", diff --git a/yarn.lock b/yarn.lock index eb005aa5a..16b57d2fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3572,10 +3572,10 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== +eslint-config-prettier@^8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz#094b6254b2804b0544f7cee535f802b6d29ee10b" + integrity sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA== eslint-config-standard@^17.1.0: version "17.1.0" From 2a7e9c47f4b956df17e1b03ced274313c1097b58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 07:19:18 -0400 Subject: [PATCH 012/102] Bump lefthook from 1.4.6 to 1.4.7 (#3830) Bumps [lefthook](https://github.com/evilmartians/lefthook) from 1.4.6 to 1.4.7. - [Release notes](https://github.com/evilmartians/lefthook/releases) - [Changelog](https://github.com/evilmartians/lefthook/blob/master/CHANGELOG.md) - [Commits](https://github.com/evilmartians/lefthook/compare/v1.4.6...v1.4.7) --- updated-dependencies: - dependency-name: lefthook dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 88 ++++++++++++++++++++++++++-------------------------- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/package.json b/package.json index 20a2e21ec..d46925059 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "html-webpack-plugin": "^5.5.3", "js-yaml": "^4.1.0", "json-minimizer-webpack-plugin": "^4.0.0", - "lefthook": "^1.4.6", + "lefthook": "^1.4.7", "mini-css-extract-plugin": "^2.7.6", "npm-run-all": "^4.1.5", "postcss": "^8.4.26", diff --git a/yarn.lock b/yarn.lock index 16b57d2fb..336e102cb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5314,59 +5314,59 @@ lazy-val@^1.0.4, lazy-val@^1.0.5: resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== -lefthook-darwin-arm64@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.4.6.tgz#a3c8354d4439b74421c3831a821ec5227c6dc9a2" - integrity sha512-f5ltgViAdXf9QOiDDdXkH7///Agmz8gxS13GDoymqg6rg8XM4cXhGbqmNGjTGRV3J10xiJaeyYTFIkBpjLspTw== +lefthook-darwin-arm64@1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.4.7.tgz#26e5a78d73cb761a48914535d3f13908cad6bf02" + integrity sha512-26zPoDw9gUXCroqf8OIb3qHjIq7XWrRQKdwFz2RgCfOphY22XNEucq0W+5on5s4LeqI9GieKeYQ+R0UBTjQ5LA== -lefthook-darwin-x64@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/lefthook-darwin-x64/-/lefthook-darwin-x64-1.4.6.tgz#61d6baf8b6b08c5345471a7ec994054417301081" - integrity sha512-/SRG2vs4L6Fc4xnbpiDl59rJvqJPNjqPwfmyQI1BQ/GiWP6hkZWtBA9OqkBanqCFndUumq6+Ik7EBjNT2OxB/w== +lefthook-darwin-x64@1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/lefthook-darwin-x64/-/lefthook-darwin-x64-1.4.7.tgz#6afb0ff683127b9e24d01a32c6b249854b1ac0dd" + integrity sha512-LSPiHTGEYqcABYuKqK+5+4SW6tmDXRUhSmZqcd7VSFsGa/9HU7imzqcbreiVPEO7ahKUDFYOB0riPV4g/Qys7w== -lefthook-freebsd-arm64@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.4.6.tgz#ea2a65d966e316222db63e0f3e36017066225788" - integrity sha512-n9qLbVw1SSOeL0b7hsqqji1BMPm3sNBC5rtJfUU3lyHWNmzZXnaVozgli7GdeGqq5Q3RdZSZqHiNQUF2ly/qYw== +lefthook-freebsd-arm64@1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.4.7.tgz#0bd3f4d61339aee7155c7e9631b8310b56e2b89d" + integrity sha512-b7LJdWwnrkh3uuWKqNfrlvau8/9N78IoxPz1z/xo468WcwroCYORRGpM+lKvgmKjrVFOJZQ6lFIYvVe8212wZg== -lefthook-freebsd-x64@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.4.6.tgz#d54a2a29623a3b66bc3aa3842d3ea9a3ae4b3400" - integrity sha512-GI4NvUbzVI1covKvtIOvFEP88W1uOQivFu2NfEwPq0AWYJhrCY22NnjhDWvSRZ4lk0QGevctxYwjAn+hevrgKg== +lefthook-freebsd-x64@1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.4.7.tgz#5780bb7c2397ce35387677d2aafb80ed4a13cf90" + integrity sha512-+sOYtxlyB9iwVHZLyoD0P7qg/8Guqjk5wmslXQrM89ilEQmDL+gnPRaqfEZrByjNEi/ltPTZ0YlOXeK/qxM0mg== -lefthook-linux-arm64@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/lefthook-linux-arm64/-/lefthook-linux-arm64-1.4.6.tgz#aa8573553c3ee0fe597d5683e82d518c8d54c762" - integrity sha512-psoakCaOoD2M7YvRzThLdO4cMZOcaMHrgSwiSC8AA2m5jRmIp8W7wKUCugAU5+BEusNA986ZC5xXmcyV2+34/A== +lefthook-linux-arm64@1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/lefthook-linux-arm64/-/lefthook-linux-arm64-1.4.7.tgz#e798759e64a7097377894876a36375b10ba4bc3a" + integrity sha512-Gli+cAqnBX0bCwv0mON8PM7SY/aIaM4H+nbqad5HlDHZ3ovoQBPxCmEvMxug7/Ssa3v3zdZ1cR2FkRrgzA1w+w== -lefthook-linux-x64@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/lefthook-linux-x64/-/lefthook-linux-x64-1.4.6.tgz#f6ecfba6477d48c900194dbc26ed430907a3a9ea" - integrity sha512-WwIDWuandedgd9yRCfDgAp6fq7EnxWglOgGA4IuVdKEFUHUxKJ5poNrbW4Q63AvQ63BQL2k9OLTapjUQMBC+Fw== +lefthook-linux-x64@1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/lefthook-linux-x64/-/lefthook-linux-x64-1.4.7.tgz#34bbc4440b253ac58a350b46f0367b4dcb054bbb" + integrity sha512-XVN686RdGB8UB/zguDeY+Nx6ikN1I9g3QBGBOGPE3aj9waB86+FotPhat/c9wfb9T0gkhKnxMiQ9kO8nvDuQxw== -lefthook-windows-arm64@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/lefthook-windows-arm64/-/lefthook-windows-arm64-1.4.6.tgz#586bb92835291d373626ccdcd1f7c9a79d414dae" - integrity sha512-LVNRKgGdoHwEZgvLevlep3YFFW6mfRyroVBq59KnHUQS/mc8UT0AqWIkqSxipfDz//3Aai7c6TvGHW+EchRMxg== +lefthook-windows-arm64@1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/lefthook-windows-arm64/-/lefthook-windows-arm64-1.4.7.tgz#a6232062f7d616ea0c74c95b759d86466fe972c9" + integrity sha512-CxZwmsIV9h1N2NPZ08a2V9jXzvaDMPwmyByDJZNOkWW1Z3Dx/Q76VK4X7aS3HhyLpudzwYEYScWhQ+SIOmx6IA== -lefthook-windows-x64@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/lefthook-windows-x64/-/lefthook-windows-x64-1.4.6.tgz#799b4e114d78e11593abb070e69137ab698647d5" - integrity sha512-jvlNLHN4iPsixmWbWRdFxdQ+MbiM8vAyJCz1MA6+zQ8kEn1mpDdH/CCjrjyj0ypKHME5VXnrlx14dq7XtqQjwg== +lefthook-windows-x64@1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/lefthook-windows-x64/-/lefthook-windows-x64-1.4.7.tgz#369dc2404f32d098c44ecd944e144f4aa86c2e0a" + integrity sha512-Hu/GoPrJviM9gbys11ZJEIgTXyQ4btifUn6WBFW4M7NpA8rxx1bbLfXdDlcl6W28BGDb1aFIXVdnJIupK01hUw== -lefthook@^1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/lefthook/-/lefthook-1.4.6.tgz#0b11eeba682165a959b973b15c04f7dc9b29fce5" - integrity sha512-Zb1Dp5IUzK4fblKKVdlsLEwaCj/Ug7i03fCVmULbYjpKANJyeTrYxONrc5xQA+nouFaR+SicscxAqEmgHCkHog== +lefthook@^1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/lefthook/-/lefthook-1.4.7.tgz#9cf46aa7dff3fab00e571af6019b44e51a4d5279" + integrity sha512-0fCJ1ekbGG+Pi+xK9bnBF4B5eXHf/FRSiuLRP0ofYYs8LO7p1f7qbYQTCj3qjGBs6mvv/wq4UIR8e+Gi+L06TA== optionalDependencies: - lefthook-darwin-arm64 "1.4.6" - lefthook-darwin-x64 "1.4.6" - lefthook-freebsd-arm64 "1.4.6" - lefthook-freebsd-x64 "1.4.6" - lefthook-linux-arm64 "1.4.6" - lefthook-linux-x64 "1.4.6" - lefthook-windows-arm64 "1.4.6" - lefthook-windows-x64 "1.4.6" + lefthook-darwin-arm64 "1.4.7" + lefthook-darwin-x64 "1.4.7" + lefthook-freebsd-arm64 "1.4.7" + lefthook-freebsd-x64 "1.4.7" + lefthook-linux-arm64 "1.4.7" + lefthook-linux-x64 "1.4.7" + lefthook-windows-arm64 "1.4.7" + lefthook-windows-x64 "1.4.7" levn@^0.4.1: version "0.4.1" From 97430668e16a1e1f6e4fb0c9894f482f2b8f2346 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 08:25:32 -0400 Subject: [PATCH 013/102] Bump eslint-plugin-unicorn from 48.0.0 to 48.0.1 (#3828) Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 48.0.0 to 48.0.1. - [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases) - [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v48.0.0...v48.0.1) --- updated-dependencies: - dependency-name: eslint-plugin-unicorn dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d46925059..0e95818c0 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "eslint-plugin-n": "^16.0.1", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-unicorn": "^48.0.0", + "eslint-plugin-unicorn": "^48.0.1", "eslint-plugin-vue": "^9.16.1", "eslint-plugin-vuejs-accessibility": "^2.1.0", "eslint-plugin-yml": "^1.8.0", diff --git a/yarn.lock b/yarn.lock index 336e102cb..b98fbe4cb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3662,10 +3662,10 @@ eslint-plugin-promise@^6.1.1: resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== -eslint-plugin-unicorn@^48.0.0: - version "48.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.0.tgz#074214c0c216e6d97298a98db394b430b6c5a7de" - integrity sha512-8fk/v3p1ro34JSVDBEmtOq6EEQRpMR0iTir79q69KnXFZ6DJyPkT3RAi+ZoTqhQMdDSpGh8BGR68ne1sP5cnAA== +eslint-plugin-unicorn@^48.0.1: + version "48.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz#a6573bc1687ae8db7121fdd8f92394b6549a6959" + integrity sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw== dependencies: "@babel/helper-validator-identifier" "^7.22.5" "@eslint-community/eslint-utils" "^4.4.0" From b8688fd24f005ff287abaf78f8d56bec48216ebb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 08:25:57 -0400 Subject: [PATCH 014/102] Bump eslint from 8.45.0 to 8.46.0 (#3829) Bumps [eslint](https://github.com/eslint/eslint) from 8.45.0 to 8.46.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.45.0...v8.46.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 79 ++++++++++++++++++++++++---------------------------- 2 files changed, 37 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index 0e95818c0..e783cae52 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "css-minimizer-webpack-plugin": "^5.0.1", "electron": "^22.3.18", "electron-builder": "^24.6.3", - "eslint": "^8.45.0", + "eslint": "^8.46.0", "eslint-config-prettier": "^8.9.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "^2.27.5", diff --git a/yarn.lock b/yarn.lock index b98fbe4cb..cd281a782 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1160,15 +1160,15 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== +"@eslint-community/regexpp@^4.5.0", "@eslint-community/regexpp@^4.6.1": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" + integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" - integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== +"@eslint/eslintrc@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.1.tgz#18d635e24ad35f7276e8a49d135c7d3ca6a46f93" + integrity sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1180,10 +1180,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.44.0": - version "8.44.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" - integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== +"@eslint/js@^8.46.0": + version "8.46.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.46.0.tgz#3f7802972e8b6fe3f88ed1aabc74ec596c456db6" + integrity sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA== "@fortawesome/fontawesome-common-types@6.4.0": version "6.4.0" @@ -3723,10 +3723,10 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1, eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== +eslint-scope@^7.1.1, eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -3736,32 +3736,32 @@ eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" + integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== -eslint@^8.45.0: - version "8.45.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" - integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== +eslint@^8.46.0: + version "8.46.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" + integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.1.0" - "@eslint/js" "8.44.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.1" + "@eslint/js" "^8.46.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.6.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.2" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -3784,10 +3784,10 @@ eslint@^8.45.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.0.0, espree@^9.3.1, espree@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" - integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== +espree@^9.0.0, espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" @@ -5709,14 +5709,7 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^5.1.1: +minimatch@^5.0.1, minimatch@^5.1.1: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== From 8f6c41ac9e168b14692f3aa2d805a0e0e6f8f00c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 08:26:20 -0400 Subject: [PATCH 015/102] Bump eslint-plugin-import from 2.27.5 to 2.28.0 (#3827) Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.27.5 to 2.28.0. - [Release notes](https://github.com/import-js/eslint-plugin-import/releases) - [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md) - [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.27.5...v2.28.0) --- updated-dependencies: - dependency-name: eslint-plugin-import dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 260 +++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 235 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index e783cae52..02e6b3982 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "eslint": "^8.46.0", "eslint-config-prettier": "^8.9.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-import": "^2.27.5", + "eslint-plugin-import": "^2.28.0", "eslint-plugin-jsonc": "^2.9.0", "eslint-plugin-n": "^16.0.1", "eslint-plugin-prettier": "^4.2.1", diff --git a/yarn.lock b/yarn.lock index cd281a782..2aef10e27 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2072,6 +2072,14 @@ aria-query@>=5.0.0: dependencies: deep-equal "^2.0.5" +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -2098,6 +2106,17 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array.prototype.findlastindex@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz#bc229aef98f6bd0533a2bc61ff95209875526c9b" + integrity sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" @@ -2118,6 +2137,18 @@ array.prototype.flatmap@^1.3.1: es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" +arraybuffer.prototype.slice@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" + integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -3062,6 +3093,14 @@ define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -3498,6 +3537,51 @@ es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" +es-abstract@^1.21.2: + version "1.22.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" + integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== + dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.1" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.1" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + safe-array-concat "^1.0.0" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.10" + es-get-iterator@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" @@ -3591,10 +3675,10 @@ eslint-import-resolver-node@^0.3.7: is-core-module "^2.11.0" resolve "^1.22.1" -eslint-module-utils@^2.7.4: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== +eslint-module-utils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" @@ -3606,26 +3690,29 @@ eslint-plugin-es-x@^7.1.0: "@eslint-community/eslint-utils" "^4.1.2" "@eslint-community/regexpp" "^4.5.0" -eslint-plugin-import@^2.27.5: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== +eslint-plugin-import@^2.28.0: + version "2.28.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005" + integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q== dependencies: array-includes "^3.1.6" + array.prototype.findlastindex "^1.2.2" array.prototype.flat "^1.3.1" array.prototype.flatmap "^1.3.1" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" + eslint-module-utils "^2.8.0" has "^1.0.3" - is-core-module "^2.11.0" + is-core-module "^2.12.1" is-glob "^4.0.3" minimatch "^3.1.2" + object.fromentries "^2.0.6" + object.groupby "^1.0.0" object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" + resolve "^1.22.3" + semver "^6.3.1" + tsconfig-paths "^3.14.2" eslint-plugin-jsonc@^2.9.0: version "2.9.0" @@ -4184,7 +4271,7 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functions-have-names@^1.2.2: +functions-have-names@^1.2.2, functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -4217,6 +4304,16 @@ get-intrinsic@^1.1.3: has "^1.0.3" has-symbols "^1.0.3" +get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -4787,6 +4884,15 @@ internal-slot@^1.0.4: has "^1.0.3" side-channel "^1.0.4" +internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + interpret@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" @@ -4819,6 +4925,15 @@ is-array-buffer@^3.0.1: get-intrinsic "^1.1.3" is-typed-array "^1.1.10" +is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -4870,7 +4985,7 @@ is-ci@^3.0.0: dependencies: ci-info "^3.2.0" -is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.5.0: +is-core-module@^2.11.0, is-core-module@^2.12.0, is-core-module@^2.12.1, is-core-module@^2.5.0: version "2.12.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== @@ -5231,7 +5346,7 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^1.0.1: +json5@^1.0.1, json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== @@ -5942,6 +6057,11 @@ object-inspect@^1.12.2: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== +object-inspect@^1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + object-is@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" @@ -5975,6 +6095,25 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.groupby@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.0.tgz#cb29259cf90f37e7bac6437686c1ea8c916d12a9" + integrity sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + get-intrinsic "^1.2.1" + object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" @@ -6824,6 +6963,15 @@ regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" +regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + regexpu-core@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" @@ -6953,12 +7101,12 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== +resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.22.3: + version "1.22.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.3.tgz#4b4055349ffb962600972da1fdc33c46a4eb3283" + integrity sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw== dependencies: - is-core-module "^2.11.0" + is-core-module "^2.12.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -7019,6 +7167,16 @@ rust-result@^1.0.0: dependencies: individual "^2.0.0" +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -7454,6 +7612,15 @@ string.prototype.padend@^3.0.0: define-properties "^1.1.3" es-abstract "^1.19.1" +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + string.prototype.trimend@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" @@ -7839,13 +8006,13 @@ truncate-utf8-bytes@^1.0.0: dependencies: utf8-byte-length "^1.0.1" -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== +tsconfig-paths@^3.14.2: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" - json5 "^1.0.1" + json5 "^1.0.2" minimist "^1.2.6" strip-bom "^3.0.0" @@ -7906,6 +8073,36 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" @@ -8412,6 +8609,17 @@ which-collection@^1.0.1: is-weakmap "^2.0.1" is-weakset "^2.0.1" +which-typed-array@^1.1.10: + version "1.1.11" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + which-typed-array@^1.1.2: version "1.1.8" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" From 0b5107f172350d8e951712e55415a201512515d4 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Mon, 31 Jul 2023 14:24:47 +0000 Subject: [PATCH 016/102] Translated using Weblate (Croatian) Currently translated at 100.0% (704 of 704 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hr/ --- static/locales/hr.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/static/locales/hr.yaml b/static/locales/hr.yaml index 406858bbe..ea49fe15f 100644 --- a/static/locales/hr.yaml +++ b/static/locales/hr.yaml @@ -91,6 +91,9 @@ Subscriptions: Empty Channels: Tvoji pretplaćeni kanali trenutačno nemaju videa. Disabled Automatic Fetching: Automatsko dohvaćanje pretplata je deaktivirano. Aktualiziraj pretplate da bi se ovdje prikazale. + Subscriptions Tabs: Kartica pretplata + All Subscription Tabs Hidden: Sve kartice pretplate su skrivene. Za prikaz sadržaja + na ovom mjestu, sakrij neke kartice u odjeljku „{subsection}” u „{settingsSection}”. Trending: Trending: 'U trendu' Trending Tabs: Kartice „U trendu” @@ -415,8 +418,12 @@ Settings: General: Opće Side Bar: Bočna traka Channel Page: Stranica kanala + Subscriptions Page: Stranica pretplata Hide Channel Podcasts: Sakrij kanal podcastova Hide Channel Releases: Sakrij kanal izdanja + Hide Subscriptions Shorts: Sakrij kratka videa pretplate + Hide Subscriptions Live: Sakrij videa uživo pretplate + Hide Subscriptions Videos: Sakrij videa pretplate The app needs to restart for changes to take effect. Restart and apply change?: Promjene će se primijeniti nakon ponovnog pokeretanja programa. Ponovo pokrenuti program? Proxy Settings: @@ -967,6 +974,8 @@ Tooltips: Hide Channels: Upiši ime kanala ili ID kanala za skrivanje svih videa, zbirki kao i samog kanala u pretrazi, trendovima popularnim i preporučenim. Upisano ime kanala se mora potpuno poklapati i razlikuje velika i mala slova. + Hide Subscriptions Live: Ovu postavku nadjačava aplikacijska postavka „{appWideSetting}”, + u odjeljku „{subsection}” u „{settingsSection}” SponsorBlock Settings: UseDeArrowTitles: Zamijeni naslove videa koje su poslali korisnici s DeArrow naslovima. Playing Next Video Interval: Trenutna reprodukcija sljedećeg videa. Pritisni za prekid. From d2075718b4bafa4d5975a6676d2105cb195a6af1 Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Tue, 1 Aug 2023 09:09:15 +0800 Subject: [PATCH 017/102] Fix outdated subscription cache clearing code when "Remove All Subscriptions / Profiles" performed (#3817) * ! Fix outdated subscription cache clearing code when "Remove All Subscriptions / Profiles" performed * * Use one action to clear cache instead of three * $ Use early return --- .../privacy-settings/privacy-settings.js | 34 +++++++++---------- src/renderer/store/modules/subscriptions.js | 24 +++++-------- 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/src/renderer/components/privacy-settings/privacy-settings.js b/src/renderer/components/privacy-settings/privacy-settings.js index 03d65a5f8..0b541e0a5 100644 --- a/src/renderer/components/privacy-settings/privacy-settings.js +++ b/src/renderer/components/privacy-settings/privacy-settings.js @@ -94,24 +94,24 @@ export default defineComponent({ this.updateActiveProfile(MAIN_PROFILE_ID) - if (option === 'yes') { - this.profileList.forEach((profile) => { - if (profile._id === MAIN_PROFILE_ID) { - const newProfile = { - _id: MAIN_PROFILE_ID, - name: profile.name, - bgColor: profile.bgColor, - textColor: profile.textColor, - subscriptions: [] - } - this.updateProfile(newProfile) - } else { - this.removeProfile(profile._id) - } - }) + if (option !== 'yes') { return } - this.clearSubscriptionsCache() - } + this.profileList.forEach((profile) => { + if (profile._id === MAIN_PROFILE_ID) { + const newProfile = { + _id: MAIN_PROFILE_ID, + name: profile.name, + bgColor: profile.bgColor, + textColor: profile.textColor, + subscriptions: [] + } + this.updateProfile(newProfile) + } else { + this.removeProfile(profile._id) + } + }) + + this.clearSubscriptionsCache() }, ...mapActions([ diff --git a/src/renderer/store/modules/subscriptions.js b/src/renderer/store/modules/subscriptions.js index ba86c3b54..e9b0c4e1e 100644 --- a/src/renderer/store/modules/subscriptions.js +++ b/src/renderer/store/modules/subscriptions.js @@ -35,33 +35,27 @@ const getters = { getLiveCacheByChannel: (state) => (channelId) => { return state.liveCache[channelId] - } + }, } const actions = { - clearSubscriptionVideosCache: ({ commit }) => { - commit('clearVideoCache') - }, - updateSubscriptionVideosCacheByChannel: ({ commit }, payload) => { commit('updateVideoCacheByChannel', payload) }, - clearSubscriptionShortsCache: ({ commit }) => { - commit('clearShortsCache') - }, - updateSubscriptionShortsCacheByChannel: ({ commit }, payload) => { commit('updateShortsCacheByChannel', payload) }, - clearSubscriptionLiveCache: ({ commit }) => { - commit('clearLiveCache') - }, - updateSubscriptionLiveCacheByChannel: ({ commit }, payload) => { commit('updateLiveCacheByChannel', payload) - } + }, + + clearSubscriptionsCache: ({ commit }, payload) => { + commit('clearVideoCache', payload) + commit('clearShortsCache', payload) + commit('clearLiveCache', payload) + }, } const mutations = { @@ -91,7 +85,7 @@ const mutations = { }, clearLiveCache(state) { state.liveCache = {} - } + }, } export default { From 2296e3a58d1895556bcec52b2162861140f295f8 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Tue, 1 Aug 2023 00:47:52 -0700 Subject: [PATCH 018/102] Fix: importing subscriptions with terminated channels (#3816) * Fix: Cannot read properties of undefined (reading 'author') * fix importing some newpipe subscriptions only check url, not service_id --- src/renderer/components/data-settings/data-settings.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/renderer/components/data-settings/data-settings.js b/src/renderer/components/data-settings/data-settings.js index 877ac05ce..bb2050fc8 100644 --- a/src/renderer/components/data-settings/data-settings.js +++ b/src/renderer/components/data-settings/data-settings.js @@ -421,7 +421,7 @@ export default defineComponent({ } const newPipeSubscriptions = newPipeData.subscriptions.filter((channel, index) => { - return channel.service_id === 0 + return new URL(channel.url).hostname === 'www.youtube.com' }) const subscriptions = [] @@ -1035,10 +1035,9 @@ export default defineComponent({ invidiousAPICall(subscriptionsPayload).then((response) => { resolve(response) }).catch((err) => { - console.error(err) const errorMessage = this.$t('Invidious API Error (Click to copy)') - showToast(`${errorMessage}: ${err.responseJSON.error}`, 10000, () => { - copyToClipboard(err.responseJSON.error) + showToast(`${errorMessage}: ${err}`, 10000, () => { + copyToClipboard(err) }) if (process.env.IS_ELECTRON && this.backendFallback && this.backendPreference === 'invidious') { @@ -1056,7 +1055,7 @@ export default defineComponent({ const channel = await getLocalChannel(channelId) if (channel.alert) { - return undefined + return [] } return { From b2d95ebd7badf05edf1c49a14358c8c223864d53 Mon Sep 17 00:00:00 2001 From: Kingproone Date: Tue, 1 Aug 2023 18:01:34 +0000 Subject: [PATCH 019/102] Translated using Weblate (Hungarian) Currently translated at 100.0% (704 of 704 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hu/ --- static/locales/hu.yaml | 45 +++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/static/locales/hu.yaml b/static/locales/hu.yaml index 93183cf5a..6a9808c21 100644 --- a/static/locales/hu.yaml +++ b/static/locales/hu.yaml @@ -1,6 +1,6 @@ # Put the name of your locale in the same language Locale Name: 'magyar' -FreeTube: 'SzabadCső' +FreeTube: 'FreeTube' # Currently on Subscriptions, Playlists, and History 'This part of the app is not ready yet. Come back later when progress has been made.': >- Az alkalmazás ezen része még nem áll készen. Térjen vissza később amikor előrelépés @@ -328,8 +328,8 @@ Settings: Import YouTube: 'YouTube importálása' Import NewPipe: 'NewPipe importálása' Export Subscriptions: 'Feliratkozások exportálása' - Export FreeTube: 'SzabadCső exportálása' - Export YouTube: 'SzabadCső exportálása' + Export FreeTube: 'FreeTube exportálása' + Export YouTube: 'YouTube exportálása' Export NewPipe: 'NewPipe exportálása' Import History: 'Előzmények importálása' Export History: 'Előzmények exportálása' @@ -432,7 +432,7 @@ Settings: Hide Channel Releases: Csatornakiadások elrejtése Hide Subscriptions Shorts: Feliratkozások rövidfilmek elrejtése Hide Subscriptions Videos: Feliratkozási videók elrejtése - Hide Subscriptions Live: Feliratkozások élők elrejtése + Hide Subscriptions Live: Élő feliratkozások elrejtése The app needs to restart for changes to take effect. Restart and apply change?: Az alkalmazásnak újra kell indulnia, hogy a változtatások életbe lépjenek. Indítsa újra és alkalmazza a módosítást? @@ -501,7 +501,8 @@ Settings: Password: Jelszó Password Settings: Password Settings: Jelszóbeállítások - Set Password To Prevent Access: Beállítások jelszó megadása + Set Password To Prevent Access: Jelszó beállítása a beállításokhoz való hozzáférés + megakadályozásához Set Password: Jelszó megadása Remove Password: Jelszó eltávolítása About: @@ -537,7 +538,7 @@ About: Latest FreeTube News: 'Legfrissebb FreeTube hírek' these people and projects: ezek emberek és projektek - FreeTube is made possible by: 'A SzabadCső engedélyezése' + FreeTube is made possible by: 'A FreeTube-ot a következők teszik lehetővé' Donate: Hozzájárulás Credits: Közreműködők Translate: Fordítás @@ -557,7 +558,7 @@ About: View License: Licenc megtekintése Licensed under the AGPLv3: Az AGPL (GNU Affero General Public License - GNU Affero általános nyilvános licenc) 3. verziója alatt licencelt - FreeTube Wiki: SzabadCső Wiki + FreeTube Wiki: FreeTube Wiki Source code: Forráskód Beta: Béta FAQ: GyIK @@ -734,7 +735,7 @@ Video: Years: 'évvel' Ago: 'ezelőtt' Upcoming: 'Első előadás dátuma' - In less than a minute: Kevesebb, mint egy perce ezelőtt + In less than a minute: Kevesebb, mint egy perccel ezelőtt Published on: 'Megjelent' Publicationtemplate: '{number} {unit} ezelőtt' #& Videos @@ -751,7 +752,7 @@ Video: Open Channel in YouTube: Csatorna megnyitása a YouTube oldalon Open Channel in Invidious: Csatorna megnyitása az Invidious oldalán Started streaming on: Folyamatos átvitel indult - Streamed on: 'Adatfolyam dátuma:' + Streamed on: 'Közvetítve' Video has been removed from your saved list: A videót eltávolítottuk a mentett listáról Video has been saved: A videó mentve Save Video: Videó mentése @@ -875,7 +876,7 @@ Comments: Show More Replies: További válaszok megjelenítése From {channelName}: 'forrás: {channelName}' And others: és mások - Pinned by: 'Kitűzte:' + Pinned by: 'Kitűzve' Member: Tag View {replyCount} replies: '{replyCount} válasz megtekintése' Hearted: Kedvenc @@ -905,28 +906,28 @@ Yes: 'Igen' No: 'Nem' Tooltips: General Settings: - Preferred API Backend: Válassza ki a háttéralkalmazást, amelyet a SzabadCső használ + Preferred API Backend: Válassza ki a háttéralkalmazást, amelyet a FreeTube használ az adatok megszerzéséhez. A helyi-API egy beépített kinyerő. Az Invidious-API használatához Invidious-kiszolgáló szükséges. Region for Trending: A népszerűk körzetével kiválaszthatja, mely ország népszerű videóit szeretné megjeleníteni. - Invidious Instance: Invidious-példány, amelyhez a SzabadCső csatlakozni fog az + Invidious Instance: Invidious-példány, amelyhez a FreeTube csatlakozni fog az API-hívásokhoz. - Thumbnail Preference: A SzabadCső összes miniatűrökét az alapértelmezett miniatűr - helyett egy képkocka váltja fel. + Thumbnail Preference: A FreeTube összes indexképét a videó egy képkockája váltja + fel az alapértelmezett miniatűr helyett. Fallback to Non-Preferred Backend on Failure: Ha az Ön által előnyben részesített - API-val hibába merül fel, a SzabadCső önműködően megpróbálja a nem előnyben + API-val hibába merül fel, a FreeTube önműködően megpróbálja a nem előnyben részesített API-t tartalékként használni, ha engedélyezve van. External Link Handling: "Válassza ki az alapértelmezett viselkedést, ha egy hivatkozásra - kattintanak, amely nem nyitható meg a SzabadCsőben.\nA SzabadCső alapértelmezés + kattintanak, amely nem nyitható meg FreeTube-ban.\nA FreeTube alapértelmezés szerint megnyitja a kattintott hivatkozást az alapértelmezett böngészőben.\n" Subscription Settings: - Fetch Feeds from RSS: Ha engedélyezve van, a SzabadCső az alapértelmezett módszer + Fetch Feeds from RSS: Ha engedélyezve van, a FreeTube az alapértelmezett módszer helyett RSS-t fog használni a feliratkozás hírcsatornájának megragadásához. Az RSS gyorsabb és megakadályozza az IP-zárolást, de nem nyújt bizonyos tájékoztatást, például a videó időtartamát vagy az élő állapotot - Fetch Automatically: Ha engedélyezve van, a SzabadCső új ablak megnyitásakor és - profilváltáskor önműködően lekéri az előfizetési hírfolyamot. + Fetch Automatically: Ha engedélyezve van, a FreeTube új ablak megnyitásakor és + profilváltáskor önműködően lekéri az feliratkozási hírfolyamot. Player Settings: Default Video Format: Állítsa be a videó lejátszásakor használt formátumokat. A DASH (dinamikus adaptív sávszélességű folyamatos átvitel HTTP-n keresztül) @@ -954,10 +955,10 @@ Tooltips: Nem minden videónál érhetők el, ilyenkor a lejátszó a DASH H.264 formátumot használja helyette. Privacy Settings: - Remove Video Meta Files: Ha engedélyezve van, a SzabadCső önműködően törli a videolejátszás + Remove Video Meta Files: Ha engedélyezve van, a FreeTube önműködően törli a videolejátszás során létrehozott metafájlokat, amikor a nézőlap bezár. External Player Settings: - Custom External Player Executable: Alapértelmezés szerint a SzabadCső feltételezi, + Custom External Player Executable: Alapértelmezés szerint a FreeTube feltételezi, hogy a kiválasztott külső lejátszó megtalálható a PATH (ÚTVONAL) környezeti változón keresztül. Szükség esetén itt egyéni útvonal állítható be. Ignore Warnings: A figyelmeztetések elvetése, ha a jelenlegi külső lejátszó nem @@ -987,7 +988,7 @@ Playing Next Video Interval: A következő videó lejátszása folyamatban van. másodperc múlva történik. Kattintson a törléshez. More: Több Hashtags have not yet been implemented, try again later: A kettőskeresztescímkék kezelése - még nincs megvalósítva. Próbálkozzon a következő verzióban. + még nincs implementálva. próbálkozz a következő verzióban Unknown YouTube url type, cannot be opened in app: Ismeretlen YouTube URL-típusa, nem nyitható meg az alkalmazásban Open New Window: Új ablak megnyitása From d8ed6b9f3e800b3a65174a6fd0490f753b1936ec Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Wed, 2 Aug 2023 19:20:03 +0800 Subject: [PATCH 020/102] Update ft-input for top navbar search input to behave more like Youtube one (#3793) * * Update ft-input for top navbar search input to behave more like Youtube one * * Implement mouseleave = deselect * ! Fix clicking option/enter causes incorrect displayed input * * Update search input to update input data based on KB selected suggesion value on keydown * * Allow suggesion deselection via arrow up/down * $ Fix naming, import code style * - Remove unused import --- src/renderer/components/ft-input/ft-input.js | 82 +++++++++++++------ src/renderer/components/ft-input/ft-input.vue | 5 +- src/renderer/helpers/api/invidious.js | 3 +- src/renderer/helpers/strings.js | 25 ++++++ src/renderer/helpers/utils.js | 9 -- src/renderer/views/Channel/Channel.js | 3 +- src/renderer/views/Hashtag/Hashtag.js | 3 +- 7 files changed, 90 insertions(+), 40 deletions(-) create mode 100644 src/renderer/helpers/strings.js diff --git a/src/renderer/components/ft-input/ft-input.js b/src/renderer/components/ft-input/ft-input.js index 9df015849..fb0cb9cd7 100644 --- a/src/renderer/components/ft-input/ft-input.js +++ b/src/renderer/components/ft-input/ft-input.js @@ -1,6 +1,7 @@ import { defineComponent } from 'vue' import FtTooltip from '../ft-tooltip/ft-tooltip.vue' import { mapActions } from 'vuex' +import { isKeyboardEventKeyPrintableChar, isNullOrEmpty } from '../../helpers/strings' export default defineComponent({ name: 'FtInput', @@ -73,7 +74,8 @@ export default defineComponent({ searchState: { showOptions: false, selectedOption: -1, - isPointerInList: false + isPointerInList: false, + keyboardSelectedOptionIndex: -1, }, visibleDataList: this.dataList, // This button should be invisible on app start @@ -98,7 +100,23 @@ export default defineComponent({ inputDataPresent: function () { return this.inputData.length > 0 - } + }, + inputDataDisplayed() { + if (!this.isSearch) { return this.inputData } + + const selectedOptionValue = this.searchStateKeyboardSelectedOptionValue + if (selectedOptionValue != null && selectedOptionValue !== '') { + return selectedOptionValue + } + + return this.inputData + }, + + searchStateKeyboardSelectedOptionValue() { + if (this.searchState.keyboardSelectedOptionIndex === -1) { return null } + + return this.visibleDataList[this.searchState.keyboardSelectedOptionIndex] + }, }, watch: { dataList(val, oldVal) { @@ -128,11 +146,15 @@ export default defineComponent({ if (!this.inputDataPresent) { return } this.searchState.showOptions = false + this.searchState.selectedOption = -1 + this.searchState.keyboardSelectedOptionIndex = -1 this.$emit('input', this.inputData) this.$emit('click', this.inputData, { event: e }) }, handleInput: function (val) { + this.inputData = val + if (this.isSearch && this.searchState.selectedOption !== -1 && this.inputData === this.visibleDataList[this.searchState.selectedOption]) { return } @@ -212,6 +234,9 @@ export default defineComponent({ this.handleClick() }, + /** + * @param {KeyboardEvent} event + */ handleKeyDown: function (event) { if (event.key === 'Enter') { // Update Input box value if enter key was pressed and option selected @@ -229,25 +254,32 @@ export default defineComponent({ this.searchState.showOptions = true const isArrow = event.key === 'ArrowDown' || event.key === 'ArrowUp' - if (isArrow) { - event.preventDefault() - if (event.key === 'ArrowDown') { - this.searchState.selectedOption = (this.searchState.selectedOption + 1) % this.visibleDataList.length - } else if (event.key === 'ArrowUp') { - if (this.searchState.selectedOption < 1) { - this.searchState.selectedOption = this.visibleDataList.length - 1 - } else { - this.searchState.selectedOption-- - } + if (!isArrow) { + const selectedOptionValue = this.searchStateKeyboardSelectedOptionValue + // Keyboard selected & is char + if (!isNullOrEmpty(selectedOptionValue) && isKeyboardEventKeyPrintableChar(event.key)) { + // Update input based on KB selected suggestion value instead of current input value + event.preventDefault() + this.handleInput(`${selectedOptionValue}${event.key}`) + return } - if (this.searchState.selectedOption < 0) { - this.searchState.selectedOption = this.visibleDataList.length - } else if (this.searchState.selectedOption > this.visibleDataList.length - 1) { - this.searchState.selectedOption = 0 - } - } else { + return + } + + event.preventDefault() + if (event.key === 'ArrowDown') { + this.searchState.selectedOption++ + } else if (event.key === 'ArrowUp') { + this.searchState.selectedOption-- + } + // Allow deselecting suggestion + if (this.searchState.selectedOption < -1) { + this.searchState.selectedOption = this.visibleDataList.length - 1 + } else if (this.searchState.selectedOption > this.visibleDataList.length - 1) { this.searchState.selectedOption = -1 } + // Update displayed value + this.searchState.keyboardSelectedOptionIndex = this.searchState.selectedOption }, handleInputBlur: function () { @@ -260,21 +292,19 @@ export default defineComponent({ updateVisibleDataList: function () { if (this.dataList.length === 0) { return } + // Reset selected option before it's updated + this.searchState.selectedOption = -1 + this.searchState.keyboardSelectedOptionIndex = -1 if (this.inputData === '') { this.visibleDataList = this.dataList return } // get list of items that match input const lowerCaseInputData = this.inputData.toLowerCase() - const visList = this.dataList.filter(x => { - if (x.toLowerCase().indexOf(lowerCaseInputData) !== -1) { - return true - } else { - return false - } - }) - this.visibleDataList = visList + this.visibleDataList = this.dataList.filter(x => { + return x.toLowerCase().indexOf(lowerCaseInputData) !== -1 + }) }, updateInputData: function(text) { diff --git a/src/renderer/components/ft-input/ft-input.vue b/src/renderer/components/ft-input/ft-input.vue index 5ced9eea7..6584cf06d 100644 --- a/src/renderer/components/ft-input/ft-input.vue +++ b/src/renderer/components/ft-input/ft-input.vue @@ -42,7 +42,7 @@ {{ list }} diff --git a/src/renderer/helpers/api/invidious.js b/src/renderer/helpers/api/invidious.js index f83ac9155..45621d3cc 100644 --- a/src/renderer/helpers/api/invidious.js +++ b/src/renderer/helpers/api/invidious.js @@ -1,5 +1,6 @@ import store from '../../store/index' -import { isNullOrEmpty, stripHTML, toLocalePublicationString } from '../utils' +import { stripHTML, toLocalePublicationString } from '../utils' +import { isNullOrEmpty } from '../strings' import autolinker from 'autolinker' function getCurrentInstance() { diff --git a/src/renderer/helpers/strings.js b/src/renderer/helpers/strings.js new file mode 100644 index 000000000..f83a0ea11 --- /dev/null +++ b/src/renderer/helpers/strings.js @@ -0,0 +1,25 @@ +/** + * This will return true if a string is null, undefined or empty. + * @param {string|null|undefined} _string the string to process + * @returns {boolean} whether the string is empty or not + */ +export function isNullOrEmpty(_string) { + return _string == null || _string === '' +} + +/** + * Is KeyboardEvent.key a printable char + * @param {string} eventKey the string from KeyboardEvent.key to process + * @returns {boolean} whether the string from KeyboardEvent.key is a printable char or not + */ +export function isKeyboardEventKeyPrintableChar(eventKey) { + // Most printable chars are all strings with length 1 (except Unicode) + // https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values + // https://www.w3.org/TR/DOM-Level-3-Events-key/ + if (eventKey.length === 1) { return true } + // Emoji + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape + if (/\p{Emoji_Presentation}/u.test(eventKey)) { return true } + + return false +} diff --git a/src/renderer/helpers/utils.js b/src/renderer/helpers/utils.js index 239e3b98b..7d4edb5a1 100644 --- a/src/renderer/helpers/utils.js +++ b/src/renderer/helpers/utils.js @@ -627,15 +627,6 @@ export function formatNumber(number, options = undefined) { return Intl.NumberFormat([i18n.locale.replace('_', '-'), 'en'], options).format(number) } -/** - * This will return true if a string is null, undefined or empty. - * @param {string} _string the string to process - * @returns {bool} whether the string is empty or not - */ -export function isNullOrEmpty(_string) { - return _string == null || _string === '' -} - export function getTodayDateStrLocalTimezone() { const timeNow = new Date() // `Date#getTimezoneOffset` returns the difference, in minutes diff --git a/src/renderer/views/Channel/Channel.js b/src/renderer/views/Channel/Channel.js index a83a0b98e..0242bca06 100644 --- a/src/renderer/views/Channel/Channel.js +++ b/src/renderer/views/Channel/Channel.js @@ -12,7 +12,8 @@ import FtSubscribeButton from '../../components/ft-subscribe-button/ft-subscribe import ChannelAbout from '../../components/channel-about/channel-about.vue' import autolinker from 'autolinker' -import { copyToClipboard, extractNumberFromString, formatNumber, isNullOrEmpty, showToast } from '../../helpers/utils' +import { copyToClipboard, extractNumberFromString, formatNumber, showToast } from '../../helpers/utils' +import { isNullOrEmpty } from '../../helpers/strings' import packageDetails from '../../../../package.json' import { invidiousAPICall, diff --git a/src/renderer/views/Hashtag/Hashtag.js b/src/renderer/views/Hashtag/Hashtag.js index 18dcb3732..5001d6047 100644 --- a/src/renderer/views/Hashtag/Hashtag.js +++ b/src/renderer/views/Hashtag/Hashtag.js @@ -5,7 +5,8 @@ import FtFlexBox from '../../components/ft-flex-box/ft-flex-box.vue' import FtLoader from '../../components/ft-loader/ft-loader.vue' import packageDetails from '../../../../package.json' import { getHashtagLocal, parseLocalListVideo } from '../../helpers/api/local' -import { copyToClipboard, isNullOrEmpty, showToast } from '../../helpers/utils' +import { copyToClipboard, showToast } from '../../helpers/utils' +import { isNullOrEmpty } from '../../helpers/strings' import { getHashtagInvidious } from '../../helpers/api/invidious' export default defineComponent({ From 41fd6134ec9da0db20b0b604e2ba1a79cf549fba Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Wed, 2 Aug 2023 19:20:58 +0800 Subject: [PATCH 021/102] * Update top nav bar icon to remove focus state style (#3792) Fix "navigation bar icons are still being highlighted after click" --- src/renderer/components/top-nav/top-nav.scss | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/renderer/components/top-nav/top-nav.scss b/src/renderer/components/top-nav/top-nav.scss index eb94f0c4a..1c8d0000d 100644 --- a/src/renderer/components/top-nav/top-nav.scss +++ b/src/renderer/components/top-nav/top-nav.scss @@ -54,11 +54,6 @@ @include top-nav-is-colored { color: var(--text-with-main-color); - - &:hover, - &:focus { - background-color: var(--primary-color-hover); - } } &.fa-arrow-left, @@ -69,10 +64,13 @@ user-select: none; } - &:hover, - &:focus { + &:hover { background-color: var(--side-nav-hover-color); transition: background 0.2s ease-in; + + @include top-nav-is-colored { + background-color: var(--primary-color-hover); + } } &:active { From 2ff81338d85e4c0a01e02515eec0da575cc4f76a Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Thu, 3 Aug 2023 14:48:23 +0200 Subject: [PATCH 022/102] Fix handling of DeArrow titles (#3825) --- .../components/ft-list-video/ft-list-video.js | 32 +++++++++++-------- src/renderer/store/modules/utils.js | 9 ++++-- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/renderer/components/ft-list-video/ft-list-video.js b/src/renderer/components/ft-list-video/ft-list-video.js index 13d479269..8b49b3fb8 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.js +++ b/src/renderer/components/ft-list-video/ft-list-video.js @@ -289,10 +289,17 @@ export default defineComponent({ }, displayTitle: function () { - if (this.showDistractionFreeTitles) { - return toDistractionFreeTitle(this.title) + let title + if (this.useDeArrowTitles && this.deArrowCache?.title) { + title = this.deArrowCache.title } else { - return this.title + title = this.title + } + + if (this.showDistractionFreeTitles) { + return toDistractionFreeTitle(title) + } else { + return title } }, @@ -327,7 +334,7 @@ export default defineComponent({ }, deArrowCache: function () { - return this.$store.getters.getDeArrowCache(this.id) + return this.$store.getters.getDeArrowCache[this.id] } }, watch: { @@ -338,15 +345,13 @@ export default defineComponent({ created: function () { this.parseVideoData() this.checkIfWatched() + + if (this.useDeArrowTitles && !this.deArrowCache) { + this.fetchDeArrowData() + } }, methods: { - getDeArrowDataEntry: async function() { - // Read from local cache or remote - // Write to cache if read from remote - if (!this.useDeArrowTitles) { return null } - - if (this.deArrowCache) { return this.deArrowCache } - + fetchDeArrowData: async function() { const videoId = this.id const data = await deArrowData(this.id) const cacheData = { videoId, title: null } @@ -356,7 +361,6 @@ export default defineComponent({ // Save data to cache whether data available or not to prevent duplicate requests this.$store.commit('addVideoToDeArrowCache', cacheData) - return cacheData }, handleExternalPlayer: function () { @@ -429,9 +433,9 @@ export default defineComponent({ } }, - parseVideoData: async function () { + parseVideoData: function () { this.id = this.data.videoId - this.title = (await this.getDeArrowDataEntry())?.title ?? this.data.title + this.title = this.data.title // this.thumbnail = this.data.videoThumbnails[4].url this.channelName = this.data.author ?? null diff --git a/src/renderer/store/modules/utils.js b/src/renderer/store/modules/utils.js index 014b475a2..3a50dd226 100644 --- a/src/renderer/store/modules/utils.js +++ b/src/renderer/store/modules/utils.js @@ -1,6 +1,7 @@ import fs from 'fs/promises' import path from 'path' import i18n from '../../i18n/index' +import { set as vueSet } from 'vue' import { IpcChannels } from '../../../constants' import { pathExists } from '../../helpers/filesystem' @@ -58,8 +59,8 @@ const getters = { return state.sessionSearchHistory }, - getDeArrowCache: (state) => (videoId) => { - return state.deArrowCache[videoId] + getDeArrowCache: (state) => { + return state.deArrowCache }, getPopularCache () { @@ -639,7 +640,9 @@ const mutations = { const sameVideo = state.deArrowCache[payload.videoId] if (!sameVideo) { - state.deArrowCache[payload.videoId] = payload + // setting properties directly doesn't trigger watchers in Vue 2, + // so we need to use Vue's set function + vueSet(state.deArrowCache, payload.videoId, payload) } }, From 13d7a357f2df05a47a60863c6d2a25ec3a43e6fe Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Thu, 3 Aug 2023 14:52:54 +0200 Subject: [PATCH 023/102] Add custom toast event bus for Vue 3 compatiblity (#3833) --- src/renderer/components/ft-toast/ft-toast-events.js | 4 +--- src/renderer/components/ft-toast/ft-toast.js | 6 +++--- src/renderer/helpers/utils.js | 8 +++++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/renderer/components/ft-toast/ft-toast-events.js b/src/renderer/components/ft-toast/ft-toast-events.js index c32b0e13a..95b4ffbb1 100644 --- a/src/renderer/components/ft-toast/ft-toast-events.js +++ b/src/renderer/components/ft-toast/ft-toast-events.js @@ -1,4 +1,2 @@ -import Vue from 'vue' - -const events = new Vue() +const events = new EventTarget() export default events diff --git a/src/renderer/components/ft-toast/ft-toast.js b/src/renderer/components/ft-toast/ft-toast.js index cc6b1ad84..a0c8bf03d 100644 --- a/src/renderer/components/ft-toast/ft-toast.js +++ b/src/renderer/components/ft-toast/ft-toast.js @@ -9,10 +9,10 @@ export default defineComponent({ } }, mounted: function () { - FtToastEvents.$on('toast-open', this.open) + FtToastEvents.addEventListener('toast-open', this.open) }, beforeDestroy: function () { - FtToastEvents.$off('toast-open', this.open) + FtToastEvents.removeEventListener('toast-open', this.open) }, methods: { performAction: function (index) { @@ -25,7 +25,7 @@ export default defineComponent({ toast.isOpen = false }, - open: function (message, time, action) { + open: function ({ detail: { message, time, action } }) { const toast = { message: message, action: action || (() => { }), isOpen: false, timeout: null } toast.timeout = setTimeout(this.close, time || 3000, toast) setTimeout(() => { toast.isOpen = true }) diff --git a/src/renderer/helpers/utils.js b/src/renderer/helpers/utils.js index 7d4edb5a1..7decc6613 100644 --- a/src/renderer/helpers/utils.js +++ b/src/renderer/helpers/utils.js @@ -189,7 +189,13 @@ export async function getFormatsFromHLSManifest(manifestUrl) { } export function showToast(message, time = null, action = null) { - FtToastEvents.$emit('toast-open', message, time, action) + FtToastEvents.dispatchEvent(new CustomEvent('toast-open', { + detail: { + message, + time, + action + } + })) } /** From 97593e368197ea660ebfcd1fd63b43be49036546 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Thu, 3 Aug 2023 14:57:09 +0200 Subject: [PATCH 024/102] Use emit and props instead of $parent (#3834) --- .../ft-video-player/ft-video-player.js | 26 ++++++++++++++----- .../watch-video-info/watch-video-info.js | 20 +++----------- .../watch-video-info/watch-video-info.vue | 2 +- src/renderer/views/Watch/Watch.js | 17 +++++++++--- src/renderer/views/Watch/Watch.vue | 8 +++++- 5 files changed, 44 insertions(+), 29 deletions(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index a4ae59b01..a314f3775 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -93,9 +93,21 @@ export default defineComponent({ type: Array, default: () => { return [] } }, + currentChapterIndex: { + type: Number, + default: 0 + }, audioTracks: { type: Array, default: () => ([]) + }, + theatrePossible: { + type: Boolean, + default: false + }, + useTheatreMode: { + type: Boolean, + default: false } }, data: function () { @@ -1424,11 +1436,11 @@ export default defineComponent({ }, createToggleTheatreModeButton: function() { - if (!this.$parent.theatrePossible) { + if (!this.theatrePossible) { return } - const theatreModeActive = this.$parent.useTheatreMode ? ' vjs-icon-theatre-active' : '' + const theatreModeActive = this.useTheatreMode ? ' vjs-icon-theatre-active' : '' const toggleTheatreMode = this.toggleTheatreMode @@ -1458,14 +1470,14 @@ export default defineComponent({ toggleTheatreMode: function() { if (!this.player.isFullscreen_) { const toggleTheatreModeButton = document.getElementById('toggleTheatreModeButton') - if (!this.$parent.useTheatreMode) { + if (!this.useTheatreMode) { toggleTheatreModeButton.classList.add('vjs-icon-theatre-active') } else { toggleTheatreModeButton.classList.remove('vjs-icon-theatre-active') } } - this.$parent.toggleTheatreMode() + this.$emit('toggle-theatre-mode') }, createScreenshotButton: function () { @@ -1949,7 +1961,7 @@ export default defineComponent({ * @returns {boolean} */ canChapterJump: function (event, direction) { - const currentChapter = this.$parent.videoCurrentChapterIndex + const currentChapter = this.currentChapterIndex return this.chapters.length > 0 && (direction === 'previous' ? currentChapter > 0 : this.chapters.length - 1 !== currentChapter) && ((process.platform !== 'darwin' && event.ctrlKey) || @@ -2075,7 +2087,7 @@ export default defineComponent({ event.preventDefault() if (this.canChapterJump(event, 'previous')) { // Jump to the previous chapter - this.player.currentTime(this.chapters[this.$parent.videoCurrentChapterIndex - 1].startSeconds) + this.player.currentTime(this.chapters[this.currentChapterIndex - 1].startSeconds) } else { // Rewind by the time-skip interval (in seconds) this.changeDurationBySeconds(-this.defaultSkipInterval * this.player.playbackRate()) @@ -2085,7 +2097,7 @@ export default defineComponent({ event.preventDefault() if (this.canChapterJump(event, 'next')) { // Jump to the next chapter - this.player.currentTime(this.chapters[this.$parent.videoCurrentChapterIndex + 1].startSeconds) + this.player.currentTime(this.chapters[this.currentChapterIndex + 1].startSeconds) } else { // Fast-Forward by the time-skip interval (in seconds) this.changeDurationBySeconds(this.defaultSkipInterval * this.player.playbackRate()) diff --git a/src/renderer/components/watch-video-info/watch-video-info.js b/src/renderer/components/watch-video-info/watch-video-info.js index 58118ec47..a4e887045 100644 --- a/src/renderer/components/watch-video-info/watch-video-info.js +++ b/src/renderer/components/watch-video-info/watch-video-info.js @@ -242,13 +242,13 @@ export default defineComponent({ }) this.$watch('$refs.downloadButton.dropdownShown', (dropdownShown) => { - this.$parent.infoAreaSticky = !dropdownShown + this.$emit('set-info-area-sticky', !dropdownShown) if (dropdownShown && window.innerWidth >= 901) { // adds a slight delay so we know that the dropdown has shown up // and won't mess up our scrolling - Promise.resolve().then(() => { - this.$parent.$refs.infoArea.scrollIntoView() + setTimeout(() => { + this.$emit('scroll-to-info-area') }) } }) @@ -279,20 +279,6 @@ export default defineComponent({ } }, - handleFormatChange: function (format) { - switch (format) { - case 'dash': - this.$parent.enableDashFormat() - break - case 'legacy': - this.$parent.enableLegacyFormat() - break - case 'audio': - this.$parent.enableAudioFormat() - break - } - }, - handleDownload: function (index) { const selectedDownloadLinkOption = this.downloadLinkOptions[index] const url = selectedDownloadLinkOption.value diff --git a/src/renderer/components/watch-video-info/watch-video-info.vue b/src/renderer/components/watch-video-info/watch-video-info.vue index c28b18112..53e656342 100644 --- a/src/renderer/components/watch-video-info/watch-video-info.vue +++ b/src/renderer/components/watch-video-info/watch-video-info.vue @@ -115,7 +115,7 @@ theme="secondary" :icon="['fas', 'file-video']" :dropdown-options="formatTypeOptions" - @click="handleFormatChange" + @click="$emit('change-format', $event)" />
Date: Thu, 3 Aug 2023 21:01:08 +0800 Subject: [PATCH 025/102] ! Fix unnecessary error message display in toast when paused before video started playing on load (#3835) Caused by https://github.com/FreeTubeApp/FreeTube/pull/3775 --- .../components/ft-video-player/ft-video-player.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index a314f3775..365237a01 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -25,6 +25,13 @@ import { import { getProxyUrl } from '../../helpers/api/invidious' import store from '../../store' +const EXPECTED_PLAY_RELATED_ERROR_MESSAGES = [ + // This is thrown when `play()` called but user already viewing another page + 'The play() request was interrupted by a new load request.', + // This is thrown when `pause()` called before video started playing on load + 'The play() request was interrupted by a call to pause()', +] + // YouTube now throttles if you use the `Range` header for the DASH formats, instead of the range query parameter // videojs-http-streaming calls this hook everytime it makes a request, // so we can use it to convert the Range header into the range query parameter for the streaming URLs @@ -1979,9 +1986,8 @@ export default defineComponent({ } promise .catch(err => { - if (err.message.includes('The play() request was interrupted by a new load request.')) { + if (EXPECTED_PLAY_RELATED_ERROR_MESSAGES.some(msg => err.message.includes(msg))) { // Ignoring expected exception - // This is thrown when `play()` called but user already viewing another page // console.debug('Ignoring expected error') // console.debug(err) return From 8d9a1b8952e11b9ac5111384c6408c65c5959bcb Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Thu, 3 Aug 2023 16:32:59 +0200 Subject: [PATCH 026/102] Use video durations from the watch history for RSS (#3839) --- src/renderer/components/ft-list-video/ft-list-video.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/renderer/components/ft-list-video/ft-list-video.js b/src/renderer/components/ft-list-video/ft-list-video.js index 8b49b3fb8..b719ebf41 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.js +++ b/src/renderer/components/ft-list-video/ft-list-video.js @@ -440,7 +440,13 @@ export default defineComponent({ this.channelName = this.data.author ?? null this.channelId = this.data.authorId ?? null - this.duration = formatDurationAsTimestamp(this.data.lengthSeconds) + + if (this.data.isRSS && this.historyIndex !== -1) { + this.duration = formatDurationAsTimestamp(this.historyCache[this.historyIndex].lengthSeconds) + } else { + this.duration = formatDurationAsTimestamp(this.data.lengthSeconds) + } + this.description = this.data.description this.isLive = this.data.liveNow || this.data.lengthSeconds === 'undefined' this.isUpcoming = this.data.isUpcoming || this.data.premiere From 51576a95634bf3ff18cda0a74e2ca83951a9cad3 Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Thu, 3 Aug 2023 22:44:30 +0800 Subject: [PATCH 027/102] * Show error message in popular tab when instance does not support it (#3841) --- src/renderer/views/Popular/Popular.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/renderer/views/Popular/Popular.js b/src/renderer/views/Popular/Popular.js index 6af366eb2..08a1a893c 100644 --- a/src/renderer/views/Popular/Popular.js +++ b/src/renderer/views/Popular/Popular.js @@ -5,6 +5,7 @@ import FtElementList from '../../components/ft-element-list/ft-element-list.vue' import FtIconButton from '../../components/ft-icon-button/ft-icon-button.vue' import { invidiousAPICall } from '../../helpers/api/invidious' +import { copyToClipboard, showToast } from '../../helpers/utils' export default defineComponent({ name: 'Popular', @@ -28,7 +29,7 @@ export default defineComponent({ mounted: function () { document.addEventListener('keydown', this.keyboardShortcutHandler) - this.shownResults = this.popularCache + this.shownResults = this.popularCache || [] if (!this.shownResults || this.shownResults.length < 1) { this.fetchPopularInfo() } @@ -47,7 +48,11 @@ export default defineComponent({ this.isLoading = true const result = await invidiousAPICall(searchPayload) .catch((err) => { - console.error(err) + const errorMessage = this.$t('Invidious API Error (Click to copy)') + showToast(`${errorMessage}: ${err}`, 10000, () => { + copyToClipboard(err) + }) + return undefined }) if (!result) { From 8025945ac01b1483a572b2ec34f07ff029f02a5a Mon Sep 17 00:00:00 2001 From: Sameer Sharma <100503303+capecrusader-121@users.noreply.github.com> Date: Thu, 3 Aug 2023 21:18:59 +0530 Subject: [PATCH 028/102] Update Snap Source Host Location (#3844) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dddf9479a..8c538e9df 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ These builds are maintained by the community. While they should be safe, downloa * Scoop (Windows Only): [Usage](https://github.com/ScoopInstaller/Scoop) -* Snap: [Download](https://snapcraft.io/freetube-snap) and [Source Code](https://github.com/CapeCrusader321/Freetube-Snap) +* Snap: [Download](https://snapcraft.io/freetube-snap) and [Source Code](https://launchpad.net/freetube) * Windows Package Manager (winget): [Usage](https://docs.microsoft.com/en-us/windows/package-manager/winget/) From e0fceedefdd2a79582a406e6f6bc074900f68071 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sat, 5 Aug 2023 01:30:54 +0200 Subject: [PATCH 029/102] Fix author for album playlists on the playlist page (#3838) * Fix author for album playlists on the playlist page * Only show artists --- .../components/playlist-info/playlist-info.js | 2 +- .../components/playlist-info/playlist-info.vue | 11 +++++++++++ src/renderer/views/Playlist/Playlist.js | 13 ++++++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/playlist-info/playlist-info.js b/src/renderer/components/playlist-info/playlist-info.js index 9a2fe326e..01b779f9d 100644 --- a/src/renderer/components/playlist-info/playlist-info.js +++ b/src/renderer/components/playlist-info/playlist-info.js @@ -21,7 +21,7 @@ export default defineComponent({ title: '', channelThumbnail: '', channelName: '', - channelId: '', + channelId: null, videoCount: 0, viewCount: 0, lastUpdated: '', diff --git a/src/renderer/components/playlist-info/playlist-info.vue b/src/renderer/components/playlist-info/playlist-info.vue index d7a2083de..1b2545912 100644 --- a/src/renderer/components/playlist-info/playlist-info.vue +++ b/src/renderer/components/playlist-info/playlist-info.vue @@ -41,6 +41,7 @@ class="channelShareWrapper" > @@ -55,6 +56,16 @@ {{ channelName }} +
+

+ {{ channelName }} +

+
{ + let channelName + + if (result.info.author) { + channelName = result.info.author.name + } else { + const subtitle = result.info.subtitle.toString() + + const index = subtitle.lastIndexOf('•') + channelName = subtitle.substring(0, index).trim() + } + this.infoData = { id: this.playlistId, title: result.info.title, @@ -92,7 +103,7 @@ export default defineComponent({ viewCount: extractNumberFromString(result.info.views), videoCount: extractNumberFromString(result.info.total_items), lastUpdated: result.info.last_updated ?? '', - channelName: result.info.author?.name ?? '', + channelName, channelThumbnail: result.info.author?.best_thumbnail?.url ?? '', channelId: result.info.author?.id, infoSource: 'local' From b48d04700f1db90125c8e5a9e9a304c3aefa8a8c Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sat, 5 Aug 2023 02:33:03 +0200 Subject: [PATCH 030/102] Fix empty channels showing up as errored with RSS (#3824) --- .../subscriptions-live/subscriptions-live.js | 11 +++++++++++ .../subscriptions-shorts/subscriptions-shorts.js | 11 +++++++++++ .../subscriptions-tab-ui/subscriptions-tab-ui.css | 4 ---- .../subscriptions-tab-ui/subscriptions-tab-ui.vue | 1 - .../subscriptions-videos/subscriptions-videos.js | 12 +++++++++++- 5 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/renderer/components/subscriptions-live/subscriptions-live.js b/src/renderer/components/subscriptions-live/subscriptions-live.js index 8eca04d56..bc5f105fe 100644 --- a/src/renderer/components/subscriptions-live/subscriptions-live.js +++ b/src/renderer/components/subscriptions-live/subscriptions-live.js @@ -216,6 +216,17 @@ export default defineComponent({ const response = await fetch(feedUrl) if (response.status === 404) { + // playlists don't exist if the channel was terminated but also if it doesn't have the tab, + // so we need to check the channel feed too before deciding it errored, as that only 404s if the channel was terminated + + const response2 = await fetch(`https://www.youtube.com/feeds/videos.xml?channel_id=${channel.id}`, { + method: 'HEAD' + }) + + if (response2.status === 404) { + this.errorChannels.push(channel) + } + return [] } diff --git a/src/renderer/components/subscriptions-shorts/subscriptions-shorts.js b/src/renderer/components/subscriptions-shorts/subscriptions-shorts.js index 2893b0493..793734a9a 100644 --- a/src/renderer/components/subscriptions-shorts/subscriptions-shorts.js +++ b/src/renderer/components/subscriptions-shorts/subscriptions-shorts.js @@ -157,6 +157,17 @@ export default defineComponent({ const response = await fetch(feedUrl) if (response.status === 404) { + // playlists don't exist if the channel was terminated but also if it doesn't have the tab, + // so we need to check the channel feed too before deciding it errored, as that only 404s if the channel was terminated + + const response2 = await fetch(`https://www.youtube.com/feeds/videos.xml?channel_id=${channel.id}`, { + method: 'HEAD' + }) + + if (response2.status === 404) { + this.errorChannels.push(channel) + } + return [] } diff --git a/src/renderer/components/subscriptions-tab-ui/subscriptions-tab-ui.css b/src/renderer/components/subscriptions-tab-ui/subscriptions-tab-ui.css index 452a03b7f..8c2f61968 100644 --- a/src/renderer/components/subscriptions-tab-ui/subscriptions-tab-ui.css +++ b/src/renderer/components/subscriptions-tab-ui/subscriptions-tab-ui.css @@ -14,10 +14,6 @@ right: 10px; } -.channelBubble { - display: inline-block; -} - @media only screen and (max-width: 350px) { .floatingTopButton { position: absolute diff --git a/src/renderer/components/subscriptions-tab-ui/subscriptions-tab-ui.vue b/src/renderer/components/subscriptions-tab-ui/subscriptions-tab-ui.vue index 26b884387..96ed3ea30 100644 --- a/src/renderer/components/subscriptions-tab-ui/subscriptions-tab-ui.vue +++ b/src/renderer/components/subscriptions-tab-ui/subscriptions-tab-ui.vue @@ -14,7 +14,6 @@ :channel-name="channel.name" :channel-id="channel.id" :channel-thumbnail="channel.thumbnail" - class="channelBubble" @click="goToChannel(channel.id)" />
diff --git a/src/renderer/components/subscriptions-videos/subscriptions-videos.js b/src/renderer/components/subscriptions-videos/subscriptions-videos.js index 366351b6c..a535a30dc 100644 --- a/src/renderer/components/subscriptions-videos/subscriptions-videos.js +++ b/src/renderer/components/subscriptions-videos/subscriptions-videos.js @@ -216,7 +216,17 @@ export default defineComponent({ const response = await fetch(feedUrl) if (response.status === 404) { - this.errorChannels.push(channel) + // playlists don't exist if the channel was terminated but also if it doesn't have the tab, + // so we need to check the channel feed too before deciding it errored, as that only 404s if the channel was terminated + + const response2 = await fetch(`https://www.youtube.com/feeds/videos.xml?channel_id=${channel.id}`, { + method: 'HEAD' + }) + + if (response2.status === 404) { + this.errorChannels.push(channel) + } + return [] } From 072066fbe1384ab09bdb1a3eca5f8e78d1cdb2ad Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sat, 5 Aug 2023 03:02:46 +0200 Subject: [PATCH 031/102] Miscellaneous CSS cleanup (#3847) --- ...subscribe-button.scss => ft-subscribe-button.css} | 0 .../ft-subscribe-button/ft-subscribe-button.vue | 2 +- .../watch-video-comments/watch-video-comments.css | 4 ++-- .../watch-video-live-chat/watch-video-live-chat.css | 12 ++++++------ src/renderer/views/Channel/Channel.css | 4 ++-- src/renderer/views/ProfileEdit/ProfileEdit.css | 0 src/renderer/views/ProfileEdit/ProfileEdit.vue | 1 - 7 files changed, 11 insertions(+), 12 deletions(-) rename src/renderer/components/ft-subscribe-button/{ft-subscribe-button.scss => ft-subscribe-button.css} (100%) delete mode 100644 src/renderer/views/ProfileEdit/ProfileEdit.css diff --git a/src/renderer/components/ft-subscribe-button/ft-subscribe-button.scss b/src/renderer/components/ft-subscribe-button/ft-subscribe-button.css similarity index 100% rename from src/renderer/components/ft-subscribe-button/ft-subscribe-button.scss rename to src/renderer/components/ft-subscribe-button/ft-subscribe-button.css diff --git a/src/renderer/components/ft-subscribe-button/ft-subscribe-button.vue b/src/renderer/components/ft-subscribe-button/ft-subscribe-button.vue index bf6d90d97..11bf54e7e 100644 --- a/src/renderer/components/ft-subscribe-button/ft-subscribe-button.vue +++ b/src/renderer/components/ft-subscribe-button/ft-subscribe-button.vue @@ -9,4 +9,4 @@