@everframe/react-native 1.4.1 → 1.5.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.
@@ -40,7 +40,7 @@ package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
40
40
  # 1.2.0, so the range already asks for 1.2 while package.json is still 1.1.0.
41
41
  # The 1.2.0 release moves package.json to match.
42
42
  native_version_override = ENV['EVERFRAME_NATIVE_POD_VERSION'].to_s.strip
43
- native_minor_range = native_version_override.empty? ? '~> 1.4.0' : native_version_override
43
+ native_minor_range = native_version_override.empty? ? '~> 1.5.0' : native_version_override
44
44
 
45
45
  Pod::Spec.new do |s|
46
46
  s.name = 'EverframeRN'
package/README.md CHANGED
@@ -710,6 +710,25 @@ In React Native and Expo development builds, use
710
710
  `shakeToReport: { enabled: !__DEV__ }` because the React Native development
711
711
  menu also uses shake. Production remains enabled by default.
712
712
 
713
+ #### Quick capture on simulators and emulators
714
+
715
+ Debug builds on an iOS simulator or Android emulator can file a report without
716
+ opening the reporter: double Shift on the simulator, or
717
+ `npx @everframe/cli capture` (and `npx @everframe/cli hotkey` on macOS) from
718
+ your terminal. Run `npx @everframe/cli login` once so captures are attributed
719
+ to you. It stays dark until the dashboard turns the capture hotkey on for the
720
+ app, and never runs on devices or release builds. To opt this app out locally:
721
+
722
+ ```tsx
723
+ <EverframeProvider
724
+ config={{ sdkKey: 'evf_live_xxxxxxxxxxxxxxxx', quickCapture: { enabled: false } }}
725
+ >
726
+ ```
727
+
728
+ `quickCapture.enabled` defaults to `true`; a local `true` never overrides a
729
+ dashboard disable. A session started with `capture.screenshot` off ignores quick
730
+ capture.
731
+
713
732
  All other gestures and keys are host-owned. The host app
714
733
  calls `useEverframe().open()` (or the top-level `open()`)
715
734
  from whatever trigger makes sense for the target form factor.
@@ -153,7 +153,7 @@ val rnSdkPkg = groovy.json.JsonSlurper()
153
153
  val rnSdkVersion = rnSdkPkg["version"] as String
154
154
  // Native 1.2.0 is the release that renamed the SDK key to `sdkKey`; the
155
155
  // bridge moves with it, ahead of package.json, which the 1.2.0 release bumps.
