@fixback/expo 0.2.0 → 0.3.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 (58) hide show
  1. package/README.md +72 -8
  2. package/dist/FeedbackModal.d.ts +10 -2
  3. package/dist/FeedbackModal.js +84 -36
  4. package/dist/FeedbackModal.js.map +1 -0
  5. package/dist/FixbackProvider.d.ts +12 -0
  6. package/dist/FixbackProvider.js +46 -23
  7. package/dist/FixbackProvider.js.map +1 -0
  8. package/dist/adapters.js +73 -23
  9. package/dist/adapters.js.map +1 -0
  10. package/dist/breadcrumbs.d.ts +21 -222
  11. package/dist/breadcrumbs.js +45 -605
  12. package/dist/breadcrumbs.js.map +1 -0
  13. package/dist/client.d.ts +65 -67
  14. package/dist/client.js +288 -151
  15. package/dist/client.js.map +1 -0
  16. package/dist/connect.d.ts +60 -0
  17. package/dist/connect.js +63 -0
  18. package/dist/connect.js.map +1 -0
  19. package/dist/error-capture.d.ts +28 -78
  20. package/dist/error-capture.js +76 -294
  21. package/dist/error-capture.js.map +1 -0
  22. package/dist/http.d.ts +10 -25
  23. package/dist/http.js +15 -12
  24. package/dist/http.js.map +1 -0
  25. package/dist/identity.d.ts +11 -11
  26. package/dist/identity.js +23 -28
  27. package/dist/identity.js.map +1 -0
  28. package/dist/index.d.ts +6 -5
  29. package/dist/index.js +22 -5
  30. package/dist/index.js.map +1 -0
  31. package/dist/origin.d.ts +21 -0
  32. package/dist/origin.js +45 -0
  33. package/dist/origin.js.map +1 -0
  34. package/dist/package.json +3 -0
  35. package/dist/report.d.ts +28 -63
  36. package/dist/report.js +33 -25
  37. package/dist/report.js.map +1 -0
  38. package/dist/reporter-session-store.d.ts +27 -0
  39. package/dist/reporter-session-store.js +53 -0
  40. package/dist/reporter-session-store.js.map +1 -0
  41. package/dist/shake.d.ts +26 -0
  42. package/dist/shake.js +32 -7
  43. package/dist/shake.js.map +1 -0
  44. package/dist/submit.d.ts +21 -12
  45. package/dist/submit.js +24 -41
  46. package/dist/submit.js.map +1 -0
  47. package/dist/tokens.js +5 -1
  48. package/dist/tokens.js.map +1 -0
  49. package/dist/version.d.ts +1 -1
  50. package/dist/version.js +5 -1
  51. package/dist/version.js.map +1 -0
  52. package/package.json +14 -7
  53. package/dist/auto-report-backoff.d.ts +0 -42
  54. package/dist/auto-report-backoff.js +0 -67
  55. package/dist/boot.d.ts +0 -65
  56. package/dist/boot.js +0 -60
  57. package/dist/scrub.d.ts +0 -55
  58. package/dist/scrub.js +0 -184
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../src/breadcrumbs.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -8,39 +8,35 @@
8
8
  * (`FixbackProvider`) is a thin shell over this: it feeds accelerometer
9
9
  * samples, listens for `present` events, and renders the composer.
10
10
  *
11
+ * `start()` is deliberately three named steps — {@link FixbackOptions} validation,
12
+ * `resolveIdentity`, then `armCapture` — rather than one long procedure, so the
13
+ * lifecycle reads as what it is and each step is testable on its own.
14
+ *
11
15
  * Every platform touchpoint is an injected adapter (`FixbackAdapters`), so the
12
16
  * whole orchestration is unit-tested without React Native. Every path is
13
17
  * defensive: a Fixback problem leaves the host app untouched — `start` resolves
14
18
  * to a `disabled` client instead of throwing.
15
19
  */
16
- import { type BootAnswer } from "./boot";
17
- import { type BeforeBreadcrumb, type ConsoleLike, type XhrConstructor } from "./breadcrumbs";
20
+ import { type BootAnswer, type CaptureToggles, type CommonCaptureInitOptions, DEFAULT_API_URL, type FetchLike, type IdentityInputs, type ReporterIdentity } from "@fixback/sdk-core";
21
+ import { type ConsoleLike, type XhrConstructor } from "./breadcrumbs";
22
+ import { type OpenAuthSession } from "./connect";
23
+ import { type SecureStorageLike } from "./reporter-session-store";
18
24
  import { type AppStateLike, type ErrorUtilsLike } from "./error-capture";
19
- import type { FetchLike, FormDataFactory } from "./http";
25
+ import type { FormDataFactory } from "./http";
20
26
  import { type StorageLike } from "./identity";
27
+ import { canonicalizeOrigin } from "./origin";
21
28
  import { type EnvironmentInputs } from "./report";
