@truewatchtech/react-native-mobile 0.4.1 → 0.4.3-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FTMobileReactNativeSDK.podspec +7 -5
- package/README.md +34 -0
- package/android/build.gradle +9 -2
- package/android/src/main/java/com/ft/sdk/reactnative/FTMobileImpl.java +45 -14
- package/android/src/main/java/com/ft/sdk/reactnative/FTRUMImpl.java +85 -2
- package/android/src/main/java/com/ft/sdk/reactnative/FTTraceImpl.java +5 -1
- package/android/src/main/java/com/ft/sdk/reactnative/JsLongTaskMonitor.java +281 -0
- package/android/src/main/java/com/ft/sdk/reactnative/utils/ReactNativeUtils.java +5 -12
- package/android/src/newarch/java/com/ft/sdk/reactnative/FTMobileModule.java +9 -5
- package/android/src/newarch/java/com/ft/sdk/reactnative/FTRUMModule.java +26 -1
- package/android/src/newarch/java/com/ft/sdk/reactnative/FTTraceModule.java +14 -0
- package/android/src/oldarch/java/com/ft/sdk/reactnative/FTMobileModule.java +2 -2
- package/android/src/oldarch/java/com/ft/sdk/reactnative/FTRUMModule.java +29 -1
- package/android/src/oldarch/java/com/ft/sdk/reactnative/FTTraceModule.java +12 -0
- package/android/src/rnpost70/java/com/ft/sdk/reactnative/ReactJsThreadExecutor.java +21 -0
- package/android/src/rnpre70/java/com/ft/sdk/reactnative/ReactJsThreadExecutor.java +37 -0
- package/android/src/test/java/com/ft/sdk/reactnative/FTRUMModuleTest.java +117 -0
- package/android/src/test/java/com/ft/sdk/reactnative/JsLongTaskMonitorTest.java +446 -0
- package/android/src/test/java/com/ft/sdk/reactnative/utils/ReactNativeUtilsTest.java +33 -0
- package/ios/FTJSLongTaskMonitor.h +51 -0
- package/ios/FTJSLongTaskMonitor.m +250 -0
- package/ios/FTMobileReactNative.mm +23 -16
- package/ios/FTReactNativeLog.mm +3 -4
- package/ios/FTReactNativeRUM.mm +103 -28
- package/ios/FTReactNativeResource.h +4 -0
- package/ios/FTReactNativeResource.m +58 -0
- package/ios/FTReactNativeTrace.mm +56 -13
- package/ios/FTReactNativeUtils.m +10 -15
- package/ios/FTReactNativeWebSocket.h +10 -0
- package/ios/FTReactNativeWebSocket.mm +201 -0
- package/ios/FTWebSocketMetadataStore.h +25 -0
- package/ios/FTWebSocketMetadataStore.m +622 -0
- package/ios/FTWebSocketResourceData.h +16 -0
- package/ios/FTWebSocketResourceData.m +75 -0
- package/lib/commonjs/ft_mobile_agent.js +36 -3
- package/lib/commonjs/ft_mobile_agent.js.map +1 -1
- package/lib/commonjs/ft_rum.js +46 -2
- package/lib/commonjs/ft_rum.js.map +1 -1
- package/lib/commonjs/ft_tracing.js +12 -3
- package/lib/commonjs/ft_tracing.js.map +1 -1
- package/lib/commonjs/index.js +14 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/rum/FTBabelInteractionTracking.js +72 -0
- package/lib/commonjs/rum/FTBabelInteractionTracking.js.map +1 -0
- package/lib/commonjs/rum/FTBabelUtils.js +87 -0
- package/lib/commonjs/rum/FTBabelUtils.js.map +1 -0
- package/lib/commonjs/rum/FTRumActionTracking.js +10 -39
- package/lib/commonjs/rum/FTRumActionTracking.js.map +1 -1
- package/lib/commonjs/rum/FTRumActionTrackingContext.js +50 -0
- package/lib/commonjs/rum/FTRumActionTrackingContext.js.map +1 -0
- package/lib/commonjs/rum/FTRumWebSocketNative.js +73 -0
- package/lib/commonjs/rum/FTRumWebSocketNative.js.map +1 -0
- package/lib/commonjs/rum/FTRumWebSocketTiming.js +55 -0
- package/lib/commonjs/rum/FTRumWebSocketTiming.js.map +1 -0
- package/lib/commonjs/rum/FTRumWebSocketTracking.js +510 -0
- package/lib/commonjs/rum/FTRumWebSocketTracking.js.map +1 -0
- package/lib/commonjs/rum/longTasksUtils.js +25 -0
- package/lib/commonjs/rum/longTasksUtils.js.map +1 -0
- package/lib/commonjs/specs/NativeFTMobileReactNative.js.map +1 -1
- package/lib/commonjs/specs/NativeFTReactNativeRUM.js.map +1 -1
- package/lib/commonjs/specs/NativeFTReactNativeTrace.js.map +1 -1
- package/lib/commonjs/specs/NativeFTReactNativeWebSocket.js +11 -0
- package/lib/commonjs/specs/NativeFTReactNativeWebSocket.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/ft_mobile_agent.js +36 -3
- package/lib/module/ft_mobile_agent.js.map +1 -1
- package/lib/module/ft_rum.js +46 -2
- package/lib/module/ft_rum.js.map +1 -1
- package/lib/module/ft_tracing.js +12 -1
- package/lib/module/ft_tracing.js.map +1 -1
- package/lib/module/index.js +3 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/rum/FTBabelInteractionTracking.js +66 -0
- package/lib/module/rum/FTBabelInteractionTracking.js.map +1 -0
- package/lib/module/rum/FTBabelUtils.js +80 -0
- package/lib/module/rum/FTBabelUtils.js.map +1 -0
- package/lib/module/rum/FTRumActionTracking.js +10 -39
- package/lib/module/rum/FTRumActionTracking.js.map +1 -1
- package/lib/module/rum/FTRumActionTrackingContext.js +43 -0
- package/lib/module/rum/FTRumActionTrackingContext.js.map +1 -0
- package/lib/module/rum/FTRumWebSocketNative.js +62 -0
- package/lib/module/rum/FTRumWebSocketNative.js.map +1 -0
- package/lib/module/rum/FTRumWebSocketTiming.js +49 -0
- package/lib/module/rum/FTRumWebSocketTiming.js.map +1 -0
- package/lib/module/rum/FTRumWebSocketTracking.js +503 -0
- package/lib/module/rum/FTRumWebSocketTracking.js.map +1 -0
- package/lib/module/rum/longTasksUtils.js +18 -0
- package/lib/module/rum/longTasksUtils.js.map +1 -0
- package/lib/module/specs/NativeFTMobileReactNative.js.map +1 -1
- package/lib/module/specs/NativeFTReactNativeRUM.js.map +1 -1
- package/lib/module/specs/NativeFTReactNativeTrace.js.map +1 -1
- package/lib/module/specs/NativeFTReactNativeWebSocket.js +8 -0
- package/lib/module/specs/NativeFTReactNativeWebSocket.js.map +1 -0
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/ft_mobile_agent.d.ts +7 -0
- package/lib/typescript/ft_rum.d.ts +9 -0
- package/lib/typescript/index.d.ts +3 -1
- package/lib/typescript/rum/FTBabelInteractionTracking.d.ts +30 -0
- package/lib/typescript/rum/FTBabelUtils.d.ts +1 -0
- package/lib/typescript/rum/FTRumActionTracking.d.ts +0 -2
- package/lib/typescript/rum/FTRumActionTrackingContext.d.ts +11 -0
- package/lib/typescript/rum/FTRumWebSocketNative.d.ts +23 -0
- package/lib/typescript/rum/FTRumWebSocketTiming.d.ts +2 -0
- package/lib/typescript/rum/FTRumWebSocketTracking.d.ts +56 -0
- package/lib/typescript/rum/longTasksUtils.d.ts +8 -0
- package/lib/typescript/specs/NativeFTMobileReactNative.d.ts +14 -0
- package/lib/typescript/specs/NativeFTReactNativeRUM.d.ts +4 -0
- package/lib/typescript/specs/NativeFTReactNativeTrace.d.ts +12 -0
- package/lib/typescript/specs/NativeFTReactNativeWebSocket.d.ts +13 -0
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +7 -6
- package/src/ft_mobile_agent.tsx +49 -6
- package/src/ft_rum.tsx +61 -2
- package/src/ft_tracing.tsx +15 -1
- package/src/index.tsx +4 -0
- package/src/rum/FTBabelInteractionTracking.ts +124 -0
- package/src/rum/FTBabelUtils.tsx +99 -0
- package/src/rum/FTRumActionTracking.tsx +14 -43
- package/src/rum/FTRumActionTrackingContext.ts +68 -0
- package/src/rum/FTRumWebSocketNative.ts +106 -0
- package/src/rum/FTRumWebSocketTiming.ts +50 -0
- package/src/rum/FTRumWebSocketTracking.ts +727 -0
- package/src/rum/longTasksUtils.ts +17 -0
- package/src/specs/NativeFTMobileReactNative.ts +17 -0
- package/src/specs/NativeFTReactNativeRUM.ts +4 -0
- package/src/specs/NativeFTReactNativeTrace.ts +12 -0
- package/src/specs/NativeFTReactNativeWebSocket.ts +33 -0
- package/src/version.ts +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const MIN_LONG_TASK_THRESHOLD_MS = 100;
|
|
2
|
+
export const MAX_LONG_TASK_THRESHOLD_MS = 5000;
|
|
3
|
+
export const DEFAULT_LONG_TASK_THRESHOLD_MS = 100;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Converts the public JavaScript long task option to the numeric value expected
|
|
7
|
+
* by the native bridge. Enablement is controlled separately.
|
|
8
|
+
*/
|
|
9
|
+
export function normalizeLongTaskThreshold(threshold?: number): number {
|
|
10
|
+
if (!threshold) {
|
|
11
|
+
return DEFAULT_LONG_TASK_THRESHOLD_MS;
|
|
12
|
+
}
|
|
13
|
+
if (threshold < MIN_LONG_TASK_THRESHOLD_MS) {
|
|
14
|
+
return MIN_LONG_TASK_THRESHOLD_MS;
|
|
15
|
+
}
|
|
16
|
+
return Math.min(threshold, MAX_LONG_TASK_THRESHOLD_MS);
|
|
17
|
+
}
|
|
@@ -79,5 +79,22 @@ export interface Spec extends TurboModule {
|
|
|
79
79
|
* Clear all data that has not yet been uploaded to the server.
|
|
80
80
|
*/
|
|
81
81
|
clearAllData(): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Update remote configuration using the configured minimum update interval.
|
|
84
|
+
*/
|
|
85
|
+
updateRemoteConfig(): Promise<Object>;
|
|
86
|
+
/**
|
|
87
|
+
* Update remote configuration using a custom minimum update interval and
|
|
88
|
+
* optional override rules.
|
|
89
|
+
*/
|
|
90
|
+
updateRemoteConfigWithMiniUpdateInterval(
|
|
91
|
+
interval: number,
|
|
92
|
+
rules?: Array<Object>
|
|
93
|
+
): Promise<Object>;
|
|
94
|
+
/**
|
|
95
|
+
* Required by NativeEventEmitter for remote configuration callbacks.
|
|
96
|
+
*/
|
|
97
|
+
addListener(eventName: string): void;
|
|
98
|
+
removeListeners(count: number): void;
|
|
82
99
|
}
|
|
83
100
|
export default TurboModuleRegistry.get<Spec>('FTMobileReactNative');
|
|
@@ -9,6 +9,10 @@ export interface Spec extends TurboModule {
|
|
|
9
9
|
* @returns a Promise.
|
|
10
10
|
*/
|
|
11
11
|
setConfig(config: Object): Promise<void>;
|
|
12
|
+
/** Internal synchronous snapshot used only by native JS long task reporting. */
|
|
13
|
+
setLongTaskContext(context: Object): boolean;
|
|
14
|
+
/** Stops the internal JavaScript long task monitor before SDK shutdown. */
|
|
15
|
+
stopLongTaskTracking(): Promise<void>;
|
|
12
16
|
/**
|
|
13
17
|
* Start RUM Action.
|
|
14
18
|
* RUM will bind Resource, Error, LongTask events that may be triggered by this Action.
|
|
@@ -22,5 +22,17 @@ export interface Spec extends TurboModule {
|
|
|
22
22
|
* @returns trace request header parameters
|
|
23
23
|
*/
|
|
24
24
|
getTraceHeaderFields(url: string, key?: string): Promise<Object>;
|
|
25
|
+
/**
|
|
26
|
+
* Get trace HTTP request headers synchronously for APIs whose construction
|
|
27
|
+
* cannot wait for a Promise, such as React Native WebSocket.
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
getTraceHeaderFieldsSync(url: string, key: string): Object | null;
|
|
31
|
+
/**
|
|
32
|
+
* Discard iOS Trace correlation when WebSocket observation is abandoned
|
|
33
|
+
* before Resource reporting starts. Android uses native collection.
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
cancelWebSocketTrace(key: string): Promise<void>;
|
|
25
37
|
}
|
|
26
38
|
export default TurboModuleRegistry.get<Spec>('FTReactNativeTrace');
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
|
+
import type { TurboModule } from 'react-native';
|
|
3
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
4
|
+
|
|
5
|
+
/** Internal iOS handshake reporting bridge; absent on Android and older binaries. */
|
|
6
|
+
export interface Spec extends TurboModule {
|
|
7
|
+
startCapture(session: string): Promise<void>;
|
|
8
|
+
stopCapture(session: string): Promise<void>;
|
|
9
|
+
clear(): Promise<void>;
|
|
10
|
+
startResource(
|
|
11
|
+
key: string,
|
|
12
|
+
socketID: number,
|
|
13
|
+
url: string,
|
|
14
|
+
session: string,
|
|
15
|
+
sequence: number,
|
|
16
|
+
property: Object
|
|
17
|
+
): Promise<void>;
|
|
18
|
+
stopResource(
|
|
19
|
+
key: string,
|
|
20
|
+
event: string,
|
|
21
|
+
session: string,
|
|
22
|
+
property: Object
|
|
23
|
+
): Promise<void>;
|
|
24
|
+
addResource(
|
|
25
|
+
key: string,
|
|
26
|
+
content: Object,
|
|
27
|
+
metrics: Object,
|
|
28
|
+
session: string
|
|
29
|
+
): Promise<void>;
|
|
30
|
+
releaseResource(key: string, session: string): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default TurboModuleRegistry.get<Spec>('FTReactNativeWebSocket');
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// generated by genversion
|
|
2
|
-
export const version = '0.4.
|
|
2
|
+
export const version = '0.4.3-alpha.2';
|