@truewatchtech/react-native-mobile 0.3.15 → 0.4.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/FTMobileReactNativeSDK.podspec +2 -1
  2. package/android/build.gradle +21 -3
  3. package/android/src/main/java/com/ft/sdk/reactnative/FTSessionReplayImpl.java +60 -0
  4. package/android/src/main/java/com/ft/sdk/reactnative/FTTraceImpl.java +1 -1
  5. package/android/src/main/java/com/ft/sdk/reactnative/extensions/ReactDrawablesExt.java +155 -0
  6. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/NoopTextPropertiesResolver.java +23 -0
  7. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/ReactNativeSessionReplayExtensionSupport.java +57 -0
  8. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/ShadowNodeWrapper.java +84 -0
  9. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/TextPropertiesResolver.java +20 -0
  10. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/DefaultMapper.java +78 -0
  11. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/Pair.java +11 -0
  12. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactEditTextMapper.java +136 -0
  13. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactNativeImageViewMapper.java +117 -0
  14. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactTextMapper.java +57 -0
  15. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactViewGroupMapper.java +22 -0
  16. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactViewModalMapper.java +21 -0
  17. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/resources/ReactDrawableCopier.java +35 -0
  18. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/DrawableUtils.java +34 -0
  19. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/ReflectionUtils.java +43 -0
  20. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/text/FabricTextViewUtils.java +69 -0
  21. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/text/LegacyTextViewUtils.java +97 -0
  22. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/text/TextViewUtils.java +184 -0
  23. package/android/src/main/java/com/ft/sdk/reactnative/utils/ColorUtils.java +24 -0
  24. package/android/src/newarch/java/com/ft/sdk/reactnative/FTSessionReplayModule.java +30 -0
  25. package/android/src/oldarch/java/com/ft/sdk/reactnative/FTSessionReplayModule.java +25 -0
  26. package/android/src/rn69/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +100 -0
  27. package/android/src/rn75/java/com/ft/sdk/reactnative/sessionreplay/extensions/LengthPercentageExt.java +27 -0
  28. package/android/src/rn75/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +116 -0
  29. package/android/src/rn76/java/com/ft/sdk/reactnative/sessionreplay/extensions/LengthPercentageExt.java +38 -0
  30. package/android/src/rn76/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +117 -0
  31. package/android/src/rn79/java/com/ft/sdk/reactnative/sessionreplay/extensions/LengthPercentageExt.java +38 -0
  32. package/android/src/rn79/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +132 -0
  33. package/android/src/rn80/java/com/ft/sdk/reactnative/sessionreplay/extensions/ComputedBorderRadiusExt.java +58 -0
  34. package/android/src/rn80/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +190 -0
  35. package/android/src/rnlegacy/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +120 -0
  36. package/android/src/rnpost74/java/com/ft/sdk/reactnative/FTMobilePackage.java +3 -4
  37. package/android/src/rnpre74/java/com/ft/sdk/reactnative/FTMobilePackage.java +1 -0
  38. package/ios/FTMobileReactNative.m +3 -2
  39. package/ios/FTRCTTextViewRecorder.h +33 -0
  40. package/ios/FTRCTTextViewRecorder.m +120 -0
  41. package/ios/FTReactNativeLog.m +1 -1
  42. package/ios/FTReactNativeRUM.h +0 -1
  43. package/ios/FTReactNativeSessionReplay.h +6 -0
  44. package/ios/FTReactNativeSessionReplay.mm +44 -0
  45. package/ios/FTReactNativeTrace.h +0 -2
  46. package/ios/FTReactNativeTrace.m +0 -2
  47. package/ios/FtMobileAgent.xcodeproj/project.pbxproj +6 -0
  48. package/lib/commonjs/ft_logger.js.map +1 -1
  49. package/lib/commonjs/ft_mobile_agent.js.map +1 -1
  50. package/lib/commonjs/ft_rum.js.map +1 -1
  51. package/lib/commonjs/ft_session_replay.js +34 -0
  52. package/lib/commonjs/ft_session_replay.js.map +1 -0
  53. package/lib/commonjs/ft_tracing.js.map +1 -1
  54. package/lib/commonjs/index.js +19 -0
  55. package/lib/commonjs/index.js.map +1 -1
  56. package/lib/commonjs/version.js +1 -1
  57. package/lib/commonjs/version.js.map +1 -1
  58. package/lib/module/ft_logger.js.map +1 -1
  59. package/lib/module/ft_mobile_agent.js.map +1 -1
  60. package/lib/module/ft_rum.js.map +1 -1
  61. package/lib/module/ft_session_replay.js +29 -0
  62. package/lib/module/ft_session_replay.js.map +1 -0
  63. package/lib/module/ft_tracing.js.map +1 -1
  64. package/lib/module/index.js +2 -1
  65. package/lib/module/index.js.map +1 -1
  66. package/lib/module/version.js +1 -1
  67. package/lib/module/version.js.map +1 -1
  68. package/lib/typescript/ft_session_replay.d.ts +27 -0
  69. package/lib/typescript/index.d.ts +2 -1
  70. package/lib/typescript/version.d.ts +1 -1
  71. package/package.json +1 -1
  72. package/src/ft_logger.tsx +0 -1
  73. package/src/ft_mobile_agent.tsx +0 -1
  74. package/src/ft_rum.tsx +1 -3
  75. package/src/ft_session_replay.tsx +34 -0
  76. package/src/ft_tracing.tsx +0 -1
  77. package/src/index.tsx +3 -1
  78. package/src/version.ts +1 -1
@@ -0,0 +1,120 @@
1
+ //
2
+ // FTRCTTextViewRecorder.m
3
+ // FTMobileReactNativeSDK
4
+ //
5
+ // Created by hulilei on 2024/9/25.
6
+ //
7
+
8
+ #import "FTRCTTextViewRecorder.h"
9
+ #import <React/RCTUIManagerUtils.h>
10
+ #import <React/RCTTextView.h>
11
+ #import <React/RCTShadowView.h>
12
+ #import <React/RCTRawTextShadowView.h>
13
+ #import <React/RCTTextShadowView.h>
14
+ #import <React/RCTVirtualTextShadowView.h>
15
+ #import <FTMobileSDK/FTSRWireframe.h>
16
+ #import <FTMobileSDK/FTViewAttributes.h>
17
+ #import <FTMobileSDK/FTSRUtils.h>
18
+ #import <FTMobileSDK/FTSystemColors.h>
19
+ #import <FTMobileSDK/FTViewTreeRecordingContext.h>
20
+ #import <FTMobileSDK/FTSRUtils.h>
21
+ #import <React/RCTShadowView+Layout.h>
22
+ @interface FTRCTTextViewRecorder ()
23
+ @property (nonatomic, strong) RCTUIManager *uiManager;
24
+ @end
25
+ @implementation FTRCTTextViewRecorder
26
+ -(instancetype)initWithUIManager:(RCTUIManager *)uiManager{
27
+ self = [super init];
28
+ if(self){
29
+ _identifier = [[NSUUID UUID] UUIDString];
30
+ _uiManager = uiManager;
31
+ _textObfuscator = ^id<FTSRTextObfuscatingProtocol> _Nullable(FTViewTreeRecordingContext * _Nonnull context,FTViewAttributes *attributes) {
32
+ return [FTSRTextObfuscatingFactory staticTextObfuscator:[attributes resolveTextAndInputPrivacyLevel:context.recorder]];
33
+ };
34
+ }
35
+ return self;
36
+ }
37
+ - (FTSRNodeSemantics *)recorder:(nonnull UIView *)view attributes:(nonnull FTViewAttributes *)attributes context:(nonnull FTViewTreeRecordingContext *)context {
38
+ if(![view isKindOfClass:[RCTTextView class]]){
39
+ return nil;
40
+ }
41
+ RCTTextView *textView = (RCTTextView *)view;
42
+ NSNumber *tag = textView.reactTag;
43
+
44
+ __block RCTShadowView *shadowView = nil;
45
+ dispatch_queue_t queue = RCTGetUIManagerQueue();
46
+ dispatch_sync(queue, ^{
47
+ shadowView = [self.uiManager shadowViewForReactTag:tag];
48
+ });
49
+
50
+ if([shadowView isKindOfClass:[RCTTextShadowView class]]){
51
+ RCTTextShadowView *shadow = (RCTTextShadowView *)shadowView;
52
+ NSString *text = [self extractTextFromSubViews:[shadowView reactSubviews]];
53
+ FTRCTTextViewBuilder *builder = [[FTRCTTextViewBuilder alloc]init];
54
+ builder.wireframeID = [context.viewIDGenerator SRViewID:textView nodeRecorder:self];
55
+ builder.attributes = attributes;
56
+ builder.text = text;
57
+ builder.textAlignment = shadow.textAttributes.alignment;
58
+ builder.textColor = shadow.textAttributes.foregroundColor?shadow.textAttributes.foregroundColor:[UIColor blackColor];
59
+ builder.textObfuscator = self.textObfuscator(context,attributes);
60
+ builder.fontSize = shadow.textAttributes.fontSize;
61
+ builder.wireframeRect = attributes.frame;
62
+ builder.contentRect = shadow.contentFrame;
63
+
64
+ FTSpecificElement *element = [[FTSpecificElement alloc]initWithSubtreeStrategy:NodeSubtreeStrategyIgnore];
65
+ element.nodes = @[builder];
66
+ return element;
67
+ }
68
+ return [FTInvisibleElement constant];
69
+ }
70
+ - (NSString *)extractTextFromSubViews:(NSArray<RCTShadowView *>*)subViews{
71
+ if(subViews && subViews.count>0){
72
+ NSString *result = @"";
73
+ for (id view in subViews) {
74
+ if ([view isKindOfClass:[RCTRawTextShadowView class]]){
75
+ RCTRawTextShadowView *textView = (RCTRawTextShadowView *)view;
76
+ if (textView.text) {
77
+ result = [result stringByAppendingString:textView.text];
78
+ }
79
+ }
80
+ if ([view isKindOfClass:[RCTVirtualTextShadowView class]]){
81
+ NSString *str = [self extractTextFromSubViews:[view reactSubviews]];
82
+ if (str) {
83
+ result = [result stringByAppendingString:str];
84
+ }
85
+ }
86
+ }
87
+ return result;
88
+ }
89
+ return nil;
90
+ }
91
+ @end
92
+
93
+ @implementation FTRCTTextViewBuilder
94
+ - (nonnull NSArray<FTSRWireframe *> *)buildWireframes {
95
+ CGRect frame = [self relativeIntersectedRect];
96
+ FTSRTextWireframe *wireframe = [[FTSRTextWireframe alloc]initWithIdentifier:self.wireframeID frame:frame];
97
+
98
+ wireframe.text = [self.textObfuscator mask:self.text];
99
+ wireframe.border = [[FTSRShapeBorder alloc]initWithColor:[FTSRUtils colorHexString:self.attributes.layerBorderColor] width:self.attributes.layerBorderWidth];
100
+ wireframe.shapeStyle = [[FTSRShapeStyle alloc]initWithBackgroundColor:[FTSRUtils colorHexString:self.attributes.backgroundColor.CGColor] cornerRadius:@(self.attributes.layerCornerRadius) opacity:@(self.attributes.alpha)];
101
+ wireframe.textStyle = [[FTSRTextStyle alloc]initWithSize:self.fontSize?self.fontSize:14 color:[FTSRUtils colorHexString:self.textColor.CGColor] family:nil];
102
+ FTSRTextPosition *textPosition = [[FTSRTextPosition alloc]init];
103
+ textPosition.alignment = [[FTAlignment alloc]initWithTextAlignment:self.textAlignment vertical:@"top"];
104
+ CGRect textFrame = [self textFrame];
105
+ textPosition.padding = [[FTPadding alloc]initWithLeft:CGRectGetMinX(frame)-CGRectGetMinX(textFrame) top:CGRectGetMinY(frame)-CGRectGetMinY(textFrame) right:CGRectGetMaxX(frame)-CGRectGetMaxX(textFrame) bottom:CGRectGetMaxY(frame)-CGRectGetMaxY(textFrame)];
106
+ wireframe.textPosition = textPosition;
107
+ wireframe.clip = [[FTSRContentClip alloc] initWithFrame:self.wireframeRect clip:self.attributes.clip];;
108
+ return @[wireframe];
109
+ }
110
+
111
+ - (CGRect)relativeIntersectedRect{
112
+ return CGRectMake(self.attributes.frame.origin.x, self.attributes.frame.origin.y, MAX(self.contentRect.size.width, self.attributes.frame.size.width), MAX(self.contentRect.size.height, self.attributes.frame.size.height));
113
+ }
114
+ - (CGRect)textFrame{
115
+ return CGRectMake(self.attributes.frame.origin.x+self.contentRect.origin.x, self.attributes.frame.origin.y+self.contentRect.origin.y, self.contentRect.size.width, self.contentRect.size.height);
116
+ }
117
+ @end
118
+
119
+
120
+
@@ -45,7 +45,7 @@ RCT_REMAP_METHOD(logging,
45
45
  findEventsWithResolver:(RCTPromiseResolveBlock)resolve
46
46
  rejecter:(RCTPromiseRejectBlock)reject){
47
47
 
48
- LogStatus logStatus =(LogStatus)[status integerValue];
48
+ FTLogStatus logStatus =(FTLogStatus)[status integerValue];
49
49
  [[FTLogger sharedInstance] log:content statusType:logStatus property:property];
50
50
  resolve(nil);
51
51
  }
