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

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 (154) hide show
  1. package/FTMobileReactNativeSDK.podspec +32 -3
  2. package/android/build.gradle +7 -19
  3. package/android/src/main/java/com/ft/sdk/reactnative/FTMobileImpl.java +434 -5
  4. package/android/src/main/java/com/ft/sdk/reactnative/FTRUMImpl.java +12 -0
  5. package/android/src/newarch/java/com/ft/sdk/reactnative/FTLogModule.java +7 -14
  6. package/android/src/newarch/java/com/ft/sdk/reactnative/FTMobileModule.java +46 -12
  7. package/android/src/newarch/java/com/ft/sdk/reactnative/FTRUMModule.java +12 -13
  8. package/android/src/newarch/java/com/ft/sdk/reactnative/FTTraceModule.java +6 -8
  9. package/android/src/oldarch/java/com/ft/sdk/reactnative/FTMobileModule.java +34 -2
  10. package/android/src/rnpost74/java/com/ft/sdk/reactnative/FTMobilePackage.java +14 -3
  11. package/android/src/rnpre74/java/com/ft/sdk/reactnative/FTMobilePackage.java +0 -3
  12. package/ios/FTMobileReactNative.h +9 -5
  13. package/ios/FTMobileReactNative.mm +619 -0
  14. package/ios/FTReactNativeLog.h +8 -3
  15. package/ios/FTReactNativeLog.mm +79 -0
  16. package/ios/FTReactNativeRUM.h +8 -3
  17. package/ios/{FTReactNativeRUM.m → FTReactNativeRUM.mm} +143 -84
  18. package/ios/FTReactNativeTrace.h +8 -2
  19. package/ios/FTReactNativeTrace.mm +74 -0
  20. package/ios/FtMobileAgent.xcodeproj/project.pbxproj +17 -1
  21. package/lib/commonjs/ft_logger.js +14 -13
  22. package/lib/commonjs/ft_logger.js.map +1 -1
  23. package/lib/commonjs/ft_mobile_agent.js +153 -6
  24. package/lib/commonjs/ft_mobile_agent.js.map +1 -1
  25. package/lib/commonjs/ft_rum.js +55 -21
  26. package/lib/commonjs/ft_rum.js.map +1 -1
  27. package/lib/commonjs/ft_tracing.js +29 -10
  28. package/lib/commonjs/ft_tracing.js.map +1 -1
  29. package/lib/commonjs/index.js +24 -13
  30. package/lib/commonjs/index.js.map +1 -1
  31. package/lib/commonjs/rum/FTRumActionTracking.js +10 -4
  32. package/lib/commonjs/rum/FTRumActionTracking.js.map +1 -1
  33. package/lib/commonjs/rum/FTRumErrorTracking.js +4 -4
  34. package/lib/commonjs/rum/FTRumErrorTracking.js.map +1 -1
  35. package/lib/commonjs/specs/NativeFTMobileReactNative.js +10 -0
  36. package/lib/commonjs/specs/NativeFTMobileReactNative.js.map +1 -0
  37. package/lib/commonjs/specs/NativeFTReactNativeLog.js +10 -0
  38. package/lib/commonjs/specs/NativeFTReactNativeLog.js.map +1 -0
  39. package/lib/commonjs/specs/NativeFTReactNativeRUM.js +10 -0
  40. package/lib/commonjs/specs/NativeFTReactNativeRUM.js.map +1 -0
  41. package/lib/commonjs/specs/NativeFTReactNativeTrace.js +10 -0
  42. package/lib/commonjs/specs/NativeFTReactNativeTrace.js.map +1 -0
  43. package/lib/commonjs/version.js +1 -1
  44. package/lib/commonjs/version.js.map +1 -1
  45. package/lib/module/ft_logger.js +14 -12
  46. package/lib/module/ft_logger.js.map +1 -1
  47. package/lib/module/ft_mobile_agent.js +159 -5
  48. package/lib/module/ft_mobile_agent.js.map +1 -1
  49. package/lib/module/ft_rum.js +54 -16
  50. package/lib/module/ft_rum.js.map +1 -1
  51. package/lib/module/ft_tracing.js +29 -9
  52. package/lib/module/ft_tracing.js.map +1 -1
  53. package/lib/module/index.js +3 -4
  54. package/lib/module/index.js.map +1 -1
  55. package/lib/module/rum/FTRumActionTracking.js +10 -4
  56. package/lib/module/rum/FTRumActionTracking.js.map +1 -1
  57. package/lib/module/rum/FTRumErrorTracking.js +4 -4
  58. package/lib/module/rum/FTRumErrorTracking.js.map +1 -1
  59. package/lib/module/specs/NativeFTMobileReactNative.js +5 -0
  60. package/lib/module/specs/NativeFTMobileReactNative.js.map +1 -0
  61. package/lib/module/specs/NativeFTReactNativeLog.js +5 -0
  62. package/lib/module/specs/NativeFTReactNativeLog.js.map +1 -0
  63. package/lib/module/specs/NativeFTReactNativeRUM.js +5 -0
  64. package/lib/module/specs/NativeFTReactNativeRUM.js.map +1 -0
  65. package/lib/module/specs/NativeFTReactNativeTrace.js +5 -0
  66. package/lib/module/specs/NativeFTReactNativeTrace.js.map +1 -0
  67. package/lib/module/version.js +1 -1
  68. package/lib/module/version.js.map +1 -1
  69. package/lib/typescript/ft_logger.d.ts +6 -6
  70. package/lib/typescript/ft_mobile_agent.d.ts +165 -14
  71. package/lib/typescript/ft_rum.d.ts +32 -8
  72. package/lib/typescript/ft_tracing.d.ts +6 -6
  73. package/lib/typescript/index.d.ts +3 -4
  74. package/lib/typescript/specs/NativeFTMobileReactNative.d.ts +75 -0
  75. package/lib/typescript/specs/NativeFTReactNativeLog.d.ts +23 -0
  76. package/lib/typescript/specs/NativeFTReactNativeRUM.d.ts +89 -0
  77. package/lib/typescript/specs/NativeFTReactNativeTrace.d.ts +24 -0
  78. package/lib/typescript/version.d.ts +1 -1
  79. package/package.json +29 -96
  80. package/scripts/replace-react-require.js +37 -38
  81. package/src/ft_logger.tsx +72 -40
  82. package/src/ft_mobile_agent.tsx +374 -91
  83. package/src/ft_rum.tsx +227 -121
  84. package/src/ft_tracing.tsx +58 -37
  85. package/src/index.tsx +58 -18
  86. package/src/rum/FTRumActionTracking.tsx +212 -204
  87. package/src/rum/FTRumErrorTracking.tsx +70 -71
  88. package/src/specs/NativeFTMobileReactNative.ts +83 -0
  89. package/src/specs/NativeFTReactNativeLog.ts +29 -0
  90. package/src/specs/NativeFTReactNativeRUM.ts +104 -0
  91. package/src/specs/NativeFTReactNativeTrace.ts +26 -0
  92. package/src/version.ts +1 -1
  93. package/LICENSE +0 -201
  94. package/android/.project +0 -17
  95. package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
  96. package/android/gradlew +0 -185
  97. package/android/local.properties +0 -8
  98. package/android/src/main/java/com/ft/sdk/InnerClassProxy.java +0 -8
  99. package/android/src/main/java/com/ft/sdk/reactnative/FTSessionReplayImpl.java +0 -60
  100. package/android/src/main/java/com/ft/sdk/reactnative/extensions/ReactDrawablesExt.java +0 -155
  101. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/NoopTextPropertiesResolver.java +0 -23
  102. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/ReactNativeSessionReplayExtensionSupport.java +0 -57
  103. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/ShadowNodeWrapper.java +0 -84
  104. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/TextPropertiesResolver.java +0 -20
  105. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/DefaultMapper.java +0 -78
  106. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/Pair.java +0 -11
  107. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactEditTextMapper.java +0 -136
  108. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactNativeImageViewMapper.java +0 -117
  109. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactTextMapper.java +0 -57
  110. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactViewGroupMapper.java +0 -22
  111. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactViewModalMapper.java +0 -21
  112. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/resources/ReactDrawableCopier.java +0 -35
  113. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/DrawableUtils.java +0 -34
  114. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/ReflectionUtils.java +0 -43
  115. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/text/FabricTextViewUtils.java +0 -69
  116. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/text/LegacyTextViewUtils.java +0 -97
  117. package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/text/TextViewUtils.java +0 -184
  118. package/android/src/main/java/com/ft/sdk/reactnative/utils/ColorUtils.java +0 -24
  119. package/android/src/newarch/java/com/ft/sdk/reactnative/FTSessionReplayModule.java +0 -30
  120. package/android/src/oldarch/java/com/ft/sdk/reactnative/FTSessionReplayModule.java +0 -25
  121. package/android/src/rn69/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +0 -100
  122. package/android/src/rn75/java/com/ft/sdk/reactnative/sessionreplay/extensions/LengthPercentageExt.java +0 -27
  123. package/android/src/rn75/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +0 -116
  124. package/android/src/rn76/java/com/ft/sdk/reactnative/sessionreplay/extensions/LengthPercentageExt.java +0 -38
  125. package/android/src/rn76/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +0 -117
  126. package/android/src/rn79/java/com/ft/sdk/reactnative/sessionreplay/extensions/LengthPercentageExt.java +0 -38
  127. package/android/src/rn79/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +0 -132
  128. package/android/src/rn80/java/com/ft/sdk/reactnative/sessionreplay/extensions/ComputedBorderRadiusExt.java +0 -58
  129. package/android/src/rn80/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +0 -190
  130. package/android/src/rnlegacy/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +0 -120
  131. package/ios/.idea/.name +0 -1
  132. package/ios/.idea/ios.iml +0 -2
  133. package/ios/.idea/modules.xml +0 -8
  134. package/ios/.idea/vcs.xml +0 -6
  135. package/ios/.idea/xcode.xml +0 -4
  136. package/ios/FTMobileReactNative.m +0 -184
  137. package/ios/FTRCTTextViewRecorder.h +0 -33
  138. package/ios/FTRCTTextViewRecorder.m +0 -120
  139. package/ios/FTReactNativeLog.m +0 -60
  140. package/ios/FTReactNativeSessionReplay.h +0 -6
  141. package/ios/FTReactNativeSessionReplay.mm +0 -44
  142. package/ios/FTReactNativeTrace.m +0 -56
  143. package/ios/FtMobileAgent.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
  144. package/ios/FtMobileAgent.xcodeproj/project.xcworkspace/xcuserdata/Brandon.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  145. package/ios/FtMobileAgent.xcodeproj/project.xcworkspace/xcuserdata/Brandon.xcuserdatad/xcschemes/xcschememanagement.plist +0 -5
  146. package/ios/FtMobileAgent.xcodeproj/xcuserdata/Brandon.xcuserdatad/xcschemes/FtMobileAgent.xcscheme +0 -56
  147. package/ios/FtMobileAgent.xcodeproj/xcuserdata/Brandon.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  148. package/ios/RCTVersion.h +0 -8
  149. package/lib/commonjs/ft_session_replay.js +0 -34
  150. package/lib/commonjs/ft_session_replay.js.map +0 -1
  151. package/lib/module/ft_session_replay.js +0 -29
  152. package/lib/module/ft_session_replay.js.map +0 -1
  153. package/lib/typescript/ft_session_replay.d.ts +0 -27
  154. package/src/ft_session_replay.tsx +0 -34
