@scalebun/web 1.2.3 → 1.3.0

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.
Files changed (144) hide show
  1. package/dist/bootstrap/SDKBootstrapper.d.ts.map +1 -1
  2. package/dist/bootstrap/SDKBootstrapper.js +37 -1
  3. package/dist/bootstrap/SDKBootstrapper.js.map +1 -1
  4. package/dist/browser.d.ts +2 -2
  5. package/dist/browser.d.ts.map +1 -1
  6. package/dist/browser.js +6 -3
  7. package/dist/browser.js.map +1 -1
  8. package/dist/config/schema.d.ts +3 -3
  9. package/dist/config/schema.d.ts.map +1 -1
  10. package/dist/config/schema.js +25 -6
  11. package/dist/config/schema.js.map +1 -1
  12. package/dist/core/pageContext.js +17 -1
  13. package/dist/core/pageContext.js.map +1 -1
  14. package/dist/core/prune.d.ts +28 -4
  15. package/dist/core/prune.d.ts.map +1 -1
  16. package/dist/core/prune.js +92 -11
  17. package/dist/core/prune.js.map +1 -1
  18. package/dist/features/bugreport/BugReportFeature.d.ts +3 -2
  19. package/dist/features/bugreport/BugReportFeature.d.ts.map +1 -1
  20. package/dist/features/bugreport/BugReportFeature.js +2 -1
  21. package/dist/features/bugreport/BugReportFeature.js.map +1 -1
  22. package/dist/features/bugreport/collect.d.ts +13 -1
  23. package/dist/features/bugreport/collect.d.ts.map +1 -1
  24. package/dist/features/bugreport/collect.js +4 -1
  25. package/dist/features/bugreport/collect.js.map +1 -1
  26. package/dist/features/bugreport/widget.d.ts +21 -2
  27. package/dist/features/bugreport/widget.d.ts.map +1 -1
  28. package/dist/features/bugreport/widget.js +37 -4
  29. package/dist/features/bugreport/widget.js.map +1 -1
  30. package/dist/features/coach/overlay.d.ts.map +1 -1
  31. package/dist/features/coach/overlay.js +26 -5
  32. package/dist/features/coach/overlay.js.map +1 -1
  33. package/dist/features/engage/EngageFeature.d.ts +7 -1
  34. package/dist/features/engage/EngageFeature.d.ts.map +1 -1
  35. package/dist/features/engage/EngageFeature.js +32 -10
  36. package/dist/features/engage/EngageFeature.js.map +1 -1
  37. package/dist/features/engage/normalize.d.ts.map +1 -1
  38. package/dist/features/engage/normalize.js +7 -0
  39. package/dist/features/engage/normalize.js.map +1 -1
  40. package/dist/features/engage/runtime.d.ts +11 -0
  41. package/dist/features/engage/runtime.d.ts.map +1 -1
  42. package/dist/features/engage/runtime.js +25 -10
  43. package/dist/features/engage/runtime.js.map +1 -1
  44. package/dist/features/engage/throttle.d.ts +16 -6
  45. package/dist/features/engage/throttle.d.ts.map +1 -1
  46. package/dist/features/engage/throttle.js +96 -6
  47. package/dist/features/engage/throttle.js.map +1 -1
  48. package/dist/features/engage/types.d.ts +6 -0
  49. package/dist/features/engage/types.d.ts.map +1 -1
  50. package/dist/features/engage/types.js.map +1 -1
  51. package/dist/features/inapp/InApp2Feature.d.ts.map +1 -1
  52. package/dist/features/inapp/InApp2Feature.js +1 -0
  53. package/dist/features/inapp/InApp2Feature.js.map +1 -1
  54. package/dist/features/inapp/blocks/heavy/steps.d.ts.map +1 -1
  55. package/dist/features/inapp/blocks/heavy/steps.js +9 -1
  56. package/dist/features/inapp/blocks/heavy/steps.js.map +1 -1
  57. package/dist/features/inapp/blocks/styles.d.ts +1 -1
  58. package/dist/features/inapp/blocks/styles.d.ts.map +1 -1
  59. package/dist/features/inapp/blocks/styles.js +30 -3
  60. package/dist/features/inapp/blocks/styles.js.map +1 -1
  61. package/dist/features/inapp/center/panel.d.ts +1 -1
  62. package/dist/features/inapp/center/panel.d.ts.map +1 -1
  63. package/dist/features/inapp/center/panel.js +40 -6
  64. package/dist/features/inapp/center/panel.js.map +1 -1
  65. package/dist/features/inapp/core/engine.d.ts +2 -0
  66. package/dist/features/inapp/core/engine.d.ts.map +1 -1
  67. package/dist/features/inapp/core/engine.js +1 -1
  68. package/dist/features/inapp/core/engine.js.map +1 -1
  69. package/dist/features/inapp/core/host.d.ts.map +1 -1
  70. package/dist/features/inapp/core/host.js +5 -1
  71. package/dist/features/inapp/core/host.js.map +1 -1
  72. package/dist/features/inapp/core/targeting.d.ts +29 -2
  73. package/dist/features/inapp/core/targeting.d.ts.map +1 -1
  74. package/dist/features/inapp/core/targeting.js +78 -4
  75. package/dist/features/inapp/core/targeting.js.map +1 -1
  76. package/dist/features/inapp/inappContract.web.d.ts.map +1 -1
  77. package/dist/features/inapp/inappContract.web.js +12 -1
  78. package/dist/features/inapp/inappContract.web.js.map +1 -1
  79. package/dist/features/inapp/surfaces/coachmark.d.ts.map +1 -1
  80. package/dist/features/inapp/surfaces/coachmark.js +5 -2
  81. package/dist/features/inapp/surfaces/coachmark.js.map +1 -1
  82. package/dist/features/inapp/surfaces/hotspot.d.ts.map +1 -1
  83. package/dist/features/inapp/surfaces/hotspot.js +5 -2
  84. package/dist/features/inapp/surfaces/hotspot.js.map +1 -1
  85. package/dist/features/inapp/surfaces/inline.d.ts.map +1 -1
  86. package/dist/features/inapp/surfaces/inline.js +7 -1
  87. package/dist/features/inapp/surfaces/inline.js.map +1 -1
  88. package/dist/features/inapp/surfaces/popover.d.ts.map +1 -1
  89. package/dist/features/inapp/surfaces/popover.js +5 -2
  90. package/dist/features/inapp/surfaces/popover.js.map +1 -1
  91. package/dist/features/inapp/surfaces/styles.d.ts +1 -1
  92. package/dist/features/inapp/surfaces/styles.d.ts.map +1 -1
  93. package/dist/features/inapp/surfaces/styles.js +60 -11
  94. package/dist/features/inapp/surfaces/styles.js.map +1 -1
  95. package/dist/features/inapp/surfaces/toolbar.d.ts.map +1 -1
  96. package/dist/features/inapp/surfaces/toolbar.js +5 -2
  97. package/dist/features/inapp/surfaces/toolbar.js.map +1 -1
  98. package/dist/features/inapp/surfaces/tour.d.ts.map +1 -1
  99. package/dist/features/inapp/surfaces/tour.js +5 -2
  100. package/dist/features/inapp/surfaces/tour.js.map +1 -1
  101. package/dist/features/inapp/types.d.ts +2 -0
  102. package/dist/features/inapp/types.d.ts.map +1 -1
  103. package/dist/features/journey/InteractionTracker.d.ts.map +1 -1
  104. package/dist/features/journey/InteractionTracker.js +145 -0
  105. package/dist/features/journey/InteractionTracker.js.map +1 -1
  106. package/dist/features/journey/positionContext.d.ts +34 -0
  107. package/dist/features/journey/positionContext.d.ts.map +1 -0
  108. package/dist/features/journey/positionContext.js +43 -0
  109. package/dist/features/journey/positionContext.js.map +1 -0
  110. package/dist/features/manifest.d.ts +21 -0
  111. package/dist/features/manifest.d.ts.map +1 -1
  112. package/dist/features/manifest.js +27 -10
  113. package/dist/features/manifest.js.map +1 -1
  114. package/dist/features/replay/ReplayFeature.d.ts +20 -0
  115. package/dist/features/replay/ReplayFeature.d.ts.map +1 -1
  116. package/dist/features/replay/ReplayFeature.js +155 -5
  117. package/dist/features/replay/ReplayFeature.js.map +1 -1
  118. package/dist/features/replay/lifecycle/recorder.d.ts +21 -1
  119. package/dist/features/replay/lifecycle/recorder.d.ts.map +1 -1
  120. package/dist/features/replay/lifecycle/recorder.js +20 -4
  121. package/dist/features/replay/lifecycle/recorder.js.map +1 -1
  122. package/dist/features/scroll/index.d.ts +2 -0
  123. package/dist/features/scroll/index.d.ts.map +1 -1
  124. package/dist/features/scroll/index.js +6 -2
  125. package/dist/features/scroll/index.js.map +1 -1
  126. package/dist/features/session/sessionStore.d.ts +17 -1
  127. package/dist/features/session/sessionStore.d.ts.map +1 -1
  128. package/dist/features/session/sessionStore.js +17 -1
  129. package/dist/features/session/sessionStore.js.map +1 -1
  130. package/dist/pipeline/pipeline.d.ts +82 -0
  131. package/dist/pipeline/pipeline.d.ts.map +1 -1
  132. package/dist/pipeline/pipeline.js +307 -14
  133. package/dist/pipeline/pipeline.js.map +1 -1
  134. package/dist/public/ScaleBunFacade.d.ts +31 -0
  135. package/dist/public/ScaleBunFacade.d.ts.map +1 -1
  136. package/dist/public/ScaleBunFacade.js +52 -10
  137. package/dist/public/ScaleBunFacade.js.map +1 -1
  138. package/dist/scalebun.min.js +147 -65
  139. package/dist/scalebun.min.js.map +4 -4
  140. package/dist/transport/httpClient.d.ts +56 -2
  141. package/dist/transport/httpClient.d.ts.map +1 -1
  142. package/dist/transport/httpClient.js +81 -5
  143. package/dist/transport/httpClient.js.map +1 -1
  144. package/package.json +10 -4
