sitepong 0.0.19 → 0.0.20
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/dist/index.d.mts +718 -2
- package/dist/index.d.ts +718 -2
- package/dist/react/index.d.mts +2 -2
- package/dist/react/index.d.ts +2 -2
- package/dist/rn/analytics/autocapture.d.ts +48 -0
- package/dist/rn/analytics/autocapture.d.ts.map +1 -0
- package/dist/rn/analytics/autocapture.js +229 -0
- package/dist/rn/analytics/autocapture.js.map +1 -0
- package/dist/rn/analytics/index.d.ts +5 -0
- package/dist/rn/analytics/index.d.ts.map +1 -0
- package/dist/rn/analytics/index.js +11 -0
- package/dist/rn/analytics/index.js.map +1 -0
- package/dist/rn/analytics/manager.d.ts +43 -0
- package/dist/rn/analytics/manager.d.ts.map +1 -0
- package/dist/rn/analytics/manager.js +303 -0
- package/dist/rn/analytics/manager.js.map +1 -0
- package/dist/rn/analytics/manager.spec.d.ts +2 -0
- package/dist/rn/analytics/manager.spec.d.ts.map +1 -0
- package/dist/rn/analytics/manager.spec.js +293 -0
- package/dist/rn/analytics/manager.spec.js.map +1 -0
- package/dist/rn/analytics/session.d.ts +7 -0
- package/dist/rn/analytics/session.d.ts.map +1 -0
- package/dist/rn/analytics/session.js +72 -0
- package/dist/rn/analytics/session.js.map +1 -0
- package/dist/rn/analytics/session.spec.d.ts +2 -0
- package/dist/rn/analytics/session.spec.d.ts.map +1 -0
- package/dist/rn/analytics/session.spec.js +95 -0
- package/dist/rn/analytics/session.spec.js.map +1 -0
- package/dist/rn/analytics/types.d.ts +66 -0
- package/dist/rn/analytics/types.d.ts.map +1 -0
- package/dist/rn/analytics/types.js +7 -0
- package/dist/rn/analytics/types.js.map +1 -0
- package/dist/rn/core/breadcrumbs.d.ts +25 -0
- package/dist/rn/core/breadcrumbs.d.ts.map +1 -0
- package/dist/rn/core/breadcrumbs.js +56 -0
- package/dist/rn/core/breadcrumbs.js.map +1 -0
- package/dist/rn/core/client.d.ts +210 -0
- package/dist/rn/core/client.d.ts.map +1 -0
- package/dist/rn/core/client.js +523 -0
- package/dist/rn/core/client.js.map +1 -0
- package/dist/rn/core/dsn.d.ts +28 -0
- package/dist/rn/core/dsn.d.ts.map +1 -0
- package/dist/rn/core/dsn.js +94 -0
- package/dist/rn/core/dsn.js.map +1 -0
- package/dist/rn/core/types.d.ts +117 -0
- package/dist/rn/core/types.d.ts.map +1 -0
- package/dist/rn/core/types.js +3 -0
- package/dist/rn/core/types.js.map +1 -0
- package/dist/rn/crons.d.ts +50 -0
- package/dist/rn/crons.d.ts.map +1 -0
- package/dist/rn/crons.js +86 -0
- package/dist/rn/crons.js.map +1 -0
- package/dist/rn/database.d.ts +79 -0
- package/dist/rn/database.d.ts.map +1 -0
- package/dist/rn/database.js +235 -0
- package/dist/rn/database.js.map +1 -0
- package/dist/rn/fingerprint/behavior.d.ts +70 -0
- package/dist/rn/fingerprint/behavior.d.ts.map +1 -0
- package/dist/rn/fingerprint/behavior.js +307 -0
- package/dist/rn/fingerprint/behavior.js.map +1 -0
- package/dist/rn/fingerprint/captcha.d.ts +60 -0
- package/dist/rn/fingerprint/captcha.d.ts.map +1 -0
- package/dist/rn/fingerprint/captcha.js +118 -0
- package/dist/rn/fingerprint/captcha.js.map +1 -0
- package/dist/rn/fingerprint/index.d.ts +11 -0
- package/dist/rn/fingerprint/index.d.ts.map +1 -0
- package/dist/rn/fingerprint/index.js +19 -0
- package/dist/rn/fingerprint/index.js.map +1 -0
- package/dist/rn/fingerprint/manager.d.ts +24 -0
- package/dist/rn/fingerprint/manager.d.ts.map +1 -0
- package/dist/rn/fingerprint/manager.js +216 -0
- package/dist/rn/fingerprint/manager.js.map +1 -0
- package/dist/rn/fingerprint/manager.spec.d.ts +2 -0
- package/dist/rn/fingerprint/manager.spec.d.ts.map +1 -0
- package/dist/rn/fingerprint/manager.spec.js +246 -0
- package/dist/rn/fingerprint/manager.spec.js.map +1 -0
- package/dist/rn/fingerprint/signals.d.ts +10 -0
- package/dist/rn/fingerprint/signals.d.ts.map +1 -0
- package/dist/rn/fingerprint/signals.js +332 -0
- package/dist/rn/fingerprint/signals.js.map +1 -0
- package/dist/rn/fingerprint/signals.spec.d.ts +2 -0
- package/dist/rn/fingerprint/signals.spec.d.ts.map +1 -0
- package/dist/rn/fingerprint/signals.spec.js +249 -0
- package/dist/rn/fingerprint/signals.spec.js.map +1 -0
- package/dist/rn/fingerprint/tampering.d.ts +33 -0
- package/dist/rn/fingerprint/tampering.d.ts.map +1 -0
- package/dist/rn/fingerprint/tampering.js +488 -0
- package/dist/rn/fingerprint/tampering.js.map +1 -0
- package/dist/rn/fingerprint/types.d.ts +146 -0
- package/dist/rn/fingerprint/types.d.ts.map +1 -0
- package/dist/rn/fingerprint/types.js +7 -0
- package/dist/rn/fingerprint/types.js.map +1 -0
- package/dist/rn/fingerprint/vpn-detection.d.ts +24 -0
- package/dist/rn/fingerprint/vpn-detection.d.ts.map +1 -0
- package/dist/rn/fingerprint/vpn-detection.js +198 -0
- package/dist/rn/fingerprint/vpn-detection.js.map +1 -0
- package/dist/rn/flags/anonymous-id.d.ts +16 -0
- package/dist/rn/flags/anonymous-id.d.ts.map +1 -0
- package/dist/rn/flags/anonymous-id.js +88 -0
- package/dist/rn/flags/anonymous-id.js.map +1 -0
- package/dist/rn/flags/context.d.ts +26 -0
- package/dist/rn/flags/context.d.ts.map +1 -0
- package/dist/rn/flags/context.js +99 -0
- package/dist/rn/flags/context.js.map +1 -0
- package/dist/rn/flags/evaluator.d.ts +23 -0
- package/dist/rn/flags/evaluator.d.ts.map +1 -0
- package/dist/rn/flags/evaluator.js +227 -0
- package/dist/rn/flags/evaluator.js.map +1 -0
- package/dist/rn/flags/index.d.ts +9 -0
- package/dist/rn/flags/index.d.ts.map +1 -0
- package/dist/rn/flags/index.js +24 -0
- package/dist/rn/flags/index.js.map +1 -0
- package/dist/rn/flags/manager.d.ts +72 -0
- package/dist/rn/flags/manager.d.ts.map +1 -0
- package/dist/rn/flags/manager.js +205 -0
- package/dist/rn/flags/manager.js.map +1 -0
- package/dist/rn/index.d.ts +350 -0
- package/dist/rn/index.d.ts.map +1 -0
- package/dist/rn/index.js +935 -0
- package/dist/rn/index.js.map +1 -0
- package/dist/rn/integrations/express.d.ts +44 -0
- package/dist/rn/integrations/express.d.ts.map +1 -0
- package/dist/rn/integrations/express.js +111 -0
- package/dist/rn/integrations/express.js.map +1 -0
- package/dist/rn/integrations/nextjs.d.ts +105 -0
- package/dist/rn/integrations/nextjs.d.ts.map +1 -0
- package/dist/rn/integrations/nextjs.js +194 -0
- package/dist/rn/integrations/nextjs.js.map +1 -0
- package/dist/rn/metrics.d.ts +82 -0
- package/dist/rn/metrics.d.ts.map +1 -0
- package/dist/rn/metrics.js +173 -0
- package/dist/rn/metrics.js.map +1 -0
- package/dist/rn/performance/index.d.ts +5 -0
- package/dist/rn/performance/index.d.ts.map +1 -0
- package/dist/rn/performance/index.js +13 -0
- package/dist/rn/performance/index.js.map +1 -0
- package/dist/rn/performance/manager.d.ts +42 -0
- package/dist/rn/performance/manager.d.ts.map +1 -0
- package/dist/rn/performance/manager.js +323 -0
- package/dist/rn/performance/manager.js.map +1 -0
- package/dist/rn/performance/tracing.d.ts +21 -0
- package/dist/rn/performance/tracing.d.ts.map +1 -0
- package/dist/rn/performance/tracing.js +164 -0
- package/dist/rn/performance/tracing.js.map +1 -0
- package/dist/rn/performance/types.d.ts +57 -0
- package/dist/rn/performance/types.d.ts.map +1 -0
- package/dist/rn/performance/types.js +3 -0
- package/dist/rn/performance/types.js.map +1 -0
- package/dist/rn/profiling.d.ts +76 -0
- package/dist/rn/profiling.d.ts.map +1 -0
- package/dist/rn/profiling.js +193 -0
- package/dist/rn/profiling.js.map +1 -0
- package/dist/rn/react/error-boundary.d.ts +68 -0
- package/dist/rn/react/error-boundary.d.ts.map +1 -0
- package/dist/rn/react/error-boundary.js +103 -0
- package/dist/rn/react/error-boundary.js.map +1 -0
- package/dist/rn/react/hooks.d.ts +194 -0
- package/dist/rn/react/hooks.d.ts.map +1 -0
- package/dist/rn/react/hooks.js +416 -0
- package/dist/rn/react/hooks.js.map +1 -0
- package/dist/rn/react/index.d.ts +21 -0
- package/dist/rn/react/index.d.ts.map +1 -0
- package/dist/rn/react/index.js +66 -0
- package/dist/rn/react/index.js.map +1 -0
- package/dist/rn/react/provider.d.ts +45 -0
- package/dist/rn/react/provider.d.ts.map +1 -0
- package/dist/rn/react/provider.js +59 -0
- package/dist/rn/react/provider.js.map +1 -0
- package/dist/rn/react-native/autocapture.d.ts +19 -0
- package/dist/rn/react-native/autocapture.d.ts.map +1 -0
- package/dist/rn/react-native/autocapture.js +61 -0
- package/dist/rn/react-native/autocapture.js.map +1 -0
- package/dist/rn/react-native/device.d.ts +37 -0
- package/dist/rn/react-native/device.d.ts.map +1 -0
- package/dist/rn/react-native/device.js +106 -0
- package/dist/rn/react-native/device.js.map +1 -0
- package/dist/rn/react-native/error-handler.d.ts +16 -0
- package/dist/rn/react-native/error-handler.d.ts.map +1 -0
- package/dist/rn/react-native/error-handler.js +66 -0
- package/dist/rn/react-native/error-handler.js.map +1 -0
- package/dist/rn/react-native/hooks.d.ts +25 -0
- package/dist/rn/react-native/hooks.d.ts.map +1 -0
- package/dist/rn/react-native/hooks.js +82 -0
- package/dist/rn/react-native/hooks.js.map +1 -0
- package/dist/rn/react-native/index.d.ts +42 -0
- package/dist/rn/react-native/index.d.ts.map +1 -0
- package/dist/rn/react-native/index.js +96 -0
- package/dist/rn/react-native/index.js.map +1 -0
- package/dist/rn/react-native/navigation.d.ts +23 -0
- package/dist/rn/react-native/navigation.d.ts.map +1 -0
- package/dist/rn/react-native/navigation.js +46 -0
- package/dist/rn/react-native/navigation.js.map +1 -0
- package/dist/rn/react-native/network.d.ts +16 -0
- package/dist/rn/react-native/network.d.ts.map +1 -0
- package/dist/rn/react-native/network.js +63 -0
- package/dist/rn/react-native/network.js.map +1 -0
- package/dist/rn/react-native/performance.d.ts +32 -0
- package/dist/rn/react-native/performance.d.ts.map +1 -0
- package/dist/rn/react-native/performance.js +70 -0
- package/dist/rn/react-native/performance.js.map +1 -0
- package/dist/rn/react-native/provider.d.ts +39 -0
- package/dist/rn/react-native/provider.d.ts.map +1 -0
- package/dist/rn/react-native/provider.js +110 -0
- package/dist/rn/react-native/provider.js.map +1 -0
- package/dist/rn/react-native/screen-recorder.d.ts +56 -0
- package/dist/rn/react-native/screen-recorder.d.ts.map +1 -0
- package/dist/rn/react-native/screen-recorder.js +125 -0
- package/dist/rn/react-native/screen-recorder.js.map +1 -0
- package/dist/rn/react-native/sqlite-tracker.d.ts +49 -0
- package/dist/rn/react-native/sqlite-tracker.d.ts.map +1 -0
- package/dist/rn/react-native/sqlite-tracker.js +134 -0
- package/dist/rn/react-native/sqlite-tracker.js.map +1 -0
- package/dist/rn/react-native/storage.d.ts +13 -0
- package/dist/rn/react-native/storage.d.ts.map +1 -0
- package/dist/rn/react-native/storage.js +16 -0
- package/dist/rn/react-native/storage.js.map +1 -0
- package/dist/rn/remote-config/defaults.d.ts +8 -0
- package/dist/rn/remote-config/defaults.d.ts.map +1 -0
- package/dist/rn/remote-config/defaults.js +31 -0
- package/dist/rn/remote-config/defaults.js.map +1 -0
- package/dist/rn/remote-config/index.d.ts +5 -0
- package/dist/rn/remote-config/index.d.ts.map +1 -0
- package/dist/rn/remote-config/index.js +8 -0
- package/dist/rn/remote-config/index.js.map +1 -0
- package/dist/rn/remote-config/manager.d.ts +37 -0
- package/dist/rn/remote-config/manager.d.ts.map +1 -0
- package/dist/rn/remote-config/manager.js +164 -0
- package/dist/rn/remote-config/manager.js.map +1 -0
- package/dist/rn/remote-config/types.d.ts +60 -0
- package/dist/rn/remote-config/types.d.ts.map +1 -0
- package/dist/rn/remote-config/types.js +9 -0
- package/dist/rn/remote-config/types.js.map +1 -0
- package/dist/rn/replay/console.d.ts +33 -0
- package/dist/rn/replay/console.d.ts.map +1 -0
- package/dist/rn/replay/console.js +129 -0
- package/dist/rn/replay/console.js.map +1 -0
- package/dist/rn/replay/index.d.ts +7 -0
- package/dist/rn/replay/index.d.ts.map +1 -0
- package/dist/rn/replay/index.js +10 -0
- package/dist/rn/replay/index.js.map +1 -0
- package/dist/rn/replay/manager.d.ts +65 -0
- package/dist/rn/replay/manager.d.ts.map +1 -0
- package/dist/rn/replay/manager.js +579 -0
- package/dist/rn/replay/manager.js.map +1 -0
- package/dist/rn/replay/network.d.ts +46 -0
- package/dist/rn/replay/network.d.ts.map +1 -0
- package/dist/rn/replay/network.js +222 -0
- package/dist/rn/replay/network.js.map +1 -0
- package/dist/rn/replay/serializer.d.ts +28 -0
- package/dist/rn/replay/serializer.d.ts.map +1 -0
- package/dist/rn/replay/serializer.js +441 -0
- package/dist/rn/replay/serializer.js.map +1 -0
- package/dist/rn/replay/types.d.ts +112 -0
- package/dist/rn/replay/types.d.ts.map +1 -0
- package/dist/rn/replay/types.js +3 -0
- package/dist/rn/replay/types.js.map +1 -0
- package/dist/rn/server/index.d.ts +45 -0
- package/dist/rn/server/index.d.ts.map +1 -0
- package/dist/rn/server/index.js +158 -0
- package/dist/rn/server/index.js.map +1 -0
- package/dist/rn/transport/fetch.d.ts +15 -0
- package/dist/rn/transport/fetch.d.ts.map +1 -0
- package/dist/rn/transport/fetch.js +74 -0
- package/dist/rn/transport/fetch.js.map +1 -0
- package/dist/rn/types/flags.d.ts +61 -0
- package/dist/rn/types/flags.d.ts.map +1 -0
- package/dist/rn/types/flags.js +6 -0
- package/dist/rn/types/flags.js.map +1 -0
- package/dist/rn/types/index.d.ts +2 -0
- package/dist/rn/types/index.d.ts.map +1 -0
- package/dist/rn/types/index.js +18 -0
- package/dist/rn/types/index.js.map +1 -0
- package/dist/rn/utils/platform.d.ts +79 -0
- package/dist/rn/utils/platform.d.ts.map +1 -0
- package/dist/rn/utils/platform.js +139 -0
- package/dist/rn/utils/platform.js.map +1 -0
- package/dist/rn/utils/stacktrace.d.ts +37 -0
- package/dist/rn/utils/stacktrace.d.ts.map +1 -0
- package/dist/rn/utils/stacktrace.js +160 -0
- package/dist/rn/utils/stacktrace.js.map +1 -0
- package/package.json +6 -6
- package/dist/index-DrUJO5p6.d.mts +0 -717
- package/dist/index-bSaNFzwo.d.ts +0 -717
- package/dist/react-native/index.d.mts +0 -318
- package/dist/react-native/index.d.ts +0 -318
- package/dist/react-native/index.js +0 -6083
- package/dist/react-native/index.js.map +0 -1
- package/dist/react-native/index.mjs +0 -6034
- package/dist/react-native/index.mjs.map +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,2 +1,718 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
1
|
+
import { T as TrackProperties, U as UserTraits, G as GroupTraits } from './types-BEqbz0tw.mjs';
|
|
2
|
+
export { R as ReplayConfig, a as ReplayEvent } from './types-BEqbz0tw.mjs';
|
|
3
|
+
|
|
4
|
+
interface CoreSignals {
|
|
5
|
+
userAgent: string;
|
|
6
|
+
language: string;
|
|
7
|
+
languages: string[];
|
|
8
|
+
platform: string;
|
|
9
|
+
screenWidth: number;
|
|
10
|
+
screenHeight: number;
|
|
11
|
+
screenColorDepth: number;
|
|
12
|
+
devicePixelRatio: number;
|
|
13
|
+
timezoneOffset: number;
|
|
14
|
+
timezone: string;
|
|
15
|
+
sessionStorage: boolean;
|
|
16
|
+
localStorage: boolean;
|
|
17
|
+
indexedDB: boolean;
|
|
18
|
+
cookieEnabled: boolean;
|
|
19
|
+
hardwareConcurrency: number;
|
|
20
|
+
maxTouchPoints: number;
|
|
21
|
+
deviceMemory?: number;
|
|
22
|
+
}
|
|
23
|
+
interface ExtendedSignals {
|
|
24
|
+
canvasFingerprint?: string;
|
|
25
|
+
webglVendor?: string;
|
|
26
|
+
webglRenderer?: string;
|
|
27
|
+
audioFingerprint?: string;
|
|
28
|
+
}
|
|
29
|
+
interface SmartSignals {
|
|
30
|
+
incognito?: boolean;
|
|
31
|
+
bot?: boolean;
|
|
32
|
+
/** Browser timezone differs from what's expected for this IP location (computed server-side) */
|
|
33
|
+
timezoneMismatch?: boolean;
|
|
34
|
+
/** Browser language doesn't match expected language for IP location (computed server-side) */
|
|
35
|
+
languageMismatch?: boolean;
|
|
36
|
+
/** First time this device was seen (from localStorage) */
|
|
37
|
+
deviceFirstSeen?: string;
|
|
38
|
+
/** Number of times this device has been seen (incremented per session) */
|
|
39
|
+
deviceVisitCount?: number;
|
|
40
|
+
/** Whether the device appears to be using a privacy-focused browser */
|
|
41
|
+
privacyBrowser?: boolean;
|
|
42
|
+
/** Whether developer tools appear to be open */
|
|
43
|
+
devToolsOpen?: boolean;
|
|
44
|
+
/** Connection type (if available) */
|
|
45
|
+
connectionType?: string;
|
|
46
|
+
/** Whether the browser supports notifications */
|
|
47
|
+
notificationsEnabled?: boolean;
|
|
48
|
+
/** Whether do-not-track is enabled */
|
|
49
|
+
doNotTrack?: boolean;
|
|
50
|
+
/** Browser UA/fingerprint appears spoofed */
|
|
51
|
+
browserTampered?: boolean;
|
|
52
|
+
/** Canvas fingerprint noise/blocking detected */
|
|
53
|
+
canvasTampered?: boolean;
|
|
54
|
+
/** WebGL fingerprint spoofing detected */
|
|
55
|
+
webglTampered?: boolean;
|
|
56
|
+
/** Virtual machine environment detected */
|
|
57
|
+
vmDetected?: boolean;
|
|
58
|
+
/** VM indicator details */
|
|
59
|
+
vmIndicators?: string[];
|
|
60
|
+
}
|
|
61
|
+
interface BehaviorScore {
|
|
62
|
+
score: number;
|
|
63
|
+
mouseMovements: number;
|
|
64
|
+
keystrokes: number;
|
|
65
|
+
scrolls: number;
|
|
66
|
+
clicks: number;
|
|
67
|
+
isHuman: boolean;
|
|
68
|
+
}
|
|
69
|
+
interface DeviceSignals extends CoreSignals {
|
|
70
|
+
extended?: ExtendedSignals;
|
|
71
|
+
smart?: SmartSignals;
|
|
72
|
+
behavior?: BehaviorScore;
|
|
73
|
+
/** @deprecated Use smart.incognito */
|
|
74
|
+
incognito?: boolean;
|
|
75
|
+
/** @deprecated Use smart.bot */
|
|
76
|
+
bot?: boolean;
|
|
77
|
+
}
|
|
78
|
+
interface VisitorIdResult {
|
|
79
|
+
visitorId: string;
|
|
80
|
+
confidence: number;
|
|
81
|
+
firstSeenAt?: string;
|
|
82
|
+
lastSeenAt?: string;
|
|
83
|
+
}
|
|
84
|
+
interface FraudCheckResult {
|
|
85
|
+
visitorId: string;
|
|
86
|
+
riskScore: number;
|
|
87
|
+
signals: DeviceSignals;
|
|
88
|
+
flags?: {
|
|
89
|
+
incognito?: boolean;
|
|
90
|
+
bot?: boolean;
|
|
91
|
+
vpn?: boolean;
|
|
92
|
+
tampered?: boolean;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
interface RecaptchaV3 {
|
|
97
|
+
ready: (cb: () => void) => void;
|
|
98
|
+
execute: (siteKey: string, options: {
|
|
99
|
+
action: string;
|
|
100
|
+
}) => Promise<string>;
|
|
101
|
+
}
|
|
102
|
+
interface HCaptcha {
|
|
103
|
+
execute: (siteKey: string, options?: {
|
|
104
|
+
async: boolean;
|
|
105
|
+
}) => Promise<{
|
|
106
|
+
response: string;
|
|
107
|
+
}>;
|
|
108
|
+
render: (container: string | HTMLElement, options: object) => string;
|
|
109
|
+
}
|
|
110
|
+
declare global {
|
|
111
|
+
interface Window {
|
|
112
|
+
grecaptcha?: RecaptchaV3;
|
|
113
|
+
hcaptcha?: HCaptcha;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
interface PerformanceConfig {
|
|
118
|
+
apiKey: string;
|
|
119
|
+
endpoint?: string;
|
|
120
|
+
enabled?: boolean;
|
|
121
|
+
/** Collect Web Vitals (default: true) */
|
|
122
|
+
webVitals?: boolean;
|
|
123
|
+
/** Report navigation timing (default: true) */
|
|
124
|
+
navigationTiming?: boolean;
|
|
125
|
+
/** Report resource timing (default: false) */
|
|
126
|
+
resourceTiming?: boolean;
|
|
127
|
+
/** Custom endpoint for performance data */
|
|
128
|
+
performanceEndpoint?: string;
|
|
129
|
+
/** Flush interval in ms (default: 10000) */
|
|
130
|
+
flushInterval?: number;
|
|
131
|
+
/** Sample rate 0-1 (default: 1.0) */
|
|
132
|
+
sampleRate?: number;
|
|
133
|
+
debug?: boolean;
|
|
134
|
+
}
|
|
135
|
+
interface WebVitals {
|
|
136
|
+
lcp?: number;
|
|
137
|
+
fid?: number;
|
|
138
|
+
cls?: number;
|
|
139
|
+
fcp?: number;
|
|
140
|
+
ttfb?: number;
|
|
141
|
+
inp?: number;
|
|
142
|
+
}
|
|
143
|
+
interface PerformanceSpan {
|
|
144
|
+
id: string;
|
|
145
|
+
name: string;
|
|
146
|
+
startTime: number;
|
|
147
|
+
endTime?: number;
|
|
148
|
+
duration?: number;
|
|
149
|
+
status: 'ok' | 'error' | 'running';
|
|
150
|
+
data?: Record<string, unknown>;
|
|
151
|
+
}
|
|
152
|
+
interface PerformanceTransaction {
|
|
153
|
+
id: string;
|
|
154
|
+
name: string;
|
|
155
|
+
startTime: number;
|
|
156
|
+
endTime?: number;
|
|
157
|
+
duration?: number;
|
|
158
|
+
status: 'ok' | 'error' | 'running';
|
|
159
|
+
spans: PerformanceSpan[];
|
|
160
|
+
data?: Record<string, unknown>;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
interface TraceContext {
|
|
164
|
+
traceId: string;
|
|
165
|
+
spanId: string;
|
|
166
|
+
parentSpanId: string | null;
|
|
167
|
+
sampled: boolean;
|
|
168
|
+
}
|
|
169
|
+
declare function generateTraceId(): string;
|
|
170
|
+
declare function generateSpanId(): string;
|
|
171
|
+
declare function createTraceContext(): TraceContext;
|
|
172
|
+
declare function propagateTrace(context: TraceContext): Record<string, string>;
|
|
173
|
+
declare function extractTrace(headers: Record<string, string>): TraceContext | null;
|
|
174
|
+
declare class TracePropagator {
|
|
175
|
+
private targets;
|
|
176
|
+
private originalFetch;
|
|
177
|
+
constructor(targets: string[]);
|
|
178
|
+
shouldPropagate(url: string): boolean;
|
|
179
|
+
injectHeaders(url: string, headers: Record<string, string>, context: TraceContext): Record<string, string>;
|
|
180
|
+
start(): void;
|
|
181
|
+
stop(): void;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Cron Job Monitoring SDK Module
|
|
186
|
+
*
|
|
187
|
+
* Usage:
|
|
188
|
+
* import { cronMonitor } from '@sitepong/sdk';
|
|
189
|
+
*
|
|
190
|
+
* // Simple check-in
|
|
191
|
+
* await cronMonitor.checkin('my-job-slug');
|
|
192
|
+
*
|
|
193
|
+
* // With duration tracking
|
|
194
|
+
* const done = cronMonitor.start('my-job-slug');
|
|
195
|
+
* try { await doWork(); done.ok(); }
|
|
196
|
+
* catch (e) { done.error(e.message); }
|
|
197
|
+
*/
|
|
198
|
+
interface CronCheckinOptions {
|
|
199
|
+
status?: 'ok' | 'error' | 'in_progress';
|
|
200
|
+
duration_ms?: number;
|
|
201
|
+
message?: string;
|
|
202
|
+
environment?: string;
|
|
203
|
+
}
|
|
204
|
+
interface CronHandle {
|
|
205
|
+
ok: (message?: string) => Promise<void>;
|
|
206
|
+
error: (message?: string) => Promise<void>;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Custom Metrics SDK Module
|
|
211
|
+
*
|
|
212
|
+
* Usage:
|
|
213
|
+
* import { metrics } from '@sitepong/sdk';
|
|
214
|
+
*
|
|
215
|
+
* // Counter
|
|
216
|
+
* metrics.increment('api.requests', 1, { endpoint: '/users' });
|
|
217
|
+
*
|
|
218
|
+
* // Gauge
|
|
219
|
+
* metrics.gauge('memory.usage', process.memoryUsage().heapUsed, { unit: 'bytes' });
|
|
220
|
+
*
|
|
221
|
+
* // Distribution (for percentile calculations)
|
|
222
|
+
* metrics.distribution('api.latency', responseTime, { unit: 'ms' });
|
|
223
|
+
*
|
|
224
|
+
* // Histogram
|
|
225
|
+
* metrics.histogram('request.size', bodySize, { unit: 'bytes' });
|
|
226
|
+
*/
|
|
227
|
+
interface MetricOptions {
|
|
228
|
+
tags?: Record<string, string>;
|
|
229
|
+
unit?: string;
|
|
230
|
+
timestamp?: string;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Production Profiling SDK Module
|
|
235
|
+
*
|
|
236
|
+
* Usage:
|
|
237
|
+
* import { profiler } from '@sitepong/sdk';
|
|
238
|
+
*
|
|
239
|
+
* // Profile a function
|
|
240
|
+
* const result = await profiler.profile('processOrder', async () => {
|
|
241
|
+
* return await processOrder(orderId);
|
|
242
|
+
* });
|
|
243
|
+
*
|
|
244
|
+
* // Get flame graph data
|
|
245
|
+
* const profile = profiler.getProfile();
|
|
246
|
+
*/
|
|
247
|
+
interface ProfileFrame {
|
|
248
|
+
name: string;
|
|
249
|
+
duration_ms: number;
|
|
250
|
+
start_ms: number;
|
|
251
|
+
children: ProfileFrame[];
|
|
252
|
+
metadata?: Record<string, unknown>;
|
|
253
|
+
}
|
|
254
|
+
interface ProfileData {
|
|
255
|
+
id: string;
|
|
256
|
+
name: string;
|
|
257
|
+
startTime: number;
|
|
258
|
+
duration_ms: number;
|
|
259
|
+
frames: ProfileFrame[];
|
|
260
|
+
metadata?: Record<string, unknown>;
|
|
261
|
+
}
|
|
262
|
+
interface ProfilerConfig {
|
|
263
|
+
apiKey: string;
|
|
264
|
+
endpoint: string;
|
|
265
|
+
debug?: boolean;
|
|
266
|
+
/** Sample rate for profiling (0-1, default 0.1 = 10%) */
|
|
267
|
+
sampleRate?: number;
|
|
268
|
+
/** Maximum profile duration in ms (default 30000) */
|
|
269
|
+
maxDuration?: number;
|
|
270
|
+
/** Flush interval for sending profiles (default 30000) */
|
|
271
|
+
flushInterval?: number;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Remote Config Types
|
|
276
|
+
*
|
|
277
|
+
* Configuration fetched from SitePong servers to control SDK behavior
|
|
278
|
+
* without requiring npm updates.
|
|
279
|
+
*/
|
|
280
|
+
interface RemoteConfigFeatures {
|
|
281
|
+
/** Per-feature on/off toggles */
|
|
282
|
+
[key: string]: boolean;
|
|
283
|
+
}
|
|
284
|
+
interface RemoteConfigSampling {
|
|
285
|
+
/** Error sampling rate (0-1) */
|
|
286
|
+
errors?: number;
|
|
287
|
+
/** Analytics sampling rate (0-1) */
|
|
288
|
+
analytics?: number;
|
|
289
|
+
/** Replay sampling rate (0-1) */
|
|
290
|
+
replay?: number;
|
|
291
|
+
/** Performance sampling rate (0-1) */
|
|
292
|
+
performance?: number;
|
|
293
|
+
}
|
|
294
|
+
interface RemoteConfigTransport {
|
|
295
|
+
/** Flush interval in ms */
|
|
296
|
+
flushInterval?: number;
|
|
297
|
+
/** Max batch size */
|
|
298
|
+
maxBatchSize?: number;
|
|
299
|
+
/** Max retry attempts */
|
|
300
|
+
maxRetries?: number;
|
|
301
|
+
}
|
|
302
|
+
interface RemoteConfigAutocapture {
|
|
303
|
+
/** Enable click autocapture */
|
|
304
|
+
clicks?: boolean;
|
|
305
|
+
/** Enable form autocapture */
|
|
306
|
+
forms?: boolean;
|
|
307
|
+
/** Enable pageview autocapture */
|
|
308
|
+
pageviews?: boolean;
|
|
309
|
+
/** Enable RN app state tracking */
|
|
310
|
+
appState?: boolean;
|
|
311
|
+
/** Enable RN screen view tracking */
|
|
312
|
+
screenViews?: boolean;
|
|
313
|
+
}
|
|
314
|
+
interface RemoteConfig {
|
|
315
|
+
/** Feature toggles */
|
|
316
|
+
features: RemoteConfigFeatures;
|
|
317
|
+
/** Sampling rates */
|
|
318
|
+
sampling: RemoteConfigSampling;
|
|
319
|
+
/** Transport settings */
|
|
320
|
+
transport: RemoteConfigTransport;
|
|
321
|
+
/** Autocapture rules per platform */
|
|
322
|
+
autocapture: RemoteConfigAutocapture;
|
|
323
|
+
/** TTL in seconds before refetch */
|
|
324
|
+
ttl: number;
|
|
325
|
+
/** Minimum SDK version required (semver) */
|
|
326
|
+
minSdkVersion?: string;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Platform-agnostic storage interface
|
|
331
|
+
*/
|
|
332
|
+
interface StorageAdapter {
|
|
333
|
+
getItem(key: string): Promise<string | null>;
|
|
334
|
+
setItem(key: string, value: string): Promise<void>;
|
|
335
|
+
removeItem(key: string): Promise<void>;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Anonymous ID Management
|
|
340
|
+
* Generates and persists a unique ID for consistent flag evaluation
|
|
341
|
+
*/
|
|
342
|
+
declare function getAnonymousId(): string;
|
|
343
|
+
/**
|
|
344
|
+
* Clear the anonymous ID
|
|
345
|
+
* Useful for testing or when user wants to reset their identity
|
|
346
|
+
*/
|
|
347
|
+
declare function clearAnonymousId(): void;
|
|
348
|
+
/**
|
|
349
|
+
* Set a custom anonymous ID
|
|
350
|
+
* Useful when you want to use your own user identifier
|
|
351
|
+
*/
|
|
352
|
+
declare function setAnonymousId(id: string): void;
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* Database Query Tracking SDK Module
|
|
356
|
+
*
|
|
357
|
+
* Usage (Node.js):
|
|
358
|
+
* import { dbTracker } from '@sitepong/sdk';
|
|
359
|
+
*
|
|
360
|
+
* // Wrap a database query
|
|
361
|
+
* const result = await dbTracker.track('SELECT * FROM users WHERE id = ?', async () => {
|
|
362
|
+
* return await db.query('SELECT * FROM users WHERE id = ?', [userId]);
|
|
363
|
+
* });
|
|
364
|
+
*
|
|
365
|
+
* // Integration with ORMs
|
|
366
|
+
* dbTracker.patchKnex(knex); // Auto-tracks all Knex queries
|
|
367
|
+
*/
|
|
368
|
+
interface DatabaseQueryEvent {
|
|
369
|
+
query: string;
|
|
370
|
+
duration_ms: number;
|
|
371
|
+
timestamp: string;
|
|
372
|
+
source?: string;
|
|
373
|
+
rows_affected?: number;
|
|
374
|
+
error?: string;
|
|
375
|
+
is_slow?: boolean;
|
|
376
|
+
}
|
|
377
|
+
interface DatabaseTrackerConfig {
|
|
378
|
+
apiKey: string;
|
|
379
|
+
endpoint: string;
|
|
380
|
+
debug?: boolean;
|
|
381
|
+
slowQueryThreshold?: number;
|
|
382
|
+
maxBatchSize?: number;
|
|
383
|
+
flushInterval?: number;
|
|
384
|
+
/** Redact query parameters for security */
|
|
385
|
+
redactParams?: boolean;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
interface SitePongConfig {
|
|
389
|
+
apiKey: string;
|
|
390
|
+
endpoint?: string;
|
|
391
|
+
environment?: string;
|
|
392
|
+
release?: string;
|
|
393
|
+
autoCapture?: boolean;
|
|
394
|
+
maxBatchSize?: number;
|
|
395
|
+
flushInterval?: number;
|
|
396
|
+
debug?: boolean;
|
|
397
|
+
}
|
|
398
|
+
interface ErrorContext {
|
|
399
|
+
user?: {
|
|
400
|
+
id?: string;
|
|
401
|
+
email?: string;
|
|
402
|
+
[key: string]: unknown;
|
|
403
|
+
};
|
|
404
|
+
tags?: Record<string, string>;
|
|
405
|
+
extra?: Record<string, unknown>;
|
|
406
|
+
}
|
|
407
|
+
interface CapturedError {
|
|
408
|
+
message: string;
|
|
409
|
+
stack?: string;
|
|
410
|
+
type: string;
|
|
411
|
+
timestamp: string;
|
|
412
|
+
url?: string;
|
|
413
|
+
userAgent?: string;
|
|
414
|
+
environment?: string;
|
|
415
|
+
release?: string;
|
|
416
|
+
context?: ErrorContext;
|
|
417
|
+
fingerprint?: string;
|
|
418
|
+
/** Replay session ID if session recording is active */
|
|
419
|
+
replaySessionId?: string;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
interface SitePongInitConfig extends SitePongConfig {
|
|
423
|
+
/** Enable feature flags (default: false) */
|
|
424
|
+
enableFlags?: boolean;
|
|
425
|
+
/** Custom endpoint for flags API (default: uses main endpoint) */
|
|
426
|
+
flagsEndpoint?: string;
|
|
427
|
+
/** Analytics configuration */
|
|
428
|
+
analytics?: {
|
|
429
|
+
enabled?: boolean;
|
|
430
|
+
autocapturePageviews?: boolean;
|
|
431
|
+
autocaptureClicks?: boolean;
|
|
432
|
+
autocaptureForms?: boolean;
|
|
433
|
+
/** Full autocapture configuration (overrides individual autocapture flags) */
|
|
434
|
+
autocapture?: {
|
|
435
|
+
clicks?: boolean;
|
|
436
|
+
forms?: boolean;
|
|
437
|
+
pageviews?: boolean;
|
|
438
|
+
blockSelectors?: string[];
|
|
439
|
+
allowSelectors?: string[];
|
|
440
|
+
} | boolean;
|
|
441
|
+
maxBatchSize?: number;
|
|
442
|
+
flushInterval?: number;
|
|
443
|
+
eventsEndpoint?: string;
|
|
444
|
+
};
|
|
445
|
+
/** Fingerprint / device intelligence configuration */
|
|
446
|
+
fingerprint?: {
|
|
447
|
+
enabled?: boolean;
|
|
448
|
+
extendedSignals?: boolean;
|
|
449
|
+
visitorEndpoint?: string;
|
|
450
|
+
};
|
|
451
|
+
/** Performance monitoring configuration */
|
|
452
|
+
performance?: {
|
|
453
|
+
enabled?: boolean;
|
|
454
|
+
webVitals?: boolean;
|
|
455
|
+
navigationTiming?: boolean;
|
|
456
|
+
resourceTiming?: boolean;
|
|
457
|
+
sampleRate?: number;
|
|
458
|
+
flushInterval?: number;
|
|
459
|
+
performanceEndpoint?: string;
|
|
460
|
+
};
|
|
461
|
+
/** Session replay configuration — records a rolling buffer and only sends on error */
|
|
462
|
+
replay?: {
|
|
463
|
+
enabled?: boolean;
|
|
464
|
+
maskInputs?: boolean;
|
|
465
|
+
blockSelector?: string;
|
|
466
|
+
maskSelector?: string;
|
|
467
|
+
sampleRate?: number;
|
|
468
|
+
maxSessionDuration?: number;
|
|
469
|
+
flushInterval?: number;
|
|
470
|
+
replayEndpoint?: string;
|
|
471
|
+
/** Record network requests (XHR/fetch) in the replay timeline */
|
|
472
|
+
recordNetwork?: boolean;
|
|
473
|
+
/** Include request/response headers in network recording */
|
|
474
|
+
captureNetworkHeaders?: boolean;
|
|
475
|
+
/** Record console logs in the replay timeline */
|
|
476
|
+
recordConsole?: boolean;
|
|
477
|
+
/** Which console levels to record (default: all) */
|
|
478
|
+
consoleLevels?: Array<'log' | 'info' | 'warn' | 'error' | 'debug'>;
|
|
479
|
+
/** Rolling buffer duration in ms — how many seconds of replay to keep before an error (default: 20000) */
|
|
480
|
+
bufferDuration?: number;
|
|
481
|
+
};
|
|
482
|
+
/** Cron monitoring configuration */
|
|
483
|
+
crons?: {
|
|
484
|
+
enabled?: boolean;
|
|
485
|
+
};
|
|
486
|
+
/** Custom metrics configuration */
|
|
487
|
+
metrics?: {
|
|
488
|
+
enabled?: boolean;
|
|
489
|
+
flushInterval?: number;
|
|
490
|
+
maxBatchSize?: number;
|
|
491
|
+
};
|
|
492
|
+
/** Database query tracking configuration */
|
|
493
|
+
database?: {
|
|
494
|
+
enabled?: boolean;
|
|
495
|
+
slowQueryThreshold?: number;
|
|
496
|
+
redactParams?: boolean;
|
|
497
|
+
};
|
|
498
|
+
/** Production profiling configuration */
|
|
499
|
+
profiling?: {
|
|
500
|
+
enabled?: boolean;
|
|
501
|
+
sampleRate?: number;
|
|
502
|
+
maxDuration?: number;
|
|
503
|
+
flushInterval?: number;
|
|
504
|
+
};
|
|
505
|
+
/** Remote config options */
|
|
506
|
+
remoteConfig?: {
|
|
507
|
+
enabled?: boolean;
|
|
508
|
+
};
|
|
509
|
+
/** Storage adapter for caching (auto-detected if not provided) */
|
|
510
|
+
_storageAdapter?: StorageAdapter;
|
|
511
|
+
}
|
|
512
|
+
declare class SitePongClient {
|
|
513
|
+
private config;
|
|
514
|
+
private errorQueue;
|
|
515
|
+
private flushTimer;
|
|
516
|
+
private context;
|
|
517
|
+
private initialized;
|
|
518
|
+
private flushFailures;
|
|
519
|
+
private disabled;
|
|
520
|
+
private flagManager;
|
|
521
|
+
private analyticsManager;
|
|
522
|
+
private fingerprintManager;
|
|
523
|
+
private replayManager;
|
|
524
|
+
private performanceManager;
|
|
525
|
+
private cronManager;
|
|
526
|
+
private metricsManager;
|
|
527
|
+
private databaseTracker;
|
|
528
|
+
private profiler;
|
|
529
|
+
private remoteConfigManager;
|
|
530
|
+
constructor();
|
|
531
|
+
init(config: SitePongInitConfig): void;
|
|
532
|
+
/**
|
|
533
|
+
* Initialize SDK for React Native — only starts platform-agnostic subsystems.
|
|
534
|
+
* Skips: FingerprintManager, ReplayManager, PerformanceManager, browser autocapture,
|
|
535
|
+
* window event listeners (beforeunload, visibilitychange).
|
|
536
|
+
*/
|
|
537
|
+
initRN(config: SitePongInitConfig): void;
|
|
538
|
+
/**
|
|
539
|
+
* Check if the SDK is initialized
|
|
540
|
+
*/
|
|
541
|
+
isInitialized(): boolean;
|
|
542
|
+
/**
|
|
543
|
+
* Get a feature flag value
|
|
544
|
+
* Returns the cached evaluated result or default value
|
|
545
|
+
*/
|
|
546
|
+
getFlag(key: string, defaultValue?: boolean): boolean;
|
|
547
|
+
/**
|
|
548
|
+
* Get all feature flag values
|
|
549
|
+
*/
|
|
550
|
+
getAllFlags(): Record<string, boolean>;
|
|
551
|
+
/**
|
|
552
|
+
* Wait for flags to be initialized
|
|
553
|
+
*/
|
|
554
|
+
waitForFlags(): Promise<void>;
|
|
555
|
+
/**
|
|
556
|
+
* Check if flags are ready
|
|
557
|
+
*/
|
|
558
|
+
areFlagsReady(): boolean;
|
|
559
|
+
/**
|
|
560
|
+
* Get a multivariate flag variant
|
|
561
|
+
* Returns the assigned variant key or the default value
|
|
562
|
+
*/
|
|
563
|
+
getVariant(key: string, defaultValue?: string | null): string | null;
|
|
564
|
+
/**
|
|
565
|
+
* Get the payload for a multivariate flag's assigned variant
|
|
566
|
+
*/
|
|
567
|
+
getVariantPayload<T = unknown>(key: string, defaultValue?: T | null): T | null;
|
|
568
|
+
/**
|
|
569
|
+
* Force refresh flags from the server
|
|
570
|
+
*/
|
|
571
|
+
refreshFlags(): Promise<void>;
|
|
572
|
+
track(eventName: string, properties?: TrackProperties): void;
|
|
573
|
+
trackPageView(url?: string, properties?: TrackProperties): void;
|
|
574
|
+
identify(userId: string, traits?: UserTraits): void;
|
|
575
|
+
group(groupId: string, traits?: GroupTraits): void;
|
|
576
|
+
resetAnalytics(): void;
|
|
577
|
+
getVisitorId(): Promise<VisitorIdResult>;
|
|
578
|
+
getDeviceSignals(): Promise<DeviceSignals>;
|
|
579
|
+
getFraudCheck(): Promise<FraudCheckResult>;
|
|
580
|
+
startReplay(): boolean;
|
|
581
|
+
stopReplay(): void;
|
|
582
|
+
isReplayRecording(): boolean;
|
|
583
|
+
getReplaySessionId(): string | null;
|
|
584
|
+
startTransaction(name: string, data?: Record<string, unknown>): string;
|
|
585
|
+
endTransaction(id: string, status?: 'ok' | 'error'): void;
|
|
586
|
+
startSpan(transactionId: string, name: string, data?: Record<string, unknown>): string;
|
|
587
|
+
endSpan(transactionId: string, spanId: string, status?: 'ok' | 'error'): void;
|
|
588
|
+
getWebVitals(): WebVitals;
|
|
589
|
+
cronCheckin(slug: string, options?: CronCheckinOptions): Promise<void>;
|
|
590
|
+
cronStart(slug: string, environment?: string): CronHandle;
|
|
591
|
+
cronWrap<T>(slug: string, fn: () => Promise<T>, environment?: string): Promise<T>;
|
|
592
|
+
metricIncrement(name: string, value?: number, options?: MetricOptions): void;
|
|
593
|
+
metricGauge(name: string, value: number, options?: MetricOptions): void;
|
|
594
|
+
metricHistogram(name: string, value: number, options?: MetricOptions): void;
|
|
595
|
+
metricDistribution(name: string, value: number, options?: MetricOptions): void;
|
|
596
|
+
metricTime<T>(name: string, fn: () => Promise<T>, options?: MetricOptions): Promise<T>;
|
|
597
|
+
metricStartTimer(name: string, options?: MetricOptions): {
|
|
598
|
+
stop: () => void;
|
|
599
|
+
};
|
|
600
|
+
flushMetrics(): Promise<void>;
|
|
601
|
+
dbTrack<T>(query: string, fn: () => Promise<T>, source?: string): Promise<T>;
|
|
602
|
+
dbTrackSync<T>(query: string, fn: () => T, source?: string): T;
|
|
603
|
+
getDbQueryCount(): number;
|
|
604
|
+
resetDbQueryCount(): void;
|
|
605
|
+
getDbNPlusOnePatterns(): Array<{
|
|
606
|
+
query: string;
|
|
607
|
+
count: number;
|
|
608
|
+
}>;
|
|
609
|
+
profile<T>(name: string, fn: () => Promise<T>, metadata?: Record<string, unknown>): Promise<T>;
|
|
610
|
+
startProfileSpan(name: string, metadata?: Record<string, unknown>): () => void;
|
|
611
|
+
getProfiles(): ProfileData[];
|
|
612
|
+
getLatestProfile(): ProfileData | null;
|
|
613
|
+
flushProfiles(): Promise<void>;
|
|
614
|
+
getRemoteConfig(): RemoteConfig | null;
|
|
615
|
+
isRemoteConfigFeatureEnabled(key: string, defaultValue?: boolean): boolean;
|
|
616
|
+
onRemoteConfigChange(listener: (config: RemoteConfig) => void): () => void;
|
|
617
|
+
setContext(context: ErrorContext): void;
|
|
618
|
+
setUser(user: ErrorContext['user']): void;
|
|
619
|
+
setTags(tags: Record<string, string>): void;
|
|
620
|
+
clearUser(): void;
|
|
621
|
+
addBreadcrumb(breadcrumb: {
|
|
622
|
+
type?: 'default' | 'http' | 'navigation' | 'ui' | 'console' | 'error';
|
|
623
|
+
category?: string;
|
|
624
|
+
message?: string;
|
|
625
|
+
level?: 'fatal' | 'error' | 'warning' | 'info' | 'debug';
|
|
626
|
+
data?: Record<string, unknown>;
|
|
627
|
+
}): void;
|
|
628
|
+
captureError(error: Error | string, additionalContext?: ErrorContext): void;
|
|
629
|
+
captureMessage(message: string, level?: 'info' | 'warning' | 'error', additionalContext?: ErrorContext): void;
|
|
630
|
+
flush(): Promise<void>;
|
|
631
|
+
private formatError;
|
|
632
|
+
/**
|
|
633
|
+
* Generate a fingerprint matching the server-side algorithm.
|
|
634
|
+
* Groups by: error type + normalized message + top stack frame.
|
|
635
|
+
*/
|
|
636
|
+
private generateFingerprint;
|
|
637
|
+
private normalizeMessage;
|
|
638
|
+
private extractTopFrame;
|
|
639
|
+
private setupAutoCapture;
|
|
640
|
+
private startFlushTimer;
|
|
641
|
+
private flushWithBeacon;
|
|
642
|
+
private getUrl;
|
|
643
|
+
private getUserAgent;
|
|
644
|
+
private log;
|
|
645
|
+
}
|
|
646
|
+
declare const sitepong: SitePongClient;
|
|
647
|
+
declare const init: (config: SitePongInitConfig) => void;
|
|
648
|
+
declare const initRN: (config: SitePongInitConfig) => void;
|
|
649
|
+
declare const captureError: (error: Error | string, additionalContext?: ErrorContext) => void;
|
|
650
|
+
declare const captureMessage: (message: string, level?: "info" | "warning" | "error", additionalContext?: ErrorContext) => void;
|
|
651
|
+
declare const setContext: (context: ErrorContext) => void;
|
|
652
|
+
declare const setUser: (user: ErrorContext["user"]) => void;
|
|
653
|
+
declare const setTags: (tags: Record<string, string>) => void;
|
|
654
|
+
declare const flush: () => Promise<void>;
|
|
655
|
+
declare const isInitialized: () => boolean;
|
|
656
|
+
declare const clearUser: () => void;
|
|
657
|
+
declare const addBreadcrumb: (breadcrumb: {
|
|
658
|
+
type?: "default" | "http" | "navigation" | "ui" | "console" | "error";
|
|
659
|
+
category?: string;
|
|
660
|
+
message?: string;
|
|
661
|
+
level?: "fatal" | "error" | "warning" | "info" | "debug";
|
|
662
|
+
data?: Record<string, unknown>;
|
|
663
|
+
}) => void;
|
|
664
|
+
|
|
665
|
+
declare const getFlag: (key: string, defaultValue?: boolean) => boolean;
|
|
666
|
+
declare const getAllFlags: () => Record<string, boolean>;
|
|
667
|
+
declare const getVariant: (key: string, defaultValue?: string | null) => string | null;
|
|
668
|
+
declare const getVariantPayload: <T = unknown>(key: string, defaultValue?: T | null) => T | null;
|
|
669
|
+
declare const waitForFlags: () => Promise<void>;
|
|
670
|
+
declare const areFlagsReady: () => boolean;
|
|
671
|
+
declare const refreshFlags: () => Promise<void>;
|
|
672
|
+
declare const track: (eventName: string, properties?: TrackProperties) => void;
|
|
673
|
+
declare const trackPageView: (url?: string, properties?: TrackProperties) => void;
|
|
674
|
+
declare const identify: (userId: string, traits?: UserTraits) => void;
|
|
675
|
+
declare const group: (groupId: string, traits?: GroupTraits) => void;
|
|
676
|
+
declare const resetAnalytics: () => void;
|
|
677
|
+
declare const getVisitorId: () => Promise<VisitorIdResult>;
|
|
678
|
+
declare const getDeviceSignals: () => Promise<DeviceSignals>;
|
|
679
|
+
declare const getFraudCheck: () => Promise<FraudCheckResult>;
|
|
680
|
+
declare const startReplay: () => boolean;
|
|
681
|
+
declare const stopReplay: () => void;
|
|
682
|
+
declare const isReplayRecording: () => boolean;
|
|
683
|
+
declare const getReplaySessionId: () => string | null;
|
|
684
|
+
declare const startTransaction: (name: string, data?: Record<string, unknown>) => string;
|
|
685
|
+
declare const endTransaction: (id: string, status?: "ok" | "error") => void;
|
|
686
|
+
declare const startSpan: (transactionId: string, name: string, data?: Record<string, unknown>) => string;
|
|
687
|
+
declare const endSpan: (transactionId: string, spanId: string, status?: "ok" | "error") => void;
|
|
688
|
+
declare const getWebVitals: () => WebVitals;
|
|
689
|
+
declare const dbTrack: <T>(query: string, fn: () => Promise<T>, source?: string) => Promise<T>;
|
|
690
|
+
declare const dbTrackSync: <T>(query: string, fn: () => T, source?: string) => T;
|
|
691
|
+
declare const getDbQueryCount: () => number;
|
|
692
|
+
declare const resetDbQueryCount: () => void;
|
|
693
|
+
declare const getDbNPlusOnePatterns: () => Array<{
|
|
694
|
+
query: string;
|
|
695
|
+
count: number;
|
|
696
|
+
}>;
|
|
697
|
+
declare const cronCheckin: (slug: string, options?: CronCheckinOptions) => Promise<void>;
|
|
698
|
+
declare const cronStart: (slug: string, environment?: string) => CronHandle;
|
|
699
|
+
declare const cronWrap: <T>(slug: string, fn: () => Promise<T>, environment?: string) => Promise<T>;
|
|
700
|
+
declare const metricIncrement: (name: string, value?: number, options?: MetricOptions) => void;
|
|
701
|
+
declare const metricGauge: (name: string, value: number, options?: MetricOptions) => void;
|
|
702
|
+
declare const metricHistogram: (name: string, value: number, options?: MetricOptions) => void;
|
|
703
|
+
declare const metricDistribution: (name: string, value: number, options?: MetricOptions) => void;
|
|
704
|
+
declare const metricTime: <T>(name: string, fn: () => Promise<T>, options?: MetricOptions) => Promise<T>;
|
|
705
|
+
declare const metricStartTimer: (name: string, options?: MetricOptions) => {
|
|
706
|
+
stop: () => void;
|
|
707
|
+
};
|
|
708
|
+
declare const flushMetrics: () => Promise<void>;
|
|
709
|
+
declare const profile: <T>(name: string, fn: () => Promise<T>, metadata?: Record<string, unknown>) => Promise<T>;
|
|
710
|
+
declare const startProfileSpan: (name: string, metadata?: Record<string, unknown>) => () => void;
|
|
711
|
+
declare const getProfiles: () => ProfileData[];
|
|
712
|
+
declare const getLatestProfile: () => ProfileData | null;
|
|
713
|
+
declare const flushProfiles: () => Promise<void>;
|
|
714
|
+
declare const getRemoteConfig: () => RemoteConfig | null;
|
|
715
|
+
declare const isRemoteConfigFeatureEnabled: (key: string, defaultValue?: boolean) => boolean;
|
|
716
|
+
declare const onRemoteConfigChange: (listener: (config: RemoteConfig) => void) => () => void;
|
|
717
|
+
|
|
718
|
+
export { type CapturedError, type CronCheckinOptions, type CronHandle, type DatabaseQueryEvent, type DatabaseTrackerConfig, type DeviceSignals, type ErrorContext, type FraudCheckResult, GroupTraits, type MetricOptions, type PerformanceConfig, type PerformanceSpan, type PerformanceTransaction, type ProfileData, type ProfileFrame, type ProfilerConfig, type RemoteConfig, type RemoteConfigFeatures, type RemoteConfigSampling, type SitePongConfig, type SitePongInitConfig, type TraceContext, TracePropagator, TrackProperties, UserTraits, type VisitorIdResult, type WebVitals, addBreadcrumb, areFlagsReady, captureError, captureMessage, clearAnonymousId, clearUser, sitepong as client, createTraceContext, cronCheckin, cronStart, cronWrap, dbTrack, dbTrackSync, sitepong as default, endSpan, endTransaction, extractTrace, flush, flushMetrics, flushProfiles, generateSpanId, generateTraceId, getAllFlags, getAnonymousId, getDbNPlusOnePatterns, getDbQueryCount, getDeviceSignals, getFlag, getFraudCheck, getLatestProfile, getProfiles, getRemoteConfig, getReplaySessionId, getVariant, getVariantPayload, getVisitorId, getWebVitals, group, identify, init, initRN, isInitialized, isRemoteConfigFeatureEnabled, isReplayRecording, metricDistribution, metricGauge, metricHistogram, metricIncrement, metricStartTimer, metricTime, onRemoteConfigChange, profile, propagateTrace, refreshFlags, resetAnalytics, resetDbQueryCount, setAnonymousId, setContext, setTags, setUser, startProfileSpan, startReplay, startSpan, startTransaction, stopReplay, track, trackPageView, waitForFlags };
|