Commit graph

43 commits

Author SHA1 Message Date
SergeantPanda
6b6eb11cc0 chore(dependencies): update Vite, esbuild and js-yaml to latest versions in package.json 2026-06-24 16:31:15 -05:00
SergeantPanda
3d87001958 chore: update dependencies in package.json and package-lock.json
Upgrade vitest to version 4.1.8 and add @hookform/resolvers as a new dependency. Update related dependencies for @vitest packages to their latest versions, ensuring compatibility and improved functionality.
2026-06-05 13:38:49 -05:00
SergeantPanda
9e4bdf0a09 Update @xmldom/xmldom to version 0.8.13 and postcss to version 8.5.13 in package-lock.json 2026-05-01 21:08:56 -05:00
SergeantPanda
289a8f48d0 security: Update frontend packages to mitigate CVE's. 2026-04-10 08:50:13 -05:00
SergeantPanda
7d8619f644 Security: Update npm dependencies to resolve frontend vulernabilities. 2026-03-27 09:30:01 -05:00
SergeantPanda
2b8ebc7882 Security: Updated flatted to 3.4.1, resolving **high** unbounded recursion DoS in the parse() revive phase 2026-03-14 12:32:38 -05:00
None
759688390b fix(dvr): fix series episode list, card layout, rule cleanup, and recording resilience
Backend:
- Add terminal status guard to stop() endpoint -prevents overwriting completed/interrupted/failed with "stopped" (returns 409 Conflict)
- Include currently-airing programs in series rule evaluation by filtering on end_time instead of start_time
- Clean up future recordings when deleting a series rule while preserving previously recorded episodes
- Add logo proxy negative cache to prevent repeated requests to unreachable hosts from blocking Daphne workers
- Add URL validation with HEAD-then-GET fallback and per-worker cache
- Add EPG time-slot matching (80% overlap threshold) to enrich manual recordings with program metadata
- Add multi-source poster resolution pipeline (EPG, VOD, TMDB, OMDb, TVMaze, iTunes) with URL validation at each stage
- Add editable recording metadata endpoint with user_edited flag to prevent EPG auto-overwrite
- Add refresh-artwork endpoint to re-run poster resolution on demand
- Batch-fetch PeriodicTask names in schedule_upcoming to avoid N+1

Frontend:
- Fix series modal showing only one episode — preserve _group_count from categorized prop when merging with store version so the episode list renders correctly
- Fix recording card button positioning — use flex column layout with marginTop auto so buttons align at the bottom regardless of content
- Add delete fallback in RecurringRuleModal for orphaned recordings from deleted rules
- Use end_time filter in upcoming episodes list to include currently-airing episodes
- Add inline metadata editing (title/description) in details modal
- Add refresh artwork button in details modal
- Replace hardcoded /logo.png fallbacks with imported default logo
- Add React.memo with custom comparator to RecordingCard

