@fixback/expo 0.8.3 → 0.9.1

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 (46) hide show
  1. package/README.md +5 -7
  2. package/dist/FeedbackModal.d.ts +7 -2
  3. package/dist/FeedbackModal.js +30 -3
  4. package/dist/FeedbackModal.js.map +1 -1
  5. package/dist/FixbackProvider.js +5 -1
  6. package/dist/FixbackProvider.js.map +1 -1
  7. package/dist/adapters.js +5 -4
  8. package/dist/adapters.js.map +1 -1
  9. package/dist/breadcrumbs.d.ts +15 -51
  10. package/dist/breadcrumbs.js +22 -169
  11. package/dist/breadcrumbs.js.map +1 -1
  12. package/dist/client-boot.d.ts +40 -0
  13. package/dist/client-boot.js +269 -0
  14. package/dist/client-boot.js.map +1 -0
  15. package/dist/client-connect.d.ts +33 -0
  16. package/dist/client-connect.js +306 -0
  17. package/dist/client-connect.js.map +1 -0
  18. package/dist/client-replay.d.ts +31 -0
  19. package/dist/client-replay.js +165 -0
  20. package/dist/client-replay.js.map +1 -0
  21. package/dist/client-state.d.ts +131 -0
  22. package/dist/client-state.js +158 -0
  23. package/dist/client-state.js.map +1 -0
  24. package/dist/client.d.ts +10 -245
  25. package/dist/client.js +80 -787
  26. package/dist/client.js.map +1 -1
  27. package/dist/error-capture.js +6 -26
  28. package/dist/error-capture.js.map +1 -1
  29. package/dist/identity.d.ts +0 -2
  30. package/dist/identity.js +0 -3
  31. package/dist/identity.js.map +1 -1
  32. package/dist/options.d.ts +263 -0
  33. package/dist/options.js +12 -0
  34. package/dist/options.js.map +1 -0
  35. package/dist/report.d.ts +13 -12
  36. package/dist/report.js +19 -38
  37. package/dist/report.js.map +1 -1
  38. package/dist/submit.d.ts +10 -37
  39. package/dist/submit.js +14 -64
  40. package/dist/submit.js.map +1 -1
  41. package/dist/tokens.d.ts +8 -3
  42. package/dist/tokens.js +12 -6
  43. package/dist/tokens.js.map +1 -1
  44. package/dist/version.d.ts +1 -1
  45. package/dist/version.js +1 -1
  46. package/package.json +4 -3
package/README.md CHANGED
@@ -285,14 +285,12 @@ claim page does.
285
285
 
286
286
  ### Sign in with Apple
287
287
 
288
+ Fixback's connect page does **not** offer Sign in with Apple for now. It offers
289
+ Google, GitHub, and the magic link, and the Apple door is hidden until it is set up
290
+ ([ADR](https://github.com/wemuda/fixback/blob/master/docs/adr/2026-10-01-sign-in-with-apple-is-hidden-until-configured.md)).
288
291
  Because Connect offers **Google** sign-in inside an iOS app, Apple's App Store
289
- Review Guideline 4.8 requires an equivalent **Sign in with Apple** option for apps
290
- distributed on the App Store. Fixback's connect page **offers Sign in with Apple**
291
- alongside Google, GitHub, and the magic link ([ADR-0037](https://github.com/wemuda/fixback/blob/master/docs/adr/0037-sign-in-with-apple-as-a-connect-door.md)),
292
- so an iOS app that uses Connect satisfies Guideline 4.8. Nothing is required of
293
- your app — the door is on the platform's connect page, which the SDK already
294
- opens. Choosing Apple's **Hide My Email** signs the person in under a private
295
- relay address, which becomes its own Fixback Account.
292
+ Review Guideline 4.8 can require an equivalent login option for apps distributed
293
+ on the App Store. Check your app against it before you submit.
296
294
 
297
295
  ## Options
298
296
 
@@ -24,7 +24,7 @@
24
24
  * Deliberately thin: every decision beyond local UI state lives in
25
25
  * `client.ts`, which is where the behaviour is unit-tested.
26
26
  */
27
- import type { ReporterIdentity } from "@fixback/sdk-core";
27
+ import { type MaintenanceNotice, type ReporterIdentity } from "@fixback/sdk-core";
28
28
  import type { ComposerDraft } from "./client";
29
29
  import type { ScreenshotFile, SubmitResult } from "./submit";
30
30
  /** What the provider wires into the composer. */
@@ -40,7 +40,12 @@ export interface FeedbackModalProps {
40
40
  readonly onSignOut: () => void;
41
41
  readonly onDismiss: () => void;
42
42
  readonly onSubmit: (draft: ComposerDraft) => Promise<SubmitResult>;
43
+ /**
44
+ * **Maintenance mode**'s notice while Fixback is down for maintenance (the maintenance-mode
45
+ * ADR): shown above the comment, with Send off until it ends. What the Reporter typed stays.
46
+ */
47
+ readonly maintenance?: MaintenanceNotice | null;
43
48
  /** Release a screenshot the Reporter removed or abandoned (spec 0004 §C). */
44
49
  readonly onDiscardScreenshot?: (screenshot: ScreenshotFile) => void;
45
50
  }
46
- export declare function FeedbackModal({ visible, screenshot, identity, onSignIn, onSignOut, onDismiss, onSubmit, onDiscardScreenshot, }: FeedbackModalProps): import("react").JSX.Element;
51
+ export declare function FeedbackModal({ visible, screenshot, identity, onSignIn, onSignOut, onDismiss, onSubmit, onDiscardScreenshot, maintenance, }: FeedbackModalProps): import("react").JSX.Element;
@@ -30,6 +30,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
30
30
  */
31
31
  const react_1 = require("react");
32
32
  const react_native_1 = require("react-native");
33
+ const sdk_core_1 = require("@fixback/sdk-core");
33
34
  const tokens_1 = require("./tokens");
34
35
  const MONO_FONT = react_native_1.Platform.select({ ios: "Menlo", default: "monospace" });
35
36
  /** How long the "Report sent" confirmation lingers before the composer closes. */
@@ -45,7 +46,7 @@ function BrandMark() {
45
46
  function LockGlyph() {
46
47
  return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.lock, accessibilityElementsHidden: true, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.lockShackle }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.lockBody })] }));