@@ -5,14 +5,33 @@
5
5
  * Styles are inline + prefixed to avoid clashing with the host page. Never throws into the host.
6
6
  */
7
7
  export type WidgetPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
8
+ /**
9
+ * Why a submit produced no report id. The submit path has SIX independent ways to fail and they need
10
+ * different things from the reader — "try again" is sound advice for exactly one of them and actively
11
+ * wrong for the rest (retrying a consent block or a disabled feature can never succeed).
12
+ *
13
+ * Codes rather than sentences cross the boundary on purpose: the prose lives here, in the lazily
14
+ * loaded chunk, instead of in the facade where every byte is measured by `size:check`.
15
+ */
16
+ export type SubmitFailure = 'init' | 'off' | 'empty' | 'consent' | 'send';
17
+ /**
18
+ * A submit result: the report id, or `{ e }` naming the branch that failed.
19
+ *
20
+ * The failure shape carries no `id` field on purpose — six `{ id: null, reason }` literals in the
21
+ * facade cost enough gzipped bytes to break the core-bundle gate outright. `string | null` is still
22
+ * accepted because it predates the reason codes and hosts may still pass it.
23
+ */
24
+ export type SubmitResult = string | null | {
25
+ e: SubmitFailure;
26
+ };
8
27
  export interface WidgetOptions {
9
28
  position: WidgetPosition;
10
29
  label: string;
11
- /** Returns the created report id (or null on failure). */
30
+ /** Returns the created report id, or why there isn't one. */
12
31
  onSubmit: (input: {
13
32
  message: string;
14
33
  email?: string;
15
- }) => Promise<string | null>;
34
+ }) => Promise<SubmitResult>;
16
35
  }
