@everframe/react-native 1.1.0 → 1.2.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/dist/index.d.ts CHANGED
@@ -1,12 +1,87 @@
1
1
  import * as React from 'react';
2
2
  import { EverframeUserSpec, ConfigOpts } from './NativeEverframe.js';
3
3
  export { Rect, Spec } from './NativeEverframe.js';
4
+ import { z } from 'zod';
4
5
  import { E as EverframeIntegration } from './types-D5e4kWaw.js';
5
6
  import { R as ReportDeliveryStatus, E as ErrorCaptureStatus, P as PromiseRejectionStatus } from './promise-rejection-types-C-lxCdDl.js';
6
7
  export { a as ErrorCaptureCounters, b as ErrorCaptureOutcome, c as ErrorCapturePath, d as PromiseRejectionCounters, e as RejectionReason, f as ReportCaptureOutcome, g as ReportCapturePath, h as ReportCapturePathStatus, i as ReportDeliveryReason, j as ReportQueueOperation, k as ReportQueueStatus, l as ReportStorageFailure, m as ReportTransportOrigin, n as ReportTransportOutcome, o as ReportTransportStatus } from './promise-rejection-types-C-lxCdDl.js';
7
- import { z } from 'zod';
8
8
  import { ViewProps, EventSubscription } from 'react-native';
9
9
 
10
+ declare const ErrorSeverity: z.ZodEnum<{
11
+ error: "error";
12
+ info: "info";
13
+ warning: "warning";
14
+ }>;
15
+ type ErrorSeverity = z.infer<typeof ErrorSeverity>;
16
+
17
+ /** Optional per-occurrence details captured with a handled exception. */
18
+ interface CaptureExceptionOptions {
19
+ severity?: ErrorSeverity;
20
+ context?: string;
21
+ metadata?: Record<string, unknown>;
22
+ }
23
+ interface DeviceMetadata {
24
+ os: string;
25
+ osVersion: string;
26
+ model?: string;
27
+ screenSize: {
28
+ width: number;
29
+ height: number;
30
+ };
31
+ pixelRatio: number;
32
+ locale: string;
33
+ timezone: string;
34
+ network?: string;
35
+ /**
36
+ * Raw User-Agent string from `navigator.userAgent`. Surfaced to triagers so
37
+ * they can disambiguate things our OS/version parser doesn't capture
38
+ * (browser engine + version, in-app webviews, bot signatures, accessibility
39
+ * UA overrides). Web SDK only — native SDKs leave this undefined.
40
+ */
41
+ userAgent?: string;
42
+ }
43
+ interface ReportDraft {
44
+ title: string;
45
+ description: string;
46
+ excludedArtifacts: string[];
47
+ annotations: unknown[];
48
+ redactions: unknown[];
49
+ /** Host-supplied free-form metadata (from `setExtra`). Opaque string, ≤2000 chars. */
50
+ extra?: string;
51
+ }
52
+ /**
53
+ * The SDK key under its name, `sdkKey`, or under `apiKey`, its name before
54
+ * 1.2. `apiKey` is deprecated but still accepted, so a 1.1 config keeps
55
+ * working; `sdkKey` wins when both are set. Exactly one is required.
56
+ */
57
+ type SdkKeyField = {
58
+ /**
59
+ * Per-app SDK key (`evf_live_…`; publishable, not secret). Every
60
+ * Everframe SDK names this field `sdkKey`. It is not the App ID (a UUID)
61
+ * that symbol and source-map uploads take.
62
+ */
63
+ sdkKey: string;
64
+ /** @deprecated Renamed to `sdkKey`. Still accepted; `sdkKey` wins when both are set. */
65
+ apiKey?: string;
66
+ } | {
67
+ sdkKey?: undefined;
68
+ /** @deprecated Renamed to `sdkKey`. Still accepted. */
69
+ apiKey: string;
70
+ };
71
+ /** `C` as a host passes it: the SDK key as `sdkKey` or the deprecated `apiKey`. */
72
+ type WithSdkKeyField<C extends {
73
+ sdkKey: string;
74
+ }> = Omit<C, 'sdkKey'> & SdkKeyField;
75
+ /**
76
+ * A host-supplied function that produces the next report's `extra` payload
77
+ * on demand. Registered via `setExtra(resolve)`; invoked once per report
78
+ * assembly (see `resolveClientExtra`), never at registration time.
79
+ */
80
+ type ExtraResolver = () => string | Record<string, unknown>;
81
+
82
+ /** Protocol ceiling — `packages/protocol/src/envelope.ts`. */
83
+ declare const EXTRA_MAX_CHARS = 16384;
84
+
10
85
  type JsonScalar = string | number | boolean | null;
