Code cleaning + fix related to #86

This commit is contained in:
Shiny Nematoda 2022-12-10 06:08:31 +00:00
parent cfebd0beca
commit e7ef370387
No known key found for this signature in database
GPG key ID: 6506D50F5613A42D
17 changed files with 400 additions and 394 deletions

View file

@ -9,7 +9,6 @@
<link rel="icon" href="/favicon.svg" /> <link rel="icon" href="/favicon.svg" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" /> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<meta name="msapplication-TileColor" content="#181818" /> <meta name="msapplication-TileColor" content="#181818" />
<link rel="preconnect" href="https://cdn.jsdelivr.net" />
<link rel="preconnect" href="https://hyperpipeapi.onrender.com" /> <link rel="preconnect" href="https://hyperpipeapi.onrender.com" />
<link rel="dns-prefetch" href="https://pipedapi.kavin.rocks" /> <link rel="dns-prefetch" href="https://pipedapi.kavin.rocks" />
<link rel="dns-prefetch" href="https://hyperpipe-proxy.onrender.com" /> <link rel="dns-prefetch" href="https://hyperpipe-proxy.onrender.com" />
@ -29,7 +28,10 @@
<title>Hyperpipe</title> <title>Hyperpipe</title>
</head> </head>
<body> <body>
<noscript>JavaScript is required for this site to function. Please enable it in your browser or browser extension settings.</noscript> <noscript
>JavaScript is required for this site to function. Please enable it in
your browser or browser extension settings.</noscript
>
<div id="app"></div> <div id="app"></div>

451
package-lock.json generated
View file