22
- import { type BeforeSend } from "./scrub";
23
- import { type ShakeTuning } from "./shake";
29
+ import { type ResolvedShakeConfig, type ShakeOptions } from "./shake";
24
30
  import { type ScreenshotFile, type SubmitResult } from "./submit";
25
- /** Where reports go when no `apiUrl` is configured (mirrors the web SDK). */
26
- export declare const DEFAULT_API_URL = "https://api.fixback.dev";
27
- /** How often the accelerometer reports while the gesture is armed. */
28
- export declare const DEFAULT_SHAKE_SAMPLE_INTERVAL_MS = 80;
29
- /** The shake gesture's init options: the tuning plus an off switch. */
30
- export interface ShakeOptions extends Partial<ShakeTuning> {
31
- /** Arm the shake gesture. Defaults to `true`. */
32
- readonly enabled?: boolean;
33
- /**
34
- * The accelerometer update interval to request, in ms. Defaults to
35
- * {@link DEFAULT_SHAKE_SAMPLE_INTERVAL_MS}. The interval is global to the
36
- * sensor in `expo-sensors` — the SDK only sets it when no other listener is
37
- * registered, and apps that drive the accelerometer themselves should align
38
- * this with their own setting.
39
- */
40
- readonly sampleIntervalMs?: number;
41
- }
42
- /** Everything `FixbackProvider` / `createFixbackClient` accepts. */
43
- export interface FixbackOptions {
31
+ export { DEFAULT_API_URL };
32
+ export { canonicalizeOrigin };
33
+ export { DEFAULT_SHAKE_SAMPLE_INTERVAL_MS, type ResolvedShakeConfig, type ShakeOptions, } from "./shake";
34
+ /**
35
+ * Everything `FixbackProvider` / `createFixbackClient` accepts: the shared init
36
+ * vocabulary (`apiUrl`, `release`, `environment`, `enabled`, `scrub`, `beforeSend`,
37
+ * `beforeBreadcrumb`, `capture`) plus what only a React Native app has.
38
+ */
39
+ export interface FixbackOptions extends CommonCaptureInitOptions, IdentityInputs {
44
40
  /** The Project's publishable key. Required. */
45
41
  readonly key: string;
46
42
  /**
@@ -49,32 +45,29 @@ export interface FixbackOptions {
49
45
  * Project — e.g. `https://com.acme.myapp` or the product's web origin.
50
46
  */
51
47
  readonly origin: string;
52
- /** The Fixback API base URL. Defaults to {@link DEFAULT_API_URL}. */
53
- readonly apiUrl?: string;
54
- /** A customer-server-minted signed identity (spec 0003 §F). */
55
- readonly signedIdentity?: string;
56
- /** A persisted Reporter handle, when the host app manages one. */
57
- readonly reporterId?: string;
58
- /** Override the SDK-managed anonymous id. */
59
- readonly anonymousId?: string;
60
- /** Display-only Reporter name/email riding on every submission. */
61
- readonly reporterName?: string;
62
- readonly reporterEmail?: string;
63
- /** Per-stream capture toggles; unset streams follow the boot answer. */
64
- readonly capture?: {
65
- readonly console?: boolean;
66
- readonly network?: boolean;
67
- };
68
- /** Automatic error capture. Defaults to `true` (ADR-0011). */
48
+ /**
49
+ * Where the platform's connect page returns after a Connect (ADR-0032; ticket #251)
50
+ * a scheme (`myapp://fixback-connect`) or universal link the app handles, declared
51
+ * once here and passed to the in-app auth session. Its origin must be allowlisted on
52
+ * the Project (the server validates the return URL). Without it, `signIn` stays a
53
+ * no-op — a report still files anonymously where the Gate allows.
54
+ */
55
+ readonly returnUrl?: string;
56
+ /**
57
+ * Automatic error capture — the SDK files uncaught JS errors as `source: error`
58
+ * Feedback with no prompt (spec 0004 §E, ADR-0011). Defaults to `true`; set
59
+ * `false` for the per-project toggle that turns it off. It is gated by boot's
60
+ * `canSubmit` either way, so an auto-error is never filed where a manual report
61
+ * would be refused.
62
+ */
69
63
  readonly autoCapture?: boolean;
64
+ /**
65
+ * Per-stream capture toggles; unset streams follow the boot answer. Session
66
+ * replay is web-only, so only the two mobile streams are accepted here.
67
+ */
68
+ readonly capture?: Omit<CaptureToggles, "replay">;
70
69
  /** Capture a screenshot when the composer opens. Defaults to `true`. */
71
70
  readonly screenshots?: boolean;
72
- /** The per-project client scrub hook (spec 0003 §C). */
73
- readonly beforeSend?: BeforeSend;
74
- /** Run the built-in default scrubbers. Defaults to `true`. */
75
- readonly scrub?: boolean;
76
- /** A per-crumb filter for the trace buffer. */
77
- readonly beforeBreadcrumb?: BeforeBreadcrumb | null;
78
71
  /** Shake gesture tuning / off switch. */
79
72
  readonly shake?: ShakeOptions;
80
73
  }
@@ -85,6 +78,17 @@ export interface FixbackOptions {
85
78
  export interface FixbackAdapters {
86
79
  /** Anonymous-id persistence (AsyncStorage). Absent ⇒ ephemeral ids. */
87
80
  readonly storage?: StorageLike | null;
81
+ /**
82
+ * Secure persistence for the Reporter session token after a Connect (SecureStore).
83
+ * Absent ⇒ no persisted session (Connect still works for this launch).
84
+ */
85
+ readonly secureStore?: SecureStorageLike | null;
86
+ /**
87
+ * Opens the platform's connect page in an in-app auth session and resolves when it
88
+ * returns via the app's `returnUrl` (`expo-web-browser`). Absent ⇒ `signIn` is a
89
+ * no-op.
90
+ */
91
+ readonly openAuthSession?: OpenAuthSession | null;
88
92
  /** Reads the device environment (window size, OS description). */
89
93
  readonly environment?: () => EnvironmentInputs;
90
94
  /** Captures the current screen as a file reference; `null` on failure. */
@@ -100,7 +104,7 @@ export interface FixbackAdapters {
100
104
  /** The `AppState` seam for occurrence flushes. */
101
105
  readonly appState?: AppStateLike | null;
102
106
  /** The transport seams. */
103
- readonly fetchImpl?: FetchLike;
107
+ readonly fetch?: FetchLike;
104
108
  readonly formData?: FormDataFactory;
105
109
  /** A development-only warning sink (silent in production builds). */
106
110
  readonly warn?: (message: string) => void;
@@ -119,11 +123,6 @@ export interface ComposerDraft {
119
123
  /** The screenshot to attach (the presented one, unless removed). */
120
124
  readonly screenshot?: ScreenshotFile | null;
121
125
  }
122
- /** The resolved shake configuration the provider arms the gesture with. */
123
- export interface ResolvedShakeConfig extends ShakeTuning {
124
- readonly enabled: boolean;
125
- readonly sampleIntervalMs: number;
126
- }
127
126
  /** The headless client `FixbackProvider` drives. */
128
127
  export interface FixbackClient {
129
128
  /** Boot and arm capture. Idempotent; never throws. */
@@ -153,22 +152,21 @@ export interface FixbackClient {
153
152
  discardScreenshot(screenshot: ScreenshotFile | null | undefined): void;
154
153
  /** The resolved shake tuning for the provider to arm. */
155
154
  shakeConfig(): ResolvedShakeConfig;
155
+ /**
156
+ * Start a **Connect** (ADR-0032): open the platform's connect page in an in-app auth
157
+ * session, bind the signed-in Account to this app as a Reporter session (stored in
158
+ * SecureStore), and re-boot — so a gated Project's shake gesture arms once the Account
159
+ * is eligible. Resolves to the resulting identity. Never throws.
160
+ */
161
+ signIn(): Promise<ReporterIdentity>;
162
+ /** Clear the Reporter session — revoke it server-side, forget the token, re-boot. */
163
+ signOut(): Promise<void>;
164
+ /** The current Reporter identity — anonymous, or a connected Account with its tier. */
165
+ identity(): ReporterIdentity;
166
+ /** Subscribe to identity changes (boot, sign in, sign out). Returns an unsubscribe. */
167
+ onIdentity(listener: (identity: ReporterIdentity) => void): () => void;
156
168
  /** Tear down every hook. Safe to call repeatedly. */
157
169
  destroy(): void;
158
170
  }
159
- /**
160
- * Canonicalize the configured origin exactly as the server's `normalizeOrigin`
161
- * does when an allowlist entry is stored (`apps/api/src/projects/origin.ts`):
162
- * lowercase the scheme and host, elide default ports, and drop any userinfo,
163
- * path, query, or fragment. The server compares the `Origin` header by exact
164
- * string equality against those canonical rows — on the web the browser
165
- * serializes the header, but here the SDK is the serializer, so without this a
166
- * pasted `https://com.acme.MyApp` (bundle ids legally carry uppercase) would
167
- * silently never match its own allowlist entry. Implemented without `URL`
168
- * (React Native's polyfill is partial); a value that doesn't parse as an
169
- * http(s) origin is kept trimmed — boot will simply refuse it. IDN hosts are
170
- * not punycoded (the one divergence from the server; use the encoded form).
171
- */
172
- export declare function canonicalizeOrigin(value: string): string;
173
171
  /** Create the headless client. See the module doc. */
174
172
  export declare function createFixbackClient(options: FixbackOptions, adapters?: FixbackAdapters): FixbackClient;