Tests:
- Add 21 EPG time-slot matching tests (overlap threshold, edge cases)
- Add 16 recording metadata tests (validation, artwork, logo cache)
- Add 17 URL validation tests (HEAD/GET fallback, caching, eviction)
2026-03-04 10:21:03 -06:00
SergeantPanda
7d95e3ceb4 Security: Updated frontend npm dependencies to resolve 2 high-severity vulnerabilities:
Some checks failed
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Has been cancelled
- Updated `minimatch` to ≥10.2.3, resolving **high** ReDoS via matchOne() combinatorial backtracking with multiple non-adjacent GLOBSTAR segments ([GHSA-7r86-cg39-jmmj](https://github.com/advisories/GHSA-7r86-cg39-jmmj))
  - Updated `rollup` to ≥4.58.1, resolving **high** Arbitrary File Write via Path Traversal ([GHSA-mw96-cpmx-2vgc](https://github.com/advisories/GHSA-mw96-cpmx-2vgc))
2026-03-02 17:36:40 -06:00
SergeantPanda
8babb7d111 Chore: Update NPM packages.
Some checks failed
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Frontend Tests / test (push) Has been cancelled
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Has been cancelled
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI Pipeline / create-manifest (push) Has been cancelled
2026-02-21 16:24:40 -06:00
SergeantPanda
95909d98f9 Security: Update npm dependencies to resolve vulnerabilities. 2026-02-21 16:11:06 -06:00
SergeantPanda
76c895f613 Security: Fixed moderate severity Prototype Pollution vulnerability in Lodash (_.unset and _.omit functions) See [GHSA-xxjr-mmjv-4gpg](https://github.com/advisories/GHSA-xxjr-mmjv-4gpg) for details.
Some checks failed
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Has been cancelled
2026-01-26 17:37:50 -06:00
SergeantPanda
2c5cc636a7 Security: - Updated react-router from 7.11.0 to 7.12.0 to address two security vulnerabilities:
- **High**: Open Redirect XSS vulnerability in Action/Server Action Request Processing ([GHSA-h5cw-625j-3rxh](https://github.com/advisories/GHSA-h5cw-625j-3rxh), [GHSA-2w69-qvjg-hvjx](https://github.com/advisories/GHSA-2w69-qvjg-hvjx))
  - **Moderate**: SSR XSS vulnerability in ScrollRestoration component ([GHSA-8v8x-cx79-35w7](https://github.com/advisories/GHSA-8v8x-cx79-35w7))
- Updated react-router-dom from 7.11.0 to 7.12.0 (dependency of react-router)
2026-01-19 21:03:18 -06:00
SergeantPanda
16bbc1d875 Refactor forms to use react-hook-form and Yup for validation
- Replaced Formik with react-hook-form in Logo, M3UGroupFilter, M3UProfile, Stream, StreamProfile, and UserAgent components.
- Integrated Yup for schema validation in all updated forms.
- Updated form submission logic to accommodate new form handling methods.
- Adjusted state management and error handling to align with react-hook-form's API.
- Ensured compatibility with existing functionality while improving code readability and maintainability.
2026-01-04 20:40:16 -06:00
SergeantPanda
45ea63e9cf chore: update dependencies in package.json
- Bump eslint from ^9.21.0 to ^9.27.0
- Upgrade vite from ^6.2.0 to ^7.1.7
- Add overrides for js-yaml to ^4.1.1
2025-12-18 14:45:55 -06:00
SergeantPanda
9da20b1941 Switch back to node 24, switch to npm for building frontend. Remove node_modules before starting frontend build. Fixes bug with NPM 2025-09-30 09:22:05 -05:00
SergeantPanda
cd5135ba27 Add testing-library/dom to package-lock 2025-09-28 11:30:14 -05:00
Jim McBride
323f1d5c05
Add TV guide utility tests and vitest setup 2025-09-21 10:00:15 -05:00
dekzter
3f445607e0 looooots of updates for user-management, initial commit of access control 2025-05-31 18:01:46 -04:00
dekzter
9daa764fbb completely removed mantine-react-table, added empty / dummy output for VOD endpoints 2025-05-23 13:40:11 -04:00
SergeantPanda
58a121e0b6 Add new packages to package-lock 2025-04-24 18:14:50 -05:00
dekzter
8fe83fd9ee channel streams optimizations, bug fixes in tables, parallel api calls for paginated data fetching 2025-04-24 17:14:25 -04:00
dekzter
29d2db0f8e testing out virtualized ,fixed some more bugs 2025-04-24 11:20:36 -04:00
dekzter
ccdb8ab00d more table bug fixes, query optimizations, re-added channel expansion stream table with reworked drag-and-drop 2025-04-19 08:37:43 -04:00
dekzter
b74b388f7d finishing up table refactor for channels 2025-04-17 17:57:33 -04:00
dekzter
6a0ce574b0 rewrite with tanstack table 2025-04-16 13:06:51 -04:00
dekzter
af638326e1 attempt at table rewrite for efficient virtualized table 2025-04-15 13:48:06 -04:00
dekzter
00f6e7c1cd first run at recordings, among other things 2025-04-05 18:59:15 -04:00
dekzter
de5063d20b epg refactor, new relations and matching 2025-03-26 13:28:03 -04:00
dekzter
ddc35c3e7b style fixes and updates, fixed select box for channel group in channel form 2025-03-24 16:55:36 -04:00
dekzter
04f5c39dac replaced final mui icons 2025-03-17 18:46:11 -04:00
dekzter
a7a02d0da0 removed mui dependencies 2025-03-17 18:42:51 -04:00
dekzter
a0517f9e2b updated version installs 2025-03-12 14:02:23 -04:00
dekzter
e991211c9b full mantine refactor 2025-03-11 17:43:16 -04:00
Dispatcharr
0668680878 UI Sidebar Redesign
Redesigned sidebar
2025-03-07 17:39:34 -06:00
dekzter
596cf33048 pm2 for react server dev 2025-03-02 15:06:02 -05:00
Dispatcharr
ace441fb56 Pre-Alpha v?
Lost count:
Added/Fixed bulk adding from stream
Added/Fixed Auto assign channel numbers
Added command to kill processes
Changed to a persistant lock using redis
2025-03-01 08:52:32 -06:00
kappa118
a5ae01716a merged in main 2025-02-28 17:24:58 -05:00
Dispatcharr
31d26fddee Guide Update
Updated guide style
Added Floating Video
Added mpegts.js
2025-02-28 16:02:52 -06:00
kappa118
6ae80f4368 m3u profiles, style changes, etc 2025-02-28 14:33:54 -05:00
kappa118
5dc4e54585 more changes, table styling and compacting 2025-02-26 20:01:11 -05:00
kappa118
5e2125d5e7 near-complete feature parity with current frontend, another big push of features, some styling to dialogs / forms 2025-02-25 17:13:56 -05:00
kappa118
73b48acb9e big frontend push 2025-02-24 19:42:59 -05:00
kappa118
0dfa001f3a initial commit of react frontend 2025-02-23 14:35:19 -05:00