source: Klonkt/package.json@ 6fdceed

main
Last change on this file since 6fdceed was d7e72b8, checked in by Robin <roboburr@…>, 4 weeks ago

Audio is geen keuze meer: Album en Playlist staan in de balk (shaer-cyg)

De posttype-balk had post/foto/video/audio. Audio verdwijnt als keuze -- alles
wat muziek is landt voortaan op album of playlist, en dat maakt de keuze
betekenisvol in plaats van cosmetisch. Album en Playlist delen het muziekpaneel,
want het verschil zit in de playlist en niet in wat je uploadt.

De knop Audio blijft alleen staan zolang een post nog type=audio IS. Anders zou
het openen van een oude post hem stilzwijgend van type veranderen, en dat is
precies het soort verlies dat niemand ziet gebeuren.

De lijst van geldige types stond op DRIE plaatsen los van elkaar: twee keer in
routes/posts.js en een keer in routes/types.js. Dat viel niet op zolang ze
gelijk waren, maar het faalt stil: kent het opslaan 'playlist' niet, dan wordt
de post zonder melding een gewone post en is de keuze verdwenen in plaats van
geweigerd. Nu een lijst, in config/post-types.js, die ook de editor voedt.

En de migratie: scripts/backfill-post-types.mjs zet bestaande audio-posts om via
postMusicType. Proefdraai is de standaard, --doen schrijft. Wat de afleiding
niet tot album of playlist maakt blijft met rust en wordt apart gemeld -- die
verdienen een blik en geen gok.

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

  • Property mode set to 100644
File size: 1.3 KB
Line 
1{
2 "name": "klonkt",
3 "version": "1.7.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 "backfill:post-types": "node scripts/backfill-post-types.mjs"
16 },
17 "dependencies": {
18 "@resvg/resvg-js": "^2.6.2",
19 "@simplewebauthn/browser": "^13.3.0",
20 "@simplewebauthn/server": "^13.3.2",
21 "bcryptjs": "^2.4.3",
22 "better-sqlite3": "^11.3.0",
23 "body-parser": "^1.20.2",
24 "dotenv": "^16.3.1",
25 "ejs": "^3.1.9",
26 "express": "^4.18.2",
27 "express-rate-limit": "^7.4.1",
28 "express-session": "^1.17.3",
29 "ffmpeg-static": "^5.2.0",
30 "fluent-ffmpeg": "^2.1.3",
31 "helmet": "^7.1.0",
32 "htmx.org": "1.9.12",
33 "marked": "^11.1.1",
34 "multer": "^1.4.5-lts.1",
35 "node-webpmux": "^3.2.1",
36 "nodemailer": "^9.0.5",
37 "qrcode": "^1.5.4",
38 "sanitize-html": "^2.17.3",
39 "uuid": "^9.0.1",
40 "web-push": "^3.6.7"
41 },
42 "engines": {
43 "node": ">=20"
44 }
45}
Note: See TracBrowser for help on using the repository browser.