@wireai/activation 0.10.0 → 0.11.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 (42) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +33 -4
  3. package/dist/analytics/index.d.mts +21 -3
  4. package/dist/analytics/index.d.ts +21 -3
  5. package/dist/analytics/index.js +94 -61
  6. package/dist/analytics/index.js.map +1 -1
  7. package/dist/analytics/index.mjs +91 -62
  8. package/dist/analytics/index.mjs.map +1 -1
  9. package/dist/{currentSession-DdDkprpM.d.mts → currentSession-C0_odnIW.d.mts} +101 -1
  10. package/dist/{currentSession-D0Vq7_VE.d.ts → currentSession-DdnUq2HQ.d.ts} +101 -1
  11. package/dist/index.d.mts +3 -49
  12. package/dist/index.d.ts +3 -49
  13. package/dist/index.js +50 -41
  14. package/dist/index.js.map +1 -1
  15. package/dist/index.mjs +47 -42
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/questionnaire/index.js +10 -2
  18. package/dist/questionnaire/index.js.map +1 -1
  19. package/dist/questionnaire/index.mjs +10 -2
  20. package/dist/questionnaire/index.mjs.map +1 -1
  21. package/dist/reviews/index.d.mts +1 -1
  22. package/dist/reviews/index.d.ts +1 -1
  23. package/dist/reviews/index.js +24 -9
  24. package/dist/reviews/index.js.map +1 -1
  25. package/dist/reviews/index.mjs +24 -9
  26. package/dist/reviews/index.mjs.map +1 -1
  27. package/dist/{transport-Bzb-bcB2.d.mts → transport-BGW9uXZJ.d.mts} +0 -15
  28. package/dist/{transport-B31G0Cib.d.ts → transport-jUJd5kxu.d.ts} +0 -15
  29. package/llms.txt +8 -0
  30. package/package.json +1 -1
  31. package/src/analytics/analyticsFacade.ts +72 -9
  32. package/src/analytics/eventQueue.ts +12 -11
  33. package/src/analytics/index.ts +9 -0
  34. package/src/analytics/reportClientEvent.ts +12 -2
  35. package/src/context/userContext.ts +55 -0
  36. package/src/identity/userIdentity.ts +10 -0
  37. package/src/index.ts +5 -1
  38. package/src/questionnaire/transport.ts +5 -1
  39. package/src/reviews/decision.ts +8 -1
  40. package/src/reviews/transport.ts +6 -8
  41. package/src/session-analytics/lifecycle.ts +6 -11
  42. package/src/session-analytics/useLifecycleEvents.ts +41 -27
@@ -704,7 +704,14 @@ var resolveRules = (config) => {
704
704
  var _a, _b, _c, _d, _e;
705
705
  return {
706
706
  enabled: (_a = config.enabled) != null ? _a : true,
707
- minSessions: (_b = config.minSessions) != null ? _b : 0,
707
+ // FAIL-CLOSED on the first session (behavior change, 0.11.0). An unconfigured host with no
708
+ // server decision must NOT prompt on the very first mount: `minSessions` defaults to 2 so the
709
+ // gate needs at least a second session before the LOCAL rules can fire. This is the client-side
710
+ // floor only — a server `decision` (from `fetchReviewDecision`) still OVERRIDES everything, and a
711
+ // host that genuinely wants first-session prompting can set `minSessions: 1` (or `0`) explicitly.
712
+ // Mirrors the 2026-07-16 incident: a first-session user, no server decision, got the prompt and
713
+ // left 1 star. See `evaluateGate` (`min_sessions` reason) and the CHANGELOG.
714
+ minSessions: (_b = config.minSessions) != null ? _b : 2,
708
715
  minEvents: (_c = config.minEvents) != null ? _c : 0,
709
716
  cooldownDays: (_d = config.cooldownDays) != null ? _d : 0,
710
717
  oncePerVersion: (_e = config.oncePerVersion) != null ? _e : true
@@ -862,7 +869,8 @@ var fetchQuestionnaireDecision = async (target, options = {}) => {
862
869
  const res = await fetch(url, { headers });
863
870
  if (!res || !res.ok) return null;
864
871
  const json = await res.json();
865
- return json != null ? json : null;
872
+ if (!json || typeof json.fire !== "boolean") return null;
873
+ return json;
866
874
  } catch {
867
875
  return null;
868
876
  }