SVT-AV1 & TailwindCSS
Build / build (push) Failing after 1m40s

This commit is contained in:
2025-10-01 21:06:39 +07:00
parent f1da312b95
commit 958ecdca7d
18 changed files with 829 additions and 146 deletions
+1 -4
View File
@@ -48,7 +48,7 @@ encoders supported by your FFmpeg install will show up.
- [ ] AV1
- [x] libaom-av1
- [x] librav1e (Partial support)
- [ ] libsvtav1
- [x] libsvtav1
- [ ] av1_amf
- [ ] av1_nvenc
- [ ] av1_qsv
@@ -60,7 +60,6 @@ encoders supported by your FFmpeg install will show up.
- [ ] h264_amf
- [ ] h264_nvenc
- [ ] h264_qsv
- [ ] h264_v4l2m2m
- [ ] h264_vaapi
- [ ] h264_vulkan
- [ ] H.265
@@ -68,12 +67,10 @@ encoders supported by your FFmpeg install will show up.
- [ ] h264_amf
- [ ] h264_nvenc
- [ ] h264_qsv
- [ ] h264_v4l2m2m
- [ ] h264_vaapi
- [ ] h264_vulkan
- [ ] VP8
- [ ] libvpx
- [ ] vp8_v4l2m2m
- [ ] vp8_vaapi
- [ ] VP9
- [ ] libvpx-vp9
+2 -1
View File
@@ -5,6 +5,7 @@
"defaultMode": "window",
"documentRoot": "/solid-src/dist/",
"url": "/",
"port": 5432,
"enableServer": true,
"enableNativeAPI": true,
"singlePageServe": true,
@@ -45,4 +46,4 @@
"devUrl": "http://localhost:5173"
}
}
}
}
+2 -2
View File
@@ -5,7 +5,7 @@
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="/__neutralino_globals.js"></script>
<script src="http://localhost:5432/__neutralino_globals.js"></script>
<title>Vencoder</title>
</head>
@@ -14,4 +14,4 @@
<script type="module" src="/src/index.tsx"></script>
</body>
</html>
</html>
+4 -2
View File
@@ -11,11 +11,13 @@
"dependencies": {
"@neutralinojs/lib": "^6.3.0",
"@solidjs/router": "^0.15.3",
"@tailwindcss/vite": "^4.1.13",
"color-convert": "^3.1.2",
"solid-js": "^1.9.9"
"solid-js": "^1.9.9",
"tailwindcss": "^4.1.13"
},
"devDependencies": {
"@types/node": "^24.5.2",
"@types/node": "^24.6.1",
"prettier": "3.6.2",
"typescript": "~5.8.3",
"vite": "^7.1.7",
+492 -124
View File
@@ -14,16 +14,22 @@ importers:
'@solidjs/router':
specifier: ^0.15.3
version: 0.15.3(solid-js@1.9.9)
'@tailwindcss/vite':
specifier: ^4.1.13
version: 4.1.13(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1))
color-convert:
specifier: ^3.1.2
version: 3.1.2
solid-js:
specifier: ^1.9.9
version: 1.9.9
tailwindcss:
specifier: ^4.1.13
version: 4.1.13
devDependencies:
'@types/node':
specifier: ^24.5.2
version: 24.5.2
specifier: ^24.6.1
version: 24.6.1
prettier:
specifier: 3.6.2
version: 3.6.2
@@ -32,10 +38,10 @@ importers:
version: 5.8.3
vite:
specifier: ^7.1.7
version: 7.1.7(@types/node@24.5.2)
version: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)
vite-plugin-solid:
specifier: ^2.11.8
version: 2.11.8(solid-js@1.9.9)(vite@7.1.7(@types/node@24.5.2))
version: 2.11.8(solid-js@1.9.9)(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1))
packages:
@@ -276,6 +282,10 @@ packages:
cpu: [x64]
os: [win32]
'@isaacs/fs-minipass@4.0.1':
resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
engines: {node: '>=18.0.0'}
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
@@ -295,113 +305,113 @@ packages:
'@neutralinojs/lib@6.3.0':
resolution: {integrity: sha512-5HOtqWwylQ5SD6G/QaLNOSfub+/+fh08tTJfsEslg5fYFVbcCdTS50byqWTvkjluW57KaeuCaFpALhT20bFhDQ==}
'@rollup/rollup-android-arm-eabi@4.52.2':
resolution: {integrity: sha512-o3pcKzJgSGt4d74lSZ+OCnHwkKBeAbFDmbEm5gg70eA8VkyCuC/zV9TwBnmw6VjDlRdF4Pshfb+WE9E6XY1PoQ==}
'@rollup/rollup-android-arm-eabi@4.52.3':
resolution: {integrity: sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==}
cpu: [arm]
os: [android]
'@rollup/rollup-android-arm64@4.52.2':
resolution: {integrity: sha512-cqFSWO5tX2vhC9hJTK8WAiPIm4Q8q/cU8j2HQA0L3E1uXvBYbOZMhE2oFL8n2pKB5sOCHY6bBuHaRwG7TkfJyw==}
'@rollup/rollup-android-arm64@4.52.3':
resolution: {integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==}
cpu: [arm64]
os: [android]
'@rollup/rollup-darwin-arm64@4.52.2':
resolution: {integrity: sha512-vngduywkkv8Fkh3wIZf5nFPXzWsNsVu1kvtLETWxTFf/5opZmflgVSeLgdHR56RQh71xhPhWoOkEBvbehwTlVA==}
'@rollup/rollup-darwin-arm64@4.52.3':
resolution: {integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==}
cpu: [arm64]
os: [darwin]
'@rollup/rollup-darwin-x64@4.52.2':
resolution: {integrity: sha512-h11KikYrUCYTrDj6h939hhMNlqU2fo/X4NB0OZcys3fya49o1hmFaczAiJWVAFgrM1NCP6RrO7lQKeVYSKBPSQ==}
'@rollup/rollup-darwin-x64@4.52.3':
resolution: {integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==}
cpu: [x64]
os: [darwin]
'@rollup/rollup-freebsd-arm64@4.52.2':
resolution: {integrity: sha512-/eg4CI61ZUkLXxMHyVlmlGrSQZ34xqWlZNW43IAU4RmdzWEx0mQJ2mN/Cx4IHLVZFL6UBGAh+/GXhgvGb+nVxw==}
'@rollup/rollup-freebsd-arm64@4.52.3':
resolution: {integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==}
cpu: [arm64]
os: [freebsd]
'@rollup/rollup-freebsd-x64@4.52.2':
resolution: {integrity: sha512-QOWgFH5X9+p+S1NAfOqc0z8qEpJIoUHf7OWjNUGOeW18Mx22lAUOiA9b6r2/vpzLdfxi/f+VWsYjUOMCcYh0Ng==}
'@rollup/rollup-freebsd-x64@4.52.3':
resolution: {integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==}
cpu: [x64]
os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.52.2':
resolution: {integrity: sha512-kDWSPafToDd8LcBYd1t5jw7bD5Ojcu12S3uT372e5HKPzQt532vW+rGFFOaiR0opxePyUkHrwz8iWYEyH1IIQA==}
'@rollup/rollup-linux-arm-gnueabihf@4.52.3':
resolution: {integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.52.2':
resolution: {integrity: sha512-gKm7Mk9wCv6/rkzwCiUC4KnevYhlf8ztBrDRT9g/u//1fZLapSRc+eDZj2Eu2wpJ+0RzUKgtNijnVIB4ZxyL+w==}
'@rollup/rollup-linux-arm-musleabihf@4.52.3':
resolution: {integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.52.2':
resolution: {integrity: sha512-66lA8vnj5mB/rtDNwPgrrKUOtCLVQypkyDa2gMfOefXK6rcZAxKLO9Fy3GkW8VkPnENv9hBkNOFfGLf6rNKGUg==}
'@rollup/rollup-linux-arm64-gnu@4.52.3':
resolution: {integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-arm64-musl@4.52.2':
resolution: {integrity: sha512-s+OPucLNdJHvuZHuIz2WwncJ+SfWHFEmlC5nKMUgAelUeBUnlB4wt7rXWiyG4Zn07uY2Dd+SGyVa9oyLkVGOjA==}
'@rollup/rollup-linux-arm64-musl@4.52.3':
resolution: {integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-loong64-gnu@4.52.2':
resolution: {integrity: sha512-8wTRM3+gVMDLLDdaT6tKmOE3lJyRy9NpJUS/ZRWmLCmOPIJhVyXwjBo+XbrrwtV33Em1/eCTd5TuGJm4+DmYjw==}
'@rollup/rollup-linux-loong64-gnu@4.52.3':
resolution: {integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==}
cpu: [loong64]
os: [linux]
'@rollup/rollup-linux-ppc64-gnu@4.52.2':
resolution: {integrity: sha512-6yqEfgJ1anIeuP2P/zhtfBlDpXUb80t8DpbYwXQ3bQd95JMvUaqiX+fKqYqUwZXqdJDd8xdilNtsHM2N0cFm6A==}
'@rollup/rollup-linux-ppc64-gnu@4.52.3':
resolution: {integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==}
cpu: [ppc64]
os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.52.2':
resolution: {integrity: sha512-sshYUiYVSEI2B6dp4jMncwxbrUqRdNApF2c3bhtLAU0qA8Lrri0p0NauOsTWh3yCCCDyBOjESHMExonp7Nzc0w==}
'@rollup/rollup-linux-riscv64-gnu@4.52.3':
resolution: {integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-riscv64-musl@4.52.2':
resolution: {integrity: sha512-duBLgd+3pqC4MMwBrKkFxaZerUxZcYApQVC5SdbF5/e/589GwVvlRUnyqMFbM8iUSb1BaoX/3fRL7hB9m2Pj8Q==}
'@rollup/rollup-linux-riscv64-musl@4.52.3':
resolution: {integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.52.2':
resolution: {integrity: sha512-tzhYJJidDUVGMgVyE+PmxENPHlvvqm1KILjjZhB8/xHYqAGeizh3GBGf9u6WdJpZrz1aCpIIHG0LgJgH9rVjHQ==}
'@rollup/rollup-linux-s390x-gnu@4.52.3':
resolution: {integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==}
cpu: [s390x]
os: [linux]
'@rollup/rollup-linux-x64-gnu@4.52.2':
resolution: {integrity: sha512-opH8GSUuVcCSSyHHcl5hELrmnk4waZoVpgn/4FDao9iyE4WpQhyWJ5ryl5M3ocp4qkRuHfyXnGqg8M9oKCEKRA==}
'@rollup/rollup-linux-x64-gnu@4.52.3':
resolution: {integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==}
cpu: [x64]
os: [linux]
'@rollup/rollup-linux-x64-musl@4.52.2':
resolution: {integrity: sha512-LSeBHnGli1pPKVJ79ZVJgeZWWZXkEe/5o8kcn23M8eMKCUANejchJbF/JqzM4RRjOJfNRhKJk8FuqL1GKjF5oQ==}
'@rollup/rollup-linux-x64-musl@4.52.3':
resolution: {integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==}
cpu: [x64]
os: [linux]
'@rollup/rollup-openharmony-arm64@4.52.2':
resolution: {integrity: sha512-uPj7MQ6/s+/GOpolavm6BPo+6CbhbKYyZHUDvZ/SmJM7pfDBgdGisFX3bY/CBDMg2ZO4utfhlApkSfZ92yXw7Q==}
'@rollup/rollup-openharmony-arm64@4.52.3':
resolution: {integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==}
cpu: [arm64]
os: [openharmony]
'@rollup/rollup-win32-arm64-msvc@4.52.2':
resolution: {integrity: sha512-Z9MUCrSgIaUeeHAiNkm3cQyst2UhzjPraR3gYYfOjAuZI7tcFRTOD+4cHLPoS/3qinchth+V56vtqz1Tv+6KPA==}
'@rollup/rollup-win32-arm64-msvc@4.52.3':
resolution: {integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==}
cpu: [arm64]
os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.52.2':
resolution: {integrity: sha512-+GnYBmpjldD3XQd+HMejo+0gJGwYIOfFeoBQv32xF/RUIvccUz20/V6Otdv+57NE70D5pa8W/jVGDoGq0oON4A==}
'@rollup/rollup-win32-ia32-msvc@4.52.3':
resolution: {integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==}
cpu: [ia32]
os: [win32]
'@rollup/rollup-win32-x64-gnu@4.52.2':
resolution: {integrity: sha512-ApXFKluSB6kDQkAqZOKXBjiaqdF1BlKi+/eqnYe9Ee7U2K3pUDKsIyr8EYm/QDHTJIM+4X+lI0gJc3TTRhd+dA==}
'@rollup/rollup-win32-x64-gnu@4.52.3':
resolution: {integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==}
cpu: [x64]
os: [win32]
'@rollup/rollup-win32-x64-msvc@4.52.2':
resolution: {integrity: sha512-ARz+Bs8kY6FtitYM96PqPEVvPXqEZmPZsSkXvyX19YzDqkCaIlhCieLLMI5hxO9SRZ2XtCtm8wxhy0iJ2jxNfw==}
'@rollup/rollup-win32-x64-msvc@4.52.3':
resolution: {integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==}
cpu: [x64]
os: [win32]
@@ -410,6 +420,96 @@ packages:
peerDependencies:
solid-js: ^1.8.6
'@tailwindcss/node@4.1.13':
resolution: {integrity: sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==}
'@tailwindcss/oxide-android-arm64@4.1.13':
resolution: {integrity: sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
'@tailwindcss/oxide-darwin-arm64@4.1.13':
resolution: {integrity: sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@tailwindcss/oxide-darwin-x64@4.1.13':
resolution: {integrity: sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
'@tailwindcss/oxide-freebsd-x64@4.1.13':
resolution: {integrity: sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13':
resolution: {integrity: sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
'@tailwindcss/oxide-linux-arm64-gnu@4.1.13':
resolution: {integrity: sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-arm64-musl@4.1.13':
resolution: {integrity: sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-x64-gnu@4.1.13':
resolution: {integrity: sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-linux-x64-musl@4.1.13':
resolution: {integrity: sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-wasm32-wasi@4.1.13':
resolution: {integrity: sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
bundledDependencies:
- '@napi-rs/wasm-runtime'
- '@emnapi/core'
- '@emnapi/runtime'
- '@tybys/wasm-util'
- '@emnapi/wasi-threads'
- tslib
'@tailwindcss/oxide-win32-arm64-msvc@4.1.13':
resolution: {integrity: sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
'@tailwindcss/oxide-win32-x64-msvc@4.1.13':
resolution: {integrity: sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
'@tailwindcss/oxide@4.1.13':
resolution: {integrity: sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==}
engines: {node: '>= 10'}
'@tailwindcss/vite@4.1.13':
resolution: {integrity: sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ==}
peerDependencies:
vite: ^5.2.0 || ^6 || ^7
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -425,8 +525,8 @@ packages:
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
'@types/node@24.5.2':
resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==}
'@types/node@24.6.1':
resolution: {integrity: sha512-ljvjjs3DNXummeIaooB4cLBKg2U6SPI6Hjra/9rRIy7CpM0HpLtG9HptkMKAb4HYWy5S7HUvJEuWgr/y0U8SHw==}
babel-plugin-jsx-dom-expressions@0.40.1:
resolution: {integrity: sha512-b4iHuirqK7RgaMzB2Lsl7MqrlDgQtVRSSazyrmx7wB3T759ggGjod5Rkok5MfHjQXhR7tRPmdwoeGPqBnW2KfA==}
@@ -442,8 +542,8 @@ packages:
solid-js:
optional: true
baseline-browser-mapping@2.8.6:
resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==}
baseline-browser-mapping@2.8.9:
resolution: {integrity: sha512-hY/u2lxLrbecMEWSB0IpGzGyDyeoMFQhCvZd2jGFSE5I17Fh01sYUBPCJtkWERw7zrac9+cIghxm/ytJa2X8iA==}
hasBin: true
browserslist@4.26.2:
@@ -451,8 +551,12 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
caniuse-lite@1.0.30001743:
resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==}
caniuse-lite@1.0.30001746:
resolution: {integrity: sha512-eA7Ys/DGw+pnkWWSE/id29f2IcPHVoE8wxtvE5JdvD2V28VTDPy1yEeo11Guz0sJ4ZeGRcm3uaTcAqK1LXaphA==}
chownr@3.0.0:
resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
engines: {node: '>=18'}
color-convert@3.1.2:
resolution: {integrity: sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==}
@@ -477,8 +581,16 @@ packages:
supports-color:
optional: true
electron-to-chromium@1.5.222:
resolution: {integrity: sha512-gA7psSwSwQRE60CEoLz6JBCQPIxNeuzB2nL8vE03GK/OHxlvykbLyeiumQy1iH5C2f3YbRAZpGCMT12a/9ih9w==}
detect-libc@2.1.1:
resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==}
engines: {node: '>=8'}
electron-to-chromium@1.5.228:
resolution: {integrity: sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==}
enhanced-resolve@5.18.3:
resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==}
engines: {node: '>=10.13.0'}
entities@6.0.1:
resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
@@ -511,6 +623,9 @@ packages:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
html-entities@2.3.3:
resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
@@ -518,6 +633,10 @@ packages:
resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
engines: {node: '>=12.13'}
jiti@2.6.1:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@@ -531,13 +650,88 @@ packages:
engines: {node: '>=6'}
hasBin: true
lightningcss-darwin-arm64@1.30.1:
resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [darwin]
lightningcss-darwin-x64@1.30.1:
resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [darwin]
lightningcss-freebsd-x64@1.30.1:
resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [freebsd]
lightningcss-linux-arm-gnueabihf@1.30.1:
resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==}
engines: {node: '>= 12.0.0'}
cpu: [arm]
os: [linux]
lightningcss-linux-arm64-gnu@1.30.1:
resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
lightningcss-linux-arm64-musl@1.30.1:
resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
lightningcss-linux-x64-gnu@1.30.1:
resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
lightningcss-linux-x64-musl@1.30.1:
resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
lightningcss-win32-arm64-msvc@1.30.1:
resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [win32]
lightningcss-win32-x64-msvc@1.30.1:
resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [win32]
lightningcss@1.30.1:
resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==}
engines: {node: '>= 12.0.0'}
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
magic-string@0.30.19:
resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
merge-anything@5.1.7:
resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==}
engines: {node: '>=12.13'}
minipass@7.1.2:
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
minizlib@3.1.0:
resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
engines: {node: '>= 18'}
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
@@ -568,8 +762,8 @@ packages:
engines: {node: '>=14'}
hasBin: true
rollup@4.52.2:
resolution: {integrity: sha512-I25/2QgoROE1vYV+NQ1En9T9UFB9Cmfm2CJ83zZOlaDpvz29wGQSZXWKw7MiNXau7wYgB/T9fVIdIuEQ+KbiiA==}
rollup@4.52.3:
resolution: {integrity: sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -599,6 +793,17 @@ packages:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
tailwindcss@4.1.13:
resolution: {integrity: sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==}
tapable@2.2.3:
resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==}
engines: {node: '>=6'}
tar@7.5.1:
resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==}
engines: {node: '>=18'}
tinyglobby@0.2.15:
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
engines: {node: '>=12.0.0'}
@@ -608,8 +813,8 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
undici-types@7.12.0:
resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==}
undici-types@7.13.0:
resolution: {integrity: sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==}
update-browserslist-db@1.1.3:
resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
@@ -681,6 +886,10 @@ packages:
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
yallist@5.0.0:
resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
engines: {node: '>=18'}
snapshots:
'@babel/code-frame@7.27.1':
@@ -872,6 +1081,10 @@ snapshots:
'@esbuild/win32-x64@0.25.10':
optional: true
'@isaacs/fs-minipass@4.0.1':
dependencies:
minipass: 7.1.2
'@jridgewell/gen-mapping@0.3.13':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -893,79 +1106,150 @@ snapshots:
'@neutralinojs/lib@6.3.0':
optionalDependencies:
'@rollup/rollup-darwin-x64': 4.52.2
'@rollup/rollup-linux-x64-gnu': 4.52.2
'@rollup/rollup-darwin-x64': 4.52.3
'@rollup/rollup-linux-x64-gnu': 4.52.3
'@rollup/rollup-android-arm-eabi@4.52.2':
'@rollup/rollup-android-arm-eabi@4.52.3':
optional: true
'@rollup/rollup-android-arm64@4.52.2':
'@rollup/rollup-android-arm64@4.52.3':
optional: true
'@rollup/rollup-darwin-arm64@4.52.2':
'@rollup/rollup-darwin-arm64@4.52.3':
optional: true
'@rollup/rollup-darwin-x64@4.52.2':
'@rollup/rollup-darwin-x64@4.52.3':
optional: true
'@rollup/rollup-freebsd-arm64@4.52.2':
'@rollup/rollup-freebsd-arm64@4.52.3':
optional: true
'@rollup/rollup-freebsd-x64@4.52.2':
'@rollup/rollup-freebsd-x64@4.52.3':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.52.2':
'@rollup/rollup-linux-arm-gnueabihf@4.52.3':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.52.2':
'@rollup/rollup-linux-arm-musleabihf@4.52.3':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.52.2':
'@rollup/rollup-linux-arm64-gnu@4.52.3':
optional: true
'@rollup/rollup-linux-arm64-musl@4.52.2':
'@rollup/rollup-linux-arm64-musl@4.52.3':
optional: true
'@rollup/rollup-linux-loong64-gnu@4.52.2':
'@rollup/rollup-linux-loong64-gnu@4.52.3':
optional: true
'@rollup/rollup-linux-ppc64-gnu@4.52.2':
'@rollup/rollup-linux-ppc64-gnu@4.52.3':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.52.2':
'@rollup/rollup-linux-riscv64-gnu@4.52.3':
optional: true
'@rollup/rollup-linux-riscv64-musl@4.52.2':
'@rollup/rollup-linux-riscv64-musl@4.52.3':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.52.2':
'@rollup/rollup-linux-s390x-gnu@4.52.3':
optional: true
'@rollup/rollup-linux-x64-gnu@4.52.2':
'@rollup/rollup-linux-x64-gnu@4.52.3':
optional: true
'@rollup/rollup-linux-x64-musl@4.52.2':
'@rollup/rollup-linux-x64-musl@4.52.3':
optional: true
'@rollup/rollup-openharmony-arm64@4.52.2':
'@rollup/rollup-openharmony-arm64@4.52.3':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.52.2':
'@rollup/rollup-win32-arm64-msvc@4.52.3':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.52.2':
'@rollup/rollup-win32-ia32-msvc@4.52.3':
optional: true
'@rollup/rollup-win32-x64-gnu@4.52.2':
'@rollup/rollup-win32-x64-gnu@4.52.3':
optional: true
'@rollup/rollup-win32-x64-msvc@4.52.2':
'@rollup/rollup-win32-x64-msvc@4.52.3':
optional: true
'@solidjs/router@0.15.3(solid-js@1.9.9)':
dependencies:
solid-js: 1.9.9
'@tailwindcss/node@4.1.13':
dependencies:
'@jridgewell/remapping': 2.3.5
enhanced-resolve: 5.18.3
jiti: 2.6.1
lightningcss: 1.30.1
magic-string: 0.30.19
source-map-js: 1.2.1
tailwindcss: 4.1.13
'@tailwindcss/oxide-android-arm64@4.1.13':
optional: true
'@tailwindcss/oxide-darwin-arm64@4.1.13':
optional: true
'@tailwindcss/oxide-darwin-x64@4.1.13':
optional: true
'@tailwindcss/oxide-freebsd-x64@4.1.13':
optional: true
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13':
optional: true
'@tailwindcss/oxide-linux-arm64-gnu@4.1.13':
optional: true
'@tailwindcss/oxide-linux-arm64-musl@4.1.13':
optional: true
'@tailwindcss/oxide-linux-x64-gnu@4.1.13':
optional: true
'@tailwindcss/oxide-linux-x64-musl@4.1.13':
optional: true
'@tailwindcss/oxide-wasm32-wasi@4.1.13':
optional: true
'@tailwindcss/oxide-win32-arm64-msvc@4.1.13':
optional: true
'@tailwindcss/oxide-win32-x64-msvc@4.1.13':
optional: true
'@tailwindcss/oxide@4.1.13':
dependencies:
detect-libc: 2.1.1
tar: 7.5.1
optionalDependencies:
'@tailwindcss/oxide-android-arm64': 4.1.13
'@tailwindcss/oxide-darwin-arm64': 4.1.13
'@tailwindcss/oxide-darwin-x64': 4.1.13
'@tailwindcss/oxide-freebsd-x64': 4.1.13
'@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.13
'@tailwindcss/oxide-linux-arm64-gnu': 4.1.13
'@tailwindcss/oxide-linux-arm64-musl': 4.1.13
'@tailwindcss/oxide-linux-x64-gnu': 4.1.13
'@tailwindcss/oxide-linux-x64-musl': 4.1.13
'@tailwindcss/oxide-wasm32-wasi': 4.1.13
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.13
'@tailwindcss/oxide-win32-x64-msvc': 4.1.13
'@tailwindcss/vite@4.1.13(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1))':
dependencies:
'@tailwindcss/node': 4.1.13
'@tailwindcss/oxide': 4.1.13
tailwindcss: 4.1.13
vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)
'@types/babel__core@7.20.5':
dependencies:
'@babel/parser': 7.28.4
@@ -989,9 +1273,9 @@ snapshots:
'@types/estree@1.0.8': {}
'@types/node@24.5.2':
'@types/node@24.6.1':
dependencies:
undici-types: 7.12.0
undici-types: 7.13.0
babel-plugin-jsx-dom-expressions@0.40.1(@babel/core@7.28.4):
dependencies:
@@ -1010,17 +1294,19 @@ snapshots:
optionalDependencies:
solid-js: 1.9.9
baseline-browser-mapping@2.8.6: {}
baseline-browser-mapping@2.8.9: {}
browserslist@4.26.2:
dependencies:
baseline-browser-mapping: 2.8.6
caniuse-lite: 1.0.30001743
electron-to-chromium: 1.5.222
baseline-browser-mapping: 2.8.9
caniuse-lite: 1.0.30001746
electron-to-chromium: 1.5.228
node-releases: 2.0.21
update-browserslist-db: 1.1.3(browserslist@4.26.2)
caniuse-lite@1.0.30001743: {}
caniuse-lite@1.0.30001746: {}
chownr@3.0.0: {}
color-convert@3.1.2:
dependencies:
@@ -1036,7 +1322,14 @@ snapshots:
dependencies:
ms: 2.1.3
electron-to-chromium@1.5.222: {}
detect-libc@2.1.1: {}
electron-to-chromium@1.5.228: {}
enhanced-resolve@5.18.3:
dependencies:
graceful-fs: 4.2.11
tapable: 2.2.3
entities@6.0.1: {}
@@ -1080,24 +1373,83 @@ snapshots:
gensync@1.0.0-beta.2: {}
graceful-fs@4.2.11: {}
html-entities@2.3.3: {}
is-what@4.1.16: {}
jiti@2.6.1: {}
js-tokens@4.0.0: {}
jsesc@3.1.0: {}
json5@2.2.3: {}
lightningcss-darwin-arm64@1.30.1:
optional: true
lightningcss-darwin-x64@1.30.1:
optional: true
lightningcss-freebsd-x64@1.30.1:
optional: true
lightningcss-linux-arm-gnueabihf@1.30.1:
optional: true
lightningcss-linux-arm64-gnu@1.30.1:
optional: true
lightningcss-linux-arm64-musl@1.30.1:
optional: true
lightningcss-linux-x64-gnu@1.30.1:
optional: true
lightningcss-linux-x64-musl@1.30.1:
optional: true
lightningcss-win32-arm64-msvc@1.30.1:
optional: true
lightningcss-win32-x64-msvc@1.30.1:
optional: true
lightningcss@1.30.1:
dependencies:
detect-libc: 2.1.1
optionalDependencies:
lightningcss-darwin-arm64: 1.30.1
lightningcss-darwin-x64: 1.30.1
lightningcss-freebsd-x64: 1.30.1
lightningcss-linux-arm-gnueabihf: 1.30.1
lightningcss-linux-arm64-gnu: 1.30.1
lightningcss-linux-arm64-musl: 1.30.1
lightningcss-linux-x64-gnu: 1.30.1
lightningcss-linux-x64-musl: 1.30.1
lightningcss-win32-arm64-msvc: 1.30.1
lightningcss-win32-x64-msvc: 1.30.1
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
magic-string@0.30.19:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
merge-anything@5.1.7:
dependencies:
is-what: 4.1.16
minipass@7.1.2: {}
minizlib@3.1.0:
dependencies:
minipass: 7.1.2
ms@2.1.3: {}
nanoid@3.3.11: {}
@@ -1120,32 +1472,32 @@ snapshots:
prettier@3.6.2: {}
rollup@4.52.2:
rollup@4.52.3:
dependencies:
'@types/estree': 1.0.8
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.52.2
'@rollup/rollup-android-arm64': 4.52.2
'@rollup/rollup-darwin-arm64': 4.52.2
'@rollup/rollup-darwin-x64': 4.52.2
'@rollup/rollup-freebsd-arm64': 4.52.2
'@rollup/rollup-freebsd-x64': 4.52.2
'@rollup/rollup-linux-arm-gnueabihf': 4.52.2
'@rollup/rollup-linux-arm-musleabihf': 4.52.2
'@rollup/rollup-linux-arm64-gnu': 4.52.2
'@rollup/rollup-linux-arm64-musl': 4.52.2
'@rollup/rollup-linux-loong64-gnu': 4.52.2
'@rollup/rollup-linux-ppc64-gnu': 4.52.2
'@rollup/rollup-linux-riscv64-gnu': 4.52.2
'@rollup/rollup-linux-riscv64-musl': 4.52.2
'@rollup/rollup-linux-s390x-gnu': 4.52.2
'@rollup/rollup-linux-x64-gnu': 4.52.2
'@rollup/rollup-linux-x64-musl': 4.52.2
'@rollup/rollup-openharmony-arm64': 4.52.2
'@rollup/rollup-win32-arm64-msvc': 4.52.2
'@rollup/rollup-win32-ia32-msvc': 4.52.2
'@rollup/rollup-win32-x64-gnu': 4.52.2
'@rollup/rollup-win32-x64-msvc': 4.52.2
'@rollup/rollup-android-arm-eabi': 4.52.3
'@rollup/rollup-android-arm64': 4.52.3
'@rollup/rollup-darwin-arm64': 4.52.3
'@rollup/rollup-darwin-x64': 4.52.3
'@rollup/rollup-freebsd-arm64': 4.52.3
'@rollup/rollup-freebsd-x64': 4.52.3
'@rollup/rollup-linux-arm-gnueabihf': 4.52.3
'@rollup/rollup-linux-arm-musleabihf': 4.52.3
'@rollup/rollup-linux-arm64-gnu': 4.52.3
'@rollup/rollup-linux-arm64-musl': 4.52.3
'@rollup/rollup-linux-loong64-gnu': 4.52.3
'@rollup/rollup-linux-ppc64-gnu': 4.52.3
'@rollup/rollup-linux-riscv64-gnu': 4.52.3
'@rollup/rollup-linux-riscv64-musl': 4.52.3
'@rollup/rollup-linux-s390x-gnu': 4.52.3
'@rollup/rollup-linux-x64-gnu': 4.52.3
'@rollup/rollup-linux-x64-musl': 4.52.3
'@rollup/rollup-openharmony-arm64': 4.52.3
'@rollup/rollup-win32-arm64-msvc': 4.52.3
'@rollup/rollup-win32-ia32-msvc': 4.52.3
'@rollup/rollup-win32-x64-gnu': 4.52.3
'@rollup/rollup-win32-x64-msvc': 4.52.3
fsevents: 2.3.3
semver@6.3.1: {}
@@ -1173,6 +1525,18 @@ snapshots:
source-map-js@1.2.1: {}
tailwindcss@4.1.13: {}
tapable@2.2.3: {}
tar@7.5.1:
dependencies:
'@isaacs/fs-minipass': 4.0.1
chownr: 3.0.0
minipass: 7.1.2
minizlib: 3.1.0
yallist: 5.0.0
tinyglobby@0.2.15:
dependencies:
fdir: 6.5.0(picomatch@4.0.3)
@@ -1180,7 +1544,7 @@ snapshots:
typescript@5.8.3: {}
undici-types@7.12.0: {}
undici-types@7.13.0: {}
update-browserslist-db@1.1.3(browserslist@4.26.2):
dependencies:
@@ -1190,7 +1554,7 @@ snapshots:
validate-html-nesting@1.2.3: {}
vite-plugin-solid@2.11.8(solid-js@1.9.9)(vite@7.1.7(@types/node@24.5.2)):
vite-plugin-solid@2.11.8(solid-js@1.9.9)(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)):
dependencies:
'@babel/core': 7.28.4
'@types/babel__core': 7.20.5
@@ -1198,25 +1562,29 @@ snapshots:
merge-anything: 5.1.7
solid-js: 1.9.9
solid-refresh: 0.6.3(solid-js@1.9.9)
vite: 7.1.7(@types/node@24.5.2)
vitefu: 1.1.1(vite@7.1.7(@types/node@24.5.2))
vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)
vitefu: 1.1.1(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1))
transitivePeerDependencies:
- supports-color
vite@7.1.7(@types/node@24.5.2):
vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1):
dependencies:
esbuild: 0.25.10
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
postcss: 8.5.6
rollup: 4.52.2
rollup: 4.52.3
tinyglobby: 0.2.15
optionalDependencies:
'@types/node': 24.5.2
'@types/node': 24.6.1
fsevents: 2.3.3
jiti: 2.6.1
lightningcss: 1.30.1
vitefu@1.1.1(vite@7.1.7(@types/node@24.5.2)):
vitefu@1.1.1(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)):
optionalDependencies:
vite: 7.1.7(@types/node@24.5.2)
vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)
yallist@3.1.1: {}
yallist@5.0.0: {}
+1
View File
@@ -1,2 +1,3 @@
onlyBuiltDependencies:
- '@tailwindcss/oxide'
- esbuild
+7 -3
View File
@@ -251,8 +251,10 @@ function App() {
return encoders;
}
function onParametersChanged(key: string, value: any) {
// @ts-ignore
function onParametersChanged<K extends keyof FFmpegParams>(
key: K,
value: any,
) {
ffmpegParams[key] = value;
setOutputCommand(generateOutputCommand(ffmpegParams));
}
@@ -264,6 +266,7 @@ function App() {
x: 120,
y: 120,
injectGlobals: true,
processArgs: "--port=5434",
});
}
@@ -276,7 +279,7 @@ function App() {
let acodec = audioEncoder();
if (acodec === "") {
if (acodec === undefined || acodec === "") {
acodec = audioCodec();
}
@@ -391,6 +394,7 @@ function App() {
injectGlobals: true,
maximizable: false,
enableInspector: false,
processArgs: "--port=5433",
});
}
+11 -3
View File
@@ -1,22 +1,30 @@
import { Match, Switch } from "solid-js";
import type { CodecInfo, FFmpegParams } from "@/util/ffmpeg";
import type {
CodecInfo,
FFmpegParamChangedFunc,
FFmpegParams,
} from "@/util/ffmpeg";
import LibaomOptions from "./encoders/libaom";
import Librav1eOptions from "./encoders/librav1e";
import LibSvtAv1Options from "./encoders/libsvtav1";
function AV1Options(props: {
codec: CodecInfo | undefined;
encoder: string;
params: FFmpegParams;
onParamChanged: (key: string, value: any) => void;
onParamChanged: FFmpegParamChangedFunc;
}) {
return (
<Switch fallback={<div>No options.</div>}>
<Switch fallback={<div class="text-center mt-4">No options.</div>}>
<Match when={props.encoder === "libaom-av1"}>
<LibaomOptions {...props} />
</Match>
<Match when={props.encoder === "librav1e"}>
<Librav1eOptions {...props} />
</Match>
<Match when={props.encoder === "libsvtav1"}>
<LibSvtAv1Options {...props} />
</Match>
</Switch>
);
}
+6 -2
View File
@@ -1,5 +1,9 @@
import { os } from "@neutralinojs/lib";
import { type CodecInfo, type FFmpegParams } from "../util/ffmpeg";
import {
type CodecInfo,
type FFmpegParamChangedFunc,
type FFmpegParams,
} from "../util/ffmpeg";
import BreezeIcon from "./BreezeIcon";
/**
@@ -8,7 +12,7 @@ import BreezeIcon from "./BreezeIcon";
function DNxHDOptions(props: {
codec: CodecInfo | undefined;
params: FFmpegParams;
onParamChanged: (key: string, value: any) => void;
onParamChanged: FFmpegParamChangedFunc;
}) {
return (
<section id="commonLossyOptions">
+2 -1
View File
@@ -2,6 +2,7 @@ import { createSignal, Show } from "solid-js";
import {
DEFAULT_BITRATE,
type CodecInfo,
type FFmpegParamChangedFunc,
type FFmpegParams,
} from "../util/ffmpeg";
import { os } from "@neutralinojs/lib";
@@ -22,7 +23,7 @@ const information = {
function H264Options(props: {
codec: CodecInfo | undefined;
params: FFmpegParams;
onParamChanged: (key: string, value: any) => void;
onParamChanged: FFmpegParamChangedFunc;
}) {
const [twopass, setTwopass] = createSignal(false);
const defaultCrf =
+155
View File
@@ -0,0 +1,155 @@
import { createSignal, Show } from "solid-js";
import {
DEFAULT_BITRATE,
type CodecInfo,
type FFmpegParams,
} from "../util/ffmpeg";
import { os } from "@neutralinojs/lib";
import BreezeIcon from "./BreezeIcon";
function VP9Options(props: {
codec: CodecInfo | undefined;
params: FFmpegParams;
onParamChanged: (key: string, value: any) => void;
}) {
const [twopass, setTwopass] = createSignal(false);
const defaultCrf = 30;
return (
<section id="commonLossyOptions">
<div class="row flex-col align-items-center">
<h3 class="k-form-section-title">Encoder Options</h3>
</div>
<div class="k-form">
<div></div>
<div class="checkbox-container">
<input
type="checkbox"
value={props.params.twopass?.toString()}
onInput={(e) => {
props.params.twopass = e.target.checked;
props.onParamChanged("twopass", e.target.checked);
setTwopass(e.target.checked);
}}
id="twopassCheck"
/>
<label for="twopassCheck">
Use target bitrate instead of CRF
</label>
<button
class="icon-button"
onclick={() =>
os.open(
"https://trac.ffmpeg.org/wiki/Encode/H.264#twopass",
)
}
title="This will use the two-pass rate control mode instead of relying on a Constant Rate Factor (CRF) value."
>
<BreezeIcon icon="help-about" alt="Help" />
</button>
</div>
<label for="encodingPreset">Preset</label>
<select
class="k-dropdown"
name="encodingPreset"
id="encodingPreset"
value={props.params.preset ?? "medium"}
oninput={(e) => {
props.params.preset = e.target.value;
props.onParamChanged("preset", e.target.value);
}}
>
<option value="ultrafast">ultrafast</option>
<option value="superfast">superfast</option>
<option value="veryfast">veryfast</option>
<option value="faster">faster</option>
<option value="fast">fast</option>
<option value="medium">medium (Default)</option>
<option value="slow">slow</option>
<option value="slower">slower</option>
<option value="veryslow">veryslow</option>
<option
value="placebo"
title="Don't use this option, it rarely helps."
>
placebo
</option>
</select>
<Show
when={twopass()}
fallback={
<>
<label for="crf">CRF</label>
<input
type="number"
name="crf"
id="crf"
min="0"
max="51"
value={props.params.crf ?? defaultCrf}
oninput={(e) => {
props.params.crf = parseInt(e.target.value);
props.onParamChanged(
"crf",
parseInt(e.target.value),
);
}}
/>
</>
}
>
<label for="bitrate">Bitrate</label>
<div>
<input
type="number"
name="bitrate"
id="bitrate"
value={props.params.vbitrate ?? DEFAULT_BITRATE}
oninput={(e) => {
props.params.vbitrate = parseInt(
e.target.value,
);
props.onParamChanged(
"vbitrate",
parseInt(e.target.value),
);
}}
/>
<span> Kbps</span>
</div>
</Show>
<Show when={props.codec?.shortName === "h264"}>
<div></div>
<div class="checkbox-container">
<input
type="checkbox"
value={props.params.faststart?.toString()}
onInput={(e) => {
props.params.faststart = e.target.checked;
props.onParamChanged(
"faststart",
e.target.checked,
);
}}
id="fastStartCheck"
/>
<label for="fastStartCheck">Enable Fast Start</label>
<button
class="icon-button"
onclick={() =>
os.open(
"https://trac.ffmpeg.org/wiki/Encode/H.264#faststartforwebvideo",
)
}
title="This will move some information to the beginning of your file and allow the video to begin playing before it is completely downloaded by the viewer, recommended for web videos. Click for more information."
>
<BreezeIcon icon="help-about" alt="Help" />
</button>
</div>
</Show>
</div>
</section>
);
}
export default VP9Options;
+2 -1
View File
@@ -1,6 +1,7 @@
import {
DEFAULT_BITRATE,
type CodecInfo,
type FFmpegParamChangedFunc,
type FFmpegParams,
} from "@/util/ffmpeg";
import { os } from "@neutralinojs/lib";
@@ -12,7 +13,7 @@ const DEFAULT_CRF = 23;
function LibaomOptions(props: {
codec: CodecInfo | undefined;
params: FFmpegParams;
onParamChanged: (key: string, value: any) => void;
onParamChanged: FFmpegParamChangedFunc;
}) {
const [rateControlMode, setRateControlMode] = createSignal("Constant");
@@ -1,6 +1,7 @@
import {
DEFAULT_BITRATE,
type CodecInfo,
type FFmpegParamChangedFunc,
type FFmpegParams,
} from "@/util/ffmpeg";
import { os } from "@neutralinojs/lib";
@@ -10,7 +11,7 @@ import { onMount } from "solid-js";
function Librav1eOptions(props: {
codec: CodecInfo | undefined;
params: FFmpegParams;
onParamChanged: (key: string, value: any) => void;
onParamChanged: FFmpegParamChangedFunc;
}) {
onMount(() => {
props.onParamChanged("crf", undefined);
@@ -0,0 +1,128 @@
import {
DEFAULT_BITRATE,
type CodecInfo,
type FFmpegParamChangedFunc,
type FFmpegParams,
} from "@/util/ffmpeg";
import { os } from "@neutralinojs/lib";
import BreezeIcon from "@/components/BreezeIcon";
import { createEffect, createSignal, onMount, Show } from "solid-js";
const DEFAULT_CRF = 30;
function LibSvtAv1Options({
codec,
params,
onParamChanged,
}: {
codec: CodecInfo | undefined;
params: FFmpegParams;
onParamChanged: FFmpegParamChangedFunc;
}) {
const [gop, setGop] = createSignal("-1");
const [filmGrain, setFilmGrain] = createSignal("0");
const [tune, setTune] = createSignal("1");
createEffect(() => {
const g = gop();
const params = [`tune=${tune()}`];
if (filmGrain() !== "0") {
params.push(`film-grain=${filmGrain()}`);
}
onParamChanged("outputopts", {
g: g === "-1" ? undefined : g,
"svtav1-params": params.join(":"),
});
});
onMount(() => {
onParamChanged("vbitrate", undefined);
if (isNaN(parseInt(params.preset ?? ""))) {
onParamChanged("preset", "5");
}
});
return (
<section id="encoderOptions">
<div class="row flex-col align-items-center">
<h3 class="k-form-section-title">Encoder Options</h3>
</div>
<div class="k-form">
<label>Help</label>
<div>
<button
class="icon-button"
onclick={() =>
os.open(
"https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/Ffmpeg.md",
)
}
title="Click to view the documentation for this encoder."
>
<BreezeIcon icon="help-about" alt="Help" />
</button>
</div>
<label for="preset">Preset</label>
<input
type="number"
name="preset"
id="preset"
title="A range from -2 to 13. Higher means faster but a loss in quality. Preset 13 is not intended for human use."
value={params.preset ?? 5}
oninput={(e) => onParamChanged("preset", e.target.value)}
min="-2"
max="13"
/>
<label for="crf">CRF</label>
<input
type="number"
name="crf"
id="crf"
title="A range from 1 to 63. A good starting point for a 1080p video is 30"
value={params.crf ?? 30}
oninput={(e) =>
onParamChanged("crf", parseInt(e.target.value))
}
min="1"
max="63"
/>
<label for="gop">GOP</label>
<input
type="number"
name="gop"
id="gop"
title="How many frames will pass before the encoder will add a key frame. Specify -1 to leave the parameter unspecified."
value={gop()}
oninput={(e) => setGop(e.target.value)}
min="-1"
/>
<label for="filmGrain">Film Grain</label>
<input
type="number"
name="filmGrain"
id="filmGrain"
title="Film grains are hard to compress. The encoder can try to replace the film grain in the video with a synthetic grain."
value={filmGrain()}
oninput={(e) => setFilmGrain(e.target.value)}
min="0"
/>
<label for="tune">Tune</label>
<select
name="tune"
id="tune"
class="k-dropdown"
value={tune()}
oninput={(e) => setTune(e.target.value)}
>
<option value="0">Subjective Quality</option>
<option value="1">Objective Quality (PSNR)</option>
</select>
</div>
</section>
);
}
export default LibSvtAv1Options;
+5
View File
@@ -1,5 +1,7 @@
/* An attempt of imitating KDE's Kirigami UI Framework */
@reference "./index.css";
:root {
--k-grid-unit: 16px;
--k-small-spacing: 4px;
@@ -97,6 +99,7 @@ button {
border-radius: var(--k-border-radius);
box-shadow: var(--k-border-color) 0 1px;
background-color: var(--k-primary-highlight);
padding: 2px 6px;
font-size: inherit;
&:hover {
@@ -123,6 +126,7 @@ button {
padding: var(--k-small-spacing) calc(var(--k-medium-spacing) + 12px)
var(--k-small-spacing) var(--k-medium-spacing);
border: 1px solid var(--k-border-color);
border-radius: var(--k-border-radius);
box-shadow: var(--k-border-color) 0 1px;
max-width: 16em;
font-size: inherit;
@@ -177,6 +181,7 @@ input[type="number"] {
border-bottom: 1px solid var(--k-border-color);
width: fit-content;
margin-bottom: var(--k-medium-spacing);
@apply text-xl font-bold mt-4;
}
.k-page-footer {
+2
View File
@@ -1,3 +1,5 @@
@import "tailwindcss";
:root {
font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
--system-accent-color: accentcolor;
+5 -1
View File
@@ -144,9 +144,11 @@ export interface FFmpegParams {
/**
* Extra output parameters defined by Vencoder
*/
outputopts?: { [key: string]: string };
outputopts?: { [key: string]: string | undefined };
}
export type FFmpegParamChangedFunc = <K extends keyof FFmpegParams>(key: K, value: FFmpegParams[K]) => void;
const NULL_LOCATION = window.NL_OS === "Windows" ? "NUL" : "/dev/null";
/**
@@ -191,6 +193,8 @@ export function generateOutputCommand(params: FFmpegParams) {
if (params.outputopts !== undefined) {
for (const key of Object.keys(params.outputopts)) {
if (params.outputopts[key] === undefined) continue;
outputopts += ` -${key} ${params.outputopts[key]}`.trimEnd();
}
}
+2 -1
View File
@@ -1,9 +1,10 @@
import tailwindcss from "@tailwindcss/vite";
import { fileURLToPath, URL } from "node:url";
import { defineConfig } from "vite";
import solid from "vite-plugin-solid";
export default defineConfig({
plugins: [solid()],
plugins: [solid(), tailwindcss()],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),