17
36
  export interface WidgetHandle {
18
37
  destroy: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/features/bugreport/widget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA8BD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CAmFvE"}
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/features/bugreport/widget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;AAEvF;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE1E;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG;IAAE,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACjF;AAUD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA6CD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CA4FvE"}
@@ -5,6 +5,13 @@
5
5
  * Styles are inline + prefixed to avoid clashing with the host page. Never throws into the host.
6
6
  */
7
7
  import { injectStyle } from '../../core/index.js';
8
+ const FAILURE_TEXT = {
9
+ init: 'Reporting isn’t ready yet. Reload the page and try again.',
10
+ off: 'Bug reporting is turned off for this site.',
11
+ empty: 'Please describe the bug.',
12
+ consent: 'Reporting is paused until you accept the privacy notice on this page.',
13
+ send: 'Couldn’t reach the server. Check your connection and try again.',
14
+ };
8
15
  const Z = 2147483000; // above almost everything, below the absolute max
9
16
  function corner(pos) {
10
17
  const v = pos.startsWith('top') ? 'top: 16px;' : 'bottom: 16px;';
@@ -16,7 +23,12 @@ function corner(pos) {
16
23
  function widgetCss(pos) {
17
24
  return (`[data-scalebun-bugreport]{position:fixed;${corner(pos)}z-index:${Z};font-family:system-ui,sans-serif}` +
18
25
  `[data-scalebun-bugreport] .sbbr-launch{cursor:pointer;border:none;border-radius:9999px;padding:10px 16px;font-size:13px;font-weight:600;color:#fff;background:#ef4444;box-shadow:0 2px 8px rgba(0,0,0,.2)}` +
19
- `[data-scalebun-bugreport] .sbbr-panel{display:none;width:300px;background:#fff;color:#111827;border:1px solid #e5e7eb;border-radius:12px;padding:14px;box-shadow:0 8px 30px rgba(0,0,0,.18);margin-top:8px}` +
26
+ // The launcher and the panel are SIBLINGS in one fixed box, so opening the panel used to leave
27
+ // the red pill sitting above it at z-index 2147483000 — floating over the page next to its own
28
+ // form. Nothing referenced .sbbr-launch on open at all. The panel replaces the launcher now.
29
+ `[data-scalebun-bugreport].sbbr-expanded .sbbr-launch{display:none}` +
30
+ // Width is min() rather than a flat 300px: on a 340px phone a fixed 300 leaves 4px of margin.
31
+ `[data-scalebun-bugreport] .sbbr-panel{display:none;width:min(300px,calc(100vw - 32px));background:#fff;color:#111827;border:1px solid #e5e7eb;border-radius:12px;padding:14px;box-shadow:0 8px 30px rgba(0,0,0,.18);margin-top:8px}` +
20
32
  `[data-scalebun-bugreport] .sbbr-panel.sbbr-open{display:block}` +
21
33
  `[data-scalebun-bugreport] .sbbr-title{font-size:14px;font-weight:700;margin-bottom:8px}` +
22
34
  `[data-scalebun-bugreport] .sbbr-field{width:100%;box-sizing:border-box;font:inherit;font-size:13px;padding:8px;border:1px solid #e5e7eb;border-radius:8px}` +
@@ -26,7 +38,17 @@ function widgetCss(pos) {
26
38
  `[data-scalebun-bugreport] .sbbr-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}` +
27
39
  `[data-scalebun-bugreport] .sbbr-btn{cursor:pointer;font:inherit;font-size:13px;padding:6px 12px;border-radius:8px}` +
28
40
  `[data-scalebun-bugreport] .sbbr-cancel{border:1px solid #e5e7eb;background:#fff}` +
29
- `[data-scalebun-bugreport] .sbbr-send{font-weight:600;border:none;background:#ef4444;color:#fff}`);
41
+ `[data-scalebun-bugreport] .sbbr-send{font-weight:600;border:none;background:#ef4444;color:#fff}` +
42
+ // The palette was light-only and hardcoded, so on a dark host the panel either glared white or
43
+ // was left to the browser's forced-dark heuristic to invert — an appearance nobody designed.
44
+ // Declaring the dark half means the widget decides how it looks on a dark page.
45
+ `@media(prefers-color-scheme:dark){` +
46
+ `[data-scalebun-bugreport] .sbbr-panel{background:#17161c;color:#ececf1;border-color:#2e2c36;box-shadow:0 8px 30px rgba(0,0,0,.5)}` +
47
+ `[data-scalebun-bugreport] .sbbr-field{background:#111016;color:#ececf1;border-color:#2e2c36}` +
48
+ `[data-scalebun-bugreport] .sbbr-field::placeholder{color:#8b8796}` +
49
+ `[data-scalebun-bugreport] .sbbr-status{color:#a5a1b0}` +
50
+ `[data-scalebun-bugreport] .sbbr-cancel{background:#221f2b;color:#ececf1;border-color:#2e2c36}` +
51
+ `}`);
30
52
  }
31
53
  export function createBugReportWidget(opts) {
32
54
  if (typeof document === 'undefined')
@@ -61,6 +83,7 @@ export function createBugReportWidget(opts) {
61
83
  const setOpen = (v) => {
62
84
  open = v;
63
85
  panel.classList.toggle('sbbr-open', v);
86
+ root.classList.toggle('sbbr-expanded', v); // hides the launcher — see widgetCss
64
87
  if (v)
65
88
  msg.focus();
66
89
  };
@@ -75,11 +98,19 @@ export function createBugReportWidget(opts) {
75
98
  sendBtn.disabled = true;
76
99
  status.textContent = 'Sending…';
77
100
  let id = null;
101
+ let reason;
78
102
  try {
79
- id = await opts.onSubmit({ message, email: email.value.trim() || undefined });
103
+ const r = await opts.onSubmit({ message, email: email.value.trim() || undefined });
104
+ if (r && typeof r === 'object')
105
+ reason = r.e;
106
+ else
107
+ id = r ?? null;
80
108
  }
81
109
  catch {
110
+ // A THROWN submit is a delivery failure, not an unknown one. Reporting it as "try again" is
111
+ // right here and wrong for the other branches, which is the whole reason reason codes exist.
82
112
  id = null;
113
+ reason = 'send';
83
114
  }
84
115
  sendBtn.disabled = false;
85
116
  if (id) {
@@ -93,7 +124,9 @@ export function createBugReportWidget(opts) {
93
124
  }, 1500);
94
125
  }
95
126
  else {
96
- status.textContent = 'Could not send the report. Please try again.';
127
+ // Never the old blanket "Could not send the report. Please try again." — five of the six ways
128
+ // this fails cannot be fixed by trying again, so that sentence sent the reader in a loop.
129
+ status.textContent = reason ? FAILURE_TEXT[reason] : FAILURE_TEXT.send;
97
130
  }
98
131
  };
99
132
  launcher.addEventListener('click', onLauncher);
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../../src/features/bugreport/widget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../../src/features/bugreport/widget.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../src/features/coach/overlay.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAQ,MAAM,SAAS,CAAC;AA+BnD,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,QAAQ,CAA+B;IAE/C,OAAO,CAAC,MAAM;IAYd,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAuDhC,yEAAyE;IACzE,OAAO,CAAC,QAAQ;IA4BhB,IAAI,IAAI,IAAI;CAMb"}
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../src/features/coach/overlay.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAQ,MAAM,SAAS,CAAC;AAoDnD,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,QAAQ,CAA+B;IAE/C,OAAO,CAAC,MAAM;IAYd,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAuDhC,yEAAyE;IACzE,OAAO,CAAC,QAAQ;IA4BhB,IAAI,IAAI,IAAI;CAMb"}
@@ -14,20 +14,41 @@ function rectOf(el) {
14
14
  function viewport() {
15
15
  return { x: 0, y: 0, width: window.innerWidth || 1024, height: window.innerHeight || 768 };
16
16
  }
17
+ /*
18
+ * Three layout rules below are load-bearing; each fixed a defect visible on a phone but not a desktop.
19
+ * They are documented HERE rather than inside the template literal because anything inside STYLE is
20
+ * shipped bytes, and the core bundle is gated to the byte by `npm run size:check`.
21
+ *
22
+ * `.card` — WIDTH IS EXPLICIT, not `max-width`. A `position:fixed` box with `left:50%` and no width
23
+ * shrink-wraps into the space from the 50% mark to the RIGHT EDGE, i.e. half the viewport. The
24
+ * `transform` then re-centres it visually, but the width was already computed against that half. On a
25
+ * 393px phone the "320px" card rendered ~196px wide, which is what made the tour card look cramped and
26
+ * wrapped its body onto three lines. `min(320px, 100vw - 32px)` also keeps the card off the screen
27
+ * edges below 352px, which `max-width` alone never did. Desktop is unchanged: 320px still wins.
28
+ *
29
+ * `.t` — RESERVES the space the absolutely-positioned `.x` sits in. `.x` is out of flow, so without
30
+ * this the heading runs underneath it and the × lands on the last word of the title. Same approach as
31
+ * `.scalebun-toolbar-callout` in inapp/surfaces/styles.ts, which reserves its right padding this way.
32
+ *
33
+ * `.ft` / `.count` / `.btns` — flex items shrink below their content width by default. Once the footer
34
+ * overflowed, `5 of 5` collapsed into a one-character column reading `5 / of / 5` and `Skip` clipped.
35
+ * `flex:none` stops the shrink and `flex-wrap` lets a genuinely-too-wide row wrap intact instead of
36
+ * being destroyed. The width fix above removes the usual cause; these keep the failure graceful.
37
+ */
17
38
  const STYLE = `
18
39
  :host{all:initial}
19
40
  *{box-sizing:border-box;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
20
41
  .spot{position:fixed;border-radius:8px;box-shadow:0 0 0 9999px rgba(12,10,20,.55);z-index:2147483600;pointer-events:none;transition:all .2s ease}
21
42
  .backdrop{position:fixed;inset:0;background:rgba(12,10,20,.55);z-index:2147483600}
22
- .card{position:fixed;z-index:2147483602;max-width:320px;background:#1b1922;color:#edeaf2;border-radius:12px;
43
+ .card{position:fixed;z-index:2147483602;width:min(320px,calc(100vw - 32px));background:#1b1922;color:#edeaf2;border-radius:12px;
23
44
  padding:16px 18px;box-shadow:0 12px 40px rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.08)}
24
45
  .card.modal{top:50%;left:50%;transform:translate(-50%,-50%)}
25
46
  .arrow{position:absolute;width:12px;height:12px;background:inherit;border:inherit;transform:rotate(45deg)}
26
- .t{font-size:15px;font-weight:700;margin:0 0 6px}
47
+ .t{font-size:15px;font-weight:700;margin:0 0 6px;padding-right:20px}
27
48
  .b{font-size:13px;line-height:1.5;color:#c8c3d4;margin:0 0 14px}
28
- .ft{display:flex;align-items:center;justify-content:space-between;gap:10px}
29
- .count{font-size:11px;color:#9a95a6;font-variant-numeric:tabular-nums}
30
- .btns{display:flex;gap:8px}
49
+ .ft{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
50
+ .count{font-size:11px;color:#9a95a6;font-variant-numeric:tabular-nums;flex:none;white-space:nowrap}
51
+ .btns{display:flex;gap:8px;flex:none}
31
52
  button{font:inherit;cursor:pointer;border-radius:8px;border:none}
32
53
  .skip{background:none;color:#9a95a6;font-size:12px;padding:6px 8px}
33
54
  .back{background:#262131;color:#edeaf2;font-size:12px;font-weight:600;padding:7px 12px}
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../../src/features/coach/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../../src/features/coach/overlay.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,13 @@ export declare class EngageFeature implements IFeature {
54
54
  /** Replay the cold-start buffer into the armed runtime, honouring each entry's remaining delay. */
55
55
  private drain;
56
56
  private closeBuffer;
57
- /** Running session number, persisted across launches; bumped exactly once per new session. */
57
+ /**
58
+ * Running session number, persisted across launches; bumped exactly once per new session.
59
+ *
60
+ * Also reports WHETHER this load opened a new session, which is what gates the lifecycle triggers
61
+ * above — a reload of an existing session is not a session start. An empty session id means the
62
+ * caller can't tell us (test mocks), so it reports new rather than suppressing.
63
+ */
58
64
  private bumpSessionCount;
59
65
  teardown(): void;
60
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EngageFeature.d.ts","sourceRoot":"","sources":["../../../src/features/engage/EngageFeature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAIxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA6BrD,qBAAa,aAAc,YAAW,QAAQ;IAC5C,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAC,CAAkB;IACpC,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAM;IAEpB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAQ;IAE1B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAEK,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC/C;;sFAEkF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B;8FAC0F;YAC5E,aAAa;IAoB3B,8FAA8F;IACxF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;IAIpG,2EAA2E;IAC3E,eAAe,CAAC,IAAI,EAAE,OAAO,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAG1G,kGAAkG;IAC5F,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;;;OAMG;IACH,UAAU,IAAI,IAAI;IAIlB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAGjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAG9B,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAItD,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,QAAQ;IAShB,mGAAmG;IACnG,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,WAAW;IAKnB,8FAA8F;IAC9F,OAAO,CAAC,gBAAgB;IAcxB,QAAQ,IAAI,IAAI;CAUjB"}
1
+ {"version":3,"file":"EngageFeature.d.ts","sourceRoot":"","sources":["../../../src/features/engage/EngageFeature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAIxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA6BrD,qBAAa,aAAc,YAAW,QAAQ;IAC5C,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAC,CAAkB;IACpC,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAM;IAEpB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAQ;IAE1B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAEK,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiD/C;;sFAEkF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B;8FAC0F;YAC5E,aAAa;IAoB3B,8FAA8F;IACxF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;IAIpG,2EAA2E;IAC3E,eAAe,CAAC,IAAI,EAAE,OAAO,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAG1G,kGAAkG;IAC5F,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;;;OAMG;IACH,UAAU,IAAI,IAAI;IAIlB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAGjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAG9B,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAItD,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,QAAQ;IAShB,mGAAmG;IACnG,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,WAAW;IAKnB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAgBxB,QAAQ,IAAI,IAAI;CAUjB"}
@@ -53,11 +53,26 @@ export class EngageFeature {
53
53
  this.unsub = ctx.onSignal((r) => this.onSignal(r));
54
54
  this.onPop = () => this.onScreenView(currentPath());
55
55
  window.addEventListener('popstate', this.onPop);
56
- // Session-lifecycle triggers — fired now, buffered until the runtime arms in refresh().
57
- const count = this.bumpSessionCount();
58
- this.onLifecycle('session_start');
59
- this.onLifecycle('app_open');
60
- this.onLifecycle('n_sessions', count);
56
+ /**
57
+ * Session-lifecycle triggers — fired now, buffered until the runtime arms in refresh().
58
+ *
59
+ * ONLY on a genuinely new session. `setup()` runs on every document load, and this used to fire
60
+ * all three unconditionally — but a web session survives a reload (sessionStorage + 30-min idle),
61
+ * so every F5 counted as another `session_start`/`app_open` and re-triggered every campaign
62
+ * bound to them. On mobile those triggers mean "the app launched", which happens once per
63
+ * process; the web equivalent of a launch is a new SESSION, not a new document. `n_sessions` was
64
+ * doubly wrong: it re-fired with the SAME count, so an "on the 3rd session" campaign fired on
65
+ * every refresh for the whole of session 3.
66
+ *
67
+ * A missing session id (terse test mocks; the bootstrap always sets one at runtime) is treated
68
+ * as new — an absent identity must never silently suppress campaigns.
69
+ */
70
+ const { count, isNewSession } = this.bumpSessionCount();
71
+ if (isNewSession) {
72
+ this.onLifecycle('session_start');
73
+ this.onLifecycle('app_open');
74
+ this.onLifecycle('n_sessions', count);
75
+ }
61
76
  await this.refresh();
62
77
  }
63
78
  /** Fetch engage config; lazy-load + (re)arm the runtime when campaigns are present, then drain the
@@ -190,20 +205,27 @@ export class EngageFeature {
190
205
  this.bufferOpen = false;
191
206
  this.buffer = [];
192
207
  }
193
- /** Running session number, persisted across launches; bumped exactly once per new session. */
208
+ /**
209
+ * Running session number, persisted across launches; bumped exactly once per new session.
210
+ *
211
+ * Also reports WHETHER this load opened a new session, which is what gates the lifecycle triggers
212
+ * above — a reload of an existing session is not a session start. An empty session id means the
213
+ * caller can't tell us (test mocks), so it reports new rather than suppressing.
214
+ */
194
215
  bumpSessionCount() {
195
216
  try {
196
217
  const sid = this.ctx?.sessionId ?? '';
197
218
  const raw = localStorage.getItem(SESSIONS_KEY);
198
219
  const prev = raw ? JSON.parse(raw) : {};
199
- if (prev.sessionId === sid && typeof prev.count === 'number')
200
- return prev.count; // same session → no bump
220
+ if (sid && prev.sessionId === sid && typeof prev.count === 'number') {
221
+ return { count: prev.count, isNewSession: false }; // same session → no bump, no re-trigger
222
+ }
201
223
  const count = (typeof prev.count === 'number' ? prev.count : 0) + 1;
202
224
  localStorage.setItem(SESSIONS_KEY, JSON.stringify({ sessionId: sid, count }));
203
- return count;
225
+ return { count, isNewSession: true };
204
226
  }
205
227
  catch {
206
- return 1;
228
+ return { count: 1, isNewSession: true };
207
229
  }
208
230
  }
209
231
  teardown() {
@@ -1 +1 @@
1
- {"version":3,"file":"EngageFeature.js","sourceRoot":"","sources":["../../../src/features/engage/EngageFeature.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI9C,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,mEAAmE;AACvF,MAAM,UAAU,GAAG,KAAM,CAAC,CAAC,kEAAkE;AAC7F,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAUhD,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,OAAO,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,SAAS,sBAAsB,CAAC,GAAY;IAC1C,MAAM,CAAC,GAAG,GAA8D,CAAC;IACzE,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,OAAO,aAAa;IAA1B;QACW,SAAI,GAAG,QAAQ,CAAC;QACjB,QAAG,GAA0B,IAAI,CAAC;QAClC,WAAM,GAAG,KAAK,CAAC;QAKf,WAAM,GAAG,EAAE,CAAC;QACpB,uFAAuF;QAC/E,WAAM,GAAe,EAAE,CAAC;QACxB,eAAU,GAAG,IAAI,CAAC;IA4L5B,CAAC;IA1LC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAmB;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAC7E,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,OAAO;QAE1C,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB;;;;;;;WAOG;QACH,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAElC,sGAAsG;QACtG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhD,wFAAwF;QACxF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;sFAEkF;IAClF,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YAC3C,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,kDAAkD;YACpF,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ;YAC5B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,8CAA8C;SACnF,CAAC,CAAC;QACH,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,kEAAkE;YACtF,OAAO;QACT,CAAC;QACD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,mEAAmE;IACrF,CAAC;IAED;8FAC0F;IAClF,KAAK,CAAC,aAAa;QACzB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE;YAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE;YACpC,IAAI;YACJ,GAAG;YACH,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YAChC,WAAW,EAAE,cAAc,EAAE,6DAA6D;YAC1F,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,4DAA4D;YAChG,4EAA4E;YAC5E,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,kFAAkF;IAClF,8FAA8F;IAC9F,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,MAAsC;QACnE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACvD,CAAC;IACD,2EAA2E;IAC3E,eAAe,CAAC,IAAuC,EAAE,KAA0C;QACjG,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,kGAAkG;IAClG,KAAK,CAAC,eAAe;QACnB,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QACxD,gBAAgB,EAAE,CAAC;IACrB,CAAC;IAED,mFAAmF;IACnF,YAAY,CAAC,MAAc;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,4EAA4E;QAClG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD;;;;;;OAMG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,MAAM;YAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,QAAQ,CAAC,MAAc;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,WAAW,CAAC,IAAmB,EAAE,KAAc;QAC7C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAEO,IAAI,CAAC,EAAW,EAAE,KAAa,EAAE,GAAY;QACnD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,iCAAiC;IAC1F,CAAC;IAEO,QAAQ,CAAC,EAAiB,EAAE,EAAW,EAAE,KAAa,EAAE,GAAuB,EAAE,OAAe;QACtG,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,QAAQ;gBAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAAC,MAAM;YACtD,KAAK,QAAQ;gBAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAAC,MAAM;YACvD,KAAK,QAAQ;gBAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAAC,MAAM;YAClD,KAAK,WAAW;gBAAE,EAAE,CAAC,WAAW,CAAC,KAAsB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBAAC,MAAM;QAChF,CAAC;IACH,CAAC;IAED,mGAAmG;IAC3F,KAAK,CAAC,EAAiB;QAC7B,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,UAAU,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,EAAE,GAAG,MAAM;gBAAE,SAAS,CAAC,eAAe;YAC5C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,8FAA8F;IACtF,gBAAgB;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4C,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,yBAAyB;YAC1G,MAAM,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpE,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9E,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpG,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"EngageFeature.js","sourceRoot":"","sources":["../../../src/features/engage/EngageFeature.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/features/engage/normalize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,oBAAoB,EAarB,MAAM,SAAS,CAAC;AAgMjB;0EAC0E;AAC1E,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAYlE"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/features/engage/normalize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,oBAAoB,EAarB,MAAM,SAAS,CAAC;AAuMjB;0EAC0E;AAC1E,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAYlE"}
@@ -21,12 +21,19 @@ const LAYOUTS = ['modal', 'fullscreen', 'bottom_sheet', 'top_banner', 'bottom_ba
21
21
  const CTA_ACTIONS = new Set(['dismiss', 'link', 'custom']);
22
22
  const QUESTION_KINDS = new Set(['scale', 'text', 'single', 'multi', 'emoji', 'boolean', 'screenshot', 'voice']);
23
23
  // ── sub-shape mappers ─────────────────────────────────────────────────────────
24
+ /**
25
+ * ⚠️ This is an ENUMERATING boundary: a throttle field that is not listed here is silently discarded
26
+ * no matter what the server sent. `maxImpressionsPerSession` was authored by the builder and dropped
27
+ * twice on its way to this SDK — once by `deriveInAppMirror`, and it would have been dropped again
28
+ * right here. Any field added to `Throttle` must be added below too.
29
+ */
24
30
  function throttle(v) {
25
31
  const r = rec(v);
26
32
  const t = compact({
27
33
  showOnce: boolOpt(r.showOnce),
28
34
  cooldownHours: numOpt(r.cooldownHours),
29
35
  maxImpressions: numOpt(r.maxImpressions),
36
+ maxImpressionsPerSession: numOpt(r.maxImpressionsPerSession),
30
37
  samplePct: numOpt(r.samplePct),
31
38
  });
32
39
  return Object.keys(t).length ? t : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/features/engage/normalize.ts"],"names":[],"mappings":"AAsBA,iFAAiF;AACjF,MAAM,GAAG,GAAG,CAAC,CAAU,EAA2B,EAAE,CAClD,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF,MAAM,GAAG,GAAG,CAAC,CAAU,EAAa,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnE,MAAM,GAAG,GAAG,CAAC,CAAU,EAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACxF,MAAM,MAAM,GAAG,CAAC,CAAU,EAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACjH,MAAM,OAAO,GAAG,CAAC,CAAU,EAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9F,MAAM,MAAM,GAAG,CAAC,CAAU,EAAwB,EAAE;IAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC9D,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClC,CAAC,CAAC;AACF,yGAAyG;AACzG,MAAM,OAAO,GAAG,CAAoC,CAAI,EAAK,EAAE;IAC7D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,OAAO,GAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC1H,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9H,iFAAiF;AACjF,SAAS,QAAQ,CAAC,CAAU;IAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,OAAO,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC7B,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;QACtC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;QACxC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;KAC/B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,OAAO,CAAC;QAChB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;KACrC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,CAAU;IAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,OAAO,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9B,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;QACnC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,SAAqC,CAAC,CAAC,CAAC,SAAS;KAChJ,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,CAAU;IAC3B,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAA6B,CAAC;QACrD,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,4BAA4B;QACtF,mGAAmG;QACnG;;;;;;;;;;;WAWG;QACH,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YACf,GAAG;YACH,IAAI;YACJ,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YACpC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1B,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5B,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAClE,eAAe,EAAE,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAiB,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,SAAS,GAAG,CAAC,CAAU;IACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAA4B,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAa,CAAC;AACzG,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,4DAA4D;IACpF,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClI,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,GAA+B,CAAC,CAAC,CAAC,SAAS,CAAC;IACzH,OAAO,OAAO,CAAC;QACb,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,IAAI;QACJ,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACf,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAE,EAAE,MAAM,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,SAAS;QAC7G,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACrB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACrB,KAAK;QACL,GAAG;KACJ,CAAoB,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACjB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACjF,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,SAAS,EAAE,CAAoB,CAAC;AACxH,CAAC;AAED,kFAAkF;AAClF,SAAS,QAAQ,CAAC,GAAY;IAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAmC,CAAC;IAC3D,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,OAAO,CAAC;QACb,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC/B,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACjC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;QACvB,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QACjC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;QAC7C,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACjC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI;QACnC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB;;;;;WAKG;QACH,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YACtE,CAAC,CAAE,CAAC,CAAC,KAA0C;YAC/C,CAAC,CAAC,SAAS;QACb,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;QAC/B,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;KACtC,CAAmB,CAAC;AACvB,CAAC;AAED,SAAS,KAAK,CAAC,GAAY;IACzB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAA4B,CAAC;IACxD,OAAO,OAAO,CAAC;QACb,EAAE;QACF,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;QAC7D,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;QACpC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QACjC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;QAC7C,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACjC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9B,IAAI;QACJ,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACpC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3B,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3B,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QACzB,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3B,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;KAC5B,CAAiB,CAAC;AACrB,CAAC;AAED;0EAC0E;AAC1E,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QAC3C,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACzD,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;aACxB,GAAG,CAAC,QAAQ,CAAC;aACb,MAAM,CAAC,CAAC,CAAC,EAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QACjD,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;aAChC,GAAG,CAAC,KAAK,CAAC;aACV,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;KAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/features/engage/normalize.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,17 @@ export declare class EngageRuntime {
54
54
  stop(): void;
55
55
  /** Deterministic A/B split (reuse fnv1a32) → which spec + variant tag to render. */
56
56
  private resolveSpec;
57
+ /**
58
+ * The visitor closed an in-app message (dismiss or CTA) — that surface is done on this device.
59
+ *
60
+ * Web recorded impressions but never recorded COMPLETION for in-app, so `passesThrottle` had
61
+ * nothing durable to stop on when the campaign carried no frequency rule: the message came back on
62
+ * the next page load, and the next, for as long as the campaign stayed live. Mobile has always
63
+ * done this (`markCompleted` in EngagePromptProvider.finalizeInAppMessage); this is the missing
64
+ * half of that parity. Test previews are excluded — they have their own one-shot `seen` set and
65
+ * must not write production frequency state.
66
+ */
67
+ private finishInApp;
57
68
  private tryShowInApp;
58
69
  private inappEvent;
59
70
  /** A triggered campaign — gate on throttle, then render (one prompt at a time). */
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/features/engage/runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EACV,cAAc,EAKd,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,gBAAgB,EAIhB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,oGAAoG;IACpG,WAAW,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC3C,2FAA2F;IAC3F,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,yFAAyF;IACzF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED,qBAAa,aAAa;IAOZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IANjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAC,CAAoB;gBAEN,IAAI,EAAE,WAAW;IAgB9C,OAAO,CAAC,aAAa,CAAqC;IAE1D,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,aAAa,CAAC,CAAa;IAEnC,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;IAM/C,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI;IAU3C;iGAC6F;YAC/E,SAAS;IAcvB,yGAAyG;IACzG,OAAO,CAAC,gBAAgB;IAmBxB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAchB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAI1C,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAItC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAI3C,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAInE,IAAI,IAAI,IAAI;IAYZ,oFAAoF;IACpF,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,UAAU;IAuBlB,mFAAmF;IACnF,OAAO,CAAC,OAAO;IAoBf,OAAO,CAAC,MAAM;IAKd;;oFAEgF;YAClE,MAAM;IAyBpB;;mBAEe;YACD,iBAAiB;IA4B/B,wFAAwF;IACxF,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAMlE;yGACqG;IACrG,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,GAAE,gBAAqB,GAAG,IAAI;IAgB1E,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,KAAK;CAgBd"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/features/engage/runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EACV,cAAc,EAKd,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,gBAAgB,EAIhB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,oGAAoG;IACpG,WAAW,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC3C,2FAA2F;IAC3F,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,yFAAyF;IACzF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED,qBAAa,aAAa;IAOZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IANjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAC,CAAoB;gBAEN,IAAI,EAAE,WAAW;IAgB9C,OAAO,CAAC,aAAa,CAAqC;IAE1D,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,aAAa,CAAC,CAAa;IAEnC,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;IAM/C,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI;IAU3C;iGAC6F;YAC/E,SAAS;IAcvB,yGAAyG;IACzG,OAAO,CAAC,gBAAgB;IAmBxB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAchB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAI1C,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAItC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAI3C,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAInE,IAAI,IAAI,IAAI;IAYZ,oFAAoF;IACpF,OAAO,CAAC,WAAW;IASnB;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,UAAU;IAuBlB,mFAAmF;IACnF,OAAO,CAAC,OAAO;IAoBf,OAAO,CAAC,MAAM;IAKd;;oFAEgF;YAClE,MAAM;IAyBpB;;mBAEe;YACD,iBAAiB;IA4B/B,wFAAwF;IACxF,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAMlE;yGACqG;IACrG,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,GAAE,gBAAqB,GAAG,IAAI;IAgB1E,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,KAAK;CAgBd"}
@@ -85,8 +85,8 @@ export class EngageRuntime {
85
85
  return;
86
86
  }
87
87
  this.active = mountInApp(m.layout, spec, {
88
- onClick: () => { this.inappEvent(m, 'click', variantId, true); this.finish(); },
89
- onDismiss: () => { this.inappEvent(m, 'dismiss', variantId, true); this.finish(); },
88
+ onClick: () => { this.inappEvent(m, 'click', variantId, true); this.finishInApp(m, true); },
89
+ onDismiss: () => { this.inappEvent(m, 'dismiss', variantId, true); this.finishInApp(m, true); },
90
90
  });
91
91
  }
92
92
  /**
@@ -105,9 +105,9 @@ export class EngageRuntime {
105
105
  }
106
106
  catch { /* navigation blocked — click still recorded */ }
107
107
  }
108
- this.finish();
108
+ this.finishInApp(m, isTest);
109
109
  };
110
- const onDismiss = () => { this.inappEvent(m, 'dismiss', variantId, isTest); this.finish(); };
110
+ const onDismiss = () => { this.inappEvent(m, 'dismiss', variantId, isTest); this.finishInApp(m, isTest); };
111
111
  void renderRichInApp(m, spec, { onClick, onDismiss })
112
112
  .then((h) => { if (this.showing)
113
113
  this.active = h;
@@ -150,11 +150,26 @@ export class EngageRuntime {
150
150
  }
151
151
  return { spec: m.spec, variantId: m.variantId };
152
152
  }
153
+ /**
154
+ * The visitor closed an in-app message (dismiss or CTA) — that surface is done on this device.
155
+ *
156
+ * Web recorded impressions but never recorded COMPLETION for in-app, so `passesThrottle` had
157
+ * nothing durable to stop on when the campaign carried no frequency rule: the message came back on
158
+ * the next page load, and the next, for as long as the campaign stayed live. Mobile has always
159
+ * done this (`markCompleted` in EngagePromptProvider.finalizeInAppMessage); this is the missing
160
+ * half of that parity. Test previews are excluded — they have their own one-shot `seen` set and
161
+ * must not write production frequency state.
162
+ */
163
+ finishInApp(m, isTest) {
164
+ if (!isTest)
165
+ recordCompleted(m);
166
+ this.finish();
167
+ }
153
168
  tryShowInApp(m) {
154
- if (this.showing || !passesThrottle(m, this.deps.now()))
169
+ if (this.showing || !passesThrottle(m, this.deps.now(), this.deps.sessionId))
155
170
  return;
156
171
  this.showing = true;
157
- recordShown(m, this.deps.now());
172
+ recordShown(m, this.deps.now(), this.deps.sessionId);
158
173
  const { spec, variantId } = this.resolveSpec(m);
159
174
  this.inappEvent(m, 'impression', variantId);
160
175
  // Decide from the A/B-RESOLVED spec: variant B carries its own ext/archetype.
@@ -173,11 +188,11 @@ export class EngageRuntime {
173
188
  /* navigation blocked — the click event is still recorded */
174
189
  }
175
190
  }
176
- this.finish();
191
+ this.finishInApp(m, false);
177
192
  },
178
193
  onDismiss: () => {
179
194
  this.inappEvent(m, 'dismiss', variantId);
180
- this.finish();
195
+ this.finishInApp(m, false);
181
196
  },
182
197
  });
183
198
  }
@@ -204,11 +219,11 @@ export class EngageRuntime {
204
219
  // ── Surveys ───────────────────────────────────────────────────────────────────
205
220
  /** A triggered campaign — gate on throttle, then render (one prompt at a time). */
206
221
  tryShow(c) {
207
- if (this.showing || !passesThrottle(c, this.deps.now()))
222
+ if (this.showing || !passesThrottle(c, this.deps.now(), this.deps.sessionId))
208
223
  return;
209
224
  this.showing = true;
210
225
  this.startedAt = this.deps.now();
211
- recordShown(c, this.deps.now());
226
+ recordShown(c, this.deps.now(), this.deps.sessionId);
212
227
  this.beacon(c, 'shown');
213
228
  this.event(c, 'impression');
214
229
  this.active = mountSurvey(c, {