discovery-media-player 0.1.71 → 0.1.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/handler.js +2 -2
- package/server/retention.js +10 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "discovery-media-player",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.73",
|
|
4
4
|
"description": "Self-hosted document viewer: per-recipient tracked links, reading analytics, live presentation. The core knows nothing about the application hosting it — everything it borrows arrives through an injected context.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pdf-viewer",
|
package/server/handler.js
CHANGED
|
@@ -308,8 +308,8 @@ const LIVE_CSS = `
|
|
|
308
308
|
.lmodal-a button{flex:1;border:0;border-radius:12px;padding:11px 0;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
|
|
309
309
|
.lmodal-cancel{background:#ecebe6;color:#1c1c1c}
|
|
310
310
|
.lmodal-cancel:hover{background:#e2e0da}
|
|
311
|
-
.lmodal-ok{background:#
|
|
312
|
-
.lmodal-ok:hover{background:#
|
|
311
|
+
.lmodal-ok{background:#d13b40;color:#fff}
|
|
312
|
+
.lmodal-ok:hover{background:#c1343a}
|
|
313
313
|
`;
|
|
314
314
|
|
|
315
315
|
// Contrôles de la barre (pastille présence + bouton chat).
|
package/server/retention.js
CHANGED
|
@@ -82,7 +82,17 @@ async function purgerRetention(now) {
|
|
|
82
82
|
// Balayage opportuniste : au plus UN par fenêtre de 24 h (le verrou est le compteur de débit
|
|
83
83
|
// partagé — même mécanique que les limites, donc multi-processus sans coordination). Jamais
|
|
84
84
|
// bloquant : la route qui l'héberge répond sans l'attendre, l'échec se capture.
|
|
85
|
+
//
|
|
86
|
+
// ⚠️ OPT-IN STRICT (`config.retention.balayage === true`), et le second hôte a payé pour la
|
|
87
|
+
// règle avant qu'elle existe : il consomme le contexte autonome TEL QUEL — « nous n'avons rien
|
|
88
|
+
// à brancher parce que nous n'avons rien débranché » — et le premier envoi de lien après sa
|
|
89
|
+
// montée aurait balayé selon NOS fenêtres par défaut, sans que personne n'ait rien décidé.
|
|
90
|
+
// Les fenêtres sont des décisions MÉTIER (ce qu'un conseiller peut encore prouver à un client) ;
|
|
91
|
+
// une suppression n'agit donc que là où un exploitant l'a écrite. `retention.run` reste
|
|
92
|
+
// disponible sans opt-in : appeler la route EST la décision.
|
|
85
93
|
function tick() {
|
|
94
|
+
const r = PLAYER.config && PLAYER.config.retention;
|
|
95
|
+
if (!r || r.balayage !== true) return;
|
|
86
96
|
Promise.resolve()
|
|
87
97
|
.then(() => PLAYER.limits.allow("retention:sweep", 1, 86400))
|
|
88
98
|
.then((permis) => { if (permis) return purgerRetention(Date.now()); })
|