11
86
  type JsonValue = JsonScalar | JsonValue[] | JsonObject;
12
87
  type JsonObject = {
@@ -21,6 +96,7 @@ declare const ReportEnvelope: z.ZodObject<{
21
96
  error: "error";
22
97
  manual: "manual";
23
98
  crash: "crash";
99
+ diagnostic: "diagnostic";
24
100
  }>>;
25
101
  sessionId: z.ZodOptional<z.ZodString>;
26
102
  sdk: z.ZodObject<{
@@ -33,17 +109,19 @@ declare const ReportEnvelope: z.ZodObject<{
33
109
  "everframe-ios": "everframe-ios";
34
110
  "everframe-android": "everframe-android";
35
111
  "everframe-roku": "everframe-roku";
112
+ "everframe-vega": "everframe-vega";
36
113
  }>;
37
114
  version: z.ZodString;
38
115
  platform: z.ZodEnum<{
39
- web: "web";
40
- ios: "ios";
41
116
  android: "android";
117
+ ios: "ios";
118
+ web: "web";
42
119
  tvos: "tvos";
43
120
  tizen: "tizen";
44
121
  webos: "webos";
45
122
  androidtv: "androidtv";
46
123
  roku: "roku";
124
+ vega: "vega";
47
125
  }>;
48
126
  formFactor: z.ZodEnum<{
49
127
  phone: "phone";
@@ -127,13 +205,13 @@ declare const ReportEnvelope: z.ZodObject<{
127
205
  resHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
128
206
  reqBodySkipped: z.ZodOptional<z.ZodEnum<{
129
207
  error: "error";
130
- "content-type": "content-type";
131
208
  unsupported: "unsupported";
209
+ "content-type": "content-type";
132
210
  }>>;
133
211
  resBodySkipped: z.ZodOptional<z.ZodEnum<{
134
212
  error: "error";
135
- "content-type": "content-type";
136
213
  unsupported: "unsupported";
214
+ "content-type": "content-type";
137
215
  }>>;
138
216
  }, z.core.$loose>>>;
139
217
  vitals: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -212,8 +290,9 @@ declare const ReportEnvelope: z.ZodObject<{
212
290
  jsBundle: z.ZodOptional<z.ZodObject<{
213
291
  engine: z.ZodLiteral<"hermes">;
214
292
  platform: z.ZodEnum<{
215
- ios: "ios";
216
293
  android: "android";
294
+ ios: "ios";
295
+ vega: "vega";
217
296
  }>;
218
297
  buildId: z.ZodString;
219
298
  bundleName: z.ZodString;
@@ -235,6 +314,27 @@ declare const ReportEnvelope: z.ZodObject<{
235
314
  causesTruncated: z.ZodBoolean;
236
315
  }, z.core.$strip>>;
237
316
  native: z.ZodOptional<z.ZodObject<{
317
+ releaseHealthEvidence: z.ZodOptional<z.ZodObject<{
318
+ version: z.ZodLiteral<1>;
319
+ attribution: z.ZodLiteral<"immutable_fatal_context">;
320
+ contextId: z.ZodString;
321
+ exposure: z.ZodObject<{
322
+ loadedBuildId: z.ZodNullable<z.ZodString>;
323
+ loadedBundleStatus: z.ZodEnum<{
324
+ unknown: "unknown";
325
+ known: "known";
326
+ not_applicable: "not_applicable";
327
+ }>;
328
+ exposureId: z.ZodString;
329
+ processLaunchId: z.ZodString;
330
+ startedAt: z.ZodISODateTime;
331
+ app: z.ZodObject<{
332
+ version: z.ZodString;
333
+ build: z.ZodNullable<z.ZodString>;
334
+ debug: z.ZodBoolean;
335
+ }, z.core.$strict>;
336
+ }, z.core.$strict>;
337
+ }, z.core.$strict>>;
238
338
  platform: z.ZodLiteral<"apple">;
239
339
  timestampMicros: z.ZodString;
240
340
  crashedThreadIndex: z.ZodNumber;
@@ -270,6 +370,29 @@ declare const ReportEnvelope: z.ZodObject<{
270
370
  faultAddress: z.ZodOptional<z.ZodString>;
271
371
  }, z.core.$strip>;
272
372
  }, z.core.$strip>>;
373
+ androidNative: z.ZodOptional<z.ZodObject<{
374
+ source: z.ZodEnum<{
375
+ "android-exit-info": "android-exit-info";
376
+ "android-native-handler": "android-native-handler";
377
+ }>;
378
+ abi: z.ZodEnum<{
379
+ x86_64: "x86_64";
380
+ "armeabi-v7a": "armeabi-v7a";
381
+ "arm64-v8a": "arm64-v8a";
382
+ x86: "x86";
383
+ riscv64: "riscv64";
384
+ }>;
385
+ crashedThreadId: z.ZodNumber;
386
+ framesIncomplete: z.ZodBoolean;
387
+ frames: z.ZodArray<z.ZodObject<{
388
+ pc: z.ZodString;
389
+ relativePc: z.ZodString;
390
+ module: z.ZodOptional<z.ZodString>;
391
+ buildId: z.ZodOptional<z.ZodString>;
392
+ }, z.core.$strip>>;
393
+ signalNumber: z.ZodOptional<z.ZodNumber>;
394
+ signalCode: z.ZodOptional<z.ZodNumber>;
395
+ }, z.core.$strip>>;
273
396
  exceptionType: z.ZodString;
274
397
  message: z.ZodString;
275
398
  frames: z.ZodArray<z.ZodObject<{
@@ -286,12 +409,245 @@ declare const ReportEnvelope: z.ZodObject<{
286
409
  occurredAt: z.ZodString;
287
410
  fingerprint: z.ZodString;
288
411
  }, z.core.$loose>>;
412
+ diagnostic: z.ZodOptional<z.ZodObject<{
413
+ version: z.ZodLiteral<1>;
414
+ evidenceId: z.ZodString;
415
+ processLaunchId: z.ZodString;
416
+ nativeExposure: z.ZodOptional<z.ZodObject<{
417
+ loadedBuildId: z.ZodNullable<z.ZodString>;
418
+ loadedBundleStatus: z.ZodEnum<{
419
+ unknown: "unknown";
420
+ known: "known";
421
+ not_applicable: "not_applicable";
422
+ }>;
423
+ exposureId: z.ZodString;
424
+ processLaunchId: z.ZodString;
425
+ startedAt: z.ZodISODateTime;
426
+ app: z.ZodObject<{
427
+ version: z.ZodString;
428
+ build: z.ZodNullable<z.ZodString>;
429
+ debug: z.ZodBoolean;
430
+ }, z.core.$strict>;
431
+ }, z.core.$strict>>;
432
+ kind: z.ZodLiteral<"process_exit">;
433
+ provenance: z.ZodLiteral<"android_application_exit_info">;
434
+ scope: z.ZodLiteral<"os_process">;
435
+ outcome: z.ZodLiteral<"terminated">;
436
+ cause: z.ZodEnum<{
437
+ unknown: "unknown";
438
+ anr: "anr";
439
+ native_crash: "native_crash";
440
+ java_crash: "java_crash";
441
+ system_low_memory: "system_low_memory";
442
+ user_requested: "user_requested";
443
+ system_other: "system_other";
444
+ }>;
445
+ occurredAt: z.ZodString;
446
+ collectedAt: z.ZodString;
447
+ attribution: z.ZodObject<{
448
+ process: z.ZodLiteral<"exact_os_token">;
449
+ release: z.ZodLiteral<"frozen">;
450
+ session: z.ZodLiteral<"unavailable">;
451
+ webExposure: z.ZodLiteral<"unavailable">;
452
+ }, z.core.$strict>;
453
+ android: z.ZodObject<{
454
+ apiLevel: z.ZodNumber;
455
+ reason: z.ZodNumber;
456
+ pid: z.ZodNumber;
457
+ importance: z.ZodOptional<z.ZodNumber>;
458
+ pssKb: z.ZodOptional<z.ZodNumber>;
459
+ rssKb: z.ZodOptional<z.ZodNumber>;
460
+ description: z.ZodOptional<z.ZodString>;
461
+ mappingId: z.ZodOptional<z.ZodString>;
462
+ }, z.core.$strict>;
463
+ trace: z.ZodObject<{
464
+ status: z.ZodEnum<{
465
+ unavailable: "unavailable";
466
+ available: "available";
467
+ malformed: "malformed";
468
+ unsupported: "unsupported";
469
+ not_requested: "not_requested";
470
+ }>;
471
+ format: z.ZodEnum<{
472
+ none: "none";
473
+ android_anr_text: "android_anr_text";
474
+ android_tombstone: "android_tombstone";
475
+ }>;
476
+ truncated: z.ZodBoolean;
477
+ frames: z.ZodArray<z.ZodObject<{
478
+ function: z.ZodString;
479
+ file: z.ZodOptional<z.ZodString>;
480
+ line: z.ZodOptional<z.ZodNumber>;
481
+ }, z.core.$strict>>;
482
+ }, z.core.$strict>;
483
+ }, z.core.$strict>>;
484
+ appleDiagnostic: z.ZodOptional<z.ZodObject<{
485
+ version: z.ZodLiteral<1>;
486
+ evidenceId: z.ZodString;
487
+ ownershipId: z.ZodString;
488
+ kind: z.ZodEnum<{
489
+ hang_batch: "hang_batch";
490
+ app_exit_summary: "app_exit_summary";
491
+ }>;
492
+ provenance: z.ZodLiteral<"apple_metrickit">;
493
+ scope: z.ZodLiteral<"reporting_interval">;
494
+ outcome: z.ZodLiteral<"unknown">;
495
+ interval: z.ZodObject<{
496
+ begin: z.ZodString;
497
+ end: z.ZodString;
498
+ }, z.core.$strict>;
499
+ collectedAt: z.ZodString;
500
+ attribution: z.ZodObject<{
501
+ process: z.ZodLiteral<"unavailable">;
502
+ release: z.ZodLiteral<"frozen">;
503
+ session: z.ZodLiteral<"unavailable">;
504
+ webExposure: z.ZodLiteral<"unavailable">;
505
+ }, z.core.$strict>;
506
+ apple: z.ZodObject<{
507
+ applicationVersion: z.ZodString;
508
+ applicationBuild: z.ZodString;
509
+ osVersion: z.ZodString;
510
+ }, z.core.$strict>;
511
+ truncated: z.ZodBoolean;
512
+ hangs: z.ZodOptional<z.ZodArray<z.ZodObject<{
513
+ durationMs: z.ZodNumber;
514
+ stack: z.ZodObject<{
515
+ status: z.ZodEnum<{
516
+ unavailable: "unavailable";
517
+ available: "available";
518
+ malformed: "malformed";
519
+ oversized: "oversized";
520
+ }>;
521
+ truncated: z.ZodBoolean;
522
+ frames: z.ZodArray<z.ZodObject<{
523
+ binaryUUID: z.ZodString;
524
+ binaryName: z.ZodString;
525
+ address: z.ZodString;
526
+ offset: z.ZodString;
527
+ }, z.core.$strict>>;
528
+ }, z.core.$strict>;
529
+ }, z.core.$strict>>>;
530
+ exits: z.ZodOptional<z.ZodArray<z.ZodObject<{
531
+ state: z.ZodEnum<{
532
+ background: "background";
533
+ foreground: "foreground";
534
+ }>;
535
+ reason: z.ZodEnum<{
536
+ normal: "normal";
537
+ memory_resource_limit: "memory_resource_limit";
538
+ bad_access: "bad_access";
539
+ abnormal: "abnormal";
540
+ illegal_instruction: "illegal_instruction";
541
+ watchdog: "watchdog";
542
+ cpu_resource_limit: "cpu_resource_limit";
543
+ memory_pressure: "memory_pressure";
544
+ suspended_locked_file: "suspended_locked_file";
545
+ background_task_timeout: "background_task_timeout";
546
+ }>;
547
+ count: z.ZodNumber;
548
+ }, z.core.$strict>>>;
549
+ }, z.core.$strict>>;
550
+ recoveredStall: z.ZodOptional<z.ZodObject<{
551
+ version: z.ZodLiteral<1>;
552
+ evidenceId: z.ZodString;
553
+ kind: z.ZodLiteral<"recovered_main_thread_stall">;
554
+ provenance: z.ZodLiteral<"android_main_looper_probe">;
555
+ outcome: z.ZodLiteral<"recovered">;
556
+ scope: z.ZodLiteral<"main_looper">;
557
+ queuedAt: z.ZodString;
558
+ recoveredAt: z.ZodString;
559
+ probeDelayMs: z.ZodNumber;
560
+ thresholdMs: z.ZodLiteral<5000>;
561
+ sampleIntervalMs: z.ZodLiteral<1000>;
562
+ clock: z.ZodLiteral<"uptime">;
563
+ eligibility: z.ZodLiteral<"foreground-debugger-checked-v1">;
564
+ trace: z.ZodLiteral<"not_collected">;
565
+ attribution: z.ZodObject<{
566
+ release: z.ZodLiteral<"frozen">;
567
+ session: z.ZodLiteral<"unavailable">;
568
+ webExposure: z.ZodLiteral<"unavailable">;
569
+ nativeExposure: z.ZodLiteral<"unavailable">;
570
+ }, z.core.$strict>;
571
+ android: z.ZodObject<{
572
+ apiLevel: z.ZodNumber;
573
+ }, z.core.$strict>;
574
+ }, z.core.$strict>>;
575
+ inferredTermination: z.ZodOptional<z.ZodObject<{
576
+ version: z.ZodLiteral<1>;
577
+ evidenceId: z.ZodString;
578
+ processLaunchId: z.ZodString;
579
+ nativeExposure: z.ZodOptional<z.ZodObject<{
580
+ loadedBuildId: z.ZodNullable<z.ZodString>;
581
+ loadedBundleStatus: z.ZodEnum<{
582
+ unknown: "unknown";
583
+ known: "known";
584
+ not_applicable: "not_applicable";
585
+ }>;
586
+ exposureId: z.ZodString;
587
+ processLaunchId: z.ZodString;
588
+ startedAt: z.ZodISODateTime;
589
+ app: z.ZodObject<{
590
+ version: z.ZodString;
591
+ build: z.ZodNullable<z.ZodString>;
592
+ debug: z.ZodBoolean;
593
+ }, z.core.$strict>;
594
+ }, z.core.$strict>>;
595
+ kind: z.ZodLiteral<"process_exit">;
596
+ provenance: z.ZodEnum<{
597
+ apple_next_launch_inference: "apple_next_launch_inference";
598
+ }>;
599
+ scope: z.ZodLiteral<"os_process">;
600
+ outcome: z.ZodLiteral<"terminated">;
601
+ rules: z.ZodEnum<{
602
+ "apple-foreground-v1": "apple-foreground-v1";
603
+ }>;
604
+ cause: z.ZodEnum<{
605
+ low_memory: "low_memory";
606
+ unresponsive: "unresponsive";
607
+ unexplained: "unexplained";
608
+ }>;
609
+ lastSeenAt: z.ZodString;
610
+ collectedAt: z.ZodString;
611
+ attribution: z.ZodObject<{
612
+ process: z.ZodEnum<{
613
+ sdk_run_record: "sdk_run_record";
614
+ }>;
615
+ release: z.ZodLiteral<"frozen">;
616
+ session: z.ZodLiteral<"unavailable">;
617
+ webExposure: z.ZodLiteral<"unavailable">;
618
+ }, z.core.$strict>;
619
+ apple: z.ZodObject<{
620
+ appState: z.ZodEnum<{
621
+ active: "active";
622
+ inactive: "inactive";
623
+ launching: "launching";
624
+ }>;
625
+ footprintKb: z.ZodOptional<z.ZodNumber>;
626
+ availableKb: z.ZodOptional<z.ZodNumber>;
627
+ memorySampledAt: z.ZodOptional<z.ZodString>;
628
+ memoryWarnings: z.ZodNumber;
629
+ lastMemoryWarningAt: z.ZodOptional<z.ZodString>;
630
+ memoryPressure: z.ZodEnum<{
631
+ warning: "warning";
632
+ normal: "normal";
633
+ critical: "critical";
634
+ }>;
635
+ mainThreadStallMs: z.ZodOptional<z.ZodNumber>;
636
+ thermalState: z.ZodEnum<{
637
+ critical: "critical";
638
+ nominal: "nominal";
639
+ fair: "fair";
640
+ serious: "serious";
641
+ }>;
642
+ }, z.core.$strict>;
643
+ }, z.core.$strict>>;
289
644
  }, z.core.$loose>;
290
645
  context: z.ZodObject<{
291
646
  app: z.ZodObject<{
292
647
  name: z.ZodString;
293
648
  version: z.ZodString;
294
649
  build: z.ZodOptional<z.ZodString>;
650
+ debug: z.ZodOptional<z.ZodBoolean>;
295
651
  }, z.core.$loose>;
296
652
  device: z.ZodObject<{
297
653
  os: z.ZodString;
@@ -447,58 +803,6 @@ declare class EverframeNotMountedError extends Error {
447
803
  constructor(message?: string);
448
804
  }
449
805
 
450
- declare const ErrorSeverity: z.ZodEnum<{
451
- error: "error";
452
- info: "info";
453
- warning: "warning";
454
- }>;
455
- type ErrorSeverity = z.infer<typeof ErrorSeverity>;
456
-
457
- /** Optional per-occurrence details captured with a handled exception. */
458
- interface CaptureExceptionOptions {
459
- severity?: ErrorSeverity;
460
- context?: string;
461
- metadata?: Record<string, unknown>;
462
- }
463
- interface DeviceMetadata {
464
- os: string;
465
- osVersion: string;
466
- model?: string;
467
- screenSize: {
468
- width: number;
469
- height: number;
470
- };
471
- pixelRatio: number;
472
- locale: string;
473
- timezone: string;
474
- network?: string;
475
- /**
476
- * Raw User-Agent string from `navigator.userAgent`. Surfaced to triagers so
477
- * they can disambiguate things our OS/version parser doesn't capture
478
- * (browser engine + version, in-app webviews, bot signatures, accessibility
479
- * UA overrides). Web SDK only — native SDKs leave this undefined.
480
- */
481
- userAgent?: string;
482
- }
483
- interface ReportDraft {
484
- title: string;
485
- description: string;
486
- excludedArtifacts: string[];
487
- annotations: unknown[];
488
- redactions: unknown[];
489
- /** Host-supplied free-form metadata (from `setExtra`). Opaque string, ≤2000 chars. */
490
- extra?: string;
491
- }
492
- /**
493
- * A host-supplied function that produces the next report's `extra` payload
494
- * on demand. Registered via `setExtra(resolve)`; invoked once per report
495
- * assembly (see `resolveClientExtra`), never at registration time.
496
- */
497
- type ExtraResolver = () => string | Record<string, unknown>;
498
-
499
- /** Protocol ceiling — `packages/protocol/src/envelope.ts`. */
500
- declare const EXTRA_MAX_CHARS = 16384;
501
-
502
806
  /** Shape exposed via `useEverframe()` and the top-level `open` re-export. */
503
807
  interface EverframeContextValue {
504
808
  /** Cached native delivery observations, independent of JS admission; optional for older context implementations. */
@@ -659,19 +963,38 @@ declare function getReportDeliveryStatus(): ReportDeliveryStatus;
659
963
  * review instruction, left as pre-existing behavior rather than folded in
660
964
  * here.
661
965
  */
662
- interface RuntimeConfig extends Omit<ConfigOpts, "sdkVersion" | "installIdentifierDisabled" | "companionBadgeEnabled" | "companionBadgePosition" | "shakeToReportEnabled" | "themeBackground" | "themeSurface" | "themeBorder" | "themeText" | "themeTextMuted" | "themeAccent" | "themeAccentForeground" | "themeDestructive" | "vitalsEnabled" | "vitalsSampleRate" | "vitalsCaptureSourceQuery"> {
966
+ interface RuntimeConfig extends Omit<ConfigOpts, "sdkVersion" | "installIdentifierDisabled" | "crashReportingDisabled" | "companionBadgeEnabled" | "companionBadgePosition" | "shakeToReportEnabled" | "themeBackground" | "themeSurface" | "themeBorder" | "themeText" | "themeTextMuted" | "themeAccent" | "themeAccentForeground" | "themeDestructive" | "vitalsEnabled" | "vitalsSampleRate" | "vitalsCaptureSourceQuery" | "releaseHealthEnabled" | "releaseHealthLoadedBuildId" | "releaseHealthUserId" | "releaseHealthIncludeDebugBuilds"> {
663
967
  /**
664
968
  * Per-app SDK key (publishable, not secret). Required on the host-facing
665
- * config — narrows the bridge `ConfigOpts.apiKey?` to required so a missing
969
+ * config — narrows the bridge `ConfigOpts.sdkKey?` to required so a missing
666
970
  * key is a compile-time error, matching the React SDK. The bridge type stays
667
971
  * optional (extractBridgeConfig builds `{}`); only this host surface requires it.
668
972
  */
669
- apiKey: string;
973
+ sdkKey: string;
670
974
  appName?: string;
671
- appVersion?: string;
672
- appBuild?: string;
673
975
  /** Exact loaded Hermes bundle identity, independent of the native app build. */
674
976
  jsBundle?: JsBundleConfig;
977
+ /**
978
+ * Whether this is a debug build. Everframe never makes a release out of a debug build, and release
979
+ * health skips it. Defaults to React Native's `__DEV__`; set it only to override that.
980
+ */
981
+ debugBuild?: boolean;
982
+ /**
983
+ * Native foreground-session monitoring (release health). On by default:
984
+ * leave this out, or leave `enabled` out, and it is on; `enabled: false`
985
+ * turns it off and erases undelivered records on the device. The native SDK
986
+ * reads the app version and build; the loaded build comes from validated
987
+ * Hermes jsBundle metadata, and without that identity release health stays
988
+ * off. userId is an optional opaque identifier supplied for this purpose;
989
+ * null or omitted means anonymous, and setUser never supplies it implicitly.
990
+ * The native SDKs skip debug builds; `includeDebugBuilds: true` counts them,
991
+ * for checking an integration.
992
+ */
993
+ releaseHealth?: {
994
+ enabled?: boolean;
995
+ userId?: string | null;
996
+ includeDebugBuilds?: boolean;
997
+ };
675
998
  /**
676
999
  * Opt-in JS-side capture integrations (spec 2026-07-14 RN-iOS parity).
677
1000
  * Import from '@everframe/react-native/integrations/*'; nothing
@@ -680,10 +1003,12 @@ interface RuntimeConfig extends Omit<ConfigOpts, "sdkVersion" | "installIdentifi
680
1003
  integrations?: EverframeIntegration[];
681
1004
  /**
682
1005
  * Crash/error reporting (spec 2026-07-18). Installs a default-on global
683
- * ErrorUtils handler on mount — deliberately NOT gated behind
1006
+ * ErrorUtils handler on mount, plus a hook on React Native's
1007
+ * ExceptionsManager for errors no React error boundary catches (React 19
1008
+ * reports those through the root, not ErrorUtils) — deliberately NOT gated behind
684
1009
  * `integrations` (deviation from the RN integrations doctrine, recorded in
685
1010
  * the spec): crash capture is a safety net, not an opt-in enrichment. Set
686
- * `disabled: true` to veto it entirely.
1011
+ * `disabled: true` to veto it entirely, including native crash and ANR capture.
687
1012
  */
688
1013
  crashReporting?: {
689
1014
  disabled?: boolean;
@@ -795,9 +1120,14 @@ interface RuntimeConfig extends Omit<ConfigOpts, "sdkVersion" | "installIdentifi
795
1120
  captureSourceQuery?: boolean;
796
1121
  };
797
1122
  }
1123
+ /**
1124
+ * The provider config as a host passes it: the SDK key as `sdkKey`, or as the
1125
+ * deprecated `apiKey` (its name before 1.2).
1126
+ */
1127
+ type EverframeProviderConfig = WithSdkKeyField<RuntimeConfig>;
798
1128
 
799
1129
  interface EverframeProviderProps {
800
- config: RuntimeConfig;
1130
+ config: EverframeProviderConfig;
801
1131
  children: React.ReactNode;
802
1132
  }
803
1133
  declare function EverframeProvider(props: EverframeProviderProps): React.ReactElement;