discovery-media-player 0.1.170 → 0.1.171

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "discovery-media-player",
3
- "version": "0.1.170",
3
+ "version": "0.1.171",
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
@@ -9,7 +9,7 @@ const crypto = require("crypto");
9
9
  const { capturerSansBloquer } = require("./capture");
10
10
  const { Readable } = require("node:stream");
11
11
  const { pipeline } = require("node:stream/promises");
12
- const { getShareBySlug, resoudreLien } = require("./shares");
12
+ const { resoudreLien } = require("./shares");
13
13
  const { PRESENT_QUOTA_PER_HOUR, PRESENT_CACHE_MS, estSlug } = require("./shared.generated.js");
14
14
  const { creerCache, CODE_SATURATION } = require("./cache.js");
15
15
  const mesures = require("./mesures.js");
@@ -1145,13 +1145,17 @@ async function handlerMesure(req, res) {
1145
1145
  embed ? embedFrameAncestors() : "'self'");
1146
1146
  }
1147
1147
 
1148
- const share = slug ? await getShareBySlug(slug, req) : null;
1148
+ // ⚠️ UNE LECTURE, PAS DEUX. 0.1.170 demandait le lien à `getShareBySlug`, puis, quand il ne s'ouvrait pas,
1149
+ // le RELISAIT par `resoudreLien` pour dire pourquoi — la même ligne, deux allers-retours, et sur le chemin le plus
1150
+ // fréquent des refus (un lien révoqué qui circule encore). `resoudreLien` rend les deux à la fois.
1151
+ const lu = slug ? await resoudreLien(slug, req) : { share: null, refus: "revoked", ligne: null };
1152
+ const share = lu.share;
1149
1153
  if (!share) {
1150
1154
  // ⚠️ UN LIEN PROTÉGÉ (0028) NE SE CONFOND PAS AVEC UN LIEN RÉVOQUÉ. Expiré, il le DIT — la
1151
1155
  // personne peut en demander un autre ; fermé par un mot de passe, il le DEMANDE. Et dans les
1152
1156
  // deux cas le FICHIER reste derrière : servir la page du mot de passe en laissant `?file=1`
1153
1157
  // streamer le PDF serait une porte de décor (la leçon de `murDocument.test.js`).
1154
- const { refus, ligne } = slug ? await resoudreLien(slug, req) : { refus: "revoked", ligne: null };
1158
+ const { refus, ligne } = lu;
1155
1159
  if (refus === "expired") {
1156
1160
  if (String(q.file || "") === "1") { repondreJson(res, 410, { ok: false, error: "expired" }); return; }
1157
1161
  if (!embed) return sendHtml(res, 410, lienExpireHtml(ligne));