@dreamhorizonorg/pulse-react-native 0.0.2 → 0.0.4

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.
Files changed (102) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/pulsereactnativeotel/Pulse.kt +6 -0
  3. package/android/src/main/java/com/pulsereactnativeotel/PulseReactNativeOtelModule.kt +45 -24
  4. package/ios/PulseReactNativeOtel.mm +124 -63
  5. package/lib/module/NativePulseReactNativeOtel.js.map +1 -1
  6. package/lib/module/config.js +79 -19
  7. package/lib/module/config.js.map +1 -1
  8. package/lib/module/errorBoundary.js +4 -1
  9. package/lib/module/errorBoundary.js.map +1 -1
  10. package/lib/module/errorHandler.js +5 -1
  11. package/lib/module/errorHandler.js.map +1 -1
  12. package/lib/module/events.js +2 -2
  13. package/lib/module/events.js.map +1 -1
  14. package/lib/module/index.js +2 -1
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/module/navigation/index.js +21 -3
  17. package/lib/module/navigation/index.js.map +1 -1
  18. package/lib/module/navigation/navigation.interface.js +6 -0
  19. package/lib/module/navigation/navigation.interface.js.map +1 -1
  20. package/lib/module/navigation/screen-interactive.js +4 -0
  21. package/lib/module/navigation/screen-interactive.js.map +1 -1
  22. package/lib/module/navigation/screen-load.js +1 -2
  23. package/lib/module/navigation/screen-load.js.map +1 -1
  24. package/lib/module/navigation/useNavigationTracking.js +4 -3
  25. package/lib/module/navigation/useNavigationTracking.js.map +1 -1
  26. package/lib/module/network-interceptor/header-helper.js +24 -0
  27. package/lib/module/network-interceptor/header-helper.js.map +1 -0
  28. package/lib/module/network-interceptor/initialization.js +31 -2
  29. package/lib/module/network-interceptor/initialization.js.map +1 -1
  30. package/lib/module/network-interceptor/request-tracker-xhr.js +74 -5
  31. package/lib/module/network-interceptor/request-tracker-xhr.js.map +1 -1
  32. package/lib/module/network-interceptor/span-helpers.js +15 -3
  33. package/lib/module/network-interceptor/span-helpers.js.map +1 -1
  34. package/lib/module/pulse.constants.js +11 -6
  35. package/lib/module/pulse.constants.js.map +1 -1
  36. package/lib/module/trace.js +16 -10
  37. package/lib/module/trace.js.map +1 -1
  38. package/lib/module/user.js +4 -3
  39. package/lib/module/user.js.map +1 -1
  40. package/lib/typescript/plugin/src/types.d.ts +6 -0
  41. package/lib/typescript/plugin/src/types.d.ts.map +1 -1
  42. package/lib/typescript/plugin/src/utils.d.ts +2 -0
  43. package/lib/typescript/plugin/src/utils.d.ts.map +1 -1
  44. package/lib/typescript/plugin/src/withAndroidPulse.d.ts.map +1 -1
  45. package/lib/typescript/src/NativePulseReactNativeOtel.d.ts +10 -1
  46. package/lib/typescript/src/NativePulseReactNativeOtel.d.ts.map +1 -1
  47. package/lib/typescript/src/config.d.ts +11 -7
  48. package/lib/typescript/src/config.d.ts.map +1 -1
  49. package/lib/typescript/src/errorBoundary.d.ts.map +1 -1
  50. package/lib/typescript/src/errorHandler.d.ts +1 -0
  51. package/lib/typescript/src/errorHandler.d.ts.map +1 -1
  52. package/lib/typescript/src/events.d.ts.map +1 -1
  53. package/lib/typescript/src/index.d.ts +3 -2
  54. package/lib/typescript/src/index.d.ts.map +1 -1
  55. package/lib/typescript/src/navigation/index.d.ts +2 -0
  56. package/lib/typescript/src/navigation/index.d.ts.map +1 -1
  57. package/lib/typescript/src/navigation/navigation.interface.d.ts +1 -0
  58. package/lib/typescript/src/navigation/navigation.interface.d.ts.map +1 -1
  59. package/lib/typescript/src/navigation/screen-interactive.d.ts.map +1 -1
  60. package/lib/typescript/src/navigation/screen-load.d.ts.map +1 -1
  61. package/lib/typescript/src/navigation/useNavigationTracking.d.ts +1 -1
  62. package/lib/typescript/src/navigation/useNavigationTracking.d.ts.map +1 -1
  63. package/lib/typescript/src/network-interceptor/header-helper.d.ts +15 -0
  64. package/lib/typescript/src/network-interceptor/header-helper.d.ts.map +1 -0
  65. package/lib/typescript/src/network-interceptor/initialization.d.ts +5 -1
  66. package/lib/typescript/src/network-interceptor/initialization.d.ts.map +1 -1
  67. package/lib/typescript/src/network-interceptor/network.interface.d.ts +3 -0
  68. package/lib/typescript/src/network-interceptor/network.interface.d.ts.map +1 -1
  69. package/lib/typescript/src/network-interceptor/request-tracker-xhr.d.ts +5 -1
  70. package/lib/typescript/src/network-interceptor/request-tracker-xhr.d.ts.map +1 -1
  71. package/lib/typescript/src/network-interceptor/span-helpers.d.ts.map +1 -1
  72. package/lib/typescript/src/pulse.constants.d.ts +13 -5
  73. package/lib/typescript/src/pulse.constants.d.ts.map +1 -1
  74. package/lib/typescript/src/pulse.interface.d.ts +1 -1
  75. package/lib/typescript/src/pulse.interface.d.ts.map +1 -1
  76. package/lib/typescript/src/trace.d.ts.map +1 -1
  77. package/lib/typescript/src/user.d.ts.map +1 -1
  78. package/package.json +1 -1
  79. package/plugin/build/types.d.ts +6 -0
  80. package/plugin/build/utils.d.ts +2 -0
  81. package/plugin/build/utils.js +6 -2
  82. package/plugin/build/withAndroidPulse.js +3 -1
  83. package/src/NativePulseReactNativeOtel.ts +11 -1
  84. package/src/config.ts +120 -28
  85. package/src/errorBoundary.tsx +4 -1
  86. package/src/errorHandler.ts +6 -1
  87. package/src/events.ts +6 -2
  88. package/src/index.tsx +3 -2
  89. package/src/navigation/index.ts +49 -7
  90. package/src/navigation/navigation.interface.ts +7 -0
  91. package/src/navigation/screen-interactive.ts +4 -0
  92. package/src/navigation/screen-load.ts +1 -7
  93. package/src/navigation/useNavigationTracking.ts +13 -4
  94. package/src/network-interceptor/header-helper.ts +26 -0
  95. package/src/network-interceptor/initialization.ts +36 -2
  96. package/src/network-interceptor/network.interface.ts +3 -0
  97. package/src/network-interceptor/request-tracker-xhr.ts +106 -5
  98. package/src/network-interceptor/span-helpers.ts +23 -3
  99. package/src/pulse.constants.ts +19 -5
  100. package/src/pulse.interface.ts +1 -1
  101. package/src/trace.ts +17 -10
  102. package/src/user.ts +4 -3
