@sentry/react-native 8.2.0 → 8.4.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/README.md +0 -1
- package/RNSentry.podspec +1 -1
- package/android/AGENTS.md +51 -0
- package/android/libs/replay-stubs.jar +0 -0
- package/android/src/main/java/io/sentry/react/RNSentryLogger.java +96 -0
- package/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java +13 -3
- package/android/src/main/java/io/sentry/react/RNSentryStart.java +21 -9
- package/android/src/main/java/io/sentry/react/RNSentryVersion.java +1 -1
- package/dist/js/NativeLogListener.d.ts +16 -0
- package/dist/js/NativeLogListener.d.ts.map +1 -0
- package/dist/js/NativeLogListener.js +72 -0
- package/dist/js/NativeLogListener.js.map +1 -0
- package/dist/js/client.d.ts +1 -0
- package/dist/js/client.d.ts.map +1 -1
- package/dist/js/client.js +14 -3
- package/dist/js/client.js.map +1 -1
- package/dist/js/index.d.ts +4 -4
- package/dist/js/index.d.ts.map +1 -1
- package/dist/js/index.js +2 -2
- package/dist/js/index.js.map +1 -1
- package/dist/js/integrations/default.d.ts.map +1 -1
- package/dist/js/integrations/default.js +2 -1
- package/dist/js/integrations/default.js.map +1 -1
- package/dist/js/integrations/expoconstants.d.ts +24 -0
- package/dist/js/integrations/expoconstants.d.ts.map +1 -0
- package/dist/js/integrations/expoconstants.js +77 -0
- package/dist/js/integrations/expoconstants.js.map +1 -0
- package/dist/js/integrations/expocontext.d.ts.map +1 -1
- package/dist/js/integrations/expocontext.js +35 -1
- package/dist/js/integrations/expocontext.js.map +1 -1
- package/dist/js/integrations/exports.d.ts +1 -0
- package/dist/js/integrations/exports.d.ts.map +1 -1
- package/dist/js/integrations/exports.js +1 -0
- package/dist/js/integrations/exports.js.map +1 -1
- package/dist/js/options.d.ts +26 -0
- package/dist/js/options.d.ts.map +1 -1
- package/dist/js/options.js.map +1 -1
- package/dist/js/sdk.d.ts.map +1 -1
- package/dist/js/sdk.js +3 -2
- package/dist/js/sdk.js.map +1 -1
- package/dist/js/tools/easBuildHooks.d.ts +48 -0
- package/dist/js/tools/easBuildHooks.d.ts.map +1 -0
- package/dist/js/tools/easBuildHooks.js +228 -0
- package/dist/js/tools/easBuildHooks.js.map +1 -0
- package/dist/js/tools/metroconfig.d.ts +4 -0
- package/dist/js/tools/metroconfig.d.ts.map +1 -1
- package/dist/js/tools/metroconfig.js +46 -1
- package/dist/js/tools/metroconfig.js.map +1 -1
- package/dist/js/tracing/expoAsset.d.ts +42 -0
- package/dist/js/tracing/expoAsset.d.ts.map +1 -0
- package/dist/js/tracing/expoAsset.js +60 -0
- package/dist/js/tracing/expoAsset.js.map +1 -0
- package/dist/js/tracing/expoImage.d.ts +61 -0
- package/dist/js/tracing/expoImage.d.ts.map +1 -0
- package/dist/js/tracing/expoImage.js +101 -0
- package/dist/js/tracing/expoImage.js.map +1 -0
- package/dist/js/tracing/index.d.ts +4 -0
- package/dist/js/tracing/index.d.ts.map +1 -1
- package/dist/js/tracing/index.js +2 -0
- package/dist/js/tracing/index.js.map +1 -1
- package/dist/js/tracing/integrations/appStart.d.ts.map +1 -1
- package/dist/js/tracing/integrations/appStart.js +4 -1
- package/dist/js/tracing/integrations/appStart.js.map +1 -1
- package/dist/js/tracing/onSpanEndUtils.d.ts +7 -0
- package/dist/js/tracing/onSpanEndUtils.d.ts.map +1 -1
- package/dist/js/tracing/onSpanEndUtils.js +45 -6
- package/dist/js/tracing/onSpanEndUtils.js.map +1 -1
- package/dist/js/tracing/origin.d.ts +2 -0
- package/dist/js/tracing/origin.d.ts.map +1 -1
- package/dist/js/tracing/origin.js +2 -0
- package/dist/js/tracing/origin.js.map +1 -1
- package/dist/js/tracing/reactnavigation.d.ts +15 -0
- package/dist/js/tracing/reactnavigation.d.ts.map +1 -1
- package/dist/js/tracing/reactnavigation.js +50 -17
- package/dist/js/tracing/reactnavigation.js.map +1 -1
- package/dist/js/tracing/span.d.ts +6 -6
- package/dist/js/tracing/span.d.ts.map +1 -1
- package/dist/js/tracing/span.js +3 -3
- package/dist/js/tracing/span.js.map +1 -1
- package/dist/js/tracing/utils.d.ts +27 -1
- package/dist/js/tracing/utils.d.ts.map +1 -1
- package/dist/js/tracing/utils.js +66 -1
- package/dist/js/tracing/utils.js.map +1 -1
- package/dist/js/utils/expoglobalobject.d.ts +47 -7
- package/dist/js/utils/expoglobalobject.d.ts.map +1 -1
- package/dist/js/utils/expoglobalobject.js.map +1 -1
- package/dist/js/version.d.ts +1 -1
- package/dist/js/version.js +6 -3
- package/dist/js/version.js.map +1 -1
- package/dist/js/wrapper.d.ts.map +1 -1
- package/dist/js/wrapper.js +1 -1
- package/dist/js/wrapper.js.map +1 -1
- package/ios/AGENTS.md +60 -0
- package/ios/RNSentry.mm +4 -1
- package/ios/RNSentryEvents.h +1 -0
- package/ios/RNSentryEvents.m +1 -0
- package/ios/RNSentryNativeLogsForwarder.h +20 -0
- package/ios/RNSentryNativeLogsForwarder.m +145 -0
- package/ios/RNSentryVersion.m +1 -1
- package/package.json +14 -11
- package/plugin/build/utils.d.ts +1 -0
- package/plugin/build/utils.js +19 -1
- package/plugin/build/withSentry.d.ts +1 -0
- package/plugin/build/withSentry.js +28 -0
- package/scripts/eas-build-hook.js +234 -0
- package/scripts/sentry-xcode.sh +7 -0
- package/ts3.8/dist/js/NativeLogListener.d.ts +16 -0
- package/ts3.8/dist/js/client.d.ts +1 -0
- package/ts3.8/dist/js/index.d.ts +4 -4
- package/ts3.8/dist/js/integrations/expoconstants.d.ts +24 -0
- package/ts3.8/dist/js/integrations/exports.d.ts +1 -0
- package/ts3.8/dist/js/options.d.ts +26 -0
- package/ts3.8/dist/js/tracing/expoAsset.d.ts +42 -0
- package/ts3.8/dist/js/tracing/expoImage.d.ts +61 -0
- package/ts3.8/dist/js/tracing/index.d.ts +4 -0
- package/ts3.8/dist/js/tracing/onSpanEndUtils.d.ts +7 -0
- package/ts3.8/dist/js/tracing/origin.d.ts +2 -0
- package/ts3.8/dist/js/tracing/reactnavigation.d.ts +15 -0
- package/ts3.8/dist/js/tracing/span.d.ts +6 -6
- package/ts3.8/dist/js/tracing/utils.d.ts +27 -1
- package/ts3.8/dist/js/utils/expoglobalobject.d.ts +47 -7
- package/ts3.8/dist/js/version.d.ts +1 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal interface for expo-asset's Asset instance.
|
|
3
|
+
* We define this to avoid a hard dependency on expo-asset.
|
|
4
|
+
*/
|
|
5
|
+
export interface ExpoAssetInstance {
|
|
6
|
+
name: string;
|
|
7
|
+
type: string;
|
|
8
|
+
hash: string | null;
|
|
9
|
+
uri: string;
|
|
10
|
+
localUri: string | null;
|
|
11
|
+
width: number | null;
|
|
12
|
+
height: number | null;
|
|
13
|
+
downloaded: boolean;
|
|
14
|
+
downloadAsync(): Promise<ExpoAssetInstance>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Represents the expo-asset `Asset` class with its static methods.
|
|
18
|
+
* We only describe the methods that we instrument.
|
|
19
|
+
*/
|
|
20
|
+
export interface ExpoAsset {
|
|
21
|
+
loadAsync(moduleId: number | number[] | string | string[]): Promise<ExpoAssetInstance[]>;
|
|
22
|
+
fromModule(virtualAssetModule: number | string): ExpoAssetInstance;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Wraps expo-asset's `Asset` class to add automated performance monitoring.
|
|
26
|
+
*
|
|
27
|
+
* This function instruments `Asset.loadAsync` static method
|
|
28
|
+
* to create performance spans that measure how long asset loading takes.
|
|
29
|
+
*
|
|
30
|
+
* @param assetClass - The `Asset` class from `expo-asset`
|
|
31
|
+
* @returns The same class with instrumented static methods
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* import { Asset } from 'expo-asset';
|
|
36
|
+
* import * as Sentry from '@sentry/react-native';
|
|
37
|
+
*
|
|
38
|
+
* Sentry.wrapExpoAsset(Asset);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function wrapExpoAsset<T extends ExpoAsset>(assetClass: T): T;
|
|
42
|
+
//# sourceMappingURL=expoAsset.d.ts.map
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal interface for expo-image's ImageSource.
|
|
3
|
+
* We define this to avoid a hard dependency on expo-image.
|
|
4
|
+
*/
|
|
5
|
+
interface ExpoImageSource {
|
|
6
|
+
uri?: string;
|
|
7
|
+
headers?: Record<string, string>;
|
|
8
|
+
width?: number | null;
|
|
9
|
+
height?: number | null;
|
|
10
|
+
cacheKey?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Internal interface for expo-image's ImageLoadOptions.
|
|
14
|
+
* We define this to avoid a hard dependency on expo-image.
|
|
15
|
+
*/
|
|
16
|
+
interface ExpoImageLoadOptions {
|
|
17
|
+
maxWidth?: number;
|
|
18
|
+
maxHeight?: number;
|
|
19
|
+
onError?(error: Error, retry: () => void): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Internal interface for expo-image's ImageRef.
|
|
23
|
+
* We define this to avoid a hard dependency on expo-image.
|
|
24
|
+
*/
|
|
25
|
+
interface ExpoImageRef {
|
|
26
|
+
readonly width: number;
|
|
27
|
+
readonly height: number;
|
|
28
|
+
readonly scale: number;
|
|
29
|
+
readonly mediaType: string | null;
|
|
30
|
+
readonly isAnimated?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Represents the expo-image `Image` class with its static methods.
|
|
34
|
+
* We only describe the methods that we instrument.
|
|
35
|
+
*/
|
|
36
|
+
export interface ExpoImage {
|
|
37
|
+
prefetch(urls: string | string[], cachePolicyOrOptions?: any): Promise<boolean>;
|
|
38
|
+
loadAsync(source: ExpoImageSource | string | number, options?: ExpoImageLoadOptions): Promise<ExpoImageRef>;
|
|
39
|
+
clearMemoryCache?(): Promise<boolean>;
|
|
40
|
+
clearDiskCache?(): Promise<boolean>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Wraps expo-image's `Image` class to add automated performance monitoring.
|
|
44
|
+
*
|
|
45
|
+
* This function instruments `Image.prefetch` and `Image.loadAsync` static methods
|
|
46
|
+
* to create performance spans that measure how long image prefetching and loading take.
|
|
47
|
+
*
|
|
48
|
+
* @param imageClass - The `Image` class from `expo-image`
|
|
49
|
+
* @returns The same class with instrumented static methods
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* import { Image } from 'expo-image';
|
|
54
|
+
* import * as Sentry from '@sentry/react-native';
|
|
55
|
+
*
|
|
56
|
+
* Sentry.wrapExpoImage(Image);
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function wrapExpoImage<T extends ExpoImage>(imageClass: T): T;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=expoImage.d.ts.map
|
|
@@ -4,6 +4,10 @@ export { reactNavigationIntegration } from './reactnavigation';
|
|
|
4
4
|
export { reactNativeNavigationIntegration } from './reactnativenavigation';
|
|
5
5
|
export { wrapExpoRouter } from './expoRouter';
|
|
6
6
|
export type { ExpoRouter } from './expoRouter';
|
|
7
|
+
export { wrapExpoImage } from './expoImage';
|
|
8
|
+
export type { ExpoImage } from './expoImage';
|
|
9
|
+
export { wrapExpoAsset } from './expoAsset';
|
|
10
|
+
export type { ExpoAsset } from './expoAsset';
|
|
7
11
|
export { startIdleNavigationSpan, startIdleSpan, getDefaultIdleNavigationSpanOptions } from './span';
|
|
8
12
|
export type { ReactNavigationCurrentRoute, ReactNavigationRoute } from './types';
|
|
9
13
|
export { ReactNativeProfiler } from './reactnativeprofiler';
|
|
@@ -21,6 +21,13 @@ export declare const ignoreEmptyRouteChangeTransactions: (client: Client | undef
|
|
|
21
21
|
export declare const onlySampleIfChildSpans: (client: Client, span: Span) => void;
|
|
22
22
|
/**
|
|
23
23
|
* Hooks on AppState change to cancel the span if the app goes background.
|
|
24
|
+
*
|
|
25
|
+
* On iOS the JS thread can be suspended between the `inactive` and
|
|
26
|
+
* `background` transitions, which means the `background` event may never
|
|
27
|
+
* reach JS in time. To handle this we schedule a deferred cancellation when
|
|
28
|
+
* the app becomes `inactive`. If the app returns to `active` before the
|
|
29
|
+
* timeout fires, the cancellation is cleared. If it transitions to
|
|
30
|
+
* `background` first, we cancel immediately and clear the timeout.
|
|
24
31
|
*/
|
|
25
32
|
export declare const cancelInBackground: (client: Client, span: Span) => void;
|
|
26
33
|
//# sourceMappingURL=onSpanEndUtils.d.ts.map
|
|
@@ -8,4 +8,6 @@ export declare const SPAN_ORIGIN_AUTO_NAVIGATION_CUSTOM = "auto.navigation.custo
|
|
|
8
8
|
export declare const SPAN_ORIGIN_AUTO_UI_TIME_TO_DISPLAY = "auto.ui.time_to_display";
|
|
9
9
|
export declare const SPAN_ORIGIN_MANUAL_UI_TIME_TO_DISPLAY = "manual.ui.time_to_display";
|
|
10
10
|
export declare const SPAN_ORIGIN_AUTO_EXPO_ROUTER_PREFETCH = "auto.expo_router.prefetch";
|
|
11
|
+
export declare const SPAN_ORIGIN_AUTO_RESOURCE_EXPO_IMAGE = "auto.resource.expo_image";
|
|
12
|
+
export declare const SPAN_ORIGIN_AUTO_RESOURCE_EXPO_ASSET = "auto.resource.expo_asset";
|
|
11
13
|
//# sourceMappingURL=origin.d.ts.map
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import type { Client, Integration } from '@sentry/core';
|
|
2
2
|
export declare const INTEGRATION_NAME = "ReactNavigation";
|
|
3
|
+
/**
|
|
4
|
+
* Extracts dynamic route parameters from a route name and its params.
|
|
5
|
+
* Matches Expo Router style dynamic segments like `[id]` and `[...slug]`.
|
|
6
|
+
*
|
|
7
|
+
* Only params whose keys appear as dynamic segments in the route name are returned,
|
|
8
|
+
* filtering out non-structural params (query params, etc.) that may contain PII.
|
|
9
|
+
*
|
|
10
|
+
* Note: dynamic segment values (e.g. the `123` in `profile/[id]`) may be user-identifiable.
|
|
11
|
+
* This function only extracts params — callers are responsible for checking `sendDefaultPii`
|
|
12
|
+
* before including the result in span attributes.
|
|
13
|
+
*
|
|
14
|
+
* Previous route params are intentionally not captured — only the current route's
|
|
15
|
+
* structural params are needed for trace attribution.
|
|
16
|
+
*/
|
|
17
|
+
export declare function extractDynamicRouteParams(routeName: string, params?: Record<string, unknown>): Record<string, string> | undefined;
|
|
3
18
|
interface ReactNavigationIntegrationOptions {
|
|
4
19
|
/**
|
|
5
20
|
* How long the instrumentation will wait for the route to mount after a change has been initiated,
|
|
@@ -7,14 +7,14 @@ export declare const defaultIdleOptions: {
|
|
|
7
7
|
*
|
|
8
8
|
* @default 1_000 (ms)
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
idleTimeout: number;
|
|
11
11
|
/**
|
|
12
12
|
* The max. time an idle span may run.
|
|
13
13
|
* If this time is exceeded, the idle span will finish no matter what.
|
|
14
14
|
*
|
|
15
|
-
* @default
|
|
15
|
+
* @default 600_000 (ms)
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
finalTimeout: number;
|
|
18
18
|
};
|
|
19
19
|
export declare const startIdleNavigationSpan: (startSpanOption: StartSpanOptions, { finalTimeout, idleTimeout, isAppRestart, }?: Partial<{
|
|
20
20
|
/**
|
|
@@ -23,14 +23,14 @@ export declare const startIdleNavigationSpan: (startSpanOption: StartSpanOptions
|
|
|
23
23
|
*
|
|
24
24
|
* @default 1_000 (ms)
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
idleTimeout: number;
|
|
27
27
|
/**
|
|
28
28
|
* The max. time an idle span may run.
|
|
29
29
|
* If this time is exceeded, the idle span will finish no matter what.
|
|
30
30
|
*
|
|
31
|
-
* @default
|
|
31
|
+
* @default 600_000 (ms)
|
|
32
32
|
*/
|
|
33
|
-
|
|
33
|
+
finalTimeout: number;
|
|
34
34
|
}> & {
|
|
35
35
|
isAppRestart?: boolean | undefined;
|
|
36
36
|
}) => Span | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MeasurementUnit, Span, SpanJSON, TransactionSource } from '@sentry/core';
|
|
1
|
+
import type { MeasurementUnit, Span, SpanJSON, StartSpanOptions, TransactionSource } from '@sentry/core';
|
|
2
2
|
export declare const defaultTransactionSource: TransactionSource;
|
|
3
3
|
export declare const customTransactionSource: TransactionSource;
|
|
4
4
|
/**
|
|
@@ -42,6 +42,32 @@ export declare function getBundleStartTimestampMs(): number | undefined;
|
|
|
42
42
|
* Creates valid span JSON object from the given data.
|
|
43
43
|
*/
|
|
44
44
|
export declare function createSpanJSON(from: Partial<SpanJSON> & Pick<Required<SpanJSON>, 'description' | 'start_timestamp' | 'timestamp' | 'origin'>): SpanJSON;
|
|
45
|
+
/**
|
|
46
|
+
* Wraps a function call that returns a `Promise` with an inactive span that
|
|
47
|
+
* is automatically ended on success or failure (both sync throws and async
|
|
48
|
+
* rejections).
|
|
49
|
+
*
|
|
50
|
+
* This is the standard pattern for instrumenting async SDK operations such as
|
|
51
|
+
* `Image.loadAsync` and `Asset.loadAsync`.
|
|
52
|
+
*
|
|
53
|
+
* The span status is always set by this utility (`ok` on resolve, `error` on
|
|
54
|
+
* reject or sync throw). If you need custom status logic (e.g. inspecting the
|
|
55
|
+
* resolved value), handle span lifecycle manually instead.
|
|
56
|
+
*
|
|
57
|
+
* @param spanOptions Options forwarded to `startInactiveSpan`.
|
|
58
|
+
* @param fn The function to call.
|
|
59
|
+
* @returns Whatever `fn` returns (the original `Promise`).
|
|
60
|
+
*/
|
|
61
|
+
export declare function traceAsyncOperation<T>(spanOptions: StartSpanOptions, fn: () => Promise<T>): Promise<T>;
|
|
62
|
+
/**
|
|
63
|
+
* Strips query string and fragment from a URL, preserving the scheme, host, and path.
|
|
64
|
+
*/
|
|
65
|
+
export declare function sanitizeUrl(url: string): string;
|
|
66
|
+
/**
|
|
67
|
+
* Extracts a short, human-readable description from a URL by stripping
|
|
68
|
+
* the query string, fragment, and path — returning only the filename.
|
|
69
|
+
*/
|
|
70
|
+
export declare function describeUrl(url: string): string;
|
|
45
71
|
/**
|
|
46
72
|
*
|
|
47
73
|
*/
|
|
@@ -5,15 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* https://github.com/expo/expo/blob/b51b5139f2caa2a9495e4132437d7ca612276158/packages/expo-constants/src/Constants.ts
|
|
7
7
|
* https://github.com/expo/expo/blob/b51b5139f2caa2a9495e4132437d7ca612276158/packages/expo-manifests/src/Manifests.ts
|
|
8
|
+
* https://github.com/expo/expo/blob/fce7f6eb2ea2611cb30e9cb20baaeee2ac0a18b6/packages/expo-constants/src/Constants.types.ts
|
|
8
9
|
*/
|
|
9
10
|
export interface ExpoConstants {
|
|
10
|
-
/**
|
|
11
|
-
* Deprecated. But until removed we can use it as user ID to match the native SDKs.
|
|
12
|
-
*/
|
|
13
|
-
installationId?: string;
|
|
14
|
-
/**
|
|
15
|
-
* Version of the Expo Go app
|
|
16
|
-
*/
|
|
17
11
|
expoVersion?: string | null;
|
|
18
12
|
manifest?: null | {
|
|
19
13
|
[key: string]: unknown;
|
|
@@ -23,6 +17,52 @@ export interface ExpoConstants {
|
|
|
23
17
|
*/
|
|
24
18
|
runtimeVersion?: string;
|
|
25
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Returns the current execution environment.
|
|
22
|
+
* Values: 'bare', 'standalone', 'storeClient'
|
|
23
|
+
*/
|
|
24
|
+
executionEnvironment?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Deprecated. Returns 'expo' when running in Expo Go, otherwise null.
|
|
27
|
+
*/
|
|
28
|
+
appOwnership?: string | null;
|
|
29
|
+
/**
|
|
30
|
+
* Identifies debug vs. production builds.
|
|
31
|
+
*/
|
|
32
|
+
debugMode?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Unique identifier per app session.
|
|
35
|
+
*/
|
|
36
|
+
sessionId?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Runtime version info.
|
|
39
|
+
*/
|
|
40
|
+
expoRuntimeVersion?: string | null;
|
|
41
|
+
/**
|
|
42
|
+
* Device status bar height.
|
|
43
|
+
*/
|
|
44
|
+
statusBarHeight?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Available system fonts.
|
|
47
|
+
*/
|
|
48
|
+
systemFonts?: string[];
|
|
49
|
+
/**
|
|
50
|
+
* The standard Expo config object defined in app.json and app.config.js files.
|
|
51
|
+
*/
|
|
52
|
+
expoConfig?: null | {
|
|
53
|
+
[key: string]: unknown;
|
|
54
|
+
name?: string;
|
|
55
|
+
slug?: string;
|
|
56
|
+
version?: string;
|
|
57
|
+
sdkVersion?: string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* EAS configuration when applicable.
|
|
61
|
+
*/
|
|
62
|
+
easConfig?: null | {
|
|
63
|
+
[key: string]: unknown;
|
|
64
|
+
projectId?: string;
|
|
65
|
+
};
|
|
26
66
|
}
|
|
27
67
|
/**
|
|
28
68
|
* Interface from the Expo SDK defined here
|