@@ -16,4 +16,3 @@ NS_ASSUME_NONNULL_BEGIN
16
16
  @end
17
17
 
18
18
  NS_ASSUME_NONNULL_END
19
-
@@ -0,0 +1,6 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import <React/RCTBridgeModule.h>
3
+
4
+ @interface FTReactNativeSessionReplay : NSObject <RCTBridgeModule>
5
+
6
+ @end
@@ -0,0 +1,44 @@
1
+ #import "FTReactNativeSessionReplay.h"
2
+ #import <FTMobileSDK/FTRumSessionReplay.h>
3
+ #import <FTMobileSDK/FTSessionReplayConfig+Private.h>
4
+ #import <React/RCTConvert.h>
5
+ #import "FTRCTTextViewRecorder.h"
6
+ @implementation FTReactNativeSessionReplay
7
+ @synthesize bridge = _bridge;
8
+
9
+ RCT_EXPORT_MODULE()
10
+
11
+ // Example method
12
+ // See // https://reactnative.dev/docs/native-modules-ios
13
+ RCT_REMAP_METHOD(sessionReplayConfig,
14
+ context:(NSDictionary *)context
15
+ resolve:(RCTPromiseResolveBlock)resolve
16
+ reject:(RCTPromiseRejectBlock)reject)
17
+ {
18
+ FTSessionReplayConfig *config = [[FTSessionReplayConfig alloc]init];
19
+ if([context.allKeys containsObject:@"sampleRate"]){
20
+ config.sampleRate = [RCTConvert double:context[@"sampleRate"]]*100;
21
+ }
22
+ if([context.allKeys containsObject:@"privacy"]){
23
+ int privacy = [context[@"privacy"] intValue];
24
+ switch (privacy){
25
+ case 0:
26
+ config.privacy = FTSRPrivacyMask;
27
+ break;
28
+ case 1:
29
+ config.privacy = FTSRPrivacyAllow;
30
+ break;
31
+ case 2:
32
+ config.privacy = FTSRPrivacyMaskUserInput;
33
+ break;
34
+ }
35
+ }
36
+ FTRCTTextViewRecorder *recorder = [[FTRCTTextViewRecorder alloc]initWithUIManager:_bridge.uiManager];
37
+ [config setAdditionalNodeRecorders:@[recorder]];
38
+ [[FTRumSessionReplay sharedInstance] startWithSessionReplayConfig:config];
39
+ resolve(nil);
40
+ }
41
+ + (BOOL)requiresMainQueueSetup {
42
+ return NO;
43
+ }
44
+ @end
@@ -16,5 +16,3 @@ NS_ASSUME_NONNULL_BEGIN
16
16
  @end
17
17
 
18
18
  NS_ASSUME_NONNULL_END
19
-
20
-
@@ -7,7 +7,6 @@
7
7
  //
8
8
 
9
9
  #import "FTReactNativeTrace.h"
10
- #import "FtMobileAgent.h"
11
10
  #import <FTMobileSDK/FTMobileAgent.h>
12
11
  #import <FTMobileSDK/FTExternalDataManager.h>
13
12
  #import <FTMobileSDK/FTResourceMetricsModel.h>
