@truewatchtech/react-native-mobile 0.3.15-alpha.1 → 0.3.16
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/FTMobileReactNativeSDK.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/ft/sdk/reactnative/FTMobileImpl.java +424 -5
- package/android/src/main/java/com/ft/sdk/reactnative/FTRUMImpl.java +12 -0
- package/android/src/newarch/java/com/ft/sdk/reactnative/FTMobileModule.java +23 -1
- package/android/src/oldarch/java/com/ft/sdk/reactnative/FTMobileModule.java +24 -2
- package/ios/FTMobileReactNative.h +2 -2
- package/ios/FTMobileReactNative.m +358 -4
- package/ios/FTReactNativeRUM.m +9 -0
- package/lib/commonjs/ft_logger.js +5 -2
- package/lib/commonjs/ft_logger.js.map +1 -1
- package/lib/commonjs/ft_mobile_agent.js +142 -3
- package/lib/commonjs/ft_mobile_agent.js.map +1 -1
- package/lib/commonjs/ft_rum.js +40 -13
- package/lib/commonjs/ft_rum.js.map +1 -1
- package/lib/commonjs/ft_tracing.js.map +1 -1
- package/lib/commonjs/index.js +30 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/ft_logger.js +5 -2
- package/lib/module/ft_logger.js.map +1 -1
- package/lib/module/ft_mobile_agent.js +142 -3
- package/lib/module/ft_mobile_agent.js.map +1 -1
- package/lib/module/ft_rum.js +39 -9
- package/lib/module/ft_rum.js.map +1 -1
- package/lib/module/ft_tracing.js.map +1 -1
- package/lib/module/index.js +3 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/ft_mobile_agent.d.ts +140 -2
- package/lib/typescript/ft_rum.d.ts +24 -0
- package/lib/typescript/index.d.ts +3 -3
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/ft_logger.tsx +6 -2
- package/src/ft_mobile_agent.tsx +217 -8
- package/src/ft_rum.tsx +66 -9
- package/src/ft_tracing.tsx +21 -2
- package/src/index.tsx +6 -5
- package/src/version.ts +1 -1
- package/android/src/main/java/com/ft/sdk/InnerClassProxy.java +0 -8
package/src/ft_mobile_agent.tsx
CHANGED
|
@@ -1,5 +1,95 @@
|
|
|
1
|
-
import { NativeModules } from 'react-native';
|
|
2
|
-
import { version as sdkVersion } from './version'
|
|
1
|
+
import { EmitterSubscription, NativeEventEmitter, NativeModules } from 'react-native';
|
|
2
|
+
import { version as sdkVersion } from './version';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Bridge context manager for managing shared properties across RUM and Logger modules
|
|
6
|
+
* This class provides a centralized way to store and retrieve global properties that will be
|
|
7
|
+
* automatically merged with local properties when making calls to RUM and Logger functions
|
|
8
|
+
*/
|
|
9
|
+
class BridgeContextManager {
|
|
10
|
+
private static instance: BridgeContextManager;
|
|
11
|
+
private properties: Map<string, any> = new Map();
|
|
12
|
+
|
|
13
|
+
private constructor() {
|
|
14
|
+
// Initialize with SDK version information
|
|
15
|
+
this.initializeSDKInfo();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Initialize SDK information properties
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
private initializeSDKInfo(): void {
|
|
23
|
+
// Create sdk_bridge_info with version information
|
|
24
|
+
const sdkBridgeInfo = {
|
|
25
|
+
react_native: sdkVersion,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Set the sdk_bridge_info property
|
|
29
|
+
this.properties.set('sdk_bridge_info', JSON.stringify(sdkBridgeInfo));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Get singleton instance of BridgeContextManager
|
|
34
|
+
* @returns BridgeContextManager instance
|
|
35
|
+
*/
|
|
36
|
+
public static getInstance(): BridgeContextManager {
|
|
37
|
+
if (!BridgeContextManager.instance) {
|
|
38
|
+
BridgeContextManager.instance = new BridgeContextManager();
|
|
39
|
+
}
|
|
40
|
+
return BridgeContextManager.instance;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Add bridge context properties that will be automatically merged with local properties
|
|
45
|
+
* @param properties Object containing key-value pairs
|
|
46
|
+
*/
|
|
47
|
+
public appendBridgeContext(properties: Record<string, any>): void {
|
|
48
|
+
// Store properties locally in JavaScript
|
|
49
|
+
try {
|
|
50
|
+
// Store properties locally in JavaScript
|
|
51
|
+
Object.entries(properties).forEach(([key, value]) => {
|
|
52
|
+
this.properties.set(key, value);
|
|
53
|
+
});
|
|
54
|
+
} catch (error) {
|
|
55
|
+
console.warn('Failed to append bridge context:', error);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Merge bridge context properties with local properties
|
|
61
|
+
* Bridge context properties take precedence over local properties
|
|
62
|
+
* @param localProperties Local properties to merge with bridge context properties
|
|
63
|
+
* @returns Merged properties object
|
|
64
|
+
*/
|
|
65
|
+
public mergeWithLocalPropertiesSync(localProperties?: object): Record<string, any> {
|
|
66
|
+
try {
|
|
67
|
+
const merged: Record<string, any> = {};
|
|
68
|
+
|
|
69
|
+
// First add local properties (if any)
|
|
70
|
+
if (localProperties) {
|
|
71
|
+
Object.assign(merged, localProperties);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Then add bridge context properties (these will override local properties with same keys)
|
|
75
|
+
this.properties.forEach((value, key) => {
|
|
76
|
+
merged[key] = value;
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
return merged;
|
|
80
|
+
} catch (error) {
|
|
81
|
+
console.warn(
|
|
82
|
+
'Failed to merge bridge context with local properties:',
|
|
83
|
+
error
|
|
84
|
+
);
|
|
85
|
+
// Return empty object or only local properties on error
|
|
86
|
+
return localProperties ? { ...localProperties } : {};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Internal bridge context manager - not exported
|
|
92
|
+
export const bridgeContextManager = BridgeContextManager.getInstance();
|
|
3
93
|
|
|
4
94
|
/**
|
|
5
95
|
* Environment.
|
|
@@ -8,6 +98,87 @@ export enum EnvType {
|
|
|
8
98
|
prod, gray, pre, common, local
|
|
9
99
|
};
|
|
10
100
|
export enum FTDBCacheDiscard { discard, discardOldest };
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Remote config override rule matching condition for custom keys. Supports exact match and contains match.
|
|
104
|
+
* For exact match, set the value directly, for example: "userid": "test_user", which means the rule will be applied when the custom key "userid" is exactly "test_user".
|
|
105
|
+
* For contains match, set the value as an object with a "contains" field, for example: "userid": { "contains": "test_user" }, which means the rule will be applied when the custom key "userid" contains the object "test_user".
|
|
106
|
+
*/
|
|
107
|
+
export type FTRemoteConfigCustomKeyContainsMatch = {
|
|
108
|
+
contains: string | number | boolean;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Matching rules for remote config override
|
|
113
|
+
* Defines matching conditions using customKeys
|
|
114
|
+
*/
|
|
115
|
+
export type FTRemoteConfigOverrideMatch = {
|
|
116
|
+
customKeys?: Record<string, string | number | boolean | FTRemoteConfigCustomKeyContainsMatch>;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Values that can be modified by remote config override rules.
|
|
121
|
+
* These values will adjust the fetched remote configuration before it is applied.
|
|
122
|
+
*/
|
|
123
|
+
export type FTRemoteConfigOverrideValues = {
|
|
124
|
+
env?: string;
|
|
125
|
+
serviceName?: string;
|
|
126
|
+
autoSync?: boolean;
|
|
127
|
+
compressIntakeRequests?: boolean;
|
|
128
|
+
syncPageSize?: number;
|
|
129
|
+
syncSleepTime?: number;
|
|
130
|
+
rumSampleRate?: number;
|
|
131
|
+
rumSessionOnErrorSampleRate?: number;
|
|
132
|
+
rumEnableTraceUserAction?: boolean;
|
|
133
|
+
rumEnableTraceUserView?: boolean;
|
|
134
|
+
rumEnableTraceUserResource?: boolean;
|
|
135
|
+
rumEnableResourceHostIP?: boolean;
|
|
136
|
+
rumEnableTrackAppUIBlock?: boolean;
|
|
137
|
+
rumBlockDurationMs?: number;
|
|
138
|
+
rumEnableTrackAppCrash?: boolean;
|
|
139
|
+
rumEnableTrackAppANR?: boolean;
|
|
140
|
+
rumEnableTraceWebView?: boolean;
|
|
141
|
+
rumAllowWebViewHost?: Array<string>;
|
|
142
|
+
traceSampleRate?: number;
|
|
143
|
+
traceEnableAutoTrace?: boolean;
|
|
144
|
+
traceType?: string;
|
|
145
|
+
logSampleRate?: number;
|
|
146
|
+
logLevelFilters?: Array<string>;
|
|
147
|
+
logEnableCustomLog?: boolean;
|
|
148
|
+
logEnableConsoleLog?: boolean;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Remote config override rules .
|
|
153
|
+
* Adjust the fetched remote configuration before application.
|
|
154
|
+
*/
|
|
155
|
+
export type FTRemoteConfigOverrideRule = {
|
|
156
|
+
id?: string,
|
|
157
|
+
enabled?: boolean,
|
|
158
|
+
match: FTRemoteConfigOverrideMatch,
|
|
159
|
+
override: FTRemoteConfigOverrideValues,
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Final result of the remote config update
|
|
163
|
+
* @param triggerType the type of remote config update trigger, auto or manual
|
|
164
|
+
* @param success whether the remote config update was successful
|
|
165
|
+
* @param platform the platform of the device, ios or android
|
|
166
|
+
* @param timestamp the timestamp when the remote config update was triggered
|
|
167
|
+
* @param rawJson the final remote config update result, in JSON string format
|
|
168
|
+
* @param errorCode the error code if the remote config update failed, may be null if the update was successful
|
|
169
|
+
* @param errorMessage the error message if the remote config update failed, may be null if the update was successful
|
|
170
|
+
* @param appliedOverrideRuleIds the list of override rule IDs applied in this remote config update, may be null if no rules were applied
|
|
171
|
+
*/
|
|
172
|
+
export type FTRemoteConfigResult = {
|
|
173
|
+
triggerType: 'auto' | 'manual';
|
|
174
|
+
success: boolean;
|
|
175
|
+
platform: 'ios' | 'android';
|
|
176
|
+
timestamp: number;
|
|
177
|
+
rawJson?: string;
|
|
178
|
+
errorCode?: string | number;
|
|
179
|
+
errorMessage?: string;
|
|
180
|
+
appliedOverrideRuleIds?: string[];
|
|
181
|
+
};
|
|
11
182
|
/**
|
|
12
183
|
* Configure SDK startup parameters.
|
|
13
184
|
* @param serverUrl data reporting address, deprecated, use [datakitUrl] instead
|
|
@@ -29,7 +200,10 @@ export enum FTDBCacheDiscard { discard, discardOldest };
|
|
|
29
200
|
* @param dbDiscardStrategy db data discard strategy
|
|
30
201
|
* @param dataModifier data modifier, modify individual fields {key:value}, after setting, the SDK will replace the original value with the set value according to the key
|
|
31
202
|
* @param lineDataModifier data modifier, modify single data {"measurement":measurement,"data":{key:value}}, after setting, the SDK will replace the original value with the set value according to the key
|
|
32
|
-
|
|
203
|
+
* @param remoteConfiguration Set whether to enable remote dynamic configuration
|
|
204
|
+
* @param remoteConfigMiniUpdateInterval Set remote dynamic configuration minimum update interval, unit seconds, default 12*60*60
|
|
205
|
+
* @param remoteConfigOverrideRules Remote config override rules .Adjust the fetched remote configuration before application.
|
|
206
|
+
*/
|
|
33
207
|
export interface FTMobileConfig {
|
|
34
208
|
/**
|
|
35
209
|
* @deprecated "serverUrl" parameter renamed to "datakitUrl"
|
|
@@ -52,12 +226,13 @@ export enum FTDBCacheDiscard { discard, discardOldest };
|
|
|
52
226
|
enableLimitWithDbSize?:boolean,
|
|
53
227
|
dbCacheLimit?:number,
|
|
54
228
|
dbDiscardStrategy?:FTDBCacheDiscard,
|
|
55
|
-
pkgInfo?: string,
|
|
56
229
|
dataModifier?:object,
|
|
57
|
-
lineDataModifier?:object
|
|
230
|
+
lineDataModifier?:object,
|
|
231
|
+
remoteConfiguration?:boolean,
|
|
232
|
+
remoteConfigMiniUpdateInterval?:number,
|
|
233
|
+
remoteConfigOverrideRules?:Array<FTRemoteConfigOverrideRule>,
|
|
58
234
|
}
|
|
59
235
|
|
|
60
|
-
|
|
61
236
|
type FTMobileReactNativeType = {
|
|
62
237
|
|
|
63
238
|
/**
|
|
@@ -118,16 +293,38 @@ type FTMobileReactNativeType = {
|
|
|
118
293
|
* Clear all data that has not yet been uploaded to the server.
|
|
119
294
|
*/
|
|
120
295
|
clearAllData():Promise<void>
|
|
296
|
+
/**
|
|
297
|
+
* Add bridge context properties that will be automatically merged with local properties
|
|
298
|
+
* @param properties Object containing key-value pairs
|
|
299
|
+
*/
|
|
300
|
+
appendBridgeContext(properties: Record<string, any>): void;
|
|
301
|
+
/**
|
|
302
|
+
* Update remote configuration, after enabling remote configuration, you can call this method to update the configuration in real time.
|
|
303
|
+
*/
|
|
304
|
+
updateRemoteConfig():Promise<FTRemoteConfigResult>
|
|
305
|
+
/**
|
|
306
|
+
* Update remote configuration with minimum update interval, after enabling remote configuration, you can call this method to update the configuration in real time.
|
|
307
|
+
* This method is used to set the minimum update interval for remote configuration updates. If the time since the last update is less than the specified interval, the update will not be performed.
|
|
308
|
+
* @param interval minimum update interval, unit seconds
|
|
309
|
+
* @param rules Remote config override rules .Adjust the fetched remote configuration before application.
|
|
310
|
+
* @returns the result of the remote config update
|
|
311
|
+
*/
|
|
312
|
+
updateRemoteConfigWithMiniUpdateInterval(interval:number,rules?: Array<FTRemoteConfigOverrideRule>):Promise<FTRemoteConfigResult>
|
|
313
|
+
/**
|
|
314
|
+
* Listen for auto remote configuration updates triggered by the native SDK.
|
|
315
|
+
* Manual updates are returned through the update Promise instead of this event.
|
|
316
|
+
*/
|
|
317
|
+
addRemoteConfigListener(listener:(result:FTRemoteConfigResult)=>void): EmitterSubscription
|
|
121
318
|
};
|
|
122
319
|
|
|
123
320
|
class FTMobileReactNativeWrapper implements FTMobileReactNativeType {
|
|
124
321
|
private sdk:FTMobileReactNativeType = NativeModules.FTMobileReactNative;
|
|
322
|
+
private emitter = new NativeEventEmitter(NativeModules.FTMobileReactNative);
|
|
125
323
|
|
|
126
324
|
sdkConfig(config:FTMobileConfig): Promise<void> {
|
|
127
325
|
if(config.serverUrl != null && config.serverUrl.length>0 && config.datakitUrl == null){
|
|
128
326
|
config.datakitUrl = config.serverUrl;
|
|
129
327
|
}
|
|
130
|
-
config.pkgInfo = sdkVersion;
|
|
131
328
|
return this.sdk.sdkConfig(config);
|
|
132
329
|
}
|
|
133
330
|
bindRUMUserData(userId: string,userName?:string,userEmail?:string,extra?:object): Promise<void> {
|
|
@@ -157,6 +354,18 @@ type FTMobileReactNativeType = {
|
|
|
157
354
|
clearAllData():Promise<void>{
|
|
158
355
|
return this.sdk.clearAllData();
|
|
159
356
|
}
|
|
357
|
+
appendBridgeContext(properties: Record<string, any>): void {
|
|
358
|
+
// Use bridgeContextManager to store properties in JavaScript and send to native SDK
|
|
359
|
+
bridgeContextManager.appendBridgeContext(properties);
|
|
360
|
+
}
|
|
361
|
+
updateRemoteConfig():Promise<FTRemoteConfigResult>{
|
|
362
|
+
return this.sdk.updateRemoteConfig();
|
|
363
|
+
}
|
|
364
|
+
updateRemoteConfigWithMiniUpdateInterval(interval:number,rules?: Array<FTRemoteConfigOverrideRule>):Promise<FTRemoteConfigResult>{
|
|
365
|
+
return this.sdk.updateRemoteConfigWithMiniUpdateInterval(interval,rules);
|
|
366
|
+
}
|
|
367
|
+
addRemoteConfigListener(listener:(result:FTRemoteConfigResult)=>void): EmitterSubscription {
|
|
368
|
+
return this.emitter.addListener('ft_remote_config_callback', listener);
|
|
369
|
+
}
|
|
160
370
|
}
|
|
161
371
|
export const FTMobileReactNative: FTMobileReactNativeType = new FTMobileReactNativeWrapper();
|
|
162
|
-
|
package/src/ft_rum.tsx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NativeModules } from 'react-native';
|
|
2
2
|
import { FTRumErrorTracking} from './rum/FTRumErrorTracking';
|
|
3
3
|
import { FTRumActionTracking} from './rum/FTRumActionTracking';
|
|
4
|
+
import { bridgeContextManager } from './ft_mobile_agent';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Error monitoring type.
|
|
@@ -26,7 +27,41 @@ import { FTRumActionTracking} from './rum/FTRumActionTracking';
|
|
|
26
27
|
*/
|
|
27
28
|
export enum DetectFrequency { normal, frequent, rare }
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
export enum FTRUMCacheDiscard {
|
|
31
|
+
discard,
|
|
32
|
+
discardOldest,
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export enum IOSCrashMonitoringType {
|
|
36
|
+
/** Monitor Mach kernel exceptions. */
|
|
37
|
+
machException = 0x01,
|
|
38
|
+
|
|
39
|
+
/** Monitor fatal signals. */
|
|
40
|
+
signal = 0x02,
|
|
41
|
+
|
|
42
|
+
/** Monitor uncaught C++ exceptions. */
|
|
43
|
+
cppException = 0x04,
|
|
44
|
+
|
|
45
|
+
/** Monitor uncaught Objective-C NSExceptions. */
|
|
46
|
+
nsException = 0x08,
|
|
47
|
+
|
|
48
|
+
/** Track and inject system information. */
|
|
49
|
+
system = 0x40,
|
|
50
|
+
|
|
51
|
+
/** Track and inject application state information. */
|
|
52
|
+
applicationState = 0x80,
|
|
53
|
+
|
|
54
|
+
/** All crash monitor types. */
|
|
55
|
+
all = machException |
|
|
56
|
+
signal |
|
|
57
|
+
cppException |
|
|
58
|
+
nsException |
|
|
59
|
+
applicationState |
|
|
60
|
+
system,
|
|
61
|
+
|
|
62
|
+
/** High compatibility crash monitor types (excludes Mach exceptions). */
|
|
63
|
+
highCompatibility = all & ~machException,
|
|
64
|
+
}
|
|
30
65
|
|
|
31
66
|
/**
|
|
32
67
|
* Set RUM tracking conditions.
|
|
@@ -50,6 +85,9 @@ import { FTRumActionTracking} from './rum/FTRumActionTracking';
|
|
|
50
85
|
* @param globalContext custom global parameters
|
|
51
86
|
* @param rumCacheLimitCount RUM max cache size, default 100_000
|
|
52
87
|
* @param rumDiscardStrategy RUM data discard strategy
|
|
88
|
+
* @param enableTraceWebView Set whether to enable WebView data collection, default true
|
|
89
|
+
* @param allowWebViewHost Set specific hosts or domains allowed to collect WebView data, nil means collect all
|
|
90
|
+
* @param iosCrashMonitoringType iOS crash monitoring type , default is highCompatibility, which does not include Mach exceptions for better compatibility. you must enable system crash monitoring to get crash stack traces and crash information.
|
|
53
91
|
*/
|
|
54
92
|
export interface FTRUMConfig{
|
|
55
93
|
androidAppId:string,
|
|
@@ -72,6 +110,9 @@ import { FTRumActionTracking} from './rum/FTRumActionTracking';
|
|
|
72
110
|
globalContext?:object,
|
|
73
111
|
rumCacheLimitCount?:number,
|
|
74
112
|
rumDiscardStrategy?:FTRUMCacheDiscard,
|
|
113
|
+
enableTraceWebView?: boolean,
|
|
114
|
+
allowWebViewHost?: Array<string>,
|
|
115
|
+
iosCrashMonitoringType?: IOSCrashMonitoringType,
|
|
75
116
|
}
|
|
76
117
|
/**
|
|
77
118
|
* RUM Resource data.
|
|
@@ -212,31 +253,47 @@ import { FTRumActionTracking} from './rum/FTRumActionTracking';
|
|
|
212
253
|
return this.rum.setConfig(config);
|
|
213
254
|
}
|
|
214
255
|
startAction(actionName:string,actionType:string,property?:object): Promise<void>{
|
|
215
|
-
|
|
256
|
+
// Automatically merge bridge context properties with local properties
|
|
257
|
+
const mergedProperties = bridgeContextManager.mergeWithLocalPropertiesSync(property);
|
|
258
|
+
return this.rum.startAction(actionName,actionType,mergedProperties);
|
|
216
259
|
}
|
|
217
260
|
addAction(actionName: string, actionType: string, property?: object): Promise<void> {
|
|
218
|
-
|
|
261
|
+
// Automatically merge bridge context properties with local properties
|
|
262
|
+
const mergedProperties = bridgeContextManager.mergeWithLocalPropertiesSync(property);
|
|
263
|
+
return this.rum.addAction(actionName,actionType,mergedProperties);
|
|
219
264
|
}
|
|
220
265
|
onCreateView(viewName:string,loadTime:number): Promise<void>{
|
|
221
266
|
return this.rum.onCreateView(viewName,loadTime);
|
|
222
267
|
}
|
|
223
268
|
startView(viewName: string, property?:object): Promise<void>{
|
|
224
|
-
|
|
269
|
+
// Automatically merge bridge context properties with local properties
|
|
270
|
+
const mergedProperties = bridgeContextManager.mergeWithLocalPropertiesSync(property);
|
|
271
|
+
return this.rum.startView(viewName,mergedProperties);
|
|
225
272
|
}
|
|
226
273
|
stopView(property?:object): Promise<void>{
|
|
227
|
-
|
|
274
|
+
// Automatically merge bridge context properties with local properties
|
|
275
|
+
const mergedProperties = bridgeContextManager.mergeWithLocalPropertiesSync(property);
|
|
276
|
+
return this.rum.stopView(mergedProperties);
|
|
228
277
|
}
|
|
229
278
|
addError(stack: string, message: string,property?:object): Promise<void>{
|
|
230
|
-
|
|
279
|
+
// Automatically merge bridge context properties with local properties
|
|
280
|
+
const mergedProperties = bridgeContextManager.mergeWithLocalPropertiesSync(property);
|
|
281
|
+
return this.rum.addError(stack,message,mergedProperties);
|
|
231
282
|
}
|
|
232
283
|
addErrorWithType(type:string,stack: string, message: string,property?:object): Promise<void>{
|
|
233
|
-
|
|
284
|
+
// Automatically merge bridge context properties with local properties
|
|
285
|
+
const mergedProperties = bridgeContextManager.mergeWithLocalPropertiesSync(property);
|
|
286
|
+
return this.rum.addErrorWithType(type,stack,message,mergedProperties);
|
|
234
287
|
}
|
|
235
288
|
startResource(key: string,property?:object): Promise<void>{
|
|
236
|
-
|
|
289
|
+
// Automatically merge bridge context properties with local properties
|
|
290
|
+
const mergedProperties = bridgeContextManager.mergeWithLocalPropertiesSync(property);
|
|
291
|
+
return this.rum.startResource(key,mergedProperties);
|
|
237
292
|
}
|
|
238
293
|
stopResource(key: string,property?:object): Promise<void>{
|
|
239
|
-
|
|
294
|
+
// Automatically merge bridge context properties with local properties
|
|
295
|
+
const mergedProperties = bridgeContextManager.mergeWithLocalPropertiesSync(property);
|
|
296
|
+
return this.rum.stopResource(key,mergedProperties);
|
|
240
297
|
}
|
|
241
298
|
addResource(key:string, resource:FTRUMResource,metrics:FTRUMResourceMetrics={}):Promise<void>{
|
|
242
299
|
return this.rum.addResource(key,resource,metrics);
|
package/src/ft_tracing.tsx
CHANGED
|
@@ -5,11 +5,30 @@ import { NativeModules } from 'react-native';
|
|
|
5
5
|
* Trace types for use.
|
|
6
6
|
*/
|
|
7
7
|
export enum TraceType {
|
|
8
|
+
//
|
|
9
|
+
// datadog trace
|
|
10
|
+
//
|
|
11
|
+
// x-datadog-trace-id
|
|
12
|
+
// x-datadog-parent-id
|
|
13
|
+
// x-datadog-sampling-priority
|
|
14
|
+
// x-datadog-origin
|
|
15
|
+
//
|
|
8
16
|
ddTrace,
|
|
17
|
+
//
|
|
18
|
+
// zipkin multi header
|
|
19
|
+
//
|
|
20
|
+
// X-B3-TraceId
|
|
21
|
+
// X-B3-SpanId
|
|
22
|
+
// X-B3-Sampled
|
|
23
|
+
//
|
|
9
24
|
zipkinMulti,
|
|
25
|
+
/// zipkin single header,b3
|
|
10
26
|
zipkinSingle,
|
|
27
|
+
// w3c, traceparent
|
|
11
28
|
traceparent,
|
|
29
|
+
// skywalking 8.0+, sw-8
|
|
12
30
|
skywalking,
|
|
31
|
+
// jaeger, header uber-trace-id
|
|
13
32
|
jaeger,
|
|
14
33
|
};
|
|
15
34
|
/**
|
|
@@ -32,7 +51,7 @@ import { NativeModules } from 'react-native';
|
|
|
32
51
|
* @param config trace configuration parameters.
|
|
33
52
|
* @returns a Promise.
|
|
34
53
|
*/
|
|
35
|
-
setConfig(config: FTTraceConfig): Promise<void>;
|
|
54
|
+
setConfig(config: FTTraceConfig): Promise<void>;
|
|
36
55
|
/**
|
|
37
56
|
* Get trace HTTP request header data.
|
|
38
57
|
* @param url request URL
|
|
@@ -75,5 +94,5 @@ import { NativeModules } from 'react-native';
|
|
|
75
94
|
}
|
|
76
95
|
|
|
77
96
|
}
|
|
78
|
-
export const FTReactNativeTrace:FTReactNativeTraceType = new FTReactNativeTraceWrapper();
|
|
97
|
+
export const FTReactNativeTrace:FTReactNativeTraceType = new FTReactNativeTraceWrapper();
|
|
79
98
|
|
package/src/index.tsx
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import {FTMobileConfig,FTMobileReactNative,EnvType,FTDBCacheDiscard
|
|
1
|
+
import {FTMobileConfig,FTMobileReactNative,EnvType,FTDBCacheDiscard,FTRemoteConfigResult,
|
|
2
|
+
FTRemoteConfigOverrideRule,FTRemoteConfigOverrideMatch,FTRemoteConfigOverrideValues} from './ft_mobile_agent'
|
|
2
3
|
import {FTLogConfig,FTReactNativeLog,FTLogStatus,FTLogCacheDiscard} from './ft_logger'
|
|
3
|
-
import {FTRUMConfig,FTRUMResource,FTReactNativeRUM,ErrorMonitorType,DeviceMetricsMonitorType,DetectFrequency,FTRUMResourceMetrics,FTRUMCacheDiscard} from './ft_rum'
|
|
4
|
+
import {FTRUMConfig,FTRUMResource,FTReactNativeRUM,ErrorMonitorType,DeviceMetricsMonitorType,DetectFrequency,FTRUMResourceMetrics,FTRUMCacheDiscard,IOSCrashMonitoringType} from './ft_rum'
|
|
4
5
|
import {FTTraceConfig,FTReactNativeTrace,TraceType} from './ft_tracing'
|
|
5
6
|
import {FTRumActionTracking} from './rum/FTRumActionTracking'
|
|
6
7
|
import {FTRumErrorTracking} from './rum/FTRumErrorTracking'
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
export {
|
|
10
|
-
FTMobileReactNative,FTMobileConfig,EnvType,FTDBCacheDiscard,
|
|
11
|
+
FTMobileReactNative,FTMobileConfig,EnvType,FTDBCacheDiscard,FTRemoteConfigResult,
|
|
12
|
+
FTRemoteConfigOverrideRule,FTRemoteConfigOverrideMatch,FTRemoteConfigOverrideValues,
|
|
11
13
|
FTLogConfig, FTReactNativeLog,FTLogStatus,FTLogCacheDiscard,
|
|
12
|
-
FTRUMConfig,FTReactNativeRUM,FTRUMResource,ErrorMonitorType,DeviceMetricsMonitorType,DetectFrequency,FTRUMResourceMetrics,FTRUMCacheDiscard,
|
|
14
|
+
FTRUMConfig,FTReactNativeRUM,FTRUMResource,ErrorMonitorType,DeviceMetricsMonitorType,DetectFrequency,FTRUMResourceMetrics,FTRUMCacheDiscard,IOSCrashMonitoringType,
|
|
13
15
|
FTTraceConfig,FTReactNativeTrace,TraceType,
|
|
14
16
|
FTRumActionTracking,
|
|
15
17
|
FTRumErrorTracking
|
|
16
18
|
};
|
|
17
|
-
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// generated by genversion
|
|
2
|
-
export const version = '0.3.
|
|
2
|
+
export const version = '0.3.16';
|