@@ -99,34 +99,46 @@ Object.defineProperty(exports, "FTReactNativeRUM", {
99
99
  return _ft_rum.FTReactNativeRUM;
100
100
  }
101
101
  });
102
- Object.defineProperty(exports, "FTReactNativeSessionReplay", {
102
+ Object.defineProperty(exports, "FTReactNativeTrace", {
103
103
  enumerable: true,
104
104
  get: function () {
105
- return _ft_session_replay.FTReactNativeSessionReplay;
105
+ return _ft_tracing.FTReactNativeTrace;
106
106
  }
107
107
  });
108
- Object.defineProperty(exports, "FTReactNativeTrace", {
108
+ Object.defineProperty(exports, "FTRemoteConfigOverrideMatch", {
109
109
  enumerable: true,
110
110
  get: function () {
111
- return _ft_tracing.FTReactNativeTrace;
111
+ return _ft_mobile_agent.FTRemoteConfigOverrideMatch;
112
112
  }
113
113
  });
114
- Object.defineProperty(exports, "FTRumActionTracking", {
114
+ Object.defineProperty(exports, "FTRemoteConfigOverrideRule", {
115
115
  enumerable: true,
116
116
  get: function () {
117
- return _FTRumActionTracking.FTRumActionTracking;
117
+ return _ft_mobile_agent.FTRemoteConfigOverrideRule;
118
118
  }
119
119
  });
120
- Object.defineProperty(exports, "FTRumErrorTracking", {
120
+ Object.defineProperty(exports, "FTRemoteConfigOverrideValues", {
121
121
  enumerable: true,
122
122
  get: function () {
123
- return _FTRumErrorTracking.FTRumErrorTracking;
123
+ return _ft_mobile_agent.FTRemoteConfigOverrideValues;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "FTRemoteConfigResult", {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _ft_mobile_agent.FTRemoteConfigResult;
130
+ }
131
+ });
132
+ Object.defineProperty(exports, "FTRumActionTracking", {
133
+ enumerable: true,
134
+ get: function () {
135
+ return _FTRumActionTracking.FTRumActionTracking;
124
136
  }
125
137
  });
126
- Object.defineProperty(exports, "FTSessionReplayConfig", {
138
+ Object.defineProperty(exports, "FTRumErrorTracking", {
127
139
  enumerable: true,
128
140
  get: function () {
129
- return _ft_session_replay.FTSessionReplayConfig;
141
+ return _FTRumErrorTracking.FTRumErrorTracking;
130
142
  }
131
143
  });
132
144
  Object.defineProperty(exports, "FTTraceConfig", {
@@ -135,10 +147,10 @@ Object.defineProperty(exports, "FTTraceConfig", {
135
147
  return _ft_tracing.FTTraceConfig;
136
148
  }
137
149
  });
138
- Object.defineProperty(exports, "SessionReplayPrivacy", {
150
+ Object.defineProperty(exports, "IOSCrashMonitoringType", {
139
151
  enumerable: true,
140
152
  get: function () {
141
- return _ft_session_replay.SessionReplayPrivacy;
153
+ return _ft_rum.IOSCrashMonitoringType;
142
154
  }
143
155
  });
144
156
  Object.defineProperty(exports, "TraceType", {
@@ -151,7 +163,6 @@ var _ft_mobile_agent = require("./ft_mobile_agent");
151
163
  var _ft_logger = require("./ft_logger");
152
164
  var _ft_rum = require("./ft_rum");
153
165
  var _ft_tracing = require("./ft_tracing");
154
- var _ft_session_replay = require("./ft_session_replay");
155
166
  var _FTRumActionTracking = require("./rum/FTRumActionTracking");
156
167
  var _FTRumErrorTracking = require("./rum/FTRumErrorTracking");
157
168
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["_ft_mobile_agent","require","_ft_logger","_ft_rum","_ft_tracing","_FTRumActionTracking","_FTRumErrorTracking"],"sources":["index.tsx"],"sourcesContent":["import {\n FTMobileConfig,\n FTMobileReactNative,\n EnvType,\n FTDBCacheDiscard,\n FTRemoteConfigResult,\n FTRemoteConfigOverrideRule,\n FTRemoteConfigOverrideMatch,\n FTRemoteConfigOverrideValues,\n} from './ft_mobile_agent';\nimport {\n FTLogConfig,\n FTReactNativeLog,\n FTLogStatus,\n FTLogCacheDiscard,\n} from './ft_logger';\nimport {\n FTRUMConfig,\n FTRUMResource,\n FTReactNativeRUM,\n ErrorMonitorType,\n DeviceMetricsMonitorType,\n DetectFrequency,\n FTRUMResourceMetrics,\n FTRUMCacheDiscard,\n IOSCrashMonitoringType,\n} from './ft_rum';\nimport { FTTraceConfig, FTReactNativeTrace, TraceType } from './ft_tracing';\nimport { FTRumActionTracking } from './rum/FTRumActionTracking';\nimport { FTRumErrorTracking } from './rum/FTRumErrorTracking';\n\nexport {\n FTMobileReactNative,\n FTMobileConfig,\n EnvType,\n FTDBCacheDiscard,\n FTRemoteConfigResult,\n FTRemoteConfigOverrideRule,\n FTRemoteConfigOverrideMatch,\n FTRemoteConfigOverrideValues,\n FTLogConfig,\n FTReactNativeLog,\n FTLogStatus,\n FTLogCacheDiscard,\n FTRUMConfig,\n FTReactNativeRUM,\n FTRUMResource,\n ErrorMonitorType,\n DeviceMetricsMonitorType,\n DetectFrequency,\n FTRUMResourceMetrics,\n FTRUMCacheDiscard,\n IOSCrashMonitoringType,\n FTTraceConfig,\n FTReactNativeTrace,\n TraceType,\n FTRumActionTracking,\n FTRumErrorTracking,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAUA,IAAAC,UAAA,GAAAD,OAAA;AAMA,IAAAE,OAAA,GAAAF,OAAA;AAWA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA","ignoreList":[]}
@@ -29,13 +29,17 @@ class FTRumActionTracking {
29
29
  jsxRuntime.jsx = (...args) => {
30
30
  return this.patchCreateElementFunction(originaljsx, args);
31
31
  };
32
- } catch (e) {}
32
+ } catch (e) {
33
+ // Ignore missing jsx runtime support on older React versions.
34
+ }
33
35
  const originalMemo = _react.default.memo;
34
36
  _react.default.memo = (component, propsAreEqual) => {
35
37
  return originalMemo(component, (prev, next) => {
36
38
  if (!next.onPress || !prev.onPress) {
37
39
  return propsAreEqual ? propsAreEqual(prev, next) : areObjectShallowEqual(prev, next);
38
40
  }
41
+
42
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
39
43
  const {
40
44
  onPress: _prevOnPress,
41
45
  ...partialPrevProps
@@ -44,6 +48,8 @@ class FTRumActionTracking {
44
48
  ...partialPrevProps,
45
49
  onPress: prev.__FT_INTERNAL_ORIGINAL_ON_PRESS__
46
50
  };
51
+
52
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
47
53
  const {
48
54
  onPress: _nextOnPress,
49
55
  ...partialNextProps
@@ -126,9 +132,9 @@ class FTRumActionTracking {
126
132
  let elementTypeName = accessibilityRole;
127
133
  if (!accessibilityRole) {
128
134
  let elementType = targetNode.elementType;
129
- if (typeof elementType === "string") {
135
+ if (typeof elementType === 'string') {
130
136
  elementTypeName = elementType;
131
- } else if (elementType && typeof elementType.name === "string") {
137
+ } else if (elementType && typeof elementType.name === 'string') {
132
138
  elementTypeName = elementType.name;
133
139
  }
134
140
  }
@@ -154,7 +160,7 @@ class FTRumActionTracking {
154
160
  while (currentNode) {
155
161
  const props = currentNode.memoizedProps;
156
162
  if (props && props[FT_ENABLE_TRACK]) {
157
- enable = props[FT_ENABLE_TRACK] == "true";
163
+ enable = props[FT_ENABLE_TRACK] === 'true';
158
164
  break;
159
165
  }
160
166
  currentNode = currentNode.return;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_ft_rum","_FTRumActionTracking","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","FT_ENABLE_TRACK","FT_EXTRA_PROPERTY","FTRumActionTracking","startTracking","isTracking","original","React","createElement","args","patchCreateElementFunction","jsxRuntime","getJsxRuntime","originaljsx","jsx","originalJsx","originalMemo","memo","component","propsAreEqual","prev","next","onPress","areObjectShallowEqual","_prevOnPress","partialPrevProps","prevProps","__FT_INTERNAL_ORIGINAL_ON_PRESS__","_nextOnPress","partialNextProps","nextProps","stopTracking","originalCreateElement","interceptOnPress","length","_targetInst","currentTime","Date","now","timestampDifference","Math","abs","preActionTimestamp","targetNode","handleTargetEvent","enable","findActionEnableTrack","extraProperty","findActionProperty","elementTypeName","resolveActionName","jsonObject","JSON","parse","error","console","warn","FTReactNativeRUM","startAction","_targetNode$memoizedP","_targetNode$memoizedP2","_targetNode$memoizedP3","accessibilityLabel","memoizedProps","accessibilityRole","subTitle","children","Array","isArray","props","elementType","name","currentNode","return","exports","MIN_VALUE","originalFunction","element","rest","originalOnPress","objectA","objectB","keys","key","major","minor","version","split","Error"],"sources":["FTRumActionTracking.tsx"],"sourcesContent":["import React from 'react'\nimport { FTReactNativeRUM } from '../ft_rum';\nconst FT_ENABLE_TRACK = 'ft-enable-track';\nconst FT_EXTRA_PROPERTY = 'ft-extra-property';\nexport class FTRumActionTracking {\n\tprivate static isTracking = false\n\tprivate static preActionTimestamp = Number.MIN_VALUE;\n\tprivate static originalMemo = React.memo;\n private static originalJsx = null;\n private static originalCreateElement = React.createElement;\n\n\tprivate static patchCreateElementFunction = (\n originalFunction: typeof React.createElement,\n [element, props, ...rest]: Parameters<typeof React.createElement>\n ): ReturnType<typeof React.createElement> => {\n if (\n props &&\n typeof (props as Record<string, unknown>).onPress === 'function'\n ) {\n const originalOnPress = (props as Record<string, unknown>) // eslint-disable-next-line @typescript-eslint/ban-types\n .onPress as Function;\n (props as Record<string, unknown>).onPress = (...args: any[]) => {\n FTRumActionTracking.interceptOnPress(\n ...args\n );\n return originalOnPress(...args);\n };\n \n (props as Record<\n string,\n unknown\n >).__FT_INTERNAL_ORIGINAL_ON_PRESS__ = originalOnPress;\n }\n return originalFunction(element, props, ...rest);\n };\n\tstatic startTracking(): void {\n\t\tif (FTRumActionTracking.isTracking) {\n\t\t\treturn\n\t\t}\n\t\tconst original = React.createElement\n\t\tReact.createElement = (\n ...args: Parameters<typeof React.createElement>\n ): any => {\n return this.patchCreateElementFunction(original, args);\n };\n try {\n const jsxRuntime = getJsxRuntime();\n const originaljsx = jsxRuntime.jsx;\n this.originalJsx = originaljsx;\n jsxRuntime.jsx = (\n ...args: Parameters<typeof React.createElement>\n ): ReturnType<typeof React.createElement> => {\n return this.patchCreateElementFunction(originaljsx, args);\n };\n } catch (e) {\n \n }\n\n const originalMemo = React.memo;\n React.memo = (\n component: any,\n propsAreEqual?: (prevProps: any, newProps: any) => boolean\n ) => {\n return originalMemo(component, (prev, next) => {\n if (!next.onPress || !prev.onPress) {\n return propsAreEqual\n ? propsAreEqual(prev, next)\n : areObjectShallowEqual(prev, next);\n }\n\n\t\t\t\tconst { onPress: _prevOnPress, ...partialPrevProps } = prev;\n const prevProps = {\n ...partialPrevProps,\n onPress: prev.__FT_INTERNAL_ORIGINAL_ON_PRESS__\n };\n\n const { onPress: _nextOnPress, ...partialNextProps } = next;\n const nextProps = {\n ...partialNextProps,\n onPress: next.__FT_INTERNAL_ORIGINAL_ON_PRESS__\n };\n\n return propsAreEqual\n ? propsAreEqual(prevProps, nextProps)\n : areObjectShallowEqual(nextProps, prevProps);\n });\n };\n\t\tFTRumActionTracking.isTracking = true\n\t}\n\tstatic stopTracking() {\n React.createElement = this.originalCreateElement;\n React.memo = this.originalMemo;\n FTRumActionTracking.isTracking = false;\n if (this.originalJsx) {\n const jsxRuntime = getJsxRuntime();\n jsxRuntime.jsx = this.originalJsx;\n this.originalJsx = null;\n }\n }\n\n\tprivate static interceptOnPress(...args: any[]): void {\n\t\tif (args.length > 0 && args[0] && args[0]._targetInst) {\n\t\t\tconst currentTime = Date.now()\n\t\t\tconst timestampDifference = Math.abs(Date.now() - FTRumActionTracking.preActionTimestamp)\n\t\t\tif (timestampDifference > 10) {\n\t\t\t\tconst targetNode = args[0]._targetInst\n\t\t\t\tthis.handleTargetEvent(targetNode)\n\t\t\t\tFTRumActionTracking.preActionTimestamp = currentTime \n\t\t\t}\n\t\t}\n\t}\n\n private static handleTargetEvent(targetNode: any | null) {\n if (targetNode) {\n const enable = FTRumActionTracking.findActionEnableTrack(targetNode);\n if (enable) {\n const extraProperty = FTRumActionTracking.findActionProperty(targetNode);\n const elementTypeName = FTRumActionTracking.resolveActionName(targetNode);\n if (elementTypeName) {\n let jsonObject = null\n if (extraProperty) {\n try {\n jsonObject = JSON.parse(extraProperty)\n } catch (error) {\n console.warn(`Error parsing JSON string ${extraProperty}:`,error);\n }\n }\n if (jsonObject){\n FTReactNativeRUM.startAction(elementTypeName, 'click',jsonObject);\n }else{\n FTReactNativeRUM.startAction(elementTypeName, 'click');\n }\n }\n }\n }\n }\n\n\tprivate static resolveActionName(targetNode:any): string | null {\n\t\tconst accessibilityLabel = targetNode.memoizedProps?.accessibilityLabel\n\t\tif(accessibilityLabel != null){\n\t\t\treturn accessibilityLabel;\n\t\t}\n\t\tconst accessibilityRole = targetNode.memoizedProps?.accessibilityRole;\n\t\t\tlet subTitle = '';\n\t\t\tlet children = targetNode.memoizedProps?.children;\n\t\t\twhile (children){\n\t\t\t\tif(Array.isArray(children) && children.length>0 && children[0]){\n\t\t\t\t\tchildren = children[0];\n\t\t\t\t}else if(typeof children === 'object' && children.props && children.props.children){\n\t\t\t\t\tchildren = children.props.children;\n\t\t\t\t}else if(typeof children === 'string'){\n\t\t\t\t\tsubTitle = children;\n\t\t\t\t\tchildren = null;\n\t\t\t\t}else{\n\t\t\t\t\tchildren = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet elementTypeName = accessibilityRole;\n\t\t\tif(!accessibilityRole){\n\t\t\t\tlet elementType = targetNode.elementType;\n\t\t\t\tif (typeof elementType === \"string\") {\n\t\t\t\t\telementTypeName = elementType\n\t\t\t\t} else if (elementType && typeof elementType.name === \"string\") {\n\t\t\t\t\telementTypeName = elementType.name\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(elementTypeName){\n\t\t\t\treturn '['+elementTypeName+']'+subTitle;\n\t\t\t}\n\t\t\treturn null;\n \n\t}\n private static findActionProperty(targetNode: any): string | null {\n let currentNode = targetNode;\n while (currentNode) {\n const props = currentNode.memoizedProps;\n if (props && props[FT_EXTRA_PROPERTY]) {\n return props[FT_EXTRA_PROPERTY];\n }\n currentNode = currentNode.return;\n }\n return null;\n }\n private static findActionEnableTrack(targetNode: any): boolean {\n let currentNode = targetNode;\n let enable = true\n while (currentNode) {\n const props = currentNode.memoizedProps;\n if (props && props[FT_ENABLE_TRACK]) {\n enable = props[FT_ENABLE_TRACK] == \"true\";\n break;\n }\n currentNode = currentNode.return;\n }\n return enable;\n }\n}\n\nconst areObjectShallowEqual = (\n\tobjectA: Record<string, unknown> | undefined | null,\n\tobjectB: Record<string, unknown> | undefined | null\n): boolean => {\n\tif (!objectA || !objectB) {\n\t\treturn objectA === objectB;\n\t}\n\n\tconst keys = Object.keys(objectA);\n\tif (keys.length !== Object.keys(objectB).length) {\n\t\treturn false;\n\t}\n\tfor (const key of keys) {\n\t\tif (objectA[key] !== objectB[key]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n};\nconst getJsxRuntime = () => {\n // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires\n const [major, minor] = require('react/package.json').version.split('.');\n\t// JSX Transform applies to > 16.14.0\n if (Number(major)<=16&&Number(minor)<14) {\n throw new Error('React version does not support new jsx transform');\n }\n\n // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires\n const jsxRuntime = require('react/jsx-runtime');\n if (!jsxRuntime.jsx) {\n throw new Error('React jsx runtime does not export new jsx transform');\n }\n return jsxRuntime;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_ft_rum","_FTRumActionTracking","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","FT_ENABLE_TRACK","FT_EXTRA_PROPERTY","FTRumActionTracking","startTracking","isTracking","original","React","createElement","args","patchCreateElementFunction","jsxRuntime","getJsxRuntime","originaljsx","jsx","originalJsx","originalMemo","memo","component","propsAreEqual","prev","next","onPress","areObjectShallowEqual","_prevOnPress","partialPrevProps","prevProps","__FT_INTERNAL_ORIGINAL_ON_PRESS__","_nextOnPress","partialNextProps","nextProps","stopTracking","originalCreateElement","interceptOnPress","length","_targetInst","currentTime","Date","now","timestampDifference","Math","abs","preActionTimestamp","targetNode","handleTargetEvent","enable","findActionEnableTrack","extraProperty","findActionProperty","elementTypeName","resolveActionName","jsonObject","JSON","parse","error","console","warn","FTReactNativeRUM","startAction","_targetNode$memoizedP","_targetNode$memoizedP2","_targetNode$memoizedP3","accessibilityLabel","memoizedProps","accessibilityRole","subTitle","children","Array","isArray","props","elementType","name","currentNode","return","exports","MIN_VALUE","originalFunction","element","rest","originalOnPress","objectA","objectB","keys","key","major","minor","version","split","Error"],"sources":["FTRumActionTracking.tsx"],"sourcesContent":["import React from 'react';\nimport { FTReactNativeRUM } from '../ft_rum';\nconst FT_ENABLE_TRACK = 'ft-enable-track';\nconst FT_EXTRA_PROPERTY = 'ft-extra-property';\nexport class FTRumActionTracking {\n private static isTracking = false;\n private static preActionTimestamp = Number.MIN_VALUE;\n private static originalMemo = React.memo;\n private static originalJsx = null;\n private static originalCreateElement = React.createElement;\n\n private static patchCreateElementFunction = (\n originalFunction: typeof React.createElement,\n [element, props, ...rest]: Parameters<typeof React.createElement>\n ): ReturnType<typeof React.createElement> => {\n if (\n props &&\n typeof (props as Record<string, unknown>).onPress === 'function'\n ) {\n const originalOnPress = (props as Record<string, unknown>) // eslint-disable-next-line @typescript-eslint/ban-types\n .onPress as Function;\n (props as Record<string, unknown>).onPress = (...args: any[]) => {\n FTRumActionTracking.interceptOnPress(...args);\n return originalOnPress(...args);\n };\n\n (props as Record<string, unknown>).__FT_INTERNAL_ORIGINAL_ON_PRESS__ =\n originalOnPress;\n }\n return originalFunction(element, props, ...rest);\n };\n static startTracking(): void {\n if (FTRumActionTracking.isTracking) {\n return;\n }\n const original = React.createElement;\n React.createElement = (\n ...args: Parameters<typeof React.createElement>\n ): any => {\n return this.patchCreateElementFunction(original, args);\n };\n try {\n const jsxRuntime = getJsxRuntime();\n const originaljsx = jsxRuntime.jsx;\n this.originalJsx = originaljsx;\n jsxRuntime.jsx = (\n ...args: Parameters<typeof React.createElement>\n ): ReturnType<typeof React.createElement> => {\n return this.patchCreateElementFunction(originaljsx, args);\n };\n } catch (e) {\n // Ignore missing jsx runtime support on older React versions.\n }\n\n const originalMemo = React.memo;\n React.memo = (\n component: any,\n propsAreEqual?: (prevProps: any, newProps: any) => boolean\n ) => {\n return originalMemo(component, (prev, next) => {\n if (!next.onPress || !prev.onPress) {\n return propsAreEqual\n ? propsAreEqual(prev, next)\n : areObjectShallowEqual(prev, next);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onPress: _prevOnPress, ...partialPrevProps } = prev;\n const prevProps = {\n ...partialPrevProps,\n onPress: prev.__FT_INTERNAL_ORIGINAL_ON_PRESS__,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onPress: _nextOnPress, ...partialNextProps } = next;\n const nextProps = {\n ...partialNextProps,\n onPress: next.__FT_INTERNAL_ORIGINAL_ON_PRESS__,\n };\n\n return propsAreEqual\n ? propsAreEqual(prevProps, nextProps)\n : areObjectShallowEqual(nextProps, prevProps);\n });\n };\n FTRumActionTracking.isTracking = true;\n }\n static stopTracking() {\n React.createElement = this.originalCreateElement;\n React.memo = this.originalMemo;\n FTRumActionTracking.isTracking = false;\n if (this.originalJsx) {\n const jsxRuntime = getJsxRuntime();\n jsxRuntime.jsx = this.originalJsx;\n this.originalJsx = null;\n }\n }\n\n private static interceptOnPress(...args: any[]): void {\n if (args.length > 0 && args[0] && args[0]._targetInst) {\n const currentTime = Date.now();\n const timestampDifference = Math.abs(\n Date.now() - FTRumActionTracking.preActionTimestamp\n );\n if (timestampDifference > 10) {\n const targetNode = args[0]._targetInst;\n this.handleTargetEvent(targetNode);\n FTRumActionTracking.preActionTimestamp = currentTime;\n }\n }\n }\n\n private static handleTargetEvent(targetNode: any | null) {\n if (targetNode) {\n const enable = FTRumActionTracking.findActionEnableTrack(targetNode);\n if (enable) {\n const extraProperty =\n FTRumActionTracking.findActionProperty(targetNode);\n const elementTypeName =\n FTRumActionTracking.resolveActionName(targetNode);\n if (elementTypeName) {\n let jsonObject = null;\n if (extraProperty) {\n try {\n jsonObject = JSON.parse(extraProperty);\n } catch (error) {\n console.warn(\n `Error parsing JSON string ${extraProperty}:`,\n error\n );\n }\n }\n if (jsonObject) {\n FTReactNativeRUM.startAction(elementTypeName, 'click', jsonObject);\n } else {\n FTReactNativeRUM.startAction(elementTypeName, 'click');\n }\n }\n }\n }\n }\n\n private static resolveActionName(targetNode: any): string | null {\n const accessibilityLabel = targetNode.memoizedProps?.accessibilityLabel;\n if (accessibilityLabel != null) {\n return accessibilityLabel;\n }\n const accessibilityRole = targetNode.memoizedProps?.accessibilityRole;\n let subTitle = '';\n let children = targetNode.memoizedProps?.children;\n while (children) {\n if (Array.isArray(children) && children.length > 0 && children[0]) {\n children = children[0];\n } else if (\n typeof children === 'object' &&\n children.props &&\n children.props.children\n ) {\n children = children.props.children;\n } else if (typeof children === 'string') {\n subTitle = children;\n children = null;\n } else {\n children = null;\n }\n }\n let elementTypeName = accessibilityRole;\n if (!accessibilityRole) {\n let elementType = targetNode.elementType;\n if (typeof elementType === 'string') {\n elementTypeName = elementType;\n } else if (elementType && typeof elementType.name === 'string') {\n elementTypeName = elementType.name;\n }\n }\n if (elementTypeName) {\n return '[' + elementTypeName + ']' + subTitle;\n }\n return null;\n }\n private static findActionProperty(targetNode: any): string | null {\n let currentNode = targetNode;\n while (currentNode) {\n const props = currentNode.memoizedProps;\n if (props && props[FT_EXTRA_PROPERTY]) {\n return props[FT_EXTRA_PROPERTY];\n }\n currentNode = currentNode.return;\n }\n return null;\n }\n private static findActionEnableTrack(targetNode: any): boolean {\n let currentNode = targetNode;\n let enable = true;\n while (currentNode) {\n const props = currentNode.memoizedProps;\n if (props && props[FT_ENABLE_TRACK]) {\n enable = props[FT_ENABLE_TRACK] === 'true';\n break;\n }\n currentNode = currentNode.return;\n }\n return enable;\n }\n}\n\nconst areObjectShallowEqual = (\n objectA: Record<string, unknown> | undefined | null,\n objectB: Record<string, unknown> | undefined | null\n): boolean => {\n if (!objectA || !objectB) {\n return objectA === objectB;\n }\n\n const keys = Object.keys(objectA);\n if (keys.length !== Object.keys(objectB).length) {\n return false;\n }\n for (const key of keys) {\n if (objectA[key] !== objectB[key]) {\n return false;\n }\n }\n return true;\n};\nconst getJsxRuntime = () => {\n // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires\n const [major, minor] = require('react/package.json').version.split('.');\n // JSX Transform applies to > 16.14.0\n if (Number(major) <= 16 && Number(minor) < 14) {\n throw new Error('React version does not support new jsx transform');\n }\n\n // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires\n const jsxRuntime = require('react/jsx-runtime');\n if (!jsxRuntime.jsx) {\n throw new Error('React jsx runtime does not export new jsx transform');\n }\n return jsxRuntime;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,7 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
9
9
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
10
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
11
  const EMPTY_MESSAGE = 'Unknown Error';
12
- const CONSOLE_ERROR = "console_error";
12
+ const CONSOLE_ERROR = 'console_error';
13
13
  class FTRumErrorTracking {
14
14
  static startTracking() {
15
15
  if (FTRumErrorTracking.isTracking) {
@@ -44,7 +44,7 @@ class FTRumErrorTracking {
44
44
  for (let i = 0; i < params.length; i += 1) {
45
45
  const param = params[i];
46
46
  const paramStack = FTRumErrorTracking.getErrorStackTrace(param);
47
- if (paramStack != undefined && paramStack != '') {
47
+ if (paramStack !== '') {
48
48
  stack = paramStack;
49
49
  break;
50
50
  }
@@ -62,7 +62,7 @@ class FTRumErrorTracking {
62
62
  }
63
63
  static getErrorMessage(error) {
64
64
  let message = EMPTY_MESSAGE;
65
- if (error == undefined || error === null) {
65
+ if (error == null) {
66
66
  message = EMPTY_MESSAGE;
67
67
  } else if (typeof error === 'object' && 'message' in error) {
68
68
  message = String(error.message);
@@ -73,7 +73,7 @@ class FTRumErrorTracking {
73
73
  }
74
74
  static getErrorStackTrace(error) {
75
75
  let stack = '';
76
- if (error == undefined) {
76
+ if (error == null) {
77
77
  stack = '';
78
78
  } else if (typeof error === 'string') {
79
79
  stack = '';
@@ -1 +1 @@
1
- {"version":3,"names":["_ft_rum","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EMPTY_MESSAGE","CONSOLE_ERROR","FTRumErrorTracking","startTracking","isTracking","ErrorUtils","defaultErrorHandler","getGlobalHandler","defaultConsoleError","console","error","setGlobalHandler","onGlobalError","onConsoleError","isFatal","message","getErrorMessage","stacktrace","getErrorStackTrace","FTReactNativeRUM","addError","then","isInDefaultErrorHandler","params","stack","length","param","paramStack","undefined","map","join","addErrorWithType","apply","componentStack","sourceURL","line","column","exports","_error","_isFatal","_params"],"sources":["FTRumErrorTracking.tsx"],"sourcesContent":["import type { ErrorHandlerCallback } from 'react-native';\nimport { FTReactNativeRUM } from '../ft_rum';\nconst EMPTY_MESSAGE = 'Unknown Error';\nconst CONSOLE_ERROR = \"console_error\";\n\nexport class FTRumErrorTracking {\n private static isTracking = false;\n\n private static isInDefaultErrorHandler = false;\n\n // Original error handler method\n private static defaultErrorHandler: ErrorHandlerCallback = (_error: any, _isFatal?: boolean) => { }\n\n // Original console error handler method\n private static defaultConsoleError = (..._params: unknown[]) => { }\n\n static startTracking(): void {\n if(FTRumErrorTracking.isTracking){\n return;\n }\n if (ErrorUtils) {\n FTRumErrorTracking.defaultErrorHandler = ErrorUtils.getGlobalHandler;\n FTRumErrorTracking.defaultConsoleError = console.error;\n ErrorUtils.setGlobalHandler(FTRumErrorTracking.onGlobalError);\n console.error = FTRumErrorTracking.onConsoleError;\n FTRumErrorTracking.isTracking = true;\n }\n }\n static onGlobalError(error: any, isFatal?: boolean): void {\n const message = FTRumErrorTracking.getErrorMessage(error);\n const stacktrace = FTRumErrorTracking.getErrorStackTrace(error);\n FTReactNativeRUM.addError(\n stacktrace,\n message\n ).then(() => {\n try {\n FTRumErrorTracking.isInDefaultErrorHandler = true;\n //Call the original error handler method\n FTRumErrorTracking.defaultErrorHandler(error, isFatal);\n } finally {\n FTRumErrorTracking.isInDefaultErrorHandler = false;\n }\n });\n }\n\n static onConsoleError(...params: unknown[]): void {\n if ( FTRumErrorTracking.isInDefaultErrorHandler) {\n return;\n }\n\n let stack: string = '';\n for (let i = 0; i < params.length; i += 1) {\n const param = params[i];\n const paramStack = FTRumErrorTracking.getErrorStackTrace(param);\n if (paramStack != undefined && paramStack != '') {\n stack = paramStack;\n break;\n }\n }\n\n const message = params.map((param) => {\n if (typeof param === 'string') { return param; }\n else { return FTRumErrorTracking.getErrorMessage(param); }\n }).join(' ');\n\n\n FTReactNativeRUM.addErrorWithType(\n CONSOLE_ERROR,\n stack,\n message,\n ).then(() => {\n FTRumErrorTracking.defaultConsoleError.apply(console, params);\n });\n\n }\n private static getErrorMessage(error: any | undefined): string {\n let message = EMPTY_MESSAGE;\n if (error == undefined || error === null) {\n message = EMPTY_MESSAGE;\n } else if (typeof error === 'object' && 'message' in error){\n message = String(error.message);\n } else {\n message = String(error);\n }\n\n return message\n }\n\n private static getErrorStackTrace(error: any | undefined): string {\n let stack = '';\n\n if (error == undefined) {\n stack = '';\n } else if (typeof error === 'string') {\n stack = '';\n } else if ('componentStack' in error) {\n stack = String(error.componentStack);\n } else if ('stacktrace' in error) {\n stack = String(error.stacktrace);\n } else if ('stack' in error) {\n stack = String(error.stack);\n } else if (('sourceURL' in error) && ('line' in error) && ('column' in error)) {\n stack = `at ${error.sourceURL}:${error.line}:${error.column}`;\n }\n\n return stack\n }\n }\n\n\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,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,MAAMgB,aAAa,GAAG,eAAe;AACrC,MAAMC,aAAa,GAAG,eAAe;AAE9B,MAAMC,kBAAkB,CAAC;EAW9B,OAAOC,aAAaA,CAAA,EAAS;IAC3B,IAAGD,kBAAkB,CAACE,UAAU,EAAC;MAC/B;IACF;IACA,IAAIC,UAAU,EAAE;MACdH,kBAAkB,CAACI,mBAAmB,GAAGD,UAAU,CAACE,gBAAgB;MACpEL,kBAAkB,CAACM,mBAAmB,GAAGC,OAAO,CAACC,KAAK;MACtDL,UAAU,CAACM,gBAAgB,CAACT,kBAAkB,CAACU,aAAa,CAAC;MAC7DH,OAAO,CAACC,KAAK,GAAGR,kBAAkB,CAACW,cAAc;MACjDX,kBAAkB,CAACE,UAAU,GAAG,IAAI;IACtC;EACF;EACA,OAAOQ,aAAaA,CAACF,KAAU,EAAEI,OAAiB,EAAQ;IACxD,MAAMC,OAAO,GAAGb,kBAAkB,CAACc,eAAe,CAACN,KAAK,CAAC;IACzD,MAAMO,UAAU,GAAGf,kBAAkB,CAACgB,kBAAkB,CAACR,KAAK,CAAC;IAC/DS,wBAAgB,CAACC,QAAQ,CACvBH,UAAU,EACVF,OACA,CAAC,CAACM,IAAI,CAAC,MAAM;MACX,IAAI;QACFnB,kBAAkB,CAACoB,uBAAuB,GAAG,IAAI;QACjD;QACApB,kBAAkB,CAACI,mBAAmB,CAACI,KAAK,EAAEI,OAAO,CAAC;MACxD,CAAC,SAAS;QACRZ,kBAAkB,CAACoB,uBAAuB,GAAG,KAAK;MACpD;IACF,CAAC,CAAC;EACJ;EAEA,OAAOT,cAAcA,CAAC,GAAGU,MAAiB,EAAQ;IAChD,IAAKrB,kBAAkB,CAACoB,uBAAuB,EAAE;MAC/C;IACF;IAEA,IAAIE,KAAa,GAAG,EAAE;IACtB,KAAK,IAAIhC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+B,MAAM,CAACE,MAAM,EAAEjC,CAAC,IAAI,CAAC,EAAE;MACzC,MAAMkC,KAAK,GAAGH,MAAM,CAAC/B,CAAC,CAAC;MACvB,MAAMmC,UAAU,GAAGzB,kBAAkB,CAACgB,kBAAkB,CAACQ,KAAK,CAAC;MAC/D,IAAIC,UAAU,IAAIC,SAAS,IAAID,UAAU,IAAI,EAAE,EAAE;QAC/CH,KAAK,GAAGG,UAAU;QAClB;MACF;IACF;IAEA,MAAMZ,OAAO,GAAGQ,MAAM,CAACM,GAAG,CAAEH,KAAK,IAAK;MACpC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QAAE,OAAOA,KAAK;MAAE,CAAC,MAC3C;QAAE,OAAOxB,kBAAkB,CAACc,eAAe,CAACU,KAAK,CAAC;MAAE;IAC3D,CAAC,CAAC,CAACI,IAAI,CAAC,GAAG,CAAC;IAGZX,wBAAgB,CAACY,gBAAgB,CAC/B9B,aAAa,EACbuB,KAAK,EACLT,OACA,CAAC,CAACM,IAAI,CAAC,MAAM;MACXnB,kBAAkB,CAACM,mBAAmB,CAACwB,KAAK,CAACvB,OAAO,EAAEc,MAAM,CAAC;IAC/D,CAAC,CAAC;EAEJ;EACA,OAAeP,eAAeA,CAACN,KAAsB,EAAU;IAC7D,IAAIK,OAAO,GAAGf,aAAa;IAC3B,IAAIU,KAAK,IAAIkB,SAAS,IAAIlB,KAAK,KAAK,IAAI,EAAE;MACxCK,OAAO,GAAGf,aAAa;IACzB,CAAC,MAAM,IAAI,OAAOU,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAIA,KAAK,EAAC;MACzDK,OAAO,GAAGjB,MAAM,CAACY,KAAK,CAACK,OAAO,CAAC;IACjC,CAAC,MAAM;MACLA,OAAO,GAAGjB,MAAM,CAACY,KAAK,CAAC;IACzB;IAEA,OAAOK,OAAO;EAChB;EAEA,OAAeG,kBAAkBA,CAACR,KAAsB,EAAU;IAChE,IAAIc,KAAK,GAAG,EAAE;IAEd,IAAId,KAAK,IAAIkB,SAAS,EAAE;MACtBJ,KAAK,GAAG,EAAE;IACZ,CAAC,MAAM,IAAI,OAAOd,KAAK,KAAK,QAAQ,EAAE;MACpCc,KAAK,GAAG,EAAE;IACZ,CAAC,MAAM,IAAI,gBAAgB,IAAId,KAAK,EAAE;MACpCc,KAAK,GAAG1B,MAAM,CAACY,KAAK,CAACuB,cAAc,CAAC;IACtC,CAAC,MAAM,IAAI,YAAY,IAAIvB,KAAK,EAAE;MAChCc,KAAK,GAAG1B,MAAM,CAACY,KAAK,CAACO,UAAU,CAAC;IAClC,CAAC,MAAM,IAAI,OAAO,IAAIP,KAAK,EAAE;MAC3Bc,KAAK,GAAG1B,MAAM,CAACY,KAAK,CAACc,KAAK,CAAC;IAC7B,CAAC,MAAM,IAAK,WAAW,IAAId,KAAK,IAAM,MAAM,IAAIA,KAAM,IAAK,QAAQ,IAAIA,KAAM,EAAE;MAC7Ec,KAAK,GAAG,MAAMd,KAAK,CAACwB,SAAS,IAAIxB,KAAK,CAACyB,IAAI,IAAIzB,KAAK,CAAC0B,MAAM,EAAE;IAC/D;IAEA,OAAOZ,KAAK;EACd;AACF;AAACa,OAAA,CAAAnC,kBAAA,GAAAA,kBAAA;AAAArB,eAAA,CAtGQqB,kBAAkB,gBACD,KAAK;AAAArB,eAAA,CADtBqB,kBAAkB,6BAGY,KAAK;AAE9C;AAAArB,eAAA,CALWqB,kBAAkB,yBAM8B,CAACoC,MAAW,EAAEC,QAAkB,KAAK,CAAE,CAAC;AAEnG;AAAA1D,eAAA,CARWqB,kBAAkB,yBASQ,CAAC,GAAGsC,OAAkB,KAAK,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_ft_rum","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EMPTY_MESSAGE","CONSOLE_ERROR","FTRumErrorTracking","startTracking","isTracking","ErrorUtils","defaultErrorHandler","getGlobalHandler","defaultConsoleError","console","error","setGlobalHandler","onGlobalError","onConsoleError","isFatal","message","getErrorMessage","stacktrace","getErrorStackTrace","FTReactNativeRUM","addError","then","isInDefaultErrorHandler","params","stack","length","param","paramStack","map","join","addErrorWithType","apply","componentStack","sourceURL","line","column","exports","_error","_isFatal","_params"],"sources":["FTRumErrorTracking.tsx"],"sourcesContent":["import type { ErrorHandlerCallback } from 'react-native';\nimport { FTReactNativeRUM } from '../ft_rum';\nconst EMPTY_MESSAGE = 'Unknown Error';\nconst CONSOLE_ERROR = 'console_error';\n\nexport class FTRumErrorTracking {\n private static isTracking = false;\n\n private static isInDefaultErrorHandler = false;\n\n // Original error handler method\n private static defaultErrorHandler: ErrorHandlerCallback = (\n _error: any,\n _isFatal?: boolean\n ) => {};\n\n // Original console error handler method\n private static defaultConsoleError = (..._params: unknown[]) => {};\n\n static startTracking(): void {\n if (FTRumErrorTracking.isTracking) {\n return;\n }\n if (ErrorUtils) {\n FTRumErrorTracking.defaultErrorHandler = ErrorUtils.getGlobalHandler;\n FTRumErrorTracking.defaultConsoleError = console.error;\n ErrorUtils.setGlobalHandler(FTRumErrorTracking.onGlobalError);\n console.error = FTRumErrorTracking.onConsoleError;\n FTRumErrorTracking.isTracking = true;\n }\n }\n static onGlobalError(error: any, isFatal?: boolean): void {\n const message = FTRumErrorTracking.getErrorMessage(error);\n const stacktrace = FTRumErrorTracking.getErrorStackTrace(error);\n FTReactNativeRUM.addError(stacktrace, message).then(() => {\n try {\n FTRumErrorTracking.isInDefaultErrorHandler = true;\n //Call the original error handler method\n FTRumErrorTracking.defaultErrorHandler(error, isFatal);\n } finally {\n FTRumErrorTracking.isInDefaultErrorHandler = false;\n }\n });\n }\n\n static onConsoleError(...params: unknown[]): void {\n if (FTRumErrorTracking.isInDefaultErrorHandler) {\n return;\n }\n\n let stack: string = '';\n for (let i = 0; i < params.length; i += 1) {\n const param = params[i];\n const paramStack = FTRumErrorTracking.getErrorStackTrace(param);\n if (paramStack !== '') {\n stack = paramStack;\n break;\n }\n }\n\n const message = params\n .map((param) => {\n if (typeof param === 'string') {\n return param;\n } else {\n return FTRumErrorTracking.getErrorMessage(param);\n }\n })\n .join(' ');\n\n FTReactNativeRUM.addErrorWithType(CONSOLE_ERROR, stack, message).then(\n () => {\n FTRumErrorTracking.defaultConsoleError.apply(console, params);\n }\n );\n }\n private static getErrorMessage(error: any | undefined): string {\n let message = EMPTY_MESSAGE;\n if (error == null) {\n message = EMPTY_MESSAGE;\n } else if (typeof error === 'object' && 'message' in error) {\n message = String(error.message);\n } else {\n message = String(error);\n }\n\n return message;\n }\n\n private static getErrorStackTrace(error: any | undefined): string {\n let stack = '';\n\n if (error == null) {\n stack = '';\n } else if (typeof error === 'string') {\n stack = '';\n } else if ('componentStack' in error) {\n stack = String(error.componentStack);\n } else if ('stacktrace' in error) {\n stack = String(error.stacktrace);\n } else if ('stack' in error) {\n stack = String(error.stack);\n } else if ('sourceURL' in error && 'line' in error && 'column' in error) {\n stack = `at ${error.sourceURL}:${error.line}:${error.column}`;\n }\n\n return stack;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ /* eslint-disable @typescript-eslint/ban-types */
9
+ var _default = exports.default = _reactNative.TurboModuleRegistry.get('FTMobileReactNative');
10
+ //# sourceMappingURL=NativeFTMobileReactNative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sources":["NativeFTMobileReactNative.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\nimport type { TurboModule } from 'react-native';\nimport { TurboModuleRegistry } from 'react-native';\n\nexport interface Spec extends TurboModule {\n /**\n * SDK initialization method.\n * @param config SDK initialization configuration items.\n * @returns a Promise.\n */\n sdkConfig(config: Object): Promise<void>;\n /**\n * Dynamically set the Datakit upload URL after SDK initialization.\n * @param datakitUrl Datakit upload URL.\n * @returns a Promise.\n */\n setDatakitURL(datakitUrl: string): Promise<void>;\n /**\n * Dynamically set the Dataway upload URL and client token after SDK initialization.\n * @param datawayUrl Dataway upload URL.\n * @param clientToken Dataway authentication token.\n * @returns a Promise.\n */\n setDatawayURL(datawayUrl: string, clientToken: string): 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(\n userId: string,\n userName?: string,\n userEmail?: string,\n extra?: Object\n ): 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}\nexport default TurboModuleRegistry.get<Spec>('FTMobileReactNative');\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAFA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAkFeC,gCAAmB,CAACC,GAAG,CAAO,qBAAqB,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ /* eslint-disable @typescript-eslint/ban-types */
9
+ var _default = exports.default = _reactNative.TurboModuleRegistry.get('FTReactNativeLog');
10
+ //# sourceMappingURL=NativeFTReactNativeLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sources":["NativeFTReactNativeLog.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\nimport type { TurboModule } from 'react-native';\nimport { TurboModuleRegistry } from 'react-native';\n\nexport interface Spec extends TurboModule {\n /**\n *Configure log output configuration to enable log collection.\n */\n logConfig(config: 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 logging(content: string, logStatus: number, 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(\n content: string,\n logStatus: string,\n property?: Object\n ): Promise<void>;\n}\nexport default TurboModuleRegistry.get<Spec>('FTReactNativeLog');\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAFA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA4BeC,gCAAmB,CAACC,GAAG,CAAO,kBAAkB,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ /* eslint-disable @typescript-eslint/ban-types */
9
+ var _default = exports.default = _reactNative.TurboModuleRegistry.get('FTReactNativeRUM');
10
+ //# sourceMappingURL=NativeFTReactNativeRUM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sources":["NativeFTReactNativeRUM.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\nimport type { TurboModule } from 'react-native';\nimport { TurboModuleRegistry } from 'react-native';\n\nexport interface Spec extends TurboModule {\n /**\n * Set RUM tracking conditions and enable RUM collection.\n * @param config rum configuration parameters.\n * @returns a Promise.\n */\n setConfig(config: Object): 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(\n actionName: string,\n actionType: string,\n property?: Object\n ): 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(\n actionName: string,\n actionType: string,\n property?: Object\n ): 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(\n type: string,\n stack: string,\n message: string,\n property?: Object\n ): 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: Object, metrics?: Object): Promise<void>;\n}\nexport default TurboModuleRegistry.get<Spec>('FTReactNativeRUM');\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAFA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAuGeC,gCAAmB,CAACC,GAAG,CAAO,kBAAkB,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ /* eslint-disable @typescript-eslint/ban-types */
9
+ var _default = exports.default = _reactNative.TurboModuleRegistry.get('FTReactNativeTrace');
10
+ //# sourceMappingURL=NativeFTReactNativeTrace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sources":["NativeFTReactNativeTrace.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\nimport type { TurboModule } from 'react-native';\nimport { TurboModuleRegistry } from 'react-native';\n\nexport interface Spec extends TurboModule {\n /**\n * Configure trace to enable distributed tracing.\n * @param config trace configuration parameters.\n * @returns a Promise.\n */\n setConfig(config: Object): 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}\nexport default TurboModuleRegistry.get<Spec>('FTReactNativeTrace');\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAFA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAyBeC,gCAAmB,CAACC,GAAG,CAAO,oBAAoB,CAAC","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.4.0-alpha.4';
8
+ const version = exports.version = '0.4.1';
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.4.0-alpha.4';\n"],"mappings":";;;;;;AAAA;AACO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["version","exports"],"sources":["version.ts"],"sourcesContent":["// generated by genversion\nexport const version = '0.4.1';\n"],"mappings":";;;;;;AAAA;AACO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,OAAO","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  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; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
3
  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); }
4
- import { NativeModules } from 'react-native';
4
+ import { bridgeContextManager } from './ft_mobile_agent';
5
5
  /**
6
6
  * Set log level.
7
7
  */
@@ -13,7 +13,6 @@ export let FTLogStatus = /*#__PURE__*/function (FTLogStatus) {
13
13
  FTLogStatus[FTLogStatus["ok"] = 4] = "ok";
14
14
  return FTLogStatus;
15
15
  }({});
16
- ;
17
16
  /**
18
17
  * Log discard method.
19
18
  */
@@ -22,7 +21,6 @@ export let FTLogCacheDiscard = /*#__PURE__*/function (FTLogCacheDiscard) {
22
21
  FTLogCacheDiscard[FTLogCacheDiscard["discardOldest"] = 1] = "discardOldest";
23
22
  return FTLogCacheDiscard;
24
23
  }({});
25
- ;
26
24
  /**
27
25
  * Configure log output configuration.
28
26
  * @param sampleRate sampling rate
@@ -34,11 +32,13 @@ export let FTLogCacheDiscard = /*#__PURE__*/function (FTLogCacheDiscard) {
34
32
  * @param logCacheLimitCount get maximum log entry count limit [1000,), default 5000
35
33
  */
36
34
 
37
- ;
38
35
  class FTReactNativeLogWrapper {
39
36
  constructor() {
40
- _defineProperty(this, "logger", NativeModules.FTReactNativeLog);
37
+ /* eslint-disable @typescript-eslint/no-var-requires */
38
+ _defineProperty(this, "logger", require('./specs/NativeFTReactNativeLog').default);
41
39
  }
40
+ /* eslint-enable @typescript-eslint/no-var-requires */
41
+
42
42
  /**
43
43
  *Configure log output configuration to enable log collection.
44
44
  */
@@ -47,17 +47,19 @@ class FTReactNativeLogWrapper {
47
47
  }
48
48
 
49
49
  /**
50
- * Output log.
51
- * @param content log content
52
- * @param status log status
53
- * @param property log context (optional)
54
- */
50
+ * Output log.
51
+ * @param content log content
52
+ * @param status log status
53
+ * @param property log context (optional)
54
+ */
55
55
  logging(content, logStatus, property) {
56
+ // Automatically merge bridge context properties with local properties
57
+ const mergedProperties = bridgeContextManager.mergeWithLocalPropertiesSync(property);
56
58
  if (typeof logStatus === 'string') {
57
- return this.logger.logWithStatusString(content, logStatus.toString(), property);
59
+ return this.logger.logWithStatusString(content, logStatus.toString(), mergedProperties);
58
60
  }
59
61
  let enumLogStatus = logStatus;
60
- return this.logger.logging(content, enumLogStatus, property);
62
+ return this.logger.logging(content, enumLogStatus, mergedProperties);
61
63
  }
62
64
  }
63
65
  export const FTReactNativeLog = new FTReactNativeLogWrapper();
@@ -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 *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
+ {"version":3,"names":["bridgeContextManager","FTLogStatus","FTLogCacheDiscard","FTReactNativeLogWrapper","constructor","_defineProperty","require","default","logConfig","config","logger","logging","content","logStatus","property","mergedProperties","mergeWithLocalPropertiesSync","logWithStatusString","toString","enumLogStatus","FTReactNativeLog"],"sources":["ft_logger.tsx"],"sourcesContent":["import { bridgeContextManager } from './ft_mobile_agent';\n/**\n * Set log level.\n */\nexport enum FTLogStatus {\n info,\n warning,\n error,\n critical,\n ok,\n}\n/**\n * Log discard method.\n */\nexport enum FTLogCacheDiscard {\n discard,\n discardOldest,\n}\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 */\nexport 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\ntype 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(\n content: string,\n logStatus: FTLogStatus,\n property?: object\n ): 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(\n content: string,\n logStatus: string,\n property?: object\n ): Promise<void>;\n};\n\nclass FTReactNativeLogWrapper {\n /* eslint-disable @typescript-eslint/no-var-requires */\n private logger: FTReactNativeLogType =\n require('./specs/NativeFTReactNativeLog').default;\n /* eslint-enable @typescript-eslint/no-var-requires */\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(\n content: string,\n logStatus: FTLogStatus | string,\n property?: object\n ): Promise<void> {\n // Automatically merge bridge context properties with local properties\n const mergedProperties =\n bridgeContextManager.mergeWithLocalPropertiesSync(property);\n\n if (typeof logStatus === 'string') {\n return this.logger.logWithStatusString(\n content,\n logStatus.toString(),\n mergedProperties\n );\n }\n let enumLogStatus: FTLogStatus = logStatus as FTLogStatus;\n return this.logger.logging(content, enumLogStatus, mergedProperties);\n }\n}\nexport const FTReactNativeLog: FTReactNativeLogWrapper =\n new FTReactNativeLogWrapper();\n"],"mappings":";;;AAAA,SAASA,oBAAoB,QAAQ,mBAAmB;AACxD;AACA;AACA;AACA,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;AAOvB;AACA;AACA;AACA,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAI7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwCA,MAAMC,uBAAuB,CAAC;EAAAC,YAAA;IAC5B;IAAAC,eAAA,iBAEEC,OAAO,CAAC,gCAAgC,CAAC,CAACC,OAAO;EAAA;EACnD;;EAEA;AACF;AACA;EACEC,SAASA,CAACC,MAAmB,EAAiB;IAC5C,OAAO,IAAI,CAACC,MAAM,CAACF,SAAS,CAACC,MAAM,CAAC;EACtC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEE,OAAOA,CACLC,OAAe,EACfC,SAA+B,EAC/BC,QAAiB,EACF;IACf;IACA,MAAMC,gBAAgB,GACpBf,oBAAoB,CAACgB,4BAA4B,CAACF,QAAQ,CAAC;IAE7D,IAAI,OAAOD,SAAS,KAAK,QAAQ,EAAE;MACjC,OAAO,IAAI,CAACH,MAAM,CAACO,mBAAmB,CACpCL,OAAO,EACPC,SAAS,CAACK,QAAQ,CAAC,CAAC,EACpBH,gBACF,CAAC;IACH;IACA,IAAII,aAA0B,GAAGN,SAAwB;IACzD,OAAO,IAAI,CAACH,MAAM,CAACC,OAAO,CAACC,OAAO,EAAEO,aAAa,EAAEJ,gBAAgB,CAAC;EACtE;AACF;AACA,OAAO,MAAMK,gBAAyC,GACpD,IAAIjB,uBAAuB,CAAC,CAAC","ignoreList":[]}