@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.
Files changed (308) hide show
  1. package/MIGRATION.md +131 -0
  2. package/README.md +40 -30
  3. package/android/build.gradle +21 -0
  4. package/android/src/main/java/com/sentori/SentoriCrashHandler.kt +29 -0
  5. package/android/src/main/java/com/sentori/SentoriModule.kt +8 -0
  6. package/android/src/main/java/com/sentori/SentoriScreenshotCapture.kt +36 -4
  7. package/android/src/test/java/com/sentori/SentoriCrashHandlerTest.kt +7 -2
  8. package/android/src/test/resources/robolectric.properties +10 -0
  9. package/ios/SentoriCrashHandler.swift +48 -4
  10. package/ios/SentoriModule.swift +12 -0
  11. package/ios/SentoriScreenshotCapture.swift +34 -3
  12. package/lib/config.d.ts +17 -47
  13. package/lib/config.d.ts.map +1 -1
  14. package/lib/config.js +3 -0
  15. package/lib/config.js.map +1 -1
  16. package/lib/device.d.ts +5 -0
  17. package/lib/device.d.ts.map +1 -0
  18. package/lib/device.js +29 -0
  19. package/lib/device.js.map +1 -0
  20. package/lib/emit-hooks.d.ts +7 -0
  21. package/lib/emit-hooks.d.ts.map +1 -0
  22. package/lib/emit-hooks.js +24 -0
  23. package/lib/emit-hooks.js.map +1 -0
  24. package/lib/error-boundary.d.ts.map +1 -1
  25. package/lib/error-boundary.js +1 -1
  26. package/lib/error-boundary.js.map +1 -1
  27. package/lib/feature-flags.d.ts.map +1 -1
  28. package/lib/handlers/dev-symbolicate.d.ts +1 -1
  29. package/lib/handlers/dev-symbolicate.d.ts.map +1 -1
  30. package/lib/handlers/dev-symbolicate.js +2 -0
  31. package/lib/handlers/dev-symbolicate.js.map +1 -1
  32. package/lib/handlers/global.js +1 -1
  33. package/lib/handlers/global.js.map +1 -1
  34. package/lib/handlers/lifecycle.js +3 -3
  35. package/lib/handlers/lifecycle.js.map +1 -1
  36. package/lib/handlers/network.d.ts +2 -2
  37. package/lib/handlers/network.d.ts.map +1 -1
  38. package/lib/handlers/network.js +69 -187
  39. package/lib/handlers/network.js.map +1 -1
  40. package/lib/handlers/promise.js +1 -1
  41. package/lib/handlers/promise.js.map +1 -1
  42. package/lib/handlers/screenshot.d.ts.map +1 -1
  43. package/lib/handlers/screenshot.js +3 -12
  44. package/lib/handlers/screenshot.js.map +1 -1
  45. package/lib/index.d.ts +32 -109
  46. package/lib/index.d.ts.map +1 -1
  47. package/lib/index.js +54 -103
  48. package/lib/index.js.map +1 -1
  49. package/lib/init.d.ts +3 -150
  50. package/lib/init.d.ts.map +1 -1
  51. package/lib/init.js +100 -261
  52. package/lib/init.js.map +1 -1
  53. package/lib/long-task-monitor.d.ts +1 -7
  54. package/lib/long-task-monitor.d.ts.map +1 -1
  55. package/lib/long-task-monitor.js +37 -58
  56. package/lib/long-task-monitor.js.map +1 -1
  57. package/lib/mask.d.ts +5 -13
  58. package/lib/mask.d.ts.map +1 -1
  59. package/lib/mask.js +29 -30
  60. package/lib/mask.js.map +1 -1
  61. package/lib/mobile-vitals.d.ts +3 -31
  62. package/lib/mobile-vitals.d.ts.map +1 -1
  63. package/lib/mobile-vitals.js +22 -61
  64. package/lib/mobile-vitals.js.map +1 -1
  65. package/lib/native-pending.d.ts +3 -0
  66. package/lib/native-pending.d.ts.map +1 -0
  67. package/lib/native-pending.js +64 -0
  68. package/lib/native-pending.js.map +1 -0
  69. package/lib/native.d.ts +4 -11
  70. package/lib/native.d.ts.map +1 -1
  71. package/lib/native.js +23 -0
  72. package/lib/native.js.map +1 -1
  73. package/lib/navigation.d.ts +3 -17
  74. package/lib/navigation.d.ts.map +1 -1
  75. package/lib/navigation.js +32 -133
  76. package/lib/navigation.js.map +1 -1
  77. package/lib/netinfo.d.ts +1 -1
  78. package/lib/netinfo.d.ts.map +1 -1
  79. package/lib/netinfo.js +2 -2
  80. package/lib/netinfo.js.map +1 -1
  81. package/lib/push.d.ts.map +1 -1
  82. package/lib/push.js +2 -4
  83. package/lib/push.js.map +1 -1
  84. package/lib/rage-tap.d.ts.map +1 -1
  85. package/lib/rage-tap.js +56 -23
  86. package/lib/rage-tap.js.map +1 -1
  87. package/lib/replay-screens.d.ts +15 -0
  88. package/lib/replay-screens.d.ts.map +1 -0
  89. package/lib/replay-screens.js +87 -0
  90. package/lib/replay-screens.js.map +1 -0
  91. package/lib/replay.d.ts.map +1 -1
  92. package/lib/replay.js +3 -24
  93. package/lib/replay.js.map +1 -1
  94. package/lib/responsiveness-detector.d.ts +18 -0
  95. package/lib/responsiveness-detector.d.ts.map +1 -0
  96. package/lib/responsiveness-detector.js +55 -0
  97. package/lib/responsiveness-detector.js.map +1 -0
  98. package/lib/scope.d.ts +7 -0
  99. package/lib/scope.d.ts.map +1 -0
  100. package/lib/scope.js +41 -0
  101. package/lib/scope.js.map +1 -0
  102. package/lib/transport.d.ts +19 -92
  103. package/lib/transport.d.ts.map +1 -1
  104. package/lib/transport.js +75 -288
  105. package/lib/transport.js.map +1 -1
  106. package/lib/verbs.d.ts +16 -0
  107. package/lib/verbs.d.ts.map +1 -0
  108. package/lib/verbs.js +153 -0
  109. package/lib/verbs.js.map +1 -0
  110. package/package.json +4 -3
  111. package/src/__tests__/iron-rule.test.ts +128 -0
  112. package/src/__tests__/replay-screens.test.ts +63 -0
  113. package/src/__tests__/responsiveness-detector.test.ts +74 -0
  114. package/src/__tests__/screenshot.test.ts +0 -2
  115. package/src/__tests__/transport.test.ts +66 -213
  116. package/src/__tests__/verbs.test.ts +91 -0
  117. package/src/config.ts +20 -47
  118. package/src/device.ts +36 -0
  119. package/src/emit-hooks.ts +30 -0
  120. package/src/error-boundary.tsx +1 -1
  121. package/src/handlers/dev-symbolicate.ts +2 -1
  122. package/src/handlers/global.ts +1 -1
  123. package/src/handlers/lifecycle.ts +3 -3
  124. package/src/handlers/network.ts +95 -211
  125. package/src/handlers/promise.ts +1 -1
  126. package/src/handlers/screenshot.ts +3 -11
  127. package/src/index.ts +84 -215
  128. package/src/init.ts +115 -449
  129. package/src/long-task-monitor.ts +42 -64
  130. package/src/mask.ts +29 -31
  131. package/src/mobile-vitals.ts +22 -82
  132. package/src/native-pending.ts +92 -0
  133. package/src/native.ts +33 -0
  134. package/src/navigation.ts +34 -142
  135. package/src/netinfo.ts +3 -3
  136. package/src/push.ts +2 -5
  137. package/src/rage-tap.tsx +72 -25
  138. package/src/replay-screens.ts +95 -0
  139. package/src/replay.ts +3 -20
  140. package/src/responsiveness-detector.ts +66 -0
  141. package/src/scope.ts +50 -0
  142. package/src/transport.ts +84 -371
  143. package/src/verbs.ts +198 -0
  144. package/lib/breadcrumbs.d.ts +0 -18
  145. package/lib/breadcrumbs.d.ts.map +0 -1
  146. package/lib/breadcrumbs.js +0 -42
  147. package/lib/breadcrumbs.js.map +0 -1
  148. package/lib/bundle-info.d.ts +0 -12
  149. package/lib/bundle-info.d.ts.map +0 -1
  150. package/lib/bundle-info.js +0 -73
  151. package/lib/bundle-info.js.map +0 -1
  152. package/lib/capture.d.ts +0 -140
  153. package/lib/capture.d.ts.map +0 -1
  154. package/lib/capture.js +0 -511
  155. package/lib/capture.js.map +0 -1
  156. package/lib/compat/sentry.d.ts +0 -126
  157. package/lib/compat/sentry.d.ts.map +0 -1
  158. package/lib/compat/sentry.js +0 -332
  159. package/lib/compat/sentry.js.map +0 -1
  160. package/lib/control-channel.d.ts +0 -6
  161. package/lib/control-channel.d.ts.map +0 -1
  162. package/lib/control-channel.js +0 -96
  163. package/lib/control-channel.js.map +0 -1
  164. package/lib/expo-compat.d.ts +0 -270
  165. package/lib/expo-compat.d.ts.map +0 -1
  166. package/lib/expo-compat.js +0 -500
  167. package/lib/expo-compat.js.map +0 -1
  168. package/lib/feedback-widget.d.ts +0 -35
  169. package/lib/feedback-widget.d.ts.map +0 -1
  170. package/lib/feedback-widget.js +0 -193
  171. package/lib/feedback-widget.js.map +0 -1
  172. package/lib/feedback.d.ts +0 -2
  173. package/lib/feedback.d.ts.map +0 -1
  174. package/lib/feedback.js +0 -17
  175. package/lib/feedback.js.map +0 -1
  176. package/lib/heartbeat.d.ts +0 -9
  177. package/lib/heartbeat.d.ts.map +0 -1
  178. package/lib/heartbeat.js +0 -138
  179. package/lib/heartbeat.js.map +0 -1
  180. package/lib/index.js.bak +0 -64
  181. package/lib/install-id.d.ts +0 -17
  182. package/lib/install-id.d.ts.map +0 -1
  183. package/lib/install-id.js +0 -125
  184. package/lib/install-id.js.map +0 -1
  185. package/lib/lifecycle.d.ts +0 -28
  186. package/lib/lifecycle.d.ts.map +0 -1
  187. package/lib/lifecycle.js +0 -73
  188. package/lib/lifecycle.js.map +0 -1
  189. package/lib/measure.d.ts +0 -4
  190. package/lib/measure.d.ts.map +0 -1
  191. package/lib/measure.js +0 -25
  192. package/lib/measure.js.map +0 -1
  193. package/lib/metrics.d.ts +0 -24
  194. package/lib/metrics.d.ts.map +0 -1
  195. package/lib/metrics.js +0 -81
  196. package/lib/metrics.js.map +0 -1
  197. package/lib/pre-crash-sentinel.d.ts +0 -12
  198. package/lib/pre-crash-sentinel.d.ts.map +0 -1
  199. package/lib/pre-crash-sentinel.js +0 -116
  200. package/lib/pre-crash-sentinel.js.map +0 -1
  201. package/lib/report-security.d.ts +0 -40
  202. package/lib/report-security.d.ts.map +0 -1
  203. package/lib/report-security.js +0 -159
  204. package/lib/report-security.js.map +0 -1
  205. package/lib/runtime-metrics-fps.d.ts +0 -19
  206. package/lib/runtime-metrics-fps.d.ts.map +0 -1
  207. package/lib/runtime-metrics-fps.js +0 -128
  208. package/lib/runtime-metrics-fps.js.map +0 -1
  209. package/lib/runtime-metrics-heap.d.ts +0 -13
  210. package/lib/runtime-metrics-heap.d.ts.map +0 -1
  211. package/lib/runtime-metrics-heap.js +0 -67
  212. package/lib/runtime-metrics-heap.js.map +0 -1
  213. package/lib/runtime-metrics-network.d.ts +0 -23
  214. package/lib/runtime-metrics-network.d.ts.map +0 -1
  215. package/lib/runtime-metrics-network.js +0 -99
  216. package/lib/runtime-metrics-network.js.map +0 -1
  217. package/lib/runtime-metrics.d.ts +0 -43
  218. package/lib/runtime-metrics.d.ts.map +0 -1
  219. package/lib/runtime-metrics.js +0 -115
  220. package/lib/runtime-metrics.js.map +0 -1
  221. package/lib/sample-profiler.d.ts +0 -21
  222. package/lib/sample-profiler.d.ts.map +0 -1
  223. package/lib/sample-profiler.js +0 -152
  224. package/lib/sample-profiler.js.map +0 -1
  225. package/lib/sentinel-context.d.ts +0 -4
  226. package/lib/sentinel-context.d.ts.map +0 -1
  227. package/lib/sentinel-context.js +0 -52
  228. package/lib/sentinel-context.js.map +0 -1
  229. package/lib/session-tracker.d.ts +0 -6
  230. package/lib/session-tracker.d.ts.map +0 -1
  231. package/lib/session-tracker.js +0 -50
  232. package/lib/session-tracker.js.map +0 -1
  233. package/lib/stack.d.ts +0 -3
  234. package/lib/stack.d.ts.map +0 -1
  235. package/lib/stack.js +0 -7
  236. package/lib/stack.js.map +0 -1
  237. package/lib/state-snapshots.d.ts +0 -33
  238. package/lib/state-snapshots.d.ts.map +0 -1
  239. package/lib/state-snapshots.js +0 -109
  240. package/lib/state-snapshots.js.map +0 -1
  241. package/lib/track.d.ts +0 -34
  242. package/lib/track.d.ts.map +0 -1
  243. package/lib/track.js +0 -107
  244. package/lib/track.js.map +0 -1
  245. package/lib/trail.d.ts +0 -12
  246. package/lib/trail.d.ts.map +0 -1
  247. package/lib/trail.js +0 -28
  248. package/lib/trail.js.map +0 -1
  249. package/lib/trust-score.d.ts +0 -20
  250. package/lib/trust-score.d.ts.map +0 -1
  251. package/lib/trust-score.js +0 -151
  252. package/lib/trust-score.js.map +0 -1
  253. package/lib/types.d.ts +0 -2
  254. package/lib/types.d.ts.map +0 -1
  255. package/lib/types.js +0 -4
  256. package/lib/types.js.map +0 -1
  257. package/lib/uuid.d.ts +0 -2
  258. package/lib/uuid.d.ts.map +0 -1
  259. package/lib/uuid.js +0 -3
  260. package/lib/uuid.js.map +0 -1
  261. package/src/__tests__/before-send.test.ts +0 -72
  262. package/src/__tests__/breadcrumbs.test.ts +0 -44
  263. package/src/__tests__/capture-replay.test.ts +0 -150
  264. package/src/__tests__/compat-sentry.test.ts +0 -121
  265. package/src/__tests__/control-channel.test.ts +0 -111
  266. package/src/__tests__/install-id.test.ts +0 -60
  267. package/src/__tests__/long-task-monitor.test.ts +0 -59
  268. package/src/__tests__/measure.test.ts +0 -45
  269. package/src/__tests__/navigation.test.ts +0 -175
  270. package/src/__tests__/push.test.ts +0 -238
  271. package/src/__tests__/report-security.test.ts +0 -106
  272. package/src/__tests__/runtime-metrics-instruments.test.ts +0 -109
  273. package/src/__tests__/runtime-metrics-network.test.ts +0 -78
  274. package/src/__tests__/sample-profiler.test.ts +0 -59
  275. package/src/__tests__/stack.test.ts +0 -45
  276. package/src/__tests__/state-snapshots.test.ts +0 -119
  277. package/src/__tests__/tracing.test.ts +0 -201
  278. package/src/__tests__/track.test.ts +0 -91
  279. package/src/__tests__/uuid.test.ts +0 -41
  280. package/src/breadcrumbs.ts +0 -57
  281. package/src/bundle-info.ts +0 -95
  282. package/src/capture.ts +0 -660
  283. package/src/compat/sentry.ts +0 -490
  284. package/src/control-channel.ts +0 -98
  285. package/src/expo-compat.ts +0 -698
  286. package/src/feedback-widget.tsx +0 -316
  287. package/src/feedback.ts +0 -21
  288. package/src/heartbeat.ts +0 -157
  289. package/src/install-id.ts +0 -146
  290. package/src/lifecycle.ts +0 -76
  291. package/src/measure.ts +0 -28
  292. package/src/metrics.ts +0 -94
  293. package/src/pre-crash-sentinel.ts +0 -140
  294. package/src/report-security.ts +0 -165
  295. package/src/runtime-metrics-fps.ts +0 -137
  296. package/src/runtime-metrics-heap.ts +0 -78
  297. package/src/runtime-metrics-network.ts +0 -103
  298. package/src/runtime-metrics.ts +0 -122
  299. package/src/sample-profiler.ts +0 -169
  300. package/src/sentinel-context.ts +0 -60
  301. package/src/session-tracker.ts +0 -53
  302. package/src/stack.ts +0 -10
  303. package/src/state-snapshots.ts +0 -133
  304. package/src/track.ts +0 -123
  305. package/src/trail.ts +0 -32
  306. package/src/trust-score.ts +0 -176
  307. package/src/types.ts +0 -21
  308. package/src/uuid.ts +0 -2