@@ -55,4 +54,3 @@ RCT_REMAP_METHOD(getTraceHeaderFields,
55
54
 
56
55
  @end
57
56
 
58
-
@@ -7,6 +7,7 @@
7
7
  objects = {
8
8
 
9
9
  /* Begin PBXBuildFile section */
10
+ 17E2407F2CA93E2600E8014B /* FTReactNativeSessionReplay.mm in Sources */ = {isa = PBXBuildFile; fileRef = 17E2407E2CA93E2600E8014B /* FTReactNativeSessionReplay.mm */; };
10
11
  17C492802D43B4F900487920 /* FTReactNativeUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 17C4927F2D43B4F900487920 /* FTReactNativeUtils.m */; };
11
12
  /* End PBXBuildFile section */
12
13
 
@@ -26,6 +27,8 @@
26
27
  134814201AA4EA6300B7C361 /* libFtMobileAgent.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libFtMobileAgent.a; sourceTree = BUILT_PRODUCTS_DIR; };
27
28
  17C4927E2D43B4F900487920 /* FTReactNativeUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FTReactNativeUtils.h; sourceTree = "<group>"; };
28
29
  17C4927F2D43B4F900487920 /* FTReactNativeUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FTReactNativeUtils.m; sourceTree = "<group>"; };
30
+ 17E2407D2CA93E2600E8014B /* FTReactNativeSessionReplay.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FTReactNativeSessionReplay.h; sourceTree = "<group>"; };
31
+ 17E2407E2CA93E2600E8014B /* FTReactNativeSessionReplay.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FTReactNativeSessionReplay.mm; sourceTree = "<group>"; };
29
32
  7C3C28A527684CDF009DB8E2 /* FTMobileReactNative.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FTMobileReactNative.h; sourceTree = "<group>"; };
30
33
  7C3C28A627684CDF009DB8E2 /* FTMobileReactNative.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FTMobileReactNative.m; sourceTree = "<group>"; };
31
34
  7C3C28A727684D03009DB8E2 /* FTReactNativeRUM.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FTReactNativeRUM.h; sourceTree = "<group>"; };
@@ -58,6 +61,8 @@
58
61
  58B511D21A9E6C8500147676 = {
59
62
  isa = PBXGroup;
60
63
  children = (
64
+ 17E2407D2CA93E2600E8014B /* FTReactNativeSessionReplay.h */,
65
+ 17E2407E2CA93E2600E8014B /* FTReactNativeSessionReplay.mm */,
61
66
  7C3C28AB27684D36009DB8E2 /* FTReactNativeLog.h */,
62
67
  7C3C28AC27684D36009DB8E2 /* FTReactNativeLog.m */,
63
68
  7C3C28A927684D21009DB8E2 /* FTReactNativeTrace.h */,
@@ -130,6 +135,7 @@
130
135
  buildActionMask = 2147483647;
131
136
  files = (
132
137
  17C492802D43B4F900487920 /* FTReactNativeUtils.m in Sources */,
138
+ 17E2407F2CA93E2600E8014B /* FTReactNativeSessionReplay.mm in Sources */,
133
139
  );
134
140
  runOnlyForDeploymentPostprocessing = 0;
135
141
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","FTLogStatus","exports","FTLogCacheDiscard","FTReactNativeLogWrapper","constructor","NativeModules","FTReactNativeLog","logConfig","config","logger","logging","content","logStatus","property","logWithStatusString","toString","enumLogStatus"],"sources":["ft_logger.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n/**\n * Set log level.\n */\n export enum FTLogStatus {\n info, warning, error, critical, ok,\n };\n/**\n * Log discard method.\n */\n export enum FTLogCacheDiscard { discard, discardOldest };\n/**\n * Configure log output configuration.\n * @param sampleRate sampling rate\n * @param enableLinkRumData whether to link with RUM\n * @param enableCustomLog whether to enable custom logs\n * @param discardStrategy log discard strategy\n * @param logLevelFilters log level filter\n * @param globalContext custom global parameters\n * @param logCacheLimitCount get maximum log entry count limit [1000,), default 5000\n */\n export interface FTLogConfig{\n sampleRate?: number,\n enableLinkRumData?: boolean,\n enableCustomLog?: boolean,\n discardStrategy?: FTLogCacheDiscard,\n logLevelFilters?: Array<FTLogStatus>,\n globalContext?:object,\n logCacheLimitCount?: number\n };\n\n type FTReactNativeLogType = {\n /**\n *Configure log output configuration to enable log collection.\n */\n logConfig(config: FTLogConfig): Promise<void>;\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logging(content:String,logStatus:FTLogStatus,property?:object): Promise<void>;\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logWithStatusString(content:String,logStatus:String,property?:object): Promise<void>;\n };\n\n class FTReactNativeLogWrapper {\n private logger: FTReactNativeLogType = NativeModules.FTReactNativeLog;\n\n /**\n *Configure log output configuration to enable log collection.\n */\n logConfig(config:FTLogConfig): Promise<void>{\n return this.logger.logConfig(config);\n }\n\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logging(content:String,logStatus:FTLogStatus|String,property?:object): Promise<void>{\n if((typeof logStatus)==='string'){\n return this.logger.logWithStatusString(content,logStatus.toString(),property)\n }\n let enumLogStatus: FTLogStatus = logStatus as FTLogStatus;\n return this.logger.logging(content,enumLogStatus,property);\n }\n }\n export const FTReactNativeLog: FTReactNativeLogWrapper = new FTReactNativeLogWrapper();\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAA6C,SAAAC,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAC7C;AACA;AACA;AAFA,IAGagB,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAEtB;AACF;AACA;AACA;AAFA,IAGaE,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASE;AAuBD,MAAMC,uBAAuB,CAAE;EAAAC,YAAA;IAAAvB,eAAA,iBACUwB,0BAAa,CAACC,gBAAgB;EAAA;EAEtE;AACF;AACA;EACGC,SAASA,CAACC,MAAkB,EAAgB;IAC1C,OAAO,IAAI,CAACC,MAAM,CAACF,SAAS,CAACC,MAAM,CAAC;EACtC;;EAEA;AACH;AACA;AACA;AACA;AACA;EACGE,OAAOA,CAACC,OAAc,EAACC,SAA4B,EAACC,QAAgB,EAAgB;IAClF,IAAI,OAAOD,SAAS,KAAI,QAAQ,EAAC;MAC/B,OAAO,IAAI,CAACH,MAAM,CAACK,mBAAmB,CAACH,OAAO,EAACC,SAAS,CAACG,QAAQ,CAAC,CAAC,EAACF,QAAQ,CAAC;IAC/E;IACA,IAAIG,aAA0B,GAAGJ,SAAwB;IACzD,OAAO,IAAI,CAACH,MAAM,CAACC,OAAO,CAACC,OAAO,EAACK,aAAa,EAACH,QAAQ,CAAC;EAC5D;AACF;AACO,MAAMP,gBAAyC,GAAAL,OAAA,CAAAK,gBAAA,GAAG,IAAIH,uBAAuB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","FTLogStatus","exports","FTLogCacheDiscard","FTReactNativeLogWrapper","constructor","NativeModules","FTReactNativeLog","logConfig","config","logger","logging","content","logStatus","property","logWithStatusString","toString","enumLogStatus"],"sources":["ft_logger.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n/**\n * Set log level.\n */\n export enum FTLogStatus {\n info, warning, error, critical, ok,\n };\n/**\n * Log discard method.\n */\n export enum FTLogCacheDiscard { discard, discardOldest };\n/**\n * Configure log output configuration.\n * @param sampleRate sampling rate\n * @param enableLinkRumData whether to link with RUM\n * @param enableCustomLog whether to enable custom logs\n * @param discardStrategy log discard strategy\n * @param logLevelFilters log level filter\n * @param globalContext custom global parameters\n * @param logCacheLimitCount get maximum log entry count limit [1000,), default 5000\n */\n export interface FTLogConfig{\n sampleRate?: number,\n enableLinkRumData?: boolean,\n enableCustomLog?: boolean,\n discardStrategy?: FTLogCacheDiscard,\n logLevelFilters?: Array<FTLogStatus>,\n globalContext?:object,\n logCacheLimitCount?: number\n };\n\n type FTReactNativeLogType = {\n /**\n *Configure log output configuration to enable log collection.\n */\n logConfig(config: FTLogConfig): Promise<void>;\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logging(content:String,logStatus:FTLogStatus,property?:object): Promise<void>;\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logWithStatusString(content:String,logStatus:String,property?:object): Promise<void>;\n };\n\n class FTReactNativeLogWrapper {\n private logger: FTReactNativeLogType = NativeModules.FTReactNativeLog;\n /**\n *Configure log output configuration to enable log collection.\n */\n logConfig(config:FTLogConfig): Promise<void>{\n return this.logger.logConfig(config);\n }\n\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logging(content:String,logStatus:FTLogStatus|String,property?:object): Promise<void>{\n if((typeof logStatus)==='string'){\n return this.logger.logWithStatusString(content,logStatus.toString(),property)\n }\n let enumLogStatus: FTLogStatus = logStatus as FTLogStatus;\n return this.logger.logging(content,enumLogStatus,property);\n }\n }\n export const FTReactNativeLog: FTReactNativeLogWrapper = new FTReactNativeLogWrapper();\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAA6C,SAAAC,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAC7C;AACA;AACA;AAFA,IAGagB,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAEtB;AACF;AACA;AACA;AAFA,IAGaE,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASE;AAuBD,MAAMC,uBAAuB,CAAE;EAAAC,YAAA;IAAAvB,eAAA,iBACUwB,0BAAa,CAACC,gBAAgB;EAAA;EACtE;AACF;AACA;EACGC,SAASA,CAACC,MAAkB,EAAgB;IAC1C,OAAO,IAAI,CAACC,MAAM,CAACF,SAAS,CAACC,MAAM,CAAC;EACtC;;EAEA;AACH;AACA;AACA;AACA;AACA;EACGE,OAAOA,CAACC,OAAc,EAACC,SAA4B,EAACC,QAAgB,EAAgB;IAClF,IAAI,OAAOD,SAAS,KAAI,QAAQ,EAAC;MAC/B,OAAO,IAAI,CAACH,MAAM,CAACK,mBAAmB,CAACH,OAAO,EAACC,SAAS,CAACG,QAAQ,CAAC,CAAC,EAACF,QAAQ,CAAC;IAC/E;IACA,IAAIG,aAA0B,GAAGJ,SAAwB;IACzD,OAAO,IAAI,CAACH,MAAM,CAACC,OAAO,CAACC,OAAO,EAACK,aAAa,EAACH,QAAQ,CAAC;EAC5D;AACF;AACO,MAAMP,gBAAyC,GAAAL,OAAA,CAAAK,gBAAA,GAAG,IAAIH,uBAAuB,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_version","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EnvType","exports","FTDBCacheDiscard","FTMobileReactNativeWrapper","constructor","NativeModules","FTMobileReactNative","sdkConfig","config","serverUrl","length","datakitUrl","pkgInfo","sdkVersion","sdk","bindRUMUserData","userId","userName","userEmail","extra","unbindRUMUserData","appendGlobalContext","context","appendLogGlobalContext","appendRUMGlobalContext","trackEventFromExtension","identifier","flushSyncData","shutDown","clearAllData"],"sources":["ft_mobile_agent.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { version as sdkVersion } from './version'\n\n/**\n * Environment.\n */\nexport enum EnvType {\n prod, gray, pre, common, local\n};\nexport enum FTDBCacheDiscard { discard, discardOldest };\n/**\n * Configure SDK startup parameters.\n * @param serverUrl data reporting address, deprecated, use [datakitUrl] instead\n * @param datakitUrl datakit access URL address, example: http://10.0.0.1:9529, default port 9529. Choose one between datakit and dataway configuration\n * @param datawayUrl dataway access URL address, example: http://10.0.0.1:9528, default port 9528, note: the device installing the SDK needs to be able to access this address. Note: choose one between datakit and dataway configuration\n * @param clientToken dataway authentication token, needs to be configured together with [datawayUrl]\n * @param debug set whether to allow log printing, default false\n * @param env environment, default prod\n * @param service set the name of the business or service it belongs to, default: `df_rum_ios`, `df_rum_android`\n * @param autoSync whether data is automatically synchronized and uploaded, default: true\n * @param syncPageSize number of synchronized items per request during data synchronization, minimum value 5, default: 10\n * @param syncSleepTime interval time between each request during data synchronization, unit milliseconds, 0 < syncSleepTime < 100\n * @param enableDataIntegerCompatible whether to enable data integer compatibility during data synchronization, enabled by default\n * @param compressIntakeRequests whether to compress synchronized data\n * @param globalContext custom global parameters\n * @param groupIdentifiers iOS side sets the AppGroups Identifier array corresponding to the collected Widget Extension\n * @param enableLimitWithDbSize set whether to enable using db to limit data size, after enabling, `FTLogConfig.logCacheLimitCount` and `FTRUMConfig.rumCacheLimitCount` will no longer take effect\n * @param dbCacheLimit db cache limit size, minimum value 30MB, default 100MB, unit byte\n * @param dbDiscardStrategy db data discard strategy\n * @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\n * @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\n */\n export interface FTMobileConfig {\n /**\n * @deprecated \"serverUrl\" parameter renamed to \"datakitUrl\"\n */\n serverUrl?: string,\n datakitUrl?: string,\n datawayUrl?: string,\n clientToken?: string,\n debug?:boolean,\n envType?:EnvType,\n env?:string,\n service?:string,\n autoSync?:boolean,\n syncPageSize?:number,\n syncSleepTime?:number,\n enableDataIntegerCompatible?:boolean,\n compressIntakeRequests?:boolean,\n globalContext?:object,\n groupIdentifiers?:Array<string>,\n enableLimitWithDbSize?:boolean,\n dbCacheLimit?:number,\n dbDiscardStrategy?:FTDBCacheDiscard,\n pkgInfo?: string,\n dataModifier?:object,\n lineDataModifier?:object\n }\n\n\ntype FTMobileReactNativeType = {\n\n /**\n * SDK initialization method.\n * @param config SDK initialization configuration items.\n * @returns a Promise.\n */\n sdkConfig(config:FTMobileConfig): Promise<void>;\n /**\n * Bind user.\n * @param userId user ID.\n * @param userName user name.\n * @param userEmail user email\n * @param extra additional user information\n * @returns a Promise.\n */\n bindRUMUserData(userId: string,userName?:string,userEmail?:string,extra?:object): Promise<void>;\n /**\n * Unbind user.\n * @returns a Promise.\n */\n unbindRUMUserData(): Promise<void>;\n /**\n * Add custom global parameters. Applies to RUM and Log data\n * @param context custom global parameters.\n * @returns a Promise.\n */\n appendGlobalContext(context:object):Promise<void>;\n /**\n * Add custom RUM global parameters. Applies to RUM data\n * @param context custom RUM global parameters.\n * @returns a Promise.\n */\n appendRUMGlobalContext(context:object):Promise<void>;\n /**\n * Add custom RUM and Log global parameters. Applies to Log data\n * @param context custom Log global parameters.\n * @returns a Promise.\n */\n appendLogGlobalContext(context:object):Promise<void>;\n /**\n * Actively synchronize data. When `FTMobileConfig.autoSync=false` is configured, you need to actively trigger this method to synchronize data.\n * @returns a Promise.\n */\n flushSyncData():Promise<void>;\n\n /**\n * Synchronize events in iOS Widget Extension, iOS only\n * @param groupIdentifier app groupId\n * @returns {groupIdentifier:string,datas:Array<object>} can be used to view data collected in Extension.\n */\n trackEventFromExtension(identifier:string): Promise<object>\n /**\n * Shut down objects currently running in the SDK\n */\n shutDown():Promise<void>\n /**\n * Clear all data that has not yet been uploaded to the server.\n */\n clearAllData():Promise<void>\n };\n\n class FTMobileReactNativeWrapper implements FTMobileReactNativeType {\n private sdk:FTMobileReactNativeType = NativeModules.FTMobileReactNative;\n\n sdkConfig(config:FTMobileConfig): Promise<void> {\n if(config.serverUrl != null && config.serverUrl.length>0 && config.datakitUrl == null){\n config.datakitUrl = config.serverUrl;\n }\n config.pkgInfo = sdkVersion;\n return this.sdk.sdkConfig(config);\n }\n bindRUMUserData(userId: string,userName?:string,userEmail?:string,extra?:object): Promise<void> {\n return this.sdk.bindRUMUserData(userId,userName,userEmail,extra);\n }\n unbindRUMUserData(): Promise<void> {\n return this.sdk.unbindRUMUserData();\n }\n appendGlobalContext(context: object): Promise<void> {\n return this.sdk.appendGlobalContext(context);\n }\n appendLogGlobalContext(context: object): Promise<void> {\n return this.sdk.appendLogGlobalContext(context);\n }\n appendRUMGlobalContext(context: object): Promise<void> {\n return this.sdk.appendRUMGlobalContext(context);\n }\n trackEventFromExtension(identifier:string) :Promise<object>{\n return this.sdk.trackEventFromExtension(identifier);\n }\n flushSyncData():Promise<void>{\n return this.sdk.flushSyncData();\n }\n shutDown():Promise<void>{\n return this.sdk.shutDown();\n }\n clearAllData():Promise<void>{\n return this.sdk.clearAllData();\n }\n }\nexport const FTMobileReactNative: FTMobileReactNativeType = new FTMobileReactNativeWrapper();\n\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_version","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EnvType","exports","FTDBCacheDiscard","FTMobileReactNativeWrapper","constructor","NativeModules","FTMobileReactNative","sdkConfig","config","serverUrl","length","datakitUrl","pkgInfo","sdkVersion","sdk","bindRUMUserData","userId","userName","userEmail","extra","unbindRUMUserData","appendGlobalContext","context","appendLogGlobalContext","appendRUMGlobalContext","trackEventFromExtension","identifier","flushSyncData","shutDown","clearAllData"],"sources":["ft_mobile_agent.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { version as sdkVersion } from './version'\n\n/**\n * Environment.\n */\nexport enum EnvType {\n prod, gray, pre, common, local\n};\nexport enum FTDBCacheDiscard { discard, discardOldest };\n/**\n * Configure SDK startup parameters.\n * @param serverUrl data reporting address, deprecated, use [datakitUrl] instead\n * @param datakitUrl datakit access URL address, example: http://10.0.0.1:9529, default port 9529. Choose one between datakit and dataway configuration\n * @param datawayUrl dataway access URL address, example: http://10.0.0.1:9528, default port 9528, note: the device installing the SDK needs to be able to access this address. Note: choose one between datakit and dataway configuration\n * @param clientToken dataway authentication token, needs to be configured together with [datawayUrl]\n * @param debug set whether to allow log printing, default false\n * @param env environment, default prod\n * @param service set the name of the business or service it belongs to, default: `df_rum_ios`, `df_rum_android`\n * @param autoSync whether data is automatically synchronized and uploaded, default: true\n * @param syncPageSize number of synchronized items per request during data synchronization, minimum value 5, default: 10\n * @param syncSleepTime interval time between each request during data synchronization, unit milliseconds, 0 < syncSleepTime < 100\n * @param enableDataIntegerCompatible whether to enable data integer compatibility during data synchronization, enabled by default\n * @param compressIntakeRequests whether to compress synchronized data\n * @param globalContext custom global parameters\n * @param groupIdentifiers iOS side sets the AppGroups Identifier array corresponding to the collected Widget Extension\n * @param enableLimitWithDbSize set whether to enable using db to limit data size, after enabling, `FTLogConfig.logCacheLimitCount` and `FTRUMConfig.rumCacheLimitCount` will no longer take effect\n * @param dbCacheLimit db cache limit size, minimum value 30MB, default 100MB, unit byte\n * @param dbDiscardStrategy db data discard strategy\n * @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\n * @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\n */\n export interface FTMobileConfig {\n /**\n * @deprecated \"serverUrl\" parameter renamed to \"datakitUrl\"\n */\n serverUrl?: string,\n datakitUrl?: string,\n datawayUrl?: string,\n clientToken?: string,\n debug?:boolean,\n envType?:EnvType,\n env?:string,\n service?:string,\n autoSync?:boolean,\n syncPageSize?:number,\n syncSleepTime?:number,\n enableDataIntegerCompatible?:boolean,\n compressIntakeRequests?:boolean,\n globalContext?:object,\n groupIdentifiers?:Array<string>,\n enableLimitWithDbSize?:boolean,\n dbCacheLimit?:number,\n dbDiscardStrategy?:FTDBCacheDiscard,\n pkgInfo?: string,\n dataModifier?:object,\n lineDataModifier?:object\n }\n\n\ntype FTMobileReactNativeType = {\n\n /**\n * SDK initialization method.\n * @param config SDK initialization configuration items.\n * @returns a Promise.\n */\n sdkConfig(config:FTMobileConfig): Promise<void>;\n /**\n * Bind user.\n * @param userId user ID.\n * @param userName user name.\n * @param userEmail user email\n * @param extra additional user information\n * @returns a Promise.\n */\n bindRUMUserData(userId: string,userName?:string,userEmail?:string,extra?:object): Promise<void>;\n /**\n * Unbind user.\n * @returns a Promise.\n */\n unbindRUMUserData(): Promise<void>;\n /**\n * Add custom global parameters. Applies to RUM and Log data\n * @param context custom global parameters.\n * @returns a Promise.\n */\n appendGlobalContext(context:object):Promise<void>;\n /**\n * Add custom RUM global parameters. Applies to RUM data\n * @param context custom RUM global parameters.\n * @returns a Promise.\n */\n appendRUMGlobalContext(context:object):Promise<void>;\n /**\n * Add custom RUM and Log global parameters. Applies to Log data\n * @param context custom Log global parameters.\n * @returns a Promise.\n */\n appendLogGlobalContext(context:object):Promise<void>;\n /**\n * Actively synchronize data. When `FTMobileConfig.autoSync=false` is configured, you need to actively trigger this method to synchronize data.\n * @returns a Promise.\n */\n flushSyncData():Promise<void>;\n\n /**\n * Synchronize events in iOS Widget Extension, iOS only\n * @param groupIdentifier app groupId\n * @returns {groupIdentifier:string,datas:Array<object>} can be used to view data collected in Extension.\n */\n trackEventFromExtension(identifier:string): Promise<object>\n /**\n * Shut down objects currently running in the SDK\n */\n shutDown():Promise<void>\n /**\n * Clear all data that has not yet been uploaded to the server.\n */\n clearAllData():Promise<void>\n };\n\n class FTMobileReactNativeWrapper implements FTMobileReactNativeType {\n private sdk:FTMobileReactNativeType = NativeModules.FTMobileReactNative;\n sdkConfig(config:FTMobileConfig): Promise<void> {\n if(config.serverUrl != null && config.serverUrl.length>0 && config.datakitUrl == null){\n config.datakitUrl = config.serverUrl;\n }\n config.pkgInfo = sdkVersion;\n return this.sdk.sdkConfig(config);\n }\n bindRUMUserData(userId: string,userName?:string,userEmail?:string,extra?:object): Promise<void> {\n return this.sdk.bindRUMUserData(userId,userName,userEmail,extra);\n }\n unbindRUMUserData(): Promise<void> {\n return this.sdk.unbindRUMUserData();\n }\n appendGlobalContext(context: object): Promise<void> {\n return this.sdk.appendGlobalContext(context);\n }\n appendLogGlobalContext(context: object): Promise<void> {\n return this.sdk.appendLogGlobalContext(context);\n }\n appendRUMGlobalContext(context: object): Promise<void> {\n return this.sdk.appendRUMGlobalContext(context);\n }\n trackEventFromExtension(identifier:string) :Promise<object>{\n return this.sdk.trackEventFromExtension(identifier);\n }\n flushSyncData():Promise<void>{\n return this.sdk.flushSyncData();\n }\n shutDown():Promise<void>{\n return this.sdk.shutDown();\n }\n clearAllData():Promise<void>{\n return this.sdk.clearAllData();\n }\n }\nexport const FTMobileReactNative: FTMobileReactNativeType = new FTMobileReactNativeWrapper();\n\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_FTRumErrorTracking","_FTRumActionTracking","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ErrorMonitorType","exports","DeviceMetricsMonitorType","DetectFrequency","FTRUMCacheDiscard","FTReactNativeRUMWrapper","constructor","NativeModules","FTReactNativeRUM","setConfig","config","console","log","enableAutoTrackError","FTRumErrorTracking","startTracking","enableAutoTrackUserAction","FTRumActionTracking","rum","startAction","actionName","actionType","property","addAction","onCreateView","viewName","loadTime","startView","stopView","addError","stack","message","addErrorWithType","type","startResource","key","stopResource","addResource","resource","metrics"],"sources":["ft_rum.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { FTRumErrorTracking} from './rum/FTRumErrorTracking';\nimport { FTRumActionTracking} from './rum/FTRumActionTracking';\n\n/**\n * Error monitoring type.\n */\n export enum ErrorMonitorType {\n all=0xFFFFFFFF,\n battery=1 << 1,\n memory=1 << 2,\n cpu=1 << 3,\n }\n /**\n * Page monitoring supplement type\n */\n export enum DeviceMetricsMonitorType {\n all=0xFFFFFFFF,\n battery=1 << 1,\n memory=1 << 2,\n cpu=1 << 3,\n fps=1 << 4\n }\n /**\n * Device information monitoring cycle.\n */\n export enum DetectFrequency { normal, frequent, rare }\n\n export enum FTRUMCacheDiscard { discard, discardOldest };\n\n/**\n * Set RUM tracking conditions.\n * @param androidAppId appId, apply during monitoring\n * @param iOSAppId appId, apply during monitoring\n * @param sampleRate sampling rate\n * @param sessionOnErrorSampleRate error session sampling rate. For sessions not sampled, if ERROR is hit, collect data 1 minute before the error occurs\n * @param enableAutoTrackUserAction whether to automatically collect react-native control click events, can set actionName with accessibilityLabel when enabled\n * @param enableTrackError whether to automatically collect react-native Error\n * @param enableTrackNativeCrash whether to collect Native Error\n * @param enableTrackNativeAppANR whether to collect Native ANR\n * @param enableTrackNativeFreeze whether to collect Native Freeze\n * @param nativeFreezeDurationMs set the threshold for collecting Native Freeze, value range [100,), unit ms. iOS default 250ms, Android default 1000ms\n * @param enableNativeUserAction whether to start Native Action tracking, Button click events, recommended to disable for pure react-native apps\n * @param enableNativeUserView whether to start Native View auto tracking, recommended to disable for pure react-native apps\n * @param enableNativeUserResource whether to automatically collect react-native Resource\n * @param enableResourceHostIP whether to collect network request Host IP (only for native http, iOS 13 and above)\n * @param errorMonitorType error monitoring supplement type\n * @param deviceMonitorType page monitoring supplement type\n * @param detectFrequency monitoring frequency\n * @param globalContext custom global parameters\n * @param rumCacheLimitCount RUM max cache size, default 100_000\n * @param rumDiscardStrategy RUM data discard strategy\n */\n export interface FTRUMConfig{\n androidAppId:string,\n iOSAppId:string,\n sampleRate?:number,\n sessionOnErrorSampleRate?:number,\n enableAutoTrackUserAction?:boolean,\n enableAutoTrackError?:boolean,\n enableTrackNativeCrash?:boolean,\n enableTrackNativeAppANR?:boolean,\n enableTrackNativeFreeze?:boolean,\n nativeFreezeDurationMs?:number,\n enableNativeUserAction?:boolean,\n enableNativeUserView?:boolean,\n enableNativeUserResource?:boolean,\n enableResourceHostIP?:boolean,\n errorMonitorType?:ErrorMonitorType,\n deviceMonitorType?:DeviceMetricsMonitorType,\n detectFrequency?:DetectFrequency\n globalContext?:object,\n rumCacheLimitCount?:number,\n rumDiscardStrategy?:FTRUMCacheDiscard,\n }\n/**\n * RUM Resource data.\n * @param url request URL\n * @param httpMethod request method\n * @param requestHeader request header parameters\n * @param responseHeader response header parameters\n * @param responseBody response content\n * @param resourceStatus response status code\n */\n export interface FTRUMResource{\n url:string,\n httpMethod:string,\n requestHeader:object,\n responseHeader?:object,\n responseBody?:string,\n resourceStatus?:number\n };\n/**\n * RUM Resource performance metrics.\n * @param duration resource load time\n * @param resource_dns resource DNS resolution time\n * @param resource_tcp resource TCP connection time\n * @param resource_ssl resource SSL connection time\n * @param resource_ttfb resource request response time\n * @param resource_trans resource content transfer time\n * @param resource_first_byte resource first byte time\n */\n export interface FTRUMResourceMetrics{\n\n duration?:number,\n resource_dns?:number,\n resource_tcp?:number,\n resource_ssl?:number,\n resource_ttfb?:number,\n resource_trans?:number,\n resource_first_byte?:number,\n };\n type FTReactNativeRUMType = {\n /**\n * Set RUM tracking conditions and enable RUM collection.\n * @param config rum configuration parameters.\n * @returns a Promise.\n */\n setConfig(config:FTRUMConfig): Promise<void>;\n /**\n * Start RUM Action.\n * RUM will bind Resource, Error, LongTask events that may be triggered by this Action.\n * Avoid adding multiple times within 0.1s, only one Action will be associated with the same View at the same time, and new Actions will be discarded if the previous one has not ended.\n * Adding Action with `addAction` method does not affect each other.\n * @param actionName action name\n * @param actionType action type\n * @param property event context (optional)\n * @returns a Promise.\n */\n startAction(actionName:string,actionType:string,property?:object): Promise<void>;\n /**\n * Add Action event. This type of data cannot be associated with Error, Resource, LongTask data, and has no discard logic.\n * @param actionName action name\n * @param actionType action type\n * @param property event context (optional)\n * @returns a Promise.\n */\n addAction(actionName:string,actionType:string,property?:object): Promise<void>;\n /**\n * view load duration.\n * @param viewName view name\n * @param loadTime view load duration\n * @returns a Promise.\n */\n onCreateView(viewName:string,loadTime:number): Promise<void>;\n /**\n * view start.\n * @param viewName page name\n * @param property event context (optional)\n * @returns a Promise.\n */\n startView(viewName: string, property?: object): Promise<void>;\n /**\n * view end.\n * @param property event context (optional)\n * @returns a Promise.\n */\n stopView(property?:object): Promise<void>;\n /**\n * Exception capture and log collection.\n * @param stack stack log\n * @param message error message\n * @param property event context (optional)\n * @returns a Promise.\n */\n addError(stack: string, message: string,property?:object): Promise<void>;\n /**\n * Exception capture and log collection.\n * @param type error type\n * @param stack stack log\n * @param message error message\n * @param property event context (optional)\n * @returns a Promise.\n */\n addErrorWithType(type:string,stack: string, message: string,property?:object): Promise<void>;\n /**\n * Start resource request.\n * @param key unique id\n * @param property event context (optional)\n * @returns a Promise.\n */\n startResource(key: string,property?:object): Promise<void>;\n /**\n * End resource request.\n * @param key unique id\n * @param property event context (optional)\n * @returns a Promise.\n */\n stopResource(key: string,property?:object): Promise<void>;\n /**\n * Send resource data metrics.\n * @param key unique id\n * @param resource resource data\n * @param metrics resource performance data\n * @returns a Promise.\n */\n addResource(key:string, resource:FTRUMResource,metrics?:FTRUMResourceMetrics):Promise<void>;\n }\n\n class FTReactNativeRUMWrapper implements FTReactNativeRUMType {\n private rum: FTReactNativeRUMType = NativeModules.FTReactNativeRUM;\n\n\n setConfig(config:FTRUMConfig): Promise<void>{\n console.log('FTRUMConfig');\n if(config.enableAutoTrackError){\n FTRumErrorTracking.startTracking();\n }\n if(config.enableAutoTrackUserAction){\n FTRumActionTracking.startTracking();\n }\n return this.rum.setConfig(config);\n }\n startAction(actionName:string,actionType:string,property?:object): Promise<void>{\n return this.rum.startAction(actionName,actionType,property);\n }\n addAction(actionName: string, actionType: string, property?: object): Promise<void> {\n return this.rum.addAction(actionName,actionType,property);\n }\n onCreateView(viewName:string,loadTime:number): Promise<void>{\n return this.rum.onCreateView(viewName,loadTime);\n }\n startView(viewName: string, property?:object): Promise<void>{\n return this.rum.startView(viewName,property);\n }\n stopView(property?:object): Promise<void>{\n return this.rum.stopView(property);\n }\n addError(stack: string, message: string,property?:object): Promise<void>{\n return this.rum.addError(stack,message,property);\n }\n addErrorWithType(type:string,stack: string, message: string,property?:object): Promise<void>{\n return this.rum.addErrorWithType(type,stack,message,property);\n }\n startResource(key: string,property?:object): Promise<void>{\n return this.rum.startResource(key,property);\n }\n stopResource(key: string,property?:object): Promise<void>{\n return this.rum.stopResource(key,property);\n }\n addResource(key:string, resource:FTRUMResource,metrics:FTRUMResourceMetrics={}):Promise<void>{\n return this.rum.addResource(key,resource,metrics);\n }\n }\n\n export const FTReactNativeRUM: FTReactNativeRUMType = new FTReactNativeRUMWrapper();\n\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_FTRumErrorTracking","_FTRumActionTracking","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ErrorMonitorType","exports","DeviceMetricsMonitorType","DetectFrequency","FTRUMCacheDiscard","FTReactNativeRUMWrapper","constructor","NativeModules","FTReactNativeRUM","setConfig","config","console","log","enableAutoTrackError","FTRumErrorTracking","startTracking","enableAutoTrackUserAction","FTRumActionTracking","rum","startAction","actionName","actionType","property","addAction","onCreateView","viewName","loadTime","startView","stopView","addError","stack","message","addErrorWithType","type","startResource","key","stopResource","addResource","resource","metrics"],"sources":["ft_rum.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { FTRumErrorTracking} from './rum/FTRumErrorTracking';\nimport { FTRumActionTracking} from './rum/FTRumActionTracking';\n\n/**\n * Error monitoring type.\n */\n export enum ErrorMonitorType {\n all=0xFFFFFFFF,\n battery=1 << 1,\n memory=1 << 2,\n cpu=1 << 3,\n }\n /**\n * Page monitoring supplement type\n */\n export enum DeviceMetricsMonitorType {\n all=0xFFFFFFFF,\n battery=1 << 1,\n memory=1 << 2,\n cpu=1 << 3,\n fps=1 << 4\n }\n /**\n * Device information monitoring cycle.\n */\n export enum DetectFrequency { normal, frequent, rare }\n\n export enum FTRUMCacheDiscard { discard, discardOldest };\n\n/**\n * Set RUM tracking conditions.\n * @param androidAppId appId, apply during monitoring\n * @param iOSAppId appId, apply during monitoring\n * @param sampleRate sampling rate\n * @param sessionOnErrorSampleRate error session sampling rate. For sessions not sampled, if ERROR is hit, collect data 1 minute before the error occurs\n * @param enableAutoTrackUserAction whether to automatically collect react-native control click events, can set actionName with accessibilityLabel when enabled\n * @param enableTrackError whether to automatically collect react-native Error\n * @param enableTrackNativeCrash whether to collect Native Error\n * @param enableTrackNativeAppANR whether to collect Native ANR\n * @param enableTrackNativeFreeze whether to collect Native Freeze\n * @param nativeFreezeDurationMs set the threshold for collecting Native Freeze, value range [100,), unit ms. iOS default 250ms, Android default 1000ms\n * @param enableNativeUserAction whether to start Native Action tracking, Button click events, recommended to disable for pure react-native apps\n * @param enableNativeUserView whether to start Native View auto tracking, recommended to disable for pure react-native apps\n * @param enableNativeUserResource whether to automatically collect react-native Resource\n * @param enableResourceHostIP whether to collect network request Host IP (only for native http, iOS 13 and above)\n * @param errorMonitorType error monitoring supplement type\n * @param deviceMonitorType page monitoring supplement type\n * @param detectFrequency monitoring frequency\n * @param globalContext custom global parameters\n * @param rumCacheLimitCount RUM max cache size, default 100_000\n * @param rumDiscardStrategy RUM data discard strategy\n */\n export interface FTRUMConfig{\n androidAppId:string,\n iOSAppId:string,\n sampleRate?:number,\n sessionOnErrorSampleRate?:number,\n enableAutoTrackUserAction?:boolean,\n enableAutoTrackError?:boolean,\n enableTrackNativeCrash?:boolean,\n enableTrackNativeAppANR?:boolean,\n enableTrackNativeFreeze?:boolean,\n nativeFreezeDurationMs?:number,\n enableNativeUserAction?:boolean,\n enableNativeUserView?:boolean,\n enableNativeUserResource?:boolean,\n enableResourceHostIP?:boolean,\n errorMonitorType?:ErrorMonitorType,\n deviceMonitorType?:DeviceMetricsMonitorType,\n detectFrequency?:DetectFrequency\n globalContext?:object,\n rumCacheLimitCount?:number,\n rumDiscardStrategy?:FTRUMCacheDiscard,\n }\n/**\n * RUM Resource data.\n * @param url request URL\n * @param httpMethod request method\n * @param requestHeader request header parameters\n * @param responseHeader response header parameters\n * @param responseBody response content\n * @param resourceStatus response status code\n */\n export interface FTRUMResource{\n url:string,\n httpMethod:string,\n requestHeader:object,\n responseHeader?:object,\n responseBody?:string,\n resourceStatus?:number\n };\n/**\n * RUM Resource performance metrics.\n * @param duration resource load time\n * @param resource_dns resource DNS resolution time\n * @param resource_tcp resource TCP connection time\n * @param resource_ssl resource SSL connection time\n * @param resource_ttfb resource request response time\n * @param resource_trans resource content transfer time\n * @param resource_first_byte resource first byte time\n */\n export interface FTRUMResourceMetrics{\n duration?:number,\n resource_dns?:number,\n resource_tcp?:number,\n resource_ssl?:number,\n resource_ttfb?:number,\n resource_trans?:number,\n resource_first_byte?:number,\n };\n type FTReactNativeRUMType = {\n /**\n * Set RUM tracking conditions and enable RUM collection.\n * @param config rum configuration parameters.\n * @returns a Promise.\n */\n setConfig(config:FTRUMConfig): Promise<void>;\n /**\n * Start RUM Action.\n * RUM will bind Resource, Error, LongTask events that may be triggered by this Action.\n * Avoid adding multiple times within 0.1s, only one Action will be associated with the same View at the same time, and new Actions will be discarded if the previous one has not ended.\n * Adding Action with `addAction` method does not affect each other.\n * @param actionName action name\n * @param actionType action type\n * @param property event context (optional)\n * @returns a Promise.\n */\n startAction(actionName:string,actionType:string,property?:object): Promise<void>;\n /**\n * Add Action event. This type of data cannot be associated with Error, Resource, LongTask data, and has no discard logic.\n * @param actionName action name\n * @param actionType action type\n * @param property event context (optional)\n * @returns a Promise.\n */\n addAction(actionName:string,actionType:string,property?:object): Promise<void>;\n /**\n * view load duration.\n * @param viewName view name\n * @param loadTime view load duration\n * @returns a Promise.\n */\n onCreateView(viewName:string,loadTime:number): Promise<void>;\n /**\n * view start.\n * @param viewName page name\n * @param property event context (optional)\n * @returns a Promise.\n */\n startView(viewName: string, property?: object): Promise<void>;\n /**\n * view end.\n * @param property event context (optional)\n * @returns a Promise.\n */\n stopView(property?:object): Promise<void>;\n /**\n * Exception capture and log collection.\n * @param stack stack log\n * @param message error message\n * @param property event context (optional)\n * @returns a Promise.\n */\n addError(stack: string, message: string,property?:object): Promise<void>;\n /**\n * Exception capture and log collection.\n * @param type error type\n * @param stack stack log\n * @param message error message\n * @param property event context (optional)\n * @returns a Promise.\n */\n addErrorWithType(type:string,stack: string, message: string,property?:object): Promise<void>;\n /**\n * Start resource request.\n * @param key unique id\n * @param property event context (optional)\n * @returns a Promise.\n */\n startResource(key: string,property?:object): Promise<void>;\n /**\n * End resource request.\n * @param key unique id\n * @param property event context (optional)\n * @returns a Promise.\n */\n stopResource(key: string,property?:object): Promise<void>;\n /**\n * Send resource data metrics.\n * @param key unique id\n * @param resource resource data\n * @param metrics resource performance data\n * @returns a Promise.\n */\n addResource(key:string, resource:FTRUMResource,metrics?:FTRUMResourceMetrics):Promise<void>;\n }\n\n class FTReactNativeRUMWrapper implements FTReactNativeRUMType {\n private rum: FTReactNativeRUMType = NativeModules.FTReactNativeRUM;\n\n setConfig(config:FTRUMConfig): Promise<void>{\n console.log('FTRUMConfig');\n if(config.enableAutoTrackError){\n FTRumErrorTracking.startTracking();\n }\n if(config.enableAutoTrackUserAction){\n FTRumActionTracking.startTracking();\n }\n return this.rum.setConfig(config);\n }\n startAction(actionName:string,actionType:string,property?:object): Promise<void>{\n return this.rum.startAction(actionName,actionType,property);\n }\n addAction(actionName: string, actionType: string, property?: object): Promise<void> {\n return this.rum.addAction(actionName,actionType,property);\n }\n onCreateView(viewName:string,loadTime:number): Promise<void>{\n return this.rum.onCreateView(viewName,loadTime);\n }\n startView(viewName: string, property?:object): Promise<void>{\n return this.rum.startView(viewName,property);\n }\n stopView(property?:object): Promise<void>{\n return this.rum.stopView(property);\n }\n addError(stack: string, message: string,property?:object): Promise<void>{\n return this.rum.addError(stack,message,property);\n }\n addErrorWithType(type:string,stack: string, message: string,property?:object): Promise<void>{\n return this.rum.addErrorWithType(type,stack,message,property);\n }\n startResource(key: string,property?:object): Promise<void>{\n return this.rum.startResource(key,property);\n }\n stopResource(key: string,property?:object): Promise<void>{\n return this.rum.stopResource(key,property);\n }\n addResource(key:string, resource:FTRUMResource,metrics:FTRUMResourceMetrics={}):Promise<void>{\n return this.rum.addResource(key,resource,metrics);\n }\n }\n\n export const FTReactNativeRUM: FTReactNativeRUMType = new FTReactNativeRUMWrapper();\n\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SessionReplayPrivacy = exports.FTReactNativeSessionReplay = void 0;
7
+ var _reactNative = require("react-native");
8
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
10
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
+ /**
12
+ * Privacy level for content masking in session replay.
13
+ */
14
+ let SessionReplayPrivacy = exports.SessionReplayPrivacy = /*#__PURE__*/function (SessionReplayPrivacy) {
15
+ SessionReplayPrivacy[SessionReplayPrivacy["MASK"] = 0] = "MASK";
16
+ SessionReplayPrivacy[SessionReplayPrivacy["ALLOW"] = 1] = "ALLOW";
17
+ SessionReplayPrivacy[SessionReplayPrivacy["MASK_USER_INPUT"] = 2] = "MASK_USER_INPUT";
18
+ return SessionReplayPrivacy;
19
+ }({});
20
+ /**
21
+ * Set Session Replay configuration.
22
+ * @param sampleRate Sampling rate
23
+ * @param privacy Privacy level for content masking in session replay
24
+ */
25
+ class FTReactNativeSessionReplayWrapper {
26
+ constructor() {
27
+ _defineProperty(this, "sessionReplay", _reactNative.NativeModules.FTReactNativeSessionReplay);
28
+ }
29
+ sessionReplayConfig(config) {
30
+ return this.sessionReplay.sessionReplayConfig(config);
31
+ }
32
+ }
33
+ const FTReactNativeSessionReplay = exports.FTReactNativeSessionReplay = new FTReactNativeSessionReplayWrapper();
34
+ //# sourceMappingURL=ft_session_replay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SessionReplayPrivacy","exports","FTReactNativeSessionReplayWrapper","constructor","NativeModules","FTReactNativeSessionReplay","sessionReplayConfig","config","sessionReplay"],"sources":["ft_session_replay.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n/**\n * Privacy level for content masking in session replay.\n */\nexport enum SessionReplayPrivacy {\n MASK ,\n ALLOW ,\n MASK_USER_INPUT\n}\n/**\n * Set Session Replay configuration.\n * @param sampleRate Sampling rate\n * @param privacy Privacy level for content masking in session replay\n */\nexport interface FTSessionReplayConfig{\n sampleRate?:number,\n privacy?:SessionReplayPrivacy\n }\ntype FTReactNativeSessionReplayType = {\n /**\n * Set Session Replay configuration and enable session replay\n * @param config Session Replay configuration parameters.\n * @returns a Promise.\n */\n sessionReplayConfig(config:FTSessionReplayConfig): Promise<void>;\n}\n\nclass FTReactNativeSessionReplayWrapper implements FTReactNativeSessionReplayType {\n private sessionReplay: FTReactNativeSessionReplayType = NativeModules.FTReactNativeSessionReplay;\n sessionReplayConfig(config:FTSessionReplayConfig): Promise<void>{\n return this.sessionReplay.sessionReplayConfig(config);\n }\n}\nexport const FTReactNativeSessionReplay: FTReactNativeSessionReplayType = new FTReactNativeSessionReplayWrapper();\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAA6C,SAAAC,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAC7C;AACA;AACA;AAFA,IAGYgB,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAKhC;AACA;AACA;AACA;AACA;AAcA,MAAME,iCAAiC,CAA2C;EAAAC,YAAA;IAAAtB,eAAA,wBACtBuB,0BAAa,CAACC,0BAA0B;EAAA;EAChGC,mBAAmBA,CAACC,MAA4B,EAAgB;IAC5D,OAAO,IAAI,CAACC,aAAa,CAACF,mBAAmB,CAACC,MAAM,CAAC;EACzD;AACJ;AACO,MAAMF,0BAA0D,GAAAJ,OAAA,CAAAI,0BAAA,GAAG,IAAIH,iCAAiC,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","TraceType","exports","FTReactNativeTraceWrapper","constructor","NativeModules","FTReactNativeTrace","setConfig","config","trace","getTraceHeader","key","url","getTraceHeaderFields"],"sources":["ft_tracing.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n//FTReactNativeTrace\n\n/**\n * Trace types for use.\n */\n export enum TraceType {\n ddTrace,\n zipkinMulti,\n zipkinSingle,\n traceparent,\n skywalking,\n jaeger,\n };\n/**\n * Configure trace.\n * @param sampleRate sampling rate\n * @param traceType trace type\n * @param enableLinkRUMData whether to link with RUM data\n * @param enableNativeAutoTrace whether to enable automatic tracing\n */\n export interface FTTraceConfig{\n sampleRate?:number,\n traceType?:TraceType,\n enableLinkRUMData?:boolean,\n enableNativeAutoTrace?:boolean,\n };\n\n type FTReactNativeTraceType = {\n /**\n * Configure trace to enable distributed tracing.\n * @param config trace configuration parameters.\n * @returns a Promise.\n */\n setConfig(config: FTTraceConfig): Promise<void>; \n /**\n * Get trace HTTP request header data.\n * @param url request URL\n * @returns trace request header parameters\n * @deprecated use getTraceHeaderFields() replace.\n */\n getTraceHeader(key:String, url: String): Promise<object>;\n /**\n * Get trace HTTP request header data.\n * @param url request URL\n * @returns trace request header parameters\n */\n getTraceHeaderFields(url: String,key?:String): Promise<object>;\n };\n\n class FTReactNativeTraceWrapper implements FTReactNativeTraceType {\n private trace: FTReactNativeTraceType = NativeModules.FTReactNativeTrace;\n\n\n setConfig(config:FTTraceConfig): Promise<void>{\n return this.trace.setConfig(config);\n }\n /**\n * Get trace HTTP request header data.\n * @param key unique id\n * @param url request URL\n * @returns a Promise.\n */\n getTraceHeader(key:String, url: String): Promise<object>{\n return this.trace.getTraceHeaderFields(url,key);\n }\n /**\n * Get trace HTTP request header data.\n * @param url request URL\n * @param key unique id\n * @returns a Promise.\n */\n getTraceHeaderFields(url: String,key?:String): Promise<object>{\n return this.trace.getTraceHeaderFields(url,key);\n }\n\n }\n export const FTReactNativeTrace:FTReactNativeTraceType = new FTReactNativeTraceWrapper(); \n\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAA6C,SAAAC,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAC7C;AAEA;AACA;AACA;AAFA,IAGagB,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAOpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAME;AAwBD,MAAME,yBAAyB,CAAmC;EAAAC,YAAA;IAAAtB,eAAA,gBACxBuB,0BAAa,CAACC,kBAAkB;EAAA;EAGxEC,SAASA,CAACC,MAAoB,EAAgB;IAC5C,OAAO,IAAI,CAACC,KAAK,CAACF,SAAS,CAACC,MAAM,CAAC;EACrC;EACD;AACF;AACA;AACA;AACA;AACA;EACGE,cAAcA,CAACC,GAAU,EAAEC,GAAW,EAAkB;IACtD,OAAO,IAAI,CAACH,KAAK,CAACI,oBAAoB,CAACD,GAAG,EAACD,GAAG,CAAC;EACjD;EACC;AACJ;AACA;AACA;AACA;AACA;EACGE,oBAAoBA,CAACD,GAAW,EAACD,GAAW,EAAkB;IAC7D,OAAO,IAAI,CAACF,KAAK,CAACI,oBAAoB,CAACD,GAAG,EAACD,GAAG,CAAC;EAChD;AAEF;AACO,MAAML,kBAAyC,GAAAJ,OAAA,CAAAI,kBAAA,GAAG,IAAIH,yBAAyB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","TraceType","exports","FTReactNativeTraceWrapper","constructor","NativeModules","FTReactNativeTrace","setConfig","config","trace","getTraceHeader","key","url","getTraceHeaderFields"],"sources":["ft_tracing.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n//FTReactNativeTrace\n\n/**\n * Trace types for use.\n */\n export enum TraceType {\n ddTrace,\n zipkinMulti,\n zipkinSingle,\n traceparent,\n skywalking,\n jaeger,\n };\n/**\n * Configure trace.\n * @param sampleRate sampling rate\n * @param traceType trace type\n * @param enableLinkRUMData whether to link with RUM data\n * @param enableNativeAutoTrace whether to enable automatic tracing\n */\n export interface FTTraceConfig{\n sampleRate?:number,\n traceType?:TraceType,\n enableLinkRUMData?:boolean,\n enableNativeAutoTrace?:boolean,\n };\n\n type FTReactNativeTraceType = {\n /**\n * Configure trace to enable distributed tracing.\n * @param config trace configuration parameters.\n * @returns a Promise.\n */\n setConfig(config: FTTraceConfig): Promise<void>; \n /**\n * Get trace HTTP request header data.\n * @param url request URL\n * @returns trace request header parameters\n * @deprecated use getTraceHeaderFields() replace.\n */\n getTraceHeader(key:String, url: String): Promise<object>;\n /**\n * Get trace HTTP request header data.\n * @param url request URL\n * @returns trace request header parameters\n */\n getTraceHeaderFields(url: String,key?:String): Promise<object>;\n };\n\n class FTReactNativeTraceWrapper implements FTReactNativeTraceType {\n private trace: FTReactNativeTraceType = NativeModules.FTReactNativeTrace;\n\n setConfig(config:FTTraceConfig): Promise<void>{\n return this.trace.setConfig(config);\n }\n /**\n * Get trace HTTP request header data.\n * @param key unique id\n * @param url request URL\n * @returns a Promise.\n */\n getTraceHeader(key:String, url: String): Promise<object>{\n return this.trace.getTraceHeaderFields(url,key);\n }\n /**\n * Get trace HTTP request header data.\n * @param url request URL\n * @param key unique id\n * @returns a Promise.\n */\n getTraceHeaderFields(url: String,key?:String): Promise<object>{\n return this.trace.getTraceHeaderFields(url,key);\n }\n\n }\n export const FTReactNativeTrace:FTReactNativeTraceType = new FTReactNativeTraceWrapper(); \n\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAA6C,SAAAC,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAC7C;AAEA;AACA;AACA;AAFA,IAGagB,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAOpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAME;AAwBD,MAAME,yBAAyB,CAAmC;EAAAC,YAAA;IAAAtB,eAAA,gBACxBuB,0BAAa,CAACC,kBAAkB;EAAA;EAExEC,SAASA,CAACC,MAAoB,EAAgB;IAC5C,OAAO,IAAI,CAACC,KAAK,CAACF,SAAS,CAACC,MAAM,CAAC;EACrC;EACD;AACF;AACA;AACA;AACA;AACA;EACGE,cAAcA,CAACC,GAAU,EAAEC,GAAW,EAAkB;IACtD,OAAO,IAAI,CAACH,KAAK,CAACI,oBAAoB,CAACD,GAAG,EAACD,GAAG,CAAC;EACjD;EACC;AACJ;AACA;AACA;AACA;AACA;EACGE,oBAAoBA,CAACD,GAAW,EAACD,GAAW,EAAkB;IAC7D,OAAO,IAAI,CAACF,KAAK,CAACI,oBAAoB,CAACD,GAAG,EAACD,GAAG,CAAC;EAChD;AAEF;AACO,MAAML,kBAAyC,GAAAJ,OAAA,CAAAI,kBAAA,GAAG,IAAIH,yBAAyB,CAAC,CAAC","ignoreList":[]}
@@ -99,6 +99,12 @@ Object.defineProperty(exports, "FTReactNativeRUM", {
99
99
  return _ft_rum.FTReactNativeRUM;
100
100
  }
101
101
  });
