mirror of https://github.com/FreeTubeApp/FreeTube
Merge branch 'development' into piped-support
This commit is contained in:
commit
25846f8c02
|
@ -1,19 +1,8 @@
|
|||
'PR: waiting for review':
|
||||
- '*'
|
||||
- '.babelrc'
|
||||
- '.editorconfig'
|
||||
- '.eslintignore'
|
||||
- '.eslintrc.js'
|
||||
- '.gitignore'
|
||||
- '.prettierrc'
|
||||
- '.whitesource'
|
||||
- '.github/**/*'
|
||||
- '.vscode/**/*'
|
||||
- '_icons/**/*'
|
||||
- '_scripts/**/*'
|
||||
- 'src/**/*'
|
||||
- 'static/**/*'
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '**'
|
||||
|
||||
'PR: dependencies':
|
||||
- 'yarn.lock'
|
||||
- 'package.json'
|
||||
- any:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: ['yarn.lock', 'package.json']
|
||||
|
|
|
@ -31,7 +31,7 @@ jobs:
|
|||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
|
@ -45,7 +45,7 @@ jobs:
|
|||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
|
@ -58,6 +58,6 @@ jobs:
|
|||
# ./location_of_script_within_repo/buildscript.sh
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
uses: github/codeql-action/analyze@v3
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
|
|
|
@ -11,7 +11,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
if: ${{ !github.event.pull_request.draft }}
|
||||
steps:
|
||||
- uses: actions/labeler@v4
|
||||
- uses: actions/labeler@v5
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
configuration-path: .github/pr-labeler.yml
|
||||
|
|
|
@ -11,7 +11,7 @@ jobs:
|
|||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v8
|
||||
- uses: actions/stale@v9
|
||||
with:
|
||||
stale-issue-message: 'This issue is stale because it has been open 28 days with no activity. Remove stale label or comment or this will be closed in 7 days.'
|
||||
stale-pr-message: 'This PR is stale because it has been open 28 days with no activity. Remove stale label or comment or this will be closed in 14 days.'
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
const os = require('os')
|
||||
const builder = require('electron-builder')
|
||||
const config = require('./ebuilder.config.js')
|
||||
|
||||
const Platform = builder.Platform
|
||||
const Arch = builder.Arch
|
||||
const { name, productName } = require('../package.json')
|
||||
const args = process.argv
|
||||
|
||||
let targets
|
||||
|
@ -39,97 +39,6 @@ if (platform === 'darwin') {
|
|||
targets = Platform.LINUX.createTarget(['deb', 'zip', '7z', 'apk', 'rpm', 'AppImage', 'pacman'], arch)
|
||||
}
|
||||
|
||||
const config = {
|
||||
appId: `io.freetubeapp.${name}`,
|
||||
copyright: 'Copyleft © 2020-2023 freetubeapp@protonmail.com',
|
||||
// asar: false,
|
||||
// compression: 'store',
|
||||
productName,
|
||||
directories: {
|
||||
output: './build/',
|
||||
},
|
||||
protocols: [
|
||||
{
|
||||
name: "FreeTube",
|
||||
schemes: [
|
||||
"freetube"
|
||||
]
|
||||
}
|
||||
],
|
||||
files: [
|
||||
'_icons/iconColor.*',
|
||||
'icon.svg',
|
||||
'./dist/**/*',
|
||||
'!dist/web/*',
|
||||
'!node_modules/**/*',
|
||||
],
|
||||
dmg: {
|
||||
contents: [
|
||||
{
|
||||
path: '/Applications',
|
||||
type: 'link',
|
||||
x: 410,
|
||||
y: 230,
|
||||
},
|
||||
{
|
||||
type: 'file',
|
||||
x: 130,
|
||||
y: 230,
|
||||
},
|
||||
],
|
||||
window: {
|
||||
height: 380,
|
||||
width: 540,
|
||||
}
|
||||
},
|
||||
linux: {
|
||||
category: 'Network',
|
||||
icon: '_icons/icon.svg',
|
||||
target: ['deb', 'zip', '7z', 'apk', 'rpm', 'AppImage', 'pacman'],
|
||||
},
|
||||
// See the following issues for more information
|
||||
// https://github.com/jordansissel/fpm/issues/1503
|
||||
// https://github.com/jgraph/drawio-desktop/issues/259
|
||||
rpm: {
|
||||
fpm: [`--rpm-rpmbuild-define=_build_id_links none`]
|
||||
},
|
||||
deb: {
|
||||
depends: [
|
||||
"libgtk-3-0",
|
||||
"libnotify4",
|
||||
"libnss3",
|
||||
"libxss1",
|
||||
"libxtst6",
|
||||
"xdg-utils",
|
||||
"libatspi2.0-0",
|
||||
"libuuid1",
|
||||
"libsecret-1-0"
|
||||
]
|
||||
},
|
||||
mac: {
|
||||
category: 'public.app-category.utilities',
|
||||
icon: '_icons/iconMac.icns',
|
||||
target: ['dmg', 'zip', '7z'],
|
||||
type: 'distribution',
|
||||
extendInfo: {
|
||||
CFBundleURLTypes: [
|
||||
'freetube'
|
||||
],
|
||||
CFBundleURLSchemes: [
|
||||
'freetube'
|
||||
]
|
||||
}
|
||||
},
|
||||
win: {
|
||||
icon: '_icons/icon.ico',
|
||||
target: ['nsis', 'zip', '7z', 'portable'],
|
||||
},
|
||||
nsis: {
|
||||
allowToChangeInstallationDirectory: true,
|
||||
oneClick: false,
|
||||
},
|
||||
}
|
||||
|
||||
builder
|
||||
.build({
|
||||
targets,
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
const { name, productName } = require('../package.json')
|
||||
|
||||
const config = {
|
||||
appId: `io.freetubeapp.${name}`,
|
||||
copyright: 'Copyleft © 2020-2023 freetubeapp@protonmail.com',
|
||||
// asar: false,
|
||||
// compression: 'store',
|
||||
productName,
|
||||
directories: {
|
||||
output: './build/',
|
||||
},
|
||||
protocols: [
|
||||
{
|
||||
name: "FreeTube",
|
||||
schemes: [
|
||||
"freetube"
|
||||
]
|
||||
}
|
||||
],
|
||||
files: [
|
||||
'_icons/iconColor.*',
|
||||
'icon.svg',
|
||||
'./dist/**/*',
|
||||
'!dist/web/*',
|
||||
'!node_modules/**/*',
|
||||
],
|
||||
dmg: {
|
||||
contents: [
|
||||
{
|
||||
path: '/Applications',
|
||||
type: 'link',
|
||||
x: 410,
|
||||
y: 230,
|
||||
},
|
||||
{
|
||||
type: 'file',
|
||||
x: 130,
|
||||
y: 230,
|
||||
},
|
||||
],
|
||||
window: {
|
||||
height: 380,
|
||||
width: 540,
|
||||
}
|
||||
},
|
||||
linux: {
|
||||
category: 'Network',
|
||||
icon: '_icons/icon.svg',
|
||||
target: ['deb', 'zip', '7z', 'apk', 'rpm', 'AppImage', 'pacman'],
|
||||
},
|
||||
// See the following issues for more information
|
||||
// https://github.com/jordansissel/fpm/issues/1503
|
||||
// https://github.com/jgraph/drawio-desktop/issues/259
|
||||
rpm: {
|
||||
fpm: [`--rpm-rpmbuild-define=_build_id_links none`]
|
||||
},
|
||||
deb: {
|
||||
depends: [
|
||||
"libgtk-3-0",
|
||||
"libnotify4",
|
||||
"libnss3",
|
||||
"libxss1",
|
||||
"libxtst6",
|
||||
"xdg-utils",
|
||||
"libatspi2.0-0",
|
||||
"libuuid1",
|
||||
"libsecret-1-0"
|
||||
]
|
||||
},
|
||||
mac: {
|
||||
category: 'public.app-category.utilities',
|
||||
icon: '_icons/iconMac.icns',
|
||||
target: ['dmg', 'zip', '7z'],
|
||||
type: 'distribution',
|
||||
extendInfo: {
|
||||
CFBundleURLTypes: [
|
||||
'freetube'
|
||||
],
|
||||
CFBundleURLSchemes: [
|
||||
'freetube'
|
||||
]
|
||||
}
|
||||
},
|
||||
win: {
|
||||
icon: '_icons/icon.ico',
|
||||
target: ['nsis', 'zip', '7z', 'portable'],
|
||||
},
|
||||
nsis: {
|
||||
allowToChangeInstallationDirectory: true,
|
||||
oneClick: false,
|
||||
},
|
||||
}
|
||||
|
||||
module.exports = config
|
|
@ -7,6 +7,7 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin')
|
|||
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin')
|
||||
const ProcessLocalesPlugin = require('./ProcessLocalesPlugin')
|
||||
const WatchExternalFilesPlugin = require('webpack-watch-external-files-plugin')
|
||||
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
||||
|
||||
const isDevMode = process.env.NODE_ENV === 'development'
|
||||
|
||||
|
@ -131,6 +132,18 @@ const config = {
|
|||
filename: isDevMode ? '[name].css' : '[name].[contenthash].css',
|
||||
chunkFilename: isDevMode ? '[id].css' : '[id].[contenthash].css',
|
||||
}),
|
||||
new CopyWebpackPlugin({
|
||||
patterns: [
|
||||
{
|
||||
from: path.join(__dirname, '../node_modules/swiper/modules/{a11y,navigation,pagination}-element.css').replaceAll('\\', '/'),
|
||||
to: 'swiper.css',
|
||||
context: path.join(__dirname, '../node_modules/swiper/modules'),
|
||||
transformAll: (assets) => {
|
||||
return Buffer.concat(assets.map(asset => asset.data))
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
],
|
||||
resolve: {
|
||||
alias: {
|
||||
|
|
|
@ -140,6 +140,18 @@ const config = {
|
|||
new MiniCssExtractPlugin({
|
||||
filename: isDevMode ? '[name].css' : '[name].[contenthash].css',
|
||||
chunkFilename: isDevMode ? '[id].css' : '[id].[contenthash].css',
|
||||
}),
|
||||
new CopyWebpackPlugin({
|
||||
patterns: [
|
||||
{
|
||||
from: path.join(__dirname, '../node_modules/swiper/modules/{a11y,navigation,pagination}-element.css').replaceAll('\\', '/'),
|
||||
to: 'swiper.css',
|
||||
context: path.join(__dirname, '../node_modules/swiper/modules'),
|
||||
transformAll: (assets) => {
|
||||
return Buffer.concat(assets.map(asset => asset.data))
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
],
|
||||
resolve: {
|
||||
|
|
24
package.json
24
package.json
|
@ -57,14 +57,15 @@
|
|||
"@fortawesome/free-brands-svg-icons": "^6.5.1",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.5.1",
|
||||
"@fortawesome/vue-fontawesome": "^2.0.10",
|
||||
"@seald-io/nedb": "^4.0.2",
|
||||
"@seald-io/nedb": "^4.0.3",
|
||||
"@silvermine/videojs-quality-selector": "^1.3.1",
|
||||
"autolinker": "^4.0.0",
|
||||
"electron-context-menu": "^3.6.1",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"marked": "^11.0.0",
|
||||
"marked": "^11.1.0",
|
||||
"path-browserify": "^1.0.1",
|
||||
"process": "^0.11.10",
|
||||
"swiper": "^11.0.5",
|
||||
"video.js": "7.21.5",
|
||||
"videojs-contrib-quality-levels": "^3.0.0",
|
||||
"videojs-http-source-selector": "^1.1.6",
|
||||
|
@ -75,35 +76,34 @@
|
|||
"vue-i18n": "^8.28.2",
|
||||
"vue-observe-visibility": "^1.0.0",
|
||||
"vue-router": "^3.6.5",
|
||||
"vue-tiny-slider": "^0.1.39",
|
||||
"vuex": "^3.6.2",
|
||||
"youtubei.js": "^7.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.23.5",
|
||||
"@babel/core": "^7.23.6",
|
||||
"@babel/eslint-parser": "^7.23.3",
|
||||
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
||||
"@babel/preset-env": "^7.23.5",
|
||||
"@babel/preset-env": "^7.23.6",
|
||||
"@double-great/stylelint-a11y": "^2.0.2",
|
||||
"babel-loader": "^9.1.3",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"css-loader": "^6.8.1",
|
||||
"css-minimizer-webpack-plugin": "^5.0.1",
|
||||
"electron": "^27.1.3",
|
||||
"electron": "^28.0.0",
|
||||
"electron-builder": "^24.9.1",
|
||||
"eslint": "^8.55.0",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-config-standard": "^17.1.0",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-jsonc": "^2.10.0",
|
||||
"eslint-plugin-n": "^16.3.1",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-jsonc": "^2.11.1",
|
||||
"eslint-plugin-n": "^16.4.0",
|
||||
"eslint-plugin-prettier": "^5.0.1",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-unicorn": "^49.0.0",
|
||||
"eslint-plugin-vue": "^9.19.2",
|
||||
"eslint-plugin-vuejs-accessibility": "^2.2.0",
|
||||
"eslint-plugin-yml": "^1.10.0",
|
||||
"html-webpack-plugin": "^5.5.3",
|
||||
"eslint-plugin-yml": "^1.11.0",
|
||||
"html-webpack-plugin": "^5.5.4",
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-minimizer-webpack-plugin": "^4.0.0",
|
||||
"lefthook": "^1.5.5",
|
||||
|
|
|
@ -170,6 +170,10 @@ function runApp() {
|
|||
app.commandLine.appendSwitch('enable-file-cookies')
|
||||
app.commandLine.appendSwitch('ignore-gpu-blacklist')
|
||||
|
||||
// Work around for context menus in the devtools being displayed behind the window
|
||||
// https://github.com/electron/electron/issues/38790
|
||||
app.commandLine.appendSwitch('disable-features', 'WidgetLayering')
|
||||
|
||||
// command line switches need to be added before the app ready event first
|
||||
// that means we can't use the normal settings system as that is asynchronous,
|
||||
// doing it synchronously ensures that we add it before the event fires
|
||||
|
|
|
@ -4,20 +4,18 @@ import FtListPlaylist from '../ft-list-playlist/ft-list-playlist.vue'
|
|||
import FtCommunityPoll from '../ft-community-poll/ft-community-poll.vue'
|
||||
|
||||
import autolinker from 'autolinker'
|
||||
import VueTinySlider from 'vue-tiny-slider'
|
||||
|
||||
import { deepCopy, toLocalePublicationString } from '../../helpers/utils'
|
||||
import { A11y, Navigation, Pagination } from 'swiper/modules'
|
||||
|
||||
import { createWebURL, deepCopy, toLocalePublicationString } from '../../helpers/utils'
|
||||
import { youtubeImageUrlToInvidious } from '../../helpers/api/invidious'
|
||||
|
||||
import 'tiny-slider/dist/tiny-slider.css'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'FtCommunityPost',
|
||||
components: {
|
||||
'ft-list-playlist': FtListPlaylist,
|
||||
'ft-list-video': FtListVideo,
|
||||
'ft-community-poll': FtCommunityPoll,
|
||||
'tiny-slider': VueTinySlider
|
||||
'ft-community-poll': FtCommunityPoll
|
||||
},
|
||||
props: {
|
||||
data: {
|
||||
|
@ -44,26 +42,43 @@ export default defineComponent({
|
|||
}
|
||||
},
|
||||
computed: {
|
||||
tinySliderOptions: function() {
|
||||
return {
|
||||
items: 1,
|
||||
arrowKeys: false,
|
||||
controls: false,
|
||||
autoplay: false,
|
||||
slideBy: 'page',
|
||||
navPosition: 'bottom'
|
||||
}
|
||||
},
|
||||
|
||||
listType: function () {
|
||||
return this.$store.getters.getListType
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
this.parseVideoData()
|
||||
this.parseCommunityData()
|
||||
},
|
||||
mounted: function () {
|
||||
if (this.type === 'multiImage' && this.postContent.content.length > 0) {
|
||||
const swiperContainer = this.$refs.swiperContainer
|
||||
|
||||
/** @type {import('swiper/element').SwiperContainer} */
|
||||
const swiperOptions = {
|
||||
modules: [A11y, Navigation, Pagination],
|
||||
|
||||
injectStylesUrls: [
|
||||
// This file is created with the copy webpack plugin in the web and renderer webpack configs.
|
||||
// If you add more modules, please remember to add their CSS files to the list in webpack config files.
|
||||
createWebURL('/swiper.css')
|
||||
],
|
||||
|
||||
a11y: true,
|
||||
navigation: true,
|
||||
pagination: {
|
||||
enabled: true,
|
||||
clickable: true
|
||||
},
|
||||
slidesPerView: 1
|
||||
}
|
||||
|
||||
Object.assign(swiperContainer, swiperOptions)
|
||||
|
||||
swiperContainer.initialize()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
parseVideoData: function () {
|
||||
parseCommunityData: function () {
|
||||
if ('backstagePostThreadRenderer' in this.data) {
|
||||
this.postText = 'Shared post'
|
||||
this.type = 'text'
|
||||
|
|
|
@ -136,3 +136,7 @@
|
|||
min-block-size: 0 !important;
|
||||
padding-block-end: 20px;
|
||||
}
|
||||
|
||||
.sliderContainer {
|
||||
display: block;
|
||||
}
|
||||
|
|
|
@ -56,19 +56,27 @@
|
|||
class="postText"
|
||||
v-html="postText"
|
||||
/>
|
||||
<tiny-slider
|
||||
v-if="type === 'multiImage' && postContent.content.length > 0"
|
||||
v-bind="tinySliderOptions"
|
||||
class="slider"
|
||||
>
|
||||
<img
|
||||
v-for="(img, index) in postContent.content"
|
||||
:key="index"
|
||||
:src="getBestQualityImage(img)"
|
||||
class="communityImage tns-lazy-img"
|
||||
alt=""
|
||||
<div class="sliderContainer">
|
||||
<swiper-container
|
||||
v-if="type === 'multiImage' && postContent.content.length > 0"
|
||||
ref="swiperContainer"
|
||||
init="false"
|
||||
class="slider"
|
||||
>
|
||||
</tiny-slider>
|
||||
<swiper-slide
|
||||
v-for="(img, index) in postContent.content"
|
||||
:key="index"
|
||||
lazy="true"
|
||||
>
|
||||
<img
|
||||
:src="getBestQualityImage(img)"
|
||||
class="communityImage"
|
||||
alt=""
|
||||
loading="lazy"
|
||||
>
|
||||
</swiper-slide>
|
||||
</swiper-container>
|
||||
</div>
|
||||
<div
|
||||
v-if="type === 'image' && postContent.content.length > 0"
|
||||
>
|
||||
|
@ -118,4 +126,3 @@
|
|||
|
||||
<script src="./ft-community-post.js" />
|
||||
<style scoped src="./ft-community-post.scss" lang="scss" />
|
||||
<style src="./slider-style.css" lang="css" />
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
.tns-nav .tns-nav-active {
|
||||
background-color: #999;
|
||||
}
|
||||
|
||||
.tns-nav button {
|
||||
background-color: #ddd;
|
||||
border-radius: 50%;
|
||||
block-size: 1.5em;
|
||||
padding: 0;
|
||||
inline-size: 1.5em;
|
||||
}
|
|
@ -96,7 +96,6 @@
|
|||
padding: 1rem;
|
||||
border: none;
|
||||
margin-block-end: 10px;
|
||||
margin-block-start: 10px;
|
||||
font-size: 16px;
|
||||
block-size: 45px;
|
||||
color: var(--secondary-text-color);
|
||||
|
|
|
@ -315,6 +315,10 @@ export default defineComponent({
|
|||
this.$refs.input.focus()
|
||||
},
|
||||
|
||||
select() {
|
||||
this.$refs.input.select()
|
||||
},
|
||||
|
||||
blur() {
|
||||
this.$refs.input.blur()
|
||||
},
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
.ftSubscribeButton {
|
||||
position: relative;
|
||||
text-align: start;
|
||||
inline-size: fit-content;
|
||||
}
|
||||
|
||||
/* Ensures style here overrides style of .btn */
|
||||
|
|
|
@ -225,7 +225,14 @@ export default defineComponent({
|
|||
|
||||
focusSearch: function () {
|
||||
if (!this.hideSearchBar) {
|
||||
this.$refs.searchInput.focus()
|
||||
// In order to prevent Klipper's "Synchronize contents of the clipboard
|
||||
// and the selection" feature from being triggered when running
|
||||
// Chromium on KDE Plasma, it seems both focus() focus and
|
||||
// select() have to be called asynchronously (see issue #2019).
|
||||
setTimeout(() => {
|
||||
this.$refs.searchInput.focus()
|
||||
this.$refs.searchInput.select()
|
||||
}, 0)
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -9,13 +9,15 @@ function getCurrentInstance() {
|
|||
}
|
||||
|
||||
export function getProxyUrl(uri) {
|
||||
const currentInstance = getCurrentInstance()
|
||||
|
||||
const url = new URL(uri)
|
||||
const { origin } = url
|
||||
if (!url.searchParams.has('host') && origin !== getCurrentInstance()) {
|
||||
if (!url.searchParams.has('host') && origin !== currentInstance) {
|
||||
// invidious requires host param to be filled with the origin of the stream
|
||||
url.searchParams.append('host', origin.replace('https://', ''))
|
||||
}
|
||||
return url.toString().replace(origin, getCurrentInstance())
|
||||
return url.toString().replace(origin, currentInstance)
|
||||
}
|
||||
|
||||
export function invidiousAPICall({ resource, id = '', params = {}, doLogError = true, subResource = '' }) {
|
||||
|
@ -345,9 +347,8 @@ export async function getHashtagInvidious(hashtag, page) {
|
|||
* Generates a DASH manifest locally from Invidious' adaptive formats and manifest,
|
||||
* doing so allows us to support multiple audio tracks, which Invidious doesn't support yet
|
||||
* @param {import('youtubei.js').Misc.Format[]} formats
|
||||
* @param {string=} invidiousInstance the formats will be proxied through the specified instance, when one is provided
|
||||
*/
|
||||
export async function generateInvidiousDashManifestLocally(formats, invidiousInstance) {
|
||||
export async function generateInvidiousDashManifestLocally(formats) {
|
||||
// create a dummy player, as deciphering requires making requests to YouTube,
|
||||
// which we want to avoid when Invidious is selected as the backend
|
||||
const player = new Player()
|
||||
|
@ -355,12 +356,12 @@ export async function generateInvidiousDashManifestLocally(formats, invidiousIns
|
|||
|
||||
let urlTransformer
|
||||
|
||||
if (invidiousInstance) {
|
||||
if (store.getters.getProxyVideos) {
|
||||
/**
|
||||
* @param {URL} url
|
||||
*/
|
||||
urlTransformer = (url) => {
|
||||
return new URL(url.toString().replace(url.origin, invidiousInstance))
|
||||
return new URL(getProxyUrl(url.toString()))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@ import router from './router/index'
|
|||
import store from './store/index'
|
||||
import i18n from './i18n/index'
|
||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
|
||||
import { register as registerSwiper } from 'swiper/element'
|
||||
|
||||
// Please keep the list of constants sorted by name
|
||||
// to avoid code conflict and duplicate entries
|
||||
import {
|
||||
|
@ -145,6 +148,8 @@ library.add(
|
|||
faMonero
|
||||
)
|
||||
|
||||
registerSwiper()
|
||||
|
||||
Vue.component('FontAwesomeIcon', FontAwesomeIcon)
|
||||
|
||||
/* eslint-disable-next-line no-new */
|
||||
|
|
|
@ -1805,7 +1805,7 @@ export default defineComponent({
|
|||
const results = contents
|
||||
.filter(node => node.type === 'ItemSection')
|
||||
.flatMap(itemSection => itemSection.contents)
|
||||
.filter(item => item.type === 'Video' || item.type === 'Playlist')
|
||||
.filter(item => item.type === 'Video' || (!this.hideChannelPlaylists && item.type === 'Playlist'))
|
||||
.map(item => {
|
||||
if (item.type === 'Video') {
|
||||
return parseLocalListVideo(item)
|
||||
|
@ -1851,7 +1851,11 @@ export default defineComponent({
|
|||
}
|
||||
|
||||
invidiousAPICall(payload).then((response) => {
|
||||
this.searchResults = this.searchResults.concat(response)
|
||||
if (this.hideChannelPlaylists) {
|
||||
this.searchResults = this.searchResults.concat(response.filter(item => item.type !== 'playlist'))
|
||||
} else {
|
||||
this.searchResults = this.searchResults.concat(response)
|
||||
}
|
||||
this.isElementListLoading = false
|
||||
this.searchPage++
|
||||
}).catch((err) => {
|
||||
|
|
|
@ -78,8 +78,6 @@ export default defineComponent({
|
|||
firstLoad: true,
|
||||
useTheatreMode: false,
|
||||
videoPlayerReady: false,
|
||||
showDashPlayer: true,
|
||||
showLegacyPlayer: false,
|
||||
hidePlayer: false,
|
||||
isFamilyFriendly: false,
|
||||
isLive: false,
|
||||
|
@ -470,8 +468,6 @@ export default defineComponent({
|
|||
]
|
||||
}
|
||||
|
||||
this.showLegacyPlayer = true
|
||||
this.showDashPlayer = false
|
||||
this.activeFormat = 'legacy'
|
||||
this.activeSourceList = this.videoSourceList
|
||||
this.audioSourceList = null
|
||||
|
@ -542,7 +538,7 @@ export default defineComponent({
|
|||
this.downloadLinks = formats.map((format) => {
|
||||
const qualityLabel = format.quality_label ?? format.bitrate
|
||||
const fps = format.fps ? `${format.fps}fps` : 'kbps'
|
||||
const type = format.mime_type.match(/.*;/)[0].replace(';', '')
|
||||
const type = format.mime_type.split(';')[0]
|
||||
let label = `${qualityLabel} ${fps} - ${type}`
|
||||
|
||||
if (format.has_audio !== format.has_video) {
|
||||
|
@ -757,8 +753,6 @@ export default defineComponent({
|
|||
this.videoChapters = chapters
|
||||
|
||||
if (this.isLive) {
|
||||
this.showLegacyPlayer = true
|
||||
this.showDashPlayer = false
|
||||
this.activeFormat = 'legacy'
|
||||
|
||||
this.videoSourceList = [
|
||||
|
@ -796,7 +790,7 @@ export default defineComponent({
|
|||
const qualityLabel = format.qualityLabel || format.bitrate
|
||||
const itag = parseInt(format.itag)
|
||||
const fps = format.fps ? (format.fps + 'fps') : 'kbps'
|
||||
const type = format.type.match(/.*;/)[0].replace(';', '')
|
||||
const type = format.type.split(';')[0]
|
||||
let label = `${qualityLabel} ${fps} - ${type}`
|
||||
|
||||
if (itag !== 18 && itag !== 22) {
|
||||
|
@ -1140,13 +1134,8 @@ export default defineComponent({
|
|||
},
|
||||
|
||||
checkIfTimestamp: function () {
|
||||
if (typeof (this.$route.query) !== 'undefined') {
|
||||
try {
|
||||
this.timestamp = parseInt(this.$route.query.timestamp)
|
||||
} catch {
|
||||
this.timestamp = null
|
||||
}
|
||||
}
|
||||
const timestamp = parseInt(this.$route.query.timestamp)
|
||||
this.timestamp = isNaN(timestamp) || timestamp < 0 ? null : timestamp
|
||||
},
|
||||
|
||||
getLegacyFormats: function () {
|
||||
|
@ -1344,23 +1333,15 @@ export default defineComponent({
|
|||
|
||||
if (process.env.IS_ELECTRON && this.removeVideoMetaFiles) {
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
const dashFileLocation = `static/dashFiles/${videoId}.xml`
|
||||
const vttFileLocation = `static/storyboards/${videoId}.vtt`
|
||||
// only delete the file it actually exists
|
||||
if (await pathExists(dashFileLocation)) {
|
||||
await fs.rm(dashFileLocation)
|
||||
}
|
||||
if (await pathExists(vttFileLocation)) {
|
||||
await fs.rm(vttFileLocation)
|
||||
}
|
||||
} else {
|
||||
const userData = await getUserDataPath()
|
||||
const dashFileLocation = `${userData}/dashFiles/${videoId}.xml`
|
||||
const vttFileLocation = `${userData}/storyboards/${videoId}.vtt`
|
||||
|
||||
if (await pathExists(dashFileLocation)) {
|
||||
await fs.rm(dashFileLocation)
|
||||
}
|
||||
if (await pathExists(vttFileLocation)) {
|
||||
await fs.rm(vttFileLocation)
|
||||
}
|
||||
|
@ -1391,35 +1372,10 @@ export default defineComponent({
|
|||
*/
|
||||
createLocalDashManifest: async function (videoInfo) {
|
||||
const xmlData = await videoInfo.toDash()
|
||||
const userData = await getUserDataPath()
|
||||
let fileLocation
|
||||
let uriSchema
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
fileLocation = `static/dashFiles/${this.videoId}.xml`
|
||||
uriSchema = `dashFiles/${this.videoId}.xml`
|
||||
// if the location does not exist, writeFileSync will not create the directory, so we have to do that manually
|
||||
if (!(await pathExists('static/dashFiles/'))) {
|
||||
await fs.mkdir('static/dashFiles/')
|
||||
}
|
||||
|
||||
if (await pathExists(fileLocation)) {
|
||||
await fs.rm(fileLocation)
|
||||
}
|
||||
await fs.writeFile(fileLocation, xmlData)
|
||||
} else {
|
||||
fileLocation = `${userData}/dashFiles/${this.videoId}.xml`
|
||||
uriSchema = `file://${fileLocation}`
|
||||
|
||||
if (!(await pathExists(`${userData}/dashFiles/`))) {
|
||||
await fs.mkdir(`${userData}/dashFiles/`)
|
||||
}
|
||||
|
||||
await fs.writeFile(fileLocation, xmlData)
|
||||
}
|
||||
|
||||
return [
|
||||
{
|
||||
url: uriSchema,
|
||||
url: `data:application/dash+xml;charset=UTF-8,${encodeURIComponent(xmlData)}`,
|
||||
type: 'application/dash+xml',
|
||||
label: 'Dash',
|
||||
qualityLabel: 'Auto'
|
||||
|
@ -1486,10 +1442,7 @@ export default defineComponent({
|
|||
this.audioTracks = this.createAudioTracksFromLocalFormats(audioFormats)
|
||||
}
|
||||
|
||||
const manifest = await generateInvidiousDashManifestLocally(
|
||||
formats,
|
||||
this.proxyVideos ? this.currentInvidiousInstance : undefined
|
||||
)
|
||||
const manifest = await generateInvidiousDashManifestLocally(formats)
|
||||
|
||||
url = `data:application/dash+xml;charset=UTF-8,${encodeURIComponent(manifest)}`
|
||||
} else if (this.proxyVideos) {
|
||||
|
|
|
@ -0,0 +1,873 @@
|
|||
# Put the name of your locale in the same language
|
||||
Locale Name: 'Cymraeg'
|
||||
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.': >
|
||||
|
||||
# Webkit Menu Bar
|
||||
File: 'Ffeil'
|
||||
New Window: 'Ffenestr Newydd'
|
||||
Preferences: 'Dewisiadau'
|
||||
Quit: 'Gadael'
|
||||
Edit: 'Golygu'
|
||||
Undo: 'Dadwneud'
|
||||
Redo: 'Ailwneud'
|
||||
Cut: 'Torri'
|
||||
Copy: 'Copïo'
|
||||
Paste: 'Gludo'
|
||||
Delete: 'Dileu'
|
||||
Select all: 'Dewis popeth'
|
||||
Reload: 'Adnewyddu'
|
||||
Force Reload: 'Gorfodi Adnewyddu'
|
||||
Toggle Developer Tools: 'Toglo Teclynnau Datblygwr'
|
||||
Actual size: 'Maint real'
|
||||
Zoom in: 'Chwyddo i mewn'
|
||||
Zoom out: 'Chwyddo allan'
|
||||
Toggle fullscreen: 'Toglo sgrin lawn'
|
||||
Window: 'Ffenestr'
|
||||
Minimize: 'Lleihau'
|
||||
Close: 'Cau'
|
||||
Back: 'Nôl'
|
||||
Forward: 'Ymlaen'
|
||||
Open New Window: 'Agor Ffenestr Newydd'
|
||||
Go to page: 'Mynd i {page}'
|
||||
|
||||
Version {versionNumber} is now available! Click for more details: 'Mae Fersiwn {versionNumber}
|
||||
bellach ar gael! Cliciwch am fwy o manylion'
|
||||
Download From Site: 'Lawrlwytho o''r Gwefan'
|
||||
A new blog is now available, {blogTitle}. Click to view more: 'Mae blogiad newydd
|
||||
bellach ar gael, {blogTitle}. Cliciwch i weld mwy'
|
||||
Are you sure you want to open this link?: 'Ydych chi wir eisiau agor y ddolen hon?'
|
||||
|
||||
# Global
|
||||
# Anything shared among components / views should be put here
|
||||
Global:
|
||||
Videos: 'Fideos'
|
||||
Shorts: 'Shorts'
|
||||
Live: 'Byw'
|
||||
Community: 'Cymuned'
|
||||
Counts:
|
||||
Video Count: '1 fideo| {count} fideo'
|
||||
Channel Count: '1 sianel | {count} sianel'
|
||||
Subscriber Count: '1 tanysgrifiwr| {count} o danysgrifwyr'
|
||||
View Count: '1 edrychiad | {count} edrychiad'
|
||||
Watching Count: '1 yn gwylio | {count} yn gwylio'
|
||||
|
||||
# Search Bar
|
||||
Search / Go to URL: 'Chwilio / Mynd i URL'
|
||||
Search Bar:
|
||||
Clear Input: 'Clirio Mewnbwn'
|
||||
# In Filter Button
|
||||
Search Filters:
|
||||
Search Filters: 'Chwilio Hidlyddion'
|
||||
Sort By:
|
||||
Sort By: 'Trefnu'
|
||||
Most Relevant: 'Mwyaf Perthnasol'
|
||||
Rating: 'Sgôr'
|
||||
Upload Date: 'Dyddiad Uwchlwytho'
|
||||
View Count: 'Edrychiadau'
|
||||
Time:
|
||||
Time: 'Amser'
|
||||
Any Time: 'Unrhyw bryd'
|
||||
Last Hour: 'Yr Awr Diwethaf'
|
||||
Today: 'Heddiw'
|
||||
This Week: 'Yr Wythnos Hon'
|
||||
This Month: 'Y Mis Hwn'
|
||||
This Year: 'Eleni'
|
||||
Type:
|
||||
Type: 'Math'
|
||||
All Types: 'Pob Math'
|
||||
Videos: 'Fideos'
|
||||
Channels: 'Sianeli'
|
||||
Movies: 'Ffilmiau'
|
||||
#& Playlists
|
||||
Duration:
|
||||
Duration: 'Hyd'
|
||||
All Durations: 'Pob Hyd'
|
||||
Short (< 4 minutes): 'Byr (< 4 munud)'
|
||||
Medium (4 - 20 minutes): 'Canolig (4 - 20 munud)'
|
||||
Long (> 20 minutes): 'Hir (> 20 munud)'
|
||||
# On Search Page
|
||||
Search Results: 'Canlyniadau Chwilio'
|
||||
Fetching results. Please wait: 'Wrthi''n nôl canlyniadau. Arhoswch os gwelwch yn
|
||||
dda'
|
||||
Fetch more results: 'Mwy o ganlyniadau'
|
||||
There are no more results for this search: 'Dim canlyniadau pellach ar gyfer y chwiliad
|
||||
hwn'
|
||||
# Sidebar
|
||||
Subscriptions:
|
||||
# On Subscriptions Page
|
||||
Subscriptions: 'Tanysgrifiadau'
|
||||
# channels that were likely deleted
|
||||
Error Channels: 'Sianeli gyda Gwallau'
|
||||
Latest Subscriptions: 'Tanysgrifiadau Diweddaraf'
|
||||
This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: ''
|
||||
'Your Subscription list is currently empty. Start adding subscriptions to see them here.': ''
|
||||
Disabled Automatic Fetching: ''
|
||||
Empty Channels: ''
|
||||
'Getting Subscriptions. Please wait.': 'Wrthi''n nôl Tanysgrifiadau. Arhoswch os
|
||||
gwelwch yn dda.'
|
||||
Empty Posts: ''
|
||||
Refresh Subscriptions: 'Adnewyddu Tanysgrifiadau'
|
||||
Load More Videos: 'Llwytho Mwy o Fideos'
|
||||
Load More Posts: 'Llwytho Mwy o Bostiadau'
|
||||
Subscriptions Tabs: 'Tabiau Tanysgrifio'
|
||||
All Subscription Tabs Hidden: ''
|
||||
More: 'Mwy'
|
||||
Channels:
|
||||
Channels: 'Sianeli'
|
||||
Title: 'Rhestr Sianeli'
|
||||
Search bar placeholder: 'Chwilio Sianeli'
|
||||
Count: ''
|
||||
Empty: ''
|
||||
Unsubscribe: 'Dad-danysgrifio'
|
||||
Unsubscribed: ''
|
||||
Unsubscribe Prompt: ''
|
||||
Trending:
|
||||
Trending: 'Llosg'
|
||||
Default: 'Diofyn'
|
||||
Music: 'Cerddoriaeth'
|
||||
Gaming: 'Gemau'
|
||||
Movies: 'Ffilmiau'
|
||||
Trending Tabs: 'Tabiau Llosg'
|
||||
Most Popular: 'Mwyaf Poblogaidd'
|
||||
Playlists: 'Rhestrau Chwarae'
|
||||
User Playlists:
|
||||
Your Playlists: 'Eich Rhestrau Chwarae'
|
||||
Playlist Message: ''
|
||||
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: ''
|
||||
Empty Search Message: ''
|
||||
Search bar placeholder: ''
|
||||
History:
|
||||
# On History Page
|
||||
History: 'Hanes'
|
||||
Watch History: 'Hanes Gwylio'
|
||||
Your history list is currently empty.: ''
|
||||
Empty Search Message: ''
|
||||
Search bar placeholder: ""
|
||||
Settings:
|
||||
# On Settings Page
|
||||
Settings: 'Gosodiadau'
|
||||
Expand All Settings Sections: ''
|
||||
The app needs to restart for changes to take effect. Restart and apply change?: ''
|
||||
General Settings:
|
||||
General Settings: 'Gosodiadau Cyffredinol'
|
||||
Check for Updates: 'Chwilio am Ddiweddariadau'
|
||||
Check for Latest Blog Posts: ''
|
||||
Fallback to Non-Preferred Backend on Failure: ''
|
||||
Enable Search Suggestions: ''
|
||||
Default Landing Page: ''
|
||||
Locale Preference: 'Dewis Iaith'
|
||||
System Default: 'Rhagosodyn y System'
|
||||
Preferred API Backend:
|
||||
Preferred API Backend: ''
|
||||
Local API: 'API Lleol'
|
||||
Invidious API: 'API Invidious'
|
||||
Video View Type:
|
||||
Video View Type: ''
|
||||
Grid: 'Grid'
|
||||
List: 'Rhestr'
|
||||
Thumbnail Preference:
|
||||
Thumbnail Preference: 'Dewisiadau Bawdlun'
|
||||
Default: 'Diofyn'
|
||||
Beginning: 'Dechrau'
|
||||
Middle: 'Canol'
|
||||
End: 'Diwedd'
|
||||
Hidden: 'Wedi''u cuddio'
|
||||
Blur: ''
|
||||
Current Invidious Instance: ''
|
||||
The currently set default instance is {instance}: ''
|
||||
No default instance has been set: ''
|
||||
Current instance will be randomized on startup: ''
|
||||
Set Current Instance as Default: ''
|
||||
Clear Default Instance: ''
|
||||
View all Invidious instance information: ''
|
||||
Region for Trending: ''
|
||||
#! List countries
|
||||
External Link Handling:
|
||||
External Link Handling: ''
|
||||
Open Link: 'Agor Dolen'
|
||||
Ask Before Opening Link: ''
|
||||
No Action: 'Dim Gweithred'
|
||||
Theme Settings:
|
||||
Theme Settings: 'Gosodiadau Thema'
|
||||
Match Top Bar with Main Color: ''
|
||||
Expand Side Bar by Default: ''
|
||||
Disable Smooth Scrolling: ''
|
||||
UI Scale: 'Graddfa UI'
|
||||
Hide Side Bar Labels: ''
|
||||
Hide FreeTube Header Logo: ''
|
||||
Base Theme:
|
||||
Base Theme: 'Thema Sylfaenol'
|
||||
Black: 'Du'
|
||||
Dark: 'Tywyll'
|
||||
System Default: 'Rhagosodyn y System'
|
||||
Light: 'Golau'
|
||||
Dracula: ''
|
||||
Catppuccin Mocha: 'Catppuccin Mocha'
|
||||
Pastel Pink: ''
|
||||
Hot Pink: ''
|
||||
Main Color Theme:
|
||||
Main Color Theme: ''
|
||||
Red: 'Coch'
|
||||
Pink: 'Pinc'
|
||||
Purple: 'Porffor'
|
||||
Deep Purple: ''
|
||||
Indigo: 'Indigo'
|
||||
Blue: 'Glas'
|
||||
Light Blue: 'Glas Golau'
|
||||
Cyan: 'Gwyrddlas'
|
||||
Teal: 'Gwyrddlas Tywyll'
|
||||
Green: 'Gwyrdd'
|
||||
Light Green: 'Gwyrdd Golau'
|
||||
Lime: 'Leim'
|
||||
Yellow: 'Melyn'
|
||||
Amber: ''
|
||||
Orange: 'Oren'
|
||||
Deep Orange: ''
|
||||
Dracula Cyan: ''
|
||||
Dracula Green: ''
|
||||
Dracula Orange: ''
|
||||
Dracula Pink: ''
|
||||
Dracula Purple: ''
|
||||
Dracula Red: ''
|
||||
Dracula Yellow: ''
|
||||
Catppuccin Mocha Rosewater: ''
|
||||
Catppuccin Mocha Flamingo: ''
|
||||
Catppuccin Mocha Pink: ''
|
||||
Catppuccin Mocha Mauve: ''
|
||||
Catppuccin Mocha Red: ''
|
||||
Catppuccin Mocha Maroon: ''
|
||||
Catppuccin Mocha Peach: ''
|
||||
Catppuccin Mocha Yellow: ''
|
||||
Catppuccin Mocha Green: ''
|
||||
Catppuccin Mocha Teal: ''
|
||||
Catppuccin Mocha Sky: ''
|
||||
Catppuccin Mocha Sapphire: ''
|
||||
Catppuccin Mocha Blue: ''
|
||||
Catppuccin Mocha Lavender: ''
|
||||
Secondary Color Theme: ''
|
||||
#* Main Color Theme
|
||||
Player Settings:
|
||||
Player Settings: 'Gosodiadau Chwaraewr'
|
||||
Force Local Backend for Legacy Formats: ''
|
||||
Play Next Video: ''
|
||||
Turn on Subtitles by Default: ''
|
||||
Autoplay Videos: 'Awto-chwarae Fideos'
|
||||
Proxy Videos Through Invidious: ''
|
||||
Autoplay Playlists: 'Awto-chwarae Rhestrau Chwarae'
|
||||
Enable Theatre Mode by Default: ''
|
||||
Scroll Volume Over Video Player: ''
|
||||
Scroll Playback Rate Over Video Player: ''
|
||||
Skip by Scrolling Over Video Player: ''
|
||||
Display Play Button In Video Player: ''
|
||||
Enter Fullscreen on Display Rotate: ''
|
||||
Next Video Interval: ''
|
||||
Fast-Forward / Rewind Interval: ''
|
||||
Default Volume: 'Sain Diofyn'
|
||||
Default Playback Rate: ''
|
||||
Max Video Playback Rate: ''
|
||||
Video Playback Rate Interval: ''
|
||||
Default Video Format:
|
||||
Default Video Format: ''
|
||||
Dash Formats: 'Fformatau DASH'
|
||||
Legacy Formats: 'Hen Fformatau'
|
||||
Audio Formats: 'Fformatau Sain'
|
||||
Default Quality:
|
||||
Default Quality: 'Ansawdd Diofyn'
|
||||
Auto: 'Awtomatig'
|
||||
144p: '144p'
|
||||
240p: '240p'
|
||||
360p: '360p'
|
||||
480p: '480p'
|
||||
720p: '720p'
|
||||
1080p: '1080p'
|
||||
1440p: '1440p'
|
||||
4k: '4k'
|
||||
8k: '8k'
|
||||
Allow DASH AV1 formats: ''
|
||||
Screenshot:
|
||||
Enable: 'Galluogi Sgrinlun'
|
||||
Format Label: 'Fformat Sgrinluniau'
|
||||
Quality Label: 'Ansawdd Sgrinlun'
|
||||
Ask Path: ''
|
||||
Folder Label: 'Ffolder Sgrinlun'
|
||||
Folder Button: 'Dewis Ffolder'
|
||||
File Name Label: 'Patrwm Enw Ffeil'
|
||||
File Name Tooltip: ''
|
||||
Error:
|
||||
Forbidden Characters: 'Nodau Gwahardd'
|
||||
Empty File Name: ''
|
||||
Comment Auto Load:
|
||||
Comment Auto Load: ''
|
||||
External Player Settings:
|
||||
External Player Settings: ''
|
||||
External Player: 'Chwaraewr Allanol'
|
||||
Ignore Unsupported Action Warnings: ''
|
||||
Custom External Player Executable: ''
|
||||
Custom External Player Arguments: ''
|
||||
Players:
|
||||
None:
|
||||
Name: 'Dim'
|
||||
Privacy Settings:
|
||||
Privacy Settings: 'Gosodiadau Preifatrwydd'
|
||||
Remember History: 'Cadw Hanes'
|
||||
Save Watched Progress: ''
|
||||
Save Watched Videos With Last Viewed Playlist: ''
|
||||
Automatically Remove Video Meta Files: ''
|
||||
Clear Search Cache: ''
|
||||
Are you sure you want to clear out your search cache?: ''
|
||||
Search cache has been cleared: ''
|
||||
Remove Watch History: ''
|
||||
Are you sure you want to remove your entire watch history?: ''
|
||||
Watch history has been cleared: ''
|
||||
Remove All Subscriptions / Profiles: ''
|
||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: ''
|
||||
Subscription Settings:
|
||||
Subscription Settings: 'Gosodiadau Tanysgrifio'
|
||||
Hide Videos on Watch: ''
|
||||
Fetch Feeds from RSS: ''
|
||||
Manage Subscriptions: 'Rheoli Tanysgrifiadau'
|
||||
Fetch Automatically: ''
|
||||
Only Show Latest Video for Each Channel: ''
|
||||
Distraction Free Settings:
|
||||
Distraction Free Settings: ''
|
||||
Sections:
|
||||
Side Bar: 'Bar Ochr'
|
||||
Subscriptions Page: 'Tudalen Tanysgrifiadau'
|
||||
Channel Page: 'Tudalen Sianel'
|
||||
Watch Page: 'Tudalen Wylio'
|
||||
General: 'Cyffredinol'
|
||||
Hide Video Views: ''
|
||||
Hide Video Likes And Dislikes: ''
|
||||
Hide Channel Subscribers: ''
|
||||
Hide Comment Likes: ''
|
||||
Hide Recommended Videos: ''
|
||||
Hide Trending Videos: 'Cuddio Fideos Llosg'
|
||||
Hide Popular Videos: 'Cuddio Fideos Poblogaidd'
|
||||
Hide Playlists: 'Cuddio Rhestrau Chwarae'
|
||||
Hide Live Chat: ''
|
||||
Hide Active Subscriptions: ''
|
||||
Hide Video Description: ''
|
||||
Hide Comments: 'Cuddio Sylwadau'
|
||||
Hide Profile Pictures in Comments: ''
|
||||
Display Titles Without Excessive Capitalisation: ''
|
||||
Hide Live Streams: ''
|
||||
Hide Upcoming Premieres: ''
|
||||
Hide Sharing Actions: ''
|
||||
Hide Chapters: 'Cuddio Siapteri'
|
||||
Hide Channels: ''
|
||||
Hide Channels Disabled Message: ''
|
||||
Hide Channels Placeholder: 'ID Sianel'
|
||||
Hide Channels Invalid: ''
|
||||
Hide Channels API Error: ''
|
||||
Hide Channels Already Exists: ''
|
||||
Hide Featured Channels: ''
|
||||
Hide Channel Playlists: ''
|
||||
Hide Channel Community: ''
|
||||
Hide Channel Shorts: ''
|
||||
Hide Channel Podcasts: ''
|
||||
Hide Channel Releases: ''
|
||||
Hide Subscriptions Videos: ''
|
||||
Hide Subscriptions Shorts: ''
|
||||
Hide Subscriptions Live: ''
|
||||
Hide Subscriptions Community: ''
|
||||
Data Settings:
|
||||
Data Settings: 'Gosodiadau Data'
|
||||
Select Import Type: ''
|
||||
Select Export Type: ''
|
||||
Import Subscriptions: 'Mewnforio Tanysgrifiadau'
|
||||
Subscription File: 'Ffeil Tanysgrifio'
|
||||
History File: 'Ffeil Hanes'
|
||||
Playlist File: 'Ffeil Rhestr Chwarae'
|
||||
Check for Legacy Subscriptions: ''
|
||||
Export Subscriptions: 'Allforio Tanysgrifiadau'
|
||||
Export FreeTube: 'Allforio FreeTube'
|
||||
Export YouTube: 'Allforio YouTube'
|
||||
Export NewPipe: 'Allforio NewPipe'
|
||||
Import History: 'Mewnforio Hanes'
|
||||
Export History: 'Allforio Hanes'
|
||||
Import Playlists: 'Mewnforio Rhestrau Chwarae'
|
||||
Export Playlists: 'Allforio Rhestrau Chwarae'
|
||||
Profile object has insufficient data, skipping item: ''
|
||||
All subscriptions and profiles have been successfully imported: ''
|
||||
All subscriptions have been successfully imported: ''
|
||||
One or more subscriptions were unable to be imported: ''
|
||||
Invalid subscriptions file: ''
|
||||
This might take a while, please wait: ''
|
||||
Invalid history file: ''
|
||||
Subscriptions have been successfully exported: ''
|
||||
History object has insufficient data, skipping item: ''
|
||||
All watched history has been successfully imported: ''
|
||||
All watched history has been successfully exported: ''
|
||||
Playlist insufficient data: ''
|
||||
All playlists has been successfully imported: ''
|
||||
All playlists has been successfully exported: ''
|
||||
Unable to read file: ''
|
||||
Unable to write file: ''
|
||||
Unknown data key: ''
|
||||
How do I import my subscriptions?: ''
|
||||
Manage Subscriptions: 'Rheoli Tanysgrifiadau'
|
||||
Proxy Settings:
|
||||
Proxy Settings: 'Gosodiadau Dirprwy'
|
||||
Enable Tor / Proxy: ''
|
||||
Proxy Protocol: 'Protocol Dirprwy'
|
||||
Proxy Host: 'Gweinydd Dirprwy'
|
||||
Proxy Port Number: ''
|
||||
Clicking on Test Proxy will send a request to: ''
|
||||
Test Proxy: 'Profi Dirprwy'
|
||||
Your Info: 'Eich Gwybodaeth'
|
||||
Ip: 'IP'
|
||||
Country: 'Gwlad'
|
||||
Region: 'Rhanbarth'
|
||||
City: 'Dinas'
|
||||
Error getting network information. Is your proxy configured properly?: ''
|
||||
SponsorBlock Settings:
|
||||
SponsorBlock Settings: 'Gosodiadau SponsorBlock'
|
||||
Enable SponsorBlock: 'Galluogi SponsorBlock'
|
||||
'SponsorBlock API Url (Default is https://sponsor.ajay.app)': ''
|
||||
Notify when sponsor segment is skipped: ''
|
||||
UseDeArrowTitles: ''
|
||||
Skip Options:
|
||||
Skip Option: 'Opsiwn Hepgor'
|
||||
Auto Skip: 'Awto-Hepgor'
|
||||
Show In Seek Bar: ''
|
||||
Prompt To Skip: ''
|
||||
Do Nothing: 'Gwneud Dim'
|
||||
Category Color: 'Lliw Categori'
|
||||
Parental Control Settings:
|
||||
Parental Control Settings: ''
|
||||
Hide Unsubscribe Button: 'Cuddio Botwm Dad-danysgrifio'
|
||||
Show Family Friendly Only: ''
|
||||
Hide Search Bar: 'Cuddio Bar Chwilio'
|
||||
Download Settings:
|
||||
Download Settings: 'Gosodiadau Lawrlwytho'
|
||||
Ask Download Path: ''
|
||||
Choose Path: 'Dewiswch Lwybr'
|
||||
Download Behavior: 'Ymddygiad Lawrlwytho'
|
||||
Download in app: ''
|
||||
Open in web browser: ''
|
||||
Experimental Settings:
|
||||
Experimental Settings: 'Gosodiadau Arbrofol'
|
||||
Warning: ''
|
||||
Replace HTTP Cache: ''
|
||||
Password Dialog:
|
||||
Password: 'Cyfrinair'
|
||||
Enter Password To Unlock: ''
|
||||
Password Incorrect: 'Cyfrinair Anghywir'
|
||||
Unlock: 'Datgloi'
|
||||
Password Settings:
|
||||
Password Settings: 'Gosodiadau Cyfrinair'
|
||||
Set Password To Prevent Access: ''
|
||||
Set Password: 'Gosod Cyfrinair'
|
||||
Remove Password: 'Tynnu Cyfrinair'
|
||||
About:
|
||||
#On About page
|
||||
About: 'Ynghylch'
|
||||
Beta: 'Beta'
|
||||
Source code: 'Cod ffynhonnell'
|
||||
Licensed under the AGPLv3: ''
|
||||
View License: 'Gweld Trwydded'
|
||||
Downloads / Changelog: ''
|
||||
GitHub releases: ''
|
||||
Help: 'Cymorth'
|
||||
FreeTube Wiki: 'Wici FreeTube'
|
||||
FAQ: 'Cwestiynau Cyffredin'
|
||||
Discussions: 'Sgyrsiau'
|
||||
Report a problem: ''
|
||||
GitHub issues: 'Materion GitHub'
|
||||
Please check for duplicates before posting: ''
|
||||
Website: 'Gwefan'
|
||||
Blog: 'Blog'
|
||||
Email: 'E-bost'
|
||||
Mastodon: 'Mastodon'
|
||||
Chat on Matrix: ''
|
||||
Please read the: ''
|
||||
room rules: 'rheolau ystafell'
|
||||
Translate: 'Cyfieithu'
|
||||
Credits: 'Cydnabyddiaeth'
|
||||
FreeTube is made possible by: ''
|
||||
these people and projects: ''
|
||||
Donate: 'Rhoi arian'
|
||||
|
||||
Profile:
|
||||
Profile Settings: 'Gosodiadau Proffil'
|
||||
Toggle Profile List: ''
|
||||
Profile Select: 'Dewis Proffil'
|
||||
Profile Filter: 'Hidlydd Proffil'
|
||||
All Channels: 'Pob Sianel'
|
||||
Profile Manager: 'Rheoli Proffiliau'
|
||||
Create New Profile: 'Creu Proffil Newydd'
|
||||
Edit Profile: 'Golygu Proffil'
|
||||
Edit Profile Name: ''
|
||||
Create Profile Name: ''
|
||||
Profile Name: 'Enw Proffil'
|
||||
Color Picker: 'Dewisydd Lliw'
|
||||
Custom Color: 'Lliw Addas'
|
||||
Profile Preview: 'Rhagweld Proffil'
|
||||
Create Profile: 'Creu Proffil'
|
||||
Update Profile: 'Diweddaru Proffil'
|
||||
Make Default Profile: ''
|
||||
Delete Profile: 'Dileu Proffil'
|
||||
Are you sure you want to delete this profile?: ''
|
||||
All subscriptions will also be deleted.: ''
|
||||
Profile could not be found: ''
|
||||
Your profile name cannot be empty: ''
|
||||
Profile has been created: ''
|
||||
Profile has been updated: ''
|
||||
Your default profile has been set to {profile}: ''
|
||||
Removed {profile} from your profiles: ''
|
||||
Your default profile has been changed to your primary profile: ''
|
||||
'{profile} is now the active profile': ''
|
||||
Subscription List: 'Rhestr Tanysgrifiadau'
|
||||
Other Channels: 'Sianeli Eraill'
|
||||
'{number} selected': ''
|
||||
Select All: 'Dewis Popeth'
|
||||
Select None: 'Dewis Dim'
|
||||
Delete Selected: ''
|
||||
Add Selected To Profile: ''
|
||||
No channel(s) have been selected: ''
|
||||
? This is your primary profile. Are you sure you want to delete the selected channels? The
|
||||
same channels will be deleted in any profile they are found in.
|
||||
: ''
|
||||
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: ''
|
||||
Close Profile Dropdown: ''
|
||||
Open Profile Dropdown: ''
|
||||
#On Channel Page
|
||||
Channel:
|
||||
Subscribe: 'Tanysgrifio'
|
||||
Unsubscribe: 'Dad-danysgrifio'
|
||||
Channel has been removed from your subscriptions: ''
|
||||
Removed subscription from {count} other channel(s): ''
|
||||
Added channel to your subscriptions: ''
|
||||
Search Channel: 'Chwilio Sianel'
|
||||
Your search results have returned 0 results: ''
|
||||
Sort By: 'Trefnu yn ôl'
|
||||
This channel does not exist: ''
|
||||
This channel does not allow searching: ''
|
||||
This channel is age-restricted and currently cannot be viewed in FreeTube.: ''
|
||||
Channel Tabs: 'Tabiau Sianel'
|
||||
Videos:
|
||||
Videos: 'Fideos'
|
||||
This channel does not currently have any videos: ''
|
||||
Sort Types:
|
||||
Newest: 'Diweddaraf'
|
||||
Oldest: 'Hynaf'
|
||||
Most Popular: 'Mwyaf Poblogaidd'
|
||||
Shorts:
|
||||
This channel does not currently have any shorts: ''
|
||||
Live:
|
||||
Live: 'Byw'
|
||||
This channel does not currently have any live streams: ''
|
||||
Playlists:
|
||||
Playlists: 'Rhestrau Chwarae'
|
||||
This channel does not currently have any playlists: ''
|
||||
Sort Types:
|
||||
Last Video Added: ''
|
||||
Newest: 'Diweddaraf'
|
||||
Oldest: 'Hynaf'
|
||||
Podcasts:
|
||||
Podcasts: 'Podlediadau'
|
||||
This channel does not currently have any podcasts: ''
|
||||
Releases:
|
||||
Releases: 'Rhyddhadau'
|
||||
This channel does not currently have any releases: ''
|
||||
About:
|
||||
About: 'Ynghylch'
|
||||
Channel Description: 'Disgrifiad y Sianel'
|
||||
Tags:
|
||||
Tags: 'Tagiau'
|
||||
Search for: ''
|
||||
Details: 'Manylion'
|
||||
Joined: 'Dyddiad ymuno'
|
||||
Location: 'Lleoliad'
|
||||
Featured Channels: 'Sianeli Dethol'
|
||||
Community:
|
||||
This channel currently does not have any posts: ''
|
||||
votes: '{votes} o bleidleisiau'
|
||||
Reveal Answers: 'Datgloi Atebion'
|
||||
Hide Answers: 'Cuddio Atebion'
|
||||
Video:
|
||||
Mark As Watched: ''
|
||||
Remove From History: ''
|
||||
Video has been marked as watched: ''
|
||||
Video has been removed from your history: ''
|
||||
Save Video: 'Cadw Fideo'
|
||||
Video has been saved: ''
|
||||
Video has been removed from your saved list: ''
|
||||
Open in YouTube: ''
|
||||
Copy YouTube Link: ''
|
||||
Open YouTube Embedded Player: ''
|
||||
Copy YouTube Embedded Player Link: ''
|
||||
Open in Invidious: ''
|
||||
Copy Invidious Link: ''
|
||||
Open Channel in YouTube: ''
|
||||
Copy YouTube Channel Link: ''
|
||||
Open Channel in Invidious: ''
|
||||
Copy Invidious Channel Link: ''
|
||||
Hide Channel: 'Cuddio Sianel'
|
||||
Unhide Channel: 'Dangos Sianel'
|
||||
Views: 'Edrychiadau'
|
||||
Loop Playlist: 'Ailadrodd Rhestr Chwarae'
|
||||
Shuffle Playlist: ''
|
||||
Reverse Playlist: ''
|
||||
Play Next Video: ''
|
||||
Play Previous Video: ''
|
||||
Pause on Current Video: ''
|
||||
Watched: 'Wedi gwylio'
|
||||
Autoplay: 'Awtochwarae'
|
||||
Starting soon, please refresh the page to check again: ''
|
||||
# As in a Live Video
|
||||
Premieres on: ''
|
||||
Premieres: ''
|
||||
Upcoming: 'I ddod'
|
||||
Live: 'Byw'
|
||||
Live Now: 'Yn Fyw'
|
||||
Live Chat: 'Sgwrs Byw'
|
||||
Enable Live Chat: ''
|
||||
Live Chat is currently not supported in this build.: ''
|
||||
'Chat is disabled or the Live Stream has ended.': ''
|
||||
Live chat is enabled. Chat messages will appear here once sent.: ''
|
||||
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': ''
|
||||
'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': ''
|
||||
Show Super Chat Comment: ''
|
||||
Scroll to Bottom: ''
|
||||
Download Video: 'Lawrlwytho Fideo'
|
||||
video only: 'fideo yn unig'
|
||||
audio only: 'sain yn unig'
|
||||
Audio:
|
||||
Low: 'Isel'
|
||||
Medium: 'Canolig'
|
||||
High: 'Uwch'
|
||||
Best: 'Gorau'
|
||||
Published:
|
||||
Jan: 'Ion'
|
||||
Feb: 'Chw'
|
||||
Mar: 'Maw'
|
||||
Apr: 'Ebr'
|
||||
May: 'Mai'
|
||||
Jun: 'Meh'
|
||||
Jul: 'Gor'
|
||||
Aug: 'Awst'
|
||||
Sep: 'Medi'
|
||||
Oct: 'Hyd'
|
||||
Nov: 'Tach'
|
||||
Dec: 'Rhag'
|
||||
Second: 'Eiliad'
|
||||
Seconds: 'Eiliadau'
|
||||
Minute: 'Munud'
|
||||
Minutes: 'Munudau'
|
||||
Hour: 'Awr'
|
||||
Hours: 'Oriau'
|
||||
Day: 'Diwrnod'
|
||||
Days: 'Diwrnodau'
|
||||
Week: 'Wythnos'
|
||||
Weeks: 'Wythnosau'
|
||||
Month: 'Mis'
|
||||
Months: 'Misoedd'
|
||||
Year: 'Blwyddyn'
|
||||
Years: 'Blynyddoedd'
|
||||
Ago: 'Yn ôl'
|
||||
Upcoming: ''
|
||||
In less than a minute: ''
|
||||
Published on: ''
|
||||
Streamed on: ''
|
||||
Started streaming on: ''
|
||||
translated from English: ''
|
||||
Publicationtemplate: ''
|
||||
Skipped segment: ''
|
||||
Sponsor Block category:
|
||||
sponsor: 'Noddwr'
|
||||
intro: 'Cyflwyniad'
|
||||
outro: 'Diweddglo'
|
||||
self-promotion: 'Hunan-Hyrwyddo'
|
||||
interaction: 'Rhyngweithiad'
|
||||
music offtopic: ''
|
||||
recap: 'Crynhoi'
|
||||
filler: 'Dwli'
|
||||
External Player:
|
||||
OpenInTemplate: ''
|
||||
video: 'fideo'
|
||||
playlist: 'rhestr chwarae'
|
||||
OpeningTemplate: ''
|
||||
UnsupportedActionTemplate: ''
|
||||
Unsupported Actions:
|
||||
starting video at offset: ''
|
||||
setting a playback rate: ''
|
||||
opening playlists: ''
|
||||
opening specific video in a playlist (falling back to opening the video): ''
|
||||
reversing playlists: ''
|
||||
shuffling playlists: ''
|
||||
looping playlists: ''
|
||||
Stats:
|
||||
Video statistics are not available for legacy videos: ''
|
||||
Video ID: 'ID fideo'
|
||||
Resolution: 'Eglurdeb'
|
||||
Player Dimensions: ''
|
||||
Bitrate: 'Cyfradd didau'
|
||||
Volume: 'Sain'
|
||||
Bandwidth: 'Lled band'
|
||||
Buffered: ''
|
||||
Dropped / Total Frames: ''
|
||||
Mimetype: 'Math mime'
|
||||
#& Videos
|
||||
Videos:
|
||||
#& Sort By
|
||||
Sort By:
|
||||
Newest: 'Diweddaraf'
|
||||
Oldest: 'Hynaf'
|
||||
#& Most Popular
|
||||
#& Playlists
|
||||
Playlist:
|
||||
#& About
|
||||
Playlist: 'Rhestr chwarae'
|
||||
View Full Playlist: ''
|
||||
Videos: 'Fideos'
|
||||
View: 'Edrychiad'
|
||||
Views: 'Edrychiadau'
|
||||
Last Updated On: ''
|
||||
|
||||
# On Video Watch Page
|
||||
#* Published
|
||||
#& Views
|
||||
Toggle Theatre Mode: ''
|
||||
Change Format:
|
||||
Change Media Formats: ''
|
||||
Use Dash Formats: ''
|
||||
Use Legacy Formats: ''
|
||||
Use Audio Formats: ''
|
||||
Dash formats are not available for this video: ''
|
||||
Audio formats are not available for this video: ''
|
||||
Share:
|
||||
Share Video: ''
|
||||
Share Channel: 'Rhannu Sianel'
|
||||
Share Playlist: 'Rhannu Rhestr Chwarae'
|
||||
Include Timestamp: 'Cynnwys Amser'
|
||||
Copy Link: 'Copïo Dolen'
|
||||
Open Link: 'Agor Dolen'
|
||||
Copy Embed: ''
|
||||
Open Embed: ''
|
||||
# On Click
|
||||
Invidious URL copied to clipboard: ''
|
||||
Invidious Embed URL copied to clipboard: ''
|
||||
Invidious Channel URL copied to clipboard: ''
|
||||
YouTube URL copied to clipboard: ''
|
||||
YouTube Embed URL copied to clipboard: ''
|
||||
YouTube Channel URL copied to clipboard: ''
|
||||
Clipboard:
|
||||
Copy failed: ''
|
||||
Cannot access clipboard without a secure connection: ''
|
||||
|
||||
Chapters:
|
||||
Chapters: 'Penodau'
|
||||
'Chapters list visible, current chapter: {chapterName}': ''
|
||||
'Chapters list hidden, current chapter: {chapterName}': ''
|
||||
|
||||
Mini Player: ''
|
||||
Comments:
|
||||
Comments: 'Sylwadau'
|
||||
Click to View Comments: ''
|
||||
Getting comment replies, please wait: ''
|
||||
There are no more comments for this video: ''
|
||||
Show Comments: 'Dangos Sylwadau'
|
||||
Hide Comments: 'Cuddio Sylwadau'
|
||||
Sort by: 'Trefnu yn ôl'
|
||||
Top comments: 'Sylwadau poblogaidd'
|
||||
Newest first: 'Diweddaraf yn gyntaf'
|
||||
View {replyCount} replies: ''
|
||||
# Context: View 10 Replies, View 1 Reply, View 1 Reply from Owner, View 2 Replies from Owner and others
|
||||
View: 'Edrychiad'
|
||||
Hide: 'Cuddio'
|
||||
Replies: 'Atebion'
|
||||
Show More Replies: ''
|
||||
Reply: 'Ateb'
|
||||
From {channelName}: 'gan {channelName}'
|
||||
And others: 'ac eraill'
|
||||
There are no comments available for this video: ''
|
||||
Load More Comments: ''
|
||||
No more comments available: ''
|
||||
Pinned by: 'Piniwyd gan'
|
||||
Member: 'Aelod'
|
||||
Subscribed: 'Tanysgrifiwyd'
|
||||
Hearted: 'Hoffwyd'
|
||||
Up Next: 'Nesaf'
|
||||
|
||||
#Tooltips
|
||||
Tooltips:
|
||||
General Settings:
|
||||
Preferred API Backend: ''
|
||||
Fallback to Non-Preferred Backend on Failure: ''
|
||||
Thumbnail Preference: ''
|
||||
Invidious Instance: ''
|
||||
Region for Trending: ''
|
||||
External Link Handling: |
|
||||
Player Settings:
|
||||
Force Local Backend for Legacy Formats: ''
|
||||
Proxy Videos Through Invidious: ''
|
||||
Default Video Format: ''
|
||||
Allow DASH AV1 formats: ''
|
||||
Scroll Playback Rate Over Video Player: ''
|
||||
Skip by Scrolling Over Video Player: ''
|
||||
External Player Settings:
|
||||
External Player: ''
|
||||
Custom External Player Executable: ''
|
||||
Ignore Warnings: ''
|
||||
Custom External Player Arguments: ''
|
||||
DefaultCustomArgumentsTemplate: ""
|
||||
Distraction Free Settings:
|
||||
Hide Channels: ''
|
||||
Hide Subscriptions Live: ''
|
||||
Subscription Settings:
|
||||
Fetch Feeds from RSS: ''
|
||||
Fetch Automatically: ''
|
||||
Privacy Settings:
|
||||
Remove Video Meta Files: ''
|
||||
Experimental Settings:
|
||||
Replace HTTP Cache: ''
|
||||
SponsorBlock Settings:
|
||||
UseDeArrowTitles: ''
|
||||
|
||||
# Toast Messages
|
||||
Local API Error (Click to copy): ''
|
||||
Invidious API Error (Click to copy): ''
|
||||
Falling back to Invidious API: ''
|
||||
Falling back to the local API: ''
|
||||
This video is unavailable because of missing formats. This can happen due to country unavailability.: ''
|
||||
Subscriptions have not yet been implemented: ''
|
||||
Unknown YouTube url type, cannot be opened in app: ''
|
||||
Hashtags have not yet been implemented, try again later: ''
|
||||
Loop is now disabled: ''
|
||||
Loop is now enabled: ''
|
||||
Shuffle is now disabled: ''
|
||||
Shuffle is now enabled: ''
|
||||
The playlist has been reversed: ''
|
||||
Playing Next Video: ''
|
||||
Playing Previous Video: ''
|
||||
Playlist will not pause when current video is finished: ''
|
||||
Playlist will pause when current video is finished: ''
|
||||
Playing Next Video Interval: ''
|
||||
Canceled next video autoplay: ''
|
||||
|
||||
Default Invidious instance has been set to {instance}: ''
|
||||
Default Invidious instance has been cleared: ''
|
||||
'The playlist has ended. Enable loop to continue playing': ''
|
||||
Age Restricted:
|
||||
This {videoOrPlaylist} is age restricted: ''
|
||||
Type:
|
||||
Channel: 'Sianel'
|
||||
Video: 'Fideo'
|
||||
External link opening has been disabled in the general settings: ''
|
||||
Downloading has completed: ''
|
||||
Starting download: ''
|
||||
Downloading failed: ''
|
||||
Screenshot Success: ''
|
||||
Screenshot Error: ''
|
||||
Channel Hidden: ''
|
||||
Channel Unhidden: ''
|
||||
|
||||
Hashtag:
|
||||
Hashtag: 'Hashnod'
|
||||
This hashtag does not currently have any videos: ''
|
||||
Yes: 'Ie'
|
||||
No: 'Na'
|
||||
Ok: 'Iawn'
|
|
@ -324,6 +324,7 @@ Settings:
|
|||
Fetch Feeds from RSS: 'Laadi RSS-uudisvood'
|
||||
Manage Subscriptions: 'Halda tellimusi'
|
||||
Fetch Automatically: Laadi tellimuste voog automaatselt
|
||||
Only Show Latest Video for Each Channel: Iga kanali puhul näita vaid viimast videot
|
||||
Data Settings:
|
||||
Data Settings: 'Andmehaldus'
|
||||
Select Import Type: 'Vali imporditava faili vorming'
|
||||
|
@ -488,6 +489,7 @@ Settings:
|
|||
Remove Password: Eemalda salasõna
|
||||
Set Password: Määra salasõna
|
||||
Set Password To Prevent Access: Vältimaks ligipääsu seadistustele määra salasõna
|
||||
Expand All Settings Sections: Laienda kõik seadistuste lõigud
|
||||
About:
|
||||
#On About page
|
||||
About: 'Teave'
|
||||
|
@ -563,6 +565,11 @@ Profile:
|
|||
Profile Filter: Sirvi profiile
|
||||
Profile Settings: Profiili seadistused
|
||||
Toggle Profile List: Lülita profiilide loend sisse/välja
|
||||
Profile Name: Profiili nimi
|
||||
Edit Profile Name: Muuda profiili nime
|
||||
Create Profile Name: Loo profiilile nimi
|
||||
Open Profile Dropdown: Ava profiili rippmenüü
|
||||
Close Profile Dropdown: Sulge profiili rippmenüü
|
||||
Channel:
|
||||
Subscribe: 'Telli'
|
||||
Unsubscribe: 'Lõpeta tellimus'
|
||||
|
|
|
@ -757,6 +757,8 @@ Video:
|
|||
'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': Live-chat
|
||||
ei ole käytettävissä tässä suoratoistossa. Lataaja on saattanut poistaa sen käytöstä.
|
||||
Pause on Current Video: Keskeytä nykyiseen videoon
|
||||
Unhide Channel: Näytä kanava
|
||||
Hide Channel: Piilota kanava
|
||||
Videos:
|
||||
#& Sort By
|
||||
Sort By:
|
||||
|
@ -892,6 +894,9 @@ Profile:
|
|||
Subscription List: Tilauslista
|
||||
Profile Filter: Profiilisuodatin
|
||||
Profile Settings: Profiiliasetukset
|
||||
Profile Name: Profiilin nimi
|
||||
Edit Profile Name: Muokkaa profiilin nimeä
|
||||
Create Profile Name: Luo profiilin nimi
|
||||
Version {versionNumber} is now available! Click for more details: Versio {versionNumber}
|
||||
on nyt saatavilla! Napsauta saadaksesi lisätietoja
|
||||
This video is unavailable because of missing formats. This can happen due to country unavailability.: Tämä
|
||||
|
@ -1027,3 +1032,6 @@ Playlist will pause when current video is finished: Soittolista keskeytetään,
|
|||
nykyinen video päättyy
|
||||
Playlist will not pause when current video is finished: Soittolistaa ei keskeytetä,
|
||||
kun nykyinen video päättyy
|
||||
Channel Hidden: '{channel} lisätty kanavasuodattimeen'
|
||||
Go to page: Siirry sivulle {page}
|
||||
Channel Unhidden: '{channel} poistettu kanavasuodattimesta'
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Put the name of your locale in the same language
|
||||
Locale Name: 'magyar'
|
||||
Locale Name: 'English (US)'
|
||||
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.': >-
|
||||
|
@ -103,8 +103,8 @@ Subscriptions:
|
|||
elkerülésére
|
||||
Load More Videos: További videók betöltése
|
||||
Error Channels: Hibás csatornák
|
||||
Disabled Automatic Fetching: Az önműködő feliratkozási kérés letiltva. Frissítse
|
||||
a feliratkozást a megtekintéséhez.
|
||||
Disabled Automatic Fetching: Ön kikapcsolta a feliratkozások automatikus lekérdezését.
|
||||
Frissítse a feliratkozásokat, hogy itt láthassa őket.
|
||||
Empty Channels: A feliratkozott csatornák jelenleg nem tartalmaznak videókat.
|
||||
All Subscription Tabs Hidden: Az összes feliratkozási lap el van rejtve. Az itteni
|
||||
tartalom megtekintéséhez, kérjük, jelenítse meg néhány lap elrejtését a(z) „{settingsSection}”
|
||||
|
@ -168,7 +168,7 @@ Settings:
|
|||
Middle: 'Középső'
|
||||
End: 'Vég'
|
||||
Hidden: Rejtett
|
||||
Blur: Elhomályosítás
|
||||
Blur: Kikockázás
|
||||
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious példány
|
||||
(Alapértelmezés: https://invidious.snopyta.org)'
|
||||
Region for Trending: 'Népszerű területe'
|
||||
|
@ -253,9 +253,9 @@ Settings:
|
|||
örökölt formátumokra'
|
||||
Play Next Video: 'Következő videó lejátszása'
|
||||
Turn on Subtitles by Default: 'Alapértelmezés szerint feliratok megjelenítése'
|
||||
Autoplay Videos: 'Videók önműködően lejátszása'
|
||||
Autoplay Videos: 'Videók automatikus lejátszása'
|
||||
Proxy Videos Through Invidious: 'Meghatalmazás videók az Invidious révén'
|
||||
Autoplay Playlists: 'Lejátszási listák önműködően lejátszása'
|
||||
Autoplay Playlists: 'Lejátszási listák automatikus lejátszása'
|
||||
Enable Theatre Mode by Default: 'Alapértelmezés szerint mozi mód engedélyezése'
|
||||
Default Volume: 'Alapértelmezett hangerő'
|
||||
Default Playback Rate: 'Alapértelmezett lejátszási sebesség'
|
||||
|
@ -267,7 +267,7 @@ Settings:
|
|||
Audio Formats: 'Hangformátumok'
|
||||
Default Quality:
|
||||
Default Quality: 'Alapértelmezett minőség'
|
||||
Auto: 'Önműködő'
|
||||
Auto: 'Automatikus'
|
||||
144p: '144p'
|
||||
240p: '240p'
|
||||
360p: '360p'
|
||||
|
@ -323,7 +323,7 @@ Settings:
|
|||
Remove All Subscriptions / Profiles: 'Összes feliratkozás és profil eltávolítása'
|
||||
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: 'Biztosan
|
||||
törli az összes feliratkozást és profilt? A művelet nem vonható vissza.'
|
||||
Automatically Remove Video Meta Files: Videométafájlok önműködő eltávolítása
|
||||
Automatically Remove Video Meta Files: Videó-metafájlok automatikus eltávolítása
|
||||
Save Watched Videos With Last Viewed Playlist: Megtekintett videók mentése az
|
||||
utoljára megtekintett lejátszási listával
|
||||
Subscription Settings:
|
||||
|
@ -331,7 +331,8 @@ Settings:
|
|||
Hide Videos on Watch: 'Videók elrejtése megtekintés után'
|
||||
Fetch Feeds from RSS: 'RSS-hírcsatornák beolvasása'
|
||||
Manage Subscriptions: 'Feliratkozások kezelése'
|
||||
Fetch Automatically: Hírcsatorna önműködő lekérése
|
||||
Fetch Automatically: Hírcsatorna automatikus lekérdezése
|
||||
Only Show Latest Video for Each Channel: Csak a legújabb videókat mutassa a csatornáktól
|
||||
Data Settings:
|
||||
Data Settings: 'Adatbeállítások'
|
||||
Select Import Type: 'Importálás típusa kiválasztása'
|
||||
|
@ -483,7 +484,7 @@ Settings:
|
|||
SponsorBlock Settings: SponsorBlock beállításai
|
||||
Skip Options:
|
||||
Skip Option: Beállítás kihagyása
|
||||
Auto Skip: Önműködő kihagyás
|
||||
Auto Skip: Automatikus kihagyás
|
||||
Show In Seek Bar: Megjelenítés a keresősávban
|
||||
Do Nothing: Nincs művelet
|
||||
Prompt To Skip: Kihagyás kérése
|
||||
|
@ -524,10 +525,11 @@ Settings:
|
|||
Password: Jelszó
|
||||
Password Settings:
|
||||
Password Settings: Jelszóbeállítások
|
||||
Set Password To Prevent Access: Jelszó beállítása a beállításokhoz való hozzáférés
|
||||
Set Password To Prevent Access: Jelszó megadá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
|
||||
Expand All Settings Sections: Minden beállítási szakasz kibontása
|
||||
About:
|
||||
#On About page
|
||||
About: 'Névjegy'
|
||||
|
@ -716,7 +718,7 @@ Video:
|
|||
Play Next Video: 'Következő videó lejátszása'
|
||||
Play Previous Video: 'Előző videó lejátszása'
|
||||
Watched: 'Megtekintett'
|
||||
Autoplay: 'Önműködő lejátszás'
|
||||
Autoplay: 'Automatikus lejátszás'
|
||||
Starting soon, please refresh the page to check again: 'Hamarosan kezdődik, kérjük,
|
||||
frissítse a lapot az ellenőrzéshez'
|
||||
# As in a Live Video
|
||||
|
@ -762,7 +764,7 @@ Video:
|
|||
Years: 'évvel'
|
||||
Ago: 'ezelőtt'
|
||||
Upcoming: 'Első előadás dátuma'
|
||||
In less than a minute: Kevesebb, mint egy perccel ezelőtt
|
||||
In less than a minute: Kevesebb, mint egy perce
|
||||
Published on: 'Megjelent'
|
||||
Publicationtemplate: '{number} {unit} ezelőtt'
|
||||
#& Videos
|
||||
|
@ -929,7 +931,7 @@ Shuffle is now enabled: 'Véletlen sorrendű lejátszás bekapcsolva'
|
|||
The playlist has been reversed: 'Lejátszási lista megfordítva'
|
||||
Playing Next Video: 'Következő videó lejátszása'
|
||||
Playing Previous Video: 'Előző videó lejátszása'
|
||||
Canceled next video autoplay: 'Következő videó önműködő lejátszása megszakítva'
|
||||
Canceled next video autoplay: 'Következő videó automatikus lejátszásának megszakítása'
|
||||
'The playlist has ended. Enable loop to continue playing': 'A lejátszási lista véget
|
||||
ért. Engedélyezze a folyamatos lejátszást a lejátszás folytatásához'
|
||||
|
||||
|
@ -946,8 +948,8 @@ Tooltips:
|
|||
API-hívásokhoz.
|
||||
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 FreeTube önműködően megpróbálja a nem előnyben részesített
|
||||
Fallback to Non-Preferred Backend on Failure: Ha az előnyben részesített API-jával
|
||||
hiba merül fel, a FreeTube automatikusan 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 FreeTube-ban.\nA FreeTube alapértelmezés
|
||||
|
@ -958,7 +960,7 @@ Tooltips:
|
|||
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 FreeTube új ablak megnyitásakor és
|
||||
profilváltáskor önműködően lekéri az feliratkozási hírfolyamot.
|
||||
profilváltáskor automatikusan 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)
|
||||
|
@ -986,8 +988,8 @@ 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 FreeTube önműködően törli a videolejátszás
|
||||
során létrehozott metafájlokat, amikor a nézőlap bezár.
|
||||
Remove Video Meta Files: Ha engedélyezve van, a FreeTube automatikusan törli a
|
||||
videolejátszás során létrehozott metafájlokat, amikor a nézőlapot bezárják.
|
||||
External Player Settings:
|
||||
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
|
||||
|
@ -1019,7 +1021,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 implementálva. próbálkozz a következő verzióban
|
||||
még nincs implementálva, próbálkozzon újra később
|
||||
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
|
||||
|
|
|
@ -38,6 +38,9 @@ Global:
|
|||
Live: Tiesiogiai
|
||||
Shorts: Šortai
|
||||
Community: Bendruomenė
|
||||
Counts:
|
||||
Subscriber Count: 1 prenumeruoti | {count} prenumeratorių
|
||||
Channel Count: 1 kanalas | {count} kanalai
|
||||
Version {versionNumber} is now available! Click for more details: 'Versija {versionNumber}
|
||||
jau prieinama! Spustelėkite, jei norite gauti daugiau informacijos'
|
||||
Download From Site: 'Atsisiųsti iš svetainės'
|
||||
|
@ -906,3 +909,4 @@ Clipboard:
|
|||
Cannot access clipboard without a secure connection: Negalima pasiekti iškarpinės
|
||||
be saugaus ryšio
|
||||
Preferences: Nuostatos
|
||||
Go to page: Eiti į {page}
|
||||
|
|
|
@ -925,7 +925,7 @@ Share:
|
|||
YouTube Embed URL copied to clipboard: YouTube уграђени URL је копиран у привремену
|
||||
меморију
|
||||
Falling back to the local API: Повратак на локални API
|
||||
Unknown YouTube url type, cannot be opened in app: Непозната врста YouTube URL-а,
|
||||
Unknown YouTube url type, cannot be opened in app: Непозната врста YouTube URL адресе,
|
||||
не може се отворити у апликацији
|
||||
Search Bar:
|
||||
Clear Input: Очисти унос
|
||||
|
|
|
@ -325,6 +325,8 @@ Settings:
|
|||
Fetch Feeds from RSS: 'Akışları RSS''den Getir'
|
||||
Manage Subscriptions: 'Abonelikleri Yönet'
|
||||
Fetch Automatically: Akışı Otomatik Olarak Getir
|
||||
Only Show Latest Video for Each Channel: Her Kanal için Yalnızca En Son Videoyu
|
||||
Göster
|
||||
Data Settings:
|
||||
Data Settings: 'Veri Ayarları'
|
||||
Select Import Type: 'İçe Aktarma Türünü Seç'
|
||||
|
@ -519,6 +521,7 @@ Settings:
|
|||
Set Password To Prevent Access: Ayarlara erişimi engellemek için bir parola belirleyin
|
||||
Remove Password: Parolayı Kaldır
|
||||
Set Password: Parola Ayarla
|
||||
Expand All Settings Sections: Tüm Ayarlar Bölümlerini Genişlet
|
||||
About:
|
||||
#On About page
|
||||
About: 'Hakkında'
|
||||
|
@ -629,6 +632,11 @@ Profile:
|
|||
Profile Filter: Profil Filtresi
|
||||
Profile Settings: Profil Ayarları
|
||||
Toggle Profile List: Profil Listesini Aç/Kapat
|
||||
Profile Name: Profil Adı
|
||||
Edit Profile Name: Profil Adını Düzenle
|
||||
Create Profile Name: Profil Adı Oluştur
|
||||
Open Profile Dropdown: Profil Açılır Menüsünü Aç
|
||||
Close Profile Dropdown: Profil Açılır Menüsünü Kapat
|
||||
Channel:
|
||||
Subscriber: 'Abone'
|
||||
Subscribers: 'Abone'
|
||||
|
@ -834,6 +842,8 @@ Video:
|
|||
sohbet bu yayın için kullanılamıyor. Yükleyen tarafından devre dışı bırakılmış
|
||||
olabilir.
|
||||
Pause on Current Video: Geçerli Videoda Duraklat
|
||||
Unhide Channel: Kanalı Göster
|
||||
Hide Channel: Kanalı Gizle
|
||||
Videos:
|
||||
#& Sort By
|
||||
Sort By:
|
||||
|
@ -1070,3 +1080,6 @@ Playlist will pause when current video is finished: Geçerli video bittiğinde o
|
|||
listesi duraklatılacak
|
||||
Playlist will not pause when current video is finished: Geçerli video bittiğinde oynatma
|
||||
listesi duraklatılmayacak
|
||||
Channel Hidden: '{channel} kanal filtresine eklendi'
|
||||
Go to page: '{page}. sayfaya git'
|
||||
Channel Unhidden: '{channel} kanal filtresinden kaldırıldı'
|
||||
|
|
|
@ -329,6 +329,8 @@ Settings:
|
|||
Fetch Feeds from RSS: 'Отримати канали з RSS'
|
||||
Manage Subscriptions: 'Керування підписками'
|
||||
Fetch Automatically: Автоматично отримувати стрічку
|
||||
Only Show Latest Video for Each Channel: Показувати лише останні відео для кожного
|
||||
каналу
|
||||
Distraction Free Settings:
|
||||
Distraction Free Settings: 'Налаштування зосередження'
|
||||
Hide Video Views: 'Сховати перегляди відео'
|
||||
|
@ -369,6 +371,12 @@ Settings:
|
|||
Hide Profile Pictures in Comments: Сховати зображення профілю в коментарях
|
||||
Blur Thumbnails: Розмиті мініатюри
|
||||
Hide Subscriptions Community: Сховати спільноту підписників
|
||||
Hide Channels Invalid: Вказаний ID каналу недійсний
|
||||
Hide Channels Disabled Message: Деякі канали були заблоковані за допомогою ID
|
||||
і не були оброблені. Функція заблокована в той час, як ці ID оновлювалися
|
||||
Hide Channels Already Exists: ID каналу вже існує
|
||||
Hide Channels API Error: Помилка під час пошуку користувача з наданим ID. Перевірте
|
||||
ще раз, чи правильний ID.
|
||||
Data Settings:
|
||||
Data Settings: 'Налаштування даних'
|
||||
Select Import Type: 'Оберіть тип імпорту'
|
||||
|
@ -483,6 +491,7 @@ Settings:
|
|||
Set Password: Установити пароль
|
||||
Remove Password: Вилучити пароль
|
||||
Set Password To Prevent Access: Встановіть пароль, щоб запобігти доступу до налаштувань
|
||||
Expand All Settings Sections: Розгорнути всі розділи налаштувань
|
||||
About:
|
||||
#On About page
|
||||
About: 'Про'
|
||||
|
@ -555,6 +564,11 @@ Profile:
|
|||
Profile Filter: Фільтр профілю
|
||||
Profile Settings: Налаштування профілю
|
||||
Toggle Profile List: Перемкнути список профілів
|
||||
Profile Name: Назва профілю
|
||||
Edit Profile Name: Змінити назву профілю
|
||||
Create Profile Name: Створити назву профілю
|
||||
Open Profile Dropdown: Відкрити спадне меню профілю
|
||||
Close Profile Dropdown: Закрити спадне меню профілю
|
||||
Channel:
|
||||
Subscriber: 'Підписник'
|
||||
Subscribers: 'Підписники'
|
||||
|
@ -757,6 +771,8 @@ Video:
|
|||
'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': Спілкування
|
||||
наживо недоступне для цієї трансляції. Можливо, вивантажувач вимкнув його.
|
||||
Pause on Current Video: Призупинити на поточному відео
|
||||
Unhide Channel: Показати канал
|
||||
Hide Channel: Сховати канал
|
||||
Videos:
|
||||
#& Sort By
|
||||
Sort By:
|
||||
|
@ -906,9 +922,9 @@ Tooltips:
|
|||
Replace HTTP Cache: Вимикає дисковий HTTP-кеш Electron і вмикає власний кеш зображень
|
||||
у пам'яті. Призведе до збільшення використання оперативної пам'яті.
|
||||
Distraction Free Settings:
|
||||
Hide Channels: Введіть назву або ID каналу, щоб сховати всі відео, списки відтворення
|
||||
та сам канал від появи в пошуку, тренді, найпопулярніших і рекомендованих. Введена
|
||||
назва каналу повинна повністю збігатися і чутлива до регістру.
|
||||
Hide Channels: Введіть ID, щоб сховати всі відео, списки відтворення та сам канал
|
||||
від появи в пошуку, тренді, найпопулярніших і рекомендованих. Введений ID каналу
|
||||
повинен повністю збігатися і чутливий до регістру.
|
||||
Hide Subscriptions Live: Цей параметр перевизначається загальнодоступним налаштуванням
|
||||
"{appWideSetting}" у розділі "{subsection}" "{settingsSection}"
|
||||
SponsorBlock Settings:
|
||||
|
@ -996,3 +1012,6 @@ Playlist will pause when current video is finished: Добірка призуп
|
|||
відео завершено
|
||||
Playlist will not pause when current video is finished: Добірка не призупиняється,
|
||||
коли поточне відео завершено
|
||||
Channel Hidden: '{channel} додано до фільтра каналу'
|
||||
Go to page: Перейти до {page}
|
||||
Channel Unhidden: '{channel} вилучено з фільтра каналу'
|
||||
|
|
278
yarn.lock
278
yarn.lock
|
@ -28,26 +28,26 @@
|
|||
"@babel/highlight" "^7.23.4"
|
||||
chalk "^2.4.2"
|
||||
|
||||
"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5":
|
||||
"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5":
|
||||
version "7.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
|
||||
integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
|
||||
|
||||
"@babel/core@^7.23.5":
|
||||
version "7.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7"
|
||||
integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==
|
||||
"@babel/core@^7.23.6":
|
||||
version "7.23.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4"
|
||||
integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==
|
||||
dependencies:
|
||||
"@ampproject/remapping" "^2.2.0"
|
||||
"@babel/code-frame" "^7.23.5"
|
||||
"@babel/generator" "^7.23.5"
|
||||
"@babel/helper-compilation-targets" "^7.22.15"
|
||||
"@babel/generator" "^7.23.6"
|
||||
"@babel/helper-compilation-targets" "^7.23.6"
|
||||
"@babel/helper-module-transforms" "^7.23.3"
|
||||
"@babel/helpers" "^7.23.5"
|
||||
"@babel/parser" "^7.23.5"
|
||||
"@babel/helpers" "^7.23.6"
|
||||
"@babel/parser" "^7.23.6"
|
||||
"@babel/template" "^7.22.15"
|
||||
"@babel/traverse" "^7.23.5"
|
||||
"@babel/types" "^7.23.5"
|
||||
"@babel/traverse" "^7.23.6"
|
||||
"@babel/types" "^7.23.6"
|
||||
convert-source-map "^2.0.0"
|
||||
debug "^4.1.0"
|
||||
gensync "^1.0.0-beta.2"
|
||||
|
@ -63,12 +63,12 @@
|
|||
eslint-visitor-keys "^2.1.0"
|
||||
semver "^6.3.1"
|
||||
|
||||
"@babel/generator@^7.23.5":
|
||||
version "7.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755"
|
||||
integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==
|
||||
"@babel/generator@^7.23.6":
|
||||
version "7.23.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
|
||||
integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
|
||||
dependencies:
|
||||
"@babel/types" "^7.23.5"
|
||||
"@babel/types" "^7.23.6"
|
||||
"@jridgewell/gen-mapping" "^0.3.2"
|
||||
"@jridgewell/trace-mapping" "^0.3.17"
|
||||
jsesc "^2.5.1"
|
||||
|
@ -94,14 +94,14 @@
|
|||
dependencies:
|
||||
"@babel/types" "^7.22.15"
|
||||
|
||||
"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6":
|
||||
version "7.22.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52"
|
||||
integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==
|
||||
"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6":
|
||||
version "7.23.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
|
||||
integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.22.9"
|
||||
"@babel/helper-validator-option" "^7.22.15"
|
||||
browserslist "^4.21.9"
|
||||
"@babel/compat-data" "^7.23.5"
|
||||
"@babel/helper-validator-option" "^7.23.5"
|
||||
browserslist "^4.22.2"
|
||||
lru-cache "^5.1.1"
|
||||
semver "^6.3.1"
|
||||
|
||||
|
@ -350,7 +350,7 @@
|
|||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
|
||||
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
|
||||
|
||||
"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5":
|
||||
"@babel/helper-validator-option@^7.23.5":
|
||||
version "7.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
|
||||
integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
|
||||
|
@ -364,14 +364,14 @@
|
|||
"@babel/template" "^7.22.15"
|
||||
"@babel/types" "^7.22.19"
|
||||
|
||||
"@babel/helpers@^7.23.5":
|
||||
version "7.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e"
|
||||
integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==
|
||||
"@babel/helpers@^7.23.6":
|
||||
version "7.23.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a"
|
||||
integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==
|
||||
dependencies:
|
||||
"@babel/template" "^7.22.15"
|
||||
"@babel/traverse" "^7.23.5"
|
||||
"@babel/types" "^7.23.5"
|
||||
"@babel/traverse" "^7.23.6"
|
||||
"@babel/types" "^7.23.6"
|
||||
|
||||
"@babel/highlight@^7.23.4":
|
||||
version "7.23.4"
|
||||
|
@ -382,10 +382,10 @@
|
|||
chalk "^2.4.2"
|
||||
js-tokens "^4.0.0"
|
||||
|
||||
"@babel/parser@^7.18.4", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5":
|
||||
version "7.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563"
|
||||
integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==
|
||||
"@babel/parser@^7.18.4", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6":
|
||||
version "7.23.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b"
|
||||
integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
|
||||
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3":
|
||||
version "7.23.3"
|
||||
|
@ -677,12 +677,13 @@
|
|||
"@babel/helper-plugin-utils" "^7.22.5"
|
||||
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
||||
|
||||
"@babel/plugin-transform-for-of@^7.23.3":
|
||||
version "7.23.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559"
|
||||
integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==
|
||||
"@babel/plugin-transform-for-of@^7.23.6":
|
||||
version "7.23.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e"
|
||||
integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.22.5"
|
||||
"@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
|
||||
|
||||
"@babel/plugin-transform-function-name@^7.23.3":
|
||||
version "7.23.3"
|
||||
|
@ -939,13 +940,13 @@
|
|||
"@babel/helper-create-regexp-features-plugin" "^7.22.15"
|
||||
"@babel/helper-plugin-utils" "^7.22.5"
|
||||
|
||||
"@babel/preset-env@^7.23.5":
|
||||
version "7.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.5.tgz#350a3aedfa9f119ad045b068886457e895ba0ca1"
|
||||
integrity sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==
|
||||
"@babel/preset-env@^7.23.6":
|
||||
version "7.23.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.6.tgz#ad0ea799d5a3c07db5b9a172819bbd444092187a"
|
||||
integrity sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.23.5"
|
||||
"@babel/helper-compilation-targets" "^7.22.15"
|
||||
"@babel/helper-compilation-targets" "^7.23.6"
|
||||
"@babel/helper-plugin-utils" "^7.22.5"
|
||||
"@babel/helper-validator-option" "^7.23.5"
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3"
|
||||
|
@ -985,7 +986,7 @@
|
|||
"@babel/plugin-transform-dynamic-import" "^7.23.4"
|
||||
"@babel/plugin-transform-exponentiation-operator" "^7.23.3"
|
||||
"@babel/plugin-transform-export-namespace-from" "^7.23.4"
|
||||
"@babel/plugin-transform-for-of" "^7.23.3"
|
||||
"@babel/plugin-transform-for-of" "^7.23.6"
|
||||
"@babel/plugin-transform-function-name" "^7.23.3"
|
||||
"@babel/plugin-transform-json-strings" "^7.23.4"
|
||||
"@babel/plugin-transform-literals" "^7.23.3"
|
||||
|
@ -1055,26 +1056,26 @@
|
|||
"@babel/parser" "^7.22.15"
|
||||
"@babel/types" "^7.22.15"
|
||||
|
||||
"@babel/traverse@^7.18.9", "@babel/traverse@^7.23.5":
|
||||
version "7.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec"
|
||||
integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==
|
||||
"@babel/traverse@^7.18.9", "@babel/traverse@^7.23.6":
|
||||
version "7.23.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5"
|
||||
integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.23.5"
|
||||
"@babel/generator" "^7.23.5"
|
||||
"@babel/generator" "^7.23.6"
|
||||
"@babel/helper-environment-visitor" "^7.22.20"
|
||||
"@babel/helper-function-name" "^7.23.0"
|
||||
"@babel/helper-hoist-variables" "^7.22.5"
|
||||
"@babel/helper-split-export-declaration" "^7.22.6"
|
||||
"@babel/parser" "^7.23.5"
|
||||
"@babel/types" "^7.23.5"
|
||||
debug "^4.1.0"
|
||||
"@babel/parser" "^7.23.6"
|
||||
"@babel/types" "^7.23.6"
|
||||
debug "^4.3.1"
|
||||
globals "^11.1.0"
|
||||
|
||||
"@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.5", "@babel/types@^7.4.4":
|
||||
version "7.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602"
|
||||
integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==
|
||||
"@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.4.4":
|
||||
version "7.23.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd"
|
||||
integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==
|
||||
dependencies:
|
||||
"@babel/helper-string-parser" "^7.23.4"
|
||||
"@babel/helper-validator-identifier" "^7.22.20"
|
||||
|
@ -1186,10 +1187,10 @@
|
|||
dependencies:
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
"@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-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1":
|
||||
version "4.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
|
||||
integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
|
||||
|
||||
"@eslint/eslintrc@^2.1.4":
|
||||
version "2.1.4"
|
||||
|
@ -1206,10 +1207,10 @@
|
|||
minimatch "^3.1.2"
|
||||
strip-json-comments "^3.1.1"
|
||||
|
||||
"@eslint/js@8.55.0":
|
||||
version "8.55.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6"
|
||||
integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==
|
||||
"@eslint/js@8.56.0":
|
||||
version "8.56.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b"
|
||||
integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==
|
||||
|
||||
"@fastify/busboy@^2.0.0":
|
||||
version "2.0.0"
|
||||
|
@ -1422,10 +1423,10 @@
|
|||
resolved "https://registry.yarnpkg.com/@seald-io/binary-search-tree/-/binary-search-tree-1.0.3.tgz#165a9a456eaa30d15885b25db83861bcce2c6a74"
|
||||
integrity sha512-qv3jnwoakeax2razYaMsGI/luWdliBLHTdC6jU55hQt1hcFqzauH/HsBollQ7IR4ySTtYhT+xyHoijpA16C+tA==
|
||||
|
||||
"@seald-io/nedb@^4.0.2":
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@seald-io/nedb/-/nedb-4.0.2.tgz#44bc5f9b86e44f7434c5af8064cc7f8e079fc3a8"
|
||||
integrity sha512-gJ91fT1sgh2cLXYVcTSh7khZ8LdemI8+SojCdpZ5wy+DUQ4fSrEwGqOwbdV49NDs2BBO6GeBpSb8CnhG2IW1rw==
|
||||
"@seald-io/nedb@^4.0.3":
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@seald-io/nedb/-/nedb-4.0.3.tgz#39c4f47df12e493cb0ae88b8619a70f85e46eea6"
|
||||
integrity sha512-ik4rn0Ks8q1VEzhe6qFh9/MBrw77ym1OZxF2mBS6/H8cr4lpNhCvF8FqB901Oft1CSP50LL0ay4QQCU3xqn+Ew==
|
||||
dependencies:
|
||||
"@seald-io/binary-search-tree" "^1.0.3"
|
||||
localforage "^1.9.0"
|
||||
|
@ -2405,7 +2406,7 @@ braces@^3.0.2, braces@~3.0.2:
|
|||
dependencies:
|
||||
fill-range "^7.0.1"
|
||||
|
||||
browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4.21.9, browserslist@^4.22.1:
|
||||
browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4.22.1:
|
||||
version "4.22.1"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619"
|
||||
integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==
|
||||
|
@ -2415,6 +2416,16 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4
|
|||
node-releases "^2.0.13"
|
||||
update-browserslist-db "^1.0.13"
|
||||
|
||||
browserslist@^4.22.2:
|
||||
version "4.22.2"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b"
|
||||
integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30001565"
|
||||
electron-to-chromium "^1.4.601"
|
||||
node-releases "^2.0.14"
|
||||
update-browserslist-db "^1.0.13"
|
||||
|
||||
buffer-crc32@~0.2.3:
|
||||
version "0.2.13"
|
||||
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
|
||||
|
@ -2580,6 +2591,11 @@ caniuse-lite@^1.0.30001541:
|
|||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz#7d1a3dce7ea78c06ed72c32c2743ea364b3615aa"
|
||||
integrity sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==
|
||||
|
||||
caniuse-lite@^1.0.30001565:
|
||||
version "1.0.30001570"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz#b4e5c1fa786f733ab78fc70f592df6b3f23244ca"
|
||||
integrity sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==
|
||||
|
||||
caseless@~0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
||||
|
@ -3432,10 +3448,15 @@ electron-to-chromium@^1.4.535:
|
|||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.554.tgz#04e09c2ee31dc0f1546174033809b54cc372740b"
|
||||
integrity sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ==
|
||||
|
||||
electron@^27.1.3:
|
||||
version "27.1.3"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-27.1.3.tgz#3fd6decda95c1dd0a7e51a9ac77ee0ba37b7c5c6"
|
||||
integrity sha512-7eD8VMhhlL5J531OOawn00eMthUkX1e3qN5Nqd7eMK8bg5HxQBrn8bdPlvUEnCano9KhrVwaDnGeuzWoDOGpjQ==
|
||||
electron-to-chromium@^1.4.601:
|
||||
version "1.4.614"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.614.tgz#2fe789d61fa09cb875569f37c309d0c2701f91c0"
|
||||
integrity sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==
|
||||
|
||||
electron@^28.0.0:
|
||||
version "28.0.0"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-28.0.0.tgz#21e5590c967125a3c1ec6b0d8d923baf9eb6fd72"
|
||||
integrity sha512-eDhnCFBvG0PGFVEpNIEdBvyuGUBsFdlokd+CtuCe2ER3P+17qxaRfWRxMmksCOKgDHb5Wif5UxqOkZSlA4snlw==
|
||||
dependencies:
|
||||
"@electron/get" "^2.0.0"
|
||||
"@types/node" "^18.11.18"
|
||||
|
@ -3677,7 +3698,7 @@ 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-compat-utils@^0.1.0, eslint-compat-utils@^0.1.2:
|
||||
eslint-compat-utils@^0.1.1, eslint-compat-utils@^0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz#f45e3b5ced4c746c127cf724fb074cd4e730d653"
|
||||
integrity sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==
|
||||
|
@ -3708,18 +3729,19 @@ eslint-module-utils@^2.8.0:
|
|||
dependencies:
|
||||
debug "^3.2.7"
|
||||
|
||||
eslint-plugin-es-x@^7.1.0:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.1.0.tgz#f0d5421e658cca95c1cfb2355831851bdc83322d"
|
||||
integrity sha512-AhiaF31syh4CCQ+C5ccJA0VG6+kJK8+5mXKKE7Qs1xcPRg02CDPOj3mWlQxuWS/AYtg7kxrDNgW9YW3vc0Q+Mw==
|
||||
eslint-plugin-es-x@^7.5.0:
|
||||
version "7.5.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz#d08d9cd155383e35156c48f736eb06561d07ba92"
|
||||
integrity sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.1.2"
|
||||
"@eslint-community/regexpp" "^4.5.0"
|
||||
"@eslint-community/regexpp" "^4.6.0"
|
||||
eslint-compat-utils "^0.1.2"
|
||||
|
||||
eslint-plugin-import@^2.29.0:
|
||||
version "2.29.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155"
|
||||
integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==
|
||||
eslint-plugin-import@^2.29.1:
|
||||
version "2.29.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643"
|
||||
integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
|
||||
dependencies:
|
||||
array-includes "^3.1.7"
|
||||
array.prototype.findlastindex "^1.2.3"
|
||||
|
@ -3737,26 +3759,27 @@ eslint-plugin-import@^2.29.0:
|
|||
object.groupby "^1.0.1"
|
||||
object.values "^1.1.7"
|
||||
semver "^6.3.1"
|
||||
tsconfig-paths "^3.14.2"
|
||||
tsconfig-paths "^3.15.0"
|
||||
|
||||
eslint-plugin-jsonc@^2.10.0:
|
||||
version "2.10.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.10.0.tgz#4286fd49a79ee3dd86f9c6c61b6f3c65f30b954f"
|
||||
integrity sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==
|
||||
eslint-plugin-jsonc@^2.11.1:
|
||||
version "2.11.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.11.1.tgz#a6f63ce78362a9d72b4917324f858693c5b35beb"
|
||||
integrity sha512-zQ2h7x0gOdUfogfZJzLdclDWu9bksUQtC/zYmU17eLCBv4yETht8r2sbCRx4EECUdZAS8sW/UF7bTba95BoXRQ==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.2.0"
|
||||
eslint-compat-utils "^0.1.2"
|
||||
graphemer "^1.4.0"
|
||||
jsonc-eslint-parser "^2.0.4"
|
||||
natural-compare "^1.4.0"
|
||||
|
||||
eslint-plugin-n@^16.3.1:
|
||||
version "16.3.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.3.1.tgz#6cd377d1349fed10854b6535392e91fb4123193b"
|
||||
integrity sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==
|
||||
eslint-plugin-n@^16.4.0:
|
||||
version "16.4.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.4.0.tgz#02ff70d2b164319b6d566672969a9c24688a43df"
|
||||
integrity sha512-IkqJjGoWYGskVaJA7WQuN8PINIxc0N/Pk/jLeYT4ees6Fo5lAhpwGsYek6gS9tCUxgDC4zJ+OwY2bY/6/9OMKQ==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.4.0"
|
||||
builtins "^5.0.1"
|
||||
eslint-plugin-es-x "^7.1.0"
|
||||
eslint-plugin-es-x "^7.5.0"
|
||||
get-tsconfig "^4.7.0"
|
||||
ignore "^5.2.4"
|
||||
is-builtin-module "^3.2.1"
|
||||
|
@ -3820,13 +3843,13 @@ eslint-plugin-vuejs-accessibility@^2.2.0:
|
|||
emoji-regex "^10.0.0"
|
||||
vue-eslint-parser "^9.0.1"
|
||||
|
||||
eslint-plugin-yml@^1.10.0:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-yml/-/eslint-plugin-yml-1.10.0.tgz#0c750253825ff352fb11b824d80864d8a2df3408"
|
||||
integrity sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==
|
||||
eslint-plugin-yml@^1.11.0:
|
||||
version "1.11.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-yml/-/eslint-plugin-yml-1.11.0.tgz#7c1db2fdc0cb47aec4b76287e6494009cf703179"
|
||||
integrity sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==
|
||||
dependencies:
|
||||
debug "^4.3.2"
|
||||
eslint-compat-utils "^0.1.0"
|
||||
eslint-compat-utils "^0.1.1"
|
||||
lodash "^4.17.21"
|
||||
natural-compare "^1.4.0"
|
||||
yaml-eslint-parser "^1.2.1"
|
||||
|
@ -3857,15 +3880,15 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4
|
|||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
|
||||
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
|
||||
|
||||
eslint@^8.55.0:
|
||||
version "8.55.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8"
|
||||
integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==
|
||||
eslint@^8.56.0:
|
||||
version "8.56.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15"
|
||||
integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.2.0"
|
||||
"@eslint-community/regexpp" "^4.6.1"
|
||||
"@eslint/eslintrc" "^2.1.4"
|
||||
"@eslint/js" "8.55.0"
|
||||
"@eslint/js" "8.56.0"
|
||||
"@humanwhocodes/config-array" "^0.11.13"
|
||||
"@humanwhocodes/module-importer" "^1.0.1"
|
||||
"@nodelib/fs.walk" "^1.2.8"
|
||||
|
@ -4740,10 +4763,10 @@ html-tags@^3.3.1:
|
|||
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce"
|
||||
integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==
|
||||
|
||||
html-webpack-plugin@^5.5.3:
|
||||
version "5.5.3"
|
||||
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e"
|
||||
integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==
|
||||
html-webpack-plugin@^5.5.4:
|
||||
version "5.5.4"
|
||||
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.4.tgz#517a48e6f046ff1ae1a172c983cd993eb79d2f6a"
|
||||
integrity sha512-3wNSaVVxdxcu0jd4FpQFoICdqgxs4zIQQvj+2yQKFfBOnLETQ6X5CDWdeasuGlSsooFlMkEioWDTqBv1wvw5Iw==
|
||||
dependencies:
|
||||
"@types/html-minifier-terser" "^6.0.0"
|
||||
html-minifier-terser "^6.0.2"
|
||||
|
@ -5690,7 +5713,7 @@ lodash.uniq@^4.5.0:
|
|||
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
|
||||
integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
|
||||
|
||||
lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21:
|
||||
lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
@ -5753,10 +5776,10 @@ map-obj@^4.1.0:
|
|||
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a"
|
||||
integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==
|
||||
|
||||
marked@^11.0.0:
|
||||
version "11.0.0"
|
||||
resolved "https://registry.yarnpkg.com/marked/-/marked-11.0.0.tgz#02e63c4352a59a268e2e5b3afb7a46851c0b446d"
|
||||
integrity sha512-2GsW34uXaFEGTQ/+3rCnNC6vUYTAgFuDLGl70v/aWinA5mIJtTrrFAmfbLOfVvgPyxXuDVL9He/7reCK+6j3Sw==
|
||||
marked@^11.1.0:
|
||||
version "11.1.0"
|
||||
resolved "https://registry.yarnpkg.com/marked/-/marked-11.1.0.tgz#f2d12323e80ba8a97cc8262fe7e94fcc007476ab"
|
||||
integrity sha512-fvKJWAPEafVj1dwGwcPI5mBB/0pvViL6NlCbNDG1HOIRwwAU/jeMoFxfbRLuirO1wRH7m4yPvBqD/O1wyWvayw==
|
||||
|
||||
matcher@^3.0.0:
|
||||
version "3.0.0"
|
||||
|
@ -6075,6 +6098,11 @@ node-releases@^2.0.13:
|
|||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
|
||||
integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==
|
||||
|
||||
node-releases@^2.0.14:
|
||||
version "2.0.14"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
|
||||
integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
|
||||
|
||||
normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
|
||||
|
@ -8038,6 +8066,11 @@ svgo@^3.0.2:
|
|||
csso "^5.0.5"
|
||||
picocolors "^1.0.0"
|
||||
|
||||
swiper@^11.0.5:
|
||||
version "11.0.5"
|
||||
resolved "https://registry.yarnpkg.com/swiper/-/swiper-11.0.5.tgz#6ed1ad06e6906ba42fd4b93d4988f0626a49046e"
|
||||
integrity sha512-rhCwupqSyRnWrtNzWzemnBLMoyYuoDgGgspAm/8iBD3jCvAWycPLH4Z3TB0O5520DHLzMx94yUMH/B9Efpa48w==
|
||||
|
||||
synckit@^0.8.5:
|
||||
version "0.8.5"
|
||||
resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3"
|
||||
|
@ -8123,11 +8156,6 @@ thunky@^1.0.2:
|
|||
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
|
||||
integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
|
||||
|
||||
tiny-slider@^2.9.2:
|
||||
version "2.9.4"
|
||||
resolved "https://registry.yarnpkg.com/tiny-slider/-/tiny-slider-2.9.4.tgz#dd5cbf3065f1688ade8383ea6342aefcba22ccc4"
|
||||
integrity sha512-LAs2kldWcY+BqCKw4kxd4CMx2RhWrHyEePEsymlOIISTlOVkjfK40sSD7ay73eKXBLg/UkluAZpcfCstimHXew==
|
||||
|
||||
titleize@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53"
|
||||
|
@ -8189,10 +8217,10 @@ truncate-utf8-bytes@^1.0.0:
|
|||
dependencies:
|
||||
utf8-byte-length "^1.0.1"
|
||||
|
||||
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==
|
||||
tsconfig-paths@^3.15.0:
|
||||
version "3.15.0"
|
||||
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4"
|
||||
integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==
|
||||
dependencies:
|
||||
"@types/json5" "^0.0.29"
|
||||
json5 "^1.0.2"
|
||||
|
@ -8619,14 +8647,6 @@ vue-template-es2015-compiler@^1.9.0:
|
|||
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
|
||||
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
|
||||
|
||||
vue-tiny-slider@^0.1.39:
|
||||
version "0.1.39"
|
||||
resolved "https://registry.yarnpkg.com/vue-tiny-slider/-/vue-tiny-slider-0.1.39.tgz#9301eada256fa12725b050767e1e67a287b3e3ef"
|
||||
integrity sha512-dLOuMI6YyIBabXPZTQ0LL2jhOqZuwsCD7ztPEoE1ejFQ9GNxyRxwkRsIwUtVnq5SCTzQAhCYlgoibyMGoDHReA==
|
||||
dependencies:
|
||||
lodash "^4.17.11"
|
||||
tiny-slider "^2.9.2"
|
||||
|
||||
vue@^2.7.15:
|
||||
version "2.7.15"
|
||||
resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.15.tgz#94cd34e6e9f22cd2d35a02143f96a5beac1c1f54"
|
||||
|
|
Loading…
Reference in New Issue