@goliapkg/sentori-react-native 3.1.0 → 5.0.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.
- package/android/build.gradle +21 -0
- package/android/src/main/java/com/sentori/SentoriCrashHandler.kt +29 -0
- package/android/src/test/java/com/sentori/SentoriCrashHandlerTest.kt +7 -2
- package/android/src/test/resources/robolectric.properties +10 -0
- package/lib/config.d.ts +16 -47
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +3 -0
- package/lib/config.js.map +1 -1
- package/lib/device.d.ts +5 -0
- package/lib/device.d.ts.map +1 -0
- package/lib/device.js +29 -0
- package/lib/device.js.map +1 -0
- package/lib/emit-hooks.d.ts +7 -0
- package/lib/emit-hooks.d.ts.map +1 -0
- package/lib/emit-hooks.js +24 -0
- package/lib/emit-hooks.js.map +1 -0
- package/lib/error-boundary.d.ts.map +1 -1
- package/lib/error-boundary.js +1 -1
- package/lib/error-boundary.js.map +1 -1
- package/lib/feature-flags.d.ts.map +1 -1
- package/lib/handlers/dev-symbolicate.d.ts +1 -1
- package/lib/handlers/dev-symbolicate.d.ts.map +1 -1
- package/lib/handlers/dev-symbolicate.js +2 -0
- package/lib/handlers/dev-symbolicate.js.map +1 -1
- package/lib/handlers/global.js +1 -1
- package/lib/handlers/global.js.map +1 -1
- package/lib/handlers/lifecycle.js +3 -3
- package/lib/handlers/lifecycle.js.map +1 -1
- package/lib/handlers/network.d.ts +2 -2
- package/lib/handlers/network.d.ts.map +1 -1
- package/lib/handlers/network.js +69 -187
- package/lib/handlers/network.js.map +1 -1
- package/lib/handlers/promise.js +1 -1
- package/lib/handlers/promise.js.map +1 -1
- package/lib/handlers/screenshot.d.ts.map +1 -1
- package/lib/handlers/screenshot.js +3 -12
- package/lib/handlers/screenshot.js.map +1 -1
- package/lib/index.d.ts +31 -109
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +51 -103
- package/lib/index.js.map +1 -1
- package/lib/init.d.ts +3 -150
- package/lib/init.d.ts.map +1 -1
- package/lib/init.js +88 -261
- package/lib/init.js.map +1 -1
- package/lib/long-task-monitor.d.ts +1 -7
- package/lib/long-task-monitor.d.ts.map +1 -1
- package/lib/long-task-monitor.js +37 -58
- package/lib/long-task-monitor.js.map +1 -1
- package/lib/mobile-vitals.d.ts +3 -31
- package/lib/mobile-vitals.d.ts.map +1 -1
- package/lib/mobile-vitals.js +22 -61
- package/lib/mobile-vitals.js.map +1 -1
- package/lib/native-pending.d.ts +3 -0
- package/lib/native-pending.d.ts.map +1 -0
- package/lib/native-pending.js +64 -0
- package/lib/native-pending.js.map +1 -0
- package/lib/navigation.d.ts +3 -17
- package/lib/navigation.d.ts.map +1 -1
- package/lib/navigation.js +32 -133
- package/lib/navigation.js.map +1 -1
- package/lib/netinfo.d.ts +1 -1
- package/lib/netinfo.d.ts.map +1 -1
- package/lib/netinfo.js +2 -2
- package/lib/netinfo.js.map +1 -1
- package/lib/push.d.ts.map +1 -1
- package/lib/push.js +2 -4
- package/lib/push.js.map +1 -1
- package/lib/rage-tap.d.ts.map +1 -1
- package/lib/rage-tap.js +28 -23
- package/lib/rage-tap.js.map +1 -1
- package/lib/replay.d.ts.map +1 -1
- package/lib/replay.js +3 -24
- package/lib/replay.js.map +1 -1
- package/lib/scope.d.ts +7 -0
- package/lib/scope.d.ts.map +1 -0
- package/lib/scope.js +41 -0
- package/lib/scope.js.map +1 -0
- package/lib/transport.d.ts +19 -92
- package/lib/transport.d.ts.map +1 -1
- package/lib/transport.js +75 -288
- package/lib/transport.js.map +1 -1
- package/lib/verbs.d.ts +16 -0
- package/lib/verbs.d.ts.map +1 -0
- package/lib/verbs.js +153 -0
- package/lib/verbs.js.map +1 -0
- package/package.json +5 -5
- package/src/__tests__/iron-rule.test.ts +128 -0
- package/src/__tests__/screenshot.test.ts +0 -2
- package/src/__tests__/transport.test.ts +66 -213
- package/src/__tests__/verbs.test.ts +91 -0
- package/src/config.ts +19 -47
- package/src/device.ts +36 -0
- package/src/emit-hooks.ts +30 -0
- package/src/error-boundary.tsx +1 -1
- package/src/handlers/dev-symbolicate.ts +2 -1
- package/src/handlers/global.ts +1 -1
- package/src/handlers/lifecycle.ts +3 -3
- package/src/handlers/network.ts +95 -211
- package/src/handlers/promise.ts +1 -1
- package/src/handlers/screenshot.ts +3 -11
- package/src/index.ts +81 -215
- package/src/init.ts +94 -446
- package/src/long-task-monitor.ts +42 -64
- package/src/mobile-vitals.ts +22 -82
- package/src/native-pending.ts +92 -0
- package/src/navigation.ts +34 -142
- package/src/netinfo.ts +3 -3
- package/src/push.ts +2 -5
- package/src/rage-tap.tsx +29 -26
- package/src/replay.ts +3 -20
- package/src/scope.ts +50 -0
- package/src/transport.ts +84 -371
- package/src/verbs.ts +198 -0
- package/lib/breadcrumbs.d.ts +0 -18
- package/lib/breadcrumbs.d.ts.map +0 -1
- package/lib/breadcrumbs.js +0 -42
- package/lib/breadcrumbs.js.map +0 -1
- package/lib/bundle-info.d.ts +0 -12
- package/lib/bundle-info.d.ts.map +0 -1
- package/lib/bundle-info.js +0 -73
- package/lib/bundle-info.js.map +0 -1
- package/lib/capture.d.ts +0 -140
- package/lib/capture.d.ts.map +0 -1
- package/lib/capture.js +0 -511
- package/lib/capture.js.map +0 -1
- package/lib/compat/sentry.d.ts +0 -126
- package/lib/compat/sentry.d.ts.map +0 -1
- package/lib/compat/sentry.js +0 -332
- package/lib/compat/sentry.js.map +0 -1
- package/lib/control-channel.d.ts +0 -6
- package/lib/control-channel.d.ts.map +0 -1
- package/lib/control-channel.js +0 -96
- package/lib/control-channel.js.map +0 -1
- package/lib/expo-compat.d.ts +0 -270
- package/lib/expo-compat.d.ts.map +0 -1
- package/lib/expo-compat.js +0 -500
- package/lib/expo-compat.js.map +0 -1
- package/lib/feedback-widget.d.ts +0 -35
- package/lib/feedback-widget.d.ts.map +0 -1
- package/lib/feedback-widget.js +0 -193
- package/lib/feedback-widget.js.map +0 -1
- package/lib/feedback.d.ts +0 -2
- package/lib/feedback.d.ts.map +0 -1
- package/lib/feedback.js +0 -17
- package/lib/feedback.js.map +0 -1
- package/lib/heartbeat.d.ts +0 -9
- package/lib/heartbeat.d.ts.map +0 -1
- package/lib/heartbeat.js +0 -138
- package/lib/heartbeat.js.map +0 -1
- package/lib/index.js.bak +0 -64
- package/lib/install-id.d.ts +0 -17
- package/lib/install-id.d.ts.map +0 -1
- package/lib/install-id.js +0 -125
- package/lib/install-id.js.map +0 -1
- package/lib/lifecycle.d.ts +0 -28
- package/lib/lifecycle.d.ts.map +0 -1
- package/lib/lifecycle.js +0 -73
- package/lib/lifecycle.js.map +0 -1
- package/lib/mask.d.ts +0 -16
- package/lib/mask.d.ts.map +0 -1
- package/lib/mask.js +0 -36
- package/lib/mask.js.map +0 -1
- package/lib/measure.d.ts +0 -4
- package/lib/measure.d.ts.map +0 -1
- package/lib/measure.js +0 -25
- package/lib/measure.js.map +0 -1
- package/lib/metrics.d.ts +0 -24
- package/lib/metrics.d.ts.map +0 -1
- package/lib/metrics.js +0 -81
- package/lib/metrics.js.map +0 -1
- package/lib/pre-crash-sentinel.d.ts +0 -12
- package/lib/pre-crash-sentinel.d.ts.map +0 -1
- package/lib/pre-crash-sentinel.js +0 -116
- package/lib/pre-crash-sentinel.js.map +0 -1
- package/lib/report-security.d.ts +0 -40
- package/lib/report-security.d.ts.map +0 -1
- package/lib/report-security.js +0 -159
- package/lib/report-security.js.map +0 -1
- package/lib/runtime-metrics-fps.d.ts +0 -19
- package/lib/runtime-metrics-fps.d.ts.map +0 -1
- package/lib/runtime-metrics-fps.js +0 -128
- package/lib/runtime-metrics-fps.js.map +0 -1
- package/lib/runtime-metrics-heap.d.ts +0 -13
- package/lib/runtime-metrics-heap.d.ts.map +0 -1
- package/lib/runtime-metrics-heap.js +0 -67
- package/lib/runtime-metrics-heap.js.map +0 -1
- package/lib/runtime-metrics-network.d.ts +0 -23
- package/lib/runtime-metrics-network.d.ts.map +0 -1
- package/lib/runtime-metrics-network.js +0 -99
- package/lib/runtime-metrics-network.js.map +0 -1
- package/lib/runtime-metrics.d.ts +0 -43
- package/lib/runtime-metrics.d.ts.map +0 -1
- package/lib/runtime-metrics.js +0 -115
- package/lib/runtime-metrics.js.map +0 -1
- package/lib/sample-profiler.d.ts +0 -21
- package/lib/sample-profiler.d.ts.map +0 -1
- package/lib/sample-profiler.js +0 -152
- package/lib/sample-profiler.js.map +0 -1
- package/lib/sentinel-context.d.ts +0 -4
- package/lib/sentinel-context.d.ts.map +0 -1
- package/lib/sentinel-context.js +0 -52
- package/lib/sentinel-context.js.map +0 -1
- package/lib/session-tracker.d.ts +0 -6
- package/lib/session-tracker.d.ts.map +0 -1
- package/lib/session-tracker.js +0 -50
- package/lib/session-tracker.js.map +0 -1
- package/lib/stack.d.ts +0 -3
- package/lib/stack.d.ts.map +0 -1
- package/lib/stack.js +0 -7
- package/lib/stack.js.map +0 -1
- package/lib/state-snapshots.d.ts +0 -33
- package/lib/state-snapshots.d.ts.map +0 -1
- package/lib/state-snapshots.js +0 -109
- package/lib/state-snapshots.js.map +0 -1
- package/lib/track.d.ts +0 -34
- package/lib/track.d.ts.map +0 -1
- package/lib/track.js +0 -107
- package/lib/track.js.map +0 -1
- package/lib/trail.d.ts +0 -12
- package/lib/trail.d.ts.map +0 -1
- package/lib/trail.js +0 -28
- package/lib/trail.js.map +0 -1
- package/lib/trust-score.d.ts +0 -20
- package/lib/trust-score.d.ts.map +0 -1
- package/lib/trust-score.js +0 -151
- package/lib/trust-score.js.map +0 -1
- package/lib/types.d.ts +0 -2
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -4
- package/lib/types.js.map +0 -1
- package/lib/uuid.d.ts +0 -2
- package/lib/uuid.d.ts.map +0 -1
- package/lib/uuid.js +0 -3
- package/lib/uuid.js.map +0 -1
- package/src/__tests__/before-send.test.ts +0 -72
- package/src/__tests__/breadcrumbs.test.ts +0 -44
- package/src/__tests__/capture-replay.test.ts +0 -150
- package/src/__tests__/compat-sentry.test.ts +0 -121
- package/src/__tests__/control-channel.test.ts +0 -111
- package/src/__tests__/install-id.test.ts +0 -60
- package/src/__tests__/long-task-monitor.test.ts +0 -59
- package/src/__tests__/measure.test.ts +0 -45
- package/src/__tests__/navigation.test.ts +0 -175
- package/src/__tests__/push.test.ts +0 -238
- package/src/__tests__/report-security.test.ts +0 -106
- package/src/__tests__/runtime-metrics-instruments.test.ts +0 -109
- package/src/__tests__/runtime-metrics-network.test.ts +0 -78
- package/src/__tests__/sample-profiler.test.ts +0 -59
- package/src/__tests__/stack.test.ts +0 -45
- package/src/__tests__/state-snapshots.test.ts +0 -119
- package/src/__tests__/tracing.test.ts +0 -201
- package/src/__tests__/track.test.ts +0 -91
- package/src/__tests__/uuid.test.ts +0 -41
- package/src/breadcrumbs.ts +0 -57
- package/src/bundle-info.ts +0 -95
- package/src/capture.ts +0 -660
- package/src/compat/sentry.ts +0 -490
- package/src/control-channel.ts +0 -98
- package/src/expo-compat.ts +0 -698
- package/src/feedback-widget.tsx +0 -316
- package/src/feedback.ts +0 -21
- package/src/heartbeat.ts +0 -157
- package/src/install-id.ts +0 -146
- package/src/lifecycle.ts +0 -76
- package/src/mask.ts +0 -41
- package/src/measure.ts +0 -28
- package/src/metrics.ts +0 -94
- package/src/pre-crash-sentinel.ts +0 -140
- package/src/report-security.ts +0 -165
- package/src/runtime-metrics-fps.ts +0 -137
- package/src/runtime-metrics-heap.ts +0 -78
- package/src/runtime-metrics-network.ts +0 -103
- package/src/runtime-metrics.ts +0 -122
- package/src/sample-profiler.ts +0 -169
- package/src/sentinel-context.ts +0 -60
- package/src/session-tracker.ts +0 -53
- package/src/stack.ts +0 -10
- package/src/state-snapshots.ts +0 -133
- package/src/track.ts +0 -123
- package/src/trail.ts +0 -32
- package/src/trust-score.ts +0 -176
- package/src/types.ts +0 -21
- package/src/uuid.ts +0 -2
package/lib/handlers/network.js
CHANGED
|
@@ -1,18 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// Network instrumentation — v1 role: feed the signal ring (`http`
|
|
2
|
+
// signals) and detect the slow_api warn scenario (design.md §3,
|
|
3
|
+
// category C: 「转圈不完」server-side flavour). The span/breadcrumb
|
|
4
|
+
// machinery this file used to drive is gone with the APM vocabulary.
|
|
5
|
+
//
|
|
6
|
+
// Mini-spec (slow_api): a completed request slower than 3 s emits
|
|
7
|
+
// one `warn`, scenario `slow_api`, surface = current screen, with
|
|
8
|
+
// method + scrubbed URL + duration. Per-endpoint cooldown of 60 s so
|
|
9
|
+
// one slow backend doesn't flood ingest with identical warns.
|
|
10
|
+
//
|
|
11
|
+
// Everything here is wrapped so a bug in our patch can never break
|
|
12
|
+
// the host's networking (failure isolation): on any internal error
|
|
13
|
+
// the original fetch/XHR behaviour wins.
|
|
14
|
+
import { normalizeUrl, pushSignal } from '@goliapkg/sentori-core';
|
|
3
15
|
import { getConfig } from '../config';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { estimateRequestBytes, estimateResponseBytes, recordNetworkBytes, } from '../runtime-metrics-network';
|
|
16
|
+
import { currentScreen } from '../navigation';
|
|
17
|
+
import { warnDetected } from '../verbs';
|
|
7
18
|
let _installed = false;
|
|
8
19
|
let _graphqlEnabled = true;
|
|
9
20
|
const AUTH_PARAMS = ['token', 'key', 'password', 'secret', 'access_token'];
|
|
10
|
-
// v0.9.0 #11 — cap on body size we'll parse for `operationName`.
|
|
11
|
-
// 8 KB is generous for any sensible GraphQL request and keeps the
|
|
12
|
-
// hot-path JSON.parse bounded.
|
|
13
21
|
const GQL_BODY_MAX_BYTES = 8 * 1024;
|
|
14
|
-
|
|
15
|
-
|
|
22
|
+
const SLOW_API_MS = 3_000;
|
|
23
|
+
const SLOW_API_COOLDOWN_MS = 60_000;
|
|
24
|
+
const _slowApiLastWarn = new Map();
|
|
25
|
+
// Requests to our own ingest endpoint are never observed — otherwise
|
|
26
|
+
// every batch upload would signal itself, and so on.
|
|
16
27
|
const isIngestUrl = (url) => {
|
|
17
28
|
const base = getConfig()?.ingestUrl;
|
|
18
29
|
return !!base && url.startsWith(base);
|
|
@@ -29,6 +40,27 @@ export const installNetworkHandler = (opts) => {
|
|
|
29
40
|
export const __resetNetworkHandlerForTests = () => {
|
|
30
41
|
_installed = false;
|
|
31
42
|
_graphqlEnabled = true;
|
|
43
|
+
_slowApiLastWarn.clear();
|
|
44
|
+
};
|
|
45
|
+
/** One completed (or failed) request: ring signal + slow_api check. */
|
|
46
|
+
const observe = (method, url, status, durationMs, gqlOp) => {
|
|
47
|
+
try {
|
|
48
|
+
const endpoint = gqlOp ? `graphql/${gqlOp}` : normalizeUrl(url);
|
|
49
|
+
pushSignal('http', { method, url: endpoint, status, ms: durationMs });
|
|
50
|
+
if (durationMs <= SLOW_API_MS)
|
|
51
|
+
return;
|
|
52
|
+
if (getConfig()?.detect.slowApi !== true)
|
|
53
|
+
return;
|
|
54
|
+
const now = Date.now();
|
|
55
|
+
const last = _slowApiLastWarn.get(endpoint) ?? 0;
|
|
56
|
+
if (now - last < SLOW_API_COOLDOWN_MS)
|
|
57
|
+
return;
|
|
58
|
+
_slowApiLastWarn.set(endpoint, now);
|
|
59
|
+
warnDetected('slow_api', { screen: currentScreen(), element: endpoint }, { method, endpoint, durationMs, status });
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// Observation must never leak into the host's request path.
|
|
63
|
+
}
|
|
32
64
|
};
|
|
33
65
|
// ── fetch ──────────────────────────────────────────────────────────
|
|
34
66
|
function patchFetch() {
|
|
@@ -36,95 +68,34 @@ function patchFetch() {
|
|
|
36
68
|
return;
|
|
37
69
|
const original = globalThis.fetch;
|
|
38
70
|
globalThis.fetch = (async (input, init) => {
|
|
39
|
-
const start = Date.now();
|
|
40
71
|
const url = extractUrl(input);
|
|
41
72
|
if (isIngestUrl(url))
|
|
42
73
|
return original(input, init);
|
|
74
|
+
const start = Date.now();
|
|
43
75
|
const scrubbed = scrubUrl(url);
|
|
44
76
|
const method = (init?.method ??
|
|
45
77
|
(typeof input !== 'string' && 'method' in input
|
|
46
78
|
? input.method
|
|
47
|
-
: 'GET'));
|
|
48
|
-
// v0.9.0 #11 — GraphQL operation auto-naming. Inspect the request
|
|
49
|
-
// body cheaply (string only, < 8 KB) when the request looks like
|
|
50
|
-
// GraphQL (URL contains /graphql or content-type hints it). On
|
|
51
|
-
// success we override the span name to `graphql/<operationName>`
|
|
52
|
-
// and ride along `gql.operation` on the breadcrumb so the dashboard
|
|
53
|
-
// can group + filter by operation instead of by the useless
|
|
54
|
-
// `POST /graphql` line.
|
|
79
|
+
: 'GET')).toUpperCase();
|
|
55
80
|
const gqlOp = _graphqlEnabled
|
|
56
81
|
? extractGraphqlOpFromInit(init, input, url)
|
|
57
82
|
: undefined;
|
|
58
|
-
// Phase 35 sub-C: also open an http.client span so the request
|
|
59
|
-
// shows up in the trace waterfall. Breadcrumbs stay — they're
|
|
60
|
-
// attached to error events at capture time and serve a different
|
|
61
|
-
// surface (the "last 100 things" timeline on the issue page).
|
|
62
|
-
const span = startSpan('http.client', {
|
|
63
|
-
name: gqlOp
|
|
64
|
-
? `graphql/${gqlOp}`
|
|
65
|
-
: `${method.toUpperCase()} ${normalizeUrl(scrubbed)}`,
|
|
66
|
-
tags: gqlOp
|
|
67
|
-
? {
|
|
68
|
-
'http.method': method.toUpperCase(),
|
|
69
|
-
'http.url': scrubbed,
|
|
70
|
-
'gql.operation': gqlOp,
|
|
71
|
-
}
|
|
72
|
-
: { 'http.method': method.toUpperCase(), 'http.url': scrubbed },
|
|
73
|
-
});
|
|
74
|
-
// Inject traceparent header on outbound requests.
|
|
75
|
-
const reqInit = { ...(init ?? {}) };
|
|
76
|
-
const headers = mergeHeaders(input, init);
|
|
77
|
-
headers.set('traceparent', toTraceparent(span.traceId, span.spanId));
|
|
78
|
-
reqInit.headers = headers;
|
|
79
83
|
try {
|
|
80
|
-
const resp = await original(input,
|
|
81
|
-
|
|
82
|
-
span.finish({ status: resp.status >= 400 ? 'error' : 'ok' });
|
|
83
|
-
// v2.1 W2 — bytes accounting. Sent estimated from
|
|
84
|
-
// init.body; received read from response Content-Length
|
|
85
|
-
// header (0 when missing / chunked — undercount-safe).
|
|
86
|
-
recordNetworkBytes(estimateRequestBytes(init), estimateResponseBytes(resp.headers));
|
|
87
|
-
addBreadcrumb({
|
|
88
|
-
type: 'net',
|
|
89
|
-
data: gqlOp
|
|
90
|
-
? {
|
|
91
|
-
method,
|
|
92
|
-
url: scrubbed,
|
|
93
|
-
status: resp.status,
|
|
94
|
-
durationMs: Date.now() - start,
|
|
95
|
-
'gql.operation': gqlOp,
|
|
96
|
-
}
|
|
97
|
-
: {
|
|
98
|
-
method,
|
|
99
|
-
url: scrubbed,
|
|
100
|
-
status: resp.status,
|
|
101
|
-
durationMs: Date.now() - start,
|
|
102
|
-
},
|
|
103
|
-
});
|
|
84
|
+
const resp = await original(input, init);
|
|
85
|
+
observe(method, scrubbed, resp.status, Date.now() - start, gqlOp);
|
|
104
86
|
return resp;
|
|
105
87
|
}
|
|
106
88
|
catch (e) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
span.finish({ status: isAbort ? 'cancelled' : 'error' });
|
|
111
|
-
addBreadcrumb({
|
|
112
|
-
type: 'net',
|
|
113
|
-
data: {
|
|
114
|
-
method,
|
|
115
|
-
url: scrubbed,
|
|
116
|
-
status: 0,
|
|
117
|
-
durationMs: Date.now() - start,
|
|
118
|
-
error: String(e),
|
|
119
|
-
...(gqlOp ? { 'gql.operation': gqlOp } : {}),
|
|
120
|
-
},
|
|
121
|
-
});
|
|
89
|
+
if (!isAbortError(e)) {
|
|
90
|
+
observe(method, scrubbed, 'error', Date.now() - start, gqlOp);
|
|
91
|
+
}
|
|
122
92
|
throw e;
|
|
123
93
|
}
|
|
124
94
|
});
|
|
125
95
|
}
|
|
126
96
|
function patchXhr() {
|
|
127
|
-
const XHR = globalThis
|
|
97
|
+
const XHR = globalThis
|
|
98
|
+
.XMLHttpRequest;
|
|
128
99
|
if (typeof XHR !== 'function')
|
|
129
100
|
return;
|
|
130
101
|
const proto = XHR.prototype;
|
|
@@ -133,7 +104,6 @@ function patchXhr() {
|
|
|
133
104
|
proto.__sentoriPatched = true;
|
|
134
105
|
const originalOpen = proto.open;
|
|
135
106
|
const originalSend = proto.send;
|
|
136
|
-
const originalSetHeader = proto.setRequestHeader;
|
|
137
107
|
proto.open = function (method, url, ...rest) {
|
|
138
108
|
this.__sentoriMethod = String(method).toUpperCase();
|
|
139
109
|
this.__sentoriUrl = typeof url === 'string' ? url : String(url);
|
|
@@ -145,99 +115,29 @@ function patchXhr() {
|
|
|
145
115
|
return originalSend.call(this, body);
|
|
146
116
|
const method = this.__sentoriMethod ?? 'GET';
|
|
147
117
|
const url = scrubUrl(this.__sentoriUrl ?? '');
|
|
148
|
-
|
|
149
|
-
const gqlOp = _graphqlEnabled
|
|
118
|
+
this.__sentoriGqlOp = _graphqlEnabled
|
|
150
119
|
? extractGraphqlOpFromXhr(body, this.__sentoriUrl ?? '')
|
|
151
120
|
: undefined;
|
|
152
|
-
this.__sentoriGqlOp = gqlOp;
|
|
153
|
-
const span = startSpan('http.client', {
|
|
154
|
-
name: gqlOp ? `graphql/${gqlOp}` : `${method} ${normalizeUrl(url)}`,
|
|
155
|
-
tags: gqlOp
|
|
156
|
-
? {
|
|
157
|
-
'http.method': method,
|
|
158
|
-
'http.url': url,
|
|
159
|
-
'gql.operation': gqlOp,
|
|
160
|
-
}
|
|
161
|
-
: { 'http.method': method, 'http.url': url },
|
|
162
|
-
});
|
|
163
|
-
this.__sentoriSpan = span;
|
|
164
121
|
this.__sentoriStart = Date.now();
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
originalSetHeader.call(this, 'traceparent', toTraceparent(span.traceId, span.spanId));
|
|
169
|
-
}
|
|
170
|
-
catch {
|
|
171
|
-
// Some XHR polyfills are strict about header timing; if it
|
|
172
|
-
// rejects, drop the header rather than fail the request.
|
|
173
|
-
}
|
|
174
|
-
const finish = () => {
|
|
175
|
-
const s = this.__sentoriSpan;
|
|
176
|
-
if (!s)
|
|
122
|
+
const finish = (statusOverride) => {
|
|
123
|
+
const start = this.__sentoriStart;
|
|
124
|
+
if (start === undefined)
|
|
177
125
|
return;
|
|
178
|
-
this.
|
|
179
|
-
const status = this.status;
|
|
180
|
-
|
|
181
|
-
// status 0 means network error / aborted / CORS block — treat
|
|
182
|
-
// as error. The `abort` event handler below downgrades aborts.
|
|
183
|
-
s.finish({ status: status === 0 || status >= 400 ? 'error' : 'ok' });
|
|
184
|
-
const op = this.__sentoriGqlOp;
|
|
185
|
-
addBreadcrumb({
|
|
186
|
-
type: 'net',
|
|
187
|
-
data: op
|
|
188
|
-
? {
|
|
189
|
-
method,
|
|
190
|
-
url,
|
|
191
|
-
status,
|
|
192
|
-
durationMs: Date.now() - (this.__sentoriStart ?? Date.now()),
|
|
193
|
-
'gql.operation': op,
|
|
194
|
-
}
|
|
195
|
-
: {
|
|
196
|
-
method,
|
|
197
|
-
url,
|
|
198
|
-
status,
|
|
199
|
-
durationMs: Date.now() - (this.__sentoriStart ?? Date.now()),
|
|
200
|
-
},
|
|
201
|
-
});
|
|
126
|
+
this.__sentoriStart = undefined;
|
|
127
|
+
const status = statusOverride ?? (this.status === 0 ? 'error' : this.status);
|
|
128
|
+
observe(method, url, status, Date.now() - start, this.__sentoriGqlOp);
|
|
202
129
|
};
|
|
203
|
-
this.addEventListener('
|
|
130
|
+
this.addEventListener('load', () => finish());
|
|
131
|
+
this.addEventListener('error', () => finish('error'));
|
|
132
|
+
this.addEventListener('timeout', () => finish('error'));
|
|
204
133
|
this.addEventListener('abort', () => {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
return;
|
|
208
|
-
this.__sentoriSpan = undefined;
|
|
209
|
-
s.finish({ status: 'cancelled' });
|
|
210
|
-
const op = this.__sentoriGqlOp;
|
|
211
|
-
addBreadcrumb({
|
|
212
|
-
type: 'net',
|
|
213
|
-
data: {
|
|
214
|
-
method,
|
|
215
|
-
url,
|
|
216
|
-
status: 0,
|
|
217
|
-
durationMs: Date.now() - (this.__sentoriStart ?? Date.now()),
|
|
218
|
-
error: 'aborted',
|
|
219
|
-
...(op ? { 'gql.operation': op } : {}),
|
|
220
|
-
},
|
|
221
|
-
});
|
|
134
|
+
// Deliberate cancellation is not a network event worth noting.
|
|
135
|
+
this.__sentoriStart = undefined;
|
|
222
136
|
});
|
|
223
137
|
return originalSend.call(this, body);
|
|
224
138
|
};
|
|
225
139
|
}
|
|
226
|
-
|
|
227
|
-
const out = new Headers();
|
|
228
|
-
if (typeof input !== 'string' && !(input instanceof URL)) {
|
|
229
|
-
input.headers.forEach((v, k) => out.set(k, v));
|
|
230
|
-
}
|
|
231
|
-
if (init?.headers) {
|
|
232
|
-
new Headers(init.headers).forEach((v, k) => out.set(k, v));
|
|
233
|
-
}
|
|
234
|
-
return out;
|
|
235
|
-
}
|
|
236
|
-
function toTraceparent(traceId, spanId) {
|
|
237
|
-
const trace = traceId.replace(/-/g, '').toLowerCase();
|
|
238
|
-
const parent = spanId.replace(/-/g, '').toLowerCase().slice(0, 16);
|
|
239
|
-
return `00-${trace}-${parent}-01`;
|
|
240
|
-
}
|
|
140
|
+
// ── helpers ────────────────────────────────────────────────────────
|
|
241
141
|
function isAbortError(err) {
|
|
242
142
|
if (typeof err !== 'object' || err === null)
|
|
243
143
|
return false;
|
|
@@ -266,32 +166,20 @@ const scrubUrl = (url) => {
|
|
|
266
166
|
return url;
|
|
267
167
|
}
|
|
268
168
|
};
|
|
269
|
-
// ──
|
|
270
|
-
//
|
|
271
|
-
// Cheap, sync, never throws. Two callers (fetch + xhr) feed in
|
|
272
|
-
// whatever they have on hand; both end up calling `parseGqlOpName`.
|
|
169
|
+
// ── GraphQL operation extraction — cheap, sync, never throws ──────
|
|
273
170
|
function lookGraphqlish(url, contentType) {
|
|
274
|
-
if (contentType)
|
|
275
|
-
if (contentType.includes('graphql'))
|
|
276
|
-
return true;
|
|
277
|
-
// application/json is too generic to gate on alone, but combined
|
|
278
|
-
// with a `/graphql` path it's a strong hint.
|
|
279
|
-
}
|
|
280
|
-
if (url.includes('/graphql'))
|
|
171
|
+
if (contentType?.includes('graphql'))
|
|
281
172
|
return true;
|
|
282
|
-
return
|
|
173
|
+
return url.includes('/graphql');
|
|
283
174
|
}
|
|
284
|
-
/** Pull `operationName` out of a JSON body or a raw query body.
|
|
285
|
-
* `undefined` on any failure mode
|
|
175
|
+
/** Pull `operationName` out of a JSON body or a raw query body.
|
|
176
|
+
* Returns `undefined` on any failure mode; body capped at 8 KB so a
|
|
286
177
|
* hostile / oversize body never lands in `JSON.parse`. */
|
|
287
178
|
export function parseGqlOpName(body) {
|
|
288
179
|
if (typeof body !== 'string' || body.length === 0)
|
|
289
180
|
return undefined;
|
|
290
181
|
if (body.length > GQL_BODY_MAX_BYTES)
|
|
291
182
|
return undefined;
|
|
292
|
-
// First char `{` or `[` → JSON path. Most clients (Apollo, urql,
|
|
293
|
-
// Relay) send `{"query":"…","operationName":"…","variables":{…}}`
|
|
294
|
-
// or an array of such objects (batched).
|
|
295
183
|
const first = body.charCodeAt(0);
|
|
296
184
|
if (first === 0x7b /* { */ || first === 0x5b /* [ */) {
|
|
297
185
|
try {
|
|
@@ -302,8 +190,6 @@ export function parseGqlOpName(body) {
|
|
|
302
190
|
if (typeof name === 'string' && name.length > 0 && name.length <= 200) {
|
|
303
191
|
return name;
|
|
304
192
|
}
|
|
305
|
-
// No operationName — try to sniff the `query` string for
|
|
306
|
-
// `query Foo {…}` / `mutation Bar {…}` / `subscription Baz {…}`.
|
|
307
193
|
const q = candidate.query;
|
|
308
194
|
if (typeof q === 'string')
|
|
309
195
|
return parseQueryStringOpName(q);
|
|
@@ -314,13 +200,9 @@ export function parseGqlOpName(body) {
|
|
|
314
200
|
}
|
|
315
201
|
return undefined;
|
|
316
202
|
}
|
|
317
|
-
// `application/graphql` body is the bare query string — no JSON wrapper.
|
|
318
203
|
return parseQueryStringOpName(body);
|
|
319
204
|
}
|
|
320
205
|
function parseQueryStringOpName(query) {
|
|
321
|
-
// Skip leading whitespace + comments. We only need the first non-trivial
|
|
322
|
-
// top-level operation keyword to extract a name; nested operations are
|
|
323
|
-
// a non-issue because GraphQL forbids them.
|
|
324
206
|
const m = /^\s*(?:#[^\n]*\n\s*)*(query|mutation|subscription)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(query);
|
|
325
207
|
return m?.[2];
|
|
326
208
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/handlers/network.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/handlers/network.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/promise.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../src/handlers/promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../src/handlers/promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AAWjD,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAS,EAAE;IAC9C,IAAI,UAAU;QAAE,OAAO;IAEvB,MAAM,MAAM,GAAI,UAAsD;SACnE,cAAc,CAAC;IAClB,IAAI,MAAM,EAAE,6BAA6B,EAAE,CAAC;QAC1C,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,CAAC,6BAA6B,CAAC;YACnC,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;gBAC9B,IAAI,CAAC;oBACH,4DAA4D;oBAC5D,mEAAmE;oBACnE,qDAAqD;oBACrD,sCAAsC;oBACtC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvC,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc;gBAChB,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,mFAAmF;AACrF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/handlers/screenshot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/handlers/screenshot.ts"],"names":[],"mappings":"AA6BA,8DAA8D;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAmBxE"}
|
|
@@ -24,7 +24,6 @@
|
|
|
24
24
|
// is 500 KB.
|
|
25
25
|
// - On any failure we silently return null. The error event still
|
|
26
26
|
// goes to the server; the user just doesn't see a thumbnail.
|
|
27
|
-
import { getRegisteredMaskQuery } from '../mask';
|
|
28
27
|
import { captureNativeScreenshotWithMask } from '../native';
|
|
29
28
|
/**
|
|
30
29
|
* Take one screenshot, yielding the JS thread first. Returns null on
|
|
@@ -42,17 +41,9 @@ export async function captureScreenshot() {
|
|
|
42
41
|
// the host never called `registerMaskQuery`, no mask is applied
|
|
43
42
|
// and the full screenshot ships — sane default: SDK does nothing
|
|
44
43
|
// unless told to.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
try {
|
|
49
|
-
maskedIds = query();
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
// A throwing query is the host's bug, not ours; skip mask
|
|
53
|
-
// rather than skip the screenshot.
|
|
54
|
-
maskedIds = [];
|
|
55
|
-
}
|
|
44
|
+
// Masking will return with a v1 privacy pass; nothing masks today.
|
|
45
|
+
const maskedIds = [];
|
|
46
|
+
{
|
|
56
47
|
}
|
|
57
48
|
const result = await captureNativeScreenshotWithMask(maskedIds);
|
|
58
49
|
if (!result)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/handlers/screenshot.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,4DAA4D;AAC5D,EAAE;AACF,gEAAgE;AAChE,sEAAsE;AACtE,kEAAkE;AAClE,oEAAoE;AACpE,mEAAmE;AACnE,6BAA6B;AAC7B,EAAE;AACF,kEAAkE;AAClE,kEAAkE;AAClE,oEAAoE;AACpE,oEAAoE;AACpE,gEAAgE;AAChE,kEAAkE;AAClE,4DAA4D;AAC5D,EAAE;AACF,eAAe;AACf,oEAAoE;AACpE,iDAAiD;AACjD,oEAAoE;AACpE,kEAAkE;AAClE,iBAAiB;AACjB,oEAAoE;AACpE,iEAAiE;AAEjE,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/handlers/screenshot.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,4DAA4D;AAC5D,EAAE;AACF,gEAAgE;AAChE,sEAAsE;AACtE,kEAAkE;AAClE,oEAAoE;AACpE,mEAAmE;AACnE,6BAA6B;AAC7B,EAAE;AACF,kEAAkE;AAClE,kEAAkE;AAClE,oEAAoE;AACpE,oEAAoE;AACpE,gEAAgE;AAChE,kEAAkE;AAClE,4DAA4D;AAC5D,EAAE;AACF,eAAe;AACf,oEAAoE;AACpE,iDAAiD;AACjD,oEAAoE;AACpE,kEAAkE;AAClE,iBAAiB;AACjB,oEAAoE;AACpE,iEAAiE;AAEjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAC;AAQ5D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,kEAAkE;IAClE,gCAAgC;IAChC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,qBAAqB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,gEAAgE;IAChE,iEAAiE;IACjE,kBAAkB;IAClB,mEAAmE;IACnE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,CAAC;IACD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,SAAS,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;AAChE,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,116 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type FeedbackButtonHandle, type FeedbackButtonProps } from './feedback-widget';
|
|
3
|
-
import { clearMaskQuery, registerMaskQuery } from './mask';
|
|
4
|
-
import { measureFn } from './measure';
|
|
5
|
-
import { getColdStartMs, markTimeToFullDisplay } from './mobile-vitals';
|
|
6
|
-
import { bindState, recordState, unbindState } from './state-snapshots';
|
|
7
|
-
import { startMoment, startSpan, startTrace, withScopedSpan } from '@goliapkg/sentori-core';
|
|
8
|
-
import { getInstallId } from './install-id';
|
|
9
|
-
import { flushMetrics, recordMetric } from './metrics';
|
|
10
|
-
import { close, flush } from './lifecycle';
|
|
11
|
-
import { linkFederatedIdentity, reportPinMismatch, reportSecurity } from './report-security';
|
|
12
|
-
import { flushTrack, track } from './track';
|
|
13
|
-
import { queryTrustScore } from './trust-score';
|
|
14
|
-
import { RageTapCapture } from './rage-tap';
|
|
1
|
+
import type { EventData, InitConfig, TraceOptions, User } from '@goliapkg/sentori-core';
|
|
15
2
|
export declare const sentori: {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
flushTrack: typeof flushTrack;
|
|
42
|
-
getInstallId: typeof getInstallId;
|
|
43
|
-
reportSecurity: typeof reportSecurity;
|
|
44
|
-
reportPinMismatch: typeof reportPinMismatch;
|
|
45
|
-
queryTrustScore: typeof queryTrustScore;
|
|
46
|
-
linkFederatedIdentity: typeof linkFederatedIdentity;
|
|
47
|
-
measureFn: typeof measureFn;
|
|
48
|
-
startMoment: typeof startMoment;
|
|
49
|
-
startSpan: typeof startSpan;
|
|
50
|
-
startTrace: typeof startTrace;
|
|
51
|
-
withScopedSpan: typeof withScopedSpan;
|
|
52
|
-
bindState: typeof bindState;
|
|
53
|
-
recordState: typeof recordState;
|
|
54
|
-
unbindState: typeof unbindState;
|
|
55
|
-
markTimeToFullDisplay: typeof markTimeToFullDisplay;
|
|
56
|
-
getColdStartMs: typeof getColdStartMs;
|
|
57
|
-
setFeatureFlag: (name: string, value: string) => void;
|
|
58
|
-
clearFeatureFlag: (name: string) => void;
|
|
59
|
-
clearAllFeatureFlags: () => void;
|
|
60
|
-
getFeatureFlags: () => Record<string, string>;
|
|
61
|
-
ErrorBoundary: typeof ErrorBoundary;
|
|
62
|
-
FeedbackButton: import("react").ForwardRefExoticComponent<FeedbackButtonProps & import("react").RefAttributes<FeedbackButtonHandle>>;
|
|
63
|
-
RageTapCapture: typeof RageTapCapture;
|
|
64
|
-
registerMaskQuery: typeof registerMaskQuery;
|
|
65
|
-
clearMaskQuery: typeof clearMaskQuery;
|
|
66
|
-
startSession: () => void;
|
|
67
|
-
endSession: (status?: "exited") => void;
|
|
68
|
-
markSessionCrashed: () => void;
|
|
69
|
-
flush: typeof flush;
|
|
70
|
-
close: typeof close;
|
|
3
|
+
/** Configure and start the SDK. One call, at app start. */
|
|
4
|
+
init: (config: InitConfig) => void;
|
|
5
|
+
/** Set (or clear, with null) the current user. Drives the
|
|
6
|
+
* breadth × depth importance stats via a salted hash — raw
|
|
7
|
+
* identity never leaves the device. */
|
|
8
|
+
user: (u: User | null) => void;
|
|
9
|
+
/** Merge ambient context (feature flags, AB variants, tags)
|
|
10
|
+
* attached to every subsequent event. */
|
|
11
|
+
context: (patch: Record<string, unknown>) => void;
|
|
12
|
+
/** 出了什么事 — report a caught-but-fatal-worthy error. Unhandled
|
|
13
|
+
* errors are captured automatically; this is the manual lane. */
|
|
14
|
+
error: (err: unknown, data?: EventData) => string;
|
|
15
|
+
/** 用户哪里不舒服 — a hand-written sub-health report. */
|
|
16
|
+
warn: (name: string, data?: EventData) => string;
|
|
17
|
+
/** 这里发生了什么 — a neutral observation point. Also lands in the
|
|
18
|
+
* signal ring; `{ quiet: true }` keeps it ring-only. */
|
|
19
|
+
trace: (name: string, data?: EventData, opts?: TraceOptions) => string;
|
|
20
|
+
/** 这里应该成立吗 — a production assertion. Failure reports and
|
|
21
|
+
* NEVER halts the program (unlike a language-level assert);
|
|
22
|
+
* passes aggregate into a liveness ledger. */
|
|
23
|
+
assert: (name: string, ok: boolean, data?: EventData) => string;
|
|
24
|
+
/** 那个 bug 回来了吗 — a regression tripwire. Reaching this call is
|
|
25
|
+
* the signal; it never changes control flow. Plant it in the
|
|
26
|
+
* branch that used to break. */
|
|
27
|
+
probe: (ref: string, data?: EventData) => string;
|
|
71
28
|
};
|
|
72
29
|
export default sentori;
|
|
73
|
-
export { init
|
|
74
|
-
export { addBreadcrumb } from './breadcrumbs';
|
|
75
|
-
export { captureError, captureException, captureMessage, captureStep, getUser, sendUserFeedback, setTag, setTags, setUser, } from './capture';
|
|
76
|
-
export { startMoment, startSpan, startTrace, withScopedSpan, type SpanContextLike, type StartSpanOptions, } from '@goliapkg/sentori-core';
|
|
77
|
-
export { close, flush } from './lifecycle';
|
|
78
|
-
export type { CaptureMessageOptions, MessageLevel, } from '@goliapkg/sentori-core';
|
|
79
|
-
/** v2.3 — logger surface re-exported from core so hosts can
|
|
80
|
-
* `import { setLogLevel } from '@goliapkg/sentori-react-native'`
|
|
81
|
-
* per design §3 ("Production override"). `setLogTransport` lets
|
|
82
|
-
* hosts route Sentori-internal lines into their own log
|
|
83
|
-
* aggregator (Datadog, etc.). */
|
|
84
|
-
export { getLogLevel, type LogLevel, logger, type LogTransport, setLogLevel, setLogTransport, } from '@goliapkg/sentori-core';
|
|
85
|
-
export type { ReadyInfo } from './config';
|
|
30
|
+
export { init } from './init';
|
|
86
31
|
export { ErrorBoundary } from './error-boundary';
|
|
87
|
-
export { FeedbackButton, type FeedbackButtonHandle, type FeedbackButtonProps } from './feedback-widget';
|
|
88
|
-
export { clearAllFeatureFlags, clearFeatureFlag, getFeatureFlags, setFeatureFlag, } from './feature-flags';
|
|
89
|
-
export { clearMaskQuery, registerMaskQuery } from './mask';
|
|
90
|
-
export { flushMetrics, recordMetric } from './metrics';
|
|
91
|
-
export { flushTrack, track, type TrackEvent, type TrackProps } from './track';
|
|
92
|
-
export { getInstallId, peekInstallId } from './install-id';
|
|
93
|
-
export { linkFederatedIdentity, reportPinMismatch, reportSecurity, type SecurityReportData, } from './report-security';
|
|
94
|
-
export { queryTrustScore, type TrustScore, type TrustSignal, } from './trust-score';
|
|
95
|
-
export { measureFn } from './measure';
|
|
96
|
-
export { getColdStartMs, markTimeToFullDisplay, type TimeToFullDisplayHandle, } from './mobile-vitals';
|
|
97
|
-
export { MomentHandle, type MomentProperties } from '@goliapkg/sentori-core';
|
|
98
|
-
export { bindState, recordState, type StateSnapshot, unbindState, } from './state-snapshots';
|
|
99
32
|
export { RageTapCapture } from './rage-tap';
|
|
100
|
-
export {
|
|
101
|
-
export { drainReplay, startReplay, stopReplay } from './replay';
|
|
102
|
-
export { endSession, markSessionCrashed, startSession, } from './session-tracker';
|
|
33
|
+
export { triggerNativeCrash } from './native';
|
|
103
34
|
export { type NavigationRefLike, useTraceNavigation } from './navigation';
|
|
104
|
-
|
|
105
|
-
export
|
|
106
|
-
|
|
107
|
-
unregister: typeof _push.unregister;
|
|
108
|
-
getCachedIpt: typeof _push.getCachedIpt;
|
|
109
|
-
getStatus: typeof _push.getStatus;
|
|
110
|
-
requestPermission: typeof _push.requestPermission;
|
|
111
|
-
setSessionContext: typeof _push.setSessionContext;
|
|
112
|
-
};
|
|
113
|
-
export type { PushRegisterOptions, PushRegisterResult, PushNotificationPayload, } from './push';
|
|
114
|
-
export type { PushMessage, PushOptions, PushPriority, PushReceipt, PushTicket, PushTicketStatus, } from '@goliapkg/sentori-core';
|
|
115
|
-
export type { Event, SentoriError, Frame, Breadcrumb, BreadcrumbType, Device, DeviceOS, App, User, Tags, EventKind, Platform, } from './types';
|
|
35
|
+
export type { AssertStat, Device, EventData, EventKind, Frame, InitConfig, SentoriApi, SentoriError, Signal, Surface, TraceOptions, User, WireEvent, WirePayload, } from '@goliapkg/sentori-core';
|
|
36
|
+
export { getLogLevel, type LogLevel, setLogLevel, type LogTransport, setLogTransport, } from '@goliapkg/sentori-core';
|
|
37
|
+
export * as push from './push';
|
|
116
38
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,IAAI,EACL,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,OAAO;IAClB,2DAA2D;IAC3D,IAAI,WAAW,UAAU,KAAG,IAAI;IAGhC;;4CAEwC;IACxC,IAAI,MAAM,IAAI,GAAG,IAAI,KAAG,IAAI;IAG5B;8CAC0C;IAC1C,OAAO,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;IAI/C;sEACkE;IAClE,KAAK,QAAQ,OAAO,SAAS,SAAS,KAAG,MAAM;IAC/C,kDAAkD;IAClD,IAAI,SAAS,MAAM,SAAS,SAAS,KAAG,MAAM;IAC9C;6DACyD;IACzD,KAAK,SAAS,MAAM,SAAS,SAAS,SAAS,YAAY,KAAG,MAAM;IAEpE;;mDAE+C;IAC/C,MAAM,SAAS,MAAM,MAAM,OAAO,SAAS,SAAS,KAAG,MAAM;IAE7D;;qCAEiC;IACjC,KAAK,QAAQ,MAAM,SAAS,SAAS,KAAG,MAAM;CAC/C,CAAC;eAEa,OAAO;AAEtB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAG1E,YAAY,EACV,UAAU,EACV,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,MAAM,EACN,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,WAAW,EACX,KAAK,QAAQ,EACb,WAAW,EACX,KAAK,YAAY,EACjB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
|