discovery-media-player 0.1.103 → 0.1.105
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 +19 -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.105",
|
|
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
|
@@ -599,6 +599,25 @@ async function handler(req, res) {
|
|
|
599
599
|
// qu'internalStrict : un cockpit doit voir l'état des DEUX hôtes sans lire un journal — c'est
|
|
600
600
|
// ce booléen, lu avec `presence: { avecJeton, sansJeton }` de la carte, qui dit quand fermer.
|
|
601
601
|
presenceStrict: !!(PLAYER.config && PLAYER.config.presenceStrict),
|
|
602
|
+
// ⚠️ LES JETONS DE PRÉSENCE SONT-ILS RÉELLEMENT ÉMIS ? Sans ce booléen, un exploitant qui vient
|
|
603
|
+
// de poser `PLAYER_PRESENCE_SECRET` n'a AUCUN moyen de vérifier que son réglage a pris : la
|
|
604
|
+
// carte affiche `presence: {0,0}` aussi bien quand le secret est actif que quand la variable est
|
|
605
|
+
// mal nommée, posée sur le mauvais environnement, ou non redéployée. Un réglage qu'on ne peut
|
|
606
|
+
// pas observer est un réglage qu'on CROIT avoir fait. (Constaté en le posant pour de vrai : il a
|
|
607
|
+
// fallu monter une présentation jetable sur la prod pour s'en assurer.)
|
|
608
|
+
//
|
|
609
|
+
// ⚠️ ON MESURE, ON NE DÉCLARE PAS. Demander à l'hôte un `config.presenceTokens` créerait un fait
|
|
610
|
+
// en DEUX exemplaires — ce qu'il annonce et ce qu'il fait — qui finiraient par diverger. On
|
|
611
|
+
// appelle donc la fonction et on regarde si un jeton sort : la carte rend une capacité
|
|
612
|
+
// CONSTATÉE, et aucun hôte n'a rien à ajouter pour en bénéficier. Le jeton fabriqué ici n'est ni
|
|
613
|
+
// rendu ni stocké, et la signature ne touche ni la base ni le réseau — cette route doit répondre
|
|
614
|
+
// quand rien d'autre ne répond.
|
|
615
|
+
presenceTokens: (() => {
|
|
616
|
+
try {
|
|
617
|
+
const signer = PLAYER.identity && PLAYER.identity.signPresenceToken;
|
|
618
|
+
return typeof signer === "function" && !!signer("carte-sonde", "carte-sonde", 60);
|
|
619
|
+
} catch { return false; }
|
|
620
|
+
})(),
|
|
602
621
|
// ⚠️ LE BALAYAGE DE RÉTENTION EST-IL ARMÉ ? La capacité `retention` dit que l'instance PEUT
|
|
603
622
|
// purger ; ce booléen dit si le balayage automatique TOURNE (`config.retention.balayage`).
|
|
604
623
|
// Sans lui, une instance armée est indiscernable d'une instance éteinte — et une purge qui
|