102
+ Object.defineProperty(exports, "FTReactNativeSessionReplay", {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _ft_session_replay.FTReactNativeSessionReplay;
106
+ }
107
+ });
102
108
  Object.defineProperty(exports, "FTReactNativeTrace", {
103
109
  enumerable: true,
104
110
  get: function () {
@@ -117,12 +123,24 @@ Object.defineProperty(exports, "FTRumErrorTracking", {
117
123
  return _FTRumErrorTracking.FTRumErrorTracking;
118
124
  }
119
125
  });
126
+ Object.defineProperty(exports, "FTSessionReplayConfig", {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _ft_session_replay.FTSessionReplayConfig;
130
+ }
131
+ });
120
132
  Object.defineProperty(exports, "FTTraceConfig", {
121
133
  enumerable: true,
122
134
  get: function () {
123
135
  return _ft_tracing.FTTraceConfig;
124
136
  }
125
137
  });
138
+ Object.defineProperty(exports, "SessionReplayPrivacy", {
139
+ enumerable: true,
140
+ get: function () {
141
+ return _ft_session_replay.SessionReplayPrivacy;
142
+ }
143
+ });
126
144
  Object.defineProperty(exports, "TraceType", {
127
145
  enumerable: true,
128
146
  get: function () {
@@ -133,6 +151,7 @@ var _ft_mobile_agent = require("./ft_mobile_agent");
133
151
  var _ft_logger = require("./ft_logger");
134
152
  var _ft_rum = require("./ft_rum");
135
153
  var _ft_tracing = require("./ft_tracing");
154
+ var _ft_session_replay = require("./ft_session_replay");
136
155
  var _FTRumActionTracking = require("./rum/FTRumActionTracking");
137
156
  var _FTRumErrorTracking = require("./rum/FTRumErrorTracking");
138
157
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_ft_mobile_agent","require","_ft_logger","_ft_rum","_ft_tracing","_FTRumActionTracking","_FTRumErrorTracking"],"sources":["index.tsx"],"sourcesContent":["import {FTMobileConfig,FTMobileReactNative,EnvType,FTDBCacheDiscard} from './ft_mobile_agent'\nimport {FTLogConfig,FTReactNativeLog,FTLogStatus,FTLogCacheDiscard} from './ft_logger'\nimport {FTRUMConfig,FTRUMResource,FTReactNativeRUM,ErrorMonitorType,DeviceMetricsMonitorType,DetectFrequency,FTRUMResourceMetrics,FTRUMCacheDiscard} from './ft_rum'\nimport {FTTraceConfig,FTReactNativeTrace,TraceType} from './ft_tracing'\nimport {FTRumActionTracking} from './rum/FTRumActionTracking'\nimport {FTRumErrorTracking} from './rum/FTRumErrorTracking'\n\n \n export {\n FTMobileReactNative,FTMobileConfig,EnvType,FTDBCacheDiscard,\n FTLogConfig, FTReactNativeLog,FTLogStatus,FTLogCacheDiscard,\n FTRUMConfig,FTReactNativeRUM,FTRUMResource,ErrorMonitorType,DeviceMetricsMonitorType,DetectFrequency,FTRUMResourceMetrics,FTRUMCacheDiscard,\n FTTraceConfig,FTReactNativeTrace,TraceType,\n FTRumActionTracking,\n FTRumErrorTracking\n };\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_ft_mobile_agent","require","_ft_logger","_ft_rum","_ft_tracing","_ft_session_replay","_FTRumActionTracking","_FTRumErrorTracking"],"sources":["index.tsx"],"sourcesContent":["import {FTMobileConfig,FTMobileReactNative,EnvType,FTDBCacheDiscard} from './ft_mobile_agent'\nimport {FTLogConfig,FTReactNativeLog,FTLogStatus,FTLogCacheDiscard} from './ft_logger'\nimport {FTRUMConfig,FTRUMResource,FTReactNativeRUM,ErrorMonitorType,DeviceMetricsMonitorType,DetectFrequency,FTRUMResourceMetrics,FTRUMCacheDiscard} from './ft_rum'\nimport {FTTraceConfig,FTReactNativeTrace,TraceType} from './ft_tracing'\nimport {FTSessionReplayConfig,SessionReplayPrivacy,FTReactNativeSessionReplay} from './ft_session_replay'\nimport {FTRumActionTracking} from './rum/FTRumActionTracking'\nimport {FTRumErrorTracking} from './rum/FTRumErrorTracking'\n\n\n export {\n FTMobileReactNative,FTMobileConfig,EnvType,FTDBCacheDiscard,\n FTLogConfig, FTReactNativeLog,FTLogStatus,FTLogCacheDiscard,\n FTRUMConfig,FTReactNativeRUM,FTRUMResource,ErrorMonitorType,DeviceMetricsMonitorType,DetectFrequency,FTRUMResourceMetrics,FTRUMCacheDiscard,\n FTTraceConfig,FTReactNativeTrace,TraceType,\n FTSessionReplayConfig,SessionReplayPrivacy,FTReactNativeSessionReplay,\n FTRumActionTracking,\n FTRumErrorTracking\n };\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,oBAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA","ignoreList":[]}
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.version = void 0;
7
7
  // generated by genversion
8
- const version = exports.version = '0.3.15';
8
+ const version = exports.version = '0.4.0-alpha.4';
9
9
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["version","exports"],"sources":["version.ts"],"sourcesContent":["// generated by genversion\nexport const version = '0.3.15';\n"],"mappings":";;;;;;AAAA;AACO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["version","exports"],"sources":["version.ts"],"sourcesContent":["// generated by genversion\nexport const version = '0.4.0-alpha.4';\n"],"mappings":";;;;;;AAAA;AACO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,eAAe","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","FTLogStatus","FTLogCacheDiscard","FTReactNativeLogWrapper","constructor","_defineProperty","FTReactNativeLog","logConfig","config","logger","logging","content","logStatus","property","logWithStatusString","toString","enumLogStatus"],"sources":["ft_logger.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n/**\n * Set log level.\n */\n export enum FTLogStatus {\n info, warning, error, critical, ok,\n };\n/**\n * Log discard method.\n */\n export enum FTLogCacheDiscard { discard, discardOldest };\n/**\n * Configure log output configuration.\n * @param sampleRate sampling rate\n * @param enableLinkRumData whether to link with RUM\n * @param enableCustomLog whether to enable custom logs\n * @param discardStrategy log discard strategy\n * @param logLevelFilters log level filter\n * @param globalContext custom global parameters\n * @param logCacheLimitCount get maximum log entry count limit [1000,), default 5000\n */\n export interface FTLogConfig{\n sampleRate?: number,\n enableLinkRumData?: boolean,\n enableCustomLog?: boolean,\n discardStrategy?: FTLogCacheDiscard,\n logLevelFilters?: Array<FTLogStatus>,\n globalContext?:object,\n logCacheLimitCount?: number\n };\n\n type FTReactNativeLogType = {\n /**\n *Configure log output configuration to enable log collection.\n */\n logConfig(config: FTLogConfig): Promise<void>;\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logging(content:String,logStatus:FTLogStatus,property?:object): Promise<void>;\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logWithStatusString(content:String,logStatus:String,property?:object): Promise<void>;\n };\n\n class FTReactNativeLogWrapper {\n private logger: FTReactNativeLogType = NativeModules.FTReactNativeLog;\n\n /**\n *Configure log output configuration to enable log collection.\n */\n logConfig(config:FTLogConfig): Promise<void>{\n return this.logger.logConfig(config);\n }\n\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logging(content:String,logStatus:FTLogStatus|String,property?:object): Promise<void>{\n if((typeof logStatus)==='string'){\n return this.logger.logWithStatusString(content,logStatus.toString(),property)\n }\n let enumLogStatus: FTLogStatus = logStatus as FTLogStatus;\n return this.logger.logging(content,enumLogStatus,property);\n }\n }\n export const FTReactNativeLog: FTReactNativeLogWrapper = new FTReactNativeLogWrapper();\n"],"mappings":";;;AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C;AACA;AACA;AACC,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAEtB;AACF;AACA;AACA;AACC,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASE;AAuBD,MAAMC,uBAAuB,CAAE;EAAAC,YAAA;IAAAC,eAAA,iBACUL,aAAa,CAACM,gBAAgB;EAAA;EAEtE;AACF;AACA;EACGC,SAASA,CAACC,MAAkB,EAAgB;IAC1C,OAAO,IAAI,CAACC,MAAM,CAACF,SAAS,CAACC,MAAM,CAAC;EACtC;;EAEA;AACH;AACA;AACA;AACA;AACA;EACGE,OAAOA,CAACC,OAAc,EAACC,SAA4B,EAACC,QAAgB,EAAgB;IAClF,IAAI,OAAOD,SAAS,KAAI,QAAQ,EAAC;MAC/B,OAAO,IAAI,CAACH,MAAM,CAACK,mBAAmB,CAACH,OAAO,EAACC,SAAS,CAACG,QAAQ,CAAC,CAAC,EAACF,QAAQ,CAAC;IAC/E;IACA,IAAIG,aAA0B,GAAGJ,SAAwB;IACzD,OAAO,IAAI,CAACH,MAAM,CAACC,OAAO,CAACC,OAAO,EAACK,aAAa,EAACH,QAAQ,CAAC;EAC5D;AACF;AACA,OAAO,MAAMP,gBAAyC,GAAG,IAAIH,uBAAuB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","FTLogStatus","FTLogCacheDiscard","FTReactNativeLogWrapper","constructor","_defineProperty","FTReactNativeLog","logConfig","config","logger","logging","content","logStatus","property","logWithStatusString","toString","enumLogStatus"],"sources":["ft_logger.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n/**\n * Set log level.\n */\n export enum FTLogStatus {\n info, warning, error, critical, ok,\n };\n/**\n * Log discard method.\n */\n export enum FTLogCacheDiscard { discard, discardOldest };\n/**\n * Configure log output configuration.\n * @param sampleRate sampling rate\n * @param enableLinkRumData whether to link with RUM\n * @param enableCustomLog whether to enable custom logs\n * @param discardStrategy log discard strategy\n * @param logLevelFilters log level filter\n * @param globalContext custom global parameters\n * @param logCacheLimitCount get maximum log entry count limit [1000,), default 5000\n */\n export interface FTLogConfig{\n sampleRate?: number,\n enableLinkRumData?: boolean,\n enableCustomLog?: boolean,\n discardStrategy?: FTLogCacheDiscard,\n logLevelFilters?: Array<FTLogStatus>,\n globalContext?:object,\n logCacheLimitCount?: number\n };\n\n type FTReactNativeLogType = {\n /**\n *Configure log output configuration to enable log collection.\n */\n logConfig(config: FTLogConfig): Promise<void>;\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logging(content:String,logStatus:FTLogStatus,property?:object): Promise<void>;\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logWithStatusString(content:String,logStatus:String,property?:object): Promise<void>;\n };\n\n class FTReactNativeLogWrapper {\n private logger: FTReactNativeLogType = NativeModules.FTReactNativeLog;\n /**\n *Configure log output configuration to enable log collection.\n */\n logConfig(config:FTLogConfig): Promise<void>{\n return this.logger.logConfig(config);\n }\n\n /**\n * Output log.\n * @param content log content\n * @param status log status\n * @param property log context (optional)\n */\n logging(content:String,logStatus:FTLogStatus|String,property?:object): Promise<void>{\n if((typeof logStatus)==='string'){\n return this.logger.logWithStatusString(content,logStatus.toString(),property)\n }\n let enumLogStatus: FTLogStatus = logStatus as FTLogStatus;\n return this.logger.logging(content,enumLogStatus,property);\n }\n }\n export const FTReactNativeLog: FTReactNativeLogWrapper = new FTReactNativeLogWrapper();\n"],"mappings":";;;AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C;AACA;AACA;AACC,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAEtB;AACF;AACA;AACA;AACC,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASE;AAuBD,MAAMC,uBAAuB,CAAE;EAAAC,YAAA;IAAAC,eAAA,iBACUL,aAAa,CAACM,gBAAgB;EAAA;EACtE;AACF;AACA;EACGC,SAASA,CAACC,MAAkB,EAAgB;IAC1C,OAAO,IAAI,CAACC,MAAM,CAACF,SAAS,CAACC,MAAM,CAAC;EACtC;;EAEA;AACH;AACA;AACA;AACA;AACA;EACGE,OAAOA,CAACC,OAAc,EAACC,SAA4B,EAACC,QAAgB,EAAgB;IAClF,IAAI,OAAOD,SAAS,KAAI,QAAQ,EAAC;MAC/B,OAAO,IAAI,CAACH,MAAM,CAACK,mBAAmB,CAACH,OAAO,EAACC,SAAS,CAACG,QAAQ,CAAC,CAAC,EAACF,QAAQ,CAAC;IAC/E;IACA,IAAIG,aAA0B,GAAGJ,SAAwB;IACzD,OAAO,IAAI,CAACH,MAAM,CAACC,OAAO,CAACC,OAAO,EAACK,aAAa,EAACH,QAAQ,CAAC;EAC5D;AACF;AACA,OAAO,MAAMP,gBAAyC,GAAG,IAAIH,uBAAuB,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","version","sdkVersion","EnvType","FTDBCacheDiscard","FTMobileReactNativeWrapper","constructor","_defineProperty","FTMobileReactNative","sdkConfig","config","serverUrl","length","datakitUrl","pkgInfo","sdk","bindRUMUserData","userId","userName","userEmail","extra","unbindRUMUserData","appendGlobalContext","context","appendLogGlobalContext","appendRUMGlobalContext","trackEventFromExtension","identifier","flushSyncData","shutDown","clearAllData"],"sources":["ft_mobile_agent.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { version as sdkVersion } from './version'\n\n/**\n * Environment.\n */\nexport enum EnvType {\n prod, gray, pre, common, local\n};\nexport enum FTDBCacheDiscard { discard, discardOldest };\n/**\n * Configure SDK startup parameters.\n * @param serverUrl data reporting address, deprecated, use [datakitUrl] instead\n * @param datakitUrl datakit access URL address, example: http://10.0.0.1:9529, default port 9529. Choose one between datakit and dataway configuration\n * @param datawayUrl dataway access URL address, example: http://10.0.0.1:9528, default port 9528, note: the device installing the SDK needs to be able to access this address. Note: choose one between datakit and dataway configuration\n * @param clientToken dataway authentication token, needs to be configured together with [datawayUrl]\n * @param debug set whether to allow log printing, default false\n * @param env environment, default prod\n * @param service set the name of the business or service it belongs to, default: `df_rum_ios`, `df_rum_android`\n * @param autoSync whether data is automatically synchronized and uploaded, default: true\n * @param syncPageSize number of synchronized items per request during data synchronization, minimum value 5, default: 10\n * @param syncSleepTime interval time between each request during data synchronization, unit milliseconds, 0 < syncSleepTime < 100\n * @param enableDataIntegerCompatible whether to enable data integer compatibility during data synchronization, enabled by default\n * @param compressIntakeRequests whether to compress synchronized data\n * @param globalContext custom global parameters\n * @param groupIdentifiers iOS side sets the AppGroups Identifier array corresponding to the collected Widget Extension\n * @param enableLimitWithDbSize set whether to enable using db to limit data size, after enabling, `FTLogConfig.logCacheLimitCount` and `FTRUMConfig.rumCacheLimitCount` will no longer take effect\n * @param dbCacheLimit db cache limit size, minimum value 30MB, default 100MB, unit byte\n * @param dbDiscardStrategy db data discard strategy\n * @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\n * @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\n */\n export interface FTMobileConfig {\n /**\n * @deprecated \"serverUrl\" parameter renamed to \"datakitUrl\"\n */\n serverUrl?: string,\n datakitUrl?: string,\n datawayUrl?: string,\n clientToken?: string,\n debug?:boolean,\n envType?:EnvType,\n env?:string,\n service?:string,\n autoSync?:boolean,\n syncPageSize?:number,\n syncSleepTime?:number,\n enableDataIntegerCompatible?:boolean,\n compressIntakeRequests?:boolean,\n globalContext?:object,\n groupIdentifiers?:Array<string>,\n enableLimitWithDbSize?:boolean,\n dbCacheLimit?:number,\n dbDiscardStrategy?:FTDBCacheDiscard,\n pkgInfo?: string,\n dataModifier?:object,\n lineDataModifier?:object\n }\n\n\ntype FTMobileReactNativeType = {\n\n /**\n * SDK initialization method.\n * @param config SDK initialization configuration items.\n * @returns a Promise.\n */\n sdkConfig(config:FTMobileConfig): Promise<void>;\n /**\n * Bind user.\n * @param userId user ID.\n * @param userName user name.\n * @param userEmail user email\n * @param extra additional user information\n * @returns a Promise.\n */\n bindRUMUserData(userId: string,userName?:string,userEmail?:string,extra?:object): Promise<void>;\n /**\n * Unbind user.\n * @returns a Promise.\n */\n unbindRUMUserData(): Promise<void>;\n /**\n * Add custom global parameters. Applies to RUM and Log data\n * @param context custom global parameters.\n * @returns a Promise.\n */\n appendGlobalContext(context:object):Promise<void>;\n /**\n * Add custom RUM global parameters. Applies to RUM data\n * @param context custom RUM global parameters.\n * @returns a Promise.\n */\n appendRUMGlobalContext(context:object):Promise<void>;\n /**\n * Add custom RUM and Log global parameters. Applies to Log data\n * @param context custom Log global parameters.\n * @returns a Promise.\n */\n appendLogGlobalContext(context:object):Promise<void>;\n /**\n * Actively synchronize data. When `FTMobileConfig.autoSync=false` is configured, you need to actively trigger this method to synchronize data.\n * @returns a Promise.\n */\n flushSyncData():Promise<void>;\n\n /**\n * Synchronize events in iOS Widget Extension, iOS only\n * @param groupIdentifier app groupId\n * @returns {groupIdentifier:string,datas:Array<object>} can be used to view data collected in Extension.\n */\n trackEventFromExtension(identifier:string): Promise<object>\n /**\n * Shut down objects currently running in the SDK\n */\n shutDown():Promise<void>\n /**\n * Clear all data that has not yet been uploaded to the server.\n */\n clearAllData():Promise<void>\n };\n\n class FTMobileReactNativeWrapper implements FTMobileReactNativeType {\n private sdk:FTMobileReactNativeType = NativeModules.FTMobileReactNative;\n\n sdkConfig(config:FTMobileConfig): Promise<void> {\n if(config.serverUrl != null && config.serverUrl.length>0 && config.datakitUrl == null){\n config.datakitUrl = config.serverUrl;\n }\n config.pkgInfo = sdkVersion;\n return this.sdk.sdkConfig(config);\n }\n bindRUMUserData(userId: string,userName?:string,userEmail?:string,extra?:object): Promise<void> {\n return this.sdk.bindRUMUserData(userId,userName,userEmail,extra);\n }\n unbindRUMUserData(): Promise<void> {\n return this.sdk.unbindRUMUserData();\n }\n appendGlobalContext(context: object): Promise<void> {\n return this.sdk.appendGlobalContext(context);\n }\n appendLogGlobalContext(context: object): Promise<void> {\n return this.sdk.appendLogGlobalContext(context);\n }\n appendRUMGlobalContext(context: object): Promise<void> {\n return this.sdk.appendRUMGlobalContext(context);\n }\n trackEventFromExtension(identifier:string) :Promise<object>{\n return this.sdk.trackEventFromExtension(identifier);\n }\n flushSyncData():Promise<void>{\n return this.sdk.flushSyncData();\n }\n shutDown():Promise<void>{\n return this.sdk.shutDown();\n }\n clearAllData():Promise<void>{\n return this.sdk.clearAllData();\n }\n }\nexport const FTMobileReactNative: FTMobileReactNativeType = new FTMobileReactNativeWrapper();\n\n"],"mappings":";;;AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C,SAASC,OAAO,IAAIC,UAAU,QAAQ,WAAW;;AAEjD;AACA;AACA;AACA,WAAYC,OAAO,0BAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA;AAElB;AACD,WAAYC,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2FC,MAAMC,0BAA0B,CAAoC;EAAAC,YAAA;IAAAC,eAAA,cAC5BP,aAAa,CAACQ,mBAAmB;EAAA;EAEvEC,SAASA,CAACC,MAAqB,EAAiB;IAC9C,IAAGA,MAAM,CAACC,SAAS,IAAI,IAAI,IAAID,MAAM,CAACC,SAAS,CAACC,MAAM,GAAC,CAAC,IAAIF,MAAM,CAACG,UAAU,IAAI,IAAI,EAAC;MACpFH,MAAM,CAACG,UAAU,GAAGH,MAAM,CAACC,SAAS;IACtC;IACAD,MAAM,CAACI,OAAO,GAAGZ,UAAU;IAC3B,OAAO,IAAI,CAACa,GAAG,CAACN,SAAS,CAACC,MAAM,CAAC;EACnC;EACAM,eAAeA,CAACC,MAAc,EAACC,QAAgB,EAACC,SAAiB,EAACC,KAAa,EAAiB;IAC9F,OAAO,IAAI,CAACL,GAAG,CAACC,eAAe,CAACC,MAAM,EAACC,QAAQ,EAACC,SAAS,EAACC,KAAK,CAAC;EAClE;EACAC,iBAAiBA,CAAA,EAAkB;IACjC,OAAO,IAAI,CAACN,GAAG,CAACM,iBAAiB,CAAC,CAAC;EACrC;EACAC,mBAAmBA,CAACC,OAAe,EAAiB;IACnD,OAAO,IAAI,CAACR,GAAG,CAACO,mBAAmB,CAACC,OAAO,CAAC;EAC7C;EACAC,sBAAsBA,CAACD,OAAe,EAAiB;IACnD,OAAO,IAAI,CAACR,GAAG,CAACS,sBAAsB,CAACD,OAAO,CAAC;EACnD;EACAE,sBAAsBA,CAACF,OAAe,EAAiB;IACnD,OAAO,IAAI,CAACR,GAAG,CAACU,sBAAsB,CAACF,OAAO,CAAC;EACnD;EACAG,uBAAuBA,CAACC,UAAiB,EAAkB;IACzD,OAAO,IAAI,CAACZ,GAAG,CAACW,uBAAuB,CAACC,UAAU,CAAC;EACrD;EACAC,aAAaA,CAAA,EAAgB;IAC5B,OAAO,IAAI,CAACb,GAAG,CAACa,aAAa,CAAC,CAAC;EAChC;EACAC,QAAQA,CAAA,EAAgB;IACvB,OAAO,IAAI,CAACd,GAAG,CAACc,QAAQ,CAAC,CAAC;EAC3B;EACAC,YAAYA,CAAA,EAAgB;IAC3B,OAAO,IAAI,CAACf,GAAG,CAACe,YAAY,CAAC,CAAC;EAC/B;AACF;AACD,OAAO,MAAMtB,mBAA4C,GAAG,IAAIH,0BAA0B,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","version","sdkVersion","EnvType","FTDBCacheDiscard","FTMobileReactNativeWrapper","constructor","_defineProperty","FTMobileReactNative","sdkConfig","config","serverUrl","length","datakitUrl","pkgInfo","sdk","bindRUMUserData","userId","userName","userEmail","extra","unbindRUMUserData","appendGlobalContext","context","appendLogGlobalContext","appendRUMGlobalContext","trackEventFromExtension","identifier","flushSyncData","shutDown","clearAllData"],"sources":["ft_mobile_agent.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { version as sdkVersion } from './version'\n\n/**\n * Environment.\n */\nexport enum EnvType {\n prod, gray, pre, common, local\n};\nexport enum FTDBCacheDiscard { discard, discardOldest };\n/**\n * Configure SDK startup parameters.\n * @param serverUrl data reporting address, deprecated, use [datakitUrl] instead\n * @param datakitUrl datakit access URL address, example: http://10.0.0.1:9529, default port 9529. Choose one between datakit and dataway configuration\n * @param datawayUrl dataway access URL address, example: http://10.0.0.1:9528, default port 9528, note: the device installing the SDK needs to be able to access this address. Note: choose one between datakit and dataway configuration\n * @param clientToken dataway authentication token, needs to be configured together with [datawayUrl]\n * @param debug set whether to allow log printing, default false\n * @param env environment, default prod\n * @param service set the name of the business or service it belongs to, default: `df_rum_ios`, `df_rum_android`\n * @param autoSync whether data is automatically synchronized and uploaded, default: true\n * @param syncPageSize number of synchronized items per request during data synchronization, minimum value 5, default: 10\n * @param syncSleepTime interval time between each request during data synchronization, unit milliseconds, 0 < syncSleepTime < 100\n * @param enableDataIntegerCompatible whether to enable data integer compatibility during data synchronization, enabled by default\n * @param compressIntakeRequests whether to compress synchronized data\n * @param globalContext custom global parameters\n * @param groupIdentifiers iOS side sets the AppGroups Identifier array corresponding to the collected Widget Extension\n * @param enableLimitWithDbSize set whether to enable using db to limit data size, after enabling, `FTLogConfig.logCacheLimitCount` and `FTRUMConfig.rumCacheLimitCount` will no longer take effect\n * @param dbCacheLimit db cache limit size, minimum value 30MB, default 100MB, unit byte\n * @param dbDiscardStrategy db data discard strategy\n * @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\n * @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\n */\n export interface FTMobileConfig {\n /**\n * @deprecated \"serverUrl\" parameter renamed to \"datakitUrl\"\n */\n serverUrl?: string,\n datakitUrl?: string,\n datawayUrl?: string,\n clientToken?: string,\n debug?:boolean,\n envType?:EnvType,\n env?:string,\n service?:string,\n autoSync?:boolean,\n syncPageSize?:number,\n syncSleepTime?:number,\n enableDataIntegerCompatible?:boolean,\n compressIntakeRequests?:boolean,\n globalContext?:object,\n groupIdentifiers?:Array<string>,\n enableLimitWithDbSize?:boolean,\n dbCacheLimit?:number,\n dbDiscardStrategy?:FTDBCacheDiscard,\n pkgInfo?: string,\n dataModifier?:object,\n lineDataModifier?:object\n }\n\n\ntype FTMobileReactNativeType = {\n\n /**\n * SDK initialization method.\n * @param config SDK initialization configuration items.\n * @returns a Promise.\n */\n sdkConfig(config:FTMobileConfig): Promise<void>;\n /**\n * Bind user.\n * @param userId user ID.\n * @param userName user name.\n * @param userEmail user email\n * @param extra additional user information\n * @returns a Promise.\n */\n bindRUMUserData(userId: string,userName?:string,userEmail?:string,extra?:object): Promise<void>;\n /**\n * Unbind user.\n * @returns a Promise.\n */\n unbindRUMUserData(): Promise<void>;\n /**\n * Add custom global parameters. Applies to RUM and Log data\n * @param context custom global parameters.\n * @returns a Promise.\n */\n appendGlobalContext(context:object):Promise<void>;\n /**\n * Add custom RUM global parameters. Applies to RUM data\n * @param context custom RUM global parameters.\n * @returns a Promise.\n */\n appendRUMGlobalContext(context:object):Promise<void>;\n /**\n * Add custom RUM and Log global parameters. Applies to Log data\n * @param context custom Log global parameters.\n * @returns a Promise.\n */\n appendLogGlobalContext(context:object):Promise<void>;\n /**\n * Actively synchronize data. When `FTMobileConfig.autoSync=false` is configured, you need to actively trigger this method to synchronize data.\n * @returns a Promise.\n */\n flushSyncData():Promise<void>;\n\n /**\n * Synchronize events in iOS Widget Extension, iOS only\n * @param groupIdentifier app groupId\n * @returns {groupIdentifier:string,datas:Array<object>} can be used to view data collected in Extension.\n */\n trackEventFromExtension(identifier:string): Promise<object>\n /**\n * Shut down objects currently running in the SDK\n */\n shutDown():Promise<void>\n /**\n * Clear all data that has not yet been uploaded to the server.\n */\n clearAllData():Promise<void>\n };\n\n class FTMobileReactNativeWrapper implements FTMobileReactNativeType {\n private sdk:FTMobileReactNativeType = NativeModules.FTMobileReactNative;\n sdkConfig(config:FTMobileConfig): Promise<void> {\n if(config.serverUrl != null && config.serverUrl.length>0 && config.datakitUrl == null){\n config.datakitUrl = config.serverUrl;\n }\n config.pkgInfo = sdkVersion;\n return this.sdk.sdkConfig(config);\n }\n bindRUMUserData(userId: string,userName?:string,userEmail?:string,extra?:object): Promise<void> {\n return this.sdk.bindRUMUserData(userId,userName,userEmail,extra);\n }\n unbindRUMUserData(): Promise<void> {\n return this.sdk.unbindRUMUserData();\n }\n appendGlobalContext(context: object): Promise<void> {\n return this.sdk.appendGlobalContext(context);\n }\n appendLogGlobalContext(context: object): Promise<void> {\n return this.sdk.appendLogGlobalContext(context);\n }\n appendRUMGlobalContext(context: object): Promise<void> {\n return this.sdk.appendRUMGlobalContext(context);\n }\n trackEventFromExtension(identifier:string) :Promise<object>{\n return this.sdk.trackEventFromExtension(identifier);\n }\n flushSyncData():Promise<void>{\n return this.sdk.flushSyncData();\n }\n shutDown():Promise<void>{\n return this.sdk.shutDown();\n }\n clearAllData():Promise<void>{\n return this.sdk.clearAllData();\n }\n }\nexport const FTMobileReactNative: FTMobileReactNativeType = new FTMobileReactNativeWrapper();\n\n"],"mappings":";;;AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C,SAASC,OAAO,IAAIC,UAAU,QAAQ,WAAW;;AAEjD;AACA;AACA;AACA,WAAYC,OAAO,0BAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA;AAElB;AACD,WAAYC,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2FC,MAAMC,0BAA0B,CAAoC;EAAAC,YAAA;IAAAC,eAAA,cAC5BP,aAAa,CAACQ,mBAAmB;EAAA;EACvEC,SAASA,CAACC,MAAqB,EAAiB;IAC9C,IAAGA,MAAM,CAACC,SAAS,IAAI,IAAI,IAAID,MAAM,CAACC,SAAS,CAACC,MAAM,GAAC,CAAC,IAAIF,MAAM,CAACG,UAAU,IAAI,IAAI,EAAC;MACpFH,MAAM,CAACG,UAAU,GAAGH,MAAM,CAACC,SAAS;IACtC;IACAD,MAAM,CAACI,OAAO,GAAGZ,UAAU;IAC3B,OAAO,IAAI,CAACa,GAAG,CAACN,SAAS,CAACC,MAAM,CAAC;EACnC;EACAM,eAAeA,CAACC,MAAc,EAACC,QAAgB,EAACC,SAAiB,EAACC,KAAa,EAAiB;IAC9F,OAAO,IAAI,CAACL,GAAG,CAACC,eAAe,CAACC,MAAM,EAACC,QAAQ,EAACC,SAAS,EAACC,KAAK,CAAC;EAClE;EACAC,iBAAiBA,CAAA,EAAkB;IACjC,OAAO,IAAI,CAACN,GAAG,CAACM,iBAAiB,CAAC,CAAC;EACrC;EACAC,mBAAmBA,CAACC,OAAe,EAAiB;IACnD,OAAO,IAAI,CAACR,GAAG,CAACO,mBAAmB,CAACC,OAAO,CAAC;EAC7C;EACAC,sBAAsBA,CAACD,OAAe,EAAiB;IACnD,OAAO,IAAI,CAACR,GAAG,CAACS,sBAAsB,CAACD,OAAO,CAAC;EACnD;EACAE,sBAAsBA,CAACF,OAAe,EAAiB;IACnD,OAAO,IAAI,CAACR,GAAG,CAACU,sBAAsB,CAACF,OAAO,CAAC;EACnD;EACAG,uBAAuBA,CAACC,UAAiB,EAAkB;IACzD,OAAO,IAAI,CAACZ,GAAG,CAACW,uBAAuB,CAACC,UAAU,CAAC;EACrD;EACAC,aAAaA,CAAA,EAAgB;IAC5B,OAAO,IAAI,CAACb,GAAG,CAACa,aAAa,CAAC,CAAC;EAChC;EACAC,QAAQA,CAAA,EAAgB;IACvB,OAAO,IAAI,CAACd,GAAG,CAACc,QAAQ,CAAC,CAAC;EAC3B;EACAC,YAAYA,CAAA,EAAgB;IAC3B,OAAO,IAAI,CAACf,GAAG,CAACe,YAAY,CAAC,CAAC;EAC/B;AACF;AACD,OAAO,MAAMtB,mBAA4C,GAAG,IAAIH,0BAA0B,CAAC,CAAC","ignoreList":[]}