@@ -77,7 +77,7 @@ repositories {
77
77
  google()
78
78
  }
79
79
 
80
- def pulse_version = "0.0.2-alpha"
80
+ def pulse_version = "0.0.4-alpha"
81
81
  dependencies {
82
82
  implementation("com.facebook.react:react-android")
83
83
 
@@ -23,10 +23,13 @@ public object Pulse : PulseSDK by PulseSDK.INSTANCE {
23
23
  public override fun initialize(
24
24
  application: Application,
25
25
  endpointBaseUrl: String,
26
+ tenantId: String,
26
27
  endpointHeaders: Map<String, String>,
27
28
  spanEndpointConnectivity: EndpointConnectivity,
28
29
  logEndpointConnectivity: EndpointConnectivity,
29
30
  metricEndpointConnectivity: EndpointConnectivity,
31
+ customEventConnectivity: EndpointConnectivity,
32
+ configEndpointUrl: String?,
30
33
  resource: (ResourceBuilder.() -> Unit)?,
31
34
  sessionConfig: SessionConfig,
32
35
  globalAttributes: (() -> Attributes)?,
@@ -70,10 +73,13 @@ public object Pulse : PulseSDK by PulseSDK.INSTANCE {
70
73
  PulseSDK.INSTANCE.initialize(
71
74
  application = application,
72
75
  endpointBaseUrl = endpointBaseUrl,
76
+ tenantId = tenantId,
73
77
  endpointHeaders = endpointHeaders,
74
78
  spanEndpointConnectivity = spanEndpointConnectivity,
75
79
  logEndpointConnectivity = logEndpointConnectivity,
76
80
  metricEndpointConnectivity = metricEndpointConnectivity,
81
+ customEventConnectivity = customEventConnectivity,
82
+ configEndpointUrl = configEndpointUrl,
77
83
  resource = rnResource,
78
84
  sessionConfig = sessionConfig,
79
85
  globalAttributes = globalAttributes,
@@ -89,6 +89,11 @@ internal class PulseReactNativeOtelModule(reactContext: ReactApplicationContext)
89
89
  }
90
90
  }
91
91
 
92
+ override fun shutdown(): Boolean {
93
+ PulseSDK.INSTANCE.shutdown()
94
+ return true
95
+ }
96
+
92
97
  override fun triggerAnr() {
93
98
  Handler(Looper.getMainLooper()).postAtFrontOfQueue {
94
99
  Log.d("[Pulse]", "Now running PostAtFrontQueue: ${Thread.currentThread().name}")
@@ -96,36 +101,52 @@ internal class PulseReactNativeOtelModule(reactContext: ReactApplicationContext)
96
101
  }
97
102
  }
98
103
 
99
- override fun getAllFeatures(): WritableMap {
100
- val features = Arguments.createMap()
104
+ override fun getAllFeatures(): WritableMap? {
105
+ val context = reactApplicationContext
106
+ val sharedPrefs = context.getSharedPreferences(
107
+ "pulse_sdk_config",
108
+ Context.MODE_PRIVATE
109
+ )
101
110
 
102
- val context = reactApplicationContext
103
- val sharedPrefs = context.getSharedPreferences(
104
- "pulse_sdk_config",
105
- Context.MODE_PRIVATE
106
- )
107
-
108
- val configJson = sharedPrefs.getString("sdk_config", null)
109
- if (configJson != null) {
110
- val json = Json {
111
- ignoreUnknownKeys = true
112
- isLenient = true
113
- }
114
- val config = json.decodeFromString<PulseSdkConfig>(configJson)
111
+ val configJson = sharedPrefs.getString("sdk_config", null)
112
+ if (configJson == null) {
113
+ return null
114
+ }
115
115
 
116
- config.features.forEach { featureConfig ->
117
- if (PulseSdkName.ANDROID_RN in featureConfig.sdks) {
118
- if (featureConfig.featureName == PulseFeatureName.UNKNOWN) {
119
- return@forEach
120
- }
116
+ val json = Json {
117
+ ignoreUnknownKeys = true
118
+ isLenient = true
119
+ }
120
+ val config = json.decodeFromString<PulseSdkConfig>(configJson)
121
121
 
122
- val featureNameStr = featureConfig.featureName.name.lowercase()
123
- val isEnabled = featureConfig.sessionSampleRate > 0F
122
+ val features = Arguments.createMap()
123
+ val featureMap = mutableMapOf<String, Boolean>()
124
124
 
125
- features.putBoolean(featureNameStr, isEnabled)
126
- }
125
+ config.features.forEach { featureConfig ->
126
+ if (PulseSdkName.ANDROID_RN in featureConfig.sdks) {
127
+ if (featureConfig.featureName == PulseFeatureName.UNKNOWN) {
128
+ return@forEach
127
129
  }
130
+
131
+ val featureNameStr = featureConfig.featureName.name.lowercase()
132
+ val isEnabled = featureConfig.sessionSampleRate > 0F
133
+ featureMap[featureNameStr] = isEnabled
128
134
  }
135
+ }
136
+
137
+ val requiredFeatures = listOf(
138
+ "rn_screen_load",
139
+ "screen_session",
140
+ "rn_screen_interactive",
141
+ "network_instrumentation",
142
+ "custom_events",
143
+ "js_crash"
144
+ )
145
+
146
+ requiredFeatures.forEach { featureName ->
147
+ features.putBoolean(featureName, featureMap[featureName] ?: false)
148
+ }
149
+
129
150
  return features
130
151
  }
131
152
 
@@ -21,86 +21,147 @@ RCT_EXPORT_MODULE()
21
21
  return self;
22
22
  }
23
23
 
24
- // Check if native SDK is initialized (always false on iOS)
25
- - (NSNumber *)isInitialized
26
- {
27
- return @NO;
28
- }
24
+ #pragma mark - Shared implementation
29
25
 
30
- // Track event (no-op)
31
- - (NSNumber *)trackEvent:(NSString *)event
32
- observedTimeMs:(double)observedTimeMs
33
- properties:(NSDictionary *)properties
34
- {
35
- return @NO;
36
- }
26
+ - (NSNumber *)doIsInitialized { return @NO; }
37
27
 
38
- - (NSString *)startSpan:(NSString *)name
39
- attributes:(NSDictionary *)attributes
40
- inheritContext:(NSNumber *)inheritContext
41
- {
42
- return [NSString stringWithFormat:@"noop-ios-%@", [[NSUUID UUID] UUIDString]];
43
- }
28
+ - (NSNumber *)doTrackEvent:(NSString *)event observedTimeMs:(double)observedTimeMs properties:(NSDictionary *)properties
29
+ { return @NO; }
44
30
 
45
- // End span (no-op)
46
- - (NSNumber *)endSpan:(NSString *)spanId
47
- {
48
- return @NO;
49
- }
31
+ - (NSString *)doStartSpan:(NSString *)name inheritContext:(NSNumber *)inheritContext attributes:(NSDictionary *)attributes
32
+ { return [NSString stringWithFormat:@"noop-ios-%@", [[NSUUID UUID] UUIDString]]; }
50
33
 
51
- // Add span event (no-op)
52
- - (NSNumber *)addSpanEvent:(NSString *)spanId
53
- name:(NSString *)name
54
- attributes:(NSDictionary *)attributes
55
- {
56
- return @NO;
57
- }
34
+ - (NSNumber *)doEndSpan:(NSString *)spanId statusCode:(NSString *)statusCode
35
+ { return @NO; }
58
36
 
59
- // Set span attributes (no-op)
60
- - (NSNumber *)setSpanAttributes:(NSString *)spanId
61
- attributes:(NSDictionary *)attributes
62
- {
63
- return @NO;
64
- }
37
+ - (NSNumber *)doAddSpanEvent:(NSString *)spanId name:(NSString *)name attributes:(NSDictionary *)attributes
38
+ { return @NO; }
65
39
 
66
- // Record span exception (no-op)
67
- - (NSNumber *)recordSpanException:(NSString *)spanId
68
- errorMessage:(NSString *)errorMessage
69
- stackTrace:(NSString *)stackTrace
70
- {
71
- return @NO;
72
- }
40
+ - (NSNumber *)doSetSpanAttributes:(NSString *)spanId attributes:(NSDictionary *)attributes
41
+ { return @NO; }
73
42
 
74
- // Discard span (no-op on iOS)
75
- - (NSNumber *)discardSpan:(NSString *)spanId
76
- {
77
- return @NO;
78
- }
43
+ - (NSNumber *)doRecordSpanException:(NSString *)spanId errorMessage:(NSString *)errorMessage stackTrace:(NSString *)stackTrace
44
+ { return @NO; }
79
45
 
80
- - (nonnull NSNumber *)reportException:(nonnull NSString *)errorMessage observedTimeMs:(double)observedTimeMs stackTrace:(nonnull NSString *)stackTrace isFatal:(BOOL)isFatal errorType:(nonnull NSString *)errorType attributes:(nonnull NSDictionary *)attributes {
81
- return @NO;
82
- }
46
+ - (NSNumber *)doReportException:(NSString *)errorMessage observedTimeMs:(double)observedTimeMs stackTrace:(NSString *)stackTrace isFatal:(BOOL)isFatal errorType:(NSString *)errorType attributes:(NSDictionary *)attributes
47
+ { return @NO; }
83
48
 
49
+ - (NSNumber *)doDiscardSpan:(NSString *)spanId { return @NO; }
84
50
 
85
- - (void)setUserId:(NSString * _Nullable)id {
86
- // No op
87
- }
51
+ - (void)doSetUserId:(NSString *)id { }
88
52
 
53
+ - (void)doSetUserProperties:(NSDictionary *)properties { }
89
54
 
90
- - (void)setUserProperties:(nonnull NSDictionary *)properties {
91
- // No op
92
- }
55
+ - (void)doSetUserProperty:(NSString *)name value:(NSString *)value { }
93
56
 
57
+ - (void)doTriggerAnr { }
94
58
 
95
- - (void)setUserProperty:(nonnull NSString *)name value:(NSString * _Nullable)value {
96
- // No op
97
- }
59
+ - (NSNumber *)doSetCurrentScreenName:(NSString *)screenName { return @NO; }
60
+
61
+ - (NSDictionary *)doGetAllFeatures { return nil; }
62
+
63
+ - (NSNumber *)doShutdown { return @YES; }
64
+
65
+ #pragma mark - New Architecture
66
+
67
+ #if RCT_NEW_ARCH_ENABLED
68
+
69
+ - (NSNumber *)isInitialized { return [self doIsInitialized]; }
70
+
71
+ - (NSNumber *)trackEvent:(NSString *)event observedTimeMs:(double)observedTimeMs properties:(NSDictionary *)properties
72
+ { return [self doTrackEvent:event observedTimeMs:observedTimeMs properties:properties]; }
73
+
74
+ - (NSString *)startSpan:(NSString *)name inheritContext:(NSNumber *)inheritContext attributes:(NSDictionary *)attributes
75
+ { return [self doStartSpan:name inheritContext:inheritContext attributes:attributes]; }
76
+
77
+ - (NSNumber *)endSpan:(NSString *)spanId statusCode:(NSString *)statusCode
78
+ { return [self doEndSpan:spanId statusCode:statusCode]; }
79
+
80
+ - (NSNumber *)addSpanEvent:(NSString *)spanId name:(NSString *)name attributes:(NSDictionary *)attributes
81
+ { return [self doAddSpanEvent:spanId name:name attributes:attributes]; }
98
82
 
83
+ - (NSNumber *)setSpanAttributes:(NSString *)spanId attributes:(NSDictionary *)attributes
84
+ { return [self doSetSpanAttributes:spanId attributes:attributes]; }
99
85
 
100
- - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
101
- (const facebook::react::ObjCTurboModule::InitParams &)params
86
+ - (NSNumber *)recordSpanException:(NSString *)spanId errorMessage:(NSString *)errorMessage stackTrace:(NSString *)stackTrace
87
+ { return [self doRecordSpanException:spanId errorMessage:errorMessage stackTrace:stackTrace]; }
88
+
89
+ - (NSNumber *)reportException:(NSString *)errorMessage observedTimeMs:(double)observedTimeMs stackTrace:(NSString *)stackTrace isFatal:(BOOL)isFatal errorType:(NSString *)errorType attributes:(NSDictionary *)attributes
90
+ { return [self doReportException:errorMessage observedTimeMs:observedTimeMs stackTrace:stackTrace isFatal:isFatal errorType:errorType attributes:attributes]; }
91
+
92
+ - (NSNumber *)discardSpan:(NSString *)spanId { return [self doDiscardSpan:spanId]; }
93
+
94
+ - (void)setUserId:(NSString *)id { [self doSetUserId:id]; }
95
+
96
+ - (void)setUserProperties:(NSDictionary *)properties { [self doSetUserProperties:properties]; }
97
+
98
+ - (void)setUserProperty:(NSString *)name value:(NSString *)value { [self doSetUserProperty:name value:value]; }
99
+
100
+ - (void)triggerAnr { [self doTriggerAnr]; }
101
+
102
+ - (NSNumber *)setCurrentScreenName:(NSString *)screenName { return [self doSetCurrentScreenName:screenName]; }
103
+
104
+ - (NSDictionary *)getAllFeatures { return [self doGetAllFeatures]; }
105
+
106
+ - (NSNumber *)shutdown { return [self doShutdown]; }
107
+
108
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params
102
109
  {
103
- return std::make_shared<facebook::react::NativePulseReactNativeOtelSpecJSI>(params);
110
+ return std::make_shared<facebook::react::NativePulseReactNativeOtelSpecJSI>(params);
104
111
  }
105
112
 
113
+ #pragma mark - Old Architecture
114
+
115
+ #else
116
+
117
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(isInitialized)
118
+ { return [self doIsInitialized]; }
119
+
120
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(trackEvent:(NSString *)event observedTimeMs:(double)observedTimeMs properties:(NSDictionary *)properties)
121
+ { return [self doTrackEvent:event observedTimeMs:observedTimeMs properties:properties]; }
122
+
123
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(startSpan:(NSString *)name inheritContext:(NSNumber *)inheritContext attributes:(NSDictionary *)attributes)
124
+ { return [self doStartSpan:name inheritContext:inheritContext attributes:attributes]; }
125
+
126
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(endSpan:(NSString *)spanId statusCode:(NSString *)statusCode)
127
+ { return [self doEndSpan:spanId statusCode:statusCode]; }
128
+
129
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(addSpanEvent:(NSString *)spanId name:(NSString *)name attributes:(NSDictionary *)attributes)
130
+ { return [self doAddSpanEvent:spanId name:name attributes:attributes]; }
131
+
132
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(setSpanAttributes:(NSString *)spanId attributes:(NSDictionary *)attributes)
133
+ { return [self doSetSpanAttributes:spanId attributes:attributes]; }
134
+
135
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(recordSpanException:(NSString *)spanId errorMessage:(NSString *)errorMessage stackTrace:(NSString *)stackTrace)
136
+ { return [self doRecordSpanException:spanId errorMessage:errorMessage stackTrace:stackTrace]; }
137
+
138
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(reportException:(NSString *)errorMessage observedTimeMs:(double)observedTimeMs stackTrace:(NSString *)stackTrace isFatal:(BOOL)isFatal errorType:(NSString *)errorType attributes:(NSDictionary *)attributes)
139
+ { return [self doReportException:errorMessage observedTimeMs:observedTimeMs stackTrace:stackTrace isFatal:isFatal errorType:errorType attributes:attributes]; }
140
+
141
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(discardSpan:(NSString *)spanId)
142
+ { return [self doDiscardSpan:spanId]; }
143
+
144
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(setCurrentScreenName:(NSString *)screenName)
145
+ { return [self doSetCurrentScreenName:screenName]; }
146
+
147
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getAllFeatures)
148
+ { return [self doGetAllFeatures]; }
149
+
150
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(shutdown)
151
+ { return [self doShutdown]; }
152
+
153
+ RCT_EXPORT_METHOD(setUserId:(NSString *)id)
154
+ { [self doSetUserId:id]; }
155
+
156
+ RCT_EXPORT_METHOD(setUserProperties:(NSDictionary *)properties)
157
+ { [self doSetUserProperties:properties]; }
158
+
159
+ RCT_EXPORT_METHOD(setUserProperty:(NSString *)name value:(NSString *)value)
160
+ { [self doSetUserProperty:name value:value]; }
161
+
162
+ RCT_EXPORT_METHOD(triggerAnr)
163
+ { [self doTriggerAnr]; }
164
+
165
+ #endif
166
+
106
167
  @end
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativePulseReactNativeOtel.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAiEpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,sBAAsB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativePulseReactNativeOtel.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AA2EpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,sBAAsB,CAAC","ignoreList":[]}
@@ -1,32 +1,50 @@
1
1
  "use strict";
2
2
 
3
- import { setupErrorHandler } from "./errorHandler.js";
3
+ import { setupErrorHandler, uninstallErrorHandler } from "./errorHandler.js";
4
4
  import { isSupportedPlatform } from "./initialization.js";
5
- import { createReactNavigationIntegration } from "./navigation/index.js";
6
- import { initializeNetworkInterceptor } from "./network-interceptor/initialization.js";
5
+ import { createReactNavigationIntegration, uninstallNavigationIntegration } from "./navigation/index.js";
6
+ import { initializeNetworkInterceptor, uninstallNetworkInterceptor } from "./network-interceptor/initialization.js";
7
7
  import PulseReactNativeOtel from "./NativePulseReactNativeOtel.js";
8
+ import { PULSE_FEATURE_NAMES } from "./pulse.constants.js";
8
9
  const defaultConfig = {
9
10
  autoDetectExceptions: true,
10
11
  autoDetectNavigation: true,
11
- autoDetectNetwork: true
12
+ autoDetectNetwork: true,
13
+ networkHeaders: {
14
+ requestHeaders: [],
15
+ responseHeaders: []
16
+ }
12
17
  };
13
18
  let currentConfig = {
14
19
  ...defaultConfig
15
20
  };
16
21
 
22
+ /** After shutdown, start() and initialize are no-ops; re-initialization is not supported. */
23
+ let isShutdown = false;
24
+
25
+ /** True only after start() has been called at least once. Integrations (e.g. navigation) are no-ops until then. */
26
+ let isStarted = false;
27
+
17
28
  // Cache for features from remote SDK config
18
- let cachedFeatures = null;
29
+ let cachedFeatures;
30
+ export function getIsShutdown() {
31
+ return isShutdown;
32
+ }
33
+
34
+ /** True only after start() has been called at least once. Public APIs (trackEvent, reportException, startSpan, etc.) no-op until then. */
35
+ export function getIsStarted() {
36
+ return isStarted;
37
+ }
19
38
 
20
39
  /**
21
40
  * Gets all features from the remote SDK config.
22
- * @returns Record of feature names to their enabled status
41
+ * @returns Record of feature names to their enabled status, or null if config not available or start() not called
23
42
  */
24
43
  export function getFeaturesFromRemoteConfig() {
25
- if (cachedFeatures !== null) {
44
+ if (cachedFeatures !== undefined) {
26
45
  return cachedFeatures;
27
46
  }
28
- const features = PulseReactNativeOtel.getAllFeatures();
29
- cachedFeatures = features;
47
+ cachedFeatures = PulseReactNativeOtel.getAllFeatures();
30
48
  return cachedFeatures;
31
49
  }
32
50
  function configure(config) {
@@ -36,22 +54,52 @@ function configure(config) {
36
54
  };
37
55
  setupErrorHandler(currentConfig.autoDetectExceptions ?? true);
38
56
  if (currentConfig.autoDetectNetwork) {
39
- initializeNetworkInterceptor();
57
+ initializeNetworkInterceptor(currentConfig.networkHeaders ?? {
58
+ requestHeaders: [],
59
+ responseHeaders: []
60
+ });
40
61
  }
41
62
  }
63
+ function resolveFeatureState(features, featureName, optionValue) {
64
+ if (features !== undefined && features !== null) return features[featureName] ?? optionValue;
65
+ return optionValue;
66
+ }
67
+ function resolveNavigationState(features, optionValue) {
68
+ if (features !== undefined && features !== null) {
69
+ const hasAny = features[PULSE_FEATURE_NAMES.SCREEN_SESSION] === true || features[PULSE_FEATURE_NAMES.RN_SCREEN_LOAD] === true || features[PULSE_FEATURE_NAMES.RN_SCREEN_INTERACTIVE] === true;
70
+ return hasAny ?? optionValue;
71
+ }
72
+ return optionValue;
73
+ }
42
74
  export function start(options) {
43
- if (!isSupportedPlatform()) {
75
+ if (!isSupportedPlatform()) return;
76
+ if (isShutdown) {
77
+ console.log('[Pulse] SDK has been shut down. Pulse.start() is a no-op; re-initialization is not supported.');
44
78
  return;
45
79
  }
80
+ isStarted = true;
46
81
  const features = getFeaturesFromRemoteConfig();
47
- const autoDetectExceptions = features?.js_crash ?? options?.autoDetectExceptions ?? true;
48
- const autoDetectNavigation = features?.rn_navigation ?? options?.autoDetectNavigation ?? true;
49
- const autoDetectNetwork = features?.network_instrumentation ?? options?.autoDetectNetwork ?? true;
50
- configure({
51
- autoDetectExceptions,
52
- autoDetectNavigation,
53
- autoDetectNetwork
54
- });
82
+ const config = {
83
+ autoDetectExceptions: resolveFeatureState(features, PULSE_FEATURE_NAMES.JS_CRASH, options?.autoDetectExceptions ?? defaultConfig.autoDetectExceptions),
84
+ autoDetectNavigation: resolveNavigationState(features, options?.autoDetectNavigation ?? defaultConfig.autoDetectNavigation),
85
+ autoDetectNetwork: resolveFeatureState(features, PULSE_FEATURE_NAMES.NETWORK_INSTRUMENTATION, options?.autoDetectNetwork ?? defaultConfig.autoDetectNetwork),
86
+ networkHeaders: options?.networkHeaders ?? {
87
+ requestHeaders: [],
88
+ responseHeaders: []
89
+ }
90
+ };
91
+ configure(config);
92
+ }
93
+ export function shutdown() {
94
+ if (isShutdown) {
95
+ console.warn('[Pulse] SDK already shut down.');
96
+ return;
97
+ }
98
+ uninstallErrorHandler();
99
+ uninstallNetworkInterceptor();
100
+ uninstallNavigationIntegration();
101
+ PulseReactNativeOtel.shutdown();
102
+ isShutdown = true;
55
103
  }
56
104
  export function createNavigationIntegrationWithConfig(options) {
57
105
  if (!isSupportedPlatform()) {
@@ -60,6 +108,18 @@ export function createNavigationIntegrationWithConfig(options) {
60
108
  markContentReady: () => {}
61
109
  };
62
110
  }
111
+ if (!isStarted) {
112
+ return {
113
+ registerNavigationContainer: _ => () => {},
114
+ markContentReady: () => {}
115
+ };
116
+ }
117
+ if (isShutdown) {
118
+ return {
119
+ registerNavigationContainer: _ => () => {},
120
+ markContentReady: () => {}
121
+ };
122
+ }
63
123
  if (!currentConfig.autoDetectNavigation) {
64
124
  console.warn('[Pulse Navigation] auto-detection disabled via Pulse.start; createNavigationIntegration() returning no-op.');
65
125
  const noop = {
@@ -1 +1 @@
1
- {"version":3,"names":["setupErrorHandler","isSupportedPlatform","createReactNavigationIntegration","initializeNetworkInterceptor","PulseReactNativeOtel","defaultConfig","autoDetectExceptions","autoDetectNavigation","autoDetectNetwork","currentConfig","cachedFeatures","getFeaturesFromRemoteConfig","features","getAllFeatures","configure","config","start","options","js_crash","rn_navigation","network_instrumentation","createNavigationIntegrationWithConfig","registerNavigationContainer","_","markContentReady","console","warn","noop"],"sourceRoot":"../../src","sources":["config.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,mBAAgB;AAClD,SAASC,mBAAmB,QAAQ,qBAAkB;AACtD,SACEC,gCAAgC,QAG3B,uBAAc;AACrB,SAASC,4BAA4B,QAAQ,yCAAsC;AACnF,OAAOC,oBAAoB,MAAM,iCAA8B;AAe/D,MAAMC,aAA0B,GAAG;EACjCC,oBAAoB,EAAE,IAAI;EAC1BC,oBAAoB,EAAE,IAAI;EAC1BC,iBAAiB,EAAE;AACrB,CAAC;AAED,IAAIC,aAA0B,GAAG;EAAE,GAAGJ;AAAc,CAAC;;AAErD;AACA,IAAIK,cAAkC,GAAG,IAAI;;AAE7C;AACA;AACA;AACA;AACA,OAAO,SAASC,2BAA2BA,CAAA,EAAuB;EAChE,IAAID,cAAc,KAAK,IAAI,EAAE;IAC3B,OAAOA,cAAc;EACvB;EAEA,MAAME,QAAQ,GAAGR,oBAAoB,CAACS,cAAc,CAAC,CAAC;EACtDH,cAAc,GAAGE,QAA8B;EAC/C,OAAOF,cAAc;AACvB;AAEA,SAASI,SAASA,CAACC,MAAmB,EAAQ;EAC5CN,aAAa,GAAG;IACd,GAAGA,aAAa;IAChB,GAAGM;EACL,CAAC;EACDf,iBAAiB,CAACS,aAAa,CAACH,oBAAoB,IAAI,IAAI,CAAC;EAE7D,IAAIG,aAAa,CAACD,iBAAiB,EAAE;IACnCL,4BAA4B,CAAC,CAAC;EAChC;AACF;AAEA,OAAO,SAASa,KAAKA,CAACC,OAA2B,EAAQ;EACvD,IAAI,CAAChB,mBAAmB,CAAC,CAAC,EAAE;IAC1B;EACF;EACA,MAAMW,QAAQ,GAAGD,2BAA2B,CAAC,CAAC;EAC9C,MAAML,oBAAoB,GACxBM,QAAQ,EAAEM,QAAQ,IAAID,OAAO,EAAEX,oBAAoB,IAAI,IAAI;EAC7D,MAAMC,oBAAoB,GACxBK,QAAQ,EAAEO,aAAa,IAAIF,OAAO,EAAEV,oBAAoB,IAAI,IAAI;EAClE,MAAMC,iBAAiB,GACrBI,QAAQ,EAAEQ,uBAAuB,IAAIH,OAAO,EAAET,iBAAiB,IAAI,IAAI;EAEzEM,SAAS,CAAC;IACRR,oBAAoB;IACpBC,oBAAoB;IACpBC;EACF,CAAC,CAAC;AACJ;AAEA,OAAO,SAASa,qCAAqCA,CACnDJ,OAAsC,EACV;EAC5B,IAAI,CAAChB,mBAAmB,CAAC,CAAC,EAAE;IAC1B,OAAO;MACLqB,2BAA2B,EAAGC,CAAU,IAAK,MAAM,CAAC,CAAC;MACrDC,gBAAgB,EAAEA,CAAA,KAAM,CAAC;IAC3B,CAAC;EACH;EACA,IAAI,CAACf,aAAa,CAACF,oBAAoB,EAAE;IACvCkB,OAAO,CAACC,IAAI,CACV,4GACF,CAAC;IACD,MAAMC,IAAgC,GAAG;MACvCL,2BAA2B,EAAGC,CAAU,IAAK,MAAM;QACjDE,OAAO,CAACC,IAAI,CACV,4GACF,CAAC;MACH,CAAC;MACDF,gBAAgB,EAAEA,CAAA,KAAM,CAAC;IAC3B,CAAC;IACD,OAAOG,IAAI;EACb;EACA,OAAOzB,gCAAgC,CAACe,OAAO,CAAC;AAClD","ignoreList":[]}
1
+ {"version":3,"names":["setupErrorHandler","uninstallErrorHandler","isSupportedPlatform","createReactNavigationIntegration","uninstallNavigationIntegration","initializeNetworkInterceptor","uninstallNetworkInterceptor","PulseReactNativeOtel","PULSE_FEATURE_NAMES","defaultConfig","autoDetectExceptions","autoDetectNavigation","autoDetectNetwork","networkHeaders","requestHeaders","responseHeaders","currentConfig","isShutdown","isStarted","cachedFeatures","getIsShutdown","getIsStarted","getFeaturesFromRemoteConfig","undefined","getAllFeatures","configure","config","resolveFeatureState","features","featureName","optionValue","resolveNavigationState","hasAny","SCREEN_SESSION","RN_SCREEN_LOAD","RN_SCREEN_INTERACTIVE","start","options","console","log","JS_CRASH","NETWORK_INSTRUMENTATION","shutdown","warn","createNavigationIntegrationWithConfig","registerNavigationContainer","_","markContentReady","noop"],"sourceRoot":"../../src","sources":["config.ts"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { Pulse } from "./index.js";
5
+ import { getIsShutdown } from "./config.js";
5
6
  import { jsx as _jsx } from "react/jsx-runtime";
6
7
  export const UNKNOWN_COMPONENT = 'unknown';
7
8
  const COMPONENT_STACK_UNAVAILABLE = '<component stack unavailable>';
@@ -20,7 +21,9 @@ export class ErrorBoundary extends React.Component {
20
21
  // Error is handled if a fallback is provided, otherwise it's unhandled (fatal)
21
22
  const handled = !!this.props.fallback;
22
23
  const errorToReport = error instanceof Error ? error : new Error(String(error));
23
- Pulse.reportException(errorToReport, !handled);
24
+ if (!getIsShutdown()) {
25
+ Pulse.reportException(errorToReport, !handled);
26
+ }
24
27
  if (onError) {
25
28
  onError(error, componentStack);
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","Pulse","jsx","_jsx","UNKNOWN_COMPONENT","COMPONENT_STACK_UNAVAILABLE","INITIAL_STATE","componentStack","error","ErrorBoundary","Component","state","componentDidCatch","errorInfo","onError","props","handled","fallback","errorToReport","Error","String","reportException","setState","render","children","element","createElement","isValidElement","withErrorBoundary","WrappedComponent","errorBoundaryOptions","componentDisplayName","displayName","name","Wrapped","memo"],"sourceRoot":"../../src","sources":["errorBoundary.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,KAAK,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhC,OAAO,MAAMC,iBAAiB,GAAG,SAAS;AAC1C,MAAMC,2BAA2B,GAAG,+BAA+B;AAuBnE,MAAMC,aAAiC,GAAG;EACxCC,cAAc,EAAE,IAAI;EACpBC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAMC,aAAa,SAAST,KAAK,CAACU,SAAS,CAGhD;EACOC,KAAK,GAAuBL,aAAa;EAEzCM,iBAAiBA,CAACJ,KAAc,EAAEK,SAA0B,EAAQ;IACzE,MAAMN,cAAc,GAClBM,SAAS,CAACN,cAAc,IAAIF,2BAA2B;IACzD,MAAM;MAAES;IAAQ,CAAC,GAAG,IAAI,CAACC,KAAK;;IAE9B;IACA,MAAMC,OAAO,GAAG,CAAC,CAAC,IAAI,CAACD,KAAK,CAACE,QAAQ;IAErC,MAAMC,aAAa,GACjBV,KAAK,YAAYW,KAAK,GAAGX,KAAK,GAAG,IAAIW,KAAK,CAACC,MAAM,CAACZ,KAAK,CAAC,CAAC;IAC3DP,KAAK,CAACoB,eAAe,CAACH,aAAa,EAAE,CAACF,OAAO,CAAC;IAE9C,IAAIF,OAAO,EAAE;MACXA,OAAO,CAACN,KAAK,EAAED,cAAc,CAAC;IAChC;IAEA,IAAI,CAACe,QAAQ,CAAC;MAAEd,KAAK;MAAED;IAAe,CAAC,CAAC;EAC1C;EAEOgB,MAAMA,CAAA,EAAoB;IAC/B,MAAM;MAAEN,QAAQ;MAAEO;IAAS,CAAC,GAAG,IAAI,CAACT,KAAK;IACzC,MAAMJ,KAAK,GAAG,IAAI,CAACA,KAAK;IAExB,IAAIA,KAAK,CAACJ,cAAc,KAAK,IAAI,EAAE;MACjC,OAAO,OAAOiB,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAAC,CAAC,GAAGA,QAAQ;IAC/D;IAEA,MAAMC,OAAO,GACX,OAAOR,QAAQ,KAAK,UAAU,gBAC1BjB,KAAK,CAAC0B,aAAa,CAACT,QAAQ,EAAE;MAC5BT,KAAK,EAAEG,KAAK,CAACH,KAAK;MAClBD,cAAc,EAAEI,KAAK,CAACJ;IACxB,CAAC,CAAC,GACFU,QAAQ;IAEd,iBAAIjB,KAAK,CAAC2B,cAAc,CAACF,OAAO,CAAC,EAAE;MACjC,OAAOA,OAAO;IAChB;IAEA,OAAO,IAAI;EACb;AACF;AAEA,OAAO,SAASG,iBAAiBA,CAC/BC,gBAAwC,EACxCC,oBAAwC,EAC3B;EACb,MAAMC,oBAAoB,GACxBF,gBAAgB,CAACG,WAAW,IAAIH,gBAAgB,CAACI,IAAI,IAAI7B,iBAAiB;EAE5E,MAAM8B,OAAO,gBAAGlC,KAAK,CAACmC,IAAI,CAAEpB,KAAQ,iBAClCZ,IAAA,CAACM,aAAa;IAAA,GAAKqB,oBAAoB;IAAAN,QAAA,eACrCrB,IAAA,CAAC0B,gBAAgB;MAAA,GAAKd;IAAK,CAAG;EAAC,CAClB,CAChB,CAA2B;EAE5BmB,OAAO,CAACF,WAAW,GAAG,iBAAiBD,oBAAoB,GAAG;EAE9D,OAAOG,OAAO;AAChB","ignoreList":[]}
1
+ {"version":3,"names":["React","Pulse","getIsShutdown","jsx","_jsx","UNKNOWN_COMPONENT","COMPONENT_STACK_UNAVAILABLE","INITIAL_STATE","componentStack","error","ErrorBoundary","Component","state","componentDidCatch","errorInfo","onError","props","handled","fallback","errorToReport","Error","String","reportException","setState","render","children","element","createElement","isValidElement","withErrorBoundary","WrappedComponent","errorBoundaryOptions","componentDisplayName","displayName","name","Wrapped","memo"],"sourceRoot":"../../src","sources":["errorBoundary.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,aAAa,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzC,OAAO,MAAMC,iBAAiB,GAAG,SAAS;AAC1C,MAAMC,2BAA2B,GAAG,+BAA+B;AAuBnE,MAAMC,aAAiC,GAAG;EACxCC,cAAc,EAAE,IAAI;EACpBC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAMC,aAAa,SAASV,KAAK,CAACW,SAAS,CAGhD;EACOC,KAAK,GAAuBL,aAAa;EAEzCM,iBAAiBA,CAACJ,KAAc,EAAEK,SAA0B,EAAQ;IACzE,MAAMN,cAAc,GAClBM,SAAS,CAACN,cAAc,IAAIF,2BAA2B;IACzD,MAAM;MAAES;IAAQ,CAAC,GAAG,IAAI,CAACC,KAAK;;IAE9B;IACA,MAAMC,OAAO,GAAG,CAAC,CAAC,IAAI,CAACD,KAAK,CAACE,QAAQ;IAErC,MAAMC,aAAa,GACjBV,KAAK,YAAYW,KAAK,GAAGX,KAAK,GAAG,IAAIW,KAAK,CAACC,MAAM,CAACZ,KAAK,CAAC,CAAC;IAC3D,IAAI,CAACP,aAAa,CAAC,CAAC,EAAE;MACpBD,KAAK,CAACqB,eAAe,CAACH,aAAa,EAAE,CAACF,OAAO,CAAC;IAChD;IAEA,IAAIF,OAAO,EAAE;MACXA,OAAO,CAACN,KAAK,EAAED,cAAc,CAAC;IAChC;IAEA,IAAI,CAACe,QAAQ,CAAC;MAAEd,KAAK;MAAED;IAAe,CAAC,CAAC;EAC1C;EAEOgB,MAAMA,CAAA,EAAoB;IAC/B,MAAM;MAAEN,QAAQ;MAAEO;IAAS,CAAC,GAAG,IAAI,CAACT,KAAK;IACzC,MAAMJ,KAAK,GAAG,IAAI,CAACA,KAAK;IAExB,IAAIA,KAAK,CAACJ,cAAc,KAAK,IAAI,EAAE;MACjC,OAAO,OAAOiB,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAAC,CAAC,GAAGA,QAAQ;IAC/D;IAEA,MAAMC,OAAO,GACX,OAAOR,QAAQ,KAAK,UAAU,gBAC1BlB,KAAK,CAAC2B,aAAa,CAACT,QAAQ,EAAE;MAC5BT,KAAK,EAAEG,KAAK,CAACH,KAAK;MAClBD,cAAc,EAAEI,KAAK,CAACJ;IACxB,CAAC,CAAC,GACFU,QAAQ;IAEd,iBAAIlB,KAAK,CAAC4B,cAAc,CAACF,OAAO,CAAC,EAAE;MACjC,OAAOA,OAAO;IAChB;IAEA,OAAO,IAAI;EACb;AACF;AAEA,OAAO,SAASG,iBAAiBA,CAC/BC,gBAAwC,EACxCC,oBAAwC,EAC3B;EACb,MAAMC,oBAAoB,GACxBF,gBAAgB,CAACG,WAAW,IAAIH,gBAAgB,CAACI,IAAI,IAAI7B,iBAAiB;EAE5E,MAAM8B,OAAO,gBAAGnC,KAAK,CAACoC,IAAI,CAAEpB,KAAQ,iBAClCZ,IAAA,CAACM,aAAa;IAAA,GAAKqB,oBAAoB;IAAAN,QAAA,eACrCrB,IAAA,CAAC0B,gBAAgB;MAAA,GAAKd;IAAK,CAAG;EAAC,CAClB,CAChB,CAA2B;EAE5BmB,OAAO,CAACF,WAAW,GAAG,iBAAiBD,oBAAoB,GAAG;EAE9D,OAAOG,OAAO;AAChB","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import PulseReactNativeOtel from "./NativePulseReactNativeOtel.js";
4
+ import { getIsShutdown, getIsStarted } from "./config.js";
4
5
  import { mergeWithGlobalAttributes } from "./globalAttributes.js";
5
6
  import { isSupportedPlatform } from "./initialization.js";
6
7
  import { extractErrorDetails } from "./utility.js";
@@ -45,7 +46,7 @@ function handleGlobalError(error, isFatal) {
45
46
  }
46
47
  }
47
48
  export function reportException(error, isFatal = false, attributes) {
48
- if (!isSupportedPlatform()) {
49
+ if (!isSupportedPlatform() || !getIsStarted() || getIsShutdown()) {
49
50
  return;
50
51
  }
51
52
  let errorMessage;
@@ -102,6 +103,9 @@ function disableErrorHandler() {
102
103
  previousErrorHandler = null;
103
104
  handlingFatal = false;
104
105
  }
106
+ export function uninstallErrorHandler() {
107
+ disableErrorHandler();
108
+ }
105
109
  export function setupErrorHandler(enableErrorHandler) {
106
110
  if (enableErrorHandler) {
107
111
  initializeErrorHandler();
@@ -1 +1 @@
1
- {"version":3,"names":["PulseReactNativeOtel","mergeWithGlobalAttributes","isSupportedPlatform","extractErrorDetails","previousErrorHandler","isInitialized","handlingFatal","reportToOpenTelemetry","errorMessage","stackTrace","isFatal","errorType","attributes","observedTimeMs","Date","now","mergedAttributes","reportException","handleGlobalError","error","shouldHandleFatal","trackEvent","message","console","setTimeout","handlerError","details","initializeErrorHandler","warn","ErrorUtils","currentHandler","getGlobalHandler","log","setGlobalHandler","disableErrorHandler","setupErrorHandler","enableErrorHandler"],"sourceRoot":"../../src","sources":["errorHandler.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PulseReactNativeOtel","getIsShutdown","getIsStarted","mergeWithGlobalAttributes","isSupportedPlatform","extractErrorDetails","previousErrorHandler","isInitialized","handlingFatal","reportToOpenTelemetry","errorMessage","stackTrace","isFatal","errorType","attributes","observedTimeMs","Date","now","mergedAttributes","reportException","handleGlobalError","error","shouldHandleFatal","trackEvent","message","console","setTimeout","handlerError","details","initializeErrorHandler","warn","ErrorUtils","currentHandler","getGlobalHandler","log","setGlobalHandler","disableErrorHandler","uninstallErrorHandler","setupErrorHandler","enableErrorHandler"],"sourceRoot":"../../src","sources":["errorHandler.ts"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  import PulseReactNativeOtel from "./NativePulseReactNativeOtel.js";
4
- import { getFeaturesFromRemoteConfig } from "./config.js";
4
+ import { getFeaturesFromRemoteConfig, getIsShutdown, getIsStarted } from "./config.js";
5
5
  import { mergeWithGlobalAttributes } from "./globalAttributes.js";
6
6
  import { isSupportedPlatform } from "./initialization.js";
7
7
  export function trackEvent(event, attributes) {
8
- if (!isSupportedPlatform()) {
8
+ if (!isSupportedPlatform() || !getIsStarted() || getIsShutdown()) {
9
9
  return;
10
10
  }
11
11
  const features = getFeaturesFromRemoteConfig();
@@ -1 +1 @@
1
- {"version":3,"names":["PulseReactNativeOtel","getFeaturesFromRemoteConfig","mergeWithGlobalAttributes","isSupportedPlatform","trackEvent","event","attributes","features","customEventsEnabled","custom_events","observedTimeMs","Date","now","mergedAttributes"],"sourceRoot":"../../src","sources":["events.ts"],"mappings":";;AAAA,OAAOA,oBAAoB,MAAM,iCAA8B;AAC/D,SAASC,2BAA2B,QAAQ,aAAU;AACtD,SAASC,yBAAyB,QAAQ,uBAAoB;AAC9D,SAASC,mBAAmB,QAAQ,qBAAkB;AAGtD,OAAO,SAASC,UAAUA,CAACC,KAAa,EAAEC,UAA4B,EAAQ;EAC5E,IAAI,CAACH,mBAAmB,CAAC,CAAC,EAAE;IAC1B;EACF;EACA,MAAMI,QAAQ,GAAGN,2BAA2B,CAAC,CAAC;EAC9C,MAAMO,mBAAmB,GAAGD,QAAQ,EAAEE,aAAa,IAAI,IAAI;EAE3D,IAAI,CAACD,mBAAmB,EAAE;IACxB;EACF;EAEA,MAAME,cAAc,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EACjC,MAAMC,gBAAgB,GAAGX,yBAAyB,CAACI,UAAU,IAAI,CAAC,CAAC,CAAC;EAEpEN,oBAAoB,CAACI,UAAU,CAACC,KAAK,EAAEK,cAAc,EAAEG,gBAAgB,CAAC;AAC1E","ignoreList":[]}
1
+ {"version":3,"names":["PulseReactNativeOtel","getFeaturesFromRemoteConfig","getIsShutdown","getIsStarted","mergeWithGlobalAttributes","isSupportedPlatform","trackEvent","event","attributes","features","customEventsEnabled","custom_events","observedTimeMs","Date","now","mergedAttributes"],"sourceRoot":"../../src","sources":["events.ts"],"mappings":";;AAAA,OAAOA,oBAAoB,MAAM,iCAA8B;AAC/D,SACEC,2BAA2B,EAC3BC,aAAa,EACbC,YAAY,QACP,aAAU;AACjB,SAASC,yBAAyB,QAAQ,uBAAoB;AAC9D,SAASC,mBAAmB,QAAQ,qBAAkB;AAGtD,OAAO,SAASC,UAAUA,CAACC,KAAa,EAAEC,UAA4B,EAAQ;EAC5E,IAAI,CAACH,mBAAmB,CAAC,CAAC,IAAI,CAACF,YAAY,CAAC,CAAC,IAAID,aAAa,CAAC,CAAC,EAAE;IAChE;EACF;EACA,MAAMO,QAAQ,GAAGR,2BAA2B,CAAC,CAAC;EAC9C,MAAMS,mBAAmB,GAAGD,QAAQ,EAAEE,aAAa,IAAI,IAAI;EAE3D,IAAI,CAACD,mBAAmB,EAAE;IACxB;EACF;EAEA,MAAME,cAAc,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EACjC,MAAMC,gBAAgB,GAAGX,yBAAyB,CAACI,UAAU,IAAI,CAAC,CAAC,CAAC;EAEpER,oBAAoB,CAACM,UAAU,CAACC,KAAK,EAAEK,cAAc,EAAEG,gBAAgB,CAAC;AAC1E","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { startSpan, trackSpan } from "./trace.js";
4
4
  import { reportException } from "./errorHandler.js";
5
5
  import { trackEvent } from "./events.js";
6
- import { start } from "./config.js";
6
+ import { start, shutdown } from "./config.js";
7
7
  import { isInitialized } from "./initialization.js";
8
8
  import { setGlobalAttribute } from "./globalAttributes.js";
9
9
  import { setUserId, setUserProperty, setUserProperties } from "./user.js";
@@ -12,6 +12,7 @@ import { useNavigationTracking, markContentReady } from "./navigation/index.js";
12
12
  export { SpanStatusCode } from "./trace.js";
13
13
  export const Pulse = {
14
14
  start,
15
+ shutdown,
15
16
  isInitialized,
16
17
  useNavigationTracking,
17
18
  markContentReady,
@@ -1 +1 @@
1
- {"version":3,"names":["startSpan","trackSpan","reportException","trackEvent","start","isInitialized","setGlobalAttribute","setUserId","setUserProperty","setUserProperties","ErrorBoundary","withErrorBoundary","useNavigationTracking","markContentReady","SpanStatusCode","Pulse"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,SAAS,QAAQ,YAAS;AAC9C,SAASC,eAAe,QAAQ,mBAAgB;AAChD,SAASC,UAAU,QAAQ,aAAU;AACrC,SAASC,KAAK,QAAQ,aAAU;AAChC,SAASC,aAAa,QAAQ,qBAAkB;AAChD,SAASC,kBAAkB,QAAQ,uBAAoB;AACvD,SAASC,SAAS,EAAEC,eAAe,EAAEC,iBAAiB,QAAQ,WAAQ;AACtE,SAASC,aAAa,EAAEC,iBAAiB,QAAQ,oBAAiB;AAClE,SAASC,qBAAqB,EAAEC,gBAAgB,QAAQ,uBAAc;AAatE,SAASC,cAAc,QAAQ,YAAS;AACxC,OAAO,MAAMC,KAAK,GAAG;EACnBX,KAAK;EACLC,aAAa;EACbO,qBAAqB;EACrBC,gBAAgB;EAChBV,UAAU;EACVD,eAAe;EACfD,SAAS;EACTD,SAAS;EACTM,kBAAkB;EAClBC,SAAS;EACTC,eAAe;EACfC,iBAAiB;EACjBC,aAAa;EACbC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["startSpan","trackSpan","reportException","trackEvent","start","shutdown","isInitialized","setGlobalAttribute","setUserId","setUserProperty","setUserProperties","ErrorBoundary","withErrorBoundary","useNavigationTracking","markContentReady","SpanStatusCode","Pulse"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,SAAS,QAAQ,YAAS;AAC9C,SAASC,eAAe,QAAQ,mBAAgB;AAChD,SAASC,UAAU,QAAQ,aAAU;AACrC,SAASC,KAAK,EAAEC,QAAQ,QAAQ,aAAU;AAC1C,SAASC,aAAa,QAAQ,qBAAkB;AAChD,SAASC,kBAAkB,QAAQ,uBAAoB;AACvD,SAASC,SAAS,EAAEC,eAAe,EAAEC,iBAAiB,QAAQ,WAAQ;AACtE,SAASC,aAAa,EAAEC,iBAAiB,QAAQ,oBAAiB;AAClE,SAASC,qBAAqB,EAAEC,gBAAgB,QAAQ,uBAAc;AAatE,SAASC,cAAc,QAAQ,YAAS;AACxC,OAAO,MAAMC,KAAK,GAAG;EACnBZ,KAAK;EACLC,QAAQ;EACRC,aAAa;EACbO,qBAAqB;EACrBC,gBAAgB;EAChBX,UAAU;EACVD,eAAe;EACfD,SAAS;EACTD,SAAS;EACTO,kBAAkB;EAClBC,SAAS;EACTC,eAAe;EACfC,iBAAiB;EACjBC,aAAa;EACbC;AACF,CAAC","ignoreList":[]}