source: Klonkt/package.json@ 7ecbefc

main
Last change on this file since 7ecbefc was ecbfa41, checked in by roboburr <roboburr@…>, 2 months ago

feat(video-cover): add VideoCoverService + node-webpmux (animated WebP / video -> muted loop MP4)

Foundation for Safari-smooth animated covers. node-webpmux (pure JS/WASM, NO native deps ->
installs everywhere, never breaks npm ci) decodes an animated WebP into RGBA frames; the bundled
ffmpeg-static encodes a muted H.264 loop MP4 + JPG poster. A real uploaded video goes straight
through ffmpeg. Best-effort: returns null -> caller keeps the still image. Pipeline verified
(animated webp -> valid 240x240 H.264 mp4 + poster).

  • package.json / package-lock.json — node-webpmux 3.2.1
  • src/services/VideoCoverService.js — isAnimatedWebp / animatedWebpToVideo / videoToLoop

Co-Authored-By: Claude <noreply@…>

  • Property mode set to 100644
File size: 1.1 KB
Line 
1{
2 "name": "klonkt",
3 "version": "1.0.0",
4 "description": "Klonkt — self-hosted multi-site music & blog platform (solo, hub or circles). Node + SQLite + htmx.",
5 "license": "AGPL-3.0-or-later",
6 "type": "module",
7 "main": "src/server.js",
8 "scripts": {
9 "start": "node src/server.js",
10 "dev": "node --watch src/server.js",
11 "test": "node --test",
12 "migrate": "node src/db/migrate.js",
13 "reset-admin": "node scripts/reset-admin.mjs",
14 "backfill:durations": "node scripts/backfill-durations.mjs"
15 },
16 "dependencies": {
17 "@resvg/resvg-js": "^2.6.2",
18 "bcryptjs": "^2.4.3",
19 "better-sqlite3": "^11.3.0",
20 "body-parser": "^1.20.2",
21 "dotenv": "^16.3.1",
22 "ejs": "^3.1.9",
23 "express": "^4.18.2",
24 "express-rate-limit": "^7.4.1",
25 "express-session": "^1.17.3",
26 "ffmpeg-static": "^5.2.0",
27 "fluent-ffmpeg": "^2.1.3",
28 "helmet": "^7.1.0",
29 "htmx.org": "1.9.12",
30 "marked": "^11.1.1",
31 "multer": "^1.4.5-lts.1",
32 "node-webpmux": "^3.2.1",
33 "nodemailer": "^6.9.15",
34 "sanitize-html": "^2.17.3",
35 "uuid": "^9.0.1"
36 },
37 "engines": {
38 "node": ">=20"
39 }
40}
Note: See TracBrowser for help on using the repository browser.