47
48
  }
48
- function FeedbackModal({ visible, screenshot, identity, onSignIn, onSignOut, onDismiss, onSubmit, onDiscardScreenshot, }) {
49
+ function FeedbackModal({ visible, screenshot, identity, onSignIn, onSignOut, onDismiss, onSubmit, onDiscardScreenshot, maintenance = null, }) {
49
50
  const [comment, setComment] = (0, react_1.useState)("");
50
51
  const [includeScreenshot, setIncludeScreenshot] = (0, react_1.useState)(true);
51
52
  const [phase, setPhase] = (0, react_1.useState)("compose");
@@ -65,9 +66,12 @@ function FeedbackModal({ visible, screenshot, identity, onSignIn, onSignOut, onD
65
66
  };
66
67
  }, [visible]);
67
68
  const busy = phase === "sending" || phase === "sent";
69
+ // Send is off while maintenance mode's notice shows: a report sent now would only be held.
70
+ const notice = maintenance ? (0, sdk_core_1.maintenanceCopy)(maintenance) : null;
71
+ const sendDisabled = busy || notice !== null;
68
72
  const connected = identity.status === "connected";
69
73
  async function send() {
70
- if (busy)
74
+ if (sendDisabled)
71
75
  return;
72
76
  setPhase("sending");
73
77
  // No Kind on the draft — analysis classifies the Issue server-side (ADR-0023).
@@ -79,6 +83,10 @@ function FeedbackModal({ visible, screenshot, identity, onSignIn, onSignOut, onD
79
83
  setPhase("sent");
80
84
  dismissTimer.current = setTimeout(onDismiss, SENT_DISMISS_MS);
81
85
  }
86
+ else if (result.reason === "maintenance") {
87
+ // Held for maintenance: a notice, not a failure — the client shows it, and the draft stays.
88
+ setPhase("compose");
89
+ }
82
90
  else {
83
91
  setPhase("failed");
84
92
  }
@@ -105,7 +113,7 @@ function FeedbackModal({ visible, screenshot, identity, onSignIn, onSignOut, onD
105
113
  const showScreenshot = screenshot !== null && includeScreenshot;
106
114
  return ((0, jsx_runtime_1.jsx)(react_native_1.Modal, { visible: visible, transparent: true, animationType: "slide", onRequestClose: dismiss, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.backdrop, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { style: styles.backdropTouch, accessibilityLabel: "Dismiss feedback", onPress: dismiss }), (0, jsx_runtime_1.jsx)(react_native_1.KeyboardAvoidingView, { behavior: react_native_1.Platform.OS === "ios" ? "padding" : undefined, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.sheet, children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.header, children: [(0, jsx_runtime_1.jsx)(BrandMark, {}), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.headings, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.title, numberOfLines: 1, children: "Report a problem" }), connected ? ((0, jsx_runtime_1.jsxs)(react_native_1.Text, { style: styles.identityLine, numberOfLines: 1, children: [identity.name || identity.email, identity.tier ? ((0, jsx_runtime_1.jsxs)(react_native_1.Text, { style: styles.tier, children: [" \u00B7 ", identity.tier] })) : null] })) : ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.identityLine, numberOfLines: 1, children: "Reporting anonymously" }))] }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: connected ? "Sign out" : "Sign in", disabled: busy, onPress: connected ? onSignOut : onSignIn, style: [styles.auth, connected ? styles.authGhost : styles.authAccent], children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: connected ? styles.authGhostLabel : styles.authAccentLabel, children: connected ? "Sign out" : "Sign in" }) }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: "Close", onPress: dismiss, style: styles.close, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.closeGlyph, children: "\u2715" }) })] }), phase === "sent" ? (
107
115
  // The web panel keeps its header and swaps the form for a confirmation.
108
- (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.done, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.doneCheck, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.doneCheckMark, children: "\u2713" }) }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.doneTitle, children: "Report sent" }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.doneSub, children: "Thanks \u2014 the team can see it now." })] })) : ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.body, children: [(0, jsx_runtime_1.jsx)(react_native_1.TextInput, { style: styles.comment, multiline: true, editable: !busy, placeholder: "Describe what you saw or want\u2026", placeholderTextColor: tokens_1.signal.textSubtle, value: comment, onChangeText: setComment, accessibilityLabel: "Comment" }), showScreenshot ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.marksHead, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.overline, children: "Screenshot" }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.spacer }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.optional, children: "optional" })] }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.markRow, children: [(0, jsx_runtime_1.jsx)(react_native_1.Image, { source: { uri: screenshot.uri }, style: styles.markThumb, resizeMode: "cover", accessibilityLabel: "Screenshot preview" }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.markBody, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.markTitle, children: "Screenshot" }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.markMeta, children: "Exactly this image is sent \u2014 remove it if it shows something private." })] }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: "Remove screenshot", disabled: busy, onPress: removeScreenshot, style: styles.remove, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.removeLabel, children: "Remove" }) })] })] })) : null, (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.locked, children: [(0, jsx_runtime_1.jsx)(LockGlyph, {}), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.lockedText, children: "Replay, console & network always included" })] }), phase === "failed" ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.failed, children: "Couldn't send \u2014 check your connection and try again." })) : null, (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.footer, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: "Cancel", onPress: dismiss, style: styles.cancel, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.cancelLabel, children: "Cancel" }) }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.spacer }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: "Send", disabled: busy, onPress: () => void send(), style: [styles.sendButton, busy && styles.sendButtonBusy], children: phase === "sending" ? ((0, jsx_runtime_1.jsx)(react_native_1.ActivityIndicator, { size: "small", color: tokens_1.signal.onEmphasis })) : ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.sendLabel, children: "Send" })) })] })] }))] }) })] }) }));
116
+ (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.done, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.doneCheck, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.doneCheckMark, children: "\u2713" }) }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.doneTitle, children: "Report sent" }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.doneSub, children: "Thanks \u2014 the team can see it now." })] })) : ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.body, children: [notice ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.maintenance, accessibilityRole: "alert", accessibilityLiveRegion: "polite", children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.maintenanceTitle, children: notice.headline }), notice.message ? (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.maintenanceLine, children: notice.message }) : null, (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.maintenanceLine, children: notice.when })] })) : null, (0, jsx_runtime_1.jsx)(react_native_1.TextInput, { style: styles.comment, multiline: true, editable: !busy, placeholder: "Describe what you saw or want\u2026", placeholderTextColor: tokens_1.signal.textSubtle, value: comment, onChangeText: setComment, accessibilityLabel: "Comment" }), showScreenshot ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.marksHead, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.overline, children: "Screenshot" }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.spacer }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.optional, children: "optional" })] }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.markRow, children: [(0, jsx_runtime_1.jsx)(react_native_1.Image, { source: { uri: screenshot.uri }, style: styles.markThumb, resizeMode: "cover", accessibilityLabel: "Screenshot preview" }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.markBody, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.markTitle, children: "Screenshot" }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.markMeta, children: "Exactly this image is sent \u2014 remove it if it shows something private." })] }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: "Remove screenshot", disabled: busy, onPress: removeScreenshot, style: styles.remove, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.removeLabel, children: "Remove" }) })] })] })) : null, (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.locked, children: [(0, jsx_runtime_1.jsx)(LockGlyph, {}), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.lockedText, children: "Replay, console & network always included" })] }), phase === "failed" ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.failed, children: "Couldn't send \u2014 check your connection and try again." })) : null, (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.footer, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: "Cancel", onPress: dismiss, style: styles.cancel, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.cancelLabel, children: "Cancel" }) }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.spacer }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: "Send", disabled: sendDisabled, onPress: () => void send(), style: [styles.sendButton, sendDisabled && styles.sendButtonBusy], children: phase === "sending" ? ((0, jsx_runtime_1.jsx)(react_native_1.ActivityIndicator, { size: "small", color: tokens_1.signal.onEmphasis })) : ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.sendLabel, children: "Send" })) })] })] }))] }) })] }) }));
109
117
  }
