@formo/analytics-react-native 1.0.0 → 1.0.2
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/lib/commonjs/FormoAnalytics.js +141 -12
- package/lib/commonjs/FormoAnalytics.js.map +1 -1
- package/lib/commonjs/FormoAnalyticsProvider.js +3 -0
- package/lib/commonjs/FormoAnalyticsProvider.js.map +1 -1
- package/lib/commonjs/constants/events.js +30 -3
- package/lib/commonjs/constants/events.js.map +1 -1
- package/lib/commonjs/lib/crash/index.js +121 -0
- package/lib/commonjs/lib/crash/index.js.map +1 -0
- package/lib/commonjs/lib/event/EventFactory.js +88 -8
- package/lib/commonjs/lib/event/EventFactory.js.map +1 -1
- package/lib/commonjs/lib/lifecycle/index.js +29 -6
- package/lib/commonjs/lib/lifecycle/index.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/FormoAnalytics.js +138 -8
- package/lib/module/FormoAnalytics.js.map +1 -1
- package/lib/module/FormoAnalyticsProvider.js +3 -0
- package/lib/module/FormoAnalyticsProvider.js.map +1 -1
- package/lib/module/constants/events.js +29 -2
- package/lib/module/constants/events.js.map +1 -1
- package/lib/module/lib/crash/index.js +117 -0
- package/lib/module/lib/crash/index.js.map +1 -0
- package/lib/module/lib/event/EventFactory.js +86 -8
- package/lib/module/lib/event/EventFactory.js.map +1 -1
- package/lib/module/lib/lifecycle/index.js +29 -6
- package/lib/module/lib/lifecycle/index.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/commonjs/FormoAnalytics.d.ts +52 -1
- package/lib/typescript/commonjs/FormoAnalytics.d.ts.map +1 -1
- package/lib/typescript/commonjs/FormoAnalyticsProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/constants/events.d.ts +23 -0
- package/lib/typescript/commonjs/constants/events.d.ts.map +1 -1
- package/lib/typescript/commonjs/lib/crash/index.d.ts +41 -0
- package/lib/typescript/commonjs/lib/crash/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/lib/event/EventFactory.d.ts +26 -7
- package/lib/typescript/commonjs/lib/event/EventFactory.d.ts.map +1 -1
- package/lib/typescript/commonjs/lib/lifecycle/index.d.ts +10 -0
- package/lib/typescript/commonjs/lib/lifecycle/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/types/base.d.ts +40 -0
- package/lib/typescript/commonjs/types/base.d.ts.map +1 -1
- package/lib/typescript/commonjs/version.d.ts +1 -1
- package/lib/typescript/module/FormoAnalytics.d.ts +52 -1
- package/lib/typescript/module/FormoAnalytics.d.ts.map +1 -1
- package/lib/typescript/module/FormoAnalyticsProvider.d.ts.map +1 -1
- package/lib/typescript/module/constants/events.d.ts +23 -0
- package/lib/typescript/module/constants/events.d.ts.map +1 -1
- package/lib/typescript/module/lib/crash/index.d.ts +41 -0
- package/lib/typescript/module/lib/crash/index.d.ts.map +1 -0
- package/lib/typescript/module/lib/event/EventFactory.d.ts +26 -7
- package/lib/typescript/module/lib/event/EventFactory.d.ts.map +1 -1
- package/lib/typescript/module/lib/lifecycle/index.d.ts +10 -0
- package/lib/typescript/module/lib/lifecycle/index.d.ts.map +1 -1
- package/lib/typescript/module/types/base.d.ts +40 -0
- package/lib/typescript/module/types/base.d.ts.map +1 -1
- package/lib/typescript/module/version.d.ts +1 -1
- package/package.json +8 -8
- package/src/FormoAnalytics.ts +151 -8
- package/src/FormoAnalyticsProvider.tsx +3 -0
- package/src/constants/events.ts +32 -2
- package/src/lib/crash/index.ts +145 -0
- package/src/lib/event/EventFactory.ts +115 -21
- package/src/lib/lifecycle/index.ts +35 -6
- package/src/types/base.ts +47 -0
- package/src/version.ts +1 -1
|
@@ -8,8 +8,15 @@
|
|
|
8
8
|
* - Application Updated (version/build changed)
|
|
9
9
|
* - Application Opened (every cold start + foreground return)
|
|
10
10
|
* - Application Backgrounded (app goes to background)
|
|
11
|
+
* - Application Foregrounded (foreground return; opt-in, see AutocaptureOptions)
|
|
11
12
|
*
|
|
12
13
|
* Detection is JS-side using AsyncStorage (no native modules required).
|
|
14
|
+
*
|
|
15
|
+
* The remaining spec events live outside this manager because they are not
|
|
16
|
+
* AppState-driven: `Deep Link Opened` is emitted from the Linking hook in
|
|
17
|
+
* FormoAnalytics, `Application Crashed` from lib/crash, and the push
|
|
18
|
+
* notification events from explicit FormoAnalytics methods (the SDK cannot
|
|
19
|
+
* observe push delivery without a native module).
|
|
13
20
|
*/
|
|
14
21
|
|
|
15
22
|
import { AppState, Linking } from "react-native";
|
|
@@ -17,6 +24,7 @@ import { logger } from "../logger/index.js";
|
|
|
17
24
|
import { storage, getStorageManager } from "../storage/index.js";
|
|
18
25
|
import { LOCAL_APP_VERSION_KEY, LOCAL_APP_BUILD_KEY } from "../../constants/storage.js";
|
|
19
26
|
import { getStoredTrafficSource } from "../../utils/trafficSource.js";
|
|
27
|
+
import { LIFECYCLE_EVENT } from "../../constants/events.js";
|
|
20
28
|
|
|
21
29
|
/** Interface for the analytics instance to avoid circular deps */
|
|
22
30
|
|
|
@@ -68,6 +76,7 @@ export class AppLifecycleManager {
|
|
|
68
76
|
version: "",
|
|
69
77
|
build: ""
|
|
70
78
|
};
|
|
79
|
+
trackForegrounded = false;
|
|
71
80
|
constructor(analytics) {
|
|
72
81
|
this.analytics = analytics;
|
|
73
82
|
}
|
|
@@ -76,7 +85,8 @@ export class AppLifecycleManager {
|
|
|
76
85
|
* Initialize lifecycle tracking.
|
|
77
86
|
* Detects install/update, fires Application Opened, and sets up AppState listener.
|
|
78
87
|
*/
|
|
79
|
-
async start(appOptions) {
|
|
88
|
+
async start(appOptions, options) {
|
|
89
|
+
this.trackForegrounded = options?.trackForegrounded ?? false;
|
|
80
90
|
this.appVersionInfo = await resolveAppVersionInfo(appOptions);
|
|
81
91
|
|
|
82
92
|
// Detect install vs update
|
|
@@ -92,7 +102,7 @@ export class AppLifecycleManager {
|
|
|
92
102
|
} catch {
|
|
93
103
|
// Linking not available
|
|
94
104
|
}
|
|
95
|
-
await this.analytics.track(
|
|
105
|
+
await this.analytics.track(LIFECYCLE_EVENT.APPLICATION_OPENED, {
|
|
96
106
|
version: this.appVersionInfo.version,
|
|
97
107
|
build: this.appVersionInfo.build,
|
|
98
108
|
from_background: false,
|
|
@@ -132,7 +142,7 @@ export class AppLifecycleManager {
|
|
|
132
142
|
const trafficSource = getStoredTrafficSource() ?? {};
|
|
133
143
|
const attribution = Object.fromEntries(Object.entries(trafficSource).filter(([, value]) => Boolean(value)));
|
|
134
144
|
logger.info("AppLifecycleManager: Application Installed");
|
|
135
|
-
await this.analytics.track(
|
|
145
|
+
await this.analytics.track(LIFECYCLE_EVENT.APPLICATION_INSTALLED, {
|
|
136
146
|
version,
|
|
137
147
|
build,
|
|
138
148
|
...attribution
|
|
@@ -140,7 +150,7 @@ export class AppLifecycleManager {
|
|
|
140
150
|
} else if (previousVersion !== version || previousBuild !== build) {
|
|
141
151
|
// Version or build changed — update
|
|
142
152
|
logger.info("AppLifecycleManager: Application Updated");
|
|
143
|
-
await this.analytics.track(
|
|
153
|
+
await this.analytics.track(LIFECYCLE_EVENT.APPLICATION_UPDATED, {
|
|
144
154
|
version,
|
|
145
155
|
build,
|
|
146
156
|
previous_version: previousVersion || "",
|
|
@@ -165,17 +175,30 @@ export class AppLifecycleManager {
|
|
|
165
175
|
}
|
|
166
176
|
if (nextAppState === "active" && this.lastAppState === "background") {
|
|
167
177
|
// Returning from background
|
|
168
|
-
this.analytics.track(
|
|
178
|
+
this.analytics.track(LIFECYCLE_EVENT.APPLICATION_OPENED, {
|
|
169
179
|
version: this.appVersionInfo.version,
|
|
170
180
|
build: this.appVersionInfo.build,
|
|
171
181
|
from_background: true
|
|
172
182
|
}).catch(error => {
|
|
173
183
|
logger.error("AppLifecycleManager: Error tracking Application Opened", error);
|
|
174
184
|
});
|
|
185
|
+
|
|
186
|
+
// The Segment spec's dedicated name for this same transition. Opt-in,
|
|
187
|
+
// because emitting it alongside Application Opened doubles foreground
|
|
188
|
+
// volume for no extra information — it exists for consumers that key on
|
|
189
|
+
// the spec name rather than on `from_background`.
|
|
190
|
+
if (this.trackForegrounded) {
|
|
191
|
+
this.analytics.track(LIFECYCLE_EVENT.APPLICATION_FOREGROUNDED, {
|
|
192
|
+
version: this.appVersionInfo.version,
|
|
193
|
+
build: this.appVersionInfo.build
|
|
194
|
+
}).catch(error => {
|
|
195
|
+
logger.error("AppLifecycleManager: Error tracking Application Foregrounded", error);
|
|
196
|
+
});
|
|
197
|
+
}
|
|
175
198
|
}
|
|
176
199
|
if (nextAppState === "background" && this.lastAppState === "active") {
|
|
177
200
|
// Going to background
|
|
178
|
-
this.analytics.track(
|
|
201
|
+
this.analytics.track(LIFECYCLE_EVENT.APPLICATION_BACKGROUNDED, {
|
|
179
202
|
version: this.appVersionInfo.version,
|
|
180
203
|
build: this.appVersionInfo.build
|
|
181
204
|
}).catch(error => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AppState","Linking","logger","storage","getStorageManager","LOCAL_APP_VERSION_KEY","LOCAL_APP_BUILD_KEY","getStoredTrafficSource","resolveAppVersionInfo","appOptions","version","build","DeviceInfo","require","default","getVersion","getBuildNumber","ExpoApplication","nativeApplicationVersion","nativeBuildVersion","AppLifecycleManager","appStateSubscription","lastAppState","currentState","appVersionInfo","constructor","analytics","start","detectInstallOrUpdate","initialUrl","url","getInitialURL","track","from_background","addEventListener","handleAppStateChange","bind","info","manager","hasPersistentStorage","warn","previousVersion","get","previousBuild","trafficSource","attribution","Object","fromEntries","entries","filter","value","Boolean","previous_version","previous_build","setAsync","nextAppState","catch","error","cleanup","remove"],"sourceRoot":"../../../../src","sources":["lib/lifecycle/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,EAAkBC,OAAO,QAAQ,cAAc;AAChE,SAASC,MAAM,QAAQ,oBAAW;AAClC,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,qBAAY;AACvD,SACEC,qBAAqB,EACrBC,mBAAmB,QACd,4BAAyB;AAChC,SAASC,sBAAsB,QAAQ,8BAA2B;;
|
|
1
|
+
{"version":3,"names":["AppState","Linking","logger","storage","getStorageManager","LOCAL_APP_VERSION_KEY","LOCAL_APP_BUILD_KEY","getStoredTrafficSource","LIFECYCLE_EVENT","resolveAppVersionInfo","appOptions","version","build","DeviceInfo","require","default","getVersion","getBuildNumber","ExpoApplication","nativeApplicationVersion","nativeBuildVersion","AppLifecycleManager","appStateSubscription","lastAppState","currentState","appVersionInfo","trackForegrounded","constructor","analytics","start","options","detectInstallOrUpdate","initialUrl","url","getInitialURL","track","APPLICATION_OPENED","from_background","addEventListener","handleAppStateChange","bind","info","manager","hasPersistentStorage","warn","previousVersion","get","previousBuild","trafficSource","attribution","Object","fromEntries","entries","filter","value","Boolean","APPLICATION_INSTALLED","APPLICATION_UPDATED","previous_version","previous_build","setAsync","nextAppState","catch","error","APPLICATION_FOREGROUNDED","APPLICATION_BACKGROUNDED","cleanup","remove"],"sourceRoot":"../../../../src","sources":["lib/lifecycle/index.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/version.js
CHANGED
|
@@ -13,6 +13,8 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
13
13
|
private eventQueue;
|
|
14
14
|
private wagmiHandler?;
|
|
15
15
|
private lifecycleManager?;
|
|
16
|
+
private crashReporter?;
|
|
17
|
+
private initialDeepLinkUrl?;
|
|
16
18
|
private linkingSubscription?;
|
|
17
19
|
config: Config;
|
|
18
20
|
currentChainId?: ChainID;
|
|
@@ -32,6 +34,49 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
32
34
|
* so attribution is in storage before the first lifecycle event fires.
|
|
33
35
|
*/
|
|
34
36
|
private startDeepLinkCapture;
|
|
37
|
+
/**
|
|
38
|
+
* Emit `Deep Link Opened` for the URL the app was launched with, if any.
|
|
39
|
+
* Separate from capture so it can be ordered after `Application Opened`.
|
|
40
|
+
*/
|
|
41
|
+
private trackInitialDeepLink;
|
|
42
|
+
/**
|
|
43
|
+
* Emit the Segment-spec `Deep Link Opened` event.
|
|
44
|
+
*
|
|
45
|
+
* `provider` is deliberately omitted: the spec uses it to name the
|
|
46
|
+
* attribution provider that resolved the link (Branch, Adjust, …). The SDK
|
|
47
|
+
* reads the link straight from React Native's Linking API, so there is no
|
|
48
|
+
* provider to name, and emitting a placeholder would misreport the source.
|
|
49
|
+
*/
|
|
50
|
+
private trackDeepLinkOpened;
|
|
51
|
+
/**
|
|
52
|
+
* Track that a push notification was delivered to the device.
|
|
53
|
+
*
|
|
54
|
+
* Push delivery cannot be observed without a native module, so the SDK
|
|
55
|
+
* cannot autocapture these — call this from your push handler
|
|
56
|
+
* (`@react-native-firebase/messaging`, `expo-notifications`, …).
|
|
57
|
+
*
|
|
58
|
+
* @param properties Segment's push spec suggests `campaign_id`, `campaign_name`,
|
|
59
|
+
* `message_id`, `action` and `title`/`body`. Any properties are accepted.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```tsx
|
|
63
|
+
* messaging().onMessage(async (message) => {
|
|
64
|
+
* await formo.pushNotificationReceived({ message_id: message.messageId });
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
pushNotificationReceived(properties?: IFormoEventProperties): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Track that the user opened the app by tapping a push notification.
|
|
71
|
+
* See {@link pushNotificationReceived} for why this is not autocaptured.
|
|
72
|
+
*/
|
|
73
|
+
pushNotificationTapped(properties?: IFormoEventProperties): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Track that a push notification was not delivered — e.g. the OS suppressed
|
|
76
|
+
* it, or the device token was rejected.
|
|
77
|
+
* See {@link pushNotificationReceived} for why this is not autocaptured.
|
|
78
|
+
*/
|
|
79
|
+
pushNotificationBounced(properties?: IFormoEventProperties): Promise<void>;
|
|
35
80
|
/**
|
|
36
81
|
* Track a screen view (mobile equivalent of page view)
|
|
37
82
|
*/
|
|
@@ -148,8 +193,14 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
148
193
|
* Applies only to event-generating behaviors (wallet events, lifecycle
|
|
149
194
|
* events). Attribution is controlled separately via `options.attribution`
|
|
150
195
|
* because it enriches events rather than generating them.
|
|
196
|
+
*
|
|
197
|
+
* Most behaviors are on unless explicitly disabled. The two in
|
|
198
|
+
* {@link OPT_IN_AUTOCAPTURE} invert that and require an explicit `true`,
|
|
199
|
+
* because switching them on by default would change existing apps on a
|
|
200
|
+
* version bump: `foregrounded` doubles foreground event volume, and
|
|
201
|
+
* `crashes` installs a global error handler.
|
|
151
202
|
*/
|
|
152
|
-
isAutocaptureEnabled(eventType: "connect" | "disconnect" | "signature" | "transaction" | "chain" | "lifecycle"): boolean;
|
|
203
|
+
isAutocaptureEnabled(eventType: "connect" | "disconnect" | "signature" | "transaction" | "chain" | "lifecycle" | "foregrounded" | "deepLinks" | "crashes"): boolean;
|
|
153
204
|
/**
|
|
154
205
|
* Check if an attribution source is enabled. Attribution is not an event
|
|
155
206
|
* type — it decorates every tracked event with `utm_*`, `ref`, and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormoAnalytics.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"FormoAnalytics.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormoAnalyticsProvider.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalyticsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAOZ,EAAE,EACH,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FormoAnalyticsProvider.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalyticsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAOZ,EAAE,EACH,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAyBvE,eAAO,MAAM,qBAAqB,gCACc,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CAwBlE,CAAC;AAgMF,eAAO,MAAM,QAAQ,QAAO,eAmB3B,CAAC"}
|
|
@@ -21,4 +21,27 @@ export type TEventChannel = Lowercase<EventChannel>;
|
|
|
21
21
|
export declare const CHANNEL: TEventChannel;
|
|
22
22
|
export declare const VERSION = "0";
|
|
23
23
|
export declare const SESSION_TIMEOUT_MS: number;
|
|
24
|
+
/**
|
|
25
|
+
* Reserved lifecycle and campaign event names, per the Segment spec that
|
|
26
|
+
* RudderStack, PostHog and Amplitude all adopted verbatim.
|
|
27
|
+
*
|
|
28
|
+
* These are ordinary `track` events on the wire — the names are what make them
|
|
29
|
+
* recognisable to downstream analytics, so they must match the spec exactly,
|
|
30
|
+
* including capitalisation and spacing.
|
|
31
|
+
*
|
|
32
|
+
* @see https://segment.com/docs/connections/spec/mobile/
|
|
33
|
+
*/
|
|
34
|
+
export declare const LIFECYCLE_EVENT: {
|
|
35
|
+
readonly APPLICATION_INSTALLED: "Application Installed";
|
|
36
|
+
readonly APPLICATION_UPDATED: "Application Updated";
|
|
37
|
+
readonly APPLICATION_OPENED: "Application Opened";
|
|
38
|
+
readonly APPLICATION_BACKGROUNDED: "Application Backgrounded";
|
|
39
|
+
readonly APPLICATION_FOREGROUNDED: "Application Foregrounded";
|
|
40
|
+
readonly APPLICATION_CRASHED: "Application Crashed";
|
|
41
|
+
readonly DEEP_LINK_OPENED: "Deep Link Opened";
|
|
42
|
+
readonly PUSH_NOTIFICATION_RECEIVED: "Push Notification Received";
|
|
43
|
+
readonly PUSH_NOTIFICATION_TAPPED: "Push Notification Tapped";
|
|
44
|
+
readonly PUSH_NOTIFICATION_BOUNCED: "Push Notification Bounced";
|
|
45
|
+
};
|
|
46
|
+
export type TLifecycleEvent = (typeof LIFECYCLE_EVENT)[keyof typeof LIFECYCLE_EVENT];
|
|
24
47
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/constants/events.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAC9C,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAGpD,eAAO,MAAM,OAAO,EAAE,aAAwB,CAAC;AAC/C,eAAO,MAAM,OAAO,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/constants/events.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAC9C,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAGpD,eAAO,MAAM,OAAO,EAAE,aAAwB,CAAC;AAC/C,eAAO,MAAM,OAAO,MAAM,CAAC;AAQ3B,eAAO,MAAM,kBAAkB,QAAiB,CAAC;AAEjD;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;CAWlB,CAAC;AAEX,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JavaScript crash reporting.
|
|
3
|
+
*
|
|
4
|
+
* Emits the Segment-spec `Application Crashed` event for unhandled JS errors by
|
|
5
|
+
* wrapping React Native's global error handler.
|
|
6
|
+
*
|
|
7
|
+
* Scope: JavaScript errors only. A native crash (a Swift/Kotlin exception, an
|
|
8
|
+
* OOM kill, a watchdog termination) never reaches the JS runtime, so it cannot
|
|
9
|
+
* be observed from here — that needs a native crash reporter.
|
|
10
|
+
*/
|
|
11
|
+
/** Interface for the analytics instance to avoid circular deps */
|
|
12
|
+
interface IAnalyticsInstance {
|
|
13
|
+
track(event: string, properties?: Record<string, unknown>): Promise<void>;
|
|
14
|
+
flush(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export declare class CrashReporter {
|
|
17
|
+
private analytics;
|
|
18
|
+
private previousHandler;
|
|
19
|
+
private installedHandler;
|
|
20
|
+
private started;
|
|
21
|
+
constructor(analytics: IAnalyticsInstance);
|
|
22
|
+
/**
|
|
23
|
+
* Install the global error handler.
|
|
24
|
+
*
|
|
25
|
+
* The previous handler is always called afterwards — React Native's default
|
|
26
|
+
* handler is what shows the redbox in dev and terminates the app on a fatal
|
|
27
|
+
* error in production, and a customer's crash reporter (Sentry, Bugsnag) may
|
|
28
|
+
* also be in the chain. Swallowing it would break both.
|
|
29
|
+
*/
|
|
30
|
+
start(): void;
|
|
31
|
+
private report;
|
|
32
|
+
/**
|
|
33
|
+
* Restore the previous handler.
|
|
34
|
+
*
|
|
35
|
+
* Only restores if ours is still the installed handler — if something else
|
|
36
|
+
* wrapped us afterwards, replacing the chain would unhook that too.
|
|
37
|
+
*/
|
|
38
|
+
cleanup(): void;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crash/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,kEAAkE;AAClE,UAAU,kBAAkB;IAC1B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAWD,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,OAAO,CAAS;gBAEZ,SAAS,EAAE,kBAAkB;IAIzC;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI;IA4Cb,OAAO,CAAC,MAAM;IAqBd;;;;;OAKG;IACH,OAAO,IAAI,IAAI;CAkBhB"}
|
|
@@ -20,15 +20,20 @@ import { IEventFactory } from "./types";
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function getSessionId(): string;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Compose a screen view's `page_url` as `app://<bundle id>/<screen>`.
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
25
|
+
* Well-formed on purpose: the bundle id occupies the authority slot and the
|
|
26
|
+
* screen the path, so a standard URL parser yields both without any
|
|
27
|
+
* mobile-specific handling — the same shape as `https://<host>/<path>`.
|
|
28
|
+
*
|
|
29
|
+
* @param bundleId Application bundle id, e.g. "com.acme.wallet". When empty the
|
|
30
|
+
* authority is omitted (`app:///<screen>`), which still parses to a correct
|
|
31
|
+
* path; the pipeline resolves origin from context in that case.
|
|
32
|
+
* @param name Screen name. Leading slashes are stripped so a router-style name
|
|
33
|
+
* ("/tabs/leaderboard") does not produce a doubled separator.
|
|
31
34
|
*/
|
|
35
|
+
export declare function buildScreenUrl(bundleId: string, name: string): string;
|
|
36
|
+
export declare function resolveExpoDeviceType(deviceType: number | null | undefined, tabletEnumValue: number | null | undefined): "tablet" | "mobile";
|
|
32
37
|
export declare function synthesizeUserAgent(info: {
|
|
33
38
|
os_name: string;
|
|
34
39
|
os_version: string;
|
|
@@ -41,6 +46,8 @@ export declare function synthesizeUserAgent(info: {
|
|
|
41
46
|
*/
|
|
42
47
|
declare class EventFactory implements IEventFactory {
|
|
43
48
|
private options?;
|
|
49
|
+
/** Memoised device/app identity — see getDeviceInfo(). */
|
|
50
|
+
private deviceInfoPromise?;
|
|
44
51
|
constructor(options?: Options);
|
|
45
52
|
/**
|
|
46
53
|
* Get device timezone
|
|
@@ -66,7 +73,19 @@ declare class EventFactory implements IEventFactory {
|
|
|
66
73
|
* Get device information
|
|
67
74
|
* Supports both react-native-device-info (bare RN) and expo-device/expo-application (Expo Go)
|
|
68
75
|
*/
|
|
76
|
+
/**
|
|
77
|
+
* The app bundle id as it will appear in context.
|
|
78
|
+
*
|
|
79
|
+
* Must mirror generateContext's precedence: an explicitly configured
|
|
80
|
+
* `options.app.bundleId` overrides whatever the native modules report. Reading
|
|
81
|
+
* getDeviceInfo() alone would ignore that configuration and silently fall back
|
|
82
|
+
* to the authority-less URL form — and on React Native Web, where neither
|
|
83
|
+
* react-native-device-info nor expo-application resolves a bundle id, that is
|
|
84
|
+
* the ONLY value available.
|
|
85
|
+
*/
|
|
86
|
+
private resolveAppBundleId;
|
|
69
87
|
private getDeviceInfo;
|
|
88
|
+
private resolveDeviceInfo;
|
|
70
89
|
/**
|
|
71
90
|
* Generate context with mobile-specific metadata
|
|
72
91
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventFactory.d.ts","sourceRoot":"","sources":["../../../../../src/lib/event/EventFactory.ts"],"names":[],"mappings":"AAoCA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,OAAO,EACP,eAAe,EACf,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAWrB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAiBxC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAcrC;
|
|
1
|
+
{"version":3,"file":"EventFactory.d.ts","sourceRoot":"","sources":["../../../../../src/lib/event/EventFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,15 @@
|
|
|
6
6
|
* - Application Updated (version/build changed)
|
|
7
7
|
* - Application Opened (every cold start + foreground return)
|
|
8
8
|
* - Application Backgrounded (app goes to background)
|
|
9
|
+
* - Application Foregrounded (foreground return; opt-in, see AutocaptureOptions)
|
|
9
10
|
*
|
|
10
11
|
* Detection is JS-side using AsyncStorage (no native modules required).
|
|
12
|
+
*
|
|
13
|
+
* The remaining spec events live outside this manager because they are not
|
|
14
|
+
* AppState-driven: `Deep Link Opened` is emitted from the Linking hook in
|
|
15
|
+
* FormoAnalytics, `Application Crashed` from lib/crash, and the push
|
|
16
|
+
* notification events from explicit FormoAnalytics methods (the SDK cannot
|
|
17
|
+
* observe push delivery without a native module).
|
|
11
18
|
*/
|
|
12
19
|
/** Interface for the analytics instance to avoid circular deps */
|
|
13
20
|
interface IAnalyticsInstance {
|
|
@@ -18,6 +25,7 @@ export declare class AppLifecycleManager {
|
|
|
18
25
|
private appStateSubscription;
|
|
19
26
|
private lastAppState;
|
|
20
27
|
private appVersionInfo;
|
|
28
|
+
private trackForegrounded;
|
|
21
29
|
constructor(analytics: IAnalyticsInstance);
|
|
22
30
|
/**
|
|
23
31
|
* Initialize lifecycle tracking.
|
|
@@ -26,6 +34,8 @@ export declare class AppLifecycleManager {
|
|
|
26
34
|
start(appOptions?: {
|
|
27
35
|
version?: string;
|
|
28
36
|
build?: string;
|
|
37
|
+
}, options?: {
|
|
38
|
+
trackForegrounded?: boolean;
|
|
29
39
|
}): Promise<void>;
|
|
30
40
|
/**
|
|
31
41
|
* Compare stored version/build with current to detect install or update.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/lifecycle/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH,kEAAkE;AAClE,UAAU,kBAAkB;IAC1B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAgDD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,oBAAoB,CAAuC;IACnE,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,SAAS,EAAE,kBAAkB;IAIzC;;;OAGG;IACG,KAAK,CACT,UAAU,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EACjD,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GACxC,OAAO,CAAC,IAAI,CAAC;IAkChB;;;;OAIG;YACW,qBAAqB;IAkDnC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoD5B;;OAEG;IACH,OAAO,IAAI,IAAI;CAOhB"}
|
|
@@ -49,6 +49,9 @@ export interface IFormoAnalytics {
|
|
|
49
49
|
rdns?: string;
|
|
50
50
|
}, properties?: IFormoEventProperties, context?: IFormoEventContext, callback?: (...args: unknown[]) => void): Promise<void>;
|
|
51
51
|
track(event: string, properties?: IFormoEventProperties, context?: IFormoEventContext, callback?: (...args: unknown[]) => void): Promise<void>;
|
|
52
|
+
pushNotificationReceived(properties?: IFormoEventProperties): Promise<void>;
|
|
53
|
+
pushNotificationTapped(properties?: IFormoEventProperties): Promise<void>;
|
|
54
|
+
pushNotificationBounced(properties?: IFormoEventProperties): Promise<void>;
|
|
52
55
|
flush(): Promise<void>;
|
|
53
56
|
setTrafficSourceFromUrl(url: string): void;
|
|
54
57
|
optOutTracking(): void;
|
|
@@ -99,6 +102,43 @@ export interface AutocaptureOptions {
|
|
|
99
102
|
* @default true
|
|
100
103
|
*/
|
|
101
104
|
lifecycle?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Emit `Application Foregrounded` on every background → active transition,
|
|
107
|
+
* in addition to the `Application Opened` (with `from_background: true`) that
|
|
108
|
+
* already fires there.
|
|
109
|
+
*
|
|
110
|
+
* Off by default because it doubles foreground event volume and adds no
|
|
111
|
+
* information: `Application Opened` with `from_background: true` already
|
|
112
|
+
* marks the same transition. Enable it if you consume the Segment spec's
|
|
113
|
+
* `Application Foregrounded` name directly — e.g. when migrating dashboards
|
|
114
|
+
* or destinations from Segment or RudderStack. Requires `lifecycle`.
|
|
115
|
+
* @default false
|
|
116
|
+
*/
|
|
117
|
+
foregrounded?: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Track `Deep Link Opened` when the app is launched or resumed via a deep
|
|
120
|
+
* link or universal link, with the `url` property.
|
|
121
|
+
*
|
|
122
|
+
* Independent of `attribution.deeplinks`, which controls whether the link's
|
|
123
|
+
* UTM/referral parameters are parsed into event context. This option is only
|
|
124
|
+
* about emitting the event; the SDK still needs `attribution.deeplinks` to
|
|
125
|
+
* observe links at all.
|
|
126
|
+
* @default true
|
|
127
|
+
*/
|
|
128
|
+
deepLinks?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Track `Application Crashed` on unhandled JavaScript errors, with the error
|
|
131
|
+
* message, stack, and whether React Native considered it fatal.
|
|
132
|
+
*
|
|
133
|
+
* Off by default because enabling it installs a global error handler
|
|
134
|
+
* (`ErrorUtils.setGlobalHandler`). The previous handler is always invoked
|
|
135
|
+
* afterwards, so React Native's redbox and any crash reporter you already use
|
|
136
|
+
* keep working — but installing one implicitly on an SDK upgrade is a
|
|
137
|
+
* surprise, so it is opt-in. Covers JS errors only: native crashes need a
|
|
138
|
+
* native crash reporter.
|
|
139
|
+
* @default false
|
|
140
|
+
*/
|
|
141
|
+
crashes?: boolean;
|
|
102
142
|
}
|
|
103
143
|
/**
|
|
104
144
|
* Configuration options for attribution capture.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/types/base.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/types/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "1.0.
|
|
1
|
+
export declare const version = "1.0.2";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -13,6 +13,8 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
13
13
|
private eventQueue;
|
|
14
14
|
private wagmiHandler?;
|
|
15
15
|
private lifecycleManager?;
|
|
16
|
+
private crashReporter?;
|
|
17
|
+
private initialDeepLinkUrl?;
|
|
16
18
|
private linkingSubscription?;
|
|
17
19
|
config: Config;
|
|
18
20
|
currentChainId?: ChainID;
|
|
@@ -32,6 +34,49 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
32
34
|
* so attribution is in storage before the first lifecycle event fires.
|
|
33
35
|
*/
|
|
34
36
|
private startDeepLinkCapture;
|
|
37
|
+
/**
|
|
38
|
+
* Emit `Deep Link Opened` for the URL the app was launched with, if any.
|
|
39
|
+
* Separate from capture so it can be ordered after `Application Opened`.
|
|
40
|
+
*/
|
|
41
|
+
private trackInitialDeepLink;
|
|
42
|
+
/**
|
|
43
|
+
* Emit the Segment-spec `Deep Link Opened` event.
|
|
44
|
+
*
|
|
45
|
+
* `provider` is deliberately omitted: the spec uses it to name the
|
|
46
|
+
* attribution provider that resolved the link (Branch, Adjust, …). The SDK
|
|
47
|
+
* reads the link straight from React Native's Linking API, so there is no
|
|
48
|
+
* provider to name, and emitting a placeholder would misreport the source.
|
|
49
|
+
*/
|
|
50
|
+
private trackDeepLinkOpened;
|
|
51
|
+
/**
|
|
52
|
+
* Track that a push notification was delivered to the device.
|
|
53
|
+
*
|
|
54
|
+
* Push delivery cannot be observed without a native module, so the SDK
|
|
55
|
+
* cannot autocapture these — call this from your push handler
|
|
56
|
+
* (`@react-native-firebase/messaging`, `expo-notifications`, …).
|
|
57
|
+
*
|
|
58
|
+
* @param properties Segment's push spec suggests `campaign_id`, `campaign_name`,
|
|
59
|
+
* `message_id`, `action` and `title`/`body`. Any properties are accepted.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```tsx
|
|
63
|
+
* messaging().onMessage(async (message) => {
|
|
64
|
+
* await formo.pushNotificationReceived({ message_id: message.messageId });
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
pushNotificationReceived(properties?: IFormoEventProperties): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Track that the user opened the app by tapping a push notification.
|
|
71
|
+
* See {@link pushNotificationReceived} for why this is not autocaptured.
|
|
72
|
+
*/
|
|
73
|
+
pushNotificationTapped(properties?: IFormoEventProperties): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Track that a push notification was not delivered — e.g. the OS suppressed
|
|
76
|
+
* it, or the device token was rejected.
|
|
77
|
+
* See {@link pushNotificationReceived} for why this is not autocaptured.
|
|
78
|
+
*/
|
|
79
|
+
pushNotificationBounced(properties?: IFormoEventProperties): Promise<void>;
|
|
35
80
|
/**
|
|
36
81
|
* Track a screen view (mobile equivalent of page view)
|
|
37
82
|
*/
|
|
@@ -148,8 +193,14 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
148
193
|
* Applies only to event-generating behaviors (wallet events, lifecycle
|
|
149
194
|
* events). Attribution is controlled separately via `options.attribution`
|
|
150
195
|
* because it enriches events rather than generating them.
|
|
196
|
+
*
|
|
197
|
+
* Most behaviors are on unless explicitly disabled. The two in
|
|
198
|
+
* {@link OPT_IN_AUTOCAPTURE} invert that and require an explicit `true`,
|
|
199
|
+
* because switching them on by default would change existing apps on a
|
|
200
|
+
* version bump: `foregrounded` doubles foreground event volume, and
|
|
201
|
+
* `crashes` installs a global error handler.
|
|
151
202
|
*/
|
|
152
|
-
isAutocaptureEnabled(eventType: "connect" | "disconnect" | "signature" | "transaction" | "chain" | "lifecycle"): boolean;
|
|
203
|
+
isAutocaptureEnabled(eventType: "connect" | "disconnect" | "signature" | "transaction" | "chain" | "lifecycle" | "foregrounded" | "deepLinks" | "crashes"): boolean;
|
|
153
204
|
/**
|
|
154
205
|
* Check if an attribution source is enabled. Attribution is not an event
|
|
155
206
|
* type — it decorates every tracked event with `utm_*`, `ref`, and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormoAnalytics.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"FormoAnalytics.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"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"}
|