156
- val nativeMinorRange: String = nativeVersionOverride ?: "[1.4.0,1.5.0)"
156
+ val nativeMinorRange: String = nativeVersionOverride ?: "[1.5.0,1.6.0)"
157
157
  if (nativeVersionOverride != null) {
158
158
  logger.lifecycle(
159
159
  "[everframe-rn] native AAR pinned to $nativeVersionOverride via everframeNativeVersion " +
@@ -352,6 +352,7 @@ class EverframeModule(
352
352
  // `startCompanion()` time, mirroring `attachPinUi`.
353
353
  companionBadgeEnabled = opts.takeIfHasBoolean("companionBadgeEnabled") ?: true,
354
354
  shakeToReportEnabled = opts.takeIfHasBoolean("shakeToReportEnabled") ?: true,
355
+ quickCaptureEnabled = opts.takeIfHasBoolean("quickCaptureEnabled") ?: true,
355
356
  reporterEnabled = !reporterDisabled,
356
357
  companionBadgePosition = opts.takeIfHasString("companionBadgePosition"),
357
358
  // Inline reporter theme (reporter branding spec 2026-08-25,
@@ -91,6 +91,8 @@ type ConfigOpts = {
91
91
  companionBadgeEnabled?: boolean;
92
92
  /** Local veto for native mobile shake-to-report. Absent defaults to enabled. */
93
93
  shakeToReportEnabled?: boolean;
94
+ /** Local veto for simulator/emulator quick capture. Absent defaults to enabled. */
95
+ quickCaptureEnabled?: boolean;
94
96
  /**
95
97
  * Crash-only session switch. `true` turns off every on-device way to open the reporter, keeps
96
98
  * network bodies off and samples replay with the server's crash-only rate until a companion
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ import * as React from 'react';
2
2
  import { EverframeUserSpec, ConfigOpts } from './NativeEverframe.js';
3
3
  export { Rect, Spec } from './NativeEverframe.js';
4
4
  import { E as EverframeIntegration } from './types-D5e4kWaw.js';
5
- import { R as ReportDeliveryStatus, E as ErrorCaptureStatus, P as PromiseRejectionStatus, a as ReporterOpenOptions, b as ReporterResult, c as ReporterTrigger, I as InteractionPolicyOptions, V as VitalsPlayerEventType, d as InteractionTargetAnnotation, e as InteractionHookOptions, C as ControlChangeInput, S as ScrollInput } from './launch-BvE4IjRk.js';
6
- export { A as AttachmentRef, f as ErrorCaptureCounters, g as ErrorCaptureOutcome, h as ErrorCapturePath, i as EverframeNotMountedError, j as EverframeReporterDisabledError, H as HelperType, L as LaunchContext, k as PermissionResult, l as PromiseRejectionCounters, m as RejectionReason, n as ReportCaptureOutcome, o as ReportCapturePath, p as ReportCapturePathStatus, q as ReportDeliveryReason, r as ReportEnvelope, s as ReportQueueOperation, t as ReportQueueStatus, u as ReportStorageFailure, v as ReportTransportOrigin, w as ReportTransportOutcome, x as ReportTransportStatus, U as UINode, y as UITree, z as observePermissionRequest, B as recordLaunchContext } from './launch-BvE4IjRk.js';
5
+ import { R as ReportDeliveryStatus, E as ErrorCaptureStatus, P as PromiseRejectionStatus, a as ReporterOpenOptions, b as ReporterResult, c as ReporterTrigger, I as InteractionPolicyOptions, V as VitalsPlayerEventType, d as InteractionTargetAnnotation, e as InteractionHookOptions, C as ControlChangeInput, S as ScrollInput } from './launch-C8wbMunK.js';
6
+ export { A as AttachmentRef, f as ErrorCaptureCounters, g as ErrorCaptureOutcome, h as ErrorCapturePath, i as EverframeNotMountedError, j as EverframeReporterDisabledError, H as HelperType, L as LaunchContext, k as PermissionResult, l as PromiseRejectionCounters, m as RejectionReason, n as ReportCaptureOutcome, o as ReportCapturePath, p as ReportCapturePathStatus, q as ReportDeliveryReason, r as ReportEnvelope, s as ReportQueueOperation, t as ReportQueueStatus, u as ReportStorageFailure, v as ReportTransportOrigin, w as ReportTransportOutcome, x as ReportTransportStatus, U as UINode, y as UITree, z as observePermissionRequest, B as recordLaunchContext } from './launch-C8wbMunK.js';
7
7
  import { z } from 'zod';
8
8
  import { ViewProps, EventSubscription } from 'react-native';
9
9
 
@@ -238,7 +238,7 @@ declare function markReporterClosed(): Promise<void>;
238
238
  * review instruction, left as pre-existing behavior rather than folded in
239
239
  * here.
240
240
  */
241
- interface RuntimeConfig extends Omit<ConfigOpts, 'sdkVersion' | 'interactionsJson' | 'installIdentifierDisabled' | 'crashReportingDisabled' | 'companionBadgeEnabled' | 'companionBadgePosition' | 'shakeToReportEnabled' | 'reporterDisabled' | 'themeBackground' | 'themeSurface' | 'themeBorder' | 'themeText' | 'themeTextMuted' | 'themeAccent' | 'themeAccentForeground' | 'themeDestructive' | 'vitalsEnabled' | 'vitalsSampleRate' | 'vitalsCaptureSourceQuery' | 'releaseHealthEnabled' | 'releaseHealthLoadedBuildId' | 'releaseHealthUserId' | 'releaseHealthIncludeDebugBuilds'> {
241
+ interface RuntimeConfig extends Omit<ConfigOpts, 'sdkVersion' | 'interactionsJson' | 'installIdentifierDisabled' | 'crashReportingDisabled' | 'companionBadgeEnabled' | 'companionBadgePosition' | 'shakeToReportEnabled' | 'quickCaptureEnabled' | 'reporterDisabled' | 'themeBackground' | 'themeSurface' | 'themeBorder' | 'themeText' | 'themeTextMuted' | 'themeAccent' | 'themeAccentForeground' | 'themeDestructive' | 'vitalsEnabled' | 'vitalsSampleRate' | 'vitalsCaptureSourceQuery' | 'releaseHealthEnabled' | 'releaseHealthLoadedBuildId' | 'releaseHealthUserId' | 'releaseHealthIncludeDebugBuilds'> {
242
242
  /**
243
243
  * Per-app SDK key (publishable, not secret). Required on the host-facing
244
244
  * config — narrows the bridge `ConfigOpts.sdkKey?` to required so a missing
@@ -358,6 +358,13 @@ interface RuntimeConfig extends Omit<ConfigOpts, 'sdkVersion' | 'interactionsJso
358
358
  shakeToReport?: {
359
359
  enabled?: boolean;
360
360
  };
361
+ /**
362
+ * Simulator/emulator quick capture. Enabled by default and armed only on
363
+ * debug simulator or emulator builds; `{ enabled: false }` opts this app out.
364
+ */
365
+ quickCapture?: {
366
+ enabled?: boolean;
367
+ };
361
368
  /**
362
369
  * Crash-only session switch (spec 2026-10-12). CLIENT VETO only.
363
370
  * `disabled: true` turns off every on-device way to open the reporter