@dreamhorizonorg/pulse-react-native 0.0.3 → 0.0.5
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/android/build.gradle +1 -1
- package/android/src/main/java/com/pulsereactnativeotel/Pulse.kt +4 -0
- package/android/src/main/java/com/pulsereactnativeotel/PulseReactNativeOtelModule.kt +5 -0
- package/ios/PulseReactNativeOtel.mm +124 -63
- package/lib/module/NativePulseReactNativeOtel.js.map +1 -1
- package/lib/module/config.js +50 -4
- package/lib/module/config.js.map +1 -1
- package/lib/module/errorBoundary.js +4 -1
- package/lib/module/errorBoundary.js.map +1 -1
- package/lib/module/errorHandler.js +5 -1
- package/lib/module/errorHandler.js.map +1 -1
- package/lib/module/events.js +2 -2
- package/lib/module/events.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigation/index.js +11 -0
- package/lib/module/navigation/index.js.map +1 -1
- package/lib/module/navigation/screen-interactive.js +4 -0
- package/lib/module/navigation/screen-interactive.js.map +1 -1
- package/lib/module/network-interceptor/initialization.js +13 -1
- package/lib/module/network-interceptor/initialization.js.map +1 -1
- package/lib/module/network-interceptor/request-tracker-xhr.js +15 -2
- package/lib/module/network-interceptor/request-tracker-xhr.js.map +1 -1
- package/lib/module/trace.js +16 -10
- package/lib/module/trace.js.map +1 -1
- package/lib/module/user.js +4 -3
- package/lib/module/user.js.map +1 -1
- package/lib/typescript/plugin/src/types.d.ts +6 -0
- package/lib/typescript/plugin/src/types.d.ts.map +1 -1
- package/lib/typescript/plugin/src/utils.d.ts +2 -0
- package/lib/typescript/plugin/src/utils.d.ts.map +1 -1
- package/lib/typescript/plugin/src/withAndroidPulse.d.ts.map +1 -1
- package/lib/typescript/src/NativePulseReactNativeOtel.d.ts +2 -0
- package/lib/typescript/src/NativePulseReactNativeOtel.d.ts.map +1 -1
- package/lib/typescript/src/config.d.ts +5 -1
- package/lib/typescript/src/config.d.ts.map +1 -1
- package/lib/typescript/src/errorBoundary.d.ts.map +1 -1
- package/lib/typescript/src/errorHandler.d.ts +1 -0
- package/lib/typescript/src/errorHandler.d.ts.map +1 -1
- package/lib/typescript/src/events.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/index.d.ts +1 -0
- package/lib/typescript/src/navigation/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen-interactive.d.ts.map +1 -1
- package/lib/typescript/src/network-interceptor/initialization.d.ts +1 -0
- package/lib/typescript/src/network-interceptor/initialization.d.ts.map +1 -1
- package/lib/typescript/src/network-interceptor/request-tracker-xhr.d.ts +5 -1
- package/lib/typescript/src/network-interceptor/request-tracker-xhr.d.ts.map +1 -1
- package/lib/typescript/src/trace.d.ts.map +1 -1
- package/lib/typescript/src/user.d.ts.map +1 -1
- package/package.json +1 -1
- package/plugin/build/types.d.ts +6 -0
- package/plugin/build/utils.d.ts +2 -0
- package/plugin/build/utils.js +6 -2
- package/plugin/build/withAndroidPulse.js +3 -1
- package/src/NativePulseReactNativeOtel.ts +3 -0
- package/src/config.ts +57 -3
- package/src/errorBoundary.tsx +4 -1
- package/src/errorHandler.ts +6 -1
- package/src/events.ts +6 -2
- package/src/index.tsx +3 -1
- package/src/navigation/index.ts +13 -0
- package/src/navigation/screen-interactive.ts +4 -0
- package/src/network-interceptor/initialization.ts +14 -1
- package/src/network-interceptor/request-tracker-xhr.ts +16 -3
- package/src/trace.ts +17 -10
- package/src/user.ts +4 -3
package/android/build.gradle
CHANGED
|
@@ -23,11 +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,
|
|
30
31
|
customEventConnectivity: EndpointConnectivity,
|
|
32
|
+
configEndpointUrl: String?,
|
|
31
33
|
resource: (ResourceBuilder.() -> Unit)?,
|
|
32
34
|
sessionConfig: SessionConfig,
|
|
33
35
|
globalAttributes: (() -> Attributes)?,
|
|
@@ -71,11 +73,13 @@ public object Pulse : PulseSDK by PulseSDK.INSTANCE {
|
|
|
71
73
|
PulseSDK.INSTANCE.initialize(
|
|
72
74
|
application = application,
|
|
73
75
|
endpointBaseUrl = endpointBaseUrl,
|
|
76
|
+
tenantId = tenantId,
|
|
74
77
|
endpointHeaders = endpointHeaders,
|
|
75
78
|
spanEndpointConnectivity = spanEndpointConnectivity,
|
|
76
79
|
logEndpointConnectivity = logEndpointConnectivity,
|
|
77
80
|
metricEndpointConnectivity = metricEndpointConnectivity,
|
|
78
81
|
customEventConnectivity = customEventConnectivity,
|
|
82
|
+
configEndpointUrl = configEndpointUrl,
|
|
79
83
|
resource = rnResource,
|
|
80
84
|
sessionConfig = sessionConfig,
|
|
81
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}")
|
|
@@ -21,86 +21,147 @@ RCT_EXPORT_MODULE()
|
|
|
21
21
|
return self;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
- (NSNumber *)isInitialized
|
|
26
|
-
{
|
|
27
|
-
return @NO;
|
|
28
|
-
}
|
|
24
|
+
#pragma mark - Shared implementation
|
|
29
25
|
|
|
30
|
-
|
|
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
|
-
- (
|
|
39
|
-
|
|
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
|
-
|
|
46
|
-
|
|
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
|
-
|
|
52
|
-
|
|
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
|
-
|
|
60
|
-
|
|
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
|
-
|
|
67
|
-
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
{
|
|
77
|
-
return @NO;
|
|
78
|
-
}
|
|
43
|
+
- (NSNumber *)doRecordSpanException:(NSString *)spanId errorMessage:(NSString *)errorMessage stackTrace:(NSString *)stackTrace
|
|
44
|
+
{ return @NO; }
|
|
79
45
|
|
|
80
|
-
- (
|
|
81
|
-
|
|
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)
|
|
86
|
-
// No op
|
|
87
|
-
}
|
|
51
|
+
- (void)doSetUserId:(NSString *)id { }
|
|
88
52
|
|
|
53
|
+
- (void)doSetUserProperties:(NSDictionary *)properties { }
|
|
89
54
|
|
|
90
|
-
- (void)
|
|
91
|
-
// No op
|
|
92
|
-
}
|
|
55
|
+
- (void)doSetUserProperty:(NSString *)name value:(NSString *)value { }
|
|
93
56
|
|
|
57
|
+
- (void)doTriggerAnr { }
|
|
94
58
|
|
|
95
|
-
- (
|
|
96
|
-
|
|
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
|
-
- (
|
|
101
|
-
|
|
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
|
-
|
|
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;
|
|
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":[]}
|
package/lib/module/config.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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
8
|
import { PULSE_FEATURE_NAMES } from "./pulse.constants.js";
|
|
9
9
|
const defaultConfig = {
|
|
@@ -19,12 +19,26 @@ let currentConfig = {
|
|
|
19
19
|
...defaultConfig
|
|
20
20
|
};
|
|
21
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
|
+
|
|
22
28
|
// Cache for features from remote SDK config
|
|
23
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
|
+
}
|
|
24
38
|
|
|
25
39
|
/**
|
|
26
40
|
* Gets all features from the remote SDK config.
|
|
27
|
-
* @returns Record of feature names to their enabled status, or null if config not available
|
|
41
|
+
* @returns Record of feature names to their enabled status, or null if config not available or start() not called
|
|
28
42
|
*/
|
|
29
43
|
export function getFeaturesFromRemoteConfig() {
|
|
30
44
|
if (cachedFeatures !== undefined) {
|
|
@@ -59,6 +73,15 @@ function resolveNavigationState(features, optionValue) {
|
|
|
59
73
|
}
|
|
60
74
|
export function start(options) {
|
|
61
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.');
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (isStarted) {
|
|
81
|
+
console.log('[Pulse] SDK already started.');
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
isStarted = true;
|
|
62
85
|
const features = getFeaturesFromRemoteConfig();
|
|
63
86
|
const config = {
|
|
64
87
|
autoDetectExceptions: resolveFeatureState(features, PULSE_FEATURE_NAMES.JS_CRASH, options?.autoDetectExceptions ?? defaultConfig.autoDetectExceptions),
|
|
@@ -71,6 +94,17 @@ export function start(options) {
|
|
|
71
94
|
};
|
|
72
95
|
configure(config);
|
|
73
96
|
}
|
|
97
|
+
export function shutdown() {
|
|
98
|
+
if (isShutdown) {
|
|
99
|
+
console.warn('[Pulse] SDK already shut down.');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
uninstallErrorHandler();
|
|
103
|
+
uninstallNetworkInterceptor();
|
|
104
|
+
uninstallNavigationIntegration();
|
|
105
|
+
PulseReactNativeOtel.shutdown();
|
|
106
|
+
isShutdown = true;
|
|
107
|
+
}
|
|
74
108
|
export function createNavigationIntegrationWithConfig(options) {
|
|
75
109
|
if (!isSupportedPlatform()) {
|
|
76
110
|
return {
|
|
@@ -78,6 +112,18 @@ export function createNavigationIntegrationWithConfig(options) {
|
|
|
78
112
|
markContentReady: () => {}
|
|
79
113
|
};
|
|
80
114
|
}
|
|
115
|
+
if (!isStarted) {
|
|
116
|
+
return {
|
|
117
|
+
registerNavigationContainer: _ => () => {},
|
|
118
|
+
markContentReady: () => {}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
if (isShutdown) {
|
|
122
|
+
return {
|
|
123
|
+
registerNavigationContainer: _ => () => {},
|
|
124
|
+
markContentReady: () => {}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
81
127
|
if (!currentConfig.autoDetectNavigation) {
|
|
82
128
|
console.warn('[Pulse Navigation] auto-detection disabled via Pulse.start; createNavigationIntegration() returning no-op.');
|
|
83
129
|
const noop = {
|
package/lib/module/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["setupErrorHandler","isSupportedPlatform","createReactNavigationIntegration","initializeNetworkInterceptor","PulseReactNativeOtel","PULSE_FEATURE_NAMES","defaultConfig","autoDetectExceptions","autoDetectNavigation","autoDetectNetwork","networkHeaders","requestHeaders","responseHeaders","currentConfig","cachedFeatures","getFeaturesFromRemoteConfig","undefined","getAllFeatures","configure","config","resolveFeatureState","features","featureName","optionValue","resolveNavigationState","hasAny","SCREEN_SESSION","RN_SCREEN_LOAD","RN_SCREEN_INTERACTIVE","start","options","JS_CRASH","NETWORK_INSTRUMENTATION","
|
|
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
|
-
|
|
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;
|
|
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":";;AAAA,OAAOA,oBAAoB,MAAM,iCAA8B;AAC/D,SAASC,yBAAyB,QAAQ,uBAAoB;AAC9D,SAASC,mBAAmB,QAAQ,qBAAkB;AACtD,SAASC,mBAAmB,QAAQ,cAAW;AAG/C,IAAIC,oBAAwE,GAC1E,IAAI;AAEN,IAAIC,aAAa,GAAG,KAAK;AACzB,IAAIC,aAAa,GAAG,KAAK;AAEzB,SAASC,qBAAqBA,CAC5BC,YAAoB,EACpBC,UAAkB,EAClBC,OAAgB,EAChBC,SAAiB,EACjBC,UAA4B,EACtB;EACN,MAAMC,cAAc,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EACjC,MAAMC,gBAAgB,GAAGf,yBAAyB,CAACW,UAAU,IAAI,CAAC,CAAC,CAAC;
|
|
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":[]}
|
package/lib/module/events.js
CHANGED
|
@@ -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();
|
package/lib/module/events.js.map
CHANGED
|
@@ -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,
|
|
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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -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,
|
package/lib/module/index.js.map
CHANGED
|
@@ -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;
|
|
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;AActE,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":[]}
|
|
@@ -13,6 +13,13 @@ import PulseReactNativeOtel from "../NativePulseReactNativeOtel.js";
|
|
|
13
13
|
import { getFeaturesFromRemoteConfig } from "../config.js";
|
|
14
14
|
import { PULSE_FEATURE_NAMES } from "../pulse.constants.js";
|
|
15
15
|
export { DEFAULT_NAVIGATION_OPTIONS } from "./navigation.interface.js";
|
|
16
|
+
let currentNavigationUnregister = null;
|
|
17
|
+
export function uninstallNavigationIntegration() {
|
|
18
|
+
if (currentNavigationUnregister) {
|
|
19
|
+
currentNavigationUnregister();
|
|
20
|
+
currentNavigationUnregister = null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
16
23
|
function resolveNavigationFeatureState(features, featureName, optionValue) {
|
|
17
24
|
if (features !== undefined && features !== null) return features[featureName] ?? optionValue;
|
|
18
25
|
return optionValue;
|
|
@@ -138,6 +145,9 @@ export function createReactNavigationIntegration(options) {
|
|
|
138
145
|
}
|
|
139
146
|
navigationContainer = undefined;
|
|
140
147
|
isInitialized = false;
|
|
148
|
+
if (currentNavigationUnregister === unmountCleanup) {
|
|
149
|
+
currentNavigationUnregister = null;
|
|
150
|
+
}
|
|
141
151
|
clearGlobalMarkContentReady(updatedInteractiveTracker.markContentReady);
|
|
142
152
|
}
|
|
143
153
|
};
|
|
@@ -158,6 +168,7 @@ export function createReactNavigationIntegration(options) {
|
|
|
158
168
|
}
|
|
159
169
|
appStateSubscription = AppState.addEventListener('change', handleAppStateChange);
|
|
160
170
|
isInitialized = true;
|
|
171
|
+
currentNavigationUnregister = unmountCleanup;
|
|
161
172
|
return unmountCleanup;
|
|
162
173
|
} catch (error) {
|
|
163
174
|
console.error(`${LOG_TAGS.NAVIGATION} Error registering container:`, error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AppState","DEFAULT_NAVIGATION_OPTIONS","pushRecentRouteKey","LOG_TAGS","discardSpan","createScreenLoadTracker","INITIAL_SCREEN_LOAD_STATE","createScreenInteractiveTracker","markContentReady","clearGlobalMarkContentReady","INITIAL_SCREEN_INTERACTIVE_STATE","createScreenSessionTracker","INITIAL_SCREEN_SESSION_STATE","useNavigationTracking","useNavigationTrackingBase","isSupportedPlatform","PulseReactNativeOtel","getFeaturesFromRemoteConfig","PULSE_FEATURE_NAMES","resolveNavigationFeatureState","features","featureName","optionValue","undefined","createReactNavigationIntegration","options","screenSessionTracking","SCREEN_SESSION","screenNavigationTracking","RN_SCREEN_LOAD","screenInteractiveTracking","RN_SCREEN_INTERACTIVE","navigationContainer","recentRouteKeys","isInitialized","appStateSubscription","screenLoadState","screenInteractiveState","screenSessionState","screenInteractiveTracker","screenLoadTracker","key","screenSessionTracker","setCurrentScreenName","screenName","onNavigationDispatch","discardScreenInteractive","screenSessionSpan","currentRoute","getCurrentRoute","endScreenSession","name","startNavigationSpan","error","console","warn","NAVIGATION","navigationSpan","spanId","onStateChange","handleStateChange","appState","currentState","shouldStartSession","startScreenSession","startScreenInteractive","handleAppStateChange","nextAppState","registerNavigationContainer","maybeNavigationContainer","container","current","updatedInteractiveTracker","addListener","unmountCleanup","endNavigationSpan","remove","latestRoute","addEventListener","navigationRef","createNavigationIntegrationWithConfig","require"],"sourceRoot":"../../../src","sources":["navigation/index.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAA6B,cAAc;AAO5D,SAASC,0BAA0B,QAAQ,2BAAwB;AACnE,SAASC,kBAAkB,EAAEC,QAAQ,QAAQ,YAAS;AACtD,SAASC,WAAW,QAAQ,aAAU;AACtC,SACEC,uBAAuB,EAEvBC,yBAAyB,QACpB,kBAAe;AACtB,SACEC,8BAA8B,EAC9BC,gBAAgB,EAChBC,2BAA2B,EAE3BC,gCAAgC,QAC3B,yBAAsB;AAC7B,SACEC,0BAA0B,EAE1BC,4BAA4B,QACvB,qBAAkB;AACzB,SAASC,qBAAqB,IAAIC,yBAAyB,QAAQ,4BAAyB;AAC5F,SAASC,mBAAmB,QAAQ,sBAAmB;AACvD,OAAOC,oBAAoB,MAAM,kCAA+B;AAChE,SAASC,2BAA2B,QAAQ,cAAW;AACvD,SACEC,mBAAmB,QAEd,uBAAoB;AAG3B,SAASjB,0BAA0B,QAAQ,2BAAwB;
|
|
1
|
+
{"version":3,"names":["AppState","DEFAULT_NAVIGATION_OPTIONS","pushRecentRouteKey","LOG_TAGS","discardSpan","createScreenLoadTracker","INITIAL_SCREEN_LOAD_STATE","createScreenInteractiveTracker","markContentReady","clearGlobalMarkContentReady","INITIAL_SCREEN_INTERACTIVE_STATE","createScreenSessionTracker","INITIAL_SCREEN_SESSION_STATE","useNavigationTracking","useNavigationTrackingBase","isSupportedPlatform","PulseReactNativeOtel","getFeaturesFromRemoteConfig","PULSE_FEATURE_NAMES","currentNavigationUnregister","uninstallNavigationIntegration","resolveNavigationFeatureState","features","featureName","optionValue","undefined","createReactNavigationIntegration","options","screenSessionTracking","SCREEN_SESSION","screenNavigationTracking","RN_SCREEN_LOAD","screenInteractiveTracking","RN_SCREEN_INTERACTIVE","navigationContainer","recentRouteKeys","isInitialized","appStateSubscription","screenLoadState","screenInteractiveState","screenSessionState","screenInteractiveTracker","screenLoadTracker","key","screenSessionTracker","setCurrentScreenName","screenName","onNavigationDispatch","discardScreenInteractive","screenSessionSpan","currentRoute","getCurrentRoute","endScreenSession","name","startNavigationSpan","error","console","warn","NAVIGATION","navigationSpan","spanId","onStateChange","handleStateChange","appState","currentState","shouldStartSession","startScreenSession","startScreenInteractive","handleAppStateChange","nextAppState","registerNavigationContainer","maybeNavigationContainer","container","current","updatedInteractiveTracker","addListener","unmountCleanup","endNavigationSpan","remove","latestRoute","addEventListener","navigationRef","createNavigationIntegrationWithConfig","require"],"sourceRoot":"../../../src","sources":["navigation/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { Pulse } from "../index.js";
|
|
4
|
+
import { getIsStarted } from "../config.js";
|
|
4
5
|
import { Platform } from 'react-native';
|
|
5
6
|
import { SPAN_NAMES, ATTRIBUTE_KEYS, PULSE_TYPES } from "../pulse.constants.js";
|
|
6
7
|
import { discardSpan } from "../trace.js";
|
|
@@ -87,6 +88,9 @@ export function createScreenInteractiveTracker(enabled, state, navigationContain
|
|
|
87
88
|
};
|
|
88
89
|
}
|
|
89
90
|
export function markContentReady() {
|
|
91
|
+
if (!getIsStarted()) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
90
94
|
if (globalMarkContentReady) {
|
|
91
95
|
globalMarkContentReady();
|
|
92
96
|
} else {
|