discovery-media-player 0.1.90 → 0.1.91
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.
|
|
3
|
+
"version": "0.1.91",
|
|
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/supabase/init.sql
CHANGED
|
@@ -240,9 +240,15 @@ drop trigger if exists dpm_bump_modseq on public.doc_presentation_messages;
|
|
|
240
240
|
create trigger dpm_bump_modseq
|
|
241
241
|
before insert or update on public.doc_presentation_messages
|
|
242
242
|
for each row execute function public.player_bump_message_seq();
|
|
243
|
-
|
|
243
|
+
-- ⚠️ Le rattrapage EXCLUT les présentations scellées (0007/0010) : le trigger dpm_archive_scellee lève
|
|
244
|
+
-- sur toute écriture dans une présentation gelée, et une seule de ses lignes ferait échouer l'install.
|
|
245
|
+
update public.doc_presentation_messages m
|
|
244
246
|
set mod_seq = nextval('public.doc_presentation_messages_modseq')
|
|
245
|
-
where mod_seq is null
|
|
247
|
+
where m.mod_seq is null
|
|
248
|
+
and not exists (
|
|
249
|
+
select 1 from public.doc_presentations p
|
|
250
|
+
where p.slug = m.slug and p.active = false and p.control_hash is null
|
|
251
|
+
);
|
|
246
252
|
create index if not exists idx_dpm_slug_modseq
|
|
247
253
|
on public.doc_presentation_messages (slug, mod_seq);
|
|
248
254
|
|
|
@@ -47,10 +47,20 @@ create trigger dpm_bump_modseq
|
|
|
47
47
|
for each row execute function public.player_bump_message_seq();
|
|
48
48
|
|
|
49
49
|
-- Rattrapage des lignes déjà présentes : sans `mod_seq`, elles seraient invisibles au différentiel.
|
|
50
|
-
--
|
|
51
|
-
|
|
50
|
+
-- ⚠️ IL RESPECTE LE SCELLÉ D'ARCHIVE (0007/0010). Cet update écrit CHAQUE ligne — or le trigger
|
|
51
|
+
-- dpm_archive_scellee LÈVE sur toute écriture dans une présentation scellée (active=false ET
|
|
52
|
+
-- control_hash IS NULL). Une seule ligne d'une présentation scellée ferait échouer la migration
|
|
53
|
+
-- ENTIÈRE. On exclut donc ces lignes — une présentation scellée est GELÉE, y compris son rang : ses
|
|
54
|
+
-- messages restent sans mod_seq (historiques, jamais resynchronisés en direct, servis par la charge
|
|
55
|
+
-- complète). Deux gardes correctes — le scellé (0007) et ce rattrapage — dont la COMPOSITION
|
|
56
|
+
-- bloquerait sans cette exclusion, et qu'aucun des deux fichiers ne pouvait prévoir seul.
|
|
57
|
+
update public.doc_presentation_messages m
|
|
52
58
|
set mod_seq = nextval('public.doc_presentation_messages_modseq')
|
|
53
|
-
where mod_seq is null
|
|
59
|
+
where m.mod_seq is null
|
|
60
|
+
and not exists (
|
|
61
|
+
select 1 from public.doc_presentations p
|
|
62
|
+
where p.slug = m.slug and p.active = false and p.control_hash is null
|
|
63
|
+
);
|
|
54
64
|
|
|
55
65
|
-- La lecture différentielle `slug=eq.X&mod_seq=gt.N&order=mod_seq.asc` doit rester rapide.
|
|
56
66
|
create index if not exists idx_dpm_slug_modseq
|