Files
hstream/vite.config.js
T
w33b 30a6b080eb feat(admin): rebuild release upload form with Livewire and CDN validation
Replace the server-rendered release upload form with a Livewire component,
introducing an interactive admin release form that supports dynamic episode
management, real‑time CDN path validation, and direct download file checks.

Key changes:
- New `AdminReleaseForm` Livewire component with dynamic episode fields,
  Tagify integration, and upload handling via Livewire's file uploads.
- Added `CdnPathValidator` service to verify download and stream paths across
  all configured mirrors, caching results and capturing file sizes.
- Extended `EpisodeService` and `GalleryService` to support array‑based data
  and temporary uploaded files from Livewire.
- Persist validated download sizes and store the validation timestamp on the
  `downloads` table via a new migration; also add a unique constraint on
  `hentais.slug` to prevent duplicates.
- Remove the old POST `/admin/release/upload` route and controller logic,
  along with the legacy `upload.js` script.
- Add comprehensive feature and unit tests covering the new component and the
  CDN validation service.
2026-08-08 13:18:57 +02:00

38 lines
1.2 KiB
JavaScript

import { vite as vidstack } from 'vidstack/plugins';
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import { viteStaticCopy } from 'vite-plugin-static-copy';
export default defineConfig({
plugins: [
vidstack(),
laravel({
input: [
'resources/css/app.css',
'resources/js/app.js',
'resources/js/modals-playlist.js',
'resources/js/theme.js',
'resources/js/player-mobile.js',
'resources/js/player-data.js',
'resources/js/player.js',
'resources/js/playlist.js',
'resources/js/admin-release.js',
'resources/js/user-blacklist.js',
'resources/js/admin-edit.js',
'resources/js/admin-subtitles.js',
'resources/js/preview.js',
'resources/js/stats.js'
],
refresh: true,
}),
viteStaticCopy({
targets: [
{
src: 'node_modules/@jellyfin/libass-wasm/dist/js/*',
dest: 'js'
},
]
})
],
});