package/src/index.ts CHANGED
@@ -1,232 +1,101 @@
1
+ // @goliapkg/sentori-react-native — the 8-verb surface (design.md §4).
2
+ //
3
+ // sentori.init(config) sentori.user(u) sentori.context(patch)
4
+ // sentori.error(err) sentori.warn(name) sentori.trace(name)
5
+ // sentori.assert(n, ok) sentori.probe(ref)
6
+ //
7
+ // Everything is synchronous, returns immediately, and can never
8
+ // throw into the host app. Learn eight words and you know the whole
9
+ // product. The only additions beyond the verbs: ErrorBoundary (React
10
+ // idiom for the error verb) and the push namespace (carried).
11
+
1
12
  import { init } from './init';
2
- import { addBreadcrumb } from './breadcrumbs';
3
- import {
4
- captureError,
5
- captureException,
6
- captureMessage,
7
- captureStep,
8
- getUser,
9
- sendUserFeedback,
10
- setTag,
11
- setTags,
12
- setUser,
13
- } from './capture';
14
- import { ErrorBoundary } from './error-boundary';
15
- import { FeedbackButton, type FeedbackButtonHandle, type FeedbackButtonProps } from './feedback-widget';
16
- import {
17
- clearAllFeatureFlags,
18
- clearFeatureFlag,
19
- getFeatureFlags,
20
- setFeatureFlag,
21
- } from './feature-flags';
22
- import { clearMaskQuery, registerMaskQuery } from './mask';
23
- import { measureFn } from './measure';
24
- import {
25
- getColdStartMs,
26
- markTimeToFullDisplay,
27
- type TimeToFullDisplayHandle,
28
- } from './mobile-vitals';
29
- import { bindState, recordState, unbindState } from './state-snapshots';
30
- import {
31
- startMoment,
32
- startSpan,
33
- startTrace,
34
- withScopedSpan,
13
+ import { patchContext, setUser } from './scope';
14
+ import { verbs } from './verbs';
15
+
16
+ import type {
17
+ EventData,
18
+ InitConfig,
19
+ TraceOptions,
20
+ User,
35
21
  } from '@goliapkg/sentori-core';
36
- import { getInstallId } from './install-id';
37
- import { flushMetrics, recordMetric } from './metrics';
38
- import { close, flush } from './lifecycle';
39
- import { linkFederatedIdentity, reportPinMismatch, reportSecurity } from './report-security';
40
- import { flushTrack, track } from './track';
41
- import { queryTrustScore } from './trust-score';
42
- import { RageTapCapture } from './rage-tap';
43
- import {
44
- endSession,
45
- markSessionCrashed,
46
- startSession,
47
- } from './session-tracker';
48
22
 
49
23
  export const sentori = {
50
- init,
51
- addBreadcrumb,
52
- setUser,
53
- getUser,
54
- setTag,
55
- setTags,
56
- captureError,
57
- captureException,
58
- captureMessage,
59
- captureStep,
60
- sendUserFeedback,
61
- recordMetric,
62
- flushMetrics,
63
- track,
64
- flushTrack,
65
- getInstallId,
66
- reportSecurity,
67
- reportPinMismatch,
68
- queryTrustScore,
69
- linkFederatedIdentity,
70
- measureFn,
71
- startMoment,
72
- startSpan,
73
- startTrace,
74
- withScopedSpan,
75
- bindState,
76
- recordState,
77
- unbindState,
78
- markTimeToFullDisplay,
79
- getColdStartMs,
80
- setFeatureFlag,
81
- clearFeatureFlag,
82
- clearAllFeatureFlags,
83
- getFeatureFlags,
84
- ErrorBoundary,
85
- FeedbackButton,
86
- RageTapCapture,
87
- registerMaskQuery,
88
- clearMaskQuery,
89
- startSession,
90
- endSession,
91
- markSessionCrashed,
92
- flush,
93
- close,
24
+ /** Configure and start the SDK. One call, at app start. */
25
+ init: (config: InitConfig): void => {
26
+ init(config);
27
+ },
28
+ /** Set (or clear, with null) the current user. Drives the
29
+ * breadth × depth importance stats via a salted hash — raw
30
+ * identity never leaves the device. */
31
+ user: (u: User | null): void => {
32
+ setUser(u);
33
+ },
34
+ /** Merge ambient context (feature flags, AB variants, tags)
35
+ * attached to every subsequent event. */
36
+ context: (patch: Record<string, unknown>): void => {
37
+ patchContext(patch);
38
+ },
39
+
40
+ /** 出了什么事 — report a caught-but-fatal-worthy error. Unhandled
41
+ * errors are captured automatically; this is the manual lane. */
42
+ error: (err: unknown, data?: EventData): string => verbs.error(err, data),
43
+ /** 用户哪里不舒服 — a hand-written sub-health report. */
44
+ warn: (name: string, data?: EventData): string => verbs.warn(name, data),
45
+ /** 这里发生了什么 — a neutral observation point. Also lands in the
46
+ * signal ring; `{ quiet: true }` keeps it ring-only. */
47
+ trace: (name: string, data?: EventData, opts?: TraceOptions): string =>
48
+ verbs.trace(name, data, opts),
49
+ /** 这里应该成立吗 — a production assertion. Failure reports and
50
+ * NEVER halts the program (unlike a language-level assert);
51
+ * passes aggregate into a liveness ledger. */
52
+ assert: (name: string, ok: boolean, data?: EventData): string =>
53
+ verbs.assert(name, ok, data),
54
+ /** 那个 bug 回来了吗 — a regression tripwire. Reaching this call is
55
+ * the signal; it never changes control flow. Plant it in the
56
+ * branch that used to break. */
57
+ probe: (ref: string, data?: EventData): string => verbs.probe(ref, data),
94
58
  };
95
59
 
96
60
  export default sentori;
97
61
 
98
- export { init, init as initSentori } from './init';
99
- export { addBreadcrumb } from './breadcrumbs';
100
- export {
101
- captureError,
102
- captureException,
103
- captureMessage,
104
- captureStep,
105
- getUser,
106
- sendUserFeedback,
107
- setTag,
108
- setTags,
109
- setUser,
110
- } from './capture';
111
- export {
112
- startMoment,
113
- startSpan,
114
- startTrace,
115
- withScopedSpan,
116
- type SpanContextLike,
117
- type StartSpanOptions,
118
- } from '@goliapkg/sentori-core';
119
- export { close, flush } from './lifecycle';
62
+ export { init } from './init';
63
+ export { ErrorBoundary } from './error-boundary';
64
+ export { RageTapCapture } from './rage-tap';
65
+ // Privacy: register a query returning nativeIDs that must be
66
+ // blacked out in every captured frame (visual replay, screenshots).
67
+ export { registerMaskQuery } from './mask';
68
+ // Dev-panel helper: crash the native layer on purpose to exercise
69
+ // the pending-crash upload pipeline. Not part of the 8-verb surface.
70
+ export { triggerNativeCrash } from './native';
71
+ export { type NavigationRefLike, useTraceNavigation } from './navigation';
72
+
73
+ // Wire + config types for typed hosts.
120
74
  export type {
121
- CaptureMessageOptions,
122
- MessageLevel,
75
+ AssertStat,
76
+ Device,
77
+ EventData,
78
+ EventKind,
79
+ Frame,
80
+ InitConfig,
81
+ SentoriApi,
82
+ SentoriError,
83
+ Signal,
84
+ Surface,
85
+ TraceOptions,
86
+ User,
87
+ WireEvent,
88
+ WirePayload,
123
89
  } from '@goliapkg/sentori-core';
124
- /** v2.3 — logger surface re-exported from core so hosts can
125
- * `import { setLogLevel } from '@goliapkg/sentori-react-native'`
126
- * per design §3 ("Production override"). `setLogTransport` lets
127
- * hosts route Sentori-internal lines into their own log
128
- * aggregator (Datadog, etc.). */
90
+
91
+ // Logger gate, for hosts debugging Sentori itself.
129
92
  export {
130
93
  getLogLevel,
131
94
  type LogLevel,
132
- logger,
133
- type LogTransport,
134
95
  setLogLevel,
96
+ type LogTransport,
135
97
  setLogTransport,
136
98
  } from '@goliapkg/sentori-core';
137
- export type { ReadyInfo } from './config';
138
- export { ErrorBoundary } from './error-boundary';
139
- export { FeedbackButton, type FeedbackButtonHandle, type FeedbackButtonProps } from './feedback-widget';
140
- export {
141
- clearAllFeatureFlags,
142
- clearFeatureFlag,
143
- getFeatureFlags,
144
- setFeatureFlag,
145
- } from './feature-flags';
146
- export { clearMaskQuery, registerMaskQuery } from './mask';
147
- export { flushMetrics, recordMetric } from './metrics';
148
- export { flushTrack, track, type TrackEvent, type TrackProps } from './track';
149
- export { getInstallId, peekInstallId } from './install-id';
150
- export {
151
- linkFederatedIdentity,
152
- reportPinMismatch,
153
- reportSecurity,
154
- type SecurityReportData,
155
- } from './report-security';
156
- export {
157
- queryTrustScore,
158
- type TrustScore,
159
- type TrustSignal,
160
- } from './trust-score';
161
- export { measureFn } from './measure';
162
- export {
163
- getColdStartMs,
164
- markTimeToFullDisplay,
165
- type TimeToFullDisplayHandle,
166
- } from './mobile-vitals';
167
- export { MomentHandle, type MomentProperties } from '@goliapkg/sentori-core';
168
- export {
169
- bindState,
170
- recordState,
171
- type StateSnapshot,
172
- unbindState,
173
- } from './state-snapshots';
174
- export { RageTapCapture } from './rage-tap';
175
- export {
176
- probeNativeScreenshot,
177
- probeNativeWireframe,
178
- startAnrWatchdog,
179
- stopAnrWatchdog,
180
- triggerNativeCrash,
181
- } from './native';
182
- export { drainReplay, startReplay, stopReplay } from './replay';
183
- export {
184
- endSession,
185
- markSessionCrashed,
186
- startSession,
187
- } from './session-tracker';
188
- export { type NavigationRefLike, useTraceNavigation } from './navigation';
189
-
190
- // v2.9 — Push notifications (iOS this release; v2.10 lights Android).
191
- // Surfaced as a `sentori.push` sub-namespace from the default barrel.
192
- // Opt-in: `sentori.push.register({...})` triggers the OS permission
193
- // prompt. Sentori never prompts on its own.
194
- import * as _push from './push';
195
- export const push = {
196
- register: _push.register,
197
- unregister: _push.unregister,
198
- getCachedIpt: _push.getCachedIpt,
199
- getStatus: _push.getStatus,
200
- requestPermission: _push.requestPermission,
201
- // v2.26 — let the host stamp the current session id on outgoing
202
- // ack POSTs so v2.27 push-correlation BI can JOIN on session_id.
203
- setSessionContext: _push.setSessionContext,
204
- };
205
- export type {
206
- PushRegisterOptions,
207
- PushRegisterResult,
208
- PushNotificationPayload,
209
- } from './push';
210
- export type {
211
- PushMessage,
212
- PushOptions,
213
- PushPriority,
214
- PushReceipt,
215
- PushTicket,
216
- PushTicketStatus,
217
- } from '@goliapkg/sentori-core';
218
99
 
219
- export type {
220
- Event,
221
- SentoriError,
222
- Frame,
223
- Breadcrumb,
224
- BreadcrumbType,
225
- Device,
226
- DeviceOS,
227
- App,
228
- User,
229
- Tags,
230
- EventKind,
231
- Platform,
232
- } from './types';
100
+ // Push namespace — carried as-is; outside the v1 acceptance surface.
101
+ export * as push from './push';