nodebb-plugin-ezoic-infinite 1.7.51 → 1.7.53

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": "nodebb-plugin-ezoic-infinite",
3
- "version": "1.7.51",
3
+ "version": "1.7.53",
4
4
  "description": "Production-ready Ezoic infinite ads integration for NodeBB 4.x",
5
5
  "main": "library.js",
6
6
  "license": "MIT",
package/public/client.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * NodeBB Ezoic Infinite Ads — client.js v57
2
+ * NodeBB Ezoic Infinite Ads — client.js v59
3
3
  *
4
4
  * Historique
5
5
  * ──────────
@@ -18,6 +18,11 @@
18
18
  * v53 S.recycling garde double-recyclage. pickId early-exit. cleanup complet.
19
19
  * v54 ensureTcfLocator rappelé à chaque ajaxify.end.
20
20
  * v56 scheduleEmptyCheck / is-empty supprimés (collapse prématuré).
21
+ * v59 CSS : min-height 90px sur ezoic-ad-between (anti-CLS AMP ads).
22
+ * v58 tcfObs survit aux navigations : ne plus déconnecter dans cleanup().
23
+ * L'iframe __tcfapiLocator doit exister en permanence pour le CMP —
24
+ * la fenêtre entre cleanup() et ajaxify.end causait des erreurs
25
+ * "Cannot read properties of null (postMessage)" et disparition des pubs.
21
26
  * v57 Nettoyage prod : A_SHOWN/A_CREATED supprimés, normBool Set O(1),
22
27
  * muteConsole étend aux erreurs CMP getTCData, code nettoyé.
23
28
  */
@@ -558,7 +563,9 @@
558
563
  S.burstActive = false;
559
564
  S.runQueued = false;
560
565
  if (S.domObs) { S.domObs.disconnect(); S.domObs = null; }
561
- if (S.tcfObs) { S.tcfObs.disconnect(); S.tcfObs = null; }
566
+ // tcfObs intentionnellement préservé : l'iframe __tcfapiLocator doit
567
+ // exister en permanence — la déconnecter pendant la navigation cause
568
+ // des erreurs CMP postMessage et la disparition des pubs.
562
569
  }
563
570
 
564
571
  // ── MutationObserver DOM ───────────────────────────────────────────────────
package/public/style.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * NodeBB Ezoic Infinite Ads — style.css (v20)
2
+ * NodeBB Ezoic Infinite Ads — style.css (v59)
3
3
  */
4
4
 
5
5
  /* ── Wrapper ──────────────────────────────────────────────────────────────── */
@@ -56,19 +56,15 @@
56
56
  top: auto !important;
57
57
  }
58
58
 
59
- /* ── État vide ────────────────────────────────────────────────────────────── */
59
+ /* ── Réservation d'espace anti-CLS ───────────────────────────────────────── */
60
60
  /*
61
- Ajouté 20s après showAds si aucun fill détecté.
62
- Collapse à 1px (pas 0) : reste observable par l'IO si le fill arrive tard.
61
+ Réserve 90px avant que la pub charge (hauteur standard leaderboard).
62
+ Évite le saut de layout (CLS) quand AMP/Ezoic redimensionne l'iframe.
63
+ ezoic-ad-message (posts) et ezoic-ad-categories n'ont pas de hauteur fixe
64
+ car leur format varie — seul between (entre topics) est standardisé.
63
65
  */
64
- .nodebb-ezoic-wrap.is-empty {
65
- display: block !important;
66
- height: 1px !important;
67
- min-height: 1px !important;
68
- max-height: 1px !important;
69
- margin: 0 !important;
70
- padding: 0 !important;
71
- overflow: hidden !important;
66
+ .nodebb-ezoic-wrap.ezoic-ad-between {
67
+ min-height: 90px;
72
68
  }
73
69
 
74
70
  /* ── Ezoic global (hors de nos wraps) ────────────────────────────────────── */