@goliapkg/sentori-react-native 4.0.0 → 5.1.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/MIGRATION.md +131 -0
- package/README.md +40 -30
- package/android/build.gradle +21 -0
- package/android/src/main/java/com/sentori/SentoriCrashHandler.kt +29 -0
- package/android/src/main/java/com/sentori/SentoriModule.kt +8 -0
- package/android/src/main/java/com/sentori/SentoriScreenshotCapture.kt +36 -4
- package/android/src/test/java/com/sentori/SentoriCrashHandlerTest.kt +7 -2
- package/android/src/test/resources/robolectric.properties +10 -0
- package/ios/SentoriCrashHandler.swift +48 -4
- package/ios/SentoriModule.swift +12 -0
- package/ios/SentoriScreenshotCapture.swift +34 -3
- package/lib/config.d.ts +17 -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 +32 -109
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +54 -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 +100 -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/mask.d.ts +5 -13
- package/lib/mask.d.ts.map +1 -1
- package/lib/mask.js +29 -30
- package/lib/mask.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/native.d.ts +4 -11
- package/lib/native.d.ts.map +1 -1
- package/lib/native.js +23 -0
- package/lib/native.js.map +1 -1
- 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 +56 -23
- package/lib/rage-tap.js.map +1 -1
- package/lib/replay-screens.d.ts +15 -0
- package/lib/replay-screens.d.ts.map +1 -0
- package/lib/replay-screens.js +87 -0
- package/lib/replay-screens.js.map +1 -0
- package/lib/replay.d.ts.map +1 -1
- package/lib/replay.js +3 -24
- package/lib/replay.js.map +1 -1
- package/lib/responsiveness-detector.d.ts +18 -0
- package/lib/responsiveness-detector.d.ts.map +1 -0
- package/lib/responsiveness-detector.js +55 -0
- package/lib/responsiveness-detector.js.map +1 -0
- 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 +4 -3
- package/src/__tests__/iron-rule.test.ts +128 -0
- package/src/__tests__/replay-screens.test.ts +63 -0
- package/src/__tests__/responsiveness-detector.test.ts +74 -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 +20 -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 +84 -215
- package/src/init.ts +115 -449
- package/src/long-task-monitor.ts +42 -64
- package/src/mask.ts +29 -31
- package/src/mobile-vitals.ts +22 -82
- package/src/native-pending.ts +92 -0
- package/src/native.ts +33 -0
- package/src/navigation.ts +34 -142
- package/src/netinfo.ts +3 -3
- package/src/push.ts +2 -5
- package/src/rage-tap.tsx +72 -25
- package/src/replay-screens.ts +95 -0
- package/src/replay.ts +3 -20
- package/src/responsiveness-detector.ts +66 -0
- 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/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/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/transport.js
CHANGED
|
@@ -1,31 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
// Event transport — the only place the SDK talks to the network.
|
|
2
|
+
//
|
|
3
|
+
// Quiet by default, complete when it matters (design.md §4): events
|
|
4
|
+
// batch on a 5 s timer or a 10-deep queue, whichever first; assert
|
|
5
|
+
// pass-counts piggyback on whatever batch goes out next (never their
|
|
6
|
+
// own request); failures back off and finally persist to an offline
|
|
7
|
+
// queue drained on next launch. Nothing here ever throws into the
|
|
8
|
+
// host app.
|
|
9
|
+
import { logger } from '@goliapkg/sentori-core';
|
|
2
10
|
import { getConfig } from './config';
|
|
3
|
-
import { isLiveMode } from './control-channel';
|
|
4
11
|
import { isAnyNativeModuleLinked } from './native-loader';
|
|
5
12
|
const FLUSH_INTERVAL_MS = 5_000;
|
|
6
13
|
const BATCH_SIZE = 10;
|
|
7
14
|
const MAX_RETRY = 3;
|
|
8
15
|
const STORAGE_KEY = '@sentori/pending';
|
|
9
16
|
const MAX_PERSISTED = 1000;
|
|
10
|
-
|
|
11
|
-
// them on their own timer, cap each request at the server's per-batch
|
|
12
|
-
// limit, and drop on failure rather than persisting offline.
|
|
13
|
-
const SPAN_FLUSH_INTERVAL_MS = 10_000;
|
|
14
|
-
const SPAN_BATCH_MAX = 200;
|
|
17
|
+
const SDK_VERSION = '5.0.0';
|
|
15
18
|
let _queue = [];
|
|
19
|
+
let _assertStats = new Map();
|
|
16
20
|
let _flushTimer = null;
|
|
17
|
-
let _spanTimer = null;
|
|
18
21
|
let _started = false;
|
|
19
|
-
const SDK_VERSION = '0.0.0';
|
|
20
22
|
export const enqueue = (event) => {
|
|
21
23
|
_queue.push(event);
|
|
22
|
-
// v1.1 +S7 升级 — when the dashboard has armed live-debug for the
|
|
23
|
-
// current user, flush immediately instead of waiting for the 5 s
|
|
24
|
-
// batch interval. Dashboard sees each event with sub-second latency.
|
|
25
|
-
if (isLiveMode()) {
|
|
26
|
-
void flush();
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
24
|
if (_queue.length >= BATCH_SIZE) {
|
|
30
25
|
void flush();
|
|
31
26
|
}
|
|
@@ -36,75 +31,63 @@ export const enqueue = (event) => {
|
|
|
36
31
|
}, FLUSH_INTERVAL_MS);
|
|
37
32
|
}
|
|
38
33
|
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (!
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
await sendSpansOnce(chunk, config.ingestUrl, config.token);
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
// drop the remaining chunks — span uploads aren't worth retrying
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
34
|
+
/**
|
|
35
|
+
* Count an assert outcome. Pass-counts NEVER become events — they
|
|
36
|
+
* aggregate here and ride the next batch envelope (the liveness
|
|
37
|
+
* ledger without a heartbeat flood).
|
|
38
|
+
*/
|
|
39
|
+
export const countAssert = (name, ok, release) => {
|
|
40
|
+
const key = `${name}${release}`;
|
|
41
|
+
const cur = _assertStats.get(key) ?? { name, release, passDelta: 0, failDelta: 0 };
|
|
42
|
+
if (ok)
|
|
43
|
+
cur.passDelta += 1;
|
|
44
|
+
else
|
|
45
|
+
cur.failDelta = (cur.failDelta ?? 0) + 1;
|
|
46
|
+
_assertStats.set(key, cur);
|
|
47
|
+
// Stats with no event traffic still ship eventually, on a lazy
|
|
48
|
+
// timer six times the batch interval.
|
|
49
|
+
if (!_flushTimer && _queue.length === 0) {
|
|
50
|
+
_flushTimer = setTimeout(() => {
|
|
51
|
+
_flushTimer = null;
|
|
52
|
+
void flush();
|
|
53
|
+
}, FLUSH_INTERVAL_MS * 6);
|
|
65
54
|
}
|
|
66
55
|
};
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
method: 'POST',
|
|
70
|
-
headers: {
|
|
71
|
-
'Content-Type': 'application/json',
|
|
72
|
-
Authorization: `Bearer ${token}`,
|
|
73
|
-
'Sentori-Sdk': `react-native/${SDK_VERSION}`,
|
|
74
|
-
},
|
|
75
|
-
body: JSON.stringify({ spans }),
|
|
76
|
-
});
|
|
77
|
-
// 5xx: server overloaded. 4xx (bad token / quota / oversized): also
|
|
78
|
-
// pointless to keep sending. Either way, stop the rest of the batch.
|
|
79
|
-
if (resp.status >= 400)
|
|
80
|
-
throw new Error(`spans-${resp.status}`);
|
|
56
|
+
export const startTransport = () => {
|
|
57
|
+
_started = true;
|
|
81
58
|
};
|
|
82
59
|
export const flush = async () => {
|
|
83
60
|
if (!_started)
|
|
84
61
|
return;
|
|
85
|
-
if (_queue.length === 0)
|
|
86
|
-
return;
|
|
87
62
|
const config = getConfig();
|
|
88
63
|
if (!config)
|
|
89
64
|
return;
|
|
90
|
-
const
|
|
65
|
+
const events = _queue.splice(0, _queue.length);
|
|
66
|
+
const stats = [..._assertStats.values()];
|
|
67
|
+
_assertStats = new Map();
|
|
91
68
|
if (_flushTimer) {
|
|
92
69
|
clearTimeout(_flushTimer);
|
|
93
70
|
_flushTimer = null;
|
|
94
71
|
}
|
|
72
|
+
if (events.length === 0 && stats.length === 0)
|
|
73
|
+
return;
|
|
74
|
+
const envelope = { events };
|
|
75
|
+
if (stats.length > 0)
|
|
76
|
+
envelope.assertStats = stats;
|
|
95
77
|
try {
|
|
96
|
-
await sendWithRetry(
|
|
78
|
+
await sendWithRetry(envelope, config.ingestUrl, config.token);
|
|
97
79
|
}
|
|
98
80
|
catch {
|
|
99
|
-
|
|
81
|
+
// Events survive offline; assert deltas are cheap enough to lose.
|
|
82
|
+
await persist(events);
|
|
100
83
|
}
|
|
101
84
|
};
|
|
102
|
-
const sendWithRetry = async (
|
|
85
|
+
const sendWithRetry = async (envelope, ingestUrl, token) => {
|
|
103
86
|
let attempt = 0;
|
|
104
87
|
let delayMs = 1000;
|
|
105
88
|
while (true) {
|
|
106
89
|
try {
|
|
107
|
-
await sendOnce(
|
|
90
|
+
await sendOnce(envelope, ingestUrl, token);
|
|
108
91
|
return;
|
|
109
92
|
}
|
|
110
93
|
catch (e) {
|
|
@@ -116,17 +99,15 @@ const sendWithRetry = async (events, ingestUrl, token) => {
|
|
|
116
99
|
}
|
|
117
100
|
}
|
|
118
101
|
};
|
|
119
|
-
const sendOnce = async (
|
|
120
|
-
const
|
|
121
|
-
const body = events.length === 1 ? events[0] : { events };
|
|
122
|
-
const resp = await fetch(url, {
|
|
102
|
+
const sendOnce = async (envelope, ingestUrl, token) => {
|
|
103
|
+
const resp = await fetch(`${ingestUrl}/v1/events:batch`, {
|
|
123
104
|
method: 'POST',
|
|
124
105
|
headers: {
|
|
125
106
|
'Content-Type': 'application/json',
|
|
126
107
|
Authorization: `Bearer ${token}`,
|
|
127
108
|
'Sentori-Sdk': `react-native/${SDK_VERSION}`,
|
|
128
109
|
},
|
|
129
|
-
body: JSON.stringify(
|
|
110
|
+
body: JSON.stringify(envelope),
|
|
130
111
|
});
|
|
131
112
|
if (resp.status === 429) {
|
|
132
113
|
let retryAfterMs = 5000;
|
|
@@ -144,22 +125,19 @@ const sendOnce = async (events, ingestUrl, token) => {
|
|
|
144
125
|
if (resp.status >= 500) {
|
|
145
126
|
throw new Error(`server-${resp.status}`);
|
|
146
127
|
}
|
|
147
|
-
// 4xx other than 429 = client error
|
|
128
|
+
// 4xx other than 429 = client error; per-item outcomes are the
|
|
129
|
+
// server's business — drop silently rather than crashloop.
|
|
148
130
|
};
|
|
149
131
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
150
132
|
const getAsyncStorage = async () => {
|
|
151
|
-
//
|
|
152
|
-
//
|
|
133
|
+
// Host may have the JS package without pod install / prebuild →
|
|
134
|
+
// getItem would crash from a microtask outside our reach.
|
|
153
135
|
if (!isAnyNativeModuleLinked(['RNCAsyncStorage', 'AsyncStorageModule'])) {
|
|
154
136
|
return null;
|
|
155
137
|
}
|
|
156
138
|
try {
|
|
157
|
-
// Resolve via the host's runtime `require` rather than `import()
|
|
158
|
-
//
|
|
159
|
-
// peer dep isn't installed in monorepo-root CI, which made `bun
|
|
160
|
-
// run build:sdks` fail to find the type declarations. The peer is
|
|
161
|
-
// optional at runtime anyway — the isAnyNativeModuleLinked guard
|
|
162
|
-
// above already returned `null` if the package isn't installed.
|
|
139
|
+
// Resolve via the host's runtime `require` rather than `import()`
|
|
140
|
+
// — the peer dep is optional and absent in monorepo CI.
|
|
163
141
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
164
142
|
const mod = require('@react-native-async-storage/async-storage');
|
|
165
143
|
return mod.default ?? mod;
|
|
@@ -169,6 +147,8 @@ const getAsyncStorage = async () => {
|
|
|
169
147
|
}
|
|
170
148
|
};
|
|
171
149
|
const persist = async (events) => {
|
|
150
|
+
if (events.length === 0)
|
|
151
|
+
return;
|
|
172
152
|
const AsyncStorage = await getAsyncStorage();
|
|
173
153
|
if (!AsyncStorage)
|
|
174
154
|
return;
|
|
@@ -200,175 +180,19 @@ export const drainOfflineQueue = async () => {
|
|
|
200
180
|
// best-effort
|
|
201
181
|
}
|
|
202
182
|
};
|
|
203
|
-
export const __resetForTests = () => {
|
|
204
|
-
_queue = [];
|
|
205
|
-
if (_flushTimer)
|
|
206
|
-
clearTimeout(_flushTimer);
|
|
207
|
-
_flushTimer = null;
|
|
208
|
-
if (_spanTimer)
|
|
209
|
-
clearInterval(_spanTimer);
|
|
210
|
-
_spanTimer = null;
|
|
211
|
-
_started = false;
|
|
212
|
-
};
|
|
213
|
-
export const __peekQueue = () => _queue;
|
|
214
|
-
/**
|
|
215
|
-
* Phase 26 sub-B: session ping transport. Best-effort; we don't queue
|
|
216
|
-
* pings the way we queue events because they fire on background and
|
|
217
|
-
* AsyncStorage writes during background can be killed by the OS. If
|
|
218
|
-
* the network's down, the ping is lost — the session counters tolerate
|
|
219
|
-
* this.
|
|
220
|
-
*/
|
|
221
|
-
export const sendSessionPing = async (ingestUrl, token, ping) => {
|
|
222
|
-
try {
|
|
223
|
-
await fetch(`${ingestUrl}/v1/sessions`, {
|
|
224
|
-
body: JSON.stringify(ping),
|
|
225
|
-
headers: {
|
|
226
|
-
Authorization: `Bearer ${token}`,
|
|
227
|
-
'Content-Type': 'application/json',
|
|
228
|
-
'Sentori-Sdk': `react-native/${SDK_VERSION}`,
|
|
229
|
-
},
|
|
230
|
-
method: 'POST',
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
catch {
|
|
234
|
-
// best-effort
|
|
235
|
-
}
|
|
236
|
-
};
|
|
237
|
-
/**
|
|
238
|
-
* v1.1 chunk B — flush a batched set of `sentori.track()` analytics
|
|
239
|
-
* events. The host SDK batches calls into a fixed-size ring drained
|
|
240
|
-
* every 30 s. Best-effort; a failure drops the batch.
|
|
241
|
-
*/
|
|
242
|
-
export const sendTrackBatch = async (ingestUrl, token, events) => {
|
|
243
|
-
if (events.length === 0)
|
|
244
|
-
return;
|
|
245
|
-
try {
|
|
246
|
-
await fetch(`${ingestUrl}/v1/track:batch`, {
|
|
247
|
-
body: JSON.stringify({ events }),
|
|
248
|
-
headers: {
|
|
249
|
-
Authorization: `Bearer ${token}`,
|
|
250
|
-
'Content-Type': 'application/json',
|
|
251
|
-
'Sentori-Sdk': `react-native/${SDK_VERSION}`,
|
|
252
|
-
},
|
|
253
|
-
method: 'POST',
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
catch {
|
|
257
|
-
// best-effort
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
/**
|
|
261
|
-
* v0.8.3 — flush a batched set of custom metrics. The host SDK
|
|
262
|
-
* batches recordMetric() calls into a fixed-size ring (drained on
|
|
263
|
-
* a timer + at next captureException) so a busy loop doesn't spin
|
|
264
|
-
* up one fetch per point. Best-effort, no retry.
|
|
265
|
-
*/
|
|
266
|
-
export const sendMetricsBatch = async (ingestUrl, token, metrics) => {
|
|
267
|
-
if (metrics.length === 0)
|
|
268
|
-
return;
|
|
269
|
-
try {
|
|
270
|
-
await fetch(`${ingestUrl}/v1/metrics:batch`, {
|
|
271
|
-
body: JSON.stringify({ metrics }),
|
|
272
|
-
headers: {
|
|
273
|
-
Authorization: `Bearer ${token}`,
|
|
274
|
-
'Content-Type': 'application/json',
|
|
275
|
-
'Sentori-Sdk': `react-native/${SDK_VERSION}`,
|
|
276
|
-
},
|
|
277
|
-
method: 'POST',
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
catch {
|
|
281
|
-
// best-effort
|
|
282
|
-
}
|
|
283
|
-
};
|
|
284
|
-
/**
|
|
285
|
-
* v2.1 W2 — POST a batched set of auto-instrument runtime metric
|
|
286
|
-
* points. Sibling of sendMetricsBatch; different endpoint
|
|
287
|
-
* (`/v1/runtime-metrics:batch`) because the storage shape +
|
|
288
|
-
* validation rules + rate-limit budget differ — see
|
|
289
|
-
* docs/design/v2-metrics.md.
|
|
290
|
-
*
|
|
291
|
-
* Returns true on 2xx so the caller can leave the batch drained;
|
|
292
|
-
* returns false on anything else (network error / non-2xx) so the
|
|
293
|
-
* caller rebuffer-and-retries on the next flush via
|
|
294
|
-
* `rebufferRuntimeMetrics(batch)`.
|
|
295
|
-
*/
|
|
296
|
-
export const sendRuntimeMetricsBatch = async (ingestUrl, token, metrics) => {
|
|
297
|
-
if (metrics.length === 0)
|
|
298
|
-
return true;
|
|
299
|
-
try {
|
|
300
|
-
const resp = await fetch(`${ingestUrl}/v1/runtime-metrics:batch`, {
|
|
301
|
-
body: JSON.stringify({ metrics }),
|
|
302
|
-
headers: {
|
|
303
|
-
Authorization: `Bearer ${token}`,
|
|
304
|
-
'Content-Type': 'application/json',
|
|
305
|
-
'Sentori-Sdk': `react-native/${SDK_VERSION}`,
|
|
306
|
-
},
|
|
307
|
-
method: 'POST',
|
|
308
|
-
});
|
|
309
|
-
return resp.ok;
|
|
310
|
-
}
|
|
311
|
-
catch {
|
|
312
|
-
return false;
|
|
313
|
-
}
|
|
314
|
-
};
|
|
315
183
|
/**
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
* pass `eventId` if you're reporting a specific crash the user just
|
|
320
|
-
* saw so the report links to that event's issue automatically.
|
|
321
|
-
*/
|
|
322
|
-
export const sendUserReport = async (ingestUrl, token, report) => {
|
|
323
|
-
try {
|
|
324
|
-
const resp = await fetch(`${ingestUrl}/v1/user-reports`, {
|
|
325
|
-
body: JSON.stringify(report),
|
|
326
|
-
headers: {
|
|
327
|
-
Authorization: `Bearer ${token}`,
|
|
328
|
-
'Content-Type': 'application/json',
|
|
329
|
-
'Sentori-Sdk': `react-native/${SDK_VERSION}`,
|
|
330
|
-
},
|
|
331
|
-
method: 'POST',
|
|
332
|
-
});
|
|
333
|
-
if (!resp.ok)
|
|
334
|
-
return null;
|
|
335
|
-
const j = (await resp.json());
|
|
336
|
-
return j;
|
|
337
|
-
}
|
|
338
|
-
catch {
|
|
339
|
-
return null;
|
|
340
|
-
}
|
|
341
|
-
};
|
|
342
|
-
// ──────────────────────────────────────────────────────────────────
|
|
343
|
-
// Phase 42 sub-D.05 — attachment upload pipeline
|
|
344
|
-
// ──────────────────────────────────────────────────────────────────
|
|
345
|
-
/**
|
|
346
|
-
* Upload a base64-encoded binary blob as an attachment for a known
|
|
347
|
-
* event. The event must NOT have been POSTed yet — the server-side
|
|
348
|
-
* ingest validation in events.rs only honours `event.attachments[].ref`
|
|
349
|
-
* when the matching `event_attachments` row already exists for the
|
|
350
|
-
* same (event_id, project_id). Caller's contract:
|
|
351
|
-
*
|
|
352
|
-
* 1. Generate `event.id` (uuidV7).
|
|
353
|
-
* 2. Build the blob (e.g. via `captureScreenshot`).
|
|
354
|
-
* 3. `await uploadAttachment(...)` → get `{ ref, sizeBytes, mediaType }`.
|
|
355
|
-
* 4. Push `{ ref, kind, ... }` into `event.attachments` then enqueue.
|
|
356
|
-
*
|
|
357
|
-
* Returns `null` on any non-fatal failure (network down, store
|
|
358
|
-
* disabled, 4xx, timeout). The error event still ships without the
|
|
359
|
-
* attachment so we never lose the actual crash.
|
|
184
|
+
* Upload one attachment for an already-enqueued event. Returns null
|
|
185
|
+
* on any non-fatal failure — the event still ships without the
|
|
186
|
+
* attachment so the crash itself is never lost.
|
|
360
187
|
*/
|
|
361
188
|
export const uploadAttachment = async (eventId, kind, blob, opts = {}) => {
|
|
362
189
|
const config = getConfig();
|
|
363
190
|
if (!config)
|
|
364
191
|
return null;
|
|
365
192
|
const url = `${config.ingestUrl}/v1/events/${encodeURIComponent(eventId)}/attachments/${encodeURIComponent(kind)}`;
|
|
366
|
-
// RN-style multipart: `{ uri, type, name }` is what the native
|
|
367
|
-
// FormData implementation expects for a file part — the bridge
|
|
368
|
-
// serializes a data: URI without us having to allocate a Blob.
|
|
369
193
|
const form = new FormData();
|
|
370
194
|
form.append('file', {
|
|
371
|
-
name:
|
|
195
|
+
name: `${kind}.bin`,
|
|
372
196
|
type: blob.mediaType,
|
|
373
197
|
uri: `data:${blob.mediaType};base64,${blob.base64}`,
|
|
374
198
|
});
|
|
@@ -382,63 +206,26 @@ export const uploadAttachment = async (eventId, kind, blob, opts = {}) => {
|
|
|
382
206
|
},
|
|
383
207
|
method: 'POST',
|
|
384
208
|
});
|
|
385
|
-
// Phase 48 sub-A: accept any 2xx instead of strict 201. Reverse
|
|
386
|
-
// proxies in front of ingest occasionally rewrite 201 → 202 (the
|
|
387
|
-
// exact symptom Insight observed), and a 200 is also a valid
|
|
388
|
-
// "stored" response. We still require a JSON body shaped like
|
|
389
|
-
// UploadResponse; non-JSON bodies fall through to null.
|
|
390
209
|
if (resp.status < 200 || resp.status >= 300) {
|
|
391
|
-
|
|
392
|
-
// rc.6 — surface the status in dev so Insight-style triage
|
|
393
|
-
// doesn't have to guess between 413/422/500. Pre-rc.6 only
|
|
394
|
-
// the breadcrumb carried the reason; logcat only saw the
|
|
395
|
-
// generic `upload returned null` line.
|
|
396
|
-
logger.debug('transport', 'attachment upload non-2xx', 'eventId=', eventId, 'kind=', kind, 'status=', resp.status);
|
|
397
|
-
return null;
|
|
398
|
-
}
|
|
399
|
-
const j = (await resp.json().catch(() => null));
|
|
400
|
-
if (!j || !j.refId) {
|
|
401
|
-
noteAttachmentFailure(eventId, kind, 'bad_response_body');
|
|
402
|
-
logger.debug('transport', 'attachment upload bad-response-body', 'eventId=', eventId, 'kind=', kind, 'status=', resp.status);
|
|
210
|
+
logger.warn(`attachment ${kind} upload http_${resp.status}`);
|
|
403
211
|
return null;
|
|
404
212
|
}
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
mediaType: j.mediaType,
|
|
408
|
-
ref: j.refId,
|
|
409
|
-
sizeBytes: j.sizeBytes,
|
|
410
|
-
source: opts.source ?? 'js',
|
|
411
|
-
};
|
|
213
|
+
const body = (await resp.json());
|
|
214
|
+
return body.refId ? { ref: body.refId } : null;
|
|
412
215
|
}
|
|
413
216
|
catch (e) {
|
|
414
|
-
|
|
415
|
-
noteAttachmentFailure(eventId, kind, reason);
|
|
416
|
-
logger.debug('transport', 'attachment upload fetch threw', 'eventId=', eventId, 'kind=', kind, 'reason=', reason);
|
|
217
|
+
logger.warn(`attachment ${kind} upload failed: ${String(e)}`);
|
|
417
218
|
return null;
|
|
418
219
|
}
|
|
419
220
|
};
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
* tell upload-broke from never-tried at a glance.
|
|
431
|
-
*/
|
|
432
|
-
function noteAttachmentFailure(eventId, kind, reason) {
|
|
433
|
-
addBreadcrumb('custom', {
|
|
434
|
-
category: 'sentori.attach.failed',
|
|
435
|
-
eventId,
|
|
436
|
-
kind,
|
|
437
|
-
reason,
|
|
438
|
-
});
|
|
439
|
-
}
|
|
440
|
-
function filenameFor(kind, mediaType) {
|
|
441
|
-
const ext = mediaType.split('/')[1] ?? 'bin';
|
|
442
|
-
return `${kind}.${ext}`;
|
|
443
|
-
}
|
|
221
|
+
export const __resetForTests = () => {
|
|
222
|
+
_queue = [];
|
|
223
|
+
_assertStats = new Map();
|
|
224
|
+
if (_flushTimer)
|
|
225
|
+
clearTimeout(_flushTimer);
|
|
226
|
+
_flushTimer = null;
|
|
227
|
+
_started = false;
|
|
228
|
+
};
|
|
229
|
+
export const __peekQueue = () => _queue;
|
|
230
|
+
export const __peekAssertStats = () => [..._assertStats.values()];
|
|
444
231
|
//# sourceMappingURL=transport.js.map
|
package/lib/transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,qEAAqE;AACrE,oEAAoE;AACpE,kEAAkE;AAClE,YAAY;AAGZ,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,WAAW,GAAG,kBAAkB,CAAC;AACvC,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B,IAAI,MAAM,GAAgB,EAAE,CAAC;AAC7B,IAAI,YAAY,GAAG,IAAI,GAAG,EAAsB,CAAC;AACjD,IAAI,WAAW,GAAyC,IAAI,CAAC;AAC7D,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAgB,EAAQ,EAAE;IAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,IAAI,MAAM,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,KAAK,KAAK,EAAE,CAAC;IACf,CAAC;SAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxB,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,WAAW,GAAG,IAAI,CAAC;YACnB,KAAK,KAAK,EAAE,CAAC;QACf,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACxB,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAW,EAAE,OAAe,EAAQ,EAAE;IAC9E,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACnF,IAAI,EAAE;QAAE,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;;QACtB,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9C,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,+DAA+D;IAC/D,sCAAsC;IACtC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,WAAW,GAAG,IAAI,CAAC;YACnB,KAAK,KAAK,EAAE,CAAC;QACf,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAS,EAAE;IACvC,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,IAAI,WAAW,EAAE,CAAC;QAChB,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1B,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEtD,MAAM,QAAQ,GAAkB,EAAE,MAAM,EAAE,CAAC;IAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;QAClE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EACzB,QAAuB,EACvB,SAAiB,EACjB,KAAa,EACE,EAAE;IACjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,IAAI,OAAO,IAAI,SAAS;gBAAE,MAAM,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EACpB,QAAuB,EACvB,SAAiB,EACjB,KAAa,EACE,EAAE;IACjB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,kBAAkB,EAAE;QACvD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,aAAa,EAAE,gBAAgB,WAAW,EAAE;SAC7C;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;KAC/B,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACxB,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAA8B,CAAC;YAC3D,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;gBAAE,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QACD,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,+DAA+D;IAC/D,2DAA2D;AAC7D,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAQnF,MAAM,eAAe,GAAG,KAAK,IAAsC,EAAE;IACnE,gEAAgE;IAChE,0DAA0D;IAC1D,IAAI,CAAC,uBAAuB,CAAC,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,kEAAkE;QAClE,wDAAwD;QACxD,iEAAiE;QACjE,MAAM,GAAG,GAAG,OAAO,CAAC,2CAA2C,CAE3C,CAAC;QACrB,OAAO,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,EAAE,MAAmB,EAAiB,EAAE;IAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAChC,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;IAC7C,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,IAAI,GAAgB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,IAAmB,EAAE;IACzD,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;IAC7C,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAe,EACf,IAAqD,EACrD,IAA2C,EAC3C,IAAI,GAA0C,EAAE,EACf,EAAE;IACnC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,SAAS,cAAc,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IAEnH,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,GAAG,IAAI,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,SAAS;QACpB,GAAG,EAAE,QAAQ,IAAI,CAAC,SAAS,WAAW,IAAI,CAAC,MAAM,EAAE;KACjC,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC5B,IAAI,EAAE,IAAI;YACV,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE;gBACvC,aAAa,EAAE,gBAAgB,WAAW,EAAE;aAC7C;YACD,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAuB,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,mBAAmB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAS,EAAE;IACxC,MAAM,GAAG,EAAE,CAAC;IACZ,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,IAAI,WAAW;QAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,WAAW,GAAG,IAAI,CAAC;IACnB,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAyB,EAAE,CAAC,MAAM,CAAC;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAA0B,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC"}
|
package/lib/verbs.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { EventData, Surface, TraceOptions } from '@goliapkg/sentori-core';
|
|
2
|
+
export declare const error: (err: unknown, data?: EventData | undefined) => string | undefined;
|
|
3
|
+
export declare const warn: (name: string, data?: EventData | undefined) => string | undefined;
|
|
4
|
+
/** SDK-internal: a detected warn scenario with an explicit surface. */
|
|
5
|
+
export declare const warnDetected: (scenario: string, surface: Surface, data?: EventData) => string;
|
|
6
|
+
export declare const trace: (name: string, data?: EventData | undefined, opts?: TraceOptions | undefined) => string | undefined;
|
|
7
|
+
export declare const assert: (name: string, ok: boolean, data?: EventData | undefined) => string | undefined;
|
|
8
|
+
export declare const probe: (ref: string, data?: EventData | undefined) => string | undefined;
|
|
9
|
+
export declare const verbs: {
|
|
10
|
+
error: (err: unknown, data?: EventData) => string;
|
|
11
|
+
warn: (name: string, data?: EventData) => string;
|
|
12
|
+
trace: (name: string, data?: EventData, opts?: TraceOptions) => string;
|
|
13
|
+
assert: (name: string, ok: boolean, data?: EventData) => string;
|
|
14
|
+
probe: (ref: string, data?: EventData) => string;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=verbs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verbs.d.ts","sourceRoot":"","sources":["../src/verbs.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,SAAS,EAGT,OAAO,EACP,YAAY,EAGb,MAAM,wBAAwB,CAAC;AAwGhC,eAAO,MAAM,KAAK,oEAOhB,CAAC;AAEH,eAAO,MAAM,IAAI,oEAWhB,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,YAAY,aACb,MAAM,WACP,OAAO,SACT,SAAS,KACf,MACiE,CAAC;AAErE,eAAO,MAAM,KAAK,qGAQjB,CAAC;AAEF,eAAO,MAAM,MAAM,iFAQlB,CAAC;AAEF,eAAO,MAAM,KAAK,mEAIhB,CAAC;AAKH,eAAO,MAAM,KAAK;IAChB,KAAK,QAAQ,OAAO,SAAS,SAAS,KAAG,MAAM;IAC/C,IAAI,SAAS,MAAM,SAAS,SAAS,KAAG,MAAM;IAC9C,KAAK,SAAS,MAAM,SAAS,SAAS,SAAS,YAAY,KAAG,MAAM;IAEpE,MAAM,SAAS,MAAM,MAAM,OAAO,SAAS,SAAS,KAAG,MAAM;IAE7D,KAAK,QAAQ,MAAM,SAAS,SAAS,KAAG,MAAM;CAC/C,CAAC"}
|