discovery-media-player 0.1.92 → 0.1.93
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/schema.js +12 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "discovery-media-player",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.93",
|
|
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/schema.js
CHANGED
|
@@ -324,11 +324,19 @@ async function ajouterSansRang(etat) {
|
|
|
324
324
|
const r = reponses.get("doc_presentation_messages.mod_seq");
|
|
325
325
|
if (!r || !r.present) return;
|
|
326
326
|
try {
|
|
327
|
-
|
|
327
|
+
// ⚠️ `selectAll`, JAMAIS un `limit` — ET C'ÉTAIT LE DÉFAUT DE LA PREMIÈRE VERSION (relevé 2e hôte).
|
|
328
|
+
// Un compteur borné qui ne dit pas qu'il est borné redevient le nombre ambigu qu'il remplaçait, et
|
|
329
|
+
// une liste tronquée a EXACTEMENT la forme d'une liste complète. Les deux bornes mentaient en sens
|
|
330
|
+
// OPPOSÉS : une liste de nuls coupée (l'ordre physique groupe par présentation) pouvait ne voir que
|
|
331
|
+
// des scellées → total = dontScellees → faux « tout va bien » sur une base où des non-scellées ont
|
|
332
|
+
// été oubliées ; et la liste de scellées, sans `limit`, tombait sous le plafond IMPLICITE de
|
|
333
|
+
// PostgREST (db-max-rows) → setScellees incomplet → dontScellees sous-compté → fausse ALERTE
|
|
334
|
+
// permanente sur un hôte à >1000 archives. `selectAll` pagine jusqu'au bout : le transport reste
|
|
335
|
+
// borné à la taille RÉELLE du problème (zéro sur un hôte sain), et le compteur ne peut plus mentir
|
|
336
|
+
// par troncature. `is.null`/`eq` restent de la syntaxe portable.
|
|
337
|
+
const scellees = await PLAYER.db.selectAll("doc_presentations?active=eq.false&control_hash=is.null&select=slug");
|
|
328
338
|
const setScellees = new Set((Array.isArray(scellees) ? scellees : []).map((p) => p.slug));
|
|
329
|
-
|
|
330
|
-
// alerter, le compte exact n'ajoute rien. `is.null` et `eq` restent de la syntaxe portable.
|
|
331
|
-
const nuls = await PLAYER.db.request("doc_presentation_messages?mod_seq=is.null&select=slug&limit=1000");
|
|
339
|
+
const nuls = await PLAYER.db.selectAll("doc_presentation_messages?mod_seq=is.null&select=slug");
|
|
332
340
|
const liste = Array.isArray(nuls) ? nuls : [];
|
|
333
341
|
etat.sansRang = { total: liste.length, dontScellees: liste.filter((m) => setScellees.has(m.slug)).length };
|
|
334
342
|
} catch { /* best-effort : un compteur absent vaut mieux qu'une carte en échec */ }
|