@ -13,22 +13,22 @@
"dompurify": "^2.4.1", "dompurify": "^2.4.1",
"mux.js": "^6.2.0", "mux.js": "^6.2.0",
"peerjs": "^1.4.7", "peerjs": "^1.4.7",
"pinia": "^2.0.26", "pinia": "^2.0.28",
"shaka-player": "^4.3.0", "shaka-player": "^4.3.1",
"stream-browserify": "^3.0.0", "stream-browserify": "^3.0.0",
"vue": "^3.2.38", "vue": "^3.2.38",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
}, },
"devDependencies": { "devDependencies": {
"@vitejs/plugin-vue": "^3.2.0", "@vitejs/plugin-vue": "^3.2.0",
"prettier": "^2.8.0", "prettier": "^2.8.1",
"vite": "^3.2.4" "vite": "^3.2.5"
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.20.3", "version": "7.20.5",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz",
"integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==",
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
}, },
@ -37,20 +37,20 @@
} }
}, },
"node_modules/@babel/runtime": { "node_modules/@babel/runtime": {
"version": "7.20.1", "version": "7.20.6",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz",
"integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==",
"dependencies": { "dependencies": {
"regenerator-runtime": "^0.13.10" "regenerator-runtime": "^0.13.11"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@esbuild/android-arm": { "node_modules/@esbuild/android-arm": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.15.tgz", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz",
"integrity": "sha512-JJjZjJi2eBL01QJuWjfCdZxcIgot+VoK6Fq7eKF9w4YHm9hwl7nhBR1o2Wnt/WcANk5l9SkpvrldW1PLuXxcbw==", "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -64,9 +64,9 @@
} }
}, },
"node_modules/@esbuild/linux-loong64": { "node_modules/@esbuild/linux-loong64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz",
"integrity": "sha512-lhz6UNPMDXUhtXSulw8XlFAtSYO26WmHQnCi2Lg2p+/TMiJKNLtZCYUxV4wG6rZMzXmr8InGpNwk+DLT2Hm0PA==", "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==",
"cpu": [ "cpu": [
"loong64" "loong64"
], ],
@ -275,9 +275,9 @@
"integrity": "sha512-njD17wcUrbqCj0ArpLu5zWXtaiupHb/2fIUQGdInf83GlI+Q6mmqaPGLdrke4savKAu15J/z1Tg/ivDgl14g0g==" "integrity": "sha512-njD17wcUrbqCj0ArpLu5zWXtaiupHb/2fIUQGdInf83GlI+Q6mmqaPGLdrke4savKAu15J/z1Tg/ivDgl14g0g=="
}, },
"node_modules/esbuild": { "node_modules/esbuild": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz",
"integrity": "sha512-TEw/lwK4Zzld9x3FedV6jy8onOUHqcEX3ADFk4k+gzPUwrxn8nWV62tH0udo8jOtjFodlEfc4ypsqX3e+WWO6w==", "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==",
"dev": true, "dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"bin": { "bin": {
@ -287,34 +287,34 @@
"node": ">=12" "node": ">=12"
}, },
"optionalDependencies": { "optionalDependencies": {
"@esbuild/android-arm": "0.15.15", "@esbuild/android-arm": "0.15.18",
"@esbuild/linux-loong64": "0.15.15", "@esbuild/linux-loong64": "0.15.18",
"esbuild-android-64": "0.15.15", "esbuild-android-64": "0.15.18",
"esbuild-android-arm64": "0.15.15", "esbuild-android-arm64": "0.15.18",
"esbuild-darwin-64": "0.15.15", "esbuild-darwin-64": "0.15.18",
"esbuild-darwin-arm64": "0.15.15", "esbuild-darwin-arm64": "0.15.18",
"esbuild-freebsd-64": "0.15.15", "esbuild-freebsd-64": "0.15.18",
"esbuild-freebsd-arm64": "0.15.15", "esbuild-freebsd-arm64": "0.15.18",
"esbuild-linux-32": "0.15.15", "esbuild-linux-32": "0.15.18",
"esbuild-linux-64": "0.15.15", "esbuild-linux-64": "0.15.18",
"esbuild-linux-arm": "0.15.15", "esbuild-linux-arm": "0.15.18",
"esbuild-linux-arm64": "0.15.15", "esbuild-linux-arm64": "0.15.18",
"esbuild-linux-mips64le": "0.15.15", "esbuild-linux-mips64le": "0.15.18",
"esbuild-linux-ppc64le": "0.15.15", "esbuild-linux-ppc64le": "0.15.18",
"esbuild-linux-riscv64": "0.15.15", "esbuild-linux-riscv64": "0.15.18",
"esbuild-linux-s390x": "0.15.15", "esbuild-linux-s390x": "0.15.18",
"esbuild-netbsd-64": "0.15.15", "esbuild-netbsd-64": "0.15.18",
"esbuild-openbsd-64": "0.15.15", "esbuild-openbsd-64": "0.15.18",
"esbuild-sunos-64": "0.15.15", "esbuild-sunos-64": "0.15.18",
"esbuild-windows-32": "0.15.15", "esbuild-windows-32": "0.15.18",
"esbuild-windows-64": "0.15.15", "esbuild-windows-64": "0.15.18",
"esbuild-windows-arm64": "0.15.15" "esbuild-windows-arm64": "0.15.18"
} }
}, },
"node_modules/esbuild-android-64": { "node_modules/esbuild-android-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz",
"integrity": "sha512-F+WjjQxO+JQOva3tJWNdVjouFMLK6R6i5gjDvgUthLYJnIZJsp1HlF523k73hELY20WPyEO8xcz7aaYBVkeg5Q==", "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -328,9 +328,9 @@
} }
}, },
"node_modules/esbuild-android-arm64": { "node_modules/esbuild-android-arm64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz",
"integrity": "sha512-attlyhD6Y22jNyQ0fIIQ7mnPvDWKw7k6FKnsXlBvQE6s3z6s6cuEHcSgoirquQc7TmZgVCK5fD/2uxmRN+ZpcQ==", "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -344,9 +344,9 @@
} }
}, },
"node_modules/esbuild-darwin-64": { "node_modules/esbuild-darwin-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz",
"integrity": "sha512-ohZtF8W1SHJ4JWldsPVdk8st0r9ExbAOSrBOh5L+Mq47i696GVwv1ab/KlmbUoikSTNoXEhDzVpxUR/WIO19FQ==", "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -360,9 +360,9 @@
} }
}, },
"node_modules/esbuild-darwin-arm64": { "node_modules/esbuild-darwin-arm64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz",
"integrity": "sha512-P8jOZ5zshCNIuGn+9KehKs/cq5uIniC+BeCykvdVhx/rBXSxmtj3CUIKZz4sDCuESMbitK54drf/2QX9QHG5Ag==", "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -376,9 +376,9 @@
} }
}, },
"node_modules/esbuild-freebsd-64": { "node_modules/esbuild-freebsd-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz",
"integrity": "sha512-KkTg+AmDXz1IvA9S1gt8dE24C8Thx0X5oM0KGF322DuP+P3evwTL9YyusHAWNsh4qLsR80nvBr/EIYs29VSwuA==", "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -392,9 +392,9 @@
} }
}, },
"node_modules/esbuild-freebsd-arm64": { "node_modules/esbuild-freebsd-arm64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz",
"integrity": "sha512-FUcML0DRsuyqCMfAC+HoeAqvWxMeq0qXvclZZ/lt2kLU6XBnDA5uKTLUd379WYEyVD4KKFctqWd9tTuk8C/96g==", "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -408,9 +408,9 @@
} }
}, },
"node_modules/esbuild-linux-32": { "node_modules/esbuild-linux-32": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz",
"integrity": "sha512-q28Qn5pZgHNqug02aTkzw5sW9OklSo96b5nm17Mq0pDXrdTBcQ+M6Q9A1B+dalFeynunwh/pvfrNucjzwDXj+Q==", "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -424,9 +424,9 @@
} }
}, },
"node_modules/esbuild-linux-64": { "node_modules/esbuild-linux-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz",
"integrity": "sha512-217KPmWMirkf8liO+fj2qrPwbIbhNTGNVtvqI1TnOWJgcMjUWvd677Gq3fTzXEjilkx2yWypVnTswM2KbXgoAg==", "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -440,9 +440,9 @@
} }
}, },
"node_modules/esbuild-linux-arm": { "node_modules/esbuild-linux-arm": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz",
"integrity": "sha512-RYVW9o2yN8yM7SB1yaWr378CwrjvGCyGybX3SdzPHpikUHkME2AP55Ma20uNwkNyY2eSYFX9D55kDrfQmQBR4w==", "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -456,9 +456,9 @@
} }
}, },
"node_modules/esbuild-linux-arm64": { "node_modules/esbuild-linux-arm64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz",
"integrity": "sha512-/ltmNFs0FivZkYsTzAsXIfLQX38lFnwJTWCJts0IbCqWZQe+jjj0vYBNbI0kmXLb3y5NljiM5USVAO1NVkdh2g==", "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -472,9 +472,9 @@
} }
}, },
"node_modules/esbuild-linux-mips64le": { "node_modules/esbuild-linux-mips64le": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz",
"integrity": "sha512-PksEPb321/28GFFxtvL33yVPfnMZihxkEv5zME2zapXGp7fA1X2jYeiTUK+9tJ/EGgcNWuwvtawPxJG7Mmn86A==", "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==",
"cpu": [ "cpu": [
"mips64el" "mips64el"
], ],
@ -488,9 +488,9 @@
} }
}, },
"node_modules/esbuild-linux-ppc64le": { "node_modules/esbuild-linux-ppc64le": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz",
"integrity": "sha512-ek8gJBEIhcpGI327eAZigBOHl58QqrJrYYIZBWQCnH3UnXoeWMrMZLeeZL8BI2XMBhP+sQ6ERctD5X+ajL/AIA==", "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@ -504,9 +504,9 @@
} }
}, },
"node_modules/esbuild-linux-riscv64": { "node_modules/esbuild-linux-riscv64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz",
"integrity": "sha512-H5ilTZb33/GnUBrZMNJtBk7/OXzDHDXjIzoLXHSutwwsLxSNaLxzAaMoDGDd/keZoS+GDBqNVxdCkpuiRW4OSw==", "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@ -520,9 +520,9 @@
} }
}, },
"node_modules/esbuild-linux-s390x": { "node_modules/esbuild-linux-s390x": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz",
"integrity": "sha512-jKaLUg78mua3rrtrkpv4Or2dNTJU7bgHN4bEjT4OX4GR7nLBSA9dfJezQouTxMmIW7opwEC5/iR9mpC18utnxQ==", "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
@ -536,9 +536,9 @@
} }
}, },
"node_modules/esbuild-netbsd-64": { "node_modules/esbuild-netbsd-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz",
"integrity": "sha512-aOvmF/UkjFuW6F36HbIlImJTTx45KUCHJndtKo+KdP8Dhq3mgLRKW9+6Ircpm8bX/RcS3zZMMmaBLkvGY06Gvw==", "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -552,9 +552,9 @@
} }
}, },
"node_modules/esbuild-openbsd-64": { "node_modules/esbuild-openbsd-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz",
"integrity": "sha512-HFFX+WYedx1w2yJ1VyR1Dfo8zyYGQZf1cA69bLdrHzu9svj6KH6ZLK0k3A1/LFPhcEY9idSOhsB2UyU0tHPxgQ==", "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -568,9 +568,9 @@
} }
}, },
"node_modules/esbuild-sunos-64": { "node_modules/esbuild-sunos-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz",
"integrity": "sha512-jOPBudffG4HN8yJXcK9rib/ZTFoTA5pvIKbRrt3IKAGMq1EpBi4xoVoSRrq/0d4OgZLaQbmkHp8RO9eZIn5atA==", "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -584,9 +584,9 @@
} }
}, },
"node_modules/esbuild-windows-32": { "node_modules/esbuild-windows-32": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz",
"integrity": "sha512-MDkJ3QkjnCetKF0fKxCyYNBnOq6dmidcwstBVeMtXSgGYTy8XSwBeIE4+HuKiSsG6I/mXEb++px3IGSmTN0XiA==", "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -600,9 +600,9 @@
} }
}, },
"node_modules/esbuild-windows-64": { "node_modules/esbuild-windows-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz",
"integrity": "sha512-xaAUIB2qllE888SsMU3j9nrqyLbkqqkpQyWVkfwSil6BBPgcPk3zOFitTTncEKCLTQy3XV9RuH7PDj3aJDljWA==", "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -616,9 +616,9 @@
} }
}, },
"node_modules/esbuild-windows-arm64": { "node_modules/esbuild-windows-arm64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz",
"integrity": "sha512-ttuoCYCIJAFx4UUKKWYnFdrVpoXa3+3WWkXVI6s09U+YjhnyM5h96ewTq/WgQj9LFSIlABQvadHSOQyAVjW5xQ==", "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -796,9 +796,9 @@
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
}, },
"node_modules/pinia": { "node_modules/pinia": {
"version": "2.0.26", "version": "2.0.28",
"resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.26.tgz", "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.28.tgz",
"integrity": "sha512-tSxZNUcMGxQOvKZRjPKXxd2+/2NZhRF/CoYVE/+K6uE/Z3v1Oi4fcQFpxu5nMB1dCchjXUZ+lz0tBxV5ntwmQQ==", "integrity": "sha512-YClq9DkqCblq9rlyUual7ezMu/iICWdBtfJrDt4oWU9Zxpijyz7xB2xTwx57DaBQ96UGvvTMORzALr+iO5PVMw==",
"dependencies": { "dependencies": {
"@vue/devtools-api": "^6.4.5", "@vue/devtools-api": "^6.4.5",
"vue-demi": "*" "vue-demi": "*"
@ -869,9 +869,9 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "2.8.0", "version": "2.8.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz",
"integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==",
"dev": true, "dev": true,
"bin": { "bin": {
"prettier": "bin-prettier.js" "prettier": "bin-prettier.js"
@ -983,9 +983,9 @@
"integrity": "sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw==" "integrity": "sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw=="
}, },
"node_modules/shaka-player": { "node_modules/shaka-player": {
"version": "4.3.0", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/shaka-player/-/shaka-player-4.3.0.tgz", "resolved": "https://registry.npmjs.org/shaka-player/-/shaka-player-4.3.1.tgz",
"integrity": "sha512-3obEhekQc6UZJFKWWlPkF6AHO4uA7vQpYDm23LXwuau3+UVlulkYyoZLbAvs1/WJ89h/PA0wk5W97FYPTzgNAw==", "integrity": "sha512-TeZh80k1o2zba/bC8H+ypmosTA9dgfNK5UZM8taK2j1vQgICrqiOEK0HuzFoZ3hOTLvGo6IhIIUSXfaGelO66g==",
"dependencies": { "dependencies": {
"eme-encryption-scheme-polyfill": "^2.1.1" "eme-encryption-scheme-polyfill": "^2.1.1"
}, },
@ -1012,7 +1012,8 @@
"node_modules/sourcemap-codec": { "node_modules/sourcemap-codec": {
"version": "1.4.8", "version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"deprecated": "Please use @jridgewell/sourcemap-codec instead"
}, },
"node_modules/stream-browserify": { "node_modules/stream-browserify": {
"version": "3.0.0", "version": "3.0.0",
@ -1054,9 +1055,9 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "3.2.4", "version": "3.2.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-3.2.4.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz",
"integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==", "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"esbuild": "^0.15.9", "esbuild": "^0.15.9",
@ -1141,29 +1142,29 @@
}, },
"dependencies": { "dependencies": {
"@babel/parser": { "@babel/parser": {
"version": "7.20.3", "version": "7.20.5",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz",
"integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==" "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA=="
}, },
"@babel/runtime": { "@babel/runtime": {
"version": "7.20.1", "version": "7.20.6",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz",
"integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==",
"requires": { "requires": {
"regenerator-runtime": "^0.13.10" "regenerator-runtime": "^0.13.11"
} }
}, },
"@esbuild/android-arm": { "@esbuild/android-arm": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.15.tgz", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz",
"integrity": "sha512-JJjZjJi2eBL01QJuWjfCdZxcIgot+VoK6Fq7eKF9w4YHm9hwl7nhBR1o2Wnt/WcANk5l9SkpvrldW1PLuXxcbw==", "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"@esbuild/linux-loong64": { "@esbuild/linux-loong64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz",
"integrity": "sha512-lhz6UNPMDXUhtXSulw8XlFAtSYO26WmHQnCi2Lg2p+/TMiJKNLtZCYUxV4wG6rZMzXmr8InGpNwk+DLT2Hm0PA==", "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
@ -1326,172 +1327,172 @@
"integrity": "sha512-njD17wcUrbqCj0ArpLu5zWXtaiupHb/2fIUQGdInf83GlI+Q6mmqaPGLdrke4savKAu15J/z1Tg/ivDgl14g0g==" "integrity": "sha512-njD17wcUrbqCj0ArpLu5zWXtaiupHb/2fIUQGdInf83GlI+Q6mmqaPGLdrke4savKAu15J/z1Tg/ivDgl14g0g=="
}, },
"esbuild": { "esbuild": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz",
"integrity": "sha512-TEw/lwK4Zzld9x3FedV6jy8onOUHqcEX3ADFk4k+gzPUwrxn8nWV62tH0udo8jOtjFodlEfc4ypsqX3e+WWO6w==", "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"@esbuild/android-arm": "0.15.15", "@esbuild/android-arm": "0.15.18",
"@esbuild/linux-loong64": "0.15.15", "@esbuild/linux-loong64": "0.15.18",
"esbuild-android-64": "0.15.15", "esbuild-android-64": "0.15.18",
"esbuild-android-arm64": "0.15.15", "esbuild-android-arm64": "0.15.18",
"esbuild-darwin-64": "0.15.15", "esbuild-darwin-64": "0.15.18",
"esbuild-darwin-arm64": "0.15.15", "esbuild-darwin-arm64": "0.15.18",
"esbuild-freebsd-64": "0.15.15", "esbuild-freebsd-64": "0.15.18",
"esbuild-freebsd-arm64": "0.15.15", "esbuild-freebsd-arm64": "0.15.18",
"esbuild-linux-32": "0.15.15", "esbuild-linux-32": "0.15.18",
"esbuild-linux-64": "0.15.15", "esbuild-linux-64": "0.15.18",
"esbuild-linux-arm": "0.15.15", "esbuild-linux-arm": "0.15.18",
"esbuild-linux-arm64": "0.15.15", "esbuild-linux-arm64": "0.15.18",
"esbuild-linux-mips64le": "0.15.15", "esbuild-linux-mips64le": "0.15.18",
"esbuild-linux-ppc64le": "0.15.15", "esbuild-linux-ppc64le": "0.15.18",
"esbuild-linux-riscv64": "0.15.15", "esbuild-linux-riscv64": "0.15.18",
"esbuild-linux-s390x": "0.15.15", "esbuild-linux-s390x": "0.15.18",
"esbuild-netbsd-64": "0.15.15", "esbuild-netbsd-64": "0.15.18",
"esbuild-openbsd-64": "0.15.15", "esbuild-openbsd-64": "0.15.18",
"esbuild-sunos-64": "0.15.15", "esbuild-sunos-64": "0.15.18",
"esbuild-windows-32": "0.15.15", "esbuild-windows-32": "0.15.18",
"esbuild-windows-64": "0.15.15", "esbuild-windows-64": "0.15.18",
"esbuild-windows-arm64": "0.15.15" "esbuild-windows-arm64": "0.15.18"
} }
}, },
"esbuild-android-64": { "esbuild-android-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz",
"integrity": "sha512-F+WjjQxO+JQOva3tJWNdVjouFMLK6R6i5gjDvgUthLYJnIZJsp1HlF523k73hELY20WPyEO8xcz7aaYBVkeg5Q==", "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-android-arm64": { "esbuild-android-arm64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz",
"integrity": "sha512-attlyhD6Y22jNyQ0fIIQ7mnPvDWKw7k6FKnsXlBvQE6s3z6s6cuEHcSgoirquQc7TmZgVCK5fD/2uxmRN+ZpcQ==", "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-darwin-64": { "esbuild-darwin-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz",
"integrity": "sha512-ohZtF8W1SHJ4JWldsPVdk8st0r9ExbAOSrBOh5L+Mq47i696GVwv1ab/KlmbUoikSTNoXEhDzVpxUR/WIO19FQ==", "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-darwin-arm64": { "esbuild-darwin-arm64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz",
"integrity": "sha512-P8jOZ5zshCNIuGn+9KehKs/cq5uIniC+BeCykvdVhx/rBXSxmtj3CUIKZz4sDCuESMbitK54drf/2QX9QHG5Ag==", "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-freebsd-64": { "esbuild-freebsd-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz",
"integrity": "sha512-KkTg+AmDXz1IvA9S1gt8dE24C8Thx0X5oM0KGF322DuP+P3evwTL9YyusHAWNsh4qLsR80nvBr/EIYs29VSwuA==", "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-freebsd-arm64": { "esbuild-freebsd-arm64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz",
"integrity": "sha512-FUcML0DRsuyqCMfAC+HoeAqvWxMeq0qXvclZZ/lt2kLU6XBnDA5uKTLUd379WYEyVD4KKFctqWd9tTuk8C/96g==", "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-32": { "esbuild-linux-32": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz",
"integrity": "sha512-q28Qn5pZgHNqug02aTkzw5sW9OklSo96b5nm17Mq0pDXrdTBcQ+M6Q9A1B+dalFeynunwh/pvfrNucjzwDXj+Q==", "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-64": { "esbuild-linux-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz",
"integrity": "sha512-217KPmWMirkf8liO+fj2qrPwbIbhNTGNVtvqI1TnOWJgcMjUWvd677Gq3fTzXEjilkx2yWypVnTswM2KbXgoAg==", "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-arm": { "esbuild-linux-arm": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz",
"integrity": "sha512-RYVW9o2yN8yM7SB1yaWr378CwrjvGCyGybX3SdzPHpikUHkME2AP55Ma20uNwkNyY2eSYFX9D55kDrfQmQBR4w==", "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-arm64": { "esbuild-linux-arm64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz",
"integrity": "sha512-/ltmNFs0FivZkYsTzAsXIfLQX38lFnwJTWCJts0IbCqWZQe+jjj0vYBNbI0kmXLb3y5NljiM5USVAO1NVkdh2g==", "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-mips64le": { "esbuild-linux-mips64le": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz",
"integrity": "sha512-PksEPb321/28GFFxtvL33yVPfnMZihxkEv5zME2zapXGp7fA1X2jYeiTUK+9tJ/EGgcNWuwvtawPxJG7Mmn86A==", "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-ppc64le": { "esbuild-linux-ppc64le": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz",
"integrity": "sha512-ek8gJBEIhcpGI327eAZigBOHl58QqrJrYYIZBWQCnH3UnXoeWMrMZLeeZL8BI2XMBhP+sQ6ERctD5X+ajL/AIA==", "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-riscv64": { "esbuild-linux-riscv64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz",
"integrity": "sha512-H5ilTZb33/GnUBrZMNJtBk7/OXzDHDXjIzoLXHSutwwsLxSNaLxzAaMoDGDd/keZoS+GDBqNVxdCkpuiRW4OSw==", "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-linux-s390x": { "esbuild-linux-s390x": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz",
"integrity": "sha512-jKaLUg78mua3rrtrkpv4Or2dNTJU7bgHN4bEjT4OX4GR7nLBSA9dfJezQouTxMmIW7opwEC5/iR9mpC18utnxQ==", "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-netbsd-64": { "esbuild-netbsd-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz",
"integrity": "sha512-aOvmF/UkjFuW6F36HbIlImJTTx45KUCHJndtKo+KdP8Dhq3mgLRKW9+6Ircpm8bX/RcS3zZMMmaBLkvGY06Gvw==", "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-openbsd-64": { "esbuild-openbsd-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz",
"integrity": "sha512-HFFX+WYedx1w2yJ1VyR1Dfo8zyYGQZf1cA69bLdrHzu9svj6KH6ZLK0k3A1/LFPhcEY9idSOhsB2UyU0tHPxgQ==", "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-sunos-64": { "esbuild-sunos-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz",
"integrity": "sha512-jOPBudffG4HN8yJXcK9rib/ZTFoTA5pvIKbRrt3IKAGMq1EpBi4xoVoSRrq/0d4OgZLaQbmkHp8RO9eZIn5atA==", "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-windows-32": { "esbuild-windows-32": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz",
"integrity": "sha512-MDkJ3QkjnCetKF0fKxCyYNBnOq6dmidcwstBVeMtXSgGYTy8XSwBeIE4+HuKiSsG6I/mXEb++px3IGSmTN0XiA==", "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-windows-64": { "esbuild-windows-64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz",
"integrity": "sha512-xaAUIB2qllE888SsMU3j9nrqyLbkqqkpQyWVkfwSil6BBPgcPk3zOFitTTncEKCLTQy3XV9RuH7PDj3aJDljWA==", "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"esbuild-windows-arm64": { "esbuild-windows-arm64": {
"version": "0.15.15", "version": "0.15.18",
"resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.15.tgz", "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz",
"integrity": "sha512-ttuoCYCIJAFx4UUKKWYnFdrVpoXa3+3WWkXVI6s09U+YjhnyM5h96ewTq/WgQj9LFSIlABQvadHSOQyAVjW5xQ==", "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
@ -1613,9 +1614,9 @@
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
}, },
"pinia": { "pinia": {
"version": "2.0.26", "version": "2.0.28",
"resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.26.tgz", "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.28.tgz",
"integrity": "sha512-tSxZNUcMGxQOvKZRjPKXxd2+/2NZhRF/CoYVE/+K6uE/Z3v1Oi4fcQFpxu5nMB1dCchjXUZ+lz0tBxV5ntwmQQ==", "integrity": "sha512-YClq9DkqCblq9rlyUual7ezMu/iICWdBtfJrDt4oWU9Zxpijyz7xB2xTwx57DaBQ96UGvvTMORzALr+iO5PVMw==",
"requires": { "requires": {
"@vue/devtools-api": "^6.4.5", "@vue/devtools-api": "^6.4.5",
"vue-demi": "*" "vue-demi": "*"
@ -1640,9 +1641,9 @@
} }
}, },
"prettier": { "prettier": {
"version": "2.8.0", "version": "2.8.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz",
"integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==",
"dev": true "dev": true
}, },
"process": { "process": {
@ -1709,9 +1710,9 @@
"integrity": "sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw==" "integrity": "sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw=="
}, },
"shaka-player": { "shaka-player": {
"version": "4.3.0", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/shaka-player/-/shaka-player-4.3.0.tgz", "resolved": "https://registry.npmjs.org/shaka-player/-/shaka-player-4.3.1.tgz",
"integrity": "sha512-3obEhekQc6UZJFKWWlPkF6AHO4uA7vQpYDm23LXwuau3+UVlulkYyoZLbAvs1/WJ89h/PA0wk5W97FYPTzgNAw==", "integrity": "sha512-TeZh80k1o2zba/bC8H+ypmosTA9dgfNK5UZM8taK2j1vQgICrqiOEK0HuzFoZ3hOTLvGo6IhIIUSXfaGelO66g==",
"requires": { "requires": {
"eme-encryption-scheme-polyfill": "^2.1.1" "eme-encryption-scheme-polyfill": "^2.1.1"
} }
@ -1765,9 +1766,9 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
}, },
"vite": { "vite": {
"version": "3.2.4", "version": "3.2.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-3.2.4.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz",
"integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==", "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"esbuild": "^0.15.9", "esbuild": "^0.15.9",

View file

@ -15,15 +15,15 @@
"dompurify": "^2.4.1", "dompurify": "^2.4.1",
"mux.js": "^6.2.0", "mux.js": "^6.2.0",
"peerjs": "^1.4.7", "peerjs": "^1.4.7",
"pinia": "^2.0.26", "pinia": "^2.0.28",
"shaka-player": "^4.3.0", "shaka-player": "^4.3.1",
"stream-browserify": "^3.0.0", "stream-browserify": "^3.0.0",
"vue": "^3.2.38", "vue": "^3.2.38",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
}, },
"devDependencies": { "devDependencies": {
"@vitejs/plugin-vue": "^3.2.0", "@vitejs/plugin-vue": "^3.2.0",
"prettier": "^2.8.0", "prettier": "^2.8.1",
"vite": "^3.2.4" "vite": "^3.2.5"
} }
} }

View file

@ -1,3 +1,3 @@
{ {
"date": "2022-11-30" "date": "2022-12-10"
} }

View file

@ -3,7 +3,7 @@ import { useRand } from '@/scripts/colors.js';
const rand = useRand(); const rand = useRand();
const props = defineProps({ defineProps({
name: String, name: String,
author: { author: {
type: String, type: String,

View file

@ -1,5 +1,5 @@
<script setup> <script setup>
import { ref, onUpdated } from 'vue'; import { ref } from 'vue';
import Btn from './Btn.vue'; import Btn from './Btn.vue';
import { useStore } from '@/scripts/util.js'; import { useStore } from '@/scripts/util.js';

View file

@ -51,7 +51,9 @@ onMounted(() => {
<template> <template>
<template v-if="data.options.length > 0"> <template v-if="data.options.length > 0">
<select :value="id" class="input" @input="id = $event.target.value"> <select :value="id" class="input" @input="id = $event.target.value">
<option v-for="i in data.options" :value="i.id">{{ i.title }}</option> <option v-for="i in data.options" :value="i.id" :key="i.id">
{{ i.title }}
</option>
</select> </select>
</template> </template>
@ -60,6 +62,7 @@ onMounted(() => {
<div class="grid-3 circle"> <div class="grid-3 circle">
<AlbumItem <AlbumItem
v-for="i in data.artists" v-for="i in data.artists"
:key="i.id"
:name="i.title" :name="i.title"
:author="i.subtitle" :author="i.subtitle"
:art="i.thumbnails[1].url" :art="i.thumbnails[1].url"
@ -72,6 +75,7 @@ onMounted(() => {
<div class="grid"> <div class="grid">
<SongItem <SongItem
v-for="i in data.songs" v-for="i in data.songs"
:key="i.id"
:title="i.title" :title="i.title"
:author="i.subtitle" :author="i.subtitle"
:channel="'/channel/' + i.subId" :channel="'/channel/' + i.subId"

View file

@ -1,5 +1,5 @@
<script setup> <script setup>
import { reactive, ref, onMounted, onUnmounted } from 'vue'; import { reactive, onMounted } from 'vue';
import { useResults } from '@/stores/results.js'; import { useResults } from '@/stores/results.js';
@ -62,11 +62,14 @@ onMounted(get);
<h2 class="head">{{ data.title }}</h2> <h2 class="head">{{ data.title }}</h2>
<template v-for="type in ['featured', 'spotlight', 'community']"> <template
v-for="type in ['featured', 'spotlight', 'community']"
:key="type">
<h3 class="head">{{ t('title.' + type) }}</h3> <h3 class="head">{{ t('title.' + type) }}</h3>
<div class="grid-3"> <div class="grid-3">
<template v-for="i in data[type]">
<AlbumItem <AlbumItem
v-for="i in data[type]"
:key="i.id"
:name="i.title" :name="i.title"
:author="i.subtitle" :author="i.subtitle"
:art="i.thumbnails[0].url" :art="i.thumbnails[0].url"
@ -74,7 +77,6 @@ onMounted(get);
getAlbum('/playlist?list=' + i.id); getAlbum('/playlist?list=' + i.id);
nav.state.page = 'home'; nav.state.page = 'home';
" /> " />
</template>
</div> </div>
</template> </template>
</template> </template>
@ -86,6 +88,7 @@ onMounted(get);
<button <button
v-for="i in btns.moods" v-for="i in btns.moods"
class="btn" class="btn"
:key="i.id"
:style="`--btn-color: ${i.subtitle};`" :style="`--btn-color: ${i.subtitle};`"
@click="get(i.id)"> @click="get(i.id)">
{{ i.title }} {{ i.title }}
@ -98,6 +101,7 @@ onMounted(get);
<button <button
v-for="i in btns.genres" v-for="i in btns.genres"
class="btn" class="btn"
:key="i.id"
:style="`--btn-color: ${i.subtitle};`" :style="`--btn-color: ${i.subtitle};`"
@click="get(i.id)"> @click="get(i.id)">
{{ i.title }} {{ i.title }}

View file

@ -1,6 +1,4 @@
<script setup> <script setup>
import { reactive } from 'vue';
import SearchBar from '@/components/SearchBar.vue'; import SearchBar from '@/components/SearchBar.vue';
import IcoHyp from '@/assets/icons/IcoHyp.vue'; import IcoHyp from '@/assets/icons/IcoHyp.vue';

View file

@ -30,8 +30,9 @@ const { t } = useI18n(),
results = useResults(), results = useResults(),
nav = useNav(); nav = useNav();
const emit = defineEmits(['play-urls', 'open-playlist']), defineEmits(['play-urls', 'open-playlist']);
list = ref([]),
const list = ref([]),
show = reactive({ show = reactive({
new: false, new: false,
sync: false, sync: false,
@ -137,7 +138,7 @@ const Login = async () => {
}, },
createPlaylist = async () => { createPlaylist = async () => {
if (text.value) { if (text.value) {
const res = await useAuthCreatePlaylist(text.value); await useAuthCreatePlaylist(text.value);
getPlaylists(); getPlaylists();
show.new = false; show.new = false;
@ -312,24 +313,24 @@ onMounted(async () => {
<h2 v-if="list.length > 0">{{ t('playlist.local') }}</h2> <h2 v-if="list.length > 0">{{ t('playlist.local') }}</h2>
<div class="grid-3"> <div class="grid-3">
<template v-for="i in list">
<AlbumItem <AlbumItem
v-for="i in list"
:key="i.name"
:name="i.name" :name="i.name"
:author="t('title.songs') + ' • ' + i.urls.length" :author="t('title.songs') + ' • ' + i.urls.length"
:grad="useRand()" :grad="useRand()"
@open-album="Open(i.name)" /> @open-album="Open(i.name)" />
</template>
</div> </div>
<h2 class="login-h">{{ t('playlist.remote') }}</h2> <h2 class="login-h">{{ t('playlist.remote') }}</h2>
<div v-if="auth" class="grid-3"> <div v-if="auth" class="grid-3">
<template v-for="i in user.playlists">
<AlbumItem <AlbumItem
v-for="i in user.playlists"
:key="i.id"
:name="i.name.replace('Playlist - ', '')" :name="i.name.replace('Playlist - ', '')"
:art="pathname(i.thumbnail) != '/' ? i.thumbnail : undefined" :art="pathname(i.thumbnail) != '/' ? i.thumbnail : undefined"
@open-album="$emit('open-playlist', '/playlists?list=' + i.id)" /> @open-album="$emit('open-playlist', '/playlists?list=' + i.id)" />
</template>
</div> </div>
<form v-else class="login" @submit.prevent> <form v-else class="login" @submit.prevent>
<input <input

View file

@ -1,12 +1,5 @@
<script setup> <script setup>
import { import { ref, watch, onMounted, onBeforeUnmount, onUnmounted } from 'vue';
ref,
watch,
onMounted,
onUpdated,
onBeforeUnmount,
onUnmounted,
} from 'vue';
import muxjs from 'mux.js'; import muxjs from 'mux.js';
window.muxjs = muxjs; window.muxjs = muxjs;
@ -64,7 +57,7 @@ async function Stream() {
if (shaka.Player.isBrowserSupported) { if (shaka.Player.isBrowserSupported) {
const audioPlayer = new shaka.Player(audio.value); const audioPlayer = new shaka.Player(audio.value);
const codecs = useStore().getItem('codec'); const codecs = store.getItem('codec');
audioPlayer audioPlayer
.getNetworkingEngine() .getNetworkingEngine()
@ -94,7 +87,7 @@ async function Stream() {
}); });
} }
const quality = useStore().getItem('quality'); const quality = store.getItem('quality');
if (url) { if (url) {
window.audioPlayer window.audioPlayer

View file

@ -12,8 +12,11 @@ defineEmits(['playthis']);
<template> <template>
<Transition name="fade"> <Transition name="fade">
<div class="pl-modal placeholder" :data-placeholder="t('playlist.add')"> <div class="pl-modal placeholder" :data-placeholder="t('playlist.add')">
<template v-for="plurl in data.state.urls"> <div
<div class="pl-item" @click="$emit('playthis', plurl)"> v-for="plurl in data.state.urls"
class="pl-item"
:key="plurl.url"
@click="$emit('playthis', plurl)">
<span <span
v-if="data.state.url == plurl.url" v-if="data.state.url == plurl.url"
class="bars-wrap" class="bars-wrap"
@ -31,7 +34,6 @@ defineEmits(['playthis']);
</div> </div>
<span class="pl-main caps">{{ plurl.title }}</span> <span class="pl-main caps">{{ plurl.title }}</span>
</div> </div>
</template>
</div> </div>
</Transition> </Transition>
</template> </template>

View file

@ -107,7 +107,9 @@ onMounted(() => {
class="input" class="input"
:value="getStore('locale') || 'en'" :value="getStore('locale') || 'en'"
@change="setLang($event.target.value)"> @change="setLang($event.target.value)">
<option v-for="i in SUPPORTED_LOCALES" :value="i.code">{{ i.name }}</option> <option v-for="i in SUPPORTED_LOCALES" :value="i.code" :key="i.code">
{{ i.name }}
</option>
</select> </select>
<h2>{{ t('pref.tab') }}</h2> <h2>{{ t('pref.tab') }}</h2>
@ -205,7 +207,7 @@ onMounted(() => {
<th>{{ t('instances.loc') }}</th> <th>{{ t('instances.loc') }}</th>
</tr> </tr>
</thead> </thead>
<tbody v-for="i in hypInstances"> <tbody v-for="i in hypInstances" :key="i.name">
<tr> <tr>
<td> <td>
{{ i.name }} {{ i.name }}
@ -273,7 +275,7 @@ onMounted(() => {
<th>{{ t('instances.version') }}</th> <th>{{ t('instances.version') }}</th>
</tr> </tr>
</thead> </thead>
<tbody v-for="i in instances"> <tbody v-for="i in instances" :key="i.name">
<tr> <tr>
<td> <td>
{{ i.name.replace('Official', 'Default') }} {{ i.name.replace('Official', 'Default') }}

View file

@ -1,12 +1,5 @@
<script setup> <script setup>
import { import { ref, watch, onActivated, onUpdated, onDeactivated } from 'vue';
ref,
reactive,
watch,
onActivated,
onUpdated,
onDeactivated,
} from 'vue';
import Btn from './Btn.vue'; import Btn from './Btn.vue';
import SongItem from './SongItem.vue'; import SongItem from './SongItem.vue';
@ -241,11 +234,12 @@ onDeactivated(() => {
<button <button
v-for="f in filters" v-for="f in filters"
class="filter caps" class="filter caps"
:key="f"
:data-active="f == filter"
@click=" @click="
filter = f; filter = f;
getSearch(nav.state.search); getSearch(nav.state.search);
" ">
:data-active="f == filter">
{{ t('title.' + f.split('_')[1]) }} {{ t('title.' + f.split('_')[1]) }}
</button> </button>
</div> </div>
@ -255,8 +249,9 @@ onDeactivated(() => {
class="search-wrap"> class="search-wrap">
<h2 v-if="!isSearch">{{ t('title.songs') }}</h2> <h2 v-if="!isSearch">{{ t('title.songs') }}</h2>
<div class="grid"> <div class="grid">
<template v-for="(song, index) in results.items.songs.items">
<SongItem <SongItem
v-for="(song, index) in results.items.songs.items"
:key="song.url || song.id"
:index="index" :index="index"
:playlistId="song.playlistId" :playlistId="song.playlistId"
:author="song.uploaderName || song.subtitle" :author="song.uploaderName || song.subtitle"
@ -283,7 +278,6 @@ onDeactivated(() => {
}, },
]) ])
" /> " />
</template>
</div> </div>
<a <a
v-if="artist.state.playlistId" v-if="artist.state.playlistId"
@ -301,15 +295,15 @@ onDeactivated(() => {
class="search-wrap"> class="search-wrap">
<h2 v-if="!isSearch">{{ t('title.albums') }}</h2> <h2 v-if="!isSearch">{{ t('title.albums') }}</h2>
<div class="grid-3"> <div class="grid-3">
<template v-for="album in results.items.albums.items">
<AlbumItem <AlbumItem
v-for="album in results.items.albums.items"
:key="album.url || album.id"
:author="album.uploaderName || album.subtitle" :author="album.uploaderName || album.subtitle"
:name="album.name || album.title" :name="album.name || album.title"
:art="album.thumbnail || album.thumbnails[0].url" :art="album.thumbnail || album.thumbnails[0].url"
@open-album=" @open-album="
results.getAlbum(album.url || '/playlist?list=' + album.id) results.getAlbum(album.url || '/playlist?list=' + album.id)
" /> " />
</template>
</div> </div>
</div> </div>
@ -320,6 +314,7 @@ onDeactivated(() => {
<div class="grid-3"> <div class="grid-3">
<AlbumItem <AlbumItem
v-for="pl in results.items.playlists.items" v-for="pl in results.items.playlists.items"
:key="pl.url"
:author="pl.videos + ' Songs • ' + pl.uploaderName" :author="pl.videos + ' Songs • ' + pl.uploaderName"
:name="pl.name" :name="pl.name"
:art="pl.thumbnail" :art="pl.thumbnail"
@ -332,13 +327,13 @@ onDeactivated(() => {
class="search-wrap"> class="search-wrap">
<h2>{{ t('title.singles') }}</h2> <h2>{{ t('title.singles') }}</h2>
<div class="grid-3"> <div class="grid-3">
<template v-for="single in results.items.singles.items">
<AlbumItem <AlbumItem
v-for="single in results.items.singles.items"
:key="single.id"
:author="single.subtitle" :author="single.subtitle"
:name="single.title" :name="single.title"
:art="single.thumbnails[0].url" :art="single.thumbnails[0].url"
@open-album="results.getAlbum('/playlist?list=' + single.id)" /> @open-album="results.getAlbum('/playlist?list=' + single.id)" />
</template>
</div> </div>
</div> </div>
@ -355,18 +350,17 @@ onDeactivated(() => {
}} }}
</h2> </h2>
<div class="grid-3 circle"> <div class="grid-3 circle">
<template <AlbumItem
v-for="a in results.items.artists v-for="a in results.items.artists
? results.items.artists.items ? results.items.artists.items
: results.items.recommendedArtists.items"> : results.items.recommendedArtists.items"
<AlbumItem :key="a.id || a.url"
:author="a.subtitle" :author="a.subtitle"
:name="a.name || a.title" :name="a.name || a.title"
:art="a.thumbnail || a.thumbnails[0].url" :art="a.thumbnail || a.thumbnails[0].url"
@open-album=" @open-album="
artist.getArtist(a.id || a.url.replace('/channel/', '')) artist.getArtist(a.id || a.url.replace('/channel/', ''))
" /> " />
</template>
</div> </div>
</div> </div>
</template> </template>

View file

@ -5,6 +5,13 @@ import { useNav, useI18n } from '@/stores/misc.js';
const { t } = useI18n(), const { t } = useI18n(),
show = ref(false), show = ref(false),
nav = useNav(); nav = useNav();
function search(e) {
nav.state.search = e.target.value;
nav.state.page = 'home';
e.target.blur();
console.log(e);
}
</script> </script>
<template> <template>
@ -19,11 +26,8 @@ const { t } = useI18n(),
type="search" type="search"
aria-label="Search Input" aria-label="Search Input"
:placeholder="t('title.search') + '...'" :placeholder="t('title.search') + '...'"
@change=" @change="search"
nav.state.search = $event.target.value; @keyup.enter="search"
nav.state.page = 'home';
$event.target.blur();
"
:value="nav.state.search" /> :value="nav.state.search" />
</div> </div>
</Transition> </Transition>

View file

@ -5,7 +5,7 @@ import { getJsonAuth } from '@/scripts/fetch.js';
import { useRand } from '@/scripts/colors.js'; import { useRand } from '@/scripts/colors.js';
import { useStore } from '@/scripts/util.js'; import { useStore } from '@/scripts/util.js';
import { useArtist, useResults } from '@/stores/results.js'; import { useArtist } from '@/stores/results.js';
import { useData, usePlayer } from '@/stores/player.js'; import { useData, usePlayer } from '@/stores/player.js';
const rand = useRand(), const rand = useRand(),

View file

@ -1,5 +1,5 @@
<script setup> <script setup>
import { ref, reactive, watch } from 'vue'; import { ref, reactive } from 'vue';
import Modal from './Modal.vue'; import Modal from './Modal.vue';
@ -19,8 +19,9 @@ const { t } = useI18n(),
player = usePlayer(), player = usePlayer(),
store = useStore(); store = useStore();
const emit = defineEmits(['save']), defineEmits(['save']);
showme = reactive({
const showme = reactive({
menu: false, menu: false,
pl: false, pl: false,
vol: false, vol: false,
@ -112,8 +113,9 @@ async function Like() {
} }
"> ">
<template #content> <template #content>
<template v-for="i in list">
<div <div
v-for="i in list"
:key="i.name"
class="flex item" class="flex item"
@click=" @click="
pl = i.name; pl = i.name;
@ -123,9 +125,9 @@ async function Like() {
<span>{{ i.name }}</span <span>{{ i.name }}</span
><span class="ml-auto">{{ i.urls.length || '' }}</span> ><span class="ml-auto">{{ i.urls.length || '' }}</span>
</div> </div>
</template>
<template v-for="i in remote">
<div <div
v-for="i in remote"
:key="i.id"
class="flex item" class="flex item"
@click=" @click="
pl = i.id; pl = i.id;
@ -135,7 +137,6 @@ async function Like() {
<span>{{ i.name }}</span> <span>{{ i.name }}</span>
</div> </div>
</template> </template>
</template>
<template #buttons> <template #buttons>
<button aria-label="Cancel" @click="showme.pl = false"> <button aria-label="Cancel" @click="showme.pl = false">
{{ t('action.cancel') }} {{ t('action.cancel') }}