110
118
  const styles = react_native_1.StyleSheet.create({
111
119
  backdrop: {
@@ -347,6 +355,25 @@ const styles = react_native_1.StyleSheet.create({
347
355
  color: tokens_1.signal.danger,
348
356
  marginTop: 8,
349
357
  },
358
+ maintenance: {
359
+ borderWidth: 1,
360
+ borderColor: tokens_1.signal.warningBorder,
361
+ backgroundColor: tokens_1.signal.warningSurface,
362
+ borderRadius: 8,
363
+ paddingVertical: 9,
364
+ paddingHorizontal: 11,
365
+ marginBottom: 10,
366
+ gap: 2,
367
+ },
368
+ maintenanceTitle: {
369
+ fontSize: 13,
370
+ fontWeight: "600",
371
+ color: tokens_1.signal.warningText,
372
+ },
373
+ maintenanceLine: {
374
+ fontSize: 12,
375
+ color: tokens_1.signal.warningText,
376
+ },
350
377
  footer: {
351
378
  flexDirection: "row",
352
379
  alignItems: "center",
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackModal.js","sourceRoot":"","sources":["../src/FeedbackModal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FeedbackModal.js","sourceRoot":"","sources":["../src/FeedbackModal.tsx"],"names":[],"mappings":"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"}
@@ -67,14 +67,18 @@ function FixbackProvider({ options, children }) {
67
67
  const [status, setStatus] = (0, react_1.useState)(client.getStatus());
68
68
  const [identity, setIdentity] = (0, react_1.useState)(() => client.identity());
69
69
  const [composer, setComposer] = (0, react_1.useState)(null);
70
+ // Maintenance mode's notice (the maintenance-mode ADR): the composer opens onto it.
71
+ const [maintenance, setMaintenance] = (0, react_1.useState)(() => client.maintenance());
70
72
  const composerOpenRef = (0, react_1.useRef)(false);
71
73
  (0, react_1.useEffect)(() => {
72
74
  const unsubscribe = client.onStatus(setStatus);
73
75
  const unsubscribeIdentity = client.onIdentity(setIdentity);
76
+ const unsubscribeMaintenance = client.onMaintenance(setMaintenance);
74
77
  void client.start();
75
78
  return () => {
76
79
  unsubscribe();
77
80
  unsubscribeIdentity();
81
+ unsubscribeMaintenance();
78
82
  client.destroy();
79
83
  };
80
84
  }, [client]);
@@ -136,7 +140,7 @@ function FixbackProvider({ options, children }) {
136
140
  activeHandle = null;
137
141
  };
138
142
  }, [handle]);
139
- return ((0, jsx_runtime_1.jsxs)(FixbackContext.Provider, { value: handle, children: [children, (0, jsx_runtime_1.jsx)(FeedbackModal_1.FeedbackModal, { visible: composer !== null, screenshot: composer?.screenshot ?? null, identity: identity, onSignIn: () => {
143
+ return ((0, jsx_runtime_1.jsxs)(FixbackContext.Provider, { value: handle, children: [children, (0, jsx_runtime_1.jsx)(FeedbackModal_1.FeedbackModal, { visible: composer !== null, screenshot: composer?.screenshot ?? null, identity: identity, maintenance: maintenance, onSignIn: () => {
140
144
  void client.signIn();
141
145
  }, onSignOut: () => {
142
146
  void client.signOut();
@@ -1 +1 @@
1
- {"version":3,"file":"FixbackProvider.js","sourceRoot":"","sources":["../src/FixbackProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FixbackProvider.js","sourceRoot":"","sources":["../src/FixbackProvider.tsx"],"names":[],"mappings":"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"}
package/dist/adapters.js CHANGED
@@ -167,12 +167,13 @@ function createNativeAdapters() {
167
167
  captureScreenshot,
168
168
  releaseScreenshot,
169
169
  // Session replay (ADR-0044): frame capture through the same view-shot module, and
170
- // the encode through our own Expo module. `encodeSegment` resolves `null` when no
171
- // native encoder is linked (Expo Go, or a build that never ran `expo prebuild`),
172
- // so the SDK degrades to "no replay" rather than failing a report.
170
+ // the encode through our own Expo module — handed over only when its native half is
171
+ // linked. In Expo Go, or a build that never ran `expo prebuild`, there is none, so
172
+ // the client records no frames it could never encode, says why in a development
173
+ // build, and reports without replay (#661).
173
174
  captureReplayFrame,
174
175
  releaseReplayFrame: releaseScreenshot,
175
- encodeReplaySegment: expo_replay_encoder_1.encodeSegment,
176
+ encodeReplaySegment: expo_replay_encoder_1.isEncoderAvailable ? expo_replay_encoder_1.encodeSegment : undefined,
176
177
  consoleObj: (0, breadcrumbs_1.globalConsole)() ?? null,
177
178
  xhr: (0, breadcrumbs_1.globalXhr)() ?? null,
178
179
  errorUtils: (0, error_capture_1.globalErrorUtils)() ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@
2
2
  * The Expo SDK's **React Native capture instrumentation** — the runtime seams, and
3
3
  * nothing else.
4
4
  *
5
- * The trace buffer, the crumb builders, the caps and eviction rules, and the
6
- * `console` wrapper are all shared with the browser SDK through
5
+ * The trace buffer, the crumb builders, the caps and eviction rules, the `console`
6
+ * wrapper, and the `XMLHttpRequest` patch are all shared with the browser SDK through
7
7
  * `@fixback/sdk-core` (ADR-0028, replacing the file-parallel port ADR-0021
8
8
  * described), so the server and dashboard cannot tell a mobile trace from a web one.
9
- * What is left here is genuinely mobile: how to find React Native's globals, and
10
- * the `XMLHttpRequest` patch.
9
+ * What is left here is genuinely mobile: how to find React Native's globals, and how
10
+ * the shared XHR patch is bound to them.
11
11
  *
12
12
  * Mobile mappings (spec 0004 §D): network capture patches `XMLHttpRequest` **only**
13
13
  * — React Native's `fetch` is a polyfill over XHR, so wrapping both would
@@ -16,60 +16,24 @@
16
16
  * yet and simply never occur.
17
17
  *
18
18
  * Everything private is kept out at the source: network crumbs carry method + URL +
19
- * status metadata only, **never** bodies, and URLs are scrubbed as the crumb is
20
- * built. The one header the patch touches is the one it mints — the **Correlation
21
- * id**'s W3C `traceparent` (grill 2026-09-24 D2; #540), sent only to the origins the
22
- * app lists in `propagateTo` (`./propagation`) — and no header value is ever read.
19
+ * status metadata only, **never** bodies (the web-only body opt-in is never passed
20
+ * here), and URLs are scrubbed as the crumb is built. The one header the patch touches
21
+ * is the one it mints — the **Correlation id**'s W3C `traceparent` (grill 2026-09-24
22
+ * D2; #540), sent only to the origins the app lists in `propagateTo` (`./propagation`)
23
+ * — and no header value is ever read. The patch carries it under React Native's
24
+ * `"per-request"` rule: the app's header always wins — one set before `send` means
25
+ * Fixback adds none, and one set after ours (a `send` wrapper installed before
26
+ * Fixback's) replaces it, because React Native's XHR sends the last value a header was
27
+ * given — so the crumb then records no id rather than one the request did not carry.
23
28
  * The SDK must never throw into the host app, so every hook is wrapped: a capture
24
29
  * failure is swallowed and the original behaviour always runs.
25
30
  */
26
- import { type BreadcrumbBuffer, type BreadcrumbLevel, type ConsoleLike, type Teardown } from "@fixback/sdk-core";
27
- import { type PropagationFilter } from "./propagation";
28
- export type { ConsoleLike, Teardown };
31
+ import { type BreadcrumbBuffer, type BreadcrumbLevel, type ConsoleLike, type Teardown, type XhrConstructor, type XhrInstance } from "@fixback/sdk-core";
32
+ export type { ConsoleLike, Teardown, XhrConstructor, XhrInstance };
29
33
  /** React Native's global `console`, when present. */
30
34
  export declare function globalConsole(): ConsoleLike | undefined;
31
- /** The XHR instance surface the network instrumentation touches. */
32
- export interface XhrInstance {
33
- status: number;
34
- statusText?: string;
35
- open(method: string, url: string | {
36
- toString(): string;
37
- }, ...rest: unknown[]): void;
38
- send(body?: unknown): void;
39
- /** How the Correlation id's `traceparent` goes on. Absent ⇒ no header and no id. */
40
- setRequestHeader?(name: string, value: string): void;
41
- getResponseHeader?(name: string): string | null;
42
- addEventListener(type: string, listener: () => void): void;
43
- removeEventListener(type: string, listener: () => void): void;
44
- }
45
- /** The XHR constructor whose prototype is patched — injectable for tests. */
46
- export interface XhrConstructor {
47
- new (): XhrInstance;
48
- prototype: XhrInstance;
49
- }
50
35
  /** React Native's global `XMLHttpRequest`, when present. */
51
36
  export declare function globalXhr(): XhrConstructor | undefined;
52
- /**
53
- * Patch `XMLHttpRequest` to record a rich network crumb when a request settles.
54
- * On React Native this is the **single** network hook: the built-in `fetch` is
55
- * a polyfill over XHR, so its traffic is captured here too (as `xhr` crumbs)
56
- * and `fetch` itself is deliberately not wrapped — wrapping both would record
57
- * every request twice (spec 0004 §D). The `send` body argument is **never read
58
- * for content** — only its trivially-known size.
59
- *
60
- * It also carries the **Correlation id** (grill 2026-09-24 D2; #540), so one patch
61
- * covers `fetch` too: on `send`, a request whose origin the app listed in
62
- * `propagateTo` (`./propagation`; nothing by default) gets a freshly minted W3C
63
- * `traceparent` through the original `setRequestHeader`, and its crumb records the
64
- * trace id as `requestId`. The patched `setRequestHeader` notes only a header's
65
- * **name** — whether the app set its own `traceparent` — never a value, and the app's
66
- * header always wins: one set before `send` means Fixback adds none, and one set after
67
- * ours (a `send` wrapper installed before Fixback's) replaces it, because React
68
- * Native's XHR sends the last value a header was given — so the crumb then records no
69
- * id rather than one the request did not carry. A `setRequestHeader` that is missing
70
- * or throws degrades to "no header, no id", and the original `send` always runs.
71
- */
72
- export declare function instrumentXhr(buffer: BreadcrumbBuffer, ctor: XhrConstructor | undefined, ignoreUrl: (url: string) => boolean, now: () => number, mono?: () => number, propagate?: PropagationFilter): Teardown;
73
37
  /** Options for {@link instrumentBreadcrumbs}. */
74
38
  export interface InstrumentOptions {
75
39
  readonly consoleObj?: ConsoleLike | null;
@@ -3,12 +3,12 @@
3
3
  * The Expo SDK's **React Native capture instrumentation** — the runtime seams, and
4
4
  * nothing else.
5
5
  *
6
- * The trace buffer, the crumb builders, the caps and eviction rules, and the
7
- * `console` wrapper are all shared with the browser SDK through
6
+ * The trace buffer, the crumb builders, the caps and eviction rules, the `console`
7
+ * wrapper, and the `XMLHttpRequest` patch are all shared with the browser SDK through
8
8
  * `@fixback/sdk-core` (ADR-0028, replacing the file-parallel port ADR-0021
9
9
  * described), so the server and dashboard cannot tell a mobile trace from a web one.
10
- * What is left here is genuinely mobile: how to find React Native's globals, and
11
- * the `XMLHttpRequest` patch.
10
+ * What is left here is genuinely mobile: how to find React Native's globals, and how
11
+ * the shared XHR patch is bound to them.
12
12
  *
13
13
  * Mobile mappings (spec 0004 §D): network capture patches `XMLHttpRequest` **only**
14
14
  * — React Native's `fetch` is a polyfill over XHR, so wrapping both would
@@ -17,23 +17,24 @@
17
17
  * yet and simply never occur.
18
18
  *
19
19
  * Everything private is kept out at the source: network crumbs carry method + URL +
20
- * status metadata only, **never** bodies, and URLs are scrubbed as the crumb is
21
- * built. The one header the patch touches is the one it mints — the **Correlation
22
- * id**'s W3C `traceparent` (grill 2026-09-24 D2; #540), sent only to the origins the
23
- * app lists in `propagateTo` (`./propagation`) — and no header value is ever read.
20
+ * status metadata only, **never** bodies (the web-only body opt-in is never passed
21
+ * here), and URLs are scrubbed as the crumb is built. The one header the patch touches
22
+ * is the one it mints — the **Correlation id**'s W3C `traceparent` (grill 2026-09-24
23
+ * D2; #540), sent only to the origins the app lists in `propagateTo` (`./propagation`)
24
+ * — and no header value is ever read. The patch carries it under React Native's
25
+ * `"per-request"` rule: the app's header always wins — one set before `send` means
26
+ * Fixback adds none, and one set after ours (a `send` wrapper installed before
27
+ * Fixback's) replaces it, because React Native's XHR sends the last value a header was
28
+ * given — so the crumb then records no id rather than one the request did not carry.
24
29
  * The SDK must never throw into the host app, so every hook is wrapped: a capture
25
30
  * failure is swallowed and the original behaviour always runs.
26
31
  */
27
32
  Object.defineProperty(exports, "__esModule", { value: true });
28
33
  exports.globalConsole = globalConsole;
29
34
  exports.globalXhr = globalXhr;
30
- exports.instrumentXhr = instrumentXhr;
31
35
  exports.instrumentBreadcrumbs = instrumentBreadcrumbs;
32
36
  const sdk_core_1 = require("@fixback/sdk-core");
33
37
  const propagation_1 = require("./propagation");
34
- function noop() {
35
- /* nothing installed */
36
- }
37
38
  /** React Native's global `console`, when present. */
38
39
  function globalConsole() {
39
40
  const g = globalThis;
@@ -44,162 +45,6 @@ function globalXhr() {
44
45
  const g = globalThis;
45
46
  return typeof g.XMLHttpRequest === "function" ? g.XMLHttpRequest : undefined;
46
47
  }
47
- /** Read one XHR response header defensively — `null` when unavailable or on any throw. */
48
- function safeXhrHeader(xhr, name) {
49
- try {
50
- return typeof xhr.getResponseHeader === "function"
51
- ? xhr.getResponseHeader(name)
52
- : null;
53
- }
54
- catch {
55
- return null;
56
- }
57
- }
58
- /** Read an XHR's `statusText` defensively — `undefined` when empty or on any throw. */
59
- function safeXhrStatusText(xhr) {
60
- try {
61
- return xhr.statusText || undefined;
62
- }
63
- catch {
64
- return undefined;
65
- }
66
- }
67
- /**
68
- * Patch `XMLHttpRequest` to record a rich network crumb when a request settles.
69
- * On React Native this is the **single** network hook: the built-in `fetch` is
70
- * a polyfill over XHR, so its traffic is captured here too (as `xhr` crumbs)
71
- * and `fetch` itself is deliberately not wrapped — wrapping both would record
72
- * every request twice (spec 0004 §D). The `send` body argument is **never read
73
- * for content** — only its trivially-known size.
74
- *
75
- * It also carries the **Correlation id** (grill 2026-09-24 D2; #540), so one patch
76
- * covers `fetch` too: on `send`, a request whose origin the app listed in
77
- * `propagateTo` (`./propagation`; nothing by default) gets a freshly minted W3C
78
- * `traceparent` through the original `setRequestHeader`, and its crumb records the
79
- * trace id as `requestId`. The patched `setRequestHeader` notes only a header's
80
- * **name** — whether the app set its own `traceparent` — never a value, and the app's
81
- * header always wins: one set before `send` means Fixback adds none, and one set after
82
- * ours (a `send` wrapper installed before Fixback's) replaces it, because React
83
- * Native's XHR sends the last value a header was given — so the crumb then records no
84
- * id rather than one the request did not carry. A `setRequestHeader` that is missing
85
- * or throws degrades to "no header, no id", and the original `send` always runs.
86
- */
87
- function instrumentXhr(buffer, ctor, ignoreUrl, now, mono = sdk_core_1.nowMono,
88
- // Which requests carry the Correlation id: the origins the app listed in
89
- // `propagateTo`, threaded in by the composite — nothing by default.
90
- propagate = (0, propagation_1.createPropagationFilter)()) {
91
- if (typeof ctor !== "function")
92
- return noop;
93
- const proto = ctor.prototype;
94
- const originalOpen = proto.open;
95
- const originalSend = proto.send;
96
- const originalSetRequestHeader = proto.setRequestHeader;
97
- const canSetHeader = typeof originalSetRequestHeader === "function";
98
- proto.open = function (method, url, ...rest) {
99
- // A new request: nothing the app set on an earlier one, and no id yet.
100
- this.__fixbackMeta = {
101
- method: String(method).toUpperCase(),
102
- url: String(url),
103
- appTraceparent: false,
104
- };
105
- return originalOpen.call(this, method, url, ...rest);
106
- };
107
- if (canSetHeader) {
108
- proto.setRequestHeader = function (name, value) {
109
- try {
110
- const meta = this.__fixbackMeta;
111
- if (meta && (0, sdk_core_1.isTraceparentHeader)(name))
112
- meta.appTraceparent = true;
113
- }
114
- catch {
115
- /* noting a header name must never break the app's own call */
116
- }
117
- return originalSetRequestHeader.call(this, name, value);
118
- };
119
- }
120
- /**
121
- * Put a freshly minted `traceparent` on a request about to be sent, remembering the
122
- * Correlation id its crumb records — unless the request is not one to propagate to,
123
- * the app set its own, this request already carries ours (a repeated `send`), or
124
- * setting it throws. Calls the original `setRequestHeader`, so Fixback's own header is
125
- * never mistaken for the app's.
126
- */
127
- const stampCorrelationId = (xhr, meta) => {
128
- if (!canSetHeader || meta.appTraceparent || meta.correlationId !== undefined)
129
- return;
130
- try {
131
- if (!propagate(meta.url))
132
- return;
133
- const minted = (0, sdk_core_1.mintTraceparent)();
134
- originalSetRequestHeader.call(xhr, sdk_core_1.TRACEPARENT_HEADER, minted.header);
135
- meta.correlationId = minted.correlationId;
136
- }
137
- catch {
138
- /* no header, no id — and the request still goes out */
139
- }
140
- };
141
- proto.send = function (body) {
142
- const meta = this.__fixbackMeta;
143
- if (meta && !ignoreUrl(meta.url)) {
144
- stampCorrelationId(this, meta);
145
- const started = mono();
146
- const reqSize = (0, sdk_core_1.trivialBodySize)(body);
147
- // The terminal event names the outcome; `loadend` always follows exactly
148
- // one of load/error/timeout/abort, so by record time `settled` is set.
149
- let settled;
150
- const onLoad = () => {
151
- settled = (0, sdk_core_1.outcomeFromStatus)(this.status || undefined);
152
- };
153
- const onError = () => {
154
- settled = "network-error";
155
- };
156
- const onTimeout = () => {
157
- settled = "timeout";
158
- };
159
- const onAbort = () => {
160
- settled = "aborted";
161
- };
162
- const onDone = () => {
163
- try {
164
- buffer.add((0, sdk_core_1.networkCrumb)({
165
- api: "xhr",
166
- method: meta.method,
167
- url: meta.url,
168
- status: this.status || undefined,
169
- statusText: safeXhrStatusText(this),
170
- durationMs: Math.max(0, mono() - started),
171
- reqSize,
172
- respSize: (0, sdk_core_1.parseContentLength)(safeXhrHeader(this, "content-length")),
173
- contentType: (0, sdk_core_1.contentTypeOf)(safeXhrHeader(this, "content-type")),
174
- outcome: settled ?? (0, sdk_core_1.outcomeFromStatus)(this.status || undefined),
175
- // Read at settle time: an app header set after ours replaced it.
176
- requestId: meta.appTraceparent ? undefined : meta.correlationId,
177
- }, now()));
178
- }
179
- catch {
180
- /* never throw into the host app */
181
- }
182
- this.removeEventListener("load", onLoad);
183
- this.removeEventListener("error", onError);
184
- this.removeEventListener("timeout", onTimeout);
185
- this.removeEventListener("abort", onAbort);
186
- this.removeEventListener("loadend", onDone);
187
- };
188
- this.addEventListener("load", onLoad);
189
- this.addEventListener("error", onError);
190
- this.addEventListener("timeout", onTimeout);
191
- this.addEventListener("abort", onAbort);
192
- this.addEventListener("loadend", onDone);
193
- }
194
- return originalSend.call(this, body);
195
- };
196
- return () => {
197
- proto.open = originalOpen;
198
- proto.send = originalSend;
199
- if (canSetHeader)
200
- proto.setRequestHeader = originalSetRequestHeader;
201
- };
202
- }
203
48
  /**
204
49
  * Install the React Native capture hooks — the shared console wrapper and the XHR
205
50
  * patch — and return a single teardown that removes them all. Each hook is
@@ -220,7 +65,15 @@ function instrumentBreadcrumbs(buffer, options = {}) {
220
65
  teardowns.push((0, sdk_core_1.instrumentConsole)(buffer, consoleObj, levels, now));
221
66
  }
222
67
  if (captureNetwork) {
223
- teardowns.push(instrumentXhr(buffer, xhr, ignoreUrl, now, mono, (0, propagation_1.createPropagationFilter)(options.propagateTo)));
68
+ teardowns.push((0, sdk_core_1.instrumentXhr)(buffer, xhr, {
69
+ ignoreUrl,
70
+ now,
71
+ mono,
72
+ // Which requests carry the Correlation id: the origins the app listed in
73
+ // `propagateTo` — nothing by default — under React Native's rule (see above).
74
+ propagate: (0, propagation_1.createPropagationFilter)(options.propagateTo),
75
+ correlation: "per-request",
76
+ }));
224
77
  }
225
78
  return () => {
226
79
  for (const teardown of teardowns) {