@sentry/react-native 5.21.0 → 5.22.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 CHANGED
@@ -1,11 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.22.0
4
+
5
+ ### Features
6
+
7
+ - Updated metric normalization from `@sentry/core` ([#11519](https://github.com/getsentry/sentry-javascript/pull/11519))
8
+ - Metric rate limiting from `sentry-cocoa` and `sentry-android`
9
+
10
+ ### Dependencies
11
+
12
+ - Bump Cocoa SDK from v8.21.0 to v8.24.0 ([#3686](https://github.com/getsentry/sentry-react-native/pull/3694), [#3696](https://github.com/getsentry/sentry-react-native/pull/3696))
13
+ - [changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#8240)
14
+ - [diff](https://github.com/getsentry/sentry-cocoa/compare/8.21.0...8.24.0)
15
+ - Bump Android SDK from v7.6.0 to v7.8.0 ([#3750](https://github.com/getsentry/sentry-react-native/pull/3750))
16
+ - [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#780)
17
+ - [diff](https://github.com/getsentry/sentry-java/compare/7.6.0...7.8.0)
18
+ - Bump JavaScript SDK from v7.100.1 to v7.110.1 ([#3601](https://github.com/getsentry/sentry-react-native/pull/3601), [#3758](https://github.com/getsentry/sentry-react-native/pull/3758))
19
+ - [changelog](https://github.com/getsentry/sentry-javascript/blob/v7/CHANGELOG.md#71101)
20
+ - [diff](https://github.com/getsentry/sentry-javascript/compare/7.100.1...7.110.1)
21
+
3
22
  ## 5.21.0
4
23
 
5
24
  ### Features
6
25
 
7
26
  - Add `getDefaultConfig` option to `getSentryExpoConfig` ([#3690](https://github.com/getsentry/sentry-react-native/pull/3690))
8
- - Add `beforeScreenshoot` option to `ReactNativeOptions` ([#3715](https://github.com/getsentry/sentry-react-native/pull/3715))
27
+ - Add `beforeScreenshot` option to `ReactNativeOptions` ([#3715](https://github.com/getsentry/sentry-react-native/pull/3715))
9
28
 
10
29
  ### Fixes
11
30
 
package/RNSentry.podspec CHANGED
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  s.preserve_paths = '*.js'
34
34
 
35
35
  s.dependency 'React-Core'
36
- s.dependency 'Sentry/HybridSDK', '8.21.0'
36
+ s.dependency 'Sentry/HybridSDK', '8.24.0'
37
37
 
38
38
  s.source_files = 'ios/**/*.{h,m,mm}'
39
39
  s.public_header_files = 'ios/RNSentry.h'
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
41
41
  s.compiler_flags = other_cflags
42
42
  # This guard prevent to install the dependencies when we run `pod install` in the old architecture.
43
43
  if is_new_arch_enabled then
44
- s.pod_target_xcconfig = {
44
+ s.pod_target_xcconfig = {
45
45
  "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
46
46
  "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
47
47
  }
@@ -54,5 +54,5 @@ android {
54
54
 
55
55
  dependencies {
56
56
  implementation 'com.facebook.react:react-native:+'
57
- api 'io.sentry:sentry-android:7.6.0'
57
+ api 'io.sentry:sentry-android:7.8.0'
58
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"viewhierarchy.d.ts","sourceRoot":"","sources":["../../../src/js/integrations/viewhierarchy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKnF,yCAAyC;AACzC,qBAAa,aAAc,YAAW,WAAW;IAC/C;;OAEG;IACH,OAAc,EAAE,EAAE,MAAM,CAAmB;IAE3C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAiC;IACzD,OAAO,CAAC,MAAM,CAAC,YAAY,CAA8B;IACzD,OAAO,CAAC,MAAM,CAAC,eAAe,CAAkC;IAEhE;;OAEG;IACI,IAAI,EAAE,MAAM,CAAoB;IAEvC;;OAEG;IACI,SAAS,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI;CA6B7E"}
1
+ {"version":3,"file":"viewhierarchy.d.ts","sourceRoot":"","sources":["../../../src/js/integrations/viewhierarchy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAMnF,yCAAyC;AACzC,qBAAa,aAAc,YAAW,WAAW;IAC/C;;OAEG;IACH,OAAc,EAAE,EAAE,MAAM,CAAmB;IAE3C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAiC;IACzD,OAAO,CAAC,MAAM,CAAC,YAAY,CAA8B;IACzD,OAAO,CAAC,MAAM,CAAC,eAAe,CAA4D;IAE1F;;OAEG;IACI,IAAI,EAAE,MAAM,CAAoB;IAEvC;;OAEG;IACI,SAAS,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI;CA6B7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"viewhierarchy.js","sourceRoot":"","sources":["../../../src/js/integrations/viewhierarchy.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,yCAAyC;AACzC,MAAM,OAAO,aAAa;IAA1B;QAUE;;WAEG;QACI,SAAI,GAAW,aAAa,CAAC,EAAE,CAAC;IAkCzC,CAAC;IAhCC;;OAEG;IACI,SAAS,CAAC,uBAAoD;QACnE,uBAAuB,CAAC,CAAO,KAAY,EAAE,IAAe,EAAE,EAAE;YAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACpG,IAAI,CAAC,YAAY,EAAE;gBACjB,OAAO,KAAK,CAAC;aACd;YAED,IAAI,aAAa,GAAsB,IAAI,CAAC;YAC5C,IAAI;gBACF,aAAa,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;aACnD;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAC;aAC9D;YAED,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,WAAW,GAAG;oBACjB;wBACE,QAAQ,EAAE,aAAa,CAAC,SAAS;wBACjC,WAAW,EAAE,aAAa,CAAC,YAAY;wBACvC,cAAc,EAAE,aAAa,CAAC,eAAe;wBAC7C,IAAI,EAAE,aAAa;qBACpB;oBACD,GAAG,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,KAAI,EAAE,CAAC;iBAC7B,CAAC;aACH;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAA,CAAC,CAAC;IACL,CAAC;;AA7CD;;GAEG;AACW,gBAAE,GAAW,eAAe,CAAC;AAE5B,uBAAS,GAAW,qBAAqB,CAAC;AAC1C,0BAAY,GAAW,kBAAkB,CAAC;AAC1C,6BAAe,GAAW,sBAAsB,CAAC","sourcesContent":["import type { Event, EventHint, EventProcessor, Integration } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { NATIVE } from '../wrapper';\n\n/** Adds ViewHierarchy to error events */\nexport class ViewHierarchy implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'ViewHierarchy';\n\n private static _fileName: string = 'view-hierarchy.json';\n private static _contentType: string = 'application/json';\n private static _attachmentType: string = 'event.view_hierarchy';\n\n /**\n * @inheritDoc\n */\n public name: string = ViewHierarchy.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (e: EventProcessor) => void): void {\n addGlobalEventProcessor(async (event: Event, hint: EventHint) => {\n const hasException = event.exception && event.exception.values && event.exception.values.length > 0;\n if (!hasException) {\n return event;\n }\n\n let viewHierarchy: Uint8Array | null = null;\n try {\n viewHierarchy = await NATIVE.fetchViewHierarchy();\n } catch (e) {\n logger.error('Failed to get view hierarchy from native.', e);\n }\n\n if (viewHierarchy) {\n hint.attachments = [\n {\n filename: ViewHierarchy._fileName,\n contentType: ViewHierarchy._contentType,\n attachmentType: ViewHierarchy._attachmentType,\n data: viewHierarchy,\n },\n ...(hint?.attachments || []),\n ];\n }\n\n return event;\n });\n }\n}\n"]}
1
+ {"version":3,"file":"viewhierarchy.js","sourceRoot":"","sources":["../../../src/js/integrations/viewhierarchy.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,yCAAyC;AACzC,MAAM,OAAO,aAAa;IAA1B;QAUE;;WAEG;QACI,SAAI,GAAW,aAAa,CAAC,EAAE,CAAC;IAkCzC,CAAC;IAhCC;;OAEG;IACI,SAAS,CAAC,uBAAoD;QACnE,uBAAuB,CAAC,CAAO,KAAY,EAAE,IAAe,EAAE,EAAE;YAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACpG,IAAI,CAAC,YAAY,EAAE;gBACjB,OAAO,KAAK,CAAC;aACd;YAED,IAAI,aAAa,GAAsB,IAAI,CAAC;YAC5C,IAAI;gBACF,aAAa,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;aACnD;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAC;aAC9D;YAED,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,WAAW,GAAG;oBACjB;wBACE,QAAQ,EAAE,aAAa,CAAC,SAAS;wBACjC,WAAW,EAAE,aAAa,CAAC,YAAY;wBACvC,cAAc,EAAE,aAAa,CAAC,eAAe;wBAC7C,IAAI,EAAE,aAAa;qBACpB;oBACD,GAAG,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,KAAI,EAAE,CAAC;iBAC7B,CAAC;aACH;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAA,CAAC,CAAC;IACL,CAAC;;AA7CD;;GAEG;AACW,gBAAE,GAAW,eAAe,CAAC;AAE5B,uBAAS,GAAW,qBAAqB,CAAC;AAC1C,0BAAY,GAAW,kBAAkB,CAAC;AAC1C,6BAAe,GAAmB,sBAAwC,CAAC","sourcesContent":["import type { Event, EventHint, EventProcessor, Integration } from '@sentry/types';\nimport type { AttachmentType } from '@sentry/types/types/attachment';\nimport { logger } from '@sentry/utils';\n\nimport { NATIVE } from '../wrapper';\n\n/** Adds ViewHierarchy to error events */\nexport class ViewHierarchy implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'ViewHierarchy';\n\n private static _fileName: string = 'view-hierarchy.json';\n private static _contentType: string = 'application/json';\n private static _attachmentType: AttachmentType = 'event.view_hierarchy' as AttachmentType;\n\n /**\n * @inheritDoc\n */\n public name: string = ViewHierarchy.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (e: EventProcessor) => void): void {\n addGlobalEventProcessor(async (event: Event, hint: EventHint) => {\n const hasException = event.exception && event.exception.values && event.exception.values.length > 0;\n if (!hasException) {\n return event;\n }\n\n let viewHierarchy: Uint8Array | null = null;\n try {\n viewHierarchy = await NATIVE.fetchViewHierarchy();\n } catch (e) {\n logger.error('Failed to get view hierarchy from native.', e);\n }\n\n if (viewHierarchy) {\n hint.attachments = [\n {\n filename: ViewHierarchy._fileName,\n contentType: ViewHierarchy._contentType,\n attachmentType: ViewHierarchy._attachmentType,\n data: viewHierarchy,\n },\n ...(hint?.attachments || []),\n ];\n }\n\n return event;\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"addTracingExtensions.d.ts","sourceRoot":"","sources":["../../../src/js/tracing/addTracingExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAQ,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,KAAK,EAAE,qBAAqB,EAAe,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAK5F;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAiB5C;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,IAAI,EAAE,GAAG,EACT,kBAAkB,EAAE,kBAAkB,EACtC,qBAAqB,CAAC,EAAE,qBAAqB,KAC1C,WAAW,CAAC"}
1
+ {"version":3,"file":"addTracingExtensions.d.ts","sourceRoot":"","sources":["../../../src/js/tracing/addTracingExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAe,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAK5F;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAiB5C;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,IAAI,EAAE,GAAG,EACT,kBAAkB,EAAE,kBAAkB,EACtC,qBAAqB,CAAC,EAAE,qBAAqB,KAC1C,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"addTracingExtensions.js","sourceRoot":"","sources":["../../../src/js/tracing/addTracingExtensions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,oBAAoB,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;QACpE,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,EAAE;YAClD,MAAM,wBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,gBAA4C,CAAC;YAE5G;;;cAGE;YACF,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;YAE3E,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;SACpE;KACF;AACH,CAAC;AAQD;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC,wBAAkD,EAA4B,EAAE;IAC9G;;OAEG;IACH,SAAS,iBAAiB,CAExB,kBAAsC,EACtC,qBAA6C;QAE7C,iEAAiE;QACjE,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE;YAC1B,kBAAkB,CAAC,EAAE,GAAG,OAAO,CAAC;SACjC;QAED,MAAM,WAAW,GAAgB,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnH,MAAM,kBAAkB,GAA8B,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/F,WAAW,CAAC,UAAU,GAAG,CACvB,WAAmG,EAC7F,EAAE;YACR,OAAO,kBAAkB,iCACpB,WAAW;gBACd,mCAAmC;gBACnC,EAAE,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,KAAI,OAAO,IAC9B,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAE9E,IAAI,kBAAkB,EAAE;YACtB,kBAAkB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAEnD,6DAA6D;YAC7D,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC;YAE1C,WAAW,CAAC,MAAM,GAAG,CAAC,YAAgC,EAAE,EAAE;gBACxD,IAAI,kBAAkB,EAAE;oBACtB,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;iBACnE;gBAED,OAAO,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC;YAEF,6DAA6D;YAC7D,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC;YAEpC,WAAW,CAAC,GAAG,GAAG,CAAC,YAAgC,EAAE,EAAE;gBACrD,IAAI,kBAAkB,EAAE;oBACtB,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;iBACnE;gBAED,OAAO,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC;SACH;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC","sourcesContent":["import type { Hub, Span, Transaction } from '@sentry/core';\nimport { addTracingExtensions, getCurrentHub, getMainCarrier } from '@sentry/core';\nimport type { CustomSamplingContext, SpanContext, TransactionContext } from '@sentry/types';\n\nimport { DEFAULT } from '../tracing/ops';\nimport { ReactNativeTracing } from '../tracing/reactnativetracing';\n\n/**\n * Adds React Native's extensions. Needs to be called before any transactions are created.\n */\nexport function _addTracingExtensions(): void {\n addTracingExtensions();\n const carrier = getMainCarrier();\n if (carrier.__SENTRY__) {\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (carrier.__SENTRY__.extensions.startTransaction) {\n const originalStartTransaction = carrier.__SENTRY__.extensions.startTransaction as StartTransactionFunction;\n\n /*\n Overwrites the transaction start and finish to start and finish stall tracking.\n Preferably instead of overwriting add a callback method for this in the Transaction itself.\n */\n const _startTransaction = _patchStartTransaction(originalStartTransaction);\n\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n }\n}\n\nexport type StartTransactionFunction = (\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n) => Transaction;\n\n/**\n * Overwrite the startTransaction extension method to start and end stall tracking.\n */\nconst _patchStartTransaction = (originalStartTransaction: StartTransactionFunction): StartTransactionFunction => {\n /**\n * Method to overwrite with\n */\n function _startTransaction(\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n ): Transaction {\n // Native SDKs require op to be set - for JS Relay sets `default`\n if (!transactionContext.op) {\n transactionContext.op = DEFAULT;\n }\n\n const transaction: Transaction = originalStartTransaction.apply(this, [transactionContext, customSamplingContext]);\n const originalStartChild: Transaction['startChild'] = transaction.startChild.bind(transaction);\n transaction.startChild = (\n spanContext?: Pick<SpanContext, Exclude<keyof SpanContext, 'sampled' | 'traceId' | 'parentSpanId'>>,\n ): Span => {\n return originalStartChild({\n ...spanContext,\n // Native SDKs require op to be set\n op: spanContext?.op || DEFAULT,\n });\n };\n\n const reactNativeTracing = getCurrentHub().getIntegration(ReactNativeTracing);\n\n if (reactNativeTracing) {\n reactNativeTracing.onTransactionStart(transaction);\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalFinish = transaction.finish;\n\n transaction.finish = (endTimestamp: number | undefined) => {\n if (reactNativeTracing) {\n reactNativeTracing.onTransactionFinish(transaction, endTimestamp);\n }\n\n return originalFinish.apply(transaction, [endTimestamp]);\n };\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalEnd = transaction.end;\n\n transaction.end = (endTimestamp: number | undefined) => {\n if (reactNativeTracing) {\n reactNativeTracing.onTransactionFinish(transaction, endTimestamp);\n }\n\n return originalEnd.apply(transaction, [endTimestamp]);\n };\n }\n\n return transaction;\n }\n\n return _startTransaction;\n};\n"]}
1
+ {"version":3,"file":"addTracingExtensions.js","sourceRoot":"","sources":["../../../src/js/tracing/addTracingExtensions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,oBAAoB,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;QACpE,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,EAAE;YAClD,MAAM,wBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,gBAA4C,CAAC;YAE5G;;;cAGE;YACF,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;YAE3E,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;SACpE;KACF;AACH,CAAC;AAQD;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC,wBAAkD,EAA4B,EAAE;IAC9G;;OAEG;IACH,SAAS,iBAAiB,CAExB,kBAAsC,EACtC,qBAA6C;QAE7C,iEAAiE;QACjE,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE;YAC1B,kBAAkB,CAAC,EAAE,GAAG,OAAO,CAAC;SACjC;QAED,MAAM,WAAW,GAAgB,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnH,MAAM,kBAAkB,GAA8B,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/F,WAAW,CAAC,UAAU,GAAG,CACvB,WAAmG,EAC5D,EAAE;YACzC,OAAO,kBAAkB,iCACpB,WAAW;gBACd,mCAAmC;gBACnC,EAAE,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,KAAI,OAAO,IAC9B,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAE9E,IAAI,kBAAkB,EAAE;YACtB,kBAAkB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAEnD,6DAA6D;YAC7D,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC;YAE1C,WAAW,CAAC,MAAM,GAAG,CAAC,YAAgC,EAAE,EAAE;gBACxD,IAAI,kBAAkB,EAAE;oBACtB,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;iBACnE;gBAED,OAAO,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC;YAEF,6DAA6D;YAC7D,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC;YAEpC,WAAW,CAAC,GAAG,GAAG,CAAC,YAAgC,EAAE,EAAE;gBACrD,IAAI,kBAAkB,EAAE;oBACtB,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;iBACnE;gBAED,OAAO,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC;SACH;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC","sourcesContent":["import type { Hub, Transaction } from '@sentry/core';\nimport { addTracingExtensions, getCurrentHub, getMainCarrier } from '@sentry/core';\nimport type { CustomSamplingContext, SpanContext, TransactionContext } from '@sentry/types';\n\nimport { DEFAULT } from '../tracing/ops';\nimport { ReactNativeTracing } from '../tracing/reactnativetracing';\n\n/**\n * Adds React Native's extensions. Needs to be called before any transactions are created.\n */\nexport function _addTracingExtensions(): void {\n addTracingExtensions();\n const carrier = getMainCarrier();\n if (carrier.__SENTRY__) {\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (carrier.__SENTRY__.extensions.startTransaction) {\n const originalStartTransaction = carrier.__SENTRY__.extensions.startTransaction as StartTransactionFunction;\n\n /*\n Overwrites the transaction start and finish to start and finish stall tracking.\n Preferably instead of overwriting add a callback method for this in the Transaction itself.\n */\n const _startTransaction = _patchStartTransaction(originalStartTransaction);\n\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n }\n}\n\nexport type StartTransactionFunction = (\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n) => Transaction;\n\n/**\n * Overwrite the startTransaction extension method to start and end stall tracking.\n */\nconst _patchStartTransaction = (originalStartTransaction: StartTransactionFunction): StartTransactionFunction => {\n /**\n * Method to overwrite with\n */\n function _startTransaction(\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n ): Transaction {\n // Native SDKs require op to be set - for JS Relay sets `default`\n if (!transactionContext.op) {\n transactionContext.op = DEFAULT;\n }\n\n const transaction: Transaction = originalStartTransaction.apply(this, [transactionContext, customSamplingContext]);\n const originalStartChild: Transaction['startChild'] = transaction.startChild.bind(transaction);\n transaction.startChild = (\n spanContext?: Pick<SpanContext, Exclude<keyof SpanContext, 'sampled' | 'traceId' | 'parentSpanId'>>,\n ): ReturnType<Transaction['startChild']> => {\n return originalStartChild({\n ...spanContext,\n // Native SDKs require op to be set\n op: spanContext?.op || DEFAULT,\n });\n };\n\n const reactNativeTracing = getCurrentHub().getIntegration(ReactNativeTracing);\n\n if (reactNativeTracing) {\n reactNativeTracing.onTransactionStart(transaction);\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalFinish = transaction.finish;\n\n transaction.finish = (endTimestamp: number | undefined) => {\n if (reactNativeTracing) {\n reactNativeTracing.onTransactionFinish(transaction, endTimestamp);\n }\n\n return originalFinish.apply(transaction, [endTimestamp]);\n };\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalEnd = transaction.end;\n\n transaction.end = (endTimestamp: number | undefined) => {\n if (reactNativeTracing) {\n reactNativeTracing.onTransactionFinish(transaction, endTimestamp);\n }\n\n return originalEnd.apply(transaction, [endTimestamp]);\n };\n }\n\n return transaction;\n }\n\n return _startTransaction;\n};\n"]}
@@ -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.21.0";
3
+ export declare const SDK_VERSION = "5.22.0";
4
4
  //# sourceMappingURL=version.d.ts.map
@@ -1,4 +1,4 @@
1
1
  export const SDK_PACKAGE_NAME = 'npm:@sentry/react-native';
2
2
  export const SDK_NAME = 'sentry.javascript.react-native';
3
- export const SDK_VERSION = '5.21.0';
3
+ export const SDK_VERSION = '5.22.0';
4
4
  //# sourceMappingURL=version.js.map
@@ -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,QAAQ,CAAC","sourcesContent":["export const SDK_PACKAGE_NAME = 'npm:@sentry/react-native';\nexport const SDK_NAME = 'sentry.javascript.react-native';\nexport const SDK_VERSION = '5.21.0';\n"]}
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,QAAQ,CAAC","sourcesContent":["export const SDK_PACKAGE_NAME = 'npm:@sentry/react-native';\nexport const SDK_NAME = 'sentry.javascript.react-native';\nexport const SDK_VERSION = '5.22.0';\n"]}
package/ios/RNSentry.h CHANGED
@@ -33,15 +33,3 @@ SentrySDK (Private)
33
33
  symbolicate: (SymbolicateCallbackType) symbolicate;
34
34
 
35
35
  @end
36
-
37
- @interface SentryCurrentDateProvider : NSObject
38
-
39
- - (NSDate *)date;
40
-
41
- - (dispatch_time_t)dispatchTimeNow;
42
-
43
- - (NSInteger)timezoneOffset;
44
-
45
- - (uint64_t)systemTime;
46
-
47
- @end
package/ios/RNSentry.mm CHANGED
@@ -15,13 +15,14 @@
15
15
  #define SENTRY_TARGET_PROFILING_SUPPORTED 0
16
16
  #endif
17
17
 
18
- #import <Sentry/Sentry.h>
19
18
  #import <Sentry/PrivateSentrySDKOnly.h>
20
19
  #import <Sentry/SentryScreenFrames.h>
21
20
  #import <Sentry/SentryOptions+HybridSDKs.h>
22
21
  #import <Sentry/SentryBinaryImageCache.h>
23
22
  #import <Sentry/SentryDependencyContainer.h>
24
23
  #import <Sentry/SentryFormatter.h>
24
+ #import <Sentry/SentryAppStartMeasurement.h>
25
+ #import "RNSentryId.h"
25
26
 
26
27
  // This guard prevents importing Hermes in JSC apps
27
28
  #if SENTRY_PROFILING_ENABLED
@@ -643,7 +644,7 @@ RCT_EXPORT_SYNCHRONOUS_TYPED_METHOD(NSDictionary *, startProfiling)
643
644
  facebook::hermes::HermesRuntime::enableSamplingProfiler();
644
645
  if (nativeProfileTraceId == nil && nativeProfileStartTime == 0) {
645
646
  #if SENTRY_TARGET_PROFILING_SUPPORTED
646
- nativeProfileTraceId = [[SentryId alloc] init];
647
+ nativeProfileTraceId = [RNSentryId newId];
647
648
  nativeProfileStartTime = [PrivateSentrySDKOnly startProfilerForTrace: nativeProfileTraceId];
648
649
  #endif
649
650
  } else {
@@ -681,7 +682,7 @@ RCT_EXPORT_SYNCHRONOUS_TYPED_METHOD(NSDictionary *, stopProfiling)
681
682
  NSDictionary<NSString *, id> * nativeProfile = nil;
682
683
  if (nativeProfileTraceId != nil && nativeProfileStartTime != 0) {
683
684
  #if SENTRY_TARGET_PROFILING_SUPPORTED
684
- uint64_t nativeProfileStopTime = [[[SentryDependencyContainer sharedInstance] dateProvider] systemTime];
685
+ uint64_t nativeProfileStopTime = clock_gettime_nsec_np(CLOCK_UPTIME_RAW);
685
686
  nativeProfile = [PrivateSentrySDKOnly collectProfileBetween:nativeProfileStartTime and:nativeProfileStopTime forTrace:nativeProfileTraceId];
686
687
  #endif
687
688
  }
@@ -0,0 +1,9 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ @class SentryId;
4
+
5
+ @interface RNSentryId : NSObject
6
+
7
+ + (SentryId *)newId;
8
+
9
+ @end
@@ -0,0 +1,10 @@
1
+ #import "RNSentryId.h"
2
+ @import Sentry;
3
+
4
+ @implementation RNSentryId
5
+
6
+ + (SentryId *)newId {
7
+ return [[SentryId alloc] init];
8
+ }
9
+
10
+ @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.21.0",
5
+ "version": "5.22.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",
@@ -66,22 +66,22 @@
66
66
  "react-native": ">=0.65.0"
67
67
  },
68
68
  "dependencies": {
69
- "@sentry/browser": "7.100.1",
69
+ "@sentry/browser": "7.110.1",
70
70
  "@sentry/cli": "2.30.4",
71
- "@sentry/core": "7.100.1",
72
- "@sentry/hub": "7.100.1",
73
- "@sentry/integrations": "7.100.1",
74
- "@sentry/react": "7.100.1",
75
- "@sentry/types": "7.100.1",
76
- "@sentry/utils": "7.100.1"
71
+ "@sentry/core": "7.110.1",
72
+ "@sentry/hub": "7.110.1",
73
+ "@sentry/integrations": "7.110.1",
74
+ "@sentry/react": "7.110.1",
75
+ "@sentry/types": "7.110.1",
76
+ "@sentry/utils": "7.110.1"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@babel/core": "^7.23.5",
80
80
  "@expo/metro-config": "0.17.5",
81
81
  "@mswjs/interceptors": "^0.25.15",
82
- "@sentry-internal/eslint-config-sdk": "7.100.1",
83
- "@sentry-internal/eslint-plugin-sdk": "7.100.1",
84
- "@sentry-internal/typescript": "7.100.1",
82
+ "@sentry-internal/eslint-config-sdk": "7.110.1",
83
+ "@sentry-internal/eslint-plugin-sdk": "7.110.1",
84
+ "@sentry-internal/typescript": "7.110.1",
85
85
  "@sentry/wizard": "3.16.3",
86
86
  "@types/jest": "^29.5.3",
87
87
  "@types/node": "^20.9.3",
@@ -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.21.0";
3
+ export declare const SDK_VERSION = "5.22.0";
4
4
  //# sourceMappingURL=version.d.ts.map