@dreamhorizonorg/pulse-react-native 0.0.3 → 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.
- 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 +46 -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 +2 -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 +53 -3
- package/src/errorBoundary.tsx +4 -1
- package/src/errorHandler.ts +6 -1
- package/src/events.ts +6 -2
- package/src/index.tsx +2 -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,11 @@ 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
|
+
isStarted = true;
|
|
62
81
|
const features = getFeaturesFromRemoteConfig();
|
|
63
82
|
const config = {
|
|
64
83
|
autoDetectExceptions: resolveFeatureState(features, PULSE_FEATURE_NAMES.JS_CRASH, options?.autoDetectExceptions ?? defaultConfig.autoDetectExceptions),
|
|
@@ -71,6 +90,17 @@ export function start(options) {
|
|
|
71
90
|
};
|
|
72
91
|
configure(config);
|
|
73
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;
|
|
103
|
+
}
|
|
74
104
|
export function createNavigationIntegrationWithConfig(options) {
|
|
75
105
|
if (!isSupportedPlatform()) {
|
|
76
106
|
return {
|
|
@@ -78,6 +108,18 @@ export function createNavigationIntegrationWithConfig(options) {
|
|
|
78
108
|
markContentReady: () => {}
|
|
79
109
|
};
|
|
80
110
|
}
|
|
111
|
+
if (!isStarted) {
|
|
112
|
+
return {
|
|
113
|
+
registerNavigationContainer: _ => () => {},
|
|
114
|
+
markContentReady: () => {}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
if (isShutdown) {
|
|
118
|
+
return {
|
|
119
|
+
registerNavigationContainer: _ => () => {},
|
|
120
|
+
markContentReady: () => {}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
81
123
|
if (!currentConfig.autoDetectNavigation) {
|
|
82
124
|
console.warn('[Pulse Navigation] auto-detection disabled via Pulse.start; createNavigationIntegration() returning no-op.');
|
|
83
125
|
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;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":[]}
|
|
@@ -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 {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Pulse","Platform","SPAN_NAMES","ATTRIBUTE_KEYS","PULSE_TYPES","discardSpan","LOG_TAGS","INITIAL_SCREEN_INTERACTIVE_STATE","screenInteractiveSpan","undefined","currentInteractiveRouteKey","globalMarkContentReady","createScreenInteractiveTracker","enabled","state","navigationContainer","discardScreenInteractive","reason","console","log","SCREEN_INTERACTIVE","spanId","startScreenInteractive","route","key","startSpan","attributes","PULSE_TYPE","SCREEN_NAME","name","ROUTE_KEY","PLATFORM","OS","inheritContext","endScreenInteractive","routeName","end","handleMarkContentReady","warn","currentRoute","getCurrentRoute","error","markContentReady","NAVIGATION","clearGlobalMarkContentReady","markContentReadyFn"],"sourceRoot":"../../../src","sources":["navigation/screen-interactive.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAmB,aAAU;AAC3C,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,UAAU,EAAEC,cAAc,EAAEC,WAAW,QAAQ,uBAAoB;AAC5E,SAASC,WAAW,QAAQ,aAAU;AAKtC,SAASC,QAAQ,QAAQ,YAAS;AAOlC,OAAO,MAAMC,gCAAwD,GAAG;EACtEC,qBAAqB,EAAEC,SAAS;EAChCC,0BAA0B,EAAED;AAC9B,CAAC;AAED,IAAIE,sBAAgD;AAEpD,OAAO,SAASC,8BAA8BA,CAC5CC,OAAgB,EAChBC,KAA6B,EAC7BC,mBAAoD,EACpD;EACA,MAAMC,wBAAwB,GAAIC,MAAc,IAAW;IACzD,IAAIH,KAAK,CAACN,qBAAqB,EAAE;MAC/BU,OAAO,CAACC,GAAG,CACT,GAAGb,QAAQ,CAACc,kBAAkB,uCAAuCH,MAAM,eAAeH,KAAK,CAACJ,0BAA0B,GAC5H,CAAC;MACD,IAAII,KAAK,CAACN,qBAAqB,CAACa,MAAM,EAAE;QACtChB,WAAW,CAACS,KAAK,CAACN,qBAAqB,CAACa,MAAM,CAAC;MACjD;MACAP,KAAK,CAACN,qBAAqB,GAAGC,SAAS;MACvCK,KAAK,CAACJ,0BAA0B,GAAGD,SAAS;IAC9C;EACF,CAAC;EAED,MAAMa,sBAAsB,GAAIC,KAAsB,IAAW;IAC/D,IAAI,CAACV,OAAO,EAAE;MACZ;IACF;IAEA,IACEC,KAAK,CAACN,qBAAqB,IAC3BM,KAAK,CAACJ,0BAA0B,KAAKa,KAAK,CAACC,GAAG,EAC9C;MACA;IACF;IAEA,IAAIV,KAAK,CAACN,qBAAqB,EAAE;MAC/BQ,wBAAwB,CAAC,0CAA0C,CAAC;IACtE;IAEAF,KAAK,CAACN,qBAAqB,
|
|
1
|
+
{"version":3,"names":["Pulse","getIsStarted","Platform","SPAN_NAMES","ATTRIBUTE_KEYS","PULSE_TYPES","discardSpan","LOG_TAGS","INITIAL_SCREEN_INTERACTIVE_STATE","screenInteractiveSpan","undefined","currentInteractiveRouteKey","globalMarkContentReady","createScreenInteractiveTracker","enabled","state","navigationContainer","discardScreenInteractive","reason","console","log","SCREEN_INTERACTIVE","spanId","startScreenInteractive","route","key","startSpan","attributes","PULSE_TYPE","SCREEN_NAME","name","ROUTE_KEY","PLATFORM","OS","inheritContext","endScreenInteractive","routeName","end","handleMarkContentReady","warn","currentRoute","getCurrentRoute","error","markContentReady","NAVIGATION","clearGlobalMarkContentReady","markContentReadyFn"],"sourceRoot":"../../../src","sources":["navigation/screen-interactive.ts"],"mappings":"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","ignoreList":[]}
|