ad2app-lib 1.34.0 → 1.35.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.
|
@@ -48,6 +48,7 @@ export declare const EVENTS: {
|
|
|
48
48
|
readonly PAYWALL_DISMISSED: "paywall_dismissed";
|
|
49
49
|
readonly ACCESS_DENIED: "access_denied";
|
|
50
50
|
readonly ONBOARDING_STEP_COMPLETED: "onboarding_step_completed";
|
|
51
|
+
readonly ONBOARDING_STEP_VIEWED: "onboarding_step_viewed";
|
|
51
52
|
readonly EXIT_INTENT_SHOWN: "exit_intent_shown";
|
|
52
53
|
readonly EXIT_INTENT_DISMISSED: "exit_intent_dismissed";
|
|
53
54
|
readonly EXIT_INTENT_CAPTURED: "exit_intent_captured";
|
|
@@ -346,11 +347,16 @@ export interface EventProperties {
|
|
|
346
347
|
app_locale: AppLocale;
|
|
347
348
|
};
|
|
348
349
|
[EVENTS.ONBOARDING_STEP_COMPLETED]: {
|
|
349
|
-
flow: 'complete_profile';
|
|
350
|
+
flow: 'complete_profile' | 'beta_consent';
|
|
350
351
|
step: string;
|
|
351
352
|
step_index: number;
|
|
352
353
|
app_locale: AppLocale;
|
|
353
354
|
};
|
|
355
|
+
[EVENTS.ONBOARDING_STEP_VIEWED]: {
|
|
356
|
+
flow: 'complete_profile' | 'beta_consent';
|
|
357
|
+
step: string;
|
|
358
|
+
app_locale?: AppLocale;
|
|
359
|
+
};
|
|
354
360
|
[EVENTS.EXIT_INTENT_SHOWN]: {
|
|
355
361
|
surface: 'connect_wall';
|
|
356
362
|
dwell_ms?: number;
|
package/dist/analytics/index.js
CHANGED
|
@@ -72,6 +72,12 @@ exports.EVENTS = {
|
|
|
72
72
|
// trust — it is part of why a REAL retry defect sat unnoticed in the same list.
|
|
73
73
|
ACCESS_DENIED: 'access_denied', // entitlement 403 at the API choke point (beta wall / subscription)
|
|
74
74
|
ONBOARDING_STEP_COMPLETED: 'onboarding_step_completed', // one step of a multi-step flow (complete-profile)
|
|
75
|
+
// Promoted from a raw string literal at ad2app-frontend's
|
|
76
|
+
// OnboardingFlow.tsx:887 (spec 158, 2026-09-03) — it was already firing in
|
|
77
|
+
// production (15 events, 3 people) ungoverned since spec 095. `flow` is
|
|
78
|
+
// widened alongside ONBOARDING_STEP_COMPLETED below to cover the beta
|
|
79
|
+
// consent step, which is not part of the complete-profile flow.
|
|
80
|
+
ONBOARDING_STEP_VIEWED: 'onboarding_step_viewed', // a step was actually shown (drop-off, not just completion)
|
|
75
81
|
EXIT_INTENT_SHOWN: 'exit_intent_shown', // exit-intent capture modal armed (065, verbatim wire values)
|
|
76
82
|
EXIT_INTENT_DISMISSED: 'exit_intent_dismissed',
|
|
77
83
|
EXIT_INTENT_CAPTURED: 'exit_intent_captured', // email captured into the beta list
|
package/package.json
CHANGED
|
@@ -105,6 +105,7 @@ const EVENT_PROPERTY_WITNESS: { [E in keyof EventProperties]: EventProperties[E]
|
|
|
105
105
|
[EVENTS.PAYWALL_DISMISSED]: { surface: "upgrade_modal", trigger: "user_click", hit_number: 1, app_locale: "en" },
|
|
106
106
|
[EVENTS.ACCESS_DENIED]: { reason: "subscription-required", app_locale: "en" },
|
|
107
107
|
[EVENTS.ONBOARDING_STEP_COMPLETED]: { flow: "complete_profile", step: "role", step_index: 1, app_locale: "en" },
|
|
108
|
+
[EVENTS.ONBOARDING_STEP_VIEWED]: { flow: "beta_consent", step: "consent" },
|
|
108
109
|
[EVENTS.EXIT_INTENT_SHOWN]: { surface: "connect_wall" },
|
|
109
110
|
[EVENTS.EXIT_INTENT_DISMISSED]: { surface: "connect_wall" },
|
|
110
111
|
[EVENTS.EXIT_INTENT_CAPTURED]: { surface: "connect_wall" },
|
|
@@ -186,6 +187,10 @@ test("080 paywall / onboarding wire names are locked (rename breaks the baseline
|
|
|
186
187
|
assert.equal(EVENTS.ONBOARDING_STEP_COMPLETED, "onboarding_step_completed");
|
|
187
188
|
});
|
|
188
189
|
|
|
190
|
+
test("158: onboarding_step_viewed wire name is locked — it was already live in production as a raw string before this promotion (rename breaks the existing 15 events)", () => {
|
|
191
|
+
assert.equal(EVENTS.ONBOARDING_STEP_VIEWED, "onboarding_step_viewed");
|
|
192
|
+
});
|
|
193
|
+
|
|
189
194
|
test("080 subscription-lifecycle wire names are locked (backend = source of truth)", () => {
|
|
190
195
|
assert.deepEqual(
|
|
191
196
|
[
|
package/src/analytics/index.ts
CHANGED
|
@@ -78,6 +78,12 @@ export const EVENTS = {
|
|
|
78
78
|
// trust — it is part of why a REAL retry defect sat unnoticed in the same list.
|
|
79
79
|
ACCESS_DENIED: 'access_denied', // entitlement 403 at the API choke point (beta wall / subscription)
|
|
80
80
|
ONBOARDING_STEP_COMPLETED: 'onboarding_step_completed', // one step of a multi-step flow (complete-profile)
|
|
81
|
+
// Promoted from a raw string literal at ad2app-frontend's
|
|
82
|
+
// OnboardingFlow.tsx:887 (spec 158, 2026-09-03) — it was already firing in
|
|
83
|
+
// production (15 events, 3 people) ungoverned since spec 095. `flow` is
|
|
84
|
+
// widened alongside ONBOARDING_STEP_COMPLETED below to cover the beta
|
|
85
|
+
// consent step, which is not part of the complete-profile flow.
|
|
86
|
+
ONBOARDING_STEP_VIEWED: 'onboarding_step_viewed', // a step was actually shown (drop-off, not just completion)
|
|
81
87
|
EXIT_INTENT_SHOWN: 'exit_intent_shown', // exit-intent capture modal armed (065, verbatim wire values)
|
|
82
88
|
EXIT_INTENT_DISMISSED: 'exit_intent_dismissed',
|
|
83
89
|
EXIT_INTENT_CAPTURED: 'exit_intent_captured', // email captured into the beta list
|
|
@@ -436,11 +442,19 @@ export interface EventProperties {
|
|
|
436
442
|
app_locale: AppLocale;
|
|
437
443
|
};
|
|
438
444
|
[EVENTS.ONBOARDING_STEP_COMPLETED]: {
|
|
439
|
-
flow: 'complete_profile'; //
|
|
445
|
+
flow: 'complete_profile' | 'beta_consent'; // widened 2026-09-03 (spec 158) for the beta consent step
|
|
440
446
|
step: string; // stable slug derived from the real wizard, not guessed
|
|
441
447
|
step_index: number; // 1-based
|
|
442
448
|
app_locale: AppLocale;
|
|
443
449
|
};
|
|
450
|
+
// Promoted from a raw string (spec 158) — same `flow`/`step` shape as
|
|
451
|
+
// ONBOARDING_STEP_COMPLETED, fired once per step actually SHOWN rather than
|
|
452
|
+
// finished, so drop-off is visible per step, not only per completion.
|
|
453
|
+
[EVENTS.ONBOARDING_STEP_VIEWED]: {
|
|
454
|
+
flow: 'complete_profile' | 'beta_consent';
|
|
455
|
+
step: string;
|
|
456
|
+
app_locale?: AppLocale; // optional: the pre-existing raw call site does not have it yet (T001a repairs the call site, not the type's honesty about what ships today)
|
|
457
|
+
};
|
|
444
458
|
// Exit-intent (065). surface value is VERBATIM from the ExitIntentModal
|
|
445
459
|
// component ('connect_wall'); dwell_ms / page_views / app_locale are optional
|
|
446
460
|
// additions T003 wires (the component does not emit them yet — fidelity gate).
|