@sentry/react-native 5.33.2 → 5.35.0-beta.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/CHANGELOG.md +30 -0
- package/README.md +8 -0
- package/RNSentry.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java +35 -15
- package/android/src/main/java/io/sentry/react/RNSentryPackage.java +0 -1
- package/android/src/main/java/io/sentry/react/RNSentryTimeToDisplay.java +39 -0
- package/android/src/newarch/java/io/sentry/react/RNSentryModule.java +5 -0
- package/android/src/oldarch/java/io/sentry/react/RNSentryModule.java +5 -0
- package/dist/js/NativeRNSentry.d.ts +1 -0
- package/dist/js/NativeRNSentry.d.ts.map +1 -1
- package/dist/js/NativeRNSentry.js.map +1 -1
- package/dist/js/integrations/nativelinkederrors.js +7 -2
- package/dist/js/integrations/nativelinkederrors.js.map +1 -1
- package/dist/js/tracing/reactnavigation.d.ts.map +1 -1
- package/dist/js/tracing/reactnavigation.js +7 -7
- package/dist/js/tracing/reactnavigation.js.map +1 -1
- package/dist/js/tracing/timetodisplay.d.ts.map +1 -1
- package/dist/js/tracing/timetodisplay.js +3 -1
- package/dist/js/tracing/timetodisplay.js.map +1 -1
- package/dist/js/utils/sentryeventemitterfallback.d.ts +19 -0
- package/dist/js/utils/sentryeventemitterfallback.d.ts.map +1 -0
- package/dist/js/utils/sentryeventemitterfallback.js +78 -0
- package/dist/js/utils/sentryeventemitterfallback.js.map +1 -0
- package/dist/js/version.d.ts +1 -1
- package/dist/js/version.d.ts.map +1 -1
- package/dist/js/version.js +1 -1
- package/dist/js/version.js.map +1 -1
- package/dist/js/wrapper.d.ts +2 -1
- package/dist/js/wrapper.d.ts.map +1 -1
- package/dist/js/wrapper.js +43 -5
- package/dist/js/wrapper.js.map +1 -1
- package/ios/RNSentry.mm +18 -1
- package/ios/RNSentryTimeToDisplay.h +7 -0
- package/ios/RNSentryTimeToDisplay.m +43 -0
- package/package.json +2 -2
- package/sentry.gradle +3 -6
- package/src/js/NativeRNSentry.ts +2 -0
- package/ts3.8/dist/js/NativeRNSentry.d.ts +1 -0
- package/ts3.8/dist/js/utils/sentryeventemitterfallback.d.ts +19 -0
- package/ts3.8/dist/js/version.d.ts +1 -1
- package/ts3.8/dist/js/wrapper.d.ts +2 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#import "RNSentryTimeToDisplay.h"
|
|
2
|
+
#import <QuartzCore/QuartzCore.h>
|
|
3
|
+
#import <React/RCTLog.h>
|
|
4
|
+
|
|
5
|
+
@implementation RNSentryTimeToDisplay
|
|
6
|
+
{
|
|
7
|
+
CADisplayLink *displayLink;
|
|
8
|
+
RCTResponseSenderBlock resolveBlock;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Rename requestAnimationFrame to getTimeToDisplay
|
|
12
|
+
- (void)getTimeToDisplay:(RCTResponseSenderBlock)callback
|
|
13
|
+
{
|
|
14
|
+
// Store the resolve block to use in the callback.
|
|
15
|
+
resolveBlock = callback;
|
|
16
|
+
|
|
17
|
+
#if TARGET_OS_IOS
|
|
18
|
+
// Create and add a display link to get the callback after the screen is rendered.
|
|
19
|
+
displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(handleDisplayLink:)];
|
|
20
|
+
[displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
|
|
21
|
+
#else
|
|
22
|
+
resolveBlock(@[]); // Return nothing if not iOS.
|
|
23
|
+
#endif
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
#if TARGET_OS_IOS
|
|
27
|
+
- (void)handleDisplayLink:(CADisplayLink *)link {
|
|
28
|
+
// Get the current time
|
|
29
|
+
NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970] * 1000.0; // Convert to milliseconds
|
|
30
|
+
|
|
31
|
+
// Ensure the callback is valid and pass the current time back
|
|
32
|
+
if (resolveBlock) {
|
|
33
|
+
resolveBlock(@[@(currentTime)]); // Call the callback with the current time
|
|
34
|
+
resolveBlock = nil; // Clear the block after it's called
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Invalidate the display link to stop future callbacks
|
|
38
|
+
[displayLink invalidate];
|
|
39
|
+
displayLink = nil;
|
|
40
|
+
}
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
@end
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@sentry/react-native",
|
|
3
3
|
"homepage": "https://github.com/getsentry/sentry-react-native",
|
|
4
4
|
"repository": "https://github.com/getsentry/sentry-react-native",
|
|
5
|
-
"version": "5.
|
|
5
|
+
"version": "5.35.0-beta.0",
|
|
6
6
|
"description": "Official Sentry SDK for react-native",
|
|
7
7
|
"typings": "dist/js/index.d.ts",
|
|
8
8
|
"types": "dist/js/index.d.ts",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"dependencies": {
|
|
70
70
|
"@sentry/babel-plugin-component-annotate": "2.20.1",
|
|
71
71
|
"@sentry/browser": "7.119.1",
|
|
72
|
-
"@sentry/cli": "2.
|
|
72
|
+
"@sentry/cli": "2.37.0",
|
|
73
73
|
"@sentry/core": "7.119.1",
|
|
74
74
|
"@sentry/hub": "7.119.0",
|
|
75
75
|
"@sentry/integrations": "7.119.0",
|
package/sentry.gradle
CHANGED
|
@@ -65,9 +65,6 @@ gradle.projectsEvaluated {
|
|
|
65
65
|
def currentVariants = extractCurrentVariants(bundleTask, releases)
|
|
66
66
|
if (currentVariants == null) return
|
|
67
67
|
|
|
68
|
-
def variant = null
|
|
69
|
-
def releaseName = null
|
|
70
|
-
def versionCode = null
|
|
71
68
|
def previousCliTask = null
|
|
72
69
|
def applicationVariant = null
|
|
73
70
|
|
|
@@ -75,9 +72,9 @@ gradle.projectsEvaluated {
|
|
|
75
72
|
def nameModulesCleanup = "${bundleTask.name}_SentryCollectModulesCleanUp"
|
|
76
73
|
// Upload the source map several times if necessary: once for each release and versionCode.
|
|
77
74
|
currentVariants.each { key, currentVariant ->
|
|
78
|
-
variant = currentVariant[0]
|
|
79
|
-
releaseName = currentVariant[1]
|
|
80
|
-
versionCode = currentVariant[2]
|
|
75
|
+
def variant = currentVariant[0]
|
|
76
|
+
def releaseName = currentVariant[1]
|
|
77
|
+
def versionCode = currentVariant[2]
|
|
81
78
|
applicationVariant = currentVariant[3]
|
|
82
79
|
|
|
83
80
|
try {
|
package/src/js/NativeRNSentry.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type { UnsafeObject } from './utils/rnlibrariesinterface';
|
|
|
9
9
|
export interface Spec extends TurboModule {
|
|
10
10
|
addListener: (eventType: string) => void;
|
|
11
11
|
removeListeners: (id: number) => void;
|
|
12
|
+
getNewScreenTimeToDisplay(): Promise<number | undefined | null>;
|
|
12
13
|
addBreadcrumb(breadcrumb: UnsafeObject): void;
|
|
13
14
|
captureEnvelope(
|
|
14
15
|
bytes: string,
|
|
@@ -16,6 +17,7 @@ export interface Spec extends TurboModule {
|
|
|
16
17
|
hardCrashed: boolean;
|
|
17
18
|
},
|
|
18
19
|
): Promise<boolean>;
|
|
20
|
+
|
|
19
21
|
captureScreenshot(): Promise<NativeScreenshot[] | undefined | null>;
|
|
20
22
|
clearBreadcrumbs(): void;
|
|
21
23
|
crash(): void;
|
|
@@ -4,6 +4,7 @@ import type { UnsafeObject } from './utils/rnlibrariesinterface';
|
|
|
4
4
|
export interface Spec extends TurboModule {
|
|
5
5
|
addListener: (eventType: string) => void;
|
|
6
6
|
removeListeners: (id: number) => void;
|
|
7
|
+
getNewScreenTimeToDisplay(): Promise<number | undefined | null>;
|
|
7
8
|
addBreadcrumb(breadcrumb: UnsafeObject): void;
|
|
8
9
|
captureEnvelope(bytes: string, options: {
|
|
9
10
|
hardCrashed: boolean;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SentryEventEmitter } from './sentryeventemitter';
|
|
2
|
+
export declare const FALLBACK_TIMEOUT_MS = 10000;
|
|
3
|
+
export type FallBackNewFrameEvent = {
|
|
4
|
+
newFrameTimestampInSeconds: number;
|
|
5
|
+
isFallback?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export interface SentryEventEmitterFallback {
|
|
8
|
+
/**
|
|
9
|
+
* Initializes the fallback event emitter
|
|
10
|
+
* This method is synchronous in JS but the event emitter starts asynchronously.
|
|
11
|
+
*/
|
|
12
|
+
initAsync: () => void;
|
|
13
|
+
onceNewFrame: (listener: (event: FallBackNewFrameEvent) => void) => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates emitter that allows to listen to UI Frame events when ready.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createSentryFallbackEventEmitter(emitter?: SentryEventEmitter, fallbackTimeoutMs?: number): SentryEventEmitterFallback;
|
|
19
|
+
//# sourceMappingURL=sentryeventemitterfallback.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const SDK_PACKAGE_NAME = "npm:@sentry/react-native";
|
|
2
2
|
export declare const SDK_NAME = "sentry.javascript.react-native";
|
|
3
|
-
export declare const SDK_VERSION = "5.
|
|
3
|
+
export declare const SDK_VERSION = "5.35.0-beta.0";
|
|
4
4
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -46,7 +46,7 @@ interface SentryNativeWrapper {
|
|
|
46
46
|
enableNativeFramesTracking(): void;
|
|
47
47
|
addBreadcrumb(breadcrumb: Breadcrumb): void;
|
|
48
48
|
setContext(key: string, context: {
|
|
49
|
-
[key: string]:
|
|
49
|
+
[key: string]: any;
|
|
50
50
|
} | null): void;
|
|
51
51
|
clearBreadcrumbs(): void;
|
|
52
52
|
setExtra(key: string, extra: unknown): void;
|
|
@@ -70,6 +70,7 @@ interface SentryNativeWrapper {
|
|
|
70
70
|
captureReplay(isHardCrash: boolean): Promise<string | null>;
|
|
71
71
|
getCurrentReplayId(): string | null;
|
|
72
72
|
crashedLastRun(): Promise<boolean | null>;
|
|
73
|
+
getNewScreenTimeToDisplay(): Promise<number | null | undefined>;
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
76
|
* Our internal interface for calling native functions
|