@sentry/react-native 5.9.0 → 5.9.2
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 +34 -0
- package/RNSentry.podspec +1 -1
- package/android/build.gradle +1 -1
- package/dist/js/NativeRNSentry.d.ts +8 -8
- package/dist/js/NativeRNSentry.d.ts.map +1 -1
- package/dist/js/breadcrumb.d.ts +1 -1
- package/dist/js/breadcrumb.d.ts.map +1 -1
- package/dist/js/client.js.map +1 -1
- package/dist/js/integrations/debugsymbolicator.d.ts +1 -1
- package/dist/js/integrations/debugsymbolicator.d.ts.map +1 -1
- package/dist/js/integrations/debugsymbolicator.js +2 -2
- package/dist/js/integrations/debugsymbolicator.js.map +1 -1
- package/dist/js/integrations/devicecontext.js.map +1 -1
- package/dist/js/integrations/eventorigin.js.map +1 -1
- package/dist/js/integrations/release.js.map +1 -1
- package/dist/js/integrations/rewriteframes.d.ts.map +1 -1
- package/dist/js/integrations/rewriteframes.js +9 -1
- package/dist/js/integrations/rewriteframes.js.map +1 -1
- package/dist/js/integrations/sdkinfo.d.ts +1 -1
- package/dist/js/integrations/sdkinfo.d.ts.map +1 -1
- package/dist/js/measurements.d.ts +1 -1
- package/dist/js/measurements.d.ts.map +1 -1
- package/dist/js/misc.d.ts +1 -1
- package/dist/js/misc.d.ts.map +1 -1
- package/dist/js/misc.js.map +1 -1
- package/dist/js/options.d.ts +1 -2
- package/dist/js/options.d.ts.map +1 -1
- package/dist/js/options.js.map +1 -1
- package/dist/js/profiling/hermes.d.ts +2 -2
- package/dist/js/profiling/hermes.d.ts.map +1 -1
- package/dist/js/profiling/integration.d.ts +4 -1
- package/dist/js/profiling/integration.d.ts.map +1 -1
- package/dist/js/profiling/integration.js +20 -13
- package/dist/js/profiling/integration.js.map +1 -1
- package/dist/js/profiling/utils.js +1 -1
- package/dist/js/profiling/utils.js.map +1 -1
- package/dist/js/sdk.js +4 -4
- package/dist/js/sdk.js.map +1 -1
- package/dist/js/tools/ModulesCollector.js +8 -8
- package/dist/js/tools/ModulesCollector.js.map +1 -1
- package/dist/js/touchevents.d.ts +2 -2
- package/dist/js/touchevents.d.ts.map +1 -1
- package/dist/js/touchevents.js.map +1 -1
- package/dist/js/tracing/gesturetracing.js.map +1 -1
- package/dist/js/tracing/nativeframes.js.map +1 -1
- package/dist/js/tracing/reactnativenavigation.d.ts +1 -1
- package/dist/js/tracing/reactnativenavigation.d.ts.map +1 -1
- package/dist/js/tracing/reactnativenavigation.js.map +1 -1
- package/dist/js/tracing/reactnativetracing.d.ts.map +1 -1
- package/dist/js/tracing/reactnativetracing.js +4 -6
- package/dist/js/tracing/reactnativetracing.js.map +1 -1
- package/dist/js/tracing/reactnavigation.js.map +1 -1
- package/dist/js/tracing/reactnavigationv4.js.map +1 -1
- package/dist/js/tracing/routingInstrumentation.d.ts +2 -2
- package/dist/js/tracing/routingInstrumentation.d.ts.map +1 -1
- package/dist/js/tracing/routingInstrumentation.js.map +1 -1
- package/dist/js/tracing/stalltracking.d.ts +1 -1
- package/dist/js/tracing/stalltracking.d.ts.map +1 -1
- package/dist/js/tracing/stalltracking.js.map +1 -1
- package/dist/js/tracing/transaction.d.ts +1 -1
- package/dist/js/tracing/transaction.d.ts.map +1 -1
- package/dist/js/tracing/transaction.js.map +1 -1
- package/dist/js/tracing/types.d.ts +2 -2
- package/dist/js/tracing/types.d.ts.map +1 -1
- package/dist/js/transports/native.d.ts +1 -1
- package/dist/js/transports/native.d.ts.map +1 -1
- package/dist/js/user.d.ts +1 -1
- package/dist/js/user.d.ts.map +1 -1
- package/dist/js/utils/safe.d.ts +1 -1
- package/dist/js/utils/safe.d.ts.map +1 -1
- package/dist/js/version.d.ts +1 -1
- package/dist/js/version.js +1 -1
- package/dist/js/version.js.map +1 -1
- package/dist/js/wrapper.js +1 -1
- package/dist/js/wrapper.js.map +1 -1
- package/ios/RNSentry.mm +1 -1
- package/package.json +15 -15
- package/ts3.8/dist/js/NativeRNSentry.d.ts +8 -8
- package/ts3.8/dist/js/breadcrumb.d.ts +1 -1
- package/ts3.8/dist/js/integrations/debugsymbolicator.d.ts +1 -1
- package/ts3.8/dist/js/integrations/sdkinfo.d.ts +1 -1
- package/ts3.8/dist/js/measurements.d.ts +1 -1
- package/ts3.8/dist/js/misc.d.ts +1 -1
- package/ts3.8/dist/js/options.d.ts +1 -2
- package/ts3.8/dist/js/profiling/hermes.d.ts +2 -2
- package/ts3.8/dist/js/profiling/integration.d.ts +4 -1
- package/ts3.8/dist/js/touchevents.d.ts +2 -2
- package/ts3.8/dist/js/tracing/reactnativenavigation.d.ts +1 -1
- package/ts3.8/dist/js/tracing/routingInstrumentation.d.ts +2 -2
- package/ts3.8/dist/js/tracing/stalltracking.d.ts +1 -1
- package/ts3.8/dist/js/tracing/transaction.d.ts +1 -1
- package/ts3.8/dist/js/tracing/types.d.ts +2 -2
- package/ts3.8/dist/js/transports/native.d.ts +1 -1
- package/ts3.8/dist/js/user.d.ts +1 -1
- package/ts3.8/dist/js/utils/safe.d.ts +1 -1
- package/ts3.8/dist/js/version.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/js/tracing/transaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/js/tracing/transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAyB,CAAC,WAA4B,EAAQ,EAAE;IACjG,MAAM,UAAU,GACd,WAAW,CAAC,YAAY;QACxB,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAE3F,IAAI,CAAC,UAAU,IAAI,UAAU,IAAI,CAAC,EAAE;QAClC,MAAM,CAAC,GAAG,CAAC,mBAAmB,WAAW,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAChF,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;KAC7B;AACH,CAAC,CAAC","sourcesContent":["import type { BeforeFinishCallback, IdleTransaction } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\n/**\n * Idle Transaction callback to only sample transactions with child spans.\n * To avoid side effects of other callbacks this should be hooked as the last callback.\n */\nexport const onlySampleIfChildSpans: BeforeFinishCallback = (transaction: IdleTransaction): void => {\n const spansCount =\n transaction.spanRecorder &&\n transaction.spanRecorder.spans.filter(span => span.spanId !== transaction.spanId).length;\n\n if (!spansCount || spansCount <= 0) {\n logger.log(`Not sampling as ${transaction.op} transaction has no child spans.`);\n transaction.sampled = false;\n }\n};\n"]}
|
|
@@ -7,7 +7,7 @@ export interface ReactNavigationRoute {
|
|
|
7
7
|
export interface ReactNavigationCurrentRoute extends ReactNavigationRoute {
|
|
8
8
|
hasBeenSeen: boolean;
|
|
9
9
|
}
|
|
10
|
-
export
|
|
10
|
+
export type RouteChangeContextData = {
|
|
11
11
|
previousRoute?: {
|
|
12
12
|
[key: string]: unknown;
|
|
13
13
|
name: string;
|
|
@@ -25,5 +25,5 @@ export interface ReactNavigationTransactionContext extends TransactionContext {
|
|
|
25
25
|
};
|
|
26
26
|
data: RouteChangeContextData;
|
|
27
27
|
}
|
|
28
|
-
export
|
|
28
|
+
export type BeforeNavigate = (context: TransactionContext) => TransactionContext;
|
|
29
29
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/js/tracing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IAEZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/js/tracing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IAEZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,CAAC,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,IAAI,CAAC;IACT,KAAK,EAAE;QACL,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,iCAAkC,SAAQ,kBAAkB;IAC3E,IAAI,EAAE;QACJ,yBAAyB,EAAE,MAAM,CAAC;QAClC,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,IAAI,EAAE,sBAAsB,CAAC;CAC9B;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,kBAAkB,KAAK,kBAAkB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BaseTransportOptions, Envelope, Transport } from '@sentry/types';
|
|
2
2
|
import type { PromiseBuffer } from '@sentry/utils';
|
|
3
3
|
export declare const DEFAULT_BUFFER_SIZE = 30;
|
|
4
|
-
export
|
|
4
|
+
export type BaseNativeTransport = BaseTransportOptions;
|
|
5
5
|
export interface BaseNativeTransportOptions {
|
|
6
6
|
bufferSize?: number;
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/js/transports/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAKnD,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/js/transports/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAKnD,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,WAAW,0BAA0B;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,4CAA4C;AAC5C,qBAAa,eAAgB,YAAW,SAAS;IAC/C,4CAA4C;IAC5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAE7B,OAAO,GAAE,0BAA+B;IAI3D;;;;OAIG;IACI,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC;IAIlD;;;;;;;OAOG;IACI,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC;CAGrD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,eAAe,CAE7F;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,YAAY,GACb,EAAE;IACD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,mBAAmB,GAAG,IAAI,CAKpC"}
|
package/dist/js/user.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { User } from '@sentry/types';
|
|
2
2
|
/** Requires all the keys defined on User interface to be present on an object */
|
|
3
|
-
export
|
|
3
|
+
export type RequiredKeysUser = {
|
|
4
4
|
[P in keyof Required<User>]: User[P] | undefined;
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=user.d.ts.map
|
package/dist/js/user.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/js/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,iFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/js/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,iFAAiF;AACjF,MAAM,MAAM,gBAAgB,GAAG;KAAG,CAAC,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS;CAAE,CAAC"}
|
package/dist/js/utils/safe.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReactNativeOptions } from '../options';
|
|
2
|
-
|
|
2
|
+
type DangerTypesWithoutCallSignature = Object | null | undefined;
|
|
3
3
|
/**
|
|
4
4
|
* Returns callback factory wrapped with try/catch
|
|
5
5
|
* or the original passed value is it's not a function.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../src/js/utils/safe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../src/js/utils/safe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,KAAK,+BAA+B,GAElC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAE5B;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,+BAA+B,EACnG,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAC/B,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAgBzB;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,GACjD,kBAAkB,CAAC,eAAe,CAAC,CAarC"}
|
package/dist/js/version.d.ts
CHANGED
package/dist/js/version.js
CHANGED
package/dist/js/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/js/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAC3D,MAAM,CAAC,MAAM,QAAQ,GAAG,gCAAgC,CAAC;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC","sourcesContent":["export const SDK_PACKAGE_NAME = 'npm:@sentry/react-native';\nexport const SDK_NAME = 'sentry.javascript.react-native';\nexport const SDK_VERSION = '5.9.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/js/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAC3D,MAAM,CAAC,MAAM,QAAQ,GAAG,gCAAgC,CAAC;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC","sourcesContent":["export const SDK_PACKAGE_NAME = 'npm:@sentry/react-native';\nexport const SDK_NAME = 'sentry.javascript.react-native';\nexport const SDK_VERSION = '5.9.2';\n"]}
|
package/dist/js/wrapper.js
CHANGED
|
@@ -439,7 +439,7 @@ export const NATIVE = {
|
|
|
439
439
|
const event = this._processLevels(itemPayload);
|
|
440
440
|
if (NATIVE.platform === 'android') {
|
|
441
441
|
if ('message' in event) {
|
|
442
|
-
// @ts-
|
|
442
|
+
// @ts-expect-error Android still uses the old message object, without this the serialization of events will break.
|
|
443
443
|
event.message = { message: event.message };
|
|
444
444
|
}
|
|
445
445
|
}
|
package/dist/js/wrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/js/wrapper.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable max-lines */\nimport type {\n BaseEnvelopeItemHeaders,\n Breadcrumb,\n Envelope,\n EnvelopeItem,\n Event,\n Package,\n SeverityLevel,\n User,\n} from '@sentry/types';\nimport { logger, normalize, SentryError } from '@sentry/utils';\nimport { NativeModules, Platform, TurboModuleRegistry } from 'react-native';\n\nimport { isHardCrash } from './misc';\nimport type {\n NativeAppStartResponse,\n NativeDeviceContextsResponse,\n NativeFramesResponse,\n NativeReleaseResponse,\n NativeScreenshot,\n NativeStackFrames,\n Spec,\n} from './NativeRNSentry';\nimport type { ReactNativeClientOptions } from './options';\nimport type * as Hermes from './profiling/hermes';\nimport type { RequiredKeysUser } from './user';\nimport { isTurboModuleEnabled } from './utils/environment';\nimport { utf8ToBytes } from './vendor';\n\nconst RNSentry: Spec | undefined = isTurboModuleEnabled()\n ? TurboModuleRegistry.get<Spec>('RNSentry')\n : NativeModules.RNSentry;\n\nexport interface Screenshot {\n data: Uint8Array;\n contentType: string;\n filename: string;\n}\n\ninterface SentryNativeWrapper {\n enableNative: boolean;\n nativeIsReady: boolean;\n platform: typeof Platform.OS;\n\n _NativeClientError: Error;\n _DisabledNativeError: Error;\n\n _processItem(envelopeItem: EnvelopeItem): EnvelopeItem;\n _processLevels(event: Event): Event;\n _processLevel(level: SeverityLevel): SeverityLevel;\n _serializeObject(data: { [key: string]: unknown }): { [key: string]: string };\n _isModuleLoaded(module: Spec | undefined): module is Spec;\n\n isNativeAvailable(): boolean;\n\n initNativeSdk(options: Partial<ReactNativeClientOptions>): PromiseLike<boolean>;\n closeNativeSdk(): PromiseLike<void>;\n\n sendEnvelope(envelope: Envelope): Promise<void>;\n captureScreenshot(): Promise<Screenshot[] | null>;\n\n fetchNativeRelease(): PromiseLike<NativeReleaseResponse>;\n fetchNativeDeviceContexts(): PromiseLike<NativeDeviceContextsResponse | null>;\n fetchNativeAppStart(): PromiseLike<NativeAppStartResponse | null>;\n fetchNativeFrames(): PromiseLike<NativeFramesResponse | null>;\n fetchNativeSdkInfo(): PromiseLike<Package | null>;\n\n disableNativeFramesTracking(): void;\n enableNativeFramesTracking(): void;\n\n addBreadcrumb(breadcrumb: Breadcrumb): void;\n setContext(key: string, context: { [key: string]: unknown } | null): void;\n clearBreadcrumbs(): void;\n setExtra(key: string, extra: unknown): void;\n setUser(user: User | null): void;\n setTag(key: string, value: string): void;\n\n nativeCrash(): void;\n\n fetchModules(): Promise<Record<string, string> | null>;\n fetchViewHierarchy(): PromiseLike<Uint8Array | null>;\n\n startProfiling(): boolean;\n stopProfiling(): Hermes.Profile | null;\n\n fetchNativePackageName(): Promise<string | null>;\n\n /**\n * Fetches native stack frames and debug images for the instructions addresses.\n */\n fetchNativeStackFramesBy(instructionsAddr: number[]): Promise<NativeStackFrames | null>;\n}\n\n/**\n * Our internal interface for calling native functions\n */\nexport const NATIVE: SentryNativeWrapper = {\n async fetchModules(): Promise<Record<string, string> | null> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const raw = await RNSentry.fetchModules();\n if (raw) {\n return JSON.parse(raw);\n }\n return null;\n },\n /**\n * Sending the envelope over the bridge to native\n * @param envelope Envelope\n */\n async sendEnvelope(envelope: Envelope): Promise<void> {\n if (!this.enableNative) {\n logger.warn('Event was skipped as native SDK is not enabled.');\n return;\n }\n\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const [EOL] = utf8ToBytes('\\n');\n\n const [envelopeHeader, envelopeItems] = envelope;\n\n const headerString = JSON.stringify(envelopeHeader);\n let envelopeBytes: number[] = utf8ToBytes(headerString);\n envelopeBytes.push(EOL);\n\n let hardCrashed: boolean = false;\n for (const rawItem of envelopeItems) {\n const [itemHeader, itemPayload] = this._processItem(rawItem);\n\n let bytesContentType: string;\n let bytesPayload: number[] = [];\n if (typeof itemPayload === 'string') {\n bytesContentType = 'text/plain';\n bytesPayload = utf8ToBytes(itemPayload);\n } else if (itemPayload instanceof Uint8Array) {\n bytesContentType =\n typeof itemHeader.content_type === 'string' ? itemHeader.content_type : 'application/octet-stream';\n bytesPayload = [...itemPayload];\n } else {\n bytesContentType = 'application/json';\n bytesPayload = utf8ToBytes(JSON.stringify(itemPayload));\n if (!hardCrashed) {\n hardCrashed = isHardCrash(itemPayload);\n }\n }\n\n // Content type is not inside BaseEnvelopeItemHeaders.\n (itemHeader as BaseEnvelopeItemHeaders).content_type = bytesContentType;\n (itemHeader as BaseEnvelopeItemHeaders).length = bytesPayload.length;\n const serializedItemHeader = JSON.stringify(itemHeader);\n\n envelopeBytes.push(...utf8ToBytes(serializedItemHeader));\n envelopeBytes.push(EOL);\n envelopeBytes = envelopeBytes.concat(bytesPayload);\n envelopeBytes.push(EOL);\n }\n\n await RNSentry.captureEnvelope(envelopeBytes, { store: hardCrashed });\n },\n\n /**\n * Starts native with the provided options.\n * @param options ReactNativeClientOptions\n */\n async initNativeSdk(originalOptions: Partial<ReactNativeClientOptions>): Promise<boolean> {\n const options: Partial<ReactNativeClientOptions> = {\n enableNative: true,\n autoInitializeNativeSdk: true,\n ...originalOptions,\n };\n\n if (!options.enableNative) {\n if (options.enableNativeNagger) {\n logger.warn('Note: Native Sentry SDK is disabled.');\n }\n this.enableNative = false;\n return false;\n }\n if (!options.autoInitializeNativeSdk) {\n if (options.enableNativeNagger) {\n logger.warn(\n 'Note: Native Sentry SDK was not initialized automatically, you will need to initialize it manually. If you wish to disable the native SDK and get rid of this warning, pass enableNative: false',\n );\n }\n this.enableNative = true;\n return false;\n }\n\n if (!options.dsn) {\n logger.warn(\n 'Warning: No DSN was provided. The Sentry SDK will be disabled. Native SDK will also not be initalized.',\n );\n this.enableNative = false;\n return false;\n }\n\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n // filter out all the options that would crash native.\n /* eslint-disable @typescript-eslint/unbound-method,@typescript-eslint/no-unused-vars */\n const { beforeSend, beforeBreadcrumb, beforeSendTransaction, integrations, ...filteredOptions } = options;\n /* eslint-enable @typescript-eslint/unbound-method,@typescript-eslint/no-unused-vars */\n const nativeIsReady = await RNSentry.initNativeSdk(filteredOptions);\n\n this.nativeIsReady = nativeIsReady;\n this.enableNative = true;\n\n return nativeIsReady;\n },\n\n /**\n * Fetches the release from native\n */\n async fetchNativeRelease(): Promise<NativeReleaseResponse> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n return RNSentry.fetchNativeRelease();\n },\n\n /**\n * Fetches the Sdk info for the native sdk.\n */\n async fetchNativeSdkInfo(): Promise<Package | null> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n return RNSentry.fetchNativeSdkInfo();\n },\n\n /**\n * Fetches the device contexts. Not used on Android.\n */\n async fetchNativeDeviceContexts(): Promise<NativeDeviceContextsResponse | null> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n return RNSentry.fetchNativeDeviceContexts();\n },\n\n async fetchNativeAppStart(): Promise<NativeAppStartResponse | null> {\n if (!this.enableNative) {\n logger.warn(this._DisabledNativeError);\n return null;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n logger.error(this._NativeClientError);\n return null;\n }\n\n return RNSentry.fetchNativeAppStart();\n },\n\n async fetchNativeFrames(): Promise<NativeFramesResponse | null> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n return RNSentry.fetchNativeFrames();\n },\n\n /**\n * Triggers a native crash.\n * Use this only for testing purposes.\n */\n nativeCrash(): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n RNSentry.crash();\n },\n\n /**\n * Sets the user in the native scope.\n * Passing null clears the user.\n */\n setUser(user: User | null): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n // separate and serialize all non-default user keys.\n let userKeys = null;\n let userDataKeys = null;\n if (user) {\n const { id, ip_address, email, username, segment, ...otherKeys } = user;\n const requiredUser: RequiredKeysUser = {\n id,\n ip_address,\n email,\n username,\n segment,\n };\n userKeys = this._serializeObject(requiredUser);\n userDataKeys = this._serializeObject(otherKeys);\n }\n\n RNSentry.setUser(userKeys, userDataKeys);\n },\n\n /**\n * Sets a tag in the native module.\n * @param key string\n * @param value string\n */\n setTag(key: string, value: string): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const stringifiedValue = typeof value === 'string' ? value : JSON.stringify(value);\n\n RNSentry.setTag(key, stringifiedValue);\n },\n\n /**\n * Sets an extra in the native scope, will stringify\n * extra value if it isn't already a string.\n * @param key string\n * @param extra any\n */\n setExtra(key: string, extra: unknown): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n // we stringify the extra as native only takes in strings.\n const stringifiedExtra = typeof extra === 'string' ? extra : JSON.stringify(extra);\n\n RNSentry.setExtra(key, stringifiedExtra);\n },\n\n /**\n * Adds breadcrumb to the native scope.\n * @param breadcrumb Breadcrumb\n */\n addBreadcrumb(breadcrumb: Breadcrumb): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n RNSentry.addBreadcrumb({\n ...breadcrumb,\n // Process and convert deprecated levels\n level: breadcrumb.level ? this._processLevel(breadcrumb.level) : undefined,\n });\n },\n\n /**\n * Clears breadcrumbs on the native scope.\n */\n clearBreadcrumbs(): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n RNSentry.clearBreadcrumbs();\n },\n\n /**\n * Sets context on the native scope. Not implemented in Android yet.\n * @param key string\n * @param context key-value map\n */\n setContext(key: string, context: { [key: string]: unknown } | null): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n RNSentry.setContext(key, context !== null ? normalize(context) : null);\n },\n\n /**\n * Closes the Native Layer SDK\n */\n async closeNativeSdk(): Promise<void> {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n return;\n }\n\n return RNSentry.closeNativeSdk().then(() => {\n this.enableNative = false;\n });\n },\n\n disableNativeFramesTracking(): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n return;\n }\n\n RNSentry.disableNativeFramesTracking();\n },\n\n enableNativeFramesTracking(): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n return;\n }\n\n RNSentry.enableNativeFramesTracking();\n },\n\n isNativeAvailable(): boolean {\n return this._isModuleLoaded(RNSentry);\n },\n\n async captureScreenshot(): Promise<Screenshot[] | null> {\n if (!this.enableNative) {\n logger.warn(this._DisabledNativeError);\n return null;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n logger.error(this._NativeClientError);\n return null;\n }\n\n let raw: NativeScreenshot[] | null | undefined;\n try {\n raw = await RNSentry.captureScreenshot();\n } catch (e) {\n logger.warn('Failed to capture screenshot', e);\n }\n\n if (raw) {\n return raw.map((item: NativeScreenshot) => ({\n ...item,\n data: new Uint8Array(item.data),\n }));\n } else {\n return null;\n }\n },\n\n async fetchViewHierarchy(): Promise<Uint8Array | null> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const raw = await RNSentry.fetchViewHierarchy();\n return raw ? new Uint8Array(raw) : null;\n },\n\n startProfiling(): boolean {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const { started, error } = RNSentry.startProfiling();\n if (started) {\n logger.log('[NATIVE] Start Profiling');\n } else {\n logger.error('[NATIVE] Start Profiling Failed', error);\n }\n\n return !!started;\n },\n\n stopProfiling(): Hermes.Profile | null {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const { profile, error } = RNSentry.stopProfiling();\n if (!profile || error) {\n logger.error('[NATIVE] Stop Profiling Failed', error);\n return null;\n }\n\n try {\n return JSON.parse(profile) as Hermes.Profile;\n } catch (e) {\n logger.error('[NATIVE] Failed to parse Hermes Profile JSON', e);\n return null;\n }\n },\n\n async fetchNativePackageName(): Promise<string | null> {\n if (!this.enableNative) {\n return null;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n return null;\n }\n\n return (await RNSentry.fetchNativePackageName()) || null;\n },\n\n async fetchNativeStackFramesBy(instructionsAddr: number[]): Promise<NativeStackFrames | null> {\n if (!this.enableNative) {\n return null;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n return null;\n }\n\n return (await RNSentry.fetchNativeStackFramesBy(instructionsAddr)) || null;\n },\n\n /**\n * Gets the event from envelopeItem and applies the level filter to the selected event.\n * @param data An envelope item containing the event.\n * @returns The event from envelopeItem or undefined.\n */\n _processItem(item: EnvelopeItem): EnvelopeItem {\n const [itemHeader, itemPayload] = item;\n\n if (itemHeader.type == 'event' || itemHeader.type == 'transaction') {\n const event = this._processLevels(itemPayload as Event);\n\n if (NATIVE.platform === 'android') {\n if ('message' in event) {\n // @ts-ignore Android still uses the old message object, without this the serialization of events will break.\n event.message = { message: event.message };\n }\n }\n\n return [itemHeader, event];\n }\n\n return item;\n },\n\n /**\n * Serializes all values of root-level keys into strings.\n * @param data key-value map.\n * @returns An object where all root-level values are strings.\n */\n _serializeObject(data: { [key: string]: unknown }): { [key: string]: string } {\n const serialized: { [key: string]: string } = {};\n\n Object.keys(data).forEach(dataKey => {\n const value = data[dataKey];\n serialized[dataKey] = typeof value === 'string' ? value : JSON.stringify(value);\n });\n\n return serialized;\n },\n\n /**\n * Convert js severity level in event.level and event.breadcrumbs to more widely supported levels.\n * @param event\n * @returns Event with more widely supported Severity level strings\n */\n\n _processLevels(event: Event): Event {\n const processed: Event = {\n ...event,\n level: event.level ? this._processLevel(event.level) : undefined,\n breadcrumbs: event.breadcrumbs?.map(breadcrumb => ({\n ...breadcrumb,\n level: breadcrumb.level ? this._processLevel(breadcrumb.level) : undefined,\n })),\n };\n\n return processed;\n },\n\n /**\n * Convert js severity level which has critical and log to more widely supported levels.\n * @param level\n * @returns More widely supported Severity level strings\n */\n\n _processLevel(level: SeverityLevel): SeverityLevel {\n if (level == ('log' as SeverityLevel)) {\n return 'debug' as SeverityLevel;\n }\n return level;\n },\n\n /**\n * Checks whether the RNSentry module is loaded.\n */\n _isModuleLoaded(module: Spec | undefined): module is Spec {\n return !!module;\n },\n\n _DisabledNativeError: new SentryError('Native is disabled'),\n\n _NativeClientError: new SentryError(\"Native Client is not available, can't start on native.\"),\n\n enableNative: true,\n nativeIsReady: false,\n platform: Platform.OS,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/js/wrapper.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable max-lines */\nimport type {\n BaseEnvelopeItemHeaders,\n Breadcrumb,\n Envelope,\n EnvelopeItem,\n Event,\n Package,\n SeverityLevel,\n User,\n} from '@sentry/types';\nimport { logger, normalize, SentryError } from '@sentry/utils';\nimport { NativeModules, Platform, TurboModuleRegistry } from 'react-native';\n\nimport { isHardCrash } from './misc';\nimport type {\n NativeAppStartResponse,\n NativeDeviceContextsResponse,\n NativeFramesResponse,\n NativeReleaseResponse,\n NativeScreenshot,\n NativeStackFrames,\n Spec,\n} from './NativeRNSentry';\nimport type { ReactNativeClientOptions } from './options';\nimport type * as Hermes from './profiling/hermes';\nimport type { RequiredKeysUser } from './user';\nimport { isTurboModuleEnabled } from './utils/environment';\nimport { utf8ToBytes } from './vendor';\n\nconst RNSentry: Spec | undefined = isTurboModuleEnabled()\n ? TurboModuleRegistry.get<Spec>('RNSentry')\n : NativeModules.RNSentry;\n\nexport interface Screenshot {\n data: Uint8Array;\n contentType: string;\n filename: string;\n}\n\ninterface SentryNativeWrapper {\n enableNative: boolean;\n nativeIsReady: boolean;\n platform: typeof Platform.OS;\n\n _NativeClientError: Error;\n _DisabledNativeError: Error;\n\n _processItem(envelopeItem: EnvelopeItem): EnvelopeItem;\n _processLevels(event: Event): Event;\n _processLevel(level: SeverityLevel): SeverityLevel;\n _serializeObject(data: { [key: string]: unknown }): { [key: string]: string };\n _isModuleLoaded(module: Spec | undefined): module is Spec;\n\n isNativeAvailable(): boolean;\n\n initNativeSdk(options: Partial<ReactNativeClientOptions>): PromiseLike<boolean>;\n closeNativeSdk(): PromiseLike<void>;\n\n sendEnvelope(envelope: Envelope): Promise<void>;\n captureScreenshot(): Promise<Screenshot[] | null>;\n\n fetchNativeRelease(): PromiseLike<NativeReleaseResponse>;\n fetchNativeDeviceContexts(): PromiseLike<NativeDeviceContextsResponse | null>;\n fetchNativeAppStart(): PromiseLike<NativeAppStartResponse | null>;\n fetchNativeFrames(): PromiseLike<NativeFramesResponse | null>;\n fetchNativeSdkInfo(): PromiseLike<Package | null>;\n\n disableNativeFramesTracking(): void;\n enableNativeFramesTracking(): void;\n\n addBreadcrumb(breadcrumb: Breadcrumb): void;\n setContext(key: string, context: { [key: string]: unknown } | null): void;\n clearBreadcrumbs(): void;\n setExtra(key: string, extra: unknown): void;\n setUser(user: User | null): void;\n setTag(key: string, value: string): void;\n\n nativeCrash(): void;\n\n fetchModules(): Promise<Record<string, string> | null>;\n fetchViewHierarchy(): PromiseLike<Uint8Array | null>;\n\n startProfiling(): boolean;\n stopProfiling(): Hermes.Profile | null;\n\n fetchNativePackageName(): Promise<string | null>;\n\n /**\n * Fetches native stack frames and debug images for the instructions addresses.\n */\n fetchNativeStackFramesBy(instructionsAddr: number[]): Promise<NativeStackFrames | null>;\n}\n\n/**\n * Our internal interface for calling native functions\n */\nexport const NATIVE: SentryNativeWrapper = {\n async fetchModules(): Promise<Record<string, string> | null> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const raw = await RNSentry.fetchModules();\n if (raw) {\n return JSON.parse(raw);\n }\n return null;\n },\n /**\n * Sending the envelope over the bridge to native\n * @param envelope Envelope\n */\n async sendEnvelope(envelope: Envelope): Promise<void> {\n if (!this.enableNative) {\n logger.warn('Event was skipped as native SDK is not enabled.');\n return;\n }\n\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const [EOL] = utf8ToBytes('\\n');\n\n const [envelopeHeader, envelopeItems] = envelope;\n\n const headerString = JSON.stringify(envelopeHeader);\n let envelopeBytes: number[] = utf8ToBytes(headerString);\n envelopeBytes.push(EOL);\n\n let hardCrashed: boolean = false;\n for (const rawItem of envelopeItems) {\n const [itemHeader, itemPayload] = this._processItem(rawItem);\n\n let bytesContentType: string;\n let bytesPayload: number[] = [];\n if (typeof itemPayload === 'string') {\n bytesContentType = 'text/plain';\n bytesPayload = utf8ToBytes(itemPayload);\n } else if (itemPayload instanceof Uint8Array) {\n bytesContentType =\n typeof itemHeader.content_type === 'string' ? itemHeader.content_type : 'application/octet-stream';\n bytesPayload = [...itemPayload];\n } else {\n bytesContentType = 'application/json';\n bytesPayload = utf8ToBytes(JSON.stringify(itemPayload));\n if (!hardCrashed) {\n hardCrashed = isHardCrash(itemPayload);\n }\n }\n\n // Content type is not inside BaseEnvelopeItemHeaders.\n (itemHeader as BaseEnvelopeItemHeaders).content_type = bytesContentType;\n (itemHeader as BaseEnvelopeItemHeaders).length = bytesPayload.length;\n const serializedItemHeader = JSON.stringify(itemHeader);\n\n envelopeBytes.push(...utf8ToBytes(serializedItemHeader));\n envelopeBytes.push(EOL);\n envelopeBytes = envelopeBytes.concat(bytesPayload);\n envelopeBytes.push(EOL);\n }\n\n await RNSentry.captureEnvelope(envelopeBytes, { store: hardCrashed });\n },\n\n /**\n * Starts native with the provided options.\n * @param options ReactNativeClientOptions\n */\n async initNativeSdk(originalOptions: Partial<ReactNativeClientOptions>): Promise<boolean> {\n const options: Partial<ReactNativeClientOptions> = {\n enableNative: true,\n autoInitializeNativeSdk: true,\n ...originalOptions,\n };\n\n if (!options.enableNative) {\n if (options.enableNativeNagger) {\n logger.warn('Note: Native Sentry SDK is disabled.');\n }\n this.enableNative = false;\n return false;\n }\n if (!options.autoInitializeNativeSdk) {\n if (options.enableNativeNagger) {\n logger.warn(\n 'Note: Native Sentry SDK was not initialized automatically, you will need to initialize it manually. If you wish to disable the native SDK and get rid of this warning, pass enableNative: false',\n );\n }\n this.enableNative = true;\n return false;\n }\n\n if (!options.dsn) {\n logger.warn(\n 'Warning: No DSN was provided. The Sentry SDK will be disabled. Native SDK will also not be initalized.',\n );\n this.enableNative = false;\n return false;\n }\n\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n // filter out all the options that would crash native.\n /* eslint-disable @typescript-eslint/unbound-method,@typescript-eslint/no-unused-vars */\n const { beforeSend, beforeBreadcrumb, beforeSendTransaction, integrations, ...filteredOptions } = options;\n /* eslint-enable @typescript-eslint/unbound-method,@typescript-eslint/no-unused-vars */\n const nativeIsReady = await RNSentry.initNativeSdk(filteredOptions);\n\n this.nativeIsReady = nativeIsReady;\n this.enableNative = true;\n\n return nativeIsReady;\n },\n\n /**\n * Fetches the release from native\n */\n async fetchNativeRelease(): Promise<NativeReleaseResponse> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n return RNSentry.fetchNativeRelease();\n },\n\n /**\n * Fetches the Sdk info for the native sdk.\n */\n async fetchNativeSdkInfo(): Promise<Package | null> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n return RNSentry.fetchNativeSdkInfo();\n },\n\n /**\n * Fetches the device contexts. Not used on Android.\n */\n async fetchNativeDeviceContexts(): Promise<NativeDeviceContextsResponse | null> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n return RNSentry.fetchNativeDeviceContexts();\n },\n\n async fetchNativeAppStart(): Promise<NativeAppStartResponse | null> {\n if (!this.enableNative) {\n logger.warn(this._DisabledNativeError);\n return null;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n logger.error(this._NativeClientError);\n return null;\n }\n\n return RNSentry.fetchNativeAppStart();\n },\n\n async fetchNativeFrames(): Promise<NativeFramesResponse | null> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n return RNSentry.fetchNativeFrames();\n },\n\n /**\n * Triggers a native crash.\n * Use this only for testing purposes.\n */\n nativeCrash(): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n RNSentry.crash();\n },\n\n /**\n * Sets the user in the native scope.\n * Passing null clears the user.\n */\n setUser(user: User | null): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n // separate and serialize all non-default user keys.\n let userKeys = null;\n let userDataKeys = null;\n if (user) {\n const { id, ip_address, email, username, segment, ...otherKeys } = user;\n const requiredUser: RequiredKeysUser = {\n id,\n ip_address,\n email,\n username,\n segment,\n };\n userKeys = this._serializeObject(requiredUser);\n userDataKeys = this._serializeObject(otherKeys);\n }\n\n RNSentry.setUser(userKeys, userDataKeys);\n },\n\n /**\n * Sets a tag in the native module.\n * @param key string\n * @param value string\n */\n setTag(key: string, value: string): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const stringifiedValue = typeof value === 'string' ? value : JSON.stringify(value);\n\n RNSentry.setTag(key, stringifiedValue);\n },\n\n /**\n * Sets an extra in the native scope, will stringify\n * extra value if it isn't already a string.\n * @param key string\n * @param extra any\n */\n setExtra(key: string, extra: unknown): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n // we stringify the extra as native only takes in strings.\n const stringifiedExtra = typeof extra === 'string' ? extra : JSON.stringify(extra);\n\n RNSentry.setExtra(key, stringifiedExtra);\n },\n\n /**\n * Adds breadcrumb to the native scope.\n * @param breadcrumb Breadcrumb\n */\n addBreadcrumb(breadcrumb: Breadcrumb): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n RNSentry.addBreadcrumb({\n ...breadcrumb,\n // Process and convert deprecated levels\n level: breadcrumb.level ? this._processLevel(breadcrumb.level) : undefined,\n });\n },\n\n /**\n * Clears breadcrumbs on the native scope.\n */\n clearBreadcrumbs(): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n RNSentry.clearBreadcrumbs();\n },\n\n /**\n * Sets context on the native scope. Not implemented in Android yet.\n * @param key string\n * @param context key-value map\n */\n setContext(key: string, context: { [key: string]: unknown } | null): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n RNSentry.setContext(key, context !== null ? normalize(context) : null);\n },\n\n /**\n * Closes the Native Layer SDK\n */\n async closeNativeSdk(): Promise<void> {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n return;\n }\n\n return RNSentry.closeNativeSdk().then(() => {\n this.enableNative = false;\n });\n },\n\n disableNativeFramesTracking(): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n return;\n }\n\n RNSentry.disableNativeFramesTracking();\n },\n\n enableNativeFramesTracking(): void {\n if (!this.enableNative) {\n return;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n return;\n }\n\n RNSentry.enableNativeFramesTracking();\n },\n\n isNativeAvailable(): boolean {\n return this._isModuleLoaded(RNSentry);\n },\n\n async captureScreenshot(): Promise<Screenshot[] | null> {\n if (!this.enableNative) {\n logger.warn(this._DisabledNativeError);\n return null;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n logger.error(this._NativeClientError);\n return null;\n }\n\n let raw: NativeScreenshot[] | null | undefined;\n try {\n raw = await RNSentry.captureScreenshot();\n } catch (e) {\n logger.warn('Failed to capture screenshot', e);\n }\n\n if (raw) {\n return raw.map((item: NativeScreenshot) => ({\n ...item,\n data: new Uint8Array(item.data),\n }));\n } else {\n return null;\n }\n },\n\n async fetchViewHierarchy(): Promise<Uint8Array | null> {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const raw = await RNSentry.fetchViewHierarchy();\n return raw ? new Uint8Array(raw) : null;\n },\n\n startProfiling(): boolean {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const { started, error } = RNSentry.startProfiling();\n if (started) {\n logger.log('[NATIVE] Start Profiling');\n } else {\n logger.error('[NATIVE] Start Profiling Failed', error);\n }\n\n return !!started;\n },\n\n stopProfiling(): Hermes.Profile | null {\n if (!this.enableNative) {\n throw this._DisabledNativeError;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n throw this._NativeClientError;\n }\n\n const { profile, error } = RNSentry.stopProfiling();\n if (!profile || error) {\n logger.error('[NATIVE] Stop Profiling Failed', error);\n return null;\n }\n\n try {\n return JSON.parse(profile) as Hermes.Profile;\n } catch (e) {\n logger.error('[NATIVE] Failed to parse Hermes Profile JSON', e);\n return null;\n }\n },\n\n async fetchNativePackageName(): Promise<string | null> {\n if (!this.enableNative) {\n return null;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n return null;\n }\n\n return (await RNSentry.fetchNativePackageName()) || null;\n },\n\n async fetchNativeStackFramesBy(instructionsAddr: number[]): Promise<NativeStackFrames | null> {\n if (!this.enableNative) {\n return null;\n }\n if (!this._isModuleLoaded(RNSentry)) {\n return null;\n }\n\n return (await RNSentry.fetchNativeStackFramesBy(instructionsAddr)) || null;\n },\n\n /**\n * Gets the event from envelopeItem and applies the level filter to the selected event.\n * @param data An envelope item containing the event.\n * @returns The event from envelopeItem or undefined.\n */\n _processItem(item: EnvelopeItem): EnvelopeItem {\n const [itemHeader, itemPayload] = item;\n\n if (itemHeader.type == 'event' || itemHeader.type == 'transaction') {\n const event = this._processLevels(itemPayload as Event);\n\n if (NATIVE.platform === 'android') {\n if ('message' in event) {\n // @ts-expect-error Android still uses the old message object, without this the serialization of events will break.\n event.message = { message: event.message };\n }\n }\n\n return [itemHeader, event];\n }\n\n return item;\n },\n\n /**\n * Serializes all values of root-level keys into strings.\n * @param data key-value map.\n * @returns An object where all root-level values are strings.\n */\n _serializeObject(data: { [key: string]: unknown }): { [key: string]: string } {\n const serialized: { [key: string]: string } = {};\n\n Object.keys(data).forEach(dataKey => {\n const value = data[dataKey];\n serialized[dataKey] = typeof value === 'string' ? value : JSON.stringify(value);\n });\n\n return serialized;\n },\n\n /**\n * Convert js severity level in event.level and event.breadcrumbs to more widely supported levels.\n * @param event\n * @returns Event with more widely supported Severity level strings\n */\n\n _processLevels(event: Event): Event {\n const processed: Event = {\n ...event,\n level: event.level ? this._processLevel(event.level) : undefined,\n breadcrumbs: event.breadcrumbs?.map(breadcrumb => ({\n ...breadcrumb,\n level: breadcrumb.level ? this._processLevel(breadcrumb.level) : undefined,\n })),\n };\n\n return processed;\n },\n\n /**\n * Convert js severity level which has critical and log to more widely supported levels.\n * @param level\n * @returns More widely supported Severity level strings\n */\n\n _processLevel(level: SeverityLevel): SeverityLevel {\n if (level == ('log' as SeverityLevel)) {\n return 'debug' as SeverityLevel;\n }\n return level;\n },\n\n /**\n * Checks whether the RNSentry module is loaded.\n */\n _isModuleLoaded(module: Spec | undefined): module is Spec {\n return !!module;\n },\n\n _DisabledNativeError: new SentryError('Native is disabled'),\n\n _NativeClientError: new SentryError(\"Native Client is not available, can't start on native.\"),\n\n enableNative: true,\n nativeIsReady: false,\n platform: Platform.OS,\n};\n"]}
|
package/ios/RNSentry.mm
CHANGED
|
@@ -216,7 +216,7 @@ RCT_EXPORT_METHOD(fetchNativePackageName:(RCTPromiseResolveBlock)resolve
|
|
|
216
216
|
NSMutableArray<NSDictionary<NSString *, id> *> * _Nonnull serializedFrames = [[NSMutableArray alloc] init];
|
|
217
217
|
|
|
218
218
|
for (NSNumber *addr in instructionsAddr) {
|
|
219
|
-
SentryBinaryImageInfo * _Nullable image = [[
|
|
219
|
+
SentryBinaryImageInfo * _Nullable image = [[[SentryDependencyContainer sharedInstance] binaryImageCache] imageByAddress:[addr unsignedLongLongValue]];
|
|
220
220
|
if (image != nil) {
|
|
221
221
|
NSString * imageAddr = sentry_formatHexAddressUInt64([image address]);
|
|
222
222
|
[imagesAddrToRetrieveDebugMetaImages addObject: imageAddr];
|
package/package.json
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
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.9.
|
|
5
|
+
"version": "5.9.2",
|
|
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",
|
|
9
9
|
"typesVersions": {
|
|
10
|
-
"<4.
|
|
10
|
+
"<4.9": {
|
|
11
11
|
"*": [
|
|
12
12
|
"ts3.8/*"
|
|
13
13
|
]
|
|
@@ -56,20 +56,20 @@
|
|
|
56
56
|
"react-native": ">=0.65.0"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@sentry/browser": "7.
|
|
60
|
-
"@sentry/cli": "2.20.
|
|
61
|
-
"@sentry/core": "7.
|
|
62
|
-
"@sentry/hub": "7.
|
|
63
|
-
"@sentry/integrations": "7.
|
|
64
|
-
"@sentry/react": "7.
|
|
65
|
-
"@sentry/types": "7.
|
|
66
|
-
"@sentry/utils": "7.
|
|
59
|
+
"@sentry/browser": "7.69.0",
|
|
60
|
+
"@sentry/cli": "2.20.7",
|
|
61
|
+
"@sentry/core": "7.69.0",
|
|
62
|
+
"@sentry/hub": "7.69.0",
|
|
63
|
+
"@sentry/integrations": "7.69.0",
|
|
64
|
+
"@sentry/react": "7.69.0",
|
|
65
|
+
"@sentry/types": "7.69.0",
|
|
66
|
+
"@sentry/utils": "7.69.0"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@sentry-internal/eslint-config-sdk": "7.
|
|
70
|
-
"@sentry-internal/eslint-plugin-sdk": "7.
|
|
69
|
+
"@sentry-internal/eslint-config-sdk": "7.69.0",
|
|
70
|
+
"@sentry-internal/eslint-plugin-sdk": "7.69.0",
|
|
71
71
|
"@sentry/typescript": "^5.20.1",
|
|
72
|
-
"@sentry/wizard": "3.
|
|
72
|
+
"@sentry/wizard": "3.13.0",
|
|
73
73
|
"@types/jest": "^29.5.3",
|
|
74
74
|
"@types/react": "^18.2.14",
|
|
75
75
|
"babel-jest": "^29.6.2",
|
|
@@ -81,11 +81,11 @@
|
|
|
81
81
|
"jest-environment-jsdom": "^29.6.2",
|
|
82
82
|
"prettier": "^2.0.5",
|
|
83
83
|
"react": "18.2.0",
|
|
84
|
-
"react-native": "0.72.
|
|
84
|
+
"react-native": "0.72.4",
|
|
85
85
|
"replace-in-file": "^7.0.1",
|
|
86
86
|
"rimraf": "^4.1.1",
|
|
87
87
|
"ts-jest": "^29.1.1",
|
|
88
|
-
"typescript": "4.
|
|
88
|
+
"typescript": "4.9.5"
|
|
89
89
|
},
|
|
90
90
|
"rnpm": {
|
|
91
91
|
"commands": {},
|
|
@@ -35,7 +35,7 @@ export interface Spec extends TurboModule {
|
|
|
35
35
|
fetchNativePackageName(): Promise<string | undefined | null>;
|
|
36
36
|
fetchNativeStackFramesBy(instructionsAddr: number[]): Promise<NativeStackFrames | undefined | null>;
|
|
37
37
|
}
|
|
38
|
-
export
|
|
38
|
+
export type NativeStackFrame = {
|
|
39
39
|
platform: string;
|
|
40
40
|
/**
|
|
41
41
|
* The instruction address of this frame.
|
|
@@ -61,7 +61,7 @@ export declare type NativeStackFrame = {
|
|
|
61
61
|
*/
|
|
62
62
|
symbol_addr?: string;
|
|
63
63
|
};
|
|
64
|
-
export
|
|
64
|
+
export type NativeDebugImage = {
|
|
65
65
|
name?: string;
|
|
66
66
|
type?: string;
|
|
67
67
|
uuid?: string;
|
|
@@ -71,21 +71,21 @@ export declare type NativeDebugImage = {
|
|
|
71
71
|
code_file?: string;
|
|
72
72
|
image_vmaddr?: string;
|
|
73
73
|
};
|
|
74
|
-
export
|
|
74
|
+
export type NativeStackFrames = {
|
|
75
75
|
frames: NativeStackFrame[];
|
|
76
76
|
debugMetaImages?: NativeDebugImage[];
|
|
77
77
|
};
|
|
78
|
-
export
|
|
78
|
+
export type NativeAppStartResponse = {
|
|
79
79
|
isColdStart: boolean;
|
|
80
80
|
appStartTime: number;
|
|
81
81
|
didFetchAppStart: boolean;
|
|
82
82
|
};
|
|
83
|
-
export
|
|
83
|
+
export type NativeFramesResponse = {
|
|
84
84
|
totalFrames: number;
|
|
85
85
|
slowFrames: number;
|
|
86
86
|
frozenFrames: number;
|
|
87
87
|
};
|
|
88
|
-
export
|
|
88
|
+
export type NativeReleaseResponse = {
|
|
89
89
|
build: string;
|
|
90
90
|
id: string;
|
|
91
91
|
version: string;
|
|
@@ -95,7 +95,7 @@ export declare type NativeReleaseResponse = {
|
|
|
95
95
|
* https://github.com/getsentry/sentry-cocoa/blob/master/Sources/Sentry/SentryScope.m
|
|
96
96
|
* https://github.com/getsentry/sentry-java/blob/a461f7e125b65240004e6162b341f383ce2e1394/sentry-android-core/src/main/java/io/sentry/android/core/InternalSentrySdk.java#L32
|
|
97
97
|
*/
|
|
98
|
-
export
|
|
98
|
+
export type NativeDeviceContextsResponse = {
|
|
99
99
|
[key: string]: unknown;
|
|
100
100
|
tags?: Record<string, string>;
|
|
101
101
|
extra?: Record<string, unknown>;
|
|
@@ -121,7 +121,7 @@ export declare type NativeDeviceContextsResponse = {
|
|
|
121
121
|
data?: Record<string, unknown>;
|
|
122
122
|
}[];
|
|
123
123
|
};
|
|
124
|
-
export
|
|
124
|
+
export type NativeScreenshot = {
|
|
125
125
|
data: number[];
|
|
126
126
|
contentType: string;
|
|
127
127
|
filename: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EventProcessor, Integration, SdkInfo as SdkInfoType } from '@sentry/types';
|
|
2
|
-
|
|
2
|
+
type DefaultSdkInfo = Pick<Required<SdkInfoType>, 'name' | 'packages' | 'version'>;
|
|
3
3
|
export declare const defaultSdkInfo: DefaultSdkInfo;
|
|
4
4
|
/** Default SdkInfo instrumentation */
|
|
5
5
|
export declare class SdkInfo implements Integration {
|
|
@@ -9,5 +9,5 @@ export declare const STALL_LONGEST_TIME = "stall_longest_time";
|
|
|
9
9
|
* Adds React Native's extensions. Needs to be called before any transactions are created.
|
|
10
10
|
*/
|
|
11
11
|
export declare function _addTracingExtensions(): void;
|
|
12
|
-
export
|
|
12
|
+
export type StartTransactionFunction = (this: Hub, transactionContext: TransactionContext, customSamplingContext?: CustomSamplingContext) => Transaction;
|
|
13
13
|
//# sourceMappingURL=measurements.d.ts.map
|
package/ts3.8/dist/js/misc.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EnvelopeItem } from '@sentry/types';
|
|
2
|
-
|
|
2
|
+
type EnvelopeItemPayload = EnvelopeItem[1];
|
|
3
3
|
/**
|
|
4
4
|
* Extracts the hard crash information from the event exceptions.
|
|
5
5
|
* No exceptions or undefined handled are not hard crashes.
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { BrowserTransportOptions } from '@sentry/browser/types/transports/types';
|
|
2
2
|
import type { ProfilerProps } from '@sentry/react/types/profiler';
|
|
3
|
-
import type { ClientOptions, Options } from '@sentry/types';
|
|
4
|
-
import type { CaptureContext } from '@sentry/types/types/scope';
|
|
3
|
+
import type { CaptureContext, ClientOptions, Options } from '@sentry/types';
|
|
5
4
|
import type { TouchEventBoundaryProps } from './touchevents';
|
|
6
5
|
export interface BaseReactNativeOptions {
|
|
7
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RawThreadCpuProfile } from './types';
|
|
2
|
-
export
|
|
3
|
-
export
|
|
2
|
+
export type StackFrameId = number;
|
|
3
|
+
export type MicrosecondsSinceBoot = string;
|
|
4
4
|
export interface TraceEvent {
|
|
5
5
|
name: string;
|
|
6
6
|
ph: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Hub } from '@sentry/core';
|
|
2
|
+
import type { EventProcessor, Integration } from '@sentry/types';
|
|
2
3
|
export declare const MAX_PROFILE_DURATION_MS: number;
|
|
3
4
|
/**
|
|
4
5
|
* Profiling integration creates a profile for each transaction and adds it to the event envelope.
|
|
@@ -21,6 +22,8 @@ export declare class HermesProfiling implements Integration {
|
|
|
21
22
|
* @inheritDoc
|
|
22
23
|
*/
|
|
23
24
|
setupOnce(_: (e: EventProcessor) => void, getCurrentHub: () => Hub): void;
|
|
25
|
+
private _startCurrentProfileForActiveTransaction;
|
|
26
|
+
private _startCurrentProfile;
|
|
24
27
|
private _shouldStartProfiling;
|
|
25
28
|
/**
|
|
26
29
|
* Starts a new profile and links it to the transaction.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
export
|
|
2
|
+
export type TouchEventBoundaryProps = {
|
|
3
3
|
/**
|
|
4
4
|
* The category assigned to the breadcrumb that is logged by the touch event.
|
|
5
5
|
*/
|
|
@@ -66,6 +66,6 @@ declare class TouchEventBoundary extends React.Component<TouchEventBoundaryProps
|
|
|
66
66
|
* @param WrappedComponent any React Component
|
|
67
67
|
* @param boundaryProps TouchEventBoundaryProps
|
|
68
68
|
*/
|
|
69
|
-
declare const withTouchEventBoundary: (InnerComponent: React.ComponentType<any>, boundaryProps?: TouchEventBoundaryProps
|
|
69
|
+
declare const withTouchEventBoundary: (InnerComponent: React.ComponentType<any>, boundaryProps?: TouchEventBoundaryProps) => React.FunctionComponent;
|
|
70
70
|
export { TouchEventBoundary, withTouchEventBoundary };
|
|
71
71
|
//# sourceMappingURL=touchevents.d.ts.map
|
|
@@ -22,7 +22,7 @@ interface ReactNativeNavigationOptions {
|
|
|
22
22
|
interface ComponentEvent {
|
|
23
23
|
componentId: string;
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
type ComponentType = 'Component' | 'TopBarTitle' | 'TopBarBackground' | 'TopBarButton';
|
|
26
26
|
export interface ComponentWillAppearEvent extends ComponentEvent {
|
|
27
27
|
componentName: string;
|
|
28
28
|
passProps?: Record<string | number | symbol, unknown>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Hub } from '@sentry/core';
|
|
2
2
|
import type { Transaction, TransactionContext } from '@sentry/types';
|
|
3
3
|
import type { BeforeNavigate } from './types';
|
|
4
|
-
export
|
|
5
|
-
export
|
|
4
|
+
export type TransactionCreator = (context: TransactionContext) => Transaction | undefined;
|
|
5
|
+
export type OnConfirmRoute = (context: TransactionContext) => void;
|
|
6
6
|
export interface RoutingInstrumentationInstance {
|
|
7
7
|
/**
|
|
8
8
|
* Name of the routing instrumentation
|
|
@@ -15,7 +15,7 @@ export interface StallMeasurements extends Measurements {
|
|
|
15
15
|
unit: MeasurementUnit;
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
export
|
|
18
|
+
export type StallTrackingOptions = {
|
|
19
19
|
/**
|
|
20
20
|
* How long in milliseconds an event loop iteration can be delayed for before being considered a "stall."
|
|
21
21
|
* @default 100
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BeforeFinishCallback } from '@sentry/core
|
|
1
|
+
import type { BeforeFinishCallback } from '@sentry/core';
|
|
2
2
|
/**
|
|
3
3
|
* Idle Transaction callback to only sample transactions with child spans.
|
|
4
4
|
* To avoid side effects of other callbacks this should be hooked as the last callback.
|
|
@@ -7,7 +7,7 @@ export interface ReactNavigationRoute {
|
|
|
7
7
|
export interface ReactNavigationCurrentRoute extends ReactNavigationRoute {
|
|
8
8
|
hasBeenSeen: boolean;
|
|
9
9
|
}
|
|
10
|
-
export
|
|
10
|
+
export type RouteChangeContextData = {
|
|
11
11
|
previousRoute?: {
|
|
12
12
|
[key: string]: unknown;
|
|
13
13
|
name: string;
|
|
@@ -25,5 +25,5 @@ export interface ReactNavigationTransactionContext extends TransactionContext {
|
|
|
25
25
|
};
|
|
26
26
|
data: RouteChangeContextData;
|
|
27
27
|
}
|
|
28
|
-
export
|
|
28
|
+
export type BeforeNavigate = (context: TransactionContext) => TransactionContext;
|
|
29
29
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BaseTransportOptions, Envelope, Transport } from '@sentry/types';
|
|
2
2
|
import type { PromiseBuffer } from '@sentry/utils';
|
|
3
3
|
export declare const DEFAULT_BUFFER_SIZE = 30;
|
|
4
|
-
export
|
|
4
|
+
export type BaseNativeTransport = BaseTransportOptions;
|
|
5
5
|
export interface BaseNativeTransportOptions {
|
|
6
6
|
bufferSize?: number;
|
|
7
7
|
}
|
package/ts3.8/dist/js/user.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { User } from '@sentry/types';
|
|
2
2
|
/** Requires all the keys defined on User interface to be present on an object */
|
|
3
|
-
export
|
|
3
|
+
export type RequiredKeysUser = {
|
|
4
4
|
[P in keyof Required<User>]: User[P] | undefined;
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReactNativeOptions } from '../options';
|
|
2
|
-
|
|
2
|
+
type DangerTypesWithoutCallSignature = Object | null | undefined;
|
|
3
3
|
/**
|
|
4
4
|
* Returns callback factory wrapped with try/catch
|
|
5
5
|
* or the original passed value is it's not a function.
|